open-index/open-npm huggingface dataset:
npm package: @lifeomic/turbo-remote-cache
Description: remote cache server for turbo repo
Latest version: 1.0.3

# turbo remote cache

A remote cache server backed by S3.

This server is designed to run within a CI environment where it already has
access to a S3 bucket. So no authentication yet.

## server

reference:
https://github.com/vercel/turbo/blob/main/cli/internal/client/client.go

Example request:

```
https://api.vercel.com/v8/artifacts/09b4848294e347d8?teamID=team_lMDgmODIeVfSbCQNQPDkX8cF
```

authentication over bearer token.

### configuration

* AWS access is either assumed or exists already. it will perform `s3:GetObject`
and `s3:PutObject` actions.
* configure s3 bucket name via environment variable `STORAGE_PATH`:
  ```
  STORAGE_PATH=my-turbo-cache-storage
  AWS_REGION=us-east-1
  ```

Run `yarn build` then `yarn start`.

If you want to change the TCP port, update `bin/start_server.ts`.

### data model

the cache will be saved in S3:

- bucket name is configured via environment variable `STORAGE_PATH`.
- the object key is `{teamSlug}/{hash}`.

### upload cache

```
PUT /v8/artifacts/:hash?slug=turbo-team
Authorization: Bearer {{token}}
header: x-artifact-client-ci
```

response:

```
{ok: true}

```

### download cache

```
GET /v8/artifacts/:hash?slug=turbo-team
Authorization: Bearer {{token}}
```

response:

```
200
Content-Length: n
Content-Type: application/octet-stream
x-artifact-tag: xxx

{ok: true}
```

error response:

```
404

{ok: false}
```

### RecordAnalyticsEvents

```
POST /v8/artifacts/events
Authorization: Bearer {{token}}
```

see details
[here](https://github.com/vercel/turbo/blob/baf5c94eac2edb2d6dc6db46644082fbd55fd57d/cli/internal/client/analytics.go#L9)

## client

Setup environment variable:

```
TURBO_API=http://localhost:41300
TURBO_TOKEN=foo
TURBO_TEAM=a-name
```

When using this remote cache implementation, a bogus `TURBO_TOKEN` works. It
suggests using the repo name as value of `TURBO_TEAM` to separate cache from
repo to repo.
npm package: @lifeomic/twilio-webhook-validator-koa
Description: Koa middleware for Twilio webhook request validation
Author: LifeOmic
Latest version: 1.2.0

# twilio-webhook-validator-koa

[![npm](https://img.shields.io/npm/v/@lifeomic/twilio-webhook-validator-koa.svg)](https://www.npmjs.com/package/@lifeomic/twilio-webhook-validator-koa)
[![Build Status](https://travis-ci.org/lifeomic/twilio-webhook-validator-koa.svg?branch=master)](https://travis-ci.org/lifeomic/twilio-webhook-validator-koa)
[![Greenkeeper badge](https://badges.greenkeeper.io/lifeomic/twilio-webhook-validator-koa.svg)](https://greenkeeper.io/)

Koa middleware that provides Twilio request validation to Twilio webhooks.

# Example usage

```typescript
import * as Koa from 'koa';
import * as Router from 'koa-router';
import * as bodyParser from 'koa-bodyparser';
import { webhookValidator } from '@lifeomic/twilio-webhook-validator-koa';

const app = new Koa();
const router = new Router();

router.post(
  '/twilio',
  bodyParser(),
  webhookValidator({
    authToken: process.env.TWILIO_AUTH_TOKEN
  }),
  (ctx) => {
    ctx.body = `<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Say>Twilio request validation succeeded!</Say>
</Response>`;
  }
);

app.use(router.routes()).listen(3000);
```

# Example usage with custom host and port (e.g. behind proxy)

```typescript
webhookValidator({
  authToken: process.env.TWILIO_AUTH_TOKEN,
  host: ctx.header['x-forwarded-host'],
  protocol: ctx.header['x-forwarded-proto']
});
```
npm package: @lifeomic/typescript-config
Description: Export the Typescript Configuration
Author: Development
Latest version: 3.1.0

# typescript-config
Export the Typescript Configuration

[The extends property](https://www.typescriptlang.org/tsconfig#extends) "... path may use Node.js style resolution"

Add `@lifeomic/typescript-config` as a dev dependency, put the following in the `tsconfig.json` file

```JSON
{
  "extends": "@lifeomic/typescript-config",
  ...
}
```

Latest Breaking changes:
* Builds to ES2022 output for nodejs 18
npm package: @lifeparticle/ap-style-title-case
Description: AP style title case
Author: lifeparticle
Latest version: 1.5.0

This project is inspired by [ap-style-title-case](https://github.com/words/ap-style-title-case).

# Install

```shell
npm i @lifeparticle/ap-style-title-case
```

# Use

## React

```js
import apCase from "@lifeparticle/ap-style-title-case";
import "./App.css";
import { useState } from "react";

function App() {
	const [title, setTitle] = useState("");
	return (
		<div>
			<input type="text" onChange={(e) => setTitle(apCase(e.target.value))} />
			<input type="text" value={title} />
		</div>
	);
}

export default App;
```

# Test

```shell
npm i --save-dev jest
npm test
```

# Algorithm

1. Capitalize first word of the title
2. Capitalize last word of the title
3. Don't capitalize these words

```
"a","an","and","as","at","but","by","for","if","in","nor","of","off","on","or","per","so","the","to","up","via","yet"
```

4. Capitalize other words

# Resources

1. https://www.bkacontent.com/how-to-correctly-use-apa-style-title-case/
2. https://apastyle.apa.org/style-grammar-guidelines/capitalization/title-case
npm package: @liferay-editor-custom-fields/fragment-classes
Description: Easy to access, enumerated classes for fragments
Author: lbehar@xtivia.com
Latest version: 26.0.1

# Liferay Custom Fields - Fragment Style Classes

Easy to access, enumerated classes for fragments.

## Supported Liferay Versions
This app supports DXP versions in their premium support phase at the time of this release.
- 2025 Q4
- 2025 Q3
- 2025 Q2
- 2025 Q1
- 2024 Q1
- 7.4

If you need compatibility for older DXP releases, you can create a legacy version with a year that supports the release, and submit a PR.

## Getting Started

This is meant to be imported into a client extension. Since this is the first app using the framework, it's already included as an example.

- If you don't have the custom fields client extension yet, here's how to get it:
  - In a terminal, navigate to your Liferay workspace's _client-extensions_ folder
  - Clone the client extension into your folder using `git clone git@github.com:lbeharxtivia/liferay-editor-custom-fields-client-extension.git`
  - Run `blade gw clean deploy` to deploy your new client extension
- Go to your custom fields client extension folder in terminal
- Install the fragment-classes module `yarn add @liferay-editor-custom-fields/fragment-classes^74.0.0`
- Import and call the init function in src/index.ts

```
import initFragmentClasses from '@liferay-editor-custom-fields/fragment-classes';

initFragmentClasses();
```


## How to use
- Create a css rules for a class beginning in `fragment-style-` anywhere on the site, whether in the theme a css client extension, or somewhere else.
- In the page editor, choose the fragment you want to style.
- The client extension will insert a "Fragment Style Class" dropdown to the top of your General tab, add then populate it with a list of classes beginning in `fragment-style-` defined in CSS rules.
- Choose the class you want to style the fragment with. The styles will be applied automatically.

![](./docs/1.png)

![](./docs/2.png)

![](./docs/3.png)


## License

MIT Licensed. Copyright (c) Xtivia 2026.
npm package: @liferay-editor-custom-fields/image-enhancements
Description: Adds focal point and blurhash using the Liferay Editor Custom Fields framework
Author: lbehar@xtivia.com
Latest version: 26.0.1

# Liferay Editor Custom Fields - Image Enhancements

Adds focal point and blurhash to Images in Liferay Structured Web Content and Fragments

![](./docs/screenshots/1-fields.png)

![](./docs/screenshots/2-focal-point-content.mp4)

![](./docs/screenshots/3-focal-point-fragment.mp4)

![](./docs/screenshots/4-blurhash-with-video.mp4)

![](./docs/screenshots/5-responsive-aspect-ratio.mp4)

## Supported Liferay Versions
This app supports DXP versions in their premium support phase at the time of this release.
- 2025 Q4
- 2025 Q3
- 2025 Q2
- 2025 Q1
- 2024 Q1
- 7.4

If you need compatibility for older DXP releases, you can create a legacy version with a year that supports the release, and submit a PR.

## Getting Started

This is meant to be imported into a client extension. Since this is the first app using the framework, it's already included as an example.

- In a terminal, navigate to your Liferay workspace's _client-extensions_ folder
- Clone the client extension into your folder using `git clone git@github.com:lbeharxtivia/liferay-editor-custom-fields-client-extension.git`
- Run `blade gw clean deploy` to deploy your new client extension

## Creating Liferay Content/Fragments with the provided files

A web content structure, web content template, fragment config, and fragment HTML have been provided for you at https://github.com/lbeharxtivia/liferay-editor-custom-fields-image-enhancements/tree/7.4/docs. Use those to create structured Web Content and Fragments respectively.

## License

MIT Licensed. Copyright (c) Xtivia 2026.
npm package: @liferay-react/boilerplate-modulo
Description: Boilerplate Modulo
Latest version: 1.1.2

# @liferay-react/boilerplate-modulo

![NPM Version](https://img.shields.io/npm/v/@liferay-react/boilerplate-modulo)
![License](https://img.shields.io/npm/l/@liferay-react/boilerplate-modulo)
![GitHub](https://img.shields.io/badge/GitHub-Repository-blue?logo=github)

> CLI para geração de boilerplates de módulos React para Liferay.

[Acesse o repositório no GitHub](https://github.com/Benhur-Silveira/gx2-react-liferay-boilerplate-module)

Este pacote fornece uma interface de linha de comando (CLI) fácil de usar para criar novos módulos React compatíveis com o Liferay, já configurados com as melhores práticas, suporte a SASS, e compatibilidade com diferentes versões do Java.

## 🚀 Como usar

Você pode executar o gerador diretamente usando `npx`:

```bash
npx @liferay-react/boilerplate-modulo
```

Ou instalar globalmente:

```bash
npm install -g @liferay-react/boilerplate-modulo
create-module-boilerplate
```

## 🛠️ O que ele faz?

O gerador irá guiá-lo através de uma série de perguntas para configurar seu novo projeto:

1.  **Nome do Projeto**: Define o nome do diretório e do portlet.
2.  **Caminho do Liferay**: Localização do seu bundle Liferay (para deploy automático).
3.  **Categoria do Portlet**: Onde o portlet aparecerá no menu de widgets do Liferay.
4.  **Shared Bundle**: Configure se o projeto usará um bundle compartilhado de dependências (como o `@liferay-react/boilerplate-shared`).
5.  **Versão do Java**: Ajusta automaticamente as importações de `jakarta.*` para `javax.*` se você estiver usando uma versão do Java anterior à 21.

## ✨ Funcionalidades

- **React Ready**: Configurado com Babel para suporte total a React e JSX.
- **Liferay NPM Bundler**: Integração completa com o bundler oficial do Liferay.
- **Suporte a Estilos**: Suporte nativo para CSS e SASS/SCSS.
- **Internacionalização**: Estrutura de `Language.properties` pronta para uso.
- **Configuração Dinâmica**: Gera arquivos `.npmbundlerrc`, `.npmbuildrc` e `package.json` baseados nas suas respostas.
- **Java 21+ Ready**: Já preparado para a transição do ecossistema Java (Jakarta EE), com fallback inteligente.

## 📁 Estrutura do Projeto Gerado

```text
meu-modulo/
├── assets/             # Arquivos estáticos e CSS
├── features/           # Configurações do Liferay (localization, configuration.json)
├── src/                # Código fonte React
├── .babelrc           # Configuração do Babel
├── .npmbuildrc        # Configurações de build do Liferay
├── .npmbundlerrc      # Configurações do Bundler
└── package.json       # Scripts e dependências
```

## 📜 Scripts Disponíveis

No projeto gerado, você terá os seguintes comandos:

- `npm run build`: Compila o código fonte e gera o bundle.
- `npm run deploy`: Compila e faz o deploy automático para o seu bundle Liferay.
- `npm run start`: Inicia o processo de build em modo watch.

---

## 📝 Licença

Este projeto está sob a licença [MIT](LICENSE).

Liferay © 2024
npm package: @liferay/bs3-bs4-compat
Description: Bootstrap 3 to 4 Compatibility Layer for Liferay DXP
Author: Liferay Frontend Infrastructure Team
Latest version: 1.0.3

# Liferay Bootstrap 3 to 4 Compatibility Layer

> **NOTE:** This package is meant to work in DXP 7.4 GA1 and we cannot garauntee it working with future releases of Liferay DXP. We will _not_ be actively testing & maintaining this project for future releases of DXP and will only be fixing reported bugs for DXP 7.4 GA1.

---

With the removal of the Bootstrap 3 compatibility layer in Liferay DXP ([LPS-123359](https://issues.liferay.com/browse/LPS-123359)), code that previously relied on legacy Bootstrap 3 markup no longer behaves as expected.

This built-in layer was always meant to work as a temporary band-aid that projects could use to get an upgrade done fast and out the door. Once the upgrade was completed, it was advised that the project was updated and the compat layer disabled as to speed up the site.

With the removal of the built-in layer, we speed up all pages by default avoiding to load a big amount of unnecessary CSS. However, developers still relying on this might have a hard time upgrading, so the goal of this project is to provide that layer as an external package.

## Installation

```sh
$ npm install @liferay/bs3-bs4-compat
// or
$ yarn add @liferay/bs3-bs4-compat
```

## Use

This compatibility layer is important to have at build time because our sass variables rely on ClayCSS. In order to use this layer, you must properly import it into your theme or wherever you load ClayCSS at.

### Import Order

In order for sass to compile correctly, you must import them correctly so that it can get the right variables from ClayCSS.

-   Clay CSS: Clay must be added first so that the BS3-BS4 layer can read sass variables that come from Clay.
-   [`_atlas_variables.scss`](scss/_atlas_variables.scss): This file contains variables specific to the atlas theme.
-   [`_components.scss`](scss/_components_.scss): This file imports all component specific style overrides.
-   [`_variables.scss`](scss/_variables.scss): This file contains variables for toggling specific compat components off.

_Note: all three compat files are imported into main.scss in that specific order._

### Adding to a Theme

You need to import the `.scss` files into your theme. Below is an example of adding it to the styled and classic themes in DXP.

**Styled Theme**

`modules/apps/frontend-theme/frontend-theme-styled/src/css/clay.scss`

```diff
@import 'clay/base';

+ @import '@liferay/bs3-bs4-compat/scss/variables';

+ @import '@liferay/bs3-bs4-compat/scss/components';
```

**Classic Theme**

`modules/apps/frontend-theme/frontend-theme-classic/src/css/clay.scss`

```diff
@import 'clay/atlas';

+ @import '@liferay/bs3-bs4-compat/scss/variables';

+ @import '@liferay/bs3-bs4-compat/scss/atlas_variables';

+ @import '@liferay/bs3-bs4-compat/scss/components';
```

After making this change and deploying to your DXP bundle, you should see the compatibility layer working.