open-index/open-npm huggingface dataset:
npm package: @oursprivacy/cdp-sdk
Description: Ours Privacy CDP SDK for analytics and privacy
Author: Ours
Latest version: 1.0.1

# Ours Privacy CDP Web SDK

The [Ours Privacy](https://oursprivacy.com/) CDP Web SDK.

This package lets you send events and user identification data to Ours Privacy from your JavaScript app, without using the browser snippet. Instead of installing a script tag, you install this NPM package.

You can reference all of the [Web SDK documentation here](https://docs.oursprivacy.com/docs/web-sdk-javascript).

## Installation

```bash
npm install @oursprivacy/cdp-sdk
yarn add @oursprivacy/cdp-sdk
```

## Usage

```js
import ours from '@oursprivacy/cdp-sdk';

// Initialize once at app startup
ours.init('YOUR_TOKEN', {
  custom_domain: 'https://metrics.example.com',
});

// Track events
ours.track('Purchase Completed', {
  price: 29.99,
  item: 'T-shirt',
});

// Identify or update user properties later
ours.identify({
  email: 'user@example.com',
});

// Reset the users identity
ours.reset();
```

## API

### `ours.init(token, options)`

Initialize the SDK. Call this once before tracking.

- `token` (string): Your Ours Privacy project token.
- `options` (object): Initialization options:
  - [See options available here](https://docs.oursprivacy.com/docs/web-sdk-javascript#initialization)

---

### `ours.track(eventName, eventProperties?, userProperties?, defaultPropertyOverrides?)`

Send an event to Ours.

- `eventName` (string): Name of the event.
- `eventProperties` (object): Event-specific properties.
- `userProperties` (object): [Visitor properties to include/update.](https://docs.oursprivacy.com/docs/visitor-properties-overview#supported-visitor-properties)
- `defaultPropertyOverrides` (object): Optional per-property overrides.

---

### `ours.identify(userProperties)`

Set or update properties for the identified user. [See supported list here](https://docs.oursprivacy.com/docs/visitor-properties-overview#supported-visitor-properties)

---

## When to use this package

Use this NPM package instead of the browser script if:

- You're building a React/Vue/Next.js/Node app and want first-party integration.
- You want TypeScript types and local control over initialization.
- You don't want to load the snippet from the Ours Privacy CDN.

If you want the drop-in `<script>` tag version instead, see:

👉 [Web Script Source Guide](https://docs.oursprivacy.com/docs/web-script-source)

---

## License

MIT
npm package: @ourstreets/plate-lookup
Description: A library to lookup outsanding citation info for cars
Author: daniel@ourstreets.com
Latest version: 0.2.3

# @ourstreets/plate-lookup

## API

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

#### Table of Contents

-   [EtimspaymentsLookup](#etimspaymentslookup)
-   [DspaymentsLookup](#dspaymentslookup)
-   [DcLookup](#dclookup)
-   [PghLookup](#pghlookup)
-   [SeaLookup](#sealookup)
-   [AtxLookup](#atxlookup)
-   [NycLookup](#nyclookup)
-   [FfxLookup](#ffxlookup)
-   [AlxLookup](#alxlookup)

### EtimspaymentsLookup

-   **See: [@ourstreets/plate-lookup-etimspayments](../etimspayments)**

### DspaymentsLookup

-   **See: [@ourstreets/plate-lookup-dspayments](../dspayments)**

### DcLookup

-   **See: [@ourstreets/plate-lookup-dc](../dc)**

### PghLookup

-   **See: [@ourstreets/plate-lookup-pgh](../pgh)**

### SeaLookup

-   **See: [@ourstreets/plate-lookup-sea](../sea)**

### AtxLookup

-   **See: [@ourstreets/plate-lookup-atx](../atx)**

### NycLookup

-   **See: [@ourstreets/plate-lookup-nyc](../nyc)**

### FfxLookup

-   **See: [@ourstreets/plate-lookup-ffx](../ffx)**

### AlxLookup

-   **See: [@ourstreets/plate-lookup-alx](../alx)**
npm package: @ourstreets/plate-lookup-alx
Description: A library to lookup outsanding citation information in Alexandria, VA
Author: daniel@ourstreets.com
Latest version: 0.2.3

# @ourstreets/plate-lookup-alx

## API

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

#### Table of Contents

-   [AlxLookup](#alxlookup)

### AlxLookup

**Extends DsPaymentsLookup**

-   **See: [@ourstreets/plate-lookup-dspayments](../dspayments) for more info.**

Alexandria Plate lookup service
npm package: @ourstreets/plate-lookup-atx
Description: A library to lookup outsanding citation information in Austin, TX
Author: daniel@ourstreets.com
Latest version: 0.2.0

# @ourstreets/plate-lookup-atx

## API

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

#### Table of Contents

-   [AtxLookup](#atxlookup)
    -   [lookup](#lookup)
        -   [Parameters](#parameters)

### AtxLookup

Austin Plate lookup service

Uses the public inqury page with cookies and JSDOM.

#### lookup

Lookup a plate

##### Parameters

-   `state` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** The state of the license plate (2 character state code)
-   `number` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** The plate numbers and letters

Returns **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)&lt;[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)>** An array of citation objects
npm package: @ourstreets/plate-lookup-dc
Description: A library to lookup outsanding citation information in DC
Author: daniel@ourstreets.com
Latest version: 0.2.2

# @ourstreets/plate-lookup-dc

## API

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

#### Table of Contents

-   [DcLookup](#dclookup)
    -   [Parameters](#parameters)
    -   [Examples](#examples)

### DcLookup

**Extends EtimspaymentsLookup**

-   **See: [@ourstreets/plate-lookup-etimspayments](../etimspayments) for more info.**

DC Plate lookup service

#### Parameters

-   `browser` **[object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** Puppeeteer browser instance
-   `tesseractWorker` **[object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** Tesseract worker instance

#### Examples

```javascript
const DcLookup = require("@ourstreets/plate-lookup-dc");
const dc = new DcLookup();
dc.lookup("DC", "69").then(console.log);
```
npm package: @ourstreets/plate-lookup-dspayments
Description: A library to lookup citation information in municipalities using dspayments
Author: daniel@ourstreets.com
Latest version: 0.2.3

# @ourstreets/plate-lookup-dspayments

## API

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

#### Table of Contents

-   [DsPaymentsLookup](#dspaymentslookup)
    -   [Parameters](#parameters)
    -   [lookup](#lookup)
        -   [Parameters](#parameters-1)

### DsPaymentsLookup

Lookup service class for municipalities using dspayments

Uses cookies and JSDOM to interact with the form

#### Parameters

-   `url` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** The URL of the dspayments instance

#### lookup

Lookup a plate

##### Parameters

-   `state` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** The state of the license plate (2 character state code)
-   `number` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** The plate numbers and letters

Returns **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)&lt;[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)>** An array of citation objects
npm package: @ourstreets/plate-lookup-etimspayments
Description: A library to lookup citation information in municipalities using etimspayments
Author: daniel@ourstreets.com
Latest version: 0.2.2

# @ourstreets/plate-lookup-etimspayments

## API

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

#### Table of Contents

-   [EtimspaymentsLookup](#etimspaymentslookup)
    -   [Parameters](#parameters)
    -   [initialize](#initialize)
    -   [teardown](#teardown)
    -   [lookup](#lookup)
        -   [Parameters](#parameters-1)
-   [screenshotDOMElement](#screenshotdomelement)
    -   [Parameters](#parameters-2)

### EtimspaymentsLookup

Lookup service class for municipalities using etimspayments.

Uses [Puppeteer](https://github.com/puppeteer/puppeteer)
and
[Tesseract.js](https://tesseract.projectnaptha.com/)
to load etimspayments powered ticket payments systems to get
unpaid citations.

#### Parameters

-   `url` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** The URL of the etimspayments instance
-   `browser` **[object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** Puppeeteer browser instance
-   `tesseractWorker` **[object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** Tesseract worker instance

#### initialize

Initialize the browser and tesseractWorker if needed

#### teardown

Close the puppeteer browser and terminate the tesseractWorker

#### lookup

Lookup a plate

##### Parameters

-   `state` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** The state of the license plate (2 character state code)
-   `number` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** The plate numbers and letters
-   `options` **[object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** the only option currently is the `retryCaptcha` key. specify an
    integer to retry on captcha errors
    -   `options.retry`   (optional, default `0`)

Returns **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)&lt;[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)>** An array of citation objects

### screenshotDOMElement

Takes a screenshot of a DOM element on the page, with optional padding.

#### Parameters

-   `page` **Page** pupeteer page object
-   `opts` **!{path: [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String), selector: [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String), padding: ([number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number) \| [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))}?**  (optional, default `{}`)

Returns **![Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)&lt;![Buffer](https://nodejs.org/api/buffer.html)>**
npm package: @ourstreets/plate-lookup-ffx
Description: A library to lookup citation information in Fairfax, VA
Author: daniel@ourstreets.com
Latest version: 0.2.3

# @ourstreets/plate-lookup-ffx

## API

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

#### Table of Contents

-   [FfxLookup](#ffxlookup)

### FfxLookup

**Extends DsPaymentsLookup**

-   **See: [@ourstreets/plate-lookup-dspayments](../dspayments) for more info.**

Fairfax Plate lookup service
npm package: @ourstreets/plate-lookup-nyc
Description: A library to lookup citation information in New York City
Author: daniel@ourstreets.com
Latest version: 0.2.0

# @ourstreets/plate-lookup-nyc

## API

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

#### Table of Contents

-   [NyLookup](#nylookup)
    -   [lookup](#lookup)
        -   [Parameters](#parameters)

### NyLookup

NYC Plate lookup service

Uses the [NYC Open Data API](https://opendata.cityofnewyork.us/).

#### lookup

Lookup a plate

##### Parameters

-   `state` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** The state of the license plate (2 character state code)
-   `number` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** The plate numbers and letters

Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** raw json response from API
npm package: @ourstreets/plate-lookup-pgh
Description: A library to lookup citation information in Pittsburgh
Author: daniel@ourstreets.com
Latest version: 0.2.3

# @ourstreets/plate-lookup-pgh

## API

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

#### Table of Contents

-   [PghLookup](#pghlookup)

### PghLookup

**Extends DsPaymentsLookup**

-   **See: [@ourstreets/plate-lookup-dspayments](../dspayments) for more info.**

Pittsburgh Plate lookup service
npm package: @ourstreets/plate-lookup-phl
Description: A library to lookup citation information in Philidelphia
Author: daniel@ourstreets.com
Latest version: 0.2.0

# @ourstreets/plate-lookup-phl

## API

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

#### Table of Contents

-   [PhlLookup](#phllookup)
    -   [lookup](#lookup)
        -   [Parameters](#parameters)

### PhlLookup

Philadelphia Plate lookup service

Uses the parking portal with cookies and JSDOM

#### lookup

Lookup a plate

##### Parameters

-   `state` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** The state of the license plate (2 character state code)
-   `number` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** The plate numbers and letters

Returns **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)&lt;[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)>** An array of citation objects
npm package: @ourstreets/plate-lookup-sea
Description: A library to lookup citation information in Seattle
Author: daniel@ourstreets.com
Latest version: 0.2.0

# @ourstreets/plate-lookup-sea

## API

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

#### Table of Contents

-   [SeaLookup](#sealookup)
    -   [initialize](#initialize)
    -   [lookup](#lookup)
        -   [Parameters](#parameters)

### SeaLookup

Seattle Plate lookup service

Uses an undocumented SOAP endpoint on the Seattle court service's website.

#### initialize

Initialize the SOAP Client

Returns **[undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined)** 

#### lookup

Lookup a plate

##### Parameters

-   `state` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** The state of the license plate (2 character state code)
-   `number` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** The plate numbers and letters

Returns **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)&lt;[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)>** An array of citation objects
npm package: @ourstreets/plate-lookup-utils
Description: A library to lookup outsanding citation information in DC
Author: daniel@ourstreets.com
Latest version: 0.2.0

# @ourstreets/plate-lookup-utils

Utility library for the plate lookup.

## API

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

#### Table of Contents

-   [getBoundary](#getboundary)
    -   [Parameters](#parameters)
-   [getAllBoundaries](#getallboundaries)
-   [getNearbyRegions](#getnearbyregions)
    -   [Parameters](#parameters-1)

### getBoundary

Get a simplified boundary as GeoJSON of an OSM relation

#### Parameters

-   `osmRelationId` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** The OSM Relation ID to generate GeoJSON for

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)&lt;[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)>** simplified GeoJSON of the OSM relation

### getAllBoundaries

Get all simplified boundaries for the jurisdictions @ourstreets/plate-lookup supports and write
them to disk in a folder named `regions`

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)&lt;[undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined)>** resolves when done

### getNearbyRegions

Get nearby regions to a point.

#### Parameters

-   `point` **[object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** GeoJSON representation of a point
-   `options` **[object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** buffer, units, and regions

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)&lt;[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)>** simplified GeoJSON of the OSM relation

## getBoundary

Get a simplified boundary as GeoJSON of an OSM relation

### Parameters

-   `osmRelationId` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** The OSM Relation ID to generate GeoJSON for

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)&lt;[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)>** simplified GeoJSON of the OSM relation
npm package: @ourstudio/our-http-server
Description: A dev server for single page app development
Latest version: 1.0.8

# Our-server

> A small dev server for modern web application development
Forked from https://github.com/lukejacksonn/servor

## Features

- 🗂 Serves static content like scripts, styles, images from a given directory
- 🗜 Uses gzip on common filetypes like html, css, js and json
- 🖥 Redirects all path requests to a single file for frontend routing

## API Usage

Use `our-http-server` programmatically with node by requiring it as a module in your script:

```js
const ourHttpServer = require('our-http-server').default;
const instance = await ourHttpServer({
  root: '.',
  inject: ''
  port: 8080,
});
```

The `ourHttpServer` function accepts a config object with optional props assigned the above default values if none are provided. Calling the `ourHttpServer` function starts up a new server and returns an object describing its configuration.

```js
const { url, root, protocol, port, ips } = await ourHttpServer(config);
```

### Inject

The `inject` property accepts a string that gets appended to the servers root document (which is `index.html`). If no `index.html` exist, the injectet property will be served. This could be used to inject config or extend the development servers behavior and capabilities to suit specific environments.

```js
const config = require('package.json');
ourHttpServer({ inject: `<script>window.pkg=${config}</script>` });
```

or inject a .html file
```js
const inject = fs.readFileSync(path.join(__dirname, "sample.html"), "binary")
ourHttpServer({ inject });
```
npm package: @ourtownrentals/geocore-s3image
Description: Upload and serve images on GeoCore using AWS S3.
Author: Evan Sosenko
Latest version: 1.0.0

# GeoCore S3 Image

## Description

[GeoCore] addon that uploads user images to an [Amazon S3] bucket.

The allows for hosting GeoCore on cloud services without persistent storage
and scaling beyond a single instance.

_Note: rotating images is not yet supported._

[Amazon S3]: https://aws.amazon.com/s3/
[GeoCore]: https://geodesicsolutions.com/geocore-software.html

## Dependencies

- [AWS SDK for PHP] version 3.
- [ramsey/uuid] version 3.

These dependencies are also listed in `composer.json`.

[AWS SDK for PHP]: https://aws.amazon.com/sdk-for-php/
[ramsey/uuid]: https://github.com/ramsey/uuid

## Installation

1. Ensure the above dependencies are installed.
2. Place the contents of `src` into `addons/s3image`
   under the root of your [GeoCore] install.
3. Install and enable the addon from the GeoCore admin panel.
4. Configure S3 from the addon's settings page.

## Source Code

The [geocore-s3image source] is hosted on GitHub.
Clone the project with

```
$ git clone https://github.com/ourtownrentals/geocore-s3image.git
```

[geocore-s3image source]: https://github.com/ourtownrentals/geocore-s3image

## Contributing

Please submit and comment on bug reports and feature requests.

To submit a patch:

1. Fork it (https://github.com/ourtownrentals/geocore-s3image/fork).
2. Create your feature branch (`git checkout -b my-new-feature`).
3. Make changes.
4. Commit your changes (`git commit -am 'Add some feature'`).
5. Push to the branch (`git push origin my-new-feature`).
6. Create a new Pull Request.

## License

This GeoCore addon is licensed under the MIT license.

## Warranty

This software is provided by the copyright holders and contributors "as is" and
any express or implied warranties, including, but not limited to, the implied
warranties of merchantability and fitness for a particular purpose are
disclaimed. In no event shall the copyright holder or contributors be liable for
any direct, indirect, incidental, special, exemplary, or consequential damages
(including, but not limited to, procurement of substitute goods or services;
loss of use, data, or profits; or business interruption) however caused and on
any theory of liability, whether in contract, strict liability, or tort
(including negligence or otherwise) arising in any way out of the use of this
software, even if advised of the possibility of such damage.
npm package: @ourwork/object-utils
Description: A set of js object utils
Author: hallais
Latest version: 0.1.3

# ObjectUtils

[![CircleCI](https://circleci.com/gh/hallais/ObjectUtils.svg?style=shield)](https://circleci.com/gh/hallais/ObjectUtils)
[![npm version](https://badge.fury.io/js/%40ourwork%2Fobject-utils.svg)](https://badge.fury.io/js/%40ourwork%2Fobject-utils)
[![Test Coverage](https://api.codeclimate.com/v1/badges/c26150e9f05b1499d21c/test_coverage)](https://codeclimate.com/github/hallais/ObjectUtils/test_coverage)

A set of (simple?) `js` object utilities

## Install

`npm i @ourwork/object-utils`

## API

[Here](https://hallais.github.io/ObjectUtils/)
npm package: @ourworld/ramda-flavored
Description: A collection of functions that enhance Ramda
Author: owfdr
Latest version: 0.1.0

# Ramda Flavored

A collection of functions that enhance Ramda

## Installation

```bash
npm install @ourworld/ramda-flavored
```

## Example

```js
import { isGt, isLt } from '@ourworld/ramda-flavored';

isGt(1, 2); //=> true

isLt(1, 2); //=> false
```

## License

MIT
npm package: @ousi-ui/theme
Description: CSS themes and design tokens for Ousi UI (Tailwind v4)
Author: Carlos Aroca
Latest version: 0.1.4

<p align="center">
  <img src="https://raw.githubusercontent.com/carlosaroca/ousi-ui/main/gradient.png" alt="Ousi UI" width="80" />
</p>

<h1 align="center">@ousi-ui/theme</h1>

<p align="center">
  CSS themes and design tokens for <a href="https://www.npmjs.com/package/@ousi-ui/vue">@ousi-ui/vue</a>.<br/>
  Tailwind CSS v4, OKLCH color system, light & dark mode.
</p>

## Install

```bash
pnpm add @ousi-ui/theme
```

## Usage

```css
@import "tailwindcss";
@import "@ousi-ui/theme";
```

That's it. All `--ousi-*` CSS variables and Tailwind utilities (`bg-ousi-accent`, `rounded-ousi-xl`, etc.) are available.

## Themes

```css
/* Import specific themes */
@import "@ousi-ui/theme/themes/ousi-dark";
@import "@ousi-ui/theme/themes/ousi-light";
@import "@ousi-ui/theme/shared/theme";
```

Switch at runtime:

```js
document.documentElement.setAttribute('data-theme', 'dark')
```

## Customize

```css
:root {
  --ousi-accent: oklch(0.62 0.195 254);
  --ousi-radius: 0.75rem;
  --ousi-font-sans: 'Inter', system-ui, sans-serif;
}
```

Or use the [Playground](https://ousiui.com/playground) to build your theme visually.

## License

[MIT](https://github.com/carlosaroca/ousi-ui/blob/main/LICENSE) &copy; [Carlos Aroca](https://carlosaroca.com)
npm package: @ousi-ui/tokens
Description: Design tokens for Ousi UI
Author: Carlos Aroca
Latest version: 0.1.4

<p align="center">
  <img src="https://raw.githubusercontent.com/carlosaroca/ousi-ui/main/gradient.png" alt="Ousi UI" width="80" />
</p>

<h1 align="center">@ousi-ui/tokens</h1>

<p align="center">
  TypeScript design token definitions for <a href="https://www.npmjs.com/package/@ousi-ui/vue">Ousi UI</a>.
</p>

## Install

```bash
pnpm add @ousi-ui/tokens
```

## Usage

```ts
import { colors, spacing, radius, shadows, motion } from '@ousi-ui/tokens'
import { defineTheme, type ThemeShape } from '@ousi-ui/tokens'

const myTheme = defineTheme({
  colorScheme: 'dark',
  // ... full ThemeShape
})
```

## License

[MIT](https://github.com/carlosaroca/ousi-ui/blob/main/LICENSE) &copy; [Carlos Aroca](https://carlosaroca.com)
npm package: @ousi-ui/vue
Description: Vue 3 components for Ousi UI
Author: Carlos Aroca
Latest version: 0.1.4

<p align="center">
  <img src="https://raw.githubusercontent.com/carlosaroca/ousi-ui/main/gradient.png" alt="Ousi UI" width="80" />
</p>

<h1 align="center">@ousi-ui/vue</h1>

<p align="center">
  74+ beautiful, accessible Vue 3 components.<br/>
  Built with Tailwind CSS v4, TypeScript, and OKLCH colors.
</p>

<p align="center">
  <a href="https://ousiui.com">Docs</a> &middot;
  <a href="https://ousiui.com/playground">Playground</a> &middot;
  <a href="https://github.com/carlosaroca/ousi-ui">GitHub</a>
</p>

## Install

```bash
pnpm add @ousi-ui/vue @ousi-ui/theme
```

## Setup

```css
/* main.css */
@import "tailwindcss";
@import "@ousi-ui/theme";
```

```ts
// vite.config.ts
import tailwindcss from '@tailwindcss/vite'
export default defineConfig({ plugins: [tailwindcss()] })
```

## Usage

```vue
<script setup>
import { OButton, OInput, ODialog } from '@ousi-ui/vue'
</script>

<template>
  <OButton variant="primary">Get Started</OButton>
</template>
```

## Components

Buttons, Forms, Date Pickers, Color Pickers, Charts, Modals, Tooltips, Toasts, Tables, Tabs, Accordions, and 60+ more — all with dark mode, keyboard navigation, and ARIA support.

[View all components →](https://ousiui.com/vue/components/button)

## License

[MIT](https://github.com/carlosaroca/ousi-ui/blob/main/LICENSE) &copy; [Carlos Aroca](https://carlosaroca.com)
npm package: @ousing9/omo-no-time
Description: OpenCode plugin that removes the 'Current time' line from <omo-env> block to improve LLM cache hit rates
Author: ousing9
Latest version: 1.0.0

# @ousing9/omo-no-time

OpenCode plugin that removes the `Current time:` line from the `<omo-env>` block in system prompts.

## Why?

The `<omo-env>` block injected by [oh-my-opencode](https://github.com/nicepkg/oh-my-opencode) includes a `Current time:` line that changes every request. This kills LLM prompt cache hit rates since the system prompt is different each time.

This plugin strips only the time line, keeping date, timezone, and locale intact — so your cache stays stable within a day.

**Before:**
```
<omo-env>
  Current date: Thu, Mar 12, 2026
  Current time: 03:42:09 PM
  Timezone: Asia/Shanghai
  Locale: en-US
</omo-env>
```

**After:**
```
<omo-env>
  Current date: Thu, Mar 12, 2026
  Timezone: Asia/Shanghai
  Locale: en-US
</omo-env>
```

## Install

```bash
npm install @ousing9/omo-no-time
```

Then add to your OpenCode config (`~/.config/opencode/opencode.jsonc`):

```jsonc
{
  "plugin": [
    // ... other plugins
    "@ousing9/omo-no-time"
  ]
}
```

## License

MIT
npm package: @oussama-elgoumri/redux-flow
Description: An attempt to make redux Suck-Less.
Author: Oussama Elgoumri
Latest version: 0.0.8

# WORK IN PROGRESS

This is a dev test, do not use in production. Use this on local environments.

# What is redux flow?

Redux flow introduces a pattern to handle http requests, and a `Collections` 
module that exports a set of functions to manipulate `array of objects` data
with **immutability** in mind.

# When to use it?

It is recommanded to use `redux-flow` when building large applications, that 
request and manipulate different sets of data.

`redux-flow` is built with one goal in mind which is to **reduce the amount of code 
required to do the same tasks as much as possible** without sacrificing readability
or producing a learning curve.

`redux-flow` can show it's value, when you have multiple reducers, that perform
the same tasks again and again.

`redux-flow` provide a handful set of utilities, to reduce the amount of code
required to perform common tasks, like dispatching actions for http requests.

# How does HTTP Pattern work?

This is a high overview of how `redux-flow` handles http requests. for more
informations, please refer to the documents below.

When requesting data from an endpoint, four actions needs to be dispatched:

1. `{ACTION_TYPE}_START` dispatched before sending request.
2. `{ACTION_TYPE}_FINISH` dispatched after request is finished.
3. `{ACTION_TYPE}_SUCCESS` dispatched when request succeeded.
4. `{ACTION_TYPE}_FAILED` dispatched when request failed.

`redux-flow` attached 3 fields to your reducer, that get's manipulated at every
stage of the request, for example, when a request is succeeded, you will have 
3 fields in your state that will be set as follow:

```javascript
{
	requesting: false,
	requesting_success: true,
	requesting_failed: false,
	data: [],
}
```

`requesting` can be set when you initialize your reducer to be any name you
like to use, please check the documentation for more information.

`redux-flow` also provide a handful set of hooks that you can use to alter
the default behavior of how these requests are handled.

# Installation

`npm i @oussama-elgoumri/redux-flow`

# Table of contents

1. [Handling http request](docs/Http-HttpReducer.md)
2. [Using redux-flow collections](docs/Collections.md)
npm package: @oussamadouhou/agent-enforcement
Description: Evidence enforcement hooks for OpenCode and Claude Code
Author: Oussama Douhou
Latest version: 0.1.9

# @oussamadouhou/agent-enforcement

Evidence enforcement hooks for OpenCode and Claude Code. This package blocks or warns when `todowrite` tasks are marked complete without the required evidence block, checklist, and trust markers.

## Installation

```bash
bun add @oussamadouhou/agent-enforcement
```

## OpenCode usage

```ts
import type { Plugin } from "@opencode-ai/plugin"
import { createEvidenceEnforcementHook } from "@oussamadouhou/agent-enforcement"

const AgentEnforcementPlugin: Plugin = async ctx => {
  return createEvidenceEnforcementHook(ctx)
}

export default AgentEnforcementPlugin
```

## Claude Code usage

Copy the plugin to your Claude Code plugins directory and enable `hooks/enforcement.py`:

```bash
cp -r . ~/.claude/plugins/agent-enforcement
```

Then ensure `hooks/hooks.json` is configured in your Claude settings.

## Configuration

- `OPENCODE_ENFORCEMENT_LEVEL` or `ENFORCEMENT_LEVEL`: `0` (creative), `1` (standard), `2` (strict)
- `ENFORCEMENT_LOG_MODE`: `file` | `console` | `silent`
- `ENFORCEMENT_LOG_PATH`: file path for logs
- `ENFORCEMENT_LOG_LEVEL`: `debug` | `info` | `warn` | `error`

## Evidence format

```text
**Evidence for task-1**:

**Execution**:
- Tool: read

**Verification**:
- Checked output

**Checklist**:
- [x] Tool executed successfully
- [x] Output captured
- [x] Result matches expected
- [x] No workarounds used
- [x] Independently verifiable

**Trust**: 🟢 HIGH | ✅ Ground Truth
```

## Development

```bash
bun test
bun run build
```
npm package: @oussamadouhou/compaction-storage
Description: OpenCode plugin that stores session compaction summaries to local disk
Author: Oussama Douhou
Latest version: 5.0.0

# @oussamadouhou/compaction-storage

OpenCode plugin that automatically stores session compaction summaries to local disk.

## Installation

```bash
npm install -g @oussamadouhou/compaction-storage
```

Or in your opencode.json:

```json
{
  "plugin": ["@oussamadouhou/compaction-storage"]
}
```

## Configuration

No configuration required! The plugin works out of the box.

Backups are stored in: `~/.local/share/opencode/compaction-backups/`

## Features

- **Zero Configuration**: Works immediately with no setup required
- **Dynamic Group Detection**: Automatically detects project context for organized backups
- **Deduplication**: Prevents duplicate processing within 10-second windows
- **Local Backup**: All summaries saved to `~/.local/share/opencode/compaction-backups/`
- **Job Reporting**: Tracks all compaction operations in persistent log at `~/.local/share/opencode/persistent-agents/compaction.report`
- **Metadata Tracking**: Each backup includes session ID, timestamp, project group, and title

## How It Works

1. Listens for `session.compacted` events from OpenCode
2. Extracts compaction summary from session messages
3. Detects project context for organized backup storage
4. Creates local backup file with full metadata
5. Updates job report with processing details

## Output Format

Each backup file includes:
- **Title**: Extracted from session summary
- **Timestamp**: When the compaction was created
- **Session ID**: Reference to original session
- **Group**: Detected project group (e.g., `project_opencode`, `global`)
- **Summary**: Full compaction content

## Development

```bash
# Install dependencies
bun install

# Build TypeScript
bun run build

# Watch mode
bun run dev

# Test locally (in OpenCode project)
# Add to .opencode/opencode.jsonc:
# "plugin": ["file:///absolute/path/to/dist/index.js"]
```

## License

MIT

## Author

Oussama Douhou
npm package: @oussemajridi/easy-store
Description: A lightweight state management library for React.
Author: Your Name
Latest version: 1.0.2

# EasyStore

EasyStore is a lightweight state management library for React applications, inspired by Redux and Zustand. It provides a simple and intuitive API for managing global state, with support for middleware and direct action calls.

## Features

- **Direct Action Calls**: Call actions directly from the store (e.g., `store.getUsers()`).
- **useSelector Hook**: Select specific parts of the state in React components.
- **Middleware Support**: Apply middleware like `withLogging` and `withPersistence`.
- **Lightweight**: Minimalistic and easy to integrate into any React project.

## Installation

Install EasyStore using npm:

```bash
npm install easy-store
```

Or using yarn:

```bash
yarn add easy-store
```

## Usage

### 1. Create a Store

Define your initial state and actions, then create a store:

```javascript
import { createStore } from "easy-store";
import { withLogging, withPersistence } from "easy-store/middleware";

const initialState = { users: [] };

const actions = {
	getUsers: async (state) => {
		const response = await fetch("/api/users");
		const users = await response.json();
		return { ...state, users };
	},
};

const store = createStore(initialState, actions, [
	withLogging,
	withPersistence,
]);
```

### 2. Use the Store in React Components

Use the `useSelector` hook to access the state and call actions directly:

```javascript
import React, { useEffect } from "react";
import store from "./store";

function App() {
	const users = store.useSelector((state) => state.users);

	useEffect(() => {
		store.getUsers(); // Call action directly
	}, []);

	return (
		<div>
			{users.length > 0 ? (
				users.map((user) => <div key={user.id}>{user.name}</div>)
			) : (
				<p>No users found.</p>
			)}
		</div>
	);
}

export default App;
```

### Middleware

EasyStore supports middleware for logging, persistence, and more. Here’s how to use them:

```javascript
import { withLogging, withPersistence } from "easy-store/middleware";

const store = createStore(initialState, actions, [
	withLogging,
	withPersistence,
]);
```

### Built-in Middleware

- **withLogging**: Logs state changes to the console.
- **withPersistence**: Persists state to `localStorage`.

## API

### `createStore(initialState, actions, middleware)`

Creates a new store.

- `initialState`: The initial state of the store.
- `actions`: An object containing actions to update the state.
- `middleware`: An array of middleware functions (optional).

### `store.useSelector(selector)`

A React hook to select specific parts of the state.

- `selector`: A function that takes the state and returns the selected value.

### `store.getState()`

Returns the current state of the store.

### `store.subscribe(callback)`

Subscribes to state changes.

- `callback`: A function that is called whenever the state changes.

## Contributing

Contributions are welcome! Please open an issue or submit a pull request.