open-index/open-npm huggingface dataset:
npm package: @ldo/rdf-utils
Description: Some RDF Utilities to support LDO librariers
Author: Jackson Morgan
Latest version: 1.0.0-alpha.46

# @ldo/rdf-utils

Utilities for common use in LDO libraries.

## Sponsorship

This project was made possible by a grant from NGI Zero Entrust via nlnet. Learn more on the [NLnet project page](https://nlnet.nl/project/SolidUsableApps/).

[<img src="https://nlnet.nl/logo/banner.png" alt="nlnet foundation logo" width="300" />](https://nlnet.nl/)
[<img src="https://nlnet.nl/image/logos/NGI0Entrust_tag.svg" alt="NGI Zero Entrust Logo" width="300" />](https://nlnet.nl/)

## Liscense

MIT
npm package: @ldo/solid-type-index
Description: Solid Type Index support for LDO
Author: Jackson Morgan
Latest version: 1.0.0-alpha.46

# @ldo/solid-type-index

A library to handle [type indexes](https://solid.github.io/type-indexes/index.html) with [LDO](https://ldo.js.org).

## Installation

```
npm i @ldo/solid-type-index @ldo/solid
```

## Usage

```typescript
import { initTypeIndex } from "@ldo/solid-type-index";
import { createSolidLdoDataset } from "@ldo/solid";

async function main() {
  const myWebId = "https://example.com/profile/card#me";
  const solidLdoDataset = createSolidLodDataset();

  // Initialize a type index for a webId in case it isn't initialized
  await initTypeIndex(myWebId, { solidLdoDataset });

  // Get Type Registrations
  const typeRegistrations = await getTypeRegistrations(WEB_ID, {
    solidLdoDataset,
  });

  // Get Instance Uris (the URIs for resources that contain an instance of a
  // class)
  const bookmarkUris: string[] = await getInstanceUris(
    "http://www.w3.org/2002/01/bookmark#Bookmark",
    typeRegistrations,
    { solidLdoDataset },
  );
}
main();
```

## Sponsorship

This project was made possible by a grant from NGI Zero Entrust via nlnet. Learn more on the [NLnet project page](https://nlnet.nl/project/SolidUsableApps/).

[<img src="https://nlnet.nl/logo/banner.png" alt="nlnet foundation logo" width="300" />](https://nlnet.nl/)
[<img src="https://nlnet.nl/image/logos/NGI0Entrust_tag.svg" alt="NGI Zero Entrust Logo" width="300" />](https://nlnet.nl/)

## Liscense

MIT
npm package: @ldo/svelte
Description: A Svelte library for LDO.
Author: Jackson Morgan
Latest version: 1.0.0-alpha.46

# @ldo/svelte

## Installation

```
npm i @ldo/svelte @ldo/solid
```

## Usage

(see the "example" folder for a full example)

Initialize your LDO methods

```typescript
import { createLdoSvelteMethods } from "@ldo/svelte";
import { solidConnectedPlugin } from "@ldo/connected-solid";

export const {
  dataset,
  useLdo,
  useMatchObject,
  useMatchSubject,
  useResource,
  useSubject,
  useSubscribeToResource,
  useLinkQuery,
} = createLdoSvelteMethods([solidConnectedPlugin]);

// At some point when you log in, you'll need to set context on the dataset with
// the authentication information. For example, in Solid, you would run:
// dataset.setContext("solid", { fetch: authFetch });
```

Use them in your svelte components

```svelte
<script lang="ts">
  import { SolidProfileShapeShapeType } from "./_ldo/solidProfile.shapeTypes.js";
  // Assuming these are the Svelte-specific functions/stores from your @ldo/svelte library
  import { useResource, useSubject } from "./ldoSvelteMethods.js";
  const SAMPLE_DATA_URI =
    "http://localhost:3004/example/link-query/main-profile.ttl";
  const resource = useResource(SAMPLE_DATA_URI);

  const webId = `${SAMPLE_DATA_URI}#me`;
  const profile = useSubject(SolidProfileShapeShapeType, webId);
  $: friendArray = $profile?.knows?.toArray() || [];
  $: firstFriendId =
    friendArray.length > 0 ? friendArray[0]?.["@id"] : undefined;
</script>

<h1>LDO Svelte Support Demo</h1>
{#if $resource.isLoading() || !$profile}
  <p>loading</p>
{:else}
  <div>
    {#if firstFriendId}
      <p>{firstFriendId}</p>
    {:else}
      <p>No friend found or friend has no @id.</p>
    {/if}

    <ul>
      {#each friendArray as friend (friend["@id"])}
        <li>{friend["@id"]}</li>
      {:else}
        <li>No friends listed.</li>
      {/each}
    </ul>
  </div>
{/if}
```
npm package: @ldo/test-solid-server
Description: A solid server to be used in jest tests
Author: Jackson Morgan
Latest version: 1.0.0-alpha.46

# @ldo/test-solid-server

This is a reusable Solid Server to be used in Jest integration tests.

## Setup

Install cross-env

```
npm i --save-dev cross-env
```

Use the following to run your tests

```
"test": "cross-env NODE_OPTIONS=--experimental-vm-modules jest --coverage",
```
npm package: @ldobjects/cli
Description: A Command Line Interface for Linked Data Objects
Author: Jackson Morgan
Latest version: 0.0.1-alpha.13

# LDO-CLI

A command line interface for Linked Data Objects. LDO-CLI builds `.shex` shapes into LDO types.

## Setup
Install the CLI

```bash
npm i ldo-cli --save-dev
```

Set up a shapes folder
```bash
mkdir shapes
```

Place ShexC shapes inside `.shex` files

```bash
touch ./shapes/example.shex
```

Build the shpaes
```bash
ldo build --input ./shapes --output ./ldo
```
npm package: @ldobjects/schema-converter-shex
Description: Turn ShexJ into typescript typings and JSON-LD context.
Latest version: 0.0.1-alpha.13

# ShexJ 2 Type and Context

Turn ShexJ into typescript typings and JSON-LD context.

## Installation
```bash
npm i @ldobjects/schema-converter-shex
```

## API
See the [full API docs](docs/modules.md).

## Usage

```typescript
import { Schema } from "shexj";
import shexjToTypeAndContext from "@ldobjects/schema-converter-shex";

async function run() {
  /**
   * Sample ShexJ. Equivalent to:
   *
   * <EmployeeShape> {                # An <EmployeeShape> has:
   *   foaf:givenName  xsd:string+,   # at least one givenName.
   *   foaf:familyName xsd:string,    # one familyName.
   *   foaf:phone      IRI*,          # any number of phone numbers.
   *   foaf:mbox       IRI            # one FOAF mbox.
   * }
   */
  const sampleShexj: Schema = {
    type: "Schema",
    shapes: [
      {
        type: "Shape",
        id: "http://shex.io/webapps/shex.js/doc/EmployeeShape",
        expression: {
          type: "EachOf",
          expressions: [
            {
              type: "TripleConstraint",
              predicate: "http://xmlns.com/foaf/0.1/givenName",
              valueExpr: {
                type: "NodeConstraint",
                datatype: "http://www.w3.org/2001/XMLSchema#string",
              },
              min: 1,
              max: -1,
            },
            {
              type: "TripleConstraint",
              predicate: "http://xmlns.com/foaf/0.1/familyName",
              valueExpr: {
                type: "NodeConstraint",
                datatype: "http://www.w3.org/2001/XMLSchema#string",
              },
            },
            {
              type: "TripleConstraint",
              predicate: "http://xmlns.com/foaf/0.1/phone",
              valueExpr: {
                type: "NodeConstraint",
                nodeKind: "iri",
              },
              min: 0,
              max: -1,
            },
            {
              type: "TripleConstraint",
              predicate: "http://xmlns.com/foaf/0.1/mbox",
              valueExpr: {
                type: "NodeConstraint",
                nodeKind: "iri",
              },
            },
          ],
        },
      },
    ],
    "@context": "http://www.w3.org/ns/shex.jsonld",
  };

  const [typings, context] = await shexjToTypeAndContext(sampleShexj);

  /*
  Logs:
  declare namespace  {
    interface EmployeeShape {
        givenName: string[];
        familyName: string;
        phone?: string[];
        mbox: string;
    }

  }
  */
  console.log(typings.typingsString);
  /*
  Logs:
  {
    givenName: {
      '@id': 'http://xmlns.com/foaf/0.1/givenName',
      '@type': 'http://www.w3.org/2001/XMLSchema#string',
      '@container': '@set'
    },
    familyName: {
      '@id': 'http://xmlns.com/foaf/0.1/familyName',
      '@type': 'http://www.w3.org/2001/XMLSchema#string'
    },
    phone: { '@id': 'http://xmlns.com/foaf/0.1/phone', '@container': '@set' },
    mbox: { '@id': 'http://xmlns.com/foaf/0.1/mbox' }
  }
  */
  console.log(context);
}
run();
```


## Liscense
MIT
npm package: @ldobjects/solid
Description: A library for LDO and Solid
Author: Jackson Morgan
Latest version: 0.0.1-alpha.13

# Solid-Dataset

Pre-alpha

## Notes:
 - Any quads in the default graph will not be synced to Solid Pods, but will be added to the dataset without any syncing


## TODO:
 - Create an event for each thing that happens. Like "Loaded"
 - You should be able to initialize classes with loading = true so that there isn't a flash on initial load
 - Access rule stuff just doesn't work. I might need to program a custom implementation for that
 - There should probably be separate libraries for React native and Web React
npm package: @ldobjects/solid-react
Description: A React library for LDO and Solid
Author: Jackson Morgan
Latest version: 0.0.1-alpha.13

# Solid-Dataset

Pre-alpha

## Notes:
 - Any quads in the default graph will not be synced to Solid Pods, but will be added to the dataset without any syncing


## TODO:
 - Create an event for each thing that happens. Like "Loaded"
 - You should be able to initialize classes with loading = true so that there isn't a flash on initial load
 - Access rule stuff just doesn't work. I might need to program a custom implementation for that
 - There should probably be separate libraries for React native and Web React
npm package: @ldolne/npx-card
Description: A personal card for Laëtitia Dolne
Author: ldolne
Latest version: 1.0.4

# `npx-card` ldolne
Exercise based on [Leny's npx card](https://github.com/leny/npxcard), with an original idea by [bitandbang](https://github.com/bnb/bitandbang).

## Usage
Use via npx:

```
npx @ldolne/npx-card
```
npm package: @ldons/mern-template-app
Description: CLI tool to create MERN stack projects with TypeScript
Author: ldons
Latest version: 1.0.4

I'll help you create a comprehensive README for your npm package. Here's a draft:

# MERN Template App

A CLI tool to quickly scaffold a full-stack MERN (MongoDB, Express, React, Node.js) project with TypeScript support.

## Features

- Quickly generate a complete MERN stack project structure
- TypeScript support for both frontend and backend
- Preconfigured project setup
- Interactive project name selection

## Prerequisites

- Node.js (version 14 or later)
- npm

## Installation

You can install the package globally or use npx to run it:

```bash
# Global installation
npm install -g @ldons/mern-template-app

# Or use npx (recommended)
npx @ldons/mern-template-app
```

## Usage

Simply run the CLI tool and follow the prompts:

```bash
npx @ldons/mern-template-app
```

You'll be asked to provide a project name. The tool will:
- Create a new directory with your project name
- Set up a client (React) directory
- Set up a server (Node.js) directory
- Configure package.json files
- Provide a basic project structure

## Project Structure

After generating, your project will look like:

```
your-project-name/
├── client/          # Frontend React application
│   ├── public/
│   ├── src/
│   ├── index.html
│   ├── tsconfig.json
│   ├── vite.config.ts
│   └── package.json
├── server/          # Backend Node.js server
│   ├── src/
│   ├── tsconfig.json
│   └── package.json
├── LICENSE
└── README.md
```

## Getting Started After Generation

1. Navigate to your project directory
2. Install frontend dependencies:
   ```bash
   cd client
   npm install
   npm run dev
   ```
3. In a new terminal, install backend dependencies:
   ```bash
   cd server
   npm install
   npm run dev
   ```

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## License

This project is licensed under the MIT License.

## Author

ldons

## Keywords

mern, typescript, react, node, mongodb, express, template, starter, cli
npm package: @ldraney/mcp-linkedin
Description: MCP server for managing LinkedIn posts
Author: Lucas Draney
Latest version: 0.3.1

# mcp-linkedin

**Post to LinkedIn from Claude Desktop.**

Install in 30 seconds. Authenticate once. Post forever.

## Quick Start

### Option A: One-Click Install (Recommended)
1. **Download** [mcp-linkedin.mcpb](https://github.com/ldraney/mcp-linkedin/releases/latest/download/mcp-linkedin.mcpb)
2. **Open** with Claude Desktop
3. **Authorize** when prompted (one-time LinkedIn OAuth)

### Option B: Command Line
```bash
npx @ldraney/mcp-linkedin
```

## What You Can Do

Ask Claude things like:
- *"Post about my new GitHub project with a link"*
- *"Create a poll asking my network about AI trends"*
- *"Schedule a post for tomorrow at 9am"*
- *"Upload this PDF and share it with my network"*
- *"Add a comment to my latest post"*

## 21 Tools Available

| Category | Tools |
|----------|-------|
| **Posting** | Text, links, images, videos, documents, polls |
| **Multi-media** | Up to 20 images per post |
| **Scheduling** | Schedule posts for future publication |
| **Engagement** | Comment and react to posts |
| **Management** | Edit, delete, list your posts |

## How It Works

```
You install mcp-linkedin (npm or .mcpb)
         │
         └─► First use triggers OAuth
                   │
                   └─► Tokens stored locally on your machine
                             │
                             └─► Claude posts to LinkedIn for you
```

Your credentials stay on your machine. The OAuth relay only handles the initial handshake.

## Privacy

- Your LinkedIn access token is stored locally on your machine
- We never store or access your LinkedIn credentials
- All API calls go directly from your machine to LinkedIn

## Requirements

- [Claude Desktop](https://claude.ai/download)
- LinkedIn account

## Feedback

Found a bug? Have a feature request?
[Open an issue](https://github.com/ldraney/mcp-linkedin/issues/new)

For security vulnerabilities, see [SECURITY.md](./SECURITY.md).

## For Developers

```bash
git clone https://github.com/ldraney/mcp-linkedin.git
cd mcp-linkedin
npm install
npm test  # 135 tests
```

See [CLAUDE.md](./CLAUDE.md) for architecture and API details.

## License

MIT
npm package: @ldrick/trade-indicators
Description: Trade Indicators
Author: Ricky Lippmann
Latest version: 0.7.0

# trade-indicators

[![test](https://github.com/ldrick/trade-indicators/actions/workflows/test.yml/badge.svg)](https://github.com/ldrick/trade-indicators/actions/workflows/test.yml)
[![codecov](https://img.shields.io/codecov/c/github/ldrick/trade-indicators/main)](https://codecov.io/gh/ldrick/trade-indicators)
[![npm version](https://img.shields.io/npm/v/@ldrick/trade-indicators?color=blue)](https://www.npmjs.com/package/@ldrick/trade-indicators)
[![npm license](https://img.shields.io/npm/l/@ldrick/trade-indicators)](https://www.npmjs.com/package/@ldrick/trade-indicators)
[![made with](https://img.shields.io/github/languages/top/ldrick/trade-indicators)](https://www.typescriptlang.org/)

> Trade Indicators written in pure functional Typescript. \
> Results will be \
> `Either<Error, ReadonlyArray<number> | Readonly<Record<string, ReadonlyArray<number>>>>` \
> depending on what is returned using these amazing libraries: \
> 🚀 [fp-ts](https://github.com/gcanti/fp-ts) \
> 🌟 [big.js](https://github.com/MikeMcl/big.js/)
>
> - Average Directional Index (adx)
> - Average True Range (atr)
> - Double Exponential Moving Average (dema)
> - Exponential Moving Average (ema)
> - Moving Average Convergence / Divergence (macd)
> - Simple Moving Average (sma)
> - Smoothed Moving Average (smma)
> - Triple Exponential Moving Average (tema)
> - Weighted Moving Average (wma)

## Install

`npm install @ldrick/trade-indicators fp-ts big.js` \
or \
`yarn add @ldrick/trade-indicators fp-ts big.js`

## Usage

In TypeScript:

```typescript
import { either as E, function as F } from 'fp-ts';
import { ema } from '@ldrick/trade-indicators/averages/ema.js';
import { toPromise } from '@ldrick/trade-indicators/toPromise.js';

const prices = [3, 2.1, 3, 4, 5.3, 5, 4.8, 6, 7, 5];
const period = 3;

// possible usage to pipe the Result E.Either<Error, RNEA.ReadonlyNonEmptyArray<number>>
const expMovingAverage = F.pipe(
	ema(prices, period),
	E.getOrElse(() => <ReadonlyArray<number>>[]),
);

// or convert the Result to Promise<RNEA.ReadonlyNonEmptyArray<number>>
toPromise(ema(prices, period)).then(
	(result) => console.log(result),
	(error) => console.log(error),
);
```
npm package: @lds/universal-env
Description: Safe, universal environment variables in 3 easy steps
Latest version: 1.0.3

# Universal Environment Variables

Safe, universal environment variables in 3 easy steps 😬.


## 1. Define what to share

Do this early in the application's lifecycle.

```
import { share } from "@lds/universal-env";

share("NODE_ENV", "GRAPHQL_ENDPOINT");
```


## 2. Populate a script tag in the document template

Add as script tag when generating the document. The script function returns a string of javascript.

```
import { script } from "@lds/universal-env";
<script>{script()}</script>
```


## 3. Access shared variables.

```
import { get } from "@lds/universal-env";

const { NODE_ENV, GRAPHQL_ENDPOINT } = get();
```
npm package: @ldsg/app-builder
Description: Application builder for @ldsg/cli
Author: wanxger
Latest version: 0.3.18

# Ldsg App Builder

落地生根应用构建器

## 常用命令

### 构建

```sh
# 构建应用，xxx 需要替换为相应 URL
# 单命令
LDSG_APP_DATA_URI=xxx pnpm build:app

# 多命令
LDSG_APP_DATA_URI=xxx pnpm app:fetch-data
pnpm app:prepare
pnpm app:build

# 实例
# 单命令
LDSG_APP_DATA_URI=https://api-next.ldsgy.com/projects/691e7be28bcc5027fa90caa8/app_data?secret_key=Je2hmI8tATgC3clBuBo2q0GIPgNO3vyytfK5seiLtWbZRwv4xGyYt1N pnpm build:app

# 多命令
LDSG_APP_DATA_URI=https://api-next.ldsgy.com/projects/691e7be28bcc5027fa90caa8/app_data?secret_key=Je2hmI8tATgC3clBuBo2q0GIPgNO3vyytfK5seiLtWbZRwv4xGyYt1N pnpm app:fetch-data
pnpm app:prepare
pnpm app:build
```

### 启动

```sh
# 启动
pnpm start

# 用本地数据库测试启动，需要移除资源中的数据库配置
pnpm start:test
```

### 构建 docker 镜像

```sh
# 构建 docker 镜像，xxx 需要替换为相应 URL
docker build --build-arg LDSG_APP_DATA_URI=xxx --file Dockerfile -t ldsg-app:latest .

docker build \
--build-arg LDSG_APP_DATA_URI=https://5aorodhjbz-3000.cnb.run/projects/689e09b6022b45aee3c320f7/app_data?secret_key=TetgPu5G9NUfzcLRJt2WUi7uYRBW4MdMx9juKIhyslMArOfvCvRtFaR \
--file Dockerfile \
-t ldsg-app:latest \
.

# 通过 CURL 启动构建
curl --location 'https://api.cnb.cool/wanxger/ldsgy/ldsgy-app-builder/-/build/start' \
--header 'accept: application/json' \
--header 'Authorization: 28k111ci8W8NvWffZmdLeTB9eFx' \
--header 'Content-Type: application/json' \
--data '{
  "branch": "main",
  "env": {
    "LDSG_APP_DATA_URI": "https://5aorodhjbz-3000.cnb.run/projects/689e09b6022b45aee3c320f7/app_data?secret_key=TetgPu5G9NUfzcLRJt2WUi7uYRBW4MdMx9juKIhyslMArOfvCvRtFaR"
  },
  "event": "api_trigger_test"
}'
```
npm package: @ldsg/cli
Description: CLI tool for generating and starting ldsg applications
Author: wanxger
Latest version: 0.3.18

# @ldsg/cli

命令行工具，用于生成和部署 ldsg 应用。

## 安装

```bash
npm install -g @ldsg/cli
```

或者在 monorepo 中本地使用：

```bash
cd libs/cli
npm link
```

## 使用

### Generate 命令

根据 `LDSG_APP_DATA_URI` 环境变量获取应用数据，在指定目录生成 ldsg 应用。如果未指定目录，则在当前目录生成：

```bash
ldsg generate /path/to/target
```

或者使用缩写：

```bash
ldsg g /path/to/target
```

在当前目录生成：

```bash
ldsg g
```

#### 参数

- `<targetDir>` - 目标目录路径（可选，默认为当前目录）

#### 选项

- `--confirm` - 跳过确认提示，直接生成
- `--build` - 生成后构建应用
- `--verbose` - 启用详细输出

#### 示例

##### 基本生成

```bash
export LDSG_APP_DATA_URI="http://example.com/app-data"
ldsg generate ./my-app
```

##### 生成并构建

```bash
ldsg generate ./my-app --build
```

##### 启用详细输出

```bash
ldsg generate ./my-app --verbose
```

### Deploy 命令

将 ldsg 应用部署到目标目录：

```bash
ldsg deploy /path/to/target
```

### 命令行参数

`ldsg deploy <targetDir> [options]`

#### 参数

- `<targetDir>` - 目标目录路径（必需）

#### 选项

- `--confirm` - 跳过确认提示，直接部署
- `--dry-run` - 预览模式，显示将要执行的操作但不实际更改文件
- `--verbose` - 启用详细输出

### 示例

#### 基本部署

```bash
ldsg deploy ./dist/my-app
```

#### 部署到已存在的目录（需要确认）

```bash
ldsg deploy ./existing-dir
# 输出：Target directory ./existing-dir already exists.
#       Use --confirm flag to proceed without prompting.
```

#### 强制覆盖已存在的目录

```bash
ldsg deploy ./existing-dir --confirm
```

#### 预览将要执行的操作

```bash
ldsg deploy ./preview-dir --dry-run
# 输出：Dry run mode - no changes will be made
#       Would deploy to: /absolute/path/to/preview-dir
```

#### 启用详细输出

```bash
ldsg deploy ./verbose-dir --verbose
# 输出：Starting deployment...
#       Target directory: /absolute/path/to/verbose-dir
#       Starting build process...
#       Build completed successfully
#       Copying files from /path/to/dist to /absolute/path/to/verbose-dir...
#       Files copied successfully
#       Deployment completed successfully!
```

## 工作流程

部署命令执行以下步骤：

1. 验证目标目录（如果存在且未提供 --confirm，则提示确认）
2. 执行构建过程（`rush build`）
3. 复制构建产物到目标目录
4. 生成部署元数据文件（`deployment.json`）

## 部署元数据

成功部署后，目标目录将包含 `deployment.json` 文件：

```json
{
  "timestamp": "2024-03-09T12:00:00.000Z",
  "version": "0.1.0",
  "targetDir": "/absolute/path/to/target"
}
```

## 错误处理

CLI 会提供清晰的错误消息：

- **缺少目标目录**：提示必须提供目标目录参数
- **缺少 LDSG_APP_DATA_URI**：提示必须设置环境变量
- **构建失败**：显示构建错误详情并退出
- **文件操作错误**：显示权限或其他文件系统错误
- **目标目录已存在**：提示使用 --confirm 或 --dry-run

## 退出码

- `0` - 部署成功
- `1` - 部署失败（构建错误、文件错误、验证失败等）

## 开发

### 构建项目

```bash
cd libs/cli
npm run build
```

### 运行测试

```bash
cd libs/cli
npm test
```

### 清理构建产物

```bash
cd libs/cli
npm run clean
```

## 贡献

欢迎贡献！请确保：

1. 代码遵循项目风格指南
2. 添加适当的测试
3. 更新文档
npm package: @ldsg/forms
Description: The FormsResource provides GraphQL query fields for discovering and retrieving form definitions.
Author: wanxger
Latest version: 0.3.25

# LDSG Forms Resource

The FormsResource provides GraphQL query fields for discovering and retrieving form definitions.

## Features

- **`form(name: "...")`** - Query a single form by name
  - Returns form metadata (name, title, description) with input and output objects
  - Example: `form(name: "ContactForm") { name, title, description, inputObject, outputObject }`

- **`forms`** - Query all forms
  - Returns a list of all forms with metadata (name, title, description)
  - Example: `forms { name, title, description }`

## Usage

```graphql
# Query a single form by name
query {
  form(name: "ContactForm") {
    name
    title
    description
    inputObject {
      name
      title
      description
      fieldInfoList
      jsonSchema
      formilyJsonSchema
    }
    outputObject {
      name
      title
      description
      fieldInfoList
      jsonSchema
      formilyJsonSchema
    }
  }
}

# Query all forms
query {
  forms {
    name
    title
    description
  }
}
```

## TODO

- [ ] add e2e, request to express app
npm package: @ldsg/graphql-resolver
Description: GraphQL Resolver 资源模块，用于向 GraphQL schema 添加单个 resolver。
Author: wanxger
Latest version: 0.3.25

# @ldsg/graphql-resolver

GraphQL Resolver 资源模块，用于向 GraphQL schema 添加单个 resolver。

## 功能

- 支持向 Query/Mutation 添加 resolver
- 支持向 Object 类型添加关系（relation）
- 支持使用 jsonata 表达式配置 prepareArgs
- 支持 projection 配置

## 使用示例

### 添加 Query/Mutation resolver

```typescript
// Query.userFindById
{
  typeName: 'Query',
  fieldName: 'userFindById',
  objectTypeName: 'User',
  resolverName: 'findById'
}

// Mutation.userCreateOne
{
  typeName: 'Mutation',
  fieldName: 'userCreateOne',
  objectTypeName: 'User',
  resolverName: 'createOne'
}
```

### 添加 Relation

```typescript
// User.friends
{
  typeName: 'User',
  fieldName: 'friends',
  objectTypeName: 'User',
  resolverName: 'dataLoaderMany',
  prepareArgs: '{ _ids: friendsIds }',
  projection: { friendsIds: 1 }
}

// User.adultFriendsWithSameGender
{
  typeName: 'User',
  fieldName: 'adultFriendsWithSameGender',
  objectTypeName: 'User',
  resolverName: 'findMany',
  prepareArgs: '{ filter: { _id: { $in: friendsIds }, age: { $gt: 21 }, gender: gender }, limit: 10 }',
  projection: { friendsIds: 1, gender: 1 }
}
```

### Form resolver

```typescript
// Mutation.submitUserForm
{
  typeName: 'Mutation',
  fieldName: 'submitUserForm',
  objectTypeName: 'UserForm',
  resolverName: 'submit'
}
```

## 配置项

| 字段 | 类型 | 描述 |
|-------|------|------|
| typeName | string | 添加到的类型名称：'Query'、'Mutation' 或 Object 类型名称 |
| fieldName | string | 字段名称 |
| description? | string | 字段描述（可选） |
| objectTypeName | string | resolver 所属的对象类型名称 |
| resolverName | string | resolver 方法名称 |
| prepareArgs? | string | jsonata 表达式，用于 prepareArgs（可选） |
| projection? | object | projection 配置（可选） |

## 相关

- [@ldsg/graphql-resolvers](../graphql-resolvers/README.md)
- [@ldsg/graphql](../../libs/graphql/README.md)
npm package: @ldsg/graphql-resolvers
Description: GraphQL Resolvers 容器资源模块，用于管理多个 graphql-resolver 实例。
Author: wanxger
Latest version: 0.3.25

# @ldsg/graphql-resolvers

GraphQL Resolvers 容器资源模块，用于管理多个 graphql-resolver 实例。

## 功能

- 管理子级的 graphql-resolver 资源
- 统一调用子资源的 modifyGraphQLSchema 方法

## 使用示例

```typescript
// 在应用配置中添加 graphql-resolvers 资源
{
  id: 'graphql-resolvers',
  kind: 'graphql-resolvers',
  parentId: 'graphql-id',
  settings: {
    title: 'GraphQL Resolvers',
    description: '管理 GraphQL resolvers'
  }
}
```

## 相关

- [@ldsg/graphql-resolver](../graphql-resolver/README.md)
- [@ldsg/graphql](../../libs/graphql/README.md)
npm package: @ldsg/prepare
Description: [x] 在系统临时目录测试应用 [ ] 通过匹配快照的方式验证准备功能是否完整。
Author: wanxger
Latest version: 0.3.25

# 落地生根准备工具

[x] 在系统临时目录测试应用
[ ] 通过匹配快照的方式验证准备功能是否完整。
npm package: @ldsg/services
Description: 提供所有服务，并由服务提供能力。无论是开源，还是由平台提供服务，运行时均使用相同的服务。
Author: wanxger
Latest version: 0.1.0-alpha.17

# 落地生根服务

提供所有服务，并由服务提供能力。无论是开源，还是由平台提供服务，运行时均使用相同的服务。

### 服务说明

- `HANDLER`类型服务中，只存储原始代码、环境变量和所需依赖。本模块只作运行时，构建应在运行时内处理。

- `HTTP`类型服务中，从`res.locals.context`取上下文。
npm package: @ldsgy/storage-service
Description: 提供所有服务，并由服务提供能力。无论是开源，还是由平台提供服务，运行时均使用相同的服务。
Author: wanxger
Latest version: 0.0.1

# 落地生根服务

提供所有服务，并由服务提供能力。无论是开源，还是由平台提供服务，运行时均使用相同的服务。

### 服务说明

- `HANDLER`类型服务中，只存储原始代码、环境变量和所需依赖。本模块只作运行时，构建应在运行时内处理。

- `HTTP`类型服务中，从`res.locals.context`取上下文。

```sh
pnpm un --filter @ldsgy/storage-service @ldsg/app @ldsg/common @ldsg/core @ldsg/services && pnpm i --filter @ldsgy/storage-service @ldsg/app @ldsg/common @ldsg/core @ldsg/services
```
npm package: @ldshape/bookmark
Description: Shapes for bookmarks on Solid.
Author: Jackson Morgan
Latest version: 1.0.0

# @ldshape/bookmark

Shapes for bookmarks on Solid.

This project includes shapes and generated files for [LDO](https://ldo.js.org).

## Installation

```bash
npm i @ldshape/bookmark
```


## bookmark

### Usage with LDO

```typescript
import { createLdoDataset } from "@ldo/ldo";
import { BookmarkShapeShapeType, BookmarkTopicShapeType } from "@ldshape/bookmark";
import type { BookmarkShape, BookmarkTopic } from "@ldshape/bookmark";
const ldoDataset = createLdoDataset();

const example0: BookmarkShape = ldoDataset
  .usingType(BookmarkShapeShapeType)
  .fromSubject("http://example.com/example0");

const example1: BookmarkTopic = ldoDataset
  .usingType(BookmarkTopicShapeType)
  .fromSubject("http://example.com/example1");

```

### ShEx Typings

```shex
PREFIX srs: <https://shaperepo.com/schemas/Bookmark#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX boo: <http://www.w3.org/2002/01/bookmark#>
PREFIX dct: <http://purl.org/dc/terms/created>

srs:BookmarkShape EXTRA a {
  a [ boo:Bookmark ];
  rdfs:label xsd:string ?;
  boo:hasTopic xsd:string ;
  boo:id xsd:string ?;
  boo:recalls IRI ;
  dct:created xsd:dateTime ?;
  dct:creator IRI ?;
}

srs:BookmarkTopic EXTRA a {
  a [boo:Topic] ;
  boo:subTopicOf @srs:BookmarkTopic ?;
}


```

### TypeScript Typings

```typescript
import { ContextDefinition } from "jsonld";

/**
 * =============================================================================
 * Typescript Typings for bookmark
 * =============================================================================
 */

/**
 * BookmarkShape Type
 */
export interface BookmarkShape {
  "@id"?: string;
  "@context"?: ContextDefinition;
  type: {
    "@id": "Bookmark";
  };
  label?: string;
  hasTopic: string;
  id?: string;
  recalls: {
    "@id": string;
  };
  createdcreated?: string;
  createdcreator?: {
    "@id": string;
  };
}

/**
 * BookmarkTopic Type
 */
export interface BookmarkTopic {
  "@id"?: string;
  "@context"?: ContextDefinition;
  type: {
    "@id": "Topic";
  };
  subTopicOf?: BookmarkTopic;
}

```
npm package: @ldshape/task
Description: A shape describing tasks and issues in Solid
Author: Jackson Morgan
Latest version: 1.0.0

# @ldshape/task

A shape describing tasks and issues in Solid

This project includes shapes and generated files for [LDO](https://ldo.js.org).

## Installation

```bash
npm i @ldshape/task
```


## task

### Usage with LDO

```typescript
import { createLdoDataset } from "@ldo/ldo";
import { TrackerShapeType, TaskShapeType, TaskMessageShapeType } from "@ldshape/task";
import type { Tracker, Task, TaskMessage } from "@ldshape/task";
const ldoDataset = createLdoDataset();

const example0: Tracker = ldoDataset
  .usingType(TrackerShapeType)
  .fromSubject("http://example.com/example0");

const example1: Task = ldoDataset
  .usingType(TaskShapeType)
  .fromSubject("http://example.com/example1");

const example2: TaskMessage = ldoDataset
  .usingType(TaskMessageShapeType)
  .fromSubject("http://example.com/example2");

```

### ShEx Typings

```shex
PREFIX srs: <https://shaperepo.com/schemas/task#>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX wf: <http://www.w3.org/2005/01/wf/flow#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX sioc: <http://rdfs.org/sioc/ns#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

srs:Tracker EXTRA a {
  a [ wf:Tracker ] ;
  dc:author IRI ?;
  dc:created xsd:dateTime *;
  wf:assigneeClas [ foaf:Person ]? ;
  wf:initialState: ([ wf:Open ] OR [wf:Closed]) ?;
  wf:issueClass [ wf:Task ] ?;
  wf:stateStore IRI;
}

srs:Task EXTRA a {
  a ([ wf:Open ] OR [wf:Closed]) ;
  dc:title xsd:string ?;
  dct:created xsd:dateTime ?;
  wf:description xsd:string ?;
  wf:message @srs:TaskMessage *;
}

srs:TaskMessage EXTRA a {
  dct:created xsd:dateTime ?;
  sioc:content xsd:string ?;
  foaf:maker IRI ;
}
```

### TypeScript Typings

```typescript
import { ContextDefinition } from "jsonld";

/**
 * =============================================================================
 * Typescript Typings for task
 * =============================================================================
 */

/**
 * Tracker Type
 */
export interface Tracker {
  "@id"?: string;
  "@context"?: ContextDefinition;
  type: {
    "@id": "Tracker";
  };
  author?: {
    "@id": string;
  };
  created?: string[];
  assigneeClas?: {
    "@id": "Person";
  };
  "initialState:"?:
    | {
        "@id": "Open";
      }
    | {
        "@id": "Closed";
      };
  issueClass?: {
    "@id": "Task";
  };
  stateStore: {
    "@id": string;
  };
}

/**
 * Task Type
 */
export interface Task {
  "@id"?: string;
  "@context"?: ContextDefinition;
  type:
    | {
        "@id": "Open";
      }
    | {
        "@id": "Closed";
      };
  title?: string;
  created?: string;
  description?: string;
  message?: TaskMessage[];
}

/**
 * TaskMessage Type
 */
export interface TaskMessage {
  "@id"?: string;
  "@context"?: ContextDefinition;
  created?: string;
  content?: string;
  maker: {
    "@id": string;
  };
}

```
npm package: @ldss95/helpers
Description: Multiples funciones para problemas comunes como validacion de cedula dominicana, formatear strings telefonicos o moneda, generar pdf a partid de html. Etc...
Author: Luis David S.
Latest version: 0.2.2

# Helpers

Este paquete incluye funciones para:
* Validar cedula de identidad y electoral dominicana. [Video](https://www.youtube.com/watch?v=__Ko7VxoCuU&t=179s)
* Agregar formato a cadenas de texto
* Generar documentos PDF a partir de plantillas HTML

## Ejemplos
```ts
import { duiIsValid, format, pdf } from 'ldss95@helpers'

if(duiIsValid('402256688353')){
    //Do something
}

const phone = format.phone('8094260093')
// (809) 426 - 0093

const code = format.custom('8078', 'XXXX - XXXX - XXXX - XXXX')

```
npm package: @ldtsoft/magefan-blog
Description: Implements Magefan Blog functionality on Magento 2 PWA Studio
Author: Dreyar
Latest version: 0.0.2

# Magefab Blog extension for PWA Studio

## Pre-Requisite
* [PWA Studio](https://github.com/magento/pwa-studio) >= 8.0.0
* [Magefan Blog Extension](https://github.com/magefan/module-blog)
* [Magefan Blog GraphQL Extension](https://github.com/magefan/module-blog-graph-ql)

## Install this package
```
yarn add @ldtsoft/magefan-blog
```
or
```
npm install @ldtsoft/magefan-blog
```
or
```
1. Clone the code to [pwa-studio-directory]/packages/magefan-blog
2. Go to theme package: yarn add ./packages/magefan-blog
```

## Features
* Posts List Page
* Post View Page
* Tag Page
* Category Page
* Author Page
* Search Page
* Blog Comments
* Related products
* SEO-friendly URLs
* Responsive Design
* Translation

## Contact
Email - ldtsoftwarevn@gmail.com
npm package: @ldtsoft/pwa-studio-cod
Description: Provides Cash On Delivery Payment Method for PWA Studio.
Author: Dreyar
Latest version: 0.0.1

# Cash on delivery payment method for PWA Studio

## Pre-Requisite
* [PWA Studio](https://github.com/magento/pwa-studio) >= 8.0.0
* [Cash on delivery Graphql Extension](https://github.com/ldtsoft/cod-graphql)

## Install this package
```
yarn add @ldtsoft/pwa-studio-cod
```
or
```
npm install @ldtsoft/pwa-studio-cod
```
or
```
1. Clone the code to [pwa-studio-directory]/packages/pwa-studio-cod
2. Go to theme package: yarn add ./packages/pwa-studio-cod
```

## Contact
Email - ldtsoftwarevn@gmail.com
npm package: @ldxm/nutui-bingo
Description: nutui生态之一抽奖组件库
Author: jdcfe
Latest version: 1.0.2

# NutUI-bingo 基于 NutUI 的抽奖组件库，助力营销活动和小游戏场景。
## 特性

* 使用 Vue3 语法，支持H5，后期适配小程序
* 支持按需引用
* 详尽的文档和示例
* 支持 TypeScript

## 组件

* 幸运大转盘
* 跑马灯
* 九宫格
* 开心刮刮乐
* 神秘大礼盒
* 砸金蛋
* 老虎机
* 摇好运
* 红包雨
* 娃娃机
* 你藏我猜
* 摇骰子

## 支持环境

* Android 5.0+
* iOS 9.2+
* 目前主要适用于 H5 场景

## 构建版本

* es **nutbig.es.js**
* umd **nutbig.umd.js**

## ⌨️ 本地开发

你可以使用 Gitpod 进行在线开发：

[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/jdf2e/nutui-bingo.git)

或者克隆到本地开发:

```bash
$ git clone https://github.com/jdf2e/nutui-bingo.git
$ cd nutui-bingo
$ npm install
$ npm run dev
```
npm package: @ldy_2020/accp-table
Description: #vue-cli 项目管理平台 ``` vue ui ```
Author: ldy_2020
Latest version: 0.1.5

# accp-web

#vue-cli 项目管理平台
```
vue ui
```

## Project setup
```
npm install
```

### Compiles and hot-reloads for development
```
npm run serve
```

### Compiles and minifies for production
```
npm run build
```

### Run your tests
```
npm run test
```

### Lints and fixes files
```
npm run lint
```

### Customize configuration
See [Configuration Reference](https://cli.vuejs.org/config/).
npm package: @ldzn/js-captcha
Description: [MIT](./LICENSE) License © 2022 [Soya-xy](https://github.com/Soya-xy)
Author: Soya
Latest version: 0.0.10

## Canvas Captcha
## License

[MIT](./LICENSE) License © 2022 [Soya-xy](https://github.com/Soya-xy)