JSPM

@agendacheia/lambda-utils

1.3.1
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • Downloads 25
    • Score
      100M100P100Q78999F
    • License UNLICENSED

    Shared utilities for AWS Lambda functions in the AgendaCheia platform

    Package Exports

    • @agendacheia/lambda-utils
    • @agendacheia/lambda-utils/aws
    • @agendacheia/lambda-utils/config
    • @agendacheia/lambda-utils/errors
    • @agendacheia/lambda-utils/graphql
    • @agendacheia/lambda-utils/http
    • @agendacheia/lambda-utils/logger
    • @agendacheia/lambda-utils/package.json
    • @agendacheia/lambda-utils/stripe
    • @agendacheia/lambda-utils/stripe/billing
    • @agendacheia/lambda-utils/stripe/connect
    • @agendacheia/lambda-utils/stripe/payments
    • @agendacheia/lambda-utils/stripe/webhooks
    • @agendacheia/lambda-utils/testing
    • @agendacheia/lambda-utils/types
    • @agendacheia/lambda-utils/validation

    Readme

    @agendacheia/lambda-utils

    Shared utilities for AWS Lambda functions in the AgendaCheia platform.

    Installation

    npm install @agendacheia/lambda-utils

    Features

    • HTTP Utilities: Request/response handling, CORS, headers
    • Logger: Structured CloudWatch logging with context support
    • GraphQL Client: Type-safe GraphQL operations with retry logic
    • AWS Clients: Pre-configured S3, SQS, SES, Kinesis, CloudWatch clients
    • Validation: Input validation and sanitization
    • Error Classes: Standardized error handling
    • Configuration: Environment variable helpers
    • Stripe Integration: Complete Stripe SDK utilities for Billing, Connect, Payments, and Webhooks

    Usage

    Logger

    import { createPreSignUpLogger } from '@agendacheia/lambda-utils/logger'
    
    const logger = createPreSignUpLogger(event, context)
    logger.info('Processing request', { userId: '123' })

    HTTP Response

    import { createResponse, ok, badRequest } from '@agendacheia/lambda-utils/http'
    
    return ok({ message: 'Success' })
    return badRequest('Invalid input')

    Validation

    import { createSchema, required, email } from '@agendacheia/lambda-utils/validation'
    
    const schema = createSchema({
      email: { rules: [required(), email()] },
    })
    const result = schema.validate(input)

    Error Classes

    import { ValidationError, NotFoundError } from '@agendacheia/lambda-utils/errors'
    
    throw new ValidationError('Email is required')
    throw new NotFoundError('User')

    Stripe Integration

    import {
      createStripeClientFromEnv,
      createSubscription,
      cancelSubscription,
      StripeApiError,
    } from '@agendacheia/lambda-utils/stripe'
    
    const client = createStripeClientFromEnv(logger)
    
    // Create a subscription
    const subscription = await createSubscription(client, {
      customerId: 'cus_xxx',
      priceId: 'price_xxx',
      trialPeriodDays: 14
    })
    
    // Handle Stripe Connect
    import { createConnectAccount, getAccountStatus } from '@agendacheia/lambda-utils/stripe/connect'
    
    const account = await createConnectAccount(client, {
      businessId: 'biz_123',
      email: 'business@example.com',
      type: 'individual'
    })
    
    // Process PIX payments (Brazil)
    import { createPixPayment, getPixQrCode } from '@agendacheia/lambda-utils/stripe/payments'
    
    const payment = await createPixPayment(client, {
      amount: 10000, // R$ 100.00 in centavos
      customerId: 'cus_xxx',
      businessId: 'biz_123'
    })
    
    // Webhook handling
    import { WebhookRouter, verifyWebhookSignature } from '@agendacheia/lambda-utils/stripe/webhooks'
    
    const router = new WebhookRouter()
    router.on('invoice.paid', handleInvoicePaid)
    router.on('payment_intent.succeeded', handlePaymentSuccess)

    Module Exports

    Module Import Path
    HTTP @agendacheia/lambda-utils/http
    Logger @agendacheia/lambda-utils/logger
    GraphQL @agendacheia/lambda-utils/graphql
    AWS @agendacheia/lambda-utils/aws
    Validation @agendacheia/lambda-utils/validation
    Errors @agendacheia/lambda-utils/errors
    Config @agendacheia/lambda-utils/config
    Stripe (all) @agendacheia/lambda-utils/stripe
    Stripe Billing @agendacheia/lambda-utils/stripe/billing
    Stripe Connect @agendacheia/lambda-utils/stripe/connect
    Stripe Payments @agendacheia/lambda-utils/stripe/payments
    Stripe Webhooks @agendacheia/lambda-utils/stripe/webhooks

    License

    UNLICENSED - Internal use only