open-index/open-npm huggingface dataset:
npm package: @stepwisehq/prosemirror-collab-commit
Description: Commit-based collab plugin for ProseMirror
Author: ProTip
Latest version: 1.0.5

prosemirror-collab-commit
=========================

> [!NOTE]
> This project is *not* dead. ProseMirror's core packages change extremely infrequently; including bug fixes.

Commit-based collaborative editing plugin for ProseMirror.

This solves two key problems with `prosemirror-collab` through server-side
rebasing without the use of CRDTs:

1. **Throughput**: 200 active clients per 1s of commit delay is feasible
   depending on backend implementation and edit characteristics.
2. **Fairness**: Users with high latencies will not have their edits blocked by
   users with low latencies. This will **greatly smooth the collab experience** on
   documents with high levels of concurrent edits.

## How it works

The performance issues with `prosemirror-collab` and how this plugin solves them
are written about in [ProseMirror Collab Performance](https://stepwisehq.com/blog/2023-07-25-prosemirror-collab-performance/).

## Usage

Abridged usage examples that should be familar to those who have used `prosemirror-collab`.

As with `prosemirror-collab` the actual backend implementation is left to the
developer. `TODO: Implement` indicates code the implementor must write.

**Client Send Commit**

```typescript
import { collab, sendableCommit } from "@stepwisehq/prosemirror-collab-commit/collab-commit"

const state = EditorState.create({schema}, {plugins: [collab()]})

//Some edits later...

const commit = sendableCommit(state)
await sendCommitToServer(commit.toJSON()) // TODO: Implement
```

**Client Receive Commit**

```typescript
import { receiveCommitTransaction } from "@stepwisehq/prosemirror-collab-commit/collab-commit"

//...

const commitJson = await fetchNextCommitFromServer() // TODO: Implement
const commit = Commit.FromJSON(state.schema, commitJson)
const tr = receiveCommitTransaction(state, commit)
state = state.apply(tr)
```


**Authority Map Commit**

```typescript
import { applyCommitJSON } from "@stepwisehq/prosemirror-collab-commit/apply-commit"

const newCommitJson = await getCommitsFromClient() // TODO: Implement

const version = await getDocumentVersion() // TODO: Implement
const doc = await getDocument() // TODO: Implement
const newCommits = await getDocumentCommitsSince(commitJson.version) // TODO: Implement
const schemaSpec = await getSchemaSpec() // TODO: Implement

const schema = new Schema(schemaSpec)

const {docJson, commitJson} = applyCommitJSON(version, schema, doc, newCommits, newCommitJson)

await saveDocument(docJson) // TODO: Implement
await broadcastCommit(commitJson) // TODO: Implement
```
npm package: @stepworksdev/tiny
Description: Removes all spaces from a string
Latest version: 1.0.0

# tiny

[![npm (scoped)](https://img.shields.io/npm/v/@stepworksdev/tiny.svg)](https://github.com/StepworksRecovery/tiny)
[![npm bundle size (minified)](https://img.shields.io/bundlephobia/min/@stepworksdev/tiny.svg)](https://github.com/StepworksRecovery/tiny)

A project to test publishing to NPM.

## Install

```bash
npm install @stepworksdev/tiny
```

## Usage

```js
const tiny = require('@stepworksdev/tiny')

tiny('So much space!')
//=> Somuchspace!

tiny(1234)
//=> TypeError: Tiny wants a string!
//     at tiny (<anonymous>:2:40)
//     at <anonymous> (<anonymous>:1:1)
```
npm package: @stepyo/server
Description: Stepyo Server SDK — manage flows, webhooks, and analytics from your backend
Latest version: 2.0.0

# @stepyo/server

Stepyo Server SDK — manage flows, webhooks, and analytics from your Node.js backend.

**Zero external dependencies.** Requires Node.js 18+ (uses native `fetch` and `crypto`).

## Installation

```bash
npm install @stepyo/server
```

## Quick Start

```typescript
import { StepyoServer } from '@stepyo/server';

const stepyo = new StepyoServer({ apiKey: 'sk_your_key_here' });

// List available flows
const flows = await stepyo.listFlows();
console.log(flows);

// Get a specific flow with steps
const flow = await stepyo.getFlow('onboarding');
console.log(flow.steps);

// Ask AI a question
const answer = await stepyo.ask('How do I create a new project?', {
  pageUrl: '/dashboard',
  lang: 'en',
});
console.log(answer);

// Track an event
await stepyo.trackEvent('flow_completed', {
  flow_key: 'onboarding',
  user_id: 'usr_123',
});
```

## Webhooks

```typescript
// Create a webhook
const webhook = await stepyo.createWebhook({
  url: 'https://your-app.com/webhooks/stepyo',
  events: ['flow_completed', 'flow_started'],
  description: 'Production webhook',
});
// Save webhook.secret securely — you need it to verify signatures

// List webhooks
const webhooks = await stepyo.listWebhooks();

// Test a webhook
const result = await stepyo.testWebhook(webhook.id);

// Delete a webhook
await stepyo.deleteWebhook(webhook.id);
```

## Webhook Signature Verification

Verify incoming webhook payloads to ensure they come from Stepyo:

```typescript
import express from 'express';
import { StepyoServer } from '@stepyo/server';

const app = express();
app.use(express.json());

app.post('/webhooks/stepyo', (req, res) => {
  const signature = req.headers['x-stepyo-signature'] as string;
  const isValid = StepyoServer.verifySignature(
    JSON.stringify(req.body),
    signature,
    process.env.STEPYO_WEBHOOK_SECRET!
  );

  if (!isValid) {
    return res.status(401).send('Invalid signature');
  }

  // Handle the event
  const { event, data } = req.body;
  console.log(`Received ${event}:`, data);

  res.status(200).send('OK');
});
```

## Error Handling

All API errors throw a `StepyoError` with `status` and `code` properties:

```typescript
import { StepyoServer, StepyoError } from '@stepyo/server';

try {
  const flow = await stepyo.getFlow('nonexistent');
} catch (err) {
  if (err instanceof StepyoError) {
    console.error(`Error ${err.status}: ${err.message} (${err.code})`);
  }
}
```

## Configuration

```typescript
const stepyo = new StepyoServer({
  apiKey: 'sk_your_key_here',       // Required
  baseUrl: 'https://custom.url',     // Optional, defaults to https://app.stepyo.com.br
});
```

## License

MIT
npm package: @sterapps-anglify/components
Description: Anglify – Material Component Framework for Angular
Latest version: 0.48.0

<div align="center">

# Anglify

<a href="https://anglify.io" target="_blank">
    <img src="misc/anglify-logo.svg" alt="Anglify Logo" width="128" height="150"/>
</a>

[![npm version](https://badge.fury.io/js/@anglify%2Fcomponents.svg)](https://badge.fury.io/js/@anglify%2Fcomponents)
[![codecov](https://codecov.io/gh/valentingavran/anglify/branch/master/graph/badge.svg?token=NA1FLDYZI4)](https://codecov.io/gh/valentingavran/anglify)

This project is intending to provide a set of components that are easily extensible, customizable and look good by default.

</div>