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

regime_js

v1.0.8

Published

Australian Open Banking API NodeJS client.

Downloads

4

Readme

regime_js

Build status

Australian Open Banking API NodeJS client.

This client allows you to call the existing endopoints for the Australion Open Banking Consumer Data Right. All functions are asyncronous and promise native.

Installation and useage

$ npm install regime_js

Once installed the package can be used from the command line Example:

$ regime getProductArray ANZ 1

Will return the entire products array for ANZ xv 1

To use in your project require the package:

const regime = require("regime_js");

Testing

This unit contains both unit and functional tests so you can see the performance of the end points.

To run both sets of tests including audit and code coverage run this command;

$ npm test

To only run the functional tests;

$ npm run-script funcTest

To only run the unit tests

$ npm run-script unitTest

A mochawesome report for each test type will be automatically generated and stored in the root directory.

Functions

The functions available for use

Get Products API Functions

getProductsArray()

getProductsArray(bank, xv, [xvmin] [effective], [updated-since], [brand], [product-category], [page"], [page-size]) => Promise

The getProductsArray() function calls the requested bank's endpoint with the requested filters, and automatically paginates to return the entire products array. This function cannot be combined with user pagination. All Optional Paramaters must be passed in as a key value pair object with the name and the value. Please see parameters section for details of optional supported input.

Examples

const regime = require("regime_js");
async function printBankProducts() {
  let WBAProducts;
  try {
    WBAProducts = await regime.getProductsArray("WBA", 1, {
      "product-category": "TRANS_AND_SAVINGS_ACCOUNTS",
    });
  } catch (error) {
    console.log(error);
  }
  console.log(WBAProducts);
}

This will print the complete product array for all Transaction and Savings account supplied by the Westpac open banking API endpoint

Example Array member

{
  "productId": "String",
  "lastUpdated": "2019-09-18T05:52:35Z",
  "productCategory": "TRANS_AND_SAVINGS_ACCOUNTS",
  "name": "String",
  "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas quis interdum dolor.",
  "brand": "Bank",
  "isTailored": "false",
  "additionalInformation": {
    "overviewUri": "url"
  }
}

The below will do the same from the command line with an optional parameter included:

regime getProductArray WBA 1 {{"product-category":"TRANS_AND_SAVINGS_ACCOUNTS"}}

callGetProductsAPI()

getProductsArray(bank, xv, [xvmin] [page-size], [page], [effective], [updated-since], [brand], [product-category]) => Promise The CallGetProductsAPI() function directly calls the endpoint of the specified bank using the specified version number. Any number or combination of CDR speficed filtering values may be used. The function will return the unfiltered response object. Please see parameters section for details of supported input. Examples Running the code below

const regime = require("regime_js");
async function getProducts() {
  let res;
  try {
    res = await regime.callGetProductsAPI("ANZ", 1);
  } catch (error) {
    console.log(error);
  }
  console.log(res);
}
getProducts();

will return something like this:

{
  "data": {
    "products": [
      ///This Array Contains product objects for the specified bank
    ]
  },
  "meta": { "totalRecords": 28, "totalPages": 2 },
  "links": {
    "self": "url",
    "next": "url",
    "first": "url",
    "last": "url"
  }
}

From command line

$ regime callProductsAPI ANZ 1

Get Product details API Functions

These functions use the product details endpoint for the specifed bank to return the specified data.

callGetProductDetailsAPI()

The callGetProductDetails() function calls the specified bank endpoint, for the specified productID. This endpoint does not support pagination or any custom paramaters. xminv is the only optional paramater.

callGetProductDetails(bank, xv, productID, [xminv]) => Promise

Examples

Running the code below

async function getProductDetails() {
  let res;
  try {
    res = await regime.callGetProductDetailsAPI(
      "ANZ",
      1,
      "3a86f9e4-1b41-4222-9091-5934d1fc9178"
    );
  } catch (error) {
    console.log(error);
  }
  console.log(res);
}
getProductDetails();

will return something like this:

{
  "data": {
    "lastUpdated": "2020-02-20T04:07:19.779670Z",
    "additionalInformation": {
      "eligibilityUri": "URI",
      "feesAndPricingUri": "URI",
      "termsUri": "URI",
      "overviewUri": "URI"
    },
    "fees": [
      //This Array contains fees objects for the product
    ],
    "isTailored": false,
    "lendingRates": [
      //This Array contains lending rates objects for the product
    ],
    "productId": "3a86f9e4-1b41-4222-9091-5934d1fc9178",
    "name": "Product Name String",
    "description": "Product Description String",
    "applicationUri": "URI",
    "effectiveFrom": "2020-02-20T13:00:00Z",
    "brand": "ANZ",
    "productCategory": "RESIDENTIAL_MORTGAGES"
  },
  "meta": {},
  "links": {
    "self": "URL"
  }
}

From the command line

$ regime callGetProductDetailsAPI ANZ 1 3a86f9e4-1b41-4222-9091-5934d1fc9178

Supported Paramaters

Details of the all supported paramaters can be found in the Consumer Data Right Standard

Get Products API Parameters

| Name | Type | Required | Supported Functions | Description | | ---------------- | --------------- | --------- | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | effective | string | optional | getProducts(), callGetProductsAPI() | Allows for the filtering of products based on whether the current time is within the period of time defined as effective by the effectiveFrom and effectiveTo fields. Valid values are ‘CURRENT’, ‘FUTURE’ and ‘ALL’. If absent defaults to 'CURRENT' | | updated-since | DateTimeString | optional | getProducts(), callGetProductsAPI() | Only include products that have been updated after the specified date and time. If absent defaults to include all products | | brand | string | optional | getProducts(), callGetProductsAPI() | Filter results based on a specific brand | | product-category | string | optional | gcallGetProductsAPI() | Used to filter results on the productCategory field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned. | | page | PositiveInteger | optional | callGetProductsAPI() | Page of results to request (standard pagination) | | page-size | PositiveInteger | optional | callGetProductsAPI() | Page size to request. Default is 25 (standard pagination) | | x-v | string | mandatory | getProducts(), callGetProductsAPI() | | Version of the API end point requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between x-min-v and x-v. If the value of x-min-v is equal to or higher than the value of x-v then the x-min-v header should be treated as absent. If all versions requested are not supported then the data holder should respond with a 406 Not Acceptable. See HTTP Headers | | x-min-v | string | optional | getProducts(), callGetProductsAPI() | Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between x-min-v and x-v. If all versions requested are not supported then the data holder should respond with a 406 Not Acceptable. |

Enumerated Values |Parameter| Value|Supported Functions| |:--------- |:------ |:------ | |effective |CURRENT |getProducts(), callGetProductsAPI()| |effective |FUTURE|getProducts(), callGetProductsAPI()| |effective |ALL|getProducts(), callGetProductsAPI()| |product-category |TRANS_AND_SAVINGS_ACCOUNTS|getProducts(), callGetProductsAPI()| |product-category |TERM_DEPOSITS |getProducts(), callGetProductsAPI()| |product-category |TRAVEL_CARDS |getProducts(), callGetProductsAPI()| |product-category |REGULATED_TRUST_ACCOUNTS |getProducts(), callGetProductsAPI()| |product-category |RESIDENTIAL_MORTGAGES |getProducts(), callGetProductsAPI()| |product-category |CRED_AND_CHRG_CARDS |getProducts(), callGetProductsAPI()| |product-category |PERS_LOANS |getProducts(), callGetProductsAPI()| |product-category |MARGIN_LOANS |getProducts(), callGetProductsAPI()| |product-category |LEASES |getProducts(), callGetProductsAPI()| |product-category |TRADE_FINANCE |getProducts(), callGetProductsAPI()| |product-category |OVERDRAFTS |getProducts(), callGetProductsAPI()| |product-category |BUSINESS_LOANS|getProducts(), callGetProductsAPI()|

Authors

Nikki Renvoize