open-index/open-npm huggingface dataset:
npm package: @matt-riley/gcp-cv-import
Description: ## Description
Latest version: 0.0.8
Deprecated: Please use @allcapsdev/gcp-cv-import instead

# gcp-cv-import

## Description

Package to [bulk import your GCP Cloud vision product set](https://cloud.google.com/vision/product-search/docs/create-product-set#using_bulk_import_to_create_a_product_set_with_products).

[![Dependabot Status](https://api.dependabot.com/badges/status?host=github&repo=matt-riley/gcp-cv-import)](https://dependabot.com) [![npm](https://img.shields.io/npm/dm/@matt-riley/gcp-cv-import?style=plastic)](https://www.npmjs.com/package/@matt-riley/gcp-cv-import) [![Language grade: JavaScript](https://img.shields.io/lgtm/grade/javascript/g/matt-riley/gcp-cv-import.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/matt-riley/gcp-cv-import/context:javascript) [![Maintainability](https://api.codeclimate.com/v1/badges/e344678c9b5207782ca4/maintainability)](https://codeclimate.com/github/matt-riley/gcp-cv-import/maintainability)

## Usage

Install locally using `npm`

```bash
npm i -s @matt-riley/gcp-cv-import
```

Then within your code:

```typescript
import ImportProductSet from '@matt-riley/gcp-cv-import';

const importPrdSet = new ImportProductSet({
  projectId: 'some-gcp-project',
  location: 'europe-west1',
  csvUri: 'gs://some-bucket/a-csv-file.csv'
});

const importResults = importPrdSet.import();
```

There is an optional argument that can be passed into `new ImportProductSet` which is, `logger`.

By default `logger` will use the standard `console` to log the results, however if you use something like [winston](https://www.npmjs.com/package/winston) or a custom logger, you can pass that in. The only stipulation is that it has to have a `.info` method.

## ToDo

- Handle errors better, the current approach just uses the errors provided from [@google-cloud/vision](https://www.npmjs.com/package/@google-cloud/vision) - which aren't always _that_ descriptive.

- More tests & better mocking.

- Improve the docs
npm package: @matt-sann/internal-ws
Description: WebSocket client
Author: matt-sann
Latest version: 1.1.3

# NPM Package Publishing Guide

## Prerequisites
- Node.js and npm installed
- An npm account (create one at [npmjs.com](https://www.npmjs.com))
- Logged in to npm in your terminal (`npm login`)

## Update Package Version

1. **Manual Update**
   ```bash
   # Edit version in package.json manually
   # Or use npm version command:
   npm version patch  # 1.0.0 -> 1.0.1
   npm version minor  # 1.0.0 -> 1.1.0
   npm version major  # 1.0.0 -> 2.0.0
   ```

2. **Build Package (if needed)**
   ```bash
   npm run build
   ```

## Publishing

1. **Test Package Locally**
   ```bash
   # Create tarball
   npm pack
   
   # Install locally in another project
   npm install ../path-to-package/your-package-1.0.0.tgz
   ```

2. **Publish to NPM**
   ```bash
   # Public package
   npm publish

   # Private/scoped package
   npm publish --access public
   ```

## Common Commands

```bash
# Check current version
npm version

# View package contents
npm pack

# List published versions
npm view your-package versions

# Tag specific version
npm dist-tag add your-package@1.0.0 latest
```

## Publishing Checklist

- [ ] Update version number
- [ ] Run tests (`npm test`)
- [ ] Build package (`npm run build`)
- [ ] Update README and documentation
- [ ] Check `package.json` fields
- [ ] Verify `.npmignore` or `files` in `package.json`
- [ ] Test package locally
- [ ] Commit changes
- [ ] Create git tag
- [ ] Publish to npm

## GitHub Package Registry

To publish to GitHub Package Registry:

1. **Authentication**
   ```bash
   # Add to .npmrc
   @your-username:registry=https://npm.pkg.github.com
   //npm.pkg.github.com/:_authToken=YOUR_GITHUB_TOKEN
   ```

2. **Update package.json**
   ```json
   {
     "name": "@your-username/package-name",
     "publishConfig": {
       "registry": "https://npm.pkg.github.com"
     }
   }
   ```

3. **Publish**
   ```bash
   npm publish
   ```

## Troubleshooting

- **Version exists**: Delete or update version
- **Authentication failed**: Run `npm login` again
- **Scope issues**: Check package name and registry
- **Files missing**: Check `files` in package.json or `.npmignore`

## Best Practices

1. Keep semantic versioning (MAJOR.MINOR.PATCH)
2. Update changelog
3. Test before publishing
4. Use `.npmignore` or `files` in package.json
5. Include proper documentation
6. Set up CI/CD for automated publishing

## License

MIT
npm package: @matt-tingen/eslint-config
Description: ```sh pnpm add -D eslint@^9 @matt-tingen/eslint-config ```
Author: Matt Tingen
Latest version: 0.17.1

```sh
pnpm add -D eslint@^9 @matt-tingen/eslint-config
```

`eslint.config.mjs`

```js
import mt from '@matt-tingen/eslint-config';

export default mt.configs.recommended;
```

Or if additional configuration is needed:

```js
import mt from '@matt-tingen/eslint-config';

export default [
  ...mt.configs.customize({ root: import.meta.dir }),
  {
    languageOptions: {
      parserOptions: {
        projectService: {
          allowDefaultProject: ['client/*.config.mts'],
          defaultProject: 'tsconfig-base.json',
      },
    },
  },
];
```
npm package: @matt-tingen/jest-macros
Description: ## Rationale
Latest version: 0.1.4

# Jest Macros

## Rationale

Running variants of the same test can be a little repetitive in jest or require tradeoffs in test isolation.

Two common patterns are the built-in `it.each` and calling `it` in a loop over an array of test cases.
Neither of these allow isolating an individual test case with `.only` for debugging.
Other test cases may be commented out, but that isn't very ergonomic and such test will not be reported as "skipped" which makes it easier to forget to restore them.
Additionally, the test title string interpolation of `it.each` is not type-checked.

This package takes inspiration from [`ava`'s macro feature](https://github.com/avajs/ava/blob/f328a6933af7aca221b08f694bb14b03701eca68/docs/01-writing-tests.md#reusing-test-logic-through-macros) to allow separating test cases from the test implementation in a way which allows isolating or skipping individual test cases.

## Setup

```
yarn add @matt-tingen/jest-macros
```

In `jest.config.js`:

```
setupFilesAfterEnv: ['./jest.setup.ts'],
```

In `jest.setup.js`:

```ts
import '@matt-tingen/jest-macros/global';
```

## Usage

```ts
const double = (x: number) => x * 2;

const testDouble = createMacro(
  (input: number, expected: number) => {
    expect(double(input)).toBe(expected);
  },
  (provided, input, expected) => provided || `${input} doubles to ${expected}`,
);

describe('double', () => {
  run(testDouble, 1, 2);
  run.skip(testDouble, 2, 4);
  run.only(testDouble, 3, 6);
  run('alternate title', testDouble, 4, 8);

  it('standard test', () => {
    // ...
  });
});
```

Output:

```
✓ 3 doubles to 6 (1 ms)
○ skipped 1 doubles to 2
○ skipped 2 doubles to 4
○ skipped alternate title
○ skipped standard test
```
npm package: @matt-tingen/react-scripts
Description: Configuration and scripts for Create React App.
Latest version: 1.1.4-3

# react-scripts

This package includes scripts and configuration used by [Create React App](https://github.com/facebookincubator/create-react-app).<br>
Please refer to its documentation:

* [Getting Started](https://github.com/facebookincubator/create-react-app/blob/master/README.md#getting-started) – How to create a new app.
* [User Guide](https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/template/README.md) – How to develop apps bootstrapped with Create React App.
npm package: @matt-tingen/rtk-producers
Author: Matt Tingen
Latest version: 1.0.0

`createCaseReducers` is a helper to reduce the overhead in defining case reducers for `@reduxjs/toolkit` slices, particularly when there is code shared between case reducers.

Example usage:

```ts
interface FooState {
  values: number[];
  selectedIndex?: number;
}

const initialState: FooState = { values: [] };

const buildProducers = (state: FooState) => {
  const deselect = () => {
    state.selectedIndex = undefined;
  };

  const select = (index: number) => {
    state.selectedIndex = index;
  };

  const appendValue = (value: number) => {
    state.values.push(value);
    select(state.values.length - 1);
  };

  return {
    deselect,
    select,
    appendValue,
  };
};

const fooSlice = createSlice({
  name: 'foo',
  initialState,
  reducers: createCaseReducers(buildProducers, initialState),
});
```

The producers factory is called each time an action is dispatched which could potentially have a performance impact if actions are dispatched rapidly. This has not been thoroughly tested.
npm package: @matt-usurp/genie
Description: A simplistic service container and parameter store.
Author: Matthew Rose
Latest version: 0.1.3

# Genie

An agnostic service container and parameter store.

## Usage

> The package is in a non-1.0 release state.
> The public API and types might change or be moved within any minor version change.
> A change log will be provided where possible to allow more frictionless upgrade.

Please see the `/examples` directory for usage.
npm package: @matt-usurp/tagged-types
Description: A implementation of tagged types (discriminators) in TypeScript
Author: Matthew Rose
Latest version: 0.2.1

# Tagged Types

A tagged type (discriminator) implementation in TypeScript.

> The package is currently in a pre-1.0 release state.
> The public API (including types) might change or be removed in any minor version change.
> A change log will be provided where possible to allow more frictionless upgrade.

## Usage

Basic usage can be see in the `/examples` directory.
npm package: @matt.kantor/either-tag-symbol
Description: A symbol used to indicate that an object models the standard `Either` algebraic data type.
Latest version: 9007199254740991.9007199254740991.9007199254740991

# either-tag-symbol

A symbol used to indicate that an object models the standard `Either` algebraic
data type.

This package is not meant to be used directly. Instead, depend on
[my `either` package](https://www.npmjs.com/package/@matt.kantor/either). This
symbol lives in a separate package to allow versioning the `either` API while
mitigating [dependency hell](https://en.wikipedia.org/wiki/Dependency_hell) in
consuming packages.

---

#### What's with the version number?

`9007199254740991.9007199254740991.9007199254740991` is
[the maximum version allowed by npm](https://github.com/npm/node-semver/blob/v7.6.3/README.md#coercion).
Publishing the first stable release with this version means I can't even
accidentally publish a newer version, ensuring there will always be a single
unique symbol among all of your dependencies.

Also, I think it's funny.
npm package: @matt.kantor/option-tag-symbol
Description: A symbol used to indicate that an object models the standard `Option` algebraic data type.
Latest version: 9007199254740991.9007199254740991.9007199254740991

# option-tag-symbol

A symbol used to indicate that an object models the standard `Option` algebraic
data type.

This package is not meant to be used directly. Instead, depend on
[my `option` package](https://www.npmjs.com/package/@matt.kantor/option). This
symbol lives in a separate package to allow versioning the `option` API while
mitigating [dependency hell](https://en.wikipedia.org/wiki/Dependency_hell) in
consuming packages.

---

#### What's with the version number?

`9007199254740991.9007199254740991.9007199254740991` is
[the maximum version allowed by npm](https://github.com/npm/node-semver/blob/v7.6.3/README.md#coercion).
Publishing the first stable release with this version means I can't even
accidentally publish a newer version, ensuring there will always be a single
unique symbol among all of your dependencies.

Also, I think it's funny.
npm package: @matt.kantor/parsing
Description: A [parser combinator](https://en.wikipedia.org/wiki/Parser_combinator) library.
Latest version: 2.1.0

# parsing

A [parser combinator](https://en.wikipedia.org/wiki/Parser_combinator) library.

## Usage Example

A simple calculator for addition and subtraction of natural numbers:
```ts
import either from '@matt.kantor/either'
import {
  lazy,
  literal,
  map,
  oneOf,
  oneOrMore,
  sequence,
  type Parser,
} from '@matt.kantor/parsing'

const operator = oneOf([literal('+'), literal('-')])

const number = map(
  oneOrMore(
    oneOf([
      literal('0'),
      literal('1'),
      literal('2'),
      literal('3'),
      literal('4'),
      literal('5'),
      literal('6'),
      literal('7'),
      literal('8'),
      literal('9'),
    ]),
  ),
  Number,
)

const compoundExpression = map(
  sequence([number, operator, lazy(() => expression)]),
  ([a, operator, b]) => {
    switch (operator) {
      case '+': return a + b
      case '-': return a - b
    }
  },
)

const expression: Parser<number> = oneOf([compoundExpression, number])

console.log(parse(expression, '2+2-1').value) // logs "3"
```