@final-commerce/common 2.3.0-staging.7 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +19 -193
- package/dist/index.d.ts +19 -193
- package/dist/index.js +12 -450
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +11 -432
- package/dist/index.mjs.map +1 -1
- package/dist/pos-types/index.d.mts +101 -144
- package/dist/pos-types/index.d.ts +101 -144
- package/dist/pos-types/index.js.map +1 -1
- package/dist/pos-types/index.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -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;
|
|
@@ -443,8 +458,7 @@ declare enum NonRevenueItemType {
|
|
|
443
458
|
|
|
444
459
|
declare enum ProductType {
|
|
445
460
|
SIMPLE = "simple",
|
|
446
|
-
VARIABLE = "variable"
|
|
447
|
-
BOOKING = "booking"
|
|
461
|
+
VARIABLE = "variable"
|
|
448
462
|
}
|
|
449
463
|
declare enum ProductStatus {
|
|
450
464
|
ACTIVE = "active",
|
|
@@ -458,38 +472,11 @@ declare enum PaymentProcessor {
|
|
|
458
472
|
EXTERNAL = "external"
|
|
459
473
|
}
|
|
460
474
|
|
|
461
|
-
declare enum BookingType {
|
|
462
|
-
RENTAL = "rental",
|
|
463
|
-
APPOINTMENT = "appointment",
|
|
464
|
-
OVERNIGHT = "overnight",
|
|
465
|
-
GROUP = "group"
|
|
466
|
-
}
|
|
467
|
-
declare enum BookingRatePeriod {
|
|
468
|
-
SLOT = "slot",
|
|
469
|
-
DAY = "day",
|
|
470
|
-
NIGHT = "night",
|
|
471
|
-
WEEK = "week",
|
|
472
|
-
MONTH = "month"
|
|
473
|
-
}
|
|
474
|
-
declare enum BookingResourceKind {
|
|
475
|
-
ASSET = "asset",
|
|
476
|
-
ROOM = "room",
|
|
477
|
-
PROPERTY = "property",
|
|
478
|
-
SPACE = "space",
|
|
479
|
-
STAFF = "staff",
|
|
480
|
-
TABLE = "table"
|
|
481
|
-
}
|
|
482
|
-
declare enum ReservationStatus {
|
|
483
|
-
HELD = "held",
|
|
484
|
-
CONFIRMED = "confirmed",
|
|
485
|
-
CANCELLED = "cancelled",
|
|
486
|
-
EXPIRED = "expired"
|
|
487
|
-
}
|
|
488
|
-
|
|
489
475
|
interface RefundLineItem {
|
|
490
476
|
taxes?: OrderTax[];
|
|
491
477
|
discount?: RefundDiscount;
|
|
492
478
|
fee?: OrderLineItemFee;
|
|
479
|
+
modifiers?: OrderLineItemModifier[];
|
|
493
480
|
lineNetWithFees?: number;
|
|
494
481
|
quantity?: number;
|
|
495
482
|
stockQuantity?: number;
|
|
@@ -549,6 +536,9 @@ interface RefundSummary {
|
|
|
549
536
|
cartFeesTotal?: number;
|
|
550
537
|
taxableFeesTotal?: number;
|
|
551
538
|
nonTaxableFeesTotal?: number;
|
|
539
|
+
modifiersTotal?: number;
|
|
540
|
+
taxableModifiersTotal?: number;
|
|
541
|
+
nonTaxableModifiersTotal?: number;
|
|
552
542
|
totalTaxableSales?: number;
|
|
553
543
|
totalNonTaxableSales?: number;
|
|
554
544
|
tipTotal?: number;
|
|
@@ -588,31 +578,6 @@ interface TransactionPaymentData {
|
|
|
588
578
|
chargeId?: string;
|
|
589
579
|
}
|
|
590
580
|
|
|
591
|
-
interface OrderReservation {
|
|
592
|
-
internalId: string;
|
|
593
|
-
bookingId?: string;
|
|
594
|
-
productId: string;
|
|
595
|
-
variantId?: string | null;
|
|
596
|
-
resourceId: string;
|
|
597
|
-
name: string;
|
|
598
|
-
resourceName?: string;
|
|
599
|
-
price: number;
|
|
600
|
-
quantity?: number;
|
|
601
|
-
fulfilledQuantity?: number;
|
|
602
|
-
returnedQuantity?: number;
|
|
603
|
-
taxes?: OrderTax[];
|
|
604
|
-
discount?: OrderLineItemDiscount;
|
|
605
|
-
fee?: OrderLineItemFee;
|
|
606
|
-
totalTax?: number;
|
|
607
|
-
total: number;
|
|
608
|
-
taxTableId?: string;
|
|
609
|
-
startAt: string;
|
|
610
|
-
endAt: string;
|
|
611
|
-
bufferEndAt: string;
|
|
612
|
-
override?: boolean;
|
|
613
|
-
overriddenBy?: string | null;
|
|
614
|
-
}
|
|
615
|
-
|
|
616
581
|
interface Attribute extends BaseEntity {
|
|
617
582
|
optionName: string;
|
|
618
583
|
sortingOrder: number;
|
|
@@ -828,7 +793,6 @@ interface Order extends BaseEntity {
|
|
|
828
793
|
lineItems: Partial<OrderLineItem>[];
|
|
829
794
|
customSales?: OrderCustomSale[];
|
|
830
795
|
nonRevenueItems?: NonRevenueItem$1[];
|
|
831
|
-
reservations?: OrderReservation[];
|
|
832
796
|
refund?: OrderRefund[];
|
|
833
797
|
minorUnits?: number;
|
|
834
798
|
}
|
|
@@ -1165,22 +1129,6 @@ interface Variant extends BaseEntity {
|
|
|
1165
1129
|
stockVariantId?: string;
|
|
1166
1130
|
}
|
|
1167
1131
|
|
|
1168
|
-
interface Tax {
|
|
1169
|
-
id: string;
|
|
1170
|
-
name: string;
|
|
1171
|
-
percentage: number;
|
|
1172
|
-
amount: number;
|
|
1173
|
-
taxableAmount?: number;
|
|
1174
|
-
taxTableName: string;
|
|
1175
|
-
taxTableId: string;
|
|
1176
|
-
compounding?: boolean;
|
|
1177
|
-
priority?: number;
|
|
1178
|
-
}
|
|
1179
|
-
interface Tip {
|
|
1180
|
-
amount: number;
|
|
1181
|
-
percentage: number;
|
|
1182
|
-
}
|
|
1183
|
-
|
|
1184
1132
|
interface Address {
|
|
1185
1133
|
firstName: string;
|
|
1186
1134
|
lastName: string;
|
|
@@ -1242,7 +1190,6 @@ interface ActiveOutlet {
|
|
|
1242
1190
|
taxId: string;
|
|
1243
1191
|
postCode?: string;
|
|
1244
1192
|
name?: string;
|
|
1245
|
-
timeZone?: string;
|
|
1246
1193
|
stripe?: {
|
|
1247
1194
|
locationId: string;
|
|
1248
1195
|
};
|
|
@@ -1373,6 +1320,22 @@ interface PosDataItem {
|
|
|
1373
1320
|
};
|
|
1374
1321
|
}
|
|
1375
1322
|
|
|
1323
|
+
interface Tax {
|
|
1324
|
+
id: string;
|
|
1325
|
+
name: string;
|
|
1326
|
+
percentage: number;
|
|
1327
|
+
amount: number;
|
|
1328
|
+
taxableAmount?: number;
|
|
1329
|
+
taxTableName: string;
|
|
1330
|
+
taxTableId: string;
|
|
1331
|
+
compounding?: boolean;
|
|
1332
|
+
priority?: number;
|
|
1333
|
+
}
|
|
1334
|
+
interface Tip {
|
|
1335
|
+
amount: number;
|
|
1336
|
+
percentage: number;
|
|
1337
|
+
}
|
|
1338
|
+
|
|
1376
1339
|
interface DiscountDetail {
|
|
1377
1340
|
percentage: number;
|
|
1378
1341
|
amount: number;
|
|
@@ -1406,6 +1369,7 @@ interface LineItem {
|
|
|
1406
1369
|
taxes: Tax[];
|
|
1407
1370
|
discount: DiscountLineItem;
|
|
1408
1371
|
fee: FeeLineItem;
|
|
1372
|
+
modifiers?: OrderLineItemModifier[];
|
|
1409
1373
|
totalTax: number;
|
|
1410
1374
|
total: number;
|
|
1411
1375
|
lineNetWithFees: number;
|
|
@@ -1479,6 +1443,9 @@ interface Summary {
|
|
|
1479
1443
|
cartFeesTotal?: number;
|
|
1480
1444
|
taxableFeesTotal?: number;
|
|
1481
1445
|
nonTaxableFeesTotal?: number;
|
|
1446
|
+
modifiersTotal?: number;
|
|
1447
|
+
taxableModifiersTotal?: number;
|
|
1448
|
+
nonTaxableModifiersTotal?: number;
|
|
1482
1449
|
totalTaxableSales?: number;
|
|
1483
1450
|
totalNonTaxableSales?: number;
|
|
1484
1451
|
tipTotal?: number;
|
|
@@ -1514,11 +1481,11 @@ interface RefundedLineItem {
|
|
|
1514
1481
|
description?: string;
|
|
1515
1482
|
images?: string[];
|
|
1516
1483
|
fee: FeeLineItem;
|
|
1484
|
+
modifiers?: OrderLineItemModifier[];
|
|
1517
1485
|
}
|
|
1518
1486
|
interface RefundItem {
|
|
1519
1487
|
lineItems: RefundedLineItem[];
|
|
1520
1488
|
customSales: RefundedCustomSale[];
|
|
1521
|
-
reservations?: OrderReservation[];
|
|
1522
1489
|
cartFees: CartFeeItem[];
|
|
1523
1490
|
tips: RefundedTipPayment[];
|
|
1524
1491
|
refundedBy: string;
|
|
@@ -1531,9 +1498,6 @@ interface RefundItem {
|
|
|
1531
1498
|
minorUnits?: number;
|
|
1532
1499
|
}
|
|
1533
1500
|
|
|
1534
|
-
type ActiveOrderReservation = Omit<OrderReservation, 'taxes'> & {
|
|
1535
|
-
taxes?: Tax[];
|
|
1536
|
-
};
|
|
1537
1501
|
type ActiveOrder = Enrich<Order, {
|
|
1538
1502
|
_id: string;
|
|
1539
1503
|
id?: string;
|
|
@@ -1557,7 +1521,6 @@ type ActiveOrder = Enrich<Order, {
|
|
|
1557
1521
|
shipping: Address | null;
|
|
1558
1522
|
lineItems: LineItem[];
|
|
1559
1523
|
customSales: CustomSale[];
|
|
1560
|
-
reservations?: ActiveOrderReservation[];
|
|
1561
1524
|
nonRevenueItems?: NonRevenueItem[];
|
|
1562
1525
|
refund?: RefundItem[];
|
|
1563
1526
|
signature?: string | null;
|
|
@@ -1570,6 +1533,46 @@ type ActiveOrder = Enrich<Order, {
|
|
|
1570
1533
|
station?: ActiveStation;
|
|
1571
1534
|
}>;
|
|
1572
1535
|
|
|
1536
|
+
type ModifierSelectionType = 'single' | 'multiple' | 'quantity';
|
|
1537
|
+
interface ResolvedModifierChoice {
|
|
1538
|
+
_id: string;
|
|
1539
|
+
name: string;
|
|
1540
|
+
price: number;
|
|
1541
|
+
isDefault?: boolean;
|
|
1542
|
+
defaultQuantity?: number;
|
|
1543
|
+
unavailableOutletIds?: string[];
|
|
1544
|
+
sortOrder: number;
|
|
1545
|
+
}
|
|
1546
|
+
interface ResolvedModifier {
|
|
1547
|
+
_id: string;
|
|
1548
|
+
name: string;
|
|
1549
|
+
selectionType: ModifierSelectionType;
|
|
1550
|
+
allowQuantity?: boolean;
|
|
1551
|
+
required: boolean;
|
|
1552
|
+
min?: number | null;
|
|
1553
|
+
max?: number | null;
|
|
1554
|
+
sortOrder: number;
|
|
1555
|
+
choices: ResolvedModifierChoice[];
|
|
1556
|
+
}
|
|
1557
|
+
interface ModifierChoiceSelection {
|
|
1558
|
+
choiceId: string;
|
|
1559
|
+
quantity: number;
|
|
1560
|
+
}
|
|
1561
|
+
interface ModifierSelection {
|
|
1562
|
+
modifierId: string;
|
|
1563
|
+
choices: ModifierChoiceSelection[];
|
|
1564
|
+
}
|
|
1565
|
+
interface CartLineModifier {
|
|
1566
|
+
modifierId: string;
|
|
1567
|
+
modifierName: string;
|
|
1568
|
+
choiceId: string;
|
|
1569
|
+
choiceName: string;
|
|
1570
|
+
label?: string;
|
|
1571
|
+
unitPrice: number;
|
|
1572
|
+
quantity: number;
|
|
1573
|
+
taxTableId?: string;
|
|
1574
|
+
}
|
|
1575
|
+
|
|
1573
1576
|
interface Discount {
|
|
1574
1577
|
value: number;
|
|
1575
1578
|
label?: string;
|
|
@@ -1617,6 +1620,8 @@ interface ActiveProduct {
|
|
|
1617
1620
|
stock: number;
|
|
1618
1621
|
allowBackOrder?: boolean;
|
|
1619
1622
|
fees?: CustomFee[];
|
|
1623
|
+
modifierSelections?: ModifierSelection[];
|
|
1624
|
+
modifiers?: CartLineModifier[];
|
|
1620
1625
|
currency?: CurrencyCode;
|
|
1621
1626
|
minorUnits?: number;
|
|
1622
1627
|
isUnlimited?: boolean;
|
|
@@ -1628,13 +1633,6 @@ interface ActiveProduct {
|
|
|
1628
1633
|
productType?: ProductType;
|
|
1629
1634
|
}
|
|
1630
1635
|
|
|
1631
|
-
interface CartReservation extends OrderReservation {
|
|
1632
|
-
bookingId: string;
|
|
1633
|
-
expiresAt?: string;
|
|
1634
|
-
discounts?: Discount[];
|
|
1635
|
-
fees?: CustomFee[];
|
|
1636
|
-
}
|
|
1637
|
-
|
|
1638
1636
|
interface ActiveCustomSales {
|
|
1639
1637
|
id: string;
|
|
1640
1638
|
name: string;
|
|
@@ -1659,13 +1657,11 @@ interface ActiveCart {
|
|
|
1659
1657
|
taxes?: Tax[];
|
|
1660
1658
|
total: number;
|
|
1661
1659
|
subtotal: number;
|
|
1662
|
-
itemCount?: number;
|
|
1663
1660
|
discount?: Discount;
|
|
1664
1661
|
customFee?: CustomFee[];
|
|
1665
1662
|
products: ActiveProduct[];
|
|
1666
1663
|
customSales?: ActiveCustomSales[];
|
|
1667
1664
|
nonRevenueItems?: NonRevenueItem[];
|
|
1668
|
-
reservations?: CartReservation[];
|
|
1669
1665
|
remainingBalance?: number;
|
|
1670
1666
|
amountToBeCharged: number;
|
|
1671
1667
|
customer?: Partial<ActiveCustomer | null> | null;
|
|
@@ -1747,8 +1743,8 @@ interface FullProduct {
|
|
|
1747
1743
|
supplier?: string;
|
|
1748
1744
|
sku?: string;
|
|
1749
1745
|
productType: ProductType;
|
|
1750
|
-
bookingRulesId?: string;
|
|
1751
1746
|
variants: ProductVariant[];
|
|
1747
|
+
modifiers?: ResolvedModifier[];
|
|
1752
1748
|
minPrice?: number;
|
|
1753
1749
|
maxPrice?: number;
|
|
1754
1750
|
price?: number;
|
|
@@ -1761,61 +1757,6 @@ interface FullProduct {
|
|
|
1761
1757
|
}
|
|
1762
1758
|
type ActiveFullProduct = FullProduct;
|
|
1763
1759
|
|
|
1764
|
-
interface BookingSlotResource {
|
|
1765
|
-
resourceId: string;
|
|
1766
|
-
name: string;
|
|
1767
|
-
capacity: number;
|
|
1768
|
-
booked: number;
|
|
1769
|
-
free: number;
|
|
1770
|
-
}
|
|
1771
|
-
interface BookingSlot {
|
|
1772
|
-
startAt: string;
|
|
1773
|
-
endAt: string;
|
|
1774
|
-
bufferEndAt: string;
|
|
1775
|
-
canStart: boolean;
|
|
1776
|
-
capacity: number;
|
|
1777
|
-
booked: number;
|
|
1778
|
-
free: number;
|
|
1779
|
-
resources: BookingSlotResource[];
|
|
1780
|
-
}
|
|
1781
|
-
interface BookingAvailability {
|
|
1782
|
-
productId: string;
|
|
1783
|
-
bookingRulesId: string;
|
|
1784
|
-
bookingType: BookingType;
|
|
1785
|
-
ratePeriod: BookingRatePeriod;
|
|
1786
|
-
minimumToRun?: number;
|
|
1787
|
-
minStay?: number;
|
|
1788
|
-
maxStay?: number;
|
|
1789
|
-
bookableUntil?: string;
|
|
1790
|
-
beyondWindow?: boolean;
|
|
1791
|
-
slots: BookingSlot[];
|
|
1792
|
-
}
|
|
1793
|
-
interface BookingResource {
|
|
1794
|
-
id: string;
|
|
1795
|
-
name: string;
|
|
1796
|
-
kind: BookingResourceKind;
|
|
1797
|
-
tag?: string;
|
|
1798
|
-
}
|
|
1799
|
-
interface Booking {
|
|
1800
|
-
id: string;
|
|
1801
|
-
productId: string;
|
|
1802
|
-
resourceId: string;
|
|
1803
|
-
variantId?: string;
|
|
1804
|
-
startAt: string;
|
|
1805
|
-
endAt: string;
|
|
1806
|
-
bufferEndAt: string;
|
|
1807
|
-
status: ReservationStatus;
|
|
1808
|
-
expiresAt?: string;
|
|
1809
|
-
orderId?: string;
|
|
1810
|
-
customerId?: string;
|
|
1811
|
-
productName?: string;
|
|
1812
|
-
resourceName?: string;
|
|
1813
|
-
customerName?: string;
|
|
1814
|
-
outletId?: string;
|
|
1815
|
-
outletName?: string;
|
|
1816
|
-
timeZone?: string;
|
|
1817
|
-
}
|
|
1818
|
-
|
|
1819
1760
|
interface ActiveSession {
|
|
1820
1761
|
id: string;
|
|
1821
1762
|
stationId: string;
|
|
@@ -1968,6 +1909,19 @@ interface ProdFeeBreakdown {
|
|
|
1968
1909
|
taxRateId?: string;
|
|
1969
1910
|
applyTaxes: boolean;
|
|
1970
1911
|
}
|
|
1912
|
+
interface ProdModifierBreakdown {
|
|
1913
|
+
modifierId: string;
|
|
1914
|
+
modifierName: string;
|
|
1915
|
+
choiceId: string;
|
|
1916
|
+
choiceName: string;
|
|
1917
|
+
label?: string;
|
|
1918
|
+
unitPrice: number;
|
|
1919
|
+
quantity: number;
|
|
1920
|
+
amount: number;
|
|
1921
|
+
tax: number;
|
|
1922
|
+
taxTableId?: string;
|
|
1923
|
+
taxes?: OrderTax[];
|
|
1924
|
+
}
|
|
1971
1925
|
interface ProductTaxDetails {
|
|
1972
1926
|
tax: number;
|
|
1973
1927
|
prodDiscount: number;
|
|
@@ -1996,6 +1950,9 @@ interface ProductTaxDetails {
|
|
|
1996
1950
|
prodDiscounts?: ProdDiscountBreakdown[];
|
|
1997
1951
|
fees?: ProdFeeBreakdown[];
|
|
1998
1952
|
lineNetWithFees?: number;
|
|
1953
|
+
modifierDisplay?: number;
|
|
1954
|
+
modifierTax?: number;
|
|
1955
|
+
modifiers?: ProdModifierBreakdown[];
|
|
1999
1956
|
}
|
|
2000
1957
|
interface CustomSaleDetails {
|
|
2001
1958
|
tax: number;
|
|
@@ -2318,4 +2275,4 @@ interface PubsubEventMessage {
|
|
|
2318
2275
|
}
|
|
2319
2276
|
type ServiceChannelMessage = PosBrainReadyMessage | HostHelloMessage | ServiceInitMessage | BootstrapMessage | TokenRefreshMessage | SelectionMessage | HostShutdownMessage | ReaderCapabilitiesMessage | RuntimeReadyMessage | HostNavigateMessage | SyncProgressMessage | DeviceOpRequestMessage | DeviceOpResponseMessage | PubsubTopicsRequestMessage | PubsubTopicsListMessage | PubsubSubscribeMessage | PubsubEventMessage;
|
|
2320
2277
|
|
|
2321
|
-
export { type ActiveCart, type ActiveCartProduct, type ActiveCompany, type ActiveCustomSales, type ActiveCustomer, type ActiveEntityChanges, ActiveEntityType, type ActiveFullProduct, type ActiveOrder, type
|
|
2278
|
+
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 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 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 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 };
|
|
@@ -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":"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","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 /**\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';\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 /** 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"]}
|
|
@@ -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 /**\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';\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 /** 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"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@final-commerce/common",
|
|
3
|
-
"version": "2.3.0
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"description": "Shared utilities, types, constants, and engineering governance configs for the Final Commerce platform.",
|
|
5
5
|
"homepage": "https://github.com/Final-Commerce/common#readme",
|
|
6
6
|
"bugs": {
|