open-index/open-npm huggingface dataset:
npm package: @lasca/template-converter
Description: This package converts imported figma API data and nocode settings (eg, condition, loop) into frontend source code fotmat (Vue template, JSX, CSS).
Author: Lasca Inc.
Latest version: 0.0.130

# lasca-template-converter

This package converts imported figma API data and nocode settings (eg, condition, loop) into frontend source code fotmat (Vue template, JSX, CSS).
npm package: @laser-dac/beyond
Description: Pangolin Beyond laser interface for Node.js
Author: Kees Kluskens
Latest version: 0.3.1

# @laser-dac/beyond

This package makes Laser DAC compatible with the [Pangolin Beyond software](https://pangolin.com/pages/beyond).

**Package is not finished yet.**

Pangolin does not provide any way to talk to a Pangolin FB3 or FB4 directly, so this means you need to run Pangolin Beyond on the same PC as well. This also means it **only works on Windows**.

```
yarn add @laser-dac/beyond
npm i @laser-dac/beyond
```

## Usage

```js
import { DAC } from '@laser-dac/core';
import { Beyond } from '@laser-dac/beyond';

const dac = new DAC();
dac.use(new Beyond());
const started = await dac.start();
if (started) {
  const pps = 30000; // points per second
  const fps = 120; // frames per second
  // draw a horizontal red line from left to right in the center
  // @laser-dac/draw can help you with drawing points!
  const scene = {
    points: [
      { x: 0.1, y: 0.5, r: 1, g: 0, b: 0 },
      { x: 0.9, y: 0.5, r: 1, g: 0, b: 0 },
    ],
  };
  dac.stream(scene, pps, fps);
}
```

See for more usage info and examples the [Laser DAC project on GitHub](https://github.com/Volst/laser-dac).
npm package: @laser-dac/core
Description: Control your show laser via Node.js!
Author: Kees Kluskens
Latest version: 0.4.2

# @laser-dac/core

This is an extremely lightweight wrapper that allows you to control any laser DAC you want with a standardized interface. This package does nothing on its own.

```
yarn add @laser-dac/core
npm i @laser-dac/core
```

A usage example together with [`@laser-dac/helios`](https://github.com/Volst/laser-dac/tree/master/packages/helios):

```js
import { DAC } from '@laser-dac/core';
import { Helios } from '@laser-dac/helios';

const dac = new DAC();
dac.use(new Helios());
const started = await dac.start();
if (started) {
  const pps = 30000; // points per second
  const fps = 120; // frames per second
  // draw a horizontal red line from left to right in the center
  // @laser-dac/draw can help you with drawing points!
  const scene = {
    points: [
      { x: 0.1, y: 0.5, r: 1, g: 0, b: 0 },
      { x: 0.9, y: 0.5, r: 1, g: 0, b: 0 },
    ],
  };
  dac.stream(scene, pps, fps);
}
```

See for more usage info the [Laser DAC project on GitHub](https://github.com/Volst/laser-dac).
npm package: @laser-dac/easylase
Description: Easylase laser interface for Node.js
Author: Kees Kluskens
Latest version: 0.2.1

# @laser-dac/easylase

This package makes Laser DAC compatible with the Easylase USB II and NetLase by [JMLaser](http://www.jmlaser.com/).

This package works on Windows only since JMLaser only provides drivers for Windows.

```
yarn add @laser-dac/easylase
npm i @laser-dac/easylase
```

## Usage

```js
import { DAC } from '@laser-dac/core';
import { Easylase } from '@laser-dac/easylase';

const dac = new DAC();
dac.use(new Easylase());
const started = await dac.start();
if (started) {
  const pps = 30000; // points per second
  const fps = 120; // frames per second
  // draw a horizontal red line from left to right in the center
  // @laser-dac/draw can help you with drawing points!
  const scene = {
    points: [
      { x: 0.1, y: 0.5, r: 1, g: 0, b: 0 },
      { x: 0.9, y: 0.5, r: 1, g: 0, b: 0 },
    ],
  };
  dac.stream(scene, pps, fps);
}
```

See for more usage info and examples the [Laser DAC project on GitHub](https://github.com/Volst/laser-dac).
npm package: @laser-dac/ether-dream
Description: Ether-Dream laser interface for Node.js
Author: Kees Kluskens
Latest version: 0.4.2

# @laser-dac/ether-dream

This package makes Laser DAC compatible with the [Ether Dream](https://ether-dream.com/). Should work on all operating systems.

This package is originally based on [node-etherdream](https://github.com/possan/node-etherdream) but with many changes.

```
yarn add @laser-dac/ether-dream
npm i @laser-dac/ether-dream
```

## Usage

```js
import { DAC } from '@laser-dac/core';
import { EtherDream } from '@laser-dac/ether-dream';

const dac = new DAC();
dac.use(new EtherDream());
const started = await dac.start();
if (started) {
  const pps = 30000; // points per second
  // draw a horizontal red line from left to right in the center
  // @laser-dac/draw can help you with drawing points!
  const scene = {
    points: [
      { x: 0.1, y: 0.5, r: 1, g: 0, b: 0 },
      { x: 0.9, y: 0.5, r: 1, g: 0, b: 0 },
    ],
  };
  dac.stream(scene, pps);
}
```

See for more usage info and examples the [Laser DAC project on GitHub](https://github.com/Volst/laser-dac).
npm package: @laser-dac/helios
Description: Helios laser interface for Node.js
Author: Kees Kluskens
Latest version: 0.3.2

# @laser-dac/helios

This package makes Laser DAC compatible with the [Helios](http://pages.bitlasers.com/helios/). Currently macOS + Windows only.

```
yarn add @laser-dac/helios
npm i @laser-dac/helios
```

## Usage

```js
import { DAC } from '@laser-dac/core';
import { Helios } from '@laser-dac/helios';

const dac = new DAC();
dac.use(new Helios());
const started = await dac.start();
if (started) {
  const pps = 30000; // points per second
  const fps = 120; // frames per second
  // draw a horizontal red line from left to right in the center
  // @laser-dac/draw can help you with drawing points!
  const scene = {
    points: [
      { x: 0.1, y: 0.5, r: 1, g: 0, b: 0 },
      { x: 0.9, y: 0.5, r: 1, g: 0, b: 0 },
    ],
  };
  dac.stream(scene, pps, fps);
}
```

See for more usage info and examples the [Laser DAC project on GitHub](https://github.com/Volst/laser-dac).
npm package: @laser-dac/ilda-reader
Description: Read ILDA (.ild) files as JSON data
Author: Kees Kluskens
Latest version: 0.3.3

# ILDA Reader

This package can read an [ILDA](http://ilda.com/) file (`.ild`) and convert it to a JSON array of points. All ILDA formats are supported (0 to 5).

This is heavily inspired by [ilda.js](https://github.com/possan/ilda.js), but this tool only works in the browser and we wanted to be able to use it in both Nodejs and the browser.

To write a JSON array of points to an ILDA file, see its counterpart [ilda-writer](https://github.com/Volst/laser-dac/tree/master/packages/ilda-writer).

## Install

```
npm install @laser-dac/ilda-reader
```

## Usage

For a full example see `./test.ild` and `./test.ts` in the repository.

```js
const buffer = fs.readFileSync('./test.ild');
const output = fromByteArray(new Uint8Array(buffer));

console.log(output);
```
npm package: @laser-dac/ilda-writer
Description: Write JSON points to ILDA (.ild) files
Author: Kees Kluskens
Latest version: 0.2.2

# ILDA Writer

This package can write an array of points to an [ILDA](http://ilda.com/) file (`.ild`). All ILDA formats are supported (0 to 5).

This is heavily inspired by [ilda.js](https://github.com/possan/ilda.js), but this tool only works in the browser and we wanted to be able to use it in both Nodejs and the browser.

To convert an ILDA file to a JSON array of points, see its counterpart [ilda-reader](https://github.com/Volst/laser-dac/tree/master/packages/ilda-reader).

## Install

```
npm install @laser-dac/ilda-writer
```

## Usage

For a full example see `./test.json` and `./test.ts` in the repository.

```js
import { toByteArray } from '@laser-dac/ilda-writer';
import { writeFileSync } from 'fs';

const sections = [
  {
    type: 0, // see `SectionTypes` in src/file.ts
    colors: [], // optional, can contain { r: 0, g: 0, b: 0 }
    company: 'Volst', // optional
    head: 0, // optional
    points: [
      {
        blanking: false,
        color: 0,
        x: -4214,
        y: 2011,
        z: 0,
      },
    ],
  },
];

const byteArray = toByteArray(sections);

const b = new Buffer(byteArray);
writeFileSync('test.ild', b);
```

Or with ILDA format 5:

```js
import { toByteArray } from '@laser-dac/ilda-writer';
import { writeFileSync } from 'fs';

const sections = [
  {
    type: 5,
    points: [
      {
        blanking: false,
        x: -4214,
        y: 2011,
        r: 255,
        g: 0,
        b: 0,
      },
    ],
  },
];

const byteArray = toByteArray(sections);

const b = new Buffer(byteArray);
writeFileSync('test.ild', b);
```
npm package: @laser-dac/lasercube-wifi
Description: LaserCube Wifi interface for Node.js
Author: Kees Kluskens
Latest version: 0.5.9

# @laser-dac/lasercube-wifi

This package makes Laser DAC compatible with the LaserCube Wifi.

```
yarn add @laser-dac/lasercube-wifi
npm i @laser-dac/lasercube-wifi
```

Many thanks to @s4y for deciphering the LaserOS demo and [porting it to Python](https://gist.github.com/s4y/0675595c2ff5734e927d68caf652e3af).

## Usage

```js
import { DAC } from '@laser-dac/core';
import { LasercubeWifi } from '@laser-dac/lasercube-wifi';

const dac = new DAC();
dac.use(new LasercubeWifi());
const started = await dac.start();
if (started) {
  const pps = 30000; // points per second
  // draw a horizontal red line from left to right in the center
  // @laser-dac/draw can help you with drawing points!
  const scene = {
    points: [
      { x: 0.1, y: 0.5, r: 1, g: 0, b: 0 },
      { x: 0.9, y: 0.5, r: 1, g: 0, b: 0 },
    ],
  };
  dac.stream(scene, pps);
}
```

See for more usage info and examples the [Laser DAC project on GitHub](https://github.com/Volst/laser-dac).
npm package: @laser-dac/laserdock
Description: Laserdock laser interface for Node.js
Author: Kees Kluskens
Latest version: 0.4.2

# @laser-dac/laserdock

This package makes Laser DAC compatible with the Laserdock. Currently macOS + Windows only.

Only works for the USB version of the Laserdock / Lasercube (1W and 2W)! See also [Lasercube WiFi DAC](../lasercube-wifi).

```
yarn add @laser-dac/laserdock
npm i @laser-dac/laserdock
```

## Usage

```js
import { DAC } from '@laser-dac/core';
import { Laserdock } from '@laser-dac/laserdock';

const dac = new DAC();
dac.use(new Laserdock());
const started = await dac.start();
if (started) {
  const pps = 30000; // points per second
  // draw a horizontal red line from left to right in the center
  // @laser-dac/draw can help you with drawing points!
  const scene = {
    points: [
      { x: 0.1, y: 0.5, r: 1, g: 0, b: 0 },
      { x: 0.9, y: 0.5, r: 1, g: 0, b: 0 },
    ],
  };
  dac.stream(scene, pps);
}
```

See for more usage info and examples the [Laser DAC project on GitHub](https://github.com/Volst/laser-dac).
npm package: @laser-dac/simulator
Description: A simulator for laser DACs
Author: Kees Kluskens
Latest version: 0.3.4

# @laser-dac/simulator

This package can simulate a physical laser DAC so you can develop without having a laser or DAC at all. It has a web-based simulator for the laser, that tries its best to mimick the limitations of the laser.

```
yarn add @laser-dac/simulator
npm i @laser-dac/simulator
```

## Usage

```js
import { DAC } from '@laser-dac/core';
import { Simulator } from '@laser-dac/simulator';

const dac = new DAC();
dac.use(new Simulator());
const started = await dac.start();
if (started) {
  // draw a horizontal red line from left to right in the center
  // @laser-dac/draw can help you with drawing points!
  const scene = {
    points: [
      { x: 0.1, y: 0.5, r: 1, g: 0, b: 0 },
      { x: 0.9, y: 0.5, r: 1, g: 0, b: 0 },
    ],
  };
  dac.stream(scene);
}
```

See for more usage info and examples the [Laser DAC project on GitHub](https://github.com/Volst/laser-dac).
npm package: @laser-pro/acl
Description: Advanced modules for enterprise applications.
Author: Xie Jay
Latest version: 3.2.2

# acl

This library was generated with [Nx](https://nx.dev).

## Building

Run `nx build acl` to build the library.

## Running unit tests

Run `nx test acl` to execute the unit tests via [Jest](https://jestjs.io).
npm package: @laser-ui/cli
Description: Cli for Laser Admin.
Author: Xie Jay
Latest version: 0.1.0

# Laser Cli

Cli for Laser Admin.

## Installation

```bash
npm install @laser-ui/cli -g
```

## Commands

### create

Create a project using laser-admin as a template.

```bash
laser-cli create
```

### route

Create a route for the laser-admin project.

```bash
laser-cli route
```
npm package: @laser-ui/components
Description: React components.
Author: Xie Jay
Latest version: 2.6.2

<p align="center">
  <a href="//laser-ui.github.io/" rel="noopener" target="_blank"><img width="150" src="apps/site/public/logo.png" alt="logo"></a>
</p>

<h1 align="center">Laser UI</h1>

<div align="center">

<!-- prettier-ignore-start -->
[![npm latest package](http://img.shields.io/npm/v/@laser-ui/components/latest.svg?style=flat-square)](https://www.npmjs.com/package/@laser-ui/components)
[![npm bundle size](https://img.shields.io/bundlephobia/minzip/@laser-ui/components?style=flat-square)](https://bundlephobia.com/package/@laser-ui/components)
[![gitHub workflow status](https://img.shields.io/github/actions/workflow/status/laser-ui/laser-ui/main.yml?branch=main&style=flat-square)](https://github.com/laser-ui/laser-ui/actions/workflows/main.yml)
<!-- prettier-ignore-end -->

</div>

<div align="center">

English | [简体中文](README.zh-CN.md)

</div>

## Installation

```bash
npm install @laser-ui/components @laser-ui/hooks @laser-ui/themes @laser-ui/utils
```

## Getting Started

```tsx
import type { LContextIn } from '@laser-ui/components/context';

import { ConfigProvider, Root } from '@laser-ui/components';
import { useMemo } from 'react';

export default function App() {
  const lContext = useMemo<LContextIn>(
    () => ({
      layoutPageScrollEl: '#app-main',
      layoutContentResizeEl: '#app-content',
    }),
    [],
  );

  return (
    <ConfigProvider context={lContext}>
      <Root>
        <main id="app-main" style={{ overflow: 'auto' }}>
          <section id="app-content" style={{ height: '200vh' }}>
            Some content...
          </section>
        </main>
      </Root>
    </ConfigProvider>
  );
}
```

## Links

- [laser-admin.surge.sh](//laser-admin.surge.sh)

## Contributing

Please read our [contributing guide](/CONTRIBUTING.md) first.

## License

[![gitHub license](https://img.shields.io/github/license/laser-ui/laser-ui?style=flat-square)](/LICENSE)
npm package: @lasercat/claudeli
Description: A TypeScript-native library template with bun
Author: Ryland Goldstein
Latest version: 1.0.12

# Library Template

A modern TypeScript library template with ESLint, Prettier, and build tooling pre-configured. Designed for seamless setup with `bun create`.

## Features

- 🚀 Interactive setup with `bun create`
- 📦 TypeScript support with strict mode
- 🎨 ESLint and Prettier pre-configured
- 🔨 Build scripts ready to go
- 🤖 GitHub Actions CI/CD workflow
- 📚 Optional NPM publishing

## Quick Start

### Using bun create (Recommended)

```bash
bun create github.com/lasercat-industries/library-template my-library
```

The interactive setup will:

- Configure your package name as `@lasercat/<your-name>`
- Set the author field
- Optionally set up npm publishing
- Clean up setup files automatically

### Manual Setup

1. Clone this template
2. Run `bun install`
3. Update `package.json` with your library details
4. Replace this README with your library documentation
5. Start developing your library

## Development

```bash
# Install dependencies
bun install

# Build the library
bun run build

# Run linting
bun run lint

# Run formatter
bun run format

# Run tests
bun test

# Type checking
bun run typecheck
```

## Project Structure

```
src/
├── index.ts        # Main entry point
└── index.test.ts   # Example test file

dist/               # Built output (generated)
```

## GitHub Actions

The template includes a CI workflow that:

- Runs tests, linting, and type checking on every push
- Publishes to npm when the version changes (if configured)

## Publishing to npm

If you chose to enable npm publishing during setup:

1. Add `NPM_TOKEN` secret to your GitHub repository
2. Update the version in `package.json`
3. Push to the `main` branch
4. The package will be automatically published

## License

MIT
npm package: @lasercat/component-template
Description: A template for react-typescript components
Author: Ryland Goldstein
Latest version: 1.0.1

# Component Template

A modern TypeScript library template with ESLint, Prettier, and build tooling pre-configured. Designed for seamless setup with `bun create`.

## Features

- 🚀 Interactive setup with `bun create`
- 📦 TypeScript support with strict mode
- 🎨 ESLint and Prettier pre-configured
- 🔨 Build scripts ready to go
- 🤖 GitHub Actions CI/CD workflow
- 📚 Optional NPM publishing

## Quick Start

### Using bun create (Recommended)

```bash
bun create github.com/lasercat-industries/library-template my-library
```

The interactive setup will:

- Configure your package name as `@lasercat/<your-name>`
- Set the author field
- Optionally set up npm publishing
- Clean up setup files automatically

### Manual Setup

1. Clone this template
2. Run `bun install`
3. Update `package.json` with your library details
4. Replace this README with your library documentation
5. Start developing your library

## Development

```bash
# Install dependencies
bun install

# Build the library
bun run build

# Run linting
bun run lint

# Run formatter
bun run format

# Run tests
bun test

# Type checking
bun run typecheck
```

## Project Structure

```
src/
├── index.ts        # Main entry point
└── index.test.ts   # Example test file

dist/               # Built output (generated)
```

## GitHub Actions

The template includes a CI workflow that:

- Runs tests, linting, and type checking on every push
- Publishes to npm when the version changes (if configured)

## Publishing to npm

If you chose to enable npm publishing during setup:

1. Add `NPM_TOKEN` secret to your GitHub repository
2. Update the version in `package.json`
3. Push to the `main` branch
4. The package will be automatically published

## License

MIT
npm package: @lasercat/config
Description: Shared configations for our projects
Author: Lasercat
Latest version: 1.2.7

# @lasercat/config

Shared configuration for ESLint, TypeScript, and Prettier used across Lasercat projects.

## Installation

```bash
npm install --save-dev @lasercat/config
```

## Usage

### ESLint

Create an `eslint.config.js` file in your project:

```javascript
import baseConfig from '@lasercat/config/eslint.config.js';

export default [
  ...baseConfig,
  // Your custom rules here
];
```

### TypeScript

Create a `tsconfig.json` file in your project:

```json
{
  "extends": "@lasercat/config/tsconfig.json",
  "compilerOptions": {
    // Your custom options here
  },
  "include": ["src"],
  "exclude": ["node_modules", "dist"]
}
```

For build configurations, you can also extend the build config:

```json
{
  "extends": "@lasercat/config/tsconfig.build.json",
  "compilerOptions": {
    // Your custom build options here
  }
}
```

### Prettier

Create a `.prettierrc.json` file in your project:

```json
{
  "extends": "@lasercat/config/.prettierrc.json"
}
```

Or in your `package.json`:

```json
{
  "prettier": "@lasercat/config/.prettierrc.json"
}
```

## What's Included

### ESLint Configuration
- Modern ESLint v9 flat config
- TypeScript support with @typescript-eslint
- Plugins: import, promise, unicorn, eslint-comments, regexp, security, unused-imports
- Sensible defaults for Node.js and browser environments

### TypeScript Configuration
- Strict mode enabled
- Modern ES2024 target
- ESNext modules
- Path mapping support
- Optimized for bundlers

### Prettier Configuration
- Single quotes
- Semicolons
- Trailing commas
- 100 character line width
- Consistent formatting rules

## License

MIT
npm package: @lasercat/fullstack-lib-template
Description: A template for react-typescript components
Author: Ryland Goldstein
Latest version: 1.0.5

# Component Template

A modern TypeScript library template with ESLint, Prettier, and build tooling pre-configured. Designed for seamless setup with `bun create`.

## Features

- 🚀 Interactive setup with `bun create`
- 📦 TypeScript support with strict mode
- 🎨 ESLint and Prettier pre-configured
- 🔨 Build scripts ready to go
- 🤖 GitHub Actions CI/CD workflow
- 📚 Optional NPM publishing

## Quick Start

### Using bun create (Recommended)

```bash
bun create github.com/lasercat-industries/library-template my-library
```

The interactive setup will:

- Configure your package name as `@lasercat/<your-name>`
- Set the author field
- Optionally set up npm publishing
- Clean up setup files automatically

### Manual Setup

1. Clone this template
2. Run `bun install`
3. Update `package.json` with your library details
4. Replace this README with your library documentation
5. Start developing your library

## Development

```bash
# Install dependencies
bun install

# Build the library
bun run build

# Run linting
bun run lint

# Run formatter
bun run format

# Run tests
bun test

# Type checking
bun run typecheck
```

## Project Structure

```
src/
├── index.ts        # Main entry point
└── index.test.ts   # Example test file

dist/               # Built output (generated)
```

## GitHub Actions

The template includes a CI workflow that:

- Runs tests, linting, and type checking on every push
- Publishes to npm when the version changes (if configured)

## Publishing to npm

If you chose to enable npm publishing during setup:

1. Add `NPM_TOKEN` secret to your GitHub repository
2. Update the version in `package.json`
3. Push to the `main` branch
4. The package will be automatically published

## License

MIT
npm package: @lasercat/library-template
Description: A TypeScript-native library template with bun
Author: Ryland Goldstein
Latest version: 1.0.5

# Library Template

A modern TypeScript library template with ESLint, Prettier, and build tooling pre-configured. Designed for seamless setup with `bun create`.

## Features

- 🚀 Interactive setup with `bun create`
- 📦 TypeScript support with strict mode
- 🎨 ESLint and Prettier pre-configured
- 🔨 Build scripts ready to go
- 🤖 GitHub Actions CI/CD workflow
- 📚 Optional NPM publishing

## Quick Start

### Using bun create (Recommended)

```bash
bun create github.com/lasercat-industries/library-template my-library
```

The interactive setup will:
- Configure your package name as `@lasercat/<your-name>`
- Set the author field
- Optionally set up npm publishing
- Clean up setup files automatically

### Manual Setup

1. Clone this template
2. Run `bun install`
3. Update `package.json` with your library details
4. Replace this README with your library documentation
5. Start developing your library

## Development

```bash
# Install dependencies
bun install

# Build the library
bun run build

# Run linting
bun run lint

# Run formatter
bun run format

# Run tests
bun test

# Type checking
bun run typecheck
```

## Project Structure

```
src/
├── index.ts        # Main entry point
└── index.test.ts   # Example test file

dist/               # Built output (generated)
```

## GitHub Actions

The template includes a CI workflow that:
- Runs tests, linting, and type checking on every push
- Publishes to npm when the version changes (if configured)

## Publishing to npm

If you chose to enable npm publishing during setup:

1. Add `NPM_TOKEN` secret to your GitHub repository
2. Update the version in `package.json`
3. Push to the `main` branch
4. The package will be automatically published

## License

MIT
npm package: @lasercat/seelaude
Description: A template for react-typescript components
Author: Ryland Goldstein
Latest version: 1.2.0

# Component Template

A modern TypeScript library template with ESLint, Prettier, and build tooling pre-configured. Designed for seamless setup with `bun create`.

## Features

- 🚀 Interactive setup with `bun create`
- 📦 TypeScript support with strict mode
- 🎨 ESLint and Prettier pre-configured
- 🔨 Build scripts ready to go
- 🤖 GitHub Actions CI/CD workflow
- 📚 Optional NPM publishing

## Quick Start

### Using bun create (Recommended)

```bash
bun create github.com/lasercat-industries/library-template my-library
```

The interactive setup will:

- Configure your package name as `@lasercat/<your-name>`
- Set the author field
- Optionally set up npm publishing
- Clean up setup files automatically

### Manual Setup

1. Clone this template
2. Run `bun install`
3. Update `package.json` with your library details
4. Replace this README with your library documentation
5. Start developing your library

## Development

```bash
# Install dependencies
bun install

# Build the library
bun run build

# Run linting
bun run lint

# Run formatter
bun run format

# Run tests
bun test

# Type checking
bun run typecheck
```

## Project Structure

```
src/
├── index.ts        # Main entry point
└── index.test.ts   # Example test file

dist/               # Built output (generated)
```

## GitHub Actions

The template includes a CI workflow that:

- Runs tests, linting, and type checking on every push
- Publishes to npm when the version changes (if configured)

## Publishing to npm

If you chose to enable npm publishing during setup:

1. Add `NPM_TOKEN` secret to your GitHub repository
2. Update the version in `package.json`
3. Push to the `main` branch
4. The package will be automatically published

## License

MIT
npm package: @laserfiche/lf-api-client-core
Description: Javascript Library containing the implementation of OAuth 2.0 credential handlers for the Laserfiche API and additional utility functions.
Author: Laserfiche
Latest version: 1.1.19

# Laserfiche API Client Core Library

Javascript Library containing the implementation of OAuth 2.0 credential handlers for the Laserfiche API and additional utility functions.

## Documentation

- [Laserfiche Developer Center](https://developer.laserfiche.com/)
- [Js Client Core Library Documentation](https://laserfiche.github.io/lf-api-client-core-js/docs/1.x/index.html)

## Change Log

See CHANGELOG [here](https://github.com/Laserfiche/lf-api-js/blob/HEAD/packages/lf-api-client-core-js/CHANGELOG.md).

## Installation

To install, [see here](https://www.npmjs.com/package/@laserfiche/lf-api-client-core)

### Build, Test, and Package

See the [.github/workflows/main.yml](https://github.com/Laserfiche/lf-api-js/blob/HEAD/.github/workflows/main.yml).
npm package: @laserfiche/lf-api-js
Description: The JavaScript Laserfiche API Client library for accessing available Laserfiche APIs.
Author: Laserfiche
Latest version: 1.0.6

# Laserfiche API Client

Use the Laserfiche API client to access data using available Laserfiche APIs. Import or export documents, modify the repository folder structure, read and modify templates and field values, and more.

The Laserfiche API Client allows you to authenticate the client object and use any of the available sub-clients, including repository API v1 and v2. More clients will be available in the future.

## Documentation

- [Developer Documentation](https://developer.laserfiche.com/)

## Changelog

See CHANGELOG [here](https://github.com/Laserfiche/lf-api-js/blob/HEAD/packages/lf-api-js/CHANGELOG.md).

## Installation

To install, [see here](https://www.npmjs.com/package/@laserfiche/lf-api-js)

### Build, Test, and Package

See the [.github/workflows/main.yml](https://github.com/Laserfiche/lf-api-js/blob/HEAD/.github/workflows/main.yml).
npm package: @laserfiche/lf-ui-components-services
Description: A library for services that interact with the Laserfiche API and can be used by lf-ui-components
Latest version: 18.1.0

<!--Copyright (c) Laserfiche.
Licensed under the MIT License. See LICENSE in the project root for license information.-->

# lf-ui-components-services

This library contains the data sources implementation to connect the [Laserfiche UI Components](https://www.npmjs.com/package/@laserfiche/lf-ui-components) to live data from Laserfiche API services.

You can use these pre-built services to display data using the UI components.

[Documentation](https://developer.laserfiche.com/)

## Getting started

1. `npm install @laserfiche/lf-ui-components-services`
1. Create an instance of IRepositoryClientEx. See [IRepositoryClient documentation](https://developer.laserfiche.com/) to create partialRepoClient.

    ```ts
    const partialRepoClient = IRepositoryClient.createFromHttpHandler({...});
    const repositoryClient: IRepositoryClientEx = {
        ...partialRepoClient,
        getCurrentRepoId: async () => {return await partialRepoClient.repositoriesClient.getRepositoryInfo()[0].repoId},
        getCurrentRepoName: async () => {return await partialRepoClient.repositoriesClient.getRepositoryInfo()[0].repoName},
    }
    ```

1. Initialize your chosen service

    ```ts
    const fieldsService = new LfFieldsService(repositoryClient);
    ```

1. Use service with the corresponding UI Component

    ```ts
    await this.metadataContainer.initAsync({fieldsService});
    ```

For detailed information about how to utilize these services see the sample projects available in Github (in [Angular](https://github.com/Laserfiche/lf-sample-OAuth-SPA-angular) and [React](https://github.com/Laserfiche/lf-sample-OAuth-SPA-react))

## Change Log

See CHANGELOG [here](https://github.com/Laserfiche/lf-ui-components-services/blob/HEAD/CHANGELOG.md).

## Contribution

We welcome contributions and feedback. Please follow our [contributing guidelines](https://github.com/Laserfiche/lf-ui-components-services/blob/HEAD/CONTRIBUTING.md).

### Development prerequisite

See .github/workflows/main.yml for Node and NPM version used.
npm package: @laserfiche/types-lf-ui-components
Description: <!--Copyright (c) Laserfiche. Licensed under the MIT License. See LICENSE in the project root for license information.-->
Latest version: 18.0.7

<!--Copyright (c) Laserfiche.
Licensed under the MIT License. See LICENSE in the project root for license information.-->

# @laserfiche/type-lf-ui-components

This is the type NPM package that contains the declaration files for lf-prefixed elements.

## How to use the type NPM Package for lf-ui-components?

- Please see this example on how to use this package along with the CDN: [CDN with Angular Applications](https://github.com/Laserfiche/lf-ui-components/blob/HEAD/README.md#CDN-with-Angular-Applications).

- To use the types in a typescript file:

   ```ts
      import {LfChecklistComponent, Checklist} from '@laserfiche/types-lf-ui-components';  
   ```