open-index/open-npm huggingface dataset:
npm package: @seznam/szn-tethered
Description: Helper element for visually attaching content to another element.
Author: Martin Jurča
Latest version: 1.0.1

# szn-tethered

Helper element for visually attaching content to another element. 

## Usage

This element is not meant to be used on its own, it is mean to be helper
element used by other `szn-*` elements.

Example markup (usually constructed by JavaScript):

```html
<div id="tether">
    This is the element to which the content should be tethered.
</div>
<szn-tethered id="tethered">
  <div class="tethered-content" data-szn-tethered--content>
    Any content
  </div>
  <!--
  The szn-tethered element must have exactly one child element, which will
  hold the tethered content. The child element must have the
  data-szn-tethered--content attribute set.
  -->
</szn-tethered>
```

Accompanying CSS:

```css
.tethered-content {
    /*
       It is recommended to set the dimensions as this element is positioned
       absolutely, but this is not necessary.
    */
    width: 200px;
    height: 60px;
}
```

JavaScript to wire everything up:

```javascript
const tether = document.getElementById('tether')
const sznTethered = document.getElementById('tethered')
SznElements.awaitElementReady(sznTethered, () => {
  sznTethered.setTether(tether)
})
```
npm package: @sf-ai/rag-core
Description: Core RAG schema with pgvector support for document embeddings
Author: Dan Lynch
Latest version: 0.2.1

<p align="center" width="100%">
  <img height="250" src="https://github.com/city-of-san-francisco/.github/blob/main/assets/logo.svg" />
</p>

<p align="center" width="100%">
   <a href="https://github.com/city-of-san-francisco/license"><img height="20" src="https://img.shields.io/badge/license-SF-blue.svg"/></a>
   <a href="https://github.com/city-of-san-francisco/sf-rag-utils/actions/workflows/ci.yml"><img height="20" src="https://github.com/city-of-san-francisco/sf-rag-utils/actions/workflows/ci.yml/badge.svg" /></a>
   <a href="https://www.npmjs.com/package/@sf-ai/rag-core"><img height="20" src="https://img.shields.io/github/package-json/v/city-of-san-francisco/sf-rag-utils?filename=packages%2Frag-core%2Fpackage.json"/></a>
</p>

<p align="center" width="100%">
  <a href="https://github.com/city-of-san-francisco/sf-rag-utils">A pgpm workspace for building agentic, database-driven AI applications for the City of San Francisco.</a>
</p>

# @sf-ai/rag-core

Core RAG (Retrieval-Augmented Generation) schema with pgvector support for document embeddings.

## Overview

This package provides the foundational database schema for storing and managing document embeddings using PostgreSQL and pgvector. It supports:

- Multiple embedding models per collection
- Semantic chunking strategies
- JSON/CSV import and export for migrations

## Schema

### Tables

| Table | Description |
|-------|-------------|
| `rag.embedding_model` | Embedding model configurations (OpenAI, Cohere, local, etc.) |
| `rag.collection` | Document collections with chunking configuration |
| `rag.collection_model` | Links collections to embedding models (many-to-many) |
| `rag.document` | Source documents with content and metadata |
| `rag.chunk` | Document segments/chunks for embedding |
| `rag.embedding` | Vector embeddings (pgvector) linked to chunks |

### Chunking Configuration

The `chunk_config` JSONB column on `rag.collection` supports:

```json
{
  "strategy": "semantic",
  "max_tokens": 512,
  "overlap_tokens": 50
}
```

Supported strategies: `semantic`, `fixed`, `sentence`, `paragraph`

## Installation

```bash
pgpm deploy @sf-ai/rag-core
```

## Requirements

- PostgreSQL 17+
- pgvector extension

## License

[SF License](https://github.com/city-of-san-francisco/license)
npm package: @sf-ai/rag-functions
Description: RAG functions for import, export, and vector search
Author: Dan Lynch
Latest version: 0.2.1

<p align="center" width="100%">
  <img height="250" src="https://github.com/city-of-san-francisco/.github/blob/main/assets/logo.svg" />
</p>

<p align="center" width="100%">
   <a href="https://github.com/city-of-san-francisco/license"><img height="20" src="https://img.shields.io/badge/license-SF-blue.svg"/></a>
   <a href="https://github.com/city-of-san-francisco/sf-rag-utils/actions/workflows/ci.yml"><img height="20" src="https://github.com/city-of-san-francisco/sf-rag-utils/actions/workflows/ci.yml/badge.svg" /></a>
   <a href="https://www.npmjs.com/package/@sf-ai/rag-functions"><img height="20" src="https://img.shields.io/github/package-json/v/city-of-san-francisco/sf-rag-utils?filename=packages%2Frag-functions%2Fpackage.json"/></a>
</p>

<p align="center" width="100%">
  <a href="https://github.com/city-of-san-francisco/sf-rag-utils">A pgpm workspace for building agentic, database-driven AI applications for the City of San Francisco.</a>
</p>

# @sf-ai/rag-functions

RAG functions for import, export, and vector search.

## Overview

This package provides SQL functions for working with RAG collections:

- **Import/Export**: JSON format for portable collection data
- **Search**: Cosine similarity search using pgvector
- **CSV Export**: Flat format for embeddings

## Functions

### `rag.export_collection_json(collection_id uuid)`

Export a complete collection with all documents, chunks, and embeddings as JSON.

```sql
SELECT rag.export_collection_json('collection-uuid');
```

### `rag.import_collection_json(data jsonb, overwrite boolean)`

Import a collection from JSON format.

```sql
SELECT rag.import_collection_json('{...}'::jsonb, false);
```

### `rag.search_similar(collection_id uuid, query_vector vector, ...)`

Search for similar chunks using cosine distance.

```sql
SELECT * FROM rag.search_similar(
  'collection-uuid',
  '[0.1, 0.2, ...]'::vector,
  'text-embedding-3-small',  -- model name (optional)
  10,                         -- limit
  0.5                         -- distance threshold (optional)
);
```

Also supports searching by collection name:

```sql
SELECT * FROM rag.search_similar(
  'my-collection',
  '[0.1, 0.2, ...]'::vector
);
```

### `rag.export_embeddings_csv(collection_id uuid, model_name text)`

Export embeddings in CSV-friendly format.

```sql
SELECT * FROM rag.export_embeddings_csv('collection-uuid', 'text-embedding-3-small');
```

## Dependencies

- `@sf-ai/rag-core`

## License

[SF License](https://github.com/city-of-san-francisco/license)
npm package: @sf-ai/sf-docs-embeddings
Description: San Francisco documentation embeddings - example RAG data package
Author: Dan Lynch
Latest version: 0.2.0

<p align="center" width="100%">
  <img height="250" src="https://github.com/city-of-san-francisco/.github/blob/main/assets/logo.svg" />
</p>

<p align="center" width="100%">
   <a href="https://github.com/city-of-san-francisco/license"><img height="20" src="https://img.shields.io/badge/license-SF-blue.svg"/></a>
   <a href="https://github.com/city-of-san-francisco/sf-rag-utils/actions/workflows/ci.yml"><img height="20" src="https://github.com/city-of-san-francisco/sf-rag-utils/actions/workflows/ci.yml/badge.svg" /></a>
</p>

<p align="center" width="100%">
  <a href="https://github.com/city-of-san-francisco/sf-rag-utils">A pgpm workspace for building agentic, database-driven AI applications for the City of San Francisco.</a>
</p>

# @sf-ai/sf-docs-embeddings

San Francisco documentation embeddings - example RAG data package.

## Overview

This package demonstrates how to ship pre-computed embeddings as PGPM migrations. It creates a sample collection with San Francisco city documentation and example embeddings.

## What This Package Does

1. Creates an embedding model configuration for `text-embedding-3-small`
2. Creates the `sf-docs` collection with semantic chunking config
3. Seeds example documents and chunks
4. (In production) Would include actual vector embeddings

## Usage

```bash
# Install the RAG schema first
pgpm deploy @sf-ai/rag-core

# Then install this data package
pgpm deploy @sf-ai/sf-docs-embeddings
```

## Data Structure

After installation, you'll have:

- **Collection**: `sf-docs` - San Francisco city documentation
- **Model**: `text-embedding-3-small` (OpenAI, 1536 dimensions)
- **Documents**: Example SF city services content
- **Chunks**: Semantically chunked document segments

## Creating Your Own Data Package

To create a similar data package for your own embeddings:

1. Generate embeddings using your preferred model
2. Export using `rag.export_collection_json()`
3. Convert the JSON to SQL INSERT statements
4. Package as a PGPM module

Example workflow:
```sql
-- Export your collection
SELECT rag.export_collection_json('your-collection-id');

-- Or export as CSV for processing
SELECT * FROM rag.export_embeddings_csv('your-collection-id');
```

## Dependencies

- `@sf-ai/rag-core`

## License

[SF License](https://github.com/city-of-san-francisco/license)
npm package: @sf-bot/rag-core
Description: Core RAG schema with pgvector support for document embeddings
Author: Dan Lynch
Latest version: 0.1.0

<p align="center" width="100%">
  <img height="250" src="https://github.com/city-of-san-francisco/.github/blob/main/assets/logo.svg" />
</p>

<p align="center" width="100%">
  <a href="https://github.com/city-of-san-francisco/sf-rag-utils/actions/workflows/ci.yml">
    <img height="20" src="https://github.com/city-of-san-francisco/sf-rag-utils/actions/workflows/ci.yml/badge.svg" />
  </a>
  <a href="https://github.com/city-of-san-francisco/license">
    <img height="20" src="https://img.shields.io/badge/license-SF-blue.svg"/>
  </a>
  <a href="https://www.npmjs.com/package/@sf-bot/rag-core">
    <img height="20" src="https://img.shields.io/github/package-json/v/city-of-san-francisco/sf-rag-utils?filename=packages%2Frag-core%2Fpackage.json"/>
  </a>
</p>

# @sf-bot/rag-core

Core RAG (Retrieval-Augmented Generation) schema with pgvector support for document embeddings.

## Overview

This package provides the foundational database schema for storing and managing document embeddings using PostgreSQL and pgvector. It supports:

- Multiple embedding models per collection
- Semantic chunking strategies
- JSON/CSV import and export for migrations

## Schema

### Tables

| Table | Description |
|-------|-------------|
| `rag.embedding_model` | Embedding model configurations (OpenAI, Cohere, local, etc.) |
| `rag.collection` | Document collections with chunking configuration |
| `rag.collection_model` | Links collections to embedding models (many-to-many) |
| `rag.document` | Source documents with content and metadata |
| `rag.chunk` | Document segments/chunks for embedding |
| `rag.embedding` | Vector embeddings (pgvector) linked to chunks |

### Chunking Configuration

The `chunk_config` JSONB column on `rag.collection` supports:

```json
{
  "strategy": "semantic",
  "max_tokens": 512,
  "overlap_tokens": 50
}
```

Supported strategies: `semantic`, `fixed`, `sentence`, `paragraph`

## Installation

```bash
pgpm deploy @sf-bot/rag-core
```

## Requirements

- PostgreSQL 17+
- pgvector extension

## License

[SF License](https://github.com/city-of-san-francisco/license)
npm package: @sf-bot/rag-functions
Description: RAG functions for import, export, and vector search
Author: Dan Lynch
Latest version: 0.1.0

<p align="center" width="100%">
  <img height="250" src="https://github.com/city-of-san-francisco/.github/blob/main/assets/logo.svg" />
</p>

<p align="center" width="100%">
  <a href="https://github.com/city-of-san-francisco/sf-rag-utils/actions/workflows/ci.yml">
    <img height="20" src="https://github.com/city-of-san-francisco/sf-rag-utils/actions/workflows/ci.yml/badge.svg" />
  </a>
  <a href="https://github.com/city-of-san-francisco/license">
    <img height="20" src="https://img.shields.io/badge/license-SF-blue.svg"/>
  </a>
  <a href="https://www.npmjs.com/package/@sf-bot/rag-functions">
    <img height="20" src="https://img.shields.io/github/package-json/v/city-of-san-francisco/sf-rag-utils?filename=packages%2Frag-functions%2Fpackage.json"/>
  </a>
</p>

# @sf-bot/rag-functions

RAG functions for import, export, and vector search.

## Overview

This package provides SQL functions for working with RAG collections:

- **Import/Export**: JSON format for portable collection data
- **Search**: Cosine similarity search using pgvector
- **CSV Export**: Flat format for embeddings

## Functions

### `rag.export_collection_json(collection_id uuid)`

Export a complete collection with all documents, chunks, and embeddings as JSON.

```sql
SELECT rag.export_collection_json('collection-uuid');
```

### `rag.import_collection_json(data jsonb, overwrite boolean)`

Import a collection from JSON format.

```sql
SELECT rag.import_collection_json('{...}'::jsonb, false);
```

### `rag.search_similar(collection_id uuid, query_vector vector, ...)`

Search for similar chunks using cosine distance.

```sql
SELECT * FROM rag.search_similar(
  'collection-uuid',
  '[0.1, 0.2, ...]'::vector,
  'text-embedding-3-small',  -- model name (optional)
  10,                         -- limit
  0.5                         -- distance threshold (optional)
);
```

Also supports searching by collection name:

```sql
SELECT * FROM rag.search_similar(
  'my-collection',
  '[0.1, 0.2, ...]'::vector
);
```

### `rag.export_embeddings_csv(collection_id uuid, model_name text)`

Export embeddings in CSV-friendly format.

```sql
SELECT * FROM rag.export_embeddings_csv('collection-uuid', 'text-embedding-3-small');
```

## Dependencies

- `@sf-bot/rag-core`

## License

[SF License](https://github.com/city-of-san-francisco/license)
npm package: @sf-bot/rag-indexes
Description: RAG vector index helpers for HNSW and IVFFlat
Author: Dan Lynch
Latest version: 0.1.0

<p align="center" width="100%">
  <img height="250" src="https://github.com/city-of-san-francisco/.github/blob/main/assets/logo.svg" />
</p>

<p align="center" width="100%">
  <a href="https://github.com/city-of-san-francisco/sf-rag-utils/actions/workflows/ci.yml">
    <img height="20" src="https://github.com/city-of-san-francisco/sf-rag-utils/actions/workflows/ci.yml/badge.svg" />
  </a>
  <a href="https://github.com/city-of-san-francisco/license">
    <img height="20" src="https://img.shields.io/badge/license-SF-blue.svg"/>
  </a>
  <a href="https://www.npmjs.com/package/@sf-bot/rag-indexes">
    <img height="20" src="https://img.shields.io/github/package-json/v/city-of-san-francisco/sf-rag-utils?filename=packages%2Frag-indexes%2Fpackage.json"/>
  </a>
</p>

# @sf-bot/rag-indexes

RAG vector index helpers for HNSW and IVFFlat.

## Overview

This package provides SQL functions for creating and managing pgvector indexes on RAG embeddings.

## Functions

### `rag.create_hnsw_index(collection_id, model_name, m, ef_construction, distance_op)`

Create an HNSW index for fast approximate nearest neighbor search.

```sql
-- Create HNSW index with defaults (m=16, ef_construction=64, cosine distance)
SELECT rag.create_hnsw_index('collection-uuid');

-- Create with custom parameters
SELECT rag.create_hnsw_index(
  'collection-uuid',
  'text-embedding-3-small',
  32,    -- m: connections per layer
  128,   -- ef_construction: index build quality
  'l2'   -- distance: cosine, l2, or ip
);
```

**Parameters:**
- `m`: Max connections per layer (default: 16). Higher = better recall, more memory
- `ef_construction`: Build-time quality (default: 64). Higher = better recall, slower build
- `distance_op`: Distance function - `cosine`, `l2`/`euclidean`, or `ip`/`inner_product`

### `rag.create_ivfflat_index(collection_id, model_name, lists, distance_op)`

Create an IVFFlat index for fast indexing with good recall.

```sql
-- Create IVFFlat index with defaults (lists=100, cosine distance)
SELECT rag.create_ivfflat_index('collection-uuid');

-- Create with custom parameters
SELECT rag.create_ivfflat_index(
  'collection-uuid',
  'text-embedding-3-small',
  200,     -- lists: number of clusters
  'cosine' -- distance: cosine, l2, or ip
);
```

**Note:** IVFFlat requires data to be present before creating the index.

### `rag.list_vector_indexes(collection_id)`

List all vector indexes, optionally filtered by collection.

```sql
SELECT * FROM rag.list_vector_indexes();
SELECT * FROM rag.list_vector_indexes('collection-uuid');
```

### `rag.drop_vector_index(index_name)`

Drop a vector index by name.

```sql
SELECT rag.drop_vector_index('idx_rag_embedding_hnsw_...');
```

## When to Use Which Index

| Index | Best For | Trade-offs |
|-------|----------|------------|
| HNSW | High recall, easy management | Slower inserts, more memory |
| IVFFlat | Fast indexing, large datasets | Requires pre-populated data |

## Dependencies

- `@sf-bot/rag-core`

## License

[SF License](https://github.com/city-of-san-francisco/license)
npm package: @sf-bot/sf-docs-embeddings
Description: San Francisco documentation embeddings - example RAG data package
Author: Dan Lynch
Latest version: 0.1.0

<p align="center" width="100%">
  <img height="250" src="https://github.com/city-of-san-francisco/.github/blob/main/assets/logo.svg" />
</p>

<p align="center" width="100%">
  <a href="https://github.com/city-of-san-francisco/sf-rag-utils/actions/workflows/ci.yml">
    <img height="20" src="https://github.com/city-of-san-francisco/sf-rag-utils/actions/workflows/ci.yml/badge.svg" />
  </a>
  <a href="https://github.com/city-of-san-francisco/license">
    <img height="20" src="https://img.shields.io/badge/license-SF-blue.svg"/>
  </a>
  <a href="https://www.npmjs.com/package/@sf-bot/sf-docs-embeddings">
    <img height="20" src="https://img.shields.io/github/package-json/v/city-of-san-francisco/sf-rag-utils?filename=packages%2Fsf-docs-embeddings%2Fpackage.json"/>
  </a>
</p>

# @sf-bot/sf-docs-embeddings

San Francisco documentation embeddings - example RAG data package.

## Overview

This package demonstrates how to ship pre-computed embeddings as PGPM migrations. It creates a sample collection with San Francisco city documentation and example embeddings.

## What This Package Does

1. Creates an embedding model configuration for `text-embedding-3-small`
2. Creates the `sf-docs` collection with semantic chunking config
3. Seeds example documents and chunks
4. (In production) Would include actual vector embeddings

## Usage

```bash
# Install the RAG schema first
pgpm deploy @sf-bot/rag-core

# Then install this data package
pgpm deploy @sf-bot/sf-docs-embeddings
```

## Data Structure

After installation, you'll have:

- **Collection**: `sf-docs` - San Francisco city documentation
- **Model**: `text-embedding-3-small` (OpenAI, 1536 dimensions)
- **Documents**: Example SF city services content
- **Chunks**: Semantically chunked document segments

## Creating Your Own Data Package

To create a similar data package for your own embeddings:

1. Generate embeddings using your preferred model
2. Export using `rag.export_collection_json()`
3. Convert the JSON to SQL INSERT statements
4. Package as a PGPM module

Example workflow:
```sql
-- Export your collection
SELECT rag.export_collection_json('your-collection-id');

-- Or export as CSV for processing
SELECT * FROM rag.export_embeddings_csv('your-collection-id');
```

## Dependencies

- `@sf-bot/rag-core`

## License

[SF License](https://github.com/city-of-san-francisco/license)
npm package: @sf-explorer/devops.cli
Description: Check best practices on your salesforce org
Author: ndespres@gmail.com
Latest version: 2.0.0-alpha6


# @sf-explorer/devops.cli


## Pre-requisite
- nodejs
- sf or sfdx connected on a default org

## Pipeline integration

Run the command:  
```cmd
npx @sf-explorer/devops.cli -o myOrg -d 2024-03-01 --exclude '@Sys admin' --exclude 'CustomField.*_del'
```
The command will generate an output file name `testReport.xml` similar to the one you can find [here](./cli/test-report.xml).

__Options__
```
Options:
      --version         Show version number                            [boolean]
  -d, --from-date       From date execution, in format YYYY-MM-DD
                                                         [default: "2024-04-01"]
  -e, --exclude         Exclude specified author, in format @name, multiple
                        values are supported
  -o, --target-org      Username or alias of the target org. Not required if the
                        `target-org` configuration variable is already set.
  -u, --sfdx-url       sfdx auth url
  -r, --print-rules     Print rules
  -p, --publish               publish static resource
  -n, --resource-name         Static resource name
  -i, --resource-description  Static resource description
  -h, --help                  Show help                                [boolean]
  -h, --help            Show help                                      [boolean]
```


## Ignore metadata
You can ignore specific errors with a file named `.sfexplorerignore` (using regex similar to a .gitignore file)
- ignore an author with @ and the author name
- ignore a record with its type and target
npm package: @sf-explorer/salesforce-agentforce-actions-reference
Description: Salesforce Agentforce standard actions reference from official documentation
Latest version: 1.0.0

# @sf-explorer/salesforce-agentforce-actions-reference

Salesforce Agentforce standard actions reference from official documentation.

## 📦 Installation

```bash
npm install @sf-explorer/salesforce-agentforce-actions-reference
```

## 🚀 Usage

### Basic Usage

```typescript
import { getAction, getAllActionNames, searchActions } from '@sf-explorer/salesforce-agentforce-actions-reference';

// Get a specific action
const action = await getAction('CreateRecord');

// Get all action names
const allNames = await getAllActionNames();

// Search for actions
const results = await searchActions(/create/i);
```

### Available Functions

- `loadIndex()` - Load master index
- `getAction(name)` - Get full action details
- `searchActions(pattern)` - Search by name
- `getAllActionNames()` - Get all action names
- `loadAllDescriptions()` - Get all descriptions (lightweight)
- `getActionDescription(name)` - Get single description (lightweight)
- `searchActionsByDescription(pattern)` - Search by description
- `loadAllActions()` - Load all actions (heavy)
- `clearCache()` - Clear cached data

### Backward Compatibility

For consistency with other packages, these aliases are also available:
- `getObject()` - Alias for `getAction()`
- `searchObjects()` - Alias for `searchActions()`
- `getAllObjectNames()` - Alias for `getAllActionNames()`
- `getObjectDescription()` - Alias for `getActionDescription()`
- `searchObjectsByDescription()` - Alias for `searchActionsByDescription()`
- `loadAllObjects()` - Alias for `loadAllActions()`

## 📚 Data Source

Actions are scraped from:
- [Salesforce Agentforce Standard Actions Reference](https://help.salesforce.com/s/articleView?id=ai.copilot_actions_ref.htm&type=5)

## 🔧 Development

### Fetch Fresh Data

```bash
npm run fetch:actions
```

### Rebuild Index

```bash
npm run rebuild-index
```

### Build

```bash
npm run build
```

## 📄 License

MIT License
npm package: @sf-explorer/salesforce-metadata-reference
Description: Salesforce Metadata API object reference from official documentation
Latest version: 1.0.0

# Salesforce Metadata Reference

[![npm version](https://img.shields.io/npm/v/@sf-explorer/salesforce-metadata-reference.svg)](https://www.npmjs.com/package/@sf-explorer/salesforce-metadata-reference)
[![license](https://img.shields.io/npm/l/@sf-explorer/salesforce-metadata-reference.svg)](https://github.com/sf-explorer/sf-doc-to-json/blob/main/LICENSE)

Salesforce Metadata API object reference from official documentation.

This package provides programmatic access to Salesforce Metadata API types including CustomObject, ApexClass, Flow, and other components used in deployments and package development.

## 📦 Installation

```bash
npm install @sf-explorer/salesforce-metadata-reference
```

## 🚀 Quick Start

```typescript
import {
  loadIndex,
  getObject,
  searchObjects,
  getAllObjectNames,
  getObjectDescription
} from '@sf-explorer/salesforce-metadata-reference';

// Load index
const index = await loadIndex();
console.log(`${index.totalObjects} metadata types available`);

// Get a metadata type
const customObject = await getObject('CustomObject');
if (customObject) {
  console.log(customObject.name);
  console.log(customObject.description);
}

// Search metadata types
const flowTypes = await searchObjects(/flow/i);
console.log(`Found ${flowTypes.length} flow-related types`);
```

## 📂 Data Structure

```
src/doc/
├── index.json        # Master index
└── objects/          # Individual metadata type files
    ├── A/
    │   ├── AccessMapping.json
    │   ├── ApexClass.json
    │   └── ...
    ├── C/
    │   ├── CustomObject.json
    │   └── ...
    └── ...
```

## 📚 API Reference

All functions match the standard API across `@sf-explorer` packages:

- `loadIndex()` - Load master index
- `getObject(name)` - Get metadata type details
- `searchObjects(pattern)` - Search by name
- `getAllObjectNames()` - Get all type names
- `getObjectDescription(name)` - Get lightweight metadata
- `clearCache()` - Clear cached data

## 🔗 Related Packages

- [@sf-explorer/salesforce-object-reference](../salesforce-object-reference) - Standard objects
- [@sf-explorer/salesforce-object-ssot-reference](../salesforce-object-ssot-reference) - SSOT objects

## 📄 License

MIT License - see [LICENSE](../../LICENSE)
npm package: @sf-helpers/object
Description: The code snippet provides utility functions for manipulating and transforming JavaScript objects, including getting and setting values by path, converting objects to form data, cloning objects, updating objects, and deleting attributes by path.
Author: souf11yane
Latest version: 0.1.0

[![codecov.io](https://codecov.io/github/souf11yane/object/coverage.svg?branch=master)](https://codecov.io/github/souf11yane/object?branch=master)
[![npm version](https://badge.fury.io/js/@sf-helpers%2Fobject.svg)](https://badge.fury.io/js/@sf-helpers%2Fobject)

# Object

The code snippet provides utility functions for manipulating and transforming JavaScript objects, including getting and setting values by path, converting objects to form data, cloning objects, updating objects, and deleting attributes by path.
npm package: @sfadminltd/cli
Description: sf admin cli
Author: hackycy
Latest version: 0.1.4

# SF-ADMIN-CLI

[![NPM version][npm-image]][npm-url]
[![npm download][download-image]][download-url]
[![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg)](https://lerna.js.org/)

[npm-image]: https://img.shields.io/npm/v/@sfadminltd/cli.svg?style=flat-square
[npm-url]: https://npmjs.org/package/@sfadminltd/cli
[download-image]: https://img.shields.io/npm/dm/@sfadminltd/cli.svg?style=flat-square
[download-url]: https://npmjs.org/package/@sfadminltd/cli

> 该工具可以帮助你快速的创建**sf-admin**系列项目

# 使用文档

文档地址：https://blog.si-yee.com/sf-admin-cli/

# 项目后端地址

- [sf-nest-admin](https://github.com/hackycy/sf-nest-admin)
- [sf-midway-admin](https://github.com/hackycy/sf-midway-admin)
- [sf-egg-admin](https://github.com/hackycy/sf-egg-admin)

# 项目前端地址

- [sf-vue-admin](https://github.com/hackycy/sf-vue-admin)

# LICENSE

[MIT](LICENSE)
npm package: @sfadminltd/create
Description: command create
Author: hackycy
Latest version: 0.1.4

# SF-ADMIN-CLI

[![NPM version][npm-image]][npm-url]
[![npm download][download-image]][download-url]
[![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg)](https://lerna.js.org/)

[npm-image]: https://img.shields.io/npm/v/@sfadminltd/cli.svg?style=flat-square
[npm-url]: https://npmjs.org/package/@sfadminltd/cli
[download-image]: https://img.shields.io/npm/dm/@sfadminltd/cli.svg?style=flat-square
[download-url]: https://npmjs.org/package/@sfadminltd/cli

> 该工具可以帮助你快速的创建**sf-admin**系列项目

# 使用文档

文档地址：https://blog.si-yee.com/sf-admin-cli/

# 项目后端地址

- [sf-nest-admin](https://github.com/hackycy/sf-nest-admin)
- [sf-midway-admin](https://github.com/hackycy/sf-midway-admin)
- [sf-egg-admin](https://github.com/hackycy/sf-egg-admin)

# 项目前端地址

- [sf-vue-admin](https://github.com/hackycy/sf-vue-admin)

# LICENSE

[MIT](LICENSE)
npm package: @sfadminltd/info
Description: print info in your env
Author: hackycy
Latest version: 0.1.2

# SF-ADMIN-CLI

[![NPM version][npm-image]][npm-url]
[![npm download][download-image]][download-url]
[![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg)](https://lerna.js.org/)

[npm-image]: https://img.shields.io/npm/v/@sfadminltd/cli.svg?style=flat-square
[npm-url]: https://npmjs.org/package/@sfadminltd/cli
[download-image]: https://img.shields.io/npm/dm/@sfadminltd/cli.svg?style=flat-square
[download-url]: https://npmjs.org/package/@sfadminltd/cli

> 该工具可以帮助你快速的创建**sf-admin**系列项目

# 使用文档

文档地址：https://blog.si-yee.com/sf-admin-cli/

# 项目后端地址

- [sf-nest-admin](https://github.com/hackycy/sf-nest-admin)
- [sf-midway-admin](https://github.com/hackycy/sf-midway-admin)
- [sf-egg-admin](https://github.com/hackycy/sf-egg-admin)

# 项目前端地址

- [sf-vue-admin](https://github.com/hackycy/sf-vue-admin)

# LICENSE

[MIT](LICENSE)
npm package: @sfadminltd/load
Description: load sql data
Author: hackycy
Latest version: 0.1.2

# SF-ADMIN-CLI

[![NPM version][npm-image]][npm-url]
[![npm download][download-image]][download-url]
[![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg)](https://lerna.js.org/)

[npm-image]: https://img.shields.io/npm/v/@sfadminltd/cli.svg?style=flat-square
[npm-url]: https://npmjs.org/package/@sfadminltd/cli
[download-image]: https://img.shields.io/npm/dm/@sfadminltd/cli.svg?style=flat-square
[download-url]: https://npmjs.org/package/@sfadminltd/cli

> 该工具可以帮助你快速的创建**sf-admin**系列项目

# 使用文档

文档地址：https://blog.si-yee.com/sf-admin-cli/

# 项目后端地址

- [sf-nest-admin](https://github.com/hackycy/sf-nest-admin)
- [sf-midway-admin](https://github.com/hackycy/sf-midway-admin)
- [sf-egg-admin](https://github.com/hackycy/sf-egg-admin)

# 项目前端地址

- [sf-vue-admin](https://github.com/hackycy/sf-vue-admin)

# LICENSE

[MIT](LICENSE)
npm package: @sfadminltd/utils
Description: sf admin utils
Author: hackycy
Latest version: 0.1.2

# SF-ADMIN-CLI

[![NPM version][npm-image]][npm-url]
[![npm download][download-image]][download-url]
[![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg)](https://lerna.js.org/)

[npm-image]: https://img.shields.io/npm/v/@sfadminltd/cli.svg?style=flat-square
[npm-url]: https://npmjs.org/package/@sfadminltd/cli
[download-image]: https://img.shields.io/npm/dm/@sfadminltd/cli.svg?style=flat-square
[download-url]: https://npmjs.org/package/@sfadminltd/cli

> 该工具可以帮助你快速的创建**sf-admin**系列项目

# 使用文档

文档地址：https://blog.si-yee.com/sf-admin-cli/

# 项目后端地址

- [sf-nest-admin](https://github.com/hackycy/sf-nest-admin)
- [sf-midway-admin](https://github.com/hackycy/sf-midway-admin)
- [sf-egg-admin](https://github.com/hackycy/sf-egg-admin)

# 项目前端地址

- [sf-vue-admin](https://github.com/hackycy/sf-vue-admin)

# LICENSE

[MIT](LICENSE)
npm package: @sfajs/alifunc
Description: 将 sfajs 托管到阿里云函数计算
Author: hal-wang
Latest version: 1.2.2
Deprecated: Use @halsp/alifc

<p align="center">
  <a href="https://sfajs.com/" target="blank"><img src="https://sfajs.com/images/logo.png" alt="sfajs Logo" width="200"/></a>
</p>

<p align="center">sfajs - 面向云的现代渐进式轻量 <a href="http://nodejs.org" target="_blank">Node.js</a> 框架</p>
<p align="center">
    <a href="https://github.com/sfajs/alifunc/blob/main/LICENSE" target="_blank"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="GitHub license" /></a>
    <a href=""><img src="https://img.shields.io/npm/v/@sfajs/alifunc.svg" alt="npm version"></a>
    <a href=""><img src="https://badgen.net/npm/dt/@sfajs/alifunc" alt="npm downloads"></a>
    <a href="https://nodejs.org/en/about/releases/"><img src="https://img.shields.io/node/v/vite.svg" alt="node compatibility"></a>
    <a href="#"><img src="https://github.com/sfajs/alifunc/actions/workflows/test.yml/badge.svg?branch=main" alt="Build Status"></a>
    <a href="https://codecov.io/gh/sfajs/alifunc/branch/main"><img src="https://img.shields.io/codecov/c/github/sfajs/alifunc/main.svg" alt="Test Coverage"></a>
    <a href="https://github.com/sfajs/alifunc/pulls"><img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg" alt="PRs Welcome"></a>
    <a href="https://gitpod.io/#https://github.com/sfajs/alifunc"><img src="https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod" alt="Gitpod Ready-to-Code"></a>
    <a href="https://paypal.me/ihalwang" target="_blank"><img src="https://img.shields.io/badge/Donate-PayPal-ff3f59.svg"/></a>
</p>

## 介绍

`@sfajs/alifunc` 是 `sfajs` 的阿里云云函数计算数托管环境

可以将 sfajs 托管到阿里云函数计算，有效提升云函数响应速度

## 安装

```
npm install @sfajs/alifunc
```

## 开始使用

请访问 <https://sfajs.com>

## 贡献

请阅读 [Contributing to @sfajs/alifunc](https://github.com/sfajs/alifunc/blob/main/CONTRIBUTING.md)

### 贡献列表

<a href="https://github.com/sfajs/alifunc/graphs/contributors">
  <img src="https://contrib.rocks/image?repo=sfajs/alifunc" />
</a>

## License

@sfajs/alifunc is MIT licensed.
npm package: @sfajs/cli
Description: sfajs 的命令行脚手架工具
Author: hal-wang
Latest version: 0.1.12
Deprecated: Use @halsp/cli

<p align="center">
  <a href="https://sfajs.com/" target="blank"><img src="https://sfajs.com/images/logo.png" alt="sfajs Logo" width="200"/></a>
</p>

<p align="center">sfajs - 面向云的现代渐进式轻量 <a href="http://nodejs.org" target="_blank">Node.js</a> 框架</p>
<p align="center">
    <a href="https://github.com/sfajs/cli/blob/main/LICENSE" target="_blank"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="GitHub license" /></a>
    <a href=""><img src="https://img.shields.io/npm/v/@sfajs/cli.svg" alt="npm version"></a>
    <a href=""><img src="https://badgen.net/npm/dt/@sfajs/cli" alt="npm downloads"></a>
    <a href="https://nodejs.org/en/about/releases/"><img src="https://img.shields.io/node/v/vite.svg" alt="node compatibility"></a>
    <a href="#"><img src="https://github.com/sfajs/cli/actions/workflows/test.yml/badge.svg?branch=main" alt="Build Status"></a>
    <a href="https://codecov.io/gh/sfajs/cli/branch/main"><img src="https://img.shields.io/codecov/c/github/sfajs/cli/main.svg" alt="Test Coverage"></a>
    <a href="https://github.com/sfajs/cli/pulls"><img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg" alt="PRs Welcome"></a>
    <a href="https://gitpod.io/#https://github.com/sfajs/cli"><img src="https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod" alt="Gitpod Ready-to-Code"></a>
    <a href="https://paypal.me/ihalwang" target="_blank"><img src="https://img.shields.io/badge/Donate-PayPal-ff3f59.svg"/></a>
</p>

<!--create-sfa
## 介绍

`create-sfa` 是 `sfajs` 的快速开始脚手架工具，由 @sfajs/cli 自动生成

## 开始使用

```
npm init sfa
```
create-sfa-->

<!--introduce start-->

## 介绍

`@sfajs/cli` 是 `sfajs` 的命令行脚手架工具

用于帮助你创建、运行、编译 sfa 应用

## 安装

```
npm install -g @sfajs/cli
```

## 开始使用

请访问 <https://sfajs.com>

<!--introduce end-->

## 贡献

请阅读 [Contributing to @sfajs/cli](https://github.com/sfajs/cli/blob/main/CONTRIBUTING.md)

### 贡献列表

<a href="https://github.com/sfajs/cli/graphs/contributors">
  <img src="https://contrib.rocks/image?repo=sfajs/cli" />
</a>

## License

@sfajs/cli is MIT licensed.
npm package: @sfajs/cli-common
Description: @sfajs/cli 基础功能
Author: hal-wang
Latest version: 0.2.7
Deprecated: Use @halsp/cli

<p align="center">
  <a href="https://sfajs.com/" target="blank"><img src="https://sfajs.com/images/logo.png" alt="sfajs Logo" width="200"/></a>
</p>

<p align="center">sfajs - 面向云的现代渐进式轻量 <a href="http://nodejs.org" target="_blank">Node.js</a> 框架</p>
<p align="center">
    <a href="https://github.com/sfajs/cli-common/blob/main/LICENSE" target="_blank"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="GitHub license" /></a>
    <a href=""><img src="https://img.shields.io/npm/v/@sfajs/cli-common.svg" alt="npm version"></a>
    <a href=""><img src="https://badgen.net/npm/dt/@sfajs/cli-common" alt="npm downloads"></a>
    <a href="https://nodejs.org/en/about/releases/"><img src="https://img.shields.io/node/v/vite.svg" alt="node compatibility"></a>
    <a href="#"><img src="https://github.com/sfajs/cli-common/actions/workflows/test.yml/badge.svg?branch=main" alt="Build Status"></a>
    <a href="https://codecov.io/gh/sfajs/cli-common/branch/main"><img src="https://img.shields.io/codecov/c/github/sfajs/cli-common/main.svg" alt="Test Coverage"></a>
    <a href="https://github.com/sfajs/cli-common/pulls"><img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg" alt="PRs Welcome"></a>
    <a href="https://gitpod.io/#https://github.com/sfajs/cli-common"><img src="https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod" alt="Gitpod Ready-to-Code"></a>
    <a href="https://paypal.me/ihalwang" target="_blank"><img src="https://img.shields.io/badge/Donate-PayPal-ff3f59.svg"/></a>
</p>

## 介绍

`@sfajs/cli-common` 是 `@sfajs/cli` 的基础功能

## 开始使用

请访问 <https://sfajs.com>
npm package: @sfajs/cloudbase
Description: 将 sfa 托管到腾讯云 CloudBase
Author: hal-wang
Latest version: 1.2.0
Deprecated: Use @halsp/lambda

<p align="center">
  <a href="https://sfajs.com/" target="blank"><img src="https://sfajs.com/images/logo.png" alt="sfajs Logo" width="200"/></a>
</p>

<p align="center">sfajs - 面向云的现代渐进式轻量 <a href="http://nodejs.org" target="_blank">Node.js</a> 框架</p>
<p align="center">
    <a href="https://github.com/sfajs/cloudbase/blob/main/LICENSE" target="_blank"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="GitHub license" /></a>
    <a href=""><img src="https://img.shields.io/npm/v/@sfajs/cloudbase.svg" alt="npm version"></a>
    <a href=""><img src="https://badgen.net/npm/dt/@sfajs/cloudbase" alt="npm downloads"></a>
    <a href="https://nodejs.org/en/about/releases/"><img src="https://img.shields.io/node/v/vite.svg" alt="node compatibility"></a>
    <a href="#"><img src="https://github.com/sfajs/cloudbase/actions/workflows/test.yml/badge.svg?branch=main" alt="Build Status"></a>
    <a href="https://codecov.io/gh/sfajs/cloudbase/branch/main"><img src="https://img.shields.io/codecov/c/github/sfajs/cloudbase/main.svg" alt="Test Coverage"></a>
    <a href="https://github.com/sfajs/cloudbase/pulls"><img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg" alt="PRs Welcome"></a>
    <a href="https://gitpod.io/#https://github.com/sfajs/cloudbase"><img src="https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod" alt="Gitpod Ready-to-Code"></a>
    <a href="https://paypal.me/ihalwang" target="_blank"><img src="https://img.shields.io/badge/Donate-PayPal-ff3f59.svg"/></a>
</p>

## 介绍

`@sfajs/cloudbase` 是 `sfajs` 的腾讯云 `CloudBase` 托管环境

可以将 sfajs 项目托管到腾讯云 CloudBase，有效提升云函数响应速度

## 安装

```
npm install @sfajs/cloudbase
```

## 开始使用

请访问 <https://sfajs.com>

## 贡献

请阅读 [Contributing to @sfajs/cloudbase](https://github.com/sfajs/cloudbase/blob/main/CONTRIBUTING.md)

### 贡献列表

<a href="https://github.com/sfajs/cloudbase/graphs/contributors">
  <img src="https://contrib.rocks/image?repo=sfajs/cloudbase" />
</a>

## License

@sfajs/cloudbase is MIT licensed.
npm package: @sfajs/core
Description: 面向云的现代渐进式轻量 Node.js 框架
Author: hal-wang
Latest version: 1.6.1
Deprecated: Use @halsp/core

<p align="center">
  <a href="https://sfajs.com/" target="blank"><img src="https://sfajs.com/images/logo.png" alt="sfajs Logo" width="200"/></a>
</p>

<p align="center">sfajs - 面向云的现代渐进式轻量 <a href="http://nodejs.org" target="_blank">Node.js</a> 框架</p>
<p align="center">
    <a href="https://github.com/sfajs/core/blob/main/LICENSE" target="_blank"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="GitHub license" /></a>
    <a href=""><img src="https://img.shields.io/npm/v/@sfajs/core.svg" alt="npm version"></a>
    <a href=""><img src="https://badgen.net/npm/dt/@sfajs/core" alt="npm downloads"></a>
    <a href="https://nodejs.org/en/about/releases/"><img src="https://img.shields.io/node/v/vite.svg" alt="node compatibility"></a>
    <a href="#"><img src="https://github.com/sfajs/core/actions/workflows/test.yml/badge.svg?branch=main" alt="Build Status"></a>
    <a href="https://codecov.io/gh/sfajs/core/branch/main"><img src="https://img.shields.io/codecov/c/github/sfajs/core/main.svg" alt="Test Coverage"></a>
    <a href="https://github.com/sfajs/core/pulls"><img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg" alt="PRs Welcome"></a>
    <a href="https://gitpod.io/#https://github.com/sfajs/core"><img src="https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod" alt="Gitpod Ready-to-Code"></a>
    <a href="https://paypal.me/ihalwang" target="_blank"><img src="https://img.shields.io/badge/Donate-PayPal-ff3f59.svg"/></a>
</p>

## 介绍

sfajs 是一个面向云的现代渐进式轻量 <a href="http://nodejs.org" target="_blank">Node.js</a> 框架

可以运行于 http 服务，也可以运行于 serverless

### 渐进式

可以根据项目渐进式安装 sfajs 组件，路由、Ioc、视图、过滤器、请求管道等等

由于核心思想是中间件和依赖注入，因此 sfajs 的扩展性更强，你可以按需增加更多其他功能

### 多环境运行

sfajs 既可以运行在 serverless 也可以运行在原生 nodejs 服务、微服务等场景

sfajs 原生支持 serverless，作为云函数比其他 nodejs 框架速度更快

### 先进特性

sfajs 源码全部使用 TypeScript 开发，有完善的智能提示

mva 架构让项目各模块耦合度更低

可选的装饰器功能让接口设计更加简单

预编译路由，启动和响应速度更快，适合用于 serverless 的 nodejs 框架

## 安装

```
npm install @sfajs/core
```

## 开始使用

请访问 <https://sfajs.com>

## 贡献

请阅读 [Contributing to @sfajs/core](https://github.com/sfajs/core/blob/main/CONTRIBUTING.md)

### 贡献列表

<a href="https://github.com/sfajs/core/graphs/contributors">
  <img src="https://contrib.rocks/image?repo=sfajs/core" />
</a>

## License

sfajs is MIT licensed.
npm package: @sfajs/filter
Description: sfajs 的请求过滤器插件
Author: hal-wang
Latest version: 1.0.7
Deprecated: Use @halsp/filter

<p align="center">
  <a href="https://sfajs.com/" target="blank"><img src="https://sfajs.com/images/logo.png" alt="sfajs Logo" width="200"/></a>
</p>

<p align="center">sfajs - 面向云的现代渐进式轻量 <a href="http://nodejs.org" target="_blank">Node.js</a> 框架</p>
<p align="center">
    <a href="https://github.com/sfajs/filter/blob/main/LICENSE" target="_blank"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="GitHub license" /></a>
    <a href=""><img src="https://img.shields.io/npm/v/@sfajs/filter.svg" alt="npm version"></a>
    <a href=""><img src="https://badgen.net/npm/dt/@sfajs/filter" alt="npm downloads"></a>
    <a href="https://nodejs.org/en/about/releases/"><img src="https://img.shields.io/node/v/vite.svg" alt="node compatibility"></a>
    <a href="#"><img src="https://github.com/sfajs/filter/actions/workflows/test.yml/badge.svg?branch=main" alt="Build Status"></a>
    <a href="https://codecov.io/gh/sfajs/filter/branch/main"><img src="https://img.shields.io/codecov/c/github/sfajs/filter/main.svg" alt="Test Coverage"></a>
    <a href="https://github.com/sfajs/filter/pulls"><img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg" alt="PRs Welcome"></a>
    <a href="https://gitpod.io/#https://github.com/sfajs/filter"><img src="https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod" alt="Gitpod Ready-to-Code"></a>
    <a href="https://paypal.me/ihalwang" target="_blank"><img src="https://img.shields.io/badge/Donate-PayPal-ff3f59.svg"/></a>
</p>

## 介绍

`@sfajs/filter` 是 `sfajs` 的请求过滤器插件

请求过滤器可用于参数校验、身份验证、返回结果转换等

## 安装

```
npm install @sfajs/filter
```

## 开始使用

请访问 <https://sfajs.com>

## 贡献

请阅读 [Contributing to @sfajs/filter](https://github.com/sfajs/filter/blob/main/CONTRIBUTING.md)

### 贡献列表

<a href="https://github.com/sfajs/filter/graphs/contributors">
  <img src="https://contrib.rocks/image?repo=sfajs/filter" />
</a>

## License

@sfajs/filter is MIT licensed.
npm package: @sfajs/http
Description: sfajs 的 http 托管环境
Author: hal-wang
Latest version: 1.2.2
Deprecated: Use @halsp/http

<p align="center">
  <a href="https://sfajs.com/" target="blank"><img src="https://sfajs.com/images/logo.png" alt="sfajs Logo" width="200"/></a>
</p>

<p align="center">sfajs - 面向云的现代渐进式轻量 <a href="http://nodejs.org" target="_blank">Node.js</a> 框架</p>
<p align="center">
    <a href="https://github.com/sfajs/http/blob/main/LICENSE" target="_blank"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="GitHub license" /></a>
    <a href=""><img src="https://img.shields.io/npm/v/@sfajs/http.svg" alt="npm version"></a>
    <a href=""><img src="https://badgen.net/npm/dt/@sfajs/http" alt="npm downloads"></a>
    <a href="https://nodejs.org/en/about/releases/"><img src="https://img.shields.io/node/v/vite.svg" alt="node compatibility"></a>
    <a href="#"><img src="https://github.com/sfajs/http/actions/workflows/test.yml/badge.svg?branch=main" alt="Build Status"></a>
    <a href="https://codecov.io/gh/sfajs/http/branch/main"><img src="https://img.shields.io/codecov/c/github/sfajs/http/main.svg" alt="Test Coverage"></a>
    <a href="https://github.com/sfajs/http/pulls"><img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg" alt="PRs Welcome"></a>
    <a href="https://gitpod.io/#https://github.com/sfajs/http"><img src="https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod" alt="Gitpod Ready-to-Code"></a>
    <a href="https://paypal.me/ihalwang" target="_blank"><img src="https://img.shields.io/badge/Donate-PayPal-ff3f59.svg"/></a>
</p>

## 介绍

`@sfajs/http` 是 `sfajs` 的 http 托管环境

让 sfa 能够运行于 http(s) 服务

你可以随时将 sfa 云函数简单改为 nginx 托管的 sfa http 服务，当然也可以将 nginx 托管的 sfa http 服务简单改为 sfa 云函数

## 安装

```
npm install @sfajs/http
```

## 开始使用

请访问 <https://sfajs.com>

## 贡献

请阅读 [Contributing to @sfajs/http](https://github.com/sfajs/http/blob/main/CONTRIBUTING.md)

### 贡献列表

<a href="https://github.com/sfajs/http/graphs/contributors">
  <img src="https://contrib.rocks/image?repo=sfajs/http" />
</a>

## License

@sfajs/http is MIT licensed.
npm package: @sfajs/inject
Description: Sfa 依赖注入中间件
Author: hal-wang
Latest version: 1.2.0
Deprecated: Use @halsp/inject

<p align="center">
  <a href="https://sfajs.com/" target="blank"><img src="https://sfajs.com/images/logo.png" alt="sfajs Logo" width="200"/></a>
</p>

<p align="center">sfajs - 面向云的现代渐进式轻量 <a href="http://nodejs.org" target="_blank">Node.js</a> 框架</p>
<p align="center">
    <a href="https://github.com/sfajs/inject/blob/main/LICENSE" target="_blank"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="GitHub license" /></a>
    <a href=""><img src="https://img.shields.io/npm/v/@sfajs/inject.svg" alt="npm version"></a>
    <a href=""><img src="https://badgen.net/npm/dt/@sfajs/inject" alt="npm downloads"></a>
    <a href="https://nodejs.org/en/about/releases/"><img src="https://img.shields.io/node/v/vite.svg" alt="node compatibility"></a>
    <a href="#"><img src="https://github.com/sfajs/inject/actions/workflows/test.yml/badge.svg?branch=main" alt="Build Status"></a>
    <a href="https://codecov.io/gh/sfajs/inject/branch/main"><img src="https://img.shields.io/codecov/c/github/sfajs/inject/main.svg" alt="Test Coverage"></a>
    <a href="https://github.com/sfajs/inject/pulls"><img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg" alt="PRs Welcome"></a>
    <a href="https://gitpod.io/#https://github.com/sfajs/inject"><img src="https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod" alt="Gitpod Ready-to-Code"></a>
    <a href="https://paypal.me/ihalwang" target="_blank"><img src="https://img.shields.io/badge/Donate-PayPal-ff3f59.svg"/></a>
</p>

## 介绍

`@sfajs/inject` 是 `sfajs` 的依赖注入插件

依赖注入能极大的提升代码可读性与安全性

## 安装

```
npm install @sfajs/inject
```

## 开始使用

请访问 <https://sfajs.com>

## 贡献

请阅读 [Contributing to @sfajs/inject](https://github.com/sfajs/inject/blob/main/CONTRIBUTING.md)

### 贡献列表

<a href="https://github.com/sfajs/inject/graphs/contributors">
  <img src="https://contrib.rocks/image?repo=sfajs/inject" />
</a>

## License

@sfajs/inject is MIT licensed.