open-index/open-npm huggingface dataset:
npm package: @jsreport/studio-dev
Description: Utils for developing jsreport studio extensions
Author: Jan Blaha
Latest version: 4.1.0

# @jsreport/studio-dev

[![NPM Version](http://img.shields.io/npm/v/@jsreport/studio-dev.svg?style=flat-square)](https://npmjs.com/package/@jsreport/studio-dev)

**Utils for developing jsreport studio extensions**

## jsreport-studio-start
`jsreport-studio-start` starts the jsreport studio in the development mode with hot reloading used for developing custom extensions.

## jsreport-studio-build

`jsreport-studio-build` command should be run from the main extension directory. It automatically locates `studio/main_dev.js` and build it. The most common approach is to run it from the `package.json`  `prepublish` script. It's also recommended to additionally install and use [in-publish](https://github.com/iarna/in-publish) module to assure the `jsreport-studio-build` does run only during npm publish.

```js
"scripts": {
    "prepublish": "in-publish && jsreport-studio-build || not-in-publish"
}
```

## Changelog

### 4.1.0

- minimum node.js version is now `22.18.0`

### 4.0.1

- update deps to fix audit

### 4.0.0

- minimum node.js version is now `18.15.0`
- update webpack, babel and other related build deps

### 3.2.1

- fix jsreport-studio-start, jsreport-studio-build commands not working with node 18

### 3.2.0

- add option `removeSourceMapUrl` to build command which allows to remove source map url references to packages

### 3.1.0

- remove socket.io (it is now part of fs-store)
- update deps to fix npm audit

### 3.0.1

fix jsreport-studio-start installing jsreport@beta instead of latest

### 3.0.0-beta.2

Fix jsreport-studio-start


### 3.0.0-beta.1

Adaptations for the v3 APIs
npm package: @jsrob/ngx-clerk
Description: Community Clerk integration for Angular.
Author: Robert Soriano
Latest version: 0.0.1

# ngx-clerk

Community [Clerk](https://clerk.com/) integration for Angular.

### Prerequisites

- Angular 18 or later
- An existing Clerk application. [Create your account for free](https://dashboard.clerk.com/sign-up).

## Installation

```bash
npm install @jsrob/ngx-clerk
```

## Getting Started

Provide Clerk to your App

```ts
import { ApplicationConfig } from '@angular/core';
import { provideClerk } from '@jsrob/ngx-clerk'

import { routes } from './app.routes';

export const appConfig: ApplicationConfig = {
  providers: [
    /// .. other providers
    provideClerk({
      publishableKey: 'pk_test_'
    }),
  ]
};
```

## Features

### Components

To see all available props for each component, visit the [Clerk UI Components](https://clerk.com/docs/components/overview) docs.

- `<clerk-sign-in></clerk-sign-in>`
- `<clerk-sign-up></clerk-sign-up>`
- `<clerk-user-button></clerk-user-button>`
- `<clerk-user-profile></clerk-user-profile>`
- `<clerk-organization-list></clerk-organization-list>`
- `<clerk-organization-profile></clerk-organization-profile>`
- `<clerk-organization-switcher></clerk-organization-switcher>`
- `<clerk-create-organization></clerk-create-organization>`
- `<clerk-waitlist></clerk-waitlist>`

### ClerkService

Add `ClerkService` to your component via Inject method to interfact with Clerk's resources.

```ts
const clerkService = inject(ClerkService);
```

and access the available signals:

- `auth` - [Auth](https://clerk.com/docs/references/nextjs/auth-object#auth-object) object.
- `user` - Authenticated [user](https://clerk.com/docs/references/javascript/user/user).
- `organization` - Active [Organization](https://clerk.com/docs/references/javascript/organization/organization) of the authenticated user.
- `session` - [Session](https://clerk.com/docs/references/javascript/session) of the authenticated user.
- `clerk` - [`Clerk`](https://clerk.com/docs/references/javascript/clerk/clerk) object.
- `loaded` - Indicates if Clerk has finished loading.

## Acknowledgment

This project is inspired by [anagstef](https://github.com/anagstef)'s [ngx-clerk](https://github.com/anagstef/ngx-clerk) package.

## License

MIT
npm package: @jsrob/svelte-portal
Description: A Svelte component that lets you render some children into a different part of the DOM.
Latest version: 0.2.1

# svelte-portal

A Svelte 5 component that lets you render some children into a different part of the DOM.

## Installation

```bash
npm install @jsrob/svelte-portal
```

## Usage

To create a portal, use the `<Portal>` component and pass in a target and children:

```svelte
<script>
	import { Portal } from '@jsrob/svelte-portal';
</script>

<Portal target="body">
	<p>This child is placed in the document body.</p>
</Portal>
```

Another example, a modal that is rendered into the body when a button is clicked:

```svelte
<script>
	import { Portal } from '@jsrob/svelte-portal';

	let open = $state(false);
</script>

<button onclick={() => (open = true)}>Open Modal</button>

<Portal target="body">
	{#if open}
		<div class="modal">
			<p>Hello from the modal!</p>
			<button onclick={() => (open = false)}>Close</button>
		</div>
	{/if}
</Portal>

<style>
	.modal {
		position: fixed;
		z-index: 999;
		top: 20%;
		left: 50%;
		width: 300px;
		margin-left: -150px;
	}
</style>
```

You can also pass components as children:

```svelte
<script>
	import { Portal } from '@jsrob/svelte-portal';
	import Component from './Component.svelte';
</script>

<Portal target="#element">
	<Component />
</Portal>
```

### Props

All props can be changed dynamically.

| Prop       | Type                    | Description                                                                                               | Required |
| ---------- | ----------------------- | --------------------------------------------------------------------------------------------------------- | -------- |
| `target`   | `string \| HTMLElement` | Specify target container. Can either be a selector or an actual element.                                  | Yes      |
| `disabled` | `boolean`               | When `true`, the content will remain in its original location instead of moved into the target container. | No       |

### Caveats

When updating the `target` or `disabled` prop value, components in the default snippet are unmounted and re-mounted, which means any changes to their local state are lost.

If you need to persist state, use some sort of state management.

## License

MIT
npm package: @jsrob/svg-canvas
Description: Forked from [`red-agate-svg-canvas`](https://github.com/shellyln/red-agate/tree/master/packages/red-agate-svg-canvas)
Author: Robert Soriano
Latest version: 0.1.0

# svg-canvas

Forked from [`red-agate-svg-canvas`](https://github.com/shellyln/red-agate/tree/master/packages/red-agate-svg-canvas)

###### Changes in this fork

- ESM by default.
- Ships ESM and CJS bundles.
- Conventional Commits by default.

```ts
import { Rect2D, SvgCanvas }  from '@jsrob/svg-canvas';

const canvasCtx = new SvgCanvas();

// You can call HTML5 Canvas APIs.
// See also: https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API
canvasCtx.fillRect(10, 10, 80, 180);

// Render as SVG.
const svgString = canvasCtx.render(new Rect2D(0, 0 , 100, 200), 'mm');

// //Render as data URL encoded SVG.
// const svgDataUrl = canvasCtx.toDataUrl(new Rect2D(0, 0 , 100, 200), 'mm');

console.log(svgString);
```
npm package: @jsrock/cli
Description: tools for jsrock
Author: operali
Latest version: 0.1.2

# Jsrock

一个包含常用javascript工程的开发脚手架

## feature

- [x] node module 模板
- [x] node app 模板
- [x] webpack (umd) 模板
- [x] react 模板
- [x] material UI 模板
- [ ] antd UI 模板
- [ ] electron 模板
- [ ] cordova 模板
- [ ] wechat 小程序模板
- [x] typescript
- [x] eslint
- [x] jest
- [x] browserlist (浏览器兼容性)
- [x] script utility (克隆，发布工具)


## install
```bash
  # 全局安装
  yarn global add @jsrock/
  # you can update jsrock by 
  # yarn global add @jsrock/cli@latest

  jsrock clone

  cd your_project_cloned
  # install depdencies for develop
  yarn install --prod=false
```
or
```bash
  # cd <your workspace directory>
  yarn add @jsrock/cli
  
  npx jsrock clone

  cd your_project_cloned
  # install depdencies for develop
  yarn install --prod=false  
```


## scripts
```bash
  npm run lint # 静态检查
```
```bash
  npm run test # 测试
```
```bash
  npm start # 调试 & watch
```
```bash
  npm run build # 打包
```
```bash
  npm run dist # 交互式发布
```
```bash
  npm run clean # 
```

## configuration
> 谨慎修改配置
  
```.browserlist.rc # 浏览器兼容性```
npm package: @jsrogue/entity-component
Description: Roguelike Component System in JavaScript ES6
Author: Nathan Fritz
Latest version: 0.1.0

#Entity Component

This is a ECMAScript 2015 (JavaScript/ES6) Entity-styled Component System for roguelikes and other games inspired by [Brian Bucklew's IRDC US 2015 Talk](https://www.youtube.com/watch?v=U03XXzcThGU).

A Component based approach to games allows you to add functionality without reorganizing your object code to handle new features, and is a popular approach to modern game development.

## Install

`npm i --save @jsrogue/entity-component`

## Example

```javascript
'use strict';

let EC = require('@jsrogue/entity-component');
let Entity = EC.Entity;

class Health extends Component {
    constructor(stats) {
        super(stats);
        this.stats.hp = stats.hp || 10;
        this.addHandler('takeHit', this.onHit, 100);
    }

    setEntity(entity) {
        super.setEntity(entity);
        entity.addStat('hp', this);
    }

    removeEntity(entity) {
        super.removeEntity(entity);
        entity.removeStat('hp');
    }

    onHit(event) {
        this.stats.hp -= event.dmg;
        return event;
    }
}

class Armor extends Component {
    constructor(stats) {
        super(stats);
        this.addHandler('takeHit', this.onHit, 50);
    }

    onHit(event) {
        event.dmg *= .5;
        return event;
    }
}

let person = new Entity();
let health = new Health({hp: 100});
let armor = new Armor();
person.addComponent(health);
person.addComponent(armor);
person.emit('takeHit', {dmg: 2});
for (let stat in person.stats) {
    console.log("%s: %s", stat, person.stats[stat]);
}
```

## Usage


## License and Copyright

The MIT License (MIT)

Copyright © 2015 Nathanael C. Fritz

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.