@jars-lt/jars-app-sdk 0.2.0 → 0.3.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/README.md +9 -6
- package/dist/index.cjs +133 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +10327 -1426
- package/dist/index.d.ts +10327 -1426
- package/dist/index.js +131 -2
- package/dist/index.js.map +1 -1
- package/package.json +15 -4
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// src/client.ts
|
|
2
|
-
import
|
|
2
|
+
import createClientDefault from "openapi-fetch";
|
|
3
3
|
|
|
4
4
|
// src/errors.ts
|
|
5
5
|
var JarsApiError = class _JarsApiError extends Error {
|
|
@@ -41,6 +41,35 @@ var PartnersResource = class {
|
|
|
41
41
|
remove(id) {
|
|
42
42
|
return this.client.request("delete", "/api/partners/{id}", { params: { id } });
|
|
43
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* What merging `sourceId` into `id` would move and fill, without moving or
|
|
46
|
+
* filling any of it. An integration that creates partners from another
|
|
47
|
+
* system is the caller most likely to produce a duplicate pair, which is why
|
|
48
|
+
* these two are wrapped rather than allowlisted.
|
|
49
|
+
*/
|
|
50
|
+
mergePreview(id, sourceId) {
|
|
51
|
+
return this.client.request("get", "/api/partners/{id}/merge-preview", {
|
|
52
|
+
params: { id },
|
|
53
|
+
query: { sourceId }
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Re-points every document of `sourceId` onto `id`, fills the fields `id`
|
|
58
|
+
* leaves empty, and DELETES `sourceId`. Refused (409) when the two carry
|
|
59
|
+
* different registration codes — those are two legal entities, not a
|
|
60
|
+
* duplicate.
|
|
61
|
+
*
|
|
62
|
+
* A 404 on a RETRY means the donor is already gone, which is what a merge
|
|
63
|
+
* that succeeded looks like from a client whose response was lost: documents
|
|
64
|
+
* move first and the donor is deleted last, so a second call finds no
|
|
65
|
+
* references and a missing card. Treat it as done, not as failed.
|
|
66
|
+
*/
|
|
67
|
+
merge(id, sourceId) {
|
|
68
|
+
return this.client.request("post", "/api/partners/{id}/merge", {
|
|
69
|
+
params: { id },
|
|
70
|
+
body: { sourceId }
|
|
71
|
+
});
|
|
72
|
+
}
|
|
44
73
|
};
|
|
45
74
|
|
|
46
75
|
// src/resources/products.ts
|
|
@@ -100,6 +129,9 @@ var InvoicesResource = class {
|
|
|
100
129
|
body: { externalStatus }
|
|
101
130
|
});
|
|
102
131
|
}
|
|
132
|
+
postingPreview(id) {
|
|
133
|
+
return this.client.request("get", "/api/invoices/{id}/posting-preview", { params: { id } });
|
|
134
|
+
}
|
|
103
135
|
};
|
|
104
136
|
|
|
105
137
|
// src/resources/journal.ts
|
|
@@ -126,18 +158,64 @@ var ReportsResource = class {
|
|
|
126
158
|
trialBalance(params) {
|
|
127
159
|
return this.client.request("get", "/api/reports/trial-balance", { query: params });
|
|
128
160
|
}
|
|
161
|
+
/**
|
|
162
|
+
* Chronological postings for one account. `from` and `to` are required;
|
|
163
|
+
* `account` is optional but omitting it asks for every account.
|
|
164
|
+
*
|
|
165
|
+
* Rejects with 400 `REPORT_TOO_BROAD` when the query would return more than
|
|
166
|
+
* 10,000 lines — the result is never truncated, because the caller computes a
|
|
167
|
+
* running balance across these lines. Narrow by account or by period.
|
|
168
|
+
*/
|
|
129
169
|
generalLedger(params) {
|
|
130
170
|
return this.client.request("get", "/api/reports/general-ledger", { query: params });
|
|
131
171
|
}
|
|
172
|
+
accountAnalytics(params) {
|
|
173
|
+
return this.client.request("get", "/api/reports/account-analytics", { query: params });
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Settlement balances per partner.
|
|
177
|
+
*
|
|
178
|
+
* Returns `{ rows, totals, rowCount, unfilteredRowCount, truncated }`.
|
|
179
|
+
* `totals` are computed over the full set — before the `nonZeroOnly` filter
|
|
180
|
+
* and before the row cap — so they tie out whatever `rows` contains.
|
|
181
|
+
*
|
|
182
|
+
* `nonZeroOnly` defaults to true: rows whose closing balance is zero are
|
|
183
|
+
* omitted. Pass `nonZeroOnly: false` for the complete list.
|
|
184
|
+
*/
|
|
132
185
|
partnerBalance(params) {
|
|
133
186
|
return this.client.request("get", "/api/reports/partner-balance", { query: params });
|
|
134
187
|
}
|
|
188
|
+
/** Salary/advance balances per employee. `from` and `to` are required. */
|
|
189
|
+
employeeBalance(params) {
|
|
190
|
+
return this.client.request("get", "/api/reports/employee-balance", { query: params });
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Cash book for one register: opening balance plus posted cash movements.
|
|
194
|
+
*
|
|
195
|
+
* Rejects with 400 `REPORT_TOO_BROAD` above 10,000 lines, for the same reason
|
|
196
|
+
* as `generalLedger`.
|
|
197
|
+
*/
|
|
135
198
|
cashBook(params) {
|
|
136
199
|
return this.client.request("get", "/api/reports/cash-book", { query: params });
|
|
137
200
|
}
|
|
201
|
+
/** Balance sheet + P&L. `year` is required; pass `to` for an interim period. */
|
|
202
|
+
financialStatements(params) {
|
|
203
|
+
return this.client.request("get", "/api/reports/financial-statements", { query: params });
|
|
204
|
+
}
|
|
138
205
|
isafExport(params) {
|
|
139
206
|
return this.client.request("get", "/api/reports/isaf-export", { query: params });
|
|
140
207
|
}
|
|
208
|
+
/**
|
|
209
|
+
* What the month's i.SAF file will contain, and which POSTED invoices reach
|
|
210
|
+
* neither register — `SUPPLIER_NOT_VAT_REGISTERED` (expected: a Lithuanian
|
|
211
|
+
* supplier with no PVM code writes no PVM invoice), `NO_PARTNER` or
|
|
212
|
+
* `NO_VAT_SUMMARY` (both data defects).
|
|
213
|
+
*
|
|
214
|
+
* Same one-calendar-month period rule as `isafExport`.
|
|
215
|
+
*/
|
|
216
|
+
isafExportPreview(params) {
|
|
217
|
+
return this.client.request("get", "/api/reports/isaf-export/preview", { query: params });
|
|
218
|
+
}
|
|
141
219
|
};
|
|
142
220
|
|
|
143
221
|
// src/resources/audit-logs.ts
|
|
@@ -380,6 +458,15 @@ var BankTransactionsResource = class {
|
|
|
380
458
|
update(id, body) {
|
|
381
459
|
return this.client.request("put", "/api/bank-transactions/{id}", { params: { id }, body });
|
|
382
460
|
}
|
|
461
|
+
/**
|
|
462
|
+
* Link the transaction to invoices (payment matching). Separate from `update`
|
|
463
|
+
* because it works at any status — `update` refuses a posted transaction,
|
|
464
|
+
* while allocations must stay editable after posting (a prepayment is posted
|
|
465
|
+
* before its invoice exists).
|
|
466
|
+
*/
|
|
467
|
+
setAllocations(id, body) {
|
|
468
|
+
return this.client.request("put", "/api/bank-transactions/{id}/allocations", { params: { id }, body });
|
|
469
|
+
}
|
|
383
470
|
setExternalStatus(id, body) {
|
|
384
471
|
return this.client.request("patch", "/api/bank-transactions/{id}/external-status", { params: { id }, body });
|
|
385
472
|
}
|
|
@@ -389,6 +476,17 @@ var BankTransactionsResource = class {
|
|
|
389
476
|
unpost(id) {
|
|
390
477
|
return this.client.request("post", "/api/bank-transactions/{id}/unpost", { params: { id } });
|
|
391
478
|
}
|
|
479
|
+
/**
|
|
480
|
+
* Replace a posted transaction's journal entry that no longer matches its
|
|
481
|
+
* allocations (`postingStale`) — after `setAllocations` on a posted
|
|
482
|
+
* transaction — with one built from them: a storno dated as the old entry,
|
|
483
|
+
* then a post. Answers `reposted: false` and writes nothing when the entry
|
|
484
|
+
* already matches, and refuses before the storno when the new entry cannot
|
|
485
|
+
* be posted.
|
|
486
|
+
*/
|
|
487
|
+
repost(id) {
|
|
488
|
+
return this.client.request("post", "/api/bank-transactions/{id}/repost", { params: { id } });
|
|
489
|
+
}
|
|
392
490
|
};
|
|
393
491
|
|
|
394
492
|
// src/resources/business-trips.ts
|
|
@@ -478,6 +576,18 @@ var ExchangeRatesResource = class {
|
|
|
478
576
|
list(params) {
|
|
479
577
|
return this.client.request("get", "/api/exchange-rates", { query: toQuery(params) });
|
|
480
578
|
}
|
|
579
|
+
/**
|
|
580
|
+
* One currency's Bank of Lithuania rate for one day — the rate a
|
|
581
|
+
* foreign-currency invoice import books. `rateDate` in the answer is the table
|
|
582
|
+
* it was read from, an earlier day when `date` had none; `pending` is true
|
|
583
|
+
* while `date`'s own table is still to come (it is loaded at 15:30 UTC on the
|
|
584
|
+
* day), so the answer will change.
|
|
585
|
+
*/
|
|
586
|
+
rate(params) {
|
|
587
|
+
return this.client.request("get", "/api/exchange-rates/rate", {
|
|
588
|
+
query: { currency: params.currency, date: params.date }
|
|
589
|
+
});
|
|
590
|
+
}
|
|
481
591
|
};
|
|
482
592
|
|
|
483
593
|
// src/resources/bank-statements.ts
|
|
@@ -508,7 +618,23 @@ var BankStatementsResource = class {
|
|
|
508
618
|
}
|
|
509
619
|
};
|
|
510
620
|
|
|
621
|
+
// src/resources/sales-receipts.ts
|
|
622
|
+
var SalesReceiptsResource = class {
|
|
623
|
+
constructor(client) {
|
|
624
|
+
this.client = client;
|
|
625
|
+
}
|
|
626
|
+
/**
|
|
627
|
+
* Books a batch of external sales as CashOrder RECEIPT (DRAFT) documents.
|
|
628
|
+
* Returns `{ results: [...] }`, one entry per item — `'created' | 'duplicate' | 'error'` —
|
|
629
|
+
* positional with `items`.
|
|
630
|
+
*/
|
|
631
|
+
ingest(items) {
|
|
632
|
+
return this.client.request("post", "/api/sales/receipts", { body: { items } });
|
|
633
|
+
}
|
|
634
|
+
};
|
|
635
|
+
|
|
511
636
|
// src/client.ts
|
|
637
|
+
var createClient = typeof createClientDefault === "function" ? createClientDefault : createClientDefault.default;
|
|
512
638
|
var DEFAULT_BASE_URL = "https://app.jars.lt";
|
|
513
639
|
function safeJson(text) {
|
|
514
640
|
try {
|
|
@@ -542,6 +668,7 @@ var JarsClient = class {
|
|
|
542
668
|
numberings;
|
|
543
669
|
exchangeRates;
|
|
544
670
|
bankStatements;
|
|
671
|
+
salesReceipts;
|
|
545
672
|
baseUrl;
|
|
546
673
|
authHeader;
|
|
547
674
|
fetchImpl;
|
|
@@ -577,6 +704,7 @@ var JarsClient = class {
|
|
|
577
704
|
this.numberings = new NumberingsResource(this);
|
|
578
705
|
this.exchangeRates = new ExchangeRatesResource(this);
|
|
579
706
|
this.bankStatements = new BankStatementsResource(this);
|
|
707
|
+
this.salesReceipts = new SalesReceiptsResource(this);
|
|
580
708
|
}
|
|
581
709
|
async request(method, path, opts = {}) {
|
|
582
710
|
const finalPath = opts.params ? path.replace(/\{([^}]+)\}/g, (_, key) => {
|
|
@@ -648,6 +776,7 @@ export {
|
|
|
648
776
|
ProductsResource,
|
|
649
777
|
ProfessionsResource,
|
|
650
778
|
ProjectsResource,
|
|
651
|
-
ReportsResource
|
|
779
|
+
ReportsResource,
|
|
780
|
+
SalesReceiptsResource
|
|
652
781
|
};
|
|
653
782
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../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"],"sourcesContent":["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'\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'\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\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 }\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","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","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 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"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../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":["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 /**\n * What merging `sourceId` into `id` would move and fill, without moving or\n * filling any of it. An integration that creates partners from another\n * system is the caller most likely to produce a duplicate pair, which is why\n * these two are wrapped rather than allowlisted.\n */\n mergePreview<T = unknown>(id: string, sourceId: string): Promise<T> {\n return this.client.request<T>('get', '/api/partners/{id}/merge-preview', {\n params: { id },\n query: { sourceId },\n })\n }\n\n /**\n * Re-points every document of `sourceId` onto `id`, fills the fields `id`\n * leaves empty, and DELETES `sourceId`. Refused (409) when the two carry\n * different registration codes — those are two legal entities, not a\n * duplicate.\n *\n * A 404 on a RETRY means the donor is already gone, which is what a merge\n * that succeeded looks like from a client whose response was lost: documents\n * move first and the donor is deleted last, so a second call finds no\n * references and a missing card. Treat it as done, not as failed.\n */\n merge<T = unknown>(id: string, sourceId: string): Promise<T> {\n return this.client.request<T>('post', '/api/partners/{id}/merge', {\n params: { id },\n body: { sourceId },\n })\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 * What the month's i.SAF file will contain, and which POSTED invoices reach\n * neither register — `SUPPLIER_NOT_VAT_REGISTERED` (expected: a Lithuanian\n * supplier with no PVM code writes no PVM invoice), `NO_PARTNER` or\n * `NO_VAT_SUMMARY` (both data defects).\n *\n * Same one-calendar-month period rule as `isafExport`.\n */\n isafExportPreview<T = unknown>(params?: ReportParams): Promise<T> {\n return this.client.request<T>('get', '/api/reports/isaf-export/preview', { 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 /**\n * Replace a posted transaction's journal entry that no longer matches its\n * allocations (`postingStale`) — after `setAllocations` on a posted\n * transaction — with one built from them: a storno dated as the old entry,\n * then a post. Answers `reposted: false` and writes nothing when the entry\n * already matches, and refuses before the storno when the new entry cannot\n * be posted.\n */\n repost<T = unknown>(id: string): Promise<T> {\n return this.client.request<T>('post', '/api/bank-transactions/{id}/repost', { 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 interface ExchangeRateOnDateParams {\n /** ISO 4217 code, e.g. `USD`. */\n currency: string\n /** `YYYY-MM-DD`. */\n date: string\n}\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 /**\n * One currency's Bank of Lithuania rate for one day — the rate a\n * foreign-currency invoice import books. `rateDate` in the answer is the table\n * it was read from, an earlier day when `date` had none; `pending` is true\n * while `date`'s own table is still to come (it is loaded at 15:30 UTC on the\n * day), so the answer will change.\n */\n rate<T = unknown>(params: ExchangeRateOnDateParams): Promise<T> {\n return this.client.request<T>('get', '/api/exchange-rates/rate', {\n query: { currency: params.currency, date: params.date },\n })\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":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jars-lt/jars-app-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Official TypeScript SDK for the JARS Apskaita accounting API",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -19,7 +19,10 @@
|
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
},
|
|
22
|
-
"files": [
|
|
22
|
+
"files": [
|
|
23
|
+
"dist",
|
|
24
|
+
"README.md"
|
|
25
|
+
],
|
|
23
26
|
"sideEffects": false,
|
|
24
27
|
"scripts": {
|
|
25
28
|
"generate": "tsx scripts/generate.ts",
|
|
@@ -29,9 +32,17 @@
|
|
|
29
32
|
"clean": "rm -rf dist",
|
|
30
33
|
"typecheck": "tsc --noEmit",
|
|
31
34
|
"test": "vitest run",
|
|
32
|
-
"prepublishOnly": "pnpm build"
|
|
35
|
+
"prepublishOnly": "pnpm build",
|
|
36
|
+
"smoke:cjs": "node scripts/smoke-cjs.cjs"
|
|
33
37
|
},
|
|
34
|
-
"keywords": [
|
|
38
|
+
"keywords": [
|
|
39
|
+
"jars",
|
|
40
|
+
"apskaita",
|
|
41
|
+
"accounting",
|
|
42
|
+
"lithuania",
|
|
43
|
+
"api",
|
|
44
|
+
"sdk"
|
|
45
|
+
],
|
|
35
46
|
"author": "UAB Sistemium",
|
|
36
47
|
"homepage": "https://app.jars.lt",
|
|
37
48
|
"dependencies": {
|