open-index/open-npm huggingface dataset:
npm package: @soywod/react-use-observable-state
Description: React hook that consumes any kind of observable via useState.
Author: soywod
Latest version: 0.0.9
Deprecated: Package @soywod/react-use-observable-state is deprecated, use @soywod/react-use-observable instead.

# 👀 React use observable state [![npm](https://img.shields.io/npm/v/@soywod/react-use-observable-state?label=npm)](https://www.npmjs.com/package/@soywod/react-use-observable-state) [![gh-actions](https://github.com/soywod/react-use-observable-state/workflows/tests/badge.svg)](https://github.com/soywod/react-use-observable-state/actions?query=workflow%3Atests)

React hook that consumes any kind of observable via `useState`.

## Installation

```bash
npm install @soywod/react-use-observable-state
# or
yarn add @soywod/react-use-observable-state
```

## Definition

```typescript
declare type UseObservable = <T>(obs$: Observable<T>, defaultVal: T, fn?: UseObservableFn<T>) => [T, UseObservableFn<T>];
declare type UseObservableFn<T> = (val: T) => void;

declare const useObservable: UseObservable;
```

## Usage

The observable can be any kind of object with a `subscribe` and a `next`
property. For eg with [RxJS](https://github.com/ReactiveX/rxjs#readme):

`counter/service.ts`:

```typescript
import {BehaviorSubject} from "rxjs";

export const counter$ = new BehaviorSubject(0);
export function incrementCounter() {
  counter$.next(count => count + 1);
}
```

`counter/component.tsx`:

```typescript
import React from "react"
import {useObservable} from "react-use-observable-state";

import {counter$, incrementCounter} from "./service"

const MyComponent: FC = () => {
  const [count] = useObservable(counter$, counter$.value);
  return <button onClick={incrementCounter}>{count}</button>;
}
```

## Development

```bash
git clone https://github.com/soywod/react-use-observable-state.git
cd react-use-observable-state
yarn
```

## Tests

```bash
yarn test
```
npm package: @soyzamudio/next-gtag
Description: Google Tag (gtag.js) and Google Tag Manager hooks for Next.js applications
Author: Jose Zamudio
Latest version: 0.1.2

# next-gtag

A lightweight, type-safe Google Tag (gtag.js) and Google Tag Manager implementation for Next.js applications.

## Features

- 🚀 Easy to use hooks for Google Analytics and Google Tag Manager
- 📦 Lightweight with zero dependencies
- 💪 Full TypeScript support
- ✨ Server Component compatible
- 🔄 Simple event tracking
- 👷 Web Worker support (via Partytown)

## Installation

```bash
npm install @soyzamudio/next-gtag
# or
yarn add @soyzamudio/next-gtag
# or
pnpm add @soyzamudio/next-gtag
```

## Usage

### Google Analytics Setup

```tsx
// app/layout.tsx
import { GoogleAnalytics } from "@soyzamudio/next-gtag";

export default function RootLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  return (
    <html lang="en">
      <body>
        {children}
        <GoogleAnalytics GA_MEASUREMENT_ID={process.env.NEXT_PUBLIC_GA_ID} />
      </body>
    </html>
  );
}
```

### Event Tracking

```tsx
"use client";

import { useGoogleTag } from "@soyzamudio/next-gtag";

export default function ExamplePage() {
  const { sendEvent } = useGoogleTag();

  const handleClick = () => {
    sendEvent({
      type: "button_click",
      category: "engagement",
      label: "example_button",
    });
  };

  return <button onClick={handleClick}>Track Click</button>;
}
```

### Google Tag Manager Setup

```tsx
"use client";

import { useGoogleTagManager } from "@your-org/next-gtag";
import { useEffect } from "react";

export default function GTMProvider({
  children,
  containerId,
}: {
  children: React.ReactNode;
  containerId: string;
}) {
  const { init } = useGoogleTagManager();

  useEffect(() => {
    init({ id: containerId });
  }, [containerId]);

  return <>{children}</>;
}
```

## API Reference

### useGoogleTag

```typescript
const { init, sendEvent, config, set, get, consent } = useGoogleTag();
```

### useGoogleTagManager

```typescript
const { init, initWorker } = useGoogleTagManager();
```

### GoogleAnalytics Component

```typescript
<GoogleAnalytics
  GA_MEASUREMENT_ID="G-XXXXXXXXXX"
  dataLayer={
    {
      /* optional custom dataLayer */
    }
  }
/>
```

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## License

MIT © [Your Name]
npm package: @sozialhelden/a11yjson
Description: A harmonized data schema for describing the accessibility of physical places
Author: Henrik Hinrichs
Latest version: 31.1.1

# A standard to describe the accessibility of the physical world.

<img alt="A11yJSON icon" src="./docs/images/logo-dark.svg" align="right" />

## Project website

Please visit the official website for more information: https://a11yjson.org

## Help A11yJSON

If you think that A11yJSON is worth more attention,

- [Share your support on Twitter](https://twitter.com/share?text=I%20support%20A11yJSON,%20and%20you%20should%20too.%20RT%20to%20spread%20this%20idea!&url=https://a11yjson.org&hashtags=accessibility,a11y,a11yjson,sozialhelden)
- Consider to give it a Star on [GitHub](https://github.com/sozialhelden/a11yjson/) 🦾

Contributions are [welcome](./docs/x-contributing.md) - here is our [Code of Conduct](./code-of-conduct.md).

## Documentation

Full documentation is available in [`./docs/index.md`](./docs/index.md).
npm package: @sozialhelden/core
Description: Core utilities shared by different sozialhelden projects
Author: Sozialhelden e.V.
Latest version: 2.3.0

# @sozialhelden/core

> Core utilities shared by different sozialhelden projects.

## Getting started

Install dependencies:

```bash
npm ci
```

Run tests:

```bash
npm run test
```

Build a production version:

```bash
npm run build
```

Run linter/formatters:

```bash
# Run linter
npm run lint

# Run linter and automatically fix fixable issues
npm run lint:fix

# Run formatter
npm run format

# Run formatter and automatically fix fixable issues
npm run format:fix

# Run typecheck
npm run typecheck
```

## License

MIT
npm package: @sozialhelden/hamster-cache
Description: A cache featuring eviction based on LRU, maximal item count and TTL.
Author: Sebastian Felix Zappe
Latest version: 3.1.0
Deprecated: false

# Hamster Cache 🐹

[![Greenkeeper badge](https://badges.greenkeeper.io/sozialhelden/hamster-cache.svg)](https://greenkeeper.io/)

- Supports TypeScript
- Can limit number of cached items
- Can evic exceeding items by least recent use ('LRU')
- Supports individual time-to-live (TTL) for single items
- Gives you meta information about cached objects, for stats generation or debugging
- Allows you to bring your own internal cache (if it supports the ES6 `Map` interface)
- Lets you define a custom function to clean up, e.g. to close file handles or open connections, when it evicts an item

## Installation

```bash
npm install --save @sozialhelden/hamster-cache
#or
yarn add @sozialhelden/hamster-cache
```

## Usage examples

```typescript
import Cache from '@sozialhelden/hamster-cache';

const cache = new Cache<string, string>({
  evictExceedingItemsBy: 'lru', // or 'age'
  defaultTTL: 5000,
  maximalItemCount: 100,
});

cache.set('key', { some: 'object' }); // Add value to the cache

// Add value to the cache, but with more information
cache.set(
  'key',
  { some: 'object' },
  {
    ttl: 1000,
    dispose() {
      console.log('Object disposed!');
    },
  }
);

cache.peek('key'); // gets the cached value without side effects
cache.has('key'); // `true` if an item exists in the cache, `false` otherwise
cache.peekWithMetaInfo('key'); // same as `peek`, but returns value with meta information
cache.get('key'); // gets a value with side effect that the cache evicts the object if expired
cache.getMetaInfo('key'); // same as `get`, but returns value with meta information
cache.evictExpiredItems(); // Do this to save memory in a setInterval call - or whenever you need it!
cache.delete('key'); // removes an item from the cache
cache.clear(); // forgets all items
```

## Contributors

- [@lennerd](https://github.com/lennerd)
- [@mutaphysis](https://github.com/mutaphysis)
- [@opyh](https://github.com/opyh)

Supported by

<img alt="Sozialhelden e.V." src='./doc/sozialhelden-logo.svg' width="200" style="vertical-align: middle;">
npm package: @sozialhelden/ui
Description: > UI components shared by different sozialhelden projects.
Author: Sozialhelden e.V.
Latest version: 1.9.5

# @sozialhelden/ui

> UI components shared by different sozialhelden projects.  

Check the [Storybook](https://sozialhelden.github.io/ui/) for an overview of the available components.

## Install

Make sure you have Tailwind CSS installed in your project. If you don't have it yet, you should install and set it up first: https://tailwindcss.com/docs/installation/using-vite

Then install the library:

```bash
npm i --save @sozialhelden/ui
```

Add the following to your main CSS file, make sure to adapt the path to the `@sozialhelden/ui` package if necessary:

```css
/* Import fonts */
@import "@fontsource/inter/400.css";
@import "@fontsource/inter/400-italic.css";
@import "@fontsource/inter/500.css";
@import "@fontsource/inter/500-italic.css";
@import "@fontsource/inter/600.css";
@import "@fontsource/inter/600-italic.css";
@import "@fontsource/inter/700.css";
@import "@fontsource/inter/700-italic.css";

/* Add tailwind itself and necessary addons */
@import "tailwindcss";
@import "tw-animate-css";

/* Import tailwind config from ui library */
@import "@sozialhelden/ui/style.css";

/* Add ui library as source for class purging */
@source "../../node_modules/@sozialhelden/ui";
```
## Usage

Check the [Storybook](https://sozialhelden.github.io/ui/) for an overview of the available components.

Now you can use tailwind classes and the components provided by the `@sozialhelden/ui` package in your project, for example:

```tsx
import { Button } from "@sozialhelden/ui";

export function App() {
    return (
        <div className="p-4 bg-red-200">
            <Button>Click me!</Button>
        </div>
    );
}
```

## Development setup

Install dependencies:

```bash
npm ci
```

Run the storybook dev-server:

```bash
npm run dev
```

Build a production version of the library and storybook:

```bash
npm run build
```

Run linter/formatters:

```bash
# Run linter
npm run lint

# Run linter and automatically fix fixable issues
npm run lint:fix

# Run formatter
npm run format

# Run formatter and automatically fix fixable issues
npm run format:fix

# Run typecheck
npm run typecheck
```

## License

MIT
npm package: @sp-api-sdk/amazon-warehousing-and-distribution-2024-05-09
Description: The Selling Partner API for Amazon Warehousing and Distribution (AWD) provides programmatic access to information about AWD shipments and inventory.
Author: Bertrand Marron <bertrand@bizon.solutions>
Latest version: 1.5.6
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
npm package: @sp-api-sdk/application-integrations-api-2024-04-01
Description: With the AppIntegrations API v2024-04-01, you can send notifications to Amazon Selling Partners and display the notifications in Seller Central.
Author: Bertrand Marron
Latest version: 3.0.16

# `application-integrations-api-2024-04-01`

[![npm version](https://img.shields.io/npm/v/@sp-api-sdk/application-integrations-api-2024-04-01)](https://www.npmjs.com/package/@sp-api-sdk/application-integrations-api-2024-04-01)
[![XO code style](https://img.shields.io/badge/code_style-xo-cyan)](https://github.com/xojs/xo)

With the AppIntegrations API v2024-04-01, you can send notifications to Amazon Selling Partners and display the notifications in Seller Central.

[<img src="https://files.bizon.solutions/images/logo/bizon-horizontal.png" alt="Bizon" width="250"/>](https://www.bizon.solutions?utm_source=github&utm_medium=readme&utm_campaign=selling-partner-api-sdk)

## Documentation

Learn more about this Selling Partner API by visiting the [official documentation](https://developer-docs.amazon.com/sp-api/docs).

Also, see the [generated documentation](https://bizon.github.io/selling-partner-api-sdk/modules/_sp-api-sdk_application-integrations-api-2024-04-01.html) for this API client.

## Installing

```sh
npm install @sp-api-sdk/application-integrations-api-2024-04-01
```

## Getting Started

```javascript
import {SellingPartnerApiAuth} from '@sp-api-sdk/auth'
import {ApplicationIntegrationsApiClient} from '@sp-api-sdk/application-integrations-api-2024-04-01'

const auth = new SellingPartnerApiAuth({
  clientId: process.env.LWA_CLIENT_ID,
  clientSecret: process.env.LWA_CLIENT_SECRET,
  refreshToken: 'Atzr|…',
})

const client = new ApplicationIntegrationsApiClient({
  auth,
  region: 'eu',
})
```

## Rate Limiting

In order to retry rate limited requests (HTTP 429), you can configure the API client as such:

```javascript
const client = new ApplicationIntegrationsApiClient({
  auth,
  region: 'eu',
  rateLimiting: {
    retry: true,
    // Optionally specify a callback that will be called on every retry.
    onRetry: (retryInfo) => {
      console.log(retryInfo)
    },
  },
})
```

The rate limits used for each route are specified in the [API documentation](https://developer-docs.amazon.com/sp-api/docs).

## Logging

You can enable logging for both SP-API requests and responses by configuring the `logging.request` and `logging.response` properties.

```javascript
const client = new ApplicationIntegrationsApiClient({
  auth,
  region: 'eu',
  logging: {
    request: {
      logger: console.debug
    },
    response: {
      logger: console.debug
    },
    error: true,
  },
})
```

Specifying `true` will use the default options, specifying an object will allow you to override the default options.  
This uses [axios-logger](https://github.com/hg-pyun/axios-logger) under the hood.  
By default, if enabled, the `request` and `response` loggers will use `console.info` and the `error` logger will use `console.error`.


## License

MIT

## Miscellaneous

```
    ╚⊙ ⊙╝
  ╚═(███)═╝
 ╚═(███)═╝
╚═(███)═╝
 ╚═(███)═╝
  ╚═(███)═╝
   ╚═(███)═╝
```
npm package: @sp-api-sdk/application-management-api-2023-11-30
Description: The Selling Partner API for Application Management lets you programmatically update the client secret on registered applications.
Author: Bertrand Marron
Latest version: 3.0.16

# `application-management-api-2023-11-30`

[![npm version](https://img.shields.io/npm/v/@sp-api-sdk/application-management-api-2023-11-30)](https://www.npmjs.com/package/@sp-api-sdk/application-management-api-2023-11-30)
[![XO code style](https://img.shields.io/badge/code_style-xo-cyan)](https://github.com/xojs/xo)

The Selling Partner API for Application Management lets you programmatically update the client secret on registered applications.

[<img src="https://files.bizon.solutions/images/logo/bizon-horizontal.png" alt="Bizon" width="250"/>](https://www.bizon.solutions?utm_source=github&utm_medium=readme&utm_campaign=selling-partner-api-sdk)

## Documentation

Learn more about this Selling Partner API by visiting the [official documentation](https://developer-docs.amazon.com/sp-api/docs).

Also, see the [generated documentation](https://bizon.github.io/selling-partner-api-sdk/modules/_sp-api-sdk_application-management-api-2023-11-30.html) for this API client.

## Installing

```sh
npm install @sp-api-sdk/application-management-api-2023-11-30
```

## Getting Started

```javascript
import {SellingPartnerApiAuth} from '@sp-api-sdk/auth'
import {ApplicationManagementApiClient} from '@sp-api-sdk/application-management-api-2023-11-30'

const auth = new SellingPartnerApiAuth({
  clientId: process.env.LWA_CLIENT_ID,
  clientSecret: process.env.LWA_CLIENT_SECRET,
  refreshToken: 'Atzr|…',
})

const client = new ApplicationManagementApiClient({
  auth,
  region: 'eu',
})
```

## Rate Limiting

In order to retry rate limited requests (HTTP 429), you can configure the API client as such:

```javascript
const client = new ApplicationManagementApiClient({
  auth,
  region: 'eu',
  rateLimiting: {
    retry: true,
    // Optionally specify a callback that will be called on every retry.
    onRetry: (retryInfo) => {
      console.log(retryInfo)
    },
  },
})
```

The rate limits used for each route are specified in the [API documentation](https://developer-docs.amazon.com/sp-api/docs).

## Logging

You can enable logging for both SP-API requests and responses by configuring the `logging.request` and `logging.response` properties.

```javascript
const client = new ApplicationManagementApiClient({
  auth,
  region: 'eu',
  logging: {
    request: {
      logger: console.debug
    },
    response: {
      logger: console.debug
    },
    error: true,
  },
})
```

Specifying `true` will use the default options, specifying an object will allow you to override the default options.  
This uses [axios-logger](https://github.com/hg-pyun/axios-logger) under the hood.  
By default, if enabled, the `request` and `response` loggers will use `console.info` and the `error` logger will use `console.error`.


## License

MIT

## Miscellaneous

```
    ╚⊙ ⊙╝
  ╚═(███)═╝
 ╚═(███)═╝
╚═(███)═╝
 ╚═(███)═╝
  ╚═(███)═╝
   ╚═(███)═╝
```
npm package: @sp-api-sdk/catalog-items-api-2022-04-01
Description: Use the Selling Partner API for Catalog Items to retrieve information about items in the Amazon catalog. For more information, refer to the Catalog Items API Use Case Guide.
Author: Bertrand Marron
Latest version: 4.2.11

# `catalog-items-api-2022-04-01`

[![npm version](https://img.shields.io/npm/v/@sp-api-sdk/catalog-items-api-2022-04-01)](https://www.npmjs.com/package/@sp-api-sdk/catalog-items-api-2022-04-01)
[![XO code style](https://img.shields.io/badge/code_style-xo-cyan)](https://github.com/xojs/xo)

Use the Selling Partner API for Catalog Items to retrieve information about items in the Amazon catalog.

For more information, refer to the [Catalog Items API Use Case Guide](https://developer-docs.amazon.com/sp-api/docs/:catalog-items-api-v2022-04-01-use-case-guide).

[<img src="https://files.bizon.solutions/images/logo/bizon-horizontal.png" alt="Bizon" width="250"/>](https://www.bizon.solutions?utm_source=github&utm_medium=readme&utm_campaign=selling-partner-api-sdk)

## Documentation

Learn more about this Selling Partner API by visiting the [official documentation](https://developer-docs.amazon.com/sp-api/docs).

Also, see the [generated documentation](https://bizon.github.io/selling-partner-api-sdk/modules/_sp-api-sdk_catalog-items-api-2022-04-01.html) for this API client.

## Installing

```sh
npm install @sp-api-sdk/catalog-items-api-2022-04-01
```

## Getting Started

```javascript
import {SellingPartnerApiAuth} from '@sp-api-sdk/auth'
import {CatalogItemsApiClient} from '@sp-api-sdk/catalog-items-api-2022-04-01'

const auth = new SellingPartnerApiAuth({
  clientId: process.env.LWA_CLIENT_ID,
  clientSecret: process.env.LWA_CLIENT_SECRET,
  refreshToken: 'Atzr|…',
})

const client = new CatalogItemsApiClient({
  auth,
  region: 'eu',
})
```

## Rate Limiting

In order to retry rate limited requests (HTTP 429), you can configure the API client as such:

```javascript
const client = new CatalogItemsApiClient({
  auth,
  region: 'eu',
  rateLimiting: {
    retry: true,
    // Optionally specify a callback that will be called on every retry.
    onRetry: (retryInfo) => {
      console.log(retryInfo)
    },
  },
})
```

The rate limits used for each route are specified in the [API documentation](https://developer-docs.amazon.com/sp-api/docs).

## Logging

You can enable logging for both SP-API requests and responses by configuring the `logging.request` and `logging.response` properties.

```javascript
const client = new CatalogItemsApiClient({
  auth,
  region: 'eu',
  logging: {
    request: {
      logger: console.debug
    },
    response: {
      logger: console.debug
    },
    error: true,
  },
})
```

Specifying `true` will use the default options, specifying an object will allow you to override the default options.  
This uses [axios-logger](https://github.com/hg-pyun/axios-logger) under the hood.  
By default, if enabled, the `request` and `response` loggers will use `console.info` and the `error` logger will use `console.error`.


## License

MIT

## Miscellaneous

```
    ╚⊙ ⊙╝
  ╚═(███)═╝
 ╚═(███)═╝
╚═(███)═╝
 ╚═(███)═╝
  ╚═(███)═╝
   ╚═(███)═╝
```
npm package: @sp-api-sdk/catalog-items-api-v0
Description: The Selling Partner API for Catalog Items helps you programmatically retrieve item details for items in the catalog.
Author: Bertrand Marron
Latest version: 4.0.16

# `catalog-items-api-v0`

[![npm version](https://img.shields.io/npm/v/@sp-api-sdk/catalog-items-api-v0)](https://www.npmjs.com/package/@sp-api-sdk/catalog-items-api-v0)
[![XO code style](https://img.shields.io/badge/code_style-xo-cyan)](https://github.com/xojs/xo)

The Selling Partner API for Catalog Items helps you programmatically retrieve item details for items in the catalog.

[<img src="https://files.bizon.solutions/images/logo/bizon-horizontal.png" alt="Bizon" width="250"/>](https://www.bizon.solutions?utm_source=github&utm_medium=readme&utm_campaign=selling-partner-api-sdk)

## Documentation

Learn more about this Selling Partner API by visiting the [official documentation](https://developer-docs.amazon.com/sp-api/docs).

Also, see the [generated documentation](https://bizon.github.io/selling-partner-api-sdk/modules/_sp-api-sdk_catalog-items-api-v0.html) for this API client.

## Installing

```sh
npm install @sp-api-sdk/catalog-items-api-v0
```

## Getting Started

```javascript
import {SellingPartnerApiAuth} from '@sp-api-sdk/auth'
import {CatalogItemsApiClient} from '@sp-api-sdk/catalog-items-api-v0'

const auth = new SellingPartnerApiAuth({
  clientId: process.env.LWA_CLIENT_ID,
  clientSecret: process.env.LWA_CLIENT_SECRET,
  refreshToken: 'Atzr|…',
})

const client = new CatalogItemsApiClient({
  auth,
  region: 'eu',
})
```

## Rate Limiting

In order to retry rate limited requests (HTTP 429), you can configure the API client as such:

```javascript
const client = new CatalogItemsApiClient({
  auth,
  region: 'eu',
  rateLimiting: {
    retry: true,
    // Optionally specify a callback that will be called on every retry.
    onRetry: (retryInfo) => {
      console.log(retryInfo)
    },
  },
})
```

The rate limits used for each route are specified in the [API documentation](https://developer-docs.amazon.com/sp-api/docs).

## Logging

You can enable logging for both SP-API requests and responses by configuring the `logging.request` and `logging.response` properties.

```javascript
const client = new CatalogItemsApiClient({
  auth,
  region: 'eu',
  logging: {
    request: {
      logger: console.debug
    },
    response: {
      logger: console.debug
    },
    error: true,
  },
})
```

Specifying `true` will use the default options, specifying an object will allow you to override the default options.  
This uses [axios-logger](https://github.com/hg-pyun/axios-logger) under the hood.  
By default, if enabled, the `request` and `response` loggers will use `console.info` and the `error` logger will use `console.error`.


## License

MIT

## Miscellaneous

```
    ╚⊙ ⊙╝
  ╚═(███)═╝
 ╚═(███)═╝
╚═(███)═╝
 ╚═(███)═╝
  ╚═(███)═╝
   ╚═(███)═╝
```
npm package: @sp-api-sdk/customer-feedback-api-2024-06-01
Description: The Selling Partner API for Customer Feedback (Customer Feedback API) provides information about customer reviews and returns at both the item and browse node level.
Author: Bertrand Marron
Latest version: 1.1.15

# `customer-feedback-api-2024-06-01`

[![npm version](https://img.shields.io/npm/v/@sp-api-sdk/customer-feedback-api-2024-06-01)](https://www.npmjs.com/package/@sp-api-sdk/customer-feedback-api-2024-06-01)
[![XO code style](https://img.shields.io/badge/code_style-xo-cyan)](https://github.com/xojs/xo)

The Selling Partner API for Customer Feedback (Customer Feedback API) provides information about customer reviews and returns at both the item and browse node level.

[<img src="https://files.bizon.solutions/images/logo/bizon-horizontal.png" alt="Bizon" width="250"/>](https://www.bizon.solutions?utm_source=github&utm_medium=readme&utm_campaign=selling-partner-api-sdk)

## Documentation

Learn more about this Selling Partner API by visiting the [official documentation](https://developer-docs.amazon.com/sp-api/docs).

Also, see the [generated documentation](https://bizon.github.io/selling-partner-api-sdk/modules/_sp-api-sdk_customer-feedback-api-2024-06-01.html) for this API client.

## Installing

```sh
npm install @sp-api-sdk/customer-feedback-api-2024-06-01
```

## Getting Started

```javascript
import {SellingPartnerApiAuth} from '@sp-api-sdk/auth'
import {CustomerFeedbackApiClient} from '@sp-api-sdk/customer-feedback-api-2024-06-01'

const auth = new SellingPartnerApiAuth({
  clientId: process.env.LWA_CLIENT_ID,
  clientSecret: process.env.LWA_CLIENT_SECRET,
  refreshToken: 'Atzr|…',
})

const client = new CustomerFeedbackApiClient({
  auth,
  region: 'eu',
})
```

## Rate Limiting

In order to retry rate limited requests (HTTP 429), you can configure the API client as such:

```javascript
const client = new CustomerFeedbackApiClient({
  auth,
  region: 'eu',
  rateLimiting: {
    retry: true,
    // Optionally specify a callback that will be called on every retry.
    onRetry: (retryInfo) => {
      console.log(retryInfo)
    },
  },
})
```

The rate limits used for each route are specified in the [API documentation](https://developer-docs.amazon.com/sp-api/docs).

## Logging

You can enable logging for both SP-API requests and responses by configuring the `logging.request` and `logging.response` properties.

```javascript
const client = new CustomerFeedbackApiClient({
  auth,
  region: 'eu',
  logging: {
    request: {
      logger: console.debug
    },
    response: {
      logger: console.debug
    },
    error: true,
  },
})
```

Specifying `true` will use the default options, specifying an object will allow you to override the default options.  
This uses [axios-logger](https://github.com/hg-pyun/axios-logger) under the hood.  
By default, if enabled, the `request` and `response` loggers will use `console.info` and the `error` logger will use `console.error`.


## License

MIT

## Miscellaneous

```
    ╚⊙ ⊙╝
  ╚═(███)═╝
 ╚═(███)═╝
╚═(███)═╝
 ╚═(███)═╝
  ╚═(███)═╝
   ╚═(███)═╝
```
npm package: @sp-api-sdk/data-kiosk-api-2023-11-15
Description: The Selling Partner API for Data Kiosk lets you submit GraphQL queries from a variety of schemas to help selling partners manage their businesses.
Author: Bertrand Marron
Latest version: 3.0.16

# `data-kiosk-api-2023-11-15`

[![npm version](https://img.shields.io/npm/v/@sp-api-sdk/data-kiosk-api-2023-11-15)](https://www.npmjs.com/package/@sp-api-sdk/data-kiosk-api-2023-11-15)
[![XO code style](https://img.shields.io/badge/code_style-xo-cyan)](https://github.com/xojs/xo)

The Selling Partner API for Data Kiosk lets you submit GraphQL queries from a variety of schemas to help selling partners manage their businesses.

[<img src="https://files.bizon.solutions/images/logo/bizon-horizontal.png" alt="Bizon" width="250"/>](https://www.bizon.solutions?utm_source=github&utm_medium=readme&utm_campaign=selling-partner-api-sdk)

## Documentation

Learn more about this Selling Partner API by visiting the [official documentation](https://developer-docs.amazon.com/sp-api/docs).

Also, see the [generated documentation](https://bizon.github.io/selling-partner-api-sdk/modules/_sp-api-sdk_data-kiosk-api-2023-11-15.html) for this API client.

## Installing

```sh
npm install @sp-api-sdk/data-kiosk-api-2023-11-15
```

## Getting Started

```javascript
import {SellingPartnerApiAuth} from '@sp-api-sdk/auth'
import {DataKioskApiClient} from '@sp-api-sdk/data-kiosk-api-2023-11-15'

const auth = new SellingPartnerApiAuth({
  clientId: process.env.LWA_CLIENT_ID,
  clientSecret: process.env.LWA_CLIENT_SECRET,
  refreshToken: 'Atzr|…',
})

const client = new DataKioskApiClient({
  auth,
  region: 'eu',
})
```

## Rate Limiting

In order to retry rate limited requests (HTTP 429), you can configure the API client as such:

```javascript
const client = new DataKioskApiClient({
  auth,
  region: 'eu',
  rateLimiting: {
    retry: true,
    // Optionally specify a callback that will be called on every retry.
    onRetry: (retryInfo) => {
      console.log(retryInfo)
    },
  },
})
```

The rate limits used for each route are specified in the [API documentation](https://developer-docs.amazon.com/sp-api/docs).

## Logging

You can enable logging for both SP-API requests and responses by configuring the `logging.request` and `logging.response` properties.

```javascript
const client = new DataKioskApiClient({
  auth,
  region: 'eu',
  logging: {
    request: {
      logger: console.debug
    },
    response: {
      logger: console.debug
    },
    error: true,
  },
})
```

Specifying `true` will use the default options, specifying an object will allow you to override the default options.  
This uses [axios-logger](https://github.com/hg-pyun/axios-logger) under the hood.  
By default, if enabled, the `request` and `response` loggers will use `console.info` and the `error` logger will use `console.error`.


## License

MIT

## Miscellaneous

```
    ╚⊙ ⊙╝
  ╚═(███)═╝
 ╚═(███)═╝
╚═(███)═╝
 ╚═(███)═╝
  ╚═(███)═╝
   ╚═(███)═╝
```
npm package: @sp-api-sdk/easy-ship-2022-03-23
Description: The Selling Partner API for Easy Ship helps you build applications that help sellers manage and ship Amazon Easy Ship orders. Your Easy Ship applications can: Get available time slots for packages to be scheduled for delivery. Schedule, reschedule, and ca
Author: Bertrand Marron <bertrand@bizon.solutions>
Latest version: 2.3.6
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
npm package: @sp-api-sdk/fba-inventory-api-v1
Description: The Selling Partner API for FBA Inventory lets you programmatically retrieve information about inventory in Amazon's fulfillment network.
Author: Bertrand Marron
Latest version: 3.0.21

# `fba-inventory-api-v1`

[![npm version](https://img.shields.io/npm/v/@sp-api-sdk/fba-inventory-api-v1)](https://www.npmjs.com/package/@sp-api-sdk/fba-inventory-api-v1)
[![XO code style](https://img.shields.io/badge/code_style-xo-cyan)](https://github.com/xojs/xo)

The Selling Partner API for FBA Inventory lets you programmatically retrieve information about inventory in Amazon's fulfillment network.

[<img src="https://files.bizon.solutions/images/logo/bizon-horizontal.png" alt="Bizon" width="250"/>](https://www.bizon.solutions?utm_source=github&utm_medium=readme&utm_campaign=selling-partner-api-sdk)

## Documentation

Learn more about this Selling Partner API by visiting the [official documentation](https://developer-docs.amazon.com/sp-api/docs).

Also, see the [generated documentation](https://bizon.github.io/selling-partner-api-sdk/modules/_sp-api-sdk_fba-inventory-api-v1.html) for this API client.

## Installing

```sh
npm install @sp-api-sdk/fba-inventory-api-v1
```

## Getting Started

```javascript
import {SellingPartnerApiAuth} from '@sp-api-sdk/auth'
import {FbaInventoryApiClient} from '@sp-api-sdk/fba-inventory-api-v1'

const auth = new SellingPartnerApiAuth({
  clientId: process.env.LWA_CLIENT_ID,
  clientSecret: process.env.LWA_CLIENT_SECRET,
  refreshToken: 'Atzr|…',
})

const client = new FbaInventoryApiClient({
  auth,
  region: 'eu',
})
```

## Rate Limiting

In order to retry rate limited requests (HTTP 429), you can configure the API client as such:

```javascript
const client = new FbaInventoryApiClient({
  auth,
  region: 'eu',
  rateLimiting: {
    retry: true,
    // Optionally specify a callback that will be called on every retry.
    onRetry: (retryInfo) => {
      console.log(retryInfo)
    },
  },
})
```

The rate limits used for each route are specified in the [API documentation](https://developer-docs.amazon.com/sp-api/docs).

## Logging

You can enable logging for both SP-API requests and responses by configuring the `logging.request` and `logging.response` properties.

```javascript
const client = new FbaInventoryApiClient({
  auth,
  region: 'eu',
  logging: {
    request: {
      logger: console.debug
    },
    response: {
      logger: console.debug
    },
    error: true,
  },
})
```

Specifying `true` will use the default options, specifying an object will allow you to override the default options.  
This uses [axios-logger](https://github.com/hg-pyun/axios-logger) under the hood.  
By default, if enabled, the `request` and `response` loggers will use `console.info` and the `error` logger will use `console.error`.


## License

MIT

## Miscellaneous

```
    ╚⊙ ⊙╝
  ╚═(███)═╝
 ╚═(███)═╝
╚═(███)═╝
 ╚═(███)═╝
  ╚═(███)═╝
   ╚═(███)═╝
```
npm package: @sp-api-sdk/feeds-api-2020-09-04
Description: Effective June 27, 2024, the Selling Partner API for Feeds v2020-09-04 will no longer be available and all calls to it will fail. Integrations that rely on the Feeds API must migrate to Feeds v2021-06-30 to avoid service disruption.
Author: Bertrand Marron <bertrand@bizon.solutions>
Latest version: 3.0.6
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
npm package: @sp-api-sdk/feeds-api-2021-06-30
Description: The Selling Partner API for Feeds lets you upload data to Amazon on behalf of a selling partner.
Author: Bertrand Marron
Latest version: 3.2.14

# `feeds-api-2021-06-30`

[![npm version](https://img.shields.io/npm/v/@sp-api-sdk/feeds-api-2021-06-30)](https://www.npmjs.com/package/@sp-api-sdk/feeds-api-2021-06-30)
[![XO code style](https://img.shields.io/badge/code_style-xo-cyan)](https://github.com/xojs/xo)

The Selling Partner API for Feeds lets you upload data to Amazon on behalf of a selling partner.

[<img src="https://files.bizon.solutions/images/logo/bizon-horizontal.png" alt="Bizon" width="250"/>](https://www.bizon.solutions?utm_source=github&utm_medium=readme&utm_campaign=selling-partner-api-sdk)

## Documentation

Learn more about this Selling Partner API by visiting the [official documentation](https://developer-docs.amazon.com/sp-api/docs).

Also, see the [generated documentation](https://bizon.github.io/selling-partner-api-sdk/modules/_sp-api-sdk_feeds-api-2021-06-30.html) for this API client.

## Installing

```sh
npm install @sp-api-sdk/feeds-api-2021-06-30
```

## Getting Started

```javascript
import {SellingPartnerApiAuth} from '@sp-api-sdk/auth'
import {FeedsApiClient} from '@sp-api-sdk/feeds-api-2021-06-30'

const auth = new SellingPartnerApiAuth({
  clientId: process.env.LWA_CLIENT_ID,
  clientSecret: process.env.LWA_CLIENT_SECRET,
  refreshToken: 'Atzr|…',
})

const client = new FeedsApiClient({
  auth,
  region: 'eu',
})
```

## Rate Limiting

In order to retry rate limited requests (HTTP 429), you can configure the API client as such:

```javascript
const client = new FeedsApiClient({
  auth,
  region: 'eu',
  rateLimiting: {
    retry: true,
    // Optionally specify a callback that will be called on every retry.
    onRetry: (retryInfo) => {
      console.log(retryInfo)
    },
  },
})
```

The rate limits used for each route are specified in the [API documentation](https://developer-docs.amazon.com/sp-api/docs).

## Logging

You can enable logging for both SP-API requests and responses by configuring the `logging.request` and `logging.response` properties.

```javascript
const client = new FeedsApiClient({
  auth,
  region: 'eu',
  logging: {
    request: {
      logger: console.debug
    },
    response: {
      logger: console.debug
    },
    error: true,
  },
})
```

Specifying `true` will use the default options, specifying an object will allow you to override the default options.  
This uses [axios-logger](https://github.com/hg-pyun/axios-logger) under the hood.  
By default, if enabled, the `request` and `response` loggers will use `console.info` and the `error` logger will use `console.error`.


## License

MIT

## Miscellaneous

```
    ╚⊙ ⊙╝
  ╚═(███)═╝
 ╚═(███)═╝
╚═(███)═╝
 ╚═(███)═╝
  ╚═(███)═╝
   ╚═(███)═╝
```
npm package: @sp-api-sdk/finances-api-2024-06-19
Description: The Selling Partner API for Finances provides financial information relevant to a seller's business. You can obtain financial events for a given order or date range without having to wait until a statement period closes.
Author: Bertrand Marron
Latest version: 3.3.3

# `finances-api-2024-06-19`

[![npm version](https://img.shields.io/npm/v/@sp-api-sdk/finances-api-2024-06-19)](https://www.npmjs.com/package/@sp-api-sdk/finances-api-2024-06-19)
[![XO code style](https://img.shields.io/badge/code_style-xo-cyan)](https://github.com/xojs/xo)

The Selling Partner API for Finances provides financial information relevant to a seller's business. You can obtain financial events for a given order or date range without having to wait until a statement period closes.

[<img src="https://files.bizon.solutions/images/logo/bizon-horizontal.png" alt="Bizon" width="250"/>](https://www.bizon.solutions?utm_source=github&utm_medium=readme&utm_campaign=selling-partner-api-sdk)

## Documentation

Learn more about this Selling Partner API by visiting the [official documentation](https://developer-docs.amazon.com/sp-api/docs).

Also, see the [generated documentation](https://bizon.github.io/selling-partner-api-sdk/modules/_sp-api-sdk_finances-api-2024-06-19.html) for this API client.

## Installing

```sh
npm install @sp-api-sdk/finances-api-2024-06-19
```

## Getting Started

```javascript
import {SellingPartnerApiAuth} from '@sp-api-sdk/auth'
import {FinancesApiClient} from '@sp-api-sdk/finances-api-2024-06-19'

const auth = new SellingPartnerApiAuth({
  clientId: process.env.LWA_CLIENT_ID,
  clientSecret: process.env.LWA_CLIENT_SECRET,
  refreshToken: 'Atzr|…',
})

const client = new FinancesApiClient({
  auth,
  region: 'eu',
})
```

## Rate Limiting

In order to retry rate limited requests (HTTP 429), you can configure the API client as such:

```javascript
const client = new FinancesApiClient({
  auth,
  region: 'eu',
  rateLimiting: {
    retry: true,
    // Optionally specify a callback that will be called on every retry.
    onRetry: (retryInfo) => {
      console.log(retryInfo)
    },
  },
})
```

The rate limits used for each route are specified in the [API documentation](https://developer-docs.amazon.com/sp-api/docs).

## Logging

You can enable logging for both SP-API requests and responses by configuring the `logging.request` and `logging.response` properties.

```javascript
const client = new FinancesApiClient({
  auth,
  region: 'eu',
  logging: {
    request: {
      logger: console.debug
    },
    response: {
      logger: console.debug
    },
    error: true,
  },
})
```

Specifying `true` will use the default options, specifying an object will allow you to override the default options.  
This uses [axios-logger](https://github.com/hg-pyun/axios-logger) under the hood.  
By default, if enabled, the `request` and `response` loggers will use `console.info` and the `error` logger will use `console.error`.


## License

MIT

## Miscellaneous

```
    ╚⊙ ⊙╝
  ╚═(███)═╝
 ╚═(███)═╝
╚═(███)═╝
 ╚═(███)═╝
  ╚═(███)═╝
   ╚═(███)═╝
```
npm package: @sp-api-sdk/fulfillment-inbound-api-v0
Description: The Selling Partner API for Fulfillment Inbound lets you create applications that create and update inbound shipments of inventory to Amazon's fulfillment network.
Author: Bertrand Marron
Latest version: 4.1.14

# `fulfillment-inbound-api-v0`

[![npm version](https://img.shields.io/npm/v/@sp-api-sdk/fulfillment-inbound-api-v0)](https://www.npmjs.com/package/@sp-api-sdk/fulfillment-inbound-api-v0)
[![XO code style](https://img.shields.io/badge/code_style-xo-cyan)](https://github.com/xojs/xo)

The Selling Partner API for Fulfillment Inbound lets you create applications that create and update inbound shipments of inventory to Amazon's fulfillment network.

[<img src="https://files.bizon.solutions/images/logo/bizon-horizontal.png" alt="Bizon" width="250"/>](https://www.bizon.solutions?utm_source=github&utm_medium=readme&utm_campaign=selling-partner-api-sdk)

## Documentation

Learn more about this Selling Partner API by visiting the [official documentation](https://developer-docs.amazon.com/sp-api/docs).

Also, see the [generated documentation](https://bizon.github.io/selling-partner-api-sdk/modules/_sp-api-sdk_fulfillment-inbound-api-v0.html) for this API client.

## Installing

```sh
npm install @sp-api-sdk/fulfillment-inbound-api-v0
```

## Getting Started

```javascript
import {SellingPartnerApiAuth} from '@sp-api-sdk/auth'
import {FulfillmentInboundApiClient} from '@sp-api-sdk/fulfillment-inbound-api-v0'

const auth = new SellingPartnerApiAuth({
  clientId: process.env.LWA_CLIENT_ID,
  clientSecret: process.env.LWA_CLIENT_SECRET,
  refreshToken: 'Atzr|…',
})

const client = new FulfillmentInboundApiClient({
  auth,
  region: 'eu',
})
```

## Rate Limiting

In order to retry rate limited requests (HTTP 429), you can configure the API client as such:

```javascript
const client = new FulfillmentInboundApiClient({
  auth,
  region: 'eu',
  rateLimiting: {
    retry: true,
    // Optionally specify a callback that will be called on every retry.
    onRetry: (retryInfo) => {
      console.log(retryInfo)
    },
  },
})
```

The rate limits used for each route are specified in the [API documentation](https://developer-docs.amazon.com/sp-api/docs).

## Logging

You can enable logging for both SP-API requests and responses by configuring the `logging.request` and `logging.response` properties.

```javascript
const client = new FulfillmentInboundApiClient({
  auth,
  region: 'eu',
  logging: {
    request: {
      logger: console.debug
    },
    response: {
      logger: console.debug
    },
    error: true,
  },
})
```

Specifying `true` will use the default options, specifying an object will allow you to override the default options.  
This uses [axios-logger](https://github.com/hg-pyun/axios-logger) under the hood.  
By default, if enabled, the `request` and `response` loggers will use `console.info` and the `error` logger will use `console.error`.


## License

MIT

## Miscellaneous

```
    ╚⊙ ⊙╝
  ╚═(███)═╝
 ╚═(███)═╝
╚═(███)═╝
 ╚═(███)═╝
  ╚═(███)═╝
   ╚═(███)═╝
```
npm package: @sp-api-sdk/invoices-api-2024-06-19
Description: Use the Selling Partner API for Invoices to retrieve and manage invoice-related operations, which can help selling partners manage their bookkeeping processes.
Author: Bertrand Marron
Latest version: 2.1.3

# `invoices-api-2024-06-19`

[![npm version](https://img.shields.io/npm/v/@sp-api-sdk/invoices-api-2024-06-19)](https://www.npmjs.com/package/@sp-api-sdk/invoices-api-2024-06-19)
[![XO code style](https://img.shields.io/badge/code_style-xo-cyan)](https://github.com/xojs/xo)

Use the Selling Partner API for Invoices to retrieve and manage invoice-related operations, which can help selling partners manage their bookkeeping processes.

[<img src="https://files.bizon.solutions/images/logo/bizon-horizontal.png" alt="Bizon" width="250"/>](https://www.bizon.solutions?utm_source=github&utm_medium=readme&utm_campaign=selling-partner-api-sdk)

## Documentation

Learn more about this Selling Partner API by visiting the [official documentation](https://developer-docs.amazon.com/sp-api/docs).

Also, see the [generated documentation](https://bizon.github.io/selling-partner-api-sdk/modules/_sp-api-sdk_invoices-api-2024-06-19.html) for this API client.

## Installing

```sh
npm install @sp-api-sdk/invoices-api-2024-06-19
```

## Getting Started

```javascript
import {SellingPartnerApiAuth} from '@sp-api-sdk/auth'
import {InvoicesApiClient} from '@sp-api-sdk/invoices-api-2024-06-19'

const auth = new SellingPartnerApiAuth({
  clientId: process.env.LWA_CLIENT_ID,
  clientSecret: process.env.LWA_CLIENT_SECRET,
  refreshToken: 'Atzr|…',
})

const client = new InvoicesApiClient({
  auth,
  region: 'eu',
})
```

## Rate Limiting

In order to retry rate limited requests (HTTP 429), you can configure the API client as such:

```javascript
const client = new InvoicesApiClient({
  auth,
  region: 'eu',
  rateLimiting: {
    retry: true,
    // Optionally specify a callback that will be called on every retry.
    onRetry: (retryInfo) => {
      console.log(retryInfo)
    },
  },
})
```

The rate limits used for each route are specified in the [API documentation](https://developer-docs.amazon.com/sp-api/docs).

## Logging

You can enable logging for both SP-API requests and responses by configuring the `logging.request` and `logging.response` properties.

```javascript
const client = new InvoicesApiClient({
  auth,
  region: 'eu',
  logging: {
    request: {
      logger: console.debug
    },
    response: {
      logger: console.debug
    },
    error: true,
  },
})
```

Specifying `true` will use the default options, specifying an object will allow you to override the default options.  
This uses [axios-logger](https://github.com/hg-pyun/axios-logger) under the hood.  
By default, if enabled, the `request` and `response` loggers will use `console.info` and the `error` logger will use `console.error`.


## License

MIT

## Miscellaneous

```
    ╚⊙ ⊙╝
  ╚═(███)═╝
 ╚═(███)═╝
╚═(███)═╝
 ╚═(███)═╝
  ╚═(███)═╝
   ╚═(███)═╝
```
npm package: @sp-api-sdk/merchant-fulfillment-api-v0
Description: With the Selling Partner API for Merchant Fulfillment, you can build applications that sellers can use to purchase shipping for non-Prime and Prime orders using Amazon's Buy Shipping Services.
Author: Bertrand Marron
Latest version: 3.1.11

# `merchant-fulfillment-api-v0`

[![npm version](https://img.shields.io/npm/v/@sp-api-sdk/merchant-fulfillment-api-v0)](https://www.npmjs.com/package/@sp-api-sdk/merchant-fulfillment-api-v0)
[![XO code style](https://img.shields.io/badge/code_style-xo-cyan)](https://github.com/xojs/xo)

With the Selling Partner API for Merchant Fulfillment, you can build applications that sellers can use to purchase shipping for non-Prime and Prime orders using Amazon's Buy Shipping Services.

[<img src="https://files.bizon.solutions/images/logo/bizon-horizontal.png" alt="Bizon" width="250"/>](https://www.bizon.solutions?utm_source=github&utm_medium=readme&utm_campaign=selling-partner-api-sdk)

## Documentation

Learn more about this Selling Partner API by visiting the [official documentation](https://developer-docs.amazon.com/sp-api/docs).

Also, see the [generated documentation](https://bizon.github.io/selling-partner-api-sdk/modules/_sp-api-sdk_merchant-fulfillment-api-v0.html) for this API client.

## Installing

```sh
npm install @sp-api-sdk/merchant-fulfillment-api-v0
```

## Getting Started

```javascript
import {SellingPartnerApiAuth} from '@sp-api-sdk/auth'
import {MerchantFulfillmentApiClient} from '@sp-api-sdk/merchant-fulfillment-api-v0'

const auth = new SellingPartnerApiAuth({
  clientId: process.env.LWA_CLIENT_ID,
  clientSecret: process.env.LWA_CLIENT_SECRET,
  refreshToken: 'Atzr|…',
})

const client = new MerchantFulfillmentApiClient({
  auth,
  region: 'eu',
})
```

## Rate Limiting

In order to retry rate limited requests (HTTP 429), you can configure the API client as such:

```javascript
const client = new MerchantFulfillmentApiClient({
  auth,
  region: 'eu',
  rateLimiting: {
    retry: true,
    // Optionally specify a callback that will be called on every retry.
    onRetry: (retryInfo) => {
      console.log(retryInfo)
    },
  },
})
```

The rate limits used for each route are specified in the [API documentation](https://developer-docs.amazon.com/sp-api/docs).

## Logging

You can enable logging for both SP-API requests and responses by configuring the `logging.request` and `logging.response` properties.

```javascript
const client = new MerchantFulfillmentApiClient({
  auth,
  region: 'eu',
  logging: {
    request: {
      logger: console.debug
    },
    response: {
      logger: console.debug
    },
    error: true,
  },
})
```

Specifying `true` will use the default options, specifying an object will allow you to override the default options.  
This uses [axios-logger](https://github.com/hg-pyun/axios-logger) under the hood.  
By default, if enabled, the `request` and `response` loggers will use `console.info` and the `error` logger will use `console.error`.


## License

MIT

## Miscellaneous

```
    ╚⊙ ⊙╝
  ╚═(███)═╝
 ╚═(███)═╝
╚═(███)═╝
 ╚═(███)═╝
  ╚═(███)═╝
   ╚═(███)═╝
```