open-index/open-npm huggingface dataset:
npm package: @lainnao/zod-is-required
Description: Utility that reports whether a dot-delimited path in a Zod schema is required.
Author: lainNao
Latest version: 0.1.8

# zod-is-required

Tiny helper that tells you whether a field inside a Zod schema is required.  
Describe the target using dot-separated paths (with array wildcards or indices) and `isRequiredField` returns `true` if the field must be present.

```ts
import { z } from "zod";
import { isRequiredField } from "@lainnao/zod-is-required";

const schema = z.object({
  string: z.string(),
  stringMin1: z.string().min(1),
  stringOptional: z.string().optional(),
  number: z.number(),
  numberOptional: z.number().optional(),
});

isRequiredField(schema, "string"); // false
isRequiredField(schema, "stringMin1"); // true
isRequiredField(schema, "stringOptional"); // false
isRequiredField(schema, "number"); // true
isRequiredField(schema, "numberOptional"); // false
```

Also works with other primitives, nested objects, arrays, tuples, and records. Please see the [tests](https://github.com/lainNao/zod-is-required/blob/main/tests/isRequiredField.test.ts) for more examples.

## Installation

The package treats `zod` as a peer dependency, so install it alongside this helper:

```bash
npm install zod zod-is-required
```

## Path syntax

| Path example     | Meaning                                |
| ---------------- | -------------------------------------- |
| `foo.bar`        | Property access via dots               |
| `list.*.field`   | Wildcard across every array element    |
| `list.0.field`   | Explicit numeric index in an array     |
| `tuple.1`        | Tuple position                         |
| `record.someKey` | Records are always treated as optional |

Invalid paths or empty segments simply result in `false`.

## TypeScript support

`FieldPath<T>` is inferred from the schema, so only valid paths compile:

```ts
isRequiredField(Schema, "profile.email"); // ✅
isRequiredField(Schema, "profile.notExist"); // ❌ type error
```
npm package: @laioutr/app-klaviyo
Description: Integrate Klaviyo into your Laioutr project
Latest version: 1.1.1

# Klaviyo (Laioutr App)

[![npm version][npm-version-src]][npm-version-href]
[![npm downloads][npm-downloads-src]][npm-downloads-href]
[![License][license-src]][license-href]
[![Nuxt][nuxt-src]][nuxt-href]

Integrate Klaviyo into your [Laioutr](https://laioutr.com) project.

See [laioutr.com](https://laioutr.com) for more information about Laioutr.

- [✨ &nbsp;Release Notes](/CHANGELOG.md)
  <!-- - [🏀 Online playground](https://stackblitz.com/github/your-org/@laioutr/app-klaviyo?file=playground%2Fapp.vue) -->
  <!-- - [📖 &nbsp;Documentation](https://example.com) -->

## Features

- Newsletter registration actions

## Quick Setup

Before installing dependencies, you need to create a copy of the `.npmrc.config` file called `.npmrc` and fill in the `NPM_LAIOUTR_TOKEN` with your npm token. You can find this token in your [project settings](https://cockpit.laioutr.cloud/o/_/p/_/settings).

- `pnpm i`
- `npx @laioutr/cli project fetch-rc -p <organization slug>/<project slug> -s <project secret key>` - This will load the `laioutrrc.json` file with the current remote project configuration.
- `pnpm dev:prepare`
- `pnpm orchestr-dev`

That's it! You can now use Klaviyo in your [Laioutr Frontend](https://laioutr.com) ✨

You can find a thorough guide on getting started with Laioutr development in our [developer guide](https://docs.laioutr.io/developer-guide/setup).

## Publishing

To publish a new version, run `pnpm release`. This will:

- Run the tests
- Update the changelog
- Publish the package to npmjs.org
- Push the changes to the repository

## Contribution

Follow the [setup guide](https://docs.laioutr.io/developer-guide/setup) to get started.

<!-- Badges -->

[npm-version-src]: https://img.shields.io/npm/v/@laioutr/app-klaviyo/latest.svg?style=flat&colorA=020420&colorB=00DC82
[npm-version-href]: https://npmjs.com/package/@laioutr/app-klaviyo
[npm-downloads-src]: https://img.shields.io/npm/dm/@laioutr/app-klaviyo.svg?style=flat&colorA=020420&colorB=00DC82
[npm-downloads-href]: https://npm.chart.dev/@laioutr/app-klaviyo
[license-src]: https://img.shields.io/npm/l/@laioutr/app-klaviyo.svg?style=flat&colorA=020420&colorB=00DC82
[license-href]: https://npmjs.com/package/@laioutr/app-klaviyo
[nuxt-src]: https://img.shields.io/badge/Nuxt-020420?logo=nuxt.js
[nuxt-href]: https://nuxt.com
npm package: @laioutr/app-oxid
Description: Oxid Laioutr App
Latest version: 0.1.6

# 🛍️ Laioutr OXID Integration

This repository contains the official OXID eShop integration for the **Laioutr** frontend framework. This connector provides a focused set of features to connect your Laioutr application with an OXID backend, enabling essential e-commerce functionality.

This connector handles cart operations, category navigation, and product retrieval with variant support.

---

## ✨ Features

This integration provides a robust bridge to OXID, supporting the following features:

### 🛒 Cart Management

- **Get Current Cart:** Retrieve the active shopping cart details, including all line items and totals.
- **Add Item to Cart:** Seamlessly add products and variants to the user's active cart.

### 🗂️ Category Navigation

- **Category Tree by Alias:** Retrieve a nested category structure using a specific category alias (key), ideal for building dynamic navigation menus.

### 📦 Product & Catalog

- **Products by Category Slug:** Fetch a list of products assigned to a specific category using its SEO URL slug.
- **Product Variants:** Retrieve available variants (e.g., size, color, dimensions) for specific products.

---

## 🚀 Installation

```bash
# Using npm
npm install @laioutr/app-oxid

# Using yarn
yarn add @laioutr/app-oxid
```

---

## ⚙️ Configuration & Usage

To get started, you need to configure the connector with your OXID API credentials. We recommend using environment variables

```typescript
defineNuxtConfig({
  /* [...] */
  modules: ['@laioutr/app-oxid'],
  /* [...] */
  '@laioutr/app-oxid': {
    graphqlURL: import.meta.env.OXID_GRAPHQL_URL,
    user: import.meta.env.OXID_USER,
    password: import.meta.env.OXID_PASSWORD,
    imagesConfig: {
      iconImageSize: { width: 60, height: 60 },
      zoomImageSize: { width: 600, height: 600 },
    },
  },
  /* [...] */
});
```

---

## 🤝 Contributing

Contributions are welcome\! Please feel free to submit a Pull Request or open an issue for bugs, feature requests, or improvements.

1.  Fork the repository.
2.  Create your feature branch (`git checkout -b feature/AmazingFeature`).
3.  Commit your changes (`git commit -m 'Add some AmazingFeature'`).
4.  Push to the branch (`git push origin feature/AmazingFeature`).
5.  Open a Pull Request.

---

## 📄 License

This project is licensed under the MIT License. See the `LICENSE` file for details.
npm package: @laioutr/eslint-config
Description: Laioutr ESLint config
Author: Sebastian Langer
Latest version: 1.9.2

# Laioutr ESLint Config

[![npm version][npm-version-src]][npm-version-href]
[![npm downloads][npm-downloads-src]][npm-downloads-href]
[![License][license-src]][license-href]

ESLint config for Laioutr projects.

See [laioutr.com](https://laioutr.com) for more information about Laioutr.

- [✨ &nbsp;Release Notes](/CHANGELOG.md)

## Installation

```bash
pnpm add -D @laioutr/eslint-config
```

## Quick Setup

This package exports the following configs:
- `@laioutr/eslint-config` - The default config for Laioutr projects without any framework specific rules. Also re-exports the `defineConfig` function from `eslint/config` as `extendConfig` for type-safe extension.
- `@laioutr/eslint-config/nuxt-app` - The config for Nuxt apps.
- `@laioutr/eslint-config/nuxt-module` - The config for Nuxt modules and Laioutr App packages.
- `@laioutr/eslint-config/next` - The config for Next.js apps.
- `@laioutr/eslint-config/oclif` - The config for Oclif apps.


## Publishing

To publish a new version, run `pnpm release`. This will:

- Update the changelog
- Publish the package to npmjs.org
- Push the changes to the repository

<!-- Badges -->

[npm-version-src]: https://img.shields.io/npm/v/@laioutr/eslint-config/latest.svg?style=flat&colorA=020420&colorB=00DC82
[npm-version-href]: https://npmjs.com/package/@laioutr/eslint-config
[npm-downloads-src]: https://img.shields.io/npm/dm/@laioutr/eslint-config.svg?style=flat&colorA=020420&colorB=00DC82
[npm-downloads-href]: https://npm.chart.dev/@laioutr/eslint-config
[license-src]: https://img.shields.io/npm/l/@laioutr/eslint-config.svg?style=flat&colorA=020420&colorB=00DC82
[license-href]: https://npmjs.com/package/@laioutr/eslint-config
npm package: @laioutr/prettier-config
Description: Laioutr Prettier config
Author: Sebastian Langer
Latest version: 1.1.0

# `@laioutr/prettier-config`

> laioutr [Prettier](https://prettier.io) config.

## Usage

**Install**:

```bash
npm install -D @laioutr/prettier-config
```

**Edit `package.json`**:

```jsonc
{
  // ...
  "prettier": "@laioutr/prettier-config"
}
```
npm package: @lair60/stylelint-plugin-filenames
Description: Stylelint plugin for consistent filenames.
Author: Luis Inga
Latest version: 1.0.2

# stylelint-plugin-filenames


__Please note__: This plugin will only lint the filenames of the `.css` files you are linting with stylelint. It will ignore other files that are not linted with stylelint.

Adds [stylelint](https://stylelint.io/) rules to ensure consistent filenames for your css files.

## Enabling the plugin

This plugin requires a version of `stylelint>=13.0.0` to be installed as a peer dependency.

Modify your `.stylelintrc` file to load the plugin and enable the rules you want to use.

```json
{
  "plugins": [
    "@lair60/stylelint-plugin-filenames"
  ],
  "rules": {
    "filenames/match-regex": [ 2, "^[a-z_A-Z]+(\\.css)$"]
  }
}
```

## Changelog

#### 1.0.2
- Added github repo info in README

#### 1.0.1
- Fix example in README

#### 1.0.0
- Initial Release
npm package: @laisky/js-utils
Description: Utility library for React/JS applications
Author: Laisky
Latest version: 0.0.5

# Laisky Utils

A comprehensive utility library for React and JavaScript applications with database, DOM, cryptography, caching, and other utilities.

## Installation

```bash
npm install @laisky/js-utils
```

## Usage

```javascript
// Import everything
import laiskyUtils from "laisky-utils";

// Or import specific modules
import { KvSet, KvGet } from "laisky-utils";
import { formatRelativeTime } from "laisky-utils";

// Example usage
const timestamp = new Date();
console.log(formatRelativeTime(timestamp)); // "just now"

// Using the database utilities
await KvSet("myKey", { foo: "bar" });
const value = await KvGet("myKey");
```

## API Reference

### Database Operations

- `KvSet(key, value)` - Store data in IndexedDB
- `KvGet(key)` - Retrieve data from IndexedDB
- `KvExists(key)` - Check if key exists
- `KvDel(key)` - Delete a key

### Caching

- `SetCache(key, value, ttlSeconds)` - Cache with TTL
- `GetCache(key)` - Get from cache

### DOM Utilities

- `LoadJsModules(urls, type)` - Load JS scripts dynamically
- `EnableTooltipsEverywhere()` - Initialize Bootstrap tooltips
- `waitElementReady(selector, maxWaitMs)` - Wait for element to appear

### Cryptography

- `SHA256(str)` - Calculate SHA-256 hash
- `getSHA1(str)` - Calculate SHA-1 hash

### Markdown

- `Markdown2HTML(markdown)` - Convert markdown to HTML

### String Utilities

- `TrimSpace(str)` - Trim whitespace
- `escapeHtml(str)` - Escape HTML special characters
- `formatRelativeTime(timestamp)` - Format as relative time

## License

MIT
npm package: @laison/eslint-config-monorepo
Description: > fork form @laison/eslint-config
Author: SunZhongYi
Latest version: 0.0.20

# @laison/eslint-config

> fork form @laison/eslint-config

[![npm](https://img.shields.io/npm/v/@laison/eslint-config?color=a1b858&label=)](https://npmjs.com/package/@laison/eslint-config)

- Single quotes, with semi
- Auto fix for formatting (aimed to be used standalone **without** Prettier)
- Designed to work with TypeScript, Vue out-of-box
- Lint also for json, yaml, markdown
- Sorted imports, dangling commas
- Reasonable defaults, best practices, only one-line of config
- **Style principle**: Minimal for reading, stable for diff

## Usage

### Install

```bash
pnpm add -D eslint @laison/eslint-config
```

### Config `.eslintrc`

```json
{
  "extends": "@laison"
}
```

> You don't need `.eslintignore` normally as it has been provided by the preset.

### Add script for package.json

For example:

```json
{
  "scripts": {
    "lint": "eslint .",
    "lint:fix": "eslint . --fix"
  }
}
```

### VS Code support (auto fix)

Install [VS Code ESLint extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)

Add the following settings to your `settings.json`:

```jsonc
{
  "prettier.enable": false,
  "editor.formatOnSave": false,
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true,
    "source.organizeImports": false
  },

  // The following is optional.
  // It's better to put under project setting `.vscode/settings.json`
  // to avoid conflicts with working with different eslint configs
  // that does not support all formats.
  "eslint.validate": [
    "javascript",
    "javascriptreact",
    "typescript",
    "typescriptreact",
    "vue",
    "html",
    "markdown",
    "json",
    "jsonc",
    "yaml"
  ]
}
```

### TypeScript Aware Rules

Type aware rules are enabled when a `tsconfig.eslint.json` is found in the project root, which will introduce some stricter rules into your project. If you want to enable it while have no `tsconfig.eslint.json` in the project root, you can change tsconfig name by modifying `ESLINT_TSCONFIG` env.

```js
// .eslintrc.js
process.env.ESLINT_TSCONFIG = 'tsconfig.json';

module.exports = {
  extends: '@laison'
};
```

### Lint Staged

If you want to apply lint and auto-fix before every commit, you can add the following to your `package.json`:

```json
{
  "simple-git-hooks": {
    "pre-commit": "pnpm lint-staged"
  },
  "lint-staged": {
    "*": "eslint --fix"
  }
}
```

and then

```bash
npm i -D lint-staged simple-git-hooks
```

## FAQ



### How to lint CSS?

This config does NOT lint CSS. I personally use [UnoCSS](https://github.com/unocss/unocss) so I don't write CSS. If you still prefer CSS, you can use [stylelint](https://stylelint.io/) for CSS linting.

### I prefer XXX...

Sure, you can override the rules in your `.eslintrc` file.

<!-- eslint-skip -->

```jsonc
{
  "extends": "@laison",
  "rules": {
    // your rules...
  }
}
```
npm package: @laiss-labs/piper-tts-web
Description: Fork of @diffusion-studio/vits-web for easier built-in PiperTTS use.
Author: team@laiss.pt
Latest version: 1.0.6

> This is a fork of [@diffusion-studio/vits-web](https://github.com/diffusion-studio/vits-web) for use
> of PiperTTS modules inside of a browser/Electron for LaissUI.
> A big shout-out goes to [Rhasspy Piper](https://github.com/rhasspy/piper), who open-sourced all the currently available models > (MIT License) and to [@jozefchutka](https://github.com/jozefchutka) who came up with the wasm build steps.

# Run PiperTTS based text-to-speech in the browser powered by the [ONNX Runtime](https://onnxruntime.ai/)

## Difference from the original

### Caching for client

You can leverage `TTSSessions` for a faster inference. (see index.js for implementation)
Credit to [this PR](https://github.com/diffusion-studio/vits-web/pull/5) for the starting point.

### Local WASM/Loading

You can define local WASM paths for the `ort` wasm as well as the phenomizer wasm and data file for faster local loading
since the client could be offline.

### Note:

This is a frontend library and will not work with NodeJS.

## Usage
First of all, you need to install the library:
```bash
yarn add @laiss-labs/piper-tts-web
```

Then you're able to import the library like this (ES only)
```typescript
import * as tts from '@laiss-labs/piper-tts-web';
```

Now you can start synthesizing speech!
```typescript
const wav = await tts.predict({
  text: "Text to speech in the browser is amazing!",
  voiceId: 'en_US-hfc_female-medium',
});

const audio = new Audio();
audio.src = URL.createObjectURL(wav);
audio.play();

// as seen in /example with Web Worker
```


With the initial run of the predict function you will download the model which will then be stored in your [Origin private file system](https://developer.mozilla.org/en-US/docs/Web/API/File_System_API/Origin_private_file_system). You can also do this manually in advance *(recommended)*, as follows:
```typescript
await tts.download('en_US-hfc_female-medium', (progress) => {
  console.log(`Downloading ${progress.url} - ${Math.round(progress.loaded * 100 / progress.total)}%`);
});
```

The predict function also accepts a download progress callback as the second argument (`tts.predict(..., console.log)`). <br>

If you want to know which models have already been stored, do the following
```typescript
console.log(await tts.stored());

// will log ['en_US-hfc_female-medium']
```

You can remove models from opfs by calling
```typescript
await tts.remove('en_US-hfc_female-medium');

// alternatively delete all

await tts.flush();
```

And last but not least use this snippet if you would like to retrieve all available voices:
```typescript
console.log(await tts.voices());

// Hint: the key can be used as voiceId
```

### **That's it!** Happy coding :)
npm package: @lait/datocms-plugin-formats-super-sub
Description: This DatoCMS plugin adds the possibility to add superscript and subscript format
Author: LAIT Anders Bootsmann
Latest version: 1.4.2

# DatoCMS Formats

This plugin gives the posibility to add subscript and superscript format in the Structured text editor

## Formats for DatoCMS

-Subscript
-Superscript

### Author

Anders Bootsmann Larsen</br>
ab@lait.dk</br>
LAIT Aps</br>
npm package: @lait/datocms-plugin-kontainer
Description: Pick and choose images from your Kontainer application and save the urls in DatoCMS
Author: LAIT
Latest version: 1.3.3

# Kontainer plugin for DatoCMS

## What is this repository for?

This repo contains the source code for the Kontainer DatoCMS plugin.

## How do I get set up?

Run ```npm install``` or ```npm clean-install``` to get all the required packages.

When node modules have been installed run  ```npm run start```, this will run the plugin in your browser on <http://localhost:3000>

In your DatoCMS application, go to Settings -> Plugins and add a new plugin, choose *Create new plugin*.
In the popup, write *Kontainer plugin* or something that makes more sense to you,
and set the url to <http://localhost:3000>

Now the presentation *Kontainer Assets* is available on the *JSON* field type.

## Publishing

Run ```npm run build``` to prepare the build files.

Ensure that any new required files are added to package.json files array.
README.md, LICENSE.md, and package.json are always included.  
```{ "files" : [ "build", "kontainer-logo.png"] }```

To validate what files are deployed use ```npx npm-packlist```.

Run ```npm version {major|minor|patch}``` to increment the package version, and tag the git repository.

Run ```npm publish``` when you're ready to deploy.

Npm might give a 404 error, this is likely because you're not logged in, and not because the package doesn't exist.  
Fix it by running ```npm login```, and follow the prompts.

## Contribution guidelines

We are using Git flow as a branching and release model.
npm package: @lait/stylelint-config
Description: A lint configuration for Stylelint used  for LAIT projects developed by LAIT developers. 
Author: LAIT
Latest version: 1.2.0

# LAIT Stylelint configuration


## Rules for your CSS

By this configuration we at LAIT, aim to make code look like one person wrote it, no matter how many people have contributed and that is the purpose of this sets of rules powered by [stylelint](https://stylelint.io/).

## Installation

```
npm install --save-dev stylelint @lait/stylelint-config
```

## Usage

To use it set your `extends` property in `.stylelintrc`
```json
{
  "extends": "@lait/stylelint-config"
}
```

## License

MIT © LAIT - Andreas Christiansen
npm package: @laith-wallace/crisp
Description: CRISP design intelligence skills for AI agents
Author: Laith Wallace
Latest version: 1.0.1

# CRISP — Design Intelligence for AI Agents

Five skills that give your AI agent a senior product designer's eye. Drop them into Claude, Cursor, Copilot, or Gemini and get structured design reviews, feature specs, and developer handoffs grounded in the CRISP framework.

**CRISP** = Contextual · Responsive · Intelligent · Seamless · Powerful

---

## Skills

| Command | What it does |
|---------|-------------|
| `/crisp-teach` | Onboards the AI to your product — users, design system, benchmarks. Writes `.crisp.md` which all other commands read automatically. Run once per project. |
| `/crisp-review` | 30-second scan. Returns a grade A–F and your top 3 issues with specific fixes. Use during rapid iteration. |
| `/crisp-audit` | Full CRISP evaluation. Scores all five dimensions, rates violations P0–P3, and benchmarks against Stripe, Linear, Notion, Asana, and Slack. |
| `/feature-design` | Designs a new feature from scratch using CRISP principles — user flows, component decisions, compliance checks, and open questions. |
| `/handoff` | Converts a reviewed design into a developer-ready spec — states, tokens, interactions, edge cases, accessibility, and exact copy. |

---

## Install

### Claude Code
```bash
npx skills add laith-wallace/crisp
```

### Cursor
Copy the contents of `.cursor/rules/` into your project's `.cursor/rules/` folder.

### Other agents
- **GitHub Copilot / Antigravity** — copy from `.agents/skills/`
- **Gemini** — copy from `.gemini/skills/`
- **Manual** — copy any `.md` file from `files/` and add it to your agent's context

---

## How it works

Run `/crisp-teach` first. The AI interviews you about your product, users, and design system, then writes a `.crisp.md` file to your project root. Every subsequent CRISP command reads that file automatically — so reviews and specs are grounded in your specific context, not generic advice.

```
/crisp-teach   →  writes .crisp.md
/crisp-review  →  reads .crisp.md, returns grade + top 3 issues
/crisp-audit   →  reads .crisp.md, full scored evaluation
/feature-design → reads .crisp.md, produces user flow + spec
/handoff       →  reads .crisp.md, produces dev-ready spec
```

---

## The CRISP Framework

| Dimension | The test |
|-----------|----------|
| **C**ontextual | Can the user tell where they are and what this page does within 5 seconds? |
| **R**esponsive | Does the UI update immediately on every interaction? |
| **I**ntelligent | Are we showing insight, not raw data? |
| **S**eamless | Are we fitting into their day — not forcing them into ours? |
| **P**owerful | Is complexity hidden appropriately for each user type? |

---

## License

MIT