@isoftdata/ebay-utility 1.4.1 → 1.5.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 (110) hide show
  1. package/Readme.md +100 -115
  2. package/lib/adapters/AuthServerRepo.d.ts +13 -0
  3. package/lib/adapters/AuthServerRepo.d.ts.map +1 -0
  4. package/lib/adapters/AuthServerRepo.js +23 -0
  5. package/lib/adapters/AuthServerRepo.js.map +1 -0
  6. package/lib/adapters/ebay/EbayAdapter.d.ts +6 -1
  7. package/lib/adapters/ebay/EbayAdapter.d.ts.map +1 -1
  8. package/lib/adapters/ebay/EbayAdapter.js +4 -0
  9. package/lib/adapters/ebay/EbayAdapter.js.map +1 -1
  10. package/lib/adapters/ebay/WebEbayAdapter.d.ts +2 -1
  11. package/lib/adapters/ebay/WebEbayAdapter.d.ts.map +1 -1
  12. package/lib/adapters/ebay/WebEbayAdapter.js +4 -0
  13. package/lib/adapters/ebay/WebEbayAdapter.js.map +1 -1
  14. package/lib/adapters/itrack/ItrackAdapter.d.ts +18 -3
  15. package/lib/adapters/itrack/ItrackAdapter.d.ts.map +1 -1
  16. package/lib/adapters/itrack/ItrackAdapter.js +86 -26
  17. package/lib/adapters/itrack/ItrackAdapter.js.map +1 -1
  18. package/lib/entities/ebay/Address.d.ts +2 -0
  19. package/lib/entities/ebay/Address.d.ts.map +1 -1
  20. package/lib/entities/ebay/Address.js +11 -0
  21. package/lib/entities/ebay/Address.js.map +1 -1
  22. package/lib/entities/ebay/EbayInventoryLocationDTO.d.ts +9 -0
  23. package/lib/entities/ebay/EbayInventoryLocationDTO.d.ts.map +1 -0
  24. package/lib/entities/ebay/EbayInventoryLocationDTO.js +24 -0
  25. package/lib/entities/ebay/EbayInventoryLocationDTO.js.map +1 -0
  26. package/lib/entities/ebay/InventoryItem.d.ts +3 -3
  27. package/lib/entities/ebay/InventoryItem.d.ts.map +1 -1
  28. package/lib/entities/ebay/InventoryItem.js +1 -3
  29. package/lib/entities/ebay/InventoryItem.js.map +1 -1
  30. package/lib/entities/ebay/InventoryLocationStoreInput.d.ts +12 -0
  31. package/lib/entities/ebay/InventoryLocationStoreInput.d.ts.map +1 -0
  32. package/lib/entities/ebay/InventoryLocationStoreInput.js +2 -0
  33. package/lib/entities/ebay/InventoryLocationStoreInput.js.map +1 -0
  34. package/lib/entities/ebay/MerchantLocationKey.d.ts +1 -0
  35. package/lib/entities/ebay/MerchantLocationKey.d.ts.map +1 -1
  36. package/lib/entities/ebay/MerchantLocationKey.js +1 -0
  37. package/lib/entities/ebay/MerchantLocationKey.js.map +1 -1
  38. package/lib/entities/itrack/EcommercePartner.d.ts +46 -0
  39. package/lib/entities/itrack/EcommercePartner.d.ts.map +1 -0
  40. package/lib/entities/itrack/EcommercePartner.js +19 -0
  41. package/lib/entities/itrack/EcommercePartner.js.map +1 -0
  42. package/lib/index.d.ts +5 -4
  43. package/lib/index.d.ts.map +1 -1
  44. package/lib/index.js +5 -3
  45. package/lib/index.js.map +1 -1
  46. package/lib/infrastructure/HttpToRepoConverter.d.ts.map +1 -1
  47. package/lib/infrastructure/HttpToRepoConverter.js +9 -2
  48. package/lib/infrastructure/HttpToRepoConverter.js.map +1 -1
  49. package/lib/ports/EbayInterface.d.ts +2 -1
  50. package/lib/ports/EbayInterface.d.ts.map +1 -1
  51. package/lib/ports/ItrackInterface.d.ts +2 -2
  52. package/lib/ports/ItrackInterface.d.ts.map +1 -1
  53. package/lib/repositories/ebay/CompanyRepo.d.ts +5 -0
  54. package/lib/repositories/ebay/CompanyRepo.d.ts.map +1 -0
  55. package/lib/repositories/ebay/CompanyRepo.js +15 -0
  56. package/lib/repositories/ebay/CompanyRepo.js.map +1 -0
  57. package/lib/repositories/ebay/ImageUploadRepo.js +4 -4
  58. package/lib/repositories/ebay/InventoryLocationRepo.d.ts +3 -1
  59. package/lib/repositories/ebay/InventoryLocationRepo.d.ts.map +1 -1
  60. package/lib/repositories/ebay/InventoryLocationRepo.js +15 -0
  61. package/lib/repositories/ebay/InventoryLocationRepo.js.map +1 -1
  62. package/lib/repositories/itrack/CompanyRepo.d.ts +5 -0
  63. package/lib/repositories/itrack/CompanyRepo.d.ts.map +1 -0
  64. package/lib/repositories/itrack/CompanyRepo.js +8 -0
  65. package/lib/repositories/itrack/CompanyRepo.js.map +1 -0
  66. package/lib/repositories/itrack/EbayInventoryItemRowRepo_deprecated.d.ts +27 -0
  67. package/lib/repositories/itrack/EbayInventoryItemRowRepo_deprecated.d.ts.map +1 -0
  68. package/lib/repositories/itrack/EbayInventoryItemRowRepo_deprecated.js +2 -0
  69. package/lib/repositories/itrack/EbayInventoryItemRowRepo_deprecated.js.map +1 -0
  70. package/lib/repositories/itrack/EbayLocationRepo.d.ts +16 -0
  71. package/lib/repositories/itrack/EbayLocationRepo.d.ts.map +1 -0
  72. package/lib/repositories/itrack/EbayLocationRepo.js +32 -0
  73. package/lib/repositories/itrack/EbayLocationRepo.js.map +1 -0
  74. package/lib/repositories/itrack/EcommercePartnerRepo.d.ts +9 -0
  75. package/lib/repositories/itrack/EcommercePartnerRepo.d.ts.map +1 -0
  76. package/lib/repositories/itrack/EcommercePartnerRepo.js +26 -0
  77. package/lib/repositories/itrack/EcommercePartnerRepo.js.map +1 -0
  78. package/lib/repositories/itrack/ItrackEbayInventoryListingDetailRepo_deprecated.d.ts +8 -0
  79. package/lib/repositories/itrack/ItrackEbayInventoryListingDetailRepo_deprecated.d.ts.map +1 -0
  80. package/lib/repositories/itrack/ItrackEbayInventoryListingDetailRepo_deprecated.js +66 -0
  81. package/lib/repositories/itrack/ItrackEbayInventoryListingDetailRepo_deprecated.js.map +1 -0
  82. package/lib/repositories/itrack/StoreRepo.d.ts +2 -2
  83. package/lib/repositories/itrack/StoreRepo.d.ts.map +1 -1
  84. package/lib/usecases/Agg_StoreEvent.d.ts +1 -10
  85. package/lib/usecases/Agg_StoreEvent.d.ts.map +1 -1
  86. package/lib/usecases/Agg_StoreEvent.js +3 -6
  87. package/lib/usecases/Agg_StoreEvent.js.map +1 -1
  88. package/lib/usecases/Location/PushInventoryLocationToEbay.d.ts +2 -2
  89. package/lib/usecases/Location/PushInventoryLocationToEbay.d.ts.map +1 -1
  90. package/lib/usecases/Location/PushInventoryLocations.d.ts +16 -0
  91. package/lib/usecases/Location/PushInventoryLocations.d.ts.map +1 -0
  92. package/lib/usecases/Location/PushInventoryLocations.js +56 -0
  93. package/lib/usecases/Location/PushInventoryLocations.js.map +1 -0
  94. package/lib/usecases/Location/ReconcileLocationToEbay.d.ts +18 -0
  95. package/lib/usecases/Location/ReconcileLocationToEbay.d.ts.map +1 -0
  96. package/lib/usecases/Location/ReconcileLocationToEbay.js +50 -0
  97. package/lib/usecases/Location/ReconcileLocationToEbay.js.map +1 -0
  98. package/lib/usecases/Location/SyncInventoryLocationToEbay.d.ts +19 -0
  99. package/lib/usecases/Location/SyncInventoryLocationToEbay.d.ts.map +1 -0
  100. package/lib/usecases/Location/SyncInventoryLocationToEbay.js +79 -0
  101. package/lib/usecases/Location/SyncInventoryLocationToEbay.js.map +1 -0
  102. package/lib/usecases/Location/SyncInventoryLocationsToEbay.d.ts +17 -0
  103. package/lib/usecases/Location/SyncInventoryLocationsToEbay.d.ts.map +1 -0
  104. package/lib/usecases/Location/SyncInventoryLocationsToEbay.js +69 -0
  105. package/lib/usecases/Location/SyncInventoryLocationsToEbay.js.map +1 -0
  106. package/lib/usecases/Location/SyncInventoryLocations_TODO.d.ts +13 -0
  107. package/lib/usecases/Location/SyncInventoryLocations_TODO.d.ts.map +1 -0
  108. package/lib/usecases/Location/SyncInventoryLocations_TODO.js +10 -0
  109. package/lib/usecases/Location/SyncInventoryLocations_TODO.js.map +1 -0
  110. package/package.json +58 -56
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PushInventoryLocations.js","sourceRoot":"","sources":["../../../src/usecases/Location/PushInventoryLocations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { EbayInterface } from '../../ports/EbayInterface.js';
2
+ import { InventoryLocationFull } from '../../entities/ebay/InventoryLocationFull.js';
3
+ import { EbayInventoryLocationDTO } from '../../entities/ebay/EbayInventoryLocationDTO.js';
4
+ export interface ReconcileLocationInput {
5
+ ebayAdapter: EbayInterface;
6
+ dto: EbayInventoryLocationDTO;
7
+ existing: InventoryLocationFull | null;
8
+ }
9
+ export interface ReconcileLocationResult {
10
+ action: 'create' | 'update' | 'noop' | 'skip';
11
+ success: boolean;
12
+ error?: {
13
+ message: string;
14
+ details?: unknown;
15
+ };
16
+ }
17
+ export declare const reconcileLocationToEbay: (params: ReconcileLocationInput) => Promise<ReconcileLocationResult>;
18
+ //# sourceMappingURL=ReconcileLocationToEbay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReconcileLocationToEbay.d.ts","sourceRoot":"","sources":["../../../src/usecases/Location/ReconcileLocationToEbay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EAAE,qBAAqB,EAAiB,MAAM,8CAA8C,CAAA;AACnG,OAAO,EAAE,wBAAwB,EAAE,MAAM,iDAAiD,CAAA;AAG1F,MAAM,WAAW,sBAAsB;IACnC,WAAW,EAAE,aAAa,CAAA;IAC1B,GAAG,EAAE,wBAAwB,CAAA;IAC7B,QAAQ,EAAE,qBAAqB,GAAG,IAAI,CAAA;CACzC;AAGD,MAAM,WAAW,uBAAuB;IACpC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAA;IAC7C,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CACjD;AAED,eAAO,MAAM,uBAAuB,GAChC,QAAQ,sBAAsB,KAC/B,OAAO,CAAC,uBAAuB,CAoDjC,CAAA"}
@@ -0,0 +1,50 @@
1
+ import { StoreTypeEnum } from '../../entities/ebay/InventoryLocationFull.js';
2
+ import { hasMinimumAddressFields } from '../../entities/ebay/Address.js';
3
+ export const reconcileLocationToEbay = async (params) => {
4
+ const { ebayAdapter, dto, existing } = params;
5
+ if (!existing) {
6
+ if (!hasMinimumAddressFields(dto.location.location.address)) {
7
+ return { action: 'skip', success: true };
8
+ }
9
+ const createResponse = await ebayAdapter.createInventoryLocation(dto);
10
+ if (!createResponse.success) {
11
+ return {
12
+ action: 'create',
13
+ success: false,
14
+ error: { message: 'Failed to create inventory location on eBay', details: createResponse },
15
+ };
16
+ }
17
+ return { action: 'create', success: true };
18
+ }
19
+ const isWarehouse = existing.locationTypes.includes(StoreTypeEnum.Warehouse);
20
+ const nameChanged = dto.location.name !== undefined && dto.location.name !== existing.name;
21
+ const phoneChanged = dto.location.phone !== undefined && dto.location.phone !== existing.phone;
22
+ const webUrlChanged = dto.location.locationWebUrl !== undefined && dto.location.locationWebUrl !== existing.locationWebUrl;
23
+ let addressChanged = false;
24
+ if (isWarehouse) {
25
+ const incoming = dto.location.location.address;
26
+ const current = existing.location.address;
27
+ addressChanged =
28
+ incoming.addressLine1 !== current.addressLine1 ||
29
+ incoming.postalCode !== current.postalCode ||
30
+ incoming.city !== current.city ||
31
+ incoming.stateOrProvince !== current.stateOrProvince ||
32
+ incoming.country !== current.country;
33
+ }
34
+ if (!nameChanged && !phoneChanged && !webUrlChanged && !addressChanged) {
35
+ return { action: 'noop', success: true };
36
+ }
37
+ const updatePayload = isWarehouse
38
+ ? { name: dto.location.name, phone: dto.location.phone, locationWebUrl: dto.location.locationWebUrl, location: { address: dto.location.location.address } }
39
+ : { name: dto.location.name, phone: dto.location.phone, locationWebUrl: dto.location.locationWebUrl };
40
+ const updateResponse = await ebayAdapter.updateInventoryLocation({ key: dto.key, location: updatePayload });
41
+ if (!updateResponse.success) {
42
+ return {
43
+ action: 'update',
44
+ success: false,
45
+ error: { message: 'Failed to update inventory location on eBay', details: updateResponse },
46
+ };
47
+ }
48
+ return { action: 'update', success: true };
49
+ };
50
+ //# sourceMappingURL=ReconcileLocationToEbay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReconcileLocationToEbay.js","sourceRoot":"","sources":["../../../src/usecases/Location/ReconcileLocationToEbay.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { EbayAdapter } from '../../adapters/ebay/EbayAdapter.js';
2
+ import { ItrackAdapter } from '../../adapters/itrack/ItrackAdapter.js';
3
+ import { EbayInventoryLocationDTO } from '../../entities/ebay/EbayInventoryLocationDTO.js';
4
+ export interface SyncInventoryLocationToEbayInput {
5
+ ebayAdapter: EbayAdapter;
6
+ itrackAdapter: ItrackAdapter;
7
+ production: boolean;
8
+ dto: EbayInventoryLocationDTO;
9
+ }
10
+ export interface SyncInventoryLocationToEbayResult {
11
+ success: boolean;
12
+ errors: Array<{
13
+ storeId: number | null;
14
+ message: string;
15
+ details?: unknown;
16
+ }>;
17
+ }
18
+ export declare const syncInventoryLocationToEbay: (params: SyncInventoryLocationToEbayInput) => Promise<SyncInventoryLocationToEbayResult>;
19
+ //# sourceMappingURL=SyncInventoryLocationToEbay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SyncInventoryLocationToEbay.d.ts","sourceRoot":"","sources":["../../../src/usecases/Location/SyncInventoryLocationToEbay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAA;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,iDAAiD,CAAA;AAa1F,MAAM,WAAW,gCAAgC;IAC7C,WAAW,EAAE,WAAW,CAAA;IACxB,aAAa,EAAE,aAAa,CAAA;IAC5B,UAAU,EAAE,OAAO,CAAA;IACnB,GAAG,EAAE,wBAAwB,CAAA;CAChC;AAED,MAAM,WAAW,iCAAiC;IAC9C,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CAChF;AAED,eAAO,MAAM,2BAA2B,GACpC,QAAQ,gCAAgC,KACzC,OAAO,CAAC,iCAAiC,CA4E3C,CAAA"}
@@ -0,0 +1,79 @@
1
+ import { reconcileLocationToEbay } from './ReconcileLocationToEbay.js';
2
+ function formatEbayError(message, details) {
3
+ const d = details;
4
+ const statusPart = d?.status ? ` (HTTP ${d.status} ${d.statusText ?? ''})`.trimEnd() : '';
5
+ const ebayMessages = d?.data?.length
6
+ ? ': ' + d.data.map(e => `[${e.errorId}] ${e.message}`).join('; ')
7
+ : '';
8
+ return `${message}${statusPart}${ebayMessages}`;
9
+ }
10
+ export const syncInventoryLocationToEbay = async (params) => {
11
+ const { ebayAdapter, itrackAdapter, production, dto } = params;
12
+ const errors = [];
13
+ const existing = await itrackAdapter.getEbayLocation(dto.storeId, production);
14
+ if (!existing.success) {
15
+ return {
16
+ success: false,
17
+ errors: [{
18
+ storeId: dto.storeId,
19
+ message: existing.error?.message ?? 'Failed to load cached eBay location',
20
+ details: existing,
21
+ }],
22
+ };
23
+ }
24
+ const result = await reconcileLocationToEbay({
25
+ ebayAdapter,
26
+ dto,
27
+ existing: existing.data ?? null,
28
+ });
29
+ if (!result.success) {
30
+ return {
31
+ success: false,
32
+ errors: [{
33
+ storeId: dto.storeId,
34
+ message: formatEbayError(result.error?.message ?? 'Reconciliation failed', result.error?.details),
35
+ details: result.error?.details,
36
+ }],
37
+ };
38
+ }
39
+ if (result.action === 'noop' || result.action === 'skip') {
40
+ return { success: true, errors: [] };
41
+ }
42
+ const ebayName = dto.location.name;
43
+ if (!ebayName) {
44
+ return {
45
+ success: false,
46
+ errors: [{
47
+ storeId: dto.storeId,
48
+ message: 'DTO missing location.name; cannot persist to ebay_location',
49
+ }],
50
+ };
51
+ }
52
+ const upsertLocationResult = await itrackAdapter.upsertEbayLocation({
53
+ storeId: dto.storeId,
54
+ production,
55
+ ebayName,
56
+ details: dto.location,
57
+ });
58
+ if (!upsertLocationResult.success) {
59
+ errors.push({
60
+ storeId: dto.storeId,
61
+ message: upsertLocationResult.error?.message ?? 'Failed to upsert ebay_location',
62
+ details: upsertLocationResult,
63
+ });
64
+ }
65
+ const upsertSliceResult = await itrackAdapter.upsertEbayPartnerStoreSlice({
66
+ storeId: dto.storeId,
67
+ name: ebayName,
68
+ merchantLocationKey: dto.key,
69
+ });
70
+ if (!upsertSliceResult.success) {
71
+ errors.push({
72
+ storeId: dto.storeId,
73
+ message: upsertSliceResult.error?.message ?? 'Failed to upsert partner store slice',
74
+ details: upsertSliceResult,
75
+ });
76
+ }
77
+ return { success: errors.length === 0, errors };
78
+ };
79
+ //# sourceMappingURL=SyncInventoryLocationToEbay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SyncInventoryLocationToEbay.js","sourceRoot":"","sources":["../../../src/usecases/Location/SyncInventoryLocationToEbay.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { EbayAdapter } from '../../adapters/ebay/EbayAdapter.js';
2
+ import { ItrackAdapter } from '../../adapters/itrack/ItrackAdapter.js';
3
+ export interface SyncInventoryLocationsToEbayInput {
4
+ ebayAdapter: EbayAdapter;
5
+ itrackAdapter: ItrackAdapter;
6
+ production: boolean;
7
+ }
8
+ export interface SyncInventoryLocationsToEbayResult {
9
+ success: boolean;
10
+ errors: Array<{
11
+ storeId: number | null;
12
+ message: string;
13
+ details?: unknown;
14
+ }>;
15
+ }
16
+ export declare const syncInventoryLocationsToEbay: (params: SyncInventoryLocationsToEbayInput) => Promise<SyncInventoryLocationsToEbayResult>;
17
+ //# sourceMappingURL=SyncInventoryLocationsToEbay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SyncInventoryLocationsToEbay.d.ts","sourceRoot":"","sources":["../../../src/usecases/Location/SyncInventoryLocationsToEbay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAA;AAGtE,MAAM,WAAW,iCAAiC;IAC9C,WAAW,EAAE,WAAW,CAAA;IACxB,aAAa,EAAE,aAAa,CAAA;IAC5B,UAAU,EAAE,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,kCAAkC;IAC/C,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CAChF;AAGD,eAAO,MAAM,4BAA4B,GACrC,QAAQ,iCAAiC,KAC1C,OAAO,CAAC,kCAAkC,CA0E5C,CAAA"}
@@ -0,0 +1,69 @@
1
+ import { reconcileLocationToEbay } from './ReconcileLocationToEbay.js';
2
+ // Loads all store/DTOs from itrack and current eBay locations, tries to match and update
3
+ export const syncInventoryLocationsToEbay = async (params) => {
4
+ const { ebayAdapter, itrackAdapter, production } = params;
5
+ const errors = [];
6
+ const dtos = await itrackAdapter.getInventoryLocations();
7
+ const liveResponse = await ebayAdapter.getInventoryLocations();
8
+ if (!liveResponse.success) {
9
+ return {
10
+ success: false,
11
+ errors: [{
12
+ storeId: null,
13
+ message: 'Failed to retrieve inventory locations from eBay',
14
+ details: liveResponse,
15
+ }],
16
+ };
17
+ }
18
+ const liveLocations = liveResponse.data;
19
+ for (const dto of dtos) {
20
+ const existing = liveLocations.find(l => l.merchantLocationKey === dto.key) ?? null;
21
+ const result = await reconcileLocationToEbay({ ebayAdapter, dto, existing });
22
+ if (!result.success) {
23
+ errors.push({
24
+ storeId: dto.storeId,
25
+ message: result.error?.message ?? 'Reconciliation failed',
26
+ details: result.error?.details,
27
+ });
28
+ continue;
29
+ }
30
+ if (result.action === 'noop' || result.action === 'skip') {
31
+ continue;
32
+ }
33
+ const ebayName = dto.location.name;
34
+ if (!ebayName) {
35
+ errors.push({
36
+ storeId: dto.storeId,
37
+ message: 'DTO missing location.name; cannot persist to ebay_location',
38
+ });
39
+ continue;
40
+ }
41
+ const upsertLocationResult = await itrackAdapter.upsertEbayLocation({
42
+ storeId: dto.storeId,
43
+ production,
44
+ ebayName,
45
+ details: dto.location,
46
+ });
47
+ if (!upsertLocationResult.success) {
48
+ errors.push({
49
+ storeId: dto.storeId,
50
+ message: upsertLocationResult.error?.message ?? 'Failed to upsert ebay_location',
51
+ details: upsertLocationResult,
52
+ });
53
+ }
54
+ const upsertSliceResult = await itrackAdapter.upsertEbayPartnerStoreSlice({
55
+ storeId: dto.storeId,
56
+ name: ebayName,
57
+ merchantLocationKey: dto.key,
58
+ });
59
+ if (!upsertSliceResult.success) {
60
+ errors.push({
61
+ storeId: dto.storeId,
62
+ message: upsertSliceResult.error?.message ?? 'Failed to upsert partner store slice',
63
+ details: upsertSliceResult,
64
+ });
65
+ }
66
+ }
67
+ return { success: errors.length === 0, errors };
68
+ };
69
+ //# sourceMappingURL=SyncInventoryLocationsToEbay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SyncInventoryLocationsToEbay.js","sourceRoot":"","sources":["../../../src/usecases/Location/SyncInventoryLocationsToEbay.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { EbayAdapter } from '../../adapters/ebay/EbayAdapter.js';
2
+ import { ItrackAdapter } from '../../adapters/itrack/ItrackAdapter.js';
3
+ import { TokenManager } from '../../infrastructure/TokenManager.js';
4
+ import { InventoryLocationDTO } from './SyncInventoryLocations.js';
5
+ export interface SyncInventoryLocationsInput {
6
+ ebayAdapter: EbayAdapter;
7
+ itrackAdapter: ItrackAdapter;
8
+ tokenManager: TokenManager;
9
+ production: boolean;
10
+ data: InventoryLocationDTO[];
11
+ }
12
+ export declare const syncInventoryLocationsToEbay: (_params: SyncInventoryLocationsInput) => Promise<void>;
13
+ //# sourceMappingURL=SyncInventoryLocations_TODO.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SyncInventoryLocations_TODO.d.ts","sourceRoot":"","sources":["../../../src/usecases/Location/SyncInventoryLocations_TODO.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAA;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAA;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAElE,MAAM,WAAW,2BAA2B;IAC3C,WAAW,EAAE,WAAW,CAAA;IACxB,aAAa,EAAE,aAAa,CAAA;IAC5B,YAAY,EAAE,YAAY,CAAA;IAC1B,UAAU,EAAE,OAAO,CAAA;IACnB,IAAI,EAAE,oBAAoB,EAAE,CAAA;CAC5B;AAED,eAAO,MAAM,4BAA4B,GAAU,SAAS,2BAA2B,KAAG,OAAO,CAAC,IAAI,CAErG,CAAA"}
@@ -0,0 +1,10 @@
1
+ // TODO: Server-side version of pushInventoryLocations for projects that have direct
2
+ // itrack DB access (e.g. not the web context). Should follow the SyncFulfillmentPolicies
3
+ // pattern: fetch from eBay, compare, create/update on eBay, then write the
4
+ // storeId → merchantLocationKey mapping back to itrack via itrackAdapter.
5
+ //
6
+ // Core eBay logic lives in PushInventoryLocations.ts — reuse or extract it.
7
+ export const syncInventoryLocationsToEbay = async (_params) => {
8
+ throw new Error('Not implemented');
9
+ };
10
+ //# sourceMappingURL=SyncInventoryLocations_TODO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SyncInventoryLocations_TODO.js","sourceRoot":"","sources":["../../../src/usecases/Location/SyncInventoryLocations_TODO.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,yFAAyF;AACzF,2EAA2E;AAC3E,0EAA0E;AAC1E,EAAE;AACF,4EAA4E;AAe5E,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,EAAE,OAAoC,EAAiB,EAAE;IACzG,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;AACnC,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,56 +1,58 @@
1
- {
2
- "name": "@isoftdata/ebay-utility",
3
- "version": "1.4.1",
4
- "main": "lib/index.js",
5
- "types": "lib/index.d.ts",
6
- "type": "module",
7
- "exports": {
8
- ".": {
9
- "import": "./lib/index.js",
10
- "types": "./lib/index.d.ts"
11
- }
12
- },
13
- "files": [
14
- "lib/**/*",
15
- "README.md"
16
- ],
17
- "keywords": [
18
- "ebay",
19
- "api",
20
- "inventory",
21
- "listing",
22
- "ecommerce"
23
- ],
24
- "author": "Your Name <your.email@example.com>",
25
- "license": "ISC",
26
- "description": "A TypeScript utility library for eBay API operations including inventory management, listings, and policy handling",
27
- "dependencies": {
28
- "@lukeed/uuid": "^2.0.1",
29
- "@types/xml2js": "^0.4.14",
30
- "csrf": "^3.1.0",
31
- "dataloader": "^2.2.2",
32
- "dotenv": "^16.4.5",
33
- "fs": "^0.0.1-security",
34
- "mysql2": "^3.16.0",
35
- "qs": "^6.13.0",
36
- "query-string": "^9.3.1",
37
- "uvu": "^0.5.6",
38
- "validator": "^13.12.0",
39
- "xml2js": "^0.6.2",
40
- "yup": "^1.4.0",
41
- "zod": "^3.23.8"
42
- },
43
- "devDependencies": {
44
- "@isoftdata/prettier-config-base": "^1.0.3",
45
- "@types/node": "^20.0.0",
46
- "@types/validator": "^13.0.0",
47
- "ts-node": "^10.9.2",
48
- "typescript": "^5.0.0"
49
- },
50
- "prettier": "@isoftdata/prettier-config-base",
51
- "scripts": {
52
- "test": "npm run build && uvu lib/tests",
53
- "build": "tsc --version && tsc",
54
- "build-start": "tsc --version && tsc && node lib/tests"
55
- }
56
- }
1
+ {
2
+ "name": "@isoftdata/ebay-utility",
3
+ "version": "1.5.0",
4
+ "main": "lib/index.js",
5
+ "types": "lib/index.d.ts",
6
+ "type": "module",
7
+ "exports": {
8
+ ".": {
9
+ "import": "./lib/index.js",
10
+ "types": "./lib/index.d.ts"
11
+ }
12
+ },
13
+ "files": [
14
+ "lib/**/*",
15
+ "!lib/tests/**/*",
16
+ "README.md"
17
+ ],
18
+ "scripts": {
19
+ "test": "node --import tsx --test src/tests/*.test.ts",
20
+ "build": "tsc --version && tsc",
21
+ "build-start": "tsc --version && tsc && node lib/tests",
22
+ "prepublishOnly": "npm run build"
23
+ },
24
+ "keywords": [
25
+ "ebay",
26
+ "api",
27
+ "inventory",
28
+ "listing",
29
+ "ecommerce"
30
+ ],
31
+ "author": "Your Name <your.email@example.com>",
32
+ "license": "ISC",
33
+ "description": "A TypeScript utility library for eBay API operations including inventory management, listings, and policy handling",
34
+ "dependencies": {
35
+ "@lukeed/uuid": "^2.0.1",
36
+ "@types/xml2js": "^0.4.14",
37
+ "csrf": "^3.1.0",
38
+ "dataloader": "^2.2.2",
39
+ "dotenv": "^16.4.5",
40
+ "fs": "^0.0.1-security",
41
+ "mysql2": "^3.16.0",
42
+ "qs": "^6.13.0",
43
+ "query-string": "^9.3.1",
44
+ "validator": "^13.12.0",
45
+ "xml2js": "^0.6.2",
46
+ "yup": "^1.4.0",
47
+ "zod": "^3.23.8"
48
+ },
49
+ "devDependencies": {
50
+ "@isoftdata/prettier-config-base": "^1.0.3",
51
+ "@types/node": "^20.0.0",
52
+ "@types/validator": "^13.0.0",
53
+ "ts-node": "^10.9.2",
54
+ "tsx": "^4.21.0",
55
+ "typescript": "^5.0.0"
56
+ },
57
+ "prettier": "@isoftdata/prettier-config-base"
58
+ }