@aglyn/plugins-commerce 1.0.0-beta.229 → 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 (590) 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 +58 -2
  176. package/src/lib/components/console/product-zones.js +10 -2
  177. package/src/lib/components/console/product-zones.js.map +1 -1
  178. package/src/lib/components/console/products-hub-card.component.js +51 -11
  179. package/src/lib/components/console/products-hub-card.component.js.map +1 -1
  180. package/src/lib/components/console/register-hardware-card.component.d.ts +33 -0
  181. package/src/lib/components/console/register-hardware-card.component.js +826 -0
  182. package/src/lib/components/console/register-hardware-card.component.js.map +1 -0
  183. package/src/lib/components/console/registers-card.component.js +24 -5
  184. package/src/lib/components/console/registers-card.component.js.map +1 -1
  185. package/src/lib/components/console/return-actions.d.ts +38 -0
  186. package/src/lib/components/console/return-actions.js +76 -0
  187. package/src/lib/components/console/return-actions.js.map +1 -0
  188. package/src/lib/components/console/return-detail-dialog.component.d.ts +34 -0
  189. package/src/lib/components/console/return-detail-dialog.component.js +718 -0
  190. package/src/lib/components/console/return-detail-dialog.component.js.map +1 -0
  191. package/src/lib/components/console/return-settings-card.component.d.ts +34 -0
  192. package/src/lib/components/console/return-settings-card.component.js +195 -0
  193. package/src/lib/components/console/return-settings-card.component.js.map +1 -0
  194. package/src/lib/components/console/return-zones.d.ts +87 -0
  195. package/src/lib/components/console/return-zones.js +31 -0
  196. package/src/lib/components/console/return-zones.js.map +1 -0
  197. package/src/lib/components/console/returns-card.component.d.ts +45 -0
  198. package/src/lib/components/console/returns-card.component.js +159 -0
  199. package/src/lib/components/console/returns-card.component.js.map +1 -0
  200. package/src/lib/components/console/shipping-settings-card.component.js +161 -5
  201. package/src/lib/components/console/shipping-settings-card.component.js.map +1 -1
  202. package/src/lib/components/console/shippingeasy-card.component.d.ts +59 -0
  203. package/src/lib/components/console/shippingeasy-card.component.js +378 -0
  204. package/src/lib/components/console/shippingeasy-card.component.js.map +1 -0
  205. package/src/lib/components/console/shipstation-card.component.d.ts +35 -0
  206. package/src/lib/components/console/shipstation-card.component.js +345 -0
  207. package/src/lib/components/console/shipstation-card.component.js.map +1 -0
  208. package/src/lib/components/console/start-return-dialog.component.d.ts +40 -0
  209. package/src/lib/components/console/start-return-dialog.component.js +243 -0
  210. package/src/lib/components/console/start-return-dialog.component.js.map +1 -0
  211. package/src/lib/components/console/stock-movements-card.component.js +2 -1
  212. package/src/lib/components/console/stock-movements-card.component.js.map +1 -1
  213. package/src/lib/components/console/store-settings-card.component.js +2 -66
  214. package/src/lib/components/console/store-settings-card.component.js.map +1 -1
  215. package/src/lib/components/console/store-zones.d.ts +42 -0
  216. package/src/lib/components/console/store-zones.js +39 -0
  217. package/src/lib/components/console/store-zones.js.map +1 -0
  218. package/src/lib/components/order-status.d.ts +36 -0
  219. package/src/lib/components/order-status.js +502 -0
  220. package/src/lib/components/order-status.js.map +1 -0
  221. package/src/lib/components/product-detail.js +44 -2
  222. package/src/lib/components/product-detail.js.map +1 -1
  223. package/src/lib/components/return-request.d.ts +32 -0
  224. package/src/lib/components/return-request.js +576 -0
  225. package/src/lib/components/return-request.js.map +1 -0
  226. package/src/lib/components/storefront-payment-appearance.d.ts +32 -0
  227. package/src/lib/components/storefront-payment-appearance.js +114 -0
  228. package/src/lib/components/storefront-payment-appearance.js.map +1 -0
  229. package/src/lib/components/storefront-payment-element.d.ts +57 -1
  230. package/src/lib/components/storefront-payment-element.js +332 -33
  231. package/src/lib/components/storefront-payment-element.js.map +1 -1
  232. package/src/lib/constants/order-status.d.ts +22 -0
  233. package/src/lib/constants/order-status.js +22 -0
  234. package/src/lib/constants/order-status.js.map +1 -0
  235. package/src/lib/constants/return-request.d.ts +27 -0
  236. package/src/lib/constants/return-request.js +32 -0
  237. package/src/lib/constants/return-request.js.map +1 -0
  238. package/src/lib/constants/stock-movement-query.js +2 -1
  239. package/src/lib/constants/stock-movement-query.js.map +1 -1
  240. package/src/lib/declarations.console-server.js +9 -0
  241. package/src/lib/declarations.console-server.js.map +1 -1
  242. package/src/lib/declarations.server.d.ts +2 -1
  243. package/src/lib/declarations.server.js +47 -1
  244. package/src/lib/declarations.server.js.map +1 -1
  245. package/src/lib/model/buyer-notifications.d.ts +59 -0
  246. package/src/lib/model/buyer-notifications.js +97 -0
  247. package/src/lib/model/buyer-notifications.js.map +1 -0
  248. package/src/lib/model/commerce-orders.d.ts +127 -1
  249. package/src/lib/model/commerce-orders.js +24 -15
  250. package/src/lib/model/commerce-orders.js.map +1 -1
  251. package/src/lib/model/commerce-payment-methods.d.ts +146 -0
  252. package/src/lib/model/commerce-payment-methods.js +247 -0
  253. package/src/lib/model/commerce-payment-methods.js.map +1 -0
  254. package/src/lib/model/commerce-pos-ops.d.ts +437 -0
  255. package/src/lib/model/commerce-pos-ops.js +721 -0
  256. package/src/lib/model/commerce-pos-ops.js.map +1 -0
  257. package/src/lib/model/commerce-pos.d.ts +263 -0
  258. package/src/lib/model/commerce-pos.js +375 -0
  259. package/src/lib/model/commerce-pos.js.map +1 -0
  260. package/src/lib/model/commerce-printers.d.ts +211 -0
  261. package/src/lib/model/commerce-printers.js +181 -0
  262. package/src/lib/model/commerce-printers.js.map +1 -0
  263. package/src/lib/model/commerce-receipt.d.ts +97 -0
  264. package/src/lib/model/commerce-receipt.js +180 -0
  265. package/src/lib/model/commerce-receipt.js.map +1 -0
  266. package/src/lib/model/commerce-returns.d.ts +207 -0
  267. package/src/lib/model/commerce-returns.js +300 -0
  268. package/src/lib/model/commerce-returns.js.map +1 -0
  269. package/src/lib/model/commerce-shipping.d.ts +44 -1
  270. package/src/lib/model/commerce-shipping.js +53 -9
  271. package/src/lib/model/commerce-shipping.js.map +1 -1
  272. package/src/lib/model/commerce-tax-engine.d.ts +90 -0
  273. package/src/lib/model/commerce-tax-engine.js +129 -0
  274. package/src/lib/model/commerce-tax-engine.js.map +1 -0
  275. package/src/lib/model/commerce.d.ts +88 -2
  276. package/src/lib/model/commerce.js +89 -1
  277. package/src/lib/model/commerce.js.map +1 -1
  278. package/src/lib/model/index.d.ts +15 -0
  279. package/src/lib/model/index.js +15 -0
  280. package/src/lib/model/index.js.map +1 -1
  281. package/src/lib/model/order-events.d.ts +154 -0
  282. package/src/lib/model/order-events.js +153 -0
  283. package/src/lib/model/order-events.js.map +1 -0
  284. package/src/lib/model/order-fulfillment.d.ts +117 -0
  285. package/src/lib/model/order-fulfillment.js +217 -0
  286. package/src/lib/model/order-fulfillment.js.map +1 -0
  287. package/src/lib/model/order-history.d.ts +58 -0
  288. package/src/lib/model/order-history.js +22 -0
  289. package/src/lib/model/order-history.js.map +1 -0
  290. package/src/lib/model/order-list-fields.d.ts +9 -1
  291. package/src/lib/model/order-list-fields.js +7 -1
  292. package/src/lib/model/order-list-fields.js.map +1 -1
  293. package/src/lib/model/order-shipping-export.d.ts +91 -0
  294. package/src/lib/model/order-shipping-export.js +192 -0
  295. package/src/lib/model/order-shipping-export.js.map +1 -0
  296. package/src/lib/model/order-status-view.d.ts +103 -0
  297. package/src/lib/model/order-status-view.js +156 -0
  298. package/src/lib/model/order-status-view.js.map +1 -0
  299. package/src/lib/model/order-webhooks.d.ts +142 -0
  300. package/src/lib/model/order-webhooks.js +91 -0
  301. package/src/lib/model/order-webhooks.js.map +1 -0
  302. package/src/lib/model/product-channel.d.ts +56 -0
  303. package/src/lib/model/product-channel.js +86 -0
  304. package/src/lib/model/product-channel.js.map +1 -0
  305. package/src/lib/model/product-modifiers.d.ts +80 -0
  306. package/src/lib/model/product-modifiers.js +140 -0
  307. package/src/lib/model/product-modifiers.js.map +1 -0
  308. package/src/lib/model/shippingeasy.d.ts +94 -0
  309. package/src/lib/model/shippingeasy.js +267 -0
  310. package/src/lib/model/shippingeasy.js.map +1 -0
  311. package/src/lib/model/shipstation.d.ts +125 -0
  312. package/src/lib/model/shipstation.js +399 -0
  313. package/src/lib/model/shipstation.js.map +1 -0
  314. package/src/lib/model/smart-collection-reads.d.ts +32 -0
  315. package/src/lib/model/smart-collection-reads.js +63 -0
  316. package/src/lib/model/smart-collection-reads.js.map +1 -0
  317. package/src/lib/model/tracking-url.d.ts +74 -0
  318. package/src/lib/model/tracking-url.js +159 -0
  319. package/src/lib/model/tracking-url.js.map +1 -0
  320. package/src/lib/plugin-config.d.ts +13 -0
  321. package/src/lib/plugin-config.js +77 -5
  322. package/src/lib/plugin-config.js.map +1 -1
  323. package/src/lib/plugin.js +23 -0
  324. package/src/lib/plugin.js.map +1 -1
  325. package/src/lib/pos-ops-config.d.ts +39 -0
  326. package/src/lib/pos-ops-config.js +88 -0
  327. package/src/lib/pos-ops-config.js.map +1 -0
  328. package/src/lib/printing/print-document.d.ts +106 -0
  329. package/src/lib/printing/print-document.js +464 -0
  330. package/src/lib/printing/print-document.js.map +1 -0
  331. package/src/lib/printing/product-labels.d.ts +58 -0
  332. package/src/lib/printing/product-labels.js +116 -0
  333. package/src/lib/printing/product-labels.js.map +1 -0
  334. package/src/lib/printing/render-epson.d.ts +57 -0
  335. package/src/lib/printing/render-epson.js +135 -0
  336. package/src/lib/printing/render-epson.js.map +1 -0
  337. package/src/lib/printing/render-star.d.ts +45 -0
  338. package/src/lib/printing/render-star.js +100 -0
  339. package/src/lib/printing/render-star.js.map +1 -0
  340. package/src/lib/printing/render-text.d.ts +25 -0
  341. package/src/lib/printing/render-text.js +53 -0
  342. package/src/lib/printing/render-text.js.map +1 -0
  343. package/src/lib/server/api-v1/openapi.js +27 -4
  344. package/src/lib/server/api-v1/openapi.js.map +1 -1
  345. package/src/lib/server/api-v1/order-view.d.ts +67 -0
  346. package/src/lib/server/api-v1/order-view.js +120 -0
  347. package/src/lib/server/api-v1/order-view.js.map +1 -0
  348. package/src/lib/server/api-v1/orders-and-products.js +58 -65
  349. package/src/lib/server/api-v1/orders-and-products.js.map +1 -1
  350. package/src/lib/server/billing-webhook.js +135 -28
  351. package/src/lib/server/billing-webhook.js.map +1 -1
  352. package/src/lib/server/cancel-order.js +29 -0
  353. package/src/lib/server/cancel-order.js.map +1 -1
  354. package/src/lib/server/carrier-rates-availability.d.ts +26 -0
  355. package/src/lib/server/carrier-rates-availability.js +76 -0
  356. package/src/lib/server/carrier-rates-availability.js.map +1 -0
  357. package/src/lib/server/carrier-shipping.d.ts +84 -0
  358. package/src/lib/server/carrier-shipping.js +135 -0
  359. package/src/lib/server/carrier-shipping.js.map +1 -0
  360. package/src/lib/server/cart-checkout.d.ts +2 -0
  361. package/src/lib/server/cart-checkout.js +226 -22
  362. package/src/lib/server/cart-checkout.js.map +1 -1
  363. package/src/lib/server/checkout-extras.d.ts +64 -0
  364. package/src/lib/server/checkout-extras.js +157 -0
  365. package/src/lib/server/checkout-extras.js.map +1 -0
  366. package/src/lib/server/{feed.d.ts → checkout-status.d.ts} +2 -7
  367. package/src/lib/server/checkout-status.js +111 -0
  368. package/src/lib/server/checkout-status.js.map +1 -0
  369. package/src/lib/server/checkout.js +86 -9
  370. package/src/lib/server/checkout.js.map +1 -1
  371. package/src/lib/server/draft-order.js +34 -5
  372. package/src/lib/server/draft-order.js.map +1 -1
  373. package/src/lib/server/fulfill-order.d.ts +127 -10
  374. package/src/lib/server/fulfill-order.js +451 -49
  375. package/src/lib/server/fulfill-order.js.map +1 -1
  376. package/src/lib/server/legacy-feed.d.ts +28 -0
  377. package/src/lib/server/legacy-feed.js +52 -0
  378. package/src/lib/server/legacy-feed.js.map +1 -0
  379. package/src/lib/server/native-checkout.d.ts +34 -15
  380. package/src/lib/server/native-checkout.js +32 -17
  381. package/src/lib/server/native-checkout.js.map +1 -1
  382. package/src/lib/server/order-event-host-emit.d.ts +23 -0
  383. package/src/lib/server/order-event-host-emit.js +30 -0
  384. package/src/lib/server/order-event-host-emit.js.map +1 -0
  385. package/src/lib/server/order-event-triggers.d.ts +37 -0
  386. package/src/lib/server/order-event-triggers.js +119 -0
  387. package/src/lib/server/order-event-triggers.js.map +1 -0
  388. package/src/lib/server/order-events.d.ts +62 -0
  389. package/src/lib/server/order-events.js +109 -0
  390. package/src/lib/server/order-events.js.map +1 -0
  391. package/src/lib/server/order-history.d.ts +23 -0
  392. package/src/lib/server/order-history.js +65 -0
  393. package/src/lib/server/order-history.js.map +1 -0
  394. package/src/lib/server/order-notifications.d.ts +185 -0
  395. package/src/lib/server/order-notifications.js +567 -0
  396. package/src/lib/server/order-notifications.js.map +1 -0
  397. package/src/lib/server/order-receipt-send.d.ts +39 -0
  398. package/src/lib/server/order-receipt-send.js +151 -0
  399. package/src/lib/server/order-receipt-send.js.map +1 -0
  400. package/src/lib/server/order-status-token.d.ts +31 -0
  401. package/src/lib/server/order-status-token.js +75 -0
  402. package/src/lib/server/order-status-token.js.map +1 -0
  403. package/src/lib/server/order-status.d.ts +58 -0
  404. package/src/lib/server/order-status.js +141 -0
  405. package/src/lib/server/order-status.js.map +1 -0
  406. package/src/lib/server/order-webhooks.d.ts +108 -0
  407. package/src/lib/server/order-webhooks.js +622 -0
  408. package/src/lib/server/order-webhooks.js.map +1 -0
  409. package/src/lib/server/orders-shipping-prepare.d.ts +26 -0
  410. package/src/lib/server/orders-shipping-prepare.js +121 -0
  411. package/src/lib/server/orders-shipping-prepare.js.map +1 -0
  412. package/src/lib/server/payment-method-domains.d.ts +209 -0
  413. package/src/lib/server/payment-method-domains.js +444 -0
  414. package/src/lib/server/payment-method-domains.js.map +1 -0
  415. package/src/lib/server/payment-methods.d.ts +77 -0
  416. package/src/lib/server/payment-methods.js +284 -0
  417. package/src/lib/server/payment-methods.js.map +1 -0
  418. package/src/lib/server/pos-auth.d.ts +50 -0
  419. package/src/lib/server/pos-auth.js +121 -0
  420. package/src/lib/server/pos-auth.js.map +1 -0
  421. package/src/lib/server/pos-customer.d.ts +49 -0
  422. package/src/lib/server/pos-customer.js +257 -0
  423. package/src/lib/server/pos-customer.js.map +1 -0
  424. package/src/lib/server/pos-display.d.ts +57 -0
  425. package/src/lib/server/pos-display.js +419 -0
  426. package/src/lib/server/pos-display.js.map +1 -0
  427. package/src/lib/server/pos-fee-month.d.ts +34 -0
  428. package/src/lib/server/pos-fee-month.js +36 -0
  429. package/src/lib/server/pos-fee-month.js.map +1 -0
  430. package/src/lib/server/pos-ops-gate.d.ts +161 -0
  431. package/src/lib/server/pos-ops-gate.js +295 -0
  432. package/src/lib/server/pos-ops-gate.js.map +1 -0
  433. package/src/lib/server/pos-ops-routes.d.ts +22 -0
  434. package/src/lib/server/pos-ops-routes.js +36 -0
  435. package/src/lib/server/pos-ops-routes.js.map +1 -0
  436. package/src/lib/server/pos-order.d.ts +1 -18
  437. package/src/lib/server/pos-order.js +222 -42
  438. package/src/lib/server/pos-order.js.map +1 -1
  439. package/src/lib/server/pos-payment.d.ts +39 -0
  440. package/src/lib/server/pos-payment.js +922 -0
  441. package/src/lib/server/pos-payment.js.map +1 -0
  442. package/src/lib/server/pos-print.d.ts +82 -0
  443. package/src/lib/server/pos-print.js +193 -0
  444. package/src/lib/server/pos-print.js.map +1 -0
  445. package/src/lib/server/pos-readers.d.ts +27 -0
  446. package/src/lib/server/pos-readers.js +276 -0
  447. package/src/lib/server/pos-readers.js.map +1 -0
  448. package/src/lib/server/pos-refund-authority.d.ts +60 -0
  449. package/src/lib/server/pos-refund-authority.js +72 -0
  450. package/src/lib/server/pos-refund-authority.js.map +1 -0
  451. package/src/lib/server/pos-return.d.ts +58 -0
  452. package/src/lib/server/pos-return.js +891 -0
  453. package/src/lib/server/pos-return.js.map +1 -0
  454. package/src/lib/server/pos-sale-stamp.d.ts +66 -0
  455. package/src/lib/server/pos-sale-stamp.js +84 -0
  456. package/src/lib/server/pos-sale-stamp.js.map +1 -0
  457. package/src/lib/server/pos-sale.d.ts +170 -0
  458. package/src/lib/server/pos-sale.js +461 -0
  459. package/src/lib/server/pos-sale.js.map +1 -0
  460. package/src/lib/server/pos-shift.d.ts +45 -0
  461. package/src/lib/server/pos-shift.js +484 -0
  462. package/src/lib/server/pos-shift.js.map +1 -0
  463. package/src/lib/server/pos-staff-pin.d.ts +26 -0
  464. package/src/lib/server/pos-staff-pin.js +339 -0
  465. package/src/lib/server/pos-staff-pin.js.map +1 -0
  466. package/src/lib/server/pos-stripe.d.ts +91 -0
  467. package/src/lib/server/pos-stripe.js +129 -0
  468. package/src/lib/server/pos-stripe.js.map +1 -0
  469. package/src/lib/server/pos-terminal-connection-token.d.ts +48 -0
  470. package/src/lib/server/pos-terminal-connection-token.js +166 -0
  471. package/src/lib/server/pos-terminal-connection-token.js.map +1 -0
  472. package/src/lib/server/pos-terminal.d.ts +218 -0
  473. package/src/lib/server/pos-terminal.js +1014 -0
  474. package/src/lib/server/pos-terminal.js.map +1 -0
  475. package/src/lib/server/print-queue.d.ts +124 -0
  476. package/src/lib/server/print-queue.js +301 -0
  477. package/src/lib/server/print-queue.js.map +1 -0
  478. package/src/lib/server/printer-poll.d.ts +75 -0
  479. package/src/lib/server/printer-poll.js +325 -0
  480. package/src/lib/server/printer-poll.js.map +1 -0
  481. package/src/lib/server/printer-secret.d.ts +39 -0
  482. package/src/lib/server/printer-secret.js +56 -0
  483. package/src/lib/server/printer-secret.js.map +1 -0
  484. package/src/lib/server/printers.d.ts +114 -0
  485. package/src/lib/server/printers.js +546 -0
  486. package/src/lib/server/printers.js.map +1 -0
  487. package/src/lib/server/product-ai-capability.d.ts +42 -0
  488. package/src/lib/server/product-ai-capability.js +159 -0
  489. package/src/lib/server/product-ai-capability.js.map +1 -0
  490. package/src/lib/server/product-catalog.d.ts +42 -0
  491. package/src/lib/server/product-catalog.js +305 -0
  492. package/src/lib/server/product-catalog.js.map +1 -0
  493. package/src/lib/server/product-drafts.d.ts +119 -0
  494. package/src/lib/server/product-drafts.js +384 -0
  495. package/src/lib/server/product-drafts.js.map +1 -0
  496. package/src/lib/server/refund.js +110 -45
  497. package/src/lib/server/refund.js.map +1 -1
  498. package/src/lib/server/reserve.js +2 -0
  499. package/src/lib/server/reserve.js.map +1 -1
  500. package/src/lib/server/return-status-action.d.ts +37 -0
  501. package/src/lib/server/return-status-action.js +57 -0
  502. package/src/lib/server/return-status-action.js.map +1 -0
  503. package/src/lib/server/returns.d.ts +119 -0
  504. package/src/lib/server/returns.js +938 -0
  505. package/src/lib/server/returns.js.map +1 -0
  506. package/src/lib/server/shipment-records.d.ts +36 -0
  507. package/src/lib/server/shipment-records.js +289 -0
  508. package/src/lib/server/shipment-records.js.map +1 -0
  509. package/src/lib/server/shipping-connector-gates.d.ts +40 -0
  510. package/src/lib/server/shipping-connector-gates.js +97 -0
  511. package/src/lib/server/shipping-connector-gates.js.map +1 -0
  512. package/src/lib/server/shipping-connectors.d.ts +29 -0
  513. package/src/lib/server/shipping-connectors.js +236 -0
  514. package/src/lib/server/shipping-connectors.js.map +1 -0
  515. package/src/lib/server/shippingeasy.d.ts +238 -0
  516. package/src/lib/server/shippingeasy.js +787 -0
  517. package/src/lib/server/shippingeasy.js.map +1 -0
  518. package/src/lib/server/shipstation.d.ts +129 -0
  519. package/src/lib/server/shipstation.js +483 -0
  520. package/src/lib/server/shipstation.js.map +1 -0
  521. package/src/lib/server/site-page-resolver.d.ts +5 -0
  522. package/src/lib/server/site-page-resolver.js +156 -1
  523. package/src/lib/server/site-page-resolver.js.map +1 -1
  524. package/src/lib/server/stock-levels.d.ts +21 -0
  525. package/src/lib/server/stock-levels.js +263 -0
  526. package/src/lib/server/stock-levels.js.map +1 -0
  527. package/src/lib/server/stripe-refund.d.ts +47 -0
  528. package/src/lib/server/stripe-refund.js +87 -0
  529. package/src/lib/server/stripe-refund.js.map +1 -0
  530. package/src/lib/server/supplier-update.js +46 -5
  531. package/src/lib/server/supplier-update.js.map +1 -1
  532. package/src/lib/server/tax-engine-quote.d.ts +47 -0
  533. package/src/lib/server/tax-engine-quote.js +105 -0
  534. package/src/lib/server/tax-engine-quote.js.map +1 -0
  535. package/src/lib/server.js +146 -2
  536. package/src/lib/server.js.map +1 -1
  537. package/src/lib/site.js +12 -0
  538. package/src/lib/site.js.map +1 -1
  539. package/src/lib/subprocessors.d.ts +26 -0
  540. package/src/lib/subprocessors.js +50 -0
  541. package/src/lib/subprocessors.js.map +1 -0
  542. package/src/lib/tenant-emails.js +461 -3
  543. package/src/lib/tenant-emails.js.map +1 -1
  544. package/src/lib/testing/fake-firestore.d.ts +45 -0
  545. package/src/lib/testing/fake-firestore.js +189 -0
  546. package/src/lib/testing/fake-firestore.js.map +1 -0
  547. package/src/lib/testing/memory-firestore.d.ts +123 -0
  548. package/src/lib/testing/memory-firestore.js +274 -0
  549. package/src/lib/testing/memory-firestore.js.map +1 -0
  550. package/src/lib/testing/pos-ops-harness.d.ts +50 -0
  551. package/src/lib/testing/pos-ops-harness.js +184 -0
  552. package/src/lib/testing/pos-ops-harness.js.map +1 -0
  553. package/src/lib/testing/pos-ops-memory-firestore.d.ts +55 -0
  554. package/src/lib/testing/pos-ops-memory-firestore.js +376 -0
  555. package/src/lib/testing/pos-ops-memory-firestore.js.map +1 -0
  556. package/src/lib/transfer/records-transfer.d.ts +11 -1
  557. package/src/lib/transfer/records-transfer.js +127 -5
  558. package/src/lib/transfer/records-transfer.js.map +1 -1
  559. package/src/lib/transfer/records.server.d.ts +9 -2
  560. package/src/lib/transfer/records.server.js +58 -7
  561. package/src/lib/transfer/records.server.js.map +1 -1
  562. package/src/lib/transfer/register-transfer-resources.js +40 -1
  563. package/src/lib/transfer/register-transfer-resources.js.map +1 -1
  564. package/src/lib/transfer/register-transfer-ui.js +4 -1
  565. package/src/lib/transfer/register-transfer-ui.js.map +1 -1
  566. package/src/lib/transfer/shipping-presets.d.ts +23 -0
  567. package/src/lib/transfer/shipping-presets.js +156 -0
  568. package/src/lib/transfer/shipping-presets.js.map +1 -0
  569. package/src/lib/transfer/tracking-transfer.d.ts +101 -0
  570. package/src/lib/transfer/tracking-transfer.js +546 -0
  571. package/src/lib/transfer/tracking-transfer.js.map +1 -0
  572. package/src/lib/transfer/tracking.server.d.ts +37 -0
  573. package/src/lib/transfer/tracking.server.js +393 -0
  574. package/src/lib/transfer/tracking.server.js.map +1 -0
  575. package/src/lib/transfer/transfer-keys.d.ts +2 -1
  576. package/src/lib/transfer/transfer-keys.js +6 -2
  577. package/src/lib/transfer/transfer-keys.js.map +1 -1
  578. package/src/lib/utils/code128.d.ts +37 -0
  579. package/src/lib/utils/code128.js +199 -0
  580. package/src/lib/utils/code128.js.map +1 -0
  581. package/src/lib/utils/order-invoice.d.ts +55 -0
  582. package/src/lib/utils/order-invoice.js +127 -0
  583. package/src/lib/utils/order-invoice.js.map +1 -0
  584. package/src/lib/utils/use-checkout-return-notice.d.ts +34 -0
  585. package/src/lib/utils/use-checkout-return-notice.js +78 -0
  586. package/src/lib/utils/use-checkout-return-notice.js.map +1 -0
  587. package/src/lib/utils/use-storefront-purchase-event.js +4 -0
  588. package/src/lib/utils/use-storefront-purchase-event.js.map +1 -1
  589. package/src/lib/server/feed.js +0 -69
  590. package/src/lib/server/feed.js.map +0 -1
@@ -0,0 +1,257 @@
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
+ */ import { _ as _extends } from "@swc/helpers/_/_extends";
17
+ import { searchPluginPeople } from "@aglyn/aglyn/plugin-manager/plugin-person-records";
18
+ import recordCapturedContact from "@aglyn/aglyn/plugin-manager/record-captured-contact";
19
+ import { nameSearchKey } from "@aglyn/aglyn/app-utils/name-search";
20
+ import { AggregateField } from "firebase-admin/firestore";
21
+ import { authorizePosOps, defaultPosOpsDeps, posOpsBody } from "./pos-ops-gate.js";
22
+ /*==========================================
23
+ * THE CUSTOMER AT THE REGISTER (AGL-3609): `POST /api/commerce/pos-customer`.
24
+ *
25
+ * search name, email or phone → people the site may see
26
+ * stats one customer's orders here and what they have spent
27
+ * create a new customer, quick-added at the counter
28
+ *
29
+ * The people are the workspace's, kept by whichever plugin keeps people and
30
+ * reached through `plugin-person-records` — never by opening that plugin's
31
+ * collections or importing it. A workspace with no record system answers
32
+ * `available: false`, and the register falls back to typing an email.
33
+ *
34
+ * The STATS are commerce's own: an aggregate over this site's orders by the
35
+ * stored lowercase address, never a scan.
36
+ *=========================================*/ /** The statuses a customer actually paid in. A refund is netted, not excluded. */ export const POS_CUSTOMER_PAID_STATUSES = [
37
+ 'paid',
38
+ 'partially_fulfilled',
39
+ 'fulfilled',
40
+ 'delivered',
41
+ 'refunded'
42
+ ];
43
+ export function defaultPosCustomerDeps() {
44
+ return _extends({}, defaultPosOpsDeps(), {
45
+ searchPeople: (request)=>searchPluginPeople(request),
46
+ captureContact: (request)=>recordCapturedContact(request),
47
+ orderStats: async (hostRef, emailLower)=>{
48
+ var _data_orderCount, _data_spentCents, _data_refundedCents;
49
+ const snapshot = await hostRef.collection('orders').where('customerEmailLower', '==', emailLower).where('status', 'in', [
50
+ ...POS_CUSTOMER_PAID_STATUSES
51
+ ]).aggregate({
52
+ orderCount: AggregateField.count(),
53
+ spentCents: AggregateField.sum('totals.totalCents'),
54
+ refundedCents: AggregateField.sum('refundedCents')
55
+ }).get();
56
+ const data = snapshot.data();
57
+ return {
58
+ orderCount: Number((_data_orderCount = data.orderCount) != null ? _data_orderCount : 0),
59
+ spentCents: Number((_data_spentCents = data.spentCents) != null ? _data_spentCents : 0),
60
+ refundedCents: Number((_data_refundedCents = data.refundedCents) != null ? _data_refundedCents : 0)
61
+ };
62
+ }
63
+ });
64
+ }
65
+ function customerOf(person) {
66
+ var _person_data;
67
+ const data = (_person_data = person.data) != null ? _person_data : {};
68
+ const name = typeof data['name'] === 'string' ? data['name'] : '';
69
+ const phone = typeof data['phone'] === 'string' ? data['phone'] : '';
70
+ return {
71
+ kind: person.kind,
72
+ id: person.id,
73
+ name: name.trim(),
74
+ email: person.email,
75
+ phone: phone.trim() || null
76
+ };
77
+ }
78
+ const EMAIL = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
79
+ export async function handlePosCustomer(deps, req) {
80
+ var _body_action;
81
+ if (req.method !== 'POST') return {
82
+ status: 405,
83
+ body: {
84
+ error: 'Method not allowed'
85
+ }
86
+ };
87
+ const body = posOpsBody(req);
88
+ const gate = await authorizePosOps(deps, req, body['hostId']);
89
+ if ('error' in gate) return {
90
+ status: gate.status,
91
+ body: {
92
+ error: gate.error
93
+ }
94
+ };
95
+ const staff = gate.staff;
96
+ const action = String((_body_action = body['action']) != null ? _body_action : '');
97
+ switch(action){
98
+ case 'search':
99
+ {
100
+ var _body_text;
101
+ const text = String((_body_text = body['text']) != null ? _body_text : '').trim().slice(0, 120);
102
+ if (text.length < 2) return {
103
+ status: 200,
104
+ body: {
105
+ available: true,
106
+ customers: []
107
+ }
108
+ };
109
+ const people = await deps.searchPeople({
110
+ hostId: staff.hostId,
111
+ orgId: staff.orgId || null,
112
+ text,
113
+ limit: 10
114
+ });
115
+ if (people === null) return {
116
+ status: 200,
117
+ body: {
118
+ available: false,
119
+ customers: []
120
+ }
121
+ };
122
+ return {
123
+ status: 200,
124
+ body: {
125
+ available: true,
126
+ customers: people.map(customerOf)
127
+ }
128
+ };
129
+ }
130
+ case 'stats':
131
+ {
132
+ var _body_email;
133
+ const email = nameSearchKey(String((_body_email = body['email']) != null ? _body_email : ''));
134
+ if (!EMAIL.test(email)) return {
135
+ status: 400,
136
+ body: {
137
+ error: 'That is not an email address.'
138
+ }
139
+ };
140
+ const stats = await deps.orderStats(staff.hostRef, email);
141
+ return {
142
+ status: 200,
143
+ body: {
144
+ orderCount: stats.orderCount,
145
+ lifetimeSpendCents: Math.max(0, stats.spentCents - stats.refundedCents)
146
+ }
147
+ };
148
+ }
149
+ case 'create':
150
+ {
151
+ var _body_email1, _body_name, _body_phone;
152
+ const email = String((_body_email1 = body['email']) != null ? _body_email1 : '').trim().toLowerCase().slice(0, 200);
153
+ const name = String((_body_name = body['name']) != null ? _body_name : '').trim().slice(0, 120);
154
+ const phone = String((_body_phone = body['phone']) != null ? _body_phone : '').trim().slice(0, 40);
155
+ if (!EMAIL.test(email)) {
156
+ return {
157
+ status: 400,
158
+ body: {
159
+ error: 'Add the customer’s email address.'
160
+ }
161
+ };
162
+ }
163
+ if (phone && !/^[\d\s()+.-]{4,40}$/.test(phone)) {
164
+ return {
165
+ status: 400,
166
+ body: {
167
+ error: 'That is not a phone number.'
168
+ }
169
+ };
170
+ }
171
+ const captured = await deps.captureContact(_extends({
172
+ actor: {
173
+ kind: 'member',
174
+ uid: staff.uid
175
+ },
176
+ orgId: staff.orgId,
177
+ hostId: staff.hostId,
178
+ identity: _extends({
179
+ email
180
+ }, name ? {
181
+ name
182
+ } : {}),
183
+ interaction: {
184
+ source: 'order',
185
+ summary: 'Added at the register'
186
+ },
187
+ surface: 'relationship',
188
+ lifecycleFloor: 'customer'
189
+ }, phone ? {
190
+ profileFill: {
191
+ phone
192
+ }
193
+ } : {}));
194
+ if (!captured) {
195
+ return {
196
+ status: 200,
197
+ body: {
198
+ available: false,
199
+ customer: {
200
+ kind: 'none',
201
+ id: '',
202
+ name,
203
+ email,
204
+ phone: phone || null
205
+ }
206
+ }
207
+ };
208
+ }
209
+ if (captured.ok !== true) {
210
+ return {
211
+ status: 409,
212
+ body: {
213
+ error: 'That customer could not be added.'
214
+ }
215
+ };
216
+ }
217
+ const id = captured.record === 'contact' ? captured.contactId : captured.leadId;
218
+ return {
219
+ status: 200,
220
+ body: {
221
+ available: true,
222
+ customer: {
223
+ kind: captured.record,
224
+ id,
225
+ name,
226
+ email,
227
+ phone: phone || null
228
+ },
229
+ created: captured.created
230
+ }
231
+ };
232
+ }
233
+ default:
234
+ return {
235
+ status: 400,
236
+ body: {
237
+ error: 'Unknown action'
238
+ }
239
+ };
240
+ }
241
+ }
242
+ export function createPosCustomerHandler(deps = defaultPosCustomerDeps) {
243
+ return async (req, res)=>{
244
+ try {
245
+ const outcome = await handlePosCustomer(deps(), req);
246
+ return res.status(outcome.status).json(outcome.body);
247
+ } catch (error) {
248
+ console.error('[pos-customer] failed', error);
249
+ return res.status(500).json({
250
+ error: 'Customer lookup failed'
251
+ });
252
+ }
253
+ };
254
+ }
255
+ export const posCustomerHandler = createPosCustomerHandler();
256
+
257
+ //# sourceMappingURL=pos-customer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../libs/plugins/commerce/src/lib/server/pos-customer.ts"],"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\nimport type { PluginApiHandler, PluginApiRequest } from '@aglyn/aglyn/server'\nimport type { PluginContactCaptureRequest, PluginContactCaptured } from '@aglyn/aglyn/plugin-manager/plugin-contact-capture'\nimport {\n searchPluginPeople,\n type PluginPersonRecord,\n type PluginPersonSearchRequest,\n} from '@aglyn/aglyn/plugin-manager/plugin-person-records'\nimport recordCapturedContact from '@aglyn/aglyn/plugin-manager/record-captured-contact'\nimport { nameSearchKey } from '@aglyn/aglyn/app-utils/name-search'\nimport { AggregateField } from 'firebase-admin/firestore'\nimport {\n authorizePosOps,\n defaultPosOpsDeps,\n posOpsBody,\n type PosOpsDeps,\n} from './pos-ops-gate'\n\n/*==========================================\n * THE CUSTOMER AT THE REGISTER (AGL-3609): `POST /api/commerce/pos-customer`.\n *\n * search name, email or phone → people the site may see\n * stats one customer's orders here and what they have spent\n * create a new customer, quick-added at the counter\n *\n * The people are the workspace's, kept by whichever plugin keeps people and\n * reached through `plugin-person-records` — never by opening that plugin's\n * collections or importing it. A workspace with no record system answers\n * `available: false`, and the register falls back to typing an email.\n *\n * The STATS are commerce's own: an aggregate over this site's orders by the\n * stored lowercase address, never a scan.\n *=========================================*/\n\n/** The statuses a customer actually paid in. A refund is netted, not excluded. */\nexport const POS_CUSTOMER_PAID_STATUSES = [\n 'paid',\n 'partially_fulfilled',\n 'fulfilled',\n 'delivered',\n 'refunded',\n] as const\n\nexport interface PosCustomerDeps extends PosOpsDeps {\n searchPeople(request: PluginPersonSearchRequest): Promise<PluginPersonRecord[] | null>\n captureContact(request: PluginContactCaptureRequest): Promise<PluginContactCaptured | null>\n /** Orders, spend and refunds for one address on one site, by aggregate. */\n orderStats(\n hostRef: FirebaseFirestore.DocumentReference,\n emailLower: string,\n ): Promise<{ orderCount: number; spentCents: number; refundedCents: number }>\n}\n\nexport function defaultPosCustomerDeps(): PosCustomerDeps {\n return {\n ...defaultPosOpsDeps(),\n searchPeople: (request) => searchPluginPeople(request),\n captureContact: (request) => recordCapturedContact(request),\n orderStats: async (hostRef, emailLower) => {\n const snapshot = await hostRef\n .collection('orders')\n .where('customerEmailLower', '==', emailLower)\n .where('status', 'in', [...POS_CUSTOMER_PAID_STATUSES])\n .aggregate({\n orderCount: AggregateField.count(),\n spentCents: AggregateField.sum('totals.totalCents'),\n refundedCents: AggregateField.sum('refundedCents'),\n })\n .get()\n const data = snapshot.data()\n return {\n orderCount: Number(data.orderCount ?? 0),\n spentCents: Number(data.spentCents ?? 0),\n refundedCents: Number(data.refundedCents ?? 0),\n }\n },\n }\n}\n\n/** One person as the register lists them. */\nexport interface PosCustomer {\n kind: string\n id: string\n name: string\n email: string | null\n phone: string | null\n}\n\nfunction customerOf(person: PluginPersonRecord): PosCustomer {\n const data = person.data ?? {}\n const name = typeof data['name'] === 'string' ? data['name'] : ''\n const phone = typeof data['phone'] === 'string' ? data['phone'] : ''\n return {\n kind: person.kind,\n id: person.id,\n name: name.trim(),\n email: person.email,\n phone: phone.trim() || null,\n }\n}\n\nconst EMAIL = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/\n\ntype Outcome = { status: number; body: Record<string, unknown> }\n\nexport async function handlePosCustomer(deps: PosCustomerDeps, req: PluginApiRequest): Promise<Outcome> {\n if (req.method !== 'POST') return { status: 405, body: { error: 'Method not allowed' } }\n const body = posOpsBody(req)\n const gate = await authorizePosOps(deps, req, body['hostId'])\n if ('error' in gate) return { status: gate.status, body: { error: gate.error } }\n const staff = gate.staff\n const action = String(body['action'] ?? '')\n\n switch (action) {\n case 'search': {\n const text = String(body['text'] ?? '').trim().slice(0, 120)\n if (text.length < 2) return { status: 200, body: { available: true, customers: [] } }\n const people = await deps.searchPeople({\n hostId: staff.hostId,\n orgId: staff.orgId || null,\n text,\n limit: 10,\n })\n if (people === null) return { status: 200, body: { available: false, customers: [] } }\n return { status: 200, body: { available: true, customers: people.map(customerOf) } }\n }\n\n case 'stats': {\n const email = nameSearchKey(String(body['email'] ?? ''))\n if (!EMAIL.test(email)) return { status: 400, body: { error: 'That is not an email address.' } }\n const stats = await deps.orderStats(staff.hostRef, email)\n return {\n status: 200,\n body: {\n orderCount: stats.orderCount,\n lifetimeSpendCents: Math.max(0, stats.spentCents - stats.refundedCents),\n },\n }\n }\n\n case 'create': {\n const email = String(body['email'] ?? '').trim().toLowerCase().slice(0, 200)\n const name = String(body['name'] ?? '').trim().slice(0, 120)\n const phone = String(body['phone'] ?? '').trim().slice(0, 40)\n if (!EMAIL.test(email)) {\n return { status: 400, body: { error: 'Add the customer’s email address.' } }\n }\n if (phone && !/^[\\d\\s()+.-]{4,40}$/.test(phone)) {\n return { status: 400, body: { error: 'That is not a phone number.' } }\n }\n const captured = await deps.captureContact({\n actor: { kind: 'member', uid: staff.uid },\n orgId: staff.orgId,\n hostId: staff.hostId,\n identity: { email, ...(name ? { name } : {}) },\n interaction: { source: 'order', summary: 'Added at the register' },\n surface: 'relationship',\n lifecycleFloor: 'customer',\n ...(phone ? { profileFill: { phone } } : {}),\n })\n if (!captured) {\n return {\n status: 200,\n body: {\n available: false,\n customer: { kind: 'none', id: '', name, email, phone: phone || null },\n },\n }\n }\n if (captured.ok !== true) {\n return { status: 409, body: { error: 'That customer could not be added.' } }\n }\n const id = captured.record === 'contact' ? captured.contactId : captured.leadId\n return {\n status: 200,\n body: {\n available: true,\n customer: { kind: captured.record, id, name, email, phone: phone || null },\n created: captured.created,\n },\n }\n }\n\n default:\n return { status: 400, body: { error: 'Unknown action' } }\n }\n}\n\nexport function createPosCustomerHandler(\n deps: () => PosCustomerDeps = defaultPosCustomerDeps,\n): PluginApiHandler {\n return async (req, res) => {\n try {\n const outcome = await handlePosCustomer(deps(), req)\n return res.status(outcome.status).json(outcome.body)\n } catch (error) {\n console.error('[pos-customer] failed', error)\n return res.status(500).json({ error: 'Customer lookup failed' })\n }\n }\n}\n\nexport const posCustomerHandler = createPosCustomerHandler()\n"],"names":["searchPluginPeople","recordCapturedContact","nameSearchKey","AggregateField","authorizePosOps","defaultPosOpsDeps","posOpsBody","POS_CUSTOMER_PAID_STATUSES","defaultPosCustomerDeps","searchPeople","request","captureContact","orderStats","hostRef","emailLower","data","snapshot","collection","where","aggregate","orderCount","count","spentCents","sum","refundedCents","get","Number","customerOf","person","name","phone","kind","id","trim","email","EMAIL","handlePosCustomer","deps","req","body","method","status","error","gate","staff","action","String","text","slice","length","available","customers","people","hostId","orgId","limit","map","test","stats","lifetimeSpendCents","Math","max","toLowerCase","captured","actor","uid","identity","interaction","source","summary","surface","lifecycleFloor","profileFill","customer","ok","record","contactId","leadId","created","createPosCustomerHandler","res","outcome","json","console","posCustomerHandler"],"mappings":"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"}
@@ -0,0 +1,57 @@
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 { PluginApiHandler } from '@aglyn/aglyn/server';
18
+ import * as CommerceModel from '../model';
19
+ export declare function sha256(value: string): string;
20
+ /** The one state document a register's display reads. */
21
+ export declare function posDisplayStateId(hostId: string, registerId: string): string;
22
+ /**
23
+ * The store's currency (`hosts/{hostId}/settings/store.currency`, lower
24
+ * case), which every figure on the customer's screen is formatted in. A
25
+ * store that never chose one is in the currency the register charges.
26
+ */
27
+ export declare function posDisplayCurrency(hostId: string): Promise<string>;
28
+ /**
29
+ * Writes the display state whole, so nothing from the last prompt lingers —
30
+ * a customer's typed address included. The currency is the store's, stamped
31
+ * here so the screen never formats a figure in one the register made up.
32
+ */
33
+ export declare function writePosDisplayState(hostId: string, registerId: string, state: CommerceModel.PosDisplayState): Promise<void>;
34
+ /** The register's display returns to the thank-you screen with no customer data. */
35
+ export declare function resetPosDisplay(hostId: string, registerId: string): Promise<void>;
36
+ /**
37
+ * Ends the customer's turn once the register has acted on their receipt
38
+ * choice (AGL-3608): a display still on the receipt prompt says thank you,
39
+ * and an answer holding a typed email address or phone number is dropped
40
+ * from the state either way, so no contact detail outlives the sale on the
41
+ * server doc a public screen reads.
42
+ *
43
+ * Conditional, in a transaction, because the receipt can be sent after the
44
+ * cashier has started the next sale: a display already showing the next
45
+ * customer's basket is left alone.
46
+ */
47
+ export declare function finishPosDisplayReceipt(hostId: string, registerId: string): Promise<void>;
48
+ /** Signs every display of a register out, and forgets its state. */
49
+ export declare function revokePosDisplays(hostId: string, registerId: string): Promise<void>;
50
+ /**
51
+ * `POST /api/commerce/pos-display`.
52
+ *
53
+ * Staff (Firebase token + the register's gate): `pairing-code`, `push`,
54
+ * `state`, `displays`, `revoke`.
55
+ * Display (display token only): `pair`, `poll`, `respond`, `forget`.
56
+ */
57
+ export declare const posDisplayHandler: PluginApiHandler;