@beel_es/sdk 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +167 -76
- package/dist/index.d.mts +9744 -0
- package/dist/index.d.ts +9736 -18
- package/dist/index.js +801 -50
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +756 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +48 -19
- package/dist/client.d.ts +0 -54
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js +0 -94
- package/dist/client.js.map +0 -1
- package/dist/generated/client/client.gen.d.ts +0 -3
- package/dist/generated/client/client.gen.d.ts.map +0 -1
- package/dist/generated/client/client.gen.js +0 -240
- package/dist/generated/client/client.gen.js.map +0 -1
- package/dist/generated/client/index.d.ts +0 -9
- package/dist/generated/client/index.d.ts.map +0 -1
- package/dist/generated/client/index.js +0 -18
- package/dist/generated/client/index.js.map +0 -1
- package/dist/generated/client/types.gen.d.ts +0 -118
- package/dist/generated/client/types.gen.d.ts.map +0 -1
- package/dist/generated/client/types.gen.js +0 -4
- package/dist/generated/client/types.gen.js.map +0 -1
- package/dist/generated/client/utils.gen.d.ts +0 -34
- package/dist/generated/client/utils.gen.d.ts.map +0 -1
- package/dist/generated/client/utils.gen.js +0 -242
- package/dist/generated/client/utils.gen.js.map +0 -1
- package/dist/generated/client.gen.d.ts +0 -13
- package/dist/generated/client.gen.d.ts.map +0 -1
- package/dist/generated/client.gen.js +0 -7
- package/dist/generated/client.gen.js.map +0 -1
- package/dist/generated/core/auth.gen.d.ts +0 -19
- package/dist/generated/core/auth.gen.d.ts.map +0 -1
- package/dist/generated/core/auth.gen.js +0 -19
- package/dist/generated/core/auth.gen.js.map +0 -1
- package/dist/generated/core/bodySerializer.gen.d.ts +0 -26
- package/dist/generated/core/bodySerializer.gen.d.ts.map +0 -1
- package/dist/generated/core/bodySerializer.gen.js +0 -61
- package/dist/generated/core/bodySerializer.gen.js.map +0 -1
- package/dist/generated/core/params.gen.d.ts +0 -44
- package/dist/generated/core/params.gen.d.ts.map +0 -1
- package/dist/generated/core/params.gen.js +0 -105
- package/dist/generated/core/params.gen.js.map +0 -1
- package/dist/generated/core/pathSerializer.gen.d.ts +0 -34
- package/dist/generated/core/pathSerializer.gen.d.ts.map +0 -1
- package/dist/generated/core/pathSerializer.gen.js +0 -116
- package/dist/generated/core/pathSerializer.gen.js.map +0 -1
- package/dist/generated/core/queryKeySerializer.gen.d.ts +0 -19
- package/dist/generated/core/queryKeySerializer.gen.d.ts.map +0 -1
- package/dist/generated/core/queryKeySerializer.gen.js +0 -99
- package/dist/generated/core/queryKeySerializer.gen.js.map +0 -1
- package/dist/generated/core/serverSentEvents.gen.d.ts +0 -72
- package/dist/generated/core/serverSentEvents.gen.d.ts.map +0 -1
- package/dist/generated/core/serverSentEvents.gen.js +0 -138
- package/dist/generated/core/serverSentEvents.gen.js.map +0 -1
- package/dist/generated/core/types.gen.d.ts +0 -79
- package/dist/generated/core/types.gen.d.ts.map +0 -1
- package/dist/generated/core/types.gen.js +0 -4
- package/dist/generated/core/types.gen.js.map +0 -1
- package/dist/generated/core/utils.gen.d.ts +0 -20
- package/dist/generated/core/utils.gen.d.ts.map +0 -1
- package/dist/generated/core/utils.gen.js +0 -94
- package/dist/generated/core/utils.gen.js.map +0 -1
- package/dist/generated/index.d.ts +0 -3
- package/dist/generated/index.d.ts.map +0 -1
- package/dist/generated/index.js +0 -84
- package/dist/generated/index.js.map +0 -1
- package/dist/generated/sdk.gen.d.ts +0 -966
- package/dist/generated/sdk.gen.d.ts.map +0 -1
- package/dist/generated/sdk.gen.js +0 -1490
- package/dist/generated/sdk.gen.js.map +0 -1
- package/dist/generated/types.gen.d.ts +0 -5646
- package/dist/generated/types.gen.d.ts.map +0 -1
- package/dist/generated/types.gen.js +0 -4
- package/dist/generated/types.gen.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/resources/companies.d.ts +0 -75
- package/dist/resources/companies.d.ts.map +0 -1
- package/dist/resources/companies.js +0 -77
- package/dist/resources/companies.js.map +0 -1
- package/dist/resources/config.d.ts +0 -106
- package/dist/resources/config.d.ts.map +0 -1
- package/dist/resources/config.js +0 -86
- package/dist/resources/config.js.map +0 -1
- package/dist/resources/customers.d.ts +0 -172
- package/dist/resources/customers.d.ts.map +0 -1
- package/dist/resources/customers.js +0 -96
- package/dist/resources/customers.js.map +0 -1
- package/dist/resources/invoices.d.ts +0 -370
- package/dist/resources/invoices.d.ts.map +0 -1
- package/dist/resources/invoices.js +0 -174
- package/dist/resources/invoices.js.map +0 -1
- package/dist/resources/products.d.ts +0 -155
- package/dist/resources/products.d.ts.map +0 -1
- package/dist/resources/products.js +0 -96
- package/dist/resources/products.js.map +0 -1
- package/dist/resources/series.d.ts +0 -98
- package/dist/resources/series.d.ts.map +0 -1
- package/dist/resources/series.js +0 -83
- package/dist/resources/series.js.map +0 -1
- package/dist/webhooks/index.d.ts +0 -20
- package/dist/webhooks/index.d.ts.map +0 -1
- package/dist/webhooks/index.js +0 -70
- package/dist/webhooks/index.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/http/client.ts","../src/http/middleware.ts","../src/core/errors.ts","../src/resources/invoices.ts","../src/resources/customers.ts","../src/resources/products.ts","../src/resources/configuration.ts","../src/resources/series.ts","../src/resources/nif.ts","../src/client.ts","../src/webhooks/verifier.ts","../src/builders/customer-builder.ts","../src/builders/invoice-builder.ts"],"sourcesContent":["import createClient from 'openapi-fetch';\nimport type { paths } from '../generated/schema';\nimport { requestMiddleware, errorMiddleware, createRetryMiddleware } from './middleware';\n\nexport interface BeeLConfig {\n /** API key (beel_sk_live_* or beel_sk_test_*) */\n apiKey: string;\n /** Base URL. Defaults to https://app.beel.es/api */\n baseUrl?: string;\n /** Max retries on 429/5xx. Default: 3 */\n maxRetries?: number;\n /** Initial retry delay in ms. Default: 500 */\n retryDelayMs?: number;\n /** Max retry delay in ms. Default: 30000 */\n maxRetryDelayMs?: number;\n /** Auto-generate Idempotency-Key for POST requests. Default: true */\n autoIdempotencyKey?: boolean;\n}\n\nexport function createBeeLClient(config: BeeLConfig) {\n const client = createClient<paths>({\n baseUrl: config.baseUrl ?? 'https://app.beel.es/api',\n headers: {\n Authorization: `Bearer ${config.apiKey}`,\n },\n });\n\n // Register middleware in order\n client.use(requestMiddleware);\n\n client.use(errorMiddleware);\n\n client.use(\n createRetryMiddleware({\n maxRetries: config.maxRetries ?? 3,\n initialDelayMs: config.retryDelayMs ?? 500,\n maxDelayMs: config.maxRetryDelayMs ?? 30_000,\n }),\n );\n\n return client;\n}\n\nexport type BeeLClient = ReturnType<typeof createBeeLClient>;\n","import { randomUUID } from 'crypto';\nimport type { Middleware } from 'openapi-fetch';\nimport {\n throwApiError,\n BeeLApiError,\n BeeLRateLimitError,\n} from '../core/errors';\n\n/**\n * Ensures POST/PUT/PATCH requests always have a JSON body and Content-Type.\n * Also adds Idempotency-Key to POST requests.\n */\nexport const requestMiddleware: Middleware = {\n async onRequest({ request }) {\n const method = request.method;\n\n // Ensure POST/PUT/PATCH always send a JSON body (API rejects empty body)\n if (['POST', 'PUT', 'PATCH'].includes(method)) {\n const hasBody = request.headers.get('content-type')?.includes('application/json');\n if (!hasBody) {\n const clone = new Request(request, {\n body: request.body ?? '{}',\n headers: new Headers(request.headers),\n });\n clone.headers.set('Content-Type', 'application/json');\n\n if (method === 'POST' && !clone.headers.has('Idempotency-Key')) {\n clone.headers.set('Idempotency-Key', randomUUID());\n }\n return clone;\n }\n }\n\n // Add Idempotency-Key to POST requests that already have a body\n if (method === 'POST' && !request.headers.has('Idempotency-Key')) {\n request.headers.set('Idempotency-Key', randomUUID());\n }\n\n return request;\n },\n};\n\n/**\n * Maps non-2xx responses to typed BeeLApiError subclasses.\n */\nexport const errorMiddleware: Middleware = {\n async onResponse({ response }) {\n if (!response.ok) {\n const body = await response.json().catch(() => null);\n throwApiError(response.status, body);\n }\n return response;\n },\n};\n\n/**\n * Creates a retry middleware with exponential backoff.\n * Retries on 429 and 5xx. Does NOT retry 4xx client errors.\n */\nexport function createRetryMiddleware(options: {\n maxRetries: number;\n initialDelayMs: number;\n maxDelayMs: number;\n}): Middleware {\n return {\n async onError({ error, request }) {\n // Only retry retryable errors\n if (!(error instanceof BeeLApiError)) return;\n if (!(error instanceof BeeLRateLimitError) && error.statusCode < 500) return;\n\n for (let attempt = 0; attempt < options.maxRetries; attempt++) {\n const delay =\n error instanceof BeeLRateLimitError\n ? error.retryAfterSeconds * 1000\n : Math.min(\n options.initialDelayMs * Math.pow(2, attempt) + Math.random() * options.initialDelayMs,\n options.maxDelayMs,\n );\n\n await new Promise((r) => setTimeout(r, delay));\n\n try {\n // Re-generate idempotency key for POST retries\n if (request.method === 'POST') {\n request.headers.set('Idempotency-Key', randomUUID());\n }\n const response = await fetch(request.clone());\n if (response.ok) return response;\n\n const body = await response.json().catch(() => null);\n throwApiError(response.status, body);\n } catch (retryError) {\n if (!(retryError instanceof BeeLApiError)) throw retryError;\n if (!(retryError instanceof BeeLRateLimitError) && retryError.statusCode < 500) throw retryError;\n // Continue retrying\n if (attempt === options.maxRetries - 1) throw retryError;\n }\n }\n },\n };\n}\n","/**\n * Base error for all BeeL API errors.\n */\nexport class BeeLApiError extends Error {\n public readonly statusCode: number;\n public readonly code: string;\n public readonly details?: Record<string, string>;\n public readonly requestId?: string;\n\n constructor(\n message: string,\n statusCode: number,\n code: string,\n details?: Record<string, string>,\n requestId?: string,\n ) {\n super(message);\n this.name = 'BeeLApiError';\n this.statusCode = statusCode;\n this.code = code;\n this.details = details;\n this.requestId = requestId;\n }\n}\n\n/** 429 — Rate limit exceeded */\nexport class BeeLRateLimitError extends BeeLApiError {\n public readonly retryAfterSeconds: number;\n\n constructor(message: string, retryAfterSeconds: number, requestId?: string) {\n super(message, 429, 'RATE_LIMIT_EXCEEDED', undefined, requestId);\n this.name = 'BeeLRateLimitError';\n this.retryAfterSeconds = retryAfterSeconds;\n }\n}\n\n/** 422 — Validation or business rule error */\nexport class BeeLValidationError extends BeeLApiError {\n constructor(\n message: string,\n details?: Record<string, string>,\n requestId?: string,\n ) {\n super(message, 422, 'UNPROCESSABLE_ENTITY', details, requestId);\n this.name = 'BeeLValidationError';\n }\n}\n\n/** 401 / 403 — Authentication or authorization error */\nexport class BeeLAuthError extends BeeLApiError {\n constructor(message: string, statusCode: 401 | 403, requestId?: string) {\n super(\n message,\n statusCode,\n statusCode === 401 ? 'UNAUTHORIZED' : 'FORBIDDEN',\n undefined,\n requestId,\n );\n this.name = 'BeeLAuthError';\n }\n}\n\n/** 404 — Resource not found */\nexport class BeeLNotFoundError extends BeeLApiError {\n constructor(message: string, requestId?: string) {\n super(message, 404, 'NOT_FOUND', undefined, requestId);\n this.name = 'BeeLNotFoundError';\n }\n}\n\n/** 409 — Conflict (e.g. duplicate resource) */\nexport class BeeLConflictError extends BeeLApiError {\n constructor(message: string, requestId?: string) {\n super(message, 409, 'CONFLICT', undefined, requestId);\n this.name = 'BeeLConflictError';\n }\n}\n\n/**\n * Maps a raw HTTP error response to a typed BeeLApiError subclass.\n */\nexport function throwApiError(status: number, body: unknown): never {\n const parsed = body as Record<string, any> | null;\n const errorData = parsed?.error ?? parsed;\n const message = errorData?.message ?? `API error ${status}`;\n const code = errorData?.code ?? 'UNKNOWN';\n const details = errorData?.details;\n const requestId = parsed?.meta?.request_id;\n\n switch (status) {\n case 401:\n case 403:\n throw new BeeLAuthError(message, status as 401 | 403, requestId);\n case 404:\n throw new BeeLNotFoundError(message, requestId);\n case 409:\n throw new BeeLConflictError(message, requestId);\n case 422:\n throw new BeeLValidationError(message, details, requestId);\n case 429: {\n const retryAfter = errorData?.retry_after ?? 60;\n throw new BeeLRateLimitError(message, retryAfter, requestId);\n }\n default:\n throw new BeeLApiError(message, status, code, details, requestId);\n }\n}\n","import type { BeeLClient } from '../http/client';\nimport type { components, operations } from '../generated/schema';\n\ntype Invoice = components['schemas']['Invoice'];\ntype Pagination = components['schemas']['Pagination'];\ntype ListParams = operations['listInvoices']['parameters']['query'];\n\nexport class InvoicesResource {\n constructor(private client: BeeLClient) {}\n\n /**\n * List invoices with optional filters and pagination.\n *\n * @example\n * const { invoices, pagination } = await beel.invoices.list({ status: 'ISSUED', limit: 20 });\n */\n async list(params?: ListParams) {\n const { data } = await this.client.GET('/v1/invoices', { params: { query: params } });\n return data!.data as { invoices: Invoice[]; pagination: Pagination };\n }\n\n /**\n * Create a new invoice. An idempotency key is automatically added.\n *\n * @example\n * const invoice = await beel.invoices.create({\n * type: 'STANDARD',\n * recipient: { customer_id: 'uuid' },\n * lines: [{ description: 'Service', quantity: 1, unit_price: 100, discount_percentage: 0 }],\n * });\n */\n async create(body: components['schemas']['CreateInvoiceRequest']) {\n const { data } = await this.client.POST('/v1/invoices', { body });\n return data!.data as Invoice;\n }\n\n /** Get an invoice by ID. */\n async get(id: string) {\n const { data } = await this.client.GET('/v1/invoices/{invoice_id}', { params: { path: { invoice_id: id } } });\n return data!.data as Invoice;\n }\n\n /** Update a draft invoice. Only draft invoices can be updated. */\n async update(id: string, body: components['schemas']['UpdateInvoiceRequest']) {\n const { data } = await this.client.PUT('/v1/invoices/{invoice_id}', { params: { path: { invoice_id: id } }, body });\n return data!.data as Invoice;\n }\n\n /** Delete a draft invoice. Only draft invoices can be deleted. */\n async delete(id: string) {\n await this.client.DELETE('/v1/invoices/{invoice_id}', { params: { path: { invoice_id: id } } });\n }\n\n /** Duplicate an invoice, optionally into a different series. */\n async duplicate(id: string, options?: { series_id?: string; notes?: string }) {\n const { data } = await this.client.POST('/v1/invoices/{invoice_id}/duplicate', { params: { path: { invoice_id: id } }, body: options as any });\n return data!.data as Invoice;\n }\n\n /**\n * Issue a draft invoice. Assigns an invoice number and triggers VeriFactu submission.\n * @param options.wait_for_pdf - If true, waits for PDF generation before returning.\n */\n async issue(id: string, options?: { wait_for_pdf?: boolean }) {\n const { data } = await this.client.POST('/v1/invoices/{invoice_id}/issue', { params: { path: { invoice_id: id }, query: options } });\n return data!.data as Invoice;\n }\n\n /**\n * Mark an invoice as paid.\n * @param options.payment_date - Payment date (defaults to today).\n * @param options.payment_method - Payment method details.\n */\n async markPaid(id: string, options?: { payment_date?: string; payment_method?: any }) {\n const { data } = await this.client.POST('/v1/invoices/{invoice_id}/mark-paid', { params: { path: { invoice_id: id } }, body: options as any });\n return data!.data as Invoice;\n }\n\n /** Mark an invoice as sent (e.g. delivered by other means). */\n async markSent(id: string, options?: { sent_at?: string }) {\n const { data } = await this.client.POST('/v1/invoices/{invoice_id}/mark-sent', { params: { path: { invoice_id: id } }, body: options as any });\n return data!.data as Invoice;\n }\n\n /** Revert a paid/sent invoice back to issued status. */\n async revertToIssued(id: string) {\n const { data } = await this.client.POST('/v1/invoices/{invoice_id}/revert-to-issued', { params: { path: { invoice_id: id } } });\n return data!.data as Invoice;\n }\n\n /**\n * Void an issued invoice. Requires a reason (min 10 chars).\n *\n * @example\n * await beel.invoices.void('id', { reason: 'Duplicate invoice sent in error' });\n */\n async void(id: string, params: { reason: string; void_date?: string }) {\n const { data } = await this.client.POST('/v1/invoices/{invoice_id}/void', { params: { path: { invoice_id: id } }, body: params as any });\n return data!.data as Invoice;\n }\n\n /** Create a corrective invoice that references the original. */\n async createCorrective(id: string, body: components['schemas']['CreateCorrectiveInvoiceRequest']) {\n const { data } = await this.client.POST('/v1/invoices/{invoice_id}/corrective', { params: { path: { invoice_id: id } }, body });\n return data!.data as Invoice;\n }\n\n /** Schedule a draft invoice to be issued on a future date. */\n async schedule(id: string, params: { scheduled_for: string; action?: string }) {\n const { data } = await this.client.POST('/v1/invoices/{invoice_id}/schedule', { params: { path: { invoice_id: id } }, body: params as any });\n return data!.data as Invoice;\n }\n\n /** Cancel a scheduled invoice, returning it to draft. */\n async unschedule(id: string) {\n const { data } = await this.client.POST('/v1/invoices/{invoice_id}/unschedule', { params: { path: { invoice_id: id } } });\n return data!.data as Invoice;\n }\n\n /** Change the scheduled date of a scheduled invoice. */\n async reschedule(id: string, params: { scheduled_for: string }) {\n const { data } = await this.client.PATCH('/v1/invoices/{invoice_id}/reschedule', { params: { path: { invoice_id: id } }, body: params as any });\n return data!.data as Invoice;\n }\n\n /**\n * Get a pre-signed URL to download the invoice PDF.\n * The URL expires in 5 minutes. Use `beel.downloadPdf(id)` for a simpler Buffer download.\n */\n async getPdf(id: string) {\n const { data } = await this.client.GET('/v1/invoices/{invoice_id}/pdf', { params: { path: { invoice_id: id } } });\n return data!.data as { download_url: string; expires_in_seconds: number; file_name: string };\n }\n\n /** Send an invoice by email. Uses the customer's email by default. */\n async sendEmail(id: string, options?: { to?: string[]; cc?: string[]; subject?: string; message?: string }) {\n const { data } = await this.client.POST('/v1/invoices/{invoice_id}/send', { params: { path: { invoice_id: id } }, body: options as any });\n return data!.data;\n }\n}\n","import type { BeeLClient } from '../http/client';\nimport type { components, operations } from '../generated/schema';\n\ntype Customer = components['schemas']['Customer'];\ntype Pagination = components['schemas']['Pagination'];\ntype ListParams = operations['listCustomers']['parameters']['query'];\n\nexport class CustomersResource {\n constructor(private client: BeeLClient) {}\n\n /**\n * List customers with optional filters and pagination.\n *\n * @example\n * const { customers, pagination } = await beel.customers.list({ search: 'Acme', limit: 10 });\n */\n async list(params?: ListParams) {\n const { data } = await this.client.GET('/v1/customers', { params: { query: params } });\n return data!.data as { customers: Customer[]; pagination: Pagination };\n }\n\n /**\n * Create a new customer.\n *\n * @example\n * const customer = await beel.customers.create({\n * legal_name: 'Acme SL',\n * nif: 'B12345678',\n * address: { street: 'Calle Mayor', number: '1', postal_code: '28001', city: 'Madrid', province: 'Madrid', country: 'Spain', country_code: 'ES' },\n * });\n */\n async create(body: components['schemas']['CreateCustomerRequest']) {\n const { data } = await this.client.POST('/v1/customers', { body });\n return data!.data as Customer;\n }\n\n /** Get a customer by ID. */\n async get(id: string) {\n const { data } = await this.client.GET('/v1/customers/{customer_id}', { params: { path: { customer_id: id } } });\n return data!.data as Customer;\n }\n\n /** Update a customer. Only provided fields are changed. */\n async update(id: string, body: components['schemas']['UpdateCustomerRequest']) {\n const { data } = await this.client.PUT('/v1/customers/{customer_id}', { params: { path: { customer_id: id } }, body });\n return data!.data as Customer;\n }\n\n /** Deactivate (soft-delete) a customer. */\n async deactivate(id: string) {\n await this.client.DELETE('/v1/customers/{customer_id}', { params: { path: { customer_id: id } } });\n }\n}\n","import type { BeeLClient } from '../http/client';\nimport type { components, operations } from '../generated/schema';\n\ntype Product = components['schemas']['Product'];\ntype Pagination = components['schemas']['Pagination'];\ntype ListParams = operations['listProducts']['parameters']['query'];\n\nexport class ProductsResource {\n constructor(private client: BeeLClient) {}\n\n /**\n * List products with optional filters and pagination.\n *\n * @example\n * const { products, pagination } = await beel.products.list({ category: 'SERVICE' });\n */\n async list(params?: ListParams) {\n const { data } = await this.client.GET('/v1/products', { params: { query: params } });\n return data!.data as { products: Product[]; pagination: Pagination };\n }\n\n /**\n * Create a new product or service.\n *\n * @example\n * const product = await beel.products.create({\n * name: 'Consulting',\n * code: 'CONS-001',\n * category: 'SERVICE',\n * default_price: 100,\n * main_tax: { type: 'IVA', percentage: 21 },\n * });\n */\n async create(body: components['schemas']['CreateProductRequest']) {\n const { data } = await this.client.POST('/v1/products', { body });\n return data!.data as Product;\n }\n\n /** Get a product by ID. */\n async get(id: string) {\n const { data } = await this.client.GET('/v1/products/{product_id}', { params: { path: { product_id: id } } });\n return data!.data as Product;\n }\n\n /** Update a product. Only provided fields are changed. */\n async update(id: string, body: components['schemas']['UpdateProductRequest']) {\n const { data } = await this.client.PUT('/v1/products/{product_id}', { params: { path: { product_id: id } }, body });\n return data!.data as Product;\n }\n\n /** Delete a product permanently. */\n async delete(id: string) {\n await this.client.DELETE('/v1/products/{product_id}', { params: { path: { product_id: id } } });\n }\n\n /**\n * Search products by name or code. Returns up to `limit` results.\n *\n * @example\n * const results = await beel.products.search('consulting', 5);\n */\n async search(q: string, limit?: number) {\n const { data } = await this.client.GET('/v1/products/search', { params: { query: { q, limit } } });\n return data!.data as Product[];\n }\n}\n","import type { BeeLClient } from '../http/client';\n\nexport class ConfigurationResource {\n constructor(private client: BeeLClient) {}\n\n /** Get the current tax configuration (default VAT, IRPF, etc.). */\n async getTaxConfig() {\n const { data } = await this.client.GET('/v1/configuration/taxes');\n return data!.data;\n }\n\n /** Update tax configuration. */\n async updateTaxConfig(body: any) {\n const { data } = await this.client.PUT('/v1/configuration/taxes', { body });\n return data!.data;\n }\n\n /** Get available tax types (IVA/IGIC rates, IRPF types, equivalence surcharges). */\n async getTaxTypes() {\n const { data } = await this.client.GET('/v1/configuration/tax-types');\n return data!.data;\n }\n\n /** Get invoice customization options (logo, colors, footer text, etc.). */\n async getInvoiceCustomizationOptions() {\n const { data } = await this.client.GET('/v1/configuration/invoice-customization-options');\n return data!.data;\n }\n\n /** Update the user's preferred language (es, en, ca). */\n async updateLanguage(language: string) {\n const { data } = await this.client.PUT('/v1/configuration/language', { body: { language } as any });\n return data!.data;\n }\n\n /** Get VeriFactu configuration (enabled, certificate status, etc.). */\n async getVerifactu() {\n const { data } = await this.client.GET('/v1/configuration/verifactu');\n return data!.data;\n }\n\n /** Update VeriFactu configuration. */\n async updateVerifactu(body: any) {\n const { data } = await this.client.PUT('/v1/configuration/verifactu', { body });\n return data!.data;\n }\n}\n","import type { BeeLClient } from '../http/client';\n\nexport class SeriesResource {\n constructor(private client: BeeLClient) {}\n\n /**\n * List all invoice series. Optionally filter by active status.\n *\n * @example\n * const series = await beel.series.list();\n * const activeSeries = await beel.series.list(true);\n */\n async list(active?: boolean) {\n const { data } = await this.client.GET('/v1/configuration/series', {\n params: { query: active !== undefined ? { active } : undefined },\n });\n return data!.data;\n }\n\n /** Create a new invoice series (e.g. \"A-2026\", \"RECT\"). */\n async create(body: any) {\n const { data } = await this.client.POST('/v1/configuration/series', { body });\n return data!.data;\n }\n\n /** Update a series (name, description, etc.). */\n async update(id: string, body: any) {\n const { data } = await this.client.PUT('/v1/configuration/series/{series_id}', {\n params: { path: { series_id: id } },\n body,\n });\n return data!.data;\n }\n\n /** Delete an invoice series. Only empty series can be deleted. */\n async delete(id: string) {\n await this.client.DELETE('/v1/configuration/series/{series_id}', {\n params: { path: { series_id: id } },\n });\n }\n\n /** Set a series as the default for new invoices. */\n async setDefault(id: string) {\n const { data } = await this.client.POST('/v1/configuration/series/{series_id}/default', {\n params: { path: { series_id: id } },\n });\n return data!.data;\n }\n}\n","import type { BeeLClient } from '../http/client';\n\nexport class NifResource {\n constructor(private client: BeeLClient) {}\n\n /**\n * Validate a Spanish NIF/CIF against the AEAT tax registry.\n *\n * @example\n * const result = await beel.nif.validate('B12345678');\n * console.log(result.valid, result.name);\n */\n async validate(nif: string) {\n const { data } = await this.client.POST('/v1/nif/validate', { body: { nif } as any });\n return data!.data;\n }\n}\n","import { createBeeLClient, type BeeLConfig } from './http/client';\nimport { InvoicesResource } from './resources/invoices';\nimport { CustomersResource } from './resources/customers';\nimport { ProductsResource } from './resources/products';\nimport { ConfigurationResource } from './resources/configuration';\nimport { SeriesResource } from './resources/series';\nimport { NifResource } from './resources/nif';\n\n/**\n * BeeL SDK Client\n *\n * @example\n * ```typescript\n * import { BeeL } from '@beel_es/sdk';\n *\n * const beel = new BeeL({ apiKey: 'beel_sk_live_...' });\n *\n * const invoice = await beel.invoices.create({\n * type: 'STANDARD',\n * recipient: { customer_id: 'uuid' },\n * lines: [{ description: 'Service', quantity: 1, unit_price: 100 }],\n * });\n * ```\n */\nexport class BeeL {\n readonly invoices: InvoicesResource;\n readonly customers: CustomersResource;\n readonly products: ProductsResource;\n readonly configuration: ConfigurationResource;\n readonly series: SeriesResource;\n readonly nif: NifResource;\n\n constructor(config: BeeLConfig) {\n const client = createBeeLClient(config);\n this.invoices = new InvoicesResource(client);\n this.customers = new CustomersResource(client);\n this.products = new ProductsResource(client);\n this.configuration = new ConfigurationResource(client);\n this.series = new SeriesResource(client);\n this.nif = new NifResource(client);\n }\n\n /**\n * Download an invoice PDF as a Buffer.\n *\n * @example\n * ```typescript\n * const { buffer, fileName } = await beel.downloadPdf('invoice-uuid');\n * fs.writeFileSync(fileName, buffer);\n * ```\n */\n async downloadPdf(invoiceId: string): Promise<{ buffer: Buffer; fileName: string }> {\n const pdf = await this.invoices.getPdf(invoiceId);\n const response = await fetch(pdf.download_url);\n if (!response.ok) throw new Error(`Failed to download PDF: ${response.status}`);\n const arrayBuffer = await response.arrayBuffer();\n return { buffer: Buffer.from(arrayBuffer), fileName: pdf.file_name };\n }\n}\n","import { createHmac, timingSafeEqual } from 'crypto';\n\n/**\n * Webhook signature verification for BeeL webhooks\n * \n * Every webhook delivery includes a `BeeL-Signature` header that must be verified\n * to ensure the webhook came from BeeL and hasn't been tampered with.\n * \n * ## Security Requirements\n * \n * 1. **Always verify** the signature before processing the webhook\n * 2. **Use constant-time comparison** to prevent timing attacks\n * 3. **Reject old events** (older than 5 minutes)\n * 4. **Use raw request body** (before parsing JSON)\n * \n * ## Header Format\n * \n * ```\n * BeeL-Signature: t=1741362026,v1=3c4f7a2e1b9d8e7f6a5b4c3d2e1f0a9b8c7d6e5f4a3b2c1d0e9f8a7b6c5d4e3f\n * ```\n * \n * Where:\n * - `t` = Unix timestamp when the webhook was sent\n * - `v1` = HMAC-SHA256 signature of the payload\n * \n * @example Express.js\n * ```typescript\n * import express from 'express';\n * import { WebhookVerifier } from '@beel/sdk';\n * \n * const verifier = new WebhookVerifier('your_webhook_secret');\n * \n * app.post('/webhooks/beel', express.raw({ type: 'application/json' }), (req, res) => {\n * const signature = req.headers['beel-signature'] as string;\n * const rawBody = req.body.toString('utf8');\n * \n * try {\n * const event = verifier.verify(rawBody, signature);\n * \n * if (event.type === 'verifactu.status.updated') {\n * console.log('VeriFactu status:', event.data.new_status);\n * if (event.data.new_status === 'ACCEPTED') {\n * console.log('QR URL:', event.data.qr_url);\n * }\n * }\n * \n * res.status(200).send('OK');\n * } catch (error) {\n * console.error('Invalid webhook:', error.message);\n * res.status(400).send('Invalid signature');\n * }\n * });\n * ```\n */\nexport class WebhookVerifier {\n private readonly secret: string;\n private readonly toleranceSeconds: number;\n \n /**\n * Creates a new WebhookVerifier\n * \n * @param secret - Your webhook secret from BeeL dashboard\n * @param toleranceSeconds - Maximum age of webhook events (default: 300 = 5 minutes)\n */\n constructor(secret: string, toleranceSeconds: number = 300) {\n if (!secret || secret.trim().length === 0) {\n throw new Error('Webhook secret is required');\n }\n this.secret = secret;\n this.toleranceSeconds = toleranceSeconds;\n }\n \n /**\n * Verify a webhook signature and return the parsed event\n * \n * @param rawBody - Raw request body (string or Buffer, before JSON parsing)\n * @param signatureHeader - Value of the `BeeL-Signature` header\n * @returns Parsed webhook event\n * @throws {WebhookVerificationError} If signature is invalid or event is too old\n * \n * @example Basic usage\n * ```typescript\n * const verifier = new WebhookVerifier('your_secret');\n * const event = verifier.verify(rawBody, signature);\n * \n * if (event.type === 'verifactu.status.updated') {\n * console.log('Invoice:', event.data.invoice_number);\n * console.log('Status:', event.data.new_status);\n * }\n * ```\n */\n verify<T extends WebhookEvent = WebhookEvent>(\n rawBody: string | Buffer,\n signatureHeader: string | undefined\n ): T {\n if (!signatureHeader) {\n throw new WebhookVerificationError('Missing BeeL-Signature header');\n }\n \n // Parse signature header\n const { timestamp, signature } = this.parseSignatureHeader(signatureHeader);\n \n // Check timestamp tolerance\n const now = Math.floor(Date.now() / 1000);\n const age = Math.abs(now - timestamp);\n \n if (age > this.toleranceSeconds) {\n throw new WebhookVerificationError(\n `Webhook timestamp too old (${age}s ago, max ${this.toleranceSeconds}s allowed)`\n );\n }\n \n // Verify signature\n const bodyString = Buffer.isBuffer(rawBody) ? rawBody.toString('utf8') : rawBody;\n const expectedSignature = this.computeSignature(timestamp, bodyString);\n \n if (!this.secureCompare(signature, expectedSignature)) {\n throw new WebhookVerificationError('Invalid webhook signature');\n }\n \n // Parse and return event\n try {\n return JSON.parse(bodyString);\n } catch (error) {\n throw new WebhookVerificationError('Invalid JSON in webhook body');\n }\n }\n \n /**\n * Parse the BeeL-Signature header\n * \n * Format: `t=1741362026,v1=3c4f7a2e...`\n */\n private parseSignatureHeader(header: string): { timestamp: number; signature: string } {\n const parts = header.split(',');\n let timestamp: number | undefined;\n let signature: string | undefined;\n \n for (const part of parts) {\n const [key, value] = part.split('=', 2);\n if (key === 't') {\n timestamp = parseInt(value, 10);\n } else if (key === 'v1') {\n signature = value;\n }\n }\n \n if (!timestamp || !signature) {\n throw new WebhookVerificationError(\n 'Invalid signature header format (expected: t=timestamp,v1=signature)'\n );\n }\n \n if (isNaN(timestamp)) {\n throw new WebhookVerificationError('Invalid timestamp in signature header');\n }\n \n return { timestamp, signature };\n }\n \n /**\n * Compute HMAC-SHA256 signature\n * \n * Algorithm:\n * 1. Build signed payload: `{timestamp}.{raw_body}`\n * 2. Compute: HMAC-SHA256(secret, signed_payload)\n * 3. Return hex digest\n */\n private computeSignature(timestamp: number, body: string): string {\n const signedPayload = `${timestamp}.${body}`;\n return createHmac('sha256', this.secret)\n .update(signedPayload, 'utf8')\n .digest('hex');\n }\n \n /**\n * Constant-time string comparison to prevent timing attacks\n */\n private secureCompare(a: string, b: string): boolean {\n if (a.length !== b.length) {\n return false;\n }\n \n const bufferA = Buffer.from(a, 'utf8');\n const bufferB = Buffer.from(b, 'utf8');\n \n return timingSafeEqual(bufferA, bufferB);\n }\n}\n\n/**\n * Webhook verification error\n */\nexport class WebhookVerificationError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'WebhookVerificationError';\n }\n}\n\n/**\n * Webhook event types (auto-generated from webhook-receiver-api.yaml)\n * \n * These types are generated by running `npm run generate:webhooks`\n * from openapi/webhook-receiver-api.yaml\n */\nexport type {\n WebhookEventEnvelope,\n VeriFactuStatusUpdatedEvent,\n VeriFactuStatusUpdatedData,\n VeriFactuStatus,\n} from '../generated-webhooks';\n\n/**\n * Union type of all possible webhook events\n */\nexport type WebhookEvent = VeriFactuStatusUpdatedEvent;\n\n// Import for internal use\nimport type {\n VeriFactuStatusUpdatedEvent,\n} from '../generated-webhooks';\n","import type { components } from '../generated/schema';\n\ntype CreateCustomerRequest = components['schemas']['CreateCustomerRequest'];\ntype Address = components['schemas']['Address'];\n\n/**\n * Fluent builder for creating customers with a clean, readable API.\n *\n * @example\n * ```typescript\n * const customer = CustomerBuilder.create()\n * .name('Acme Corporation SL')\n * .nif('B12345678')\n * .email('contact@acme.com')\n * .address('Calle Mayor', '1', '28001', 'Madrid', 'Madrid', 'Spain')\n * .build();\n * ```\n */\nexport class CustomerBuilder {\n private _name?: string;\n private _nif?: string;\n private _email?: string;\n private _phone?: string;\n private _address?: Address;\n private _notes?: string;\n\n private constructor() {}\n\n static create(): CustomerBuilder {\n return new CustomerBuilder();\n }\n\n name(name: string): this {\n this._name = name;\n return this;\n }\n\n nif(nif: string): this {\n this._nif = nif;\n return this;\n }\n\n email(email: string): this {\n this._email = email;\n return this;\n }\n\n phone(phone: string): this {\n this._phone = phone;\n return this;\n }\n\n address(street: string, number: string, postalCode: string, city: string, province: string, country: string, countryCode: string = 'ES'): this {\n this._address = { street, number, postal_code: postalCode, city, province, country, country_code: countryCode };\n return this;\n }\n\n notes(notes: string): this {\n this._notes = notes;\n return this;\n }\n\n build(): CreateCustomerRequest {\n if (!this._name || this._name.trim().length === 0) throw new Error('Legal name is required');\n if (!this._nif || this._nif.trim().length === 0) throw new Error('NIF/CIF is required');\n if (!this._address) throw new Error('Address is required');\n\n return {\n legal_name: this._name,\n nif: this._nif,\n email: this._email,\n phone: this._phone,\n address: this._address,\n notes: this._notes,\n };\n }\n}\n","import type { components } from '../generated/schema';\n\ntype CreateInvoiceRequest = components['schemas']['CreateInvoiceRequest'];\ntype InvoiceType = components['schemas']['InvoiceType'];\ntype Recipient = components['schemas']['Recipient'];\ntype InvoiceLine = CreateInvoiceRequest['lines'][number];\n\n/**\n * Fluent builder for creating invoices with a clean, readable API.\n *\n * @example\n * ```typescript\n * const invoice = InvoiceBuilder.create()\n * .forCustomer('customer-uuid')\n * .addLine('Consulting services', 10, 85.50)\n * .build();\n * ```\n */\nexport class InvoiceBuilder {\n private _type: InvoiceType = 'STANDARD';\n private _operationDate?: string;\n private _dueDate?: string;\n private _customerId?: string;\n private _lines: InvoiceLine[] = [];\n private _notes?: string;\n private _seriesId?: string;\n private _metadata?: Record<string, any>;\n\n private constructor() {}\n\n static create(): InvoiceBuilder {\n return new InvoiceBuilder();\n }\n\n type(type: InvoiceType): this {\n this._type = type;\n return this;\n }\n\n forCustomer(customerId: string): this {\n this._customerId = customerId;\n return this;\n }\n\n operationDate(date: string | Date): this {\n this._operationDate = date instanceof Date ? date.toISOString().split('T')[0] : date;\n return this;\n }\n\n dueDate(date: string | Date): this {\n this._dueDate = date instanceof Date ? date.toISOString().split('T')[0] : date;\n return this;\n }\n\n addLine(description: string, quantity: number, unitPrice: number, discountPercentage: number = 0): this {\n this._lines.push({ description, quantity, unit_price: unitPrice, discount_percentage: discountPercentage });\n return this;\n }\n\n addLineObject(line: InvoiceLine): this {\n this._lines.push(line);\n return this;\n }\n\n notes(notes: string): this {\n this._notes = notes;\n return this;\n }\n\n series(id: string): this {\n this._seriesId = id;\n return this;\n }\n\n metadata(data: Record<string, any>): this {\n this._metadata = data;\n return this;\n }\n\n build(): CreateInvoiceRequest {\n if (!this._customerId) throw new Error('Customer ID is required');\n if (this._lines.length === 0) throw new Error('At least one invoice line is required');\n\n const recipient: Recipient = { customer_id: this._customerId };\n\n return {\n type: this._type,\n operation_date: this._operationDate,\n due_date: this._dueDate,\n recipient,\n lines: this._lines,\n notes: this._notes,\n series_id: this._seriesId,\n metadata: this._metadata,\n };\n }\n}\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -1,37 +1,66 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@beel_es/sdk",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Official
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"description": "Official Node.js SDK for BeeL Public API - Spanish invoicing platform with VeriFactu support",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"module": "./dist/index.mjs",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.mjs",
|
|
12
|
+
"require": "./dist/index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"dist",
|
|
17
|
+
"README.md",
|
|
18
|
+
"LICENSE"
|
|
19
|
+
],
|
|
7
20
|
"scripts": {
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
21
|
+
"generate": "npx openapi-typescript openapi/public-api.yaml -o src/generated/schema.ts",
|
|
22
|
+
"generate:webhooks": "npx openapi-typescript-codegen -i openapi/webhook-receiver-api.yaml -o src/generated-webhooks --client fetch",
|
|
23
|
+
"build": "tsup",
|
|
24
|
+
"build:full": "npm run generate && npm run build",
|
|
25
|
+
"dev": "tsup --watch",
|
|
26
|
+
"test": "vitest run",
|
|
27
|
+
"test:e2e": "vitest run --config vitest.e2e.config.ts",
|
|
28
|
+
"prepublishOnly": "npm run build:full"
|
|
12
29
|
},
|
|
13
30
|
"keywords": [
|
|
14
31
|
"beel",
|
|
15
32
|
"invoicing",
|
|
16
|
-
"
|
|
33
|
+
"facturacion",
|
|
34
|
+
"autonomos",
|
|
35
|
+
"spain",
|
|
36
|
+
"verifactu",
|
|
37
|
+
"aeat",
|
|
17
38
|
"sdk",
|
|
39
|
+
"api-client",
|
|
18
40
|
"typescript"
|
|
19
41
|
],
|
|
20
|
-
"author": "BeeL",
|
|
42
|
+
"author": "BeeL Technical Team <it@beel.es>",
|
|
21
43
|
"license": "MIT",
|
|
22
44
|
"repository": {
|
|
23
45
|
"type": "git",
|
|
24
|
-
"url": "https://github.com/beel-es/beel-
|
|
46
|
+
"url": "https://github.com/beel-es/beel-node-sdk.git"
|
|
25
47
|
},
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
|
|
29
|
-
|
|
48
|
+
"bugs": {
|
|
49
|
+
"url": "https://github.com/beel-es/beel-node-sdk/issues"
|
|
50
|
+
},
|
|
51
|
+
"homepage": "https://beel.es",
|
|
30
52
|
"devDependencies": {
|
|
31
|
-
"@types/node": "^
|
|
32
|
-
"typescript": "^
|
|
53
|
+
"@types/node": "^22.19.15",
|
|
54
|
+
"openapi-typescript": "^7.13.0",
|
|
55
|
+
"openapi-typescript-codegen": "^0.30.0",
|
|
56
|
+
"tsup": "^8.5.1",
|
|
57
|
+
"typescript": "^5.9.3",
|
|
58
|
+
"vitest": "^4.1.4"
|
|
59
|
+
},
|
|
60
|
+
"engines": {
|
|
61
|
+
"node": ">=18.0.0"
|
|
33
62
|
},
|
|
34
|
-
"
|
|
35
|
-
"
|
|
63
|
+
"dependencies": {
|
|
64
|
+
"openapi-fetch": "^0.17.0"
|
|
36
65
|
}
|
|
37
66
|
}
|
package/dist/client.d.ts
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import type { Client } from './generated/client';
|
|
2
|
-
import { Invoices } from './resources/invoices';
|
|
3
|
-
import { Customers } from './resources/customers';
|
|
4
|
-
import { Products } from './resources/products';
|
|
5
|
-
import { Series } from './resources/series';
|
|
6
|
-
import { Companies } from './resources/companies';
|
|
7
|
-
import { Config } from './resources/config';
|
|
8
|
-
export declare class BeeLError extends Error {
|
|
9
|
-
readonly statusCode: number;
|
|
10
|
-
constructor(message: string, statusCode?: number);
|
|
11
|
-
}
|
|
12
|
-
export interface BeeLConfig {
|
|
13
|
-
apiKey: string;
|
|
14
|
-
baseUrl?: string;
|
|
15
|
-
/** Skip API key validation on construction (default: false) */
|
|
16
|
-
skipValidation?: boolean;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Main BeeL SDK client.
|
|
20
|
-
*
|
|
21
|
-
* @example
|
|
22
|
-
* ```typescript
|
|
23
|
-
* const client = await BeeL.create({ apiKey: 'your-api-key' });
|
|
24
|
-
* const invoices = await client.invoices.list();
|
|
25
|
-
* ```
|
|
26
|
-
*/
|
|
27
|
-
export declare class BeeL {
|
|
28
|
-
private readonly client;
|
|
29
|
-
readonly invoices: Invoices;
|
|
30
|
-
readonly customers: Customers;
|
|
31
|
-
readonly products: Products;
|
|
32
|
-
readonly series: Series;
|
|
33
|
-
readonly companies: Companies;
|
|
34
|
-
readonly config: Config;
|
|
35
|
-
private constructor();
|
|
36
|
-
/**
|
|
37
|
-
* Creates a new BeeL client and validates the API key.
|
|
38
|
-
*
|
|
39
|
-
* @param config API key string or configuration object
|
|
40
|
-
* @throws BeeLError if the API key is invalid or the API is unreachable
|
|
41
|
-
*/
|
|
42
|
-
static create(config: BeeLConfig | string): Promise<BeeL>;
|
|
43
|
-
/**
|
|
44
|
-
* Validates the API key by making a lightweight request.
|
|
45
|
-
*
|
|
46
|
-
* @throws BeeLError if the API key is invalid or the API is unreachable
|
|
47
|
-
*/
|
|
48
|
-
ping(): Promise<void>;
|
|
49
|
-
/**
|
|
50
|
-
* Get the underlying client for advanced use cases.
|
|
51
|
-
*/
|
|
52
|
-
getClient(): Client;
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=client.d.ts.map
|
package/dist/client.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,qBAAa,SAAU,SAAQ,KAAK;IAClC,SAAgB,UAAU,EAAE,MAAM,CAAC;gBAEvB,OAAO,EAAE,MAAM,EAAE,UAAU,GAAE,MAAU;CAKpD;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH,qBAAa,IAAI;IACf,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC,SAAgB,QAAQ,EAAE,QAAQ,CAAC;IACnC,SAAgB,SAAS,EAAE,SAAS,CAAC;IACrC,SAAgB,QAAQ,EAAE,QAAQ,CAAC;IACnC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,SAAS,EAAE,SAAS,CAAC;IACrC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,OAAO;IAUP;;;;;OAKG;WACU,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB/D;;;;OAIG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB3B;;OAEG;IACH,SAAS,IAAI,MAAM;CAGpB"}
|
package/dist/client.js
DELETED
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BeeL = exports.BeeLError = void 0;
|
|
4
|
-
const client_gen_1 = require("./generated/client.gen");
|
|
5
|
-
const invoices_1 = require("./resources/invoices");
|
|
6
|
-
const customers_1 = require("./resources/customers");
|
|
7
|
-
const products_1 = require("./resources/products");
|
|
8
|
-
const series_1 = require("./resources/series");
|
|
9
|
-
const companies_1 = require("./resources/companies");
|
|
10
|
-
const config_1 = require("./resources/config");
|
|
11
|
-
class BeeLError extends Error {
|
|
12
|
-
constructor(message, statusCode = 0) {
|
|
13
|
-
super(message);
|
|
14
|
-
this.name = 'BeeLError';
|
|
15
|
-
this.statusCode = statusCode;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
exports.BeeLError = BeeLError;
|
|
19
|
-
/**
|
|
20
|
-
* Main BeeL SDK client.
|
|
21
|
-
*
|
|
22
|
-
* @example
|
|
23
|
-
* ```typescript
|
|
24
|
-
* const client = await BeeL.create({ apiKey: 'your-api-key' });
|
|
25
|
-
* const invoices = await client.invoices.list();
|
|
26
|
-
* ```
|
|
27
|
-
*/
|
|
28
|
-
class BeeL {
|
|
29
|
-
constructor(client) {
|
|
30
|
-
this.client = client;
|
|
31
|
-
this.invoices = new invoices_1.Invoices(this.client);
|
|
32
|
-
this.customers = new customers_1.Customers(this.client);
|
|
33
|
-
this.products = new products_1.Products(this.client);
|
|
34
|
-
this.series = new series_1.Series(this.client);
|
|
35
|
-
this.companies = new companies_1.Companies(this.client);
|
|
36
|
-
this.config = new config_1.Config(this.client);
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Creates a new BeeL client and validates the API key.
|
|
40
|
-
*
|
|
41
|
-
* @param config API key string or configuration object
|
|
42
|
-
* @throws BeeLError if the API key is invalid or the API is unreachable
|
|
43
|
-
*/
|
|
44
|
-
static async create(config) {
|
|
45
|
-
const { apiKey, baseUrl, skipValidation } = typeof config === 'string'
|
|
46
|
-
? { apiKey: config, baseUrl: undefined, skipValidation: false }
|
|
47
|
-
: config;
|
|
48
|
-
if (!apiKey) {
|
|
49
|
-
throw new BeeLError('API key is required. Get yours at https://app.beel.es');
|
|
50
|
-
}
|
|
51
|
-
client_gen_1.client.setConfig({
|
|
52
|
-
baseUrl: baseUrl ?? 'https://app.beel.es/api',
|
|
53
|
-
headers: {
|
|
54
|
-
'Authorization': `Bearer ${apiKey}`,
|
|
55
|
-
},
|
|
56
|
-
});
|
|
57
|
-
const beel = new BeeL(client_gen_1.client);
|
|
58
|
-
if (!skipValidation) {
|
|
59
|
-
await beel.ping();
|
|
60
|
-
}
|
|
61
|
-
return beel;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Validates the API key by making a lightweight request.
|
|
65
|
-
*
|
|
66
|
-
* @throws BeeLError if the API key is invalid or the API is unreachable
|
|
67
|
-
*/
|
|
68
|
-
async ping() {
|
|
69
|
-
try {
|
|
70
|
-
await this.series.list();
|
|
71
|
-
}
|
|
72
|
-
catch (error) {
|
|
73
|
-
const status = error?.response?.status ?? error?.statusCode ?? 0;
|
|
74
|
-
if (status === 401) {
|
|
75
|
-
throw new BeeLError('Invalid API key. Check your key at https://app.beel.es or contact support.', 401);
|
|
76
|
-
}
|
|
77
|
-
else if (status === 403) {
|
|
78
|
-
throw new BeeLError("API key doesn't have permission to access this resource.", 403);
|
|
79
|
-
}
|
|
80
|
-
else if (status === 0 || error?.code === 'ECONNREFUSED') {
|
|
81
|
-
throw new BeeLError('Could not connect to BeeL API. Check your network connection or base URL.');
|
|
82
|
-
}
|
|
83
|
-
// Other errors (500, etc.) - don't fail construction
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Get the underlying client for advanced use cases.
|
|
88
|
-
*/
|
|
89
|
-
getClient() {
|
|
90
|
-
return this.client;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
exports.BeeL = BeeL;
|
|
94
|
-
//# sourceMappingURL=client.js.map
|
package/dist/client.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;;AAAA,uDAAmE;AAGnE,mDAAgD;AAChD,qDAAkD;AAClD,mDAAgD;AAChD,+CAA4C;AAC5C,qDAAkD;AAClD,+CAA4C;AAE5C,MAAa,SAAU,SAAQ,KAAK;IAGlC,YAAY,OAAe,EAAE,aAAqB,CAAC;QACjD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF;AARD,8BAQC;AASD;;;;;;;;GAQG;AACH,MAAa,IAAI;IAUf,YAAoB,MAAc;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAA2B;QAC7C,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,MAAM,KAAK,QAAQ;YACpE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE;YAC/D,CAAC,CAAC,MAAM,CAAC;QAEX,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,SAAS,CAAC,uDAAuD,CAAC,CAAC;QAC/E,CAAC;QAED,mBAAe,CAAC,SAAS,CAAC;YACxB,OAAO,EAAE,OAAO,IAAI,yBAAyB;YAC7C,OAAO,EAAE;gBACP,eAAe,EAAE,UAAU,MAAM,EAAE;aACpC;SACF,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,mBAAe,CAAC,CAAC;QAEvC,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,EAAE,UAAU,IAAI,CAAC,CAAC;YAEjE,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;gBACnB,MAAM,IAAI,SAAS,CACjB,4EAA4E,EAC5E,GAAG,CACJ,CAAC;YACJ,CAAC;iBAAM,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC1B,MAAM,IAAI,SAAS,CACjB,0DAA0D,EAC1D,GAAG,CACJ,CAAC;YACJ,CAAC;iBAAM,IAAI,MAAM,KAAK,CAAC,IAAI,KAAK,EAAE,IAAI,KAAK,cAAc,EAAE,CAAC;gBAC1D,MAAM,IAAI,SAAS,CACjB,2EAA2E,CAC5E,CAAC;YACJ,CAAC;YACD,qDAAqD;QACvD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AAvFD,oBAuFC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.gen.d.ts","sourceRoot":"","sources":["../../../src/generated/client/client.gen.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAA0C,MAAM,aAAa,CAAC;AAgB1F,eAAO,MAAM,YAAY,GAAI,SAAQ,MAAW,KAAG,MA4QlD,CAAC"}
|
|
@@ -1,240 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// This file is auto-generated by @hey-api/openapi-ts
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.createClient = void 0;
|
|
5
|
-
const serverSentEvents_gen_1 = require("../core/serverSentEvents.gen");
|
|
6
|
-
const utils_gen_1 = require("../core/utils.gen");
|
|
7
|
-
const utils_gen_2 = require("./utils.gen");
|
|
8
|
-
const createClient = (config = {}) => {
|
|
9
|
-
let _config = (0, utils_gen_2.mergeConfigs)((0, utils_gen_2.createConfig)(), config);
|
|
10
|
-
const getConfig = () => ({ ..._config });
|
|
11
|
-
const setConfig = (config) => {
|
|
12
|
-
_config = (0, utils_gen_2.mergeConfigs)(_config, config);
|
|
13
|
-
return getConfig();
|
|
14
|
-
};
|
|
15
|
-
const interceptors = (0, utils_gen_2.createInterceptors)();
|
|
16
|
-
const beforeRequest = async (options) => {
|
|
17
|
-
const opts = {
|
|
18
|
-
..._config,
|
|
19
|
-
...options,
|
|
20
|
-
fetch: options.fetch ?? _config.fetch ?? globalThis.fetch,
|
|
21
|
-
headers: (0, utils_gen_2.mergeHeaders)(_config.headers, options.headers),
|
|
22
|
-
serializedBody: undefined,
|
|
23
|
-
};
|
|
24
|
-
if (opts.security) {
|
|
25
|
-
await (0, utils_gen_2.setAuthParams)({
|
|
26
|
-
...opts,
|
|
27
|
-
security: opts.security,
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
if (opts.requestValidator) {
|
|
31
|
-
await opts.requestValidator(opts);
|
|
32
|
-
}
|
|
33
|
-
if (opts.body !== undefined && opts.bodySerializer) {
|
|
34
|
-
opts.serializedBody = opts.bodySerializer(opts.body);
|
|
35
|
-
}
|
|
36
|
-
// remove Content-Type header if body is empty to avoid sending invalid requests
|
|
37
|
-
if (opts.body === undefined || opts.serializedBody === '') {
|
|
38
|
-
opts.headers.delete('Content-Type');
|
|
39
|
-
}
|
|
40
|
-
const url = (0, utils_gen_2.buildUrl)(opts);
|
|
41
|
-
return { opts, url };
|
|
42
|
-
};
|
|
43
|
-
const request = async (options) => {
|
|
44
|
-
// @ts-expect-error
|
|
45
|
-
const { opts, url } = await beforeRequest(options);
|
|
46
|
-
const requestInit = {
|
|
47
|
-
redirect: 'follow',
|
|
48
|
-
...opts,
|
|
49
|
-
body: (0, utils_gen_1.getValidRequestBody)(opts),
|
|
50
|
-
};
|
|
51
|
-
let request = new Request(url, requestInit);
|
|
52
|
-
for (const fn of interceptors.request.fns) {
|
|
53
|
-
if (fn) {
|
|
54
|
-
request = await fn(request, opts);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
// fetch must be assigned here, otherwise it would throw the error:
|
|
58
|
-
// TypeError: Failed to execute 'fetch' on 'Window': Illegal invocation
|
|
59
|
-
const _fetch = opts.fetch;
|
|
60
|
-
let response;
|
|
61
|
-
try {
|
|
62
|
-
response = await _fetch(request);
|
|
63
|
-
}
|
|
64
|
-
catch (error) {
|
|
65
|
-
// Handle fetch exceptions (AbortError, network errors, etc.)
|
|
66
|
-
let finalError = error;
|
|
67
|
-
for (const fn of interceptors.error.fns) {
|
|
68
|
-
if (fn) {
|
|
69
|
-
finalError = (await fn(error, undefined, request, opts));
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
finalError = finalError || {};
|
|
73
|
-
if (opts.throwOnError) {
|
|
74
|
-
throw finalError;
|
|
75
|
-
}
|
|
76
|
-
// Return error response
|
|
77
|
-
return opts.responseStyle === 'data'
|
|
78
|
-
? undefined
|
|
79
|
-
: {
|
|
80
|
-
error: finalError,
|
|
81
|
-
request,
|
|
82
|
-
response: undefined,
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
for (const fn of interceptors.response.fns) {
|
|
86
|
-
if (fn) {
|
|
87
|
-
response = await fn(response, request, opts);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
const result = {
|
|
91
|
-
request,
|
|
92
|
-
response,
|
|
93
|
-
};
|
|
94
|
-
if (response.ok) {
|
|
95
|
-
const parseAs = (opts.parseAs === 'auto'
|
|
96
|
-
? (0, utils_gen_2.getParseAs)(response.headers.get('Content-Type'))
|
|
97
|
-
: opts.parseAs) ?? 'json';
|
|
98
|
-
if (response.status === 204 || response.headers.get('Content-Length') === '0') {
|
|
99
|
-
let emptyData;
|
|
100
|
-
switch (parseAs) {
|
|
101
|
-
case 'arrayBuffer':
|
|
102
|
-
case 'blob':
|
|
103
|
-
case 'text':
|
|
104
|
-
emptyData = await response[parseAs]();
|
|
105
|
-
break;
|
|
106
|
-
case 'formData':
|
|
107
|
-
emptyData = new FormData();
|
|
108
|
-
break;
|
|
109
|
-
case 'stream':
|
|
110
|
-
emptyData = response.body;
|
|
111
|
-
break;
|
|
112
|
-
case 'json':
|
|
113
|
-
default:
|
|
114
|
-
emptyData = {};
|
|
115
|
-
break;
|
|
116
|
-
}
|
|
117
|
-
return opts.responseStyle === 'data'
|
|
118
|
-
? emptyData
|
|
119
|
-
: {
|
|
120
|
-
data: emptyData,
|
|
121
|
-
...result,
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
let data;
|
|
125
|
-
switch (parseAs) {
|
|
126
|
-
case 'arrayBuffer':
|
|
127
|
-
case 'blob':
|
|
128
|
-
case 'formData':
|
|
129
|
-
case 'text':
|
|
130
|
-
data = await response[parseAs]();
|
|
131
|
-
break;
|
|
132
|
-
case 'json': {
|
|
133
|
-
// Some servers return 200 with no Content-Length and empty body.
|
|
134
|
-
// response.json() would throw; read as text and parse if non-empty.
|
|
135
|
-
const text = await response.text();
|
|
136
|
-
data = text ? JSON.parse(text) : {};
|
|
137
|
-
break;
|
|
138
|
-
}
|
|
139
|
-
case 'stream':
|
|
140
|
-
return opts.responseStyle === 'data'
|
|
141
|
-
? response.body
|
|
142
|
-
: {
|
|
143
|
-
data: response.body,
|
|
144
|
-
...result,
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
|
-
if (parseAs === 'json') {
|
|
148
|
-
if (opts.responseValidator) {
|
|
149
|
-
await opts.responseValidator(data);
|
|
150
|
-
}
|
|
151
|
-
if (opts.responseTransformer) {
|
|
152
|
-
data = await opts.responseTransformer(data);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
return opts.responseStyle === 'data'
|
|
156
|
-
? data
|
|
157
|
-
: {
|
|
158
|
-
data,
|
|
159
|
-
...result,
|
|
160
|
-
};
|
|
161
|
-
}
|
|
162
|
-
const textError = await response.text();
|
|
163
|
-
let jsonError;
|
|
164
|
-
try {
|
|
165
|
-
jsonError = JSON.parse(textError);
|
|
166
|
-
}
|
|
167
|
-
catch {
|
|
168
|
-
// noop
|
|
169
|
-
}
|
|
170
|
-
const error = jsonError ?? textError;
|
|
171
|
-
let finalError = error;
|
|
172
|
-
for (const fn of interceptors.error.fns) {
|
|
173
|
-
if (fn) {
|
|
174
|
-
finalError = (await fn(error, response, request, opts));
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
finalError = finalError || {};
|
|
178
|
-
if (opts.throwOnError) {
|
|
179
|
-
throw finalError;
|
|
180
|
-
}
|
|
181
|
-
// TODO: we probably want to return error and improve types
|
|
182
|
-
return opts.responseStyle === 'data'
|
|
183
|
-
? undefined
|
|
184
|
-
: {
|
|
185
|
-
error: finalError,
|
|
186
|
-
...result,
|
|
187
|
-
};
|
|
188
|
-
};
|
|
189
|
-
const makeMethodFn = (method) => (options) => request({ ...options, method });
|
|
190
|
-
const makeSseFn = (method) => async (options) => {
|
|
191
|
-
const { opts, url } = await beforeRequest(options);
|
|
192
|
-
return (0, serverSentEvents_gen_1.createSseClient)({
|
|
193
|
-
...opts,
|
|
194
|
-
body: opts.body,
|
|
195
|
-
headers: opts.headers,
|
|
196
|
-
method,
|
|
197
|
-
onRequest: async (url, init) => {
|
|
198
|
-
let request = new Request(url, init);
|
|
199
|
-
for (const fn of interceptors.request.fns) {
|
|
200
|
-
if (fn) {
|
|
201
|
-
request = await fn(request, opts);
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
return request;
|
|
205
|
-
},
|
|
206
|
-
serializedBody: (0, utils_gen_1.getValidRequestBody)(opts),
|
|
207
|
-
url,
|
|
208
|
-
});
|
|
209
|
-
};
|
|
210
|
-
const _buildUrl = (options) => (0, utils_gen_2.buildUrl)({ ..._config, ...options });
|
|
211
|
-
return {
|
|
212
|
-
buildUrl: _buildUrl,
|
|
213
|
-
connect: makeMethodFn('CONNECT'),
|
|
214
|
-
delete: makeMethodFn('DELETE'),
|
|
215
|
-
get: makeMethodFn('GET'),
|
|
216
|
-
getConfig,
|
|
217
|
-
head: makeMethodFn('HEAD'),
|
|
218
|
-
interceptors,
|
|
219
|
-
options: makeMethodFn('OPTIONS'),
|
|
220
|
-
patch: makeMethodFn('PATCH'),
|
|
221
|
-
post: makeMethodFn('POST'),
|
|
222
|
-
put: makeMethodFn('PUT'),
|
|
223
|
-
request,
|
|
224
|
-
setConfig,
|
|
225
|
-
sse: {
|
|
226
|
-
connect: makeSseFn('CONNECT'),
|
|
227
|
-
delete: makeSseFn('DELETE'),
|
|
228
|
-
get: makeSseFn('GET'),
|
|
229
|
-
head: makeSseFn('HEAD'),
|
|
230
|
-
options: makeSseFn('OPTIONS'),
|
|
231
|
-
patch: makeSseFn('PATCH'),
|
|
232
|
-
post: makeSseFn('POST'),
|
|
233
|
-
put: makeSseFn('PUT'),
|
|
234
|
-
trace: makeSseFn('TRACE'),
|
|
235
|
-
},
|
|
236
|
-
trace: makeMethodFn('TRACE'),
|
|
237
|
-
};
|
|
238
|
-
};
|
|
239
|
-
exports.createClient = createClient;
|
|
240
|
-
//# sourceMappingURL=client.gen.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.gen.js","sourceRoot":"","sources":["../../../src/generated/client/client.gen.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export type { Auth } from '../core/auth.gen';
|
|
2
|
-
export type { QuerySerializerOptions } from '../core/bodySerializer.gen';
|
|
3
|
-
export { formDataBodySerializer, jsonBodySerializer, urlSearchParamsBodySerializer, } from '../core/bodySerializer.gen';
|
|
4
|
-
export { buildClientParams } from '../core/params.gen';
|
|
5
|
-
export { serializeQueryKeyValue } from '../core/queryKeySerializer.gen';
|
|
6
|
-
export { createClient } from './client.gen';
|
|
7
|
-
export type { Client, ClientOptions, Config, CreateClientConfig, Options, RequestOptions, RequestResult, ResolvedRequestOptions, ResponseStyle, TDataShape, } from './types.gen';
|
|
8
|
-
export { createConfig, mergeHeaders } from './utils.gen';
|
|
9
|
-
//# sourceMappingURL=index.d.ts.map
|