open-index/open-npm huggingface dataset:
npm package: @gatolim/tessera-cli
Description: Tessera CLI & MCP Server - State management harness for autonomous AI development
Author: Tessera Team
Latest version: 0.1.6

# @tessera/cli

Tessera CLI - State management harness for autonomous AI development.

## Installation

```bash
npm install -g @tessera/cli
```

## Quick Start

```bash
# Initialize in your project
tessera init

# Check status
tessera status
```

## Documentation

Full documentation: https://github.com/gatolim/tessera

## License

MIT
npm package: @gatomis/tacos
Description: vxios的ts版本 支持自定义传入
Author: https://github.com/GAtomis
Latest version: 0.0.1-beta.8

# tacos
vxios的ts版本 支持自定义传入

## 修改日志
* 去除了./core/processResult 改变了实例原型的用法 0.0.1-beta8
npm package: @gatorsecurity/mcp-gateway
Description: MCP Gateway - stdio proxy for Claude Code with policy enforcement and telemetry
Author: Gator Security
Latest version: 0.3.0

# @gatorsecurity/mcp-gateway

MCP Gateway - stdio MCP proxy with telemetry and policy enforcement.

## Overview

G8R MCP Gateway sits between your client (Claude Code, VSCode Copilot, etc.) and your MCP servers, providing:
- **Policy enforcement**: Block tools, filter arguments, restrict domains
- **Telemetry**: Log all tool calls to G8R platform for audit
- **Observability**: See what AI agents are doing in real-time

## Installation

```bash
npm install -g @gatorsecurity/mcp-gateway
```

Or use via npx:
```bash
npx @gatorsecurity/mcp-gateway --config ./mcp-config.json
```

## Usage with VSCode / Claude Code

* In VSCode: `MCP: Add Server...`: choose stdio, then enter the command:
  ```
  npx @g8r/mcp-gateway ...
  ```

* For Claude Code, add the server configuration in `.claude/mcp_servers.json`:

  ```json
  {
    "mcpServers": {
      "g8r": {
        "type": "stdio",
        "command": "npx",
        "args": ["@gatorsecurity/mcp-gateway", "--upstream", "npx", "--upstream-args", "@modelcontextprotocol/server-filesystem,/path/to/allowed"]
    }
  }
  ```

## Configuration

The gateway requires authentication. First login with the G8R CLI:

```bash
npx @gatorsecurity/cli login
```

Then configure your upstream MCP servers in `~/.g8r/mcp.json`:

```json
{
  "servers": {
    "filesystem": {
      "command": "npx",
      "args": ["@modelcontextprotocol/server-filesystem", "/allowed/path"]
    }
  }
}
```

## Environment Variables

- `G8R_API_URL` - Platform API URL (default: https://api.g8r.dev)
- `G8R_DEBUG` - Enable debug logging

## Related Packages

- [@gatorsecurity/cli](https://www.npmjs.com/package/@gatorsecurity/cli) - G8R CLI for authentication and server management

## License

MIT
npm package: @gatsby-cloud-pkg/merlin-synchronizer
Description: Synchronizes a gatsby site's data layer with a remote source hosted on GCP
Author: Katherine Beck
Latest version: 0.5.2

# Merlin Synchronizer

The `synchronizer` is responsible for pulling data from a Merlin ledger in GCS via the Gatsby Cloud Ledger API. It can sync all data in a ledger or just the data since the last time it synchronized.

It synchronizes Merlin ledger redux actions for a specific Gatsby Cloud site ID and a specific Gatsby site path local to the process calling `synchronize`. It handles its own caching via a provided cache function with `get` and `set` methods. It returns a promise that's resolved when all actions are synced or its determined that the synchronizer can be invoked in any follower when they need to sync data from Cloud.

## Usage

```js
import { synchronize } from "@gatsby-cloud-pkg/merlin-synchronizer"

const { ledgerExists } = await synchronize({
  siteId, // should be a site ID for a Gatsby Cloud site
  gatsbySitePath, // should be an absolute path to a Gatsby site on disk
  cache, // needs cache.get and cache.set methods
  // sourcingConfigurationId, <-- this is optional. a sourcingConfigurationId will be computed from the Gatsby site at the gatsbySitePath. But you can pass this directly too
  handleAction: (action) => {
    // do stuff with this action
    // it's a Gatsby core redux action which was emitted in Merlin and stored in GCS
  },
})
```

```js
import { computeSourcingConfigurationId } from "@gatsby-cloud-pkg/merlin-synchronizer"

// ...
const sourcingConfigurationId = await computeSourcingConfigurationId(
  pathToGatsbySite
)
```

## Development

You must have previously written a ledger to disk. You can do this by running `yarn:start:local` in `services/cloud-sourcerer` in the [`mansion` repo](https://github.com/gatsby-inc/mansion). You may need to set environment variables for the site you are using to generate the ledger.

1. Run `dev-monolith` with `yarn:start:local` in `services/dev-monolith`
2. Create an `env` file with the `SITE_ID` you used to generate the ledger and the correct port for the API, e.g. `GATSBY_CLOUD_DATALAYER=http://localhost:8201/get-ledger-entries` if not using `8083`
3. Run `yarn run:local` in the `merlin-synchronizer` directory.
npm package: @gatsby-contrib/gatsby-remark-link-youtube
Description: Add a link with a thumbnail to Youtube Videos in Gatsby via Markdown
Author: Benjamin Abel
Latest version: 0.1.7

# @gatsby-contrib/gatsby-remark-link-youtube

Instead of embedding a Youtube Video in your Markdown as with
[gatsby-remark-embed-youtube](https://github.com/ntwcklng/gatsby-remark-embed-youtube), it add a
thumbnail with a link to the video. Like this your users aren't polluted with google cookies,
particulary for european users.

## Install

1.  Install plugin to your site:

```bash
yarn add @gatsby-contrib/gatsby-remark-link-youtube
```

2.  Add following to your `gatsby-config.js`:

```js
    plugins: [
      {
        resolve: "gatsby-transformer-remark",
        options: {
          plugins: [
            {
              resolve: `@gatsby-contrib/gatsby-remark-link-youtube`,
              options: {
                width: 768,
                className: `center`,
                title: `Cliquer pour voir la vidéo sur youtube.com`,
              },
            },
          }
          ]
        }
      },
```

3.  Restart gastby.

## Usage

```markdown
# Look at this Video:

`youtube: w7y-1eY0mcE`
```

Will render in your `html` as:

```html
<a href="https://www.youtube.com/watch?v=w7y-1eY0mcE" title="Cliquer pour voir la vidéo sur youtube.com"><img src="https://img.youtube.com/vi/w7y-1eY0mcE/0.jpg" alt="Thumbnail of Youtube video w7y-1eY0mcE" title="Cliquer pour voir la vidéo sur youtube.com" class="center" width="768"></a>
```

## License

MIT
npm package: @gatsby-contrib/gatsby-transformer-ipynb
Description: Search for gatsby; implemented via elasticlunr.
Author: Benjamin Abel
Latest version: 0.5.8

# gatsby-transformer-ipynb

Parses [jupyter](https://jupyter.org/) notebook files.

<!-- See it in action: <https://gatsby-contrib.github.io/gatsby-transformer-ipynb/> -->

## Install

`npm install --save @gatsby-contrib/gatsby-transformer-ipynb`

## How to use

```javascript
// In your gatsby-config.js
plugins: [`@gatsby-contrib/gatsby-transformer-ipynb`];
```

## Parsing algorithm

It recognizes files with the `ipynb` extension.

Each notebook file is parsed into a node of type `JupyterNotebook`.

This plugin adds additional fields to the `JupyterNotebook` GraphQL type
including:

-   `html`: html string created using the react component `NotebookRender` from [`@gatsby-contrib/notebook-render`](https://github.com/nteract/nteract/tree/master/packages/notebook-render).
-   `metadata`: jupyter notebooks can embed metadata to indicate authors, titles...
-   `json`: the json notebook code converted into a javascript object with `JSON.parse`.
-   `internal.content`: contains the raw notebook code, it can be used to feed the react component `NotebookPreview` from [`@gatsby-contrib/notebook-preview`](https://github.com/nteract/nteract/tree/master/packages/notebook-preview).

## How to query

A sample GraphQL query to get JupyterNotebook nodes:

```graphql
{
  query
  JupyterQuery {
    allJupyterNotebook {
      edges {
        node {
          id
          metadata {
            kernelspec {
              name
              language
              display_name
            }
          }
          html
          json {
            nbformat
            nbformat_minor
            cells {
              cell_type
              execution_count
            }
          }
          internal {
            content
          }
        }
      }
    }
  }
}
```
npm package: @gatsby-sales/gatsby-theme-northeastern
Description: A stepping-off point for Northeastern University
Author: Chris LaRocque
Latest version: 1.0.0

## Description

A stepping-off point for Northeastern University

### Dependencies (optional)

Are there any plugins that must be installed in order to make this plugin work? If so, please include a list of those plugins and links to their pages here.

### Learning Resources (optional)

If there are other tutorials, docs, and learning resources that are necessary or helpful to someone using this plugin, please link to those here.

## How to install

`npm install @gatsby-sales/gatsby-theme-northeastern`

## How to develop locally

From the root of the repo (`northeastern-theme`) run `yarn && yarn workspace example develop`

When ready to publish `cd gatsby-theme-northeastern && npm publish`

## How to contribute

If you have unanswered questions, would like help with enhancing or debugging the plugin, it is nice to include instructions for people who want to contribute to your plugin.
npm package: @gatsby-sales/gatsby-theme-sales
Description: <!-- # The smallest possible Gatsby theme
Author: chrislarocque
Latest version: 1.0.0

# SEE PROJECT README

<!--
# The smallest possible Gatsby theme

## Quick Start

```shell
mkdir my-site
cd my-site
yarn init
# install gatsby-theme-minimal and it's dependencies
yarn add gatsby react react-dom gatsby-theme-minimal
```

Then add the theme to your `gatsby-config.js`. We'll use the long-form
here for educational purposes.

```javascript
module.exports = {
  plugins: [
    {
      resolve: "gatsby-theme-minimal",
      options: {},
    },
  ],
}
```

That's it, you can now run your gatsby site using

```shell
yarn gatsby develop
```

Note that this site doesn't _do_ anything, so you're seeing a missing
resources error. Create a simple page in `src/pages/index.js` to see a
page on the root url.

```jsx
import React from "react"

export default function Home() {
  return <div>My Site!</div>
}
```

## Doing more with themes

You can use this as a place to start when developing themes. I
generally suggest using [yarn
workspaces](https://yarnpkg.com/lang/en/docs/workspaces/) like the
[gatsby-theme-examples repo
does](https://github.com/ChristopherBiscardi/gatsby-theme-examples),
but using `yarn link` or `npm link` is a viable alternative if you're
not familiar with workspaces. -->
npm package: @gatsby-themes/core
Description: A simple starter to get up and developing quickly with Gatsby
Author: Tarun Kumar Sukhu
Latest version: 1.0.2

# Gatsby Core Theme

The core theme sets up the base configuration.

- The idea is to have the SEO, image processing, file source setup , PWA, core branding of the product in one place and versioned
- Sites can simply use the not worry about setting this piece properly and any changes to the core configuration can be done via the theme.
- All organization specific core plugins , icons can be configured here.

## How to use

- Add the dependency `@gatsby-themes/core`
- The core theme will warn of the peer dependencies which also must be added to the gatsby site leveraging this theme.
- The dependencies include
	- "gatsby": "^2.13.21",
  - "gatsby-image": "^2.2.6",
  - "gatsby-plugin-manifest": "^2.2.0",
  - "gatsby-plugin-offline": "^2.2.0",
  - "gatsby-plugin-react-helmet": "^3.1.0",
  - "gatsby-plugin-sharp": "^2.2.1",
  - "gatsby-source-filesystem": "^2.1.0",
  - "gatsby-transformer-sharp": "^2.2.0",

```bash
yarn add `@gatsby-themes/core`
```

- Configure the theme in the `gatsby-config.js` file.

```javascript
const config = require('./data/siteConfig.js')

module.exports = {
	plugins: [
		{
			resolve: '@gatsby-themes/core',
			options: {
				siteMetadata: {
					title: config.siteTitle,
					description: config.siteDescription,
				},
				pathPrefix: config.pathPrefix,
			},
		},
	],
}
```

- Add the site configuration file in the project `data/siteConfig.js`

```javascript
module.exports = {
	siteTitle: '<replace with title>',
	siteDescription: '<replace with description>',
	author: '<replace with author name>',
	pathPrefix: '/',
}
```
npm package: @gatsby-themes/drupal
Description: Drupal Theme for Gatsby
Author: Tarun Kumar Sukhu
Latest version: 1.0.5

# Gatsby Drupal Theme

The drupal theme sets up the configuration for drupal

- This is also based on the Gatsby DEMO Drupal CMS site for recipes
- It takes care of not only the drupal gatsby plugin configuration but also sets up all the queries that are needed for the building the recipe app.
- Currently there are two template page queries available
	1) [Landing Page Query](https://github.com/ERS-HCL/gatsby-atomic-themes/blob/master/packages/drupal-theme/src/templates/index.js) - List of all the recipes
	2) [Recipe Template Page Query](https://github.com/ERS-HCL/gatsby-atomic-themes/blob/master/packages/drupal-theme/src/templates/recipe.js) - Specific Recipe details based on the id
- As part of this we also have proptype definitions that can be imported into the template that wants to use the query. In the above mentioned GraphQL queries the prop type definition files
	1) [Landing Page Query PropTypes](https://github.com/ERS-HCL/gatsby-atomic-themes/blob/master/packages/drupal-theme/src/metadata/all-recipes.js)
	2) [Recipe Template Page Query PropTypes](https://github.com/ERS-HCL/gatsby-atomic-themes/blob/master/packages/drupal-theme/src/metadata/recipe.js)
	You can then use the proptypes directly in the template implementation by importing them

	```javascript
	import { AllRecipesPropTypes } from '@gatsby-themes/drupal';
	IndexPage.propTypes = {
		data: AllRecipesPropTypes, // Query prop types
		theme: PropTypes.object.isRequired
	};
	```

## How to use

- Add the dependency `@gatsby-themes/drupal`
- The drupal theme will warn of the peer dependencies which also must be added to the gatsby site leveraging this theme.
- The depenendies include
	- "gatsby": "^2.13.21",
	- "gatsby-source-drupal": "^3.1.11"


```bash
yarn add `@gatsby-themes/drupal`
````

- Configure the theme in the `gatsby-config.js` file.

```javascript
const drupalConfig = require('./data/drupalConfig.js');

module.exports = {
	plugins: [
		{
			resolve: '@gatsby-themes/drupal',
			options: {
				...drupalConfig
			}
		}
	]
};
```

- Add the site configuration file in the project `data/drupalConfig.js`

```javascript
module.exports = {
	baseUrl: '<add drupal json api server url>',
	apiBase: '<api or json>'
};
```

- Create implement the two template pages as shadow components (Index , Recipe as mentioned above).
	- The data queries (GraphQL queries) will be provided by theme
	- Only implement the Page rendering logic in the application (The data object from the shadows templates will be avaiable to use)
		- See the example templates in the [drupal-app](https://github.com/ERS-HCL/gatsby-atomic-themes/tree/master/packages/drupal-app) for more details.
npm package: @gatsby-themes/emotion
Description: Emotion theme
Author: Tarun Kumar Sukhu
Latest version: 1.0.7

# Gatsby Emotion Theme

The emotion theme sets up the configuration based on the best practices recommended by the [Gatsby team](https://www.gatsbyjs.org/docs/emotion/)

- This takes care of all the setup and configuration requirements for theming, layouts and setup.
- This uses `theme-ui` as the theming style system
- This also is a core / component UI library of EmotionJS components. As an example a sample UI component has been added called `About`
- To access the About component

```javascript
import {About} from @gatsby-themes/emotion;
```

## How to use

- Add the dependency `@gatsby-themes/emotion`
- The emotion theme will warn of the peer dependencies which also must be added to the gatsby site leveraging this theme.
- The dependencies include
	- "@emotion/core": "^10.0.14",
	- "@emotion/styled": "^10.0.14",
	- "@mdx-js/react": "^1.0.27",
	- "@theme-ui/presets": "^0.2.10",
	- "emotion-theming": "^10.0.14",
	- "gatsby-plugin-emotion": "^4.0.7",
	- "theme-ui": "^0.2.14"

```bash
yarn add `@gatsby-themes/emotion`
```

- Configure the theme in the `gatsby-config.js` file.

```javascript
module.exports = {
	plugins: [
		{
			resolve: '@gatsby-themes/emotion',
			options: {
				fullMode: true
			}
		}
	]
};
```
npm package: @gatsby-themes/emotion-recipe-theme
Description: Emotion theme
Author: Tarun Kumar Sukhu
Latest version: 1.0.4

# Gatsby Recipe Emotion Theme

The receipe theme is theme that extends the `@gatsby-themes/emotion` theme and provides a UI component library for building recipe pages.
The components are based on the atomic design priciples and can be used to build applications which require the recipe theme.

## How to use

- Add the dependency `@gatsby-themes/emotion-recipe-theme`
- The theme installation will warn of the peer dependencies which also must be added to the gatsby site leveraging this theme.
- The dependencies include
	- "@emotion/core": "^10.0.14",
	- "@emotion/styled": "^10.0.14",
	- "@theme-ui/presets": "^0.2.10",
	- "emotion-theming": "^10.0.14",
	- "@mdx-js/react": "^1.0.27",
	- "@gatsby-themes/emotion": "latest"

```bash
yarn add `@gatsby-themes/emotion-recipe-theme`
```

```javascript
module.exports = {
	plugins: [
		{
			resolve: '@gatsby-themes/emotion-recipe-theme'
		}
	]
};
```
npm package: @gatsby-themes/mui
Description: Material UI Theme
Author: Tarun Kumar Sukhu
Latest version: 1.0.7

# Gatsby Material-UI Theme

The mui theme sets up the configuration based on the best practices recommended by the material-ui team.

- This takes care of all the setup and configuration requirements for theming, layouts, material-ui setup for SSR and client side rendering.
- An HOC sets up the material-ui theming both for SSR and Browser modes, so the user just needs to configure the material-ui theme configuration to customize it to the websites requirements.

## How to use

- Add the dependency `@gatsby-themes/mui`
- The mui theme will warn of the peer dependencies which also must be added to the gatsby site leveraging this theme.
- The dependencies include
	- "@material-ui/core": "^4.2.0",
	- "@material-ui/styles": "^4.2.0",
	- "gatsby-plugin-material-ui": "^2.1.4",


```bash
yarn add `@gatsby-themes/mui`
```

- Configure the theme in the `gatsby-config.js` file.

```javascript
module.exports = {
	plugins: [
		{
			resolve: '@gatsby-themes/mui',
		},
	],
}
```

- Customize / Setup your Material-UI theme

      	- Create a file under the src directory called `@gatsby-themes\mui\custom-theme.js`
      	- See an example material-ui theme customization [in the demo-app workspace](https://github.com/ERS-HCL/gatsby-atomic-themes/blob/master/packages/demo-app/src/%40gatsby-themes/mui/custom-theme.js)
npm package: @gatsby-themes/okta
Description: Okta Integration for Gatsby
Author: Tarun Kumar Sukhu
Latest version: 1.0.2

# Gatsby Okta Theme

The okta theme sets up the okta integration.

## How to use

- Add the dependency `@gatsby-themes/okta`
- Setup Okta for Web SSO and configure the application and users
	- Grant Types : Implicit (Access Token, ID implicit)
	- Login Redirect URI: localhost:8000/
- Configure the environment with the following:
	- OTKA_BASE_URL: Okta Base URL 
	- OTKA_LOGO: Okta company logo 
	- OTKA_CLIENT_ID: Okta Client ID

- The core theme will warn of the peer dependencies which also must be added to the gatsby site leveraging this theme.
- The dependencies include: 
	- "gatsby": "^2.13.21" 
	- "@okta/okta-signin-widget": "^3.0.6"
	- "dotenv": "^8.0.0"

```bash
yarn add `@gatsby-themes/okta`
```

- Configure the theme in the `gatsby-config.js` file.

```javascript
module.exports = {
	plugins: [
		{
			resolve: '@gatsby-themes/okta',
		},
	],
}
```

- This theme uses Context APIs to provide the state of the user authentication
- The steps to use the Context API via the `AuthContext` object - The ideal place to use this in a HOC component like Layout which is wrappers all the pages.
- In the render method setup the `AuthContext` consumer
- The `user` will be set to the `email.id` of the logged in user , otherwise it will be `false`
  `validateUser()`. Call this if the current page requires authentication, so that the session is validated

```javascript
import { AuthContext } from '@gatsby-themes/okta';
...
return (
	<AuthContext.Consumer>
		{({ user, validateUser }) => {
			// call if the current page requires authentication
			if (requiresAuth) {
				validateUser();
			}
			...
			// Define the div where the okta widget can be displayed
			// modify the styles to either show or hide the widget
			<div
				id="okta"
					style={oktaIDStyles(requiresAuth && user === false)}
					/>
		}
```

- In the header component we can then display the logged in user and the option to log out
- Use the logoutUser() context method to log out the user
- The user will be set to the email.id of the logged in user , otherwise it will be false

```javascript
	<AuthContext.Consumer>
			{({ user, logoutUser }) => {
				....
				{
					user &&
				(
					...
					<MenuItem onClick={() => logoutUser()}>Log out</MenuItem>)
			}
			}}
```

[okta-app with sample code](https://github.com/ERS-HCL/gatsby-atomic-themes/blob/master/packages/okta-app)

- The demo is available [here](https://okta-theme.netlify.com/)
npm package: @gatsby-themes/tailwind
Description: Tailwind Theme for GatsbyJS
Author: Tarun Kumar Sukhu
Latest version: 1.0.0

# Gatsby Tailwind Theme

The tailwind theme sets up the configuration based on the best practices recommended by the [Gatsby team](https://www.gatsbyjs.org/docs/tailwind-css/)


```javascript
import {Card} from @gatsby-themes/tailwind;
```

## How to use

- Add the dependency `@gatsby-themes/tailwind`
- The emotion theme will warn of the peer dependencies which also must be added to the gatsby site leveraging this theme.

```bash
yarn add `@gatsby-themes/tailwind`
```

- Configure the theme in the `gatsby-config.js` file.

```javascript
module.exports = {
	plugins: [
		{
			resolve: '@gatsby-themes/tailwind',
		}
	]
};
```
npm package: @gatsby_theme/gatsby-theme-minimal
Description: ## Quick Start
Latest version: 1.0.3

# The smallest possible Gatsby theme

## Quick Start

```shell
mkdir my-site
cd my-site
yarn init
# install gatsby-theme-minimal and it's dependencies
yarn add gatsby react react-dom gatsby-theme-minimal
```

Then add the theme to your `gatsby-config.js`. We'll use the long form
here for education purposes.

```javascript
module.exports = {
  plugins: [
    {
      resolve: "gatsby-theme-minimal",
      options: {},
    },
  ],
}
```

That's it, you can now run your gatsby site using

```shell
yarn gatsby develop
```

Note that this site doesn't _do_ anything, so you're see a missing
resources error. Create a simple page in `src/pages/index.js` to see a
page on the root url.

```jsx
import React from "react"

export default () => <div>My Site!</div>
```

## Doing more with themes

You can use this as a place to start when developing themes. I
generally suggest using [yarn
workspaces](https://yarnpkg.com/lang/en/docs/workspaces/) like the
[gatsby-theme-examples repo
does](https://github.com/ChristopherBiscardi/gatsby-theme-examples),
but using `yarn link` or `npm link` is a viable alternative if you're
not familiar with workspaces.
npm package: @gatsbydoc/cli
Description: gatsbydoc cli
Author: Jam Risser
Latest version: 0.0.9

# @gatsbydoc/cli

[![GitHub stars](https://img.shields.io/github/stars/codejamninja/gatsbydoc.svg?style=social&label=Stars)](https://github.com/codejamninja/gatsbydoc/packages/cli)

> gatsbydoc cli

Please ★ this repo if you found it useful ★ ★ ★

## Features

- supports sphinx plugins

## Installation

```sh
npm install -g @gatsbydoc/cli
```

## Dependencies

- [NodeJS](https://nodejs.org)

## Usage

[Contribute](https://github.com/codejamninja/gatsbydoc/blob/master/CONTRIBUTING.md) usage docs

## Support

Submit an [issue](https://github.com/codejamninja/gatsbydoc/issues/new)

## Screenshots

[Contribute](https://github.com/codejamninja/gatsbydoc/blob/master/CONTRIBUTING.md) a screenshot

## Contributing

Review the [guidelines for contributing](https://github.com/codejamninja/gatsbydoc/blob/master/CONTRIBUTING.md)

## License

[MIT License](https://github.com/codejamninja/gatsbydoc/blob/master/packages/cli/LICENSE)

[Jam Risser](https://codejam.ninja) © 2019

## Changelog

Review the [changelog](https://github.com/codejamninja/gatsbydoc/blob/master/CHANGELOG.md)

## Credits

- [Jam Risser](https://codejam.ninja) - Author

## Support on Liberapay

A ridiculous amount of coffee ☕ ☕ ☕ was consumed in the process of building this project.

[Add some fuel](https://liberapay.com/codejamninja/donate) if you'd like to keep me going!

[![Liberapay receiving](https://img.shields.io/liberapay/receives/codejamninja.svg?style=flat-square)](https://liberapay.com/codejamninja/donate)
[![Liberapay patrons](https://img.shields.io/liberapay/patrons/codejamninja.svg?style=flat-square)](https://liberapay.com/codejamninja/donate)
npm package: @gatsbydoc/core
Description: gatsbydoc core
Author: Jam Risser
Latest version: 0.0.9

# @gatsbydoc/core

[![GitHub stars](https://img.shields.io/github/stars/codejamninja/gatsbydoc.svg?style=social&label=Stars)](https://github.com/codejamninja/gatsbydoc/packages/core)

> gatsbydoc core

Please ★ this repo if you found it useful ★ ★ ★

## Features

- supports sphinx plugins

## Installation

```sh
npm install -g @gatsbydoc/core
```

## Dependencies

- [NodeJS](https://nodejs.org)

## Usage

[Contribute](https://github.com/codejamninja/gatsbydoc/blob/master/CONTRIBUTING.md) usage docs

## Support

Submit an [issue](https://github.com/codejamninja/gatsbydoc/issues/new)

## Screenshots

[Contribute](https://github.com/codejamninja/gatsbydoc/blob/master/CONTRIBUTING.md) a screenshot

## Contributing

Review the [guidelines for contributing](https://github.com/codejamninja/gatsbydoc/blob/master/CONTRIBUTING.md)

## License

[MIT License](https://github.com/codejamninja/gatsbydoc/blob/master/packages/core/LICENSE)

[Jam Risser](https://codejam.ninja) © 2019

## Changelog

Review the [changelog](https://github.com/codejamninja/gatsbydoc/blob/master/CHANGELOG.md)

## Credits

- [Jam Risser](https://codejam.ninja) - Author

## Support on Liberapay

A ridiculous amount of coffee ☕ ☕ ☕ was consumed in the process of building this project.

[Add some fuel](https://liberapay.com/codejamninja/donate) if you'd like to keep me going!

[![Liberapay receiving](https://img.shields.io/liberapay/receives/codejamninja.svg?style=flat-square)](https://liberapay.com/codejamninja/donate)
[![Liberapay patrons](https://img.shields.io/liberapay/patrons/codejamninja.svg?style=flat-square)](https://liberapay.com/codejamninja/donate)
npm package: @gatsbydoc/sphinx
Description: gatsbydoc sphinx
Author: Jam Risser
Latest version: 0.0.9

# @gatsbydoc/sphinx

[![GitHub stars](https://img.shields.io/github/stars/codejamninja/gatsbydoc.svg?style=social&label=Stars)](https://github.com/codejamninja/gatsbydoc/packages/sphinx)

> gatsbydoc sphinx

Please ★ this repo if you found it useful ★ ★ ★

## Features

- supports sphinx plugins

## Installation

```sh
npm install -g @gatsbydoc/sphinx
```

## Dependencies

- [NodeJS](https://nodejs.org)

## Usage

[Contribute](https://github.com/codejamninja/gatsbydoc/blob/master/CONTRIBUTING.md) usage docs

## Support

Submit an [issue](https://github.com/codejamninja/gatsbydoc/issues/new)

## Screenshots

[Contribute](https://github.com/codejamninja/gatsbydoc/blob/master/CONTRIBUTING.md) a screenshot

## Contributing

Review the [guidelines for contributing](https://github.com/codejamninja/gatsbydoc/blob/master/CONTRIBUTING.md)

## License

[MIT License](https://github.com/codejamninja/gatsbydoc/blob/master/packages/sphinx/LICENSE)

[Jam Risser](https://codejam.ninja) © 2019

## Changelog

Review the [changelog](https://github.com/codejamninja/gatsbydoc/blob/master/CHANGELOG.md)

## Credits

- [Jam Risser](https://codejam.ninja) - Author

## Support on Liberapay

A ridiculous amount of coffee ☕ ☕ ☕ was consumed in the process of building this project.

[Add some fuel](https://liberapay.com/codejamninja/donate) if you'd like to keep me going!

[![Liberapay receiving](https://img.shields.io/liberapay/receives/codejamninja.svg?style=flat-square)](https://liberapay.com/codejamninja/donate)
[![Liberapay patrons](https://img.shields.io/liberapay/patrons/codejamninja.svg?style=flat-square)](https://liberapay.com/codejamninja/donate)
npm package: @gatsbydoc/typescript
Description: gatsby typescript preset
Author: Jam Risser
Latest version: 0.0.9

# @gatsbydoc/typescript

[![GitHub stars](https://img.shields.io/github/stars/codejamninja/gatsbydoc.svg?style=social&label=Stars)](https://github.com/codejamninja/gatsbydoc/packages/typescript)

> gatsby typescript preset

Please ★ this repo if you found it useful ★ ★ ★

## Features

- supports sphinx plugins
- supports typescript

## Installation

```sh
npm install -g @gatsbydoc/typescript
```

## Dependencies

- [NodeJS](https://nodejs.org)

## Usage

[Contribute](https://github.com/codejamninja/gatsbydoc/blob/master/CONTRIBUTING.md) usage docs

## Support

Submit an [issue](https://github.com/codejamninja/gatsbydoc/issues/new)

## Screenshots

[Contribute](https://github.com/codejamninja/gatsbydoc/blob/master/CONTRIBUTING.md) a screenshot

## Contributing

Review the [guidelines for contributing](https://github.com/codejamninja/gatsbydoc/blob/master/CONTRIBUTING.md)

## License

[MIT License](https://github.com/codejamninja/gatsbydoc/blob/master/packages/typescript/LICENSE)

[Jam Risser](https://codejam.ninja) © 2019

## Changelog

Review the [changelog](https://github.com/codejamninja/gatsbydoc/blob/master/CHANGELOG.md)

## Credits

- [Jam Risser](https://codejam.ninja) - Author

## Support on Liberapay

A ridiculous amount of coffee ☕ ☕ ☕ was consumed in the process of building this project.

[Add some fuel](https://liberapay.com/codejamninja/donate) if you'd like to keep me going!

[![Liberapay receiving](https://img.shields.io/liberapay/receives/codejamninja.svg?style=flat-square)](https://liberapay.com/codejamninja/donate)
[![Liberapay patrons](https://img.shields.io/liberapay/patrons/codejamninja.svg?style=flat-square)](https://liberapay.com/codejamninja/donate)
npm package: @gatsbyjs/devcert
Description: Generate trusted local SSL/TLS certificates for local SSL development
Author: Dave Wasmer
Latest version: 1.2.3

# @gatsbyjs/devcert

This is a **fork** made by [Gatsby](https://www.gatsbyjs.com) to make changes to [`devcert`](https://www.npmjs.com/package/devcert):

- Move `@types/*` dependencies to `devDependencies`

<p>
  <a href="https://www.npmjs.com/package/@gatsbyjs/devcert"><img src="https://img.shields.io/npm/v/@gatsbyjs/devcert.svg?style=flat-square" /></a>
  <a href="https://www.npmjs.com/package/@gatsbyjs/devcert"><img src="https://img.shields.io/npm/dm/@gatsbyjs/devcert.svg?style=flat-square" /></a>
</p>
npm package: @gatsbyjs/parcel-namer-relative-to-cwd
Description: Parcel namer that preserves directory structures to stabilize output and keep the hierarchy.
Author: Michal Piechowiak
Latest version: 2.16.0

# `@gatsbyjs/parcel-namer-relative-to-cwd`

This [namer plugin](https://parceljs.org/plugin-system/namer/) is used by [Gatsby](https://www.gatsbyjs.com/) internally. You can reuse it inside your app if you want.

If you're just using Gatsby, you don't need to care about this package/plugin.

## Usage

```shell
npm install --save-dev @gatsbyjs/parcel-namer-relative-to-cwd
```

And inside your `.parcelrc`:

```
{
  "extends": "@parcel/config-default",
  "namers": ["@gatsbyjs/parcel-namer-relative-to-cwd", "..."]
}
```

## Why & How

By default, Parcel is trying to find common/shared directories between entries and output paths that are impacted by it. See [this issue comment](https://github.com/parcel-bundler/parcel/issues/5476#issuecomment-769058504) for more information.

With these inputs files:

```
a.html
sub/b.html
```

You get:

- `parcel build a.html` => `dist/a.html`
- `parcel build sub/b.html` => `dist/b.html`
- `parcel build a.html sub/b.html` => `dist/a.html`, `dist/sub/b.html`

You can see that `sub/b.html` entry might result in either `dist/b.html` or `dist/sub/b.html` (depending wether `a.html` is entry or not). This makes builds not deterministic, which is very problematic where entries are "optional".

This namer plugin stabilizes the output, so inside `distDir` the hierarchy is the same as entry file in relation to current working directory (CWD):

- `parcel build a.html` => `dist/a.html`
- `parcel build sub/b.html` => `dist/sub/b.html`
- `parcel build a.html sub/b.html` => `dist/a.html`, `dist/sub/b.html`
npm package: @gatsbyjs/reach-router
Description: Gatsby's fork to modernize reach-router
Author: Ryan Florence
Latest version: 2.0.1

# @gatsbyjs/reach-router

This is a **fork** made by [Gatsby](https://www.gatsbyjs.com) to make changes to [`reach-router`](https://reach.tech/router/) like:

- Support for React 18 **only**
- Support for React Server Components
- Publish as CJS and ESM

Use this fork **at your own risk** as we'll make changes to it that will benefit Gatsby. We won't accept feature requests, please fork this repository if you need other things. We'll still try to keep versioning semver-compatible though.

<p>
  <a href="https://www.npmjs.com/package/@gatsbyjs/reach-router"><img src="https://img.shields.io/npm/v/@gatsbyjs/reach-router.svg?style=flat-square" /></a>
  <a href="https://www.npmjs.com/package/@gatsbyjs/reach-router"><img src="https://img.shields.io/npm/dm/@gatsbyjs/reach-router.svg?style=flat-square" /></a>
</p>
npm package: @gatsbyjs/relay-compiler
Description: A compiler tool for building GraphQL-driven applications.
Latest version: 2.0.0-printer-fix.4

# Relay Compiler

Relay-Compiler is a code-generation toolkit for GraphQL. It contains the core functionalities of GraphQL code-gen, including file parsing, validation, syntax tree parsing and transformation.

The GraphQL-Compiler package [exports library code](./GraphQLCompilerPublic.js) which you may use to find the modules you need, or to extend the compiler with your own custom input and output. Note, the internal APIs of the GraphQL-Compiler are under constant iteration, so rolling your own version may lead to incompatibilities with future releases.

The following graph illustrates the high-level architecture of a complete GraphQL code-generation pipeline:

![CodegenPipeline](https://github.com/facebook/relay/raw/master/packages/relay-compiler/docs/Architecture.png)

To understand the underlying workflow of the core compilation step, which is what happens in the "GraphQL Compiler" block in the above graph, please refer [HERE](./ARCHITECTURE.md).

You can build your own version of the Compiler by adding your own `FileWriter`, and by swapping or adding a `FileParser` and additional `IRTransforms` (IR, which stands for `Intermediate Representation`, a special-purpose syntax tree format designed for transformability).

* The GraphQL-Compiler package provides a [`GraphQLFileParser`](./core/GraphQLFileParser.js), which can be used to parse general `.graphql` files, and a [`GraphQLTextParser`](./core/GraphQLTextParser.js), which can be used to parse GraphQL text in any source files with customized tags. You can also write your own `FileParser` at your discretion.

* You can add additional `IRTransforms` by extending the basic [`GraphQLIRTransforms`](./core/GraphQLIRTransforms.js). A sample can be found [HERE](../core/RelayIRTransforms.js).

* Similarly, you can add additional validation rules by extending the basic [`GraphQLValidator`](./core/GraphQLValidator.js).
Sample [HERE](../core/RelayValidator.js).

* A sample `FileWriter` can be found [HERE](../codegen/RelayFileWriter.js).

To actually run your compiler, you will also need a script to assemble all the above components. A sample file can be found [HERE](../bin/RelayCompilerBin.js).
npm package: @gatsbylabs/draft-js-mention-plugin-with-styles
Description: Mention Plugin for DraftJS
Author: Nik Graf
Latest version: 3.1.7

# DraftJS Mention Plugin

*This is a plugin for the `draft-js-plugins-editor`.*

This plugin allows you to add mentions to your editor!

Usage:

```js
import createMentionPlugin from 'draft-js-mention-plugin';

const mentionPlugin = createMentionPlugin({ mentions });
```

## Importing the default styles

The plugin ships with a default styling available at this location in the installed package:
`node_modules/draft-js-mention-plugin/lib/plugin.css`.

### Webpack Usage
Follow the steps below to import the css file by using Webpack's `style-loader` and `css-loader`.

1. Install Webpack loaders: `npm install style-loader css-loader --save-dev`
2. Add the below section to Webpack config (if your Webpack already has loaders array, simply add the below loader object(`{test:foo, loaders:bar[]}`) as an item in the array).

    ```js
    module: {
      loaders: [{
        test: /\.css$/,
        loaders: [
          'style-loader', 'css'
        ]
      }]
    }
    ```

3. Add the below import line to your component to tell Webpack to inject style to your component.

    ```js
    import 'draft-js-mention-plugin/lib/plugin.css';
    ```
4. Restart Webpack.
npm package: @gatsbylabs/short-uuid-subdomain
Description: Transform UUIDs to be RFC1123 subdomain compliant for Node.js.
Author: Enoch Chau
Latest version: 1.0.0

# Short UUID Subdomain

Transform UUIDs to be RFC1123 subdomain compliant for Node.js.

Kubernetes has a character limit of [253 for DNS Subdomain names](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-subdomain-names).
This package was create to transform shorten and transform UUIDs to be usable as kubernetes deployment names.

## Usage

```js
import * as sus from "@gatsbylabs/short-uuid-subdomain";
import { v4 as uuid } from "uuid";

const id = uuid();

const shortId = sus.encode(id);
const backAgain = sus.decode(shortId);
```
npm package: @gatsbylabs/vite-plugin-minify-template-literals
Description: Minify tagged template literal strings for styled components and graphql by removing white space. Template literals tagged with `gql`, `css`, and `styled.*` will be minified. This can shave some bytes off your total bundle size without changing applicatio
Author: Enoch Chau
Latest version: 2.0.3

# Vite Plugin Minify Template Literals

Minify tagged template literal strings for styled components and graphql by removing white space.
Template literals tagged with `gql`, `css`, and `styled.*` will be minified.
This can shave some bytes off your total bundle size without changing application code.

```js
import gql from "graphql-tag";

const query = gql`
  {
    user(id: 5) {
      firstName
      lastName
    }
  }
`;

// becomes gql`{user(id:5)}{firstName lastName}}`
```

## Usage

```ts
// vite.config.ts
import { defineConfig } from "vite";
import { plugin as templateLiteralPlugin } from "@gatsbylabs/vite-plugin-minify-template-literals";

defineConfig({
  plugins: [templateLiteralPlugin()],
});
```

### Options

```ts
export interface Options {
  css?: boolean; // default is true, set to false to disable css/styled.* minification
  gql?: boolean; // default is true, set to false to disable gql minification
}
```

---

Created and maintained by [Enoch Chau](https://enochchau.com) and the engineers at [Gatsby Labs](https://gatsby.events).
npm package: @gatsbylabs/vite-plugin-unused
Description: Detect unused files files in a Vite project.
Author: Enoch Chau
Latest version: 1.0.2

# Vite Plugin Unused

Detect unused files files in a Vite project.

Example `vite.config.ts`:

```ts
import { defineConfig } from "vite";
import { pluginUnused } from "@gatsbylabs/vite-plugin-unused";

export default defineConfig({
  plugins: [pluginUnused({})],
});
```

An example vite project can be found in the `examples/` directory.

## Usage

```ts
interface Options {
  // glob pattern of files to exclude
  exclude?: string[];
  // glob pattern of file extensions``
  // defaults to  `["*.ts", "*.js", "*.jsx", "*.tsx"]`
  ext?: string[];
  // root folder to look for files, this branches off the root found from your vite config
  // defaults to "src/"
  root?: string;
}
```
npm package: @gaubee/f7-react
Description: Reencapsulation of Framework7 React
Latest version: 2.5.0

# @gaubee/f7-react

对 [Framework7 React](https://framework7.io/react/) 的再次封装。目的有以下几点：

1. 开箱即用的 LazyModule，减少繁琐的配置成本
1. 改进一些组件的封装，使得更加易用
   1. 暴露出 react/swiper 的组件
   1. 从 List 中剥离出 VirtualList/ContactsList 两个组件
   1. 修复 skeleton 的类型问题
1. 路由安全
   1. 提供了一个构建器来自动生成 route-path
   1. 这个构建器是类型安全的，配合自己的项目需求，简单封装，即可实现类型安全的 props、params、query 导航函数
      > PS：你需要先调用 bindF7Router 来提供 f7.router 对象
1. 按需下载的 MaterialSymbols 的图标
   1. 原理是利用tailwind的className裁剪机制，在生成css之后，解析css内容。
      1. 根据ms的规范，有三种字体可以选择：outlinted(默认)/rounded/sharp
      1. 也就是说，你可以通过这样的字符串片段，使得图标被下载： .md-face ===
         .md-outlinted-face、.md-rounded-face、.md-sharp-face
      1. 如果你有动态拼接的需求，你可以在你的代码注释中，书写这些className片段，使得能被tailwindcss识别，并生成对应的className。
   1. 然后再通过google的font-api裁剪接口，下载所需的css和图标文件。
   1. css混入tailwind的内容中，图标文件下载到指定文件夹（也可以内联）
   1. 这就意味着，项目中不出意外的话，不会出现额外的图标，只会按需加载
npm package: @gaubee/flow
Description: 启发于 kotlin 的 flow，针对 js/ts 开发人员设计的接口，通常可以作为一个事件管理器
Latest version: 0.3.11

# @gaubee/flow

启发于 kotlin 的 flow，针对 js/ts 开发人员设计的接口，通常可以作为一个事件管理器

## [docs 文档](https://jsr.io/@gaubee/flow/doc)

**install:**

```bash
npm install @gaubee/flow
pnpm install @gaubee/flow
yarn install @gaubee/flow
deno add npm:@gaubee/flow
bun add @gaubee/flow

deno add jsr:@gaubee/flow
npx jsr add @gaubee/flow
yarn dlx jsr add @gaubee/flow
pnpm dlx jsr add @gaubee/flow
bunx jsr add @gaubee/flow
```

**example:**

- Basic Usage: `SharedFlow extends PureEventDelegate`

```ts
import {SharedFlow} from "@gaubee/flow";
const shared_flow = new SharedFlow<string>();
/// basic
// add listen
const off = shared_flow.on((data) => console.log("on", data));
// dispatch listen
shared_flow.emit("hi");
// remove listen
off();

// add listen with custom key
shared_flow.on((data) => console.log("on", data), {key: "key1"});
// remove listen with custom key
shared_flow.off("key1");

// add listen width dispose function
const off = shared_flow.on((data) => console.log("on", data), {
  onDispose: async () => {
    console.log("off");
    return 123;
  },
});
// remove listen and run dispatch function
console.log(await off()); // { status: "fulfilled", value: 123 }

/// once
// add one time listen with callback function
shared_flow.once((data) => console.log("once", data));
// add one time listen without callback function and return promise
shared_flow.once().then((data) => console.log("once.then", data));
// add one time listen with filter function
shared_flow
  .once({
    filter(data) {
      return data == "match";
    },
  })
  .then((data) => console.log("once filter", data));
```

- `SharedFlow.stream`

```ts
import {SharedFlow} from "@gaubee/flow";
const shared_flow = new SharedFlow<string>();

// add listen and got stream
const stream = shared_flow.stream();

shared_flow.emit("hi");

for await (const data of stream) {
  console.log(data);
  // break loop will remove listen
  break;
}
```

- `StateFlow extends SharedFlow` & `StateFlow.value`

```ts
import {StateFlow} from "@gaubee/flow";

const state_flow = new StateFlow<string>("v1");
state_flow.emit("v2");
state_flow.value === "v2";
state_flow.value = "v3";
```
npm package: @gaubee/node
Description: 一些常见的nodejs-js工具函数
Latest version: 0.4.0

> [中文](./README-zh.md) / [English](./README.md)

# @gaubee/node

This project provides further supplements related to Node.js APIs based on @gaubee/util.

## How to use

### Install

```bash
# pnpm
pnpm add @gaubee/node
# npm
npm install @gaubee/node
# yarn
yarn add @gaubee/node
# jsr
deno add @gaubee/node
```

### Usage

```typescript
import { cwdResolver } from "@gaubee/node/path";

console.log(cwdResolver("file.txt"));
```

## API

### env

- `viteEnvSource`:
  - `(): Record<string, string>`
  - Gets the Vite environment variable source.
- `nodeEnvSource`:
  - `(): Record<string, string>`
  - Gets the Node.js environment variable source (process.env).
- `denoEnvSource`:
  - `(): Record<string, string>`
  - Gets the Deno environment variable source.
- `bunEnvSource`:
  - `(): Record<string, string>`
  - Gets the Bun environment variable source.
- `storageEnvSource`:
  - `(storage?: Storage): Record<string, string>`
  - Gets an environment variable source based on the Storage API (e.g., sessionStorage).
- `autoEnvSource`:
  - `(fallback?: () => Record<string, string>): Record<string, string | undefined>`
  - Automatically detects and returns the environment variable source for the current environment (Deno > Bun > Vite > Node.js > sessionStorage).
- `defineEnv`:
  - `<P extends string, KV extends Record<string, EnvConfig>>(prefix: P, kv: KV, source?: Record<string, string | undefined>, ext?: object): DefineEnvChain<P, DefineEnv<P, KV>>`
  - Defines a set of environment variables, supporting type conversion, default values, and chained definitions.

### path

- `normalizeFilePath`:
  - `(path: string | URL): string`
  - Formats the path to standard POSIX format, supporting URL and Windows paths.
- `createResolver`:
  - `(cwd: string): PathResolver`
  - Creates a path resolver that resolves paths relative to the specified `cwd` (current working directory).
  - The returned function has a `dirname` property with the value of the passed `cwd`.
- `cwdResolver`:
  - `PathResolver` (i.e., `((...paths: string[]) => string) & {dirname: string}`)
  - A path resolver based on the current Node.js process's working directory (`process.cwd()`).
- `createResolverByRootFile`:
  - `(fromPath?: string | URL, rootFilename?: string): PathResolver`
  - Creates a path resolver by looking up the specified root filename (defaults to `package.json`) upwards. The resolver will resolve paths based on the directory containing that
    root file.

### promise

- `nodeTimmers`:
  - `{ eventEmitter: NodeTimmer.EventEmiter }`
  - An extension to `timmers` in `@gaubee/util`, providing Timmer related to Node.js events.
  - `nodeTimmers.eventEmitter`: A Timmer factory function for creating Timers based on `node:events/EventEmitter` for the `delay` function. It can listen for specified events and
    resolve the Promise when the event is triggered, with optional support for event argument filters.
npm package: @gaubee/shim
Description: 一些常见的 shim 需求
Latest version: 0.2.1

# @gaubee/shim

该项目与 @gaubee/util 保持了一致的风格（尽可能提供函数式风格，从而避免副作用），提供了常见的垫片。
它按需引入，对于 native 支持的浏览器，基本不会有额外的开销。

1. decimal
    - 参考 https://github.com/tc39/proposal-decimal
    - 是 big.js 的平替，特点是它是纯函数，只携带着极少的副作用（stringify:toString/valueOf/toJSON）
1. pipeline
    - 参考 https://github.com/tc39/proposal-pipeline-operator
    - 可以帮助你将存函数串联起来，减少尾括号的问题