open-index/open-npm huggingface dataset:
npm package: @optix/sass
Description: **TODO**
Author: Rich Moore
Latest version: 0.2.6

# Optix SASS

**TODO**

## Installation

#### Install the package:

```bash
# npm
npm install @optix/sass --save

# yarn
yarn add @optix/sass --dev
```

## License

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.
npm package: @optix/vue-auth
Description: Easy vue authentication
Author: Jack Robertson
Latest version: 1.0.0

# Vue Auth

Easy client side authentication for your Vue applications.

## Installation

```bash
npm install @optix/vue-auth --save
```

```javascript
import Vue from 'vue';
import VueAuth from '@optix/vue-auth';

Vue.use(VueAuth);
```

## Usage

Accessing the auth object:

```javascript
// Globally
Vue.auth.token();

// On an instance
this.$auth.token();
```

### Methods

* setToken(token)
* token()
* hasToken()
* removeToken()
* setUser(user)
* user()
* removeUser()
* check()

## License

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.
npm package: @optix/vue-lightbox
Description: Lightbox image gallery plugin
Author: Rich Moore
Latest version: 0.0.1

# Vue Lightbox

A simple lightbox image gallery plugin.

## Installation

```bash
npm install @optix/vue-lightbox --save

yarn add @optix/vue-lightbox
```

```js
import Vue from 'vue';
import VueLightbox from '@optix/vue-lightbox';

Vue.use(VueLightbox);
```

```scss
@import "@optix/vue-lightbox/src/sass/_index";
```

## Usage

// TODO

Accessing the lightbox object:

```js
// Globally
Vue.lightbox.open();

// On an instance
this.$lightbox.open();
```

### Methods

* open() - id
* onOpen() - callback
* close()
* onClose() - callback
* destroy() - callback

```vue
<lightbox :images="images"></lightbox>
```

## License

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.
npm package: @optix/vue-loader
Description: Loader plugin for Vue applications
Author: Rich Moore
Latest version: 1.0.3

# Vue Loader

A plugin to handle the loading state within your Vue applications

## Installation

```bash
npm install @optix/vue-loader --save
yarn add @optix/vue-loader
```

```javascript
import Vue from 'vue';
import VueLoader from '@optix/vue-loader';

Vue.use(VueLoader);
```

## Usage

Accessing the loader object:

```javascript
// Globally
Vue.loader.start('example');

// On an instance
this.$loader.start('example');
```

### Methods

* start(item)
* stop(item)
* isLoading() // boolean
* clear()

## License

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.
npm package: @optizio/klaviyo-cloudflare-kv-storage
Description: Klaviyo TokenStorage and PKCE storage implementations for Cloudflare KV.
Author: Optizio
Latest version: 0.2.0

# Klaviyo Cloudflare KV Storage

Robust token and PKCE storage utilities for Klaviyo integrations running on Cloudflare Workers KV.

## Features
- Encrypts Klaviyo refresh tokens with AES-CBC using Web Crypto
- Simple key-value persistence backed by Cloudflare KV namespaces
- Drop-in implementations for the `TokenStorage` and `Pkce.CodeStorage` interfaces from `klaviyo-api`
- Zero dependencies beyond `klaviyo-api` and the Cloudflare runtime

## Installation
```bash
npm install @optizio/klaviyo-cloudflare-kv-storage
```
Requires Node.js 18+ or Cloudflare Workers with global `crypto.subtle` support.

## Usage
```ts
import { KvTokenStorage, KvPkceStorage, type KV } from '@optizio/klaviyo-cloudflare-kv-storage'

declare const SESSION: KV
const refreshTokenKeyHex = process.env.KLAVIYO_REFRESH_TOKEN_AES_KEY_HEX!

const tokenStorage = new KvTokenStorage(SESSION, refreshTokenKeyHex)
const pkceStorage = new KvPkceStorage(SESSION)
```

## KV Interface
The package expects an object that satisfies:
```ts
export type KV = {
  get: (key: string) => Promise<string | null>
  put: (key: string, value: string, options?: { expiration?: number; expirationTtl?: number }) => Promise<void>
  delete: (key: string) => Promise<void>
}
```
Cloudflare Workers KV bindings already conform to this signature.

## API
### `class KvTokenStorage implements TokenStorage`
- `constructor(kv: KV, hexKey: string)` – provide your KV binding and a 32-byte (64-char hex) encryption key
- `retrieve(customerIdentifier: string): Promise<RetrievedTokens>` – decrypts and returns stored tokens
- `save(customerIdentifier: string, tokens: CreatedTokens): Promise<void>` – encrypts refresh token and persists tokens

### `class KvPkceStorage implements Pkce.CodeStorage`
- `constructor(kv: KV)` – provide your KV binding
- `retrieve(customerIdentifier: string): Promise<string>` – reads stored PKCE verifier
- `save(customerIdentifier: string, codeVerifier: string): Promise<void>` – stores PKCE verifier
- `remove(customerIdentifier: string): Promise<void>` – deletes PKCE verifier

Errors are thrown when data is missing or improperly formatted. Store keys use prefixes: `klaviyo:` for tokens and `pkce:` for PKCE verifiers.

## Testing
```bash
npm test           # run Vitest in CI mode
npm run test:watch # run Vitest in watch mode
```
An in-memory KV implementation is used for tests; see `test/index.test.ts` for examples.

## License
MIT © Optizio