open-index/open-npm huggingface dataset:
npm package: @hanmotec/advance-datatable
Description: ## 列定义
Latest version: 0.3.0

# Adavance-Data-Table

## 列定义

### 定义一个单行表头
```
let header = [
    {
        label: '摘要',
        field: 'summary',
        sortable: false,
        align: CellAlign.Left,
        resizable: true,
        weight: 1
    },
    {
        label: '单价',
        field: 'unitPrice',
        sortable: true,
        align: CellAlign.Right,
        resizable: false,
        format: value => utils.formatCurrency(value)
    },
    {
        label: '数量',
        field: 'amount',
        sortable: true,
        align: CellAlign.Right,
        resizable: false
    },
]
```

### 这是一个复合表头
```
let header = [
{
        label: '摘要',
        field: 'summary',
        sortable: false,
        align: CellAlign.Left,
        resizable: true,
        weight: 1
    },
    {
        label: '处理信息',
        coulumns: [
            {
                label: '处理人',
                
            },
            {
            }
        ]
    },
    {
        label: '数量',
        field: 'amount',
        sortable: true,
        align: CellAlign.Right,
        resizable: false
    },
]
```
npm package: @hanmotec/aoss-client-library
Description: This is a library to connect to the aoss service.
Latest version: 0.0.10

# AOSS Client API

这是一组用于和AOSS交互的API接口，当前包括以下内容，接口封装中类AossClientAPI中，AossClientAPI是一个单例，使用前首先需要初始化，初始化参数包括读取的代理服务和根地址。

```typescript
import AossClientAPI from "./aoss-client-api";

const serviceProxy = new RestService(getPath(), (ex): boolean => {
    if (ex instanceof ApiError) {
        window.Toast.show(appCtx.getError(ex['code']));
    } else {
        window.Toast.show('发生系统错误');
    }

    return true;
}, (headers, method, url) => {
    appCtx.appendHeader(headers);
});

AossClientAPI.initialize(serviceProxy);
```

## 获取当前用户

```typescript
import AossClientAPI from "./aoss-client-api";

let aossApi = AossClientAPI.getInstance();
let me = await aossApi.getMe();
```

## 获取指定应用的实体权限定义

```typescript
import AossClientAPI from "./aoss-client-api";

let aossApi = AossClientAPI.getInstance();
let permission = await aossApi.getPermission('saas-platform');
console.log(permission);
```

## 获取应用中指定模块的权限

```typescript
import AossClientAPI from "./aoss-client-api";

let aossApi = AossClientAPI.getInstance();
let pmList = [
    {key: 'createNew', pos: 0},  //新增的权利
    {key: 'modify', pos: 1}, //修改的权利
    {key: 'remove', pos: 2}, //删除的权利
    {key: 'activate', pos: 3}, //激活的权利
]
let permission = await aossApi.getModulePermission('saas-platform', 'dic-group', pmList);

console.log('是否有新增的权利', permission.createNew);

```

## 数据字典

### 读取用于下拉框的数据选项接口
```typescript
import AossClientAPI from "./aoss-client-api";

let aossApi = AossClientAPI.getInstance();

let dataOptions = await aossApi.getDataOptions(['ops-gender', 'ops-card-type', 'ops-nationality']);

console.log('性别选项：', dataOptions[ops-gender]);

```

### 多级数据选项获取下级数据接口
```typescript
import AossClientAPI from "./aoss-client-api";

let aossApi = AossClientAPI.getInstance();

let regions = await aossApi.getChildrenOptions('region', '130100');

console.log('下级地区：', regions);

```

## 处理令牌过期

当应用请求后端返回401的时候，通知顶层窗口，要求用户重新登录

```typescript
import AossClientAPI from "./aoss-client-api";

let aossApi = AossClientAPI.getInstance();

aossApi.handleTokenExpiry();

```

## 打开新模块页面

不用菜单打开一个新的功能页面，此函数包括两个参数，页面的hash编码和启动参数，启动参数为一个对象。

```typescript
import AossClientAPI from "./aoss-client-api";

let aossApi = AossClientAPI.getInstance();

aossApi.openModule(modHash, {});

```
npm package: @hanmotec/aoss-service-api
Description: AOSS-服务端API接口集成
Latest version: 0.0.6

# AOSS Service API

AOSS Service API是用于第三方系统和Aoss Service交互的类库，当前提供同步各类数据的接口。

## 安装

```shell
npm i -D  @hanmotec/aoss-service-api  
```

## 使用方法

```typescript
import SyncContext from "@hanmotec/aoss-service-api";

const initializeAossSyncTasks = () => {
    let syncCtx = SyncContext.initialize("your-app-api-key", "your-security-key", "http://aoss-service")
}

```

### 定时任务管理器

`CronTasks` 定时任务管理可以调度管理当前的定时任务，按照预定的间隔执行同步任务

##### addTask

`addTask` 增加一个同步任务并实现定时调用

* **参数:**
  - `service` (BaseSynService): 同步数据的服务类
  - `cronTime` (string): cron调度规则，同linux的crontab
  - `onComplete` (any): 任务执行完毕的回调函数

```typescript
//增加同步租户任务，0，5，10是5分钟的整数倍的时候执行任务
cronTasks.addTask(new SynTenantService(beanFactory.getInstance(Types.TenantDAO.name)), '* */5 * * * * *');
```

### 租户同步服务

用于实现同步租户的数据，使用的时候仅仅需要注入同步租户的DAO的实现类即可。

### 用户同步服务

用于实现同步用户数据，使用的时候仅仅需要注入同步用户的DAO的实现类即可。

### 数据字典同步服务

用于实现同步数据字典数据，多个数据字典同步需要依次注入每个数据字典的同步DAO实现类。

### 数据同步DAO接口

`SyncDataDAO` 接口定义了与数据库同步数据的方法，包括更新、创建和获取最新时间戳的数据条目。需要在项目中实现这个接口。

#### syncUpdate

更新现有数据条目，如果更新成功过返回1，如果当前数据库中没有这个条目，返回0。

* **参数:**
  - `conn` (DBConnection): 数据库连接对象。
  - `data` (any): 要更新的数据。
* **返回值:**
  - `Promise<number>`: 一个返回更新行数的 Promise。


##### createNew 

`createNew`在数据库中新增一个条目

* **参数:**
  - `conn` (DBConnection): 数据库连接对象。
  - `data` (any): 要插入的数据。
* **返回值:**
  - `Promise<void>`: 一个在数据插入完成时解析的 Promise。

##### getLatestTimestamp 

`getLatestTimestamp`获取目标数据集中的最新时间戳，用于同步这个时间戳以后的变更数据。

* **参数:**
  - `conn` (DBConnection): 数据库连接对象。
* **返回值:**
  - `Promise<Date>`: 返回数据集最新时间戳的 Promise。

#### 示例代码

下面的示例代码为同步租户

```typescript

export default class TenantDAOImpl extends BaseDAO implements SyncDataDAO {

    
    async createNew(conn: DBConnection, item: Tenant): Promise<void> {
        await conn.executeUpdate(SQL_INSERT, [item.code, item.name, item.abbr, item.status,
            item.latestUpdated]);
    }


    syncUpdate(conn: DBConnection, item: Tenant): Promise<number> {
        return conn.executeUpdate(SQL_SYNC_UPDATE, [item.code, item.name, item.abbr, item.status,
            item.latestUpdated]);
    }

    async getLatestTimestamp(conn: DBConnection): Promise<Date> {
        let result: any = await conn.find(SQL_GET_LATEST_TS);
        return result?.ts;
    }

}
```
npm package: @hanmotec/app-template
Description: Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte).
Latest version: 0.2.4

# create-svelte

Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte).

## Creating a project

If you're seeing this, you've probably already done this step. Congrats!

```bash
# create a new project in the current directory
npm create svelte@latest

# create a new project in my-app
npm create svelte@latest my-app
```

## Developing

Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:

```bash
npm run dev

# or start the server and open the app in a new browser tab
npm run dev -- --open
```

## Building

To create a production version of your app:

```bash
npm run build
```

You can preview the production build with `npm run preview`.

> To deploy your app, you may need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target environment.