open-index/open-npm huggingface dataset:
npm package: @liaison/component-client
Description: Consumes Liaison components served by @liaison/component-server
Author: Manuel Vila
Latest version: 1.0.4
Deprecated: Liaison is now called Layr. Please install this package from the new @layr scope.

# @liaison/component-client

Consumes Liaison components served by @liaison/component-server.

## Installation

```
npm install @liaison/component-client
```

## License

MIT
npm package: @liaison/component-express-middleware
Description: An Express middleware for your Liaison components
Author: Manuel Vila
Latest version: 1.0.3
Deprecated: Liaison is now called Layr. Please install this package from the new @layr scope.

# @liaison/component-koa-middleware

A Koa middleware for your Liaison components.

## Installation

```
npm install @liaison/component-koa-middleware
```

## License

MIT
npm package: @liaison/component-http-client
Description: An HTTP client for your Liaison components
Author: Manuel Vila
Latest version: 1.0.4
Deprecated: Liaison is now called Layr. Please install this package from the new @layr scope.

# @liaison/component-http-client

An HTTP client for your Liaison components.

## Installation

```
npm install @liaison/component-http-client
```

## License

MIT
npm package: @liaison/component-http-server
Description: A basic HTTP server for your Liaison components
Author: Manuel Vila
Latest version: 1.0.4
Deprecated: Liaison is now called Layr. Please install this package from the new @layr scope.

# @liaison/component-http-server

A basic HTTP server for your Liaison components.

## Installation

```
npm install @liaison/component-http-server
```

## License

MIT
npm package: @liaison/component-koa-middleware
Description: A Koa middleware for your Liaison components
Author: Manuel Vila
Latest version: 1.0.4
Deprecated: Liaison is now called Layr. Please install this package from the new @layr scope.

# @liaison/component-koa-middleware

A Koa middleware for your Liaison components.

## Installation

```
npm install @liaison/component-koa-middleware
```

## License

MIT
npm package: @liaison/layer-koa-middleware
Description: A Koa middleware for your Liaison layers
Author: Manuel Vila
Latest version: 0.1.4
Deprecated: The 'layer' feature has been deprecated in favour of 'component provision'

# @liaison/layer-koa-middleware

A Koa middleware for your Liaison layers.

## Installation

```
npm install @liaison/layer-koa-middleware
```
npm package: @liaison/memory-router
Description: A simple router for Liaison that works without a browser
Author: Manuel Vila
Latest version: 1.0.2
Deprecated: Liaison is now called Layr. Please install this package from the new @layr scope.

# @liaison/memory-router

A simple router for Liaison that works without a browser.

## Installation

```
npm install @liaison/memory-router
```

## License

MIT
npm package: @liaison/memory-store
Description: A Liaison store using memory (useful for testing)
Author: Manuel Vila
Latest version: 1.0.2
Deprecated: Liaison is now called Layr. Please install this package from the new @layr scope.

# @liaison/memory-store

A Liaison store using memory (useful for testing).

## Installation

```
npm install @liaison/memory-store
```

## License

MIT
npm package: @liaison/routable
Description: Makes the methods of your Liaison components callable by URL
Author: Manuel Vila
Latest version: 1.0.3
Deprecated: Liaison is now called Layr. Please install this package from the new @layr scope.

# @liaison/routable

Makes the methods of your Liaison components callable by URL.

## Installation

```
npm install @liaison/routable
```

## License

MIT
npm package: @liaisongroup/assist-api-js-client
Description: ![Hero](https://raw.githubusercontent.com/infinityhealth/assist-api-js-client/HEAD/hero.svg)
Latest version: 1.5.196

![Hero](https://raw.githubusercontent.com/infinityhealth/assist-api-js-client/HEAD/hero.svg)

<p align="center">
  🏌️‍♂️ Liaison Assist API JS Client
  <br />
  Generated using <a href="https://github.com/openapistack/openapi-client-axios">openapi-client-axios</a> from the OpenAPI v3 definition
</p>

# Installation

Using your node runtime of choice install the package.

```sh
bun add @liaisongroup/assist-api-js-client -D
```

# Usage

Create a file such as `client.ts` to store an instance of our JS Client.

```ts
import { init } from "@liaisongroup/assist-api-js-client"

export const client = init("https://assist-dev-api.liaison.link")
// ^ returns a full typed client, with autocomplete for all methods, parameters etc.
```

Then when needed, just import this `client` in project files as needed.

`init` takes the API base URL as an optional argument, otherwise it will default to the value defined in the OpenAPI definition.

```ts
import { client } from "some/path/to/client"

async function make_api_call() {
  const sso_configs = await client.get_sso_configs()
}
```
npm package: @lialh4/effect-dom
Description: Type-safe DOM manipulation with explicit, composable error handling.
Author: LiAlH4
Latest version: 0.1.1

# Effect Dom

Type-safe DOM manipulation with explicit, composable error handling.

Stop wondering why `querySelector` returned null. Stop casting to types you're not sure about. Effect Dom makes DOM errors explicit but simple to handle. ✨

![Version](https://img.shields.io/npm/v/%40lialh4%2Feffect-dom?style=for-the-badge)
![License](https://img.shields.io/npm/l/%40lialh4%2Feffect-dom?style=for-the-badge)


## Why Effect Dom?

**Explicit errors, zero surprises.** DOM operations fail in predictable ways—selectors can be malformed, elements might not exist, or be the wrong type. Effect Dom surfaces all these errors in your types, while keeping the happy path clean.

### The Problem 😰

```typescript
// Runtime surprises waiting to happen
const audio = document.querySelector("#player") as HTMLAudioElement
audio.play() // 💥 What if it's null? What if it's a <div>?

// Or defensive programming everywhere...
const elem = document.querySelector("#player")
if (!elem) throw new Error("not found")
if (!(elem instanceof HTMLAudioElement)) throw new Error("wrong type")
audio.play()
```

### The Solution ✨

```typescript
import { findElem } from "@lialh4/effect-dom/Elem"
import { Effect } from "effect"

const program = findElem(document, HTMLAudioElement, "#player").pipe(
  Effect.andThen(audio => audio.play())
)

// ✅ All errors are typed and composable
// SelSyntaxError | ElemNotFoundError | ElemTypeMismatchError
```

## Features

✅ **Type-Safe Queries** – Get the exact element type you expect, or fail explicitly.

🔒 **Cross-Origin Aware** – Handle iframe documents safely with proper error types.

🔗 **Composable** – Chain operations naturally with Effect's pipe and error handling.

⚡ **Zero Runtime Overhead** – Thin wrapper over native DOM APIs.

## Quick Example

```typescript
import { Effect } from "effect"
import { findElem } from "@lialh4/effect-dom/Elem"
import { getInnerDoc } from "@lialh4/effect-dom/Doc"

// Find iframe → get its document → find element inside
const program = findElem(document, HTMLIFrameElement, "#my-iframe").pipe(
  Effect.flatMap(getInnerDoc),
  Effect.flatMap(findElem(HTMLButtonElement, ".submit")),
  Effect.andThen(button => button.click())
)

// Handle all possible errors in one place 🎯
Effect.runPromise(program).catch(error => {
  // SelSyntaxError | ElemNotFoundError | ElemTypeMismatchError | CrossOriginError
  console.error(error._tag, error)
})
```

## Installation

```shell
bun add effect-dom
```

Or

```shell
pnpm install effect-dom
```

## License

MIT

## Changelog

### 0.1.0

First version! :tada:

### 0.1.1

Fix Example in readme.