open-index/open-npm huggingface dataset:
npm package: @suitegeezus/eslint-config
Description: eslint what else
Author: Gerald Gillespie
Latest version: 0.1.4

# README

This is intended to be used by project templates from SuiteGeezus are using. 

It assumes that any suitescript files are:
- in FileCabinet
- end with extensions (js, ss, ssp)
- do not have .min in their name (minified)

If you have suitescripts in other folders that is fine -- consider extending 
`@suitegeezus/eslint-config/rules/suitescript.js` for those exceptions.

It assumes you are willing to write JS in the latest ecmaversion.  This is because you can transpile down to Chrome 
72. e.g. during a build step with Parcel, babel, etc. 
If you prefer ecmaversion 10 to be enforced then you will have to override that. 

# installation
`npm install @suitegeezus/eslint-config`

# configuration
You will probably want to do something like this (particularly the `'root' : true` IF you are in the root of a 
monorepo/sub-repo situation

## Basic Example via package.json

```json

{
    "root": true,
    "extends": [
      "@suitegeezus/eslint-config"
    ]
  }
```

# Features
- Optimal for SS2.1 targets
- Plugins included
  - jsdoc
  - jest
  - jsonc
  - markdown
  - prettier
  - requirejs
  - suitescript
  - typescript
  - import (and resolver)
  - airbnb
- aware of suitescript-related jsdoc tags e.g.'NApiVersion'
- opinionated about js, json, markdown
- more strict about suitescript code

## SuiteScript
it assumes suitescript and tests will be in a FileCabinet folder structure. 

## Tests
It assumes tests are in tests folder

## Conflicts with Tests / SuiteScript
if you're tests are in a FileCabinet structure mirroring Suitescript targets then both sets of rules could be applied.
To control this have your test filename end with something like `test.js` then the SuiteScript rules will not be 
applied.
npm package: @suitejs/icons
Description: svg icon sets for react
Author: Mathew Hawley
Latest version: 0.4.0

# icons

[![npm (scoped)](https://img.shields.io/npm/v/@suitejs/icons.svg?style=flat-square)](https://www.npmjs.com/package/@suitejs/icons) [![David](https://david-dm.org/suitejs/suitejs/status.svg?path=packages/icons&style=flat-square)](https://david-dm.org/suitejs/suitejs?path=packages/icons)

A unified collection of SVG icons built for React.

## Installation

```
$ npm install --save @suitejs/icons
```

## Usage

Icon sets are located in name-spaced directories. You can use named imports (if your toolchain supports tree-shaking or dead-code elimination), or import icon modules individually:

```js
import { SpFacebook } from '@suitejs/icons/sp';
```

or

```js
import SpFacebook from '@suitejs/icons/sp/Facebook';
```

> ℹ️  You can find all import paths in the [docs](https://github.com/suitejs/suitejs/blob/master/packages/icons/docs).

---

If you are using **CommonJS** modules, you will find them under the `/lib` directory:

```js
var SpFacebook = require('@suitejs/icons/lib/sp').SpFacebook;
```

If your environment supports ES6 destructuring syntax:

```js
var { SpFacebook, SpYouTube } = require('@suitejs/icons/lib/sp');
```

You can also access modules individually:

```js
var SpYouTube = require('@suitejs/icons/lib/sp/YouTube');
```

## Configuration

`icons` uses [`icon-base`](https://github.com/suitejs/suitejs/tree/master/packages/icon-base) to set common settings. You can configure global settings for all your icons via React's context API. You can roll your own 'provider', or use the [`IconProvider`](https://github.com/suitejs/suitejs/tree/master/packages/icon-base#global-configuration) from the [`icon-base`](https://github.com/suitejs/suitejs/tree/master/packages/icon-base) package.

Global settings can be overriden inline:

```js
<CheckBox fill="#000000" size="0.75em" aria-hidden={false} />
```

To see what defaults are applied, refer to the [`icon-base`](https://github.com/suitejs/suitejs/tree/master/packages/icon-base) documentation.

## Sets

| Name | Location |
| --- | --- |
| [Social Platforms](https://github.com/suitejs/suitejs/blob/master/packages/icons/docs/sp.md) | `@suitejs/icons/sp` |
| [Material Design](https://github.com/suitejs/suitejs/blob/master/packages/icons/docs/md.md) | `@suitejs/icons/md` |
| [Developer](https://github.com/suitejs/suitejs/blob/master/packages/icons/docs/dv.md) | `@suitejs/icons/dv`

## Goals

The goal for this library, is to provide commonly used icons in a uniform format. You should be free to mix and match icons from different sets and expect them to behave/render in a consistent manner.

All icons are set up on a 48 &times; 48 grid. They have all been scaled to achieve as consistent a weighting across the board as possible.
npm package: @suiteportal/cli
Description: CLI for SuitePortal NetSuite ORM — introspect, generate, and manage
Author: Trey Hulse
Latest version: 0.5.0

# @suiteportal/cli

CLI for SuitePortal NetSuite ORM. Introspect your NetSuite account, generate typed clients, and manage your ORM configuration.

## Install

```bash
npm install -g @suiteportal/cli
# or use npx
npx @suiteportal/cli
```

## Usage

```bash
# Initialize a new SuitePortal project
suiteportal init

# Introspect your NetSuite account schema
suiteportal introspect

# Generate typed client from schema
suiteportal generate
```

## Commands

| Command | Description |
|---------|-------------|
| `init` | Initialize a new SuitePortal project with config file |
| `introspect` | Connect to NetSuite and discover schema |
| `generate` | Generate TypeScript types and client from schema |

## Configuration

Credentials are loaded from `.env`:

```env
NETSUITE_ACCOUNT_ID=1234567_SB1
NETSUITE_CONSUMER_KEY=...
NETSUITE_CONSUMER_SECRET=...
NETSUITE_TOKEN_ID=...
NETSUITE_TOKEN_SECRET=...
```

## Documentation

Full docs at [suiteportal.dev](https://suiteportal.dev)

## License

MIT
npm package: @suiteportal/client-runtime
Description: Prisma-like query and mutation runtime for SuitePortal NetSuite ORM
Author: Trey Hulse
Latest version: 0.5.0

# @suiteportal/client-runtime

Prisma-like query runtime for NetSuite. Provides `findMany`, `findFirst`, `count`, and raw SuiteQL execution with a fluent, type-safe API.

## Install

```bash
npm install @suiteportal/client-runtime
```

## Usage

```ts
import { createClient } from './.suiteportal/client';

const ns = await createClient(config);

const customers = await ns.customer.findMany({
  where: { balance: { gt: 1000 }, isInactive: { equals: false } },
  select: { companyName: true, email: true, balance: true },
  orderBy: { balance: 'desc' },
  take: 50,
});

const order = await ns.salesorder.findFirst({
  where: { entity: { equals: 42 } },
});

const total = await ns.customer.count({
  where: { isInactive: { equals: false } },
});
```

## Features

- Prisma-like `findMany`, `findFirst`, `count` API
- `where` filters: `equals`, `not`, `gt`, `gte`, `lt`, `lte`, `in`, `contains`, `startsWith`
- `select` field projection
- `orderBy` sorting with `asc`/`desc`
- `take`/`skip` pagination
- `$queryRaw` escape hatch for raw SuiteQL
- ES Proxy-based dynamic record access

## Documentation

Full docs at [suiteportal.dev](https://suiteportal.dev)

## License

MIT
npm package: @suiteportal/connector
Description: NetSuite OAuth 1.0a connector with SuiteQL execution and REST Record CRUD
Author: Trey Hulse
Latest version: 0.5.0

# @suiteportal/connector

NetSuite OAuth 1.0a connector with SuiteQL query execution. Zero runtime dependencies — uses Node.js built-in `crypto` and `fetch`.

## Install

```bash
npm install @suiteportal/connector
```

## Usage

```ts
import { createConnector } from '@suiteportal/connector';

const connector = createConnector({
  accountId: '1234567_SB1',
  consumerKey: '...',
  consumerSecret: '...',
  tokenId: '...',
  tokenSecret: '...',
});

// Execute a SuiteQL query
const results = await connector.query('SELECT id, companyname FROM customer WHERE rownum <= 10');
```

## Features

- OAuth 1.0a signing (HMAC-SHA256, RFC 5849)
- HTTP client with retry, rate-limiting, and timeout
- SuiteQL query executor with pagination
- Custom error hierarchy: `AuthError`, `RateLimitError`, `TimeoutError`

## Documentation

Full docs at [suiteportal.dev](https://suiteportal.dev)

## License

MIT
npm package: @suiteportal/generator
Description: Code generator for SuitePortal NetSuite ORM — emits typed queries, mutations, and includes from schema
Author: Trey Hulse
Latest version: 0.5.0

# @suiteportal/generator

Code generator for SuitePortal — reads a normalized schema and emits TypeScript types, a typed client wrapper, and barrel exports.

## Install

```bash
npm install @suiteportal/generator
```

## Usage

```ts
import { generate } from '@suiteportal/generator';

await generate({
  schemaPath: '.suiteportal/schema.json',
  outputDir: '.suiteportal/client',
});
// Generates: types.ts, client.ts, index.ts
```

## Features

- Reads `NormalizedSchema` from `schema.json`
- Emits TypeScript interfaces for every record type
- Generates a typed client wrapper with autocomplete
- PascalCase naming for interfaces, proper field type mapping

## Documentation

Full docs at [suiteportal.dev](https://suiteportal.dev)

## License

MIT
npm package: @suiteportal/introspector
Description: NetSuite schema discovery and normalization via REST metadata catalog + SuiteQL
Author: Trey Hulse
Latest version: 0.5.0

# @suiteportal/introspector

NetSuite schema discovery and normalization. Fetches REST metadata catalog and SuiteQL custom records/fields, then produces a unified normalized schema.

## Install

```bash
npm install @suiteportal/introspector
```

## Usage

```ts
import { introspect } from '@suiteportal/introspector';
import { createConnector } from '@suiteportal/connector';

const connector = createConnector({ /* credentials */ });
const schema = await introspect(connector);
// schema contains all record types, fields, and inferred relations
```

## Features

- 7-step introspection pipeline
- REST metadata catalog discovery
- SuiteQL custom record/field enumeration
- Relation inference between record types
- Outputs normalized schema to `.suiteportal/schema.json`

## Documentation

Full docs at [suiteportal.dev](https://suiteportal.dev)

## License

MIT
npm package: @suiteserve/protocol
Description: The SuiteServe gRPC protocol for Node.
Latest version: 0.1.14

# SuiteServe Protocol for Node

This [gRPC](https://grpc.io/) protocol, defined by the [protocol buffer](https://developers.google.com/protocol-buffers) language, enables a client (i.e. an active test suite) to inform the server about its progress and results. In addition, queries and administrative tasks may be performed.

**This package is for use in Node.**
npm package: @suiteserve/protocol-web
Description: The SuiteServe gRPC protocol for the browser.
Latest version: 0.1.16

# SuiteServe Protocol for Web

This [gRPC](https://grpc.io/) protocol, defined by the [protocol buffer](https://developers.google.com/protocol-buffers) language, enables a client (i.e. an active test suite) to inform the server about its progress and results. In addition, queries and administrative tasks may be performed.

**This package is for use in the browser.**
npm package: @suitespot/prettier-config
Description: The SuiteSpot base prettier config
Author: SuiteSpot
Latest version: 3.0.1

# prettier-config

SuiteSpot's base Prettier config.

## Installation

```sh
npm install -D -E @suitespot/prettier-config
```

or 

```sh
pnpm install -D -E @suitespot/prettier-config -w
```

## Usage

After installing, update your project's `prettier.config.mjs` file to import the rule sets you want:

```js
import sstConfig from '@suitespot/prettier-config'
/** @type {import("prettier").Config} */
const config = {
    ...sstConfig,
    // Your config overrides here
}
export default config;
```

---

Read the [Prettier config docs](https://prettier.io) for more information.
npm package: @suitespot/shoelace
Description: A forward-thinking library of web components.
Author: Cory LaViska
Latest version: 2.11.0-dev.8

# Shoelace

A forward-thinking library of web components.

- Works with all frameworks 🧩
- Works with CDNs 🚛
- Fully customizable with CSS 🎨
- Includes an official dark theme 🌛
- Built with accessibility in mind ♿️
- Open source 😸

Designed in New Hampshire by [Cory LaViska](https://twitter.com/claviska).

---

Documentation: [shoelace.style](https://shoelace.style)

Source: [github.com/shoelace-style/shoelace](https://github.com/shoelace-style/shoelace)

Twitter: [@shoelace_style](https://twitter.com/shoelace_style)

---

## Shoemakers 🥾

Shoemakers, or "Shoelace developers," can use this documentation to learn how to build Shoelace from source. You will need Node >= 14.17 to build and run the project locally.

**You don't need to do any of this to use Shoelace!** This page is for people who want to contribute to the project, tinker with the source, or create a custom build of Shoelace.

If that's not what you're trying to do, the [documentation website](https://shoelace.style) is where you want to be.

### What are you using to build Shoelace?

Components are built with [LitElement](https://lit-element.polymer-project.org/), a custom elements base class that provides an intuitive API and reactive data binding. The build is a custom script with bundling powered by [esbuild](https://esbuild.github.io/).

### Forking the Repo

Start by [forking the repo](https://github.com/shoelace-style/shoelace/fork) on GitHub, then clone it locally and install dependencies.

```bash
git clone https://github.com/YOUR_GITHUB_USERNAME/shoelace
cd shoelace
npm install
```

### Developing

Once you've cloned the repo, run the following command.

```bash
npm start
```

This will spin up the dev server. After the initial build, a browser will open automatically. There is currently no hot module reloading (HMR), as browser's don't provide a way to reregister custom elements, but most changes to the source will reload the browser automatically.

### Building

To generate a production build, run the following command.

```bash
npm run build
```

### Creating New Components

To scaffold a new component, run the following command, replacing `sl-tag-name` with the desired tag name.

```bash
npm run create sl-tag-name
```

This will generate a source file, a stylesheet, and a docs page for you. When you start the dev server, you'll find the new component in the "Components" section of the sidebar.

### Contributing

Shoelace is an open source project and contributions are encouraged! If you're interesting in contributing, please review the [contribution guidelines](CONTRIBUTING.md) first.

## License

Shoelace was created by [Cory LaViska](https://twitter.com/claviska) and is available under the terms of the MIT license.

Whether you're building Shoelace or building something _with_ Shoelace — have fun creating! 🥾