open-index/open-npm huggingface dataset:
npm package: @rnavarro2706/tiny
Description: Removes all spaces from a string
Latest version: 14.0.0

# tinys-demo

## Install

```
$ npm install @rnavarro2706/tiny
```

## Usage

```js
const tiny = require("@rnavarro2706/tiny");

tiny("So much space!");
//=> "Somuchspace!"

tiny(1337);
//=> Uncaught TypeError: Tiny wants a string!
//    at tiny (<anonymous>:2:41)
//    at <anonymous>:1:1
```
npm package: @rnavarro2706/tiny-demo
Description: Removes all spaces from a string
Latest version: 2.0.0

## Install

```
$ npm install @rnavarro2706/tiny
```

## Usage

```js
const tiny = require("@rnavarro2706/tiny-demo");

tiny(“Much space, much Wao!");
//=> "Muchspace,muchWao!"
tiny(1337);
//=> Uncaught TypeError: Only strings allowed in!
//    at tiny (<anonymous>:2:41)
//    at <anonymous>:1:1
```
npm package: @rnb-web3/connect-wallet-modal
Description: Provides a modal window with buttons for connection with various crypto wallets.
Latest version: 2.0.0

# Connect Wallet Modal

Provides a modal window with buttons for connection with various crypto wallets.

### Custom

You can configure the list of wallets displayed in the modal.
The package provides wallet connection buttons that are meant to be used inside the modal.
You can use them, or you can make your own.

Import the basic WalletsModal component with required wallet connection buttons:

```ts
import {
  WalletsModal,
  ConnectMetamask,
  ConnectWalletConnect,
} from "@rnb-web3/connect-wallet-modal";
```

Use it like this:

```tsx
<WalletsModal
  open={isOpen}
  onClose={handleClose}
  shouldInvertWalletIcon={false} // set to true for the dark color theme
>
  {(commonProps) => (
    <>
      <ConnectMetamask key="Metamask" {...commonProps} />
      <ConnectWalletConnect key="WalletConnect" {...commonProps} />
    </>
  )}
</WalletsModal>
```

### For Ethereum

The package provides the modal variant with the predefined list of wallets, which work with the Ethereum network.

Import the component:

```ts
import { WalletsModalForEth } from "@rnb-web3/connect-wallet-modal";
```

Use it like this:

```tsx
<WalletsModalForEth {...props} />
```

#### How to hide a wallet

You can hide one or several wallet connection buttons from the list of wallets in the modal.  
Use the `hiddenWallets` property like this:

```tsx
<WalletsModalForEth hiddenWallets={["Metamask"]} />
```
npm package: @rnb-web3/web3-react
Description: This is a legacy package, which previously included various helpers and wrappers for the `web3-react` library.
Latest version: 2.0.0

### @rnb-web3/web3-react

This is a legacy package, which previously included various helpers and wrappers for the `web3-react` library.

The `web3-react` library is not used in root lib anymore, so `@rnb-web3/web3-react` was reworked to use wagmi
and now contains a few hooks and helpers for backwards compatibility.
npm package: @rnbo/js
Description: JavaScript runtime for using exported RNBO Patchers in a Web Browser
Author: Cycling '74
Latest version: 1.4.3

# @rnbo/js
Run exported RNBO Patches in a web browser and integrate them into your applications.

## Installation

```sh
npm install @rnbo/js
```

## Documentation

See [https://rnbo.cycling74.com](https://rnbo.cycling74.com)

## API

See [https://rnbo.cycling74.com/js](https://rnbo.cycling74.com/js)
npm package: @rnbw/aws-cdk-s3-website
Description: CDK constructs for building S3-hosted websites
Author: Luis Farzati
Latest version: 0.1.0

# aws-cdk-s3-website

AWS CDK constructs for building S3-hosted websites.

## Library

### S3Website

```javascript
const { S3Website } = require("@rnbw/aws-cdk-s3-website");

class MyStack extends cdk.Stack {
  // ...

  const website = new S3Website(this, "MyWebsite", {
    zoneDomain: "example.com",
    domain: "www.example.com",
    sourcePath: "./public"
  });

  // ...

  new cdk.CfnOutput(this, "SiteUrl", {
    value: `https://${website.dnsDomainRecord.domainName}`
  });

  new cdk.CfnOutput(this, "BucketArn", {
    value: website.bucket.bucketArn
  });

  new cdk.CfnOutput(this, "DistributionId", {
    value: website.distribution.distributionId
  });
}
```

Check the [full example](examples).

## Development

### Useful commands

- `yarn build`
- `yarn test`

## Roadmap

- S3Website: domain aliases
- S3Website: domain redirection
npm package: @rnbw/aws-cdk-static-website
Description: CDK constructs for building static websites
Author: Luis Farzati
Latest version: 0.1.0

# aws-cdk-static-website

AWS CDK constructs for building static websites.

## Library

### StaticWebsite

```javascript
const { StaticWebsite } = require("@rnbw/aws-cdk-static-website");

class MyStack extends cdk.Stack {
  // ...

  const website = new StaticWebsite(this, "MyWebsite", {
    zoneDomain: "example.com",
    domain: "www.example.com",
    sources: [
      {
        customOriginSource: {
          domainName: "some.custom-origin.com"
        },
        behaviors: [{ isDefaultBehavior: true }]
      }
    ]
  });

  // ...

  new cdk.CfnOutput(this, "SiteUrl", {
    value: `https://${website.dnsDomainRecord.domainName}`
  });

  new cdk.CfnOutput(this, "DistributionId", {
    value: website.distribution.distributionId
  });
}
```

Check the [full example](examples).

## Development

### Useful commands

- `yarn build`
- `yarn test`

## Roadmap

- StaticWebsite: domain aliases
- StaticWebsite: domain redirection
npm package: @rnbw/aws-cdk-tls
Description: TLS-related CDK constructs
Author: Luis Farzati
Latest version: 0.1.0

# aws-cdk-tls

TLS-related constructs for AWS CDK.

## Library

### Domain certificate

```javascript
const { DomainCertificate } = require("@rnbw/aws-cdk-tls");

class MyStack extends cdk.Stack {
  // ...

  const { certificate } = new DomainCertificate(this, "www-example-com-tls", {
    zoneDomain: "example.com",
    domain: "www.example.com"
  });

  // ...

  new cdk.CfnOutput(this, "CertificateArn", {
    value: certificate.certificateArn
  });
}
```

Check the [full example](examples).

## Development

### Useful commands

- `yarn build`
- `yarn test`

## Roadmap

- DomainCertificate: subject alternative names
npm package: @rnd7/rum-maker
Description: Rumbullion ES6 build system
Author: rnd7
Latest version: 1.0.19

# rum-maker
Rumbullion build tool. Transpiling ES6 for multiple targets. Configured via package.json. Utilizing Rollup and Babel. This tool is not a generic bundler and transpiler. It exactly fits the Rumbullion needs but nothing more. Primary purpose is to get rid of config files and dependecies within a micro package project.

## Install
I prefer installation per package. But you can also install it global to link the make-rum command systemwide.
```
npm i -D @rnd7/rum-maker
```

## Run
Configure it within the package.json file of your project. If present the entry setting in the rum.maker config will define the entry point otherwise it defaults to './src/index.js'. As outputs the package module, main and browser will be used when present. Module transpiles to es, main to cjs, and browser to browser compatible cjs module.

```json
{
  "name": "myPackage",
  "module": "dist/my-package-es.js",
  "main": "dist/my-package-cjs.js",
  "browser": "dist/my-package-browser.js",
  "rum": {
    "maker": {
      "entry": "src/index.js"
    }
  },
  "scripts": {
    "build": "make-rum"
  },
  "devDependencies": {
    "@rnd7/rum-maker": "^1.0.16"
  }
}
```
And afterwards you can run the script using

```bash
npm run build
```

Or execute it via npx from your project root, while it still uses the package.json for configuration

```bash
npx make-rum
```

You might also invoke it by poiting node towards the bin js, though it is only recommended for development purposes or to transpile the rum-maker using rum-maker.

```bash
node bin/make-rum.js
```

## License
See the [LICENSE](https://github.com/rnd7/rum-maker/tree/master/LICENSE.md) file for software license rights and limitations (MIT).
npm package: @rnd7/rum-publisher
Description: Rumbullion git and npm helper
Author: rnd7
Latest version: 1.0.55

# rum-publisher
Rumbullion version and package management helper. Basically a simple Taskrunner to automate git commits, npm versioning and build using rum-maker.

## Install
I prefer installation per package. But you can also install it global to link the make-rum command systemwide.
```
npm i -D @rnd7/rum-publisher
```

## Run
You run this command using npx when not installed globally
```bash
npx publish-rum
```

You might also invoke it by pointing node towards the bin js, though it is only recommended for development purposes or to publish the rum-publisher using rum-publisher.

```bash
node bin/publish-rum.js
```

## command line args

Commit message. Pass any string. Defaults to "rum-publisher commit".
```bash
-m "Commit for good sake"
```

NPM Version semver. Pass major, minor or patch. Defaults to patch.
```bash
-v patch
```

Build using optional [rum-maker](https://github.com/rnd7/rum-maker)
```bash
-B
--build
```

Publish to github and npm. Pass true or false. This defaults to true. You can use shortcuts (0,1 or t,f).
```bash
-p false
--publish false
```

git branch. If not set the script will use your current local branch. If this fails publish is skipped.
```bash
-B master
--branch master
```

git remote. If not set the script will use your current remote. If this fails publish is skipped.
```bash
-R origin
--remote origin
```

npm publish access. Use public or restricted. Defaults to public.
```bash
-A public
--access public
```

## License
See the [LICENSE](https://github.com/rnd7/rum-publisher/tree/master/LICENSE.md) file for software license rights and limitations (MIT).
npm package: @rnd7/rum-random-string
Description: Generates random strings.
Author: rnd7
Latest version: 1.0.2

# rum-random-string
Rumbullion random string generator

See also:

[rum](https://github.com/rnd7/rum)

## Download
[builds](https://github.com/rnd7/rum-random-string/tree/master/dist)

## Installation

```bash
npm i @rnd7/rum-random-string

```
## Include

Via script tag
```
<script src="node_modules/@rnd7/rum-random-string/dist/rum-random-string-browser.js"></script>
```

Using require
```javascript
const randomString = require('@rnd7/rum-random-string').randomString
```

Using import
```javascript
import { randomString } from '@rnd7/rum-random-string'
```

## Usage
```javascript
console.log(randomString())
console.log(randomString(8))
console.log(randomString(8, "0123456789"))
```
## API

### Defaults
```javascript
export const RANDOM_STRING_DEFAULTS = {
  length: 16,
  charset: "abcdefghijklmnopqrstuvwxyz1234567890"
}
```

### randomString
```javascript
randomString(length, charset)
```
## Development

### Installation
Install dependencies such as rum-maker and rum-publisher
```bash
npm install
```

### Build
Production build
```bash
npm run build
```

### Publish
Publish to github and npm using
```bash
npx publish-rum -m "My commit message"
```

## License
See the [LICENSE](https://github.com/rnd7/rum-temporary-storage/tree/master/LICENSE.md) file for software license rights and limitations (MIT).
npm package: @rnd7/rum-storage
Description: Rumbullion Storage Abstraction Base Class
Author: rnd7
Latest version: 1.0.11

# Rumbullion Storage
Generic single index Storage Abstraction Base Class used by the Rumbullion Toolkit. It is more likely that you want to use a derived Class such as the TemporaryStorage Class.

See also:

[Rumbullion](https://github.com/rnd7/rum)

[TemporaryStorage](https://github.com/rnd7/rum-temporary-storage)

## Download
[Builds](https://github.com/rnd7/rum-storage/tree/master/dist)

## Installation

```bash
npm i @rnd7/rum-storage

```
## Include

Via script tag
```
<script src="node_modules/@rnd7/rum-storage/dist/rum-storage.js"></script>
```

Using require
```javascript
const Storage = require('@rnd7/rum-storage')
```

Using import
```javascript
import { Storage } from '@rnd7/rum-storage'
```

## Usage
```javascript
let myStorage = new Storage()
let sid = 'someStorageId'
myStorage.insert({sid, myProperty: "myValue"}).then(console.log)
```
## API

### Constructor
Pass optional configuration data as opts parameter assigned directly to the instance.
```javascript
new Storage(opts)
```

The Defaults are. The index can be either a string or an array. When using and array this will result in a combined index of multiple properties. The delimiter is used to generate the index key string.
```javascript
{
  index: 'sid', // storage id as default index field
  indexDelimiter: '-'
}
```

### insert
Inserts a new record. Pass some JSONable Data as record parameter. If it contains a property matching the storage index this key will be used otherwise a random key is generated. Returns Promise resolving with the inserted data or rejecting with an error code.
```javascript
insert(record)
```

### list
List all records. Returns Promise resolving with an array containing all sids.
```javascript
list()
```

### find
Find a single record. Returns Promise resolving with the corresponding data. You can either pass the index or an object containing the indexed field.
```javascript
find(recordOrIndex)
```

### update
Updates a single record. The data passed is merged into the actual record. Returns Promise resolving with the updated record. The Base Storage Class update is using assign, so keep in mind when working with references. Prefer shallow objects.
```javascript
update(record)
```

### upsert
Updates or inserts data. Internally update and insert are invoked.
```javascript
upsert(recordOrIndex)
```

### replace
Replaces an existing record.
```javascript
replace(record)
```

### remove
Removes an existing record. Pass an object or the index.
```javascript
remove(recordOrIndex)
```

## Development

### Installation
Install development dependencies such as gulp4, webpack, babel and mocha
```bash
npm install
```

### Build
Production build
```bash
npm run build
```

### Test
Run Tests
```bash
npm test
```

## License
See the [LICENSE](https://github.com/rnd7/rum-storage/tree/master/LICENSE.md) file for software license rights and limitations (MIT).
npm package: @rnd7/rum-temporary-storage
Description: Rumbullion Temporary Storage
Author: rnd7
Latest version: 1.0.4

# Rumbullion Temporary Storage
Temporary Storage Class used within the Rumbullion toolkit. Data stored will timeout after a given period of time when not changed or at least listed.

See also:

[rum](https://github.com/rnd7/rum)

[rum-storage](https://github.com/rnd7/rum-storage)

## Download
[builds](https://github.com/rnd7/rum-temporary-storage/tree/master/dist)

## Installation

```bash
npm i @rnd7/rum-temporary-storage

```
## Include

Via script tag
```
<script src="node_modules/@rnd7/rum-temporary-storage/dist/rum-temporary-storage-browser.js"></script>
```

Using require
```javascript
const TemporaryStorage = require('@rnd7/rum-temporary-storage').TemporaryStorage
```

Using import
```javascript
import { TemporaryStorage } from '@rnd7/rum-temporary-storage'
```

## Usage
```javascript
let myStorage = new TemporaryStorage()
let sid = 'someStorageId'
myStorage.insert({sid, myProperty: "myValue"}).then(console.log)
```
## API

### Constructor
Pass optional configuration data as opts parameter assigned directly to the instance.
```javascript
new TemporaryStorage(opts)
```

TemporaryStorage Defaults:
```javascript
{
  scheduler: true,
  ttl: 1000*60*60*24,
  touchOnFind: true,
  touchOnList: true
}
```

You might also pass all [Storage](https://github.com/rnd7/rum-storage) options.

### Inherited from [Storage](https://github.com/rnd7/rum-storage).
```javascript
insert(record)
list()
find(recordOrIndex)
update(record)
upsert(recordOrIndex)
replace(record)
remove(recordOrIndex)
```

### get/set scheduler
The wipe procedure will be invoked automatically when true.
```javascript
scheduler = true || false
```

### schedule
Schedule a wipe manually.
```javascript
schedule(time)
```

### wipe
Wipe all outdated data manually. Usually not necessary.
```javascript
wipe()
```

### touch
Restart the ttl of the given record.
```javascript
touch(recordOrIndex)
```

## Development

### Installation
Install dependencies such as rum-tester, rum-maker and rum-publisher
```bash
npm install
```

### Build
Production build
```bash
npm run build
```

### Test
Run Tests
```bash
npm test
```

### Publish
Publish to github and npm using
```bash
npx publish-rum -m "My commit message"
```

## License
See the [LICENSE](https://github.com/rnd7/rum-temporary-storage/tree/master/LICENSE.md) file for software license rights and limitations (MIT).
npm package: @rnd7/rum-tester
Description: Rumbullion ES6 test-runner
Author: rnd7
Latest version: 1.0.20

# rum-tester
Rumbullion ES6 test-runner. Basically a wrapper around mocha

## Install
I prefer installation per package. But you can also install it global to link the make-rum command systemwide.
```
npm i -D @rnd7/rum-tester
```

## Run
Configure it within the package.json file of your project. If present the directory setting in the rum.tester config will define the entry point otherwise it defaults to 'test'.
```json
{
  "name": "myPackage",
  "rum": {
    "tester": {
      "directory": "test"
    }
  },
  "scripts": {
    "test": "test-rum"
  },
  "devDependencies": {
    "@rnd7/rum-tester": "^1.0.0"
  }
}
```

And afterwards you can run the script using

```bash
npm test
```

Or execute it via npx from your project root, while it still uses the package.json for configuration

```bash
npx test-rum
```

You might also invoke it by poiting node towards the bin js, though it is only recommended for development purposes or to test the rum-tester using rum-tester.

```bash
node bin/test-rum.js
```

## License
See the [LICENSE](https://github.com/rnd7/rum-tester/tree/master/LICENSE.md) file for software license rights and limitations (MIT).
npm package: @rndev666/dep
Description: A tool to analyze and visualize imports and call relationships
Author: RNDev
Latest version: 2.1.5

# @rndev666/dep

[![npm package][npm-img]][npm-url]
[![Build Status][build-img]][build-url]
[![Downloads][downloads-img]][downloads-url]
[![Issues][issues-img]][issues-url]
[![Code Coverage][codecov-img]][codecov-url]
[![Commitizen Friendly][commitizen-img]][commitizen-url]
[![Semantic Release][semantic-release-img]][semantic-release-url]

> A powerful tool to analyze and visualize dependencies between files in TypeScript/JavaScript projects

## Features

- Analyze imports and function calls between files
- Generate dependency graphs in multiple formats (JSON, D3, DOT, HTML)
- Interactive HTML visualization with D3.js
- Detect circular dependencies
- Find most imported files
- Support for both TypeScript and JavaScript projects

## Installation

```bash
npm install @rndev666/dep
```

## Usage

```bash
Usage: dep [options]

Options:
  -V, --version            output the version number
  -p, --pattern <pattern>  pattern to match files (required)
  -l, --language <language> language to analyze (ts or js) (default: "ts")
  -o, --output <file>      output file for the graph
  -f, --format <format>    output format (json, d3, dot, html) (default: "html")
  --open                   open the HTML visualization in browser (default: true)

Examples:

  # Analyze TypeScript files and generate HTML visualization
  $ dep --pattern "src/**/*.ts" --language ts --output graph.html --format html

  # Analyze JavaScript files and output JSON
  $ dep --pattern "src/**/*.js" --language js --output dependencies.json --format json
```

## Example Output

The tool provides a detailed analysis of your codebase, including:

- Total number of files analyzed
- Import dependencies between files
- Function call relationships
- Circular dependencies (if any)
- Most imported files

The HTML visualization provides an interactive graph where you can:
- Zoom and pan
- Click on nodes to see details
- Hover over edges to see relationship types
- Search for specific files or functions

[build-img]:https://github.com/bezalel6/dep-analysis/actions/workflows/release.yml/badge.svg
[build-url]:https://github.com/bezalel6/dep-analysis/actions/workflows/release.yml
[downloads-img]:https://img.shields.io/npm/dt/@rndev666/dep
[downloads-url]:https://www.npmtrends.com/@rndev666/dep
[npm-img]:https://img.shields.io/npm/v/@rndev666/dep
[npm-url]:https://www.npmjs.com/package/@rndev666/dep
[issues-img]:https://img.shields.io/github/issues/bezalel6/dep-analysis
[issues-url]:https://github.com/bezalel6/dep-analysis/issues
[codecov-img]:https://codecov.io/gh/bezalel6/dep-analysis/branch/main/graph/badge.svg
[codecov-url]:https://codecov.io/gh/bezalel6/dep-analysis
[semantic-release-img]:https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
[semantic-release-url]:https://github.com/semantic-release/semantic-release
[commitizen-img]:https://img.shields.io/badge/commitizen-friendly-brightgreen.svg
[commitizen-url]:http://commitizen.github.io/cz-cli/
npm package: @rndlabs/safe-apps-provider
Description: A provider wrapper of Safe Apps SDK
Author: Safe
Latest version: 0.1.15

# Safe Apps Provider

[![npm](https://img.shields.io/npm/v/@safe-global/safe-apps-provider)](https://www.npmjs.com/package/@safe-global/safe-apps-provider)

This is a provider that follows common standards (e.g. [EIP-1193](https://eips.ethereum.org/EIPS/eip-1193)) and can be used with various Web3 libraries (e.g. web3.js or Ethers)

### How to use

- Add npm package

```bash
yarn add @safe-global/safe-apps-provider

npm i @safe-global/safe-apps-provider
```

### SafeAppProvider

The provider can be used with the [safe-apps-react-sdk](https://github.com/safe-global/safe-apps-sdk/tree/main/packages/safe-apps-react-sdk) and common web3 libraries.

#### With Ethers.js

- [Ethers.js](https://docs.ethers.io/v5/api/providers/other/#Web3Provider)

```js
import React, { useMemo } from 'react';
import { ethers } from 'ethers';
import { useSafeAppsSDK } from '@safe-global/safe-apps-react-sdk';
import { SafeAppProvider } from '@safe-global/safe-apps-provider';

const App = () => {
  const { sdk, safe } = useSafeAppsSDK();
  const web3Provider = useMemo(() => new ethers.providers.Web3Provider(new SafeAppProvider(safe, sdk)), [sdk, safe]);

  // use provider with contracts

  return;
};

export default App;
```

#### With web3.js

- [web3.js](https://web3js.readthedocs.io/en/v1.5.2/web3.html)

```js
import React, { useMemo } from 'react';
import Web3 from 'web3';
import { useSafeAppsSDK } from '@safe-global/safe-apps-react-sdk';
import { SafeAppProvider } from '@safe-global/safe-apps-provider';

const App = () => {
  const { sdk, safe } = useSafeAppsSDK();
  const web3Provider = useMemo(() => new Web3(new SafeAppProvider(safe, sdk)), [sdk, safe]);

  // use provider with contracts

  return;
};

export default App;
```

### A note on gas limit
The ethereum transaction gas limit passed to the safe-apps-provider will be treated as safeTxGas, which is an equivalent of the ethereum transaction gas limit in the Safe context. To learn more about the safe transaction gas, read here:  
https://github.com/safe-global/safe-contracts/blob/c36bcab46578a442862d043e12a83fec41143dec/docs/safe_tx_gas.md  

If you don't want to pass a calculation and leave it to the Safe, pass 0 as the gas limit.

### More scenarios

For the SDK overview documentation, please refer to the [safe-apps-sdk](https://github.com/safe-global/safe-apps-sdk/) documentation
npm package: @rndlabs/safe-gateway-typescript-sdk
Description: # Safe Gateway TypeScript SDK
Author: katspaugh
Latest version: 0.1.5

# DO NOT USE

# Safe Gateway TypeScript SDK

[![npm](https://img.shields.io/npm/v/@rndlabs/safe-gateway-typescript-sdk?label=%40safe-global%2Fsafe-gateway-typescript-sdk)](https://www.npmjs.com/package/@rndlabs/safe-gateway-typescript-sdk)

A TypeScript SDK for the [Safe Client Gateway](https://github.com/safe-global/safe-client-gateway)

📖 [API reference](https://safe-global.github.io/safe-gateway-typescript-sdk/modules.html)

## Usage policy

NB: Safe Client Gateway isn't meant for public use.
Please _do not_ use this SDK if you're building, e.g., a Safe App.

## Using the SDK

Install:

```shell
yarn add @rndlabs/safe-gateway-typescript-sdk
```

Import:

```ts
import { getChainsConfig, type ChainListResponse } from '@rndlabs/safe-gateway-typescript-sdk'
```

Use:

```ts
const chains = await getChainsConfig()
```

The SDK needs no initialization unless you want to override the base URL. You can set an alternative base URL like so:

```ts
import { setBaseUrl } from '@rndlabs/safe-gateway-typescript-sdk'

// Switch the SDK to dev mode
setBaseUrl('https://safe-client.staging.5afe.dev')
```

The full SDK reference can be found [here](https://safe-global.github.io/safe-gateway-typescript-sdk/modules.html).

## Adding an endpoint

Endpoint types are defined in `src/types/gateway.ts`.

Each endpoint consists of:

- a function defined in `src/index.ts` (e.g. `getBalances`)
- a path definition (e.g. `'/chains/{chainId}/safes/{address}/balances/{currency}/'`)
- operation definition (e.g. `safes_balances_list`)
- response definition

To add a new endpoint, follow the pattern set by the existing endpoints.

## Eslint & prettier

This command will run before every commit:

```shell
yarn eslint:fix
```

## Tests

To run the unit and e2e tests locally:

```shell
yarn test
```

N.B.: the e2e tests make actual API calls on staging.

## Gateway API docs

The TypeScript types in this SDK are based on [Rust types](https://safe-global.github.io/safe-client-gateway/docs/routes/index.html) from the Gateway API.