open-index/open-npm huggingface dataset:
npm package: @serum-enterprises/io
Description: Modern Directory/File based Data Connectors in NodeJS
Author: Philipp Steckenbauer
Latest version: 2.0.0-beta.1

# IO

Modern Directory/File based Data Connectors in NodeJS

## Installation

```bash
npm install --save @serum-enterprises/io
```

## Usage

```typescript
import * as IO from '@serum-enterprises/io';

// Connector that stores Data in Memory (non-persistent) and has sandboxing enabled
const memory = new IO.InMemoryConnector('./data', true);

memory.writeFileSync('test.txt', 'Hello World')
	.match(
		() => memory.readFileSync('test.txt')
			.match(
				data => console.log(data),
				error => console.error(error)
			),
		error => console.error(error)
	);
```

## API

Please check [index.d.ts](./types/index.d.ts) and related Files for the full API.

## LICENSE

MIT License

Copyright (c) 2025 Serum Enterprises L.L.C-FZ

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @serum-enterprises/json
Description: Type-Safe drop-in replacement for native JSON
Author: Philipp Steckenbauer
Latest version: 3.1.0

# JSON

Type-Safe drop-in replacement for the native JSON

## Installation

```bash
npm install --save @serum-enterprises/json
```

## Usage

```typescript
import {JSON} from '@serum-enterprises/json';

const data: JSON = { name: 'John Doe', age: 25 };
const name: JSON.String = data.name;

function verify(data: JSON): boolean {
	if(!JSON.isObject(data))
		return false;

	if(!JSON.isString(data.name) || !JSON.isInteger(data.age))
		return false;

	return true;
}

if(verify(data)) {
	console.log(`Data for ${name} is correct: `);
	console.log(JSON.stringify(data, null, 2));
}
```

## API

Please check [JSON.d.ts](./types/JSON.d.ts) for the full API.

Please also note that functions prefixed with `_` are potentially mutating their Input.

## LICENSE

MIT License

Copyright (c) 2025 Serum Enterprises L.L.C-FZ

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @serum-enterprises/option
Description: Rust-like Option for TS/JS Projects
Author: Philipp Steckenbauer
Latest version: 3.2.0

# Option

Rust-like Option for TS/JS Projects

## Installation

```bash
npm install --save @serum-enterprises/option
```

## Usage

```typescript
import { Option } from '@serum-enterprises/option';

function find<T>(array: T[], element: T): Option<T> {
	const result = array.find(value => value === element);

	if(result === undefined)
		return Option.None();

	return Option.Some(result);
}

find([1, 2, 3], 2).match(
	value => console.log(`Found: ${value}`),
	() => console.error(`Element not found`)
);
```

## API

Please check [Option.d.ts](./types/Option.d.ts) for the full API.

## LICENSE

MIT License

Copyright (c) 2025 Serum Enterprises L.L.C-FZ

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @serum-enterprises/path
Description: Deeply Nested Data Structure Operations with JSON Paths
Author: Philipp Steckenbauer
Latest version: 2.0.2-beta.0
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# Path

Deeply Nested Data Structure Operations with JSON Paths

## Installation

```bash
npm install --save @serum-enterprises/path
```

## Usage

This Library provides two main Types: `Path` and `Context`.

A Path is an Array of Integers and Strings that represents a location in a deeply nested data structure. It can be used to access, modify, or remove values from the data structure.

Paths are used by instances of `Context`, which is a wrapper around a JSON Data Structure, who provide methods for manipulating the Data inside the Context. The JSON Data Structure has to be modeled around [@serum-enterprises/json](https://www.npmjs.com/package/@serum-enterprises/json).

There are 4 main operations available in the Context:
- `get`: Get the value at the specified path.
- `set`: Set the value at the specified path.
- `remove`: Remove the value at the specified path.
- `has`: Check if the value at the specified path exists.

All of those operations are available as non-atomic, mutating static methods, or as atomic instance methods that modify the Context in place.

To make the static methods atomic and immutable, the given target data for `set` and `remove` as well as the return value of `get` should be deeply cloned. The [@serum-enterprises/json](https://www.npmjs.com/package/@serum-enterprises/json) can be used for that purpose. It is also used internally by the Context, therefore installing it has no additional cost.

## API

Please check [Path.d.ts](./types/Path.d.ts) for the full API.

## LICENSE

MIT License

Copyright (c) 2025 Serum Enterprises L.L.C-FZ

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @serum-enterprises/result
Description: Rust-like Result for TS/JS Projects
Author: Philipp Steckenbauer
Latest version: 3.0.1

# Result

Rust-like Result for TS/JS Projects

## Installation

```bash
npm install --save @serum-enterprises/result
```

## Usage

```typescript
import { Result } from '@serum-enterprises/result';

function divide(a: number, b: number): Result<number, RangeError> {
	if (b === 0)
		return Result.Err(new RangeError(`Cannot divide by Zero`));

	return Result.Ok(a / b);
}

Result.attempt<[number, number], SyntaxError>(() => JSON.parse('[10, 0]'))
	.match<Result<number, RangeError | SyntaxError>>(
		([a, b]) => divide(a, b),
		error => Result.Err(error)
	)
	.match(
		value => console.log(`Result: ${value}`),
		error => console.error(`Error: ${error.message}`)
	);
```

## API

Please check [Result.d.ts](./types/Result.d.ts) for the full API.

## LICENSE

MIT License

Copyright (c) 2025 Serum Enterprises L.L.C-FZ

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @serum-enterprises/serum-language-designer
Description: A modern Grammar Builder and Parser
Author: Philipp Steckenbauer
Latest version: 2.0.0-beta.4

# Serum Language Designer (SDL)

This Language Designer is made to provide an easy way of creating formal Grammars and parsing a string against them. They are based on a Graph-Node System, which allows for easy creation of complex Grammars and optimization of said Grammars by specific Rules.

## Introduction

### Terms

Every Grammar consists of Terms. A Term is a single Node in the Grammar Graph and can represent either a fixed String or a Regular Expression.
If it can't match the String or RegExp against the source String, it will throw a MisMatch Error.

### 

## Internals
A Grammar Node has 5 important Properties:
- `Match`: A Regular Expression or String that is used to match the source String
- `Name`: An optional the Name of the Node (to be included in the final AST)
- `Greedy`: A boolean that determines whether the Node should be greedy or not (i.e. match as much as possible)
- `Optional`: A boolean that determines whether the Node is optional or not (i.e. match 0 or 1 times)
- `Children`: A list of Grammar Nodes that are children of this Grammar Node

Parsing Strategy:
- If the current Node is not a Custom Throw Node, try to match the current Node
	- On Error, return a MisMatch Error
	- On Success, try to match all Children
		- If one of the Children fails, continue with the next one
		- If all Children fail, try to recover with a recovery Component
			- If the recovery Component fails, return a MisMatch Error
			- If the recovery Component succeeds, return a Recovery Node
		- On Success, return a Match Node
- If the current Node is a Custom Throw Node, throw a Custom Error
npm package: @serum-enterprises/vlq
Description: A VLQ Implementation for NodeJS using BigInts and Buffers
Author: Philipp Steckenbauer
Latest version: 1.1.0-beta.0

# Variable Length Quantity (VLQ) Encoding

A VLQ Implementation for NodeJS using BigInts and Buffers

## Installation

```bash
npm install --save @serum-enterprises/vlq
```

## Example Usage

```typescript
import * as VLQ from '@serum-enterprises/vlq';

const unsignedInteger = 1234567890123456789012345678901234567890n;

const result = VLQ.encodeUnsignedInteger(unsignedInteger);

result.match(
	console.log,
	console.error
);
```

**Note: All VLQ Functions return a Result. See @serum-enterprises/result for more Information.**

## API

Please check [VLQ.d.ts](./types/VLQ.d.ts) for the full API and a list of possible Errors.

## LICENSE

MIT License

Copyright (c) 2025 Serum Enterprises L.L.C-FZ

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @serus/craco-plugin-react-hot-reload
Description: This craco plugin, allows you to add hot load support to create-react-app without ejecting it
Latest version: 0.0.6

# craco-plugin-react-hot-reload

**Prerequisites**

1. Install [craco](https://github.com/sharegate/craco)
2. [react-hot-reload](https://github.com/gaearon/react-hot-loader)
3. Regarding [this](https://github.com/gaearon/react-hot-loader#react--dom) install proper @hot-loader/react-dom

![](https://img.shields.io/npm/v/@serus/craco-plugin-react-hot-reload.svg?style=flat)
![](https://img.shields.io/npm/dt/@serus/craco-plugin-react-hot-reload.svg?style=flat)

## Install

```
npm install craco-plugin-react-hot-reload --save-dev
```

## Usage

1. Add the plugin into your craco.config.js;

```
reactHotReloadPlugin = require('craco-plugin-react-hot-reload');

module.exports = {
    plugins: [{
        plugin: reactHotReloadPlugin
    }]
}
```

2. Follow 'step 2' from https://github.com/gaearon/react-hot-loader , replicated below:

```js
Mark your root component as hot-exported:
// App.js
import React from 'react'
import { hot } from 'react-hot-loader'

const App = () => <div>Hello World!</div>

export default hot(module)(App)
```

## Acknowledgements

[@cdharris](https://github.com/cdharris) for having created [react-app-rewire-hot-loader](https://github.com/cdharris/react-app-rewire-hot-loader).

## License

Licensed under the MIT License, Copyright ©️ 2018 Hasan Ayan. See [LICENSE.md](LICENSE.md) for more information.
npm package: @serusko/cra-template-common
Description: The base TypeScript template for Create React App.
Latest version: 1.0.14

# cra-template-common

Common temaplate including some small improvements:

- Typescript ready
- prettier onSave
- eslint with enhanced rules
- stylelint
- VSCode / Codium workspace
- commitlint
- some handy VSCode plugins

## Recommendations / Before you start

- template is using handy [Real Favicon Generator](https://realfavicongenerator.net) = upload your image and replace icons
- if u are using `styled-components` please improve `.stylelint.config/js` [see more](https://styled-components.com/docs/tooling#stylelint) or [sass config](https://github.com/kristerkari/stylelint-scss)
- feel free to customize [commitlint](https://commitlint.js.org/#/) as [husky](https://github.com/typicode/husky) pre-commit hook (e.g. add [Jira ticket requirement](https://www.npmjs.com/package/commitlint-plugin-jira-rules))

## Known issues
- [devDependecies cannot be splitted](https://github.com/facebook/create-react-app/issues/8082) on template level, feel free to do it on your own 
- `@typescript-eslint/eslint-plugin` must be `3.4.0` and more and you need to move it to dev dependency bcs of console warning 


## Usage 

```sh
npx create-react-app my-app --template @serusko/common

# or

yarn create react-app my-app --template @serusko/common
```
npm package: @serusko/form
Description: This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
Author: @serusko
Latest version: 1.0.4
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# Getting Started with Create React App

This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).

## Available Scripts

In the project directory, you can run:

### `yarn start`

Runs the app in the development mode.\
Open [http://localhost:3000](http://localhost:3000) to view it in the browser.

The page will reload if you make edits.\
You will also see any lint errors in the console.

### `yarn test`

Launches the test runner in the interactive watch mode.\
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.

### `yarn build`

Builds the app for production to the `build` folder.\
It correctly bundles React in production mode and optimizes the build for the best performance.

The build is minified and the filenames include the hashes.\
Your app is ready to be deployed!

See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.

### `yarn eject`

**Note: this is a one-way operation. Once you `eject`, you can’t go back!**

If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.

Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.

You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.

## Learn More

You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).

To learn React, check out the [React documentation](https://reactjs.org/).
npm package: @serussi/p360
Description: Wrapper for Public 360 SIF RPC Web Service from Tieto
Author: Mats Andreassen
Latest version: 1.6.8

[![Build Status](https://travis-ci.com/vtfk/p360.svg?branch=master)](https://travis-ci.com/vtfk/p360)
[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat)](https://github.com/feross/standard)

# p360

Node wrapper for Public 360 SIF RPC Web Service from [Tieto](https://www.tieto.no/).
Updated version of @serussi/p360.

# Installation

```bash
$ npm install @serussi/p360 --save
```

## SIF documentation

SI Integration Framework (SIF) is public 360s RPC-webservice.

For a full list of calls and callbacks see the documentation [here](https://github.com/telemark/skoleskyss-arbeid/blob/master/biztalk/GenericWebServiceLayer.pdf)

## Usage

```JavaScript
(async () => {
  const p360 = require('@serussi/p360')

  const options = {
    host: 'server.domain.no',
    authkey: 'your-rpc-auth-key'
  }
  try {
    const client = p360(options)
    const { ContactService } = client
    const result  = await contactService.GetContactPersons({ parameter: { Name: 'Maccyber%' } })
    console.log(JSON.stringify(result, null, 2))
  } catch (error) {
    console.error(error)
  }
})()
```

# License

[MIT](LICENSE)
npm package: @serv-official/vault-chain
Description: This is a SDK to integrate with Serv Vault+. In order to be able to use correctly you must hast the Extension already installed in your Chrome browser.
Latest version: 0.0.0-alpha.22

#Vault-SDK

This is a SDK to integrate with Serv Vault+. In order to be able to use correctly you must hast the Extension already installed in your Chrome browser.

## Installation

You can install the SDK with your favorite package manager:

```sh
npm i @serv-official/vault-sdk
```

```sh
yarn add @serv-official/vault-sdk
```

or

```sh
pnpm i @serv-official/vault-sdk
```

## Usage

The SDK exposes different functions that you can use.

1. First you need to request access from your website

```ts
import * as Serv from "@serv-official/vault-sdk";

// ... some code

const someName = async () => {
  const isSuccess = await Serv.requestAccess();
  if (isSuccess) {
    // handle success
  } else {
    // handle error
  }
};
```

After calling the `requestAccess` function the Vault+ Chrome Extension should open. Follow the steps it requires you to do and, at the end you should grant or deny the access.

_Right now we don't have error handling. If you close the extension window the promise `requestAccess` returns won't be resolved or rejected. This behavior applies to every other function of the `Serv` object._

Once you have succesfully granted access to you web application you can call what evet other function the Serv object has.

## Documentation

### requestAccess

Function used to request access for a specific website. It returns a boolean value stating if the access was successfully granted by the Vault+ Extension or not.

```ts
requestAccess(): Promise<boolean>
```

### denyAccess

Function used to deny access for a specific website. It returns a boolean value stating if the access was successfully revoked by the Vault+ Extension or not.

```ts
denyAccess(): Promise<boolean>
```

### getCertificates

Function that return all the granted certificates from the Vault+ Extension.

```ts
getCertificates(): Promise<EventGetCertificatesResponseData>
```

The type `EventGetCertificatesResponseData` is a list of `CredentialSchema`

### claimCertificate

Function that claims a specific cetificate.

```ts
type CertificateName =
  | "marine-corps"
  | "us-army"
  | "us-air-force"
  | "us-coast-guard"
  | "us-navy";

claimCertificate(certificateName: CertificateName): Promise<EventClaimCertificateResponseData>
```

The type `EventClaimCertificateResponseData` is also a `CredentialSchema`

## CredentialSchema

Depending on the credential the credentialSubject can change its type.

```ts
export type CredentialSchema<
  CredentialSubject extends object = Record<any, any>
> = {
  issuanceDate: number;
  credentialSubject: CredentialSubject;
  issuer: {
    id: string;
  };
  id: string;
  type: string[];
  credentialStatus: {
    id: string;
    type: "valid";
  };
  "@context": string[];
  proof: {
    type: "JwtProof2020";
    jwt: string;
  };
};
```
npm package: @serv-official/vault-credentials
Description: This is a SDK to integrate with Serv Vault+. In order to be able to use correctly you must hast the Extension already installed in your Chrome browser.
Latest version: 0.0.0-alpha.22

#Vault-SDK

This is a SDK to integrate with Serv Vault+. In order to be able to use correctly you must hast the Extension already installed in your Chrome browser.

## Installation

You can install the SDK with your favorite package manager:

```sh
npm i @serv-official/vault-sdk
```

```sh
yarn add @serv-official/vault-sdk
```

or

```sh
pnpm i @serv-official/vault-sdk
```

## Usage

The SDK exposes different functions that you can use.

1. First you need to request access from your website

```ts
import * as Serv from "@serv-official/vault-sdk";

// ... some code

const someName = async () => {
  const isSuccess = await Serv.requestAccess();
  if (isSuccess) {
    // handle success
  } else {
    // handle error
  }
};
```

After calling the `requestAccess` function the Vault+ Chrome Extension should open. Follow the steps it requires you to do and, at the end you should grant or deny the access.

_Right now we don't have error handling. If you close the extension window the promise `requestAccess` returns won't be resolved or rejected. This behavior applies to every other function of the `Serv` object._

Once you have succesfully granted access to you web application you can call what evet other function the Serv object has.

## Documentation

### requestAccess

Function used to request access for a specific website. It returns a boolean value stating if the access was successfully granted by the Vault+ Extension or not.

```ts
requestAccess(): Promise<boolean>
```

### denyAccess

Function used to deny access for a specific website. It returns a boolean value stating if the access was successfully revoked by the Vault+ Extension or not.

```ts
denyAccess(): Promise<boolean>
```

### getCertificates

Function that return all the granted certificates from the Vault+ Extension.

```ts
getCertificates(): Promise<EventGetCertificatesResponseData>
```

The type `EventGetCertificatesResponseData` is a list of `CredentialSchema`

### claimCertificate

Function that claims a specific cetificate.

```ts
type CertificateName =
  | "marine-corps"
  | "us-army"
  | "us-air-force"
  | "us-coast-guard"
  | "us-navy";

claimCertificate(certificateName: CertificateName): Promise<EventClaimCertificateResponseData>
```

The type `EventClaimCertificateResponseData` is also a `CredentialSchema`

## CredentialSchema

Depending on the credential the credentialSubject can change its type.

```ts
export type CredentialSchema<
  CredentialSubject extends object = Record<any, any>
> = {
  issuanceDate: number;
  credentialSubject: CredentialSubject;
  issuer: {
    id: string;
  };
  id: string;
  type: string[];
  credentialStatus: {
    id: string;
    type: "valid";
  };
  "@context": string[];
  proof: {
    type: "JwtProof2020";
    jwt: string;
  };
};
```
npm package: @serv-official/vault-errors
Description: This is a SDK to integrate with Serv Vault+. In order to be able to use correctly you must hast the Extension already installed in your Chrome browser.
Latest version: 0.0.0-alpha.22

#Vault-SDK

This is a SDK to integrate with Serv Vault+. In order to be able to use correctly you must hast the Extension already installed in your Chrome browser.

## Installation

You can install the SDK with your favorite package manager:

```sh
npm i @serv-official/vault-sdk
```

```sh
yarn add @serv-official/vault-sdk
```

or

```sh
pnpm i @serv-official/vault-sdk
```

## Usage

The SDK exposes different functions that you can use.

1. First you need to request access from your website

```ts
import * as Serv from "@serv-official/vault-sdk";

// ... some code

const someName = async () => {
  const isSuccess = await Serv.requestAccess();
  if (isSuccess) {
    // handle success
  } else {
    // handle error
  }
};
```

After calling the `requestAccess` function the Vault+ Chrome Extension should open. Follow the steps it requires you to do and, at the end you should grant or deny the access.

_Right now we don't have error handling. If you close the extension window the promise `requestAccess` returns won't be resolved or rejected. This behavior applies to every other function of the `Serv` object._

Once you have succesfully granted access to you web application you can call what evet other function the Serv object has.

## Documentation

### requestAccess

Function used to request access for a specific website. It returns a boolean value stating if the access was successfully granted by the Vault+ Extension or not.

```ts
requestAccess(): Promise<boolean>
```

### denyAccess

Function used to deny access for a specific website. It returns a boolean value stating if the access was successfully revoked by the Vault+ Extension or not.

```ts
denyAccess(): Promise<boolean>
```

### getCertificates

Function that return all the granted certificates from the Vault+ Extension.

```ts
getCertificates(): Promise<EventGetCertificatesResponseData>
```

The type `EventGetCertificatesResponseData` is a list of `CredentialSchema`

### claimCertificate

Function that claims a specific cetificate.

```ts
type CertificateName =
  | "marine-corps"
  | "us-army"
  | "us-air-force"
  | "us-coast-guard"
  | "us-navy";

claimCertificate(certificateName: CertificateName): Promise<EventClaimCertificateResponseData>
```

The type `EventClaimCertificateResponseData` is also a `CredentialSchema`

## CredentialSchema

Depending on the credential the credentialSubject can change its type.

```ts
export type CredentialSchema<
  CredentialSubject extends object = Record<any, any>
> = {
  issuanceDate: number;
  credentialSubject: CredentialSubject;
  issuer: {
    id: string;
  };
  id: string;
  type: string[];
  credentialStatus: {
    id: string;
    type: "valid";
  };
  "@context": string[];
  proof: {
    type: "JwtProof2020";
    jwt: string;
  };
};
```
npm package: @serv-official/vault-events
Description: This is a SDK to integrate with Serv Vault+. In order to be able to use correctly you must hast the Extension already installed in your Chrome browser.
Latest version: 0.0.0-alpha.22

#Vault-SDK

This is a SDK to integrate with Serv Vault+. In order to be able to use correctly you must hast the Extension already installed in your Chrome browser.

## Installation

You can install the SDK with your favorite package manager:

```sh
npm i @serv-official/vault-sdk
```

```sh
yarn add @serv-official/vault-sdk
```

or

```sh
pnpm i @serv-official/vault-sdk
```

## Usage

The SDK exposes different functions that you can use.

1. First you need to request access from your website

```ts
import * as Serv from "@serv-official/vault-sdk";

// ... some code

const someName = async () => {
  const isSuccess = await Serv.requestAccess();
  if (isSuccess) {
    // handle success
  } else {
    // handle error
  }
};
```

After calling the `requestAccess` function the Vault+ Chrome Extension should open. Follow the steps it requires you to do and, at the end you should grant or deny the access.

_Right now we don't have error handling. If you close the extension window the promise `requestAccess` returns won't be resolved or rejected. This behavior applies to every other function of the `Serv` object._

Once you have succesfully granted access to you web application you can call what evet other function the Serv object has.

## Documentation

### requestAccess

Function used to request access for a specific website. It returns a boolean value stating if the access was successfully granted by the Vault+ Extension or not.

```ts
requestAccess(): Promise<boolean>
```

### denyAccess

Function used to deny access for a specific website. It returns a boolean value stating if the access was successfully revoked by the Vault+ Extension or not.

```ts
denyAccess(): Promise<boolean>
```

### getCertificates

Function that return all the granted certificates from the Vault+ Extension.

```ts
getCertificates(): Promise<EventGetCertificatesResponseData>
```

The type `EventGetCertificatesResponseData` is a list of `CredentialSchema`

### claimCertificate

Function that claims a specific cetificate.

```ts
type CertificateName =
  | "marine-corps"
  | "us-army"
  | "us-air-force"
  | "us-coast-guard"
  | "us-navy";

claimCertificate(certificateName: CertificateName): Promise<EventClaimCertificateResponseData>
```

The type `EventClaimCertificateResponseData` is also a `CredentialSchema`

## CredentialSchema

Depending on the credential the credentialSubject can change its type.

```ts
export type CredentialSchema<
  CredentialSubject extends object = Record<any, any>
> = {
  issuanceDate: number;
  credentialSubject: CredentialSubject;
  issuer: {
    id: string;
  };
  id: string;
  type: string[];
  credentialStatus: {
    id: string;
    type: "valid";
  };
  "@context": string[];
  proof: {
    type: "JwtProof2020";
    jwt: string;
  };
};
```
npm package: @serv-official/vault-sdk
Description: This is a SDK to integrate with Serv Vault+. In order to be able to use correctly you must hast the Extension already installed in your Chrome browser.
Latest version: 0.0.0-alpha.22

#Vault-SDK

This is a SDK to integrate with Serv Vault+. In order to be able to use correctly you must hast the Extension already installed in your Chrome browser.

## Installation

You can install the SDK with your favorite package manager:

```sh
npm i @serv-official/vault-sdk
```

```sh
yarn add @serv-official/vault-sdk
```

or

```sh
pnpm i @serv-official/vault-sdk
```

## Usage

The SDK exposes different functions that you can use.

1. First you need to request access from your website

```ts
import * as Serv from "@serv-official/vault-sdk";

// ... some code

const someName = async () => {
  const isSuccess = await Serv.requestAccess();
  if (isSuccess) {
    // handle success
  } else {
    // handle error
  }
};
```

After calling the `requestAccess` function the Vault+ Chrome Extension should open. Follow the steps it requires you to do and, at the end you should grant or deny the access.

_Right now we don't have error handling. If you close the extension window the promise `requestAccess` returns won't be resolved or rejected. This behavior applies to every other function of the `Serv` object._

Once you have succesfully granted access to you web application you can call what evet other function the Serv object has.

## Documentation

### requestAccess

Function used to request access for a specific website. It returns a boolean value stating if the access was successfully granted by the Vault+ Extension or not.

```ts
requestAccess(): Promise<boolean>
```

### denyAccess

Function used to deny access for a specific website. It returns a boolean value stating if the access was successfully revoked by the Vault+ Extension or not.

```ts
denyAccess(): Promise<boolean>
```

### getCertificates

Function that return all the granted certificates from the Vault+ Extension.

```ts
getCertificates(): Promise<EventGetCertificatesResponseData>
```

The type `EventGetCertificatesResponseData` is a list of `CredentialSchema`

### claimCertificate

Function that claims a specific cetificate.

```ts
type CertificateName =
  | "marine-corps"
  | "us-army"
  | "us-air-force"
  | "us-coast-guard"
  | "us-navy";

claimCertificate(certificateName: CertificateName): Promise<EventClaimCertificateResponseData>
```

The type `EventClaimCertificateResponseData` is also a `CredentialSchema`

## CredentialSchema

Depending on the credential the credentialSubject can change its type.

```ts
export type CredentialSchema<
  CredentialSubject extends object = Record<any, any>
> = {
  issuanceDate: number;
  credentialSubject: CredentialSubject;
  issuer: {
    id: string;
  };
  id: string;
  type: string[];
  credentialStatus: {
    id: string;
    type: "valid";
  };
  "@context": string[];
  proof: {
    type: "JwtProof2020";
    jwt: string;
  };
};
```
npm package: @servable/cli
Description: > [!WARNING] > Servable is still experimental and its api may change in the future.
Author: Servable
Latest version: 1.7.1

# Servable CLI

> [!WARNING]
> Servable is still experimental and its api may change in the future.

![logo](/static/img/icon.png)

[![npm Package](https://img.shields.io/npm/v/toolbox-servable.svg?style=flat-square)](https://www.npmjs.org/package/toolbox-servable)
[![NPM Downloads](https://img.shields.io/npm/dm/toolbox-servable.svg)](https://npmjs.org/package/toolbox-servable)
[![Build Status](https://github.com/servable-community/toolbox-servable/actions/workflows/release.yml/badge.svg)](https://github.com/servable-community/toolbox-servable/actions/tests.yml)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)

## Install

```bash
npm install -g @servable/cli
```
or

```bash
yarn global add @servable/cli
```

## Usage

### Run
To launch the cli simply type:

```bash
servable
```

![The command toolbox](/static/img/s1.png)

### Command line

```
Usage:
  servable:app [<destination>] [options]


```



A full documentation is available at [https://docs.servable.app](https://docs.servable.app)
npm package: @servabofidem/chonky
Description: A File Browser component for React
Author: Timur Kuzhagaliyev
Latest version: 0.3.1

<p align="center">
    <img src="https://chonky.io/chonky-logo-v2.png" alt="Chonky v2 Logo" width="500" />
    <br />
    <a href="https://www.npmjs.com/package/chonky">
        <img
            alt="NPM package"
            src="https://img.shields.io/npm/v/chonky.svg?style=flat&colorB=ffac5c"
        />
    </a>
    <a href="https://tldrlegal.com/license/mit-license">
        <img
            alt="MIT license"
            src="https://img.shields.io/npm/l/chonky?style=flat&colorB=dcd67a"
        />
    </a>
    <a href="https://www.npmjs.com/package/chonky">
        <img
            alt="NPM downloads"
            src="https://img.shields.io/npm/dt/chonky?style=flat&colorB=aef498"
        />
    </a>
    <a href="https://github.com/TimboKZ/Chonky">
        <img
            alt="GitHub stars"
            src="https://img.shields.io/github/stars/TimboKZ/Chonky?style=flat&colorB=50f4cc"
        />
    </a>
    <a href="https://discord.gg/4HJaFn9">
        <img
            alt="Chat on Discord"
            src="https://img.shields.io/discord/696033621986770957?label=discord&style=flat&colorB=08acee"
        />
    </a>
    <br />
    <br />
    <br />
</p>

Chonky is a file browser component for React. It tries to recreate the native file
browsing experience in your browser. This means your users can make selections, drag
& drop files, toggle between _List_ and _Grid_ file views, use keyboard shortcuts, and
much more!

### [Click here for documentation and examples.](https://chonky.io/)

> Please [create an issue](https://github.com/TimboKZ/Chonky/issues) if you have a
> problem or want to request a feature.

## Preview

<p align="center">
  <img src="https://chonky.io/chonky-v2-preview.gif" alt="Chonky preview">
</p>

## License

MIT © [Tim Kuzhagaliyev](https://github.com/TimboKZ) 2020
npm package: @servant/servant-playwright
Description: Servant testing that use playwright to running browsers for tests.
Author: Stanislav Hacker
Latest version: 1.0.14

# ![Servant][logo] Servant playwright

Quick references: **[Command line][4]**, **[Node API][3]**, **[servant.json][2]**, **[dev-server][5]**

## What is it?

Servant playwright is module that use [playwright][playwright] module from [Microsoft][ms] to running tests against more
browsers. Noy you can run test on these browsers: **Chromium**, **Webkit** and **Firefox**. This list can change as playwright is
developing so actually supported browser you can find on [playwright][playwright] page. [Playwright][playwright] also support
emulating devices. Actually list of devices can be found [on device list][devices].

Module is only wrapper and provide mapping [playwright][playwright] API on Servant api.

> **Caveats**
>
> This module is optional for Servant, and it's not installed when installing Servant
> because of **size** of browsers core. To use more complex testing run `npm install @servant/servant-playwright --save-dev`
> in root project (when servant is installed).

### Examples of usage

```typescript
import { webkit } from "@servant/servant-playwright";

webkit(port, onLaunch, onStart, onEnd, device, gui);
```

```typescript
import { firefox } from "@servant/servant-playwright";

firefox(port, onLaunch, onStart, onEnd, device, gui);
```

```typescript
import { chromium } from "@servant/servant-playwright";

chromium(port, onLaunch, onStart, onEnd, device, gui);
```

### License

[Licensed under MIT][license]

[Playwright][playwright] is licensed under [Apache-2.0][license2]

[logo]: https://gitlab.com/stanislavhacker/servant/raw/master/logo.png
[playwright]: https://www.npmjs.com/package/playwright
[ms]: https://github.com/microsoft
[1]: https://docs.npmjs.com/files/package.json
[2]: https://gitlab.com/stanislavhacker/servant/blob/master/servant/doc/servant.json.md
[3]: https://gitlab.com/stanislavhacker/servant/blob/master/servant/doc/servant.nodejs.md
[4]: https://gitlab.com/stanislavhacker/servant/blob/master/servant-cli/doc/servant.clia.md
[5]: https://gitlab.com/stanislavhacker/servant/blob/master/servant-development/doc/servant.devserver.md
[license]: https://gitlab.com/stanislavhacker/servant-playwright/blob/master/LICENSE
[license2]: https://github.com/microsoft/playwright/blob/master/LICENSE
[devices]: https://github.com/Microsoft/playwright/blob/master/src/deviceDescriptors.ts