open-index/open-npm huggingface dataset:
npm package: @lambdacurry/gatsby-theme
Description: ## Install the theme
Latest version: 3.1.0

# Gatsby Theme

## Install the theme

Install the theme via `npm` or `yarn`.

```shell
npm install @lambdacurry/gatsby-theme

# or

yarn add @lambdacurry/gatsby-theme
```

## Add the theme to your `gatsby-config.js`

Add the theme to the `plugins` array with the appropriate options.

_Note: Any `siteMetadata` or `manifest` options you do not provide will be set to the default below._

```js
module.exports = {
  plugins: [
    // ...other plugins
    {
      resolve: `@lambdacurry/gatsby-theme`,
      options: {
        siteMetadata: { /* Add site metadata options here */ },
        manifest: { /* Add manifest options here */ },
      }
    }
  ]
};
```

## Configure the theme options

You can modify the `siteMetadata` and `manifest` options. They have the following defaults:

```js
const defaultSiteConfig = {
  siteMetadata: {
    lang: 'en',
    charSet: 'utf-8',
    siteUrl: 'http://localhost:8000',
    title: '',
    description:
      'Customized by Lambda Curry - Kick off your next, great Gatsby project with this default starter. This barebones starter ships with the main Gatsby configuration files you might need.',
    author: 'Lambda Curry',
    titleTemplate: '% | LC Gatsby Starter',
    defaultTitle: 'LC Gatsby Starter',
    baseBodyClassName: '',
    image: '',
    ogImage: '',
    ogTitle: '',
    ogDescription: '',
    twitterSite: '',
    twitterCreator: '',
    twitterHandle: '',
    twitterImage: '',
    twitterTitle: '',
    twitterDescription: '',
    favicon: `${__dirname}/../src/images/gatsby-icon.png`,
    postsPerPage: 12
  },
  manifest: {
    icon: `${__dirname}/../src/images/gatsby-icon.png`,
    name: 'LC Gatsby Starter',
    short_name: 'LC Gatsby Starter',
    start_url: '/',
    theme_color: '#15171a',
    background_color: '#e9e9e9',
    display: `minimal-ui`
  }
};
```

## Use the `Metadata` component

To use the `Metadata` component, add it to your own layout component, and override any of the site metadata options by passing them directly as props.

```tsx
import React, { FC } from 'react';
import { Metadata } from '@lambdacurry/gatsby-theme/src/components';

export const Layout: FC<{ title: string }> = ({ children, title }) => (
  <div className="layout">
    <Metadata title={title} />

    <main>
      <h2>{title}</h2>
      {children}
    </main>
  </div>
);
```
npm package: @lambdacurry/gatsby-theme-directus
Description: ## 🚀 Quick start
Latest version: 2.1.0

# Gatsby Theme - Directus
## 🚀 Quick start

1.  **Install the theme.**

    Install the theme via `npm` or `yarn`.

    ```shell
    npm install @lambdacurry/gatsby-theme-directus

    # or

    yarn add @lambdacurry/gatsby-theme-directus
    ```

2.  **Add the theme to your `gatsby-config.js`**

    Add the theme to the `plugins` array with the appropriate options.

    _Note: All options are **required**. If you do not provide a page template, no pages will be created._

    ```js
    module.exports = {
      plugins: [
        // ...other plugins
        {
          resolve: `@lambdacurry/gatsby-theme-directus`,
          options: {
            url: `https://cms.example.com`, // Replace w/ the url for your hosted Directus instance
            authToken: `myAuthTokenExample`, // Replace w/ your Directus auth token
            templatePaths: {
              page: `${__dirname}/src/templates/page.tsx` // Replace w/ the actual path to your page template
            }
          }
        }
      ]
    };
    ```

3.  **Create the page template.**

    Create a page template at the path you provided in the plugin options (i.e., `src/templates/page.tsx`).

    ```tsx
    import React from `react`;
    import { graphql } from `gatsby`;
    import { Layout } from `../components/Layout`;

    const Page: React.FC<{ data: any }> = ({ data }) => {
      const { page } = data.directus;

      return (
        <Layout>
          <h1>{page.title}</h1>

          {page.sections.length > 0 &&
            page.sections.map(section => {
              return <section key={section.id}>{/* ... */}</section>;
            })}
        </Layout>
      );
    };

    export default Page;

    export const pageQuery = graphql`
      query ($id: ID!) {
        directus {
          page: page_by_id(id: $id) {
            title
            sections {
              id
            }
          }
        }
      }
    `;
    ```

4.  **Run your site and start customizing!**

    Run your site using `yarn develop`.

    Once the pages have been created, the plugin will output some messages to the terminal, including a list of pages that were created.

    ```shell
    success @lambdacurry/gatsby-theme-directus: 3 pages created successfully.
    success @lambdacurry/gatsby-theme-directus: Pages created at:
      - /about-us
      - /
      - /test
    ```

    Visit one of the pages in your browser (i.e., http://localhost:8000/about-us).

    Edit your page template to see your site update in real-time!
npm package: @lambdacurry/medusa
Description: E-commerce for JAMstack
Author: Sebastian Rindom
Latest version: 1.3.0

# Structure

- Models (`/models`)
This is where the data layer lives. Define data models here no logic only schema and data access layer. (Default is MongoDB so we have data access layer defined for us already)

- Services (`/services`)
This is where our business logic lives. Define services that perform calculations, update the data layer, synchronize services, etc.

- Controllers (`/api`)
This is the interface lives. Define how the user interacts with the service layer. Ensure that the user has permission to do what they intend to, authenticate requests, call service layer.

- Jobs (`/jobs`)
This is where background and recurring tasks live. Want to send some data somewhere every night, this would be where to do it. Calls service layer methods and should, like controllers, not contain business logic.

- Subscribers (`/subscribers`)
This is where events live. Want to perform a certain task whenever something else happens, this is where to do it.

# Extending the core

The core will look for files in the folders listed above, and inject the custom code.


# Checkout flow

To create an order from a cart the customer must have filled in:
- their details (shipping/billing address, email)
- shipping method 
- payment method

The steps can be done in any order. The standard path would probably be:

1. submit details (PUT /cart/shipping-address, PUT /cart/email)
2. select shipping method (PUT /cart/shipping-method)
3. enter payment details (PUT /cart/payment-method) 
4. complete order (POST /order)

Assuming that shipping methods are static within each region we can display all shipping methods at checkout time. If shipping is dynamically calculated the price of the shipping method may change, we will ask the fulfillment provider for new rates. 

Payment details can be entered at any point as long as the final amount is known. If the final amount changes after the payment details are entered the payment method may therefore be invalidated.

Within the store UI you could imagine each step being taken care of by a single button click, which calls all endpoints.
npm package: @lambdacurry/medusa-file-minio
Description: MinIO server file connector for Medusa
Author: Edin Skeja
Latest version: 1.1.9

# MinIO

Store uploaded files to your Medusa backend on MinIO.

[Plugin Documentation](https://docs.medusajs.com/plugins/file-service/minio) | [Medusa Website](https://medusajs.com) | [Medusa Repository](https://github.com/medusajs/medusa)

## Features

- Store product images on MinIO
- Support for importing and exporting data through CSV files, such as Products or Prices.
- Support for both private and public buckets.

---

## Prerequisites

- [Medusa backend](https://docs.medusajs.com/development/backend/install)
- [MinIO](https://docs.min.io/minio/baremetal/quickstart/quickstart.html)

---

## How to Install

1\. Run the following command in the directory of the Medusa backend:

  ```bash
  npm install medusa-file-minio
  ```

2\. Set the following environment variables in `.env`:

  ```bash
  MINIO_ENDPOINT=<ENDPOINT>
  MINIO_BUCKET=<BUCKET>
  MINIO_ACCESS_KEY=<ACCESS_KEY>
  MINIO_SECRET_KEY=<SECRET_KEY>
  ```

3\. In `medusa-config.js` add the following at the end of the `plugins` array:

  ```js
  const plugins = [
    // ...
    {
      resolve: `medusa-file-minio`,
      options: {
          endpoint: process.env.MINIO_ENDPOINT,
          bucket: process.env.MINIO_BUCKET,
          access_key_id: process.env.MINIO_ACCESS_KEY,
          secret_access_key: process.env.MINIO_SECRET_KEY,
      },
    },
  ]
  ```

---

## Test the Plugin

1\. Run the following command in the directory of the Medusa backend to run the backend:

  ```bash
  npm run start
  ```

2\. Upload an image for a product using the admin dashboard or using [the Admin APIs](https://docs.medusajs.com/api/admin#tag/Upload).

---

## Additional Resources

- [MinIO Plugin Documentation](https://docs.medusajs.com/plugins/file-service/minio)
npm package: @lambdacurry/medusa-file-s3
Description: AWS s3 file connector for Medusa
Author: Sebastian Mateos Nicolajsen
Latest version: 1.1.15

# S3

Store uploaded files to your Medusa backend on S3.

[Plugin Documentation](https://docs.medusajs.com/plugins/file-service/s3) | [Medusa Website](https://medusajs.com) | [Medusa Repository](https://github.com/medusajs/medusa)

## Features

- Store product images on S3
- Support for importing and exporting data through CSV files, such as Products or Prices.
- Support for Bucket Policies and User Permissions.

---

## Prerequisites

- [Medusa backend](https://docs.medusajs.com/development/backend/install)
- [S3](https://aws.amazon.com/s3)

---

## How to Install

1\. Run the following command in the directory of the Medusa backend:

```bash
npm install medusa-file-s3
```

2\. Set the following environment variables in `.env`:

```bash
S3_URL=<YOUR_BUCKET_URL>
S3_BUCKET=<YOUR_BUCKET_NAME>
S3_REGION=<YOUR_BUCKET_REGION>
S3_ACCESS_KEY_ID=<YOUR_ACCESS_KEY_ID>
S3_SECRET_ACCESS_KEY=<YOUR_SECRET_ACCESS_KEY>
```

3\. In `medusa-config.js` add the following at the end of the `plugins` array:

```js
const plugins = [
  // ...
  {
    resolve: `medusa-file-s3`,
    options: {
      s3_url: process.env.S3_URL,
      bucket: process.env.S3_BUCKET,
      region: process.env.S3_REGION,
      access_key_id: process.env.S3_ACCESS_KEY_ID,
      secret_access_key: process.env.S3_SECRET_ACCESS_KEY,
      aws_config_option: {},
    },
  },
]
```

---

## Test the Plugin

1\. Run the following command in the directory of the Medusa backend to run the backend:

```bash
npm run start
```

2\. Upload an image for a product using the admin dashboard or using [the Admin APIs](https://docs.medusajs.com/api/admin#tag/Upload).

---

## Additional Resources

- [S3 Plugin Documentation](https://docs.medusajs.com/plugins/file-service/s3)
npm package: @lambdacurry/medusa-forms
Description: Comprehensive form and data management component library for Medusa Admin with controlled form components and EditableTable
Author: Lambda Curry
Latest version: 0.3.0-alpha.7

# @lambdacurry/medusa-forms

Form and data management components for Medusa Admin applications.

## Installation

```bash
npm install @lambdacurry/medusa-forms
```

**Peer dependencies:** See [Requirements](#requirements) below.

## Components

- **Controlled Form Components** - React Hook Form integrated inputs, selects, checkboxes, etc.
- **EditableTable** - Inline-editing table with validation, auto-save, sorting, filtering, and URL state persistence
- **UI Components** - Low-level form components

## Documentation

📚 **[Interactive Examples & Full Documentation](https://lambda-curry.github.io/forms)**

Component-specific guides:
- [EditableTable Complete Guide](./src/editable-table/README.md) - Setup, providers, examples, troubleshooting

## Quick Start

```typescript
// Controlled form components
import { ControlledInput, ControlledSelect } from '@lambdacurry/medusa-forms/controlled';

// EditableTable
import { EditableTable } from '@lambdacurry/medusa-forms/editable-table';

// UI components
import { Input, Select } from '@lambdacurry/medusa-forms/ui';
```

See [Storybook](https://lambda-curry.github.io/forms) for live examples.

## Requirements

**All components:**
- React 18.3+ or 19.0+
- @medusajs/ui 4.0.0+
- @medusajs/icons 2.0.0+
- react-hook-form 7.49.0+

**EditableTable additional:**
- @tanstack/react-query 5.0.0+
- @tanstack/react-table 8.21.0+
- nuqs 2.6.0+
- use-debounce 10.0.0+
- lucide-react 0.263.0+

See [EditableTable docs](./src/editable-table/README.md#installation--peer-dependencies) for detailed setup.

## License

MIT
npm package: @lambdacurry/medusa-fulfillment-shipstation
Description: A Medusa fulfillment provider plugin for ShipStation
Author: Derek Wene
Latest version: 0.0.35

# Medusa ShipStation Fulfillment Plugin

## What it does.

Medusa allows us to create fulfillment plugins to manage integrations with shipping providers. This plugin manages an integration with ShipStation, which we can use to create shipping labels, packing slips, etc for many different providers (usps, ups, fedex, etc).

This plugin allows us to configure different shipping options from providers in the Medusa Admin. It also creates orders in ShipStation when orders when a fulfillment order is created in Medusa.

If you setup webhooks for shipstation, they will notify Medusa when the order is shipped (when a label is created), and provide medusa with tracking numbers.

For more information on how the fulfillment API works, check out this medusa doc: https://docs.medusajs.com/guides/fulfillment-api

## Installing

You install this plugin just like any other, in the `medusa-config.js` file.

It requires 2 data props, and takes 2 optional ones.

```
  {
    resolve: `@lambdacurry/medusa-fulfillment-shipstation`,
    options: {
      api_key: 'shipstation-api-key',
      api_secret: 'shipstation-secret-key',
      weight_units: 'ounces', // optional property, valid values are 'ounces', 'pounds', or 'grams'.
      dimension_units: 'inches' // optional property, valid values are 'centimeters' or 'inches'.
    }
  }

```

If you would like shipping notifications connected back into medusa, you will want to setup shipstation webhooks also.

You can do this in the ShipStation dashboard at https://ship13.shipstation.com/settings/integrations/Webhooks

You need to configure a "On Orders Shipped" webhook that points to ${MEDUSA_URL}/shipstation/webhook

## Known limitations

Currently this plugin does not handle returns or swaps.
Currently this plugin does not handle generating the shipping price on a per-cart basis. You must set a flat rate.

## Help

If you need any help, you can reach out to derek@lambdacurry.dev
npm package: @lambdacurry/medusa-js
Description: Client for Medusa Commerce Rest API
Author: Oliver Juhl
Latest version: 1.3.10

# Medusa JS Client

[![Version](https://img.shields.io/npm/v/stripe.svg)](https://www.npmjs.org/package/@medusajs/medusa-js)

The Medusa JS Client provides easy access to the Medusa API from a client written in Typescript.

## Documentation

You can learn more about how to install and use this client in [our documentation](https://docs.medusajs.com/js-client/overview).

To learn more about the API endpoints that this client allows you to access check out our [API reference](https://docs.medusajs.com/api/store).
npm package: @lambdacurry/medusa-payment-stripe
Description: Stripe Payment provider for Meduas Commerce
Author: Sebastian Rindom
Latest version: 1.1.55

# medusa-payment-stripe

Add Stripe as a Payment Provider.

Learn more about how you can use this plugin in the [documentaion](https://docs.medusajs.com/add-plugins/stripe).

## Options

```js
{
  api_key: "STRIPE_API_KEY",
  webhook_secret: "STRIPE_WEBHOOK_SECRET",
  automatic_payment_methods: true
}
```

## Automatic Payment Methods

If you wish to use [Stripe's automatic payment methods](https://stripe.com/docs/connect/automatic-payment-methods) set the `automatic_payment_methods` flag to true.