open-index/open-npm huggingface dataset:
npm package: @insysbio/topo-sort
Description: Simple and fast implementation of topological sorting. No dependencies. A circular graph will throw an error with circular nodes info.
Author: liy
Latest version: 1.0.1

**This is fork from https://github.com/liy/topo-sort for more informative error object.**

# Error update
When the graph is cyclic than the Error object has property "circular" with the Array of circular ids.

# Usage
Must not add any null, undefined or empty string node.
```javascript
var TopoSort = require('topo-sort');

var tsort = new TopoSort();
tsort.add('a', ['b', 'c']);
tsort.add('d', ['a', 'b', 'c']);
// Output d,a,c,b
var l = tsort.sort();
```
npm package: @int-component/drag-drop
Description: a drag drop warpper based on vue.js version 3
Author: Linker
Latest version: 2.0.0

# drag-drop
this component is a light wrapper for drag/drop operate based on vue3, you can trans data by drag/drop easily with this component.

## attention
there is a big gap between version 1 and version 2.
at version 1, the data transfered will be cut off the reference relation from it's origin data by `JSON.parse(JSON.stringify(data))`, and it caused a error that the data can't be stringify or parse by JSON, and it's also limited the creation we developer use it.
## use
```js
import {
  defineComponent, h, reactive
} from 'vue';

import './style.css';
import DropList, { DragItem, DragList } from '@int-component/drag-drop';

export default defineComponent({
  name: 'DragDrop',
  setup() {
    const dropListScopedSlot = {
      item: (props: any) => h('div', JSON.stringify(props.itemData))
    };
    const dragItemIpts = [
      {
        inputType: 'AInput',
        dataKey: 'test',
        label: 'test',
        validator: [
          {
            required: true,
            message: 'test -- required',
            trigger: ['change']
          }
        ]
      },
      {
        inputType: 'AInput',
        dataKey: 'test1',
        label: 'test1',
        validator: [
          {
            message: 'test',
            trigger: ['change'],
            pattern: '/[a-z]+/'
          }
        ]
      }
    ];
    const dragItems = dragItemIpts.map((data, idx: number) => h(DragItem, {
      allowDrag: () => idx === 0,
      data,
      key: idx
    }, () => <div>{data.dataKey}</div>));

    const definition = reactive({
      name: 'test',
      fields: []
    });
    return () => (
      <div class="grid grid-cols-3 gap-2 p-4 h-screen">
        <DropList v-slots={dropListScopedSlot} v-model={[definition.fields, 'modelValue']} />
        <DragList>
          {dragItems}
        </DragList>
      </div>
    );
  }
});

```

## todo
[ ] add all drag/drop event callback  
[ ] multi data items trans
npm package: @int-component/eslint-plugin-vue-require-id-attr
Description: require id attr for specific element
Author: Linker
Latest version: 1.2.3

# eslint-plugin-vue-require-id-attr

this plugin can auto complete the id attr for some element.
basically, this plugin is a set of rule to decide the id attr value. you can set the rule option with the element rawName you want to apply this rule.
```
// example:
// the node with rawName 'button', 'Button' and 'whatever' will apply this rule.
"@int-component/vue-require-id-attr/button-require-id": [2, ["button", "Button", "whatever"]]
```

## Update
* support define the the element to apply rule by rule option.
* fix eslint-plugin-vue/lib/utils require path error

## Installation

You'll first need to install [ESLint](http://eslint.org):

```
$ npm i eslint --save-dev
```

Next, install `@int-component/eslint-plugin-vue-require-id-attr`:

```
$ npm install @int-component/eslint-plugin-vue-require-id-attr --save-dev
```


## Usage

Add `@int-component/eslint-plugin-vue-require-id-attr` to the plugins section of your `.eslintrc` configuration file. You can omit the `eslint-plugin-` prefix:

```json
{
    "plugins": [
        "@int-component/eslint-plugin-vue-require-id-attr"
    ]
}
```


Then configure the rules you want to use under the rules section.

```json
{
    "rules": {
        "@int-component/vue-require-id-attr/button-require-id": 2,
        "@int-component/vue-require-id-attr/select-require-id": 2,
        "@int-component/vue-require-id-attr/tabpane-require-id": 2,
        "@int-component/vue-require-id-attr/option-require-name": 2,
        "@int-component/vue-require-id-attr/input-require-id": 2,
    }
}
```

## Supported Rules

* @int-component/vue-require-id-attr/button-require-id
* @int-component/vue-require-id-attr/select-require-id
* @int-component/vue-require-id-attr/tabpane-require-id
* @int-component/vue-require-id-attr/option-require-name
* @int-component/vue-require-id-attr/input-require-id

## todo
[ ] the description for the logic of rule that how to decide id value.(now you can only get it from reading source code)

[ ] more rule
npm package: @int1ch/env-config
Description: Configuration helper providing setup from yaml/json or env
Author: Mike Nikitin
Latest version: 0.1.3

# env-config
Help build config from configuration files and ENV var.

## suppored formats
config files can be written in `.yaml` | `.env`  | `.json` formats,  package `yaml` and `dotenv` must be installed manualy, if you plan to use them.


## sources
env-config try to find `./config` dir in your package,
and read first 
* default
* development
* testing
* production
* secret
* environment varables after that.

names are written in priority order, default file has the lowest one, environment variables override all.
possible extension are `.json|.yaml|.env`


```
import ConfigReader from '@int1ch/env-config';
const reader = new ConfigReader();

reader.get("SECRET").required().asString();
```

reader provide get method as a proxy to [env-var](https://github.com/evanshortiss/env-var)
with all .default .required .asPort and other methods

[Browse package](https://unpkg.com/browse/@int1ch/env-config/)