open-index/open-npm huggingface dataset:
npm package: @lorena-cocora-updivision/test-svelte-components
Description: Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte).
Latest version: 0.0.18

# create-svelte

Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte).

## Creating a project

If you're seeing this, you've probably already done this step. Congrats!

```bash
# create a new project in the current directory
npm create svelte@latest

# create a new project in my-app
npm create svelte@latest my-app
```

## Developing

Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:

```bash
npm run dev

# or start the server and open the app in a new browser tab
npm run dev -- --open
```

## Building

To create a production version of your app:

```bash
npm run build
```

You can preview the production build with `npm run preview`.

> To deploy your app, you may need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target environment.
npm package: @lorena-ssi/blockchain-lib
Description: Library created for lorena-ssi applications. All blockchain libraries created for lorena-ssi must implement this interface.
Author: Alex Puig
Latest version: 1.1.0

# Lorena-Blockchain

Library created for lorena-ssi applications. All blockchain libraries created for lorena-ssi must implement this interface.

See [@lorena-ssi/substrate-lib](https://github.com/lorena-ssi/blockchain-lib) for an implementation of this interface.
npm package: @lorena-ssi/credential-lib
Description: Lorena Credentials Management Library
Author: Alex Puig
Latest version: 1.2.0

# Credentials Library

[![Build Status](https://travis-ci.com/lorena-ssi/credential-lib.svg?branch=master)](https://travis-ci.com/lorena-ssi/credential-lib)
[![Coverage Status](https://coveralls.io/repos/github/lorena-ssi/credential-lib/badge.svg?branch=master)](https://coveralls.io/github/lorena-ssi/credential-lib?branch=master&service=github)

Library to interact with Verifiable Credentials

The Zenroom VM is used : https://github.com/lorena-ssi/zenroom-lib

## Add an organization

```javascript
    const credentials = require('credential-lib')
    let org = new credentials.Organization("did:lor:lab:1000")
    let keypair = await zenroom.newKeyPair('issuerID')
    await org.signCredential(keypair, 'issuerID', 'did:lor:lab:1000', 'https://github.com/lorena-ssi/lorena-gov/orgs/labtest/' + issuerID +'.md')

    const pubKey = keypair['issuerID'].keypair.public_key
    let check = await org.verifyCredential('issuerID', pubKey)
    // check is True
```
This is the process so far.
1. First we create an org object with the DID associated to it.
2. Then we create a new Keypait with Zenroom (or maybe we can reuse any key previously sotred in your wallet.)
3. We can now Sign the credential.
4. Verify

Json Result
```json
{
  "@context": [ "https://www.w3.org/2018/credentials/v1" ],
  "type": [ "VerifiableCredential", "Organization" ],
  "issuer": "did:lor:lab:1000",
  "issuanceDate": "2020-04-03T07:09:26.781Z",
  "credentialSubject":
    {
        "@type": "Organization",
        "id": "did:lor:lab:1000" 
    },
  "proof": {
    "type": "Curve448-Goldilocks",
    "proofPurpose": "assertionMethod",
    "verificationMethod": "https://github.com/lorena-ssi/lorena-gov/orgs/labtest/1000.md",
    "signature": "....."
  }
}
```

## Set the member of this organizatio0n

```javascript
    let org = new credentials.Organization("did:lor:lab:1000")
    org.name('Caelum Labs')

    let developer = new credentials.Persona('did:lor:lab:1001')
    developer.fullName('John','Smith', 'Matrix')

    org.member('developer', developer)
    
    // Now you can sign it and send it.
```

## Create one action

```javascript
    let action = new credentials.Action("did:lor:lab:1000", 20)
    
    let agent = new credentials.Persona('did:lor:lab:1001')
    action.agent(agent)

    
    // Now you can sign it and send it.
```
npm package: @lorena-ssi/did-resolver
Description: Resolve DID Documents from DIDs in the Lorena namespace
Author: Caelum Labs
Latest version: 0.4.5

# Lorena DID Resolver

[![Build Status](https://travis-ci.com/lorena-ssi/did-resolver.svg?branch=master)](https://travis-ci.com/lorena-ssi/did-resolver)
[![Coverage Status](https://coveralls.io/repos/github/lorena-ssi/did-resolver/badge.svg?branch=master)](https://coveralls.io/github/lorena-ssi/did-resolver?branch=master&service=github)

Resolve DID Documents from DIDs in the Lorena namespace.  This is is a plug-in for the [Decentralized Identity Foundation](https://identity.foundation) [did-resolver](https://www.npmjs.com/package/did-resolver).

## Network configurations (static data)
There are two static methods (no blockchain calls) which are useful for retrieving endpoints for different Lorena networks:

```javascript
getInfoForNetwork('labdev')
getInfoForDid('did:lor:labdev:2nQtiQG6Cgm1GYTBaaKAgr76uY7iSexUkqX')
```
... and both return the same data:
```javascript
{ "type": "substrate", "blockchainEndpoint": "wss://labdev.substrate.lorena.tech", "matrixEndpoint": "https://labdev.matrix.lorena.tech"}
```

## DID Resolver (retrieve DID Document from blockchain data)
The Lorena DID resolver exposes a function called `getResolver` which will return an object containing one of these key/value pairs.
```js
import { Resolver } from 'did-resolver'
import LorenaDidResolver from '@lorena-ssi/did-resolver'

// returns an object of { methodName: resolveFunction}
lorResolver = LorenaDidResolver.getResolver()

// If you are using only one method you can simply pass the result of `getResolver()` into the constructor
const resolver = new Resolver(lorResolver)
```

The resolver presents a simple `resolve()` function that returns a ES6 Promise returning the DID document.

```js
resolver.resolve('did:lor:and:2nQtiQG6Cgm1GYTBaaKAgr76uY7iSexUkqX/some/path#fragment=123').then(doc => console.log)

// You can also use ES7 async/await syntax
const doc = await resolver.resolve('did:lor:and:2nQtiQG6Cgm1GYTBaaKAgr76uY7iSexUkqX/some/path#fragment=123')
```

Outside of the standard `resolve()` method, LorenaDidResolver also provides a simple method to retrieve the public key for a DID, whether stored directly on the blockchain, in a DID Document, or through IPLD.

```js
const pubKey = LorenaDidResolver.getPublicKeyForDid('did:lor:maxtest:2nQtiQG6Cgm1GYTBaaKAgr76uY7iSexUkqX')

```
## License

MIT
npm package: @lorena-ssi/lorena-cli
Description: Lorena Client
Author: Alex Puig
Latest version: 1.5.0

## Lorena Client

Client to manage idspaces

```
npm install @lorena-ssi/lorena-cli
```

[![Build Status](https://travis-ci.com/lorena-ssi/lorena-cli.svg?branch=master)](https://travis-ci.com/lorena-ssi/lorena-cli)
[![Coverage Status](https://coveralls.io/repos/github/lorena-ssi/lorena-cli/badge.svg?branch=master)](https://coveralls.io/github/lorena-ssi/lorena-cli?branch=master)

## Usage

``` js
const Lorena = require('@lorena-ssi/lorena-cli').default
// const import Lorena from '@lorena-ssi/lorena-cli'
const main = async () => {
  const lorena = new Lorena({debug: true})
  lorena.connect('connectionIdString')

  lorena.on('error', (e) => {
    console.log(e)
  })

  lorena.on('ready', async () => {
    lorena.sendAction({
      recipe: 'ping', // Remote recipe we are calling to
      recipeId: 0, // Remote id of the recipeId we are calling to
      threadRef: 'pong', // Local name for your process
      threadId: 2, // Local id  for your process
      payload: {} // Payload to send
    })

  })

  lorena.on('message:pong', (payload) => {
    console.log('pong', payload)
  })
}

main()
```

## API

#### `new Lorena([serverPath[,options]] || [options])`

`serverPath` can be a valid matrix server string, default: `https://matrix.caelumlabs.com`


`options` include:
```js
{
    debug: false // set the debug option, default false
}
```

#### `createUser(username, password)`

Create Matrix user and zenroom keypair.
Returns true or false when success or not available.
Throws an error and emits `error` if fails.

#### `connect(connectionstring)`

Connect to Lorena IDSpace.
`connectionstring` is a concatenation of username-password-did

Returns true if the connection is success

Throws an error and emits `error` if fails.

#### `handshake()`

Establishes a connection with the idspace, checking public-key signatures.

#### `callRecipe(recipe, { payloadText: 'text', payloadETC: 'ETC'})`

Calls a recipe and returns the payload

Throws an error and emits `error` if fails.

#### `sendAction(recipe, recipeId, threadRef, thReadId, payload)`

Sends an action to another DID.

`recipe` Remote recipe name

`recipeId` Remote recipe Id

`threadRef`Local Recipe name

`threadId` Local recipe Id

`payload` Information to send

### `on(message[:threadRef, :type], [function(payload)])`

Listen to events and execute the callback function

`threadRef` is the one sended to `sendAction`

`type` TODO

`payload` is the data coming from the remote recipe


### `off(message[:threadRef, :type])`

Stops listening for events

## License

MIT
npm package: @lorena-ssi/lorena-sdk
Description: Lorena SDK
Author: Alex Puig
Latest version: 2.0.8

## Lorena SDK

Client library for interacting with Lorena identities

```
npm install @lorena-ssi/lorena-sdk
```

[![Build Status](https://travis-ci.com/lorena-ssi/lorena-sdk.svg?branch=master)](https://travis-ci.com/lorena-ssi/lorena-sdk)
[![Coverage Status](https://coveralls.io/repos/github/lorena-ssi/lorena-sdk/badge.svg?branch=master)](https://coveralls.io/github/lorena-ssi/lorena-sdk?branch=master)

## Usage

``` js
const Lorena = require('@lorena-ssi/lorena-sdk').default
// const import Lorena from '@lorena-ssi/lorena-sdk'
const main = async () => {
  const lorena = new Lorena({debug: true})
  lorena.connect('connectionIdString')

  lorena.on('error', (e) => {
    console.log(e)
  })

  lorena.on('ready', async () => {
    lorena.sendAction({
      recipe: 'ping', // Remote recipe we are calling to
      recipeId: 0, // Remote id of the recipeId we are calling to
      threadRef: 'pong', // Local name for your process
      threadId: 2, // Local id  for your process
      payload: {} // Payload to send
    })

  })

  lorena.on('message:pong', (payload) => {
    console.log('pong', payload)
  })
}

main()
```

## API

#### `new Lorena([serverPath[,options]] || [options])`

`serverPath` can be a valid matrix server string, default: `https://matrix.caelumlabs.com`


`options` include:
```js
{
    debug: false // set the debug option, default false
}
```

#### `createUser(username, password)`

Create Matrix user and zenroom keypair.
Returns true or false when success or not available.
Throws an error and emits `error` if fails.

#### `connect(connectionstring)`

Connect to Lorena IDspace.
`connectionstring` is a concatenation of username-password-did

Returns true if the connection is success

Throws an error and emits `error` if fails.

#### `handshake()`

Establishes a connection with the IDspace, checking public-key signatures.

#### `callRecipe(recipe, { payloadText: 'text', payloadETC: 'ETC'})`

Calls a recipe and returns the payload. A wrapper around `sendAction`.

Throws an error and emits `error` if fails.

#### `sendAction(recipe, recipeId, threadRef, thReadId, payload, linkId)`

Sends an action to another DID.

`recipe` Remote recipe name

`recipeId` Remote recipe Id

`threadRef`Local Recipe name

`threadId` Local recipe Id

`payload` Information to send

`linkId` Connection to use

### `on(message[:threadRef, :type], [function(payload)])`

Listen to events and execute the callback function

`threadRef` is the one sended to `sendAction`

`type` TODO

`payload` is the data coming from the remote recipe


### `off(message[:threadRef, :type])`

Stops listening for events

## License

MIT
npm package: @lorena-ssi/matrix-lib
Description: Lorena Matrix communications Library
Author: Alex Puig
Latest version: 1.0.13

# matrix-lib

`matrix-lib` is a caelum api for matrix connection used in `Lorena SSI`.

[![Build Status](https://travis-ci.com/lorena-ssi/matrix-lib.svg?branch=master)](https://travis-ci.com/lorena-ssi/matrix-lib)
[![Coverage Status](https://coveralls.io/repos/github/lorena-ssi/matrix-lib/badge.svg?branch=master)](https://coveralls.io/github/lorena-ssi/matrix-lib?branch=master)

## Installation

```bash
npm @lorena-ssi/matrix-lib
```

## Getting Started

```javascript
const Matrix = require('@lorena-ssi/lorena-matrix')
// Creating class Matrix with parameter `homeserver`
const matrix = new Matrix('https://matrix.org')
// Check if user exists
if ( (await matrix.available(username)) ) {
    // Registering to matrix `homeserver` with `username` and `password`
    const primaryUser = await matrix.register('username', 'password')
    // Connecting to account with username `username` and password `password`
    matrix.connect(username, password)
        .then((res)=>{console.log("Connected:", res)})
        .catch((e)=>{console.log("Error:", e)})
    // Read events: If argument=='' then all history events are received
    matrix.events('')
        .then((a,b)=>{console.log("Correct:", a)})
        .catch((e)=>{console.log("Error in events:", e)})
}
```
npm package: @lorena-ssi/maxonrow-lib
Description: Lorena Maxonrow integration library
Author: Caelum Labs
Latest version: 1.2.3

# Lorena-Maxonrow integration README

### Use Maxonrow Blockchain
Blockchain usage is specified by argument.

--didMethod=did:lor:mxn

## Design

Infer from didMethod which Blockchain class must be instantiated

![Dids structure in MXN Blockchain](docs/images/lorena-mxn.jpg)

Initially, the TokenItem structure was conceived to hold the whole Identity's public keys history.
However, due to size limitations on TokenItems, it holds only the most recent key inside the publicKeys array in metadata:
```javascript
    const metadata = {
      publicKeys: [keyStruct], // Array de keyStructures
      diddocHash: ''
    }
```

### Step by step
1) Create a Token (i.e. LORDID) 
    A Maxonrow blockchain Token is like a class definition where you define the Token Symbol, metadata and properties.
    - Symbol is the class ID
         In our case symbol = LORDID
    - Metadata is a mutable data field for this Token (class)
    - Properties is a inmutable data field for this Token (class)


2) Create a TokenItem (i.e. an Identity)
    - A TokenItem must assign a symbol (should be Token symbol it belongs to)
    - itemID = Item Unique ID (used during search)
    - Properties and metadata for this Item (object)
```javascript
    TokenItem = {
      symbol: this.symbol // Token symbol it belongs to (i.e. LORDID)
      itemID: did   // did string (must be a unique ID here)
      properties:  // immutable data (in our structure we leave it empty)
      metadata: // mutable data
    }
```

3) Mint TokenItem to the Token it belongs
```javascript
    return nonFungibleToken.NonFungibleToken.fromSymbol(this.symbol, this.wallet).then((minterIdentity) => {
      // Mint to this wallet address
      return minterIdentity.mint(this.wallet.address, tkItem).then((receipt) => {
        console.log(receipt) // do something
        return receipt
      })
    })
```

4) Query TokenItem (Identity) and get most recent Public Key
```javascript
    return nonFungibleTokenItem.NonFungibleTokenItem.fromSymbol(this.symbol, did, this.wallet).then((tkItem) => {
      console.log(tkItem.state.metadata)
      const index = JSON.parse(tkItem.state.metadata).publicKeys.length - 1
      const key = JSON.parse(tkItem.state.metadata).publicKeys[index].key
      return key
    })
```


### Practical Examples
    - [Create a Token](docs/create-token-sample.md)
    - [Create a Token Item and mint it](docs/create-tokenItem-and_mint.md)
    - [Query a Token Item](docs/query-tokenItem.md)
    - [Register a DID document Hash](docs/register-diddochash.md)
    - [Rotate key](docs/rotate-key.md)

### Running the tests
Before running the tests don't forget to export the keys and variables inside .env file (not in the repo for security reasons).
The .env file is Google Drive maxonrow-integration folder.


<!--stackedit_data:
eyJoaXN0b3J5IjpbMjA2MTYwMzYyOCwtMzI4Njg1NDU0LC0xMz
c3NjU4MjE4XX0=
-->
npm package: @lorena-ssi/substrate-lib
Description: Lorena Substrate integration library
Author: Alex Puig
Latest version: 3.0.2

# substrate-lib

`substrate-lib` is an api for Substrate used in `Lorena SSI`.

[![Build Status](https://travis-ci.com/lorena-ssi/substrate-lib.svg?branch=master)](https://travis-ci.com/lorena-ssi/substrate-lib)
[![Coverage Status](https://coveralls.io/repos/github/lorena-ssi/substrate-lib/badge.svg?branch=master)](https://coveralls.io/github/lorena-ssi/substrate-lib?branch=master)

## Installation

```bash
npm @lorena-ssi/substrate-lib
```

## Getting Started

TODO

```javascript
const Substrate = require('@lorena-ssi/substrate-lib')
// Creating class Substrate with parameter `url`
const substrate = new LorenaSubstrate('wss://your.own.substrate.com/')
}
```
npm package: @lorena-ssi/terminal
Description: Lorena Terminal
Author: Alex Puig
Latest version: 1.1.0

## Lorena Terminal

Interactive terminal for Lorena

[![Build Status](https://travis-ci.com/lorena-ssi/lorena-terminal.svg?branch=master)](https://travis-ci.com/lorena-ssi/lorena-terminal)
[![Coverage Status](https://coveralls.io/repos/github/lorena-ssi/lorena-terminal/badge.svg?branch=master)](https://coveralls.io/github/lorena-ssi/lorena-terminal?branch=master)

## Usage

```
npm install @lorena-ssi/lorena-terminal
```

npx lorena
npm package: @lorenleedev/html-diff-for-ck-editor
Description: Rendered Html Diff Library For CK-Editor
Author: Loren Lee
Latest version: 1.0.4

# ENGLISH Version

### Project Description
---
This is a library that compares and visually renders the contents of [CK-Editor](https://ckeditor.com/)

<br/>

### Demo
---
[Link](https://lorenleedev.github.io/html-diff-for-ck-editor)  

<img width="1425" alt="스크린샷 2024-10-07 오후 8 29 41" src="https://github.com/user-attachments/assets/07ef731e-ce8a-4d92-874e-c3ac79bdf334">

<br/><br/>
### How To Use
---
```javascript
import diff from "@lorenleedev/html-diff-for-ck-editor";

const before = '<p>Your content, removed this!!</p>';
const after = '<p>Your content, added this!!</p>';

const resultStringHTML = diff(before, after);

// your ck-editor code
const editor = await ClassicEditor.create(element, {
  ... // your ck-editor options
  initialData: resultStringHTML 
});
```

<br/><br/>
### For Image Diff
---
```css
/*
* add thie code on your style
*/
.Diff-Editor-Image-Insert {
    background: rgba(102, 229, 119, .35);
    padding: 10px;
}

.Diff-Editor-Image-Delete {
    background: rgba(229, 102, 134,.35);
    padding: 10px;
}

```
ck-editor wraps image tags with figure tags. The FigureAttribute extension is needed to allow inserting classes into figure tags.
Please refer to src/sample/CustomFigureAttributes.js in this repository for instructions on how to extend it.
<br/><br/><br/><br/>


# KOREAN Version

### 프로젝트 설명
---
[CK-Editor](https://ckeditor.com/)의 내용을 비교해 시각적으로 렌더링해주는 라이브러리입니다.

<br/>

### 데모
---
[Link](https://lorenleedev.github.io/html-diff-for-ck-editor)  

<img width="1422" alt="스크린샷 2024-10-07 오후 9 15 09" src="https://github.com/user-attachments/assets/dbdda159-3a4d-41a2-829d-43a4fdfc0ef5">

<br/><br/>
### 사용방법
---
```javascript
import diff from "@lorenleedev/html-diff-for-ck-editor";

const before = '<p>에디터 내용이 삭제되었습니다!</p>';
const after = '<p>에디터 내용이 추가되었습니다!</p>';

const resultStringHTML = diff(before, after);

// ck-editor 코드에서 이렇게 사용합니다.
const editor = await ClassicEditor.create(element, {
  ... // your ck-editor options
  initialData: resultStringHTML 
});
```


<br/><br/>
### 이미지 비교를 위해 추가해야하는 로직
---
```css
/*
* ck-editor를 사용하는 페이지에 아래 css를 추가하세요.
*/
.Diff-Editor-Image-Insert {
    background: rgba(102, 229, 119, .35);
    padding: 10px;
}

.Diff-Editor-Image-Delete {
    background: rgba(229, 102, 134,.35);
    padding: 10px;
}

```

ck-editor는 이미지 태그를 figure tag로 감싸고 있습니다. figure 태그에 class를 삽입할 수 있도록 FigureAttribute확장이 필요합니다.
확장하는 방법은 이 레파지토리의 src/sample/CustomFigureAttributes.js를 참고하세요.
npm package: @lorenslacis/vue-verification-code-input
Description: 🎉A verification code input
Author: suweya
Latest version: 1.0.4

# vue-verification-code-input

> 🎉A verification code input

[![NPM](https://img.shields.io/npm/v/vue-verification-code-input.svg)](https://www.npmjs.com/package/vue-verification-code-input) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)

[![NPM](https://nodei.co/npm/vue-verification-code-input.png)](https://nodei.co/npm/vue-verification-code-input/)

## Live demo

- [Demo](https://suweya.github.io/vue-verification-code-input/index.html)

## Install

```bash
npm install --save vue-verification-code-input
```

## Usage

```jsx
<template>
  <div id="app">
    <CodeInput :loading="false" class="input" v-on:change="onChange" v-on:complete="onComplete" />
  </div>
</template>

<script>
import CodeInput from "vue-verification-code-input";

export default {
  name: "app",
  components: {
    CodeInput
  },
  methods: {
    onChange(v) {
      console.log("onChange ", v);
    },
    onComplete(v) {
      console.log("onComplete ", v);
    }
  }
};
</script>
```

## PropTypes

|     Key     |  Type  |              Desc               |
| :---------: | :----: | :-----------------------------: |
|    type     |  text  |      one of number or text      |
|   fields    | number |     The count of characters     |
|  onChange   |  func  |   Trigger on character change   |
| onComplete  |  func  | Trigger on all character inputs |
| fieldWidth  | number |           input width           |
| fieldHeight | number |          input height           |
|  autoFocus  |  bool  | auto focus first input on init  |
|    title    | string |        code input title         |
|   loading   |  bool  |        show loading flag        |
|  className  | string |           class name            |
|   values    | array  |         default values          |

## License

MIT © [suweya](https://github.com/suweya)
npm package: @lorensr/ppp
Description: Purchasing power parity—sell products at comparable prices around the world 🌎🌍🌏
Author: Loren
Latest version: 0.0.2

Background: [Purchasing power parity](https://en.wikipedia.org/wiki/Purchasing_power_parity)

`npm install @lorensr/ppp`

If we had a product that cost $50 USD in the United States, and we had a customer in India, then we would charge them 26.5% of the full cost—$13.27 USD:

```js
import getPpp from '@lorensr/ppp'

const originalPrice = 50;
const countryCode = 'IN'

getPpp(countryCode).then(ppp => {
  const discountPrice = ppp.pppConversionFactor * originalPrice
  console.log(discountPrice)
  console.log(ppp)
});
```

```js
13.2690310135
{ currenciesCountry: [ { code: 'INR', name: 'Indian rupee', symbol: '₹' } ],
  countryCodeIsoAlpha3: 'IND',
  currencyMain:
   { exchangeRate: 67.39,
     code: 'INR',
     name: 'Indian rupee',
     symbol: '₹' },
  ppp: 17.884,
  pppConversionFactor: 0.26538062027006976 }
```

We recommend running this code on the server, as deciding pricing on the client is insecure. To determine the client's location, you can use their IP address and a geolocation API like [ipstack](https://ipstack.com/), or if you use Cloudflare, you use their [`CF_IPCOUNTRY` HTTP header](https://support.cloudflare.com/hc/en-us/articles/200168236-What-does-Cloudflare-IP-Geolocation-do-), which contains the client's country code. The latter method is less able to be tricked by proxies and VPNs.
npm package: @lorenstuff/amazon-selling-partner-api
Description: A package for interacting with the Amazon Selling Partner API.
Author: Loren Goodwin
Latest version: 4.0.4

# Amazon Selling Partner API
This is a Node.js module for interacting with the Amazon Selling Partner API.

## Coverage
The Amazon Selling Partner API consists of a number of individual APIs for different tasks.

This table illustrates which APIs and versions are currently covered by this package:

| API Name                      | Version     | Status              |
|-------------------------------|-------------|---------------------|
| A+ Content API                | v2020-11-01 | Fully supported     |
| Authorization API             | -           | Not yet implemented |
| Catalog Items API             | -           | Not yet implemented |
| Easy Ship API                 | -           | Not yet implemented |
| Fulfillment By Amazon API     | -           | Not yet implemented |
| Feeds API                     | -           | Not yet implemented |
| Finances API                  | -           | Not yet implemented |
| Fulfillment Inbound API       | -           | Not yet implemented |
| Fulfillment Outbound API      | -           | Not yet implemented |
| Listings API                  | v2021-08-01 | Fully supported     |
| Merchant Fulfillment API      | v0          | Fully supported     |
| Messaging API                 | -           | Not yet implemented |
| Notifications API             | -           | Not yet implemented |
| Orders API                    | v0          | Fully supported     |
| Product Fees API              | -           | Not yet implemented |
| Product Pricing API           | -           | Not yet implemented |
| Replenishment API             | -           | Not yet implemented |
| Reports API                   | v2021-06-30 | Fully supported     |
| Sales API                     | -           | Not yet implemented |
| Sellers API                   | -           | Not yet implemented |
| Services API                  | -           | Not yet implemented |
| Shipment Invoicing API        | -           | Not yet implemented |
| Shipping API                  | v1          | Fully supported     |
| Solicitations API             | -           | Not yet implemented |
| Tokens API                    | v2021-03-01 | Fully supported     |
| Uploads API                   | v2020-11-01 | Fully supported     |
| Vendor Direct Fulfillment API | -           | Not yet implemented |
| Vendor Retail Procurement API | -           | Not yet implemented |

## Documentation
Documentation will be coming at a later date.

This package has extensive type definitions which directly correspond to the [Official Documentation](https://developer-docs.amazon.com/sp-api/docs/what-is-the-selling-partner-api) as much as possible and those should be helpful in the meantime.

## Changelog
See [CHANGELOG.md](https://github.com/duckdotapk/npm-amazon-selling-partner-api/blob/main/CHANGELOG.md)

## License
[MIT](https://github.com/duckdotapk/npm-amazon-selling-partner-api/blob/main/LICENSE.md)
npm package: @lorenstuff/document-builder
Description: A collection of classes that make it easy to build complex HTML strings entirely with JavaScript.
Author: Loren Goodwin
Latest version: 8.0.4

# Document Builder
A collection of classes that make it easy to build complex HTML strings entirely with JavaScript.

## Installation
Install the package with NPM:

```
npm install @lorenstuff/document-builder
```

## License
[MIT](https://github.com/lorenstuff/document-builder/blob/main/LICENSE.md)
npm package: @lorenstuff/fritter
Description: Classes for building web servers in Node.js.
Author: Loren Goodwin
Latest version: 5.1.0

# Fritter
Fritter is a web framework for Node.js built with TypeScript to make it simple and fast to write web applications and APIs.

Inspired by Koa, Fritter provides many of the same features while removing much of the ambiguity and providing type safety.

It also comes bundled with several (optional) middlewares that cover various common use cases such as routing and serving static assets.

## Installation
Fritter is tested against the LTS version of Node.js. It may work in earlier versions, but we cannot offer any guarantees.

```
npm install @lorenstuff/fritter
```

## License
[MIT](https://github.com/lorenstuff/fritter/blob/main/LICENSE.md)
npm package: @lorenstuff/fritter-api-utilities
Description: A collection of utilities for building APIs with the Fritter web framework.
Author: Loren Goodwin
Latest version: 4.0.1

# Fritter API Utilities
A collection of utilities for building APIs with the [Fritter](https://github.com/lorenstuff/fritter) web framework.

## Installation
```
npm install @lorenstuff/fritter-api-utilities
```

## License
[MIT](https://github.com/lorenstuff/fritter-api-utilities/blob/main/LICENSE.md)
npm package: @lorenstuff/mysql-dump-archive
Description: A collection of utility functions for dumping and archiving MySQL databases.
Author: Loren Goodwin
Latest version: 3.0.2

# MySQL Dump & Archive
A collection of utility functions for dumping and archiving MySQL databases. 

This package uses [mysqldump](https://dev.mysql.com/doc/refman/8.4/en/mysqldump.html) under the hood so it has to be installed somewhere on your system. The path is provided inline so it doesn't matter where.

## License
[MIT](https://github.com/lorenstuff/mysql-database-backup/blob/main/LICENSE.md)
npm package: @lorenstuff/paypal-api
Description: Classes for interacting with PayPal's API.
Author: Loren Goodwin
Latest version: 1.0.2

# PayPal API
Classes for interacting with the PayPal API.

I made this package because PayPal does not provide a complete solution for doing this and their docs are sorely lacking in quality.

## Installation
Install the package with NPM:

```
npm install @lorenstuff/paypal-api
```

## Documentation
To use the package, simply import the `PayPalClient` class and create an instance of it with your PayPal Client ID and Secret. You will also need to specify whether the credentials are for sandbox mode or live mode:

```ts
import { PayPalClient } from "@lorenstuff/paypal-api";

const payPalClient = new PayPalClient(
	{
		sandbox: true,
		clientId: "YOUR_CLIENT_ID_HERE",
		secret: "YOUR_SECRET_HERE",
	});
```

Once you have an instance of the class, you can use it to instantiate clients for various PayPal APIs such as the Orders API or the Webhooks Management API:
```ts
import { PayPalOrdersClient } from "@lorenstuff/paypal-api";

const payPalOrdersClient = new PayPalOrdersClient(
	{
		payPalClient,
	});

// call stuff on payPalOrdersClient such as createOrder or showOrderDetails
```

Each client implements at least part of its respective API. API coverage information can be found in the next section.

## API Coverage
Currently, this library only covers portions of PayPal's API.

| API                   | Coverage | Class                          |
|-----------------------|----------|--------------------------------|
| Add Tracking          | None     | -                              |
| Catalog Products      | None     | -                              |
| Disputes              | None     | -                              |
| Identity              | None     | -                              | 
| Invoicing             | None     | -                              |
| Orders                | Full     | PayPalOrdersClient             |
| Partner Referrals     | None     | -                              |
| Payment Experience    | None     | -                              |
| Payment Method Tokens | None     | -                              |
| Payments              | None     | -                              |
| Payouts               | None     | -                              |
| Referenced Payouts    | None     | -                              |
| Subscriptions         | None     | -                              |
| Transaction Search    | None     | -                              |
| Webhooks Management   | Partial  | PayPalWebhooksManagementClient |

Portions not covered by the classes and types provided in this package can be manually accessed using the `request` method of a `PayPalClient` instance.

## Changelog
See [CHANGELOG.md](https://github.com/lorenstuff/paypal-api/blob/main/CHANGELOG.md)

## License
[MIT](https://github.com/lorenstuff/paypal-api/blob/main/LICENSE.md)
npm package: @lorenzhh/im-grid
Description: Angular Ng-Zorro Table with a lot of features
Author: Lawrence Nseir
Latest version: 1.9.0

# ImGrid

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 9.0.5.

## Code scaffolding

Run `ng generate component component-name --project im-grid` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project im-grid`.
> Note: Don't forget to add `--project im-grid` or else it will be added to the default project in your `angular.json` file. 

## Build

Run `ng build im-grid` to build the project. The build artifacts will be stored in the `dist/` directory.

## Publishing

After building your library with `ng build im-grid`, go to the dist folder `cd dist/im-grid` and run `npm publish`.

## Running unit tests

Run `ng test im-grid` to execute the unit tests via [Karma](https://karma-runner.github.io).

## Further help

To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
npm package: @lorenzhh/im-scheduler
Description: An Angular Scheduler
Latest version: 1.0.2

# AxiomScheduler

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 10.0.14.

## Code scaffolding

Run `ng generate component component-name --project axiom-scheduler` to generate a new component. You can also
use `ng generate directive|pipe|service|class|guard|interface|enum|module --project axiom-scheduler`.
> Note: Don't forget to add `--project axiom-scheduler` or else it will be added to the default project in your `angular.json` file.

## Build

Run `ng build axiom-scheduler` to build the project. The build artifacts will be stored in the `dist/` directory.

## Publishing

After building your library with `ng build axiom-scheduler`, go to the dist folder `cd dist/axiom-scheduler` and
run `npm publish`.

## Running unit tests

Run `ng test axiom-scheduler` to execute the unit tests via [Karma](https://karma-runner.github.io).

## Further help

To get more help on the Angular CLI use `ng help` or go check out
the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
npm package: @lorenzo_lewis/starlight-multi-sidebar
Description: Enable multiple sidebars with your Starlight site.
Author: Lorenzo Lewis
Latest version: 0.1.3
Deprecated: starlight-multi-sidebar has been depricated. Use @lorenzo_lewis/starlight-utils instead

# Starlight Multi-Sidebar

Have multiple sidebars in your Starlight site!

Visit the documentation for instructions on how to use: https://starlight-multi-sidebar.pages.dev
npm package: @lorenzo_lewis/starlight-utils
Description: Utilities to use with your 🌟 Starlight site.
Author: Lorenzo Lewis
Latest version: 0.3.2

# 🧰 Starlight Utils

Utilities to use with your 🌟 [Starlight](https://starlight.astro.build) site.

Visit the documentation for instructions on how to use: https://starlight-utils.pages.dev
npm package: @lorenzobloedow/vitest
Description: A blazing fast unit test framework powered by Vite
Author: Anthony Fu
Latest version: 0.34.1

# vitest

[![NPM version](https://img.shields.io/npm/v/vitest?color=a1b858&label=)](https://www.npmjs.com/package/vitest)

A blazing fast unit test framework powered by Vite.

[GitHub](https://github.com/vitest-dev/vitest) | [Documentation](https://vitest.dev/)
npm package: @lorenzoelenkov/reactoform
Description: A library that streamlines the creation and management of forms in ReactJS
Author: LorenzoElenkov
Latest version: 0.2.3

# Reactoform v0.2
API |Examples|
|--|--|


### Introduction

**Reactoform** library deals with form creation and validation, while changing inputs, contrary to other approaches, when hitting 'Submit' button. Therefore, 'Submit' button stays disabled until all inputs were validated correctly.

**Reactoform** also does not expose inputs as other libraries do. Instead, it requires an array of objects, where each object is representing one single input with its options configured.

**Reactoform** library was made by Lorenzo Elenkov as that is his own solution to form creation.


### Installation

    npm install @lorenzoelenkov/reactoform



### Quickstart

    
    import { Form } from '@lorenzoelenkov/reactoform
    
    const formInputs = [
	    { 
		    label: 'Email',
		    type: 'text',
		    validation: {
			    email: true
		    }
	    },
	    {
		    label: 'Password',
		    type: 'password',
		    validation: {
			    pattern: { value: /[A-Z]+[a-z]+[0-9]+[!@#]+/, error: 'Password must contain one lowercase, one uppercase, one number and one special character' },
			    minLength: { value: 8, error: 'Password must be at least 8 characters' }
		    }
	    }
    ]
    
    const App = () => {
	    return (
		    <div className="App">
			    <Form data={formInputs} onSubmit={value => console.log(value)}
		    </div>
	    )
    }
    

There are other types and options for inputs. You can checkout the API or Examples.

### Styling
Currently, you can include `customClass` field in `formInputs` object for each input. With a `customClass` set, you can style your labels, inputs and error spans through:

 - Vanilla CSS
 - CSS Modules
 - SASS/LESS

*Other styling options will be integrated in the future, for reference look at the roadmap*

### Roadmap

**Q1 2023**

 - Invalid inputs have a red border
 - Checkbox input
 - Multi-select input
 - Switch input
 - Animations

**Q2 2023**

 - Material UI integration
 - AntD UI integration