@tallyui/pos 3.5.3 → 3.7.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.ts +113 -32
- package/dist/index.js +179 -38
- package/package.json +6 -6
- package/src/index.ts +6 -5
- package/src/outbox/register-outbox.ts +9 -4
- package/src/pos-order/needs-attention.ts +2 -1
- package/src/pos-order/open.ts +10 -234
- package/src/receipt/build-receipt-data.ts +9 -0
- package/src/receipt/index.ts +2 -1
- package/src/receipt/types.ts +22 -0
- package/src/register/index.ts +2 -1
- package/src/register/open.ts +30 -0
- package/src/register/register-commands.ts +5 -3
- package/src/register/register-document.ts +1 -1
- package/src/register/schemas.ts +27 -9
- package/src/register/session-store.ts +20 -1
- package/src/register/use-register-session.ts +7 -2
- package/src/rxdb/open-migrated-collection.ts +256 -0
- package/src/tender/index.ts +2 -0
- package/src/tender/tender-void.ts +66 -0
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { ReactNode } from 'react';
|
|
3
|
-
import { Money, TaxRounding, StoreSettings, TallyConnector, SyncContext, StoreSettingsChoice, StoreSettingsChoices, ProductTraits, ProductCategory, TraitContext, OrderCreateLine, PaymentMethodKind, CommandServerRefs, CommandWarning, CommandError, ServerCapabilities, OrderCreateEnvelope, RegisterCommandType, RegisterCommandResult, VariantSummary, CommandResult, AnyCommandEnvelope, CommandEnvelope, OrderCreatePayload, RegisterCommandEnvelope } from '@tallyui/core';
|
|
3
|
+
import { Money, TaxRounding, StoreSettings, TallyConnector, SyncContext, StoreSettingsChoice, StoreSettingsChoices, ProductTraits, ProductCategory, TraitContext, OrderCreateLine, PaymentMethodKind, CommandServerRefs, CommandWarning, CommandError, ServerCapabilities, OrderCreateEnvelope, RegisterCommandType, RegisterCommandResult, RegisterSessionTransitionPayload, VariantSummary, CommandResult, AnyCommandEnvelope, CommandEnvelope, OrderCreatePayload, RegisterCommandEnvelope } from '@tallyui/core';
|
|
4
4
|
export { getProductStock, withStockOverlay } from '@tallyui/core';
|
|
5
5
|
export { countFresh, readFresh, watchFresh } from '@tallyui/core/rxdb';
|
|
6
6
|
import * as rxdb from 'rxdb';
|
|
@@ -534,6 +534,28 @@ declare function useParkedSales(drafts: RxCollection | undefined): {
|
|
|
534
534
|
discard: (id: string) => Promise<void>;
|
|
535
535
|
};
|
|
536
536
|
|
|
537
|
+
/** WCPOS receipt data schema version these blocks follow (wiki: fiscal groundwork, receipt identity and QR §2). */
|
|
538
|
+
declare const RECEIPT_SCHEMA_VERSION = "1.4.0";
|
|
539
|
+
/** 1.4 `software`: which software produced the receipt. */
|
|
540
|
+
interface ReceiptSoftware {
|
|
541
|
+
name: string;
|
|
542
|
+
plugin_version: string;
|
|
543
|
+
app_version: string;
|
|
544
|
+
app_build: string;
|
|
545
|
+
platform: string;
|
|
546
|
+
}
|
|
547
|
+
/** 1.4 `register`: `{ id: '', name: '' }` when there is none. */
|
|
548
|
+
interface ReceiptRegister {
|
|
549
|
+
id: string;
|
|
550
|
+
name: string;
|
|
551
|
+
}
|
|
552
|
+
/** 1.4 `fiscal` identity fields a till can know. Sale time, zone and counter come with the per-register sale counter (#475). */
|
|
553
|
+
interface ReceiptFiscal {
|
|
554
|
+
document_type: 'sale' | 'refund' | 'void' | 'cancellation' | 'closure' | 'x_report';
|
|
555
|
+
is_reprint: boolean;
|
|
556
|
+
reprint_count: number;
|
|
557
|
+
qr_payload: string;
|
|
558
|
+
}
|
|
537
559
|
interface ReceiptLineItem {
|
|
538
560
|
name: string;
|
|
539
561
|
sku: string;
|
|
@@ -549,6 +571,10 @@ interface ReceiptLineItem {
|
|
|
549
571
|
}[];
|
|
550
572
|
}
|
|
551
573
|
interface ReceiptData {
|
|
574
|
+
schemaVersion: string;
|
|
575
|
+
software: ReceiptSoftware;
|
|
576
|
+
register: ReceiptRegister;
|
|
577
|
+
fiscal: ReceiptFiscal;
|
|
552
578
|
header: {
|
|
553
579
|
storeName: string;
|
|
554
580
|
storeAddress?: string;
|
|
@@ -602,6 +628,9 @@ interface ReceiptConfig {
|
|
|
602
628
|
storeAddress?: string;
|
|
603
629
|
cashier?: string;
|
|
604
630
|
register?: string;
|
|
631
|
+
registerName?: string;
|
|
632
|
+
software?: Partial<ReceiptSoftware>;
|
|
633
|
+
fiscal?: Partial<ReceiptFiscal>;
|
|
605
634
|
taxLabels?: Record<number, string>;
|
|
606
635
|
}
|
|
607
636
|
|
|
@@ -882,27 +911,10 @@ declare class PosOrderOpenClosedError extends Error {
|
|
|
882
911
|
constructor(databaseName: string);
|
|
883
912
|
}
|
|
884
913
|
/**
|
|
885
|
-
* Adds `pos_orders` to `db` and resolves once no order of an older version is left to migrate.
|
|
886
|
-
*
|
|
887
|
-
*
|
|
888
|
-
*
|
|
889
|
-
*
|
|
890
|
-
* RxDB 17.5.0 trusts the status its last migration stored: a leftover `ERROR` rejects
|
|
891
|
-
* `migratePromise` at once while the migration keeps running (a close then interrupts it), and a
|
|
892
|
-
* `DONE` left before a rollback resolves it before the older version's new orders have moved. So the
|
|
893
|
-
* collection is added without `autoMigrate` and the migration is started and awaited directly: RxDB
|
|
894
|
-
* 17.5's `startMigration()` ignores a leftover status (only `migratePromise()` trusts a leftover
|
|
895
|
-
* `DONE`), which lets a rolled-back or interrupted run migrate again and recovers its orders. The
|
|
896
|
-
* status is reset first so its record describes the new run, and a failed run's checkpoint is
|
|
897
|
-
* removed (RxDB bug 1); never an order or its storage.
|
|
898
|
-
*
|
|
899
|
-
* A close waits for the open, up to `POS_ORDER_MIGRATION_CLOSE_WAIT_MS`, and cancels a running
|
|
900
|
-
* migration (RxDB 17.5). Called once the database's close has begun, when the close cancels its
|
|
901
|
-
* migration, or when the close stops waiting, it rejects with `PosOrderOpenClosedError`
|
|
902
|
-
* (`code: 'POS_ORDER_OPEN_CLOSED'`) before any further write: reopen and call it again. Any other
|
|
903
|
-
* rejection (DM4, a storage error) is a real failure.
|
|
904
|
-
*
|
|
905
|
-
* `closeWaitMs` is for tests only; the first open on a database sets it for that database's close.
|
|
914
|
+
* Adds `pos_orders` to `db` and resolves once no order of an older version is left to migrate.
|
|
915
|
+
* On DM4 it rejects after the migration has stopped and closes the collection. It rejects with
|
|
916
|
+
* `PosOrderOpenClosedError` when the database is closing. `closeWaitMs` is for tests only.
|
|
917
|
+
* See `openMigratedCollection` for the migration and close mechanism.
|
|
906
918
|
*/
|
|
907
919
|
declare function addPosOrderCollection(db: RxDatabase, closeWaitMs?: number): Promise<RxCollection<PosOrder>>;
|
|
908
920
|
|
|
@@ -921,6 +933,7 @@ declare function getDeviceId(storage: {
|
|
|
921
933
|
* session closed (`lateSessionId`) or with local warnings (whatever the sync status), or pending with a `commandId` in
|
|
922
934
|
* `stuckCommandIds` (the outbox's `OutboxState.stuck`: the store keeps failing it), newest first.
|
|
923
935
|
* A warning code this till version doesn't know is not shown here (`knownWarnings`). Never changes `orders`.
|
|
936
|
+
* `register_session_unknown` is not shown, because the store counts the order once its session arrives (ADR-078).
|
|
924
937
|
*/
|
|
925
938
|
declare function needsAttention(orders: PosOrder[], options?: {
|
|
926
939
|
stuckCommandIds?: readonly string[];
|
|
@@ -1042,7 +1055,7 @@ declare const denominations: Record<string, number[]>;
|
|
|
1042
1055
|
/**
|
|
1043
1056
|
* The register's local collections (ADR-032): sessions, cash movements and closures. Port
|
|
1044
1057
|
* provenance (ADR-032 amendment 1): WCPOS `next` `3b5331b5c`, where they are at versions 1, 0
|
|
1045
|
-
* and 1;
|
|
1058
|
+
* and 1; sessions are at version 1 here (ADR-078), movements and closures at version 0.
|
|
1046
1059
|
*
|
|
1047
1060
|
* All three are local only, like `pos_orders`: the app creates them and never replicates them
|
|
1048
1061
|
* (a replicated collection must never take local writes, #53). WCPOS's outbox fields
|
|
@@ -1061,7 +1074,10 @@ interface RegisterSession {
|
|
|
1061
1074
|
register_id: string;
|
|
1062
1075
|
/** The app's neutral store key (see `bindRegister`). */
|
|
1063
1076
|
store_key?: string | null;
|
|
1064
|
-
status
|
|
1077
|
+
/** Stored status is an open string so a later local state costs no migration (ADR-078 decision 9); the union names today's states. */
|
|
1078
|
+
status: 'open' | 'counting' | 'closed' | 'conflict' | 'superseded';
|
|
1079
|
+
/** The store session this local id was resumed as (ADR-078 decision 2), never the session that superseded it; null until a resume. */
|
|
1080
|
+
server_session_id?: string | null;
|
|
1065
1081
|
/** The store's day the session opened, `yyyy-MM-dd`. */
|
|
1066
1082
|
business_day?: string;
|
|
1067
1083
|
opened_at_gmt: string;
|
|
@@ -1132,16 +1148,31 @@ interface Closure {
|
|
|
1132
1148
|
}
|
|
1133
1149
|
declare const registerSessionSchema: RxJsonSchema<RegisterSession>;
|
|
1134
1150
|
/**
|
|
1135
|
-
*
|
|
1136
|
-
*
|
|
1151
|
+
* @deprecated Use `addRegisterSessionCollection` to open register_sessions.
|
|
1152
|
+
* Kept so old callers compile but fail at start instead of migrating on RxDB's own path.
|
|
1137
1153
|
*/
|
|
1138
|
-
declare function registerSessionCollection():
|
|
1139
|
-
readonly schema: RxJsonSchema<RegisterSession>;
|
|
1140
|
-
readonly localDocuments: true;
|
|
1141
|
-
};
|
|
1154
|
+
declare function registerSessionCollection(): never;
|
|
1142
1155
|
declare const cashMovementSchema: RxJsonSchema<CashMovement>;
|
|
1143
1156
|
declare const closureSchema: RxJsonSchema<Closure>;
|
|
1144
1157
|
|
|
1158
|
+
/** `addRegisterSessionCollection`'s logger: attach a sink to see dropped status writes during close. */
|
|
1159
|
+
declare const registerSessionsLogger: Logger;
|
|
1160
|
+
/** How long a close waits for the open; see `openMigratedCollection` for the cancellation mechanism. */
|
|
1161
|
+
declare const REGISTER_SESSION_MIGRATION_CLOSE_WAIT_MS = 10000;
|
|
1162
|
+
/** The database is closing; no session is lost. Reopen the database and call the opener again. */
|
|
1163
|
+
declare class RegisterSessionOpenClosedError extends Error {
|
|
1164
|
+
readonly databaseName: string;
|
|
1165
|
+
readonly code = "REGISTER_SESSION_OPEN_CLOSED";
|
|
1166
|
+
constructor(databaseName: string);
|
|
1167
|
+
}
|
|
1168
|
+
/**
|
|
1169
|
+
* Adds `register_sessions` and resolves once no older session is left to migrate; the register
|
|
1170
|
+
* document, a local document, is kept. On DM4 it rejects after migration stops and closes the collection.
|
|
1171
|
+
* A closing database rejects with `RegisterSessionOpenClosedError`; `closeWaitMs` is for tests only.
|
|
1172
|
+
* See `openMigratedCollection` for the migration and close mechanism.
|
|
1173
|
+
*/
|
|
1174
|
+
declare function addRegisterSessionCollection(db: RxDatabase, closeWaitMs?: number): Promise<RxCollection<RegisterSession>>;
|
|
1175
|
+
|
|
1145
1176
|
type RegisterHost = RxLocalDocumentMutation<any>;
|
|
1146
1177
|
type RegisterCounters = {
|
|
1147
1178
|
last_closure_number: number;
|
|
@@ -1225,6 +1256,11 @@ declare class RegisterSessionRequiredError extends Error {
|
|
|
1225
1256
|
declare class RegisterSessionClosedError extends Error {
|
|
1226
1257
|
constructor();
|
|
1227
1258
|
}
|
|
1259
|
+
/** A stored session status outside the known set (written by a later build); its message can be shown to a cashier as it is. */
|
|
1260
|
+
declare class RegisterNeedsUpgradeError extends Error {
|
|
1261
|
+
readonly code = "REGISTER_NEEDS_UPGRADE";
|
|
1262
|
+
constructor();
|
|
1263
|
+
}
|
|
1228
1264
|
/** ADR-068 6a: movement amounts must be safe integers, positive for paid_in/paid_out and zero for no_sale. */
|
|
1229
1265
|
declare class RegisterMovementAmountError extends Error {
|
|
1230
1266
|
constructor(type: 'paid_in' | 'paid_out' | 'no_sale', amountMinor: number);
|
|
@@ -1245,6 +1281,8 @@ declare class RegisterMovementStrandedError extends Error {
|
|
|
1245
1281
|
session_id: string;
|
|
1246
1282
|
});
|
|
1247
1283
|
}
|
|
1284
|
+
/** Whether this build knows the stored session status. */
|
|
1285
|
+
declare function isKnownSessionStatus(status: string): boolean;
|
|
1248
1286
|
declare const openSessionSelector: {
|
|
1249
1287
|
readonly status: "open";
|
|
1250
1288
|
};
|
|
@@ -1806,6 +1844,7 @@ type BuiltCommand = Pick<RegisterCommand, 'key' | 'type' | 'payload'> & {
|
|
|
1806
1844
|
};
|
|
1807
1845
|
declare function sessionOpenCommand(s: RegisterSession): BuiltCommand;
|
|
1808
1846
|
declare function sessionTransitionCommand(s: RegisterSession & {
|
|
1847
|
+
status: RegisterSessionTransitionPayload['status'];
|
|
1809
1848
|
status_at: string;
|
|
1810
1849
|
}): BuiltCommand;
|
|
1811
1850
|
declare function movementCommand(m: CashMovement): BuiltCommand;
|
|
@@ -1840,7 +1879,7 @@ declare class RegisterApprovalRequiredError extends Error {
|
|
|
1840
1879
|
constructor();
|
|
1841
1880
|
}
|
|
1842
1881
|
interface UseRegisterSessionOptions {
|
|
1843
|
-
/** `register_sessions`, created with `
|
|
1882
|
+
/** `register_sessions`, created with `addRegisterSessionCollection`; `null` while it opens. */
|
|
1844
1883
|
sessions: RegisterSessionCollection | null;
|
|
1845
1884
|
/** `cash_movements`; `null` while it opens. */
|
|
1846
1885
|
movements: CashMovementCollection | null;
|
|
@@ -1881,6 +1920,8 @@ interface UseRegisterSessionOptions {
|
|
|
1881
1920
|
}
|
|
1882
1921
|
declare function useRegisterSession(options: UseRegisterSessionOptions): {
|
|
1883
1922
|
session: RegisterSession | null;
|
|
1923
|
+
/** Any unknown session status in the current snapshot means the register needs upgrade. */
|
|
1924
|
+
needsUpgrade: boolean;
|
|
1884
1925
|
movements: CashMovement[];
|
|
1885
1926
|
expected: Record<string, number>;
|
|
1886
1927
|
salesCount: number;
|
|
@@ -1909,6 +1950,7 @@ declare function useRegisterSession(options: UseRegisterSessionOptions): {
|
|
|
1909
1950
|
* Refuses with `RegisterSessionAlreadyOpenError` while the register has a live session or
|
|
1910
1951
|
* another open is running (in any hook instance), and with `RegisterCloseIncompleteError`
|
|
1911
1952
|
* while an earlier close hasn't finished: a new session would lock the till behind it.
|
|
1953
|
+
* An unknown stored status refuses with `RegisterNeedsUpgradeError`.
|
|
1912
1954
|
*/
|
|
1913
1955
|
openSession: (input: {
|
|
1914
1956
|
expectedFloatMinor: number | null;
|
|
@@ -2496,4 +2538,43 @@ declare function planLegs(plan: TenderPlan, rowsSinceFrom: {
|
|
|
2496
2538
|
};
|
|
2497
2539
|
};
|
|
2498
2540
|
|
|
2499
|
-
|
|
2541
|
+
/**
|
|
2542
|
+
* One record per voided tender leg: its v2 ledger row plus the provenance a v2 `void`
|
|
2543
|
+
* fiscal record carries (TallyUI#479). Write-once: insert only, never update or delete;
|
|
2544
|
+
* a replay of a known `paymentId` is a no-op for the caller to handle.
|
|
2545
|
+
* Local only, never replicated. No device-side number or checksum:
|
|
2546
|
+
* v2 numbers records on the server.
|
|
2547
|
+
*/
|
|
2548
|
+
|
|
2549
|
+
interface TenderVoid {
|
|
2550
|
+
/** The voided leg's client-minted id (the `clientPaymentId` order.create would send). Primary key, write-once. */
|
|
2551
|
+
paymentId: string;
|
|
2552
|
+
/** The sale's id (`PosOrder.saleId`). */
|
|
2553
|
+
saleId: string;
|
|
2554
|
+
type: 'void';
|
|
2555
|
+
method: PaymentMethodKind;
|
|
2556
|
+
amountMinor: number;
|
|
2557
|
+
/** Cash only: what the customer handed over. */
|
|
2558
|
+
tenderedMinor?: number;
|
|
2559
|
+
/** An external terminal's reference. */
|
|
2560
|
+
reference?: string;
|
|
2561
|
+
/** ISO 4217 code. */
|
|
2562
|
+
currency: string;
|
|
2563
|
+
/** `removed`: the cashier removed this one leg. `cancelled`: the cashier backed out of tendering. */
|
|
2564
|
+
reason: 'removed' | 'cancelled';
|
|
2565
|
+
/** Device clock at the void, ISO 8601. */
|
|
2566
|
+
deviceTime: string;
|
|
2567
|
+
/** The device's IANA time zone. */
|
|
2568
|
+
deviceTz: string;
|
|
2569
|
+
/** The bound register's id, `''` when no register is bound. */
|
|
2570
|
+
registerId: string;
|
|
2571
|
+
sessionId?: string;
|
|
2572
|
+
/** The cashier, as the backend's user id string. */
|
|
2573
|
+
cashierRef: string;
|
|
2574
|
+
}
|
|
2575
|
+
declare const tenderVoidSchema: RxJsonSchema<TenderVoid>;
|
|
2576
|
+
declare function tenderVoidCollection(): {
|
|
2577
|
+
readonly schema: RxJsonSchema<TenderVoid>;
|
|
2578
|
+
};
|
|
2579
|
+
|
|
2580
|
+
export { type Actor, type AddLineInput, type AppliedDiscount, type BackendNotFound, type BasketLine, CartError, type CashMovement, type CashMovementCollection, type CatalogueEntry, type CatalogueGridColumns, type CatalogueView, type CatalogueViewAction, type CatalogueViewState, type ChargeInput, type ChargeLine, type Closure, type ClosureCollection, type ClosureContext, type ClosureScope, type CommandTransport, type Correction, CurrencyProvider, type CurrencyProviderProps, type CustomerSummary, DEFAULT_CATALOGUE_VIEW_STATE, DISCOUNTS_UNSUPPORTED, type Discount, type DisplayLine, type DisplayTotals, type FeeLine, type FinalizeOptions, type HttpTransportOptions, type LedgerRow, type LineItem, type LineTaxLine, type LogEntry, type LogLevel, type LogSink, type Logger, MAX_TENDER_MINOR, MICROS_PER_MINOR, type Movement$1 as Movement, type MovementType, type Order, type OrderBuilder, type OrderBuilderOptions, OrderContentMismatchError, type OrderManager, type OrderManagerOptions, type OrderOutbox, type OrderOutboxOptions, type OrderTaxTotals, type OrderTransportContext, type OutboxState, PRODUCT_SORT_FIELDS, type ParkedOrderSummary, type Payment, type PaymentMethod, type PaymentTransport, type PlanLeg, type PosOrder, type PosOrderLine, type PosOrderLocalWarning, PosOrderOpenClosedError, type PosOrderPayment, type PosOrderServerFailures, type PosOrderSyncStatus, type ProductSort, type ProductSortValue, RECEIPT_SCHEMA_VERSION, REGISTER_SESSION_MIGRATION_CLOSE_WAIT_MS, type RateTaxLine, type ReceiptConfig, type ReceiptData, type ReceiptFiscal, type ReceiptLineItem, type ReceiptRegister, type ReceiptSoftware, type RecordedFigures, RegisterApprovalRequiredError, type RegisterBucket, RegisterCloseIncompleteError, type RegisterCommand, type RegisterCommandCollection, type RegisterCounters, type RegisterDocument, type RegisterFact, type RegisterHost, RegisterIdInvalidError, RegisterMovementAmountError, RegisterMovementReasonError, RegisterMovementStrandedError, RegisterNeedsUpgradeError, type RegisterOutbox, type RegisterOutboxOptions, type RegisterSession, RegisterSessionAlreadyOpenError, RegisterSessionClosedError, type RegisterSessionCollection, RegisterSessionOpenClosedError, RegisterSessionRequiredError, type RegisterStore, RegisterTenderInProgressError, type Repository, type ResolveStoreSettingsOptions, SALE_SAVING, type SaleStage, type SentOrder, type ShippingLine, type SplitTab, type StoreSettingsResolution, type StoreSettingsState, TAX_ROUNDING_MIXED_NOTE, type TaxContext, type TaxLineInput, TaxProvider, type TaxProviderProps, type TaxRateMap, type TenderAction, type TenderKey, type TenderLineId, type TenderPlan, type TenderState, type TenderView, type TenderVoid, type TransportOutcome, UnsupportedOrderVersionError, type UseOrderOutboxOptions, type UseOrderOutboxResult, type UseRegisterOutboxOptions, type UseRegisterOutboxResult, type UseRegisterSessionOptions, activePlan, addEntryToCart, addPosOrderCollection, addRegisterSessionCollection, advancePerpetual, allocateOrderDiscount, appliedMinor, backToSelling, bindRegister, buildClosureDocument, buildReceiptData, buildXReportDocument, callbackSink, cashMovementSchema, catalogueEntries, catalogueViewReducer, changeMinor, clampClosureScope, closeNeedsApproval, closeSession, closureCommand, closureSchema, computeOrderTax, consoleSink, countVariance, createBackendNotFound, createHttpCommandTransport, createLogger, createOrderBuilder, createOrderManager, createOrderOutbox, createRegisterOutbox, createRepository, denominationTotal, denominations, deriveExpected, deriveSettled, ensureRegister, evenSplitShareMinor, exportCsv, finalizeOrder, findEntryByCode, formatClosureDate, getBoundRegisterId, getDeviceId, inCategory, initTenderState, initialTenderState, isKnownSessionStatus, isServerDecimal, labelKeys, listCategories, minorToDecimal, mintClosureNumber, mintUuid, movementCommand, movementFieldError, needsAttention, nextSaleCounter, normalizeAmount, normalizeCatalogueViewState, observeRegister$, openSession, openSessionSelector, orderDraftSchema, outboxLogger, overThreshold, parkedOrderSummaries$, parseMinor, planLegs, posOrderCollection, posOrderSchema, posOrdersLogger, productCategories, productSortValue, quickTenderedAmounts, ratePpmFromPercent, readBoundRegister, readRegister, reconcileRegisterCommands, recordMovement, recordRegisterFact, registerCommandCollection, registerCommandSchema, registerCommandsLogger, registerFactsLogger, registerSessionCollection, registerSessionSchema, registerSessionsLogger, requireOpenSession, resolveGridColumns, resolveStoreSettings, restoreOrderDraft, roundMicrosToMinor, saleLogger, sameSale, searchProducts, selectClosureRows, sessionOpenCommand, sessionTransitionCommand, sortProducts, stampSession, startCounting, stockOverlay$, stockOverlayAsOf$, taxFiguresForBasket, taxLinesByRate, taxLogger, taxMicros, taxProviderProps, tenderReducer, tenderVoidCollection, tenderVoidSchema, toOrderCreateEnvelope, unbindRegister, useCurrencyCode, useCurrencyFormatter, useOrderOutbox, useParkedSales, useRegisterOutbox, useRegisterSession, useSale, useStoreSettings, useTax, uuidv7, validAmount, varianceText, variantPriceLabel, voidMovement, withPricingContext, writeClosure, writeOrderDraft };
|