open-index/open-npm huggingface dataset:
npm package: @jamesgopsill/crossref-client
Description: A Typescript client for the Crossref API.
Author: James Gopsill
Latest version: 1.1.0

# Crossref API Typescript Client

The client has been developed as part of a research programme investigating agent-based manufacturing systems. The client has been used in our systematic literature reviews. It is isomorphic capable of running on server (Node.js) and client-side (Browser) applications.

## Using crossref-client

To install the package, use the following code. I am aiming to put it onto npm soon.

```
pnpm install @jamesgopsill/crossref-client
```

You can then use it in your code like so (see the `examples` folder for more implementations):

**Typescript**

```typescript
import { CrossrefClient, QueryWorksParams } from "@jamesgopsill/crossref-client"

const client = new CrossrefClient()

const search: QueryWorksParams = {
	queryAuthor: "Richard Feynman",
}
const r = await client.works(search)
if (r.ok && r.status == 200) console.log(r.content)
```

Selecting fields to return.

```typescript
import {
	CrossrefClient,
	QueryWorksParams,
	WorkSelectOptions,
} from "@jamesgopsill/crossref-client"

const client = new CrossrefClient()

const search: QueryWorksParams = {
	queryAuthor: "Richard Feynman",
	select: [WorkSelectOptions.CONTENT_DOMAIN],
	sample: 10,
}
const r = await client.works(search)
if (r.ok && r.status == 200) console.log(r.content)
```

**Javascript (ESM)**

```javascript
import { CrossrefClient } from "@jamesgopsill/crossref-client"

const client = new CrossrefClient()

const search = {
	queryAuthor: "Richard Feynman",
}
const r = await client.works(search)
if (r.ok && r.status == 200) console.log(r.content)
```

**Javascript (CJS)**

```javascript
const { CrossrefClient } = require("@jamesgopsill/crossref-client")

const client = new CrossrefClient()

const search = {
	queryAuthor: "Richard Feynman",
}
client.works(search).then((r) => {
	if (r.ok && r.status == 200) console.log(r.content)
})
```

## Documentation

The docs have been produced using [TypeDoc](https://typedoc.org/) and can be accessed [here](https://jamesgopsill.github.io/crossref-client/). More details on the API can be found at [Crossref API](https://api.crossref.org/swagger-ui/index.html).

## Contributing

We would love to have additional contributors to the project to help us maintain and add functionality to the project.

## Support the Project

The project has been supported by the [EPSRC-funded Brokering Additive Manufacturing project (EP/V05113X/1)](https://gow.epsrc.ukri.org/NGBOViewGrant.aspx?GrantRef=EP/V05113X/1). More details on the project can be found at the [Design Manufacturing Futures Lab](https://dmf-lab.co.uk/) website.

If you end up using the client a lot, please consider sponsoring the project to support the continued development and maintanence of the client.
npm package: @jamesgopsill/eiger-client
Description: A client to the Markforged Eiger API for AM machine fleet management.
Author: James Gopsill
Latest version: 0.0.1

# Eiger.io Typescript API client

The client has been developed as part of a research programme investigating agent-based manufacturing systems ([Brokering Additive Manufacturing](https://dmf-lab.co.uk/brokering-additive-manufacturing/)). It is isomorphic capable of running on server (Node.js) and client-side (Browser) applications.

## Using the client

To install the package, use:

```
pnpm install @jamesgopsill/eiger-client
```

Use it in your code like so:

**Typescript / Javascript (ESM)**

```typescript
import { EigerClient } from "@jamesgopsill/eiger-client"

// Create a new client.
const client = new EigerClient("ACCESS_KEY", "SECRET_KEY")

const r = await client.devices()
if (r.ok) {
	console.log(r.data)
}
```

**Javascript (CJS)**

```javascript
const { EigerClient } = require("@jamesgopsill/octoprint-client")

// Create a new client.
const client = new EigerClient("ACCESS_KEY", "SECRET_KEY")

const r = await client.devices()
if (r.ok) {
	console.log(r.data)
}
```

## Client Docs

The client documentation have been produced using [TypeDoc](https://typedoc.org/) and can be accessed [here](https://jamesgopsill.github.io/eiger-client/). More details on the API can be found at [Eiger.io](https://www.eiger.io/developer).

## Contributing

We would love to have additional contributors to the project to help us maintain and add functionality to the project.

## Support the Project

The project has been supported by the [EPSRC-funded Brokering Additive Manufacturing project (EP/V05113X/1)](https://gow.epsrc.ukri.org/NGBOViewGrant.aspx?GrantRef=EP/V05113X/1). More details on the project can be found at the [Design Manufacturing Futures Lab](https://dmf-lab.co.uk/) website.

To donate and provide continued support, please consider sponsoring the [maintainer](https://github.com/sponsors/jamesgopsill).

## References

- [Brokering Additive Manufacturing](https://dmf-lab.co.uk/brokering-additive-manufacturing/)
npm package: @jamesgopsill/hp-3d-device-client
Description: A client for working with HPs 3D device printing API.
Author: James Gopsill
Latest version: 0.0.1

# HP 3D Printing APIs Typescript API client

The client has been developed as part of a research programme investigating agent-based manufacturing systems ([Brokering Additive Manufacturing](https://dmf-lab.co.uk/brokering-additive-manufacturing/)). It is isomorphic capable of running on server (Node.js) and client-side (Browser) applications.

**Current Under Construction and Untested**

## Client Docs

The client documentation have been produced using [TypeDoc](https://typedoc.org/) and can be accessed [here](https://jamesgopsill.github.io/hp-3d-device-client). More details on the API can be found at [HP](https://developers.hp.com/3d-printing-apis).

## Contributing

We would love to have additional contributors to the project to help us maintain and add functionality to the project.

## Support the Project

The project has been supported by the [EPSRC-funded Brokering Additive Manufacturing project (EP/V05113X/1)](https://gow.epsrc.ukri.org/NGBOViewGrant.aspx?GrantRef=EP/V05113X/1). More details on the project can be found at the [Design Manufacturing Futures Lab](https://dmf-lab.co.uk/) website.

To donate and provide continued support, please consider sponsoring the [maintainer](https://github.com/sponsors/jamesgopsill).
npm package: @jamesgopsill/myminifactory-client
Description: A client for working with the MyMiniFactory API.
Author: James Gopsill
Latest version: 0.0.1

# MyMiniFactory Typescript API client

The client has been developed as part of a research programme investigating agent-based manufacturing systems ([Brokering Additive Manufacturing](https://dmf-lab.co.uk/brokering-additive-manufacturing/)). It is isomorphic capable of running on server (Node.js) and client-side (Browser) applications.

**Current Under Construction and Untested**

## Client Docs

The client documentation have been produced using [TypeDoc](https://typedoc.org/) and can be accessed [here](https://jamesgopsill.github.io/myminifactory-client). More details on the API can be found at [MyMiniFactory](https://www.myminifactory.com/api-doc/index.html).

## Contributing

We would love to have additional contributors to the project to help us maintain and add functionality to the project.

## Support the Project

The project has been supported by the [EPSRC-funded Brokering Additive Manufacturing project (EP/V05113X/1)](https://gow.epsrc.ukri.org/NGBOViewGrant.aspx?GrantRef=EP/V05113X/1). More details on the project can be found at the [Design Manufacturing Futures Lab](https://dmf-lab.co.uk/) website.

To donate and provide continued support, please consider sponsoring the [maintainer](https://github.com/sponsors/jamesgopsill).
npm package: @jamesgopsill/octoprint-client
Description: Client for interacting with the OctoPrint API
Author: James Gopsill
Latest version: 0.3.0

# OctoPrint Client

The client has been developed as part of a research programme investigating agent-based manufacturing systems. It is isomorphic capable of running on server (Node.js) and client-side (Browser) applications.

## Using octoprint-client

To install the package, use the following code. I am aiming to put it onto npm soon.

```
pnpm install @jamesgopsill/octoprint-client
```

You can then use in your code:

**Typescript / Javascript (ESM)**

```typescript
import { OctoPrintClient } from "@jamesgopsill/octoprint-client"

// Create a new client.
const client = new OctoPrintClient("OCTOPRINT_URL", "API_KEY")

const response = await client.version()
if (response.ok) {
	console.log(response.data)
}
```


**Javascript (CJS)**

```javascript
const octo = require("@jamesgopsill/octoprint-client")

// Create a new client.
const client = new octo.OctoPrintClient("OCTOPRINT_URL", "API_KEY")

const response = await client.version()
if (response.ok) {
	console.log(response.data)
}
```

## Testing

To test the client, we use the OctoPrint docker image and spin up a local instance that the client can interface with. To spin up an instance, you will need docker installed. Then simply `cd` into the `__tests__/octoprint` directory and run:

```
docker-compose up
```

To create the Octoprint instance that can be accessed at `http://localhost`.

## Client Docs

The docs have been produced using [TypeDoc](https://typedoc.org/) and can be accessed [here](https://jamesgopsill.github.io/octoprint-client/).

## Contributing

We would love to have additional contributors to the project to help us maintain and add functionality to the project.

## Support the Project

The project has been supported by the [EPSRC-funded Brokering Additive Manufacturing project (EP/V05113X/1)](https://gow.epsrc.ukri.org/NGBOViewGrant.aspx?GrantRef=EP/V05113X/1). More details on the project can be found at the [Design Manufacturing Futures Lab](https://dmf-lab.co.uk/) website.

To donate and provide continued support, please go to **[TODO]**.

## References

- [Brokering Additive Manufacturing](https://dmf-lab.co.uk/brokering-additive-manufacturing/)
- [OctoPrint](https://octoprint.org/)
- [OctoPrint on Docker Hub](https://hub.docker.com/r/octoprint/octoprint)
- [Git autocrlf](https://tanutaran.medium.com/solving-git-lf-will-be-replaced-by-crlf-7ca84eb0aad4)

- [Typed Responses](https://www.carlrippon.com/fetch-with-async-await-and-typescript/)
npm package: @jamesgopsill/prettier-plugin-bib
Description: A prettier plugin for BibTeX files.
Author: James Gopsill
Latest version: 0.1.0

# Prettier Plugin Bib

A prettier plugin for BibTeX files.

```
pnpm install prettier @jamesgopsill/prettier-plugin-bib
```

The tool should work out of the box using the indentation rules you have configured in prettier. Plenty more testing and options to come.

# Plans

- Add option to used quotes rather than braces.
- Add option to omit/remove keys that some provide but often not get used in a manuscript (e.g., abstract).

# References

- [PEG.js](https://pegjs.org/)
- [bibtex-parse](https://www.npmjs.com/package/bibtex-parse)
- [bibtex-tidy](https://flamingtempura.github.io/bibtex-tidy/index.html)
npm package: @jamesgopsill/prusa-link
Description: A Typescript PrusaLink client
Author: James Gopsill
Latest version: 0.1.2

# A Typescript Client for Prusa Link

Start building your own 3D printing workflows.

The package has been built from the [Prusa-Web-Link OpenAPI](https://github.com/prusa3d/Prusa-Link-Web/blob/master/spec/openapi.yaml) specification and tested using our Prusa minis using 5.x firmware. The typings are mostly there but any issues then please raise them and we can correct them. There are a few endpoints (mainly cameras) that need completing but we need some of those devices to test against (Prusa, if you come across this, like it and have some spare devices then I am more than happy to finish off the client and test it 😊).

##

To install the package, use the following code (switch out `pnpm` for your chosen package manager `npm`, `yarn` or `bun`).

```
pnpm install @jamesgopsill/prusa-link
```

## Example

```typescript
import { PrusaLink, PrusaLinkConfig } from "@jamesgopsill/prusa-link"

const config: PrusaLinkConfig = {
	// You can find these in your printer settings.
	ip: "",
	username: "",
	password: "",
	debug: false,
}

const link = new PrusaLink(config)

const r = await link.version.get()
if (r.content) console.log(r.content)
```

## Documentation

The docs have been produced using [TypeDoc](https://typedoc.org/) and can be accessed [here](https://jamesgopsill.github.io/prusa-link).

## Running the tests

To run the test suite, you will need to create a `setup.ts` file in the `__tests__` folder and paste in the following lines of code with your config. And, have a prusa printer on your network 😊.

```typescript
import { beforeAll } from "bun:test"
import { PrusaLink, PrusaLinkConfig } from "../src/index.ts"

export let link: PrusaLink

beforeAll(() => {
	const config: PrusaLinkConfig = {
		ip: "",
		username: "",
		password: "",
		debug: true,
	}
	link = new PrusaLink(config)
})
```

## References

- [Brokering Additive Manufacturing](https://dmf-lab.co.uk/brokering-additive-manufacturing/)