@jars-lt/jars-app-sdk 0.1.0 → 0.2.1

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/client.ts","../src/errors.ts","../src/resources/shared.ts","../src/resources/partners.ts","../src/resources/products.ts","../src/resources/invoices.ts","../src/resources/journal.ts","../src/resources/reports.ts","../src/resources/audit-logs.ts","../src/resources/lookups.ts"],"sourcesContent":["export { JarsClient, DEFAULT_BASE_URL } from './client'\nexport type { JarsClientConfig, RequestOptions, Method } from './client'\nexport { JarsApiError } from './errors'\nexport type { JarsApiErrorInit } from './errors'\nexport { PartnersResource } from './resources/partners'\nexport type { ListParams } from './resources/shared'\nexport { ProductsResource } from './resources/products'\nexport { InvoicesResource } from './resources/invoices'\nexport { JournalResource } from './resources/journal'\nexport { ReportsResource } from './resources/reports'\nexport type { ReportParams } from './resources/reports'\nexport { AuditLogsResource } from './resources/audit-logs'\nexport { LookupsResource } from './resources/lookups'\nexport type { paths, components } from './generated/types'\n","import createClient, { type Client } from 'openapi-fetch'\nimport type { paths } from './generated/types'\nimport { JarsApiError } from './errors'\nimport { PartnersResource } from './resources/partners'\nimport { ProductsResource } from './resources/products'\nimport { InvoicesResource } from './resources/invoices'\nimport { JournalResource } from './resources/journal'\nimport { ReportsResource } from './resources/reports'\nimport { AuditLogsResource } from './resources/audit-logs'\nimport { LookupsResource } from './resources/lookups'\n\n/** Default API host. The generated path keys already carry the `/api` prefix. */\nexport const DEFAULT_BASE_URL = 'https://app.jars.lt'\n\nexport type Method = 'get' | 'post' | 'put' | 'patch' | 'delete'\n\nexport interface JarsClientConfig {\n apiKey: string\n baseUrl?: string\n fetch?: typeof fetch\n}\n\nexport interface RequestOptions {\n query?: Record<string, string | number | boolean | undefined>\n body?: unknown\n params?: Record<string, string>\n}\n\ninterface ErrorEnvelope {\n error?: string\n code?: string\n details?: unknown\n}\n\n/** Parse JSON, falling back to the raw string when the body isn't valid JSON. */\nfunction safeJson(text: string): unknown {\n try {\n return JSON.parse(text)\n } catch {\n return text\n }\n}\n\nexport class JarsClient {\n /** Underlying `openapi-fetch` client for advanced, fully-typed use. */\n readonly raw: Client<paths>\n\n readonly partners: PartnersResource\n readonly products: ProductsResource\n readonly invoices: InvoicesResource\n readonly journal: JournalResource\n readonly reports: ReportsResource\n readonly auditLogs: AuditLogsResource\n readonly lookups: LookupsResource\n\n private readonly baseUrl: string\n private readonly authHeader: string\n private readonly fetchImpl: typeof fetch\n\n constructor(config: JarsClientConfig) {\n if (!config?.apiKey) throw new Error('JarsClient: apiKey is required')\n\n this.baseUrl = (config.baseUrl ?? DEFAULT_BASE_URL).replace(/\\/+$/, '')\n this.authHeader = `Bearer ${config.apiKey}`\n this.fetchImpl = config.fetch ?? fetch\n\n this.raw = createClient<paths>({\n baseUrl: this.baseUrl,\n fetch: this.fetchImpl,\n headers: { Authorization: this.authHeader },\n })\n\n this.partners = new PartnersResource(this)\n this.products = new ProductsResource(this)\n this.invoices = new InvoicesResource(this)\n this.journal = new JournalResource(this)\n this.reports = new ReportsResource(this)\n this.auditLogs = new AuditLogsResource(this)\n this.lookups = new LookupsResource(this)\n }\n\n async request<T = unknown>(method: Method, path: string, opts: RequestOptions = {}): Promise<T> {\n const finalPath = opts.params\n ? path.replace(/\\{([^}]+)\\}/g, (_, key: string) => {\n const value = opts.params![key]\n return encodeURIComponent(value ?? `{${key}}`)\n })\n : path\n\n const url = new URL(this.baseUrl + finalPath)\n if (opts.query) {\n for (const [key, value] of Object.entries(opts.query)) {\n if (value !== undefined) url.searchParams.set(key, String(value))\n }\n }\n\n const headers = new Headers({ Authorization: this.authHeader })\n let body: string | undefined\n if (opts.body !== undefined) {\n headers.set('content-type', 'application/json')\n body = JSON.stringify(opts.body)\n }\n\n let res: Response\n try {\n res = await this.fetchImpl(url, { method: method.toUpperCase(), headers, body })\n } catch (cause) {\n throw new JarsApiError({\n status: 0,\n message: cause instanceof Error ? cause.message : 'Network error',\n })\n }\n\n const text = await res.text()\n const parsed = text === '' ? undefined : safeJson(text)\n\n if (!res.ok) {\n const env = (parsed ?? {}) as ErrorEnvelope\n throw new JarsApiError({\n status: res.status,\n message: env.error,\n code: env.code,\n details: env.details,\n })\n }\n\n return parsed as T\n }\n}\n","export interface JarsApiErrorInit {\n status: number\n message?: string\n code?: string\n details?: unknown\n}\n\n/** Thrown for any non-2xx API response or a network/abort failure (status 0). */\nexport class JarsApiError extends Error {\n readonly status: number\n readonly code?: string\n readonly details?: unknown\n\n constructor(init: JarsApiErrorInit) {\n super(init.message ?? 'JARS API request failed')\n this.name = 'JarsApiError'\n this.status = init.status\n this.code = init.code\n this.details = init.details\n Object.setPrototypeOf(this, JarsApiError.prototype)\n }\n}\n","import type { RequestOptions } from '../client'\n\n/**\n * List query parameters: the documented common params (search/sort/limit)\n * plus arbitrary passthrough field filters supported by the API.\n */\nexport interface ListParams {\n search?: string\n sort?: string\n limit?: number\n [filter: string]: string | number | boolean | undefined\n}\n\nexport function toQuery(params?: ListParams): RequestOptions['query'] {\n return params as RequestOptions['query']\n}\n","import type { JarsClient } from '../client'\nimport { type ListParams, toQuery } from './shared'\n\nexport type { ListParams } from './shared'\n\nexport class PartnersResource {\n constructor(private readonly client: JarsClient) {}\n\n list<T = unknown[]>(params?: ListParams): Promise<T> {\n return this.client.request<T>('get', '/api/partners', { query: toQuery(params) })\n }\n\n get<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('get', '/api/partners/{id}', { params: { id } })\n }\n\n create<T = unknown>(body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('post', '/api/partners', { body })\n }\n\n update<T = unknown>(id: string, body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('put', '/api/partners/{id}', { params: { id }, body })\n }\n\n remove<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('delete', '/api/partners/{id}', { params: { id } })\n }\n}\n","import type { JarsClient } from '../client'\nimport { type ListParams, toQuery } from './shared'\n\nexport class ProductsResource {\n constructor(private readonly client: JarsClient) {}\n\n list<T = unknown[]>(params?: ListParams): Promise<T> {\n return this.client.request<T>('get', '/api/products', { query: toQuery(params) })\n }\n\n get<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('get', '/api/products/{id}', { params: { id } })\n }\n\n create<T = unknown>(body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('post', '/api/products', { body })\n }\n\n update<T = unknown>(id: string, body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('put', '/api/products/{id}', { params: { id }, body })\n }\n\n remove<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('delete', '/api/products/{id}', { params: { id } })\n }\n}\n","import type { JarsClient } from '../client'\nimport { type ListParams, toQuery } from './shared'\n\nexport class InvoicesResource {\n constructor(private readonly client: JarsClient) {}\n\n list<T = unknown[]>(params?: ListParams): Promise<T> {\n return this.client.request<T>('get', '/api/invoices', { query: toQuery(params) })\n }\n\n get<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('get', '/api/invoices/{id}', { params: { id } })\n }\n\n create<T = unknown>(body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('post', '/api/invoices', { body })\n }\n\n update<T = unknown>(id: string, body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('put', '/api/invoices/{id}', { params: { id }, body })\n }\n\n remove<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('delete', '/api/invoices/{id}', { params: { id } })\n }\n\n post<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('post', '/api/invoices/{id}/post', { params: { id } })\n }\n\n unpost<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('post', '/api/invoices/{id}/unpost', { params: { id } })\n }\n\n cancel<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('post', '/api/invoices/{id}/cancel', { params: { id } })\n }\n\n setExternalStatus<T = unknown>(id: string, externalStatus: string | null): Promise<T> {\n return this.client.request<T>('patch', '/api/invoices/{id}/external-status', {\n params: { id },\n body: { externalStatus },\n })\n }\n}\n","import type { JarsClient } from '../client'\nimport { type ListParams, toQuery } from './shared'\n\nexport class JournalResource {\n constructor(private readonly client: JarsClient) {}\n\n list<T = unknown[]>(params?: ListParams): Promise<T> {\n return this.client.request<T>('get', '/api/journal', { query: toQuery(params) })\n }\n\n get<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('get', '/api/journal/{id}', { params: { id } })\n }\n\n create<T = unknown>(body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('post', '/api/journal', { body })\n }\n}\n","import type { JarsClient } from '../client'\n\nexport type ReportParams = Record<string, string | number | boolean | undefined>\n\nexport class ReportsResource {\n constructor(private readonly client: JarsClient) {}\n trialBalance<T = unknown>(params?: ReportParams): Promise<T> {\n return this.client.request<T>('get', '/api/reports/trial-balance', { query: params })\n }\n generalLedger<T = unknown>(params?: ReportParams): Promise<T> {\n return this.client.request<T>('get', '/api/reports/general-ledger', { query: params })\n }\n partnerBalance<T = unknown>(params?: ReportParams): Promise<T> {\n return this.client.request<T>('get', '/api/reports/partner-balance', { query: params })\n }\n cashBook<T = unknown>(params?: ReportParams): Promise<T> {\n return this.client.request<T>('get', '/api/reports/cash-book', { query: params })\n }\n isafExport<T = unknown>(params?: ReportParams): Promise<T> {\n return this.client.request<T>('get', '/api/reports/isaf-export', { query: params })\n }\n}\n","import { type ListParams, toQuery } from './shared'\nimport type { JarsClient } from '../client'\n\nexport class AuditLogsResource {\n constructor(private readonly client: JarsClient) {}\n list<T = unknown[]>(params?: ListParams): Promise<T> {\n return this.client.request<T>('get', '/api/audit-logs', { query: toQuery(params) })\n }\n get<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('get', '/api/audit-logs/{id}', { params: { id } })\n }\n}\n","import { type ListParams, toQuery } from './shared'\nimport type { JarsClient } from '../client'\n\n/**\n * Reference data (accounts, VAT codes, units, operation templates) is\n * read-mostly. For MVP the facade exposes LIST methods only; create/update/\n * delete remain available through the raw client.\n */\nexport class LookupsResource {\n constructor(private readonly client: JarsClient) {}\n\n accounts<T = unknown[]>(params?: ListParams): Promise<T> {\n return this.client.request<T>('get', '/api/accounts', { query: toQuery(params) })\n }\n\n vatCodes<T = unknown[]>(params?: ListParams): Promise<T> {\n return this.client.request<T>('get', '/api/vat-codes', { query: toQuery(params) })\n }\n\n units<T = unknown[]>(params?: ListParams): Promise<T> {\n return this.client.request<T>('get', '/api/units', { query: toQuery(params) })\n }\n\n templates<T = unknown[]>(params?: ListParams): Promise<T> {\n return this.client.request<T>('get', '/api/templates', { query: toQuery(params) })\n }\n}\n"],"mappings":"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","names":["createClient"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/client.ts","../src/errors.ts","../src/resources/shared.ts","../src/resources/partners.ts","../src/resources/products.ts","../src/resources/invoices.ts","../src/resources/journal.ts","../src/resources/reports.ts","../src/resources/audit-logs.ts","../src/resources/lookups.ts","../src/resources/cash-registers.ts","../src/resources/projects.ts","../src/resources/professions.ts","../src/resources/perdiem-rates.ts","../src/resources/price-lists.ts","../src/resources/fixed-assets.ts","../src/resources/employees.ts","../src/resources/cash-orders.ts","../src/resources/bank-transactions.ts","../src/resources/business-trips.ts","../src/resources/payroll.ts","../src/resources/depreciation.ts","../src/resources/numberings.ts","../src/resources/exchange-rates.ts","../src/resources/bank-statements.ts","../src/resources/sales-receipts.ts"],"sourcesContent":["export { JarsClient, DEFAULT_BASE_URL } from './client'\nexport type { JarsClientConfig, RequestOptions, Method } from './client'\nexport { JarsApiError } from './errors'\nexport type { JarsApiErrorInit } from './errors'\nexport { PartnersResource } from './resources/partners'\nexport type { ListParams } from './resources/shared'\nexport { ProductsResource } from './resources/products'\nexport { InvoicesResource } from './resources/invoices'\nexport { JournalResource } from './resources/journal'\nexport { ReportsResource } from './resources/reports'\nexport type { ReportParams } from './resources/reports'\nexport { AuditLogsResource } from './resources/audit-logs'\nexport { LookupsResource } from './resources/lookups'\nexport { CashRegistersResource } from './resources/cash-registers'\nexport { ProjectsResource } from './resources/projects'\nexport { ProfessionsResource } from './resources/professions'\nexport { PerDiemRatesResource } from './resources/perdiem-rates'\nexport { PriceListsResource } from './resources/price-lists'\nexport { FixedAssetsResource } from './resources/fixed-assets'\nexport { EmployeesResource } from './resources/employees'\nexport { CashOrdersResource } from './resources/cash-orders'\nexport { BankTransactionsResource } from './resources/bank-transactions'\nexport { BusinessTripsResource } from './resources/business-trips'\nexport { PayrollResource } from './resources/payroll'\nexport { DepreciationResource } from './resources/depreciation'\nexport { NumberingsResource } from './resources/numberings'\nexport { ExchangeRatesResource } from './resources/exchange-rates'\nexport { BankStatementsResource } from './resources/bank-statements'\nexport { SalesReceiptsResource } from './resources/sales-receipts'\nexport type { paths, components } from './generated/types'\n","import createClientDefault, { type Client } from 'openapi-fetch'\n\n/**\n * `openapi-fetch` ships only a default export, and esbuild's node-mode interop breaks\n * it in our own CommonJS bundle. tsup emits `__toESM(require(\"openapi-fetch\"), 1)`;\n * with `isNodeMode` set, `__toESM` defines `default` as the whole module namespace\n * BEFORE copying the module's own keys, and `__copyProps` skips a key the target\n * already owns — so the real function never lands on `.default`. Every `require()`\n * consumer therefore died on `new JarsClient(...)` with\n * \"(0 , import_openapi_fetch.default) is not a function\", while ESM was fine, which is\n * why the suite (vitest, ESM) never saw it.\n *\n * Under that interop the function is one level further in, on the namespace the\n * default now points at. Unwrap it only when the default is not callable, so the ESM\n * path — where the default IS the function — is untouched. `smoke:cjs` pins this.\n */\ntype CreateClient = typeof createClientDefault\nconst createClient: CreateClient = typeof createClientDefault === 'function'\n ? createClientDefault\n : (createClientDefault as unknown as { default: CreateClient }).default\nimport type { paths } from './generated/types'\nimport { JarsApiError } from './errors'\nimport { PartnersResource } from './resources/partners'\nimport { ProductsResource } from './resources/products'\nimport { InvoicesResource } from './resources/invoices'\nimport { JournalResource } from './resources/journal'\nimport { ReportsResource } from './resources/reports'\nimport { AuditLogsResource } from './resources/audit-logs'\nimport { LookupsResource } from './resources/lookups'\nimport { CashRegistersResource } from './resources/cash-registers'\nimport { ProjectsResource } from './resources/projects'\nimport { ProfessionsResource } from './resources/professions'\nimport { PerDiemRatesResource } from './resources/perdiem-rates'\nimport { PriceListsResource } from './resources/price-lists'\nimport { FixedAssetsResource } from './resources/fixed-assets'\nimport { EmployeesResource } from './resources/employees'\nimport { CashOrdersResource } from './resources/cash-orders'\nimport { BankTransactionsResource } from './resources/bank-transactions'\nimport { BusinessTripsResource } from './resources/business-trips'\nimport { PayrollResource } from './resources/payroll'\nimport { DepreciationResource } from './resources/depreciation'\nimport { NumberingsResource } from './resources/numberings'\nimport { ExchangeRatesResource } from './resources/exchange-rates'\nimport { BankStatementsResource } from './resources/bank-statements'\nimport { SalesReceiptsResource } from './resources/sales-receipts'\n\n/** Default API host. The generated path keys already carry the `/api` prefix. */\nexport const DEFAULT_BASE_URL = 'https://app.jars.lt'\n\nexport type Method = 'get' | 'post' | 'put' | 'patch' | 'delete'\n\nexport interface JarsClientConfig {\n apiKey: string\n baseUrl?: string\n fetch?: typeof fetch\n}\n\nexport interface RequestOptions {\n query?: Record<string, string | number | boolean | undefined>\n body?: unknown\n params?: Record<string, string>\n}\n\ninterface ErrorEnvelope {\n error?: string\n code?: string\n details?: unknown\n}\n\n/** Parse JSON, falling back to the raw string when the body isn't valid JSON. */\nfunction safeJson(text: string): unknown {\n try {\n return JSON.parse(text)\n } catch {\n return text\n }\n}\n\nexport class JarsClient {\n /** Underlying `openapi-fetch` client for advanced, fully-typed use. */\n readonly raw: Client<paths>\n\n readonly partners: PartnersResource\n readonly products: ProductsResource\n readonly invoices: InvoicesResource\n readonly journal: JournalResource\n readonly reports: ReportsResource\n readonly auditLogs: AuditLogsResource\n readonly lookups: LookupsResource\n readonly cashRegisters: CashRegistersResource\n readonly projects: ProjectsResource\n readonly professions: ProfessionsResource\n readonly perDiemRates: PerDiemRatesResource\n readonly priceLists: PriceListsResource\n readonly fixedAssets: FixedAssetsResource\n readonly employees: EmployeesResource\n readonly cashOrders: CashOrdersResource\n readonly bankTransactions: BankTransactionsResource\n readonly businessTrips: BusinessTripsResource\n readonly payroll: PayrollResource\n readonly depreciation: DepreciationResource\n readonly numberings: NumberingsResource\n readonly exchangeRates: ExchangeRatesResource\n readonly bankStatements: BankStatementsResource\n readonly salesReceipts: SalesReceiptsResource\n\n private readonly baseUrl: string\n private readonly authHeader: string\n private readonly fetchImpl: typeof fetch\n\n constructor(config: JarsClientConfig) {\n if (!config?.apiKey) throw new Error('JarsClient: apiKey is required')\n\n this.baseUrl = (config.baseUrl ?? DEFAULT_BASE_URL).replace(/\\/+$/, '')\n this.authHeader = `Bearer ${config.apiKey}`\n this.fetchImpl = config.fetch ?? fetch\n\n this.raw = createClient<paths>({\n baseUrl: this.baseUrl,\n fetch: this.fetchImpl,\n headers: { Authorization: this.authHeader },\n })\n\n this.partners = new PartnersResource(this)\n this.products = new ProductsResource(this)\n this.invoices = new InvoicesResource(this)\n this.journal = new JournalResource(this)\n this.reports = new ReportsResource(this)\n this.auditLogs = new AuditLogsResource(this)\n this.lookups = new LookupsResource(this)\n this.cashRegisters = new CashRegistersResource(this)\n this.projects = new ProjectsResource(this)\n this.professions = new ProfessionsResource(this)\n this.perDiemRates = new PerDiemRatesResource(this)\n this.priceLists = new PriceListsResource(this)\n this.fixedAssets = new FixedAssetsResource(this)\n this.employees = new EmployeesResource(this)\n this.cashOrders = new CashOrdersResource(this)\n this.bankTransactions = new BankTransactionsResource(this)\n this.businessTrips = new BusinessTripsResource(this)\n this.payroll = new PayrollResource(this)\n this.depreciation = new DepreciationResource(this)\n this.numberings = new NumberingsResource(this)\n this.exchangeRates = new ExchangeRatesResource(this)\n this.bankStatements = new BankStatementsResource(this)\n this.salesReceipts = new SalesReceiptsResource(this)\n }\n\n async request<T = unknown>(method: Method, path: string, opts: RequestOptions = {}): Promise<T> {\n const finalPath = opts.params\n ? path.replace(/\\{([^}]+)\\}/g, (_, key: string) => {\n const value = opts.params![key]\n return encodeURIComponent(value ?? `{${key}}`)\n })\n : path\n\n const url = new URL(this.baseUrl + finalPath)\n if (opts.query) {\n for (const [key, value] of Object.entries(opts.query)) {\n if (value !== undefined) url.searchParams.set(key, String(value))\n }\n }\n\n const headers = new Headers({ Authorization: this.authHeader })\n let body: string | FormData | undefined\n if (opts.body !== undefined) {\n const isForm = typeof FormData !== 'undefined' && opts.body instanceof FormData\n if (isForm) {\n // Pass FormData directly — the runtime sets the multipart boundary automatically.\n // Do NOT set content-type; setting it manually strips the boundary parameter.\n body = opts.body as FormData\n } else {\n headers.set('content-type', 'application/json')\n body = JSON.stringify(opts.body)\n }\n }\n\n let res: Response\n try {\n res = await this.fetchImpl(url, { method: method.toUpperCase(), headers, body })\n } catch (cause) {\n throw new JarsApiError({\n status: 0,\n message: cause instanceof Error ? cause.message : 'Network error',\n })\n }\n\n const text = await res.text()\n const parsed = text === '' ? undefined : safeJson(text)\n\n if (!res.ok) {\n const env = (parsed ?? {}) as ErrorEnvelope\n throw new JarsApiError({\n status: res.status,\n message: env.error,\n code: env.code,\n details: env.details,\n })\n }\n\n return parsed as T\n }\n}\n","export interface JarsApiErrorInit {\n status: number\n message?: string\n code?: string\n details?: unknown\n}\n\n/** Thrown for any non-2xx API response or a network/abort failure (status 0). */\nexport class JarsApiError extends Error {\n readonly status: number\n readonly code?: string\n readonly details?: unknown\n\n constructor(init: JarsApiErrorInit) {\n super(init.message ?? 'JARS API request failed')\n this.name = 'JarsApiError'\n this.status = init.status\n this.code = init.code\n this.details = init.details\n Object.setPrototypeOf(this, JarsApiError.prototype)\n }\n}\n","import type { RequestOptions } from '../client'\n\n/**\n * List query parameters: the documented common params (search/sort/limit)\n * plus arbitrary passthrough field filters supported by the API.\n */\nexport interface ListParams {\n search?: string\n sort?: string\n limit?: number\n [filter: string]: string | number | boolean | undefined\n}\n\nexport function toQuery(params?: ListParams): RequestOptions['query'] {\n return params as RequestOptions['query']\n}\n","import type { JarsClient } from '../client'\nimport { type ListParams, toQuery } from './shared'\n\nexport type { ListParams } from './shared'\n\nexport class PartnersResource {\n constructor(private readonly client: JarsClient) {}\n\n list<T = unknown[]>(params?: ListParams): Promise<T> {\n return this.client.request<T>('get', '/api/partners', { query: toQuery(params) })\n }\n\n get<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('get', '/api/partners/{id}', { params: { id } })\n }\n\n create<T = unknown>(body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('post', '/api/partners', { body })\n }\n\n update<T = unknown>(id: string, body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('put', '/api/partners/{id}', { params: { id }, body })\n }\n\n remove<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('delete', '/api/partners/{id}', { params: { id } })\n }\n}\n","import type { JarsClient } from '../client'\nimport { type ListParams, toQuery } from './shared'\n\nexport class ProductsResource {\n constructor(private readonly client: JarsClient) {}\n\n list<T = unknown[]>(params?: ListParams): Promise<T> {\n return this.client.request<T>('get', '/api/products', { query: toQuery(params) })\n }\n\n get<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('get', '/api/products/{id}', { params: { id } })\n }\n\n create<T = unknown>(body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('post', '/api/products', { body })\n }\n\n update<T = unknown>(id: string, body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('put', '/api/products/{id}', { params: { id }, body })\n }\n\n remove<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('delete', '/api/products/{id}', { params: { id } })\n }\n}\n","import type { JarsClient } from '../client'\nimport { type ListParams, toQuery } from './shared'\n\nexport class InvoicesResource {\n constructor(private readonly client: JarsClient) {}\n\n list<T = unknown[]>(params?: ListParams): Promise<T> {\n return this.client.request<T>('get', '/api/invoices', { query: toQuery(params) })\n }\n\n get<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('get', '/api/invoices/{id}', { params: { id } })\n }\n\n create<T = unknown>(body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('post', '/api/invoices', { body })\n }\n\n update<T = unknown>(id: string, body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('put', '/api/invoices/{id}', { params: { id }, body })\n }\n\n remove<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('delete', '/api/invoices/{id}', { params: { id } })\n }\n\n post<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('post', '/api/invoices/{id}/post', { params: { id } })\n }\n\n unpost<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('post', '/api/invoices/{id}/unpost', { params: { id } })\n }\n\n cancel<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('post', '/api/invoices/{id}/cancel', { params: { id } })\n }\n\n setExternalStatus<T = unknown>(id: string, externalStatus: string | null): Promise<T> {\n return this.client.request<T>('patch', '/api/invoices/{id}/external-status', {\n params: { id },\n body: { externalStatus },\n })\n }\n\n postingPreview<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('get', '/api/invoices/{id}/posting-preview', { params: { id } })\n }\n}\n","import type { JarsClient } from '../client'\nimport { type ListParams, toQuery } from './shared'\n\nexport class JournalResource {\n constructor(private readonly client: JarsClient) {}\n\n list<T = unknown[]>(params?: ListParams): Promise<T> {\n return this.client.request<T>('get', '/api/journal', { query: toQuery(params) })\n }\n\n get<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('get', '/api/journal/{id}', { params: { id } })\n }\n\n create<T = unknown>(body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('post', '/api/journal', { body })\n }\n}\n","import type { JarsClient } from '../client'\n\nexport type ReportParams = Record<string, string | number | boolean | undefined>\n\nexport class ReportsResource {\n constructor(private readonly client: JarsClient) {}\n trialBalance<T = unknown>(params?: ReportParams): Promise<T> {\n return this.client.request<T>('get', '/api/reports/trial-balance', { query: params })\n }\n /**\n * Chronological postings for one account. `from` and `to` are required;\n * `account` is optional but omitting it asks for every account.\n *\n * Rejects with 400 `REPORT_TOO_BROAD` when the query would return more than\n * 10,000 lines — the result is never truncated, because the caller computes a\n * running balance across these lines. Narrow by account or by period.\n */\n generalLedger<T = unknown>(params?: ReportParams): Promise<T> {\n return this.client.request<T>('get', '/api/reports/general-ledger', { query: params })\n }\n accountAnalytics<T = unknown>(params?: ReportParams): Promise<T> {\n return this.client.request<T>('get', '/api/reports/account-analytics', { query: params })\n }\n /**\n * Settlement balances per partner.\n *\n * Returns `{ rows, totals, rowCount, unfilteredRowCount, truncated }`.\n * `totals` are computed over the full set — before the `nonZeroOnly` filter\n * and before the row cap — so they tie out whatever `rows` contains.\n *\n * `nonZeroOnly` defaults to true: rows whose closing balance is zero are\n * omitted. Pass `nonZeroOnly: false` for the complete list.\n */\n partnerBalance<T = unknown>(params?: ReportParams): Promise<T> {\n return this.client.request<T>('get', '/api/reports/partner-balance', { query: params })\n }\n /** Salary/advance balances per employee. `from` and `to` are required. */\n employeeBalance<T = unknown>(params?: ReportParams): Promise<T> {\n return this.client.request<T>('get', '/api/reports/employee-balance', { query: params })\n }\n /**\n * Cash book for one register: opening balance plus posted cash movements.\n *\n * Rejects with 400 `REPORT_TOO_BROAD` above 10,000 lines, for the same reason\n * as `generalLedger`.\n */\n cashBook<T = unknown>(params?: ReportParams): Promise<T> {\n return this.client.request<T>('get', '/api/reports/cash-book', { query: params })\n }\n /** Balance sheet + P&L. `year` is required; pass `to` for an interim period. */\n financialStatements<T = unknown>(params?: ReportParams): Promise<T> {\n return this.client.request<T>('get', '/api/reports/financial-statements', { query: params })\n }\n isafExport<T = unknown>(params?: ReportParams): Promise<T> {\n return this.client.request<T>('get', '/api/reports/isaf-export', { query: params })\n }\n}\n","import { type ListParams, toQuery } from './shared'\nimport type { JarsClient } from '../client'\n\nexport class AuditLogsResource {\n constructor(private readonly client: JarsClient) {}\n list<T = unknown[]>(params?: ListParams): Promise<T> {\n return this.client.request<T>('get', '/api/audit-logs', { query: toQuery(params) })\n }\n get<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('get', '/api/audit-logs/{id}', { params: { id } })\n }\n}\n","import { type ListParams, toQuery } from './shared'\nimport type { JarsClient } from '../client'\n\n/**\n * Reference data (accounts, VAT codes, units, operation templates) is\n * read-mostly. For MVP the facade exposes LIST methods only; create/update/\n * delete remain available through the raw client.\n */\nexport class LookupsResource {\n constructor(private readonly client: JarsClient) {}\n\n accounts<T = unknown[]>(params?: ListParams): Promise<T> {\n return this.client.request<T>('get', '/api/accounts', { query: toQuery(params) })\n }\n\n vatCodes<T = unknown[]>(params?: ListParams): Promise<T> {\n return this.client.request<T>('get', '/api/vat-codes', { query: toQuery(params) })\n }\n\n units<T = unknown[]>(params?: ListParams): Promise<T> {\n return this.client.request<T>('get', '/api/units', { query: toQuery(params) })\n }\n\n templates<T = unknown[]>(params?: ListParams): Promise<T> {\n return this.client.request<T>('get', '/api/templates', { query: toQuery(params) })\n }\n}\n","import type { JarsClient } from '../client'\nimport { type ListParams, toQuery } from './shared'\n\nexport class CashRegistersResource {\n constructor(private readonly client: JarsClient) {}\n\n list<T = unknown[]>(params?: ListParams): Promise<T> {\n return this.client.request<T>('get', '/api/cash-registers', { query: toQuery(params) })\n }\n\n create<T = unknown>(body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('post', '/api/cash-registers', { body })\n }\n\n update<T = unknown>(id: string, body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('put', '/api/cash-registers/{id}', { params: { id }, body })\n }\n\n remove<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('delete', '/api/cash-registers/{id}', { params: { id } })\n }\n}\n","import type { JarsClient } from '../client'\nimport { type ListParams, toQuery } from './shared'\n\nexport class ProjectsResource {\n constructor(private readonly client: JarsClient) {}\n\n list<T = unknown[]>(params?: ListParams): Promise<T> {\n return this.client.request<T>('get', '/api/projects', { query: toQuery(params) })\n }\n\n get<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('get', '/api/projects/{id}', { params: { id } })\n }\n\n create<T = unknown>(body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('post', '/api/projects', { body })\n }\n\n update<T = unknown>(id: string, body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('put', '/api/projects/{id}', { params: { id }, body })\n }\n\n remove<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('delete', '/api/projects/{id}', { params: { id } })\n }\n}\n","import type { JarsClient } from '../client'\nimport { type ListParams, toQuery } from './shared'\n\nexport class ProfessionsResource {\n constructor(private readonly client: JarsClient) {}\n\n list<T = unknown[]>(params?: ListParams): Promise<T> {\n return this.client.request<T>('get', '/api/professions', { query: toQuery(params) })\n }\n\n get<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('get', '/api/professions/{id}', { params: { id } })\n }\n\n create<T = unknown>(body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('post', '/api/professions', { body })\n }\n\n update<T = unknown>(id: string, body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('put', '/api/professions/{id}', { params: { id }, body })\n }\n\n remove<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('delete', '/api/professions/{id}', { params: { id } })\n }\n}\n","import type { JarsClient } from '../client'\nimport { type ListParams, toQuery } from './shared'\n\nexport class PerDiemRatesResource {\n constructor(private readonly client: JarsClient) {}\n\n list<T = unknown[]>(params?: ListParams): Promise<T> {\n return this.client.request<T>('get', '/api/perdiem-rates', { query: toQuery(params) })\n }\n\n create<T = unknown>(body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('post', '/api/perdiem-rates', { body })\n }\n\n update<T = unknown>(id: string, body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('put', '/api/perdiem-rates/{id}', { params: { id }, body })\n }\n\n remove<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('delete', '/api/perdiem-rates/{id}', { params: { id } })\n }\n}\n","import type { JarsClient } from '../client'\nimport { type ListParams, toQuery } from './shared'\n\nexport class PriceListsResource {\n constructor(private readonly client: JarsClient) {}\n\n list<T = unknown[]>(params?: ListParams): Promise<T> {\n return this.client.request<T>('get', '/api/price-lists', { query: toQuery(params) })\n }\n\n get<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('get', '/api/price-lists/{id}', { params: { id } })\n }\n\n create<T = unknown>(body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('post', '/api/price-lists', { body })\n }\n\n update<T = unknown>(id: string, body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('put', '/api/price-lists/{id}', { params: { id }, body })\n }\n\n remove<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('delete', '/api/price-lists/{id}', { params: { id } })\n }\n}\n","import type { JarsClient } from '../client'\nimport { type ListParams, toQuery } from './shared'\n\nexport class FixedAssetsResource {\n constructor(private readonly client: JarsClient) {}\n\n list<T = unknown[]>(params?: ListParams): Promise<T> {\n return this.client.request<T>('get', '/api/fixed-assets', { query: toQuery(params) })\n }\n\n get<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('get', '/api/fixed-assets/{id}', { params: { id } })\n }\n\n create<T = unknown>(body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('post', '/api/fixed-assets', { body })\n }\n\n update<T = unknown>(id: string, body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('put', '/api/fixed-assets/{id}', { params: { id }, body })\n }\n\n remove<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('delete', '/api/fixed-assets/{id}', { params: { id } })\n }\n\n dispose<T = unknown>(id: string, body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('post', '/api/fixed-assets/{id}/dispose', { params: { id }, body })\n }\n}\n","import type { JarsClient } from '../client'\nimport { type ListParams, toQuery } from './shared'\n\nexport class EmployeesResource {\n constructor(private readonly client: JarsClient) {}\n\n list<T = unknown[]>(params?: ListParams): Promise<T> {\n return this.client.request<T>('get', '/api/employees', { query: toQuery(params) })\n }\n\n get<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('get', '/api/employees/{id}', { params: { id } })\n }\n\n create<T = unknown>(body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('post', '/api/employees', { body })\n }\n\n update<T = unknown>(id: string, body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('put', '/api/employees/{id}', { params: { id }, body })\n }\n\n remove<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('delete', '/api/employees/{id}', { params: { id } })\n }\n\n nextCode<T = unknown>(): Promise<T> {\n return this.client.request<T>('get', '/api/employees/next-code')\n }\n\n verifyPin<T = unknown>(body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('post', '/api/employees/verify-pin', { body })\n }\n}\n","import type { JarsClient } from '../client'\nimport { type ListParams, toQuery } from './shared'\n\nexport class CashOrdersResource {\n constructor(private readonly client: JarsClient) {}\n\n list<T = unknown[]>(params?: ListParams): Promise<T> {\n return this.client.request<T>('get', '/api/cash-orders', { query: toQuery(params) })\n }\n\n get<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('get', '/api/cash-orders/{id}', { params: { id } })\n }\n\n create<T = unknown>(body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('post', '/api/cash-orders', { body })\n }\n\n update<T = unknown>(id: string, body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('put', '/api/cash-orders/{id}', { params: { id }, body })\n }\n\n remove<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('delete', '/api/cash-orders/{id}', { params: { id } })\n }\n\n setExternalStatus<T = unknown>(id: string, body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('patch', '/api/cash-orders/{id}/external-status', { params: { id }, body })\n }\n\n post<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('post', '/api/cash-orders/{id}/post', { params: { id } })\n }\n\n unpost<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('post', '/api/cash-orders/{id}/unpost', { params: { id } })\n }\n\n fiscalize<T = unknown>(id: string, body?: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('post', '/api/cash-orders/{id}/fiscalize', { params: { id }, body: body ?? {} })\n }\n}\n","import type { JarsClient } from '../client'\nimport { type ListParams, toQuery } from './shared'\n\nexport class BankTransactionsResource {\n constructor(private readonly client: JarsClient) {}\n\n list<T = unknown[]>(params?: ListParams): Promise<T> {\n return this.client.request<T>('get', '/api/bank-transactions', { query: toQuery(params) })\n }\n\n get<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('get', '/api/bank-transactions/{id}', { params: { id } })\n }\n\n create<T = unknown>(body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('post', '/api/bank-transactions', { body })\n }\n\n update<T = unknown>(id: string, body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('put', '/api/bank-transactions/{id}', { params: { id }, body })\n }\n\n /**\n * Link the transaction to invoices (payment matching). Separate from `update`\n * because it works at any status — `update` refuses a posted transaction,\n * while allocations must stay editable after posting (a prepayment is posted\n * before its invoice exists).\n */\n setAllocations<T = unknown>(id: string, body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('put', '/api/bank-transactions/{id}/allocations', { params: { id }, body })\n }\n\n setExternalStatus<T = unknown>(id: string, body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('patch', '/api/bank-transactions/{id}/external-status', { params: { id }, body })\n }\n\n post<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('post', '/api/bank-transactions/{id}/post', { params: { id } })\n }\n\n unpost<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('post', '/api/bank-transactions/{id}/unpost', { params: { id } })\n }\n}\n","import type { JarsClient } from '../client'\nimport { type ListParams, toQuery } from './shared'\n\nexport class BusinessTripsResource {\n constructor(private readonly client: JarsClient) {}\n\n list<T = unknown[]>(params?: ListParams): Promise<T> {\n return this.client.request<T>('get', '/api/business-trips', { query: toQuery(params) })\n }\n\n create<T = unknown>(body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('post', '/api/business-trips', { body })\n }\n\n update<T = unknown>(id: string, body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('put', '/api/business-trips/{id}', { params: { id }, body })\n }\n\n remove<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('delete', '/api/business-trips/{id}', { params: { id } })\n }\n\n postAdvance<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('post', '/api/business-trips/{id}/post-advance', { params: { id } })\n }\n\n postSettlement<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('post', '/api/business-trips/{id}/post-settlement', { params: { id } })\n }\n\n unpost<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('post', '/api/business-trips/{id}/unpost', { params: { id } })\n }\n}\n","import type { JarsClient } from '../client'\nimport { type ListParams, toQuery } from './shared'\n\nexport class PayrollResource {\n constructor(private readonly client: JarsClient) {}\n\n list<T = unknown[]>(params?: ListParams): Promise<T> {\n return this.client.request<T>('get', '/api/payroll', { query: toQuery(params) })\n }\n\n preview<T = unknown>(body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('post', '/api/payroll/preview', { body })\n }\n\n post<T = unknown>(body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('post', '/api/payroll/post', { body })\n }\n\n unpost<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('post', '/api/payroll/{id}/unpost', { params: { id } })\n }\n}\n","import type { JarsClient } from '../client'\nimport { type ListParams, toQuery } from './shared'\n\nexport class DepreciationResource {\n constructor(private readonly client: JarsClient) {}\n\n list<T = unknown[]>(params?: ListParams): Promise<T> {\n return this.client.request<T>('get', '/api/depreciation', { query: toQuery(params) })\n }\n\n preview<T = unknown>(body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('post', '/api/depreciation/preview', { body })\n }\n\n post<T = unknown>(body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('post', '/api/depreciation/post', { body })\n }\n\n unpost<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('post', '/api/depreciation/{id}/unpost', { params: { id } })\n }\n}\n","import type { JarsClient } from '../client'\nimport { type ListParams, toQuery } from './shared'\n\nexport class NumberingsResource {\n constructor(private readonly client: JarsClient) {}\n\n list<T = unknown[]>(params?: ListParams): Promise<T> {\n return this.client.request<T>('get', '/api/numberings', { query: toQuery(params) })\n }\n\n update<T = unknown>(prefix: string, body: Record<string, unknown>): Promise<T> {\n return this.client.request<T>('put', '/api/numberings/{prefix}', { params: { prefix }, body })\n }\n}\n","import type { JarsClient } from '../client'\nimport { type ListParams, toQuery } from './shared'\n\nexport class ExchangeRatesResource {\n constructor(private readonly client: JarsClient) {}\n\n list<T = unknown[]>(params?: ListParams): Promise<T> {\n return this.client.request<T>('get', '/api/exchange-rates', { query: toQuery(params) })\n }\n}\n","import type { JarsClient } from '../client'\nimport { type ListParams, toQuery } from './shared'\n\nexport class BankStatementsResource {\n constructor(private readonly client: JarsClient) {}\n\n list<T = unknown[]>(params?: ListParams): Promise<T> {\n return this.client.request<T>('get', '/api/bank-statements', { query: toQuery(params) })\n }\n\n remove<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('delete', '/api/bank-statements/{id}', { params: { id } })\n }\n\n detect<T = unknown>(file: Blob | File, filename?: string): Promise<T> {\n const fd = new FormData()\n fd.append('file', file, filename)\n return this.client.request<T>('post', '/api/bank-statements/detect', { body: fd })\n }\n\n import<T = unknown>(file: Blob | File, fields?: Record<string, string>, filename?: string): Promise<T> {\n const fd = new FormData()\n fd.append('file', file, filename)\n if (fields) {\n for (const [key, value] of Object.entries(fields)) {\n fd.append(key, value)\n }\n }\n return this.client.request<T>('post', '/api/bank-statements/import', { body: fd })\n }\n}\n","import type { JarsClient } from '../client'\n\n/**\n * Batch ingest for sales booked in an EXTERNAL system: a POS/ERP that issues\n * and fiscalises its own documents, and only needs JARS to book the result.\n * Mirrors `POST /api/sales/receipts` (`apps/api/src/routes/sales-receipts.ts`):\n * idempotent on `externalCode` (a repeat item comes back `duplicate`, HTTP\n * 200, never a 409) and partial-success (one malformed item never fails the\n * rest of the batch) — so the response is one result per item, positional\n * with the request order, never a single pass/fail for the whole call.\n */\nexport class SalesReceiptsResource {\n constructor(private readonly client: JarsClient) {}\n\n /**\n * Books a batch of external sales as CashOrder RECEIPT (DRAFT) documents.\n * Returns `{ results: [...] }`, one entry per item — `'created' | 'duplicate' | 'error'` —\n * positional with `items`.\n */\n ingest<T = unknown>(items: Record<string, unknown>[]): Promise<T> {\n return this.client.request<T>('post', '/api/sales/receipts', { body: { items } })\n }\n}\n"],"mappings":"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","names":["createClientDefault"]}