Package Exports
- @aisar-labs/zeptoclaw-sea-shared
- @aisar-labs/zeptoclaw-sea-shared/build/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@aisar-labs/zeptoclaw-sea-shared) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@aisar-labs/zeptoclaw-sea-shared
Shared auth and utility package for all ZeptoClaw SEA MCP servers.
This is not an MCP server -- it is a shared library used by all @aisar-labs/*-mcp packages.
Install
npm install @aisar-labs/zeptoclaw-sea-sharedExports
Auth Helpers
basicAuthHeader(username, password)-- Build Basic auth headerapiKeyHeader(key, headerName?)-- Build API key headerOAuth2Client-- OAuth 2.0 client with token refresh
Webhook Verification
hmacSha256(secret, payload)-- Compute HMAC-SHA256verifyWebhookSignature(secret, payload, signature)-- Verify webhook HMAC signatureverifyHmacWebhook(secret, payload, signature, algorithm?)-- Verify HMAC webhook (configurable algorithm)verifyHashWebhook(payload, expectedHash, algorithm?)-- Verify hash-based webhookverifyStripeWebhook(secret, payload, signatureHeader)-- Verify Stripe webhook signatureverifyBillplzCallback(secret, params)-- Verify Billplz callbackverifyMoMoIpn(secret, params)-- Verify MoMo IPN signatureverifyQrPaymentCallback(secret, params)-- Verify QR payment callbackparseWebhookPayload(body, contentType?)-- Parse webhook body (JSON or form)
HTTP Utilities
fetchWithRetry(url, options, retryConfig?)-- Fetch with exponential backoffRateLimiter-- Token bucket rate limitercalculateBackoff(attempt, baseMs?, maxMs?)-- Calculate exponential backoff delay
MCP Helpers
toolResult(content)-- Format successful tool resulttoolError(message)-- Format tool error resultapiError(status, message)-- Create API error with status code
Usage
Auth Headers
import { basicAuthHeader, apiKeyHeader } from "@aisar-labs/zeptoclaw-sea-shared";
const headers = {
Authorization: basicAuthHeader("user", "pass"),
};
const apiHeaders = {
...apiKeyHeader("sk-abc123", "X-API-Key"),
};Webhook Verification
import { verifyWebhookSignature } from "@aisar-labs/zeptoclaw-sea-shared";
const isValid = verifyWebhookSignature(
process.env.WEBHOOK_SECRET,
rawBody,
signatureHeader
);Fetch with Retry
import { fetchWithRetry } from "@aisar-labs/zeptoclaw-sea-shared";
const response = await fetchWithRetry("https://api.example.com/data", {
headers: { Authorization: "Bearer token" },
}, { maxRetries: 3, baseDelayMs: 1000 });Tool Results
import { toolResult, toolError } from "@aisar-labs/zeptoclaw-sea-shared";
// In a tool handler
if (success) {
return toolResult({ orderId: "123", status: "created" });
} else {
return toolError("Order creation failed: insufficient stock");
}License
MIT