open-index/open-npm huggingface dataset:
npm package: @galiojs/awesome-antd
Description: Improved fast reusable components wrapped from awesome antd components.
Latest version: 0.4.0-alpha.8

# Awesome antd

Improved fast reusable components wrapped from awesome antd components.

## Changelog

See [changelog](https://www.yuque.com/jerry-gfxzz/galiojs_awesome-antd_changelog)
npm package: @galleondao/galleon-tokenlist
Description: Token lists used by Galleon
Author: Andrew
Latest version: 0.0.12

# galleon token list

npm: <https://www.npmjs.com/package/@galleondao/galleon-tokenlist>

github: <https://github.com/GalleonDAO/galleon-tokenlist>

---

## Install

```bash
yarn add @galleondao/galleon-tokenlist
```

---

## Usage

```typescript
import {
  MainnetTokens,
  MaticTokens,
  GalleonMainnetTokens,
  GalleonMaticTokens,
  TokenData,
} from '@galleondao/galleon-tokenlist';
```

- `GalleonMainnetTokens`: Only Galleon Mainnet tokens
- `GalleonMaticTokens`: Only Galleon Matic network tokens
- `GalleonArbitrumTokens`: Only Galleon Arbitrum roll-up tokens
- `GalleonOptimismTokens`: Only Galleon Optimism roll-up tokens
- `GalleonAvalanceTokens`: Only Galleon Avalanche network tokens
- `TokenData`: The token interface used by the lists

---

## Contributing

`npm run commit`

REQUIRED: Due to the use of [semantic-release](https://www.npmjs.com/package/semantic-release-cli) for deploying to npm's registry, we require commits to be formatted a specific way. This is made easy by the above npm script. If your commit doesn't use the above command for styling, it won't be picked up by semantic-release for publishing.

### Adding Galleon Tokens

When adding Galleon tokens, find the Galleon specific array in the appropriate network file and append the Galleon list at the top as shown below.

```typescript
const GALLEON_MAINNET_TOKENS: TokenData[] = [
  {
    address: '0x47110d43175f7f2c2425e7d15792acc5817eb44f',
    chainId: 1,
    name: 'My New Index',
    symbol: 'MNI',
    decimals: 18,
    logoURI:
      'path-to-hosted-logo',
  },
  {...}
];
```

### Adding non-Galleon Tokens

When adding any other token, find the generic array in the appropriate network file and append the second array at the bottom as shown below.

```typescript
const MAINNET_TOKENS: TokenData[] = [
  {
    address: '0x47110d43175f7f2c2425e7d15792acc5817eb44f',
    chainId: 1,
    name: 'My New Token',
    symbol: 'MNT',
    decimals: 18,
    logoURI:
      'path-to-hosted-logo',
  },
  {...}
];
```

### Adding a new network

When adding a new network, create a new file in `src/lists` named after the network, and copy the structure from any of the other lists.
File should include at a minimum:

- An exported `GALLEON_NEW_NETWORK_TOKENS` TokenData array, containing only Galleon tokens on that network.
- A default exported `NEW_NETWORK_TOKENS` TokenData array, containing all tokens on that network, with the last item appended being the aforementioned `GALLEON_[NETWORK]_TOKENS` array.

After this, `index.ts` should be updated to export the newly created lists as shown below:

```typescript
export const NewNetworkTokens = NEW_NETWORK_TOKENS;
export const GalleonNewNetworkTokens = GALLEON_NEW_NETWORK_TOKENS;
```

When these are complete, update the `Usage` list above to show what lists are available to a user.
npm package: @galleondao/logging-lib
Description: typescript logging library for application
Author: Andrew
Latest version: 0.0.10

# logging-lib

npm: <https://www.npmjs.com/package/@galleondao/logging-lib>

github: <https://github.com/GalleonDAO/logging-lib>

---

## Install

```bash
yarn add @galleondao/logging-lib
```

---

## Usage

```typescript
import Logger from '@galleondao/logging-lib';
```
npm package: @galleondao/setswap-tokenlist
Description: Token lists used by SetSwap
Author: Andrew
Latest version: 0.0.6

Forked from [@IndexCoop](https://github.com/IndexCoop/tokenlists)
# tokenlists

npm: <https://www.npmjs.com/package/@galleondao/setswap-tokenlist>

github: <https://github.com/GalleonDAO/setswap-tokenlist>

---

## Install

```bash
yarn add @galleondao/setswap-tokenlist
```

---

## Usage

```typescript
import {
  MainnetTokens,
  MaticTokens,
  SetSwapMainnetTokens,
  SetSwapMaticTokens,
  TokenData,
} from '@galleondao/setswap-tokenlist';
```

- `SetSwapMainnetTokens`: Only SetSwap Mainnet tokens
- `SetSwapMaticTokens`: Only SetSwap Matic network tokens
- `SetSwapArbitrumTokens`: Only SetSwap Arbitrum roll-up tokens
- `SetSwapOptimismTokens`: Only SetSwap Optimism roll-up tokens
- `SetSwapAvalanceTokens`: Only SetSwap Avalanche network tokens
- `TokenData`: The token interface used by the lists

---

## Contributing

`npm run commit`

REQUIRED: Due to the use of [semantic-release](https://www.npmjs.com/package/semantic-release-cli) for deploying to npm's registry, we require commits to be formatted a specific way. This is made easy by the above npm script. If your commit doesn't use the above command for styling, it won't be picked up by semantic-release for publishing.

### Adding SetSwap Tokens

When adding SetSwap tokens, find the SetSwap specific array in the appropriate network file and append the SetSwap list at the top as shown below.

```typescript
const SETSWAP_MAINNET_TOKENS: TokenData[] = [
  {
    address: '0x47110d43175f7f2c2425e7d15792acc5817eb44f',
    chainId: 1,
    name: 'My New Index',
    symbol: 'MNI',
    decimals: 18,
    logoURI:
      'path-to-hosted-logo',
  },
  {...}
];
```

### Adding non-SetSwap Tokens

When adding any other token, find the generic array in the appropriate network file and append the second array at the bottom as shown below.

```typescript
const MAINNET_TOKENS: TokenData[] = [
  {
    address: '0x47110d43175f7f2c2425e7d15792acc5817eb44f',
    chainId: 1,
    name: 'My New Token',
    symbol: 'MNT',
    decimals: 18,
    logoURI:
      'path-to-hosted-logo',
  },
  {...}
];
```

### Adding a new network

When adding a new network, create a new file in `src/lists` named after the network, and copy the structure from any of the other lists.
File should include at a minimum:

- An exported `SETSWAP_NEW_NETWORK_TOKENS` TokenData array, containing only SetSwap tokens on that network.
- A default exported `NEW_NETWORK_TOKENS` TokenData array, containing all tokens on that network, with the last item appended being the aforementioned `SETSWAP_[NETWORK]_TOKENS` array.

After this, `index.ts` should be updated to export the newly created lists as shown below:

```typescript
export const NewNetworkTokens = NEW_NETWORK_TOKENS;
export const SetSwapNewNetworkTokens = SETSWAP_NEW_NETWORK_TOKENS;
```

When these are complete, update the `Usage` list above to show what lists are available to a user.
npm package: @gallery-so/typescript-operations
Description: GraphQL Code Generator plugin for generating TypeScript types for GraphQL queries, mutations, subscriptions and fragments
Latest version: 0.0.7

## Hello 👋

This is Gallery's fork of [https://github.com/dotansimha/graphql-code-generator](https://github.com/dotansimha/graphql-code-generator). More specifically, a fork of the [`@graphql-codegen/typescript-oeprations`](https://www.graphql-code-generator.com/plugins/typescript/typescript-operations) package.

### What does this fork do?

We simply add the `id` field to any type that has it available to match Relay's expectations. See below 👇.

### Why might you need this?

If you're using Relay, you may already know that Relay will automatically select an `id` field if one is available in the schema. It's quite annoying when the generated types spit out by the codegen plugin don't match what Relay is expecting.

### How to use this package?

1. Remove `@graphql/typescript-operations`
   ```bash
   yarn remove @graphql/typescript-operations
   ```
2. Install `@gallery-so/typescript-operations`
   ```bash
   yarn add @gallery-so/typescript-operations
   ```
3. Update your `codegen.yml` file to include the `autoSelectId` field.

```diff
schema: ./schema.graphql
documents: ./src/**/*.{ts,tsx}
generates:
   ./src/__generated__/operations.ts:
config:
   avoidOptionals: true
+  autoSelectId: true
plugins:
  - typescript
- - typescript-operations
+ - "@gallery-so/typescript-operations"
```
npm package: @gallink/oxygen
Description: Bringing life to all the other Gallink applications. 
Author: Joshua Crowe, Junior Web Developer
Latest version: 1.2.8

Oxygen brings life to other Gallink applications by providing a set of useful utilities. 

# Using Queues
Queues are a neat approach to processing a collection of items. Both of the implementations have different purposes, both which are particularly useful.

First is the standard `Queue` implementation, which is simply a box for an `Array` with the ability to dequeue items in a controlled, FIFO respect.

```typescript
const friendsToAdd: Queue<Friend> = new Queue(api.getFriendSuggestions())

while (friendsToAdd.pending) {
    
    const friendToAdd: Friend = friendsToAdd.dequeue();
    
    await friendToAdd.sendFriendRequest() 
    
}

// Friends added!
```

`PromiseQueue` adds another layer of asynchronous debuffing to JavaScript by allowing you to queue `Promise`s. We can rewrite the sample above to use these.
```typescript
const friendsToAdd: Queue<Friend> = new Queue(api.getFriendSuggestions())
const friendsBeingAded: PromiseQueue<Friend> = new PromiseQueue<Friend>();

while (friendsToAdd.pending) {
    
    const friendToAdd: Friend = friendsToAdd.dequeue();
    
    await friendsBeingAdded.task(friendToAdd.sendFriendRequestAsync)
    
}
```
The difference between these two examples is that the first will handle all the friend requests at once, whereas the second example will handle one at a time.


# Create Handleable Actions 
Inspired by Node's `EventEmitter`, `Actionable` provides an attractive alternative to calling code in other places by firing actions that are listened to elsewhere - a professional use for callbacks.

```typescript
const me: Person = new Person("Crowes");

me.on("hungry", me.eat())
```

# Genuine Data Models
JavaScript does a poor job of supporting genuine data models, leaving you to write a lot of the boilerplate for a lot of your reflection-style work which is so commonly required in typical JavaScript applications.

```typescript
const me: Person = new Person("Crowes", 21);
const differentMe: Person = new Person("Crowes", 22);

const difference: Map<string, any> = me.difference();
// { "age", 22 }
```
npm package: @gallink/rhapsody
Description: MySQL wrapper for Joints.
Author: Joshua Crowe, Junior Web Developer
Latest version: 1.0.0

# Rhapsody
MySQL wrapper for Joints.

Database --> Root.
DatabaseTable --> Base ORM. 
UserTable --> Specific ORM.

DatabaseUser --> Database extension of the <User> model.
DatabaseUsers --> Database extension for a Dictionary<User>.



Database.js (Connection) --> DatabaseTable.js (ORM) --> DatabaseRequest.js (Query, Cast, Collect) --> DatabaseModel.js (Result)
npm package: @gallink/sequence
Description: SQL string builder.
Author: Joshua Crowe, Junior Web Developer
Latest version: 1.3.0

# Sequence
Sequence is a versatile SQL string builder built with the a fluid API in mind -- each builder is chainable, and can be interpolated into template literals. Using the `ISequenceBuilder` implementations such as `Select`, you can build any SQL statement to suit your needs -- if not, the entire library has been designed by interface allowing extension in any way you can think of.

## Usage
To use this in your project, follow the simple examples below

### SELECT Statements
```typescript
// Create your column.
const column: ISequenceColumn = new SequenceColumn(Predicate.None, "username");

// Build your statement.
const select: ISequenceBuilder = new Select()
    .from("user")
    .where(column, LogicalOperator.Equality, "Crowes");

// Stringify your statement.
const sql: string = select.stringify();
// SELECT * FROM user WHERE userName = 'Crowes'
```
### INSERT Statements
```typescript
// Create your columns.
const columnA: ISequenceColumn = new SequenceColumn(Predicate.None, "username")
const columnB: ISequenceColumn = new SequenceColumn(Predicate.None, "password")

// Build your statement
const insert: ISequenceBuilder = new Insert()
    .into("user", columnA, columnB)
    .values("Crowes", 1234);

// Stringify your statement.
const sql: string = insert.stringify();
// INSERT INTO user (userName, userPassword) VALUES ('crowes', 1234)
```

### DELETE Statements
```typescript
// Create your column.
const column: ISequenceColumn = new SequenceColumn(Predicate.None, "username");

// Build your statement.
const delete: ISequenceBuilder = new Delete()
    .from("user")
    .where(column, LogicalOperator.Equality, "Crowes");

// Stringify your statement.
const sql: string = select.stringify();
// SELECT * FROM user WHERE userName = 'Crowes'
```