@jars-lt/jars-app-sdk 0.1.0 → 0.2.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 +26 -1
- package/dist/index.cjs +403 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +6026 -118
- package/dist/index.d.ts +6026 -118
- package/dist/index.js +388 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -172,6 +172,342 @@ var LookupsResource = class {
|
|
|
172
172
|
}
|
|
173
173
|
};
|
|
174
174
|
|
|
175
|
+
// src/resources/cash-registers.ts
|
|
176
|
+
var CashRegistersResource = class {
|
|
177
|
+
constructor(client) {
|
|
178
|
+
this.client = client;
|
|
179
|
+
}
|
|
180
|
+
list(params) {
|
|
181
|
+
return this.client.request("get", "/api/cash-registers", { query: toQuery(params) });
|
|
182
|
+
}
|
|
183
|
+
create(body) {
|
|
184
|
+
return this.client.request("post", "/api/cash-registers", { body });
|
|
185
|
+
}
|
|
186
|
+
update(id, body) {
|
|
187
|
+
return this.client.request("put", "/api/cash-registers/{id}", { params: { id }, body });
|
|
188
|
+
}
|
|
189
|
+
remove(id) {
|
|
190
|
+
return this.client.request("delete", "/api/cash-registers/{id}", { params: { id } });
|
|
191
|
+
}
|
|
192
|
+
};
|
|
193
|
+
|
|
194
|
+
// src/resources/projects.ts
|
|
195
|
+
var ProjectsResource = class {
|
|
196
|
+
constructor(client) {
|
|
197
|
+
this.client = client;
|
|
198
|
+
}
|
|
199
|
+
list(params) {
|
|
200
|
+
return this.client.request("get", "/api/projects", { query: toQuery(params) });
|
|
201
|
+
}
|
|
202
|
+
get(id) {
|
|
203
|
+
return this.client.request("get", "/api/projects/{id}", { params: { id } });
|
|
204
|
+
}
|
|
205
|
+
create(body) {
|
|
206
|
+
return this.client.request("post", "/api/projects", { body });
|
|
207
|
+
}
|
|
208
|
+
update(id, body) {
|
|
209
|
+
return this.client.request("put", "/api/projects/{id}", { params: { id }, body });
|
|
210
|
+
}
|
|
211
|
+
remove(id) {
|
|
212
|
+
return this.client.request("delete", "/api/projects/{id}", { params: { id } });
|
|
213
|
+
}
|
|
214
|
+
};
|
|
215
|
+
|
|
216
|
+
// src/resources/professions.ts
|
|
217
|
+
var ProfessionsResource = class {
|
|
218
|
+
constructor(client) {
|
|
219
|
+
this.client = client;
|
|
220
|
+
}
|
|
221
|
+
list(params) {
|
|
222
|
+
return this.client.request("get", "/api/professions", { query: toQuery(params) });
|
|
223
|
+
}
|
|
224
|
+
get(id) {
|
|
225
|
+
return this.client.request("get", "/api/professions/{id}", { params: { id } });
|
|
226
|
+
}
|
|
227
|
+
create(body) {
|
|
228
|
+
return this.client.request("post", "/api/professions", { body });
|
|
229
|
+
}
|
|
230
|
+
update(id, body) {
|
|
231
|
+
return this.client.request("put", "/api/professions/{id}", { params: { id }, body });
|
|
232
|
+
}
|
|
233
|
+
remove(id) {
|
|
234
|
+
return this.client.request("delete", "/api/professions/{id}", { params: { id } });
|
|
235
|
+
}
|
|
236
|
+
};
|
|
237
|
+
|
|
238
|
+
// src/resources/perdiem-rates.ts
|
|
239
|
+
var PerDiemRatesResource = class {
|
|
240
|
+
constructor(client) {
|
|
241
|
+
this.client = client;
|
|
242
|
+
}
|
|
243
|
+
list(params) {
|
|
244
|
+
return this.client.request("get", "/api/perdiem-rates", { query: toQuery(params) });
|
|
245
|
+
}
|
|
246
|
+
create(body) {
|
|
247
|
+
return this.client.request("post", "/api/perdiem-rates", { body });
|
|
248
|
+
}
|
|
249
|
+
update(id, body) {
|
|
250
|
+
return this.client.request("put", "/api/perdiem-rates/{id}", { params: { id }, body });
|
|
251
|
+
}
|
|
252
|
+
remove(id) {
|
|
253
|
+
return this.client.request("delete", "/api/perdiem-rates/{id}", { params: { id } });
|
|
254
|
+
}
|
|
255
|
+
};
|
|
256
|
+
|
|
257
|
+
// src/resources/price-lists.ts
|
|
258
|
+
var PriceListsResource = class {
|
|
259
|
+
constructor(client) {
|
|
260
|
+
this.client = client;
|
|
261
|
+
}
|
|
262
|
+
list(params) {
|
|
263
|
+
return this.client.request("get", "/api/price-lists", { query: toQuery(params) });
|
|
264
|
+
}
|
|
265
|
+
get(id) {
|
|
266
|
+
return this.client.request("get", "/api/price-lists/{id}", { params: { id } });
|
|
267
|
+
}
|
|
268
|
+
create(body) {
|
|
269
|
+
return this.client.request("post", "/api/price-lists", { body });
|
|
270
|
+
}
|
|
271
|
+
update(id, body) {
|
|
272
|
+
return this.client.request("put", "/api/price-lists/{id}", { params: { id }, body });
|
|
273
|
+
}
|
|
274
|
+
remove(id) {
|
|
275
|
+
return this.client.request("delete", "/api/price-lists/{id}", { params: { id } });
|
|
276
|
+
}
|
|
277
|
+
};
|
|
278
|
+
|
|
279
|
+
// src/resources/fixed-assets.ts
|
|
280
|
+
var FixedAssetsResource = class {
|
|
281
|
+
constructor(client) {
|
|
282
|
+
this.client = client;
|
|
283
|
+
}
|
|
284
|
+
list(params) {
|
|
285
|
+
return this.client.request("get", "/api/fixed-assets", { query: toQuery(params) });
|
|
286
|
+
}
|
|
287
|
+
get(id) {
|
|
288
|
+
return this.client.request("get", "/api/fixed-assets/{id}", { params: { id } });
|
|
289
|
+
}
|
|
290
|
+
create(body) {
|
|
291
|
+
return this.client.request("post", "/api/fixed-assets", { body });
|
|
292
|
+
}
|
|
293
|
+
update(id, body) {
|
|
294
|
+
return this.client.request("put", "/api/fixed-assets/{id}", { params: { id }, body });
|
|
295
|
+
}
|
|
296
|
+
remove(id) {
|
|
297
|
+
return this.client.request("delete", "/api/fixed-assets/{id}", { params: { id } });
|
|
298
|
+
}
|
|
299
|
+
dispose(id, body) {
|
|
300
|
+
return this.client.request("post", "/api/fixed-assets/{id}/dispose", { params: { id }, body });
|
|
301
|
+
}
|
|
302
|
+
};
|
|
303
|
+
|
|
304
|
+
// src/resources/employees.ts
|
|
305
|
+
var EmployeesResource = class {
|
|
306
|
+
constructor(client) {
|
|
307
|
+
this.client = client;
|
|
308
|
+
}
|
|
309
|
+
list(params) {
|
|
310
|
+
return this.client.request("get", "/api/employees", { query: toQuery(params) });
|
|
311
|
+
}
|
|
312
|
+
get(id) {
|
|
313
|
+
return this.client.request("get", "/api/employees/{id}", { params: { id } });
|
|
314
|
+
}
|
|
315
|
+
create(body) {
|
|
316
|
+
return this.client.request("post", "/api/employees", { body });
|
|
317
|
+
}
|
|
318
|
+
update(id, body) {
|
|
319
|
+
return this.client.request("put", "/api/employees/{id}", { params: { id }, body });
|
|
320
|
+
}
|
|
321
|
+
remove(id) {
|
|
322
|
+
return this.client.request("delete", "/api/employees/{id}", { params: { id } });
|
|
323
|
+
}
|
|
324
|
+
nextCode() {
|
|
325
|
+
return this.client.request("get", "/api/employees/next-code");
|
|
326
|
+
}
|
|
327
|
+
verifyPin(body) {
|
|
328
|
+
return this.client.request("post", "/api/employees/verify-pin", { body });
|
|
329
|
+
}
|
|
330
|
+
};
|
|
331
|
+
|
|
332
|
+
// src/resources/cash-orders.ts
|
|
333
|
+
var CashOrdersResource = class {
|
|
334
|
+
constructor(client) {
|
|
335
|
+
this.client = client;
|
|
336
|
+
}
|
|
337
|
+
list(params) {
|
|
338
|
+
return this.client.request("get", "/api/cash-orders", { query: toQuery(params) });
|
|
339
|
+
}
|
|
340
|
+
get(id) {
|
|
341
|
+
return this.client.request("get", "/api/cash-orders/{id}", { params: { id } });
|
|
342
|
+
}
|
|
343
|
+
create(body) {
|
|
344
|
+
return this.client.request("post", "/api/cash-orders", { body });
|
|
345
|
+
}
|
|
346
|
+
update(id, body) {
|
|
347
|
+
return this.client.request("put", "/api/cash-orders/{id}", { params: { id }, body });
|
|
348
|
+
}
|
|
349
|
+
remove(id) {
|
|
350
|
+
return this.client.request("delete", "/api/cash-orders/{id}", { params: { id } });
|
|
351
|
+
}
|
|
352
|
+
setExternalStatus(id, body) {
|
|
353
|
+
return this.client.request("patch", "/api/cash-orders/{id}/external-status", { params: { id }, body });
|
|
354
|
+
}
|
|
355
|
+
post(id) {
|
|
356
|
+
return this.client.request("post", "/api/cash-orders/{id}/post", { params: { id } });
|
|
357
|
+
}
|
|
358
|
+
unpost(id) {
|
|
359
|
+
return this.client.request("post", "/api/cash-orders/{id}/unpost", { params: { id } });
|
|
360
|
+
}
|
|
361
|
+
fiscalize(id, body) {
|
|
362
|
+
return this.client.request("post", "/api/cash-orders/{id}/fiscalize", { params: { id }, body: body ?? {} });
|
|
363
|
+
}
|
|
364
|
+
};
|
|
365
|
+
|
|
366
|
+
// src/resources/bank-transactions.ts
|
|
367
|
+
var BankTransactionsResource = class {
|
|
368
|
+
constructor(client) {
|
|
369
|
+
this.client = client;
|
|
370
|
+
}
|
|
371
|
+
list(params) {
|
|
372
|
+
return this.client.request("get", "/api/bank-transactions", { query: toQuery(params) });
|
|
373
|
+
}
|
|
374
|
+
get(id) {
|
|
375
|
+
return this.client.request("get", "/api/bank-transactions/{id}", { params: { id } });
|
|
376
|
+
}
|
|
377
|
+
create(body) {
|
|
378
|
+
return this.client.request("post", "/api/bank-transactions", { body });
|
|
379
|
+
}
|
|
380
|
+
update(id, body) {
|
|
381
|
+
return this.client.request("put", "/api/bank-transactions/{id}", { params: { id }, body });
|
|
382
|
+
}
|
|
383
|
+
setExternalStatus(id, body) {
|
|
384
|
+
return this.client.request("patch", "/api/bank-transactions/{id}/external-status", { params: { id }, body });
|
|
385
|
+
}
|
|
386
|
+
post(id) {
|
|
387
|
+
return this.client.request("post", "/api/bank-transactions/{id}/post", { params: { id } });
|
|
388
|
+
}
|
|
389
|
+
unpost(id) {
|
|
390
|
+
return this.client.request("post", "/api/bank-transactions/{id}/unpost", { params: { id } });
|
|
391
|
+
}
|
|
392
|
+
};
|
|
393
|
+
|
|
394
|
+
// src/resources/business-trips.ts
|
|
395
|
+
var BusinessTripsResource = class {
|
|
396
|
+
constructor(client) {
|
|
397
|
+
this.client = client;
|
|
398
|
+
}
|
|
399
|
+
list(params) {
|
|
400
|
+
return this.client.request("get", "/api/business-trips", { query: toQuery(params) });
|
|
401
|
+
}
|
|
402
|
+
create(body) {
|
|
403
|
+
return this.client.request("post", "/api/business-trips", { body });
|
|
404
|
+
}
|
|
405
|
+
update(id, body) {
|
|
406
|
+
return this.client.request("put", "/api/business-trips/{id}", { params: { id }, body });
|
|
407
|
+
}
|
|
408
|
+
remove(id) {
|
|
409
|
+
return this.client.request("delete", "/api/business-trips/{id}", { params: { id } });
|
|
410
|
+
}
|
|
411
|
+
postAdvance(id) {
|
|
412
|
+
return this.client.request("post", "/api/business-trips/{id}/post-advance", { params: { id } });
|
|
413
|
+
}
|
|
414
|
+
postSettlement(id) {
|
|
415
|
+
return this.client.request("post", "/api/business-trips/{id}/post-settlement", { params: { id } });
|
|
416
|
+
}
|
|
417
|
+
unpost(id) {
|
|
418
|
+
return this.client.request("post", "/api/business-trips/{id}/unpost", { params: { id } });
|
|
419
|
+
}
|
|
420
|
+
};
|
|
421
|
+
|
|
422
|
+
// src/resources/payroll.ts
|
|
423
|
+
var PayrollResource = class {
|
|
424
|
+
constructor(client) {
|
|
425
|
+
this.client = client;
|
|
426
|
+
}
|
|
427
|
+
list(params) {
|
|
428
|
+
return this.client.request("get", "/api/payroll", { query: toQuery(params) });
|
|
429
|
+
}
|
|
430
|
+
preview(body) {
|
|
431
|
+
return this.client.request("post", "/api/payroll/preview", { body });
|
|
432
|
+
}
|
|
433
|
+
post(body) {
|
|
434
|
+
return this.client.request("post", "/api/payroll/post", { body });
|
|
435
|
+
}
|
|
436
|
+
unpost(id) {
|
|
437
|
+
return this.client.request("post", "/api/payroll/{id}/unpost", { params: { id } });
|
|
438
|
+
}
|
|
439
|
+
};
|
|
440
|
+
|
|
441
|
+
// src/resources/depreciation.ts
|
|
442
|
+
var DepreciationResource = class {
|
|
443
|
+
constructor(client) {
|
|
444
|
+
this.client = client;
|
|
445
|
+
}
|
|
446
|
+
list(params) {
|
|
447
|
+
return this.client.request("get", "/api/depreciation", { query: toQuery(params) });
|
|
448
|
+
}
|
|
449
|
+
preview(body) {
|
|
450
|
+
return this.client.request("post", "/api/depreciation/preview", { body });
|
|
451
|
+
}
|
|
452
|
+
post(body) {
|
|
453
|
+
return this.client.request("post", "/api/depreciation/post", { body });
|
|
454
|
+
}
|
|
455
|
+
unpost(id) {
|
|
456
|
+
return this.client.request("post", "/api/depreciation/{id}/unpost", { params: { id } });
|
|
457
|
+
}
|
|
458
|
+
};
|
|
459
|
+
|
|
460
|
+
// src/resources/numberings.ts
|
|
461
|
+
var NumberingsResource = class {
|
|
462
|
+
constructor(client) {
|
|
463
|
+
this.client = client;
|
|
464
|
+
}
|
|
465
|
+
list(params) {
|
|
466
|
+
return this.client.request("get", "/api/numberings", { query: toQuery(params) });
|
|
467
|
+
}
|
|
468
|
+
update(prefix, body) {
|
|
469
|
+
return this.client.request("put", "/api/numberings/{prefix}", { params: { prefix }, body });
|
|
470
|
+
}
|
|
471
|
+
};
|
|
472
|
+
|
|
473
|
+
// src/resources/exchange-rates.ts
|
|
474
|
+
var ExchangeRatesResource = class {
|
|
475
|
+
constructor(client) {
|
|
476
|
+
this.client = client;
|
|
477
|
+
}
|
|
478
|
+
list(params) {
|
|
479
|
+
return this.client.request("get", "/api/exchange-rates", { query: toQuery(params) });
|
|
480
|
+
}
|
|
481
|
+
};
|
|
482
|
+
|
|
483
|
+
// src/resources/bank-statements.ts
|
|
484
|
+
var BankStatementsResource = class {
|
|
485
|
+
constructor(client) {
|
|
486
|
+
this.client = client;
|
|
487
|
+
}
|
|
488
|
+
list(params) {
|
|
489
|
+
return this.client.request("get", "/api/bank-statements", { query: toQuery(params) });
|
|
490
|
+
}
|
|
491
|
+
remove(id) {
|
|
492
|
+
return this.client.request("delete", "/api/bank-statements/{id}", { params: { id } });
|
|
493
|
+
}
|
|
494
|
+
detect(file, filename) {
|
|
495
|
+
const fd = new FormData();
|
|
496
|
+
fd.append("file", file, filename);
|
|
497
|
+
return this.client.request("post", "/api/bank-statements/detect", { body: fd });
|
|
498
|
+
}
|
|
499
|
+
import(file, fields, filename) {
|
|
500
|
+
const fd = new FormData();
|
|
501
|
+
fd.append("file", file, filename);
|
|
502
|
+
if (fields) {
|
|
503
|
+
for (const [key, value] of Object.entries(fields)) {
|
|
504
|
+
fd.append(key, value);
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
return this.client.request("post", "/api/bank-statements/import", { body: fd });
|
|
508
|
+
}
|
|
509
|
+
};
|
|
510
|
+
|
|
175
511
|
// src/client.ts
|
|
176
512
|
var DEFAULT_BASE_URL = "https://app.jars.lt";
|
|
177
513
|
function safeJson(text) {
|
|
@@ -191,6 +527,21 @@ var JarsClient = class {
|
|
|
191
527
|
reports;
|
|
192
528
|
auditLogs;
|
|
193
529
|
lookups;
|
|
530
|
+
cashRegisters;
|
|
531
|
+
projects;
|
|
532
|
+
professions;
|
|
533
|
+
perDiemRates;
|
|
534
|
+
priceLists;
|
|
535
|
+
fixedAssets;
|
|
536
|
+
employees;
|
|
537
|
+
cashOrders;
|
|
538
|
+
bankTransactions;
|
|
539
|
+
businessTrips;
|
|
540
|
+
payroll;
|
|
541
|
+
depreciation;
|
|
542
|
+
numberings;
|
|
543
|
+
exchangeRates;
|
|
544
|
+
bankStatements;
|
|
194
545
|
baseUrl;
|
|
195
546
|
authHeader;
|
|
196
547
|
fetchImpl;
|
|
@@ -211,6 +562,21 @@ var JarsClient = class {
|
|
|
211
562
|
this.reports = new ReportsResource(this);
|
|
212
563
|
this.auditLogs = new AuditLogsResource(this);
|
|
213
564
|
this.lookups = new LookupsResource(this);
|
|
565
|
+
this.cashRegisters = new CashRegistersResource(this);
|
|
566
|
+
this.projects = new ProjectsResource(this);
|
|
567
|
+
this.professions = new ProfessionsResource(this);
|
|
568
|
+
this.perDiemRates = new PerDiemRatesResource(this);
|
|
569
|
+
this.priceLists = new PriceListsResource(this);
|
|
570
|
+
this.fixedAssets = new FixedAssetsResource(this);
|
|
571
|
+
this.employees = new EmployeesResource(this);
|
|
572
|
+
this.cashOrders = new CashOrdersResource(this);
|
|
573
|
+
this.bankTransactions = new BankTransactionsResource(this);
|
|
574
|
+
this.businessTrips = new BusinessTripsResource(this);
|
|
575
|
+
this.payroll = new PayrollResource(this);
|
|
576
|
+
this.depreciation = new DepreciationResource(this);
|
|
577
|
+
this.numberings = new NumberingsResource(this);
|
|
578
|
+
this.exchangeRates = new ExchangeRatesResource(this);
|
|
579
|
+
this.bankStatements = new BankStatementsResource(this);
|
|
214
580
|
}
|
|
215
581
|
async request(method, path, opts = {}) {
|
|
216
582
|
const finalPath = opts.params ? path.replace(/\{([^}]+)\}/g, (_, key) => {
|
|
@@ -226,8 +592,13 @@ var JarsClient = class {
|
|
|
226
592
|
const headers = new Headers({ Authorization: this.authHeader });
|
|
227
593
|
let body;
|
|
228
594
|
if (opts.body !== void 0) {
|
|
229
|
-
|
|
230
|
-
|
|
595
|
+
const isForm = typeof FormData !== "undefined" && opts.body instanceof FormData;
|
|
596
|
+
if (isForm) {
|
|
597
|
+
body = opts.body;
|
|
598
|
+
} else {
|
|
599
|
+
headers.set("content-type", "application/json");
|
|
600
|
+
body = JSON.stringify(opts.body);
|
|
601
|
+
}
|
|
231
602
|
}
|
|
232
603
|
let res;
|
|
233
604
|
try {
|
|
@@ -254,14 +625,29 @@ var JarsClient = class {
|
|
|
254
625
|
};
|
|
255
626
|
export {
|
|
256
627
|
AuditLogsResource,
|
|
628
|
+
BankStatementsResource,
|
|
629
|
+
BankTransactionsResource,
|
|
630
|
+
BusinessTripsResource,
|
|
631
|
+
CashOrdersResource,
|
|
632
|
+
CashRegistersResource,
|
|
257
633
|
DEFAULT_BASE_URL,
|
|
634
|
+
DepreciationResource,
|
|
635
|
+
EmployeesResource,
|
|
636
|
+
ExchangeRatesResource,
|
|
637
|
+
FixedAssetsResource,
|
|
258
638
|
InvoicesResource,
|
|
259
639
|
JarsApiError,
|
|
260
640
|
JarsClient,
|
|
261
641
|
JournalResource,
|
|
262
642
|
LookupsResource,
|
|
643
|
+
NumberingsResource,
|
|
263
644
|
PartnersResource,
|
|
645
|
+
PayrollResource,
|
|
646
|
+
PerDiemRatesResource,
|
|
647
|
+
PriceListsResource,
|
|
264
648
|
ProductsResource,
|
|
649
|
+
ProfessionsResource,
|
|
650
|
+
ProjectsResource,
|
|
265
651
|
ReportsResource
|
|
266
652
|
};
|
|
267
653
|
//# 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"],"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'\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":[]}
|
|
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":[]}
|