open-index/open-npm huggingface dataset:
npm package: @leadfox/vue-google-auth
Description: Handling Google sign-in and sign-out, forked from 1.0.4 by simmatrix
Author: Simmatrix Labs
Latest version: 1.0.6
Deprecated: Recommend using the vue-google-oauth2 package instead, this is no longer maintained.

# vue-google-auth
Handling Google sign-in and sign-out for Vue.js applications

## Installation
```
npm install @leadfox/vue-google-auth
```

## Initialization
```
import GoogleAuth from '@leadfox/vue-google-auth'

Vue.use(GoogleAuth, { clientID: 'xxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com' })
Vue.googleAuth().load()
```
Ideally you shall place this in your app entry file, e.g. src/main.js

## Usage - Sign-in
###(a) Handling Google sign-in, getting the one-time authorization code from Google

The options parameter can be set after the success and error callbacks in the method arguments.
See https://developers.google.com/identity/sign-in/web/reference#googleauthsigninoptions

```
import Vue from 'vue'

Vue.googleAuth().signIn(function (authorizationCode) {

  // things to do when sign-in succeeds

  // You can send the authorizationCode to your backend server for further processing, for example
  this.$http.post('http://your/backend/server', { code: authorizationCode, redirect_uri: 'postmessage' }).then(function (response) {
    if (response.body) {
      // ...
    }
  }, function (error) {
    console.log(error)
  })

}, function (error) {
  // things to do when sign-in fails
), options)
```

The `authorizationCode` that is being returned is the `one-time code` that you can send to your backend server, so that the server can exchange for its own access token and refresh token.


###(b) Alternatively, if you would like to directly get back the access_token and id_token
```
import Vue from 'vue'

// Just add in this line
Vue.googleAuth().directAccess()

Vue.googleAuth().signIn(function (googleUser) {
  // things to do when sign-in succeeds
}, function (error) {
  // things to do when sign-in fails
))
```

The `googleUser` object that is being returned will be:
```
{
  "token_type": "Bearer",
  "access_token": "xxx",
  "scope": "xxx",
  "login_hint": "xxx",
  "expires_in": 3600,
  "id_token": "xxx",
  "session_state": {
    "extraQueryParams": {
      "authuser": "0"
    }
  },
  "first_issued_at": 1234567891011,
  "expires_at": 1234567891011,
  "idpId": "google"
}
```

## Usage - Sign-out
Handling Google sign-out
```
import Vue from 'vue'

Vue.googleAuth().signOut(function () {
  // things to do when sign-out succeeds
}, function (error) {
  // things to do when sign-out fails
))
```

## Additional Help
Do refer to this [sample login page HTML file](https://github.com/simmatrix/vue-google-auth/blob/master/sample.html).

If you are curious of how the entire Google sign-in flow works, please refer to the diagram below
![Google Sign-in Flow](http://i.imgur.com/BQPXKyT.png)
npm package: @leadhome/hydrogen
Description: Utility libraries to use at Leadhome.
Author: Seagyn Davis
Latest version: 1.4.0

# @leadhome/utilities

[![Travis][build-badge]][build]
[![npm package][npm-badge]][npm]
[![Coveralls][coveralls-badge]][coveralls]

Describe @leadhome/utilities here.

[build-badge]: https://img.shields.io/travis/user/repo/master.png?style=flat-square
[build]: https://travis-ci.org/user/repo
[npm-badge]: https://img.shields.io/npm/v/npm-package.png?style=flat-square
[npm]: https://www.npmjs.org/package/npm-package
[coveralls-badge]: https://img.shields.io/coveralls/user/repo/master.png?style=flat-square
[coveralls]: https://coveralls.io/github/user/repo

## Releasing

All merges into `master` create an automated semvar release. Check Buildkite for details on the build process.

## Contribution

Branch off `master` and PR back into `master. Note, for now as soon as you merge changes in it will fire off a release. This will change in the future. Suggestion: Use commitzen to do commits. It uses the correct syntax so NPM can do a proper semvar release:`npm run commit`
npm package: @leadhome/oxygen
Description: A react component library
Author: Leadhome
Latest version: 1.3.0

![oxygen](https://i.imgur.com/OGQni5P.png)

Leadhome atomic component library for React

[![Build Status](https://badge.buildkite.com/c8970182a8bc39a8a7e93f695343b544b99c3ef66235d7ee44.svg)](https://buildkite.com/leadhome/oxygen) ![npm (scoped)](https://img.shields.io/npm/v/@leadhome/oxygen.svg)

[Storybook](https://leadhomesa.github.io/oxygen/)

## Install
```
 npm install @leadhome/oxygen
```

or

```
 yarn add @leadhome/oxygen
```

## Commits
- Use `npm commit`
- https://github.com/commitizen/cz-cli

## Branching

Please branch off `master` with feature branches

PRs should go into `master` first, and only then (when you want to release) into the `next` branch (which is, as the name implies, the future version).

## Available Components

- Header
- Footer
- Cards
- Inputs
- Buttons
- Inline Form

## Authors
* **Patrick** - *Design system* - [Patrick](https://za.linkedin.com/in/patrick-glynn-818082123)
* **Kyle** - *Inital work* - [MrOpperman](https://github.com/MrOpperman)
* **Seagyn** - *Component updates* - [seagyn](https://github.com/seagyn)

## Contributing

Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.

License
-------

Oxygen is © 2019 Leadhome Pty Ltd.
It is free software, and may be redistributed under the terms specified in the [LICENSE](LICENSE.md) file.

Maintained by
----------------

[![logo](https://i.imgur.com/QH4yUje.png)](https://leadhome.co.za?utm_source=github)

Oxygen was created and is maintained by Leadhome Pty Ltd.<br />
The names and logos for Leadhome are trademarks of Leadhome Pty Ltd.
npm package: @leadhome/react-snap-sitemap
Description: Create a sitemap post react-snap SSR
Latest version: 0.1.4

# React Snap Sitemap

A companion package for [react-snap](https://github.com/stereobooster/react-snap).

This package allows you to generate a sitemap.xml based off the created directories and files produced by react-snap.

## Installation

`npm install --save @leadhome/react-snap-sitemap`

## Useage

Add `&& react-snap-sitemap --base-url='http://example.com/'` to the end of your postBuild script after you've the `react-snap` command.

You can also add `--change-frequency=always|daily|weekly|monthly|yearly|never`.
npm package: @leadhome/utilities
Description: Utility libraries to use at Leadhome.
Author: Seagyn Davis
Latest version: 1.0.1
Deprecated: this package has been deprecated

# @leadhome/utilities

[![Travis][build-badge]][build]
[![npm package][npm-badge]][npm]
[![Coveralls][coveralls-badge]][coveralls]

Describe @leadhome/utilities here.

[build-badge]: https://img.shields.io/travis/user/repo/master.png?style=flat-square
[build]: https://travis-ci.org/user/repo

[npm-badge]: https://img.shields.io/npm/v/npm-package.png?style=flat-square
[npm]: https://www.npmjs.org/package/npm-package

[coveralls-badge]: https://img.shields.io/coveralls/user/repo/master.png?style=flat-square
[coveralls]: https://coveralls.io/github/user/repo
npm package: @leadinvr/excel-parser
Description: Parser for MS Excel
Author: Stanley
Latest version: 1.0.6

# excel-parser

<p align="center">
  <a href="https://www.npmjs.com/package/@leadinvr/excel-parser">
    <img src="https://img.shields.io/npm/v/@leadinvr/excel-parser.svg?style=for-the-badge" alt="npm version" />
  </a>
  <a href="https://www.npmjs.com/package/@leadinvr/excel-parser">
    <img src="https://img.shields.io/npm/dt/@leadinvr/excel-parser.svg?style=for-the-badge" alt="npm total downloads" />
  </a>
  <a href="https://www.npmjs.com/package/@leadinvr/excel-parser">
    <img src="https://img.shields.io/npm/dm/@leadinvr/excel-parser.svg?style=for-the-badge" alt="npm monthly downloads" />
  </a>
  <a href="https://www.npmjs.com/package/@leadinvr/excel-parser">
    <img src="https://img.shields.io/npm/l/@leadinvr/excel-parser.svg?style=for-the-badge" alt="npm license" />
  </a>
</p>

# Features

-   Parse excel files

# Install

```bash
npm i @leadinvr/excel-parser
```

# Quick Start

### Parse an xlsx file

```js
try {
    const file = new ExcelFile();
    file.open(path);
    return file;
} catch (err) {
    logger.error(path, err);
    throw err;
}
```

### Select a book

```js
excel.use(0); // or excel.use("sheet name")
```

### Get all keys

```js
const keys = excel.getSheetKeys();
```

### Iterate rows

```js
while (excel.next()) {
    // get next row, and iterate all keys
    for (const key of keys) {
        const v = excel.getCell(key, "");
        if (isNullOrEmpty(v)) {
            continue;
        }
        if (!map.has(key)) {
            map.set(key, []);
        }
        map.get(key)!.push(v ?? "");
    }
}
```

### Decorators

* When call parseTo, parser use decorator to get excel cell from column

```js
/**
 * Example Data Class
 */
export class TestData {
    // name
    @ExcelColumn("name")
    name: string = "";

    @ExcelColumn("district")
    district: string = "";

    @ExcelColumn("type")
    type: string = "";

    @ExcelColumn("subtype")
    subtype: string = "";

    @ExcelColumnAll()
    properties: unknown = {};
}
```

* ExcelColumn

The field value will be cell under the argument key

* ExcelColumnAll

The field value will be a key-value object for all key in excel


### Parse row to an object

* It dependent on decorators

```js
while (excel.next()) {
    const obj = new TestData(); // Object class is any typescript class
    // the obj should has decorators on it's field
    excel.parseTo(obj);
}
```