open-index/open-npm huggingface dataset:
npm package: @nwt/lice
Description: CLI to fetch open source licenses
Author: Nick Tomlin
Latest version: 1.0.3

`lice`
---

"easy" management of open source licenses from the comfort of the command line. _psst: you should probably just use [generator license](https://github.com/jozefizso/generator-license) or [lice](https://github.com/superkhau/lice)

```
# fetch and write the MIT lice
npx @nwt/lice fetch mit > LICENSE

# list all licenses
npx @nwt/lice list

# help/usage
npx @nwt/lice
```

Backend
---

`lice` consumes to [a microservice](https://github.com/nicktomlin/lice-server) that scrapes choosealicense.com because that is the most complicated way I could think of doing this.

Todo
---

- [ ] Customization `~/.node-l-config` or directly via `--copyright`, `--year`, and other options
npm package: @nwutils/cli
Description: Command line interface for building NW.js applications
Author: Ayushman Chhabra
Latest version: 0.1.1

# nw-cli

[![npm](https://img.shields.io/npm/v/@nwutils/cli/latest)](https://www.npmjs.com/package/@nwutils/cli/v/latest)

Command line interface for NW.js applications.

## Getting Started

1. Install package: `npm i -g @nwutils/cli`
1. Create a new project: `nw-cli create MyApp`

## CLI

### create

Create a Vanilla JavaScript project.

```shell
└─$ nw-cli create --help
Usage: nw-cli create [options] <name>

Arguments:
  name                   app name

Options:
  --template <template>  template name (default: "vanilla-js")
  --outDir <dir>         output directory (default: ".")
  -h, --help             display help for command
```

### dev

Run application in development mode.

```shell
└─$ nw-cli dev --help
Usage: nw-cli dev [options]

Run app in development mode

Options:
  --version <version>      NW.js version (default: "latest")
  --flavor <flavor>        NW.js flavor (default: "normal")
  --platform <platform>    NW.js platform (default: "linux")
  --arch <arch>            NW.js architecture (default: "x64")
  --downloadUrl <string>   Download URL (default: "https://dl.nwjs.io")
  --manifestUrl <string>   Manifest URL (default: "https://nwjs.io/versions.json")
  --cacheDir <dir>         Cache directory (default: "/home/user/.nw-cli/cache")
  --cache <boolean>        Cache binaries (default: true)
  --ffmpeg <boolean>       Download community ffmpeg (default: false)
  --nativeAddon <boolean>  Download NW.js Node headers (default: false)
  --shaSum <boolean>       Verify SHASUM (default: true)
  --srcDir <dir>           Project source directory (default: ".")
  --argv <item...>         Command line arguments (default: [])
  -h, --help               display help for command
```

> Note: If you find a template is missing, feel free to open an issue or pull request.

## API

Apply NW.js specific polyfills to your NW.js application.

```js
import { pollyfill } from '@nwutils/cli';

// Run this as early in your application lifecycle as possible.
pollyfill();
```

## Roadmap

* [ ] Add react-js template
* [ ] Package custom node test coverage action.

## Contributing

### External contributor

- Use Node.js standard libraries whenever possible.
- Prefer to use syncronous APIs over modern APIs which have been introduced in later versions.

### Maintainer

- npm trusted publishing is used for releases
- a package is released when a maintainer creates a release note for a specific version
npm package: @nwutils/getter
Description: Get NW.js and related binaries for Linux, MacOS and Windows.
Author: Ayushman Chhabra
Latest version: 0.2.4

# @nwutils/getter

[![npm](https://img.shields.io/npm/v/@nwutils/getter/latest)](https://www.npmjs.com/package/@nwutils/getter/v/latest)

Download NW.js and related binaries for Linux, MacOS and Windows.

## Getting Started

1. Install [Volta](https://volta.sh)
1. `npm i` to install third party dependencies

## Usage

```js
import get from "@nwutils/getter";

await get({
    version: "latest",
    flavor: "normal",
    platform: "linux",
    arch: "x64",
    downloadUrl: "https://dl.nwjs.io",
    manifestUrl: "https://nwjs.io/versions.json",
    cacheDir: "./cache",
    cache: true,
    ffmpeg: false,
    nativeAddon: false,
    shaSum: true,
});
```

## API Reference

Options

| Name | Type    | Description |
| ---- | ------- | ----------- |
| version | `string \| "latest" \| "stable"` | Runtime version |
| flavor | `"normal" \| "sdk"` | Runtime flavor |
| platform | `"linux" \| "osx" \| "win"` | Host platform |
| arch | `"ia32" \| "x64" \| "arm64"` | Host architecture |
| downloadUrl | `"https://dl.nwjs.io" \| "https://npm.taobao.org/mirrors/nwjs" \| https://npmmirror.com/mirrors/nwjs \| "https://github.com/corwin-of-amber/nw.js/releases/"` | Download server. Supports file systems too (for example `file:///home/user/nwjs_mirror`) |
| manifestUrl | `"https://nwjs.io/versions.json" \| "https://raw.githubusercontent.com/nwutils/nw-builder/main/src/util/osx.arm.versions.json"` | Versions manifest |
| cacheDir | `string` | Directory to cache NW binaries |
| cache | `boolean` | If true the existing cache is used. Otherwise it removes and redownloads it. |
| ffmpeg | `boolean` | If true the chromium ffmpeg is replaced by community version with proprietary codecs. |
| nativeAddon | `boolean` | If true download NW.js Node headers. |
| shaSum | `boolean` | Flag to enable/disable shasum checks. |

## Contributing

### External contributor

- Use Node.js standard libraries whenever possible.
- Prefer to use syncronous APIs over modern APIs which have been introduced in later versions.

### Maintainer

- npm trusted publishing is used for releases
- a package is released when a maintainer creates a release note for a specific version
npm package: @nwutils/runner
Description: Run NW.js and related binaries for Linux, MacOS and Windows.
Author: Ayushman Chhabra
Latest version: 0.2.3

# @nwutils/runner

[![npm](https://img.shields.io/npm/v/@nwutils/runner/latest)](https://www.npmjs.com/package/@nwutils/runner/v/latest)

Run NW.js on Linux, MacOS and Windows hosts.

## Getting Started

1. Install [Volta](https://volta.sh)
1. `npm i` to install third party dependencies

## Usage

```js
import run from "@nwutils/runner";

const nwProcess = await run({
    version: "latest",
    flavor: "normal",
    platform: "linux",
    arch: "x64",
    srcDir: "./src",
    cacheDir: "./cache",
    argv: [],
});

nwProcess.kill();
```

## API Reference

Options

| Name | Type | Description |
| ---- | ---- | ----------- |
| version | `string` | Runtime version |
| flavor | `"normal" \| "sdk"` | Runtime flavor |
| platform | `"linux" \| "osx" \| "win"` | Host platform |
| arch | `"ia32" \| "x64" \| "arm64"` | Host architecture |
| cacheDir | `string` | Directory to cache NW binaries |
| argv | `string[]` | List of CLI arguments to be passed to NW.js. |

## Contributing

### External contributor

- Use Node.js standard libraries whenever possible.
- Prefer to use syncronous APIs over modern APIs which have been introduced in later versions.

### Maintainer

- npm trusted publishing is used for releases
- a package is released when a maintainer creates a release note for a specific version
npm package: @nwx/mat
Description: A simple shared material module for Angular applications
Author: Val Neekman
Latest version: 2.0.1

# @nwx/mat

**A simple material module wrapper for Angular applications**

[![status-image]][status-link]
[![version-image]][version-link]
[![coverage-image]][coverage-link]
[![download-image]][download-link]

# How to install

    npm i @nwx/mat |OR| yarn add @nwx/mat

# How to use

```typescript
// in app.component.ts
import { Component, OnInit } from '@angular/core';
import { MatService } from '@nwx/mat';

export const SvgFlagIcons = [
  {
    // country iso & aliases
    names: ['ca', 'CA'],
    // namespace to this icons (flags:ca)
    namespace: 'flags',
    // path to svg flag
    path: 'assets/svg/flags/ca.svg'
  },
  {
    names: ['us', 'US'],
    namespace: 'flags',
    path: 'assets/svg/flags/us.svg'
  }
];

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
  title = 'Neekware';
  constructor(public mat: MatService) {
    this.title = '@nwx/mat';
    console.log('AppComponent loaded ...');
  }

  ngOnInit() {
    // assuming you have your svg icons in your project asset directory
    this.mat.registerSvgIconsInNamespace('/assets/svg/mdi/mdi.svg');
    this.mat.registerSvgIconSet(SvgFlagIcons);
    this.mat.registerFontClassAlias('fontawesome', 'fa');
  }
}
```

```html
<!-- in app.component.html -->

<!-- material design modules -->
<mat-toolbar>@nwx/mat</mat-toolbar>

<h1> Welcome to {{ title }}!</h1>

<!-- icons without namespace -->
<mat-icon color="primary" svgIcon="github-face"></mat-icon>

<!-- icons with namespace -->
<mat-icon color="primary" svgIcon="flags:ca"></mat-icon>
```

# Note

This module automatically includes flex-layout module as well.
Any module that needs angular material or angular flex-layout must import MatModule

# Running the tests

To run the tests against the current environment:

    npm run ci:all

# License

Released under a ([MIT](https://github.com/neekware/nwx-mat/blob/master/LICENSE)) license.

# Version

X.Y.Z Version

    `MAJOR` version -- making incompatible API changes
    `MINOR` version -- adding functionality in a backwards-compatible manner
    `PATCH` version -- making backwards-compatible bug fixes

[status-image]: https://secure.travis-ci.org/neekware/nwx-mat.png?branch=master
[status-link]: http://travis-ci.org/neekware/nwx-mat?branch=master
[version-image]: https://img.shields.io/npm/v/@nwx/mat.svg
[version-link]: https://www.npmjs.com/package/@nwx/mat
[coverage-image]: https://coveralls.io/repos/neekware/nwx-mat/badge.svg
[coverage-link]: https://coveralls.io/r/neekware/nwx-mat
[download-image]: https://img.shields.io/npm/dm/@nwx/mat.svg
[download-link]: https://www.npmjs.com/package/@nwx/mat
npm package: @nwylynko/how-long-ago
Description: tiny dependency free package to get human readable time from timestamp
Author: Nick Wylynko
Latest version: 1.0.6

# howLongAgo
tiny dependency free package to get human readable time from timestamp

## usage

```javascript
import HowLongAgo from '@nwylynko/how-long-ago'

const timestamp = Date.now() - 2000

console.log(HowLongAgo(timestamp))

----

2 Seconds Ago
````
npm package: @nx-azure/azcopy
Description: A nodejs passthrough for `azcopy` commandline tool described at https://aka.ms/azcopy
Latest version: 0.0.13

# @nx-azure/azcopy

This is a node script warpped around the AzCopy [Azure Storage tool](https://docs.microsoft.com/en-us/azure/storage/common/storage-use-azcopy-v10).

This package enables you to run AzCopy without having to worry about which environment you're running on, because it will download the appropriate AzCopy binary for you.

## Running @nx-azure/azcopy

You can run @nx-azure/azcopy by npm installing it like this:

```bash
npm install -g @nx-azure/azcopy
# followed by
nx-azure-azcopy -h
```

Or you can npx it like:

```bash
npx @nx-azure/azcopy
```

This wrapper script passes through arguments to AzCopy, so look to [AzCopy's docs](https://docs.microsoft.com/en-us/azure/storage/common/storage-use-azcopy-v10#run-azcopy) on what arguments it takes.

## Why?

This tiny wrapper is a very useful way of executing AzCopy from a node script, without having to think about what environment you're currently on and explictly downloading the correctly binary for AzCopy. This enables AzCopy to be basicallly cross platform, without any additional overhead.
npm package: @nx-clj/nx-clj
Description: [![npm](https://img.shields.io/npm/v/@nx-clj/nx-clj?style=flat-square)](https://www.npmjs.com/package/@nx-clj/nx-clj)
Author: Caio Oliveira
Latest version: 0.1.0-alpha.5

# nx-clj

[![npm](https://img.shields.io/npm/v/@nx-clj/nx-clj?style=flat-square)](https://www.npmjs.com/package/@nx-clj/nx-clj)

Nx plugin to use [Clojure](clojure.org/) in a [Nx](https://nx.dev/) workspace.

## Getting started

First [create an Nx Workspace](https://nx.dev/getting-started). After that, cd into the workspace root and install the plugin:

```shell
npm install -D @nx-clj/nx-clj
```

Initialize the plugin:

```shell
npx nx g @nx-clj/nx-clj:init
```

This will create the necessary dependencies projects and install the plugin so it resolves the dependency graph with deps.edn data.

## Generators

### Application

Usage:

```shell
npx nx g @nx-clj/nx-clj:application my-app com.example.app
```

This will create a project named `my-app` with the main namespace being `com.example.app`.

The project is also configured with a target that outputs an uberjar. To build the project, run:

```shell
npx nx run my-app:build
```

### Library

Usage:

```shell
npx nx g @nx-clj/nx-clj:library my-lib com.example.lib
```

## The dependencies projects

The init plugin creates two libraries in your workspace, named `clj-deps` and `clj-build-deps`. They are used as a central location for defining and pinning the monorepo dependencies. This is possible because of how tools.deps resolves transitive dependencies.

This means that, if you plan on following the [integrated monorepo](https://nx.dev/tutorials/integrated-repo-tutorial) pattern, you should define all external dependencies under the `clj-deps` (and all build dependencies under the `clj-build-deps`). If you plan on running the package-based monorepo, just ignore these projects and define the dependencies directly under your project's `deps.edn`.
npm package: @nx-clj/tools-deps
Description: [![npm](https://img.shields.io/npm/v/@nx-clj/tools-deps?style=flat-square)](https://www.npmjs.com/package/@nx-clj/tools-deps)
Author: Caio Oliveira
Latest version: 0.1.0-alpha.7

# tools-deps

[![npm](https://img.shields.io/npm/v/@nx-clj/tools-deps?style=flat-square)](https://www.npmjs.com/package/@nx-clj/tools-deps)

Nx plugin to use [Clojure](clojure.org/) in a [Nx](https://nx.dev/) workspace.

## Getting started

First [create an Nx Workspace](https://nx.dev/getting-started). After that, cd into the workspace root and install the plugin:

```shell
npm install -D @nx-clj/tools-deps
```

Initialize the plugin:

```shell
npx nx g @nx-clj/tools-deps:init
```

This will create the necessary dependencies projects and install the plugin so it resolves the dependency graph with deps.edn data.

## Generators

### Application

Usage:

```shell
npx nx g @nx-clj/tools-deps:application my-app com.example.app
```

This will create a project named `my-app` with the main namespace being `com.example.app`.

The project is also configured with a target that outputs an uberjar. To build the project, run:

```shell
npx nx run my-app:build
```

### Library

Usage:

```shell
npx nx g @nx-clj/tools-deps:library my-lib com.example.lib
```

## The dependencies projects

The init plugin creates two libraries in your workspace, named `clj-deps` and `clj-build-deps`. They are used as a central location for defining and pinning the monorepo dependencies. This is possible because of how tools.deps resolves transitive dependencies.

This means that, if you plan on following the [integrated monorepo](https://nx.dev/tutorials/integrated-repo-tutorial) pattern, you should define all external dependencies under the `clj-deps` (and all build dependencies under the `clj-build-deps`). If you plan on running the package-based monorepo, just ignore these projects and define the dependencies directly under your project's `deps.edn`.
npm package: @nx-cloud/runners
Description: `@nx-cloud/runners` is a set of runners for Nx projects.
Latest version: 1.1.0

# `@nx-cloud/runners`

> **Attention is required!** This project is not an official [Nx Cloud](https://nx.app) service. This is an open-source alternative.

`@nx-cloud/runners` is a set of runners for Nx projects.

Now available 1 runner for caching build artifacts with S3 `@nx-cloud/runners/s3`

## `@nx-cloud/runners/s3`

### Configuring the S3 runner

The runner is configured in `nx.json`. Available all options of default runner configuration.

```json
{
  "tasksRunnerOptions": {
    "default": {
      "runner": "@nx-cloud/runners/s3",
      "options": {
        "cacheableOperations": [
          "build",
          "lint",
          "test",
          "e2e"
        ]
      }
    }
  }
}
```

Connection is configured using the `s3` option

```json
{
  "tasksRunnerOptions": {
    "default": {
      "runner": "@nx-cloud/runners/s3",
      "options": {
        "cacheableOperations": [
          "build",
          "lint",
          "test",
          "e2e"
        ],
        "s3": {
          "endpoint": "http://192.168.1.4:9000",
          "accessKeyId": "accessKeyId",
          "secretAccessKey": "secretAccessKey",
          "bucket": "bucket"
        }
      }
    }
  }
}
```
npm package: @nx-club/cz
Description: CZ Plugin for Nx
Author: jiayi
Latest version: 0.0.1

# cz

This library was generated with [Nx](https://nx.dev).

## Building

Run `nx build cz` to build the library.

## Running unit tests

Run `nx test cz` to execute the unit tests via [Jest](https://jestjs.io).

## Questions

### 关于 husky 创建钩子不生效问题

官方示例：

1. 安装依赖

```bash
npm install husky --save-dev
```

2. 启用 git hooks

```bash
npx husky install
# husky - Git hooks installed
```

3. 创建 hooks

```bash
npx husky add .husky/pre-commit "npm test"
# husky - created .husky/pre-commit
```

> 在 Windows 上，会出现第三步运行不成功问题，会提示以下错误：

```bash
Usage:
    husky install [dir] (default: .husky)
    husky uninstall
    husky set|add <file> [cmd]
```

`husky` 直接使用 `process.argv` 解析参数：

```js
[
  'node.exe',
  'bin.js',
  'add',
  '.husky/pre-commit',
  'npm',
  'test'
]
```

> 原因是 `Windows` 上的 `npm` 问题，解决问题使用 `yarn`。

如果你没有使用 `yarn`，那么可以用简单的方式

```bash
npx husky add .husky/pre-commit
# husky - created .husky/pre-commit
```

就会创建成功：

```sh
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

undefined
```

把 `undefined` 改成你想要的命令即可

> 注意：一行是执行一条语句，从上到下执行。
npm package: @nx-component/hierarchy-graph
Description: English | [简体中文](./README-zh_CN.md)
Author: NG-ZORRO Team
Latest version: 0.0.10

# Hierarchy Graph

English | [简体中文](./README-zh_CN.md)

## 🖥 Environment Support

* dagre `^0.8.5` [![npm package](https://img.shields.io/npm/v/dagre.svg?style=flat-square)](https://www.npmjs.com/package/dagre)

## 📦 Installation
```bash
$ npm i @nx-component/hierarchy-graph
```

## 🔨 Usage
```ts
import { buildGraph, HierarchyGraphNodeInfo } from '@nx-component/hierarchy-graph';

const data = {
    nodes: [
      { id: '0-1'},
      { id: '0-2'},
      { id: '1-1'},
      { id: '1-2'},
    ],
    edges: [
      { v: '0-1', w: '0-2' },
      { v: '0-2', w: '1-1' },
      { v: '1-1', w: '1-2' }
    ],
    compound: {
      GROUP0: ['0-1', '0-2']
    }
}
const renderInfo: HierarchyGraphNodeInfo = buildGraph(data);
```
npm package: @nx-db/cli
Description: Command line interface for NxDB
Author: Stefan Haas
Latest version: 0.3.0


# NxDB CLI

This is the CLI for NxDB, which is a local analytics database that integrates into Nx, to make the project graph queryable like SQL with extensions and utilities for graphs.

## Getting Started

First, you need to setup NxDB configurations for your monorepo. Run the following command to generate config files:

```plaintext
npx nxdb init
```

This will also automatically build the database.

## Commands

### Build

The database will not auto-update data and becomes stale. Therefore, whenever you want to make queries and have made changes, you should first run a build, which will replace the stale database with the current representation.

```plaintext
npx nxdb build
```

### Interactive

If you want to quickly run some queries, you can use the interactive mode, which lets you write queries right in the terminal.

Run the following command:
```plaintext
npx nxdb
```

### Query

You can also save your queries to `.nxql` files and execute queries from files. In order to do this, run the following:

```plaintext
npx nxdb query <filePath>
```

## Adding Custom Fields to Projects 

You can add custom fields to each project, like `numberOfCommitsInLastMonth`, or `linesOfCode`, by modifying the NxDB Schema in `.nxdb.schema.json` to include the custom fields where each has a type, description and default.
> Note, that the only prohibited values are primitives including string, number, boolean, string[], number[], boolean[]

Then, you can modify either the root `.nxdb.config.base.mjs` file or the project level `.nxdb.config.mjs` file to return the new custom field in the default exported function, which is invoked by the DB build `npx nxdb build` for each project to dynamically add these custom fields. You can later query against those fields as they become part of the `projects` table.

You can take a look at the [NxDB GitHub Repo](https://github.com/HaasStefan/nxdb) to see this in action.
npm package: @nx-db/db
Description: NxDB - a database for NxQL
Author: Stefan Haas
Latest version: 0.3.0

# db

This library was generated with [Nx](https://nx.dev).

## Building

Run `nx build db` to build the library.

## Running unit tests

Run `nx test db` to execute the unit tests via [Jest](https://jestjs.io).
npm package: @nx-db/parser
Description: NxQL parser for NxDB
Author: Stefan Haas
Latest version: 0.3.0

# NxQL

<p align="center">
  <img src="https://github.com/user-attachments/assets/a75f0e63-5dc6-4c63-8ba9-b1d70854b311" alt="logo" width="250" height="250" />
</p>

## Peggy

For creating the parser, I am using peggy, which is a grammar for parser, which is parsed and peggy created an imperative parser in JS. 

Here is an online playground to play with the grammar: https://peggyjs.org/online.html

## Todo

MVP Support:
1. Multi Field Selection (`SELECT name, root, type FROM projects`)
2. Comments (`-- this is a comment`)
3. No Condition (`SELECT * FROM projects`)
4. InExpression (`SELECT * FROM projects WHERE 'type:library' IN tags`)
5. AND
6. OR

V1:
1. LET statements
2. graph utility functions (`shortestPath(from, to), len(), ...`)
3. AND (NOT) EXISTS
4. OR (NOT) EXISTS
5. SELECT 1 FROM unnest(paths) AS path