open-index/open-npm huggingface dataset:
npm package: @ibyar/core
Description: Ibyar core, Implements Aurora's core functionality, low-level services, and utilities
Author: The Ibyar Authors
Latest version: 4.0.0

# Ibyar Core

[![NPM Version][npm-image]][npm-url]
[![NPM Downloads][downloads-image]][downloads-url]
[![LICENSE][license-img]][license-url]
[![lerna][lerna-img]][lerna-url]
![GitHub contributors][contributors]

[npm-image]: https://img.shields.io/npm/v/@ibyar/core.svg?logo=npm&logoColor=fff&label=NPM+package&color=limegreen
[npm-url]: https://npmjs.org/package/@ibyar/core
[downloads-image]: https://img.shields.io/npm/dt/@ibyar/core
[downloads-url]: https://npmjs.org/package/@ibyar/core
[license-img]: https://img.shields.io/github/license/ibyar/aurora
[license-url]: https://github.com/ibyar/aurora/blob/master/LICENSE
[lerna-img]: https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg
[lerna-url]: https://lerna.js.org/
[contributors]: https://img.shields.io/github/contributors/ibyar/aurora

Ibyar Core, implements Aurora's core functionality, low-level services, and utilities.

Aurora API is the base of this project
 - Defines the class infrastructure for components, view, model change detection, rendering, and event handling.
 - Data Binding for inputs and outputs.
 - Defines the decorators that supply metadata.
 - Defines infrastructure for dependency injection (DI).


## `Install`

``` bash
npm i --save @ibyar/core
```

``` bash
yarn add @ibyar/core
```
npm package: @ibyar/decorators
Description: Ibyar Decorators is implementations for proposal-decorator-metadata
Author: The Ibyar Authors
Latest version: 4.0.0

# Ibyar Decorator

[![NPM Version][npm-image]][npm-url]
[![NPM Downloads][downloads-image]][downloads-url]
[![LICENSE][license-img]][license-url]
[![lerna][lerna-img]][lerna-url]
![GitHub contributors][contributors]

[npm-image]: https://img.shields.io/npm/v/@ibyar/decorators.svg?logo=npm&logoColor=fff&label=NPM+package&color=limegreen
[npm-url]: https://npmjs.org/package/@ibyar/decorators
[downloads-image]: https://img.shields.io/npm/dt/@ibyar/decorators
[downloads-url]: https://npmjs.org/package/@ibyar/decorators
[license-img]: https://img.shields.io/github/license/ibyar/aurora
[license-url]: https://github.com/ibyar/aurora/blob/master/LICENSE
[lerna-img]: https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg
[lerna-url]: https://lerna.js.org/
[contributors]: https://img.shields.io/github/contributors/ibyar/aurora

Ibyar metadata is implementations for proposal-decorator-metadata

## `Install`

``` bash
npm i --save @ibyar/decorators
```

``` bash
yarn add @ibyar/decorators
```

Create you decorator that is aware of metadata context for [proposal-decorator-metadata](https://github.com/tc39/proposal-decorator-metadata)


## Compatibility

| Version   | TS Version   |
|-----------|--------------|
| 1.0.0     | 5.0.0, 5.1.0 |
| >=1.1.0   | >=5.2.0      |
npm package: @ibyar/forms
Description: Ibyar forms contain form group, form builder and native ui form group
Author: The Ibyar Authors
Latest version: 4.0.0

# Ibyar Forms

[![NPM Version][npm-image]][npm-url]
[![NPM Downloads][downloads-image]][downloads-url]
[![LICENSE][license-img]][license-url]
[![lerna][lerna-img]][lerna-url]
![GitHub contributors][contributors]

[npm-image]: https://img.shields.io/npm/v/@ibyar/forms.svg?logo=npm&logoColor=fff&label=NPM+package&color=limegreen
[npm-url]: https://npmjs.org/package/@ibyar/forms
[downloads-image]: https://img.shields.io/npm/dt/@ibyar/forms
[downloads-url]: https://npmjs.org/package/@ibyar/forms
[license-img]: https://img.shields.io/github/license/ibyar/aurora
[license-url]: https://github.com/ibyar/aurora/blob/master/LICENSE
[lerna-img]: https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg
[lerna-url]: https://lerna.js.org/
[contributors]: https://img.shields.io/github/contributors/ibyar/aurora

Ibyar forms contain form group, form builder and native ui form group.

## `Install`

``` bash
npm i --save @ibyar/forms
```

``` bash
yarn add @ibyar/forms
```
npm package: @ibyar/metadata
Description: Aurora metadata, basic functionality to save and load type metadata at runtime
Latest version: 0.3.0

# Aurora Metadata

[![NPM Version][npm-image]][npm-url]
[![NPM Downloads][downloads-image]][downloads-url]
[![LICENSE][license-img]][license-url]
![npm-dependencies][npm-dep-url]
[![lerna][lerna-img]][lerna-url]
![GitHub contributors][contributors]

[npm-image]: https://img.shields.io/npm/v/@ibyar/metadata.svg
[npm-url]: https://npmjs.org/package/@ibyar/metadata
[downloads-image]: https://img.shields.io/npm/dt/@ibyar/metadata
[downloads-url]: https://npmjs.org/package/@ibyar/metadata
[license-img]: https://img.shields.io/github/license/ibyar/aurora
[license-url]: https://github.com/ibyar/aurora/blob/master/LICENSE
[npm-dep-url]: https://img.shields.io/david/ibyar/metadata.svg?maxAge=2592000
[lerna-img]: https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg
[lerna-url]: https://lerna.js.org/
[contributors]: https://img.shields.io/github/contributors/ibyar/aurora

Aurora metadata, basic functionality to set and get metadata types at runtime.

## `Install`

``` bash
npm i --save @ibyar/metadata
```

``` bash
yarn add @ibyar/metadata
```
npm package: @ibyar/pipes
Description: Ibyar pipes, build-in pipes for aurora lib, like json, translate, async, etc...
Author: The Ibyar Authors
Latest version: 4.0.0

# Ibyar Pipes

[![NPM Version][npm-image]][npm-url]
[![NPM Downloads][downloads-image]][downloads-url]
[![LICENSE][license-img]][license-url]
[![lerna][lerna-img]][lerna-url]
![GitHub contributors][contributors]

[npm-image]: https://img.shields.io/npm/v/@ibyar/pipes.svg?logo=npm&logoColor=fff&label=NPM+package&color=limegreen
[npm-url]: https://npmjs.org/package/@ibyar/pipes
[downloads-image]: https://img.shields.io/npm/dt/@ibyar/pipes
[downloads-url]: https://npmjs.org/package/@ibyar/pipes
[license-img]: https://img.shields.io/github/license/ibyar/aurora
[license-url]: https://github.com/ibyar/aurora/blob/master/LICENSE
[lerna-img]: https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg
[lerna-url]: https://lerna.js.org/
[contributors]: https://img.shields.io/github/contributors/ibyar/aurora

Ibyar pipes, build-in pipes for aurora lib, like json, translate, async, etc...

## `Install`

```bash
npm i --save @ibyar/pipes
```

```bash
yarn add @ibyar/pipes
```

# How to use:

in your html string/file :

```html
<div>{{observable |> async}}</div>
<div>{{text |> lowercase}}</div>
<div>{{obj |> json}}</div>
<pre>{{obj |> json:undefined:2}}</pre>
<div>{{keyValueObject |> keyvalue |> json}}</div>

```

## Built-in Pipes ( Pipeline operator '|>' )

- [x] async
- [ ] date
- [x] lowercase
- [x] titlecase
- [x] uppercase
- [x] json
- [x] keyvalue
- [x] slice
- [ ] currency
- [ ] number
- [ ] percent
- [ ] i18nPlural
- [ ] i18nSelect
npm package: @ibyar/platform
Description: Ibyar Platform, A utility package for Aurora
Author: The Ibyar Authors
Latest version: 4.0.0

# Ibyar Platform

[![NPM Version][npm-image]][npm-url]
[![NPM Downloads][downloads-image]][downloads-url]
[![LICENSE][license-img]][license-url]
[![lerna][lerna-img]][lerna-url]
![GitHub contributors][contributors]

[npm-image]: https://img.shields.io/npm/v/@ibyar/platform.svg?logo=npm&logoColor=fff&label=NPM+package&color=limegreen
[npm-url]: https://npmjs.org/package/@ibyar/platform
[downloads-image]: https://img.shields.io/npm/dt/@ibyar/platform
[downloads-url]: https://npmjs.org/package/@ibyar/platform
[license-img]: https://img.shields.io/github/license/ibyar/aurora
[license-url]: https://github.com/ibyar/aurora/blob/master/LICENSE
[lerna-img]: https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg
[lerna-url]: https://lerna.js.org/
[contributors]: https://img.shields.io/github/contributors/ibyar/aurora

Ibyar Platform, A utility package for Aurora.

 - this package has no dependance, can work on both (Node.js) and any Web Browsers, that support modules and class syntax

## `Install`

``` bash
npm i --save @ibyar/platform
```

``` bash
yarn add @ibyar/platform
```


## Example
```ts
import { diff } from '@ibyar/platform';


```
npm package: @ibyar/router
Description: Ibyar router has the built-in directives for router and navigation
Author: The Ibyar Authors
Latest version: 4.0.0

# Ibyar Router

[![NPM Version][npm-image]][npm-url]
[![NPM Downloads][downloads-image]][downloads-url]
[![LICENSE][license-img]][license-url]
[![lerna][lerna-img]][lerna-url]
![GitHub contributors][contributors]

[npm-image]: https://img.shields.io/npm/v/@ibyar/router.svg?logo=npm&logoColor=fff&label=NPM+package&color=limegreen
[npm-url]: https://npmjs.org/package/@ibyar/router
[downloads-image]: https://img.shields.io/npm/dt/@ibyar/router
[downloads-url]: https://npmjs.org/package/@ibyar/router
[license-img]: https://img.shields.io/github/license/ibyar/aurora
[license-url]: https://github.com/ibyar/aurora/blob/master/LICENSE
[lerna-img]: https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg
[lerna-url]: https://lerna.js.org/
[contributors]: https://img.shields.io/github/contributors/ibyar/aurora

Ibyar router has the built-in directives for router and navigation.

## `Install`

``` bash
npm i --save @ibyar/router
```

``` bash
yarn add @ibyar/router
```
npm package: @ibyar/types
Description: Create and define a usable 'custom elements', that compatible with other frameworks, using Typescript
Latest version: 0.3.0

# Aurora Types

[![NPM Version][npm-image]][npm-url]
[![NPM Downloads][downloads-image]][downloads-url]
[![LICENSE][license-img]][license-url]
![npm-dependencies][npm-dep-url]
[![lerna][lerna-img]][lerna-url]
![GitHub contributors][contributors]

[npm-image]: https://img.shields.io/npm/v/@ibyar/types.svg
[npm-url]: https://npmjs.org/package/@ibyar/types
[downloads-image]: https://img.shields.io/npm/dt/@ibyar/types
[downloads-url]: https://npmjs.org/package/@ibyar/types
[license-img]: https://img.shields.io/github/license/ibyar/aurora
[license-url]: https://github.com/ibyar/aurora/blob/master/LICENSE
[npm-dep-url]: https://img.shields.io/david/ibyar/types.svg?maxAge=2592000
[lerna-img]: https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg
[lerna-url]: https://lerna.js.org/
[contributors]: https://img.shields.io/github/contributors/ibyar/aurora

aurora types, this project provide a wildcard modules helper to import different non-js files to a typescript project as a module.

With the help of `@ibyar/esmpack` can provide some functionality to these modules. 
by replacing the import/export statement itself, with the required code.

`Bindings imported are called live bindings because they are updated by the module that exported the binding.` 
the esmpack will fetch the data, not inject it to the js module. so, while fetching, the object with be `undefined`.

## `Install`

``` bash
npm i --save-dev @ibyar/types
```

``` bash
yarn add @ibyar/types --dev
```

## *Wildcard Structural

```ts
declare module '*.html' {
    export default value;
    export const value: string;
    export const url: string;
    export const promise: Promise<string>;
}
```
# available modules

- Text: '*.html', '*.css', '*.txt', '*.json'
- Stream: '*.formData', '*.blob', '*.buf', '*.buff', '*.b64', '*.pdf'
- Image: '*.apng', '*.bmp', '*.gif', '*.ico','*.cur','*.jpg', '*.jpeg', '*.jfif', '*.pjpeg', '*.pjp', '*.png', '*.svg', '*.tif', '*.tiff'
- Audio: '*.webp', '*.3gp', '*.flac', '*.mpg', '*.mpeg', '*.mp3'
- Video: '*.mp4', '*.m4a', '*.oga', '*.ogg', '*.wav', '*.webm'

# How to use: 

in your main index.ts file insert: 

```ts
/// <reference types="@ibyar/types" />

import bootstrap from 'bootstrap/dist/css/bootstrap.min.css';

```
npm package: @ic-bot-819439/icons-jquery
Description: jQuery plugin for svg icons.
Latest version: 0.0.1

## 所有图标


* icon-eraser
* icon-tubiao-
* icon-tubiao-1
* icon-tubiao-1-copy
* icon-tubiao--copy
* icon-yueliang



## 使用方式

### 第一步：引入 jQuery 库和相应的插件代码：

```html
<script src="jquery.min.js"></script>
<script src="dist/jquery.icon.min.js"></script>
```


### 第二步：强烈建议设置以下通用样式代码（全局添加一次就行）：

```html
<style>
[data-icon] {
  display: inline-block;
  color: inherit;
  font-style: normal;
  line-height: 0;
  text-align: center;
  text-transform: none;
  vertical-align: -.125em;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

[data-icon]:empty {
  width: 1em;
  height: 1em;
}

[data-icon] > svg {
  line-height: 1;
  overflow: hidden;
}
</style>
```


### 第三步：在需要图标的地方编写以下代码：

#### 使用 data-icon 属性指定，可自动显示为图标

```html
<i data-icon="icon-xxx"></i>
```

#### 也可通过手动调用以下方法，显示为图标

```javascript
$('#xxx').icon({
  name: 'icon-xxx'
});
```


### 第四步（可选）：使用样式控制图标显示：

```html
<style>
[data-icon="icon-xxx"] {
  font-size: 40px;
  color: red;
}
</style>
```
npm package: @ic-bot-819439/icons-react
Description: react components for svg icons.
Latest version: 0.0.1

## 所有图标


* IconEraser: icon-eraser
* IconTubiao: icon-tubiao-
* IconTubiao1: icon-tubiao-1
* IconTubiao1Copy: icon-tubiao-1-copy
* IconTubiaoCopy: icon-tubiao--copy
* IconYueliang: icon-yueliang



## 使用方式

### 安装或手动拷贝 icons-react 到项目

```
> npm install @ic-bot-819439/icons-react
```

### 仅引入需要的图标（支持 tree-shaking）：

```
// 引入单个
import IconEraser from '@ic-bot-819439/icons-react/IconEraser';

// 引入多个
import { IconEraser, IconTubiao, IconTubiao1 } from '@ic-bot-819439/icons-react';

export function() {
  return <IconEraser />;
}`}
```

### 使用样式控制图标显示（可选）：

```
/*控制图标尺寸及颜色*/
[data-icon="icon-eraser"] {
  font-size: 40px;
  color: red;
}
/*控制图标旋转*/
[data-icon="icon-eraser"] > svg {
  transform: rotate(90deg);
}
/*让图标像loading转动*/
[data-icon="icon-eraser"] > svg {
  -webkit-animation: loadingCircle 1s infinite linear;
  animation: loadingCircle 1s infinite linear;
}
@-webkit-keyframes loadingCircle {
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@keyframes loadingCircle {
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
```
npm package: @ic-canister/metrics
Description: Prometheus metrics for your canisters
Author: b3hr4d
Latest version: 0.2.2

# IC Metrics Analysis Library

A TypeScript library for analyzing and managing Internet Computer canister metrics, providing insights, trends, and cycle analysis.

## Features

- 📊 Metrics Analysis & Trends
- 💰 Cycles Usage Tracking
- 🔔 Alerts Configuration
- 📈 Historical Data Analysis
- 🔍 Performance Insights
- 📉 Usage Pattern Detection

## Installation

```bash
npm install @ic-canister/metrics
```

## Quick Start

```typescript
import { MetricsAnalyze, MetricsClient } from '@ic-canister/metrics';

// Initialize the client
const client = new MetricsClient('https://your-api-endpoint', 'your-api-key');

// Fetch and analyze metrics
async function analyzeCanisterMetrics() {
	// Get metrics history
	const history = await client.getMetricsHistory({
		timeRange: '24h',
		canisterId: 'your-canister-id',
	});

	// Analyze metrics
	const analyzer = new MetricsAnalyze(history);
	const analysis = analyzer.analyze();

	console.log('Summary:', analysis.summary);
	console.log('Trends:', analysis.trends);
	console.log('Insights:', analysis.insights);
	console.log('Cycles Analysis:', analysis.cycles);
}
```

## API Reference

### MetricsClient

The main class for interacting with the metrics API.

```typescript
const client = new MetricsClient(baseUrl, apiKey);

// Available methods
client.getCurrentMetrics()
client.getMetricsHistory(params?)
client.getAlerts()
client.getCyclesHistory(params?)
client.configureAlert(canisterId, config)
client.updateAlertConfig(canisterId, configId, config)
client.deleteAlertConfig(canisterId, configId)
```

### MetricsAnalyze

Class for analyzing metrics data.

```typescript
const analyzer = new MetricsAnalyze(history);

// Analysis methods
analyzer.analyze();
analyzer.generateSummary();
analyzer.analyzeTrends();
analyzer.generateInsights();
analyzer.analyzeCycles();

// Filtering methods
analyzer.filterByTimeRange(startTime, endTime);
analyzer.filterByCanister(canisterId);
```

## Time Ranges

Supported time range values:

- `1h`: 1 hour
- `24h`: 24 hours
- `7d`: 7 days
- `30d`: 30 days

## Configuration

Default configuration values:

```typescript
const DEFAULT_CONFIG = {
	MAX_HISTORY_DAYS: 7,
	DEFAULT_TIME_RANGE: '24h',
	METRICS_FETCH_TIMEOUT: 30000,
	MAX_RETRY_ATTEMPTS: 3,
	CACHE_TTL: {
		SHORT: 60, // 1 minute
		MEDIUM: 300, // 5 minutes
		LONG: 3600, // 1 hour
	},
};
```

## License

MIT

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

This README.md provides:

1. Overview of the library
2. Main features
3. Installation instructions
4. Quick start guide
5. Detailed API reference
6. Configuration options
7. Standard sections for license and contributions

The documentation is concise yet comprehensive, focusing on the key aspects that developers need to get started with the library.
npm package: @ic-ntcees/eslint-config-react
Description: Shared ESLint configuration for React projects
Latest version: 2.1.0

# @ic-ntcees/eslint-config-react

Shared ESLint configuration for React projects.

## Installation

```bash
npm install --save-dev @ic-ntcees/eslint-config-react
```

## Usage

### ESLint Flat Config (eslint.config.js)

```js
import eslintConfigReact from '@ic-ntcees/eslint-config-react'
import { defineConfig } from 'vite'

export default defineConfig([
  ...eslintConfigReact,
  // Переопределяем правила
  {
    files: ['**/*.{ts,tsx}'],
    rules: {
      '@typescript-eslint/no-unused-expressions': 'off',
      '@typescript-eslint/no-unused-vars': 'error',
    },
  },
])
```

### TypeScript Configuration

This package expects a `tsconfig.json` file in your project root. A sample configuration is provided that you can copy:

```bash
cp node_modules/@ic-ntcees/eslint-config-react/tsconfig.example.json ./tsconfig.json
```

## Features

- TypeScript support
- React best practices
- React Hooks rules
- Import sorting and organization
- Prettier integration
- Consistent code style enforcement

## Versioning

This package follows [Semantic Versioning](https://semver.org/) with the following guidelines:

- **Major version** (`1.0.0` → `2.0.0`): Breaking changes that require user action
  - ESLint rule changes that will cause new errors in previously valid code
  - Adding/removing plugins that significantly change linting behavior
  - Changes to peer dependency requirements

- **Minor version** (`1.0.0` → `1.1.0`): Non-breaking enhancements
  - New rules added in "warn" mode
  - New features that don't break existing configurations
  - Dependency updates without breaking changes

- **Patch version** (`1.0.0` → `1.0.1`): Bug fixes and minor updates
  - Documentation improvements
  - Internal refactoring with no user impact
  - Bug fixes in existing rules

When upgrading, check the [CHANGELOG.md](./CHANGELOG.md) for detailed release notes.

## License

MIT
npm package: @ic-reactor/codegen
Description: Shared code generation utilities for IC Reactor
Author: Behrad Deylami
Latest version: 0.11.0

# @ic-reactor/codegen

> shared code generation pipeline and utilities for IC Reactor.

This package contains the core machinery for generating TypeScript declarations, reactor instances, and client managers from Candid files. It is primarily used by:

- **`@ic-reactor/cli`**: For manual/CLI-based generation
- **`@ic-reactor/vite-plugin`**: For automatic build-time generation

## API

The main entry point is the `runCanisterPipeline` function, which orchestrates the generation process.

```typescript
import { runCanisterPipeline } from "@ic-reactor/codegen"

await runCanisterPipeline({
  canisterConfig: {
    name: "backend",
    mode: "DisplayReactor",
    didFile: "./backend.did",
  },
  projectRoot: process.cwd(),
  globalConfig: {
    outDir: "src/declarations",
    clientManagerPath: "../../clients",
    target: "react",
  },
  generateReactor: true,
})
```

## Reactor Class Configuration

Set `canisterConfig.mode` to choose the generated reactor class:

- `DisplayReactor` (default)
- `Reactor`
- `CandidReactor`
- `CandidDisplayReactor`
- `MetadataDisplayReactor`

Set `target` to control whether generated files include React hooks:

- `react` (default): generates the reactor plus bound `createActorHooks` exports
- `core`: generates only the typed reactor exports with no `@ic-reactor/react` dependency

Codegen now writes two files per canister: a managed `index.generated.ts` implementation that is regenerated on every run, and an `index.ts` entry wrapper. The wrapper is created once, then preserved unless it still matches the default generated wrapper or an older generated scaffold that can be migrated automatically.

Set `generateReactor: false` if you only want the bindgen/declaration output and
need to skip `index.generated.ts` and `index.ts`.

## Generators

You can also use individual generators if you need more granular control:

- **`generateDeclarations`**: Generates `.js` (factory), `.d.ts` (types), and `.did` copy.
- **`generateReactorFile`**: Generates the managed `index.generated.ts` implementation using either `DisplayReactor` or `Reactor`.
- **`generateReactorEntryFile`**: Generates the stable `index.ts` wrapper that re-exports from `index.generated.ts`.
- **`generateClientFile`**: Generates a `ClientManager` boilerplate file that
  imports `ClientManager` from `@ic-reactor/react`.

## Utilities

- **`parseDIDFile`**: Parses a `.did` file and extracts method signatures.
- **`toPascalCase` / `toCamelCase`**: Naming helpers.

## License

MIT
npm package: @ic-reactor/store
Description: A React library for interacting with Dfinity actors
Author: b3hr4d
Latest version: 0.5.3
Deprecated: @ic-reactor/store is deprecated in favor of the combined package @ic-reactor/core. Please migrate to @ic-reactor/core@latest.

# IC-ReActor - Store

`@ic-reactor/store` is a state management library designed for applications interacting with the Internet Computer (IC) blockchain. It facilitates the management of actor states, authentication processes, and seamless interaction with IC actors, leveraging the power of `zustand` for global state management.

## Features

- **Actor State Management**: Efficiently manage and update the state of IC actors.
- **Authentication Handling**: Integrated functionality for managing authentication with IC.
- **Zustand Integration**: Utilize `zustand` for global state management in a React-friendly way.
- **Error and Loading State Management**: Easily handle loading states and errors across your application.
- **Asynchronous Interaction Support**: Built-in support for managing asynchronous interactions with IC actors.

## Installation

Install the package using npm:

```bash
npm install @ic-reactor/store
```

or using yarn:

```bash
yarn add @ic-reactor/store
```

## Usage

To use `@ic-reactor/store`, start by creating a ReActor manager with your actor configurations:

```ts
import createReActorManager from "@ic-reactor/store"
import { idlFactory, canisterId } from "./declarations/actor"

type Actor = typeof actor

const { actorStore, authenticate, callMethod } = createReActorStore<Actor>({
  idlFactory,
  canisterId: "xeka7-ryaaa-aaaal-qb57a-cai",
  host: "https://icp-api.io",
})
```

### Managing Actor State

Utilize the ReActor manager to manage the state of your IC actors:

```ts
// Access and update actor state
const actorState = actorStore.getState()
```

### Handling Authentication

Manage authentication states and processes:

```javascript
// Authenticate with the IC blockchain
authenticate()
  .then(() => {
    // Handle successful authentication
  })
  .catch((error) => {
    // Handle authentication errors
  })
```

### Calling Actor Methods

Call actor methods and handle the results:

```javascript
// Call an actor method
callMethod({
  functionName: "get_balance",
  args: [principal],
})
  .then((result) => {
    // Handle successful method call
  })
  .catch((error) => {
    // Handle method call errors
  })
```

## API Reference

`@ic-reactor/store` provides several key functionalities:

- `ReActorManager`: The main class to manage actor states and interactions.
- `createReActorManager`: Factory function to create a new ReActor manager instance.
- State management actions: Methods to initialize actors, handle authentication, and manage global state.

For a detailed API reference, including the complete list of methods and their usage, please refer to the [documentation](#).

## Contributing

Contributions to `@ic-reactor/store` are welcome! Please read our [contributing guidelines](#) for more information.

## License

`@ic-reactor/store` is licensed under the MIT License. See the [LICENSE](LICENSE) file for more details.
npm package: @ic-reactor/svelte
Description: A Svelte library for interacting with Dfinity actors
Author: b3hr4d
Latest version: 0.1.1

# IC-ReActor - Store

`@ic-reactor/store` is a state management library designed for applications interacting with the Internet Computer (IC) blockchain. It facilitates the management of actor states, authentication processes, and seamless interaction with IC actors, leveraging the power of `zustand` for global state management.

## Features

- **Actor State Management**: Efficiently manage and update the state of IC actors.
- **Authentication Handling**: Integrated functionality for managing authentication with IC.
- **Zustand Integration**: Utilize `zustand` for global state management in a React-friendly way.
- **Error and Loading State Management**: Easily handle loading states and errors across your application.
- **Asynchronous Interaction Support**: Built-in support for managing asynchronous interactions with IC actors.

## Installation

Install the package using npm:

```bash
npm install @ic-reactor/store
```

or using yarn:

```bash
yarn add @ic-reactor/store
```

## Usage

To use `@ic-reactor/store`, start by creating a ReActor manager with your actor configurations:

```javascript
import createReActorManager from "@ic-reactor/store"
import { createActor, canisterId } from "./declarations/actor"

const reActorManager = createReActorManager((agent) =>
  createActor(canisterId, {
    agent,
  })
)
```

### Managing Actor State

Utilize the ReActor manager to manage the state of your IC actors:

```javascript
// Initialize your actor
reActorManager.initializeActor()

// Access and update actor state
const actorState = reActorManager.store.getState().actorState
```

### Handling Authentication

Manage authentication states and processes:

```javascript
// Authenticate with the IC blockchain
reActorManager.actions
  .authenticate()
  .then(() => {
    // Handle successful authentication
  })
  .catch((error) => {
    // Handle authentication errors
  })
```

## API Reference

`@ic-reactor/store` provides several key functionalities:

- `ReActorManager`: The main class to manage actor states and interactions.
- `createReActorManager`: Factory function to create a new ReActor manager instance.
- State management actions: Methods to initialize actors, handle authentication, and manage global state.

For a detailed API reference, including the complete list of methods and their usage, please refer to the [documentation](#).

## Contributing

Contributions to `@ic-reactor/store` are welcome! Please read our [contributing guidelines](#) for more information.

## License

`@ic-reactor/store` is licensed under the MIT License. See the [LICENSE](LICENSE) file for more details.