@final-commerce/common 2.2.2-preprod.4 → 2.2.3-staging3.1

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.
@@ -78,6 +78,9 @@ interface OrderSummary {
78
78
  cartFeesTotal?: number;
79
79
  taxableFeesTotal?: number;
80
80
  nonTaxableFeesTotal?: number;
81
+ modifiersTotal?: number;
82
+ taxableModifiersTotal?: number;
83
+ nonTaxableModifiersTotal?: number;
81
84
  totalTaxableSales?: number;
82
85
  totalNonTaxableSales?: number;
83
86
  tipTotal?: number;
@@ -143,6 +146,17 @@ interface OrderLineItemFee {
143
146
  cartFee?: PriceModifierDetail;
144
147
  itemFees?: PriceModifierDetail[];
145
148
  }
149
+ interface OrderLineItemModifier {
150
+ modifierId: string;
151
+ modifierName: string;
152
+ choiceId: string;
153
+ choiceName: string;
154
+ unitPrice: number;
155
+ quantity: number;
156
+ total: number;
157
+ totalTax?: number;
158
+ taxes?: OrderTax[];
159
+ }
146
160
  interface OrderLineItem {
147
161
  id?: string;
148
162
  productId?: string;
@@ -165,6 +179,7 @@ interface OrderLineItem {
165
179
  taxes?: OrderTax[];
166
180
  discount?: OrderLineItemDiscount;
167
181
  fee?: OrderLineItemFee;
182
+ modifiers?: OrderLineItemModifier[];
168
183
  lineNetWithFees?: number;
169
184
  metadata?: Metadata[];
170
185
  stock?: number;
@@ -459,6 +474,7 @@ interface RefundLineItem {
459
474
  taxes?: OrderTax[];
460
475
  discount?: RefundDiscount;
461
476
  fee?: OrderLineItemFee;
477
+ modifiers?: OrderLineItemModifier[];
462
478
  lineNetWithFees?: number;
463
479
  quantity?: number;
464
480
  stockQuantity?: number;
@@ -518,6 +534,9 @@ interface RefundSummary {
518
534
  cartFeesTotal?: number;
519
535
  taxableFeesTotal?: number;
520
536
  nonTaxableFeesTotal?: number;
537
+ modifiersTotal?: number;
538
+ taxableModifiersTotal?: number;
539
+ nonTaxableModifiersTotal?: number;
521
540
  totalTaxableSales?: number;
522
541
  totalNonTaxableSales?: number;
523
542
  tipTotal?: number;
@@ -1055,24 +1074,6 @@ interface TaxTable extends BaseEntity {
1055
1074
  isStandard?: boolean;
1056
1075
  }
1057
1076
 
1058
- type TimeClockEntryStatus = 'open' | 'on-break' | 'completed';
1059
- interface TimeClockEntry extends BaseEntity {
1060
- organizationId: string;
1061
- employeeId: string;
1062
- employeeName: string;
1063
- outletId: string;
1064
- outletName: string;
1065
- clockInStationId: string;
1066
- clockInStationName: string;
1067
- clockOutStationId?: string;
1068
- clockOutStationName?: string;
1069
- clockInTime: string;
1070
- clockOutTime?: string;
1071
- breakStartedAt?: string | null;
1072
- totalBreakMinutes: number;
1073
- status: TimeClockEntryStatus;
1074
- }
1075
-
1076
1077
  interface User extends BaseDocument {
1077
1078
  accountId?: string;
1078
1079
  companies: string[];
@@ -1348,6 +1349,7 @@ interface LineItem {
1348
1349
  taxes: Tax[];
1349
1350
  discount: DiscountLineItem;
1350
1351
  fee: FeeLineItem;
1352
+ modifiers?: OrderLineItemModifier[];
1351
1353
  totalTax: number;
1352
1354
  total: number;
1353
1355
  lineNetWithFees: number;
@@ -1421,6 +1423,9 @@ interface Summary {
1421
1423
  cartFeesTotal?: number;
1422
1424
  taxableFeesTotal?: number;
1423
1425
  nonTaxableFeesTotal?: number;
1426
+ modifiersTotal?: number;
1427
+ taxableModifiersTotal?: number;
1428
+ nonTaxableModifiersTotal?: number;
1424
1429
  totalTaxableSales?: number;
1425
1430
  totalNonTaxableSales?: number;
1426
1431
  tipTotal?: number;
@@ -1456,6 +1461,7 @@ interface RefundedLineItem {
1456
1461
  description?: string;
1457
1462
  images?: string[];
1458
1463
  fee: FeeLineItem;
1464
+ modifiers?: OrderLineItemModifier[];
1459
1465
  }
1460
1466
  interface RefundItem {
1461
1467
  lineItems: RefundedLineItem[];
@@ -1507,6 +1513,47 @@ type ActiveOrder = Enrich<Order, {
1507
1513
  station?: ActiveStation;
1508
1514
  }>;
1509
1515
 
1516
+ type ModifierSelectionType = 'single' | 'multiple' | 'quantity';
1517
+ interface ResolvedModifierChoice {
1518
+ _id: string;
1519
+ name: string;
1520
+ price: number;
1521
+ isDefault?: boolean;
1522
+ defaultQuantity?: number;
1523
+ unavailableOutletIds?: string[];
1524
+ sortOrder: number;
1525
+ }
1526
+ interface ResolvedModifier {
1527
+ _id: string;
1528
+ name: string;
1529
+ selectionType: ModifierSelectionType;
1530
+ allowQuantity?: boolean;
1531
+ required: boolean;
1532
+ min?: number | null;
1533
+ max?: number | null;
1534
+ sortOrder: number;
1535
+ choices: ResolvedModifierChoice[];
1536
+ }
1537
+ interface ModifierChoiceSelection {
1538
+ choiceId: string;
1539
+ quantity: number;
1540
+ }
1541
+ interface ModifierSelection {
1542
+ modifierId: string;
1543
+ choices: ModifierChoiceSelection[];
1544
+ }
1545
+ interface CartLineModifier {
1546
+ modifierId: string;
1547
+ modifierName: string;
1548
+ choiceId: string;
1549
+ choiceName: string;
1550
+ label?: string;
1551
+ unitPrice: number;
1552
+ quantity: number;
1553
+ taxTableId?: string;
1554
+ taxRateId?: string;
1555
+ }
1556
+
1510
1557
  interface Discount {
1511
1558
  value: number;
1512
1559
  label?: string;
@@ -1554,6 +1601,8 @@ interface ActiveProduct {
1554
1601
  stock: number;
1555
1602
  allowBackOrder?: boolean;
1556
1603
  fees?: CustomFee[];
1604
+ modifierSelections?: ModifierSelection[];
1605
+ modifiers?: CartLineModifier[];
1557
1606
  currency?: CurrencyCode;
1558
1607
  minorUnits?: number;
1559
1608
  isUnlimited?: boolean;
@@ -1676,6 +1725,7 @@ interface FullProduct {
1676
1725
  sku?: string;
1677
1726
  productType: ProductType;
1678
1727
  variants: ProductVariant[];
1728
+ modifiers?: ResolvedModifier[];
1679
1729
  minPrice?: number;
1680
1730
  maxPrice?: number;
1681
1731
  price?: number;
@@ -1717,8 +1767,7 @@ declare enum ProcessorType {
1717
1767
  CUSTOM_PAY = "CustomPay",
1718
1768
  VENDARA = "Vendara",
1719
1769
  REDEEM = "Redeem",
1720
- INTEGRATION = "Integration",
1721
- PAYMENT_LINK = "PaymentLink"
1770
+ INTEGRATION = "Integration"
1722
1771
  }
1723
1772
 
1724
1773
  interface PrinterDetails {
@@ -1840,6 +1889,20 @@ interface ProdFeeBreakdown {
1840
1889
  taxRateId?: string;
1841
1890
  applyTaxes: boolean;
1842
1891
  }
1892
+ interface ProdModifierBreakdown {
1893
+ modifierId: string;
1894
+ modifierName: string;
1895
+ choiceId: string;
1896
+ choiceName: string;
1897
+ label?: string;
1898
+ unitPrice: number;
1899
+ quantity: number;
1900
+ amount: number;
1901
+ tax: number;
1902
+ taxTableId?: string;
1903
+ taxRateId?: string;
1904
+ taxes?: OrderTax[];
1905
+ }
1843
1906
  interface ProductTaxDetails {
1844
1907
  tax: number;
1845
1908
  prodDiscount: number;
@@ -1868,6 +1931,9 @@ interface ProductTaxDetails {
1868
1931
  prodDiscounts?: ProdDiscountBreakdown[];
1869
1932
  fees?: ProdFeeBreakdown[];
1870
1933
  lineNetWithFees?: number;
1934
+ modifierDisplay?: number;
1935
+ modifierTax?: number;
1936
+ modifiers?: ProdModifierBreakdown[];
1871
1937
  }
1872
1938
  interface CustomSaleDetails {
1873
1939
  tax: number;
@@ -2085,10 +2151,6 @@ interface ReaderCapabilities {
2085
2151
  tapToPay: boolean;
2086
2152
  terminal: boolean;
2087
2153
  }
2088
- interface ReaderAvailability {
2089
- bluetooth: boolean;
2090
- unreferencedRefund?: boolean;
2091
- }
2092
2154
  type ServiceChannelMessageType = 'POSBRAIN_READY' | 'HOST_HELLO' | 'SERVICE_INIT' | 'BOOTSTRAP' | 'TOKEN_REFRESH' | 'SELECTION' | 'HOST_SHUTDOWN' | 'READER_CAPABILITIES' | 'RUNTIME_READY' | 'HOST_NAVIGATE' | 'SYNC_PROGRESS' | 'DEVICE_OP_REQUEST' | 'DEVICE_OP_RESPONSE' | 'PUBSUB_TOPICS_REQUEST' | 'PUBSUB_TOPICS_LIST' | 'PUBSUB_SUBSCRIBE' | 'PUBSUB_UNSUBSCRIBE' | 'PUBSUB_EVENT';
2093
2155
  interface PosBrainReadyMessage {
2094
2156
  type: 'POSBRAIN_READY';
@@ -2141,7 +2203,7 @@ interface SyncProgressMessage {
2141
2203
  pending: string[];
2142
2204
  done: boolean;
2143
2205
  }
2144
- type DeviceOpName = 'printImage' | 'printHTML' | 'printReceipt' | 'openCashDrawer' | 'captureCardPresent' | 'cancelCardPresent' | 'refundCardPresent' | 'readerAvailability';
2206
+ type DeviceOpName = 'printImage' | 'printHTML' | 'printReceipt' | 'openCashDrawer' | 'captureCardPresent' | 'cancelCardPresent' | 'refundCardPresent';
2145
2207
  interface DeviceOpRequestMessage {
2146
2208
  type: 'DEVICE_OP_REQUEST';
2147
2209
  id: string;
@@ -2154,7 +2216,6 @@ interface DeviceOpResponseMessage {
2154
2216
  ok: boolean;
2155
2217
  error?: string;
2156
2218
  data?: PaymentResponse;
2157
- readerAvailability?: ReaderAvailability;
2158
2219
  }
2159
2220
  interface TopicDefinitionWire {
2160
2221
  id: string;
@@ -2190,4 +2251,4 @@ interface PubsubEventMessage {
2190
2251
  }
2191
2252
  type ServiceChannelMessage = PosBrainReadyMessage | HostHelloMessage | ServiceInitMessage | BootstrapMessage | TokenRefreshMessage | SelectionMessage | HostShutdownMessage | ReaderCapabilitiesMessage | RuntimeReadyMessage | HostNavigateMessage | SyncProgressMessage | DeviceOpRequestMessage | DeviceOpResponseMessage | PubsubTopicsRequestMessage | PubsubTopicsListMessage | PubsubSubscribeMessage | PubsubEventMessage;
2192
2253
 
2193
- export { type ActiveCart, type ActiveCartProduct, type ActiveCompany, type ActiveCustomSales, type ActiveCustomer, type ActiveEntityChanges, ActiveEntityType, type ActiveFullProduct, type ActiveOrder, type ActiveOutlet, type ActivePark, type ActiveProduct, type ActiveRefundOrder, type ActiveSession, type ActiveSplitPayment, type ActiveStation, type ActiveTaxDetails, type ActiveTimer, type ActiveUpdatedOrder, type ActiveUser, type ActiveUserRole, type Address, type Attribute, type AttributeEmbedded, type AttributeOption, type BaseDocument, type BaseEntity, type BaseTile, type BootstrapMessage, type CalculatedTaxDetails, type CartDiscountItem, type CartFeeItem, type CartFeeTaxEntry, type CartFeesDetails, type CashPaymentSettings, type CashRoundingIncrement, type Category, type CompanyExtension, type CompanySettingsEavValue, type CompanySettingsEavValueType, type CustomExtension, type CustomFee, type CustomSale, type CustomSaleDetails, type CustomTable, type CustomTableField, type CustomTableMetadata, type CustomTableRow, type CustomTableValue, type Customer, type CustomerNote, type DeviceEnvAttribute, type DeviceEnvCategory, type DeviceEnvValue, type DeviceOpName, type DeviceOpRequestMessage, type DeviceOpResponseMessage, type Discount, type DiscountDetail, type DiscountLineItem, type Enrich, EnvironmentDataKeys, EnvironmentDataSubKeys, type FeeDetail, type FeeLineItem, type Flow, type FlowSettings, type FlowSettingsKey, type FlowWebApp, type FlowWebAppVersion, type FullProduct, type HostHelloMessage, type HostNavigateMessage, type HostNavigateTarget, type HostShutdownMessage, type Inventory, type LineItem, type Metadata, type MetadataItem, type NonRevenueItem, type Note, type Order, type OrderCartDiscount, type OrderCartFee, type OrderCustomSale, type OrderCustomSaleDiscount, type OrderCustomSaleFee, type OrderLineItem, type OrderLineItemDiscount, type OrderLineItemFee, type OrderNote, type OrderPaymentMethod, type OrderPosData, type OrderRefund, type OrderRefundSummary, type OrderStateActor, type OrderStateActorType, type OrderStateConfig, type OrderStateEvent, type OrderStateEventTrigger, type OrderStateHistoryEntry, type OrderStateOperation, type OrderStatePair, type OrderSummary, type OrderSummaryPayments, type OrderTax, type OrderTip, type Outlet, type PaymentMethod, type PaymentResponse, type PaymentSetting, PaymentStatus, type PosBrainReadyMessage, type PosDataItem, type PriceModifierDetail, type PrinterDetails, ProcessorType, type ProdDiscountBreakdown, type ProdFeeBreakdown, type Product, type ProductTaxDetails, type ProductVariant, type PubsubEventMessage, type PubsubSubscribeMessage, type PubsubTopicsListMessage, type PubsubTopicsRequestMessage, type Reader, type ReaderAvailability, type ReaderCapabilities, type ReaderCapabilitiesMessage, type Refund, type RefundCartDiscount, type RefundDiscount, type RefundItem, type RefundItemDiscount, type RefundLineItem, type RefundPayment, type RefundProcessingStatus, type RefundSummary, type RefundTip, type RefundedCustomSale, type RefundedLineItem, type RefundedTipPayment, type Role, type RolePermission, type RuntimeReadyMessage, type SelectionContext, type SelectionFlowContext, type SelectionMessage, type SelectionRoleContext, type ServiceChannelMessage, type ServiceChannelMessageType, type ServiceInitMessage, type Session, type SessionClosingAmounts, type SmartGridSetting, type SmartGridSettings, type SmartGridSettingsData, type Station, type StripeAccount, type Summary, type SummaryPayments, type SyncProgressMessage, type Tax, type TaxRate, type TaxRateValue, type TaxTable, type TaxTableActive, type TaxTableRate, type TileGrid, type TimeClockEntry, type TimeClockEntryStatus, type Tip, type TipData, type TipPayment, type TipsDetails, type TokenRefreshMessage, type TopicDefinitionWire, type TopicEventWire, type Transaction, type TransactionPaymentData, type User, type UserType, type Variant, type VariantInventory };
2254
+ export { type ActiveCart, type ActiveCartProduct, type ActiveCompany, type ActiveCustomSales, type ActiveCustomer, type ActiveEntityChanges, ActiveEntityType, type ActiveFullProduct, type ActiveOrder, type ActiveOutlet, type ActivePark, type ActiveProduct, type ActiveRefundOrder, type ActiveSession, type ActiveSplitPayment, type ActiveStation, type ActiveTaxDetails, type ActiveTimer, type ActiveUpdatedOrder, type ActiveUser, type ActiveUserRole, type Address, type Attribute, type AttributeEmbedded, type AttributeOption, type BaseDocument, type BaseEntity, type BaseTile, type BootstrapMessage, type CalculatedTaxDetails, type CartDiscountItem, type CartFeeItem, type CartFeeTaxEntry, type CartFeesDetails, type CartLineModifier, type CashPaymentSettings, type CashRoundingIncrement, type Category, type CompanyExtension, type CompanySettingsEavValue, type CompanySettingsEavValueType, type CustomExtension, type CustomFee, type CustomSale, type CustomSaleDetails, type CustomTable, type CustomTableField, type CustomTableMetadata, type CustomTableRow, type CustomTableValue, type Customer, type CustomerNote, type DeviceEnvAttribute, type DeviceEnvCategory, type DeviceEnvValue, type DeviceOpName, type DeviceOpRequestMessage, type DeviceOpResponseMessage, type Discount, type DiscountDetail, type DiscountLineItem, type Enrich, EnvironmentDataKeys, EnvironmentDataSubKeys, type FeeDetail, type FeeLineItem, type Flow, type FlowSettings, type FlowSettingsKey, type FlowWebApp, type FlowWebAppVersion, type FullProduct, type HostHelloMessage, type HostNavigateMessage, type HostNavigateTarget, type HostShutdownMessage, type Inventory, type LineItem, type Metadata, type MetadataItem, type ModifierChoiceSelection, type ModifierSelection, type ModifierSelectionType, type NonRevenueItem, type Note, type Order, type OrderCartDiscount, type OrderCartFee, type OrderCustomSale, type OrderCustomSaleDiscount, type OrderCustomSaleFee, type OrderLineItem, type OrderLineItemDiscount, type OrderLineItemFee, type OrderLineItemModifier, type OrderNote, type OrderPaymentMethod, type OrderPosData, type OrderRefund, type OrderRefundSummary, type OrderStateActor, type OrderStateActorType, type OrderStateConfig, type OrderStateEvent, type OrderStateEventTrigger, type OrderStateHistoryEntry, type OrderStateOperation, type OrderStatePair, type OrderSummary, type OrderSummaryPayments, type OrderTax, type OrderTip, type Outlet, type PaymentMethod, type PaymentResponse, type PaymentSetting, PaymentStatus, type PosBrainReadyMessage, type PosDataItem, type PriceModifierDetail, type PrinterDetails, ProcessorType, type ProdDiscountBreakdown, type ProdFeeBreakdown, type ProdModifierBreakdown, type Product, type ProductTaxDetails, type ProductVariant, type PubsubEventMessage, type PubsubSubscribeMessage, type PubsubTopicsListMessage, type PubsubTopicsRequestMessage, type Reader, type ReaderCapabilities, type ReaderCapabilitiesMessage, type Refund, type RefundCartDiscount, type RefundDiscount, type RefundItem, type RefundItemDiscount, type RefundLineItem, type RefundPayment, type RefundProcessingStatus, type RefundSummary, type RefundTip, type RefundedCustomSale, type RefundedLineItem, type RefundedTipPayment, type ResolvedModifier, type ResolvedModifierChoice, type Role, type RolePermission, type RuntimeReadyMessage, type SelectionContext, type SelectionFlowContext, type SelectionMessage, type SelectionRoleContext, type ServiceChannelMessage, type ServiceChannelMessageType, type ServiceInitMessage, type Session, type SessionClosingAmounts, type SmartGridSetting, type SmartGridSettings, type SmartGridSettingsData, type Station, type StripeAccount, type Summary, type SummaryPayments, type SyncProgressMessage, type Tax, type TaxRate, type TaxRateValue, type TaxTable, type TaxTableActive, type TaxTableRate, type TileGrid, type Tip, type TipData, type TipPayment, type TipsDetails, type TokenRefreshMessage, type TopicDefinitionWire, type TopicEventWire, type Transaction, type TransactionPaymentData, type User, type UserType, type Variant, type VariantInventory };
@@ -78,6 +78,9 @@ interface OrderSummary {
78
78
  cartFeesTotal?: number;
79
79
  taxableFeesTotal?: number;
80
80
  nonTaxableFeesTotal?: number;
81
+ modifiersTotal?: number;
82
+ taxableModifiersTotal?: number;
83
+ nonTaxableModifiersTotal?: number;
81
84
  totalTaxableSales?: number;
82
85
  totalNonTaxableSales?: number;
83
86
  tipTotal?: number;
@@ -143,6 +146,17 @@ interface OrderLineItemFee {
143
146
  cartFee?: PriceModifierDetail;
144
147
  itemFees?: PriceModifierDetail[];
145
148
  }
149
+ interface OrderLineItemModifier {
150
+ modifierId: string;
151
+ modifierName: string;
152
+ choiceId: string;
153
+ choiceName: string;
154
+ unitPrice: number;
155
+ quantity: number;
156
+ total: number;
157
+ totalTax?: number;
158
+ taxes?: OrderTax[];
159
+ }
146
160
  interface OrderLineItem {
147
161
  id?: string;
148
162
  productId?: string;
@@ -165,6 +179,7 @@ interface OrderLineItem {
165
179
  taxes?: OrderTax[];
166
180
  discount?: OrderLineItemDiscount;
167
181
  fee?: OrderLineItemFee;
182
+ modifiers?: OrderLineItemModifier[];
168
183
  lineNetWithFees?: number;
169
184
  metadata?: Metadata[];
170
185
  stock?: number;
@@ -459,6 +474,7 @@ interface RefundLineItem {
459
474
  taxes?: OrderTax[];
460
475
  discount?: RefundDiscount;
461
476
  fee?: OrderLineItemFee;
477
+ modifiers?: OrderLineItemModifier[];
462
478
  lineNetWithFees?: number;
463
479
  quantity?: number;
464
480
  stockQuantity?: number;
@@ -518,6 +534,9 @@ interface RefundSummary {
518
534
  cartFeesTotal?: number;
519
535
  taxableFeesTotal?: number;
520
536
  nonTaxableFeesTotal?: number;
537
+ modifiersTotal?: number;
538
+ taxableModifiersTotal?: number;
539
+ nonTaxableModifiersTotal?: number;
521
540
  totalTaxableSales?: number;
522
541
  totalNonTaxableSales?: number;
523
542
  tipTotal?: number;
@@ -1055,24 +1074,6 @@ interface TaxTable extends BaseEntity {
1055
1074
  isStandard?: boolean;
1056
1075
  }
1057
1076
 
1058
- type TimeClockEntryStatus = 'open' | 'on-break' | 'completed';
1059
- interface TimeClockEntry extends BaseEntity {
1060
- organizationId: string;
1061
- employeeId: string;
1062
- employeeName: string;
1063
- outletId: string;
1064
- outletName: string;
1065
- clockInStationId: string;
1066
- clockInStationName: string;
1067
- clockOutStationId?: string;
1068
- clockOutStationName?: string;
1069
- clockInTime: string;
1070
- clockOutTime?: string;
1071
- breakStartedAt?: string | null;
1072
- totalBreakMinutes: number;
1073
- status: TimeClockEntryStatus;
1074
- }
1075
-
1076
1077
  interface User extends BaseDocument {
1077
1078
  accountId?: string;
1078
1079
  companies: string[];
@@ -1348,6 +1349,7 @@ interface LineItem {
1348
1349
  taxes: Tax[];
1349
1350
  discount: DiscountLineItem;
1350
1351
  fee: FeeLineItem;
1352
+ modifiers?: OrderLineItemModifier[];
1351
1353
  totalTax: number;
1352
1354
  total: number;
1353
1355
  lineNetWithFees: number;
@@ -1421,6 +1423,9 @@ interface Summary {
1421
1423
  cartFeesTotal?: number;
1422
1424
  taxableFeesTotal?: number;
1423
1425
  nonTaxableFeesTotal?: number;
1426
+ modifiersTotal?: number;
1427
+ taxableModifiersTotal?: number;
1428
+ nonTaxableModifiersTotal?: number;
1424
1429
  totalTaxableSales?: number;
1425
1430
  totalNonTaxableSales?: number;
1426
1431
  tipTotal?: number;
@@ -1456,6 +1461,7 @@ interface RefundedLineItem {
1456
1461
  description?: string;
1457
1462
  images?: string[];
1458
1463
  fee: FeeLineItem;
1464
+ modifiers?: OrderLineItemModifier[];
1459
1465
  }
1460
1466
  interface RefundItem {
1461
1467
  lineItems: RefundedLineItem[];
@@ -1507,6 +1513,47 @@ type ActiveOrder = Enrich<Order, {
1507
1513
  station?: ActiveStation;
1508
1514
  }>;
1509
1515
 
1516
+ type ModifierSelectionType = 'single' | 'multiple' | 'quantity';
1517
+ interface ResolvedModifierChoice {
1518
+ _id: string;
1519
+ name: string;
1520
+ price: number;
1521
+ isDefault?: boolean;
1522
+ defaultQuantity?: number;
1523
+ unavailableOutletIds?: string[];
1524
+ sortOrder: number;
1525
+ }
1526
+ interface ResolvedModifier {
1527
+ _id: string;
1528
+ name: string;
1529
+ selectionType: ModifierSelectionType;
1530
+ allowQuantity?: boolean;
1531
+ required: boolean;
1532
+ min?: number | null;
1533
+ max?: number | null;
1534
+ sortOrder: number;
1535
+ choices: ResolvedModifierChoice[];
1536
+ }
1537
+ interface ModifierChoiceSelection {
1538
+ choiceId: string;
1539
+ quantity: number;
1540
+ }
1541
+ interface ModifierSelection {
1542
+ modifierId: string;
1543
+ choices: ModifierChoiceSelection[];
1544
+ }
1545
+ interface CartLineModifier {
1546
+ modifierId: string;
1547
+ modifierName: string;
1548
+ choiceId: string;
1549
+ choiceName: string;
1550
+ label?: string;
1551
+ unitPrice: number;
1552
+ quantity: number;
1553
+ taxTableId?: string;
1554
+ taxRateId?: string;
1555
+ }
1556
+
1510
1557
  interface Discount {
1511
1558
  value: number;
1512
1559
  label?: string;
@@ -1554,6 +1601,8 @@ interface ActiveProduct {
1554
1601
  stock: number;
1555
1602
  allowBackOrder?: boolean;
1556
1603
  fees?: CustomFee[];
1604
+ modifierSelections?: ModifierSelection[];
1605
+ modifiers?: CartLineModifier[];
1557
1606
  currency?: CurrencyCode;
1558
1607
  minorUnits?: number;
1559
1608
  isUnlimited?: boolean;
@@ -1676,6 +1725,7 @@ interface FullProduct {
1676
1725
  sku?: string;
1677
1726
  productType: ProductType;
1678
1727
  variants: ProductVariant[];
1728
+ modifiers?: ResolvedModifier[];
1679
1729
  minPrice?: number;
1680
1730
  maxPrice?: number;
1681
1731
  price?: number;
@@ -1717,8 +1767,7 @@ declare enum ProcessorType {
1717
1767
  CUSTOM_PAY = "CustomPay",
1718
1768
  VENDARA = "Vendara",
1719
1769
  REDEEM = "Redeem",
1720
- INTEGRATION = "Integration",
1721
- PAYMENT_LINK = "PaymentLink"
1770
+ INTEGRATION = "Integration"
1722
1771
  }
1723
1772
 
1724
1773
  interface PrinterDetails {
@@ -1840,6 +1889,20 @@ interface ProdFeeBreakdown {
1840
1889
  taxRateId?: string;
1841
1890
  applyTaxes: boolean;
1842
1891
  }
1892
+ interface ProdModifierBreakdown {
1893
+ modifierId: string;
1894
+ modifierName: string;
1895
+ choiceId: string;
1896
+ choiceName: string;
1897
+ label?: string;
1898
+ unitPrice: number;
1899
+ quantity: number;
1900
+ amount: number;
1901
+ tax: number;
1902
+ taxTableId?: string;
1903
+ taxRateId?: string;
1904
+ taxes?: OrderTax[];
1905
+ }
1843
1906
  interface ProductTaxDetails {
1844
1907
  tax: number;
1845
1908
  prodDiscount: number;
@@ -1868,6 +1931,9 @@ interface ProductTaxDetails {
1868
1931
  prodDiscounts?: ProdDiscountBreakdown[];
1869
1932
  fees?: ProdFeeBreakdown[];
1870
1933
  lineNetWithFees?: number;
1934
+ modifierDisplay?: number;
1935
+ modifierTax?: number;
1936
+ modifiers?: ProdModifierBreakdown[];
1871
1937
  }
1872
1938
  interface CustomSaleDetails {
1873
1939
  tax: number;
@@ -2085,10 +2151,6 @@ interface ReaderCapabilities {
2085
2151
  tapToPay: boolean;
2086
2152
  terminal: boolean;
2087
2153
  }
2088
- interface ReaderAvailability {
2089
- bluetooth: boolean;
2090
- unreferencedRefund?: boolean;
2091
- }
2092
2154
  type ServiceChannelMessageType = 'POSBRAIN_READY' | 'HOST_HELLO' | 'SERVICE_INIT' | 'BOOTSTRAP' | 'TOKEN_REFRESH' | 'SELECTION' | 'HOST_SHUTDOWN' | 'READER_CAPABILITIES' | 'RUNTIME_READY' | 'HOST_NAVIGATE' | 'SYNC_PROGRESS' | 'DEVICE_OP_REQUEST' | 'DEVICE_OP_RESPONSE' | 'PUBSUB_TOPICS_REQUEST' | 'PUBSUB_TOPICS_LIST' | 'PUBSUB_SUBSCRIBE' | 'PUBSUB_UNSUBSCRIBE' | 'PUBSUB_EVENT';
2093
2155
  interface PosBrainReadyMessage {
2094
2156
  type: 'POSBRAIN_READY';
@@ -2141,7 +2203,7 @@ interface SyncProgressMessage {
2141
2203
  pending: string[];
2142
2204
  done: boolean;
2143
2205
  }
2144
- type DeviceOpName = 'printImage' | 'printHTML' | 'printReceipt' | 'openCashDrawer' | 'captureCardPresent' | 'cancelCardPresent' | 'refundCardPresent' | 'readerAvailability';
2206
+ type DeviceOpName = 'printImage' | 'printHTML' | 'printReceipt' | 'openCashDrawer' | 'captureCardPresent' | 'cancelCardPresent' | 'refundCardPresent';
2145
2207
  interface DeviceOpRequestMessage {
2146
2208
  type: 'DEVICE_OP_REQUEST';
2147
2209
  id: string;
@@ -2154,7 +2216,6 @@ interface DeviceOpResponseMessage {
2154
2216
  ok: boolean;
2155
2217
  error?: string;
2156
2218
  data?: PaymentResponse;
2157
- readerAvailability?: ReaderAvailability;
2158
2219
  }
2159
2220
  interface TopicDefinitionWire {
2160
2221
  id: string;
@@ -2190,4 +2251,4 @@ interface PubsubEventMessage {
2190
2251
  }
2191
2252
  type ServiceChannelMessage = PosBrainReadyMessage | HostHelloMessage | ServiceInitMessage | BootstrapMessage | TokenRefreshMessage | SelectionMessage | HostShutdownMessage | ReaderCapabilitiesMessage | RuntimeReadyMessage | HostNavigateMessage | SyncProgressMessage | DeviceOpRequestMessage | DeviceOpResponseMessage | PubsubTopicsRequestMessage | PubsubTopicsListMessage | PubsubSubscribeMessage | PubsubEventMessage;
2192
2253
 
2193
- export { type ActiveCart, type ActiveCartProduct, type ActiveCompany, type ActiveCustomSales, type ActiveCustomer, type ActiveEntityChanges, ActiveEntityType, type ActiveFullProduct, type ActiveOrder, type ActiveOutlet, type ActivePark, type ActiveProduct, type ActiveRefundOrder, type ActiveSession, type ActiveSplitPayment, type ActiveStation, type ActiveTaxDetails, type ActiveTimer, type ActiveUpdatedOrder, type ActiveUser, type ActiveUserRole, type Address, type Attribute, type AttributeEmbedded, type AttributeOption, type BaseDocument, type BaseEntity, type BaseTile, type BootstrapMessage, type CalculatedTaxDetails, type CartDiscountItem, type CartFeeItem, type CartFeeTaxEntry, type CartFeesDetails, type CashPaymentSettings, type CashRoundingIncrement, type Category, type CompanyExtension, type CompanySettingsEavValue, type CompanySettingsEavValueType, type CustomExtension, type CustomFee, type CustomSale, type CustomSaleDetails, type CustomTable, type CustomTableField, type CustomTableMetadata, type CustomTableRow, type CustomTableValue, type Customer, type CustomerNote, type DeviceEnvAttribute, type DeviceEnvCategory, type DeviceEnvValue, type DeviceOpName, type DeviceOpRequestMessage, type DeviceOpResponseMessage, type Discount, type DiscountDetail, type DiscountLineItem, type Enrich, EnvironmentDataKeys, EnvironmentDataSubKeys, type FeeDetail, type FeeLineItem, type Flow, type FlowSettings, type FlowSettingsKey, type FlowWebApp, type FlowWebAppVersion, type FullProduct, type HostHelloMessage, type HostNavigateMessage, type HostNavigateTarget, type HostShutdownMessage, type Inventory, type LineItem, type Metadata, type MetadataItem, type NonRevenueItem, type Note, type Order, type OrderCartDiscount, type OrderCartFee, type OrderCustomSale, type OrderCustomSaleDiscount, type OrderCustomSaleFee, type OrderLineItem, type OrderLineItemDiscount, type OrderLineItemFee, type OrderNote, type OrderPaymentMethod, type OrderPosData, type OrderRefund, type OrderRefundSummary, type OrderStateActor, type OrderStateActorType, type OrderStateConfig, type OrderStateEvent, type OrderStateEventTrigger, type OrderStateHistoryEntry, type OrderStateOperation, type OrderStatePair, type OrderSummary, type OrderSummaryPayments, type OrderTax, type OrderTip, type Outlet, type PaymentMethod, type PaymentResponse, type PaymentSetting, PaymentStatus, type PosBrainReadyMessage, type PosDataItem, type PriceModifierDetail, type PrinterDetails, ProcessorType, type ProdDiscountBreakdown, type ProdFeeBreakdown, type Product, type ProductTaxDetails, type ProductVariant, type PubsubEventMessage, type PubsubSubscribeMessage, type PubsubTopicsListMessage, type PubsubTopicsRequestMessage, type Reader, type ReaderAvailability, type ReaderCapabilities, type ReaderCapabilitiesMessage, type Refund, type RefundCartDiscount, type RefundDiscount, type RefundItem, type RefundItemDiscount, type RefundLineItem, type RefundPayment, type RefundProcessingStatus, type RefundSummary, type RefundTip, type RefundedCustomSale, type RefundedLineItem, type RefundedTipPayment, type Role, type RolePermission, type RuntimeReadyMessage, type SelectionContext, type SelectionFlowContext, type SelectionMessage, type SelectionRoleContext, type ServiceChannelMessage, type ServiceChannelMessageType, type ServiceInitMessage, type Session, type SessionClosingAmounts, type SmartGridSetting, type SmartGridSettings, type SmartGridSettingsData, type Station, type StripeAccount, type Summary, type SummaryPayments, type SyncProgressMessage, type Tax, type TaxRate, type TaxRateValue, type TaxTable, type TaxTableActive, type TaxTableRate, type TileGrid, type TimeClockEntry, type TimeClockEntryStatus, type Tip, type TipData, type TipPayment, type TipsDetails, type TokenRefreshMessage, type TopicDefinitionWire, type TopicEventWire, type Transaction, type TransactionPaymentData, type User, type UserType, type Variant, type VariantInventory };
2254
+ export { type ActiveCart, type ActiveCartProduct, type ActiveCompany, type ActiveCustomSales, type ActiveCustomer, type ActiveEntityChanges, ActiveEntityType, type ActiveFullProduct, type ActiveOrder, type ActiveOutlet, type ActivePark, type ActiveProduct, type ActiveRefundOrder, type ActiveSession, type ActiveSplitPayment, type ActiveStation, type ActiveTaxDetails, type ActiveTimer, type ActiveUpdatedOrder, type ActiveUser, type ActiveUserRole, type Address, type Attribute, type AttributeEmbedded, type AttributeOption, type BaseDocument, type BaseEntity, type BaseTile, type BootstrapMessage, type CalculatedTaxDetails, type CartDiscountItem, type CartFeeItem, type CartFeeTaxEntry, type CartFeesDetails, type CartLineModifier, type CashPaymentSettings, type CashRoundingIncrement, type Category, type CompanyExtension, type CompanySettingsEavValue, type CompanySettingsEavValueType, type CustomExtension, type CustomFee, type CustomSale, type CustomSaleDetails, type CustomTable, type CustomTableField, type CustomTableMetadata, type CustomTableRow, type CustomTableValue, type Customer, type CustomerNote, type DeviceEnvAttribute, type DeviceEnvCategory, type DeviceEnvValue, type DeviceOpName, type DeviceOpRequestMessage, type DeviceOpResponseMessage, type Discount, type DiscountDetail, type DiscountLineItem, type Enrich, EnvironmentDataKeys, EnvironmentDataSubKeys, type FeeDetail, type FeeLineItem, type Flow, type FlowSettings, type FlowSettingsKey, type FlowWebApp, type FlowWebAppVersion, type FullProduct, type HostHelloMessage, type HostNavigateMessage, type HostNavigateTarget, type HostShutdownMessage, type Inventory, type LineItem, type Metadata, type MetadataItem, type ModifierChoiceSelection, type ModifierSelection, type ModifierSelectionType, type NonRevenueItem, type Note, type Order, type OrderCartDiscount, type OrderCartFee, type OrderCustomSale, type OrderCustomSaleDiscount, type OrderCustomSaleFee, type OrderLineItem, type OrderLineItemDiscount, type OrderLineItemFee, type OrderLineItemModifier, type OrderNote, type OrderPaymentMethod, type OrderPosData, type OrderRefund, type OrderRefundSummary, type OrderStateActor, type OrderStateActorType, type OrderStateConfig, type OrderStateEvent, type OrderStateEventTrigger, type OrderStateHistoryEntry, type OrderStateOperation, type OrderStatePair, type OrderSummary, type OrderSummaryPayments, type OrderTax, type OrderTip, type Outlet, type PaymentMethod, type PaymentResponse, type PaymentSetting, PaymentStatus, type PosBrainReadyMessage, type PosDataItem, type PriceModifierDetail, type PrinterDetails, ProcessorType, type ProdDiscountBreakdown, type ProdFeeBreakdown, type ProdModifierBreakdown, type Product, type ProductTaxDetails, type ProductVariant, type PubsubEventMessage, type PubsubSubscribeMessage, type PubsubTopicsListMessage, type PubsubTopicsRequestMessage, type Reader, type ReaderCapabilities, type ReaderCapabilitiesMessage, type Refund, type RefundCartDiscount, type RefundDiscount, type RefundItem, type RefundItemDiscount, type RefundLineItem, type RefundPayment, type RefundProcessingStatus, type RefundSummary, type RefundTip, type RefundedCustomSale, type RefundedLineItem, type RefundedTipPayment, type ResolvedModifier, type ResolvedModifierChoice, type Role, type RolePermission, type RuntimeReadyMessage, type SelectionContext, type SelectionFlowContext, type SelectionMessage, type SelectionRoleContext, type ServiceChannelMessage, type ServiceChannelMessageType, type ServiceInitMessage, type Session, type SessionClosingAmounts, type SmartGridSetting, type SmartGridSettings, type SmartGridSettingsData, type Station, type StripeAccount, type Summary, type SummaryPayments, type SyncProgressMessage, type Tax, type TaxRate, type TaxRateValue, type TaxTable, type TaxTableActive, type TaxTableRate, type TileGrid, type Tip, type TipData, type TipPayment, type TipsDetails, type TokenRefreshMessage, type TopicDefinitionWire, type TopicEventWire, type Transaction, type TransactionPaymentData, type User, type UserType, type Variant, type VariantInventory };
@@ -48,7 +48,6 @@ var ProcessorType = /* @__PURE__ */ ((ProcessorType2) => {
48
48
  ProcessorType2["VENDARA"] = "Vendara";
49
49
  ProcessorType2["REDEEM"] = "Redeem";
50
50
  ProcessorType2["INTEGRATION"] = "Integration";
51
- ProcessorType2["PAYMENT_LINK"] = "PaymentLink";
52
51
  return ProcessorType2;
53
52
  })(ProcessorType || {});
54
53
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../pos-types/index.ts","../../pos-types/active/PaymentStatus.ts","../../pos-types/active/ProcessorType.ts","../../pos-types/active/pos-runtime.ts"],"sourcesContent":["// @final-commerce/common/pos-types\n//\n// Public POS contract types for Final Commerce terminals — consumed by render\n// and command-frame. These mirror the public (wire) subset of data-layer's\n// Mongoose schemas (option D: manually mirrored, no data-layer dependency),\n// public-scrubbed: `_id`→`id`, `__v`/`_class`/`isDeleted` omitted, ObjectId\n// refs stringified, dates as ISO 8601 strings, secrets dropped.\n//\n// Shared primitives (CurrencyCode and the other enums, the order-state-machine\n// engine types) live elsewhere in this package — import them from\n// `@final-commerce/common` directly.\n\n// Type-level helpers (e.g. `Enrich` — builds Active* types from wire bases).\nexport type { Enrich } from './util';\n\n// Public bases for entities (BaseDocument = no companyId; BaseEntity adds it).\nexport type { BaseDocument, BaseEntity } from './base';\n\n// Embedded sub-document shapes.\nexport * from './embedded';\n\n// Entity shapes (wire).\nexport * from './entities';\n\n// Enriched (Render in-memory) `Active*` layer.\nexport * from './active';\n\n// Seam contract — the frozen station-home (HOST) ↔ pos-brain (runtime)\n// interface: selection-context snapshot + ServiceChannel message union.\nexport * from './seam';\n","export enum PaymentStatus {\n FAILED = 'failed',\n SUCCESS = 'success',\n CANCELED = 'canceled',\n IN_PROGRESS = 'inProgress',\n}\n","// Payment processor / tender type for a POS payment. Shared by Render and\n// command-frame; the string values are the wire contract used by orders.\nexport enum ProcessorType {\n FINAL_PAY = 'Terminal',\n TAP_TO_PAY = 'TapToPay',\n MOTO = 'Moto',\n CLOUD = 'Cloud',\n /**\n * @deprecated No payment path stamps this. Bluetooth-reader sales stamp `FINAL_PAY`\n * ('Terminal') as their processor; station-home reuses this member only for the\n * unrelated reader-connectionType UI field, not for an order/payment record.\n */\n BLUETOOTH = 'Bluetooth',\n CASH = 'Cash',\n CUSTOM_PAY = 'CustomPay',\n VENDARA = 'Vendara',\n /** Extension-controlled payment (e.g. gift card redeem); order uses paymentType `redeem`. */\n REDEEM = 'Redeem',\n /** Extension-controlled integration (e.g. Stripe-like); order uses paymentType `integration`. */\n INTEGRATION = 'Integration',\n /**\n * Written by hub-api's payment-link settle as the payment method's processor label — the\n * channel (like Moto/Terminal/Cloud), not the PSP brand (that lives in `paymentData.processor`).\n * Card-not-present for receipt purposes.\n */\n PAYMENT_LINK = 'PaymentLink',\n}\n","// Render in-memory POS runtime support types (tax engine, tips, cash, active-entity discriminator, environment data, flow) — the PaymentStatus-dependent active types (ActiveSplitPayment/RefundProcessingStatus/ActiveRefundOrder) remain in Render until PaymentStatus moves.\n\nimport type { CartFeeTaxEntry } from './CartFee';\n\ninterface TaxesDetails {\n [id: string]: {\n amount: number;\n percentage: number;\n name: string;\n taxTableName: string;\n taxTableId: string;\n compounding?: boolean;\n priority?: number;\n };\n}\n\nexport interface ProdDiscountBreakdown {\n amount: number;\n percentage: number;\n label?: string;\n}\n\nexport interface ProdFeeBreakdown {\n amount: number;\n percentage: number;\n label?: string;\n tax: number;\n taxTableId?: string;\n taxRateId?: string;\n applyTaxes: boolean;\n}\n\nexport interface ProductTaxDetails {\n tax: number;\n prodDiscount: number;\n /** Line-level item discount in minor units (originalLineTotal − lineDisplayBase); drift-free, matches the value written to orders/refunds. */\n prodDiscountTotal: number;\n cartDiscount: number;\n prodDiscountPercentage: number;\n cartDiscountPercentage: number;\n taxes: TaxesDetails;\n fee?: number;\n feeTax?: number;\n feePercentage?: number;\n feeLabel?: string;\n cartFee?: number;\n cartFeeTax?: number;\n cartFeePercentage?: number;\n cartFeeLabel?: string;\n feeTaxTableId?: string;\n cartFeeTaxTableId?: string;\n prodDiscountLabel?: string;\n /** Staging: line total including fee for discount allocation */\n lineDisplayWithFee?: number;\n cartDiscountAllocated?: number;\n lineAfterCartDiscount?: number;\n computedLineTotal?: number;\n computedLineTax?: number;\n feeDisplay?: number;\n prodDiscounts?: ProdDiscountBreakdown[];\n fees?: ProdFeeBreakdown[];\n /** Staging: (price × qty) − sum(itemDiscounts) + sum(itemFees) */\n lineNetWithFees?: number;\n}\n\nexport interface CustomSaleDetails {\n tax: number;\n cartDiscount: number;\n cartDiscountPercentage: number;\n taxes: TaxesDetails;\n cartFee?: number;\n cartFeeTax?: number;\n cartFeePercentage?: number;\n cartFeeLabel?: string;\n cartFeeTaxTableId?: string;\n applyTaxes?: boolean;\n /** Staging: for discount allocation and order total */\n lineDisplayWithFee?: number;\n cartDiscountAllocated?: number;\n lineAfterCartDiscount?: number;\n computedLineTotal?: number;\n computedLineTax?: number;\n}\n\nexport interface CartFeesDetails {\n name: string;\n amount: number;\n percentage: number;\n feeTax: number;\n taxTableId: string;\n taxName: string;\n /** Per-rate breakdown (gst, hst, etc.) so order/refund summary can show correct amounts per rate. */\n taxes?: CartFeeTaxEntry[];\n}\n\nexport interface CalculatedTaxDetails {\n tax: number;\n total: number;\n subtotal: number;\n orderSubtotal: number;\n totalDiscount: number;\n /** Staging: cart discount amount and subtotal after discount */\n discountAmount?: number;\n subtotalAfterDiscount?: number;\n products: { [id: string]: ProductTaxDetails };\n customSales: { [id: string]: CustomSaleDetails };\n totalTaxes: TaxesDetails;\n cartFees: CartFeesDetails[];\n}\n\nexport interface TipData {\n value: number;\n label?: string;\n isPercent: boolean;\n}\n\nexport interface TipsDetails {\n total: number;\n tips: TipData[];\n currency?: string;\n noTipLabel?: string;\n customTipLabel?: string;\n selectedTip?: TipData;\n cashChange?: number;\n enabled?: boolean;\n}\n\nexport type CashRoundingIncrement = '' | '0.05' | '0.10' | '0.25' | '0.50' | '1.00';\n\nexport interface CashPaymentSettings {\n cashRounding: CashRoundingIncrement;\n}\n\nexport enum ActiveEntityType {\n TAX = 'tax',\n CART = 'cart',\n USER = 'user',\n ORDER = 'order',\n PRODUCT = 'product',\n FULL_PRODUCT = 'fullProduct',\n CUSTOMER = 'customer',\n OUTLET = 'outlet',\n CHANGES = 'changes',\n SPLIT_PAYMENT = 'splitPayment',\n CALCULATED_TAX = 'calculatedTaxDetails',\n TIPS_DETAILS = 'tipsDetails',\n CASH_PAYMENT_SETTINGS = 'cashPaymentSettings',\n REFUND_DETAILS = 'refundDetails',\n COMPANY = 'company',\n IS_AUTHENTICATED = 'isAuthenticated',\n TIMER = 'timer',\n UPDATED_ORDER_ACTIONS = 'updatedOrderActions', //FOR ORDER UPDATE VIA ACTION\n BUILD = 'activeBuild',\n BUILD_UPDATE_INFO = 'buildUpdateInfo',\n GLOBAL_BLOCKS = 'globalBlocks',\n ACTIVE_STATION = 'activeStation',\n SMART_GRID = 'smartGrid',\n CUSTOM_SALE = 'customSale',\n ACTIVE_FLOW = 'activeFlow',\n ACTIVE_FLOW_VERSION_URL = 'activeFlowVersionUrl',\n}\n\nexport enum EnvironmentDataKeys {\n NETWORK_INFO = 'Network Info',\n DISPLAY = 'Display',\n APP_INFO = 'App Info',\n LOCATION = 'Location',\n DEVICE_INFO = 'Device Info',\n SYSTEM_HEALTH = 'System Health',\n DEVELOPER = 'Developer',\n PERIPHERAL_DEVICES = 'Peripheral Devices',\n}\n\nexport enum EnvironmentDataSubKeys {\n DEVICE_STATUS = 'Device Status',\n LAST_ONLINE_TIME = 'Last Online Time',\n NETWORK_TYPE = 'Network Type',\n SIGNAL_STRENGTH = 'Signal Strength',\n NETWORK_NAME = 'Network name',\n IP_ADDRESS = 'IP Address',\n\n SCREEN_RESOLUTION = 'Screen Resolution',\n PIXEL_RATIO = 'Pixel Ratio',\n ORIENTATION = 'Orientation',\n\n APP_VERSION = 'App Version',\n BUILD_NUMBER = 'Build Number',\n BUNDLE_ID = 'Bundle ID',\n INSTALLED = 'Installed',\n LAST_UPDATED = 'Last Updated',\n\n LOCATION_ACCESS = 'Location Access',\n CURRENT_LOCATION = 'Current Location',\n\n MODEL = 'Model',\n SYSTEM_VERSION = 'System Version',\n FIRMWARE_VERSION = 'Firmware Version',\n SERIAL_NUMBER = 'Serial Number',\n IMEI_NUMBER = 'IMEI Number',\n MAC_ADDRESS = 'MAC Address',\n ACTIVATION_TIME = 'Activation Time',\n TIME_ZONE = 'Time Zone',\n DEVICE_LANGUAGE = 'Device Language',\n\n TOTAL_RAM = 'Total RAM',\n BATTERY_LEVEL = 'Battery Level',\n BATTERY_STATUS = 'Battery Status',\n LOW_POWER_MODE = 'Low Power Mode',\n AVERAGE_CPU_USAGE = 'Average CPU Usage',\n CPU_SPEED = 'CPU Speed',\n AVAILABLE_STORAGE = 'Available Storage',\n TOTAL_STORAGE = 'Total Storage',\n UPTIME = 'Uptime',\n\n FLUTTER_VERSION = 'Flutter Version',\n DART_VERSION = 'Dart Version',\n ENVIRONMENT = 'Environment',\n\n CONNECTED_PRINTER = 'Connected Printer',\n}\n\nexport interface ActiveTimer {\n initialTimer: string;\n currentTimer: string;\n}\n\nexport interface ActiveUpdatedOrder {\n customerNote?: string;\n status?: string;\n}\n\nexport interface TaxTableActive {\n name: string;\n country: string;\n postcode: string;\n rate: number;\n priority: number;\n compounding: boolean;\n id: string;\n taxTableName: string;\n taxTableId: string;\n}\n\nexport interface ActiveTaxDetails {\n taxIncl?: boolean;\n tables: { [name: string]: TaxTableActive[] };\n}\n\nexport interface ActiveEntityChanges {\n productInCart: string[] | null; //array of ids of product in cart\n numberOfProductsInCart: number;\n cartValue: number;\n user: string | null;\n customer: string | null;\n order: string | null;\n role: string | null;\n product: string | null;\n}\n\nexport interface Flow {\n _id: string;\n /**\n * Stable ObjectId hub-api keys FlowSettings / PaymentSettings under.\n * Set for AI flows resolved Miami-direct (station-home adapts the service\n * projection onto this shape); absent on regular flows, where `_id` is the\n * settings key. Settings lookups should key by `hubId ?? _id`.\n */\n hubId?: string;\n companyId: string;\n title: string;\n description: string;\n template: string;\n createdBy: string;\n flowData: Record<string, any>;\n isDeleted: boolean;\n createdAt: string;\n updatedAt: string;\n previewImage: string;\n currentVersion: string;\n webAppId: string;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAO,IAAK,gBAAL,kBAAKA,mBAAL;AACL,EAAAA,eAAA,YAAS;AACT,EAAAA,eAAA,aAAU;AACV,EAAAA,eAAA,cAAW;AACX,EAAAA,eAAA,iBAAc;AAJJ,SAAAA;AAAA,GAAA;;;ACEL,IAAK,gBAAL,kBAAKC,mBAAL;AACL,EAAAA,eAAA,eAAY;AACZ,EAAAA,eAAA,gBAAa;AACb,EAAAA,eAAA,UAAO;AACP,EAAAA,eAAA,WAAQ;AAMR,EAAAA,eAAA,eAAY;AACZ,EAAAA,eAAA,UAAO;AACP,EAAAA,eAAA,gBAAa;AACb,EAAAA,eAAA,aAAU;AAEV,EAAAA,eAAA,YAAS;AAET,EAAAA,eAAA,iBAAc;AAMd,EAAAA,eAAA,kBAAe;AAvBL,SAAAA;AAAA,GAAA;;;ACmIL,IAAK,mBAAL,kBAAKC,sBAAL;AACL,EAAAA,kBAAA,SAAM;AACN,EAAAA,kBAAA,UAAO;AACP,EAAAA,kBAAA,UAAO;AACP,EAAAA,kBAAA,WAAQ;AACR,EAAAA,kBAAA,aAAU;AACV,EAAAA,kBAAA,kBAAe;AACf,EAAAA,kBAAA,cAAW;AACX,EAAAA,kBAAA,YAAS;AACT,EAAAA,kBAAA,aAAU;AACV,EAAAA,kBAAA,mBAAgB;AAChB,EAAAA,kBAAA,oBAAiB;AACjB,EAAAA,kBAAA,kBAAe;AACf,EAAAA,kBAAA,2BAAwB;AACxB,EAAAA,kBAAA,oBAAiB;AACjB,EAAAA,kBAAA,aAAU;AACV,EAAAA,kBAAA,sBAAmB;AACnB,EAAAA,kBAAA,WAAQ;AACR,EAAAA,kBAAA,2BAAwB;AACxB,EAAAA,kBAAA,WAAQ;AACR,EAAAA,kBAAA,uBAAoB;AACpB,EAAAA,kBAAA,mBAAgB;AAChB,EAAAA,kBAAA,oBAAiB;AACjB,EAAAA,kBAAA,gBAAa;AACb,EAAAA,kBAAA,iBAAc;AACd,EAAAA,kBAAA,iBAAc;AACd,EAAAA,kBAAA,6BAA0B;AA1BhB,SAAAA;AAAA,GAAA;AA6BL,IAAK,sBAAL,kBAAKC,yBAAL;AACL,EAAAA,qBAAA,kBAAe;AACf,EAAAA,qBAAA,aAAU;AACV,EAAAA,qBAAA,cAAW;AACX,EAAAA,qBAAA,cAAW;AACX,EAAAA,qBAAA,iBAAc;AACd,EAAAA,qBAAA,mBAAgB;AAChB,EAAAA,qBAAA,eAAY;AACZ,EAAAA,qBAAA,wBAAqB;AARX,SAAAA;AAAA,GAAA;AAWL,IAAK,yBAAL,kBAAKC,4BAAL;AACL,EAAAA,wBAAA,mBAAgB;AAChB,EAAAA,wBAAA,sBAAmB;AACnB,EAAAA,wBAAA,kBAAe;AACf,EAAAA,wBAAA,qBAAkB;AAClB,EAAAA,wBAAA,kBAAe;AACf,EAAAA,wBAAA,gBAAa;AAEb,EAAAA,wBAAA,uBAAoB;AACpB,EAAAA,wBAAA,iBAAc;AACd,EAAAA,wBAAA,iBAAc;AAEd,EAAAA,wBAAA,iBAAc;AACd,EAAAA,wBAAA,kBAAe;AACf,EAAAA,wBAAA,eAAY;AACZ,EAAAA,wBAAA,eAAY;AACZ,EAAAA,wBAAA,kBAAe;AAEf,EAAAA,wBAAA,qBAAkB;AAClB,EAAAA,wBAAA,sBAAmB;AAEnB,EAAAA,wBAAA,WAAQ;AACR,EAAAA,wBAAA,oBAAiB;AACjB,EAAAA,wBAAA,sBAAmB;AACnB,EAAAA,wBAAA,mBAAgB;AAChB,EAAAA,wBAAA,iBAAc;AACd,EAAAA,wBAAA,iBAAc;AACd,EAAAA,wBAAA,qBAAkB;AAClB,EAAAA,wBAAA,eAAY;AACZ,EAAAA,wBAAA,qBAAkB;AAElB,EAAAA,wBAAA,eAAY;AACZ,EAAAA,wBAAA,mBAAgB;AAChB,EAAAA,wBAAA,oBAAiB;AACjB,EAAAA,wBAAA,oBAAiB;AACjB,EAAAA,wBAAA,uBAAoB;AACpB,EAAAA,wBAAA,eAAY;AACZ,EAAAA,wBAAA,uBAAoB;AACpB,EAAAA,wBAAA,mBAAgB;AAChB,EAAAA,wBAAA,YAAS;AAET,EAAAA,wBAAA,qBAAkB;AAClB,EAAAA,wBAAA,kBAAe;AACf,EAAAA,wBAAA,iBAAc;AAEd,EAAAA,wBAAA,uBAAoB;AA7CV,SAAAA;AAAA,GAAA;","names":["PaymentStatus","ProcessorType","ActiveEntityType","EnvironmentDataKeys","EnvironmentDataSubKeys"]}
1
+ {"version":3,"sources":["../../pos-types/index.ts","../../pos-types/active/PaymentStatus.ts","../../pos-types/active/ProcessorType.ts","../../pos-types/active/pos-runtime.ts"],"sourcesContent":["// @final-commerce/common/pos-types\n//\n// Public POS contract types for Final Commerce terminals — consumed by render\n// and command-frame. These mirror the public (wire) subset of data-layer's\n// Mongoose schemas (option D: manually mirrored, no data-layer dependency),\n// public-scrubbed: `_id`→`id`, `__v`/`_class`/`isDeleted` omitted, ObjectId\n// refs stringified, dates as ISO 8601 strings, secrets dropped.\n//\n// Shared primitives (CurrencyCode and the other enums, the order-state-machine\n// engine types) live elsewhere in this package — import them from\n// `@final-commerce/common` directly.\n\n// Type-level helpers (e.g. `Enrich` — builds Active* types from wire bases).\nexport type { Enrich } from './util';\n\n// Public bases for entities (BaseDocument = no companyId; BaseEntity adds it).\nexport type { BaseDocument, BaseEntity } from './base';\n\n// Embedded sub-document shapes.\nexport * from './embedded';\n\n// Entity shapes (wire).\nexport * from './entities';\n\n// Enriched (Render in-memory) `Active*` layer.\nexport * from './active';\n\n// Seam contract — the frozen station-home (HOST) ↔ pos-brain (runtime)\n// interface: selection-context snapshot + ServiceChannel message union.\nexport * from './seam';\n","export enum PaymentStatus {\n FAILED = 'failed',\n SUCCESS = 'success',\n CANCELED = 'canceled',\n IN_PROGRESS = 'inProgress',\n}\n","// Payment processor / tender type for a POS payment. Shared by Render and\n// command-frame; the string values are the wire contract used by orders.\nexport enum ProcessorType {\n FINAL_PAY = 'Terminal',\n TAP_TO_PAY = 'TapToPay',\n MOTO = 'Moto',\n CLOUD = 'Cloud',\n BLUETOOTH = 'Bluetooth',\n CASH = 'Cash',\n CUSTOM_PAY = 'CustomPay',\n VENDARA = 'Vendara',\n /** Extension-controlled payment (e.g. gift card redeem); order uses paymentType `redeem`. */\n REDEEM = 'Redeem',\n /** Extension-controlled integration (e.g. Stripe-like); order uses paymentType `integration`. */\n INTEGRATION = 'Integration',\n}\n","// Render in-memory POS runtime support types (tax engine, tips, cash, active-entity discriminator, environment data, flow) — the PaymentStatus-dependent active types (ActiveSplitPayment/RefundProcessingStatus/ActiveRefundOrder) remain in Render until PaymentStatus moves.\n\nimport type { CartFeeTaxEntry } from './CartFee';\nimport type { OrderTax } from '../embedded/OrderTax';\n\ninterface TaxesDetails {\n [id: string]: {\n amount: number;\n percentage: number;\n name: string;\n taxTableName: string;\n taxTableId: string;\n compounding?: boolean;\n priority?: number;\n };\n}\n\nexport interface ProdDiscountBreakdown {\n amount: number;\n percentage: number;\n label?: string;\n}\n\nexport interface ProdFeeBreakdown {\n amount: number;\n percentage: number;\n label?: string;\n tax: number;\n taxTableId?: string;\n taxRateId?: string;\n applyTaxes: boolean;\n}\n\n/**\n * One modifier row after the tax engine ran (FT-0010): the cart row extended by the\n * line quantity, plus the tax computed on it. buildOrderFromCart copies these onto\n * OrderLineItem.modifiers[] as { …row, total: amount, totalTax: tax }.\n */\nexport interface ProdModifierBreakdown {\n modifierId: string;\n modifierName: string;\n choiceId: string;\n choiceName: string;\n /** Display label from the cart row — \"{modifierName} - {choiceName}\". Not persisted on the order row. */\n label?: string;\n unitPrice: number;\n quantity: number;\n /** unitPrice × quantity × line.quantity, in minor units. */\n amount: number;\n tax: number;\n /** Engine INPUT (from the cart row): which table taxes this row. Not persisted on the order row. */\n taxTableId?: string;\n taxRateId?: string;\n /** Engine OUTPUT: per-rate breakdown of `tax` — becomes OrderLineItemModifier.taxes. */\n taxes?: OrderTax[];\n}\n\nexport interface ProductTaxDetails {\n tax: number;\n prodDiscount: number;\n /** Line-level item discount in minor units (originalLineTotal − lineDisplayBase); drift-free, matches the value written to orders/refunds. */\n prodDiscountTotal: number;\n cartDiscount: number;\n prodDiscountPercentage: number;\n cartDiscountPercentage: number;\n taxes: TaxesDetails;\n fee?: number;\n feeTax?: number;\n feePercentage?: number;\n feeLabel?: string;\n cartFee?: number;\n cartFeeTax?: number;\n cartFeePercentage?: number;\n cartFeeLabel?: string;\n feeTaxTableId?: string;\n cartFeeTaxTableId?: string;\n prodDiscountLabel?: string;\n /** Staging: line total including fee for discount allocation */\n lineDisplayWithFee?: number;\n cartDiscountAllocated?: number;\n lineAfterCartDiscount?: number;\n computedLineTotal?: number;\n computedLineTax?: number;\n feeDisplay?: number;\n prodDiscounts?: ProdDiscountBreakdown[];\n fees?: ProdFeeBreakdown[];\n /** Staging: (price × qty) − sum(itemDiscounts) + sum(itemFees) + sum(modifiers) */\n lineNetWithFees?: number;\n /** Σ modifier rows extended by the line quantity — fee-level money, joins the line after the product discount. */\n modifierDisplay?: number;\n /** Tax computed on the modifier rows (product's tax table unless a row names its own). Inside computedLineTax. */\n modifierTax?: number;\n modifiers?: ProdModifierBreakdown[];\n}\n\nexport interface CustomSaleDetails {\n tax: number;\n cartDiscount: number;\n cartDiscountPercentage: number;\n taxes: TaxesDetails;\n cartFee?: number;\n cartFeeTax?: number;\n cartFeePercentage?: number;\n cartFeeLabel?: string;\n cartFeeTaxTableId?: string;\n applyTaxes?: boolean;\n /** Staging: for discount allocation and order total */\n lineDisplayWithFee?: number;\n cartDiscountAllocated?: number;\n lineAfterCartDiscount?: number;\n computedLineTotal?: number;\n computedLineTax?: number;\n}\n\nexport interface CartFeesDetails {\n name: string;\n amount: number;\n percentage: number;\n feeTax: number;\n taxTableId: string;\n taxName: string;\n /** Per-rate breakdown (gst, hst, etc.) so order/refund summary can show correct amounts per rate. */\n taxes?: CartFeeTaxEntry[];\n}\n\nexport interface CalculatedTaxDetails {\n tax: number;\n total: number;\n subtotal: number;\n orderSubtotal: number;\n totalDiscount: number;\n /** Staging: cart discount amount and subtotal after discount */\n discountAmount?: number;\n subtotalAfterDiscount?: number;\n products: { [id: string]: ProductTaxDetails };\n customSales: { [id: string]: CustomSaleDetails };\n totalTaxes: TaxesDetails;\n cartFees: CartFeesDetails[];\n}\n\nexport interface TipData {\n value: number;\n label?: string;\n isPercent: boolean;\n}\n\nexport interface TipsDetails {\n total: number;\n tips: TipData[];\n currency?: string;\n noTipLabel?: string;\n customTipLabel?: string;\n selectedTip?: TipData;\n cashChange?: number;\n enabled?: boolean;\n}\n\nexport type CashRoundingIncrement = '' | '0.05' | '0.10' | '0.25' | '0.50' | '1.00';\n\nexport interface CashPaymentSettings {\n cashRounding: CashRoundingIncrement;\n}\n\nexport enum ActiveEntityType {\n TAX = 'tax',\n CART = 'cart',\n USER = 'user',\n ORDER = 'order',\n PRODUCT = 'product',\n FULL_PRODUCT = 'fullProduct',\n CUSTOMER = 'customer',\n OUTLET = 'outlet',\n CHANGES = 'changes',\n SPLIT_PAYMENT = 'splitPayment',\n CALCULATED_TAX = 'calculatedTaxDetails',\n TIPS_DETAILS = 'tipsDetails',\n CASH_PAYMENT_SETTINGS = 'cashPaymentSettings',\n REFUND_DETAILS = 'refundDetails',\n COMPANY = 'company',\n IS_AUTHENTICATED = 'isAuthenticated',\n TIMER = 'timer',\n UPDATED_ORDER_ACTIONS = 'updatedOrderActions', //FOR ORDER UPDATE VIA ACTION\n BUILD = 'activeBuild',\n BUILD_UPDATE_INFO = 'buildUpdateInfo',\n GLOBAL_BLOCKS = 'globalBlocks',\n ACTIVE_STATION = 'activeStation',\n SMART_GRID = 'smartGrid',\n CUSTOM_SALE = 'customSale',\n ACTIVE_FLOW = 'activeFlow',\n ACTIVE_FLOW_VERSION_URL = 'activeFlowVersionUrl',\n}\n\nexport enum EnvironmentDataKeys {\n NETWORK_INFO = 'Network Info',\n DISPLAY = 'Display',\n APP_INFO = 'App Info',\n LOCATION = 'Location',\n DEVICE_INFO = 'Device Info',\n SYSTEM_HEALTH = 'System Health',\n DEVELOPER = 'Developer',\n PERIPHERAL_DEVICES = 'Peripheral Devices',\n}\n\nexport enum EnvironmentDataSubKeys {\n DEVICE_STATUS = 'Device Status',\n LAST_ONLINE_TIME = 'Last Online Time',\n NETWORK_TYPE = 'Network Type',\n SIGNAL_STRENGTH = 'Signal Strength',\n NETWORK_NAME = 'Network name',\n IP_ADDRESS = 'IP Address',\n\n SCREEN_RESOLUTION = 'Screen Resolution',\n PIXEL_RATIO = 'Pixel Ratio',\n ORIENTATION = 'Orientation',\n\n APP_VERSION = 'App Version',\n BUILD_NUMBER = 'Build Number',\n BUNDLE_ID = 'Bundle ID',\n INSTALLED = 'Installed',\n LAST_UPDATED = 'Last Updated',\n\n LOCATION_ACCESS = 'Location Access',\n CURRENT_LOCATION = 'Current Location',\n\n MODEL = 'Model',\n SYSTEM_VERSION = 'System Version',\n FIRMWARE_VERSION = 'Firmware Version',\n SERIAL_NUMBER = 'Serial Number',\n IMEI_NUMBER = 'IMEI Number',\n MAC_ADDRESS = 'MAC Address',\n ACTIVATION_TIME = 'Activation Time',\n TIME_ZONE = 'Time Zone',\n DEVICE_LANGUAGE = 'Device Language',\n\n TOTAL_RAM = 'Total RAM',\n BATTERY_LEVEL = 'Battery Level',\n BATTERY_STATUS = 'Battery Status',\n LOW_POWER_MODE = 'Low Power Mode',\n AVERAGE_CPU_USAGE = 'Average CPU Usage',\n CPU_SPEED = 'CPU Speed',\n AVAILABLE_STORAGE = 'Available Storage',\n TOTAL_STORAGE = 'Total Storage',\n UPTIME = 'Uptime',\n\n FLUTTER_VERSION = 'Flutter Version',\n DART_VERSION = 'Dart Version',\n ENVIRONMENT = 'Environment',\n\n CONNECTED_PRINTER = 'Connected Printer',\n}\n\nexport interface ActiveTimer {\n initialTimer: string;\n currentTimer: string;\n}\n\nexport interface ActiveUpdatedOrder {\n customerNote?: string;\n status?: string;\n}\n\nexport interface TaxTableActive {\n name: string;\n country: string;\n postcode: string;\n rate: number;\n priority: number;\n compounding: boolean;\n id: string;\n taxTableName: string;\n taxTableId: string;\n}\n\nexport interface ActiveTaxDetails {\n taxIncl?: boolean;\n tables: { [name: string]: TaxTableActive[] };\n}\n\nexport interface ActiveEntityChanges {\n productInCart: string[] | null; //array of ids of product in cart\n numberOfProductsInCart: number;\n cartValue: number;\n user: string | null;\n customer: string | null;\n order: string | null;\n role: string | null;\n product: string | null;\n}\n\nexport interface Flow {\n _id: string;\n /**\n * Stable ObjectId hub-api keys FlowSettings / PaymentSettings under.\n * Set for AI flows resolved Miami-direct (station-home adapts the service\n * projection onto this shape); absent on regular flows, where `_id` is the\n * settings key. Settings lookups should key by `hubId ?? _id`.\n */\n hubId?: string;\n companyId: string;\n title: string;\n description: string;\n template: string;\n createdBy: string;\n flowData: Record<string, any>;\n isDeleted: boolean;\n createdAt: string;\n updatedAt: string;\n previewImage: string;\n currentVersion: string;\n webAppId: string;\n}\n"],"mappings":"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","names":["PaymentStatus","ProcessorType","ActiveEntityType","EnvironmentDataKeys","EnvironmentDataSubKeys"]}
@@ -19,7 +19,6 @@ var ProcessorType = /* @__PURE__ */ ((ProcessorType2) => {
19
19
  ProcessorType2["VENDARA"] = "Vendara";
20
20
  ProcessorType2["REDEEM"] = "Redeem";
21
21
  ProcessorType2["INTEGRATION"] = "Integration";
22
- ProcessorType2["PAYMENT_LINK"] = "PaymentLink";
23
22
  return ProcessorType2;
24
23
  })(ProcessorType || {});
25
24
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../pos-types/active/PaymentStatus.ts","../../pos-types/active/ProcessorType.ts","../../pos-types/active/pos-runtime.ts"],"sourcesContent":["export enum PaymentStatus {\n FAILED = 'failed',\n SUCCESS = 'success',\n CANCELED = 'canceled',\n IN_PROGRESS = 'inProgress',\n}\n","// Payment processor / tender type for a POS payment. Shared by Render and\n// command-frame; the string values are the wire contract used by orders.\nexport enum ProcessorType {\n FINAL_PAY = 'Terminal',\n TAP_TO_PAY = 'TapToPay',\n MOTO = 'Moto',\n CLOUD = 'Cloud',\n /**\n * @deprecated No payment path stamps this. Bluetooth-reader sales stamp `FINAL_PAY`\n * ('Terminal') as their processor; station-home reuses this member only for the\n * unrelated reader-connectionType UI field, not for an order/payment record.\n */\n BLUETOOTH = 'Bluetooth',\n CASH = 'Cash',\n CUSTOM_PAY = 'CustomPay',\n VENDARA = 'Vendara',\n /** Extension-controlled payment (e.g. gift card redeem); order uses paymentType `redeem`. */\n REDEEM = 'Redeem',\n /** Extension-controlled integration (e.g. Stripe-like); order uses paymentType `integration`. */\n INTEGRATION = 'Integration',\n /**\n * Written by hub-api's payment-link settle as the payment method's processor label — the\n * channel (like Moto/Terminal/Cloud), not the PSP brand (that lives in `paymentData.processor`).\n * Card-not-present for receipt purposes.\n */\n PAYMENT_LINK = 'PaymentLink',\n}\n","// Render in-memory POS runtime support types (tax engine, tips, cash, active-entity discriminator, environment data, flow) — the PaymentStatus-dependent active types (ActiveSplitPayment/RefundProcessingStatus/ActiveRefundOrder) remain in Render until PaymentStatus moves.\n\nimport type { CartFeeTaxEntry } from './CartFee';\n\ninterface TaxesDetails {\n [id: string]: {\n amount: number;\n percentage: number;\n name: string;\n taxTableName: string;\n taxTableId: string;\n compounding?: boolean;\n priority?: number;\n };\n}\n\nexport interface ProdDiscountBreakdown {\n amount: number;\n percentage: number;\n label?: string;\n}\n\nexport interface ProdFeeBreakdown {\n amount: number;\n percentage: number;\n label?: string;\n tax: number;\n taxTableId?: string;\n taxRateId?: string;\n applyTaxes: boolean;\n}\n\nexport interface ProductTaxDetails {\n tax: number;\n prodDiscount: number;\n /** Line-level item discount in minor units (originalLineTotal − lineDisplayBase); drift-free, matches the value written to orders/refunds. */\n prodDiscountTotal: number;\n cartDiscount: number;\n prodDiscountPercentage: number;\n cartDiscountPercentage: number;\n taxes: TaxesDetails;\n fee?: number;\n feeTax?: number;\n feePercentage?: number;\n feeLabel?: string;\n cartFee?: number;\n cartFeeTax?: number;\n cartFeePercentage?: number;\n cartFeeLabel?: string;\n feeTaxTableId?: string;\n cartFeeTaxTableId?: string;\n prodDiscountLabel?: string;\n /** Staging: line total including fee for discount allocation */\n lineDisplayWithFee?: number;\n cartDiscountAllocated?: number;\n lineAfterCartDiscount?: number;\n computedLineTotal?: number;\n computedLineTax?: number;\n feeDisplay?: number;\n prodDiscounts?: ProdDiscountBreakdown[];\n fees?: ProdFeeBreakdown[];\n /** Staging: (price × qty) − sum(itemDiscounts) + sum(itemFees) */\n lineNetWithFees?: number;\n}\n\nexport interface CustomSaleDetails {\n tax: number;\n cartDiscount: number;\n cartDiscountPercentage: number;\n taxes: TaxesDetails;\n cartFee?: number;\n cartFeeTax?: number;\n cartFeePercentage?: number;\n cartFeeLabel?: string;\n cartFeeTaxTableId?: string;\n applyTaxes?: boolean;\n /** Staging: for discount allocation and order total */\n lineDisplayWithFee?: number;\n cartDiscountAllocated?: number;\n lineAfterCartDiscount?: number;\n computedLineTotal?: number;\n computedLineTax?: number;\n}\n\nexport interface CartFeesDetails {\n name: string;\n amount: number;\n percentage: number;\n feeTax: number;\n taxTableId: string;\n taxName: string;\n /** Per-rate breakdown (gst, hst, etc.) so order/refund summary can show correct amounts per rate. */\n taxes?: CartFeeTaxEntry[];\n}\n\nexport interface CalculatedTaxDetails {\n tax: number;\n total: number;\n subtotal: number;\n orderSubtotal: number;\n totalDiscount: number;\n /** Staging: cart discount amount and subtotal after discount */\n discountAmount?: number;\n subtotalAfterDiscount?: number;\n products: { [id: string]: ProductTaxDetails };\n customSales: { [id: string]: CustomSaleDetails };\n totalTaxes: TaxesDetails;\n cartFees: CartFeesDetails[];\n}\n\nexport interface TipData {\n value: number;\n label?: string;\n isPercent: boolean;\n}\n\nexport interface TipsDetails {\n total: number;\n tips: TipData[];\n currency?: string;\n noTipLabel?: string;\n customTipLabel?: string;\n selectedTip?: TipData;\n cashChange?: number;\n enabled?: boolean;\n}\n\nexport type CashRoundingIncrement = '' | '0.05' | '0.10' | '0.25' | '0.50' | '1.00';\n\nexport interface CashPaymentSettings {\n cashRounding: CashRoundingIncrement;\n}\n\nexport enum ActiveEntityType {\n TAX = 'tax',\n CART = 'cart',\n USER = 'user',\n ORDER = 'order',\n PRODUCT = 'product',\n FULL_PRODUCT = 'fullProduct',\n CUSTOMER = 'customer',\n OUTLET = 'outlet',\n CHANGES = 'changes',\n SPLIT_PAYMENT = 'splitPayment',\n CALCULATED_TAX = 'calculatedTaxDetails',\n TIPS_DETAILS = 'tipsDetails',\n CASH_PAYMENT_SETTINGS = 'cashPaymentSettings',\n REFUND_DETAILS = 'refundDetails',\n COMPANY = 'company',\n IS_AUTHENTICATED = 'isAuthenticated',\n TIMER = 'timer',\n UPDATED_ORDER_ACTIONS = 'updatedOrderActions', //FOR ORDER UPDATE VIA ACTION\n BUILD = 'activeBuild',\n BUILD_UPDATE_INFO = 'buildUpdateInfo',\n GLOBAL_BLOCKS = 'globalBlocks',\n ACTIVE_STATION = 'activeStation',\n SMART_GRID = 'smartGrid',\n CUSTOM_SALE = 'customSale',\n ACTIVE_FLOW = 'activeFlow',\n ACTIVE_FLOW_VERSION_URL = 'activeFlowVersionUrl',\n}\n\nexport enum EnvironmentDataKeys {\n NETWORK_INFO = 'Network Info',\n DISPLAY = 'Display',\n APP_INFO = 'App Info',\n LOCATION = 'Location',\n DEVICE_INFO = 'Device Info',\n SYSTEM_HEALTH = 'System Health',\n DEVELOPER = 'Developer',\n PERIPHERAL_DEVICES = 'Peripheral Devices',\n}\n\nexport enum EnvironmentDataSubKeys {\n DEVICE_STATUS = 'Device Status',\n LAST_ONLINE_TIME = 'Last Online Time',\n NETWORK_TYPE = 'Network Type',\n SIGNAL_STRENGTH = 'Signal Strength',\n NETWORK_NAME = 'Network name',\n IP_ADDRESS = 'IP Address',\n\n SCREEN_RESOLUTION = 'Screen Resolution',\n PIXEL_RATIO = 'Pixel Ratio',\n ORIENTATION = 'Orientation',\n\n APP_VERSION = 'App Version',\n BUILD_NUMBER = 'Build Number',\n BUNDLE_ID = 'Bundle ID',\n INSTALLED = 'Installed',\n LAST_UPDATED = 'Last Updated',\n\n LOCATION_ACCESS = 'Location Access',\n CURRENT_LOCATION = 'Current Location',\n\n MODEL = 'Model',\n SYSTEM_VERSION = 'System Version',\n FIRMWARE_VERSION = 'Firmware Version',\n SERIAL_NUMBER = 'Serial Number',\n IMEI_NUMBER = 'IMEI Number',\n MAC_ADDRESS = 'MAC Address',\n ACTIVATION_TIME = 'Activation Time',\n TIME_ZONE = 'Time Zone',\n DEVICE_LANGUAGE = 'Device Language',\n\n TOTAL_RAM = 'Total RAM',\n BATTERY_LEVEL = 'Battery Level',\n BATTERY_STATUS = 'Battery Status',\n LOW_POWER_MODE = 'Low Power Mode',\n AVERAGE_CPU_USAGE = 'Average CPU Usage',\n CPU_SPEED = 'CPU Speed',\n AVAILABLE_STORAGE = 'Available Storage',\n TOTAL_STORAGE = 'Total Storage',\n UPTIME = 'Uptime',\n\n FLUTTER_VERSION = 'Flutter Version',\n DART_VERSION = 'Dart Version',\n ENVIRONMENT = 'Environment',\n\n CONNECTED_PRINTER = 'Connected Printer',\n}\n\nexport interface ActiveTimer {\n initialTimer: string;\n currentTimer: string;\n}\n\nexport interface ActiveUpdatedOrder {\n customerNote?: string;\n status?: string;\n}\n\nexport interface TaxTableActive {\n name: string;\n country: string;\n postcode: string;\n rate: number;\n priority: number;\n compounding: boolean;\n id: string;\n taxTableName: string;\n taxTableId: string;\n}\n\nexport interface ActiveTaxDetails {\n taxIncl?: boolean;\n tables: { [name: string]: TaxTableActive[] };\n}\n\nexport interface ActiveEntityChanges {\n productInCart: string[] | null; //array of ids of product in cart\n numberOfProductsInCart: number;\n cartValue: number;\n user: string | null;\n customer: string | null;\n order: string | null;\n role: string | null;\n product: string | null;\n}\n\nexport interface Flow {\n _id: string;\n /**\n * Stable ObjectId hub-api keys FlowSettings / PaymentSettings under.\n * Set for AI flows resolved Miami-direct (station-home adapts the service\n * projection onto this shape); absent on regular flows, where `_id` is the\n * settings key. Settings lookups should key by `hubId ?? _id`.\n */\n hubId?: string;\n companyId: string;\n title: string;\n description: string;\n template: string;\n createdBy: string;\n flowData: Record<string, any>;\n isDeleted: boolean;\n createdAt: string;\n updatedAt: string;\n previewImage: string;\n currentVersion: string;\n webAppId: string;\n}\n"],"mappings":"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","names":["PaymentStatus","ProcessorType","ActiveEntityType","EnvironmentDataKeys","EnvironmentDataSubKeys"]}
1
+ {"version":3,"sources":["../../pos-types/active/PaymentStatus.ts","../../pos-types/active/ProcessorType.ts","../../pos-types/active/pos-runtime.ts"],"sourcesContent":["export enum PaymentStatus {\n FAILED = 'failed',\n SUCCESS = 'success',\n CANCELED = 'canceled',\n IN_PROGRESS = 'inProgress',\n}\n","// Payment processor / tender type for a POS payment. Shared by Render and\n// command-frame; the string values are the wire contract used by orders.\nexport enum ProcessorType {\n FINAL_PAY = 'Terminal',\n TAP_TO_PAY = 'TapToPay',\n MOTO = 'Moto',\n CLOUD = 'Cloud',\n BLUETOOTH = 'Bluetooth',\n CASH = 'Cash',\n CUSTOM_PAY = 'CustomPay',\n VENDARA = 'Vendara',\n /** Extension-controlled payment (e.g. gift card redeem); order uses paymentType `redeem`. */\n REDEEM = 'Redeem',\n /** Extension-controlled integration (e.g. Stripe-like); order uses paymentType `integration`. */\n INTEGRATION = 'Integration',\n}\n","// Render in-memory POS runtime support types (tax engine, tips, cash, active-entity discriminator, environment data, flow) — the PaymentStatus-dependent active types (ActiveSplitPayment/RefundProcessingStatus/ActiveRefundOrder) remain in Render until PaymentStatus moves.\n\nimport type { CartFeeTaxEntry } from './CartFee';\nimport type { OrderTax } from '../embedded/OrderTax';\n\ninterface TaxesDetails {\n [id: string]: {\n amount: number;\n percentage: number;\n name: string;\n taxTableName: string;\n taxTableId: string;\n compounding?: boolean;\n priority?: number;\n };\n}\n\nexport interface ProdDiscountBreakdown {\n amount: number;\n percentage: number;\n label?: string;\n}\n\nexport interface ProdFeeBreakdown {\n amount: number;\n percentage: number;\n label?: string;\n tax: number;\n taxTableId?: string;\n taxRateId?: string;\n applyTaxes: boolean;\n}\n\n/**\n * One modifier row after the tax engine ran (FT-0010): the cart row extended by the\n * line quantity, plus the tax computed on it. buildOrderFromCart copies these onto\n * OrderLineItem.modifiers[] as { …row, total: amount, totalTax: tax }.\n */\nexport interface ProdModifierBreakdown {\n modifierId: string;\n modifierName: string;\n choiceId: string;\n choiceName: string;\n /** Display label from the cart row — \"{modifierName} - {choiceName}\". Not persisted on the order row. */\n label?: string;\n unitPrice: number;\n quantity: number;\n /** unitPrice × quantity × line.quantity, in minor units. */\n amount: number;\n tax: number;\n /** Engine INPUT (from the cart row): which table taxes this row. Not persisted on the order row. */\n taxTableId?: string;\n taxRateId?: string;\n /** Engine OUTPUT: per-rate breakdown of `tax` — becomes OrderLineItemModifier.taxes. */\n taxes?: OrderTax[];\n}\n\nexport interface ProductTaxDetails {\n tax: number;\n prodDiscount: number;\n /** Line-level item discount in minor units (originalLineTotal − lineDisplayBase); drift-free, matches the value written to orders/refunds. */\n prodDiscountTotal: number;\n cartDiscount: number;\n prodDiscountPercentage: number;\n cartDiscountPercentage: number;\n taxes: TaxesDetails;\n fee?: number;\n feeTax?: number;\n feePercentage?: number;\n feeLabel?: string;\n cartFee?: number;\n cartFeeTax?: number;\n cartFeePercentage?: number;\n cartFeeLabel?: string;\n feeTaxTableId?: string;\n cartFeeTaxTableId?: string;\n prodDiscountLabel?: string;\n /** Staging: line total including fee for discount allocation */\n lineDisplayWithFee?: number;\n cartDiscountAllocated?: number;\n lineAfterCartDiscount?: number;\n computedLineTotal?: number;\n computedLineTax?: number;\n feeDisplay?: number;\n prodDiscounts?: ProdDiscountBreakdown[];\n fees?: ProdFeeBreakdown[];\n /** Staging: (price × qty) − sum(itemDiscounts) + sum(itemFees) + sum(modifiers) */\n lineNetWithFees?: number;\n /** Σ modifier rows extended by the line quantity — fee-level money, joins the line after the product discount. */\n modifierDisplay?: number;\n /** Tax computed on the modifier rows (product's tax table unless a row names its own). Inside computedLineTax. */\n modifierTax?: number;\n modifiers?: ProdModifierBreakdown[];\n}\n\nexport interface CustomSaleDetails {\n tax: number;\n cartDiscount: number;\n cartDiscountPercentage: number;\n taxes: TaxesDetails;\n cartFee?: number;\n cartFeeTax?: number;\n cartFeePercentage?: number;\n cartFeeLabel?: string;\n cartFeeTaxTableId?: string;\n applyTaxes?: boolean;\n /** Staging: for discount allocation and order total */\n lineDisplayWithFee?: number;\n cartDiscountAllocated?: number;\n lineAfterCartDiscount?: number;\n computedLineTotal?: number;\n computedLineTax?: number;\n}\n\nexport interface CartFeesDetails {\n name: string;\n amount: number;\n percentage: number;\n feeTax: number;\n taxTableId: string;\n taxName: string;\n /** Per-rate breakdown (gst, hst, etc.) so order/refund summary can show correct amounts per rate. */\n taxes?: CartFeeTaxEntry[];\n}\n\nexport interface CalculatedTaxDetails {\n tax: number;\n total: number;\n subtotal: number;\n orderSubtotal: number;\n totalDiscount: number;\n /** Staging: cart discount amount and subtotal after discount */\n discountAmount?: number;\n subtotalAfterDiscount?: number;\n products: { [id: string]: ProductTaxDetails };\n customSales: { [id: string]: CustomSaleDetails };\n totalTaxes: TaxesDetails;\n cartFees: CartFeesDetails[];\n}\n\nexport interface TipData {\n value: number;\n label?: string;\n isPercent: boolean;\n}\n\nexport interface TipsDetails {\n total: number;\n tips: TipData[];\n currency?: string;\n noTipLabel?: string;\n customTipLabel?: string;\n selectedTip?: TipData;\n cashChange?: number;\n enabled?: boolean;\n}\n\nexport type CashRoundingIncrement = '' | '0.05' | '0.10' | '0.25' | '0.50' | '1.00';\n\nexport interface CashPaymentSettings {\n cashRounding: CashRoundingIncrement;\n}\n\nexport enum ActiveEntityType {\n TAX = 'tax',\n CART = 'cart',\n USER = 'user',\n ORDER = 'order',\n PRODUCT = 'product',\n FULL_PRODUCT = 'fullProduct',\n CUSTOMER = 'customer',\n OUTLET = 'outlet',\n CHANGES = 'changes',\n SPLIT_PAYMENT = 'splitPayment',\n CALCULATED_TAX = 'calculatedTaxDetails',\n TIPS_DETAILS = 'tipsDetails',\n CASH_PAYMENT_SETTINGS = 'cashPaymentSettings',\n REFUND_DETAILS = 'refundDetails',\n COMPANY = 'company',\n IS_AUTHENTICATED = 'isAuthenticated',\n TIMER = 'timer',\n UPDATED_ORDER_ACTIONS = 'updatedOrderActions', //FOR ORDER UPDATE VIA ACTION\n BUILD = 'activeBuild',\n BUILD_UPDATE_INFO = 'buildUpdateInfo',\n GLOBAL_BLOCKS = 'globalBlocks',\n ACTIVE_STATION = 'activeStation',\n SMART_GRID = 'smartGrid',\n CUSTOM_SALE = 'customSale',\n ACTIVE_FLOW = 'activeFlow',\n ACTIVE_FLOW_VERSION_URL = 'activeFlowVersionUrl',\n}\n\nexport enum EnvironmentDataKeys {\n NETWORK_INFO = 'Network Info',\n DISPLAY = 'Display',\n APP_INFO = 'App Info',\n LOCATION = 'Location',\n DEVICE_INFO = 'Device Info',\n SYSTEM_HEALTH = 'System Health',\n DEVELOPER = 'Developer',\n PERIPHERAL_DEVICES = 'Peripheral Devices',\n}\n\nexport enum EnvironmentDataSubKeys {\n DEVICE_STATUS = 'Device Status',\n LAST_ONLINE_TIME = 'Last Online Time',\n NETWORK_TYPE = 'Network Type',\n SIGNAL_STRENGTH = 'Signal Strength',\n NETWORK_NAME = 'Network name',\n IP_ADDRESS = 'IP Address',\n\n SCREEN_RESOLUTION = 'Screen Resolution',\n PIXEL_RATIO = 'Pixel Ratio',\n ORIENTATION = 'Orientation',\n\n APP_VERSION = 'App Version',\n BUILD_NUMBER = 'Build Number',\n BUNDLE_ID = 'Bundle ID',\n INSTALLED = 'Installed',\n LAST_UPDATED = 'Last Updated',\n\n LOCATION_ACCESS = 'Location Access',\n CURRENT_LOCATION = 'Current Location',\n\n MODEL = 'Model',\n SYSTEM_VERSION = 'System Version',\n FIRMWARE_VERSION = 'Firmware Version',\n SERIAL_NUMBER = 'Serial Number',\n IMEI_NUMBER = 'IMEI Number',\n MAC_ADDRESS = 'MAC Address',\n ACTIVATION_TIME = 'Activation Time',\n TIME_ZONE = 'Time Zone',\n DEVICE_LANGUAGE = 'Device Language',\n\n TOTAL_RAM = 'Total RAM',\n BATTERY_LEVEL = 'Battery Level',\n BATTERY_STATUS = 'Battery Status',\n LOW_POWER_MODE = 'Low Power Mode',\n AVERAGE_CPU_USAGE = 'Average CPU Usage',\n CPU_SPEED = 'CPU Speed',\n AVAILABLE_STORAGE = 'Available Storage',\n TOTAL_STORAGE = 'Total Storage',\n UPTIME = 'Uptime',\n\n FLUTTER_VERSION = 'Flutter Version',\n DART_VERSION = 'Dart Version',\n ENVIRONMENT = 'Environment',\n\n CONNECTED_PRINTER = 'Connected Printer',\n}\n\nexport interface ActiveTimer {\n initialTimer: string;\n currentTimer: string;\n}\n\nexport interface ActiveUpdatedOrder {\n customerNote?: string;\n status?: string;\n}\n\nexport interface TaxTableActive {\n name: string;\n country: string;\n postcode: string;\n rate: number;\n priority: number;\n compounding: boolean;\n id: string;\n taxTableName: string;\n taxTableId: string;\n}\n\nexport interface ActiveTaxDetails {\n taxIncl?: boolean;\n tables: { [name: string]: TaxTableActive[] };\n}\n\nexport interface ActiveEntityChanges {\n productInCart: string[] | null; //array of ids of product in cart\n numberOfProductsInCart: number;\n cartValue: number;\n user: string | null;\n customer: string | null;\n order: string | null;\n role: string | null;\n product: string | null;\n}\n\nexport interface Flow {\n _id: string;\n /**\n * Stable ObjectId hub-api keys FlowSettings / PaymentSettings under.\n * Set for AI flows resolved Miami-direct (station-home adapts the service\n * projection onto this shape); absent on regular flows, where `_id` is the\n * settings key. Settings lookups should key by `hubId ?? _id`.\n */\n hubId?: string;\n companyId: string;\n title: string;\n description: string;\n template: string;\n createdBy: string;\n flowData: Record<string, any>;\n isDeleted: boolean;\n createdAt: string;\n updatedAt: string;\n previewImage: string;\n currentVersion: string;\n webAppId: string;\n}\n"],"mappings":"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","names":["PaymentStatus","ProcessorType","ActiveEntityType","EnvironmentDataKeys","EnvironmentDataSubKeys"]}