@commercejs/adapter-salla 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/__tests__/adapter.contract.test.d.ts +2 -0
  2. package/dist/__tests__/adapter.contract.test.d.ts.map +1 -0
  3. package/dist/__tests__/adapter.contract.test.js +228 -0
  4. package/dist/__tests__/adapter.contract.test.js.map +1 -0
  5. package/dist/__tests__/mappers.test.d.ts +2 -0
  6. package/dist/__tests__/mappers.test.d.ts.map +1 -0
  7. package/dist/__tests__/mappers.test.js +512 -0
  8. package/dist/__tests__/mappers.test.js.map +1 -0
  9. package/dist/adapter.d.ts +85 -0
  10. package/dist/adapter.d.ts.map +1 -0
  11. package/dist/adapter.js +492 -0
  12. package/dist/adapter.js.map +1 -0
  13. package/dist/client.d.ts +43 -0
  14. package/dist/client.d.ts.map +1 -0
  15. package/dist/client.js +162 -0
  16. package/dist/client.js.map +1 -0
  17. package/dist/index.d.ts +6 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +7 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/mappers/brand.d.ts +4 -0
  22. package/dist/mappers/brand.d.ts.map +1 -0
  23. package/dist/mappers/brand.js +20 -0
  24. package/dist/mappers/brand.js.map +1 -0
  25. package/dist/mappers/category.d.ts +5 -0
  26. package/dist/mappers/category.d.ts.map +1 -0
  27. package/dist/mappers/category.js +25 -0
  28. package/dist/mappers/category.js.map +1 -0
  29. package/dist/mappers/country.d.ts +4 -0
  30. package/dist/mappers/country.d.ts.map +1 -0
  31. package/dist/mappers/country.js +14 -0
  32. package/dist/mappers/country.js.map +1 -0
  33. package/dist/mappers/customer.d.ts +7 -0
  34. package/dist/mappers/customer.d.ts.map +1 -0
  35. package/dist/mappers/customer.js +45 -0
  36. package/dist/mappers/customer.js.map +1 -0
  37. package/dist/mappers/index.d.ts +12 -0
  38. package/dist/mappers/index.d.ts.map +1 -0
  39. package/dist/mappers/index.js +15 -0
  40. package/dist/mappers/index.js.map +1 -0
  41. package/dist/mappers/location.d.ts +4 -0
  42. package/dist/mappers/location.d.ts.map +1 -0
  43. package/dist/mappers/location.js +44 -0
  44. package/dist/mappers/location.js.map +1 -0
  45. package/dist/mappers/order-status.d.ts +7 -0
  46. package/dist/mappers/order-status.d.ts.map +1 -0
  47. package/dist/mappers/order-status.js +38 -0
  48. package/dist/mappers/order-status.js.map +1 -0
  49. package/dist/mappers/order.d.ts +5 -0
  50. package/dist/mappers/order.d.ts.map +1 -0
  51. package/dist/mappers/order.js +141 -0
  52. package/dist/mappers/order.js.map +1 -0
  53. package/dist/mappers/payment.d.ts +5 -0
  54. package/dist/mappers/payment.d.ts.map +1 -0
  55. package/dist/mappers/payment.js +20 -0
  56. package/dist/mappers/payment.js.map +1 -0
  57. package/dist/mappers/product.d.ts +5 -0
  58. package/dist/mappers/product.d.ts.map +1 -0
  59. package/dist/mappers/product.js +143 -0
  60. package/dist/mappers/product.js.map +1 -0
  61. package/dist/mappers/review.d.ts +5 -0
  62. package/dist/mappers/review.d.ts.map +1 -0
  63. package/dist/mappers/review.js +17 -0
  64. package/dist/mappers/review.js.map +1 -0
  65. package/dist/mappers/shipping.d.ts +5 -0
  66. package/dist/mappers/shipping.d.ts.map +1 -0
  67. package/dist/mappers/shipping.js +20 -0
  68. package/dist/mappers/shipping.js.map +1 -0
  69. package/dist/types.d.ts +472 -0
  70. package/dist/types.d.ts.map +1 -0
  71. package/dist/types.js +5 -0
  72. package/dist/types.js.map +1 -0
  73. package/package.json +32 -0
@@ -0,0 +1,512 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Mapper unit tests — Salla raw data → unified domain types
3
+ // ---------------------------------------------------------------------------
4
+ import { describe, it, expect } from 'vitest';
5
+ import { mapSallaProduct } from '../mappers/product.js';
6
+ import { mapSallaCategory } from '../mappers/category.js';
7
+ import { mapSallaCustomer, mapSallaAddress } from '../mappers/customer.js';
8
+ import { mapSallaOrder } from '../mappers/order.js';
9
+ import { mapSallaReview } from '../mappers/review.js';
10
+ import { mapSallaBrand } from '../mappers/brand.js';
11
+ import { mapSallaCountry } from '../mappers/country.js';
12
+ import { mapSallaBranch } from '../mappers/location.js';
13
+ import { mapSallaOrderStatus, mapSallaOrderHistory } from '../mappers/order-status.js';
14
+ // ---------------------------------------------------------------------------
15
+ // Fixtures
16
+ // ---------------------------------------------------------------------------
17
+ const rawProduct = {
18
+ id: 100,
19
+ sku: 'SKU-100',
20
+ name: 'Test Product',
21
+ description: '<p>Product description</p>',
22
+ short_description: 'Short desc',
23
+ slug: 'test-product',
24
+ status: 'sale',
25
+ type: 'product',
26
+ price: { amount: 99.99, currency: 'SAR' },
27
+ sale_price: { amount: 79.99, currency: 'SAR' },
28
+ regular_price: { amount: 99.99, currency: 'SAR' },
29
+ quantity: 50,
30
+ max_quantity_per_order: 10,
31
+ min_quantity_per_order: 1,
32
+ images: [{ id: 1, url: 'https://cdn.salla.sa/img1.jpg', alt: 'Main', sort: 0, main: true, type: 'image', three_d_image_url: null, video_url: null }],
33
+ categories: [{ id: 10, name: 'الملابس', slug: 'clothing' }],
34
+ options: [],
35
+ skus: [],
36
+ tags: [{ name: 'new' }],
37
+ brand: { id: 5, name: 'Nike', slug: 'nike' },
38
+ rating: { count: 12, average: 4.5 },
39
+ weight: 0.5,
40
+ weight_unit: 'kg',
41
+ require_shipping: true,
42
+ urls: { customer: 'https://store.test/p/test-product', admin: 'https://s.salla.sa/admin/products/100' },
43
+ promotion: null,
44
+ has_options: false,
45
+ is_available: true,
46
+ created_at: '2025-01-01T00:00:00Z',
47
+ updated_at: '2025-06-01T00:00:00Z',
48
+ metadata: null,
49
+ };
50
+ const rawCategory = {
51
+ id: 10,
52
+ name: 'الملابس',
53
+ slug: 'clothing',
54
+ description: 'Category description',
55
+ image: null,
56
+ parent_id: null,
57
+ sort_order: 1,
58
+ status: 'active',
59
+ urls: { customer: 'https://store.test/c/clothing', admin: 'https://s.salla.sa/admin/categories/10' },
60
+ products_count: 25,
61
+ created_at: '2025-01-01T00:00:00Z',
62
+ updated_at: '2025-06-01T00:00:00Z',
63
+ };
64
+ const rawCustomer = {
65
+ id: 200,
66
+ first_name: 'أحمد',
67
+ last_name: 'محمد',
68
+ email: 'ahmed@test.com',
69
+ mobile: '501234567',
70
+ mobile_code: '+966',
71
+ avatar: null,
72
+ gender: null,
73
+ birthday: null,
74
+ city: 'Riyadh',
75
+ country: 'SA',
76
+ currency: 'SAR',
77
+ urls: { customer: '', admin: '' },
78
+ created_at: '2025-03-15T10:00:00Z',
79
+ updated_at: '2025-06-01T10:00:00Z',
80
+ };
81
+ const rawAddress = {
82
+ id: 50,
83
+ city: 'Riyadh',
84
+ country: 'Saudi Arabia',
85
+ country_code: 'SA',
86
+ street_number: '123 King Fahd Rd',
87
+ block: 'Al Olaya',
88
+ postal_code: '12345',
89
+ lat: '24.7136',
90
+ lng: '46.6753',
91
+ };
92
+ const rawOrder = {
93
+ id: 300,
94
+ reference_id: 'ORD-300',
95
+ status: { id: 1, name: 'Under Review', slug: 'under_review', customized: null },
96
+ payment_method: 'credit_card',
97
+ currency: 'SAR',
98
+ amounts: {
99
+ total: { amount: 120, currency: 'SAR' },
100
+ sub_total: { amount: 100, currency: 'SAR' },
101
+ shipping_cost: { amount: 15, currency: 'SAR' },
102
+ cash_on_delivery: { amount: 0, currency: 'SAR' },
103
+ tax: { percent: '15%', amount: { amount: 15, currency: 'SAR' } },
104
+ discounts: [{ amount: 10, currency: 'SAR' }],
105
+ },
106
+ items: [
107
+ {
108
+ id: 1,
109
+ product_id: 100,
110
+ sku: 'SKU-100',
111
+ name: 'Test Product',
112
+ quantity: 2,
113
+ price: { amount: 50, currency: 'SAR' },
114
+ total: { amount: 100, currency: 'SAR' },
115
+ },
116
+ ],
117
+ customer: rawCustomer,
118
+ shipping: {
119
+ company: 'Aramex',
120
+ receiver: { name: 'أحمد محمد', phone: '+966501234567' },
121
+ address: rawAddress,
122
+ shipment: { tracking_link: 'https://track.test/123', tracking_number: 'TRK123' },
123
+ },
124
+ coupon: { code: 'SAVE10', discount: 10 },
125
+ note: 'Please leave at door',
126
+ urls: { customer: '', admin: '' },
127
+ created_at: '2025-06-01T10:00:00Z',
128
+ updated_at: '2025-06-01T12:00:00Z',
129
+ date: { date: '2025-06-01 10:00:00', timezone_type: 3, timezone: 'Asia/Riyadh' },
130
+ };
131
+ const rawReview = {
132
+ id: 400,
133
+ content: 'Great product!',
134
+ rating: 5,
135
+ customer: { id: 200, name: 'أحمد', avatar: null },
136
+ product_id: 100,
137
+ status: 'published',
138
+ created_at: '2025-06-15T08:00:00Z',
139
+ updated_at: '2025-06-15T08:00:00Z',
140
+ };
141
+ const rawBrand = {
142
+ id: 5,
143
+ name: 'Nike',
144
+ description: 'Just Do It',
145
+ logo: 'https://cdn.salla.sa/nike.png',
146
+ slug: 'nike',
147
+ status: 'active',
148
+ };
149
+ const rawCountry = {
150
+ id: 1,
151
+ name: 'المملكة العربية السعودية',
152
+ name_en: 'Saudi Arabia',
153
+ code: 'SA',
154
+ mobile_code: '+966',
155
+ capital: 'Riyadh',
156
+ };
157
+ const rawBranch = {
158
+ id: 1,
159
+ name: 'فرع الرياض',
160
+ status: 'active',
161
+ is_default: true,
162
+ location: { lat: '24.7136', lng: '46.6753' },
163
+ short_address: 'Riyadh, Saudi Arabia',
164
+ street: 'King Fahd Road',
165
+ address_description: 'Near Al Faisaliah Tower',
166
+ postal_code: '12345',
167
+ contacts: { phone: '+966112345678', whatsapp: null, telephone: null },
168
+ working_hours: [
169
+ { day: 'Sunday', from: '09:00', to: '21:00' },
170
+ ],
171
+ is_open: true,
172
+ is_cod_available: true,
173
+ pickable: true,
174
+ shippable: true,
175
+ country: { id: 1, name: 'السعودية', name_en: 'Saudi Arabia', code: 'SA' },
176
+ city: { id: 1, name: 'الرياض', name_en: 'Riyadh' },
177
+ region: { id: 1, name: 'منطقة الرياض', code: 'RUH' },
178
+ };
179
+ // ---------------------------------------------------------------------------
180
+ // Tests
181
+ // ---------------------------------------------------------------------------
182
+ describe('mapSallaProduct', () => {
183
+ it('maps id and slug correctly', () => {
184
+ const product = mapSallaProduct(rawProduct, 'en');
185
+ expect(product.id).toBe('100');
186
+ expect(product.slug).toBe('test-product');
187
+ expect(product.sku).toBe('SKU-100');
188
+ });
189
+ it('maps bilingual name', () => {
190
+ const productAr = mapSallaProduct(rawProduct, 'ar');
191
+ expect(productAr.name.ar).toBe('Test Product');
192
+ const productEn = mapSallaProduct(rawProduct, 'en');
193
+ expect(productEn.name.en).toBe('Test Product');
194
+ });
195
+ it('maps price and sale price', () => {
196
+ const product = mapSallaProduct(rawProduct, 'en');
197
+ expect(product.price.amount).toBe(99.99);
198
+ expect(product.price.currency).toBe('SAR');
199
+ });
200
+ it('maps gallery', () => {
201
+ const product = mapSallaProduct(rawProduct, 'en');
202
+ expect(product.gallery.length).toBe(1);
203
+ expect(product.gallery[0].url).toBe('https://cdn.salla.sa/img1.jpg');
204
+ });
205
+ it('maps availability', () => {
206
+ const product = mapSallaProduct(rawProduct, 'en');
207
+ expect(product.inStock).toBe(true);
208
+ });
209
+ it('maps categories', () => {
210
+ const product = mapSallaProduct(rawProduct, 'en');
211
+ expect(product.categories.length).toBe(1);
212
+ expect(product.categories[0].id).toBe('10');
213
+ });
214
+ });
215
+ describe('mapSallaCategory', () => {
216
+ it('maps id and slug', () => {
217
+ const cat = mapSallaCategory(rawCategory, 'en');
218
+ expect(cat.id).toBe('10');
219
+ expect(cat.slug).toBe('clothing');
220
+ });
221
+ it('maps localized name', () => {
222
+ const cat = mapSallaCategory(rawCategory, 'ar');
223
+ expect(cat.name.ar).toBe('الملابس');
224
+ });
225
+ it('maps parent_id as null when no parent', () => {
226
+ const cat = mapSallaCategory(rawCategory, 'en');
227
+ expect(cat.parentId).toBeNull();
228
+ });
229
+ });
230
+ describe('mapSallaCustomer', () => {
231
+ it('maps id and email', () => {
232
+ const customer = mapSallaCustomer(rawCustomer);
233
+ expect(customer.id).toBe('200');
234
+ expect(customer.email).toBe('ahmed@test.com');
235
+ });
236
+ it('maps name fields', () => {
237
+ const customer = mapSallaCustomer(rawCustomer);
238
+ expect(customer.firstName).toBe('أحمد');
239
+ expect(customer.lastName).toBe('محمد');
240
+ });
241
+ it('maps phone with mobile code', () => {
242
+ const customer = mapSallaCustomer(rawCustomer);
243
+ expect(customer.phone).toBe('+966501234567');
244
+ });
245
+ it('handles object date format', () => {
246
+ const customerWithObjDate = {
247
+ ...rawCustomer,
248
+ created_at: { date: '2025-03-15 10:00:00', timezone_type: 3, timezone: 'Asia/Riyadh' },
249
+ };
250
+ const customer = mapSallaCustomer(customerWithObjDate);
251
+ expect(customer.createdAt).toBe('2025-03-15 10:00:00');
252
+ });
253
+ });
254
+ describe('mapSallaAddress', () => {
255
+ it('maps id', () => {
256
+ const addr = mapSallaAddress(rawAddress);
257
+ expect(addr.id).toBe('50');
258
+ });
259
+ it('maps city and country code', () => {
260
+ const addr = mapSallaAddress(rawAddress);
261
+ expect(addr.city).toBe('Riyadh');
262
+ expect(addr.country).toBe('SA');
263
+ });
264
+ it('maps street from street_number and block', () => {
265
+ const addr = mapSallaAddress(rawAddress);
266
+ expect(addr.street).toContain('123 King Fahd Rd');
267
+ expect(addr.street).toContain('Al Olaya');
268
+ });
269
+ it('maps postal code', () => {
270
+ const addr = mapSallaAddress(rawAddress);
271
+ expect(addr.postalCode).toBe('12345');
272
+ });
273
+ it('handles null fields gracefully', () => {
274
+ const sparse = {
275
+ id: 99, city: null, country: null, country_code: null,
276
+ street_number: null, block: null, postal_code: null, lat: null, lng: null,
277
+ };
278
+ const addr = mapSallaAddress(sparse);
279
+ expect(addr.city).toBe('');
280
+ expect(addr.country).toBe('');
281
+ expect(addr.postalCode).toBeNull();
282
+ });
283
+ });
284
+ describe('mapSallaOrder', () => {
285
+ it('maps id and order number', () => {
286
+ const order = mapSallaOrder(rawOrder, 'en');
287
+ expect(order.id).toBe('300');
288
+ expect(order.orderNumber).toBe('ORD-300');
289
+ });
290
+ it('maps status correctly', () => {
291
+ const order = mapSallaOrder(rawOrder, 'en');
292
+ expect(order.status).toBe('processing'); // under_review → processing
293
+ });
294
+ it('maps order items', () => {
295
+ const order = mapSallaOrder(rawOrder, 'en');
296
+ expect(order.items.length).toBe(1);
297
+ expect(order.items[0].productId).toBe('100');
298
+ expect(order.items[0].quantity).toBe(2);
299
+ });
300
+ it('maps totals correctly', () => {
301
+ const order = mapSallaOrder(rawOrder, 'en');
302
+ expect(order.totals.subtotal.amount).toBe(100);
303
+ expect(order.totals.shipping.amount).toBe(15);
304
+ expect(order.totals.tax.amount).toBe(15);
305
+ expect(order.totals.discount.amount).toBe(10);
306
+ expect(order.totals.total.amount).toBe(120);
307
+ });
308
+ it('maps shipping info', () => {
309
+ const order = mapSallaOrder(rawOrder, 'en');
310
+ expect(order.trackingNumber).toBe('TRK123');
311
+ expect(order.trackingUrl).toBe('https://track.test/123');
312
+ expect(order.shippingMethod).not.toBeNull();
313
+ });
314
+ it('maps payment method', () => {
315
+ const order = mapSallaOrder(rawOrder, 'en');
316
+ expect(order.paymentMethod).not.toBeNull();
317
+ expect(order.paymentMethod?.provider).toBe('credit_card');
318
+ });
319
+ it('maps customer ID', () => {
320
+ const order = mapSallaOrder(rawOrder, 'en');
321
+ expect(order.customerId).toBe('200');
322
+ });
323
+ it('maps note', () => {
324
+ const order = mapSallaOrder(rawOrder, 'en');
325
+ expect(order.note).toBe('Please leave at door');
326
+ });
327
+ it('handles various status slugs', () => {
328
+ const statuses = [
329
+ ['under_review', 'processing'],
330
+ ['in_progress', 'processing'],
331
+ ['completed', 'delivered'],
332
+ ['delivered', 'delivered'],
333
+ ['shipped', 'shipped'],
334
+ ['in_transit', 'shipped'],
335
+ ['cancelled', 'cancelled'],
336
+ ['refunded', 'refunded'],
337
+ ['restoring', 'returned'],
338
+ ['restored', 'returned'],
339
+ ['new', 'pending'],
340
+ ];
341
+ for (const [slug, expected] of statuses) {
342
+ const order = mapSallaOrder({
343
+ ...rawOrder,
344
+ status: { ...rawOrder.status, slug },
345
+ }, 'en');
346
+ expect(order.status).toBe(expected);
347
+ }
348
+ });
349
+ });
350
+ describe('mapSallaReview', () => {
351
+ it('maps id and rating', () => {
352
+ const review = mapSallaReview(rawReview);
353
+ expect(review.id).toBe('400');
354
+ expect(review.rating).toBe(5);
355
+ });
356
+ it('maps content as body', () => {
357
+ const review = mapSallaReview(rawReview);
358
+ expect(review.body).toBe('Great product!');
359
+ });
360
+ it('maps product ID', () => {
361
+ const review = mapSallaReview(rawReview);
362
+ expect(review.productId).toBe('100');
363
+ });
364
+ });
365
+ describe('mapSallaBrand', () => {
366
+ it('maps id and name', () => {
367
+ const brand = mapSallaBrand(rawBrand, 'en');
368
+ expect(brand.id).toBe('5');
369
+ expect(brand.name.en).toBe('Nike');
370
+ });
371
+ it('maps logo', () => {
372
+ const brand = mapSallaBrand(rawBrand, 'en');
373
+ expect(brand.logo?.url).toBe('https://cdn.salla.sa/nike.png');
374
+ });
375
+ });
376
+ describe('mapSallaCountry', () => {
377
+ it('maps code', () => {
378
+ const country = mapSallaCountry(rawCountry);
379
+ expect(country.code).toBe('SA');
380
+ });
381
+ it('maps bilingual name', () => {
382
+ const country = mapSallaCountry(rawCountry);
383
+ expect(country.name.ar).toBe('المملكة العربية السعودية');
384
+ expect(country.name.en).toBe('Saudi Arabia');
385
+ });
386
+ });
387
+ describe('mapSallaBranch', () => {
388
+ it('maps id and name', () => {
389
+ const location = mapSallaBranch(rawBranch, 'ar');
390
+ expect(location.id).toBe('1');
391
+ });
392
+ it('maps coordinates', () => {
393
+ const location = mapSallaBranch(rawBranch, 'ar');
394
+ expect(location.coordinates?.lat).toBe(24.7136);
395
+ expect(location.coordinates?.lng).toBe(46.6753);
396
+ });
397
+ });
398
+ // ---------------------------------------------------------------------------
399
+ // Order Status & History mappers
400
+ // ---------------------------------------------------------------------------
401
+ const rawOrderStatus = {
402
+ id: 5,
403
+ name: 'In Progress',
404
+ type: 'original',
405
+ slug: 'in_progress',
406
+ message: 'Your order is being prepared',
407
+ color: '#3498db',
408
+ icon: 'fas fa-spinner',
409
+ sort: 3,
410
+ is_active: true,
411
+ original: null,
412
+ parent: null,
413
+ children: [
414
+ {
415
+ id: 50,
416
+ name: '40 minutes left',
417
+ type: 'custom',
418
+ slug: 'custom_40_min',
419
+ message: null,
420
+ color: '#e67e22',
421
+ icon: null,
422
+ sort: 1,
423
+ is_active: true,
424
+ original: { id: 5, name: 'In Progress' },
425
+ parent: { id: 5, name: 'In Progress' },
426
+ children: null,
427
+ },
428
+ ],
429
+ };
430
+ const rawOrderHistory = {
431
+ id: 100,
432
+ action: 'Order created',
433
+ note: 'Auto-generated',
434
+ created_at: '2025-06-01T10:00:00Z',
435
+ };
436
+ describe('mapSallaOrderStatus', () => {
437
+ it('maps id and slug', () => {
438
+ const status = mapSallaOrderStatus(rawOrderStatus);
439
+ expect(status.id).toBe('5');
440
+ expect(status.slug).toBe('in_progress');
441
+ });
442
+ it('maps name and type', () => {
443
+ const status = mapSallaOrderStatus(rawOrderStatus);
444
+ expect(status.name).toBe('In Progress');
445
+ expect(status.type).toBe('original');
446
+ });
447
+ it('maps color and icon', () => {
448
+ const status = mapSallaOrderStatus(rawOrderStatus);
449
+ expect(status.color).toBe('#3498db');
450
+ expect(status.icon).toBe('fas fa-spinner');
451
+ });
452
+ it('maps isActive from is_active', () => {
453
+ const status = mapSallaOrderStatus(rawOrderStatus);
454
+ expect(status.isActive).toBe(true);
455
+ });
456
+ it('maps parent as null for top-level', () => {
457
+ const status = mapSallaOrderStatus(rawOrderStatus);
458
+ expect(status.parent).toBeNull();
459
+ });
460
+ it('recursively maps children', () => {
461
+ const status = mapSallaOrderStatus(rawOrderStatus);
462
+ expect(status.children.length).toBe(1);
463
+ expect(status.children[0].id).toBe('50');
464
+ expect(status.children[0].slug).toBe('custom_40_min');
465
+ expect(status.children[0].type).toBe('custom');
466
+ expect(status.children[0].parent).toEqual({ id: '5', name: 'In Progress' });
467
+ });
468
+ it('handles null children as empty array', () => {
469
+ const noChildren = { ...rawOrderStatus, children: null };
470
+ const status = mapSallaOrderStatus(noChildren);
471
+ expect(status.children).toEqual([]);
472
+ });
473
+ it('handles null color and icon', () => {
474
+ const plain = { ...rawOrderStatus, color: null, icon: null };
475
+ const status = mapSallaOrderStatus(plain);
476
+ expect(status.color).toBeNull();
477
+ expect(status.icon).toBeNull();
478
+ });
479
+ });
480
+ describe('mapSallaOrderHistory', () => {
481
+ it('maps id and orderId', () => {
482
+ const entry = mapSallaOrderHistory(rawOrderHistory, '300');
483
+ expect(entry.id).toBe('100');
484
+ expect(entry.orderId).toBe('300');
485
+ });
486
+ it('maps action', () => {
487
+ const entry = mapSallaOrderHistory(rawOrderHistory, '300');
488
+ expect(entry.action).toBe('Order created');
489
+ });
490
+ it('maps note', () => {
491
+ const entry = mapSallaOrderHistory(rawOrderHistory, '300');
492
+ expect(entry.note).toBe('Auto-generated');
493
+ });
494
+ it('maps createdAt from ISO string', () => {
495
+ const entry = mapSallaOrderHistory(rawOrderHistory, '300');
496
+ expect(entry.createdAt).toBe('2025-06-01T10:00:00Z');
497
+ });
498
+ it('maps createdAt from Salla date object', () => {
499
+ const objDate = {
500
+ ...rawOrderHistory,
501
+ created_at: { date: '2025-06-01 10:00:00', timezone_type: 3, timezone: 'Asia/Riyadh' },
502
+ };
503
+ const entry = mapSallaOrderHistory(objDate, '300');
504
+ expect(entry.createdAt).toBe('2025-06-01 10:00:00');
505
+ });
506
+ it('handles null note', () => {
507
+ const noNote = { ...rawOrderHistory, note: null };
508
+ const entry = mapSallaOrderHistory(noNote, '300');
509
+ expect(entry.note).toBeNull();
510
+ });
511
+ });
512
+ //# sourceMappingURL=mappers.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mappers.test.js","sourceRoot":"","sources":["../../src/__tests__/mappers.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ import { type CommerceAdapter, type AdapterDomain, type Product, type Category, type Cart, type Order, type Customer, type Wishlist, type StoreInfo, type SearchResult, type SearchParams, type GetProductParams, type GetCategoriesParams, type AddToCartInput, type CreateOrderInput, type UpdateOrderStatusInput, type OrderStatusInfo, type OrderHistoryEntry, type Address, type ShippingMethod, type PaymentMethod, type PaginatedResult, type PaginationParams, type RegisterInput, type UpdateCustomerInput, type Review, type ReviewInput, type ReviewSummary, type Promotion, type Coupon, type ReturnRequest, type CreateReturnInput, type CustomerGroup, type QuoteRequest, type CreateQuoteInput, type Bid, type PlaceBidInput, type RentalBooking, type CreateRentalBookingInput, type AvailabilitySlot, type GiftCard, type GiftCardTransaction, type PurchaseGiftCardInput, type RedeemGiftCardInput, type Brand, type Country, type StoreLocation } from '@commercejs/types';
2
+ import type { SallaConfig } from './types.js';
3
+ export declare class SallaAdapter implements CommerceAdapter {
4
+ readonly name: "salla";
5
+ private readonly client;
6
+ private readonly locale;
7
+ /**
8
+ * Domains this adapter actually supports (methods won't throw NOT_SUPPORTED).
9
+ * Used by consumers to check capability before calling.
10
+ */
11
+ readonly capabilities: AdapterDomain[];
12
+ constructor(config: SallaConfig);
13
+ getProduct(params: GetProductParams): Promise<Product>;
14
+ getProducts(params: SearchParams): Promise<SearchResult>;
15
+ getCategories(params?: GetCategoriesParams): Promise<Category[]>;
16
+ createCart(): Promise<Cart>;
17
+ getCart(_cartId: string): Promise<Cart>;
18
+ addToCart(_cartId: string, _item: AddToCartInput): Promise<Cart>;
19
+ updateCartItem(_cartId: string, _itemId: string, _quantity: number): Promise<Cart>;
20
+ removeFromCart(_cartId: string, _itemId: string): Promise<Cart>;
21
+ applyCoupon(_cartId: string, _code: string): Promise<Cart>;
22
+ removeCoupon(_cartId: string): Promise<Cart>;
23
+ getShippingMethods(_cartId: string): Promise<ShippingMethod[]>;
24
+ setShippingAddress(_cartId: string, _address: Omit<Address, 'id' | 'isDefault'>): Promise<Cart>;
25
+ setBillingAddress(_cartId: string, _address: Omit<Address, 'id' | 'isDefault'>): Promise<Cart>;
26
+ setShippingMethod(_cartId: string, _methodId: string): Promise<Cart>;
27
+ getPaymentMethods(_cartId: string): Promise<PaymentMethod[]>;
28
+ setPaymentMethod(_cartId: string, _methodId: string): Promise<Cart>;
29
+ placeOrder(_cartId: string): Promise<Order>;
30
+ login(_email: string, _password: string): Promise<Customer>;
31
+ register(input: RegisterInput): Promise<Customer>;
32
+ getCustomer(): Promise<Customer>;
33
+ updateCustomer(input: UpdateCustomerInput): Promise<Customer>;
34
+ logout(): Promise<void>;
35
+ forgotPassword(_email: string): Promise<void>;
36
+ resetPassword(_token: string, _newPassword: string): Promise<void>;
37
+ getAddresses(): Promise<Address[]>;
38
+ addAddress(_address: Omit<Address, 'id'>): Promise<Address>;
39
+ updateAddress(_addressId: string, _address: Partial<Omit<Address, 'id'>>): Promise<Address>;
40
+ deleteAddress(_addressId: string): Promise<void>;
41
+ createOrder(input: CreateOrderInput): Promise<Order>;
42
+ getCustomerOrders(params?: PaginationParams): Promise<PaginatedResult<Order>>;
43
+ getOrder(orderId: string): Promise<Order>;
44
+ getOrderStatuses(): Promise<OrderStatusInfo[]>;
45
+ updateOrderStatus(orderId: string, input: UpdateOrderStatusInput): Promise<void>;
46
+ cancelOrder(orderId: string, note?: string): Promise<void>;
47
+ duplicateOrder(orderId: string): Promise<Order>;
48
+ getOrderHistory(orderId: string): Promise<OrderHistoryEntry[]>;
49
+ getWishlist(): Promise<Wishlist>;
50
+ addToWishlist(_productId: string, _variantId?: string): Promise<Wishlist>;
51
+ removeFromWishlist(_itemId: string): Promise<Wishlist>;
52
+ getProductReviews(productId: string, params?: PaginationParams): Promise<PaginatedResult<Review>>;
53
+ getReviewSummary(productId: string): Promise<ReviewSummary>;
54
+ submitReview(input: ReviewInput): Promise<Review>;
55
+ getStoreInfo(): Promise<StoreInfo>;
56
+ getActivePromotions(): Promise<Promotion[]>;
57
+ validateCoupon(code: string): Promise<Coupon>;
58
+ createReturn(_input: CreateReturnInput): Promise<ReturnRequest>;
59
+ getReturns(_params?: PaginationParams): Promise<PaginatedResult<ReturnRequest>>;
60
+ getReturn(_returnId: string): Promise<ReturnRequest>;
61
+ cancelReturn(_returnId: string): Promise<ReturnRequest>;
62
+ getCustomerGroups(): Promise<CustomerGroup[]>;
63
+ createQuote(_input: CreateQuoteInput): Promise<QuoteRequest>;
64
+ getQuotes(_params?: PaginationParams): Promise<PaginatedResult<QuoteRequest>>;
65
+ getQuote(_quoteId: string): Promise<QuoteRequest>;
66
+ acceptQuote(_quoteId: string): Promise<QuoteRequest>;
67
+ rejectQuote(_quoteId: string): Promise<QuoteRequest>;
68
+ placeBid(_input: PlaceBidInput): Promise<Bid>;
69
+ getBids(_productId: string, _params?: PaginationParams): Promise<PaginatedResult<Bid>>;
70
+ getWinningBid(_productId: string): Promise<Bid | null>;
71
+ checkAvailability(_productId: string, _startDate: string, _endDate: string): Promise<AvailabilitySlot[]>;
72
+ createBooking(_input: CreateRentalBookingInput): Promise<RentalBooking>;
73
+ getBookings(_params?: PaginationParams): Promise<PaginatedResult<RentalBooking>>;
74
+ getBooking(_bookingId: string): Promise<RentalBooking>;
75
+ cancelBooking(_bookingId: string): Promise<RentalBooking>;
76
+ purchaseGiftCard(_input: PurchaseGiftCardInput): Promise<GiftCard>;
77
+ getGiftCardBalance(_code: string): Promise<GiftCard>;
78
+ redeemGiftCard(_input: RedeemGiftCardInput): Promise<GiftCard>;
79
+ getMyGiftCards(): Promise<GiftCard[]>;
80
+ getGiftCardTransactions(_giftCardId: string): Promise<GiftCardTransaction[]>;
81
+ getBrands(): Promise<Brand[]>;
82
+ getCountries(): Promise<Country[]>;
83
+ getStoreLocations(): Promise<StoreLocation[]>;
84
+ }
85
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}