@final-commerce/command-frame 0.6.0-staging3.1 → 0.6.0-staging3.3

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.
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Charge MOTO action
3
+ * Calls the chargeMoto action on the parent window
4
+ */
5
+ import type { ChargeMoto } from './types';
6
+ export declare const chargeMoto: ChargeMoto;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Charge MOTO action
3
+ * Calls the chargeMoto action on the parent window
4
+ */
5
+ import { commandFrameClient } from '../../client';
6
+ export const chargeMoto = async (params) => {
7
+ return await commandFrameClient.call('chargeMoto', params);
8
+ };
@@ -0,0 +1,2 @@
1
+ import { ChargeMoto } from './types';
2
+ export declare const mockChargeMoto: ChargeMoto;
@@ -0,0 +1,47 @@
1
+ import { applyMockPayment, MOCK_CART } from '../../demo/database';
2
+ /** Mirrors kaching's `MOTO_MIN_AMOUNT_MINOR` — the processors' floor. */
3
+ const MOTO_MIN_AMOUNT_MINOR = 50;
4
+ /** The card fields that must be present and non-empty on every keyed charge. */
5
+ const REQUIRED_CARD_FIELDS = [
6
+ 'encryptedCardNumber',
7
+ 'encryptedExpiryMonth',
8
+ 'encryptedExpiryYear',
9
+ 'encryptedSecurityCode',
10
+ ];
11
+ export const mockChargeMoto = async (params) => {
12
+ console.log('[Mock] chargeMoto called', params);
13
+ if (!params)
14
+ throw new Error('Params required');
15
+ if (!Number.isInteger(params.amount)) {
16
+ throw new Error('amount must be an integer number of minor units');
17
+ }
18
+ if (params.amount < MOTO_MIN_AMOUNT_MINOR) {
19
+ throw new Error(`amount must be at least ${MOTO_MIN_AMOUNT_MINOR} minor units`);
20
+ }
21
+ for (const field of REQUIRED_CARD_FIELDS) {
22
+ const value = params.card?.[field];
23
+ if (!value || !value.trim()) {
24
+ throw new Error(`card.${field} is required`);
25
+ }
26
+ }
27
+ if (!params.idempotencyKey || !params.idempotencyKey.trim()) {
28
+ throw new Error('idempotencyKey is required so a retry replays instead of recharging');
29
+ }
30
+ const balanceDue = MOCK_CART.amountToBeCharged ?? MOCK_CART.total;
31
+ if (params.amount > balanceDue) {
32
+ throw new Error(`amount ${params.amount} exceeds balance due ${balanceDue}`);
33
+ }
34
+ // The mock always completes the sale in one leg — it does not model
35
+ // kaching's real partial-leg (`saleFinalized: false`) path.
36
+ const order = applyMockPayment(balanceDue, 'card', 'adyen');
37
+ if (!order) {
38
+ throw new Error('MOCK_CHARGE_MOTO_PARTIAL_UNSUPPORTED: the mock only supports charging the full balance due');
39
+ }
40
+ return {
41
+ success: true,
42
+ timestamp: new Date().toISOString(),
43
+ order,
44
+ saleFinalized: true,
45
+ remainingBalance: 0,
46
+ };
47
+ };
@@ -0,0 +1,53 @@
1
+ import { CFOrder } from '../../CommonTypes';
2
+ /**
3
+ * Provider-encrypted card fields, opaque to this library — mirrors kaching's
4
+ * `MotoCardFields` field for field. Never a raw PAN: these are the CSE blobs
5
+ * the provider's own client-side encrypter produces.
6
+ */
7
+ export interface ChargeMotoCardFields {
8
+ encryptedCardNumber: string;
9
+ encryptedExpiryMonth: string;
10
+ encryptedExpiryYear: string;
11
+ encryptedSecurityCode: string;
12
+ /** Optional AVS postal code the operator entered. */
13
+ postalCode?: string;
14
+ /** Provider-side `reference` for this payment. Defaults to the idempotency key server-side. */
15
+ reference?: string;
16
+ }
17
+ export interface ChargeMotoParams {
18
+ /**
19
+ * Total to charge, base + tip, in integer MINOR currency units. Minimum 50
20
+ * minor units (the processors' floor). This is the leg amount: a value
21
+ * below the cart's balance due records a partial payment.
22
+ */
23
+ amount: number;
24
+ /** Tip portion of `amount`, already collected by the caller's own UI. Defaults to 0. */
25
+ tipAmount?: number;
26
+ /**
27
+ * ISO 4217 code. Optional — the active company's currency is authoritative.
28
+ * When supplied it must match, or the charge is rejected before anything is sent.
29
+ */
30
+ currency?: string;
31
+ card: ChargeMotoCardFields;
32
+ /**
33
+ * Idempotency key for this charge, HELD BY THE CALLER across retries. A
34
+ * retried charge must carry the SAME key so the charge is replayed instead
35
+ * of doubled; use a NEW key after changing the amount.
36
+ */
37
+ idempotencyKey: string;
38
+ /** Optional tender label recorded on the payment method. */
39
+ paymentName?: string;
40
+ /** Fulfillment state to land on after full payment (default: auto-fulfill). */
41
+ targetFulfillmentState?: string;
42
+ }
43
+ export interface ChargeMotoResponse {
44
+ success: boolean;
45
+ timestamp: string;
46
+ /** The persisted order the charge landed on. */
47
+ order: CFOrder;
48
+ /** True only when this charge completed the sale (`paymentState === 'paid'`). */
49
+ saleFinalized: boolean;
50
+ /** Balance still due after this charge, in integer minor units. 0 when finalized. */
51
+ remainingBalance: number;
52
+ }
53
+ export type ChargeMoto = (params: ChargeMotoParams) => Promise<ChargeMotoResponse>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Create payment link action
3
+ * Calls the createPaymentLink action on the parent window
4
+ */
5
+ import type { CreatePaymentLink } from './types';
6
+ export declare const createPaymentLink: CreatePaymentLink;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Create payment link action
3
+ * Calls the createPaymentLink action on the parent window
4
+ */
5
+ import { commandFrameClient } from '../../client';
6
+ export const createPaymentLink = async (params) => {
7
+ return await commandFrameClient.call('createPaymentLink', params);
8
+ };
@@ -0,0 +1,2 @@
1
+ import { CreatePaymentLink } from './types';
2
+ export declare const mockCreatePaymentLink: CreatePaymentLink;
@@ -0,0 +1,35 @@
1
+ import { MOCK_CART, mockPublishEvent, resetMockCart } from '../../demo/database';
2
+ export const mockCreatePaymentLink = async (params) => {
3
+ console.log('[Mock] createPaymentLink called', params);
4
+ if (!params)
5
+ throw new Error('Params required');
6
+ const email = params.email?.trim() ? params.email : undefined;
7
+ const phone = params.phone?.trim() ? params.phone : undefined;
8
+ if (email && phone) {
9
+ throw new Error('exactly one of email or phone delivers a payment link, not both');
10
+ }
11
+ if (!email && !phone) {
12
+ throw new Error('exactly one of email or phone is required to deliver the payment link');
13
+ }
14
+ const hasCart = MOCK_CART.products.length > 0 ||
15
+ (MOCK_CART.customSales?.length ?? 0) > 0 ||
16
+ (MOCK_CART.nonRevenueItems?.length ?? 0) > 0;
17
+ if (!hasCart || MOCK_CART.total <= 0) {
18
+ throw new Error('ring the sale up before creating a payment link: the cart is empty');
19
+ }
20
+ const mockOrderId = 'order_' + Date.now();
21
+ const mockLinkId = 'link_' + Math.random().toString(36).substr(2, 9);
22
+ // Marks the cart consumed, same as a successful send in kaching — the order
23
+ // now owns the line.
24
+ resetMockCart();
25
+ mockPublishEvent('cart', 'cart-created', {});
26
+ return {
27
+ success: true,
28
+ timestamp: new Date().toISOString(),
29
+ orderId: mockOrderId,
30
+ url: `https://mock.finalpos.dev/pay/${mockLinkId}`,
31
+ id: mockLinkId,
32
+ expiresAt: new Date(Date.now() + 24 * 60 * 60 * 1000).toISOString(),
33
+ delivery: email ? { email: 'sent' } : { sms: 'sent' },
34
+ };
35
+ };
@@ -0,0 +1,27 @@
1
+ export interface CreatePaymentLinkParams {
2
+ /** Address to email the link to. Exactly one of `email`/`phone` is required. */
3
+ email?: string;
4
+ /** Phone number to text the link to, E.164 (e.g. "+15555550123"). Exactly one of `email`/`phone` is required. */
5
+ phone?: string;
6
+ }
7
+ export interface CreatePaymentLinkResponse {
8
+ success: boolean;
9
+ timestamp: string;
10
+ /** Client `_id` of the order the station created for this link (charges the CURRENT CART). */
11
+ orderId: string;
12
+ /** Hosted payment page to send the shopper. */
13
+ url: string;
14
+ /** The provider's payment-link id. */
15
+ id: string;
16
+ /** When the link stops accepting payment (ISO date string). */
17
+ expiresAt: string;
18
+ /**
19
+ * Per-channel delivery outcome. OPTIONAL: an older hub omits it entirely,
20
+ * which reads as "delivered" — treat absence as success, not as a failure.
21
+ */
22
+ delivery?: {
23
+ email?: 'sent' | 'failed';
24
+ sms?: 'sent' | 'failed';
25
+ };
26
+ }
27
+ export type CreatePaymentLink = (params: CreatePaymentLinkParams) => Promise<CreatePaymentLinkResponse>;
@@ -0,0 +1,12 @@
1
+ // Create Payment Link Types
2
+ //
3
+ // Creates a hosted payment link FOR THE CURRENT CART (station-v2 D-decisions,
4
+ // payment-link addendum). Mirrors kaching's `createPaymentLinkFromCart` input
5
+ // (`CreatePaymentLinkFromCartInput`) and result (`PaymentLinkFromCartResult`,
6
+ // which extends the provider's `PaymentLinkResponse` with the local `orderId`).
7
+ //
8
+ // The station creates the order (client `_id`, `unpaid × in_progress`) BEFORE
9
+ // the link is requested — only that id travels on the wire. On success the
10
+ // cart is cleared; on a failed send the order is voided and the cart is kept
11
+ // so the cashier can retry. Adyen-only today.
12
+ export {};
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Get time clock status action
3
+ * Calls the getTimeClockStatus action on the parent window
4
+ */
5
+ import type { GetTimeClockStatus } from './types';
6
+ export declare const getTimeClockStatus: GetTimeClockStatus;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Get time clock status action
3
+ * Calls the getTimeClockStatus action on the parent window
4
+ */
5
+ import { commandFrameClient } from '../../client';
6
+ export const getTimeClockStatus = async (params) => {
7
+ return await commandFrameClient.call('getTimeClockStatus', params);
8
+ };
@@ -0,0 +1,2 @@
1
+ import { GetTimeClockStatus } from './types';
2
+ export declare const mockGetTimeClockStatus: GetTimeClockStatus;
@@ -0,0 +1,17 @@
1
+ /** Fixed shift start used by the mock — a clocked-in snapshot with no break taken. */
2
+ const MOCK_CLOCK_IN_TIME = new Date(Date.now() - 2 * 60 * 60 * 1000).toISOString();
3
+ export const mockGetTimeClockStatus = async (params) => {
4
+ console.log('[Mock] getTimeClockStatus called', params);
5
+ const workedMs = Date.now() - new Date(MOCK_CLOCK_IN_TIME).getTime();
6
+ return {
7
+ success: true,
8
+ timestamp: new Date().toISOString(),
9
+ status: 'clocked-in',
10
+ entry: {
11
+ clockInTime: MOCK_CLOCK_IN_TIME,
12
+ breakStartedAt: null,
13
+ totalBreakMinutes: 0,
14
+ workedMs,
15
+ },
16
+ };
17
+ };
@@ -0,0 +1,18 @@
1
+ export interface TimeClockEntry {
2
+ /** ISO date string of when the current shift started. */
3
+ clockInTime: string;
4
+ /** ISO date string of when the current break started, or `null` when not on break. */
5
+ breakStartedAt: string | null;
6
+ /** Total break time accumulated on this shift so far, in minutes. */
7
+ totalBreakMinutes: number;
8
+ /** Milliseconds worked so far on this shift, as of when this response was generated. */
9
+ workedMs: number;
10
+ }
11
+ export interface GetTimeClockStatusResponse {
12
+ success: boolean;
13
+ timestamp: string;
14
+ status: 'out' | 'clocked-in' | 'on-break';
15
+ /** `null` when `status` is `'out'`. */
16
+ entry: TimeClockEntry | null;
17
+ }
18
+ export type GetTimeClockStatus = (params?: Record<string, never>) => Promise<GetTimeClockStatusResponse>;
@@ -0,0 +1,7 @@
1
+ // Get Time Clock Status Types
2
+ //
3
+ // READ-ONLY query: is the active employee clocked out, clocked in, or on
4
+ // break, and since when? There are no clock-in/clock-out commands — this
5
+ // action only reports the current state; `workedMs` is a snapshot at call
6
+ // time and flows are expected to tick it client-side from `clockInTime`.
7
+ export {};
package/dist/index.d.ts CHANGED
@@ -43,6 +43,8 @@ export declare const command: {
43
43
  readonly extensionPayment: import(".").ExtensionPayment;
44
44
  readonly redeemPayment: import(".").RedeemPayment;
45
45
  readonly integrationPayment: import(".").IntegrationPayment;
46
+ readonly createPaymentLink: import(".").CreatePaymentLink;
47
+ readonly chargeMoto: import(".").ChargeMoto;
46
48
  readonly addCustomerNote: import(".").AddCustomerNote;
47
49
  readonly removeCustomerNote: import(".").RemoveCustomerNote;
48
50
  readonly removeCustomerFromCart: import(".").RemoveCustomerFromCart;
@@ -111,6 +113,7 @@ export declare const command: {
111
113
  readonly uploadMedia: import(".").UploadMedia;
112
114
  readonly getTaxTables: import(".").GetTaxTables;
113
115
  readonly getBranding: import(".").GetBranding;
116
+ readonly getTimeClockStatus: import(".").GetTimeClockStatus;
114
117
  readonly canTransition: import(".").CanTransition;
115
118
  readonly getAvailableTransitions: import(".").GetAvailableTransitions;
116
119
  readonly applyTransition: import(".").ApplyTransition;
@@ -177,6 +180,8 @@ export type { TerminalPayment, TerminalPaymentParams, TerminalPaymentResponse }
177
180
  export type { ExtensionPayment, ExtensionPaymentParams, ExtensionPaymentResponse, } from './actions/extension-payment/types';
178
181
  export type { RedeemPayment, RedeemPaymentParams, RedeemPaymentResponse } from './actions/redeem-payment/types';
179
182
  export type { IntegrationPayment, IntegrationPaymentParams, IntegrationPaymentResponse, IntegrationEmvData, } from './actions/integration-payment/types';
183
+ export type { CreatePaymentLink, CreatePaymentLinkParams, CreatePaymentLinkResponse, } from './actions/create-payment-link/types';
184
+ export type { ChargeMoto, ChargeMotoParams, ChargeMotoResponse, ChargeMotoCardFields, } from './actions/charge-moto/types';
180
185
  export type { AddCustomerNote, AddCustomerNoteParams, AddCustomerNoteResponse, } from './actions/add-customer-note/types';
181
186
  export type { RemoveCustomerNote, RemoveCustomerNoteParams, RemoveCustomerNoteResponse, } from './actions/remove-customer-note/types';
182
187
  export type { RemoveCustomerFromCart, RemoveCustomerFromCartResponse } from './actions/remove-customer-from-cart/types';
@@ -190,6 +195,7 @@ export type { GetMedia, GetMediaParams, GetMediaResponse, MediaItemPayload } fro
190
195
  export type { UploadMedia, UploadMediaParams, UploadMediaResponse } from './actions/upload-media/types';
191
196
  export type { GetTaxTables, GetTaxTablesResponse, TaxRatePayload, TaxTablePayload, } from './actions/get-tax-tables/types';
192
197
  export type { BorderRadiusPreset, GetBranding, GetBrandingResponse } from './actions/get-branding/types';
198
+ export type { GetTimeClockStatus, GetTimeClockStatusResponse, TimeClockEntry, } from './actions/get-time-clock-status/types';
193
199
  export type { ShowConfirmation, ShowConfirmationParams, ShowConfirmationResponse, } from './actions/show-confirmation/types';
194
200
  export type { AuthenticateUser, AuthenticateUserParams, AuthenticateUserResponse, } from './actions/authenticate-user/types';
195
201
  export type { PartialPayment, PartialPaymentParams, PartialPaymentResponse } from './actions/partial-payment/types';
package/dist/index.js CHANGED
@@ -43,6 +43,8 @@ import { terminalPayment } from './actions/terminal-payment/action';
43
43
  import { extensionPayment } from './actions/extension-payment/action';
44
44
  import { redeemPayment } from './actions/redeem-payment/action';
45
45
  import { integrationPayment } from './actions/integration-payment/action';
46
+ import { createPaymentLink } from './actions/create-payment-link/action';
47
+ import { chargeMoto } from './actions/charge-moto/action';
46
48
  // Customer Actions
47
49
  import { addCustomerNote } from './actions/add-customer-note/action';
48
50
  import { removeCustomerNote } from './actions/remove-customer-note/action';
@@ -130,6 +132,8 @@ import { getMedia } from './actions/get-media/action';
130
132
  import { uploadMedia } from './actions/upload-media/action';
131
133
  import { getTaxTables } from './actions/get-tax-tables/action';
132
134
  import { getBranding } from './actions/get-branding/action';
135
+ // Time Clock Actions
136
+ import { getTimeClockStatus } from './actions/get-time-clock-status/action';
133
137
  // Export actions as command object
134
138
  export const command = {
135
139
  exampleFunction,
@@ -178,6 +182,8 @@ export const command = {
178
182
  extensionPayment,
179
183
  redeemPayment,
180
184
  integrationPayment,
185
+ createPaymentLink,
186
+ chargeMoto,
181
187
  // Customer Actions
182
188
  addCustomerNote,
183
189
  removeCustomerNote,
@@ -260,6 +266,8 @@ export const command = {
260
266
  uploadMedia,
261
267
  getTaxTables,
262
268
  getBranding,
269
+ // Time Clock Actions
270
+ getTimeClockStatus,
263
271
  // State Machine Queries
264
272
  canTransition,
265
273
  getAvailableTransitions,
@@ -31,6 +31,9 @@ import { mockAuthenticateUser } from '../../actions/authenticate-user/mock';
31
31
  import { mockCalculateRefundTotal } from '../../actions/calculate-refund-total/mock';
32
32
  import { mockCashPayment } from '../../actions/cash-payment/mock';
33
33
  import { mockGetCashRoundingAmount } from '../../actions/get-cash-rounding-amount/mock';
34
+ import { mockCreatePaymentLink } from '../../actions/create-payment-link/mock';
35
+ import { mockChargeMoto } from '../../actions/charge-moto/mock';
36
+ import { mockGetTimeClockStatus } from '../../actions/get-time-clock-status/mock';
34
37
  import { mockClearCart } from '../../actions/clear-cart/mock';
35
38
  import { mockDeleteParkedOrder } from '../../actions/delete-parked-order/mock';
36
39
  import { mockVoidOrder } from '../../actions/void-order/mock';
@@ -127,6 +130,8 @@ export const RENDER_MOCKS = {
127
130
  calculateRefundTotal: mockCalculateRefundTotal,
128
131
  cashPayment: mockCashPayment,
129
132
  getCashRoundingAmount: mockGetCashRoundingAmount,
133
+ createPaymentLink: mockCreatePaymentLink,
134
+ chargeMoto: mockChargeMoto,
130
135
  clearCart: mockClearCart,
131
136
  deleteParkedOrder: mockDeleteParkedOrder,
132
137
  voidOrder: mockVoidOrder,
@@ -203,4 +208,5 @@ export const RENDER_MOCKS = {
203
208
  saveSmartGridLayout: mockSaveSmartGridLayout,
204
209
  sendEmail: mockSendEmail,
205
210
  sendSms: mockSendSms,
211
+ getTimeClockStatus: mockGetTimeClockStatus,
206
212
  };
@@ -1,4 +1,4 @@
1
- import type { ExampleFunction, GetProducts, AddCustomSale, EditCustomSale, GetCustomers, AssignCustomer, AddCustomer, EditCustomer, GetCategories, GetOrders, GetRefunds, GetTaxTables, AddProductDiscount, AddProductToCart, RemoveProductFromCart, UpdateCartItemQuantity, AddCartDiscount, GetContext, GetFinalContext, AddProductNote, AddProductFee, GetProductModifierSelections, SetProductModifierSelections, SetActiveProductFee, SetActiveProductDiscount, GetActiveProduct, SetActiveProduct, AdjustInventory, AddOrderNote, AddCartFee, ClearCart, ParkOrder, ResumeParkedOrder, DeleteParkedOrder, VoidOrder, InitiateRefund, CashPayment, GetCashRoundingAmount, TapToPayPayment, TerminalPayment, ExtensionPayment, RedeemPayment, AddNonRevenueItem, AddCustomerNote, RemoveCustomerNote, RemoveCustomerFromCart, GoToStationHome, OpenCashDrawer, ShowNotification, ShowConfirmation, AuthenticateUser, PartialPayment, SwitchUser, SetRefundStockAction, SelectAllRefundItems, ResetRefundDetails, CalculateRefundTotal, GetRemainingRefundableQuantities, ProcessPartialRefund, RedeemRefund, GetRefundPlan, CheckPermission, GetCurrentCart, Print, SetActiveOrder, GetCustomTables, GetCustomTableData, UpsertCustomTableData, DeleteCustomTableData, GetCustomExtensions, GetCurrentCompanyCustomExtensions, GetCustomExtensionCustomTables, GetCustomTableFields, GetSecretsKeys, GetSecretVal, SetSecretVal, GetUsers, GetRoles, RemoveCartDiscount, GetActiveOrder, GetActiveCustomer, SetActiveCustomer, GetActiveOutlet, GetActiveStation, GetActiveSession, GetActiveUser, SetActiveUser, SetActiveRefund, RemoveProductDiscount, RemoveProductFee, RemoveProductNote, RemoveCartFee, RemoveOrderNote, RemoveCustomSale, RemoveNonRevenueItem, CanTransition, GetAvailableTransitions, ApplyTransition, IntegrationPayment, GetSmartGridLayout, SaveSmartGridLayout, SendEmail, SendSms } from '../../index';
1
+ import type { ExampleFunction, GetProducts, AddCustomSale, EditCustomSale, GetCustomers, AssignCustomer, AddCustomer, EditCustomer, GetCategories, GetOrders, GetRefunds, GetTaxTables, AddProductDiscount, AddProductToCart, RemoveProductFromCart, UpdateCartItemQuantity, AddCartDiscount, GetContext, GetFinalContext, AddProductNote, AddProductFee, GetProductModifierSelections, SetProductModifierSelections, SetActiveProductFee, SetActiveProductDiscount, GetActiveProduct, SetActiveProduct, AdjustInventory, AddOrderNote, AddCartFee, ClearCart, ParkOrder, ResumeParkedOrder, DeleteParkedOrder, VoidOrder, InitiateRefund, CashPayment, GetCashRoundingAmount, TapToPayPayment, TerminalPayment, ExtensionPayment, RedeemPayment, AddNonRevenueItem, AddCustomerNote, RemoveCustomerNote, RemoveCustomerFromCart, GoToStationHome, OpenCashDrawer, ShowNotification, ShowConfirmation, AuthenticateUser, PartialPayment, SwitchUser, SetRefundStockAction, SelectAllRefundItems, ResetRefundDetails, CalculateRefundTotal, GetRemainingRefundableQuantities, ProcessPartialRefund, RedeemRefund, GetRefundPlan, CheckPermission, GetCurrentCart, Print, SetActiveOrder, GetCustomTables, GetCustomTableData, UpsertCustomTableData, DeleteCustomTableData, GetCustomExtensions, GetCurrentCompanyCustomExtensions, GetCustomExtensionCustomTables, GetCustomTableFields, GetSecretsKeys, GetSecretVal, SetSecretVal, GetUsers, GetRoles, RemoveCartDiscount, GetActiveOrder, GetActiveCustomer, SetActiveCustomer, GetActiveOutlet, GetActiveStation, GetActiveSession, GetActiveUser, SetActiveUser, SetActiveRefund, RemoveProductDiscount, RemoveProductFee, RemoveProductNote, RemoveCartFee, RemoveOrderNote, RemoveCustomSale, RemoveNonRevenueItem, CanTransition, GetAvailableTransitions, ApplyTransition, IntegrationPayment, GetSmartGridLayout, SaveSmartGridLayout, SendEmail, SendSms, CreatePaymentLink, ChargeMoto, GetTimeClockStatus } from '../../index';
2
2
  export interface RenderProviderActions {
3
3
  exampleFunction: ExampleFunction;
4
4
  getProducts: GetProducts;
@@ -43,6 +43,8 @@ export interface RenderProviderActions {
43
43
  extensionPayment: ExtensionPayment;
44
44
  redeemPayment: RedeemPayment;
45
45
  integrationPayment: IntegrationPayment;
46
+ createPaymentLink: CreatePaymentLink;
47
+ chargeMoto: ChargeMoto;
46
48
  addNonRevenueItem: AddNonRevenueItem;
47
49
  addCustomerNote: AddCustomerNote;
48
50
  removeCustomerNote: RemoveCustomerNote;
@@ -103,4 +105,5 @@ export interface RenderProviderActions {
103
105
  saveSmartGridLayout: SaveSmartGridLayout;
104
106
  sendEmail: SendEmail;
105
107
  sendSms: SendSms;
108
+ getTimeClockStatus: GetTimeClockStatus;
106
109
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@final-commerce/command-frame",
3
- "version": "0.6.0-staging3.1",
3
+ "version": "0.6.0-staging3.3",
4
4
  "description": "Commands Frame library",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -57,7 +57,7 @@
57
57
  "ignoreBranchesMissingTickets": true
58
58
  },
59
59
  "dependencies": {
60
- "@final-commerce/common": "2.2.3-staging3.1"
60
+ "@final-commerce/common": "2.2.3-staging3.3"
61
61
  },
62
62
  "devDependencies": {
63
63
  "@commitlint/cli": "^19.0.0",