open-index/open-npm huggingface dataset:
npm package: @fu-css/fu-css
Description: 基于scss, 参照tailwindcss实现样式原子化
Author: ijunfu
Latest version: 0.0.4




# FU CSS

> 基于scss，参照tailwindcss实现样式原子化

详细介绍，请参阅：[https://weijunfu.github.io/tools/fu | Fu CSS](https://weijunfu.github.io/tools/fu)
npm package: @fu-css/fu-scrollbar
Description: 一个纯CSS实现的常用滚动条样式的工具库
Author: ijunfu
Latest version: 0.0.1

# fu-scrollbar

> 一个纯CSS实现的常用滚动条样式的工具库


## 安装 Install

```shell
npm i @fu-css/fu-scrollbar
```

## 使用 Use

```
import '@fu-css/fu-scrollbar/style.min.css';
```
npm package: @fu-css/fu-size
Description: 一个纯CSS实现的常用文本大小的工具库
Author: ijunfu
Latest version: 0.0.1

# fu-size

> 一个纯CSS实现的常用文本大小的工具库
> 基准文字大小：16px


## 内容

<table>
  <thead>
    <tr>
      <th>Class</th>
      <th>Styles</th>
      <th>Scene</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>basic-size</td>
      <td>
        <div style="padding: .5rem 1rem;">font-size: var(--basic-size);</div>
        <div style="color:#999;background: rgba(0, 0, 0, 0.1); padding: .5rem 1rem;">--basic-size: 16px;</div>
      </td>
      <td>基准文字</td>
    </tr>
    <tr>
      <td>text-size</td>
      <td>
        <div style="padding: .5rem 1rem;">font-size: var(--text-size);</div>
        <div style="color:#999;background: rgba(0, 0, 0, 0.1); padding: .5rem 1rem;">--text-size: clamp(0.875rem, 3.5vw, 1rem);</div>
      </td>
      <td>正文</td>
    </tr>
    <tr>
      <td>title-size</td>
      <td>
        <div style="padding: .5rem 1rem;">font-size: var(--title-size);</div>
        <div style="color:#999;background: rgba(0, 0, 0, 0.1); padding: .5rem 1rem;">--title-size: clamp(1.25rem, 6vw, 2.5rem);</div>
      </td>
      <td>标题</td>
    </tr>
    <tr>
      <td>subtitle-size</td>
      <td>
        <div style="padding: .5rem 1rem;">font-size: var(--subtitle-size);</div>
        <div style="color:#999;background: rgba(0, 0, 0, 0.1); padding: .5rem 1rem;">--subtitle-size: clamp(1rem, 5vw, 2rem);</div>
      </td>
      <td>副标题</td>
    </tr>
    <tr>
      <td>link-size</td>
      <td>
        <div style="padding: .5rem 1rem;">font-size: var(--link-size);</div>
        <div style="color:#999;background: rgba(0, 0, 0, 0.1); padding: .5rem 1rem;">--link-size: clamp(0.875rem, 3.5vw, 1rem);</div>
      </td>
      <td>链接文本</td>
    </tr>
    <tr>
      <td>button-size</td>
      <td>
        <div style="padding: .5rem 1rem;">font-size: var(--button-size);</div>
        <div style="color:#999;background: rgba(0, 0, 0, 0.1); padding: .5rem 1rem;">--button-size: clamp(0.875rem, 4vw, 1rem);</div>
      </td>
      <td>按钮文本</td>
    </tr>
    <tr>
      <td>card-title-size</td>
      <td>
        <div style="padding: .5rem 1rem;">font-size: var(--card-title-size);</div>
        <div style="color:#999;background: rgba(0, 0, 0, 0.1); padding: .5rem 1rem;">--card-title-size: clamp(0.875rem, 4vw, 1.25rem);</div>
      </td>
      <td>卡片标题</td>
    </tr>
    <tr>
      <td>auxiliary-text-size</td>
      <td>
        <div style="padding: .5rem 1rem;">font-size: var(--auxiliary-text-size);</div>
        <div style="color:#999;background: rgba(0, 0, 0, 0.1); padding: .5rem 1rem;">--auxiliary-text-size: clamp(0.75rem, 2.5vw, 0.875rem);</div>
      </td>
      <td>辅助文本、页脚文本</td>
    </tr>
  </tbody
</table>
npm package: @fu-css/fu-table-theme
Description: 一个流行的表格主题库
Author: ijunfu
Latest version: 0.0.1

# fu-table-theme

> 一个流行的表格主题库

## 安装 Install

```shell
npm install @fu-css/fu-table-theme
```
## 使用 Use
```
import '@fu-css/fu-table-theme/style.min.css';
```

## 自定义 Custom

<table>
  <thead>
    <tr>
      <th>变量</th>
      <th>说明</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>--table-bg</td>
      <td>表格背景色</td>
    </tr>
    <tr>
      <td>--table-header-bg</td>
      <td>表头背景色</td>
    </tr>
    <tr>
      <td>--table-header-color</td>
      <td>表头文字颜色</td>
    </tr>
    <tr>
      <td>--table-row-even-bg</td>
      <td>偶数行背景色</td>
    </tr>
    <tr>
      <td>--table-row-odd-bg</td>
      <td>奇数行背景色</td>
    </tr>
    <tr>
      <td>--table-row-hover-bg</td>
      <td>行悬浮背景颜色</td>
    </tr>
    <tr>
      <td>--table-border-color</td>
      <td>边框颜色</td>
    </tr>
    <tr>
      <td>--table-text-color</td>
      <td>文本颜色</td>
    </tr>
  </tbody>
</table>
npm package: @fu1996/color-replace-loader
Description: a webpack color replace loader
Author: fu1996
Latest version: 1.0.10

## 🗝 关于该库的背景

> 因为人工进行颜色替换的效率太低，所以开发此插件，可以在打包构建时进行批量自动替换

另外一个关于`css变量颜色替换的 loader 间项目：` (var-color-replace-loader)[https://github.com/fu1996/webpack-plugins-loaders/tree/main/packages/var-color-replace-loader]

## 🎉 项目名称和原理

`名称：` webpack 颜色替换工具

`原理：` 使用 loader 通过正则，把颜色查找出来 并进行替换

## 📦 安装方式

```bash
# 为当前项目安装
npm i -D @fu1996/color-replace-loader
```

## 🏄 配置如下：

对 webpack 配置文件修改

```js
{
    test: /\.less$/,
    use: ['style-loader', 'css-loader', 'less-loader',
    {
        loader: '@fu1996/color-replace-loader',
        options: {
            // key：要替换的颜色值 ，value：替换后的目标值
            colorReplaceMap: {
                '#fff': '#000',
                '#aaa': '#bbb',
                '#ccc': '#ddd',
            },
        }
    }]
},
```

## 📝 demo

当前 less 文件如下内容

```less
body {
  width: 200px;
  height: 200px;
  background: #fff; // 匹配规则忽略大小写
  background: #fff;
  color: #aaa;
  border-color: #ccc;
  color: #adc;
}
```

经过此 loader 处理以后的结果如下：

```css
body {
  width: 200px;
  height: 200px;
  background: #000;
  background: #000;
  color: #bbb;
  border-color: #ddd;
  color: #adc;
}
```

## 📣 后续开发计划

暂无

## ⏰ 如果该库帮助了您，期待您的 star

Github 地址：[欢迎Star ⭐️](https://github.com/fu1996/webpack-plugins-loaders/tree/main/packages#:~:text=.%E2%80%8A.-,color%2Dreplace%2Dloader,-feat%3A%20update%20version)
npm package: @fu1996/i18n-translate-tool
Description: > 因为每次提取出的带有中文的原js 文件，都要手动去复制出中文，然后粘贴进谷歌浏览器，获取到复制结果以后，再把结果粘贴到 js 文件中，流程太长，且人工容易出错，所以有了此款工具。
Author: fujunkui
Latest version: 1.2.8

## 🗝 关于该库的背景

> 因为每次提取出的带有中文的原js 文件，都要手动去复制出中文，然后粘贴进谷歌浏览器，获取到复制结果以后，再把结果粘贴到 js 文件中，流程太长，且人工容易出错，所以有了此款工具。

## 🎉 项目名称和原理

`名称：` 国际化翻译脚手架工具

`原理：` 借用谷歌翻译的api 读取 esm 的待翻译js 文件，进行翻译并修改源文件或者产生新文件

## ✨ 特性

- 解决枯燥的CV工作
- 兼顾 各个项目中 以中文为key，(如： `"苹果": "apple"`，)或者英文为key，(如：`"key1":"apple"`)的情况

## 📦 安装方式

```bash
# 全局安装（推荐）
npm i -g i18n-translate-tool
# or 为当前项目安装
npm i -D i18n-translate-tool
```

## 🔔 测试安装是否成功

```bash
# 全局安装的全局测试
itt -h
# 当前项目安装的
npx itt -h
```

输出内容如下：

```bash
Options:
  -V, --version                output the version number
  -f, --file [file]            导入待翻译的文件以及目标语言
  -d, --dist [file]            输出翻译后的结果，默认会覆盖源文件
  -p, --param [translate key]  取被翻译文件对象的 keys 或者 values (default: "keys")
  -h, --help                   display help for command
```

## 🏄 配置如下：

- -f, --file 被翻译的文件

- -d, --dist 国际化之后要生成的文件名（生成在当前目录）

- -p, --param 取被翻译文件对象的 keys 或者 values (default: "keys")

-- -h, --help 帮助文档

## 💿 快捷使用

默认 取 对象的 keys 做为翻译源

```bash
itt ./test/1.js
```

## 📝 demo

要翻译文件名为 2.js 的文件
`itt -f 2.js -p keys`
(-f 指定读取的文件，-p 指定取 该文件对象里的keys 做为翻译源)

2.js 文件内容如下

```js
export default {
  我是默认导出对象: '',
  我是默认导出对象3: '',
  我是默认导出对象2: '',
  我是默认导出对象1: '',
};

export const a = {
  你好: '',
  我好: '',
};
```

结果如下：

```js
export default {
  我是默认导出对象: 'I am the default export object',
  我是默认导出对象3: 'I am the default export object 3',
  我是默认导出对象2: 'I am the default export object 2',
  我是默认导出对象1: 'I am the default export object 1',
};

export const a = {
  你好: 'Hello',
  我好: "I'm good",
};
```

## 📣 后续开发计划

- 支持指定翻译源
- 支持配置文件化
- 支持增加忽略文件或者包含文件规则
- 增加监听文件变化 chokidar https://www.npmjs.com/package/chokidar

## ⏰ 如果该库帮助了您，期待您的 star

Github 地址：[欢迎Star⭐️](https://github.com/fu1996/webpack-plugins-loaders/tree/main/packages/i18n-translate-tool)
npm package: @fu1996/var-color-replace-loader
Description: a webpack loader can replace var color
Author: fu1996
Latest version: 1.0.12

## 🗝 关于该库的背景

> 因为人工进行颜色替换的效率太低，所以开发此插件，可以在打包构建时进行批量自动替换

另一一个关于`颜色替换的 loader 见项目：` (color-replace-loader)[https://github.com/fu1996/webpack-plugins-loaders/tree/main/packages/color-replace-loader]

## 🎉 项目名称和原理

`名称：` css变量颜色替换工具

`原理：` 使用 loader 通过正则，把颜色查找出来 并对照已提供的 colorMap 的数据进行替换

## 📦 安装方式

```bash
# 为当前项目安装
npm i -D @fu1996/var-color-replace-loader
```

## 🏄 配置如下：

对 webpack 配置文件修改

```js
{
    test: /\.less$/,
    use: ['style-loader', 'css-loader', 'less-loader',
    {
        loader: '@fu1996/var-color-replace-loader',
        options: {
            // 将项目中使用到的 #f5f8ff 替换为颜色变量 --color-cyan-1
            colorMap: {
                '--color-cyan-1': '#f5f8ff',
                '--color-emerald-7': '#049160',
                '--color-indigo-5': '#41a7fa',
            },
        }
    }]
},
```

## 📝 demo

当前 less 文件如下内容

```less
body {
  width: 200px;
  height: 200px;
  background: #f5f8ff;
  background: #f5f8ff; // 忽略大小写匹配
  color: #049160;
  border-color: #41a7fa;
  color: #adc;
}
```

经过此 loader 处理以后的结果如下：

```css
body {
  width: 200px;
  height: 200px;
  background: var(--color-cyan-1);
  background: var(--color-cyan-1);
  color: var(--color-emerald-7);
  border-color: var(--color-indigo-5);
  color: #adc;
}
```

## 📣 后续开发计划

暂无

## ⏰ 如果该库帮助了您，期待您的 star

Github 地址：[欢迎Star ⭐️](https://github.com/fu1996/webpack-plugins-loaders/tree/main/packages/var-color-replace-loader)
npm package: @fu1996/webapck-resolver-mode-plugin
Description: A Webpack plug-in that compiles files with different endings according to different configurations (conditional compilation at the file level)
Author: fujunkui
Latest version: 1.0.4

## 🗝 关于该库的背景

- 公有云/私有云几乎相同的逻辑要使用于 其他端，仅仅是UI上不一致，`总结`：一个仓库，根据不同的配置去适配多端
- 客户的数量增加，导致某些标准化的请求难以满足客户，出现了定制化需求的同时，还要保证标准化的功能，`总结`：既要日常迭代的标准化，又要专属于某客户的定制化


## 🎉 项目名称，原理以及注意事项

`名称：` webpack条件编译插件（根据文件后缀进行条件编译，参考自滴滴开源的MDX跨端小程序）

`原理：` 借用 `enhanced-resolve`的 hook 拦截其解析文件之前的api，进行不同的场景后缀判断

`注意事项：`

暂未发现


## 📦 安装方式

```bash
# 为当前项目安装
npm i -D @fu1996/webapck-resolver-mode-plugin
```

## 🏄 配置如下：

- mode ：【可为空，只支持字符串，默认为: ''】指定哪些后缀在优先被打包
- excludes ：【支持字符串和正则及其组成的数组,默认为/node_modules/】根据此规则哪些文件或者文件夹参与此次条件打包
- includeFileSuffix ：【支持字符串组成的数组，默认为['.js']】指定哪些文件后缀参与条件打包
- debug ：【仅支持布尔值】是否开启debug 模式

## 📝 demo

首先修改 webpack的 配置如下：

```js
// 引入该插件
const WebpackResolverModePlugin = require('@fu1996/webapck-resolver-mode-plugin');
```

```js
resolve: {
    plugins: [
      new WebpackResolverModePlugin({
        excludes: /node_modules/, // 排除的目录
        includeFileSuffix: [".js", ".jsx"], // 参与条件渲染的文件后缀
        mode: "h5", // 目标 模式：根据此模式 自动打包
      })
    ],
},
```

假设 index.js 文件如下：
```js
import a from './a'

console.log('2222',a)
```

假设同时 存在 `a.h5.js`和`a.js`，则 `a.h5.js`会选择作为 index.js 文件的依赖被打包进产物

## 📣 后续开发计划
1. 改为 ts
2. 完善readme.md 的API文档

## ⏰ 如果该库帮助了您，期待您的 star

Github 地址：[欢迎Star⭐️](https://github.com/fu1996/webpack-plugins-loaders/tree/main/packages/webpack-resolve-mode-plugin)
npm package: @fu1996/webpack-resolver-mode-plugin
Description: A Webpack plug-in that compiles files with different endings according to different configurations (conditional compilation at the file level)
Author: fujunkui
Latest version: 1.0.9

## 🗝 关于该库的背景

- 公有云/私有云几乎相同的逻辑要使用于 其他端，仅仅是UI上不一致，`总结`：一个仓库，根据不同的配置去适配多端
- 客户的数量增加，导致某些标准化的请求难以满足客户，出现了定制化需求的同时，还要保证标准化的功能，`总结`：既要日常迭代的标准化，又要专属于某客户的定制化

## 🎉 项目名称，原理以及注意事项

`名称：` webpack条件编译插件（根据文件后缀进行条件编译，参考自滴滴开源的MDX跨端小程序）

`原理：` 借用 `enhanced-resolve`的 hook 拦截其解析文件之前的api，进行不同的场景后缀判断

`注意事项：`

- 当前版本暂时不支持 `vue` 项目，等待修复（欢迎大家提PR），
- 可使用 [webpack.NormalModuleReplacementPlugin](https://webpack.docschina.org/plugins/normal-module-replacement-plugin/) 进行平替。

## 📦 安装方式

```bash
# 为当前项目安装
npm i -D @fu1996/webpack-resolver-mode-plugin
```

## 🏄 配置如下：

- mode ：【可为空，只支持字符串，默认为: ''】指定哪些后缀在优先被打包
- excludes ：【支持字符串和正则及其组成的数组,默认为/node_modules/】根据此规则哪些文件或者文件夹参与此次条件打包
- includeFileSuffix ：【支持字符串组成的数组，默认为['.js']】指定哪些文件后缀参与条件打包
- debug ：【仅支持布尔值】是否开启debug 模式

## 📝 demo

首先修改 webpack的 配置如下：

```js
// 引入该插件
const WebpackResolverModePlugin = require('@fu1996/webpack-resolver-mode-plugin');
```

```js
resolve: {
    plugins: [
      new WebpackResolverModePlugin({
        excludes: /node_modules/, // 排除的目录
        includeFileSuffix: [".js", ".jsx"], // 参与条件渲染的文件后缀
        mode: "h5", // 目标 模式：根据此模式 自动打包
      })
    ],
},
```

假设 index.js 文件如下：

```js
import a from './a';

console.log('2222', a);
```

假设同时 存在 `a.h5.js`和`a.js`，则 `a.h5.js`会选择作为 index.js 文件的依赖被打包进产物

## 📣 后续开发计划

1. 改为 ts
2. 完善readme.md 的API文档

## ⏰ 如果该库帮助了您，期待您的 star

Github 地址：[欢迎Star⭐️](https://github.com/fu1996/webpack-plugins-loaders/tree/main/packages/webpack-resolve-mode-plugin)
npm package: @fu1996/webpack-used-files-plugin
Description: A plug-in used in webpack to find which files are used
Author: fujunkui
Latest version: 1.0.8

## 🗝 关于该库的背景

> 随着需求的迭代，项目中的废弃代码和文件越来越多，但是耗费人力去区分哪些文件会被打包，哪些文件不会被打包，效率太低，且容易出现未知错误，所以有了此款工具。`此款工具只会帮你找到 webpack 打包过程中使用的文件，并默认生成index.txt 文件去记录。`（使用到的文件你都找到了，没用到的文件 等于 总文件 减去 使用到的文件）

## 🎉 项目名称，原理以及注意事项

`名称：` 查找项目中用到的文件（会被webpack打包所使用）的工具

`原理：` 借用 `enhanced-resolve`的 hook 拦截最后 webpack 解析出的文件路径，并添加到文件中

`注意事项：`

1. 目前发现 webpack5 存在缓存机制，导致 第二次生成的 index.txt 文件少入 本次打包使用的文件，建议在 使用本插件前清空 webpack 的缓存，删除 `node_modules/.cache/webpack`文件夹，再次尝试打包

```bash
rm -rf node_modules/.cache/webpack
```

2.如果使用了 `happyPack` 或 `thread-loader` 等 **多线程打包**工具，会导致 产生的目标文件 index.txt 中出现多个重复的路径。

## 📦 安装方式

```bash
# 为当前项目安装
npm i -D @fu1996/webpack-used-files-plugins
```

## 🏄 配置如下：

- rootDir ：生成的 文件的存储目录
- fileName ：生成的文件名 默认为 index.txt
- clean ：是否清除上次该插件生成的产物（如：index.txt）
- exclude ：【支持字符串和正则及其组成的数组】根据此规则哪些文件不会生成在 filename 里 默认node_modules
- excludeFunc ：【优先级大于exclude 规则】此方法接受 request 和 context 两个参数，如果此函数返回值为true, 则此路径不会生成在 文件中

## 📝 demo

首先修改 webpack的 配置如下：

```js
// 引入该插件
const UsedFilesPlugin = require('@fu1996/webpack-used-files-plugin');
```

```js
resolve: {
    plugins: [
      new UsedFilesPlugin({
        rootDir: __dirname,
      })
    ],
},
```

然后运行 你的 webpack 打包命令即可

即可在当前项目里看到 包含了webpack 本次打包所依赖文件 的 `index.txt` 文件

## 📣 后续开发计划

- 输出结果去重
- 移动使用到文件到指定目录
- 增加单元测试

## ⏰ 如果该库帮助了您，期待您的 star

Github 地址：[欢迎Star⭐️](https://github.com/fu1996/webpack-plugins-loaders/tree/main/packages/webpack-used-files-plugin)
npm package: @fua/agent.amec
Description: Agent of authentication mechanism
Author: Simon Petrac
Latest version: 2.0.1

# @fua/agent.amec

- [MDN, WWW-Authenticate](https://developer.mozilla.org/de/docs/Web/HTTP/Headers/WWW-Authenticate)
- [IANA](https://www.iana.org/assignments/http-authschemes/http-authschemes.xhtml)
- [MDN, HTTP authentication](https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication#Authentication_schemes)

```http request
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
```

---
npm package: @fua/agent.events
Description: ## Usage Analysis
Author: Simon Petrac
Latest version: 1.0.1

# @fua/agent.events

## Usage Analysis

- The format of the used events should be
  the [CloudEvent](https://github.com/cloudevents/sdk-javascript/blob/main/src/event/interfaces.ts) syntax.
- An event will be sent over any transport layer. The http syntax with headers and body may apply to every transport.
- If an event occurs like some threshold that has been reached, an event should be constructed at the agent and
  submitted into the application for anyone to handle.
- If the application emits a specific event that my implementation listens to, I want to use the data for my algorithm.
- If the application emits an event that is relevant for another component in the network, I want an easy serialization
  and deserialization on the other end.
- If an event is created, the specific type of the event should be used to validate its data.
- Multiple events should be selected/listened to via appropriate patterns.
npm package: @fua/app.daps
Description: ### Links
Author: Simon Petrac
Latest version: 1.2.7

# @fua/app.daps

### Links

- [Omejdn DAPS](https://github.com/International-Data-Spaces-Association/omejdn-daps)
- [IDS-G-pre: DAPS](https://github.com/International-Data-Spaces-Association/IDS-G-pre/tree/main/Components/IdentityProvider/DAPS)

### Docs

- [E-Mail: **DAPS upgrade to v3**](docs/daps_upgrade_to_v3.md)
npm package: @fua/app.testbed
Description: The testbed can be launched locally or with docker, but usually it will be accessible via <https://tb.nicos-rd.com/>.
Author: Simon Petrac
Latest version: 1.2.0

# @fua/app.testbed

The testbed can be launched locally or with docker, but usually it will be accessible via <https://tb.nicos-rd.com/>.
npm package: @fua/client.daps
Description: ## Links
Author: Simon Petrac
Latest version: 1.0.1

# @fua/client.daps

## Links

- [`jose` Modules API Documentation](https://github.com/panva/jose/tree/main/docs)
    - [Class: SignJWT](https://github.com/panva/jose/blob/main/docs/classes/jwt_sign.SignJWT.md#readme)
    - [Function: decode](https://github.com/panva/jose/blob/main/docs/functions/util_base64url.decode.md#readme)

---
npm package: @fua/core.uuid
Description: A universally unique identifier (UUID) is a 128-bit label used for information in computer systems and can guarantee uniqueness across space and time.
Author: Simon Petrac
Latest version: 1.0.1

# @fua/core.uuid

- [A Universally Unique IDentifier (UUID) URN Namespace](https://tools.ietf.org/html/rfc4122)

The formal definition of the UUID string representation 
is provided by the following [ABNF](https://tools.ietf.org/html/rfc2234):

```
UUID                   = time-low "-" time-mid "-"
                         time-high-and-version "-"
                         clock-seq-and-reserved
                         clock-seq-low "-" node
time-low               = 4hexOctet
time-mid               = 2hexOctet
time-high-and-version  = 2hexOctet
clock-seq-and-reserved = hexOctet
clock-seq-low          = hexOctet
node                   = 6hexOctet
hexOctet               = hexDigit hexDigit
hexDigit               = "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7" / "8" / "9" /
                         "a" / "b" / "c" / "d" / "e" / "f" /
                         "A" / "B" / "C" / "D" / "E" / "F"
```

## Version 4: UUID from truly-random or pseudo-random numbers

The algorithm is as follows:

- Set the two most significant bits (__bits 6 and 7__) of the
  clock_seq_hi_and_reserved to __0 and 1__, respectively.
- Set the four most significant bits (__bits 12 through 15__) of the
  time_hi_and_version field to the 4-bit version number __0 1 0 0__.
- Set all the other bits to randomly (or pseudo-randomly) chosen values.
npm package: @fua/model.ldp
Description: Linked Data Platform
Author: Simon Petrac
Latest version: 1.0.0

# fua.model.ldp

Linked Data Platform

## Usage

```js
model   = require('@fua/model.ldp');    // require the model
param   = {
    baseIRI:  'http://localhost/',          // necessary but currently not used
    basePath: __dirname                     // necessary for path resolvement
};
builder = model.builder(space, param);      // create a builder

resource = builder('ex:hello');             // can be a string
resource = builder({'@id': 'ex:hello'});    // can be an object identifier
resource = builder(resource);               // can be another resource
resource = builder(resource.node);          // can be a space node
resource = builder(resource.node.term);     // can be a persistence term

resource = model.build(                     // a resource can also be build without a builder
    space.getNode('ex:hello'),              // then it needs a space node
    param                                   // and the necessary parameter
);

await resource.load();                      // only loads supported properties

console.log(resource.serialize());          // default: text/turtle
console.log(resource.node.toJSON());        // toJSON of the space node

await resource.save();                      // only saves supported properties
```
npm package: @fua/module.automata
Description: ## [Finite-state machine](src/module.automata.FSM.js)
Author: Simon Petrac
Latest version: 1.0.0

# @fua/module.automata

## [Finite-state machine](src/module.automata.FSM.js)

## [Pushdown automaton](src/module.automata.PDA.js)
npm package: @fua/module.geom
Description: @ [nrd-motic / decide / operators / geometry.md](https://github.com/nicosResearchAndDevelopment/nrd-motic/blob/master/decide/operator/geometry.md)
Author: Simon Petrac
Latest version: 1.0.0

# @fua/module.geom

@ [nrd-motic / decide / operators / geometry.md](https://github.com/nicosResearchAndDevelopment/nrd-motic/blob/master/decide/operator/geometry.md)
npm package: @fua/module.markdown
Description: - https://daringfireball.net/projects/markdown/ - https://markdown.de/ - https://www.markdownguide.org/
Author: Simon Petrac
Latest version: 1.0.0

# @fua/module.markdown

- https://daringfireball.net/projects/markdown/
- https://markdown.de/
- https://www.markdownguide.org/


- https://www.npmjs.com/package/markdown-it
- https://markdown-it.github.io/markdown-it/
- https://github.com/markdown-it/markdown-it/tree/master/lib
- https://www.npmjs.com/package/highlight.js
npm package: @fua/module.persistence.filesystem
Description: - [Persistence](https://git02.int.nsc.ag/Research/fua/lib/module.persistence)
Author: Simon Petrac
Latest version: 1.0.0

# @fua/module.persistence.filesystem

- [Persistence](https://git02.int.nsc.ag/Research/fua/lib/module.persistence)

## Interface

```ts
interface FileSystemStoreFactory extends DataStoreCoreFactory {
    store(graph: NamedNode, directory: string): FileSystemStore;
};
```
npm package: @fua/module.persistence.inmemory
Description: - [Persistence](https://git02.int.nsc.ag/Research/fua/lib/module.persistence)
Author: Simon Petrac
Latest version: 1.0.0

# @fua/module.persistence.inmemory

- [Persistence](https://git02.int.nsc.ag/Research/fua/lib/module.persistence)

```ts
interface InmemoryFactory extends DatasetCoreFactory {
	dataset(quads?: Iterable<Quad>): DatasetCore;
};
```
npm package: @fua/module.persistence.mongodb
Description: - [Persistence](https://git02.int.nsc.ag/Research/fua/lib/module.persistence)
Author: Simon Petrac
Latest version: 1.0.0

# module.persistence.mongodb

- [Persistence](https://git02.int.nsc.ag/Research/fua/lib/module.persistence)

## Interface

### MongoDBStore

```ts
interface MongoDBStore extends DataStore {
    size(): Promise<number>;

    match(subject?: Term, predicate?: Term, object?: Term, graph?: Term): Promise<Dataset>;

    add(quads: Quad | Iterable<Quad>): Promise<number>;
    addStream(stream: Readable<Quad>): Promise<number>;
    delete(quads: Quad | Iterable<Quad>): Promise<number>;
    deleteStream(stream: Readable<Quad>): Promise<number>;
    deleteMatches(subject?: Term, predicate?: Term, object?: Term, graph?: Term): Promise<number>;

    has(quads: Quad | Iterable<Quad>): Promise<boolean>;

    on(event: "added", callback: (quad: Quad) => void): this;
    on(event: "deleted", callback: (quad: Quad) => void): this;
    on(event: "error", callback: (err: Error) => void): this;
};
```

### MongoDBStoreFactory

```ts
interface MongoDBStoreFactory extends DataStoreFactory {
    dataStore({ url: string, db: string, config: Object }): MongoDBStore;
    isDataStore(that: MongoDBStore | any): true | false;

    validSubject(that: Term | any): true | false;
    validPredicate(that: Term | any): true | false;
    validObject(that: Term | any): true | false;
    validGraph(that: Term | any): true | false;
    validQuad(that: Quad | any): true | false;

    buildIndex({ url: string, db: string, config: Object }): Promise<void>;
};
```
npm package: @fua/module.persistence.neo4j
Description: - [Persistence](https://git02.int.nsc.ag/Research/fua/lib/module.persistence)
Author: Simon Petrac
Latest version: 1.0.0

# module.persistence.neo4j

- [Persistence](https://git02.int.nsc.ag/Research/fua/lib/module.persistence)

## Interface

```ts
interface Neo4jStoreFactory extends DataStoreCoreFactory {
    store(graph: NamedNode, driver: Neo4jDriver): Neo4jStore;
};
```
npm package: @fua/module.persistence.redis
Description: - [Persistence](https://git02.int.nsc.ag/Research/fua/lib/module.persistence)
Author: Simon Petrac
Latest version: 1.0.0

# module.persistence.redis

- [Persistence](https://git02.int.nsc.ag/Research/fua/lib/module.persistence)

## Interface

```ts
interface RedisStoreFactory extends DataStoreCoreFactory {
    store(graph: NamedNode, client: RedisClient): RedisStore;
};
```
npm package: @fua/module.persistence.sqlite
Description: - [Persistence](https://git02.int.nsc.ag/Research/fua/lib/module.persistence)
Author: Simon Petrac
Latest version: 1.0.0

# module.persistence.sqlite

- [Persistence](https://git02.int.nsc.ag/Research/fua/lib/module.persistence)

## Links

- [SQLite](https://www.sqlite.org/index.html)
    - [INSERT](https://www.sqlite.org/lang_insert.html)
    - [UPSERT](https://www.sqlite.org/lang_upsert.html)
    - [RETURNING](https://www.sqlite.org/lang_returning.html)
    - [CREATE TABLE](https://www.sqlite.org/lang_createtable.html)
    - [Rowid Tables](https://www.sqlite.org/rowidtable.html)
    - [SQL Language Expressions](https://sqlite.org/lang_expr.html)
- [SQLite Tutorial](https://www.sqlitetutorial.net/)
- [Worker threads](https://nodejs.org/docs/latest-v14.x/api/worker_threads.html)
npm package: @fua/module.time
Description: [motic.decide, binary operator, `time`](https://github.com/nicosResearchAndDevelopment/nrd-motic/blob/master/decide/operator/time.md)
Author: Jörg Langkau
Latest version: 1.0.0

# @fua/module.time

[motic.decide, binary operator, `time`](https://github.com/nicosResearchAndDevelopment/nrd-motic/blob/master/decide/operator/time.md)

## Ideas & ToDos

- calendar week of the year
- day of the year to calendar week calculation
- _module.time.Year_: implement week class and get weeks of year

## Default configuration

```javascript
const time = require('fua.module.time')({
    /** @type {String} used as prefix for all '@id's on the types */
    'namespace': "time",
    /** @type {Boolean} if set to true, creates concrete time instances with an '@id' */
    'setInstanceId': true,
    /** @type {String} if setInstanceId is enabled, this will be used as first part of the '@id' */
    'root': "1/"
});
```

## Types

```javascript
const instant = new time.Instant(
    new Date()
);

const proper_interval = new time.ProperInterval(
    new Date(0),
    new Date()
);
```

## Methods

### Before, After, Meets, MetBy, Overlaps, OverlappedBy, Starts, StartedBy, During, Contains, Finishes, FinishedBy, Equals, In, Disjoint

```javascript
/** @type {Boolean} */
const result = time[METHOD](temporalEntity1, temporalEntity2);
```

## addons

[here](./src/addon/README.md)


---
npm package: @fua/resource.ontology.fua
Description: |                    |                              |     | |:-------------------|:-----------------------------|:----| | [fua](./README.md) |                              |     | | fua                | [domain](./domain/README.md) |     | |              
Author: Simon Petrac
Latest version: 1.0.1

# @fua/resource.ontology.fua

|                    |                              |     |
|:-------------------|:-----------------------------|:----|
| [fua](./README.md) |                              |     |
| fua                | [domain](./domain/README.md) |     |
|                    |                              |     |

---
npm package: @fua/resource.ontology.ids
Description: - [ids.ttl](data/ids/ids.ttl) - [ids3cm.ttl](data/ids3cm/ids3cm.ttl) - [ids3c-co.ttl](data/ids3c-co/ids3c-co.ttl)
Author: Simon Petrac
Latest version: 1.0.0

# @fua/resource.ontology.ids

- [ids.ttl](data/ids/ids.ttl)
- [ids3cm.ttl](data/ids3cm/ids3cm.ttl)
- [ids3c-co.ttl](data/ids3c-co/ids3c-co.ttl)

---
npm package: @fua/resource.ontology.iot
Description: | Name                                                          | Prefix   | Model                                                                                          | IRI                                 | |------------------------------------------
Author: Simon Petrac
Latest version: 1.0.0

# @fua/resource.ontology.iot

| Name                                                          | Prefix   | Model                                                                                          | IRI                                 |
|---------------------------------------------------------------|----------|------------------------------------------------------------------------------------------------|-------------------------------------|
| [The Function Ontology](data/fno/README.md)                   | `fno`    | [`.ttl`](data/fno/fno.ttl)                                                                     | https://w3id.org/function/ontology# |
| [HTTP in RDF](data/http/README.md)                            | `http`   | [`.xml`](data/http/http.xml)                                                                   | http://www.w3.org/2011/http#        |
| [Linked Data Notifications](data/ldn/README.md)               |          |                                                                                                |                                     |
| [Linked Data Platform](data/ldp/README.md)                    | `ldp`    | [`.ttl`](data/ldp/ldp.ttl) [`.json`](data/ldp/ldp.json) [`.xml`](data/ldp/ldp.xml)             | http://www.w3.org/ns/ldp#           |
| [Smart Applications REFerence ontology](data/saref/README.md) | `saref`  | [`.ttl`](data/saref/saref.ttl) [`.json`](data/saref/saref.json) [`.xml`](data/saref/saref.xml) |                                     |
npm package: @fua/resource.ontology.science
Description: | Name                                                                         | Prefix  | Model                                                               | IRI                          | |--------------------------------------------------------------
Author: Simon Petrac
Latest version: 1.0.0

# @fua/resource.ontology.science

| Name                                                                         | Prefix  | Model                                                               | IRI                          |
|------------------------------------------------------------------------------|---------|---------------------------------------------------------------------|------------------------------|
| [Ontology of Astronomical Object Types](data/ivoa/README.md)                 | `ivoa`  | [`.ttl`](data/ivoa/ivoa_generated.ttl) [`.xml`](data/ivoa/ivoa.xml) |                              |
| [Quantities, Units, Dimensions and Types](data/qudt/README.md)               | `qudt`  | [`.ttl`](data/qudt/schema/qudt.ttl)                                 | http://qudt.org/schema/qudt/ |
| [Semantic Web for Earth and Environmental Terminology](data/sweet/README.md) | `sweet` | [`.ttl`](data/sweet/sweetAll.ttl)                                   |                              |
npm package: @fua/resource.ontology.secure
Description: | Name                                                | Prefix      | Model                                                                                    | IRI                                  | |-----------------------------------------------------|
Author: Simon Petrac
Latest version: 1.0.0

# @fua/resource.ontology.secure

| Name                                                | Prefix      | Model                                                                                    | IRI                                  |
|-----------------------------------------------------|-------------|------------------------------------------------------------------------------------------|--------------------------------------|
| [Web Access Control](data/acl/README.md)            | `acl`       | [`.ttl`](data/acl/acl.ttl) [`.xml`](data/acl/acl.xml) [`.n3`](data/acl/acl.n3)           | http://www.w3.org/ns/auth/acl#       |
| [Cert Ontology](data/cert/README.md)                | `cert`      | [`.ttl`](data/cert/cert_generated.ttl) [`.xml`](data/cert/cert.xml)                      | http://www.w3.org/ns/auth/cert#      |
| [Verifiable Credentials](data/cred/README.md)       | `vc` `cred` | [`.ttl`](data/cred/cred_fixed.ttl) [`.json`](data/cred/cred.json)                        | https://www.w3.org/2018/credentials# |
| [Open Digital Rights Language](data/odrl/README.md) | `odrl`      | [`.ttl`](data/odrl/odrl.ttl) [`.json`](data/odrl/odrl.json) [`.xml`](data/odrl/odrl.xml) | http://www.w3.org/ns/odrl/2/         |
npm package: @fua/resource.universe.chemical
Description: - **Model:** [`chemical_elements.ttl`](data/chemical_elements.ttl) - **Source:** [`chemical_elements.csv`](data/chemical_elements.csv) - **Links:**     - https://pastebin.com/raw/CKwm136x     - https://www.downloadexcelfiles.com/wo_en/download-excel-file-
Author: Simon Petrac
Latest version: 1.0.0

# @fua/resource.universe.chemical

- **Model:** [`chemical_elements.ttl`](data/chemical_elements.ttl)
- **Source:** [`chemical_elements.csv`](data/chemical_elements.csv)
- **Links:**
    - https://pastebin.com/raw/CKwm136x
    - https://www.downloadexcelfiles.com/wo_en/download-excel-file-list-list-chemical-elements
    - https://spreadsheetpage.com/study/periodic-table/
npm package: @fua/resource.universe.color
Description: - **Model:** [`colors.ttl`](data/colors.ttl) - **Source:** [`colors.csv`](data/colors.csv) - **Links:**     - https://www.w3schools.com/colors/colors_names.asp
Author: Simon Petrac
Latest version: 1.0.0

# @fua/resource.universe.color

- **Model:** [`colors.ttl`](data/colors.ttl)
- **Source:** [`colors.csv`](data/colors.csv)
- **Links:**
    - https://www.w3schools.com/colors/colors_names.asp
npm package: @fua/resource.universe.country
Description: - **Model:** [`countries.ttl`](data/countries.ttl) - **Source:** [`countries.csv`](data/countries.csv),   [`countries.low_res.geo.json`](data/geojson-maps.ash.ms/countries.low_res.geo.json),   [`countries.high_res.geo.json`](data/geojson-maps.ash.ms/count
Author: Simon Petrac
Latest version: 1.0.0

# @fua/resource.universe.country

- **Model:** [`countries.ttl`](data/countries.ttl)
- **Source:** [`countries.csv`](data/countries.csv),
  [`countries.low_res.geo.json`](data/geojson-maps.ash.ms/countries.low_res.geo.json),
  [`countries.high_res.geo.json`](data/geojson-maps.ash.ms/countries.high_res.geo.json),
  [`ne_110m_admin_0_countries.geo.json`](data/naturalearthdata.com/ne_110m_admin_0_countries.geo.json),
  [`ne_50m_admin_0_countries.geo.json`](data/naturalearthdata.com/ne_50m_admin_0_countries.geo.json),
  [`ne_10m_admin_0_countries.geo.json`](data/naturalearthdata.com/ne_10m_admin_0_countries.geo.json)
- **Links:**
    - [UN/LOCODE](https://unece.org/trade/cefact/UNLOCODE-Download)
    - [GeoJSON Maps of the globe](https://geojson-maps.ash.ms/)
    - [Natural Earth](http://naturalearthdata.com/)
npm package: @fua/resource.universe.currency
Description: - **Model:** [`currencies.ttl`](data/currencies.ttl) - **Source:** [`currencies.csv`](data/currencies.csv) - **Links:**     - https://www.six-group.com/en/products-services/financial-information/data-standards.html#scrollTo=maintenance-agency
Author: Simon Petrac
Latest version: 1.0.0

# @fua/resource.universe.currency

- **Model:** [`currencies.ttl`](data/currencies.ttl)
- **Source:** [`currencies.csv`](data/currencies.csv)
- **Links:**
    - https://www.six-group.com/en/products-services/financial-information/data-standards.html#scrollTo=maintenance-agency
npm package: @fua/resource.universe.language
Description: - **Model:** [`languages.ttl`](data/languages.ttl) - **Source:** [`languages.csv`](data/languages.csv) - **Links:**     - https://unece.org/trade/cefact/UNLOCODE-Download
Author: Simon Petrac
Latest version: 1.0.0

# @fua/resource.universe.language

- **Model:** [`languages.ttl`](data/languages.ttl)
- **Source:** [`languages.csv`](data/languages.csv)
- **Links:**
    - https://unece.org/trade/cefact/UNLOCODE-Download
npm package: @fua/resource.universe.planet
Description: - **Model:** [`planets.ttl`](data/planets.ttl) - **Source:** [`planets.csv`](data/planets.csv) - **Links:**     - https://solarsystem.nasa.gov/
Author: Simon Petrac
Latest version: 1.0.0

# @fua/resource.universe.planet

- **Model:** [`planets.ttl`](data/planets.ttl)
- **Source:** [`planets.csv`](data/planets.csv)
- **Links:**
    - https://solarsystem.nasa.gov/
npm package: @fuadop/koa-proxy
Description: Proxy middleware for koa
Author: edorivai
Latest version: 1.0.0

# koa-proxy [![Build Status](https://travis-ci.com/edorivai/koa-proxy.svg?branch=master)](https://travis-ci.com/edorivai/koa-proxy)

Proxy middleware for koa

---

## Install

```
$ npm install koa-proxy -S
```

## Usage

When you request http://localhost:3000/index.js, it will fetch http://alicdn.com/index.js and return.

```js
var koa = require('koa');
var proxy = require('koa-proxy');
var app = koa();
app.use(proxy({
  host: 'http://alicdn.com'
}));
app.listen(3000);
```

You can proxy a specified url.

```js
app.get('index.js', proxy({
  url: 'http://alicdn.com/index.js'
}));
```

You can specify a key/value object that can map your request's path to the other.

```js
app.get('index.js', proxy({
  host: 'http://alicdn.com',
  map: {
    'index.js': 'index-1.js'
  }
}));
```

You can specify a function that can map your request's path to the desired destination.

```js
app.get('index.js', proxy({
  host: 'http://alicdn.com',
  map: function(path) { return 'public/' + path; }
}));
```

You can specify match criteria to restrict proxy calls to a given path.

```js
app.use(proxy({
  host:  'http://alicdn.com', // proxy alicdn.com...
  match: /^\/static\//        // ...just the /static folder
}));
```

Or you can use match to exclude a specific path.

```js
app.use(proxy({
  host:  'http://alicdn.com',     // proxy alicdn.com...
  match: /^(?!\/dontproxy\.html)/ // ...everything except /dontproxy.html
}));
```

You can configure proxy to remember cookies for future use by setting `jar = true`. This means cookies set by server will be stored and resent in subsequent requests. For me info see the documentation for [request](https://github.com/request/request).

```js
app.use(proxy({
  jar: true,
}));
```

Proxy won't send 'foo' and 'bar' headers to real server, or recieve 'jar-jar' from real server.

```js
app.use(proxy({
  suppressRequestHeaders: ['foo','bar'], // case-insensitive
  suppressResponseHeaders: ['jar-jar'] // case-insensitive
}));
```

You can also add new headers to your response or override existing ones
```js
app.use(proxy({
  overrideResponseHeaders: {
    "cow": "moo",
    "duck": "quack"
    }, 
}));
```

## LICENSE

Copyright (c) 2014 popomore. Licensed under the MIT license.
npm package: @fualfie/easy-server
Description: Simple server using pure nodejs api
Author: fualfie
Latest version: 1.10.5

# easy-server
 Simple server using pure nodejs api

## npm command
```bash
npm adduser
npm publish --access public
```

## create server.js
```javascript
const WebServer = require('@fualfie/easy-server').WebServer
let server = new WebServer().start().open().log()
module.exports = server;
```

## create api.js
```javascript
const app = require('../server').Router()

app.post('/api',(req,res)=>{
    console.log('Api is called')
    res.json({time: new Date()})
})
```

## create form
```html
<form action="/upload" method="post" enctype="multipart/form-data">
    <input type="file" name="file" accept="image/*,video/*,.pdf,.docx,.pptx,.xlsx"/>
    <input type="submit" value="upload" />
</form>
```

## create database
```js
let DataBase = require('../server').DataBase
let db = new DataBase(__dirname + '\\..\\db')
let val = { test: 3, my: 'ddd' }
db.insert('lab', val, '_id')
db.upsert('lab', val.test, val, '_id')
```

## send request
```js
let request = require('../server').request
// get
request.get('http://127.0.0.1:3001/get', { test: 2 }, (data, msg) => {
    console.log(data, msg)
})
// post
request.post('http://127.0.0.1:3001/post', { test: 3 }, (data, msg) => {
    console.log(data, msg)
})
```

## cipher module
```js
Cipher.hash('a1234567') //md5 encipher
Cipher.encrypt('a1234567') //aes encipher
Cipher.decrypt('4737c4cbd158bf0962d557d67f0dd0e2') //aes decipher
Cipher.randomHex(16) //random hex string
```

## open browser by Chrome
```js
let browser = require('./browser')(`${__dirname}/package.json`,'http://localhost:3001' )
browser.open()
```

## pkg tool

```bash
npm install -g pkg
```

```js
let pkg = require('./pkg')
pkg(__dirname + '/package.json',
    'server.js',
    [
        'routes/'
    ],
    [
        'public/',
        'node_modules/@fualfie/easy-server/browser/',
        'node_modules/@fualfie/easy-server/common/'
    ])
pkg.build('windows')
```
npm package: @fualfie/websocket-server
Description: websocket server
Author: fualfie
Latest version: 1.1.4

# websocket-server
  websocket server

  npm adduser
  npm publish --access public

## create on server
```js
//setup
let ws = new WebSocket(3993, '0.0.0.0', true)
ws.start()
//broadcating
ws.broadcast('hello world')
```