@final-commerce/common 2.7.0 → 2.7.1-online.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.
@@ -50,230 +50,6 @@ interface OrderTax {
50
50
  priority?: number;
51
51
  }
52
52
 
53
- interface OrderTip {
54
- percentage?: number;
55
- amount?: number;
56
- tipTo?: string;
57
- }
58
-
59
- interface OrderSummaryPayments {
60
- cardTotal: number;
61
- cashTotal: number;
62
- customTotal: number;
63
- cardProcessingFeesTotal: number;
64
- }
65
- interface OrderSummary {
66
- discountTotal: number;
67
- shippingTotal?: number;
68
- total: number;
69
- totalTaxes: number;
70
- isTaxInclusive: boolean;
71
- subtotalAfterFees: number;
72
- nonRevenueTotal?: number;
73
- grossSales?: number;
74
- lineDiscountTotal?: number;
75
- cartDiscountTotal?: number;
76
- feesTotal?: number;
77
- lineFeesTotal?: number;
78
- cartFeesTotal?: number;
79
- taxableFeesTotal?: number;
80
- nonTaxableFeesTotal?: number;
81
- modifiersTotal?: number;
82
- taxableModifiersTotal?: number;
83
- nonTaxableModifiersTotal?: number;
84
- totalTaxableSales?: number;
85
- totalNonTaxableSales?: number;
86
- tipTotal?: number;
87
- cashRounding: number;
88
- payments?: OrderSummaryPayments;
89
- totalBeforeTip?: number;
90
- amountPaid?: number;
91
- taxes: OrderTax[];
92
- tip?: OrderTip;
93
- }
94
-
95
- interface PriceModifierDetail {
96
- percentage: number;
97
- amount: number;
98
- label?: string;
99
- tax?: number;
100
- taxTableId?: string;
101
- taxRateId?: string;
102
- }
103
-
104
- interface OrderCartDiscount {
105
- amount: number;
106
- percentage: number;
107
- label?: string;
108
- }
109
-
110
- interface OrderCartFee {
111
- label: string;
112
- id: string;
113
- percentage: number;
114
- amount: number;
115
- taxName?: string;
116
- taxTableId?: string;
117
- tax?: number;
118
- taxes?: OrderTax[];
119
- }
120
-
121
- interface OrderPaymentMethod {
122
- paymentType: string;
123
- amount: number;
124
- transactionId: string;
125
- timestamp?: string;
126
- emv?: string | null;
127
- cashRounding?: number;
128
- change?: number;
129
- processor?: string;
130
- processorFee?: number;
131
- tendered?: number;
132
- tip?: OrderTip | null;
133
- }
134
-
135
- interface OrderPosData {
136
- outlet?: string;
137
- station?: string;
138
- employee?: string;
139
- }
140
-
141
- interface OrderAssignedUser {
142
- userId: string;
143
- assignedAt: string;
144
- }
145
-
146
- interface OrderInCart {
147
- active: boolean;
148
- stationId: string | null;
149
- since: string;
150
- }
151
-
152
- interface OrderCustomStatus {
153
- id: string;
154
- key?: string;
155
- label: string;
156
- setAt: string;
157
- setBy: string | null;
158
- }
159
-
160
- interface OrderLineItemDiscount {
161
- itemDiscounts?: PriceModifierDetail[];
162
- cartDiscount?: PriceModifierDetail;
163
- }
164
- interface OrderLineItemFee {
165
- cartFee?: PriceModifierDetail;
166
- itemFees?: PriceModifierDetail[];
167
- }
168
- interface OrderLineItemModifier {
169
- modifierId: string;
170
- modifierName: string;
171
- choiceId: string;
172
- choiceName: string;
173
- unitPrice: number;
174
- quantity: number;
175
- total: number;
176
- totalTax?: number;
177
- taxes?: OrderTax[];
178
- componentIndex?: number;
179
- }
180
- interface OrderLineItemComponent {
181
- productId: string;
182
- variantId: string;
183
- name: string;
184
- attributes?: string;
185
- sku?: string;
186
- productExternalId?: string;
187
- variantExternalId?: string;
188
- partName?: string;
189
- quantity: number;
190
- price: number;
191
- unitId?: string;
192
- unitAbbreviation?: string;
193
- unitRatioToBase?: number;
194
- stockQuantity?: number;
195
- stockVariantId?: string;
196
- taxTableId?: string;
197
- totalTax?: number;
198
- taxes?: OrderTax[];
199
- }
200
- interface OrderLineItem {
201
- id?: string;
202
- productId?: string;
203
- variantId?: string;
204
- name?: string;
205
- quantity?: number;
206
- manageStock?: boolean;
207
- price?: number;
208
- description?: string;
209
- sku?: string;
210
- totalTax?: number;
211
- total?: number;
212
- productExternalId?: string;
213
- variantExternalId?: string;
214
- lineItemExternalId?: string;
215
- internalId?: string;
216
- note?: string;
217
- image?: string;
218
- attributes?: string;
219
- taxes?: OrderTax[];
220
- discount?: OrderLineItemDiscount;
221
- fee?: OrderLineItemFee;
222
- modifiers?: OrderLineItemModifier[];
223
- components?: OrderLineItemComponent[];
224
- lineNetWithFees?: number;
225
- metadata?: Metadata[];
226
- stock?: number;
227
- subTotal?: number;
228
- unitId?: string;
229
- unitAbbreviation?: string;
230
- stockQuantity?: number;
231
- unitRatioToBase?: number;
232
- stockVariantId?: string;
233
- }
234
-
235
- interface OrderCustomSaleDiscount {
236
- cartDiscount: OrderCartDiscount;
237
- }
238
- interface OrderCustomSaleFee {
239
- cartFee: PriceModifierDetail;
240
- }
241
- interface OrderCustomSale {
242
- customSaleId: string;
243
- applyTaxes: boolean;
244
- quantity: number;
245
- name: string;
246
- price: number;
247
- totalTax: number;
248
- total: number;
249
- taxes?: OrderTax[];
250
- discount?: OrderCustomSaleDiscount;
251
- fee?: OrderCustomSaleFee;
252
- }
253
-
254
- interface OrderRefundSummary {
255
- total?: number;
256
- }
257
- interface OrderRefund {
258
- externalId?: string;
259
- reason?: string;
260
- summary?: OrderRefundSummary;
261
- }
262
-
263
- interface RefundCartDiscount {
264
- amount?: number;
265
- percentage?: number;
266
- }
267
- interface RefundItemDiscount {
268
- amount?: number;
269
- percentage?: number;
270
- label?: string;
271
- }
272
- interface RefundDiscount {
273
- cartDiscount?: RefundCartDiscount;
274
- itemDiscounts?: RefundItemDiscount[];
275
- }
276
-
277
53
  declare enum CurrencyCode {
278
54
  USD = "USD",
279
55
  EUR = "EUR",
@@ -544,6 +320,254 @@ declare enum ReservationStatus {
544
320
  EXPIRED = "expired"
545
321
  }
546
322
 
323
+ declare enum ShippingOptionType {
324
+ SHIP = "ship",
325
+ PICKUP = "pickup"
326
+ }
327
+ declare enum ShippingRateType {
328
+ FLAT = "flat"
329
+ }
330
+ declare enum ShippingChannel {
331
+ WEB = "web",
332
+ POS = "pos"
333
+ }
334
+
335
+ interface OrderShippingLine {
336
+ type: ShippingOptionType | `${ShippingOptionType}`;
337
+ name?: string;
338
+ amount: number;
339
+ zoneId?: string;
340
+ optionId?: string;
341
+ minDays?: number;
342
+ maxDays?: number;
343
+ pickupOutletId?: string;
344
+ taxes?: OrderTax[];
345
+ }
346
+
347
+ interface OrderTip {
348
+ percentage?: number;
349
+ amount?: number;
350
+ tipTo?: string;
351
+ }
352
+
353
+ interface OrderSummaryPayments {
354
+ cardTotal: number;
355
+ cashTotal: number;
356
+ customTotal: number;
357
+ cardProcessingFeesTotal: number;
358
+ }
359
+ interface OrderSummary {
360
+ discountTotal: number;
361
+ shippingTotal?: number;
362
+ total: number;
363
+ totalTaxes: number;
364
+ isTaxInclusive: boolean;
365
+ subtotalAfterFees: number;
366
+ nonRevenueTotal?: number;
367
+ grossSales?: number;
368
+ lineDiscountTotal?: number;
369
+ cartDiscountTotal?: number;
370
+ feesTotal?: number;
371
+ lineFeesTotal?: number;
372
+ cartFeesTotal?: number;
373
+ taxableFeesTotal?: number;
374
+ nonTaxableFeesTotal?: number;
375
+ modifiersTotal?: number;
376
+ taxableModifiersTotal?: number;
377
+ nonTaxableModifiersTotal?: number;
378
+ totalTaxableSales?: number;
379
+ totalNonTaxableSales?: number;
380
+ tipTotal?: number;
381
+ cashRounding: number;
382
+ payments?: OrderSummaryPayments;
383
+ totalBeforeTip?: number;
384
+ amountPaid?: number;
385
+ taxes: OrderTax[];
386
+ tip?: OrderTip;
387
+ }
388
+
389
+ interface PriceModifierDetail {
390
+ percentage: number;
391
+ amount: number;
392
+ label?: string;
393
+ tax?: number;
394
+ taxTableId?: string;
395
+ taxRateId?: string;
396
+ }
397
+
398
+ interface OrderCartDiscount {
399
+ amount: number;
400
+ percentage: number;
401
+ label?: string;
402
+ }
403
+
404
+ interface OrderCartFee {
405
+ label: string;
406
+ id: string;
407
+ percentage: number;
408
+ amount: number;
409
+ taxName?: string;
410
+ taxTableId?: string;
411
+ tax?: number;
412
+ taxes?: OrderTax[];
413
+ }
414
+
415
+ interface OrderPaymentMethod {
416
+ paymentType: string;
417
+ amount: number;
418
+ transactionId: string;
419
+ timestamp?: string;
420
+ emv?: string | null;
421
+ cashRounding?: number;
422
+ change?: number;
423
+ processor?: string;
424
+ processorFee?: number;
425
+ tendered?: number;
426
+ tip?: OrderTip | null;
427
+ }
428
+
429
+ interface OrderPosData {
430
+ outlet?: string;
431
+ station?: string;
432
+ employee?: string;
433
+ }
434
+
435
+ interface OrderAssignedUser {
436
+ userId: string;
437
+ assignedAt: string;
438
+ }
439
+
440
+ interface OrderInCart {
441
+ active: boolean;
442
+ stationId: string | null;
443
+ since: string;
444
+ }
445
+
446
+ interface OrderCustomStatus {
447
+ id: string;
448
+ key?: string;
449
+ label: string;
450
+ setAt: string;
451
+ setBy: string | null;
452
+ }
453
+
454
+ interface OrderLineItemDiscount {
455
+ itemDiscounts?: PriceModifierDetail[];
456
+ cartDiscount?: PriceModifierDetail;
457
+ }
458
+ interface OrderLineItemFee {
459
+ cartFee?: PriceModifierDetail;
460
+ itemFees?: PriceModifierDetail[];
461
+ }
462
+ interface OrderLineItemModifier {
463
+ modifierId: string;
464
+ modifierName: string;
465
+ choiceId: string;
466
+ choiceName: string;
467
+ unitPrice: number;
468
+ quantity: number;
469
+ total: number;
470
+ totalTax?: number;
471
+ taxes?: OrderTax[];
472
+ componentIndex?: number;
473
+ }
474
+ interface OrderLineItemComponent {
475
+ productId: string;
476
+ variantId: string;
477
+ name: string;
478
+ attributes?: string;
479
+ sku?: string;
480
+ productExternalId?: string;
481
+ variantExternalId?: string;
482
+ partName?: string;
483
+ quantity: number;
484
+ price: number;
485
+ unitId?: string;
486
+ unitAbbreviation?: string;
487
+ unitRatioToBase?: number;
488
+ stockQuantity?: number;
489
+ stockVariantId?: string;
490
+ taxTableId?: string;
491
+ totalTax?: number;
492
+ taxes?: OrderTax[];
493
+ }
494
+ interface OrderLineItem {
495
+ id?: string;
496
+ productId?: string;
497
+ variantId?: string;
498
+ name?: string;
499
+ quantity?: number;
500
+ manageStock?: boolean;
501
+ price?: number;
502
+ description?: string;
503
+ sku?: string;
504
+ totalTax?: number;
505
+ total?: number;
506
+ productExternalId?: string;
507
+ variantExternalId?: string;
508
+ lineItemExternalId?: string;
509
+ internalId?: string;
510
+ note?: string;
511
+ image?: string;
512
+ attributes?: string;
513
+ taxes?: OrderTax[];
514
+ discount?: OrderLineItemDiscount;
515
+ fee?: OrderLineItemFee;
516
+ modifiers?: OrderLineItemModifier[];
517
+ components?: OrderLineItemComponent[];
518
+ lineNetWithFees?: number;
519
+ metadata?: Metadata[];
520
+ stock?: number;
521
+ subTotal?: number;
522
+ unitId?: string;
523
+ unitAbbreviation?: string;
524
+ stockQuantity?: number;
525
+ unitRatioToBase?: number;
526
+ stockVariantId?: string;
527
+ }
528
+
529
+ interface OrderCustomSaleDiscount {
530
+ cartDiscount: OrderCartDiscount;
531
+ }
532
+ interface OrderCustomSaleFee {
533
+ cartFee: PriceModifierDetail;
534
+ }
535
+ interface OrderCustomSale {
536
+ customSaleId: string;
537
+ applyTaxes: boolean;
538
+ quantity: number;
539
+ name: string;
540
+ price: number;
541
+ totalTax: number;
542
+ total: number;
543
+ taxes?: OrderTax[];
544
+ discount?: OrderCustomSaleDiscount;
545
+ fee?: OrderCustomSaleFee;
546
+ }
547
+
548
+ interface OrderRefundSummary {
549
+ total?: number;
550
+ }
551
+ interface OrderRefund {
552
+ externalId?: string;
553
+ reason?: string;
554
+ summary?: OrderRefundSummary;
555
+ }
556
+
557
+ interface RefundCartDiscount {
558
+ amount?: number;
559
+ percentage?: number;
560
+ }
561
+ interface RefundItemDiscount {
562
+ amount?: number;
563
+ percentage?: number;
564
+ label?: string;
565
+ }
566
+ interface RefundDiscount {
567
+ cartDiscount?: RefundCartDiscount;
568
+ itemDiscounts?: RefundItemDiscount[];
569
+ }
570
+
547
571
  interface RefundLineItem {
548
572
  taxes?: OrderTax[];
549
573
  discount?: RefundDiscount;
@@ -975,6 +999,7 @@ interface Order extends BaseEntity {
975
999
  notes: OrderNote$1[];
976
1000
  billing?: Address$1;
977
1001
  shipping?: Address$1;
1002
+ shippingLine?: OrderShippingLine;
978
1003
  lineItems: Partial<OrderLineItem>[];
979
1004
  customSales?: OrderCustomSale[];
980
1005
  nonRevenueItems?: NonRevenueItem$1[];
@@ -1905,6 +1930,48 @@ interface CartReservation extends OrderReservation {
1905
1930
  fees?: CustomFee[];
1906
1931
  }
1907
1932
 
1933
+ interface ShippingPriceTier {
1934
+ from: number;
1935
+ price: number;
1936
+ }
1937
+ interface ShippingOptionRule {
1938
+ id: string;
1939
+ type: ShippingOptionType | `${ShippingOptionType}`;
1940
+ rate?: ShippingRateType | `${ShippingRateType}`;
1941
+ name?: string | null;
1942
+ price: number;
1943
+ priceByTotal?: ShippingPriceTier[] | null;
1944
+ freeOver?: number | null;
1945
+ minDays?: number | null;
1946
+ maxDays?: number | null;
1947
+ channels: (ShippingChannel | `${ShippingChannel}`)[];
1948
+ outletId?: string | null;
1949
+ }
1950
+
1951
+ interface CartAddress {
1952
+ firstName?: string;
1953
+ lastName?: string;
1954
+ address1?: string;
1955
+ address2?: string;
1956
+ city?: string;
1957
+ state?: string;
1958
+ postCode?: string;
1959
+ country?: string;
1960
+ fromCustomer?: boolean;
1961
+ }
1962
+ interface CartShipping {
1963
+ zoneId: string;
1964
+ optionId: string;
1965
+ type: ShippingOptionType | `${ShippingOptionType}`;
1966
+ name: string | null;
1967
+ amount: number;
1968
+ taxes?: Tax[];
1969
+ minDays: number | null;
1970
+ maxDays: number | null;
1971
+ outletId: string | null;
1972
+ rule?: Pick<ShippingOptionRule, 'price' | 'priceByTotal' | 'freeOver'>;
1973
+ }
1974
+
1908
1975
  interface ActiveCustomSales {
1909
1976
  id: string;
1910
1977
  name: string;
@@ -1940,6 +2007,10 @@ interface ActiveCart {
1940
2007
  amountToBeCharged: number;
1941
2008
  customer?: Partial<ActiveCustomer | null> | null;
1942
2009
  orderNotes?: string;
2010
+ shippingAddress?: CartAddress | null;
2011
+ billingAddress?: CartAddress | null;
2012
+ shipping?: CartShipping | null;
2013
+ shippingTotal?: number;
1943
2014
  cartTotal?: number;
1944
2015
  orderTotal?: number;
1945
2016
  orderId?: string;
@@ -2053,6 +2124,7 @@ declare enum ProcessorType {
2053
2124
  REDEEM = "Redeem",
2054
2125
  INTEGRATION = "Integration",
2055
2126
  PAYMENT_LINK = "PaymentLink",
2127
+ ONLINE_PAYMENT = "OnlinePayment",
2056
2128
  EXTERNAL = "External"
2057
2129
  }
2058
2130
 
@@ -2263,6 +2335,7 @@ interface CalculatedTaxDetails {
2263
2335
  };
2264
2336
  totalTaxes: TaxesDetails;
2265
2337
  cartFees: CartFeesDetails[];
2338
+ shipping?: CartFeesDetails;
2266
2339
  }
2267
2340
  interface TipData {
2268
2341
  value: number;
@@ -2560,4 +2633,4 @@ interface PubsubEventMessage {
2560
2633
  }
2561
2634
  type ServiceChannelMessage = PosBrainReadyMessage | HostHelloMessage | ServiceInitMessage | BootstrapMessage | TokenRefreshMessage | RequestTokenRefreshMessage | SelectionMessage | HostShutdownMessage | ReaderCapabilitiesMessage | PrinterSettingsMessage | RuntimeReadyMessage | HostNavigateMessage | SyncProgressMessage | DeviceOpRequestMessage | DeviceOpResponseMessage | PubsubTopicsRequestMessage | PubsubTopicsListMessage | PubsubSubscribeMessage | PubsubEventMessage;
2562
2635
 
2563
- export { type ActiveCart, type ActiveCartProduct, type ActiveCompany, type ActiveCustomSales, type ActiveCustomer, type ActiveEntityChanges, ActiveEntityType, type ActiveFullProduct, type ActiveOrder, type ActiveOrderReservation, 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 AdyenCardEntryConfig, type Attribute, type AttributeEmbedded, type AttributeOption, type BaseDocument, type BaseEntity, type BaseTile, type Booking, type BookingAvailability, type BookingResource, type BookingSlot, type BookingSlotResource, type BootstrapMessage, type CalculatedTaxDetails, type CartDiscountItem, type CartFeeItem, type CartFeeTaxEntry, type CartFeesDetails, type CartLineComponent, type CartLineModifier, type CartReservation, type CashDrawerPolicy, type CashPaymentSettings, type CashRoundingIncrement, type Category, type CompanyExtension, type CompanySettingsEavValue, type CompanySettingsEavValueType, type Composite, type CompositeChoice, type CompositeItem, type CompositeItemUnavailable, type CompositePart, type CompositePick, 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 OrderAssignedUser, type OrderCartDiscount, type OrderCartFee, type OrderCustomSale, type OrderCustomSaleDiscount, type OrderCustomSaleFee, type OrderCustomStatus, type OrderInCart, type OrderLineItem, type OrderLineItemComponent, type OrderLineItemDiscount, type OrderLineItemFee, type OrderLineItemModifier, type OrderNote, type OrderPaymentMethod, type OrderPosData, type OrderRefund, type OrderRefundSummary, type OrderReservation, 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, type PrinterSettings, type PrinterSettingsMessage, 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 RequestTokenRefreshMessage, 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 };
2636
+ export { type ActiveCart, type ActiveCartProduct, type ActiveCompany, type ActiveCustomSales, type ActiveCustomer, type ActiveEntityChanges, ActiveEntityType, type ActiveFullProduct, type ActiveOrder, type ActiveOrderReservation, 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 AdyenCardEntryConfig, type Attribute, type AttributeEmbedded, type AttributeOption, type BaseDocument, type BaseEntity, type BaseTile, type Booking, type BookingAvailability, type BookingResource, type BookingSlot, type BookingSlotResource, type BootstrapMessage, type CalculatedTaxDetails, type CartAddress, type CartDiscountItem, type CartFeeItem, type CartFeeTaxEntry, type CartFeesDetails, type CartLineComponent, type CartLineModifier, type CartReservation, type CartShipping, type CashDrawerPolicy, type CashPaymentSettings, type CashRoundingIncrement, type Category, type CompanyExtension, type CompanySettingsEavValue, type CompanySettingsEavValueType, type Composite, type CompositeChoice, type CompositeItem, type CompositeItemUnavailable, type CompositePart, type CompositePick, 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 OrderAssignedUser, type OrderCartDiscount, type OrderCartFee, type OrderCustomSale, type OrderCustomSaleDiscount, type OrderCustomSaleFee, type OrderCustomStatus, type OrderInCart, type OrderLineItem, type OrderLineItemComponent, type OrderLineItemDiscount, type OrderLineItemFee, type OrderLineItemModifier, type OrderNote, type OrderPaymentMethod, type OrderPosData, type OrderRefund, type OrderRefundSummary, type OrderReservation, type OrderShippingLine, 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, type PrinterSettings, type PrinterSettingsMessage, 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 RequestTokenRefreshMessage, 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 };
@@ -49,6 +49,7 @@ var ProcessorType = /* @__PURE__ */ ((ProcessorType2) => {
49
49
  ProcessorType2["REDEEM"] = "Redeem";
50
50
  ProcessorType2["INTEGRATION"] = "Integration";
51
51
  ProcessorType2["PAYMENT_LINK"] = "PaymentLink";
52
+ ProcessorType2["ONLINE_PAYMENT"] = "OnlinePayment";
52
53
  ProcessorType2["EXTERNAL"] = "External";
53
54
  return ProcessorType2;
54
55
  })(ProcessorType || {});
@@ -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 * Money taken outside the terminal (online, a delivery app, a voucher…), recorded under\n * a label with no device and no cash drawer. The order uses paymentType `external` —\n * deliberately distinct from `custom`, the Custom Payments extension's billed tender.\n */\n EXTERNAL = 'External',\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 /** From the cart row: the composite component it applies to, so rows arrive split per component (B28). */\n componentIndex?: number;\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
+ {"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 * A shopper paying on a published online store, with their own card, in their own browser.\n * Written by hub-api's settle for an order whose `source` is `OrderPlatform.ONLINE_STORE`.\n *\n * SEPARATE FROM `PAYMENT_LINK` DELIBERATELY, even though both settle through the same Adyen\n * notification path: reports group a tender by `(paymentType, processor)`, so sharing a label\n * would fold every website sale into the merchant's Pay-by-Link row with no way to tell them\n * apart. Same channel-not-brand rule as the rest of this enum — the PSP stays on the\n * transaction's `paymentData.processor`.\n *\n * Card-not-present for receipt purposes, like `PAYMENT_LINK`, but the card was entered by the\n * SHOPPER on an Ecommerce checkout rather than by the merchant or on a hosted page.\n */\n ONLINE_PAYMENT = 'OnlinePayment',\n /**\n * Money taken outside the terminal (online, a delivery app, a voucher…), recorded under\n * a label with no device and no cash drawer. The order uses paymentType `external` —\n * deliberately distinct from `custom`, the Custom Payments extension's billed tender.\n */\n EXTERNAL = 'External',\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 /** From the cart row: the composite component it applies to, so rows arrive split per component (B28). */\n componentIndex?: number;\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 /** The cart's shipping, taxed like a cart fee against the standard tax table. Absent when nothing ships. */\n shipping?: 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;AAcf,EAAAA,eAAA,oBAAiB;AAMjB,EAAAA,eAAA,cAAW;AA3CD,SAAAA;AAAA,GAAA;;;ACoKL,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"]}
@@ -20,6 +20,7 @@ var ProcessorType = /* @__PURE__ */ ((ProcessorType2) => {
20
20
  ProcessorType2["REDEEM"] = "Redeem";
21
21
  ProcessorType2["INTEGRATION"] = "Integration";
22
22
  ProcessorType2["PAYMENT_LINK"] = "PaymentLink";
23
+ ProcessorType2["ONLINE_PAYMENT"] = "OnlinePayment";
23
24
  ProcessorType2["EXTERNAL"] = "External";
24
25
  return ProcessorType2;
25
26
  })(ProcessorType || {});