@aglyn/plugins-commerce 1.0.0-beta.230 → 1.0.0-beta.231

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 (581) hide show
  1. package/package.json +13 -13
  2. package/src/index.d.ts +0 -1
  3. package/src/index.js +0 -1
  4. package/src/index.js.map +1 -1
  5. package/src/lib/barcode/barcode-decode.d.ts +71 -0
  6. package/src/lib/barcode/barcode-decode.js +498 -0
  7. package/src/lib/barcode/barcode-decode.js.map +1 -0
  8. package/src/lib/barcode/barcode-encode.d.ts +44 -0
  9. package/src/lib/barcode/barcode-encode.js +138 -0
  10. package/src/lib/barcode/barcode-encode.js.map +1 -0
  11. package/src/lib/barcode/barcode-scanner.component.d.ts +23 -0
  12. package/src/lib/barcode/barcode-scanner.component.js +260 -0
  13. package/src/lib/barcode/barcode-scanner.component.js.map +1 -0
  14. package/src/lib/barcode/scan-button.component.d.ts +10 -0
  15. package/src/lib/barcode/scan-button.component.js +62 -0
  16. package/src/lib/barcode/scan-button.component.js.map +1 -0
  17. package/src/lib/barcode/scanner-wedge.d.ts +35 -0
  18. package/src/lib/barcode/scanner-wedge.js +108 -0
  19. package/src/lib/barcode/scanner-wedge.js.map +1 -0
  20. package/src/lib/components/account.js +10 -1
  21. package/src/lib/components/account.js.map +1 -1
  22. package/src/lib/components/cart-extras.d.ts +45 -0
  23. package/src/lib/components/cart-extras.js +127 -0
  24. package/src/lib/components/cart-extras.js.map +1 -0
  25. package/src/lib/components/cart.js +82 -15
  26. package/src/lib/components/cart.js.map +1 -1
  27. package/src/lib/components/checkout-return-notice.d.ts +26 -0
  28. package/src/lib/components/checkout-return-notice.js +48 -0
  29. package/src/lib/components/checkout-return-notice.js.map +1 -0
  30. package/src/lib/components/commerce-console-page.js +124 -0
  31. package/src/lib/components/commerce-console-page.js.map +1 -1
  32. package/src/lib/components/commerce-console-sections.d.ts +1 -1
  33. package/src/lib/components/commerce-console-sections.js +4 -0
  34. package/src/lib/components/commerce-console-sections.js.map +1 -1
  35. package/src/lib/components/console/bulk-fulfill.d.ts +44 -0
  36. package/src/lib/components/console/bulk-fulfill.js +84 -0
  37. package/src/lib/components/console/bulk-fulfill.js.map +1 -0
  38. package/src/lib/components/console/customer-notifications-card.component.d.ts +19 -0
  39. package/src/lib/components/console/customer-notifications-card.component.js +149 -0
  40. package/src/lib/components/console/customer-notifications-card.component.js.map +1 -0
  41. package/src/lib/components/console/host-orders-card.component.js +84 -5
  42. package/src/lib/components/console/host-orders-card.component.js.map +1 -1
  43. package/src/lib/components/console/locations-card.component.js +164 -57
  44. package/src/lib/components/console/locations-card.component.js.map +1 -1
  45. package/src/lib/components/console/order-detail-dialog.component.js +209 -61
  46. package/src/lib/components/console/order-detail-dialog.component.js.map +1 -1
  47. package/src/lib/components/console/order-fulfillment-panel.component.d.ts +48 -0
  48. package/src/lib/components/console/order-fulfillment-panel.component.js +542 -0
  49. package/src/lib/components/console/order-fulfillment-panel.component.js.map +1 -0
  50. package/src/lib/components/console/order-invoice.component.d.ts +33 -0
  51. package/src/lib/components/console/order-invoice.component.js +81 -0
  52. package/src/lib/components/console/order-invoice.component.js.map +1 -0
  53. package/src/lib/components/console/order-receipt-resend.component.d.ts +21 -0
  54. package/src/lib/components/console/order-receipt-resend.component.js +203 -0
  55. package/src/lib/components/console/order-receipt-resend.component.js.map +1 -0
  56. package/src/lib/components/console/order-returns.component.d.ts +36 -0
  57. package/src/lib/components/console/order-returns.component.js +142 -0
  58. package/src/lib/components/console/order-returns.component.js.map +1 -0
  59. package/src/lib/components/console/order-shipping-actions.component.d.ts +54 -0
  60. package/src/lib/components/console/order-shipping-actions.component.js +149 -0
  61. package/src/lib/components/console/order-shipping-actions.component.js.map +1 -0
  62. package/src/lib/components/console/order-webhooks-card.component.d.ts +50 -0
  63. package/src/lib/components/console/order-webhooks-card.component.js +623 -0
  64. package/src/lib/components/console/order-webhooks-card.component.js.map +1 -0
  65. package/src/lib/components/console/order-zones.d.ts +155 -0
  66. package/src/lib/components/console/order-zones.js +40 -0
  67. package/src/lib/components/console/order-zones.js.map +1 -0
  68. package/src/lib/components/console/payment-methods-card.component.d.ts +67 -0
  69. package/src/lib/components/console/payment-methods-card.component.js +395 -0
  70. package/src/lib/components/console/payment-methods-card.component.js.map +1 -0
  71. package/src/lib/components/console/pos/pos-api.d.ts +124 -0
  72. package/src/lib/components/console/pos/pos-api.js +101 -0
  73. package/src/lib/components/console/pos/pos-api.js.map +1 -0
  74. package/src/lib/components/console/pos/pos-cart-panel.component.d.ts +36 -0
  75. package/src/lib/components/console/pos/pos-cart-panel.component.js +160 -0
  76. package/src/lib/components/console/pos/pos-cart-panel.component.js.map +1 -0
  77. package/src/lib/components/console/pos/pos-item-dialog.component.d.ts +39 -0
  78. package/src/lib/components/console/pos/pos-item-dialog.component.js +352 -0
  79. package/src/lib/components/console/pos/pos-item-dialog.component.js.map +1 -0
  80. package/src/lib/components/console/pos/pos-product-grid.component.d.ts +47 -0
  81. package/src/lib/components/console/pos/pos-product-grid.component.js +272 -0
  82. package/src/lib/components/console/pos/pos-product-grid.component.js.map +1 -0
  83. package/src/lib/components/console/pos/pos-receipt-panel.component.d.ts +27 -0
  84. package/src/lib/components/console/pos/pos-receipt-panel.component.js +282 -0
  85. package/src/lib/components/console/pos/pos-receipt-panel.component.js.map +1 -0
  86. package/src/lib/components/console/pos/pos-tender-dialogs.component.d.ts +53 -0
  87. package/src/lib/components/console/pos/pos-tender-dialogs.component.js +445 -0
  88. package/src/lib/components/console/pos/pos-tender-dialogs.component.js.map +1 -0
  89. package/src/lib/components/console/pos/pos-tender-panel.component.d.ts +31 -0
  90. package/src/lib/components/console/pos/pos-tender-panel.component.js +640 -0
  91. package/src/lib/components/console/pos/pos-tender-panel.component.js.map +1 -0
  92. package/src/lib/components/console/pos/use-pos-display.d.ts +43 -0
  93. package/src/lib/components/console/pos/use-pos-display.js +161 -0
  94. package/src/lib/components/console/pos/use-pos-display.js.map +1 -0
  95. package/src/lib/components/console/pos-devices-card.component.d.ts +14 -0
  96. package/src/lib/components/console/pos-devices-card.component.js +546 -0
  97. package/src/lib/components/console/pos-devices-card.component.js.map +1 -0
  98. package/src/lib/components/console/pos-display/brand-screen.d.ts +33 -0
  99. package/src/lib/components/console/pos-display/brand-screen.js +85 -0
  100. package/src/lib/components/console/pos-display/brand-screen.js.map +1 -0
  101. package/src/lib/components/console/pos-display/cart-screen.d.ts +29 -0
  102. package/src/lib/components/console/pos-display/cart-screen.js +166 -0
  103. package/src/lib/components/console/pos-display/cart-screen.js.map +1 -0
  104. package/src/lib/components/console/pos-display/pairing-screen.d.ts +24 -0
  105. package/src/lib/components/console/pos-display/pairing-screen.js +127 -0
  106. package/src/lib/components/console/pos-display/pairing-screen.js.map +1 -0
  107. package/src/lib/components/console/pos-display/pos-display-api.d.ts +90 -0
  108. package/src/lib/components/console/pos-display/pos-display-api.js +140 -0
  109. package/src/lib/components/console/pos-display/pos-display-api.js.map +1 -0
  110. package/src/lib/components/console/pos-display/receipt-screen.d.ts +35 -0
  111. package/src/lib/components/console/pos-display/receipt-screen.js +200 -0
  112. package/src/lib/components/console/pos-display/receipt-screen.js.map +1 -0
  113. package/src/lib/components/console/pos-display/tip-screen.d.ts +36 -0
  114. package/src/lib/components/console/pos-display/tip-screen.js +211 -0
  115. package/src/lib/components/console/pos-display/tip-screen.js.map +1 -0
  116. package/src/lib/components/console/pos-display-page.component.d.ts +16 -0
  117. package/src/lib/components/console/pos-display-page.component.js +407 -0
  118. package/src/lib/components/console/pos-display-page.component.js.map +1 -0
  119. package/src/lib/components/console/pos-ops/pos-customer-lookup.component.d.ts +40 -0
  120. package/src/lib/components/console/pos-ops/pos-customer-lookup.component.js +289 -0
  121. package/src/lib/components/console/pos-ops/pos-customer-lookup.component.js.map +1 -0
  122. package/src/lib/components/console/pos-ops/pos-last-receipt.component.d.ts +34 -0
  123. package/src/lib/components/console/pos-ops/pos-last-receipt.component.js +61 -0
  124. package/src/lib/components/console/pos-ops/pos-last-receipt.component.js.map +1 -0
  125. package/src/lib/components/console/pos-ops/pos-operations-bar.component.d.ts +38 -0
  126. package/src/lib/components/console/pos-ops/pos-operations-bar.component.js +129 -0
  127. package/src/lib/components/console/pos-ops/pos-operations-bar.component.js.map +1 -0
  128. package/src/lib/components/console/pos-ops/pos-ops-api.d.ts +37 -0
  129. package/src/lib/components/console/pos-ops/pos-ops-api.js +60 -0
  130. package/src/lib/components/console/pos-ops/pos-ops-api.js.map +1 -0
  131. package/src/lib/components/console/pos-ops/pos-pin-pad.component.d.ts +48 -0
  132. package/src/lib/components/console/pos-ops/pos-pin-pad.component.js +220 -0
  133. package/src/lib/components/console/pos-ops/pos-pin-pad.component.js.map +1 -0
  134. package/src/lib/components/console/pos-ops/pos-receipt-actions.component.d.ts +63 -0
  135. package/src/lib/components/console/pos-ops/pos-receipt-actions.component.js +186 -0
  136. package/src/lib/components/console/pos-ops/pos-receipt-actions.component.js.map +1 -0
  137. package/src/lib/components/console/pos-ops/pos-receipt.d.ts +39 -0
  138. package/src/lib/components/console/pos-ops/pos-receipt.js +182 -0
  139. package/src/lib/components/console/pos-ops/pos-receipt.js.map +1 -0
  140. package/src/lib/components/console/pos-ops/pos-return-dialog.component.d.ts +40 -0
  141. package/src/lib/components/console/pos-ops/pos-return-dialog.component.js +465 -0
  142. package/src/lib/components/console/pos-ops/pos-return-dialog.component.js.map +1 -0
  143. package/src/lib/components/console/pos-ops/pos-shift-history-card.component.d.ts +29 -0
  144. package/src/lib/components/console/pos-ops/pos-shift-history-card.component.js +253 -0
  145. package/src/lib/components/console/pos-ops/pos-shift-history-card.component.js.map +1 -0
  146. package/src/lib/components/console/pos-ops/pos-shift-panel.component.d.ts +34 -0
  147. package/src/lib/components/console/pos-ops/pos-shift-panel.component.js +494 -0
  148. package/src/lib/components/console/pos-ops/pos-shift-panel.component.js.map +1 -0
  149. package/src/lib/components/console/pos-ops/pos-shift-report.component.d.ts +37 -0
  150. package/src/lib/components/console/pos-ops/pos-shift-report.component.js +102 -0
  151. package/src/lib/components/console/pos-ops/pos-shift-report.component.js.map +1 -0
  152. package/src/lib/components/console/pos-ops/pos-staff-pins-card.component.d.ts +30 -0
  153. package/src/lib/components/console/pos-ops/pos-staff-pins-card.component.js +277 -0
  154. package/src/lib/components/console/pos-ops/pos-staff-pins-card.component.js.map +1 -0
  155. package/src/lib/components/console/pos-ops/register-ops.d.ts +28 -0
  156. package/src/lib/components/console/pos-ops/register-ops.js +28 -0
  157. package/src/lib/components/console/pos-ops/register-ops.js.map +1 -0
  158. package/src/lib/components/console/pos-ops/use-pos-cashier.d.ts +46 -0
  159. package/src/lib/components/console/pos-ops/use-pos-cashier.js +128 -0
  160. package/src/lib/components/console/pos-ops/use-pos-cashier.js.map +1 -0
  161. package/src/lib/components/console/pos-ops/use-pos-sale-receipt.d.ts +36 -0
  162. package/src/lib/components/console/pos-ops/use-pos-sale-receipt.js +64 -0
  163. package/src/lib/components/console/pos-ops/use-pos-sale-receipt.js.map +1 -0
  164. package/src/lib/components/console/pos-page.component.d.ts +13 -5
  165. package/src/lib/components/console/pos-page.component.js +729 -657
  166. package/src/lib/components/console/pos-page.component.js.map +1 -1
  167. package/src/lib/components/console/product-editor-dialog.component.js +51 -7
  168. package/src/lib/components/console/product-editor-dialog.component.js.map +1 -1
  169. package/src/lib/components/console/product-labels-dialog.component.d.ts +13 -0
  170. package/src/lib/components/console/product-labels-dialog.component.js +197 -0
  171. package/src/lib/components/console/product-labels-dialog.component.js.map +1 -0
  172. package/src/lib/components/console/product-register-fields.component.d.ts +19 -0
  173. package/src/lib/components/console/product-register-fields.component.js +241 -0
  174. package/src/lib/components/console/product-register-fields.component.js.map +1 -0
  175. package/src/lib/components/console/product-zones.d.ts +44 -0
  176. package/src/lib/components/console/product-zones.js.map +1 -1
  177. package/src/lib/components/console/products-hub-card.component.js +12 -0
  178. package/src/lib/components/console/products-hub-card.component.js.map +1 -1
  179. package/src/lib/components/console/register-hardware-card.component.d.ts +33 -0
  180. package/src/lib/components/console/register-hardware-card.component.js +826 -0
  181. package/src/lib/components/console/register-hardware-card.component.js.map +1 -0
  182. package/src/lib/components/console/registers-card.component.js +24 -5
  183. package/src/lib/components/console/registers-card.component.js.map +1 -1
  184. package/src/lib/components/console/return-actions.d.ts +38 -0
  185. package/src/lib/components/console/return-actions.js +76 -0
  186. package/src/lib/components/console/return-actions.js.map +1 -0
  187. package/src/lib/components/console/return-detail-dialog.component.d.ts +34 -0
  188. package/src/lib/components/console/return-detail-dialog.component.js +718 -0
  189. package/src/lib/components/console/return-detail-dialog.component.js.map +1 -0
  190. package/src/lib/components/console/return-settings-card.component.d.ts +34 -0
  191. package/src/lib/components/console/return-settings-card.component.js +195 -0
  192. package/src/lib/components/console/return-settings-card.component.js.map +1 -0
  193. package/src/lib/components/console/return-zones.d.ts +87 -0
  194. package/src/lib/components/console/return-zones.js +31 -0
  195. package/src/lib/components/console/return-zones.js.map +1 -0
  196. package/src/lib/components/console/returns-card.component.d.ts +45 -0
  197. package/src/lib/components/console/returns-card.component.js +159 -0
  198. package/src/lib/components/console/returns-card.component.js.map +1 -0
  199. package/src/lib/components/console/shipping-settings-card.component.js +161 -5
  200. package/src/lib/components/console/shipping-settings-card.component.js.map +1 -1
  201. package/src/lib/components/console/shippingeasy-card.component.d.ts +59 -0
  202. package/src/lib/components/console/shippingeasy-card.component.js +378 -0
  203. package/src/lib/components/console/shippingeasy-card.component.js.map +1 -0
  204. package/src/lib/components/console/shipstation-card.component.d.ts +35 -0
  205. package/src/lib/components/console/shipstation-card.component.js +345 -0
  206. package/src/lib/components/console/shipstation-card.component.js.map +1 -0
  207. package/src/lib/components/console/start-return-dialog.component.d.ts +40 -0
  208. package/src/lib/components/console/start-return-dialog.component.js +243 -0
  209. package/src/lib/components/console/start-return-dialog.component.js.map +1 -0
  210. package/src/lib/components/console/stock-movements-card.component.js +2 -1
  211. package/src/lib/components/console/stock-movements-card.component.js.map +1 -1
  212. package/src/lib/components/console/store-settings-card.component.js +2 -66
  213. package/src/lib/components/console/store-settings-card.component.js.map +1 -1
  214. package/src/lib/components/console/store-zones.d.ts +42 -0
  215. package/src/lib/components/console/store-zones.js +39 -0
  216. package/src/lib/components/console/store-zones.js.map +1 -0
  217. package/src/lib/components/order-status.d.ts +36 -0
  218. package/src/lib/components/order-status.js +502 -0
  219. package/src/lib/components/order-status.js.map +1 -0
  220. package/src/lib/components/product-detail.js +41 -2
  221. package/src/lib/components/product-detail.js.map +1 -1
  222. package/src/lib/components/return-request.d.ts +32 -0
  223. package/src/lib/components/return-request.js +576 -0
  224. package/src/lib/components/return-request.js.map +1 -0
  225. package/src/lib/components/storefront-payment-appearance.d.ts +32 -0
  226. package/src/lib/components/storefront-payment-appearance.js +114 -0
  227. package/src/lib/components/storefront-payment-appearance.js.map +1 -0
  228. package/src/lib/components/storefront-payment-element.d.ts +57 -1
  229. package/src/lib/components/storefront-payment-element.js +332 -33
  230. package/src/lib/components/storefront-payment-element.js.map +1 -1
  231. package/src/lib/constants/order-status.d.ts +22 -0
  232. package/src/lib/constants/order-status.js +22 -0
  233. package/src/lib/constants/order-status.js.map +1 -0
  234. package/src/lib/constants/return-request.d.ts +27 -0
  235. package/src/lib/constants/return-request.js +32 -0
  236. package/src/lib/constants/return-request.js.map +1 -0
  237. package/src/lib/constants/stock-movement-query.js +2 -1
  238. package/src/lib/constants/stock-movement-query.js.map +1 -1
  239. package/src/lib/declarations.console-server.js +9 -0
  240. package/src/lib/declarations.console-server.js.map +1 -1
  241. package/src/lib/declarations.server.d.ts +2 -1
  242. package/src/lib/declarations.server.js +47 -1
  243. package/src/lib/declarations.server.js.map +1 -1
  244. package/src/lib/model/buyer-notifications.d.ts +59 -0
  245. package/src/lib/model/buyer-notifications.js +97 -0
  246. package/src/lib/model/buyer-notifications.js.map +1 -0
  247. package/src/lib/model/commerce-orders.d.ts +127 -1
  248. package/src/lib/model/commerce-orders.js +24 -15
  249. package/src/lib/model/commerce-orders.js.map +1 -1
  250. package/src/lib/model/commerce-payment-methods.d.ts +146 -0
  251. package/src/lib/model/commerce-payment-methods.js +247 -0
  252. package/src/lib/model/commerce-payment-methods.js.map +1 -0
  253. package/src/lib/model/commerce-pos-ops.d.ts +437 -0
  254. package/src/lib/model/commerce-pos-ops.js +721 -0
  255. package/src/lib/model/commerce-pos-ops.js.map +1 -0
  256. package/src/lib/model/commerce-pos.d.ts +263 -0
  257. package/src/lib/model/commerce-pos.js +375 -0
  258. package/src/lib/model/commerce-pos.js.map +1 -0
  259. package/src/lib/model/commerce-printers.d.ts +211 -0
  260. package/src/lib/model/commerce-printers.js +181 -0
  261. package/src/lib/model/commerce-printers.js.map +1 -0
  262. package/src/lib/model/commerce-receipt.d.ts +97 -0
  263. package/src/lib/model/commerce-receipt.js +180 -0
  264. package/src/lib/model/commerce-receipt.js.map +1 -0
  265. package/src/lib/model/commerce-returns.d.ts +207 -0
  266. package/src/lib/model/commerce-returns.js +300 -0
  267. package/src/lib/model/commerce-returns.js.map +1 -0
  268. package/src/lib/model/commerce-shipping.d.ts +44 -1
  269. package/src/lib/model/commerce-shipping.js +53 -9
  270. package/src/lib/model/commerce-shipping.js.map +1 -1
  271. package/src/lib/model/commerce-tax-engine.d.ts +90 -0
  272. package/src/lib/model/commerce-tax-engine.js +129 -0
  273. package/src/lib/model/commerce-tax-engine.js.map +1 -0
  274. package/src/lib/model/commerce.d.ts +88 -2
  275. package/src/lib/model/commerce.js +89 -1
  276. package/src/lib/model/commerce.js.map +1 -1
  277. package/src/lib/model/index.d.ts +15 -0
  278. package/src/lib/model/index.js +15 -0
  279. package/src/lib/model/index.js.map +1 -1
  280. package/src/lib/model/order-events.d.ts +154 -0
  281. package/src/lib/model/order-events.js +153 -0
  282. package/src/lib/model/order-events.js.map +1 -0
  283. package/src/lib/model/order-fulfillment.d.ts +117 -0
  284. package/src/lib/model/order-fulfillment.js +217 -0
  285. package/src/lib/model/order-fulfillment.js.map +1 -0
  286. package/src/lib/model/order-history.d.ts +58 -0
  287. package/src/lib/model/order-history.js +22 -0
  288. package/src/lib/model/order-history.js.map +1 -0
  289. package/src/lib/model/order-list-fields.d.ts +9 -1
  290. package/src/lib/model/order-list-fields.js +7 -1
  291. package/src/lib/model/order-list-fields.js.map +1 -1
  292. package/src/lib/model/order-shipping-export.d.ts +91 -0
  293. package/src/lib/model/order-shipping-export.js +192 -0
  294. package/src/lib/model/order-shipping-export.js.map +1 -0
  295. package/src/lib/model/order-status-view.d.ts +103 -0
  296. package/src/lib/model/order-status-view.js +156 -0
  297. package/src/lib/model/order-status-view.js.map +1 -0
  298. package/src/lib/model/order-webhooks.d.ts +142 -0
  299. package/src/lib/model/order-webhooks.js +91 -0
  300. package/src/lib/model/order-webhooks.js.map +1 -0
  301. package/src/lib/model/product-channel.d.ts +56 -0
  302. package/src/lib/model/product-channel.js +86 -0
  303. package/src/lib/model/product-channel.js.map +1 -0
  304. package/src/lib/model/product-modifiers.d.ts +80 -0
  305. package/src/lib/model/product-modifiers.js +140 -0
  306. package/src/lib/model/product-modifiers.js.map +1 -0
  307. package/src/lib/model/shippingeasy.d.ts +94 -0
  308. package/src/lib/model/shippingeasy.js +267 -0
  309. package/src/lib/model/shippingeasy.js.map +1 -0
  310. package/src/lib/model/shipstation.d.ts +125 -0
  311. package/src/lib/model/shipstation.js +399 -0
  312. package/src/lib/model/shipstation.js.map +1 -0
  313. package/src/lib/model/smart-collection-reads.d.ts +32 -0
  314. package/src/lib/model/smart-collection-reads.js +63 -0
  315. package/src/lib/model/smart-collection-reads.js.map +1 -0
  316. package/src/lib/model/tracking-url.d.ts +74 -0
  317. package/src/lib/model/tracking-url.js +159 -0
  318. package/src/lib/model/tracking-url.js.map +1 -0
  319. package/src/lib/plugin-config.d.ts +13 -0
  320. package/src/lib/plugin-config.js +77 -5
  321. package/src/lib/plugin-config.js.map +1 -1
  322. package/src/lib/plugin.js +23 -0
  323. package/src/lib/plugin.js.map +1 -1
  324. package/src/lib/pos-ops-config.d.ts +39 -0
  325. package/src/lib/pos-ops-config.js +88 -0
  326. package/src/lib/pos-ops-config.js.map +1 -0
  327. package/src/lib/printing/print-document.d.ts +106 -0
  328. package/src/lib/printing/print-document.js +464 -0
  329. package/src/lib/printing/print-document.js.map +1 -0
  330. package/src/lib/printing/product-labels.d.ts +58 -0
  331. package/src/lib/printing/product-labels.js +116 -0
  332. package/src/lib/printing/product-labels.js.map +1 -0
  333. package/src/lib/printing/render-epson.d.ts +57 -0
  334. package/src/lib/printing/render-epson.js +135 -0
  335. package/src/lib/printing/render-epson.js.map +1 -0
  336. package/src/lib/printing/render-star.d.ts +45 -0
  337. package/src/lib/printing/render-star.js +100 -0
  338. package/src/lib/printing/render-star.js.map +1 -0
  339. package/src/lib/printing/render-text.d.ts +25 -0
  340. package/src/lib/printing/render-text.js +53 -0
  341. package/src/lib/printing/render-text.js.map +1 -0
  342. package/src/lib/server/api-v1/openapi.js +27 -4
  343. package/src/lib/server/api-v1/openapi.js.map +1 -1
  344. package/src/lib/server/api-v1/order-view.d.ts +67 -0
  345. package/src/lib/server/api-v1/order-view.js +120 -0
  346. package/src/lib/server/api-v1/order-view.js.map +1 -0
  347. package/src/lib/server/api-v1/orders-and-products.js +58 -65
  348. package/src/lib/server/api-v1/orders-and-products.js.map +1 -1
  349. package/src/lib/server/billing-webhook.js +135 -28
  350. package/src/lib/server/billing-webhook.js.map +1 -1
  351. package/src/lib/server/cancel-order.js +29 -0
  352. package/src/lib/server/cancel-order.js.map +1 -1
  353. package/src/lib/server/carrier-rates-availability.d.ts +26 -0
  354. package/src/lib/server/carrier-rates-availability.js +76 -0
  355. package/src/lib/server/carrier-rates-availability.js.map +1 -0
  356. package/src/lib/server/carrier-shipping.d.ts +84 -0
  357. package/src/lib/server/carrier-shipping.js +135 -0
  358. package/src/lib/server/carrier-shipping.js.map +1 -0
  359. package/src/lib/server/cart-checkout.d.ts +2 -0
  360. package/src/lib/server/cart-checkout.js +226 -22
  361. package/src/lib/server/cart-checkout.js.map +1 -1
  362. package/src/lib/server/checkout-extras.d.ts +64 -0
  363. package/src/lib/server/checkout-extras.js +157 -0
  364. package/src/lib/server/checkout-extras.js.map +1 -0
  365. package/src/lib/server/{feed.d.ts → checkout-status.d.ts} +2 -7
  366. package/src/lib/server/checkout-status.js +111 -0
  367. package/src/lib/server/checkout-status.js.map +1 -0
  368. package/src/lib/server/checkout.js +86 -9
  369. package/src/lib/server/checkout.js.map +1 -1
  370. package/src/lib/server/draft-order.js +34 -5
  371. package/src/lib/server/draft-order.js.map +1 -1
  372. package/src/lib/server/fulfill-order.d.ts +127 -10
  373. package/src/lib/server/fulfill-order.js +451 -49
  374. package/src/lib/server/fulfill-order.js.map +1 -1
  375. package/src/lib/server/legacy-feed.d.ts +28 -0
  376. package/src/lib/server/legacy-feed.js +52 -0
  377. package/src/lib/server/legacy-feed.js.map +1 -0
  378. package/src/lib/server/native-checkout.d.ts +34 -15
  379. package/src/lib/server/native-checkout.js +32 -17
  380. package/src/lib/server/native-checkout.js.map +1 -1
  381. package/src/lib/server/order-event-host-emit.d.ts +23 -0
  382. package/src/lib/server/order-event-host-emit.js +30 -0
  383. package/src/lib/server/order-event-host-emit.js.map +1 -0
  384. package/src/lib/server/order-event-triggers.d.ts +37 -0
  385. package/src/lib/server/order-event-triggers.js +119 -0
  386. package/src/lib/server/order-event-triggers.js.map +1 -0
  387. package/src/lib/server/order-events.d.ts +62 -0
  388. package/src/lib/server/order-events.js +109 -0
  389. package/src/lib/server/order-events.js.map +1 -0
  390. package/src/lib/server/order-history.d.ts +23 -0
  391. package/src/lib/server/order-history.js +65 -0
  392. package/src/lib/server/order-history.js.map +1 -0
  393. package/src/lib/server/order-notifications.d.ts +185 -0
  394. package/src/lib/server/order-notifications.js +567 -0
  395. package/src/lib/server/order-notifications.js.map +1 -0
  396. package/src/lib/server/order-receipt-send.d.ts +39 -0
  397. package/src/lib/server/order-receipt-send.js +151 -0
  398. package/src/lib/server/order-receipt-send.js.map +1 -0
  399. package/src/lib/server/order-status-token.d.ts +31 -0
  400. package/src/lib/server/order-status-token.js +75 -0
  401. package/src/lib/server/order-status-token.js.map +1 -0
  402. package/src/lib/server/order-status.d.ts +58 -0
  403. package/src/lib/server/order-status.js +141 -0
  404. package/src/lib/server/order-status.js.map +1 -0
  405. package/src/lib/server/order-webhooks.d.ts +108 -0
  406. package/src/lib/server/order-webhooks.js +622 -0
  407. package/src/lib/server/order-webhooks.js.map +1 -0
  408. package/src/lib/server/orders-shipping-prepare.d.ts +26 -0
  409. package/src/lib/server/orders-shipping-prepare.js +121 -0
  410. package/src/lib/server/orders-shipping-prepare.js.map +1 -0
  411. package/src/lib/server/payment-method-domains.d.ts +209 -0
  412. package/src/lib/server/payment-method-domains.js +444 -0
  413. package/src/lib/server/payment-method-domains.js.map +1 -0
  414. package/src/lib/server/payment-methods.d.ts +77 -0
  415. package/src/lib/server/payment-methods.js +284 -0
  416. package/src/lib/server/payment-methods.js.map +1 -0
  417. package/src/lib/server/pos-auth.d.ts +50 -0
  418. package/src/lib/server/pos-auth.js +121 -0
  419. package/src/lib/server/pos-auth.js.map +1 -0
  420. package/src/lib/server/pos-customer.d.ts +49 -0
  421. package/src/lib/server/pos-customer.js +257 -0
  422. package/src/lib/server/pos-customer.js.map +1 -0
  423. package/src/lib/server/pos-display.d.ts +57 -0
  424. package/src/lib/server/pos-display.js +419 -0
  425. package/src/lib/server/pos-display.js.map +1 -0
  426. package/src/lib/server/pos-fee-month.d.ts +34 -0
  427. package/src/lib/server/pos-fee-month.js +36 -0
  428. package/src/lib/server/pos-fee-month.js.map +1 -0
  429. package/src/lib/server/pos-ops-gate.d.ts +161 -0
  430. package/src/lib/server/pos-ops-gate.js +295 -0
  431. package/src/lib/server/pos-ops-gate.js.map +1 -0
  432. package/src/lib/server/pos-ops-routes.d.ts +22 -0
  433. package/src/lib/server/pos-ops-routes.js +36 -0
  434. package/src/lib/server/pos-ops-routes.js.map +1 -0
  435. package/src/lib/server/pos-order.d.ts +1 -18
  436. package/src/lib/server/pos-order.js +222 -42
  437. package/src/lib/server/pos-order.js.map +1 -1
  438. package/src/lib/server/pos-payment.d.ts +39 -0
  439. package/src/lib/server/pos-payment.js +922 -0
  440. package/src/lib/server/pos-payment.js.map +1 -0
  441. package/src/lib/server/pos-print.d.ts +82 -0
  442. package/src/lib/server/pos-print.js +193 -0
  443. package/src/lib/server/pos-print.js.map +1 -0
  444. package/src/lib/server/pos-readers.d.ts +27 -0
  445. package/src/lib/server/pos-readers.js +276 -0
  446. package/src/lib/server/pos-readers.js.map +1 -0
  447. package/src/lib/server/pos-refund-authority.d.ts +60 -0
  448. package/src/lib/server/pos-refund-authority.js +72 -0
  449. package/src/lib/server/pos-refund-authority.js.map +1 -0
  450. package/src/lib/server/pos-return.d.ts +58 -0
  451. package/src/lib/server/pos-return.js +891 -0
  452. package/src/lib/server/pos-return.js.map +1 -0
  453. package/src/lib/server/pos-sale-stamp.d.ts +66 -0
  454. package/src/lib/server/pos-sale-stamp.js +84 -0
  455. package/src/lib/server/pos-sale-stamp.js.map +1 -0
  456. package/src/lib/server/pos-sale.d.ts +170 -0
  457. package/src/lib/server/pos-sale.js +461 -0
  458. package/src/lib/server/pos-sale.js.map +1 -0
  459. package/src/lib/server/pos-shift.d.ts +45 -0
  460. package/src/lib/server/pos-shift.js +484 -0
  461. package/src/lib/server/pos-shift.js.map +1 -0
  462. package/src/lib/server/pos-staff-pin.d.ts +26 -0
  463. package/src/lib/server/pos-staff-pin.js +339 -0
  464. package/src/lib/server/pos-staff-pin.js.map +1 -0
  465. package/src/lib/server/pos-stripe.d.ts +91 -0
  466. package/src/lib/server/pos-stripe.js +129 -0
  467. package/src/lib/server/pos-stripe.js.map +1 -0
  468. package/src/lib/server/pos-terminal-connection-token.d.ts +48 -0
  469. package/src/lib/server/pos-terminal-connection-token.js +166 -0
  470. package/src/lib/server/pos-terminal-connection-token.js.map +1 -0
  471. package/src/lib/server/pos-terminal.d.ts +218 -0
  472. package/src/lib/server/pos-terminal.js +1014 -0
  473. package/src/lib/server/pos-terminal.js.map +1 -0
  474. package/src/lib/server/print-queue.d.ts +124 -0
  475. package/src/lib/server/print-queue.js +301 -0
  476. package/src/lib/server/print-queue.js.map +1 -0
  477. package/src/lib/server/printer-poll.d.ts +75 -0
  478. package/src/lib/server/printer-poll.js +325 -0
  479. package/src/lib/server/printer-poll.js.map +1 -0
  480. package/src/lib/server/printer-secret.d.ts +39 -0
  481. package/src/lib/server/printer-secret.js +56 -0
  482. package/src/lib/server/printer-secret.js.map +1 -0
  483. package/src/lib/server/printers.d.ts +114 -0
  484. package/src/lib/server/printers.js +546 -0
  485. package/src/lib/server/printers.js.map +1 -0
  486. package/src/lib/server/product-catalog.d.ts +42 -0
  487. package/src/lib/server/product-catalog.js +305 -0
  488. package/src/lib/server/product-catalog.js.map +1 -0
  489. package/src/lib/server/refund.js +110 -45
  490. package/src/lib/server/refund.js.map +1 -1
  491. package/src/lib/server/reserve.js +2 -0
  492. package/src/lib/server/reserve.js.map +1 -1
  493. package/src/lib/server/return-status-action.d.ts +37 -0
  494. package/src/lib/server/return-status-action.js +57 -0
  495. package/src/lib/server/return-status-action.js.map +1 -0
  496. package/src/lib/server/returns.d.ts +119 -0
  497. package/src/lib/server/returns.js +938 -0
  498. package/src/lib/server/returns.js.map +1 -0
  499. package/src/lib/server/shipment-records.d.ts +36 -0
  500. package/src/lib/server/shipment-records.js +289 -0
  501. package/src/lib/server/shipment-records.js.map +1 -0
  502. package/src/lib/server/shipping-connector-gates.d.ts +40 -0
  503. package/src/lib/server/shipping-connector-gates.js +97 -0
  504. package/src/lib/server/shipping-connector-gates.js.map +1 -0
  505. package/src/lib/server/shipping-connectors.d.ts +29 -0
  506. package/src/lib/server/shipping-connectors.js +236 -0
  507. package/src/lib/server/shipping-connectors.js.map +1 -0
  508. package/src/lib/server/shippingeasy.d.ts +238 -0
  509. package/src/lib/server/shippingeasy.js +787 -0
  510. package/src/lib/server/shippingeasy.js.map +1 -0
  511. package/src/lib/server/shipstation.d.ts +129 -0
  512. package/src/lib/server/shipstation.js +483 -0
  513. package/src/lib/server/shipstation.js.map +1 -0
  514. package/src/lib/server/site-page-resolver.d.ts +5 -0
  515. package/src/lib/server/site-page-resolver.js +156 -1
  516. package/src/lib/server/site-page-resolver.js.map +1 -1
  517. package/src/lib/server/stock-levels.d.ts +21 -0
  518. package/src/lib/server/stock-levels.js +263 -0
  519. package/src/lib/server/stock-levels.js.map +1 -0
  520. package/src/lib/server/stripe-refund.d.ts +47 -0
  521. package/src/lib/server/stripe-refund.js +87 -0
  522. package/src/lib/server/stripe-refund.js.map +1 -0
  523. package/src/lib/server/supplier-update.js +46 -5
  524. package/src/lib/server/supplier-update.js.map +1 -1
  525. package/src/lib/server/tax-engine-quote.d.ts +47 -0
  526. package/src/lib/server/tax-engine-quote.js +105 -0
  527. package/src/lib/server/tax-engine-quote.js.map +1 -0
  528. package/src/lib/server.js +138 -2
  529. package/src/lib/server.js.map +1 -1
  530. package/src/lib/site.js +12 -0
  531. package/src/lib/site.js.map +1 -1
  532. package/src/lib/subprocessors.d.ts +26 -0
  533. package/src/lib/subprocessors.js +50 -0
  534. package/src/lib/subprocessors.js.map +1 -0
  535. package/src/lib/tenant-emails.js +461 -3
  536. package/src/lib/tenant-emails.js.map +1 -1
  537. package/src/lib/testing/fake-firestore.d.ts +45 -0
  538. package/src/lib/testing/fake-firestore.js +189 -0
  539. package/src/lib/testing/fake-firestore.js.map +1 -0
  540. package/src/lib/testing/memory-firestore.d.ts +123 -0
  541. package/src/lib/testing/memory-firestore.js +274 -0
  542. package/src/lib/testing/memory-firestore.js.map +1 -0
  543. package/src/lib/testing/pos-ops-harness.d.ts +50 -0
  544. package/src/lib/testing/pos-ops-harness.js +184 -0
  545. package/src/lib/testing/pos-ops-harness.js.map +1 -0
  546. package/src/lib/testing/pos-ops-memory-firestore.d.ts +55 -0
  547. package/src/lib/testing/pos-ops-memory-firestore.js +376 -0
  548. package/src/lib/testing/pos-ops-memory-firestore.js.map +1 -0
  549. package/src/lib/transfer/records-transfer.d.ts +11 -1
  550. package/src/lib/transfer/records-transfer.js +127 -5
  551. package/src/lib/transfer/records-transfer.js.map +1 -1
  552. package/src/lib/transfer/records.server.d.ts +9 -2
  553. package/src/lib/transfer/records.server.js +58 -7
  554. package/src/lib/transfer/records.server.js.map +1 -1
  555. package/src/lib/transfer/register-transfer-resources.js +40 -1
  556. package/src/lib/transfer/register-transfer-resources.js.map +1 -1
  557. package/src/lib/transfer/register-transfer-ui.js +4 -1
  558. package/src/lib/transfer/register-transfer-ui.js.map +1 -1
  559. package/src/lib/transfer/shipping-presets.d.ts +23 -0
  560. package/src/lib/transfer/shipping-presets.js +156 -0
  561. package/src/lib/transfer/shipping-presets.js.map +1 -0
  562. package/src/lib/transfer/tracking-transfer.d.ts +101 -0
  563. package/src/lib/transfer/tracking-transfer.js +546 -0
  564. package/src/lib/transfer/tracking-transfer.js.map +1 -0
  565. package/src/lib/transfer/tracking.server.d.ts +37 -0
  566. package/src/lib/transfer/tracking.server.js +393 -0
  567. package/src/lib/transfer/tracking.server.js.map +1 -0
  568. package/src/lib/transfer/transfer-keys.d.ts +2 -1
  569. package/src/lib/transfer/transfer-keys.js +6 -2
  570. package/src/lib/transfer/transfer-keys.js.map +1 -1
  571. package/src/lib/utils/code128.d.ts +37 -0
  572. package/src/lib/utils/code128.js +199 -0
  573. package/src/lib/utils/code128.js.map +1 -0
  574. package/src/lib/utils/order-invoice.d.ts +55 -0
  575. package/src/lib/utils/order-invoice.js +127 -0
  576. package/src/lib/utils/order-invoice.js.map +1 -0
  577. package/src/lib/utils/use-checkout-return-notice.d.ts +34 -0
  578. package/src/lib/utils/use-checkout-return-notice.js +78 -0
  579. package/src/lib/utils/use-checkout-return-notice.js.map +1 -0
  580. package/src/lib/server/feed.js +0 -69
  581. package/src/lib/server/feed.js.map +0 -1
@@ -0,0 +1,101 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Aglyn LLC
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { type BuildTransferPlanInput, type MatchKeySpec, type MatchLookup, type PlannedTransferRow, type RowMatchOutcome, type TransferField, type TransferPlan, type TransferPolicyDefaults } from '@aglyn/aglyn/data-transfer';
18
+ import { type HostOrder, type OrderFulfillment } from '../model/commerce-orders';
19
+ export declare const TRACKING_FIELD: {
20
+ readonly orderRef: "orderRef";
21
+ readonly trackingNumber: "trackingNumber";
22
+ readonly carrier: "carrier";
23
+ readonly service: "service";
24
+ readonly trackingUrl: "trackingUrl";
25
+ readonly sku: "sku";
26
+ readonly quantity: "quantity";
27
+ readonly status: "status";
28
+ readonly shippedAt: "shippedAt";
29
+ };
30
+ export declare const TRACKING_TRANSFER_FIELDS: readonly TransferField[];
31
+ export declare const TRACKING_TRANSFER_GROUPS: {
32
+ id: string;
33
+ label: string;
34
+ }[];
35
+ export declare const TRACKING_MATCH_KEYS: readonly MatchKeySpec[];
36
+ /**
37
+ * Where the Conflicts step starts: a matched order is updated (shipped), a
38
+ * row naming no order is never made into one, and a tracking number an
39
+ * already-shipped order holds is KEPT until the person chooses otherwise.
40
+ */
41
+ export declare const TRACKING_DEFAULT_POLICY: TransferPolicyDefaults;
42
+ /** What `apply` does for one planned row. */
43
+ export type TrackingDecision = {
44
+ action: 'ship';
45
+ orderId: string;
46
+ carrier: string;
47
+ trackingNumber: string;
48
+ trackingUrl?: string;
49
+ /** Absent ships everything still to ship. */
50
+ lineItems?: Array<{
51
+ lineItemId: number;
52
+ quantity: number;
53
+ }>;
54
+ } | {
55
+ action: 'replace';
56
+ orderId: string;
57
+ fulfillmentId: string;
58
+ carrier: string;
59
+ trackingNumber: string;
60
+ trackingUrl?: string;
61
+ previous: {
62
+ carrier: string | null;
63
+ trackingNumber: string | null;
64
+ trackingUrl: string | null;
65
+ };
66
+ };
67
+ /** A planned row with what it will do to its order. */
68
+ export type TrackingPlannedRow = PlannedTransferRow & {
69
+ tracking?: TrackingDecision;
70
+ };
71
+ /** An order as the plan and the records read it. */
72
+ export type StoredTrackingOrder = Partial<HostOrder> & {
73
+ createdAtMs?: number;
74
+ };
75
+ /** The order's latest active shipment, the one a replacement tracking number lands on. */
76
+ export declare function latestShipment(order: Pick<HostOrder, 'fulfillments'>): OrderFulfillment | undefined;
77
+ /**
78
+ * An order as the import's records name it: its numbers, and the tracking a
79
+ * row would conflict with — the latest shipment's, but only once nothing is
80
+ * left to ship. An order still owed parcels has no "current" tracking: the
81
+ * next row is a new parcel, not a change to an old one.
82
+ */
83
+ export declare function trackingRecord(id: string, stored: StoredTrackingOrder): Record<string, unknown>;
84
+ /** The values an order is found by: `1042`, `#1042` and its ID. */
85
+ export declare function trackingMatchValues(id: string, stored: StoredTrackingOrder): Record<string, unknown>;
86
+ /** One export row per shipment an order carries, newest last. */
87
+ export declare function trackingExportRows(id: string, stored: StoredTrackingOrder): Array<Record<string, unknown>>;
88
+ /**
89
+ * Which order each row names, the import's own way: by order number through
90
+ * the lookup, with a duplicate only when a row repeats an EARLIER row's
91
+ * order and tracking number together. The core's rule — any repeated key is
92
+ * a duplicate — would refuse the second parcel of every two-parcel order.
93
+ */
94
+ export declare function matchTrackingRows(rows: ReadonlyArray<Readonly<Record<string, unknown>>>, lookup: MatchLookup): RowMatchOutcome[];
95
+ /**
96
+ * The dry run: the core's plan for the policy, warnings and acknowledgements,
97
+ * then each matched row decided against its order as the file leaves it —
98
+ * units shipped by an earlier row of the same file are not shipped twice.
99
+ * `orders` holds every matched order, read once.
100
+ */
101
+ export declare function planTrackingRows(input: BuildTransferPlanInput, orders: ReadonlyMap<string, StoredTrackingOrder>): TransferPlan;
@@ -0,0 +1,546 @@
1
+ import { _ as _extends } from "@swc/helpers/_/_extends";
2
+ /**
3
+ * @license
4
+ * Copyright 2026 Aglyn LLC
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License");
7
+ * you may not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ */ import { buildTransferPlan, matchLookupKey, normalizeMatchValue, resolveFieldPolicy, resolveRecordPolicy, withTransferResourceFindings } from "@aglyn/aglyn/data-transfer";
18
+ import { ORDER_STATUS_LABELS, formatOrderNumber, liftLegacyOrder } from "../model/commerce-orders.js";
19
+ import { fulfillmentIsActive, orderLineFulfillmentStates } from "../model/order-fulfillment.js";
20
+ import { fulfillmentWithTracking, normalizeTrackingNumber, shippingOrderNumber, shippingOrderRefs } from "../model/order-shipping-export.js";
21
+ /*
22
+ * TRACKING NUMBERS AS A FILE (AGL-3613): what Pirate Ship's shipment export,
23
+ * Shippo's and EasyPost's reports, or any spreadsheet of parcels brings back
24
+ * — an order and the tracking number of the parcel that left for it — made
25
+ * into the order's shipments. Pure; the server half is `tracking.server.ts`.
26
+ *
27
+ * ## A row is a parcel, and a parcel is recorded once
28
+ *
29
+ * Rows are matched to orders by the order number the export wrote (`1042`,
30
+ * `#1042`, or the order's ID). Several rows may name one order — one per
31
+ * parcel — so a row is a duplicate only when it repeats an order AND a
32
+ * tracking number together. A tracking number the order already carries is
33
+ * `unchanged`, so the same file imported twice records nothing twice.
34
+ *
35
+ * ## What a row does to its order
36
+ *
37
+ * - The order still has units to ship: the row SHIPS them, recorded through
38
+ * the console's own shipment (`recordOrderShipment`) and emailed to the
39
+ * buyer. A row with a SKU (and a quantity) ships that line; one without
40
+ * ships everything left.
41
+ * - The order has nothing left to ship: this is the CONFLICT, and the
42
+ * person decides it on the Conflicts step through the Tracking number
43
+ * field's choice. Keep existing (the start) leaves the shipment as it is;
44
+ * Overwrite replaces its tracking; Fill blanks adds tracking only to a
45
+ * shipment recorded without any.
46
+ * - A pending, canceled or refunded order is refused, by name.
47
+ *
48
+ * Nothing here creates an order: a row naming no order fails with the
49
+ * number it named.
50
+ */ export const TRACKING_FIELD = {
51
+ orderRef: 'orderRef',
52
+ trackingNumber: 'trackingNumber',
53
+ carrier: 'carrier',
54
+ service: 'service',
55
+ trackingUrl: 'trackingUrl',
56
+ sku: 'sku',
57
+ quantity: 'quantity',
58
+ status: 'status',
59
+ shippedAt: 'shippedAt'
60
+ };
61
+ export const TRACKING_TRANSFER_FIELDS = [
62
+ {
63
+ id: TRACKING_FIELD.orderRef,
64
+ label: 'Order',
65
+ group: 'parcel',
66
+ type: 'text',
67
+ required: true,
68
+ matchKey: true,
69
+ description: 'The order number the shipping export wrote (1042 or #1042), or the order’s ID.',
70
+ aliases: [
71
+ 'order',
72
+ 'order id',
73
+ 'order number',
74
+ 'order #',
75
+ 'order no',
76
+ 'order_number',
77
+ 'order_id',
78
+ 'orderid',
79
+ 'reference',
80
+ 'reference 1',
81
+ 'reference1',
82
+ 'ref',
83
+ 'external order id',
84
+ 'invoice number'
85
+ ]
86
+ },
87
+ {
88
+ id: TRACKING_FIELD.trackingNumber,
89
+ label: 'Tracking number',
90
+ group: 'parcel',
91
+ type: 'text',
92
+ required: true,
93
+ maxLength: 60,
94
+ aliases: [
95
+ 'tracking',
96
+ 'tracking #',
97
+ 'tracking no',
98
+ 'tracking code',
99
+ 'tracking_code',
100
+ 'tracking_number',
101
+ 'tracking id'
102
+ ]
103
+ },
104
+ {
105
+ id: TRACKING_FIELD.carrier,
106
+ label: 'Carrier',
107
+ group: 'parcel',
108
+ type: 'text',
109
+ maxLength: 40,
110
+ aliases: [
111
+ 'provider',
112
+ 'shipping carrier',
113
+ 'carrier name'
114
+ ]
115
+ },
116
+ {
117
+ id: TRACKING_FIELD.service,
118
+ label: 'Service',
119
+ group: 'parcel',
120
+ type: 'text',
121
+ description: 'Read for the timeline; the carrier and the number are what the buyer is sent.',
122
+ aliases: [
123
+ 'shipping service',
124
+ 'service level',
125
+ 'servicelevel',
126
+ 'mail class'
127
+ ]
128
+ },
129
+ {
130
+ id: TRACKING_FIELD.trackingUrl,
131
+ label: 'Tracking link',
132
+ group: 'parcel',
133
+ type: 'url',
134
+ description: 'Used instead of the carrier’s own tracking page when given. https only.',
135
+ aliases: [
136
+ 'tracking url',
137
+ 'tracking_url',
138
+ 'tracking_url_provider',
139
+ 'public_url',
140
+ 'tracking page'
141
+ ]
142
+ },
143
+ {
144
+ id: TRACKING_FIELD.sku,
145
+ label: 'SKU',
146
+ group: 'items',
147
+ type: 'text',
148
+ description: 'Ships only this item of the order. Blank ships everything still to ship.',
149
+ aliases: [
150
+ 'item sku',
151
+ 'product sku'
152
+ ]
153
+ },
154
+ {
155
+ id: TRACKING_FIELD.quantity,
156
+ label: 'Quantity',
157
+ group: 'items',
158
+ type: 'integer',
159
+ description: 'How many of the SKU’s units this parcel holds. Blank ships every unit left.',
160
+ aliases: [
161
+ 'qty',
162
+ 'item quantity',
163
+ 'units'
164
+ ]
165
+ },
166
+ {
167
+ id: TRACKING_FIELD.status,
168
+ label: 'Order status',
169
+ group: 'order',
170
+ type: 'text',
171
+ readOnly: true
172
+ },
173
+ {
174
+ id: TRACKING_FIELD.shippedAt,
175
+ label: 'Shipped',
176
+ group: 'order',
177
+ type: 'datetime',
178
+ readOnly: true
179
+ }
180
+ ];
181
+ export const TRACKING_TRANSFER_GROUPS = [
182
+ {
183
+ id: 'parcel',
184
+ label: 'Parcel'
185
+ },
186
+ {
187
+ id: 'items',
188
+ label: 'Items'
189
+ },
190
+ {
191
+ id: 'order',
192
+ label: 'Order'
193
+ }
194
+ ];
195
+ export const TRACKING_MATCH_KEYS = [
196
+ {
197
+ fieldId: TRACKING_FIELD.orderRef,
198
+ normalizer: 'trim'
199
+ }
200
+ ];
201
+ /**
202
+ * Where the Conflicts step starts: a matched order is updated (shipped), a
203
+ * row naming no order is never made into one, and a tracking number an
204
+ * already-shipped order holds is KEPT until the person chooses otherwise.
205
+ */ export const TRACKING_DEFAULT_POLICY = {
206
+ record: {
207
+ onMatch: 'update',
208
+ onNew: 'skip',
209
+ onAmbiguous: 'ask'
210
+ },
211
+ fields: {
212
+ [TRACKING_FIELD.trackingNumber]: {
213
+ mode: 'keepExisting',
214
+ blank: 'leave'
215
+ }
216
+ },
217
+ note: 'A row ships what its order still has to ship. For an order that has already shipped, choose ' + 'Overwrite for Tracking number to replace its tracking, or keep what it has.'
218
+ };
219
+ const iso = (ms)=>{
220
+ const value = Number(ms);
221
+ return Number.isFinite(value) && value > 0 ? new Date(value).toISOString() : null;
222
+ };
223
+ const cell = (value)=>value === null || value === undefined ? '' : String(value).trim();
224
+ /** The order's latest active shipment, the one a replacement tracking number lands on. */ export function latestShipment(order) {
225
+ var _order_fulfillments;
226
+ return ((_order_fulfillments = order.fulfillments) != null ? _order_fulfillments : []).filter((entry)=>fulfillmentIsActive(entry)).reduce((latest, entry)=>!latest || entry.atMs >= latest.atMs ? entry : latest, undefined);
227
+ }
228
+ const unitsLeft = (order)=>orderLineFulfillmentStates(order).filter((state)=>state.requiresShipping).reduce((sum, state)=>sum + state.remainingQuantity, 0);
229
+ /**
230
+ * An order as the import's records name it: its numbers, and the tracking a
231
+ * row would conflict with — the latest shipment's, but only once nothing is
232
+ * left to ship. An order still owed parcels has no "current" tracking: the
233
+ * next row is a new parcel, not a change to an old one.
234
+ */ export function trackingRecord(id, stored) {
235
+ var _ref, _ref1, _ref2, _ORDER_STATUS_LABELS_order_status;
236
+ const order = liftLegacyOrder(stored);
237
+ const open = unitsLeft(order) > 0;
238
+ const latest = open ? undefined : latestShipment(order);
239
+ return {
240
+ id,
241
+ orderRef: shippingOrderNumber(order, id),
242
+ trackingNumber: (_ref = latest == null ? void 0 : latest.trackingNumber) != null ? _ref : null,
243
+ carrier: (_ref1 = latest == null ? void 0 : latest.carrier) != null ? _ref1 : null,
244
+ trackingUrl: (_ref2 = latest == null ? void 0 : latest.trackingUrl) != null ? _ref2 : null,
245
+ service: null,
246
+ sku: null,
247
+ quantity: null,
248
+ status: (_ORDER_STATUS_LABELS_order_status = ORDER_STATUS_LABELS[order.status]) != null ? _ORDER_STATUS_LABELS_order_status : order.status,
249
+ shippedAt: iso(latest == null ? void 0 : latest.atMs)
250
+ };
251
+ }
252
+ /** The values an order is found by: `1042`, `#1042` and its ID. */ export function trackingMatchValues(id, stored) {
253
+ return {
254
+ id,
255
+ orderRef: shippingOrderRefs(stored, id)
256
+ };
257
+ }
258
+ /** One export row per shipment an order carries, newest last. */ export function trackingExportRows(id, stored) {
259
+ var _order_fulfillments;
260
+ const order = liftLegacyOrder(stored);
261
+ return ((_order_fulfillments = order.fulfillments) != null ? _order_fulfillments : []).filter((entry)=>fulfillmentIsActive(entry) && entry.trackingNumber).map((entry)=>{
262
+ var _entry_trackingNumber, _entry_carrier, _entry_trackingUrl, _entry_lines, _ORDER_STATUS_LABELS_order_status;
263
+ return {
264
+ id,
265
+ orderRef: shippingOrderNumber(order, id),
266
+ trackingNumber: (_entry_trackingNumber = entry.trackingNumber) != null ? _entry_trackingNumber : null,
267
+ carrier: (_entry_carrier = entry.carrier) != null ? _entry_carrier : null,
268
+ trackingUrl: (_entry_trackingUrl = entry.trackingUrl) != null ? _entry_trackingUrl : null,
269
+ service: null,
270
+ sku: null,
271
+ quantity: ((_entry_lines = entry.lines) != null ? _entry_lines : []).reduce((sum, line)=>sum + (Number(line.quantity) || 0), 0) || null,
272
+ status: (_ORDER_STATUS_LABELS_order_status = ORDER_STATUS_LABELS[order.status]) != null ? _ORDER_STATUS_LABELS_order_status : order.status,
273
+ shippedAt: iso(entry.atMs)
274
+ };
275
+ });
276
+ }
277
+ /**
278
+ * Which order each row names, the import's own way: by order number through
279
+ * the lookup, with a duplicate only when a row repeats an EARLIER row's
280
+ * order and tracking number together. The core's rule — any repeated key is
281
+ * a duplicate — would refuse the second parcel of every two-parcel order.
282
+ */ export function matchTrackingRows(rows, lookup) {
283
+ const seen = new Map();
284
+ return rows.map((values, index)=>{
285
+ var _lookup_get;
286
+ const ref = normalizeMatchValue('trim', values[TRACKING_FIELD.orderRef]);
287
+ if (!ref) return {
288
+ kind: 'new'
289
+ };
290
+ const via = {
291
+ fieldId: TRACKING_FIELD.orderRef,
292
+ value: ref
293
+ };
294
+ const ids = (_lookup_get = lookup.get(matchLookupKey(TRACKING_FIELD.orderRef, ref))) != null ? _lookup_get : [];
295
+ if (ids.length > 1) return {
296
+ kind: 'ambiguous',
297
+ recordIds: [
298
+ ...ids
299
+ ],
300
+ via
301
+ };
302
+ if (!ids.length) return {
303
+ kind: 'new'
304
+ };
305
+ const parcel = `${ids[0]}\u0000${normalizeTrackingNumber(values[TRACKING_FIELD.trackingNumber])}`;
306
+ const first = seen.get(parcel);
307
+ if (first !== undefined && normalizeTrackingNumber(values[TRACKING_FIELD.trackingNumber])) {
308
+ return {
309
+ kind: 'duplicateInFile',
310
+ firstRow: first,
311
+ via
312
+ };
313
+ }
314
+ seen.set(parcel, index);
315
+ return {
316
+ kind: 'matched',
317
+ recordId: ids[0],
318
+ via
319
+ };
320
+ });
321
+ }
322
+ const SHIPPABLE_STATUSES = new Set([
323
+ 'paid',
324
+ 'partially_fulfilled',
325
+ 'fulfilled',
326
+ 'delivered'
327
+ ]);
328
+ function summaryOf(rows) {
329
+ const summary = {
330
+ create: 0,
331
+ update: 0,
332
+ unchanged: 0,
333
+ skip: 0,
334
+ fail: 0,
335
+ total: rows.length
336
+ };
337
+ for (const row of rows)summary[row.verdict] += 1;
338
+ return summary;
339
+ }
340
+ function change(fieldId, before, after) {
341
+ return {
342
+ fieldId,
343
+ before: before != null ? before : null,
344
+ after,
345
+ mode: 'overwrite',
346
+ source: 'default',
347
+ rule: 'written'
348
+ };
349
+ }
350
+ /**
351
+ * The dry run: the core's plan for the policy, warnings and acknowledgements,
352
+ * then each matched row decided against its order as the file leaves it —
353
+ * units shipped by an earlier row of the same file are not shipped twice.
354
+ * `orders` holds every matched order, read once.
355
+ */ export function planTrackingRows(input, orders) {
356
+ const core = buildTransferPlan(input);
357
+ const field = input.fields.find((entry)=>entry.id === TRACKING_FIELD.trackingNumber);
358
+ const valuesByIndex = new Map(input.rows.map((row)=>[
359
+ row.index,
360
+ row.values
361
+ ]));
362
+ const findings = [];
363
+ /** Units left per order and line, as the rows above have left them. */ const left = new Map();
364
+ /** Orders whose last units a row above shipped, by that row. */ const closedBy = new Map();
365
+ /** Shipments a row above already re-tracked. */ const replaced = new Set();
366
+ const refuse = (row, detail, fieldId)=>{
367
+ findings.push(_extends({
368
+ row: row.index,
369
+ detail
370
+ }, fieldId ? {
371
+ fieldId
372
+ } : {}));
373
+ return _extends({}, row, {
374
+ verdict: 'fail',
375
+ reason: 'resourceRule',
376
+ diff: []
377
+ });
378
+ };
379
+ const rows = core.rows.map((planned)=>{
380
+ var _valuesByIndex_get, _left_get, _latest_trackingNumber, _latest_carrier, _latest_carrier1, _latest_trackingNumber1, _latest_trackingUrl;
381
+ const row = _extends({}, planned);
382
+ const values = (_valuesByIndex_get = valuesByIndex.get(row.index)) != null ? _valuesByIndex_get : {};
383
+ const ref = cell(values[TRACKING_FIELD.orderRef]);
384
+ if (row.match.kind === 'new') {
385
+ return ref ? refuse(row, `No order ${ref} on this site. A tracking file records parcels for orders; it never creates one.`, TRACKING_FIELD.orderRef) : refuse(row, 'The row names no order.', TRACKING_FIELD.orderRef);
386
+ }
387
+ if (row.match.kind !== 'matched') return row;
388
+ if (row.verdict === 'skip' || resolveRecordPolicy(input.policy, row.index).action === 'skip') {
389
+ var _row_reason;
390
+ return _extends({}, row, {
391
+ verdict: 'skip',
392
+ reason: (_row_reason = row.reason) != null ? _row_reason : 'skippedByChoice',
393
+ diff: []
394
+ });
395
+ }
396
+ const orderId = row.match.recordId;
397
+ const stored = orders.get(orderId);
398
+ if (!stored) return _extends({}, row, {
399
+ verdict: 'fail',
400
+ reason: 'matchedRecordMissing',
401
+ diff: []
402
+ });
403
+ const order = liftLegacyOrder(stored);
404
+ const label = formatOrderNumber(order, orderId);
405
+ const trackingNumber = cell(values[TRACKING_FIELD.trackingNumber]).slice(0, 60);
406
+ if (!trackingNumber) return refuse(row, `No tracking number for order ${label}.`, TRACKING_FIELD.trackingNumber);
407
+ if (!SHIPPABLE_STATUSES.has(order.status)) {
408
+ var _ref;
409
+ var _ORDER_STATUS_LABELS_order_status;
410
+ return refuse(row, `Order ${label} is ${(_ref = (_ORDER_STATUS_LABELS_order_status = ORDER_STATUS_LABELS[order.status]) == null ? void 0 : _ORDER_STATUS_LABELS_order_status.toLowerCase()) != null ? _ref : order.status}; nothing on it ships.`);
411
+ }
412
+ if (fulfillmentWithTracking(order, trackingNumber)) {
413
+ return _extends({}, row, {
414
+ verdict: 'unchanged',
415
+ diff: [],
416
+ reason: undefined
417
+ });
418
+ }
419
+ const carrier = cell(values[TRACKING_FIELD.carrier]).slice(0, 40);
420
+ const trackingUrl = cell(values[TRACKING_FIELD.trackingUrl]) || undefined;
421
+ const states = orderLineFulfillmentStates(order);
422
+ const remaining = (_left_get = left.get(orderId)) != null ? _left_get : new Map(states.filter((state)=>state.requiresShipping).map((state)=>[
423
+ state.lineItemId,
424
+ state.remainingQuantity
425
+ ]));
426
+ left.set(orderId, remaining);
427
+ const unitsOpen = [
428
+ ...remaining.values()
429
+ ].reduce((sum, units)=>sum + units, 0);
430
+ if (unitsOpen > 0) {
431
+ const sku = cell(values[TRACKING_FIELD.sku]).toLowerCase();
432
+ let lineItems;
433
+ if (sku) {
434
+ var _order_lineItems, _remaining_get;
435
+ const lineItemId = ((_order_lineItems = order.lineItems) != null ? _order_lineItems : []).findIndex((line, index)=>{
436
+ var _line_sku, _remaining_get;
437
+ return ((_line_sku = line.sku) != null ? _line_sku : '').trim().toLowerCase() === sku && ((_remaining_get = remaining.get(index)) != null ? _remaining_get : 0) > 0;
438
+ });
439
+ if (lineItemId < 0) return refuse(row, `Order ${label} has no item with SKU ${cell(values[TRACKING_FIELD.sku])} left to ship.`, TRACKING_FIELD.sku);
440
+ const open = (_remaining_get = remaining.get(lineItemId)) != null ? _remaining_get : 0;
441
+ const asked = values[TRACKING_FIELD.quantity];
442
+ const quantity = asked === null || asked === undefined || cell(asked) === '' ? open : Math.floor(Number(asked));
443
+ if (!Number.isInteger(quantity) || quantity <= 0) {
444
+ return refuse(row, `The quantity for order ${label} must be a whole number above zero.`, TRACKING_FIELD.quantity);
445
+ }
446
+ if (quantity > open) {
447
+ return refuse(row, `Order ${label} has only ${open} of SKU ${cell(values[TRACKING_FIELD.sku])} left to ship, not ${quantity}.`, TRACKING_FIELD.quantity);
448
+ }
449
+ lineItems = [
450
+ {
451
+ lineItemId,
452
+ quantity
453
+ }
454
+ ];
455
+ remaining.set(lineItemId, open - quantity);
456
+ } else {
457
+ for (const key of remaining.keys())remaining.set(key, 0);
458
+ }
459
+ if ([
460
+ ...remaining.values()
461
+ ].every((units)=>units === 0)) closedBy.set(orderId, row.index);
462
+ return _extends({}, row, {
463
+ verdict: 'update',
464
+ reason: undefined,
465
+ diff: [
466
+ change(TRACKING_FIELD.trackingNumber, null, trackingNumber),
467
+ ...carrier ? [
468
+ change(TRACKING_FIELD.carrier, null, carrier)
469
+ ] : []
470
+ ],
471
+ tracking: _extends({
472
+ action: 'ship',
473
+ orderId,
474
+ carrier,
475
+ trackingNumber
476
+ }, trackingUrl ? {
477
+ trackingUrl
478
+ } : {}, lineItems ? {
479
+ lineItems
480
+ } : {})
481
+ });
482
+ }
483
+ // Nothing left to ship. Shipped by a row ABOVE in this file: that row's
484
+ // parcel took everything, so this one has nothing to hold.
485
+ const closer = closedBy.get(orderId);
486
+ if (closer !== undefined) {
487
+ return refuse(row, `Row ${closer + 1} already ships everything left on order ${label}. To split an order across parcels, give each parcel’s SKU and Quantity.`);
488
+ }
489
+ const latest = latestShipment(order);
490
+ if (!latest) return refuse(row, `Order ${label} has nothing to ship.`);
491
+ if (replaced.has(latest.id)) {
492
+ return refuse(row, `An earlier row already replaces the tracking on order ${label}.`);
493
+ }
494
+ const mode = field ? resolveFieldPolicy(input.policy, row.index, field).mode : 'keepExisting';
495
+ const hasTracking = Boolean(cell(latest.trackingNumber));
496
+ const writes = mode === 'overwrite' || mode === 'fillBlanks' && !hasTracking;
497
+ if (!writes) {
498
+ findings.push({
499
+ row: row.index,
500
+ fieldId: TRACKING_FIELD.trackingNumber,
501
+ value: trackingNumber,
502
+ detail: hasTracking ? `Order ${label} already shipped with tracking ${latest.trackingNumber}; it is kept. Choose Overwrite for Tracking number to replace it.` : `Order ${label} already shipped without tracking; choose Fill blanks or Overwrite for Tracking number to add it.`
503
+ });
504
+ return _extends({}, row, {
505
+ verdict: 'unchanged',
506
+ diff: [],
507
+ reason: undefined
508
+ });
509
+ }
510
+ replaced.add(latest.id);
511
+ return _extends({}, row, {
512
+ verdict: 'update',
513
+ reason: undefined,
514
+ diff: [
515
+ _extends({}, change(TRACKING_FIELD.trackingNumber, (_latest_trackingNumber = latest.trackingNumber) != null ? _latest_trackingNumber : null, trackingNumber), {
516
+ mode
517
+ }),
518
+ ...carrier ? [
519
+ change(TRACKING_FIELD.carrier, (_latest_carrier = latest.carrier) != null ? _latest_carrier : null, carrier)
520
+ ] : []
521
+ ],
522
+ tracking: _extends({
523
+ action: 'replace',
524
+ orderId,
525
+ fulfillmentId: latest.id,
526
+ carrier: carrier || latest.carrier || '',
527
+ trackingNumber
528
+ }, trackingUrl ? {
529
+ trackingUrl
530
+ } : {}, {
531
+ previous: {
532
+ carrier: (_latest_carrier1 = latest.carrier) != null ? _latest_carrier1 : null,
533
+ trackingNumber: (_latest_trackingNumber1 = latest.trackingNumber) != null ? _latest_trackingNumber1 : null,
534
+ trackingUrl: (_latest_trackingUrl = latest.trackingUrl) != null ? _latest_trackingUrl : null
535
+ }
536
+ })
537
+ });
538
+ });
539
+ const decided = _extends({}, core, {
540
+ rows,
541
+ summary: summaryOf(rows)
542
+ });
543
+ return withTransferResourceFindings(decided, findings);
544
+ }
545
+
546
+ //# sourceMappingURL=tracking-transfer.js.map