@use-stall/core 0.1.2 → 0.1.3
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 +35 -69
- package/dist/index.d.mts +37 -33
- package/dist/index.d.ts +37 -33
- package/dist/index.js +452 -220
- package/dist/index.mjs +451 -219
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -58,8 +58,8 @@ __export(index_exports, {
|
|
|
58
58
|
remove_from_sync_queue: () => remove_from_sync_queue,
|
|
59
59
|
save_bulk_data: () => save_bulk_data,
|
|
60
60
|
sync_service: () => sync_service,
|
|
61
|
+
tax_classes: () => tax_classes,
|
|
61
62
|
tax_rates: () => tax_rates,
|
|
62
|
-
tax_regions: () => tax_regions,
|
|
63
63
|
update_sync_queue_status: () => update_sync_queue_status,
|
|
64
64
|
variants: () => variants
|
|
65
65
|
});
|
|
@@ -73,20 +73,20 @@ var schemas = {
|
|
|
73
73
|
connector_cache: "id",
|
|
74
74
|
sync_queue: "++id, status, timestamp, priority, table, stall_offline_id, action, retry_count",
|
|
75
75
|
sync_logs: "++id, sync_batch_id, timestamp, table, action, status, stall_offline_id",
|
|
76
|
-
products: "++id,
|
|
77
|
-
variants: "++id, product_id,
|
|
78
|
-
collections: "++id, name,
|
|
79
|
-
categories: "++id, name,
|
|
80
|
-
inventory_levels: "++id, product_id, variant_id,
|
|
81
|
-
inventory_history: "++id, product_id, variant_id,
|
|
76
|
+
products: "++id, sku, barcode, title, handle, description, body_html, created_at, updated_at, deleted_at, status, type, thumbnail, brand, tags, categories, attributes, collections, variants, price, sale_price, price_currency, cost_price, taxable, tax_class, on_sale, track_inventory, unavailable, committed, in_stock, on_hand, low_stock_threshold, locations, weight, metadata.stall_offline_id, metadata.stall_offline_created_at, metadata.stall_offline_updated_at, metadata.stall_offline_deleted_at",
|
|
77
|
+
variants: "++id, sku, barcode, product_id, date, title, description, price, cost_price, sale_price, on_sale, status, track_inventory, unavailable, committed, in_stock, on_hand, low_stock_threshold, weight, thumbnail, attributes, metadata.stall_offline_id, metadata.stall_offline_created_at, metadata.stall_offline_updated_at, metadata.stall_offline_deleted_at",
|
|
78
|
+
collections: "++id, name, description, thumbnail, metadata.stall_offline_id, metadata.stall_offline_created_at, metadata.stall_offline_updated_at, metadata.stall_offline_deleted_at, linked_products, linked_categories, createAt, lastUpdatedAt",
|
|
79
|
+
categories: "++id, name, description, thumbnail, metadata.stall_offline_id, metadata.stall_offline_created_at, metadata.stall_offline_updated_at, metadata.stall_offline_deleted_at, date, count, parent_id",
|
|
80
|
+
inventory_levels: "++id, location_id, product_id, variant_id, unavailable, committed, in_stock, on_hand, low_stock_threshold, last_updatedAt, created_at, metadata.stall_offline_id, metadata.stall_offline_created_at, metadata.stall_offline_updated_at, metadata.stall_offline_deleted_at",
|
|
81
|
+
inventory_history: "++id, location_id, product_id, variant_id, unavailable, committed, in_stock, on_hand, low_stock_threshold, last_updatedAt, created_at, metadata.stall_offline_id, metadata.stall_offline_created_at, metadata.stall_offline_updated_at, metadata.stall_offline_deleted_at",
|
|
82
82
|
promotions: "++id, name, type, active, start_date, end_date, created_at, updated_at, metadata.stall_offline_id, metadata.stall_offline_created_at, metadata.stall_offline_updated_at",
|
|
83
83
|
orders: "++id, order_number, customer_id, location_id, status, created_at, updated_at, metadata.stall_offline_id, metadata.stall_offline_created_at, metadata.stall_offline_updated_at",
|
|
84
84
|
order_notes: "++id, order_id, created_at, updated_at, metadata.stall_offline_id, metadata.stall_offline_created_at, metadata.stall_offline_updated_at",
|
|
85
85
|
refunds: "++id, order_id, payment_id, status, created_at, updated_at, metadata.stall_offline_id, metadata.stall_offline_created_at, metadata.stall_offline_updated_at",
|
|
86
86
|
payment_providers: "++id, name, type, active, created_at, updated_at, metadata.stall_offline_id, metadata.stall_offline_created_at, metadata.stall_offline_updated_at",
|
|
87
87
|
payments: "++id, order_id, status, method, created_at, updated_at, metadata.stall_offline_id, metadata.stall_offline_created_at, metadata.stall_offline_updated_at",
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
tax_rates: "++id, name, rate, type, calculation_base, application, priority, compound, created_at, updated_at, metadata.stall_offline_id, metadata.stall_offline_created_at, metadata.stall_offline_updated_at, metadata.stall_offline_deleted_at",
|
|
89
|
+
tax_classes: "++id, name, tax_calculation, created_at, updated_at, metadata.stall_offline_id, metadata.stall_offline_created_at, metadata.stall_offline_updated_at, metadata.stall_offline_deleted_at",
|
|
90
90
|
customers: "++id, email, phone, name, created_at, updated_at, metadata.stall_offline_id, metadata.stall_offline_created_at, metadata.stall_offline_updated_at",
|
|
91
91
|
locations: "++id, name, city, country, region, active, created_at, updated_at, metadata.stall_offline_id, metadata.stall_offline_created_at, metadata.stall_offline_updated_at",
|
|
92
92
|
fulfillments: "++id, order_id, status, created_at, updated_at, metadata.stall_offline_id, metadata.stall_offline_created_at, metadata.stall_offline_updated_at"
|
|
@@ -242,7 +242,7 @@ var cleanup_old_sync_logs = async (days = 30) => {
|
|
|
242
242
|
// src/services/sync/sync-dependencies.ts
|
|
243
243
|
var SYNC_DEPENDENCY_LAYERS = {
|
|
244
244
|
1: [
|
|
245
|
-
"
|
|
245
|
+
"tax_classes",
|
|
246
246
|
"tax_rates",
|
|
247
247
|
"categories",
|
|
248
248
|
"collections",
|
|
@@ -259,8 +259,8 @@ var SYNC_DEPENDENCY_LAYERS = {
|
|
|
259
259
|
var get_entity_dependencies = (table) => {
|
|
260
260
|
const dependencies = {
|
|
261
261
|
// Layer 1: Independent
|
|
262
|
-
|
|
263
|
-
tax_rates: ["
|
|
262
|
+
tax_classes: [],
|
|
263
|
+
tax_rates: ["tax_classes"],
|
|
264
264
|
categories: [],
|
|
265
265
|
collections: [],
|
|
266
266
|
locations: [],
|
|
@@ -268,7 +268,7 @@ var get_entity_dependencies = (table) => {
|
|
|
268
268
|
customers: [],
|
|
269
269
|
promotions: [],
|
|
270
270
|
// Layer 2: Product
|
|
271
|
-
products: ["categories", "collections"],
|
|
271
|
+
products: ["tax_classes", "categories", "collections"],
|
|
272
272
|
// Layer 3: Variants & Inventory
|
|
273
273
|
variants: ["products"],
|
|
274
274
|
inventory_levels: ["products", "variants"],
|
|
@@ -342,6 +342,7 @@ var update_dependent_references = async (props) => {
|
|
|
342
342
|
try {
|
|
343
343
|
const reference_map = {
|
|
344
344
|
products: [
|
|
345
|
+
{ table: "tax_classes", field: "class" },
|
|
345
346
|
{ table: "variants", field: "product_id" },
|
|
346
347
|
{ table: "inventory_levels", field: "product_id" }
|
|
347
348
|
],
|
|
@@ -357,8 +358,8 @@ var update_dependent_references = async (props) => {
|
|
|
357
358
|
locations: [{ table: "orders", field: "location_id" }],
|
|
358
359
|
categories: [{ table: "products", field: "category_id" }],
|
|
359
360
|
collections: [{ table: "products", field: "collection_id" }],
|
|
360
|
-
|
|
361
|
-
|
|
361
|
+
tax_rates: [{ table: "tax_classes", field: "class" }],
|
|
362
|
+
tax_classes: [],
|
|
362
363
|
tags: [],
|
|
363
364
|
inventory_levels: [],
|
|
364
365
|
inventory_history: [],
|
|
@@ -385,90 +386,271 @@ var update_dependent_references = async (props) => {
|
|
|
385
386
|
console.error(`Error updating dependent references for ${table}:`, error);
|
|
386
387
|
}
|
|
387
388
|
};
|
|
388
|
-
var
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
if (!
|
|
399
|
-
|
|
389
|
+
var group_items_by_action = (items) => {
|
|
390
|
+
return {
|
|
391
|
+
creates: items.filter((item) => item.action === "create"),
|
|
392
|
+
updates: items.filter((item) => item.action === "update"),
|
|
393
|
+
deletes: items.filter((item) => item.action === "delete")
|
|
394
|
+
};
|
|
395
|
+
};
|
|
396
|
+
var group_by_table = (items) => {
|
|
397
|
+
const grouped = /* @__PURE__ */ new Map();
|
|
398
|
+
for (const item of items) {
|
|
399
|
+
if (!grouped.has(item.table)) {
|
|
400
|
+
grouped.set(item.table, []);
|
|
400
401
|
}
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
402
|
+
grouped.get(item.table).push(item);
|
|
403
|
+
}
|
|
404
|
+
return grouped;
|
|
405
|
+
};
|
|
406
|
+
var process_bulk_creates = async (props) => {
|
|
407
|
+
const { sdk, items, sync_batch_id } = props;
|
|
408
|
+
const connector_ids = /* @__PURE__ */ new Map();
|
|
409
|
+
let synced = 0;
|
|
410
|
+
let failed = 0;
|
|
411
|
+
if (items.length === 0) {
|
|
412
|
+
return { synced, failed, connector_ids };
|
|
413
|
+
}
|
|
414
|
+
const grouped = group_by_table(items);
|
|
415
|
+
for (const [table, table_items] of grouped) {
|
|
416
|
+
let start_time = Date.now();
|
|
417
|
+
try {
|
|
418
|
+
const adapter = await sdk.adapter();
|
|
419
|
+
if (!adapter) {
|
|
420
|
+
throw new Error("Adapter not found");
|
|
421
|
+
}
|
|
422
|
+
const connector_config = sdk.options.configuration;
|
|
423
|
+
const table_module = adapter[table];
|
|
424
|
+
if (!table_module) {
|
|
425
|
+
throw new Error(`Module ${table} not found in adapter`);
|
|
426
|
+
}
|
|
427
|
+
start_time = Date.now();
|
|
428
|
+
const create_data = table_items.map((item) => item.data);
|
|
429
|
+
const results = await table_module.bulk_create({
|
|
404
430
|
connector_config,
|
|
405
|
-
data:
|
|
431
|
+
data: create_data
|
|
406
432
|
});
|
|
407
|
-
|
|
408
|
-
if (
|
|
409
|
-
|
|
410
|
-
|
|
433
|
+
const duration = Date.now() - start_time;
|
|
434
|
+
if (Array.isArray(results)) {
|
|
435
|
+
for (let i = 0; i < table_items.length; i++) {
|
|
436
|
+
const item = table_items[i];
|
|
437
|
+
const result = results[i];
|
|
438
|
+
const connector_id = result?.id;
|
|
439
|
+
if (connector_id) {
|
|
440
|
+
connector_ids.set(item.stall_offline_id, connector_id);
|
|
441
|
+
await replace_temporary_ids({
|
|
442
|
+
table,
|
|
443
|
+
stall_offline_id: item.stall_offline_id,
|
|
444
|
+
connector_id
|
|
445
|
+
});
|
|
446
|
+
await add_sync_log({
|
|
447
|
+
sync_batch_id,
|
|
448
|
+
table,
|
|
449
|
+
action: "create",
|
|
450
|
+
document_id: item.document_id,
|
|
451
|
+
stall_offline_id: item.stall_offline_id,
|
|
452
|
+
connector_id,
|
|
453
|
+
status: "success",
|
|
454
|
+
duration_ms: duration
|
|
455
|
+
});
|
|
456
|
+
await remove_from_sync_queue(item.id);
|
|
457
|
+
synced++;
|
|
458
|
+
} else {
|
|
459
|
+
throw new Error(`No connector ID returned for item ${item.id}`);
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
} else {
|
|
463
|
+
throw new Error("Unexpected result format from bulk_create");
|
|
464
|
+
}
|
|
465
|
+
} catch (error) {
|
|
466
|
+
const duration = Date.now() - start_time;
|
|
467
|
+
console.error(`Error bulk creating items for table ${table}:`, error);
|
|
468
|
+
for (const item of table_items) {
|
|
469
|
+
const current_retries = item.retry_count || 0;
|
|
470
|
+
if (current_retries < MAX_RETRIES) {
|
|
471
|
+
await update_sync_queue_status({
|
|
472
|
+
id: item.id,
|
|
473
|
+
status: "pending",
|
|
474
|
+
error: error.message,
|
|
475
|
+
retry_count: current_retries + 1
|
|
476
|
+
});
|
|
477
|
+
} else {
|
|
478
|
+
await update_sync_queue_status({
|
|
479
|
+
id: item.id,
|
|
480
|
+
status: "failed",
|
|
481
|
+
error: `Max retries exceeded: ${error.message}`
|
|
482
|
+
});
|
|
483
|
+
}
|
|
484
|
+
await add_sync_log({
|
|
485
|
+
sync_batch_id,
|
|
486
|
+
table,
|
|
487
|
+
action: "create",
|
|
488
|
+
document_id: item.document_id,
|
|
411
489
|
stall_offline_id: item.stall_offline_id,
|
|
412
|
-
|
|
490
|
+
status: "failed",
|
|
491
|
+
error: error.message,
|
|
492
|
+
duration_ms: duration
|
|
413
493
|
});
|
|
494
|
+
failed++;
|
|
414
495
|
}
|
|
415
|
-
}
|
|
416
|
-
|
|
417
|
-
|
|
496
|
+
}
|
|
497
|
+
}
|
|
498
|
+
return { synced, failed, connector_ids };
|
|
499
|
+
};
|
|
500
|
+
var process_bulk_updates = async (props) => {
|
|
501
|
+
const { sdk, items, sync_batch_id } = props;
|
|
502
|
+
let synced = 0;
|
|
503
|
+
let failed = 0;
|
|
504
|
+
if (items.length === 0) {
|
|
505
|
+
return { synced, failed };
|
|
506
|
+
}
|
|
507
|
+
const grouped = group_by_table(items);
|
|
508
|
+
for (const [table, table_items] of grouped) {
|
|
509
|
+
let start_time = Date.now();
|
|
510
|
+
try {
|
|
511
|
+
const adapter = await sdk.adapter();
|
|
512
|
+
if (!adapter) {
|
|
513
|
+
throw new Error("Adapter not found");
|
|
514
|
+
}
|
|
515
|
+
const connector_config = sdk.options.configuration;
|
|
516
|
+
const table_module = adapter[table];
|
|
517
|
+
if (!table_module) {
|
|
518
|
+
throw new Error(`Module ${table} not found in adapter`);
|
|
519
|
+
}
|
|
520
|
+
start_time = Date.now();
|
|
521
|
+
const update_data = table_items.map((item) => ({
|
|
418
522
|
id: item.document_id,
|
|
419
523
|
data: item.data
|
|
420
|
-
});
|
|
421
|
-
|
|
422
|
-
} else if (item.action === "delete") {
|
|
423
|
-
await table_module.delete({
|
|
524
|
+
}));
|
|
525
|
+
await table_module.bulk_update({
|
|
424
526
|
connector_config,
|
|
425
|
-
|
|
527
|
+
data: update_data
|
|
426
528
|
});
|
|
427
|
-
|
|
529
|
+
const duration = Date.now() - start_time;
|
|
530
|
+
for (const item of table_items) {
|
|
531
|
+
await add_sync_log({
|
|
532
|
+
sync_batch_id,
|
|
533
|
+
table,
|
|
534
|
+
action: "update",
|
|
535
|
+
document_id: item.document_id,
|
|
536
|
+
stall_offline_id: item.stall_offline_id,
|
|
537
|
+
connector_id: item.document_id,
|
|
538
|
+
status: "success",
|
|
539
|
+
duration_ms: duration
|
|
540
|
+
});
|
|
541
|
+
await remove_from_sync_queue(item.id);
|
|
542
|
+
synced++;
|
|
543
|
+
}
|
|
544
|
+
} catch (error) {
|
|
545
|
+
const duration = Date.now() - start_time;
|
|
546
|
+
console.error(`Error bulk updating items for table ${table}:`, error);
|
|
547
|
+
for (const item of table_items) {
|
|
548
|
+
const current_retries = item.retry_count || 0;
|
|
549
|
+
if (current_retries < MAX_RETRIES) {
|
|
550
|
+
await update_sync_queue_status({
|
|
551
|
+
id: item.id,
|
|
552
|
+
status: "pending",
|
|
553
|
+
error: error.message,
|
|
554
|
+
retry_count: current_retries + 1
|
|
555
|
+
});
|
|
556
|
+
} else {
|
|
557
|
+
await update_sync_queue_status({
|
|
558
|
+
id: item.id,
|
|
559
|
+
status: "failed",
|
|
560
|
+
error: `Max retries exceeded: ${error.message}`
|
|
561
|
+
});
|
|
562
|
+
}
|
|
563
|
+
await add_sync_log({
|
|
564
|
+
sync_batch_id,
|
|
565
|
+
table,
|
|
566
|
+
action: "update",
|
|
567
|
+
document_id: item.document_id,
|
|
568
|
+
stall_offline_id: item.stall_offline_id,
|
|
569
|
+
status: "failed",
|
|
570
|
+
error: error.message,
|
|
571
|
+
duration_ms: duration
|
|
572
|
+
});
|
|
573
|
+
failed++;
|
|
574
|
+
}
|
|
428
575
|
}
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
await
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
error: `Max retries exceeded: ${error.message}`
|
|
576
|
+
}
|
|
577
|
+
return { synced, failed };
|
|
578
|
+
};
|
|
579
|
+
var process_bulk_deletes = async (props) => {
|
|
580
|
+
const { sdk, items, sync_batch_id } = props;
|
|
581
|
+
let synced = 0;
|
|
582
|
+
let failed = 0;
|
|
583
|
+
if (items.length === 0) {
|
|
584
|
+
return { synced, failed };
|
|
585
|
+
}
|
|
586
|
+
const grouped = group_by_table(items);
|
|
587
|
+
for (const [table, table_items] of grouped) {
|
|
588
|
+
let start_time = Date.now();
|
|
589
|
+
try {
|
|
590
|
+
const adapter = await sdk.adapter();
|
|
591
|
+
if (!adapter) {
|
|
592
|
+
throw new Error("Adapter not found");
|
|
593
|
+
}
|
|
594
|
+
const connector_config = sdk.options.configuration;
|
|
595
|
+
const table_module = adapter[table];
|
|
596
|
+
if (!table_module) {
|
|
597
|
+
throw new Error(`Module ${table} not found in adapter`);
|
|
598
|
+
}
|
|
599
|
+
start_time = Date.now();
|
|
600
|
+
const ids = table_items.map((item) => item.document_id);
|
|
601
|
+
await table_module.bulk_delete({
|
|
602
|
+
connector_config,
|
|
603
|
+
ids
|
|
458
604
|
});
|
|
605
|
+
const duration = Date.now() - start_time;
|
|
606
|
+
for (const item of table_items) {
|
|
607
|
+
await add_sync_log({
|
|
608
|
+
sync_batch_id,
|
|
609
|
+
table,
|
|
610
|
+
action: "delete",
|
|
611
|
+
document_id: item.document_id,
|
|
612
|
+
stall_offline_id: item.stall_offline_id,
|
|
613
|
+
connector_id: item.document_id,
|
|
614
|
+
status: "success",
|
|
615
|
+
duration_ms: duration
|
|
616
|
+
});
|
|
617
|
+
await remove_from_sync_queue(item.id);
|
|
618
|
+
synced++;
|
|
619
|
+
}
|
|
620
|
+
} catch (error) {
|
|
621
|
+
const duration = Date.now() - start_time;
|
|
622
|
+
console.error(`Error bulk deleting items for table ${table}:`, error);
|
|
623
|
+
for (const item of table_items) {
|
|
624
|
+
const current_retries = item.retry_count || 0;
|
|
625
|
+
if (current_retries < MAX_RETRIES) {
|
|
626
|
+
await update_sync_queue_status({
|
|
627
|
+
id: item.id,
|
|
628
|
+
status: "pending",
|
|
629
|
+
error: error.message,
|
|
630
|
+
retry_count: current_retries + 1
|
|
631
|
+
});
|
|
632
|
+
} else {
|
|
633
|
+
await update_sync_queue_status({
|
|
634
|
+
id: item.id,
|
|
635
|
+
status: "failed",
|
|
636
|
+
error: `Max retries exceeded: ${error.message}`
|
|
637
|
+
});
|
|
638
|
+
}
|
|
639
|
+
await add_sync_log({
|
|
640
|
+
sync_batch_id,
|
|
641
|
+
table,
|
|
642
|
+
action: "delete",
|
|
643
|
+
document_id: item.document_id,
|
|
644
|
+
stall_offline_id: item.stall_offline_id,
|
|
645
|
+
status: "failed",
|
|
646
|
+
error: error.message,
|
|
647
|
+
duration_ms: duration
|
|
648
|
+
});
|
|
649
|
+
failed++;
|
|
650
|
+
}
|
|
459
651
|
}
|
|
460
|
-
await add_sync_log({
|
|
461
|
-
sync_batch_id,
|
|
462
|
-
table: item.table,
|
|
463
|
-
action: item.action,
|
|
464
|
-
document_id: item.document_id,
|
|
465
|
-
stall_offline_id: item.stall_offline_id,
|
|
466
|
-
status: "failed",
|
|
467
|
-
error: error.message,
|
|
468
|
-
duration_ms: duration
|
|
469
|
-
});
|
|
470
|
-
return { success: false, error: error.message };
|
|
471
652
|
}
|
|
653
|
+
return { synced, failed };
|
|
472
654
|
};
|
|
473
655
|
var process_sync_queue = async (props) => {
|
|
474
656
|
const { sdk } = props;
|
|
@@ -506,43 +688,92 @@ var process_sync_queue = async (props) => {
|
|
|
506
688
|
);
|
|
507
689
|
const synced_tables = /* @__PURE__ */ new Set();
|
|
508
690
|
const items_to_retry = [];
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
const
|
|
691
|
+
const connector_ids = /* @__PURE__ */ new Map();
|
|
692
|
+
const { creates, updates, deletes } = group_items_by_action(sorted_items);
|
|
693
|
+
if (creates.length > 0) {
|
|
694
|
+
const create_items = creates.filter(
|
|
695
|
+
(item) => are_dependencies_satisfied(item.table, synced_tables)
|
|
696
|
+
);
|
|
697
|
+
const create_retry_items = creates.filter(
|
|
698
|
+
(item) => !are_dependencies_satisfied(item.table, synced_tables)
|
|
699
|
+
);
|
|
700
|
+
const create_result = await process_bulk_creates({
|
|
519
701
|
sdk,
|
|
520
|
-
|
|
702
|
+
items: create_items,
|
|
521
703
|
sync_batch_id
|
|
522
704
|
});
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
705
|
+
total_synced += create_result.synced;
|
|
706
|
+
total_failed += create_result.failed;
|
|
707
|
+
connector_ids.forEach((v, k) => connector_ids.set(k, v));
|
|
708
|
+
create_items.forEach((item) => synced_tables.add(item.table));
|
|
709
|
+
items_to_retry.push(...create_retry_items);
|
|
710
|
+
}
|
|
711
|
+
if (updates.length > 0) {
|
|
712
|
+
const update_items = updates.filter(
|
|
713
|
+
(item) => are_dependencies_satisfied(item.table, synced_tables)
|
|
714
|
+
);
|
|
715
|
+
const update_retry_items = updates.filter(
|
|
716
|
+
(item) => !are_dependencies_satisfied(item.table, synced_tables)
|
|
717
|
+
);
|
|
718
|
+
const update_result = await process_bulk_updates({
|
|
719
|
+
sdk,
|
|
720
|
+
items: update_items,
|
|
721
|
+
sync_batch_id
|
|
536
722
|
});
|
|
537
|
-
|
|
723
|
+
total_synced += update_result.synced;
|
|
724
|
+
total_failed += update_result.failed;
|
|
725
|
+
update_items.forEach((item) => synced_tables.add(item.table));
|
|
726
|
+
items_to_retry.push(...update_retry_items);
|
|
727
|
+
}
|
|
728
|
+
if (deletes.length > 0) {
|
|
729
|
+
const delete_items = deletes.filter(
|
|
730
|
+
(item) => are_dependencies_satisfied(item.table, synced_tables)
|
|
731
|
+
);
|
|
732
|
+
const delete_retry_items = deletes.filter(
|
|
733
|
+
(item) => !are_dependencies_satisfied(item.table, synced_tables)
|
|
734
|
+
);
|
|
735
|
+
const delete_result = await process_bulk_deletes({
|
|
538
736
|
sdk,
|
|
539
|
-
|
|
737
|
+
items: delete_items,
|
|
540
738
|
sync_batch_id
|
|
541
739
|
});
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
740
|
+
total_synced += delete_result.synced;
|
|
741
|
+
total_failed += delete_result.failed;
|
|
742
|
+
delete_items.forEach((item) => synced_tables.add(item.table));
|
|
743
|
+
items_to_retry.push(...delete_retry_items);
|
|
744
|
+
}
|
|
745
|
+
if (items_to_retry.length > 0) {
|
|
746
|
+
const {
|
|
747
|
+
creates: retry_creates,
|
|
748
|
+
updates: retry_updates,
|
|
749
|
+
deletes: retry_deletes
|
|
750
|
+
} = group_items_by_action(items_to_retry);
|
|
751
|
+
if (retry_creates.length > 0) {
|
|
752
|
+
const create_result = await process_bulk_creates({
|
|
753
|
+
sdk,
|
|
754
|
+
items: retry_creates,
|
|
755
|
+
sync_batch_id
|
|
756
|
+
});
|
|
757
|
+
total_synced += create_result.synced;
|
|
758
|
+
total_failed += create_result.failed;
|
|
759
|
+
}
|
|
760
|
+
if (retry_updates.length > 0) {
|
|
761
|
+
const update_result = await process_bulk_updates({
|
|
762
|
+
sdk,
|
|
763
|
+
items: retry_updates,
|
|
764
|
+
sync_batch_id
|
|
765
|
+
});
|
|
766
|
+
total_synced += update_result.synced;
|
|
767
|
+
total_failed += update_result.failed;
|
|
768
|
+
}
|
|
769
|
+
if (retry_deletes.length > 0) {
|
|
770
|
+
const delete_result = await process_bulk_deletes({
|
|
771
|
+
sdk,
|
|
772
|
+
items: retry_deletes,
|
|
773
|
+
sync_batch_id
|
|
774
|
+
});
|
|
775
|
+
total_synced += delete_result.synced;
|
|
776
|
+
total_failed += delete_result.failed;
|
|
546
777
|
}
|
|
547
778
|
}
|
|
548
779
|
return {
|
|
@@ -672,13 +903,16 @@ var clear_core_db = async () => {
|
|
|
672
903
|
"refunds",
|
|
673
904
|
"payment_providers",
|
|
674
905
|
"payments",
|
|
675
|
-
"
|
|
906
|
+
"tax_classes",
|
|
676
907
|
"tax_rates",
|
|
677
908
|
"customers",
|
|
678
909
|
"locations",
|
|
679
910
|
"fulfillment_types",
|
|
680
911
|
"fulfillment_providers",
|
|
681
|
-
"fulfillments"
|
|
912
|
+
"fulfillments",
|
|
913
|
+
"connector_cache",
|
|
914
|
+
"sync_queue",
|
|
915
|
+
"sync_logs"
|
|
682
916
|
];
|
|
683
917
|
for (const table of tables) {
|
|
684
918
|
await local_db?.[table]?.clear();
|
|
@@ -3593,7 +3827,7 @@ var payments = {
|
|
|
3593
3827
|
bulk_delete: bulk_delete12
|
|
3594
3828
|
};
|
|
3595
3829
|
|
|
3596
|
-
// src/services/tax-
|
|
3830
|
+
// src/services/tax-rates.service.ts
|
|
3597
3831
|
var list13 = async (props) => {
|
|
3598
3832
|
try {
|
|
3599
3833
|
const { sdk, query } = props;
|
|
@@ -3605,15 +3839,15 @@ var list13 = async (props) => {
|
|
|
3605
3839
|
}
|
|
3606
3840
|
const adapter = await sdk.adapter();
|
|
3607
3841
|
if (!adapter) throw new Error("Adapter not found");
|
|
3608
|
-
const
|
|
3842
|
+
const rates = await adapter.tax_rates.list({
|
|
3609
3843
|
connector_config: sdk.options.configuration,
|
|
3610
3844
|
query
|
|
3611
3845
|
});
|
|
3612
3846
|
await save_bulk_data({
|
|
3613
|
-
table: "
|
|
3614
|
-
data:
|
|
3847
|
+
table: "tax_rates",
|
|
3848
|
+
data: rates
|
|
3615
3849
|
});
|
|
3616
|
-
return
|
|
3850
|
+
return rates;
|
|
3617
3851
|
} catch (error) {
|
|
3618
3852
|
throw error;
|
|
3619
3853
|
}
|
|
@@ -3629,12 +3863,12 @@ var retrieve13 = async (props) => {
|
|
|
3629
3863
|
}
|
|
3630
3864
|
const adapter = await sdk.adapter();
|
|
3631
3865
|
if (!adapter) throw new Error("Adapter not found");
|
|
3632
|
-
const
|
|
3866
|
+
const rate = await adapter.tax_rates.retrieve({
|
|
3633
3867
|
connector_config: sdk.options.configuration,
|
|
3634
3868
|
id
|
|
3635
3869
|
});
|
|
3636
|
-
await local_db.
|
|
3637
|
-
return
|
|
3870
|
+
await local_db.tax_rates.put(rate);
|
|
3871
|
+
return rate;
|
|
3638
3872
|
} catch (error) {
|
|
3639
3873
|
throw error;
|
|
3640
3874
|
}
|
|
@@ -3642,9 +3876,9 @@ var retrieve13 = async (props) => {
|
|
|
3642
3876
|
var create13 = async (props) => {
|
|
3643
3877
|
try {
|
|
3644
3878
|
const { sdk, data } = props;
|
|
3645
|
-
const offline_id = generate_offline_id("
|
|
3879
|
+
const offline_id = generate_offline_id("tax_rate");
|
|
3646
3880
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
3647
|
-
const
|
|
3881
|
+
const local_rate = {
|
|
3648
3882
|
...data,
|
|
3649
3883
|
id: offline_id,
|
|
3650
3884
|
metadata: {
|
|
@@ -3655,15 +3889,15 @@ var create13 = async (props) => {
|
|
|
3655
3889
|
stall_offline_deleted_at: ""
|
|
3656
3890
|
}
|
|
3657
3891
|
};
|
|
3658
|
-
await local_db.
|
|
3892
|
+
await local_db.tax_rates.add(local_rate);
|
|
3659
3893
|
await add_to_sync_queue({
|
|
3660
3894
|
action: "create",
|
|
3661
|
-
table: "
|
|
3895
|
+
table: "tax_rates",
|
|
3662
3896
|
document_id: offline_id,
|
|
3663
3897
|
stall_offline_id: offline_id,
|
|
3664
|
-
data:
|
|
3898
|
+
data: local_rate
|
|
3665
3899
|
});
|
|
3666
|
-
return
|
|
3900
|
+
return local_rate;
|
|
3667
3901
|
} catch (error) {
|
|
3668
3902
|
throw error;
|
|
3669
3903
|
}
|
|
@@ -3671,12 +3905,12 @@ var create13 = async (props) => {
|
|
|
3671
3905
|
var update13 = async (props) => {
|
|
3672
3906
|
try {
|
|
3673
3907
|
const { sdk, id, data } = props;
|
|
3674
|
-
const existing = await local_db.
|
|
3908
|
+
const existing = await local_db.tax_rates.get(id);
|
|
3675
3909
|
if (!existing) {
|
|
3676
|
-
throw new Error(`Tax
|
|
3910
|
+
throw new Error(`Tax rate with id ${id} not found locally`);
|
|
3677
3911
|
}
|
|
3678
3912
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
3679
|
-
const
|
|
3913
|
+
const updated_rate = {
|
|
3680
3914
|
...existing,
|
|
3681
3915
|
...data,
|
|
3682
3916
|
id: existing.id,
|
|
@@ -3689,15 +3923,15 @@ var update13 = async (props) => {
|
|
|
3689
3923
|
stall_offline_deleted_at: existing.metadata.stall_offline_deleted_at
|
|
3690
3924
|
}
|
|
3691
3925
|
};
|
|
3692
|
-
await local_db.
|
|
3926
|
+
await local_db.tax_rates.put(updated_rate);
|
|
3693
3927
|
await add_to_sync_queue({
|
|
3694
3928
|
action: "update",
|
|
3695
|
-
table: "
|
|
3929
|
+
table: "tax_rates",
|
|
3696
3930
|
document_id: id,
|
|
3697
3931
|
stall_offline_id: existing.metadata.stall_offline_id,
|
|
3698
|
-
data:
|
|
3932
|
+
data: updated_rate
|
|
3699
3933
|
});
|
|
3700
|
-
return
|
|
3934
|
+
return updated_rate;
|
|
3701
3935
|
} catch (error) {
|
|
3702
3936
|
throw error;
|
|
3703
3937
|
}
|
|
@@ -3705,18 +3939,18 @@ var update13 = async (props) => {
|
|
|
3705
3939
|
var _delete13 = async (props) => {
|
|
3706
3940
|
try {
|
|
3707
3941
|
const { sdk, id } = props;
|
|
3708
|
-
const existing = await local_db.
|
|
3942
|
+
const existing = await local_db.tax_rates.get(id);
|
|
3709
3943
|
if (!existing) {
|
|
3710
|
-
throw new Error(`Tax
|
|
3944
|
+
throw new Error(`Tax rate with id ${id} not found locally`);
|
|
3711
3945
|
}
|
|
3712
3946
|
await add_to_sync_queue({
|
|
3713
3947
|
action: "delete",
|
|
3714
|
-
table: "
|
|
3948
|
+
table: "tax_rates",
|
|
3715
3949
|
document_id: id,
|
|
3716
3950
|
stall_offline_id: existing.metadata.stall_offline_id,
|
|
3717
3951
|
data: { id }
|
|
3718
3952
|
});
|
|
3719
|
-
await local_db.
|
|
3953
|
+
await local_db.tax_rates.delete(id);
|
|
3720
3954
|
return;
|
|
3721
3955
|
} catch (error) {
|
|
3722
3956
|
throw error;
|
|
@@ -3726,31 +3960,31 @@ var bulk_create13 = async (props) => {
|
|
|
3726
3960
|
try {
|
|
3727
3961
|
const { sdk, data } = props;
|
|
3728
3962
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
3729
|
-
const
|
|
3730
|
-
for (const
|
|
3731
|
-
const offline_id = generate_offline_id("
|
|
3732
|
-
const
|
|
3733
|
-
...
|
|
3963
|
+
const created_rates = [];
|
|
3964
|
+
for (const rate of data) {
|
|
3965
|
+
const offline_id = generate_offline_id("tax_rate");
|
|
3966
|
+
const local_rate = {
|
|
3967
|
+
...rate,
|
|
3734
3968
|
id: offline_id,
|
|
3735
3969
|
metadata: {
|
|
3736
|
-
...
|
|
3970
|
+
...rate.metadata,
|
|
3737
3971
|
stall_offline_id: offline_id,
|
|
3738
3972
|
stall_offline_created_at: now,
|
|
3739
3973
|
stall_offline_updated_at: now,
|
|
3740
3974
|
stall_offline_deleted_at: ""
|
|
3741
3975
|
}
|
|
3742
3976
|
};
|
|
3743
|
-
await local_db.
|
|
3977
|
+
await local_db.tax_rates.add(local_rate);
|
|
3744
3978
|
await add_to_sync_queue({
|
|
3745
3979
|
action: "create",
|
|
3746
|
-
table: "
|
|
3980
|
+
table: "tax_rates",
|
|
3747
3981
|
document_id: offline_id,
|
|
3748
3982
|
stall_offline_id: offline_id,
|
|
3749
|
-
data:
|
|
3983
|
+
data: local_rate
|
|
3750
3984
|
});
|
|
3751
|
-
|
|
3985
|
+
created_rates.push(local_rate);
|
|
3752
3986
|
}
|
|
3753
|
-
return
|
|
3987
|
+
return created_rates;
|
|
3754
3988
|
} catch (error) {
|
|
3755
3989
|
throw error;
|
|
3756
3990
|
}
|
|
@@ -3759,16 +3993,14 @@ var bulk_update13 = async (props) => {
|
|
|
3759
3993
|
try {
|
|
3760
3994
|
const { sdk, data } = props;
|
|
3761
3995
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
3762
|
-
const
|
|
3996
|
+
const updated_rates = [];
|
|
3763
3997
|
for (const item of data) {
|
|
3764
|
-
const existing = await local_db.
|
|
3998
|
+
const existing = await local_db.tax_rates.get(item.id);
|
|
3765
3999
|
if (!existing) {
|
|
3766
|
-
console.warn(
|
|
3767
|
-
`Tax region with id ${item.id} not found locally, skipping`
|
|
3768
|
-
);
|
|
4000
|
+
console.warn(`Tax rate with id ${item.id} not found locally, skipping`);
|
|
3769
4001
|
continue;
|
|
3770
4002
|
}
|
|
3771
|
-
const
|
|
4003
|
+
const updated_rate = {
|
|
3772
4004
|
...existing,
|
|
3773
4005
|
...item.data,
|
|
3774
4006
|
id: existing.id,
|
|
@@ -3781,17 +4013,17 @@ var bulk_update13 = async (props) => {
|
|
|
3781
4013
|
stall_offline_deleted_at: existing.metadata.stall_offline_deleted_at
|
|
3782
4014
|
}
|
|
3783
4015
|
};
|
|
3784
|
-
await local_db.
|
|
4016
|
+
await local_db.tax_rates.put(updated_rate);
|
|
3785
4017
|
await add_to_sync_queue({
|
|
3786
4018
|
action: "update",
|
|
3787
|
-
table: "
|
|
4019
|
+
table: "tax_rates",
|
|
3788
4020
|
document_id: item.id,
|
|
3789
4021
|
stall_offline_id: existing.metadata.stall_offline_id,
|
|
3790
|
-
data:
|
|
4022
|
+
data: updated_rate
|
|
3791
4023
|
});
|
|
3792
|
-
|
|
4024
|
+
updated_rates.push(updated_rate);
|
|
3793
4025
|
}
|
|
3794
|
-
return
|
|
4026
|
+
return updated_rates;
|
|
3795
4027
|
} catch (error) {
|
|
3796
4028
|
throw error;
|
|
3797
4029
|
}
|
|
@@ -3800,26 +4032,26 @@ var bulk_delete13 = async (props) => {
|
|
|
3800
4032
|
try {
|
|
3801
4033
|
const { sdk, ids } = props;
|
|
3802
4034
|
for (const id of ids) {
|
|
3803
|
-
const existing = await local_db.
|
|
4035
|
+
const existing = await local_db.tax_rates.get(id);
|
|
3804
4036
|
if (!existing) {
|
|
3805
|
-
console.warn(`Tax
|
|
4037
|
+
console.warn(`Tax rate with id ${id} not found locally, skipping`);
|
|
3806
4038
|
continue;
|
|
3807
4039
|
}
|
|
3808
4040
|
await add_to_sync_queue({
|
|
3809
4041
|
action: "delete",
|
|
3810
|
-
table: "
|
|
4042
|
+
table: "tax_rates",
|
|
3811
4043
|
document_id: id,
|
|
3812
4044
|
stall_offline_id: existing.metadata.stall_offline_id,
|
|
3813
4045
|
data: { id }
|
|
3814
4046
|
});
|
|
3815
|
-
await local_db.
|
|
4047
|
+
await local_db.tax_rates.delete(id);
|
|
3816
4048
|
}
|
|
3817
4049
|
return;
|
|
3818
4050
|
} catch (error) {
|
|
3819
4051
|
throw error;
|
|
3820
4052
|
}
|
|
3821
4053
|
};
|
|
3822
|
-
var
|
|
4054
|
+
var tax_rates = {
|
|
3823
4055
|
list: list13,
|
|
3824
4056
|
retrieve: retrieve13,
|
|
3825
4057
|
create: create13,
|
|
@@ -3830,7 +4062,7 @@ var tax_regions = {
|
|
|
3830
4062
|
bulk_delete: bulk_delete13
|
|
3831
4063
|
};
|
|
3832
4064
|
|
|
3833
|
-
// src/services/tax-
|
|
4065
|
+
// src/services/tax-classes.service.ts
|
|
3834
4066
|
var list14 = async (props) => {
|
|
3835
4067
|
try {
|
|
3836
4068
|
const { sdk, query } = props;
|
|
@@ -3842,15 +4074,15 @@ var list14 = async (props) => {
|
|
|
3842
4074
|
}
|
|
3843
4075
|
const adapter = await sdk.adapter();
|
|
3844
4076
|
if (!adapter) throw new Error("Adapter not found");
|
|
3845
|
-
const
|
|
4077
|
+
const classes = await adapter.tax_classes.list({
|
|
3846
4078
|
connector_config: sdk.options.configuration,
|
|
3847
4079
|
query
|
|
3848
4080
|
});
|
|
3849
4081
|
await save_bulk_data({
|
|
3850
|
-
table: "
|
|
3851
|
-
data:
|
|
4082
|
+
table: "tax_classes",
|
|
4083
|
+
data: classes
|
|
3852
4084
|
});
|
|
3853
|
-
return
|
|
4085
|
+
return classes;
|
|
3854
4086
|
} catch (error) {
|
|
3855
4087
|
throw error;
|
|
3856
4088
|
}
|
|
@@ -3866,12 +4098,12 @@ var retrieve14 = async (props) => {
|
|
|
3866
4098
|
}
|
|
3867
4099
|
const adapter = await sdk.adapter();
|
|
3868
4100
|
if (!adapter) throw new Error("Adapter not found");
|
|
3869
|
-
const
|
|
4101
|
+
const tax_class = await adapter.tax_classes.retrieve({
|
|
3870
4102
|
connector_config: sdk.options.configuration,
|
|
3871
4103
|
id
|
|
3872
4104
|
});
|
|
3873
|
-
await local_db.
|
|
3874
|
-
return
|
|
4105
|
+
await local_db.tax_classes.put(tax_class);
|
|
4106
|
+
return tax_class;
|
|
3875
4107
|
} catch (error) {
|
|
3876
4108
|
throw error;
|
|
3877
4109
|
}
|
|
@@ -3879,9 +4111,9 @@ var retrieve14 = async (props) => {
|
|
|
3879
4111
|
var create14 = async (props) => {
|
|
3880
4112
|
try {
|
|
3881
4113
|
const { sdk, data } = props;
|
|
3882
|
-
const offline_id = generate_offline_id("
|
|
4114
|
+
const offline_id = generate_offline_id("tax_class");
|
|
3883
4115
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
3884
|
-
const
|
|
4116
|
+
const local_class = {
|
|
3885
4117
|
...data,
|
|
3886
4118
|
id: offline_id,
|
|
3887
4119
|
metadata: {
|
|
@@ -3892,15 +4124,15 @@ var create14 = async (props) => {
|
|
|
3892
4124
|
stall_offline_deleted_at: ""
|
|
3893
4125
|
}
|
|
3894
4126
|
};
|
|
3895
|
-
await local_db.
|
|
4127
|
+
await local_db.tax_classes.add(local_class);
|
|
3896
4128
|
await add_to_sync_queue({
|
|
3897
4129
|
action: "create",
|
|
3898
|
-
table: "
|
|
4130
|
+
table: "tax_classes",
|
|
3899
4131
|
document_id: offline_id,
|
|
3900
4132
|
stall_offline_id: offline_id,
|
|
3901
|
-
data:
|
|
4133
|
+
data: local_class
|
|
3902
4134
|
});
|
|
3903
|
-
return
|
|
4135
|
+
return local_class;
|
|
3904
4136
|
} catch (error) {
|
|
3905
4137
|
throw error;
|
|
3906
4138
|
}
|
|
@@ -3908,12 +4140,12 @@ var create14 = async (props) => {
|
|
|
3908
4140
|
var update14 = async (props) => {
|
|
3909
4141
|
try {
|
|
3910
4142
|
const { sdk, id, data } = props;
|
|
3911
|
-
const existing = await local_db.
|
|
4143
|
+
const existing = await local_db.tax_classes.get(id);
|
|
3912
4144
|
if (!existing) {
|
|
3913
|
-
throw new Error(`Tax
|
|
4145
|
+
throw new Error(`Tax class with id ${id} not found locally`);
|
|
3914
4146
|
}
|
|
3915
4147
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
3916
|
-
const
|
|
4148
|
+
const updated_class = {
|
|
3917
4149
|
...existing,
|
|
3918
4150
|
...data,
|
|
3919
4151
|
id: existing.id,
|
|
@@ -3926,15 +4158,15 @@ var update14 = async (props) => {
|
|
|
3926
4158
|
stall_offline_deleted_at: existing.metadata.stall_offline_deleted_at
|
|
3927
4159
|
}
|
|
3928
4160
|
};
|
|
3929
|
-
await local_db.
|
|
4161
|
+
await local_db.tax_classes.put(updated_class);
|
|
3930
4162
|
await add_to_sync_queue({
|
|
3931
4163
|
action: "update",
|
|
3932
|
-
table: "
|
|
4164
|
+
table: "tax_classes",
|
|
3933
4165
|
document_id: id,
|
|
3934
4166
|
stall_offline_id: existing.metadata.stall_offline_id,
|
|
3935
|
-
data:
|
|
4167
|
+
data: updated_class
|
|
3936
4168
|
});
|
|
3937
|
-
return
|
|
4169
|
+
return updated_class;
|
|
3938
4170
|
} catch (error) {
|
|
3939
4171
|
throw error;
|
|
3940
4172
|
}
|
|
@@ -3942,18 +4174,18 @@ var update14 = async (props) => {
|
|
|
3942
4174
|
var _delete14 = async (props) => {
|
|
3943
4175
|
try {
|
|
3944
4176
|
const { sdk, id } = props;
|
|
3945
|
-
const existing = await local_db.
|
|
4177
|
+
const existing = await local_db.tax_classes.get(id);
|
|
3946
4178
|
if (!existing) {
|
|
3947
|
-
throw new Error(`Tax
|
|
4179
|
+
throw new Error(`Tax class with id ${id} not found locally`);
|
|
3948
4180
|
}
|
|
3949
4181
|
await add_to_sync_queue({
|
|
3950
4182
|
action: "delete",
|
|
3951
|
-
table: "
|
|
4183
|
+
table: "tax_classes",
|
|
3952
4184
|
document_id: id,
|
|
3953
4185
|
stall_offline_id: existing.metadata.stall_offline_id,
|
|
3954
4186
|
data: { id }
|
|
3955
4187
|
});
|
|
3956
|
-
await local_db.
|
|
4188
|
+
await local_db.tax_classes.delete(id);
|
|
3957
4189
|
return;
|
|
3958
4190
|
} catch (error) {
|
|
3959
4191
|
throw error;
|
|
@@ -3963,31 +4195,31 @@ var bulk_create14 = async (props) => {
|
|
|
3963
4195
|
try {
|
|
3964
4196
|
const { sdk, data } = props;
|
|
3965
4197
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
3966
|
-
const
|
|
3967
|
-
for (const
|
|
3968
|
-
const offline_id = generate_offline_id("
|
|
3969
|
-
const
|
|
3970
|
-
...
|
|
4198
|
+
const created_classes = [];
|
|
4199
|
+
for (const tax_class of data) {
|
|
4200
|
+
const offline_id = generate_offline_id("tax_class");
|
|
4201
|
+
const local_class = {
|
|
4202
|
+
...tax_class,
|
|
3971
4203
|
id: offline_id,
|
|
3972
4204
|
metadata: {
|
|
3973
|
-
...
|
|
4205
|
+
...tax_class.metadata,
|
|
3974
4206
|
stall_offline_id: offline_id,
|
|
3975
4207
|
stall_offline_created_at: now,
|
|
3976
4208
|
stall_offline_updated_at: now,
|
|
3977
4209
|
stall_offline_deleted_at: ""
|
|
3978
4210
|
}
|
|
3979
4211
|
};
|
|
3980
|
-
await local_db.
|
|
4212
|
+
await local_db.tax_classes.add(local_class);
|
|
3981
4213
|
await add_to_sync_queue({
|
|
3982
4214
|
action: "create",
|
|
3983
|
-
table: "
|
|
4215
|
+
table: "tax_classes",
|
|
3984
4216
|
document_id: offline_id,
|
|
3985
4217
|
stall_offline_id: offline_id,
|
|
3986
|
-
data:
|
|
4218
|
+
data: local_class
|
|
3987
4219
|
});
|
|
3988
|
-
|
|
4220
|
+
created_classes.push(local_class);
|
|
3989
4221
|
}
|
|
3990
|
-
return
|
|
4222
|
+
return created_classes;
|
|
3991
4223
|
} catch (error) {
|
|
3992
4224
|
throw error;
|
|
3993
4225
|
}
|
|
@@ -3996,14 +4228,14 @@ var bulk_update14 = async (props) => {
|
|
|
3996
4228
|
try {
|
|
3997
4229
|
const { sdk, data } = props;
|
|
3998
4230
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
3999
|
-
const
|
|
4231
|
+
const updated_classes = [];
|
|
4000
4232
|
for (const item of data) {
|
|
4001
|
-
const existing = await local_db.
|
|
4233
|
+
const existing = await local_db.tax_classes.get(item.id);
|
|
4002
4234
|
if (!existing) {
|
|
4003
|
-
console.warn(`Tax
|
|
4235
|
+
console.warn(`Tax class with id ${item.id} not found locally, skipping`);
|
|
4004
4236
|
continue;
|
|
4005
4237
|
}
|
|
4006
|
-
const
|
|
4238
|
+
const updated_class = {
|
|
4007
4239
|
...existing,
|
|
4008
4240
|
...item.data,
|
|
4009
4241
|
id: existing.id,
|
|
@@ -4016,17 +4248,17 @@ var bulk_update14 = async (props) => {
|
|
|
4016
4248
|
stall_offline_deleted_at: existing.metadata.stall_offline_deleted_at
|
|
4017
4249
|
}
|
|
4018
4250
|
};
|
|
4019
|
-
await local_db.
|
|
4251
|
+
await local_db.tax_classes.put(updated_class);
|
|
4020
4252
|
await add_to_sync_queue({
|
|
4021
4253
|
action: "update",
|
|
4022
|
-
table: "
|
|
4254
|
+
table: "tax_classes",
|
|
4023
4255
|
document_id: item.id,
|
|
4024
4256
|
stall_offline_id: existing.metadata.stall_offline_id,
|
|
4025
|
-
data:
|
|
4257
|
+
data: updated_class
|
|
4026
4258
|
});
|
|
4027
|
-
|
|
4259
|
+
updated_classes.push(updated_class);
|
|
4028
4260
|
}
|
|
4029
|
-
return
|
|
4261
|
+
return updated_classes;
|
|
4030
4262
|
} catch (error) {
|
|
4031
4263
|
throw error;
|
|
4032
4264
|
}
|
|
@@ -4035,26 +4267,26 @@ var bulk_delete14 = async (props) => {
|
|
|
4035
4267
|
try {
|
|
4036
4268
|
const { sdk, ids } = props;
|
|
4037
4269
|
for (const id of ids) {
|
|
4038
|
-
const existing = await local_db.
|
|
4270
|
+
const existing = await local_db.tax_classes.get(id);
|
|
4039
4271
|
if (!existing) {
|
|
4040
|
-
console.warn(`Tax
|
|
4272
|
+
console.warn(`Tax class with id ${id} not found locally, skipping`);
|
|
4041
4273
|
continue;
|
|
4042
4274
|
}
|
|
4043
4275
|
await add_to_sync_queue({
|
|
4044
4276
|
action: "delete",
|
|
4045
|
-
table: "
|
|
4277
|
+
table: "tax_classes",
|
|
4046
4278
|
document_id: id,
|
|
4047
4279
|
stall_offline_id: existing.metadata.stall_offline_id,
|
|
4048
4280
|
data: { id }
|
|
4049
4281
|
});
|
|
4050
|
-
await local_db.
|
|
4282
|
+
await local_db.tax_classes.delete(id);
|
|
4051
4283
|
}
|
|
4052
4284
|
return;
|
|
4053
4285
|
} catch (error) {
|
|
4054
4286
|
throw error;
|
|
4055
4287
|
}
|
|
4056
4288
|
};
|
|
4057
|
-
var
|
|
4289
|
+
var tax_classes = {
|
|
4058
4290
|
list: list14,
|
|
4059
4291
|
retrieve: retrieve14,
|
|
4060
4292
|
create: create14,
|
|
@@ -4571,8 +4803,8 @@ var fulfillments = {
|
|
|
4571
4803
|
remove_from_sync_queue,
|
|
4572
4804
|
save_bulk_data,
|
|
4573
4805
|
sync_service,
|
|
4806
|
+
tax_classes,
|
|
4574
4807
|
tax_rates,
|
|
4575
|
-
tax_regions,
|
|
4576
4808
|
update_sync_queue_status,
|
|
4577
4809
|
variants
|
|
4578
4810
|
});
|