Crypto API
    Preparing search index...

    Crypto API

    crypto-api logo

    @sebastienrousseau/crypto-api

    Shared TypeScript types and utilities for the Crypto Service Suite, defining the canonical API surface.

    Build Coverage Registry Docs OpenSSF Scorecard License: Apache-2.0 OR MIT Node.js 22 or newer


    Getting started

    • Install — installation via pnpm, npm, or yarn
    • Requirements — runtime floor and environment prerequisites
    • Quick Start — minimal working usage sample

    The Crypto Service ecosystem

    Package reference

    Operational


    pnpm add @sebastienrousseau/crypto-api
    # or
    npm install @sebastienrousseau/crypto-api
    # or
    yarn add @sebastienrousseau/crypto-api

    Back to Top


    • Node.js: ^22.0.0 or >=24.0.0 (active and maintenance LTS releases)
    • Package Manager: pnpm >=9 (recommended) or npm >=10
    • TypeScript: >=5.0 (when compiling with TypeScript)

    Back to Top


    Import shared types and use them to build type-safe requests and responses across crypto-server and crypto-sdk.

    import type {
    AuthorizationToken,
    AuthorizationInfo,
    CollectionItem,
    JsonDocument,
    JsonRequest,
    RequestHeader,
    ResponseType,
    } from "@sebastienrousseau/crypto-api/dist/@types/types";

    // Type-safe request header
    const header: RequestHeader = {
    key: "Content-Type",
    value: "application/json",
    description: "Request content type",
    };

    // Build a typed JSON request
    const request: JsonRequest = {
    header: [header],
    key: "encrypt",
    value: "aes-256-gcm",
    description: "Encrypt payload with AES-256-GCM",
    };

    Back to Top


    Crypto Service provides a complete cryptography stack across 14 specialized packages:

    Package Role Description
    @sebastienrousseau/crypto-api (this package) API Schemas Shared TypeScript types and utilities for the Crypto Service Suite, defining the canonical API surface.
    @sebastienrousseau/crypto-cli Terminal CLI An interactive command-line interface for cryptographic operations, supporting both legacy OpenPGP and modern post-quantum algorithms.
    @sebastienrousseau/crypto-edge Edge Runtime Edge-runtime cryptographic operations using the Web Crypto API, optimized for Cloudflare Workers, Vercel Edge, and Deno.
    @sebastienrousseau/crypto-kms Cloud KMS Unified Key Management Service interface for AWS KMS, GCP Cloud KMS, Azure Key Vault, and HashiCorp Vault.
    @sebastienrousseau/crypto-lib Core Library A modern cryptographic library for TypeScript, with post-quantum support, zero unsafe dependencies, and 100% test coverage.
    @sebastienrousseau/crypto-middleware Middleware Framework-agnostic cryptographic middleware for Express, Fastify, and Koa applications.
    @sebastienrousseau/crypto-prisma ORM Adapter Transparent field-level encryption extension for Prisma Client, powered by AES-256-GCM.
    @sebastienrousseau/crypto-react React Hooks React hooks and context provider for client-side cryptographic operations with zero boilerplate.
    @sebastienrousseau/crypto-sdk Client SDK A zero-dependency, typed HTTP client for the Crypto Service REST API, with full post-quantum support.
    @sebastienrousseau/crypto-server HTTP API A hardened Fastify REST API for cryptographic operations, with rate limiting, OpenAPI schemas, and post-quantum endpoints.
    @sebastienrousseau/crypto-testing Test Support Deterministic keys, fast mocks, and test fixtures for crypto-lib
    @sebastienrousseau/crypto-typeorm ORM Adapter TypeORM column-level encryption with a single decorator, powered by crypto-lib.
    @sebastienrousseau/crypto-vue Vue Composables Vue 3 composables for client-side cryptography
    @sebastienrousseau/crypto-wasm Acceleration WebAssembly performance accelerator for crypto-lib

    Back to Top


    crypto-api provides the shared TypeScript type definitions and utility functions used across the Crypto Service Suite. It defines the canonical API surface -- request headers, response types, authorization tokens, and collection items -- that crypto-server, crypto-sdk, and other packages depend on. Utility functions convert Postman-style JSON collections into Markdown documentation.

    Back to Top

    ## Features

    All types are exported from src/@types/types.ts.

    Type Description
    AuthorizationToken A single authorization token with key, type, and value fields
    AuthorizationInfo Full authorization payload including bearer tokens and metadata
    CollectionItem A Postman-style collection item -- either a folder with children or an endpoint
    JsonDocument Top-level document with info metadata and an array of CollectionItems
    MethodType A named method with optional request and response details
    JsonRequest An API request shape with headers, key/value pair, and description
    RequestHeader A single request header with key, value, and description
    ResponseType A response entry with HTTP code, status, and body

    Utility functions are exported from src/utils/index.ts. They convert Postman-style JSON collections into Markdown documentation.

    Function Description
    createMarkdown Converts a full JSON document to Markdown
    readAuthorization Renders authorization info as a Markdown table
    readRequest Renders request headers as a Markdown table
    readQueryParams Renders query parameters as a Markdown table
    readFormDataBody Renders raw or form-data request bodies in Markdown
    readResponse Renders response codes and an example response body
    readMethods Renders a single API method with all its sections
    readItems Recursively renders a collection tree to Markdown
    response Writes generated Markdown to a file on disk

    Back to Top

    ## Examples

    All examples are self-contained TypeScript files in the examples/ directory. Run any example with:

    npx ts-node examples/<name>.ts
    
    Category Example Purpose
    Types types.ts Using API types for type-safe requests
    Utilities utilities.ts Using exported utility functions
    Validation validation.ts Validating API payloads against types

    Back to Top

    Back to Top


    pnpm --filter @sebastienrousseau/crypto-api run build
    pnpm --filter @sebastienrousseau/crypto-api run test
    pnpm --filter @sebastienrousseau/crypto-api run lint
    pnpm --filter @sebastienrousseau/crypto-api run format

    All 14 packages in the Crypto Service workspace maintain a 100% coverage floor across statements, branches, functions, and lines.

    Back to Top


    Report vulnerabilities privately via GitHub Security Advisories or according to SECURITY.md. Never report security issues publicly.

    All cryptographic operations leverage audited primitives, enforce constant-time execution where applicable, and zero sensitive key material upon disposal.

    Back to Top


    Back to Top


    Versions advance strictly one step at a time on the 0.0.x line (v0.0.1 → v0.0.2 → v0.0.3 ... → v0.0.999 → v0.1.0). Work for every release iteration begins on a dedicated feat/v<version> branch.

    All 14 packages in the workspace move in lockstep. Public API signatures, cipher output formats, and serialization schemas are strictly versioned. Breaking changes to serialized formats or algorithm defaults are considered major breaking changes. Minimum toolchain upgrades (e.g. Node.js LTS floor) are governed by POLICIES.md.

    Back to Top


    Dual-licensed under Apache 2.0 or MIT, at your option.

    Copyright (c) 2022-2026 Sebastien Rousseau and The Crypto Service Suite contributors.

    Back to Top