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

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 (609) 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/catalog-organization-card.component.js +1 -0
  39. package/src/lib/components/console/catalog-organization-card.component.js.map +1 -1
  40. package/src/lib/components/console/customer-notifications-card.component.d.ts +19 -0
  41. package/src/lib/components/console/customer-notifications-card.component.js +149 -0
  42. package/src/lib/components/console/customer-notifications-card.component.js.map +1 -0
  43. package/src/lib/components/console/host-orders-card.component.js +88 -6
  44. package/src/lib/components/console/host-orders-card.component.js.map +1 -1
  45. package/src/lib/components/console/locations-card.component.js +164 -57
  46. package/src/lib/components/console/locations-card.component.js.map +1 -1
  47. package/src/lib/components/console/order-detail-dialog.component.js +209 -61
  48. package/src/lib/components/console/order-detail-dialog.component.js.map +1 -1
  49. package/src/lib/components/console/order-fulfillment-panel.component.d.ts +48 -0
  50. package/src/lib/components/console/order-fulfillment-panel.component.js +542 -0
  51. package/src/lib/components/console/order-fulfillment-panel.component.js.map +1 -0
  52. package/src/lib/components/console/order-invoice.component.d.ts +33 -0
  53. package/src/lib/components/console/order-invoice.component.js +81 -0
  54. package/src/lib/components/console/order-invoice.component.js.map +1 -0
  55. package/src/lib/components/console/order-receipt-resend.component.d.ts +21 -0
  56. package/src/lib/components/console/order-receipt-resend.component.js +203 -0
  57. package/src/lib/components/console/order-receipt-resend.component.js.map +1 -0
  58. package/src/lib/components/console/order-returns.component.d.ts +36 -0
  59. package/src/lib/components/console/order-returns.component.js +142 -0
  60. package/src/lib/components/console/order-returns.component.js.map +1 -0
  61. package/src/lib/components/console/order-shipping-actions.component.d.ts +54 -0
  62. package/src/lib/components/console/order-shipping-actions.component.js +149 -0
  63. package/src/lib/components/console/order-shipping-actions.component.js.map +1 -0
  64. package/src/lib/components/console/order-webhooks-card.component.d.ts +50 -0
  65. package/src/lib/components/console/order-webhooks-card.component.js +623 -0
  66. package/src/lib/components/console/order-webhooks-card.component.js.map +1 -0
  67. package/src/lib/components/console/order-zones.d.ts +155 -0
  68. package/src/lib/components/console/order-zones.js +40 -0
  69. package/src/lib/components/console/order-zones.js.map +1 -0
  70. package/src/lib/components/console/payment-methods-card.component.d.ts +67 -0
  71. package/src/lib/components/console/payment-methods-card.component.js +395 -0
  72. package/src/lib/components/console/payment-methods-card.component.js.map +1 -0
  73. package/src/lib/components/console/pos/pos-api.d.ts +124 -0
  74. package/src/lib/components/console/pos/pos-api.js +101 -0
  75. package/src/lib/components/console/pos/pos-api.js.map +1 -0
  76. package/src/lib/components/console/pos/pos-cart-panel.component.d.ts +36 -0
  77. package/src/lib/components/console/pos/pos-cart-panel.component.js +160 -0
  78. package/src/lib/components/console/pos/pos-cart-panel.component.js.map +1 -0
  79. package/src/lib/components/console/pos/pos-item-dialog.component.d.ts +39 -0
  80. package/src/lib/components/console/pos/pos-item-dialog.component.js +352 -0
  81. package/src/lib/components/console/pos/pos-item-dialog.component.js.map +1 -0
  82. package/src/lib/components/console/pos/pos-product-grid.component.d.ts +47 -0
  83. package/src/lib/components/console/pos/pos-product-grid.component.js +272 -0
  84. package/src/lib/components/console/pos/pos-product-grid.component.js.map +1 -0
  85. package/src/lib/components/console/pos/pos-receipt-panel.component.d.ts +27 -0
  86. package/src/lib/components/console/pos/pos-receipt-panel.component.js +282 -0
  87. package/src/lib/components/console/pos/pos-receipt-panel.component.js.map +1 -0
  88. package/src/lib/components/console/pos/pos-tender-dialogs.component.d.ts +53 -0
  89. package/src/lib/components/console/pos/pos-tender-dialogs.component.js +445 -0
  90. package/src/lib/components/console/pos/pos-tender-dialogs.component.js.map +1 -0
  91. package/src/lib/components/console/pos/pos-tender-panel.component.d.ts +31 -0
  92. package/src/lib/components/console/pos/pos-tender-panel.component.js +640 -0
  93. package/src/lib/components/console/pos/pos-tender-panel.component.js.map +1 -0
  94. package/src/lib/components/console/pos/use-pos-display.d.ts +43 -0
  95. package/src/lib/components/console/pos/use-pos-display.js +161 -0
  96. package/src/lib/components/console/pos/use-pos-display.js.map +1 -0
  97. package/src/lib/components/console/pos-devices-card.component.d.ts +14 -0
  98. package/src/lib/components/console/pos-devices-card.component.js +546 -0
  99. package/src/lib/components/console/pos-devices-card.component.js.map +1 -0
  100. package/src/lib/components/console/pos-display/brand-screen.d.ts +33 -0
  101. package/src/lib/components/console/pos-display/brand-screen.js +85 -0
  102. package/src/lib/components/console/pos-display/brand-screen.js.map +1 -0
  103. package/src/lib/components/console/pos-display/cart-screen.d.ts +29 -0
  104. package/src/lib/components/console/pos-display/cart-screen.js +166 -0
  105. package/src/lib/components/console/pos-display/cart-screen.js.map +1 -0
  106. package/src/lib/components/console/pos-display/pairing-screen.d.ts +24 -0
  107. package/src/lib/components/console/pos-display/pairing-screen.js +127 -0
  108. package/src/lib/components/console/pos-display/pairing-screen.js.map +1 -0
  109. package/src/lib/components/console/pos-display/pos-display-api.d.ts +90 -0
  110. package/src/lib/components/console/pos-display/pos-display-api.js +140 -0
  111. package/src/lib/components/console/pos-display/pos-display-api.js.map +1 -0
  112. package/src/lib/components/console/pos-display/receipt-screen.d.ts +35 -0
  113. package/src/lib/components/console/pos-display/receipt-screen.js +200 -0
  114. package/src/lib/components/console/pos-display/receipt-screen.js.map +1 -0
  115. package/src/lib/components/console/pos-display/tip-screen.d.ts +36 -0
  116. package/src/lib/components/console/pos-display/tip-screen.js +211 -0
  117. package/src/lib/components/console/pos-display/tip-screen.js.map +1 -0
  118. package/src/lib/components/console/pos-display-page.component.d.ts +16 -0
  119. package/src/lib/components/console/pos-display-page.component.js +407 -0
  120. package/src/lib/components/console/pos-display-page.component.js.map +1 -0
  121. package/src/lib/components/console/pos-ops/pos-customer-lookup.component.d.ts +40 -0
  122. package/src/lib/components/console/pos-ops/pos-customer-lookup.component.js +289 -0
  123. package/src/lib/components/console/pos-ops/pos-customer-lookup.component.js.map +1 -0
  124. package/src/lib/components/console/pos-ops/pos-last-receipt.component.d.ts +34 -0
  125. package/src/lib/components/console/pos-ops/pos-last-receipt.component.js +61 -0
  126. package/src/lib/components/console/pos-ops/pos-last-receipt.component.js.map +1 -0
  127. package/src/lib/components/console/pos-ops/pos-operations-bar.component.d.ts +38 -0
  128. package/src/lib/components/console/pos-ops/pos-operations-bar.component.js +129 -0
  129. package/src/lib/components/console/pos-ops/pos-operations-bar.component.js.map +1 -0
  130. package/src/lib/components/console/pos-ops/pos-ops-api.d.ts +37 -0
  131. package/src/lib/components/console/pos-ops/pos-ops-api.js +60 -0
  132. package/src/lib/components/console/pos-ops/pos-ops-api.js.map +1 -0
  133. package/src/lib/components/console/pos-ops/pos-pin-pad.component.d.ts +48 -0
  134. package/src/lib/components/console/pos-ops/pos-pin-pad.component.js +220 -0
  135. package/src/lib/components/console/pos-ops/pos-pin-pad.component.js.map +1 -0
  136. package/src/lib/components/console/pos-ops/pos-receipt-actions.component.d.ts +63 -0
  137. package/src/lib/components/console/pos-ops/pos-receipt-actions.component.js +186 -0
  138. package/src/lib/components/console/pos-ops/pos-receipt-actions.component.js.map +1 -0
  139. package/src/lib/components/console/pos-ops/pos-receipt.d.ts +39 -0
  140. package/src/lib/components/console/pos-ops/pos-receipt.js +182 -0
  141. package/src/lib/components/console/pos-ops/pos-receipt.js.map +1 -0
  142. package/src/lib/components/console/pos-ops/pos-return-dialog.component.d.ts +40 -0
  143. package/src/lib/components/console/pos-ops/pos-return-dialog.component.js +465 -0
  144. package/src/lib/components/console/pos-ops/pos-return-dialog.component.js.map +1 -0
  145. package/src/lib/components/console/pos-ops/pos-shift-history-card.component.d.ts +29 -0
  146. package/src/lib/components/console/pos-ops/pos-shift-history-card.component.js +253 -0
  147. package/src/lib/components/console/pos-ops/pos-shift-history-card.component.js.map +1 -0
  148. package/src/lib/components/console/pos-ops/pos-shift-panel.component.d.ts +34 -0
  149. package/src/lib/components/console/pos-ops/pos-shift-panel.component.js +494 -0
  150. package/src/lib/components/console/pos-ops/pos-shift-panel.component.js.map +1 -0
  151. package/src/lib/components/console/pos-ops/pos-shift-report.component.d.ts +37 -0
  152. package/src/lib/components/console/pos-ops/pos-shift-report.component.js +102 -0
  153. package/src/lib/components/console/pos-ops/pos-shift-report.component.js.map +1 -0
  154. package/src/lib/components/console/pos-ops/pos-staff-pins-card.component.d.ts +30 -0
  155. package/src/lib/components/console/pos-ops/pos-staff-pins-card.component.js +277 -0
  156. package/src/lib/components/console/pos-ops/pos-staff-pins-card.component.js.map +1 -0
  157. package/src/lib/components/console/pos-ops/register-ops.d.ts +28 -0
  158. package/src/lib/components/console/pos-ops/register-ops.js +28 -0
  159. package/src/lib/components/console/pos-ops/register-ops.js.map +1 -0
  160. package/src/lib/components/console/pos-ops/use-pos-cashier.d.ts +46 -0
  161. package/src/lib/components/console/pos-ops/use-pos-cashier.js +128 -0
  162. package/src/lib/components/console/pos-ops/use-pos-cashier.js.map +1 -0
  163. package/src/lib/components/console/pos-ops/use-pos-sale-receipt.d.ts +36 -0
  164. package/src/lib/components/console/pos-ops/use-pos-sale-receipt.js +64 -0
  165. package/src/lib/components/console/pos-ops/use-pos-sale-receipt.js.map +1 -0
  166. package/src/lib/components/console/pos-page.component.d.ts +13 -5
  167. package/src/lib/components/console/pos-page.component.js +756 -654
  168. package/src/lib/components/console/pos-page.component.js.map +1 -1
  169. package/src/lib/components/console/pos-zones.d.ts +23 -0
  170. package/src/lib/components/console/pos-zones.js +31 -0
  171. package/src/lib/components/console/pos-zones.js.map +1 -0
  172. package/src/lib/components/console/product-editor-dialog.component.js +61 -71
  173. package/src/lib/components/console/product-editor-dialog.component.js.map +1 -1
  174. package/src/lib/components/console/product-labels-dialog.component.d.ts +13 -0
  175. package/src/lib/components/console/product-labels-dialog.component.js +197 -0
  176. package/src/lib/components/console/product-labels-dialog.component.js.map +1 -0
  177. package/src/lib/components/console/product-register-fields.component.d.ts +19 -0
  178. package/src/lib/components/console/product-register-fields.component.js +241 -0
  179. package/src/lib/components/console/product-register-fields.component.js.map +1 -0
  180. package/src/lib/components/console/product-zones.d.ts +44 -0
  181. package/src/lib/components/console/product-zones.js.map +1 -1
  182. package/src/lib/components/console/products-hub-card.component.js +23 -20
  183. package/src/lib/components/console/products-hub-card.component.js.map +1 -1
  184. package/src/lib/components/console/register-hardware-card.component.d.ts +33 -0
  185. package/src/lib/components/console/register-hardware-card.component.js +826 -0
  186. package/src/lib/components/console/register-hardware-card.component.js.map +1 -0
  187. package/src/lib/components/console/registers-card.component.js +24 -5
  188. package/src/lib/components/console/registers-card.component.js.map +1 -1
  189. package/src/lib/components/console/return-actions.d.ts +38 -0
  190. package/src/lib/components/console/return-actions.js +76 -0
  191. package/src/lib/components/console/return-actions.js.map +1 -0
  192. package/src/lib/components/console/return-detail-dialog.component.d.ts +34 -0
  193. package/src/lib/components/console/return-detail-dialog.component.js +718 -0
  194. package/src/lib/components/console/return-detail-dialog.component.js.map +1 -0
  195. package/src/lib/components/console/return-settings-card.component.d.ts +34 -0
  196. package/src/lib/components/console/return-settings-card.component.js +195 -0
  197. package/src/lib/components/console/return-settings-card.component.js.map +1 -0
  198. package/src/lib/components/console/return-zones.d.ts +87 -0
  199. package/src/lib/components/console/return-zones.js +31 -0
  200. package/src/lib/components/console/return-zones.js.map +1 -0
  201. package/src/lib/components/console/returns-card.component.d.ts +45 -0
  202. package/src/lib/components/console/returns-card.component.js +159 -0
  203. package/src/lib/components/console/returns-card.component.js.map +1 -0
  204. package/src/lib/components/console/shipping-settings-card.component.js +161 -5
  205. package/src/lib/components/console/shipping-settings-card.component.js.map +1 -1
  206. package/src/lib/components/console/shippingeasy-card.component.d.ts +59 -0
  207. package/src/lib/components/console/shippingeasy-card.component.js +378 -0
  208. package/src/lib/components/console/shippingeasy-card.component.js.map +1 -0
  209. package/src/lib/components/console/shipstation-card.component.d.ts +35 -0
  210. package/src/lib/components/console/shipstation-card.component.js +345 -0
  211. package/src/lib/components/console/shipstation-card.component.js.map +1 -0
  212. package/src/lib/components/console/start-return-dialog.component.d.ts +40 -0
  213. package/src/lib/components/console/start-return-dialog.component.js +243 -0
  214. package/src/lib/components/console/start-return-dialog.component.js.map +1 -0
  215. package/src/lib/components/console/stock-movements-card.component.js +2 -1
  216. package/src/lib/components/console/stock-movements-card.component.js.map +1 -1
  217. package/src/lib/components/console/store-settings-card.component.js +2 -66
  218. package/src/lib/components/console/store-settings-card.component.js.map +1 -1
  219. package/src/lib/components/console/store-zones.d.ts +42 -0
  220. package/src/lib/components/console/store-zones.js +39 -0
  221. package/src/lib/components/console/store-zones.js.map +1 -0
  222. package/src/lib/components/console/storefront-tax-summary-card.component.js +1 -0
  223. package/src/lib/components/console/storefront-tax-summary-card.component.js.map +1 -1
  224. package/src/lib/components/order-status.d.ts +36 -0
  225. package/src/lib/components/order-status.js +502 -0
  226. package/src/lib/components/order-status.js.map +1 -0
  227. package/src/lib/components/product-detail.js +41 -2
  228. package/src/lib/components/product-detail.js.map +1 -1
  229. package/src/lib/components/return-request.d.ts +32 -0
  230. package/src/lib/components/return-request.js +576 -0
  231. package/src/lib/components/return-request.js.map +1 -0
  232. package/src/lib/components/storefront-payment-appearance.d.ts +32 -0
  233. package/src/lib/components/storefront-payment-appearance.js +114 -0
  234. package/src/lib/components/storefront-payment-appearance.js.map +1 -0
  235. package/src/lib/components/storefront-payment-element.d.ts +57 -1
  236. package/src/lib/components/storefront-payment-element.js +332 -33
  237. package/src/lib/components/storefront-payment-element.js.map +1 -1
  238. package/src/lib/constants/order-status.d.ts +22 -0
  239. package/src/lib/constants/order-status.js +22 -0
  240. package/src/lib/constants/order-status.js.map +1 -0
  241. package/src/lib/constants/return-request.d.ts +27 -0
  242. package/src/lib/constants/return-request.js +32 -0
  243. package/src/lib/constants/return-request.js.map +1 -0
  244. package/src/lib/constants/stock-movement-query.js +2 -1
  245. package/src/lib/constants/stock-movement-query.js.map +1 -1
  246. package/src/lib/declarations.console-server.js +9 -0
  247. package/src/lib/declarations.console-server.js.map +1 -1
  248. package/src/lib/declarations.server.d.ts +2 -1
  249. package/src/lib/declarations.server.js +68 -1
  250. package/src/lib/declarations.server.js.map +1 -1
  251. package/src/lib/model/buyer-notifications.d.ts +59 -0
  252. package/src/lib/model/buyer-notifications.js +97 -0
  253. package/src/lib/model/buyer-notifications.js.map +1 -0
  254. package/src/lib/model/commerce-orders.d.ts +171 -2
  255. package/src/lib/model/commerce-orders.js +26 -16
  256. package/src/lib/model/commerce-orders.js.map +1 -1
  257. package/src/lib/model/commerce-payment-methods.d.ts +146 -0
  258. package/src/lib/model/commerce-payment-methods.js +247 -0
  259. package/src/lib/model/commerce-payment-methods.js.map +1 -0
  260. package/src/lib/model/commerce-pos-ops.d.ts +437 -0
  261. package/src/lib/model/commerce-pos-ops.js +721 -0
  262. package/src/lib/model/commerce-pos-ops.js.map +1 -0
  263. package/src/lib/model/commerce-pos.d.ts +263 -0
  264. package/src/lib/model/commerce-pos.js +375 -0
  265. package/src/lib/model/commerce-pos.js.map +1 -0
  266. package/src/lib/model/commerce-printers.d.ts +211 -0
  267. package/src/lib/model/commerce-printers.js +181 -0
  268. package/src/lib/model/commerce-printers.js.map +1 -0
  269. package/src/lib/model/commerce-receipt.d.ts +97 -0
  270. package/src/lib/model/commerce-receipt.js +180 -0
  271. package/src/lib/model/commerce-receipt.js.map +1 -0
  272. package/src/lib/model/commerce-returns.d.ts +207 -0
  273. package/src/lib/model/commerce-returns.js +300 -0
  274. package/src/lib/model/commerce-returns.js.map +1 -0
  275. package/src/lib/model/commerce-shipping.d.ts +44 -1
  276. package/src/lib/model/commerce-shipping.js +53 -9
  277. package/src/lib/model/commerce-shipping.js.map +1 -1
  278. package/src/lib/model/commerce-tax-engine.d.ts +90 -0
  279. package/src/lib/model/commerce-tax-engine.js +129 -0
  280. package/src/lib/model/commerce-tax-engine.js.map +1 -0
  281. package/src/lib/model/commerce.d.ts +91 -2
  282. package/src/lib/model/commerce.js +89 -1
  283. package/src/lib/model/commerce.js.map +1 -1
  284. package/src/lib/model/index.d.ts +16 -0
  285. package/src/lib/model/index.js +16 -0
  286. package/src/lib/model/index.js.map +1 -1
  287. package/src/lib/model/order-events.d.ts +154 -0
  288. package/src/lib/model/order-events.js +153 -0
  289. package/src/lib/model/order-events.js.map +1 -0
  290. package/src/lib/model/order-fulfillment.d.ts +117 -0
  291. package/src/lib/model/order-fulfillment.js +217 -0
  292. package/src/lib/model/order-fulfillment.js.map +1 -0
  293. package/src/lib/model/order-history.d.ts +58 -0
  294. package/src/lib/model/order-history.js +22 -0
  295. package/src/lib/model/order-history.js.map +1 -0
  296. package/src/lib/model/order-list-fields.d.ts +9 -1
  297. package/src/lib/model/order-list-fields.js +7 -1
  298. package/src/lib/model/order-list-fields.js.map +1 -1
  299. package/src/lib/model/order-shipping-export.d.ts +91 -0
  300. package/src/lib/model/order-shipping-export.js +192 -0
  301. package/src/lib/model/order-shipping-export.js.map +1 -0
  302. package/src/lib/model/order-status-view.d.ts +103 -0
  303. package/src/lib/model/order-status-view.js +156 -0
  304. package/src/lib/model/order-status-view.js.map +1 -0
  305. package/src/lib/model/order-webhooks.d.ts +142 -0
  306. package/src/lib/model/order-webhooks.js +91 -0
  307. package/src/lib/model/order-webhooks.js.map +1 -0
  308. package/src/lib/model/product-channel.d.ts +56 -0
  309. package/src/lib/model/product-channel.js +86 -0
  310. package/src/lib/model/product-channel.js.map +1 -0
  311. package/src/lib/model/product-modifiers.d.ts +80 -0
  312. package/src/lib/model/product-modifiers.js +140 -0
  313. package/src/lib/model/product-modifiers.js.map +1 -0
  314. package/src/lib/model/product-write.d.ts +186 -0
  315. package/src/lib/model/product-write.js +116 -0
  316. package/src/lib/model/product-write.js.map +1 -0
  317. package/src/lib/model/shippingeasy.d.ts +94 -0
  318. package/src/lib/model/shippingeasy.js +267 -0
  319. package/src/lib/model/shippingeasy.js.map +1 -0
  320. package/src/lib/model/shipstation.d.ts +125 -0
  321. package/src/lib/model/shipstation.js +399 -0
  322. package/src/lib/model/shipstation.js.map +1 -0
  323. package/src/lib/model/smart-collection-reads.d.ts +32 -0
  324. package/src/lib/model/smart-collection-reads.js +63 -0
  325. package/src/lib/model/smart-collection-reads.js.map +1 -0
  326. package/src/lib/model/tracking-url.d.ts +74 -0
  327. package/src/lib/model/tracking-url.js +159 -0
  328. package/src/lib/model/tracking-url.js.map +1 -0
  329. package/src/lib/plugin-config.d.ts +13 -0
  330. package/src/lib/plugin-config.js +77 -5
  331. package/src/lib/plugin-config.js.map +1 -1
  332. package/src/lib/plugin.js +26 -0
  333. package/src/lib/plugin.js.map +1 -1
  334. package/src/lib/pos-ops-config.d.ts +39 -0
  335. package/src/lib/pos-ops-config.js +88 -0
  336. package/src/lib/pos-ops-config.js.map +1 -0
  337. package/src/lib/printing/print-document.d.ts +106 -0
  338. package/src/lib/printing/print-document.js +464 -0
  339. package/src/lib/printing/print-document.js.map +1 -0
  340. package/src/lib/printing/product-labels.d.ts +58 -0
  341. package/src/lib/printing/product-labels.js +116 -0
  342. package/src/lib/printing/product-labels.js.map +1 -0
  343. package/src/lib/printing/render-epson.d.ts +57 -0
  344. package/src/lib/printing/render-epson.js +135 -0
  345. package/src/lib/printing/render-epson.js.map +1 -0
  346. package/src/lib/printing/render-star.d.ts +45 -0
  347. package/src/lib/printing/render-star.js +100 -0
  348. package/src/lib/printing/render-star.js.map +1 -0
  349. package/src/lib/printing/render-text.d.ts +25 -0
  350. package/src/lib/printing/render-text.js +53 -0
  351. package/src/lib/printing/render-text.js.map +1 -0
  352. package/src/lib/server/api-v1/openapi.js +27 -4
  353. package/src/lib/server/api-v1/openapi.js.map +1 -1
  354. package/src/lib/server/api-v1/order-view.d.ts +67 -0
  355. package/src/lib/server/api-v1/order-view.js +120 -0
  356. package/src/lib/server/api-v1/order-view.js.map +1 -0
  357. package/src/lib/server/api-v1/orders-and-products.js +58 -65
  358. package/src/lib/server/api-v1/orders-and-products.js.map +1 -1
  359. package/src/lib/server/billing-webhook.js +135 -28
  360. package/src/lib/server/billing-webhook.js.map +1 -1
  361. package/src/lib/server/cancel-order.js +29 -0
  362. package/src/lib/server/cancel-order.js.map +1 -1
  363. package/src/lib/server/carrier-rates-availability.d.ts +26 -0
  364. package/src/lib/server/carrier-rates-availability.js +76 -0
  365. package/src/lib/server/carrier-rates-availability.js.map +1 -0
  366. package/src/lib/server/carrier-shipping.d.ts +84 -0
  367. package/src/lib/server/carrier-shipping.js +135 -0
  368. package/src/lib/server/carrier-shipping.js.map +1 -0
  369. package/src/lib/server/cart-checkout.d.ts +2 -0
  370. package/src/lib/server/cart-checkout.js +226 -22
  371. package/src/lib/server/cart-checkout.js.map +1 -1
  372. package/src/lib/server/channel-order-updates.d.ts +50 -0
  373. package/src/lib/server/channel-order-updates.js +290 -0
  374. package/src/lib/server/channel-order-updates.js.map +1 -0
  375. package/src/lib/server/channel-orders.d.ts +85 -0
  376. package/src/lib/server/channel-orders.js +543 -0
  377. package/src/lib/server/channel-orders.js.map +1 -0
  378. package/src/lib/server/checkout-extras.d.ts +64 -0
  379. package/src/lib/server/checkout-extras.js +157 -0
  380. package/src/lib/server/checkout-extras.js.map +1 -0
  381. package/src/lib/server/{feed.d.ts → checkout-status.d.ts} +2 -7
  382. package/src/lib/server/checkout-status.js +111 -0
  383. package/src/lib/server/checkout-status.js.map +1 -0
  384. package/src/lib/server/checkout.js +86 -9
  385. package/src/lib/server/checkout.js.map +1 -1
  386. package/src/lib/server/draft-order.js +34 -5
  387. package/src/lib/server/draft-order.js.map +1 -1
  388. package/src/lib/server/fulfill-order.d.ts +127 -10
  389. package/src/lib/server/fulfill-order.js +451 -49
  390. package/src/lib/server/fulfill-order.js.map +1 -1
  391. package/src/lib/server/legacy-feed.d.ts +28 -0
  392. package/src/lib/server/legacy-feed.js +52 -0
  393. package/src/lib/server/legacy-feed.js.map +1 -0
  394. package/src/lib/server/native-checkout.d.ts +34 -15
  395. package/src/lib/server/native-checkout.js +32 -17
  396. package/src/lib/server/native-checkout.js.map +1 -1
  397. package/src/lib/server/order-event-host-emit.d.ts +23 -0
  398. package/src/lib/server/order-event-host-emit.js +30 -0
  399. package/src/lib/server/order-event-host-emit.js.map +1 -0
  400. package/src/lib/server/order-event-triggers.d.ts +37 -0
  401. package/src/lib/server/order-event-triggers.js +119 -0
  402. package/src/lib/server/order-event-triggers.js.map +1 -0
  403. package/src/lib/server/order-events.d.ts +62 -0
  404. package/src/lib/server/order-events.js +109 -0
  405. package/src/lib/server/order-events.js.map +1 -0
  406. package/src/lib/server/order-history.d.ts +23 -0
  407. package/src/lib/server/order-history.js +65 -0
  408. package/src/lib/server/order-history.js.map +1 -0
  409. package/src/lib/server/order-notifications.d.ts +185 -0
  410. package/src/lib/server/order-notifications.js +567 -0
  411. package/src/lib/server/order-notifications.js.map +1 -0
  412. package/src/lib/server/order-receipt-send.d.ts +39 -0
  413. package/src/lib/server/order-receipt-send.js +151 -0
  414. package/src/lib/server/order-receipt-send.js.map +1 -0
  415. package/src/lib/server/order-status-token.d.ts +31 -0
  416. package/src/lib/server/order-status-token.js +75 -0
  417. package/src/lib/server/order-status-token.js.map +1 -0
  418. package/src/lib/server/order-status.d.ts +58 -0
  419. package/src/lib/server/order-status.js +141 -0
  420. package/src/lib/server/order-status.js.map +1 -0
  421. package/src/lib/server/order-webhooks.d.ts +108 -0
  422. package/src/lib/server/order-webhooks.js +622 -0
  423. package/src/lib/server/order-webhooks.js.map +1 -0
  424. package/src/lib/server/orders-shipping-prepare.d.ts +26 -0
  425. package/src/lib/server/orders-shipping-prepare.js +121 -0
  426. package/src/lib/server/orders-shipping-prepare.js.map +1 -0
  427. package/src/lib/server/payment-method-domains.d.ts +209 -0
  428. package/src/lib/server/payment-method-domains.js +444 -0
  429. package/src/lib/server/payment-method-domains.js.map +1 -0
  430. package/src/lib/server/payment-methods.d.ts +77 -0
  431. package/src/lib/server/payment-methods.js +284 -0
  432. package/src/lib/server/payment-methods.js.map +1 -0
  433. package/src/lib/server/pos-auth.d.ts +50 -0
  434. package/src/lib/server/pos-auth.js +121 -0
  435. package/src/lib/server/pos-auth.js.map +1 -0
  436. package/src/lib/server/pos-customer.d.ts +49 -0
  437. package/src/lib/server/pos-customer.js +257 -0
  438. package/src/lib/server/pos-customer.js.map +1 -0
  439. package/src/lib/server/pos-display.d.ts +57 -0
  440. package/src/lib/server/pos-display.js +419 -0
  441. package/src/lib/server/pos-display.js.map +1 -0
  442. package/src/lib/server/pos-fee-month.d.ts +34 -0
  443. package/src/lib/server/pos-fee-month.js +36 -0
  444. package/src/lib/server/pos-fee-month.js.map +1 -0
  445. package/src/lib/server/pos-ops-gate.d.ts +161 -0
  446. package/src/lib/server/pos-ops-gate.js +295 -0
  447. package/src/lib/server/pos-ops-gate.js.map +1 -0
  448. package/src/lib/server/pos-ops-routes.d.ts +22 -0
  449. package/src/lib/server/pos-ops-routes.js +36 -0
  450. package/src/lib/server/pos-ops-routes.js.map +1 -0
  451. package/src/lib/server/pos-order.d.ts +1 -18
  452. package/src/lib/server/pos-order.js +222 -42
  453. package/src/lib/server/pos-order.js.map +1 -1
  454. package/src/lib/server/pos-payment.d.ts +39 -0
  455. package/src/lib/server/pos-payment.js +922 -0
  456. package/src/lib/server/pos-payment.js.map +1 -0
  457. package/src/lib/server/pos-print.d.ts +82 -0
  458. package/src/lib/server/pos-print.js +193 -0
  459. package/src/lib/server/pos-print.js.map +1 -0
  460. package/src/lib/server/pos-readers.d.ts +27 -0
  461. package/src/lib/server/pos-readers.js +276 -0
  462. package/src/lib/server/pos-readers.js.map +1 -0
  463. package/src/lib/server/pos-refund-authority.d.ts +60 -0
  464. package/src/lib/server/pos-refund-authority.js +72 -0
  465. package/src/lib/server/pos-refund-authority.js.map +1 -0
  466. package/src/lib/server/pos-return.d.ts +58 -0
  467. package/src/lib/server/pos-return.js +891 -0
  468. package/src/lib/server/pos-return.js.map +1 -0
  469. package/src/lib/server/pos-sale-stamp.d.ts +66 -0
  470. package/src/lib/server/pos-sale-stamp.js +84 -0
  471. package/src/lib/server/pos-sale-stamp.js.map +1 -0
  472. package/src/lib/server/pos-sale.d.ts +170 -0
  473. package/src/lib/server/pos-sale.js +461 -0
  474. package/src/lib/server/pos-sale.js.map +1 -0
  475. package/src/lib/server/pos-shift.d.ts +45 -0
  476. package/src/lib/server/pos-shift.js +484 -0
  477. package/src/lib/server/pos-shift.js.map +1 -0
  478. package/src/lib/server/pos-staff-pin.d.ts +26 -0
  479. package/src/lib/server/pos-staff-pin.js +339 -0
  480. package/src/lib/server/pos-staff-pin.js.map +1 -0
  481. package/src/lib/server/pos-stripe.d.ts +91 -0
  482. package/src/lib/server/pos-stripe.js +129 -0
  483. package/src/lib/server/pos-stripe.js.map +1 -0
  484. package/src/lib/server/pos-terminal-connection-token.d.ts +48 -0
  485. package/src/lib/server/pos-terminal-connection-token.js +166 -0
  486. package/src/lib/server/pos-terminal-connection-token.js.map +1 -0
  487. package/src/lib/server/pos-terminal.d.ts +218 -0
  488. package/src/lib/server/pos-terminal.js +1014 -0
  489. package/src/lib/server/pos-terminal.js.map +1 -0
  490. package/src/lib/server/print-queue.d.ts +124 -0
  491. package/src/lib/server/print-queue.js +301 -0
  492. package/src/lib/server/print-queue.js.map +1 -0
  493. package/src/lib/server/printer-poll.d.ts +75 -0
  494. package/src/lib/server/printer-poll.js +325 -0
  495. package/src/lib/server/printer-poll.js.map +1 -0
  496. package/src/lib/server/printer-secret.d.ts +39 -0
  497. package/src/lib/server/printer-secret.js +56 -0
  498. package/src/lib/server/printer-secret.js.map +1 -0
  499. package/src/lib/server/printers.d.ts +114 -0
  500. package/src/lib/server/printers.js +546 -0
  501. package/src/lib/server/printers.js.map +1 -0
  502. package/src/lib/server/product-catalog.d.ts +42 -0
  503. package/src/lib/server/product-catalog.js +309 -0
  504. package/src/lib/server/product-catalog.js.map +1 -0
  505. package/src/lib/server/product-drafts.d.ts +5 -1
  506. package/src/lib/server/product-drafts.js +3 -3
  507. package/src/lib/server/product-drafts.js.map +1 -1
  508. package/src/lib/server/product-writer.d.ts +19 -0
  509. package/src/lib/server/product-writer.js +261 -0
  510. package/src/lib/server/product-writer.js.map +1 -0
  511. package/src/lib/server/products-write.d.ts +61 -0
  512. package/src/lib/server/products-write.js +375 -0
  513. package/src/lib/server/products-write.js.map +1 -0
  514. package/src/lib/server/refund.js +110 -45
  515. package/src/lib/server/refund.js.map +1 -1
  516. package/src/lib/server/reserve.js +2 -0
  517. package/src/lib/server/reserve.js.map +1 -1
  518. package/src/lib/server/return-status-action.d.ts +37 -0
  519. package/src/lib/server/return-status-action.js +57 -0
  520. package/src/lib/server/return-status-action.js.map +1 -0
  521. package/src/lib/server/returns.d.ts +119 -0
  522. package/src/lib/server/returns.js +938 -0
  523. package/src/lib/server/returns.js.map +1 -0
  524. package/src/lib/server/shipment-records.d.ts +36 -0
  525. package/src/lib/server/shipment-records.js +289 -0
  526. package/src/lib/server/shipment-records.js.map +1 -0
  527. package/src/lib/server/shipping-connector-gates.d.ts +40 -0
  528. package/src/lib/server/shipping-connector-gates.js +97 -0
  529. package/src/lib/server/shipping-connector-gates.js.map +1 -0
  530. package/src/lib/server/shipping-connectors.d.ts +29 -0
  531. package/src/lib/server/shipping-connectors.js +236 -0
  532. package/src/lib/server/shipping-connectors.js.map +1 -0
  533. package/src/lib/server/shippingeasy.d.ts +238 -0
  534. package/src/lib/server/shippingeasy.js +787 -0
  535. package/src/lib/server/shippingeasy.js.map +1 -0
  536. package/src/lib/server/shipstation.d.ts +129 -0
  537. package/src/lib/server/shipstation.js +483 -0
  538. package/src/lib/server/shipstation.js.map +1 -0
  539. package/src/lib/server/site-page-resolver.d.ts +5 -0
  540. package/src/lib/server/site-page-resolver.js +156 -1
  541. package/src/lib/server/site-page-resolver.js.map +1 -1
  542. package/src/lib/server/stock-levels.d.ts +21 -0
  543. package/src/lib/server/stock-levels.js +263 -0
  544. package/src/lib/server/stock-levels.js.map +1 -0
  545. package/src/lib/server/stripe-refund.d.ts +47 -0
  546. package/src/lib/server/stripe-refund.js +87 -0
  547. package/src/lib/server/stripe-refund.js.map +1 -0
  548. package/src/lib/server/supplier-update.js +46 -5
  549. package/src/lib/server/supplier-update.js.map +1 -1
  550. package/src/lib/server/tax-engine-quote.d.ts +47 -0
  551. package/src/lib/server/tax-engine-quote.js +105 -0
  552. package/src/lib/server/tax-engine-quote.js.map +1 -0
  553. package/src/lib/server.js +143 -2
  554. package/src/lib/server.js.map +1 -1
  555. package/src/lib/site.js +12 -0
  556. package/src/lib/site.js.map +1 -1
  557. package/src/lib/subprocessors.d.ts +26 -0
  558. package/src/lib/subprocessors.js +50 -0
  559. package/src/lib/subprocessors.js.map +1 -0
  560. package/src/lib/tenant-emails.js +461 -3
  561. package/src/lib/tenant-emails.js.map +1 -1
  562. package/src/lib/testing/fake-firestore.d.ts +45 -0
  563. package/src/lib/testing/fake-firestore.js +189 -0
  564. package/src/lib/testing/fake-firestore.js.map +1 -0
  565. package/src/lib/testing/memory-firestore.d.ts +136 -0
  566. package/src/lib/testing/memory-firestore.js +282 -0
  567. package/src/lib/testing/memory-firestore.js.map +1 -0
  568. package/src/lib/testing/pos-ops-harness.d.ts +50 -0
  569. package/src/lib/testing/pos-ops-harness.js +184 -0
  570. package/src/lib/testing/pos-ops-harness.js.map +1 -0
  571. package/src/lib/testing/pos-ops-memory-firestore.d.ts +55 -0
  572. package/src/lib/testing/pos-ops-memory-firestore.js +376 -0
  573. package/src/lib/testing/pos-ops-memory-firestore.js.map +1 -0
  574. package/src/lib/transfer/products.server.d.ts +5 -0
  575. package/src/lib/transfer/products.server.js +2 -2
  576. package/src/lib/transfer/products.server.js.map +1 -1
  577. package/src/lib/transfer/records-transfer.d.ts +11 -1
  578. package/src/lib/transfer/records-transfer.js +127 -5
  579. package/src/lib/transfer/records-transfer.js.map +1 -1
  580. package/src/lib/transfer/records.server.d.ts +9 -2
  581. package/src/lib/transfer/records.server.js +58 -7
  582. package/src/lib/transfer/records.server.js.map +1 -1
  583. package/src/lib/transfer/register-transfer-resources.js +40 -1
  584. package/src/lib/transfer/register-transfer-resources.js.map +1 -1
  585. package/src/lib/transfer/register-transfer-ui.js +4 -1
  586. package/src/lib/transfer/register-transfer-ui.js.map +1 -1
  587. package/src/lib/transfer/shipping-presets.d.ts +23 -0
  588. package/src/lib/transfer/shipping-presets.js +156 -0
  589. package/src/lib/transfer/shipping-presets.js.map +1 -0
  590. package/src/lib/transfer/tracking-transfer.d.ts +101 -0
  591. package/src/lib/transfer/tracking-transfer.js +546 -0
  592. package/src/lib/transfer/tracking-transfer.js.map +1 -0
  593. package/src/lib/transfer/tracking.server.d.ts +37 -0
  594. package/src/lib/transfer/tracking.server.js +393 -0
  595. package/src/lib/transfer/tracking.server.js.map +1 -0
  596. package/src/lib/transfer/transfer-keys.d.ts +2 -1
  597. package/src/lib/transfer/transfer-keys.js +6 -2
  598. package/src/lib/transfer/transfer-keys.js.map +1 -1
  599. package/src/lib/utils/code128.d.ts +37 -0
  600. package/src/lib/utils/code128.js +199 -0
  601. package/src/lib/utils/code128.js.map +1 -0
  602. package/src/lib/utils/order-invoice.d.ts +55 -0
  603. package/src/lib/utils/order-invoice.js +127 -0
  604. package/src/lib/utils/order-invoice.js.map +1 -0
  605. package/src/lib/utils/use-checkout-return-notice.d.ts +34 -0
  606. package/src/lib/utils/use-checkout-return-notice.js +78 -0
  607. package/src/lib/utils/use-checkout-return-notice.js.map +1 -0
  608. package/src/lib/server/feed.js +0 -69
  609. package/src/lib/server/feed.js.map +0 -1
@@ -0,0 +1,59 @@
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
+ export interface ShippingEasyCardProps {
18
+ hostId: string;
19
+ }
20
+ /** What the connectors route answers about a ShippingEasy connection. */
21
+ interface ConnectionStatus {
22
+ /** Whether this deployment can keep an API secret at all. */
23
+ available?: boolean;
24
+ connected: boolean;
25
+ apiKeyEnding?: string;
26
+ storeApiKeyEnding?: string;
27
+ createdAtMs?: number;
28
+ updatedAtMs?: number;
29
+ lastPushAtMs?: number;
30
+ lastCallbackAtMs?: number;
31
+ lastError?: {
32
+ message: string;
33
+ atMs: number;
34
+ orderNumber?: string;
35
+ } | null;
36
+ sync?: {
37
+ sent: number;
38
+ already: number;
39
+ failed: number;
40
+ more: boolean;
41
+ };
42
+ }
43
+ /** The address ShippingEasy posts shipments to: this console's own origin, never a guess. */
44
+ export declare function shippingEasyCallbackUrl(hostId: string, origin?: string): string;
45
+ /** What one "Send open orders" did, in a sentence. */
46
+ export declare function describeShippingEasySync(sync: NonNullable<ConnectionStatus['sync']>): string;
47
+ /**
48
+ * Connect ShippingEasy (AGL-3633): the merchant's API key, API secret and
49
+ * store API key, from their own ShippingEasy account; the callback URL to
50
+ * paste into the API store; send open orders; and disconnect. Paid orders go
51
+ * to ShippingEasy as they are paid, and each label bought there marks the
52
+ * order shipped here. The secret is sealed on the server and never shown
53
+ * again; the card renders nothing on a deployment that cannot seal one.
54
+ */
55
+ export declare function ShippingEasyCard(props: ShippingEasyCardProps): import("react").JSX.Element;
56
+ export declare namespace ShippingEasyCard {
57
+ var displayName: string;
58
+ }
59
+ export default ShippingEasyCard;
@@ -0,0 +1,378 @@
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
+ */ 'use client';
17
+ import { _ as _extends } from "@swc/helpers/_/_extends";
18
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
19
+ import { pluginDocsHelp } from "@aglyn/aglyn";
20
+ import { PLATFORM_BRAND_NAME } from "@aglyn/aglyn/app-utils/platform-brand";
21
+ import { CardDisplay } from "@aglyn/shared-ui-jsx";
22
+ import { CopyField } from "@aglyn/shared-ui-jsx/components/copy-field.component";
23
+ import ScrollTable from "@aglyn/shared-ui-jsx/components/scroll-table.component";
24
+ import { StatusChip } from "@aglyn/shared-ui-jsx/components/status-chip.component";
25
+ import { useSnackbar } from "@aglyn/shared-ui-snackstack";
26
+ import { authorizedFetch } from "@aglyn/shared-util-http/authorized-token";
27
+ import { useUser } from "@aglyn/tenant-feature-instance";
28
+ import { Alert, Button, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, Stack, TableBody, TableCell, TableRow, TextField, Typography } from "@mui/material";
29
+ import { useCallback, useEffect, useState } from "react";
30
+ /** The address ShippingEasy posts shipments to: this console's own origin, never a guess. */ export function shippingEasyCallbackUrl(hostId, origin) {
31
+ const base = origin != null ? origin : typeof window === 'undefined' ? '' : window.location.origin;
32
+ return `${base}/api/commerce/shippingeasy/${encodeURIComponent(hostId)}`;
33
+ }
34
+ /** What one "Send open orders" did, in a sentence. */ export function describeShippingEasySync(sync) {
35
+ const parts = [];
36
+ parts.push(sync.sent === 1 ? '1 order sent to ShippingEasy' : `${sync.sent} orders sent to ShippingEasy`);
37
+ if (sync.already) parts.push(`${sync.already} already there`);
38
+ if (sync.failed) parts.push(`${sync.failed} not sent`);
39
+ return `${parts.join(', ')}.${sync.more ? ' More open orders are waiting: select Send open orders again.' : ''}`;
40
+ }
41
+ const when = (ms)=>ms ? new Date(ms).toLocaleString(undefined, {
42
+ dateStyle: 'medium',
43
+ timeStyle: 'short'
44
+ }) : 'Not yet';
45
+ /** One fixed fact of the connection: a label and its value. */ function FactRow(props) {
46
+ return /*#__PURE__*/ _jsxs(TableRow, {
47
+ children: [
48
+ /*#__PURE__*/ _jsx(TableCell, {
49
+ component: "th",
50
+ scope: "row",
51
+ children: props.label
52
+ }),
53
+ /*#__PURE__*/ _jsx(TableCell, {
54
+ children: props.value
55
+ })
56
+ ]
57
+ });
58
+ }
59
+ const EMPTY_KEYS = {
60
+ apiKey: '',
61
+ apiSecret: '',
62
+ storeApiKey: ''
63
+ };
64
+ /**
65
+ * Connect ShippingEasy (AGL-3633): the merchant's API key, API secret and
66
+ * store API key, from their own ShippingEasy account; the callback URL to
67
+ * paste into the API store; send open orders; and disconnect. Paid orders go
68
+ * to ShippingEasy as they are paid, and each label bought there marks the
69
+ * order shipped here. The secret is sealed on the server and never shown
70
+ * again; the card renders nothing on a deployment that cannot seal one.
71
+ */ export function ShippingEasyCard(props) {
72
+ const { hostId } = props;
73
+ const { data: user } = useUser();
74
+ const { enqueueSnackbar } = useSnackbar();
75
+ const [status, setStatus] = useState(null);
76
+ const [loadError, setLoadError] = useState(null);
77
+ const [busy, setBusy] = useState(false);
78
+ const [editing, setEditing] = useState(false);
79
+ const [keys, setKeys] = useState(EMPTY_KEYS);
80
+ const [confirmDisconnect, setConfirmDisconnect] = useState(false);
81
+ const uid = user == null ? void 0 : user.uid;
82
+ useEffect(()=>{
83
+ if (!uid || !user) return;
84
+ let live = true;
85
+ authorizedFetch(user, `/api/commerce/shipping-connectors?connector=shippingeasy&hostId=${encodeURIComponent(hostId)}`).then(async (response)=>{
86
+ var _ref;
87
+ const body = await response.json().catch(()=>({}));
88
+ if (!live) return;
89
+ if (!response.ok) return setLoadError((_ref = body == null ? void 0 : body.error) != null ? _ref : 'The connection could not be read.');
90
+ setLoadError(null);
91
+ setStatus(body);
92
+ }).catch(()=>live && setLoadError('The connection could not be read.'));
93
+ return ()=>{
94
+ live = false;
95
+ };
96
+ // eslint-disable-next-line react-hooks/exhaustive-deps -- `user` changes identity every render; `uid` is what matters.
97
+ }, [
98
+ uid,
99
+ hostId
100
+ ]);
101
+ const act = useCallback(async (action, extra = {})=>{
102
+ setBusy(true);
103
+ try {
104
+ const response = await authorizedFetch(user, '/api/commerce/shipping-connectors', {
105
+ method: 'POST',
106
+ headers: {
107
+ 'Content-Type': 'application/json'
108
+ },
109
+ body: JSON.stringify(_extends({
110
+ hostId,
111
+ connector: 'shippingeasy',
112
+ action
113
+ }, extra))
114
+ });
115
+ const body = await response.json().catch(()=>({}));
116
+ if (!response.ok) {
117
+ var _ref;
118
+ enqueueSnackbar((_ref = body == null ? void 0 : body.error) != null ? _ref : 'That did not work. Try again.', {
119
+ variant: 'error',
120
+ allowDuplicate: true
121
+ });
122
+ return false;
123
+ }
124
+ setStatus(body);
125
+ if (action === 'disconnect') {
126
+ enqueueSnackbar('ShippingEasy is disconnected. New orders are no longer sent to it.', {
127
+ variant: 'success'
128
+ });
129
+ } else if (action === 'sync' && body.sync) {
130
+ enqueueSnackbar(describeShippingEasySync(body.sync), {
131
+ variant: body.sync.failed ? 'warning' : 'success'
132
+ });
133
+ } else if (action === 'connect') {
134
+ enqueueSnackbar('ShippingEasy is connected. Paste the callback URL into your ShippingEasy API store.', {
135
+ variant: 'success'
136
+ });
137
+ }
138
+ return true;
139
+ } finally{
140
+ setBusy(false);
141
+ }
142
+ }, [
143
+ user,
144
+ hostId,
145
+ enqueueSnackbar
146
+ ]);
147
+ // A deployment with no secret keyring cannot keep a secret: nothing to offer.
148
+ if (status && status.available === false && !status.connected) return null;
149
+ const connected = Boolean(status == null ? void 0 : status.connected);
150
+ const openKeys = ()=>{
151
+ setKeys(EMPTY_KEYS);
152
+ setEditing(true);
153
+ };
154
+ const actions = !status ? null : connected ? /*#__PURE__*/ _jsxs(Stack, {
155
+ direction: "row",
156
+ spacing: 1,
157
+ children: [
158
+ /*#__PURE__*/ _jsx(Button, {
159
+ size: "small",
160
+ disabled: busy,
161
+ onClick: ()=>void act('sync'),
162
+ children: 'Send open orders'
163
+ }),
164
+ /*#__PURE__*/ _jsx(Button, {
165
+ size: "small",
166
+ disabled: busy,
167
+ onClick: openKeys,
168
+ children: 'Change keys'
169
+ }),
170
+ /*#__PURE__*/ _jsx(Button, {
171
+ size: "small",
172
+ color: "error",
173
+ disabled: busy,
174
+ onClick: ()=>setConfirmDisconnect(true),
175
+ children: 'Disconnect'
176
+ })
177
+ ]
178
+ }) : /*#__PURE__*/ _jsx(Button, {
179
+ size: "small",
180
+ variant: "contained",
181
+ disabled: busy,
182
+ onClick: openKeys,
183
+ children: 'Connect ShippingEasy'
184
+ });
185
+ const complete = Boolean(keys.apiKey.trim() && keys.apiSecret.trim() && keys.storeApiKey.trim());
186
+ const save = async ()=>{
187
+ if (await act('connect', keys)) {
188
+ setEditing(false);
189
+ setKeys(EMPTY_KEYS);
190
+ }
191
+ };
192
+ return /*#__PURE__*/ _jsxs(CardDisplay, {
193
+ header: 'ShippingEasy',
194
+ help: pluginDocsHelp('shippingEasy', {
195
+ excerpt: `${PLATFORM_BRAND_NAME} sends your paid orders to your ShippingEasy account, and each label you buy there ` + 'marks the order shipped and emails your customer the tracking link.'
196
+ }),
197
+ HeaderProps: {
198
+ action: actions
199
+ },
200
+ contentGutterX: true,
201
+ contentGutterY: true,
202
+ children: [
203
+ /*#__PURE__*/ _jsxs(Stack, {
204
+ spacing: 2,
205
+ children: [
206
+ loadError ? /*#__PURE__*/ _jsx(Alert, {
207
+ severity: "error",
208
+ children: loadError
209
+ }) : null,
210
+ !connected ? /*#__PURE__*/ _jsx(Typography, {
211
+ variant: "body2",
212
+ color: "text.secondary",
213
+ children: 'Labeling in ShippingEasy? Connect it with the API key, API secret and store API key from your ' + 'ShippingEasy account: each order is sent there as it is paid, and each label you buy there ' + 'marks the order shipped here and emails your customer the tracking link. Only a site admin ' + 'can connect it.'
214
+ }) : /*#__PURE__*/ _jsxs(_Fragment, {
215
+ children: [
216
+ /*#__PURE__*/ _jsx("div", {
217
+ children: (status == null ? void 0 : status.lastError) ? /*#__PURE__*/ _jsx(StatusChip, {
218
+ label: "Needs attention",
219
+ tone: "warning",
220
+ "data-testid": "shippingeasy-status"
221
+ }) : /*#__PURE__*/ _jsx(StatusChip, {
222
+ label: "Connected",
223
+ tone: "success",
224
+ "data-testid": "shippingeasy-status"
225
+ })
226
+ }),
227
+ (status == null ? void 0 : status.lastError) ? /*#__PURE__*/ _jsx(Alert, {
228
+ severity: "warning",
229
+ children: `${status.lastError.message} (${when(status.lastError.atMs)})`
230
+ }) : null,
231
+ /*#__PURE__*/ _jsx(CopyField, {
232
+ label: "Callback URL",
233
+ value: shippingEasyCallbackUrl(hostId),
234
+ helperText: "Paste this into your API store's settings in ShippingEasy, so each label marks the order shipped here.",
235
+ onCopied: ()=>enqueueSnackbar('Callback URL copied', {
236
+ variant: 'success',
237
+ persist: false
238
+ }),
239
+ onCopyFailed: ()=>enqueueSnackbar('Select the callback URL and copy it.', {
240
+ variant: 'info'
241
+ })
242
+ }),
243
+ /*#__PURE__*/ _jsx(ScrollTable, {
244
+ size: "small",
245
+ "aria-label": "ShippingEasy connection",
246
+ children: /*#__PURE__*/ _jsxs(TableBody, {
247
+ children: [
248
+ /*#__PURE__*/ _jsx(FactRow, {
249
+ label: "API key",
250
+ value: (status == null ? void 0 : status.apiKeyEnding) ? `Ends in ${status.apiKeyEnding}` : ''
251
+ }),
252
+ /*#__PURE__*/ _jsx(FactRow, {
253
+ label: "Store API key",
254
+ value: (status == null ? void 0 : status.storeApiKeyEnding) ? `Ends in ${status.storeApiKeyEnding}` : ''
255
+ }),
256
+ /*#__PURE__*/ _jsx(FactRow, {
257
+ label: "Last order sent",
258
+ value: when(status == null ? void 0 : status.lastPushAtMs)
259
+ }),
260
+ /*#__PURE__*/ _jsx(FactRow, {
261
+ label: "Last shipment received",
262
+ value: when(status == null ? void 0 : status.lastCallbackAtMs)
263
+ })
264
+ ]
265
+ })
266
+ })
267
+ ]
268
+ })
269
+ ]
270
+ }),
271
+ /*#__PURE__*/ _jsxs(Dialog, {
272
+ open: editing,
273
+ onClose: ()=>!busy && setEditing(false),
274
+ fullWidth: true,
275
+ maxWidth: "sm",
276
+ children: [
277
+ /*#__PURE__*/ _jsx(DialogTitle, {
278
+ children: connected ? 'Change ShippingEasy keys' : 'Connect ShippingEasy'
279
+ }),
280
+ /*#__PURE__*/ _jsx(DialogContent, {
281
+ children: /*#__PURE__*/ _jsxs(Stack, {
282
+ spacing: 2,
283
+ sx: {
284
+ pt: 1
285
+ },
286
+ children: [
287
+ /*#__PURE__*/ _jsx(DialogContentText, {
288
+ children: 'In ShippingEasy, the API key and API secret are under Settings → API Credentials, and the ' + 'store API key is on your API store under Settings → Stores & Orders. The secret is kept ' + 'encrypted and is never shown again.'
289
+ }),
290
+ /*#__PURE__*/ _jsx(TextField, {
291
+ label: "API key",
292
+ value: keys.apiKey,
293
+ onChange: (event)=>setKeys((current)=>_extends({}, current, {
294
+ apiKey: event.target.value
295
+ })),
296
+ autoComplete: "off",
297
+ fullWidth: true,
298
+ required: true
299
+ }),
300
+ /*#__PURE__*/ _jsx(TextField, {
301
+ label: "API secret",
302
+ type: "password",
303
+ value: keys.apiSecret,
304
+ onChange: (event)=>setKeys((current)=>_extends({}, current, {
305
+ apiSecret: event.target.value
306
+ })),
307
+ autoComplete: "new-password",
308
+ fullWidth: true,
309
+ required: true
310
+ }),
311
+ /*#__PURE__*/ _jsx(TextField, {
312
+ label: "Store API key",
313
+ value: keys.storeApiKey,
314
+ onChange: (event)=>setKeys((current)=>_extends({}, current, {
315
+ storeApiKey: event.target.value
316
+ })),
317
+ autoComplete: "off",
318
+ fullWidth: true,
319
+ required: true
320
+ })
321
+ ]
322
+ })
323
+ }),
324
+ /*#__PURE__*/ _jsxs(DialogActions, {
325
+ children: [
326
+ /*#__PURE__*/ _jsx(Button, {
327
+ disabled: busy,
328
+ onClick: ()=>setEditing(false),
329
+ children: 'Cancel'
330
+ }),
331
+ /*#__PURE__*/ _jsx(Button, {
332
+ variant: "contained",
333
+ disabled: busy || !complete,
334
+ onClick: ()=>void save(),
335
+ children: connected ? 'Save keys' : 'Connect'
336
+ })
337
+ ]
338
+ })
339
+ ]
340
+ }),
341
+ /*#__PURE__*/ _jsxs(Dialog, {
342
+ open: confirmDisconnect,
343
+ onClose: ()=>setConfirmDisconnect(false),
344
+ children: [
345
+ /*#__PURE__*/ _jsx(DialogTitle, {
346
+ children: 'Disconnect ShippingEasy?'
347
+ }),
348
+ /*#__PURE__*/ _jsx(DialogContent, {
349
+ children: /*#__PURE__*/ _jsx(DialogContentText, {
350
+ children: 'New orders stop going to ShippingEasy, and shipments it sends back are refused. Orders ' + 'already there stay there, and orders already shipped stay shipped. The keys are deleted ' + `from ${PLATFORM_BRAND_NAME}.`
351
+ })
352
+ }),
353
+ /*#__PURE__*/ _jsxs(DialogActions, {
354
+ children: [
355
+ /*#__PURE__*/ _jsx(Button, {
356
+ onClick: ()=>setConfirmDisconnect(false),
357
+ children: 'Cancel'
358
+ }),
359
+ /*#__PURE__*/ _jsx(Button, {
360
+ color: "error",
361
+ disabled: busy,
362
+ onClick: ()=>{
363
+ setConfirmDisconnect(false);
364
+ void act('disconnect');
365
+ },
366
+ children: 'Disconnect'
367
+ })
368
+ ]
369
+ })
370
+ ]
371
+ })
372
+ ]
373
+ });
374
+ }
375
+ ShippingEasyCard.displayName = 'ShippingEasyCard';
376
+ export default ShippingEasyCard;
377
+
378
+ //# sourceMappingURL=shippingeasy-card.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../../libs/plugins/commerce/src/lib/components/console/shippingeasy-card.component.tsx"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n'use client'\n\nimport { pluginDocsHelp } from '@aglyn/aglyn'\nimport { PLATFORM_BRAND_NAME } from '@aglyn/aglyn/app-utils/platform-brand'\nimport { CardDisplay } from '@aglyn/shared-ui-jsx'\nimport { CopyField } from '@aglyn/shared-ui-jsx/components/copy-field.component'\nimport ScrollTable from '@aglyn/shared-ui-jsx/components/scroll-table.component'\nimport { StatusChip } from '@aglyn/shared-ui-jsx/components/status-chip.component'\nimport { useSnackbar } from '@aglyn/shared-ui-snackstack'\nimport { authorizedFetch } from '@aglyn/shared-util-http/authorized-token'\nimport { useUser } from '@aglyn/tenant-feature-instance'\nimport {\n Alert,\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n Stack,\n TableBody,\n TableCell,\n TableRow,\n TextField,\n Typography,\n} from '@mui/material'\nimport { useCallback, useEffect, useState } from 'react'\n\nexport interface ShippingEasyCardProps {\n hostId: string\n}\n\n/** What the connectors route answers about a ShippingEasy connection. */\ninterface ConnectionStatus {\n /** Whether this deployment can keep an API secret at all. */\n available?: boolean\n connected: boolean\n apiKeyEnding?: string\n storeApiKeyEnding?: string\n createdAtMs?: number\n updatedAtMs?: number\n lastPushAtMs?: number\n lastCallbackAtMs?: number\n lastError?: { message: string; atMs: number; orderNumber?: string } | null\n sync?: { sent: number; already: number; failed: number; more: boolean }\n}\n\n/** The address ShippingEasy posts shipments to: this console's own origin, never a guess. */\nexport function shippingEasyCallbackUrl(hostId: string, origin?: string): string {\n const base = origin ?? (typeof window === 'undefined' ? '' : window.location.origin)\n return `${base}/api/commerce/shippingeasy/${encodeURIComponent(hostId)}`\n}\n\n/** What one \"Send open orders\" did, in a sentence. */\nexport function describeShippingEasySync(sync: NonNullable<ConnectionStatus['sync']>): string {\n const parts: string[] = []\n parts.push(sync.sent === 1 ? '1 order sent to ShippingEasy' : `${sync.sent} orders sent to ShippingEasy`)\n if (sync.already) parts.push(`${sync.already} already there`)\n if (sync.failed) parts.push(`${sync.failed} not sent`)\n return `${parts.join(', ')}.${sync.more ? ' More open orders are waiting: select Send open orders again.' : ''}`\n}\n\nconst when = (ms: number | undefined): string =>\n ms ? new Date(ms).toLocaleString(undefined, { dateStyle: 'medium', timeStyle: 'short' }) : 'Not yet'\n\n/** One fixed fact of the connection: a label and its value. */\nfunction FactRow(props: { label: string; value: string }) {\n return (\n <TableRow>\n <TableCell component=\"th\" scope=\"row\">\n {props.label}\n </TableCell>\n <TableCell>{props.value}</TableCell>\n </TableRow>\n )\n}\n\nconst EMPTY_KEYS = { apiKey: '', apiSecret: '', storeApiKey: '' }\n\n/**\n * Connect ShippingEasy (AGL-3633): the merchant's API key, API secret and\n * store API key, from their own ShippingEasy account; the callback URL to\n * paste into the API store; send open orders; and disconnect. Paid orders go\n * to ShippingEasy as they are paid, and each label bought there marks the\n * order shipped here. The secret is sealed on the server and never shown\n * again; the card renders nothing on a deployment that cannot seal one.\n */\nexport function ShippingEasyCard(props: ShippingEasyCardProps) {\n const { hostId } = props\n const { data: user } = useUser()\n const { enqueueSnackbar } = useSnackbar()\n const [status, setStatus] = useState<ConnectionStatus | null>(null)\n const [loadError, setLoadError] = useState<string | null>(null)\n const [busy, setBusy] = useState(false)\n const [editing, setEditing] = useState(false)\n const [keys, setKeys] = useState(EMPTY_KEYS)\n const [confirmDisconnect, setConfirmDisconnect] = useState(false)\n\n const uid = user?.uid\n useEffect(() => {\n if (!uid || !user) return\n let live = true\n authorizedFetch(\n user as never,\n `/api/commerce/shipping-connectors?connector=shippingeasy&hostId=${encodeURIComponent(hostId)}`,\n )\n .then(async (response) => {\n const body = await response.json().catch(() => ({}))\n if (!live) return\n if (!response.ok) return setLoadError(body?.error ?? 'The connection could not be read.')\n setLoadError(null)\n setStatus(body as ConnectionStatus)\n })\n .catch(() => live && setLoadError('The connection could not be read.'))\n return () => {\n live = false\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- `user` changes identity every render; `uid` is what matters.\n }, [uid, hostId])\n\n const act = useCallback(\n async (action: 'connect' | 'sync' | 'disconnect', extra: Record<string, string> = {}): Promise<boolean> => {\n setBusy(true)\n try {\n const response = await authorizedFetch(user as never, '/api/commerce/shipping-connectors', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ hostId, connector: 'shippingeasy', action, ...extra }),\n })\n const body = (await response.json().catch(() => ({}))) as ConnectionStatus & { error?: string }\n if (!response.ok) {\n enqueueSnackbar(body?.error ?? 'That did not work. Try again.', { variant: 'error', allowDuplicate: true })\n return false\n }\n setStatus(body)\n if (action === 'disconnect') {\n enqueueSnackbar('ShippingEasy is disconnected. New orders are no longer sent to it.', { variant: 'success' })\n } else if (action === 'sync' && body.sync) {\n enqueueSnackbar(describeShippingEasySync(body.sync), { variant: body.sync.failed ? 'warning' : 'success' })\n } else if (action === 'connect') {\n enqueueSnackbar('ShippingEasy is connected. Paste the callback URL into your ShippingEasy API store.', {\n variant: 'success',\n })\n }\n return true\n } finally {\n setBusy(false)\n }\n },\n [user, hostId, enqueueSnackbar],\n )\n\n // A deployment with no secret keyring cannot keep a secret: nothing to offer.\n if (status && status.available === false && !status.connected) return null\n\n const connected = Boolean(status?.connected)\n const openKeys = () => {\n setKeys(EMPTY_KEYS)\n setEditing(true)\n }\n const actions = !status ? null : connected ? (\n <Stack direction=\"row\" spacing={1}>\n <Button size=\"small\" disabled={busy} onClick={() => void act('sync')}>\n {'Send open orders'}\n </Button>\n <Button size=\"small\" disabled={busy} onClick={openKeys}>\n {'Change keys'}\n </Button>\n <Button size=\"small\" color=\"error\" disabled={busy} onClick={() => setConfirmDisconnect(true)}>\n {'Disconnect'}\n </Button>\n </Stack>\n ) : (\n <Button size=\"small\" variant=\"contained\" disabled={busy} onClick={openKeys}>\n {'Connect ShippingEasy'}\n </Button>\n )\n\n const complete = Boolean(keys.apiKey.trim() && keys.apiSecret.trim() && keys.storeApiKey.trim())\n const save = async () => {\n if (await act('connect', keys)) {\n setEditing(false)\n setKeys(EMPTY_KEYS)\n }\n }\n\n return (\n <CardDisplay\n header={'ShippingEasy'}\n help={pluginDocsHelp('shippingEasy', {\n excerpt:\n `${PLATFORM_BRAND_NAME} sends your paid orders to your ShippingEasy account, and each label you buy there ` +\n 'marks the order shipped and emails your customer the tracking link.',\n })}\n HeaderProps={{ action: actions }}\n contentGutterX\n contentGutterY\n >\n <Stack spacing={2}>\n {loadError ? <Alert severity=\"error\">{loadError}</Alert> : null}\n {!connected ? (\n <Typography variant=\"body2\" color=\"text.secondary\">\n {\n 'Labeling in ShippingEasy? Connect it with the API key, API secret and store API key from your ' +\n 'ShippingEasy account: each order is sent there as it is paid, and each label you buy there ' +\n 'marks the order shipped here and emails your customer the tracking link. Only a site admin ' +\n 'can connect it.'\n }\n </Typography>\n ) : (\n <>\n <div>\n {status?.lastError ? (\n <StatusChip label=\"Needs attention\" tone=\"warning\" data-testid=\"shippingeasy-status\" />\n ) : (\n <StatusChip label=\"Connected\" tone=\"success\" data-testid=\"shippingeasy-status\" />\n )}\n </div>\n {status?.lastError ? (\n <Alert severity=\"warning\">\n {`${status.lastError.message} (${when(status.lastError.atMs)})`}\n </Alert>\n ) : null}\n <CopyField\n label=\"Callback URL\"\n value={shippingEasyCallbackUrl(hostId)}\n helperText=\"Paste this into your API store's settings in ShippingEasy, so each label marks the order shipped here.\"\n onCopied={() => enqueueSnackbar('Callback URL copied', { variant: 'success', persist: false })}\n onCopyFailed={() => enqueueSnackbar('Select the callback URL and copy it.', { variant: 'info' })}\n />\n <ScrollTable size=\"small\" aria-label=\"ShippingEasy connection\">\n <TableBody>\n <FactRow label=\"API key\" value={status?.apiKeyEnding ? `Ends in ${status.apiKeyEnding}` : ''} />\n <FactRow label=\"Store API key\" value={status?.storeApiKeyEnding ? `Ends in ${status.storeApiKeyEnding}` : ''} />\n <FactRow label=\"Last order sent\" value={when(status?.lastPushAtMs)} />\n <FactRow label=\"Last shipment received\" value={when(status?.lastCallbackAtMs)} />\n </TableBody>\n </ScrollTable>\n </>\n )}\n </Stack>\n <Dialog open={editing} onClose={() => !busy && setEditing(false)} fullWidth maxWidth=\"sm\">\n <DialogTitle>{connected ? 'Change ShippingEasy keys' : 'Connect ShippingEasy'}</DialogTitle>\n <DialogContent>\n <Stack spacing={2} sx={{ pt: 1 }}>\n <DialogContentText>\n {\n 'In ShippingEasy, the API key and API secret are under Settings → API Credentials, and the ' +\n 'store API key is on your API store under Settings → Stores & Orders. The secret is kept ' +\n 'encrypted and is never shown again.'\n }\n </DialogContentText>\n <TextField\n label=\"API key\"\n value={keys.apiKey}\n onChange={(event) => setKeys((current) => ({ ...current, apiKey: event.target.value }))}\n autoComplete=\"off\"\n fullWidth\n required\n />\n <TextField\n label=\"API secret\"\n type=\"password\"\n value={keys.apiSecret}\n onChange={(event) => setKeys((current) => ({ ...current, apiSecret: event.target.value }))}\n autoComplete=\"new-password\"\n fullWidth\n required\n />\n <TextField\n label=\"Store API key\"\n value={keys.storeApiKey}\n onChange={(event) => setKeys((current) => ({ ...current, storeApiKey: event.target.value }))}\n autoComplete=\"off\"\n fullWidth\n required\n />\n </Stack>\n </DialogContent>\n <DialogActions>\n <Button disabled={busy} onClick={() => setEditing(false)}>\n {'Cancel'}\n </Button>\n <Button variant=\"contained\" disabled={busy || !complete} onClick={() => void save()}>\n {connected ? 'Save keys' : 'Connect'}\n </Button>\n </DialogActions>\n </Dialog>\n <Dialog open={confirmDisconnect} onClose={() => setConfirmDisconnect(false)}>\n <DialogTitle>{'Disconnect ShippingEasy?'}</DialogTitle>\n <DialogContent>\n <DialogContentText>\n {\n 'New orders stop going to ShippingEasy, and shipments it sends back are refused. Orders ' +\n 'already there stay there, and orders already shipped stay shipped. The keys are deleted ' +\n `from ${PLATFORM_BRAND_NAME}.`\n }\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button onClick={() => setConfirmDisconnect(false)}>{'Cancel'}</Button>\n <Button\n color=\"error\"\n disabled={busy}\n onClick={() => {\n setConfirmDisconnect(false)\n void act('disconnect')\n }}\n >\n {'Disconnect'}\n </Button>\n </DialogActions>\n </Dialog>\n </CardDisplay>\n )\n}\nShippingEasyCard.displayName = 'ShippingEasyCard'\n\nexport default ShippingEasyCard\n"],"names":["pluginDocsHelp","PLATFORM_BRAND_NAME","CardDisplay","CopyField","ScrollTable","StatusChip","useSnackbar","authorizedFetch","useUser","Alert","Button","Dialog","DialogActions","DialogContent","DialogContentText","DialogTitle","Stack","TableBody","TableCell","TableRow","TextField","Typography","useCallback","useEffect","useState","shippingEasyCallbackUrl","hostId","origin","base","window","location","encodeURIComponent","describeShippingEasySync","sync","parts","push","sent","already","failed","join","more","when","ms","Date","toLocaleString","undefined","dateStyle","timeStyle","FactRow","props","component","scope","label","value","EMPTY_KEYS","apiKey","apiSecret","storeApiKey","ShippingEasyCard","data","user","enqueueSnackbar","status","setStatus","loadError","setLoadError","busy","setBusy","editing","setEditing","keys","setKeys","confirmDisconnect","setConfirmDisconnect","uid","live","then","response","body","json","catch","ok","error","act","action","extra","method","headers","JSON","stringify","connector","variant","allowDuplicate","available","connected","Boolean","openKeys","actions","direction","spacing","size","disabled","onClick","color","complete","trim","save","header","help","excerpt","HeaderProps","contentGutterX","contentGutterY","severity","div","lastError","tone","data-testid","message","atMs","helperText","onCopied","persist","onCopyFailed","aria-label","apiKeyEnding","storeApiKeyEnding","lastPushAtMs","lastCallbackAtMs","open","onClose","fullWidth","maxWidth","sx","pt","onChange","event","current","target","autoComplete","required","type","displayName"],"mappings":"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"}
@@ -0,0 +1,35 @@
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
+ export interface ShipStationCardProps {
18
+ hostId: string;
19
+ }
20
+ /** The address ShipStation calls: this console's own origin, never a guess. */
21
+ export declare function shipStationEndpoint(hostId: string, origin?: string): string;
22
+ /** The status names to type into ShipStation's Custom Store form, in its order. */
23
+ export declare const SHIPSTATION_STATUS_ROWS: ReadonlyArray<readonly [string, string]>;
24
+ /**
25
+ * Connect ShipStation (AGL-3613): the URL, username and password a merchant
26
+ * pastes into ShipStation's Custom Store, the status names to map, a new
27
+ * password and a disconnect. The password is kept sealed on the server and
28
+ * a site admin can show it again; the card renders nothing on a deployment
29
+ * that cannot seal one.
30
+ */
31
+ export declare function ShipStationCard(props: ShipStationCardProps): import("react").JSX.Element;
32
+ export declare namespace ShipStationCard {
33
+ var displayName: string;
34
+ }
35
+ export default ShipStationCard;