open-index/open-npm huggingface dataset:
npm package: @jonz94/verify-pdf
Description: verify pdf files in JS
Latest version: 2.0.0

# verify-pdf

This is a fork of https://github.com/ninja-labs-tech/verify-pdf

verify pdf files in JS (supports node.js).

## Verifying PDF signature

The signed PDF file has the public certificate embedded in it, so all we need to verify a PDF file is the file itself.

## Installation

```
npm i @jonz94/verify-pdf
```

## Importing

```javascript
// CommonJS require
const verifyPDF = require('@jonz94/verify-pdf');

// ES6 imports
import verifyPDF from '@jonz94/verify-pdf';
```

## Verifying

Verify the digital signature of the pdf and extract the certificates details

```javascript
const verifyPDF = require('@jonz94/verify-pdf');
const signedPdfBuffer = fs.readFileSync('yourPdf');

const {
    verified,
    authenticity,
    integrity,
    expired,
    signatures
} = verifyPDF(signedPdfBuffer);
```

* signedPdfBuffer: signed PDF as buffer.
* verified: The overall status of verification process.
* authenticity: Indicates if the validity of the certificate chain and the root CA (overall in case of multiple signatures).
* integrity: Indicates if the pdf has been tampered with or not (overall in case of multiple signatures).
* expired: Indicates if any of the certificates has expired.
* signatures: Array that contains the certificate details and signatureMeta (Reason, ContactInfo, Location and Name) for each signature.

## Certificates

You can get the details of the certificate chain by using the following api.

```javascript
const { getCertificatesInfoFromPDF } = require('@jonz94/verify-pdf');  // require

import { getCertificatesInfoFromPDF } from '@jonz94/verify-pdf';  // ES6
```

```javascript
const certs = getCertificatesInfoFromPDF(signedPdfBuffer);
```

* signedPdfBuffer: signed PDF as buffer.

* certs:

    * issuedBy: The issuer of the certificate.
    * issuedTo: The owner of the certificate.
    * validityPeriod: The start and end date of the certificate.
    * pemCertificate: Certificate in pem format.
    * clientCertificate: true for the client certificate.

## Dependencies

[node-forge](https://github.com/digitalbazaar/forge) is used for working with signatures.

## Credits

* The initial implementation https://github.com/ninja-labs-tech/verify-pdf

* The process of signing and verifying a document is described in the [Digital Signatures in PDF](https://www.adobe.com/devnet-docs/acrobatetk/tools/DigSigDC/Acrobat_DigitalSignatures_in_PDF.pdf) document.
* This incredible [Stack Overflow answer](https://stackoverflow.com/questions/15969733/verify-pkcs7-pem-signature-unpack-data-in-node-js/16148331#16148331) for describing the whole process of verifying PKCS7 signatures.
npm package: @jonze/puck
Description: NHL Terminal UI for real-time stats and game tracking
Author: Carson Jones
Latest version: 0.4.0

# Puck ⚫︎

An NHL TUI
- explore calendar of games, see game details and scores
- view team standings, rosters, and leaders
- see player stats and bios

### Install

```sh
npm install -g puck
```

### Dev
```sh
bun run dev
```

### Headless CLI

```sh
# Discover commands for agents
puck commands --format=json
puck help lookup

# Games by date (agent-friendly JSON)
puck date --date today --format json

# Filter by team
puck date --date 2026-03-02 --team DAL --format table

# Parsed game payload: plays, scorers, assists, stars, goalie stats
puck game --id 2025020956 --format json

# Stream parsed plays as NDJSON
puck game --id 2025020956 --plays-only --format ndjson

# Standings snapshot with day-over-day movement deltas
puck standings --date yesterday --format json
puck standings --date yesterday --team DAL --format table

# Goal highlight clips + direct media URL resolution (Brightcove)
puck highlights --date yesterday --team DAL --limit 2 --format json
puck highlights --game-id 2025020956 --format table

# Lookup IDs for piping
puck lookup player --query "connor mcdavid" --ids-only
puck lookup game --date today --team DAL --ids-only
```

### Agent Notes

- `--format json` emits one JSON document.
- `--format ndjson` emits one JSON object per line.
- `--ids-only` emits bare IDs, one per line (ideal for piping).
npm package: @jood/common
Description: javascript array, string, number, point, color, cache, date utility/helper
Latest version: 0.4.3

# @jood/common

javascript array, string, number, point, color, cache, date utility/helper

> __[Documentation](https://molgga.github.io/jood-common)__
| __[Package source](https://github.com/molgga/jood-common/tree/master/projects/packages)__
| __[NPM](https://www.npmjs.com/package/@jood/common)__
\
\
![Typescript](https://img.shields.io/static/v1.svg?label=&style=flat-square&logoColor=white&color=3178c6&logo=typescript&message=Typescript)
![TRAVIS](https://travis-ci.org/molgga/jood-common.svg?branch=master)
![Codecov branch](https://img.shields.io/codecov/c/github/molgga/jood-common/master)
![NPM version](https://img.shields.io/npm/v/@jood/common.svg)
![NPM license](https://img.shields.io/npm/l/@jood/common)
![NPM download](https://img.shields.io/npm/dt/@jood/common)
![NPM bundle size](https://img.shields.io/bundlephobia/min/@jood/common)

---

## Quick sample

```typescript
import { replaceAll } from "@jood/common/string";
import { isNumber } from "@jood/common/number";
import { insert } from "@jood/common/array";
import { toFormat } from "@jood/common/date";
import { isIntersect } from "@jood/common/point";
import { TTLCache } from "@jood/common/cache";
import { BrowserCookie, BrowserScroll, DomScroll } from "@jood/common/web";
import { JdString, JdNumber, JdArray, JdDate, JdPoint } from "@jood/common";

console.log(replaceAll("hello-foo", "-", "#")); // "hello#foo"
console.log(JdString.replaceAll("hello-foo", "-", "#")); // "hello#foo"
```

---

This library was generated with [Angular CLI](https://github.com/angular/angular-cli)
npm package: @jood/helpdesk-array
Description: **[📘 Document](https://molgga.github.io/jood-helpdesk/)**
Latest version: 0.0.8

# @jood/helpdesk-array

**[📘 Document](https://molgga.github.io/jood-helpdesk/)**

```ts
import { foo, bar } from '@jood/helpdesk-array';
```
npm package: @jood/helpdesk-date
Description: **[📘 Document](https://molgga.github.io/jood-helpdesk/)**
Latest version: 0.0.7

# @jood/helpdesk-date

**[📘 Document](https://molgga.github.io/jood-helpdesk/)**

```ts
import { foo, bar } from '@jood/helpdesk-date';
```
npm package: @jood/helpdesk-fe
Description: **[📘 Document](https://molgga.github.io/jood-helpdesk/)**
Latest version: 0.1.0

# @jood/helpdesk-fe

**[📘 Document](https://molgga.github.io/jood-helpdesk/)**

```ts
import { ... } from '@jood/helpdesk-fe';
```
npm package: @jood/helpdesk-functional
Description: **[📘 Document](https://molgga.github.io/jood-helpdesk/)**
Latest version: 0.0.8

# @jood/helpdesk-functional

**[📘 Document](https://molgga.github.io/jood-helpdesk/)**

```ts
import { foo, bar } from '@jood/helpdesk-functional';
```
npm package: @jood/helpdesk-module
Description: **[📘 Document](https://molgga.github.io/jood-helpdesk/)**
Latest version: 0.0.16

# @jood/helpdesk-module

**[📘 Document](https://molgga.github.io/jood-helpdesk/)**

### @jood/helpdesk-module/browser-cookie
```ts
import { foo, bar } from '@jood/helpdesk-module/browser-cookie';
```

### @jood/helpdesk-module/browser-scroll
```ts
import { foo, bar } from '@jood/helpdesk-module/browser-scroll';
```

### @jood/helpdesk-module/hangle-core
```ts
import { foo, bar } from '@jood/helpdesk-module/hangle-core';
```

### @jood/helpdesk-module/hangle-typist
```ts
import { foo, bar } from '@jood/helpdesk-module/hangle-typist';
```

### @jood/helpdesk-module/storage-archive
```ts
import { foo, bar } from '@jood/helpdesk-module/storage-archive';
```

### @jood/helpdesk-module/storage-cast
```ts
import { foo, bar } from '@jood/helpdesk-module/storage-cast';
```

### @jood/helpdesk-module/timer
```ts
import { foo, bar } from '@jood/helpdesk-module/timer';
```

### @jood/helpdesk-module/ttl-cache
```ts
import { foo, bar } from '@jood/helpdesk-module/ttl-cache';
```
npm package: @jood/helpdesk-randomize
Description: **[📘 Document](https://molgga.github.io/jood-helpdesk/)**
Latest version: 0.0.1

# @jood/helpdesk-randomize

**[📘 Document](https://molgga.github.io/jood-helpdesk/)**

```ts
import { ... } from '@jood/helpdesk-randomize';
```
npm package: @jood/helpdesk-react
Description: **[📘 Document](https://molgga.github.io/jood-helpdesk/)**
Latest version: 0.0.2

# @jood/helpdesk-react

**[📘 Document](https://molgga.github.io/jood-helpdesk/)**

### @jood/helpdesk-react/react-query

```ts
import type { infinitePagesUpdater, infinitePagesDeleter } from '@jood/helpdesk-react/react-query';
```
npm package: @jood/helpdesk-types
Description: **[📘 Document](https://molgga.github.io/jood-helpdesk/)**
Latest version: 0.0.2

# @jood/helpdesk-types

**[📘 Document](https://molgga.github.io/jood-helpdesk/)**

```ts
import type { ExtractParamType, ExtractArgsType } from '@jood/helpdesk-types';
```
npm package: @jood/jsdoc-theme
Description: JSDoc template / theme
Latest version: 0.1.14

# @jood/jsdoc-theme

A clean, responsive documentation template theme for JSDoc 3, based on LatoDoc

## Uses

```
$ npm install @jood/jsdoc-theme --save-dev
```

`.jsdoc.json`

```json
{
  "opts": {
    "template": "node_modules/@jood/jsdoc-theme"
  }
}
```

## Sample

 - [@jood/common API doc](https://molgga.github.io/jood-common)
 - [@jood/appearer API doc](https://molgga.github.io/jood-appearer)

## License

Licensed under the MIT license.
npm package: @jood/ng-modal
Description: with Angular.
Latest version: 0.1.0

# @jood/ng-modal

with Angular.

![NPM version](https://img.shields.io/npm/v/@jood/ng-modal.svg)
![NPM license](https://img.shields.io/npm/l/@jood/ng-modal)
![NPM download](https://img.shields.io/npm/dt/@jood/ng-modal)
![Codecov branch](https://img.shields.io/codecov/c/github/molgga/jood-ng-modal/main)

[Docs](https://molgga.github.io/jood-ng-modal) | 
[Github](https://github.com/molgga/jood-ng-modal) | 
[NPM](https://www.npmjs.com/package/@jood/ng-modal)
npm package: @jood/v-bucket
Description: It provides model management function between containers by drag & drop. \ The goal is to provide a foundation for data communication and progressive control between component groups by drag & drop.
Latest version: 0.3.2

# @jood/v-bucket

It provides model management function between containers by drag & drop. \
The goal is to provide a foundation for data communication and progressive control between component groups by drag & drop.

This is a dedicated package for Vue. \

- \>=0.3.x : with Vue3
- ~~^0.2.x : with @vue/composition-api~~

> __[Demo](https://molgga.github.io/jood-v-bucket)__
| __[Demo source code](https://github.com/molgga/jood-v-bucket/tree/master/packages/dev/src/components/example)__
| __[Documentation](https://molgga.github.io/jood-v-bucket/documents)__
| __[Github](https://github.com/molgga/jood-v-bucket)__
| __[NPM](https://www.npmjs.com/package/@jood/v-bucket)__
\
\
![Vue](https://img.shields.io/static/v1.svg?label=&style=flat-square&logoColor=white&color=4fc08d&logo=vue.js&message=Vue)
![Typescript](https://img.shields.io/static/v1.svg?label=&style=flat-square&logoColor=white&color=3178c6&logo=typescript&message=Typescript)
![TRAVIS](https://travis-ci.org/molgga/jood-v-bucket.svg?branch=master)
![NPM version](https://img.shields.io/npm/v/@jood/v-bucket.svg)
![NPM license](https://img.shields.io/npm/l/@jood/v-bucket)
![NPM download](https://img.shields.io/npm/dt/@jood/v-bucket)
![NPM bundle size](https://img.shields.io/bundlephobia/min/@jood/v-bucket)

***

<table style="table-layout: fixed; overflow-wrap: break-word;">
  <tbody>
    <tr>
      <td>
        <img src="https://user-images.githubusercontent.com/2731262/90954882-91865400-e4b3-11ea-8e28-920a165c499a.gif" alt="@jood/v-bucket demo 1" style="max-width: 100%;" />
      </td>
      <td>
        <img src="https://user-images.githubusercontent.com/2731262/90954928-e924bf80-e4b3-11ea-9a98-75fe7cd69355.gif" alt="@jood/v-bucket demo 2" style="max-width: 100%;" />
      </td>
    </tr>
  </tbody>
</table>
npm package: @jood/v-switch
Description: Switch = radio-button, checkbox
Latest version: 0.1.2

# @jood/v-switch

Switch = radio-button, checkbox

This is a dedicated package for Vue3.

> __[Demo](https://molgga.github.io/jood-v-switch)__
| __[Demo source code](https://github.com/molgga/jood-v-switch/tree/main/packages/dev/src/components/demo-vue3)__
| __[Documentation](https://molgga.github.io/jood-v-switch/documents)__
| __[Github](https://github.com/molgga/jood-v-switch)__
| __[NPM](https://www.npmjs.com/package/@jood/v-switch)__
\
\
![Vue](https://img.shields.io/static/v1.svg?label=&style=flat-square&logoColor=white&color=4fc08d&logo=vue.js&message=Vue)
![Typescript](https://img.shields.io/static/v1.svg?label=&style=flat-square&logoColor=white&color=3178c6&logo=typescript&message=Typescript)
![NPM version](https://img.shields.io/npm/v/@jood/v-switch.svg)
![NPM license](https://img.shields.io/npm/l/@jood/v-switch)
![NPM download](https://img.shields.io/npm/dt/@jood/v-switch)
![NPM bundle size](https://img.shields.io/bundlephobia/min/@jood/v-switch)
npm package: @jooger/word-counter
Description: A lib for counting your words and reading time
Author: Jooger
Latest version: 1.1.0

# @jooger/word-counter

[![styled with prettier](https://img.shields.io/badge/styled_with-prettier-ff69b4.svg)](https://github.com/prettier/prettier)
[![Travis](https://img.shields.io/travis/jo0ger/word-counter.svg)](https://travis-ci.org/jo0ger/word-counter)
[![Coveralls](https://img.shields.io/coveralls/jo0ger/word-counter.svg)](https://coveralls.io/github/jo0ger/word-counter)
[![Dev Dependencies](https://david-dm.org/jo0ger/word-counter/dev-status.svg)](https://david-dm.org/jo0ger/word-counter?type=dev)

[![NPM](https://nodei.co/npm/@jooger/word-counter.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/@jooger/word-counter/)
[![NPM](https://nodei.co/npm-dl/@jooger/word-counter.png?months=9&height=3)](https://nodei.co/npm/@jooger/word-counter/)


A lib for counting your words and reading time

## Install

``` bash
// npm
$ npm install @jooger/word-counter

// yarn
$ yarn add @jooger/word-counter
```

## Usage

``` js
import { wordCount, timeCalc } from '@jooger/word-counter'

const content = 'this 中文 is a 单词'

const count = wordCount(content, count => {
  return count * 2
}) // the origin count is 7, the transformed data is 14

const time = timeCalc(content, {
  cn: 300, // the number of cn words per minute read
  en: 160 // the number of en words per minute read
}) // time is 1
```

## License

MIT