open-index/open-npm huggingface dataset:
npm package: @mswjs/cookies
Description: Manage request/response cookies in the environments where those are not supported.
Author: Artem Zakharchenko
Latest version: 1.1.1

[![Latest version](https://img.shields.io/npm/v/@mswjs/cookies.svg)](https://www.npmjs.com/package/@mswjs/cookies)

# Cookies

Manage request/response cookies in the environments where those are not supported.

## Install

```bash
npm install @mswjs/cookies
```

## API

### `set(request: Request, response: Response)`

Sets the response cookies in the store associated with the given request origin.

```js
store.set(
  new Request('https://mswjs.io'),
  new Response(null, {
    headers: new Headers({
      'set-cookie': 'id=abc-123',
    }),
  }),
)
```

### `get(request: Request)`

Retrieves the cookies relevant to the given request's origin.

```js
store.get(new Request('https://mswjs.io'))
```

> `.get()` respects the `req.credentials` policy.

Executing this command returns a `Map` instance with the request cookies:

```js
Map {
  "id" => { name: "id", value: "abc-123" }
}
```

### `getAll()`

Returns all the cookies in the store.

Executing `.getAll()` method returns a `Map` instance with request cookies grouped by request origin.

```js
Map {
  "https://mswjs.io" => Map {
    "id" => { name: "id", value: "abc-123" }
  }
}
```

### `deleteAll(request: Request)`

Removes all the cookies associated with the given request's origin.

### `persist()`

Persists the current store state in the `localStorage`.

### `hydrate()`

Hydrates the store values from the previously persisted state in `localStorage`.

### `clear()`

Removes all the cookies from the store, producing a nice and shiny empty store.

## Credits

Original idea by [Christoph Guttandin](https://github.com/chrisguttandin).
npm package: @mswjs/socket.io-binding
Description: Binding to mock Socket.IO connections with Mock Service Worker
Author: Artem Zakharchenko
Latest version: 0.2.0

## `@mswjs/socket.io-binding`

## Motivation

This package is intended as a wrapper over the `WebSocketInterceptor` from [`@mswjs/interceptors`](https://github.com/mswjs/interceptors). It provides automatic encoding and decoding of messages, letting you work with the Socket.IO clients and servers as you are used to.

```js
import { WebSocketInterceptor } from '@mswjs/interceptors'
import { toSocketIo } from '@mswjs/socket.io-binding'

const interceptor = new WebSocketInterceptor()

interceptor.on('connection', (connection) => {
  connection.client.addEventListener('message', (event) => {
    // Socket.IO implements their custom messaging protocol.
    // This means that the "raw" event data you get will be
    // encoded: e.g. "40", "42['message', 'Hello, John!']".
    console.log(event.data)
  })

  const io = toSocketIo(connection)

  io.client.on('greeting', (event, message) => {
    // Using the wrapper, you get the decoded messages,
    // as well as support for custom event listeners.
    console.log(message) // "Hello, John!"
  })
})
```

> You can also use this package with [Mock Service Worker](https://github.com/mswjs/msw) directly.

## Limitations

This wrapper is not meant to provide full feature parity with the Socket.IO client API. Some features may be missing (like rooms, namespaces, broadcasting). If you rely of any of the missing features, open a pull request and implement it. Thank you.

> Note that feature parity only concerns the _connection wrapper_. You can still use the entire of the Socket.IO feature set in the actual application code.

## Install

```sh
npm install @mswjs/socket.io-binding
```

## Examples

### Using with Mock Service Worker

```js
import { ws } from 'msw'
import { toSocketIo } from '@mswjs/socket.io-binding'

const chat = ws.link('wss://example.com/chat')

export const handlers = [
  chat.addEventListener('connection', (connection) => {
    const io = toSocketIo(connection)

    io.on('hello', (event, name) => {
      console.log('client sent hello:', name)
    })
  }),
]
```