@wix/auto_sdk_staff-time-clock_timecards 1.0.0 → 1.0.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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../index.ts","../../src/staff-time-clock-v1-timecard-timecards.universal.ts","../../src/staff-time-clock-v1-timecard-timecards.http.ts","../../src/staff-time-clock-v1-timecard-timecards.public.ts","../../src/staff-time-clock-v1-timecard-timecards.context.ts"],"sourcesContent":["export * from './src/staff-time-clock-v1-timecard-timecards.context.js';\n","import { transformError as sdkTransformError } from '@wix/sdk-runtime/transform-error';\nimport { queryBuilder } from '@wix/sdk-runtime/query-builder';\nimport {\n renameKeysFromSDKRequestToRESTRequest,\n renameKeysFromRESTResponseToSDKResponse,\n} from '@wix/sdk-runtime/rename-all-nested-keys';\nimport {\n HttpClient,\n HttpResponse,\n NonNullablePaths,\n QuerySpec,\n Query as QuerySdkType,\n} from '@wix/sdk-types';\nimport * as ambassadorWixStaffTimeClockV1Timecard from './staff-time-clock-v1-timecard-timecards.http.js';\n// @ts-ignore\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\nimport { createQueryUtils } from '@wix/sdk-runtime/query-builder-utils';\n\n/**\n * A timecard records one period of work for a staff member, from a clock-in to a\n * clock-out. A timecard is open until it has a clock-out. Daily totals are calculated\n * from timecards, not stored separately.\n */\nexport interface Timecard {\n /**\n * Timecard ID.\n * @format GUID\n * @readonly\n */\n _id?: string | null;\n /**\n * Revision number, which increments by 1 each time the timecard is updated.\n * To prevent conflicting changes, the current revision must be passed when\n * updating the timecard.\n *\n * Ignored when creating a timecard.\n * @readonly\n */\n revision?: string | null;\n /**\n * Date and time the timecard was created.\n * @readonly\n */\n _createdDate?: Date | null;\n /**\n * Date and time the timecard was updated.\n * @readonly\n */\n _updatedDate?: Date | null;\n /**\n * ID of the staff member the timecard belongs to.\n * @format GUID\n */\n staffMemberId?: string;\n /** Clock-in, which starts the timecard. */\n clockIn?: ClockPunch;\n /** Clock-out, which ends the timecard. Not set while the timecard is open. */\n clockOut?: ClockPunch;\n /**\n * Tasks the staff member worked on during the timecard, in order and without\n * overlap. A break is a task that is marked as unpaid.\n * @maxSize 200\n */\n taskAssignments?: TaskAssignment[];\n /**\n * ID of the location where the work was done. Not every source, such as a POS\n * terminal, provides one. (Formerly field 6 as a required plain string, see the\n * `reserved 6` note above for why this moved to a new field number.)\n * @format GUID\n */\n locationId?: string | null;\n /**\n * Time worked during this timecard. Calculated from the clock-in, clock-out, and\n * tasks whenever the timecard is read. Ignored when creating or updating a timecard.\n *\n * Each value is rounded down to whole minutes for the timecard, so the sum over several\n * timecards can be up to 2 minutes per timecard lower than the hours returned by List\n * Aggregated Timecards. Use List Aggregated Timecards for totals over a range, and\n * this field for a single shift.\n *\n * `0` while the timecard is open, which means nothing is completed yet, not that no\n * time was worked.\n * @readonly\n */\n workedTime?: WorkedTime;\n}\n\n/** A clock-in or clock-out: the moment it happened and the source it came from. */\nexport interface ClockPunch {\n /**\n * When the clock-in or clock-out happened. `utcDate` is the exact moment. `localDate`\n * and `timeZone` are the local time and time zone recorded with it. They aren't set\n * for a live clock-in or clock-out that didn't provide a time zone.\n */\n date?: ZonedDate;\n /** Source the clock-in or clock-out came from. */\n source?: ClockSourceWithLiterals;\n /**\n * The same moment as `date`, shown in the time zone the caller requested. Calculated\n * when the timecard is read. Not set unless the request included a time zone.\n * @readonly\n */\n adjustedDate?: ZonedDate;\n /**\n * ID of the offline time clock punch this clock-in or clock-out was derived from.\n * Not set for live clock-ins and clock-outs or for automatic clock-outs by the system.\n * @format GUID\n */\n timeClockPunchId?: string | null;\n}\n\n/**\n * A moment in time, with the local time and time zone it was recorded in.\n *\n * `utcDate` is the exact moment. `localDate` and `timeZone` are the local time and\n * IANA time zone recorded with it. They're stored as provided, so the recorded local\n * time doesn't change if time zone rules change later.\n *\n * When writing, provide `localDate` and `timeZone`. The server calculates `utcDate`\n * from them. A live clock-in or clock-out can have only a `utcDate` set by the server,\n * with `localDate` and `timeZone` not set. When reading, the recorded values are\n * returned as stored. The `adjusted` fields on a clock-in, clock-out, or task show the\n * same moment in the time zone you request.\n */\nexport interface ZonedDate {\n /**\n * Recorded local date and time in `YYYY-MM-DDThh:mm:ss` format, for example\n * `2026-07-01T09:00:00`. Interpreted in `timeZone`. Not set when the recorded time\n * zone is unknown.\n * @format LOCAL_DATE_TIME\n */\n localDate?: string | null;\n /**\n * Recorded time zone in IANA format, for example `America/New_York`. Not set when\n * unknown, for example for a live clock-in that didn't provide one.\n * @maxLength 50\n */\n timeZone?: string | null;\n /**\n * The exact moment, in UTC. Calculated from `localDate` and `timeZone` when writing, or\n * set by the server for a live clock-in or clock-out.\n * @readonly\n */\n utcDate?: Date | null;\n}\n\n/** Source a clock-in or clock-out came from. */\nexport enum ClockSource {\n /** Staff Hub kiosk. */\n KIOSK = 'KIOSK',\n /** Wix Owner app. */\n OWNER_APP = 'OWNER_APP',\n /** Point of sale terminal. */\n POS_TERMINAL = 'POS_TERMINAL',\n /** Manual entry or edit by an admin. */\n MANUAL = 'MANUAL',\n /** The system, for example an automatic clock-out. */\n SYSTEM = 'SYSTEM',\n}\n\n/** @enumType */\nexport type ClockSourceWithLiterals =\n | ClockSource\n | 'KIOSK'\n | 'OWNER_APP'\n | 'POS_TERMINAL'\n | 'MANUAL'\n | 'SYSTEM';\n\n/** A task a staff member worked on during a timecard. */\nexport interface TaskAssignment {\n /**\n * ID of the task, from the site's task catalog in the time clock settings.\n * @format GUID\n */\n taskId?: string;\n /** When the task started. */\n startDate?: ZonedDate;\n /** When the task ended. Not set while the task is running. */\n endDate?: ZonedDate;\n /**\n * Task label, copied from the task catalog when the task started.\n * @maxLength 100\n */\n label?: string;\n /**\n * Whether the task counts as paid time. Copied from the task catalog when the task\n * started. When `false`, the task's time is deducted from paid hours.\n */\n paid?: boolean;\n /**\n * The same moment as `startDate`, shown in the time zone the caller requested.\n * Calculated when the timecard is read. Not set unless the request included a time\n * zone.\n * @readonly\n */\n adjustedStartDate?: ZonedDate;\n /**\n * The same moment as `endDate`, shown in the time zone the caller requested.\n * Calculated when the timecard is read. Not set unless the request included a time\n * zone, or while the task is running.\n * @readonly\n */\n adjustedEndDate?: ZonedDate;\n}\n\n/**\n * Worked time split into paid, unpaid, and total, in minutes. The total is the paid time\n * plus the unpaid time.\n */\nexport interface WorkedTime {\n /** Paid time, in minutes. Doesn't include unpaid tasks. */\n paidDurationInMinutes?: string | null;\n /** Unpaid time, in minutes, such as breaks. */\n unpaidDurationInMinutes?: string | null;\n /** Total time, in minutes: paid time plus unpaid time. */\n totalDurationInMinutes?: string | null;\n}\n\nexport interface GenerateStaffTokenRequest {\n /**\n * Hash of the PIN the staff member entered, as uppercase hex, computed as\n * `SHA-256(\"Pin(symbols=[1, 2, 3, 4])|<metaSiteId>\")` over the entered digits and\n * the site ID from the device's pairing context.\n * @minLength 64\n * @maxLength 64\n */\n pin: string;\n}\n\nexport interface GenerateStaffTokenResponse {\n /**\n * Short-lived token identifying the staff member for the rest of their kiosk\n * session. Treat it as opaque and don't decode it: anyone holding it can act as\n * this staff member until it expires.\n * @maxLength 4096\n */\n staffToken?: string;\n /**\n * The staff member's display name, for the greeting shown after a correct PIN.\n * @maxLength 40\n */\n displayName?: string | null;\n /**\n * Date and time the staff token expires. After this, the staff member must\n * enter their PIN again to get a new token.\n */\n expirationDate?: Date | null;\n}\n\nexport interface GetTimeClockDetailsRequest {}\n\nexport interface GetTimeClockDetailsResponse {\n /** The staff member's open timecard. Unset when they're clocked out. */\n openTimecard?: Timecard;\n /**\n * The site's task catalog. A site has at most 100 tasks.\n * @maxSize 100\n */\n tasks?: Task[];\n}\n\n/**\n * A configurable task (shift segment). A task marked `paid = false` is unpaid\n * time (e.g. an unpaid lunch break) and its duration is deducted from net hours.\n */\nexport interface Task {\n /**\n * Task identifier (GUID). Assigned when a task is first created; send it back\n * on updates to modify an existing task. Tasks are matched by id, so duplicate\n * labels are allowed.\n * @format GUID\n */\n _id?: string | null;\n /**\n * Human label shown to owners and staff (e.g. \"Lunch\", \"Training\").\n * @maxLength 100\n */\n label?: string;\n /** Whether time spent on this task counts as paid working time. */\n paid?: boolean;\n}\n\nexport interface ClockInTimecardRequest {\n /**\n * ID of the staff member to clock in.\n *\n * Required when clocking in on behalf of a staff member, for example from a kiosk.\n * Ignored otherwise: the staff member is identified from the caller's session.\n * @format GUID\n */\n staffMemberId?: string | null;\n /** Source the clock-in came from. */\n source?: ClockSourceWithLiterals;\n /**\n * Time zone in IANA format, for example `America/New_York`.\n *\n * The clock-in time is always set by the server. If you provide a time zone, it's\n * recorded on the clock-in and used to display the `adjusted` dates in the response.\n *\n * Default: No recorded time zone, and `adjusted` dates are in UTC.\n * @internal\n * @maxLength 50\n */\n timeZone?: string | null;\n /**\n * ID of the location of the clock-in. Not every source, such as a POS terminal,\n * provides one. (Formerly field 2 as a required plain string.)\n * @format GUID\n */\n locationId?: string | null;\n}\n\nexport interface ClockInTimecardResponse {\n /**\n * Open timecard. If the staff member was already clocked in, this is their\n * existing timecard.\n */\n timecard?: Timecard;\n /**\n * Whether the staff member already had an open timecard. When `true`, no new\n * timecard was created.\n */\n wasAlreadyOpen?: boolean;\n}\n\nexport interface ClockOutTimecardRequest {\n /**\n * ID of the staff member to clock out.\n *\n * Required when clocking out on behalf of a staff member, for example from a kiosk.\n * Ignored otherwise: the staff member is identified from the caller's session.\n * @format GUID\n */\n staffMemberId?: string | null;\n /** Source the clock-out came from. */\n source?: ClockSourceWithLiterals;\n /**\n * Time zone in IANA format, recorded on the clock-out and used to display the\n * `adjusted` dates in the response. See `time_zone` in the clock-in request.\n * @internal\n * @maxLength 50\n */\n timeZone?: string | null;\n}\n\nexport interface ClockOutTimecardResponse {\n /** Closed timecard. */\n timecard?: Timecard;\n}\n\nexport interface StartTimecardTaskRequest {\n /**\n * ID of the staff member to start the task for.\n *\n * Required when starting a task on behalf of a staff member, for example from a kiosk.\n * Ignored otherwise: the staff member is identified from the caller's session.\n * @format GUID\n */\n staffMemberId?: string | null;\n /**\n * ID of the task to start, from the site's task catalog.\n * @format GUID\n */\n taskId?: string;\n /**\n * Time zone in IANA format, recorded on the task start and used to display the\n * `adjusted` dates in the response. See `time_zone` in the clock-in request.\n * @internal\n * @maxLength 50\n */\n timeZone?: string | null;\n}\n\nexport interface StartTimecardTaskResponse {\n /** Updated timecard. */\n timecard?: Timecard;\n}\n\nexport interface EndTimecardTaskRequest {\n /**\n * ID of the staff member to end the task for.\n *\n * Required when ending a task on behalf of a staff member, for example from a kiosk.\n * Ignored otherwise: the staff member is identified from the caller's session.\n * @format GUID\n */\n staffMemberId?: string | null;\n /**\n * Time zone in IANA format, recorded on the task end and used to display the\n * `adjusted` dates in the response. See `time_zone` in the clock-in request.\n * @internal\n * @maxLength 50\n */\n timeZone?: string | null;\n}\n\nexport interface EndTimecardTaskResponse {\n /** Updated timecard. */\n timecard?: Timecard;\n}\n\nexport interface SendPinSetupLinkRequest {\n /**\n * Email address the staff member typed at the kiosk.\n * @format EMAIL\n * @maxLength 320\n */\n email?: string;\n}\n\nexport interface SendPinSetupLinkResponse {}\n\nexport interface CompletePinSetupRequest {\n /**\n * PIN Setup Token from the PIN setup link.\n * @maxLength 4096\n */\n pinSetupToken?: string;\n /**\n * Hash of the new PIN, in the same format as `GenerateStaffTokenRequest.pin`.\n * @minLength 64\n * @maxLength 64\n */\n pin?: string;\n}\n\nexport interface CompletePinSetupResponse {}\n\nexport interface ValidatePinSetupLinkRequest {\n /**\n * PIN Setup Token from the PIN setup link.\n * @maxLength 4096\n */\n pinSetupToken?: string;\n}\n\nexport interface ValidatePinSetupLinkResponse {}\n\nexport interface DomainEvent extends DomainEventBodyOneOf {\n createdEvent?: EntityCreatedEvent;\n updatedEvent?: EntityUpdatedEvent;\n deletedEvent?: EntityDeletedEvent;\n actionEvent?: ActionEvent;\n /** Event ID. With this ID you can easily spot duplicated events and ignore them. */\n _id?: string;\n /**\n * Fully Qualified Domain Name of an entity. This is a unique identifier assigned to the API main business entities.\n * For example, `wix.stores.catalog.product`, `wix.bookings.session`, `wix.payments.transaction`.\n */\n entityFqdn?: string;\n /**\n * Event action name, placed at the top level to make it easier for users to dispatch messages.\n * For example: `created`/`updated`/`deleted`/`started`/`completed`/`email_opened`.\n */\n slug?: string;\n /** ID of the entity associated with the event. */\n entityId?: string;\n /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example, `2020-04-26T13:57:50.699Z`. */\n eventTime?: Date | null;\n /**\n * Whether the event was triggered as a result of a privacy regulation application\n * (for example, GDPR).\n */\n triggeredByAnonymizeRequest?: boolean | null;\n /** If present, indicates the action that triggered the event. */\n originatedFrom?: string | null;\n /**\n * A sequence number that indicates the order of updates to an entity. For example, if an entity was updated at `16:00` and then again at `16:01`, the second update will always have a higher sequence number.\n * You can use this number to make sure you're handling updates in the right order. Just save the latest sequence number on your end and compare it to the one in each new message. If the new message has an older (lower) number, you can safely ignore it.\n */\n entityEventSequence?: string | null;\n}\n\n/** @oneof */\nexport interface DomainEventBodyOneOf {\n createdEvent?: EntityCreatedEvent;\n updatedEvent?: EntityUpdatedEvent;\n deletedEvent?: EntityDeletedEvent;\n actionEvent?: ActionEvent;\n}\n\nexport interface EntityCreatedEvent {\n entity?: string;\n}\n\nexport interface RestoreInfo {\n deletedDate?: Date | null;\n}\n\nexport interface EntityUpdatedEvent {\n /**\n * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.\n * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.\n * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it.\n */\n currentEntity?: string;\n}\n\nexport interface EntityDeletedEvent {\n /** Entity that was deleted. */\n deletedEntity?: string | null;\n}\n\nexport interface ActionEvent {\n body?: string;\n}\n\nexport interface MessageEnvelope {\n /**\n * App instance ID.\n * @format GUID\n */\n instanceId?: string | null;\n /**\n * Event type.\n * @maxLength 150\n */\n eventType?: string;\n /** The identification type and identity data. */\n identity?: IdentificationData;\n /** Stringify payload. */\n data?: string;\n /** Details related to the account */\n accountInfo?: AccountInfo;\n}\n\nexport interface IdentificationData extends IdentificationDataIdOneOf {\n /**\n * ID of a site visitor that has not logged in to the site.\n * @format GUID\n */\n anonymousVisitorId?: string;\n /**\n * ID of a site visitor that has logged in to the site.\n * @format GUID\n */\n memberId?: string;\n /**\n * ID of a Wix user (site owner, contributor, etc.).\n * @format GUID\n */\n wixUserId?: string;\n /**\n * ID of an app.\n * @format GUID\n */\n appId?: string;\n /** @readonly */\n identityType?: WebhookIdentityTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface IdentificationDataIdOneOf {\n /**\n * ID of a site visitor that has not logged in to the site.\n * @format GUID\n */\n anonymousVisitorId?: string;\n /**\n * ID of a site visitor that has logged in to the site.\n * @format GUID\n */\n memberId?: string;\n /**\n * ID of a Wix user (site owner, contributor, etc.).\n * @format GUID\n */\n wixUserId?: string;\n /**\n * ID of an app.\n * @format GUID\n */\n appId?: string;\n}\n\nexport enum WebhookIdentityType {\n UNKNOWN = 'UNKNOWN',\n ANONYMOUS_VISITOR = 'ANONYMOUS_VISITOR',\n MEMBER = 'MEMBER',\n WIX_USER = 'WIX_USER',\n APP = 'APP',\n}\n\n/** @enumType */\nexport type WebhookIdentityTypeWithLiterals =\n | WebhookIdentityType\n | 'UNKNOWN'\n | 'ANONYMOUS_VISITOR'\n | 'MEMBER'\n | 'WIX_USER'\n | 'APP';\n\nexport interface AccountInfo {\n /**\n * ID of the Wix account associated with the event.\n * @format GUID\n */\n accountId?: string | null;\n /**\n * ID of the parent Wix account. Only included when accountId belongs to a child account.\n * @format GUID\n */\n parentAccountId?: string | null;\n /**\n * ID of the Wix site associated with the event. Only included when the event is tied to a specific site.\n * @format GUID\n */\n siteId?: string | null;\n}\n\nexport interface CloseTimecardRequest {\n /**\n * ID of the timecard to close.\n * @format GUID\n */\n timecardId?: string;\n /**\n * Clock-out to close the timecard with. Include its `date` (`localDate` and\n * `timeZone`), its `source`, and the `timeClockPunchId` it came from.\n * It either closes an open timecard or replaces a clock-out that the system\n * recorded automatically.\n */\n clockOut?: ClockPunch;\n /**\n * Reason for the change. Recorded in the timecard's audit trail. It isn't stored\n * on the timecard or returned in the response.\n * @maxLength 1000\n */\n reason?: string | null;\n}\n\nexport interface CloseTimecardResponse {\n /** Closed timecard. */\n timecard?: Timecard;\n}\n\nexport interface GetOpenTimecardRequest {\n /**\n * ID of the staff member whose open timecard to retrieve.\n *\n * Default: The staff member identified from the caller's session.\n * @format GUID\n */\n staffMemberId?: string | null;\n /**\n * Time zone in IANA format, for example `America/New_York`. Used to display the\n * `adjusted` dates in the returned timecard. The recorded `date` is always returned\n * as stored.\n *\n * Default: `UTC`\n * @maxLength 50\n */\n timeZone?: string | null;\n}\n\nexport interface GetOpenTimecardResponse {\n /** Retrieved open timecard. Not set when the staff member is clocked out. */\n timecard?: Timecard;\n}\n\nexport interface CreateTimecardRequest {\n /** Timecard to create. */\n timecard: Timecard;\n /**\n * Reason for the change. Recorded in the timecard's audit trail. It isn't stored\n * on the timecard or returned in the response.\n * @maxLength 1000\n */\n reason?: string | null;\n}\n\nexport interface CreateTimecardResponse {\n /** Created timecard. */\n timecard?: Timecard;\n}\n\nexport interface UpdateTimecardRequest {\n /** Timecard to update. It can contain only the fields you want to change. */\n timecard: Timecard;\n /**\n * Fields to update.\n *\n * Default: The fields included in `timecard`.\n * @internal\n */\n fieldMask?: string[];\n /**\n * Reason for the change. Recorded in the timecard's audit trail. It isn't stored\n * on the timecard or returned in the response.\n * @maxLength 1000\n */\n reason?: string | null;\n}\n\nexport interface UpdateTimecardResponse {\n /** Updated timecard. */\n timecard?: Timecard;\n}\n\nexport interface DeleteTimecardRequest {\n /**\n * ID of the timecard to delete.\n * @format GUID\n */\n timecardId: string;\n /**\n * Reason for the change. Recorded in the timecard's audit trail. It isn't stored\n * on the timecard or returned in the response.\n * @maxLength 1000\n */\n reason?: string | null;\n}\n\nexport interface DeleteTimecardResponse {}\n\nexport interface GetTimecardRequest {\n /**\n * ID of the timecard to retrieve.\n * @format GUID\n */\n timecardId: string;\n /**\n * Time zone in IANA format, for example `America/New_York`. Used to display the\n * `adjusted` dates in the returned timecard. The recorded `date` is always returned\n * as stored.\n *\n * Default: `UTC`\n * @maxLength 50\n */\n timeZone?: string | null;\n}\n\nexport interface GetTimecardResponse {\n /** Retrieved timecard. */\n timecard?: Timecard;\n}\n\nexport interface QueryTimecardsRequest {\n /**\n * Query options. You can filter by `staffMemberId`, `locationId`,\n * `clockIn.date.utcDate`, `clockOut.date.utcDate`, and `updatedDate`.\n * To report hours per staff member over a range of local dates, use List\n * Aggregated Timecards instead.\n */\n query?: CursorQuery;\n /**\n * Time zone in IANA format, for example `America/New_York`. Used to display the\n * `adjusted` dates in the returned timecards. The recorded `date` is always\n * returned as stored.\n *\n * Default: `UTC`\n * @maxLength 50\n */\n timeZone?: string | null;\n /**\n * Whether to read from the primary database, so a timecard written just before this\n * call is included.\n *\n * Default: `false`\n * @internal\n */\n consistentRead?: boolean;\n}\n\nexport interface CursorQuery extends CursorQueryPagingMethodOneOf {\n /**\n * Cursor paging options.\n *\n * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).\n */\n cursorPaging?: CursorPaging;\n /**\n * Filter object.\n *\n * Learn more about the [filter section](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#the-filter-section).\n */\n filter?: Record<string, any> | null;\n /**\n * Sort object.\n *\n * Learn more about the [sort section](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#the-sort-section).\n * @maxSize 5\n */\n sort?: Sorting[];\n}\n\n/** @oneof */\nexport interface CursorQueryPagingMethodOneOf {\n /**\n * Cursor paging options.\n *\n * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).\n */\n cursorPaging?: CursorPaging;\n}\n\nexport interface Sorting {\n /**\n * Name of the field to sort by.\n * @maxLength 512\n */\n fieldName?: string;\n /** Sort order. */\n order?: SortOrderWithLiterals;\n}\n\nexport enum SortOrder {\n ASC = 'ASC',\n DESC = 'DESC',\n}\n\n/** @enumType */\nexport type SortOrderWithLiterals = SortOrder | 'ASC' | 'DESC';\n\nexport interface CursorPaging {\n /**\n * Maximum number of items to return in the results.\n * @max 100\n */\n limit?: number | null;\n /**\n * Pointer to the next or previous page in the list of results.\n *\n * Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\n * Not relevant for the first request.\n * @maxLength 16000\n */\n cursor?: string | null;\n}\n\nexport interface QueryTimecardsResponse {\n /** Retrieved timecards. */\n timecards?: Timecard[];\n /** Metadata for the paged results. */\n pagingMetadata?: CursorPagingMetadata;\n}\n\nexport interface CursorPagingMetadata {\n /** Number of items returned in current page. */\n count?: number | null;\n /** Cursor strings that point to the next page, previous page, or both. */\n cursors?: Cursors;\n /**\n * Whether there are more pages to retrieve following the current page.\n *\n * + `true`: Another page of results can be retrieved.\n * + `false`: This is the last page.\n */\n hasNext?: boolean | null;\n}\n\nexport interface Cursors {\n /**\n * Cursor string pointing to the next page in the list of results.\n * @maxLength 16000\n */\n next?: string | null;\n /**\n * Cursor pointing to the previous page in the list of results.\n * @maxLength 16000\n */\n prev?: string | null;\n}\n\nexport interface ListAggregatedTimecardsRequest {\n /**\n * First day of the reporting range, inclusive. Interpreted in `timeZone`, so the\n * range starts at the beginning of this day. A timecard is included when its\n * clock-in falls within the range, whenever it was clocked out.\n * @format LOCAL_DATE\n */\n fromLocalDate: string | null;\n /**\n * Last day of the reporting range, inclusive. Interpreted in `timeZone`, so the\n * range ends at the end of this day.\n *\n * Supports a range of up to 92 days.\n * @format LOCAL_DATE\n */\n toLocalDate: string | null;\n /**\n * Time zone in IANA format, for example `America/New_York`. Day boundaries and the\n * range are interpreted in this time zone.\n * @maxLength 50\n */\n timeZone: string | null;\n /**\n * IDs of the locations to sum hours over. A staff member with no timecards in these\n * locations isn't listed.\n *\n * Default: All locations.\n * @maxSize 200\n * @format GUID\n */\n locationIds?: string[];\n /**\n * IDs of the staff members to return. Doesn't change the hours calculated per\n * location.\n *\n * Default: All staff members with timecards in the range.\n * @maxSize 500\n * @format GUID\n */\n staffMemberIds?: string[];\n /**\n * Cursor paging options for the staff member rows.\n *\n * Currently ignored: all rows are returned in a single page.\n */\n cursorPaging?: CursorPaging;\n /**\n * Whether to read from the primary database, so a timecard created or updated just\n * before this call is included in the hours. Reading from the primary is slower, so\n * use it only right after a write.\n *\n * Default: `false`, which reads from a replica that can be slightly out of date.\n */\n consistentRead?: boolean;\n}\n\nexport interface ListAggregatedTimecardsResponse {\n /**\n * Hours per staff member over the range and locations.\n * @maxSize 1000\n */\n aggregatedTimecards?: AggregatedTimecard[];\n /** Totals across all staff members in the result. */\n totals?: TimecardsTotals;\n /** Metadata for the paged results. */\n pagingMetadata?: CursorPagingMetadata;\n}\n\n/** Hours a staff member worked over the reporting range. */\nexport interface AggregatedTimecard {\n /**\n * ID of the staff member the hours belong to.\n * @format GUID\n */\n staffMemberId?: string;\n /**\n * Paid, unpaid, and total hours, summed over the staff member's timecards in the\n * range.\n */\n workedTime?: WorkedTime;\n /**\n * ID of the staff member's open timecard in the range. Not set when there is none.\n *\n * Open timecards aren't included in `workedTime`, so when this is set, the hours are\n * provisional. Resolve the open timecard before exporting hours for payroll.\n * @format GUID\n */\n openTimecardId?: string | null;\n /**\n * Hours by location. Only locations in the request's `locationIds` appear. Timecards\n * with no recorded location are combined into a single row with no `locationId`.\n * @maxSize 200\n */\n byLocation?: LocationWorkedTime[];\n /**\n * IDs of the timecards in `workedTime` that the system closed automatically instead of\n * the staff member. Ordered by clock-in, oldest first. Empty when there are none.\n *\n * The hours of these timecards end at the site's automatic clock-out threshold, not at\n * a time the staff member recorded, so check them before exporting hours for payroll.\n * A timecard drops out of this list after a manual correction.\n * @maxSize 200\n * @format GUID\n */\n autoClockOutTimecardIds?: string[];\n}\n\n/**\n * Hours a staff member worked at a single location. `locationId` is not set for the row\n * that combines timecards with no recorded location.\n */\nexport interface LocationWorkedTime {\n /** Paid, unpaid, and total hours at this location. */\n workedTime?: WorkedTime;\n /**\n * ID of the location the time was worked at. Not set for the row that combines\n * timecards with no recorded location. (Formerly field 1 as a required plain string.)\n * @format GUID\n */\n locationId?: string | null;\n}\n\n/** Totals across all staff members in the result. */\nexport interface TimecardsTotals {\n /** Paid, unpaid, and total hours across all staff members. */\n workedTime?: WorkedTime;\n /** Number of staff members in the result. */\n staffCount?: number;\n /**\n * Number of staff members who have an open timecard in the range. Their hours are\n * provisional.\n */\n openTimecardCount?: number;\n}\n\nexport interface Empty {}\n\n/** @docsIgnore */\nexport type GenerateStaffTokenApplicationErrors =\n | {\n code?: 'STAFF_PIN_NOT_RECOGNIZED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'KIOSK_TOKEN_INVALID';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'KIOSK_UNPAIRED';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type GetTimeClockDetailsApplicationErrors =\n | {\n code?: 'STAFF_TOKEN_INVALID';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'STAFF_TOKEN_EXPIRED';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type KioskClockInTimecardApplicationErrors =\n | {\n code?: 'KIOSK_STAFF_NOT_ALLOWED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'TIMECARD_OVERLAP';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'STAFF_TOKEN_INVALID';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'STAFF_TOKEN_EXPIRED';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type KioskClockOutTimecardApplicationErrors =\n | {\n code?: 'STAFF_NOT_CLOCKED_IN';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'STAFF_TOKEN_INVALID';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'STAFF_TOKEN_EXPIRED';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type KioskStartTimecardTaskApplicationErrors =\n | {\n code?: 'KIOSK_STAFF_NOT_ALLOWED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'STAFF_NOT_CLOCKED_IN';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'UNKNOWN_TASK';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'STAFF_TOKEN_INVALID';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'STAFF_TOKEN_EXPIRED';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type KioskEndTimecardTaskApplicationErrors =\n | {\n code?: 'STAFF_NOT_CLOCKED_IN';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'NO_OPEN_TASK';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'STAFF_TOKEN_INVALID';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'STAFF_TOKEN_EXPIRED';\n description?: string;\n data?: Record<string, any>;\n };\n\n/**\n * Exchanges a staff member's PIN hash for a short-lived StaffToken.\n *\n * Call this with the device's Kiosk Token as a bearer credential. The site and\n * location are taken from that token.\n *\n * A PIN that matches no staff member and a staff member who has no PIN return the\n * same error, with no detail distinguishing them.\n * @param pin - Hash of the PIN the staff member entered, as uppercase hex, computed as\n * `SHA-256(\"Pin(symbols=[1, 2, 3, 4])|<metaSiteId>\")` over the entered digits and\n * the site ID from the device's pairing context.\n * @public\n * @documentationMaturity preview\n * @requiredField pin\n * @fqn wix.staff.kiosk.v1.KioskSessionService.GenerateStaffToken\n */\nexport async function generateStaffToken(pin: string): Promise<\n NonNullablePaths<GenerateStaffTokenResponse, `staffToken`, 0> & {\n __applicationErrorsType?: GenerateStaffTokenApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({ pin: pin });\n\n const reqOpts =\n ambassadorWixStaffTimeClockV1Timecard.generateStaffToken(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { pin: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['pin']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Retrieves the signed-in staff member's open timecard and the site's task catalog.\n *\n * Call this with the staff member's StaffToken as a bearer credential. The staff\n * member is taken from that token.\n * @public\n * @documentationMaturity preview\n * @fqn wix.staff.kiosk.v1.KioskSessionService.GetTimeClockDetails\n */\nexport async function getTimeClockDetails(): Promise<\n NonNullablePaths<\n GetTimeClockDetailsResponse,\n | `openTimecard.staffMemberId`\n | `openTimecard.clockIn.source`\n | `openTimecard.taskAssignments`\n | `openTimecard.taskAssignments.${number}.taskId`\n | `openTimecard.taskAssignments.${number}.label`\n | `openTimecard.taskAssignments.${number}.paid`\n | `tasks`\n | `tasks.${number}.label`\n | `tasks.${number}.paid`,\n 3\n > & {\n __applicationErrorsType?: GetTimeClockDetailsApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[0] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({});\n\n const reqOpts =\n ambassadorWixStaffTimeClockV1Timecard.getTimeClockDetails(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {},\n singleArgumentUnchanged: false,\n },\n []\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Opens a timecard for the signed-in staff member (clock-in).\n *\n * Call this with the staff member's StaffToken as a bearer credential. Idempotent:\n * if the staff member already has an open timecard, it is returned with\n * `wasAlreadyOpen` set instead of opening a second one.\n * @public\n * @documentationMaturity preview\n * @fqn wix.staff.kiosk.v1.KioskSessionService.ClockInTimecard\n */\nexport async function kioskClockInTimecard(\n options?: KioskClockInTimecardOptions\n): Promise<\n NonNullablePaths<\n ClockInTimecardResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`\n | `wasAlreadyOpen`,\n 3\n > & {\n __applicationErrorsType?: KioskClockInTimecardApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n staffMemberId: options?.staffMemberId,\n source: options?.source,\n locationId: options?.locationId,\n });\n\n const reqOpts =\n ambassadorWixStaffTimeClockV1Timecard.kioskClockInTimecard(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n staffMemberId: '$[0].staffMemberId',\n source: '$[0].source',\n locationId: '$[0].locationId',\n },\n singleArgumentUnchanged: false,\n },\n ['options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface KioskClockInTimecardOptions {\n /**\n * ID of the staff member to clock in.\n *\n * Required when clocking in on behalf of a staff member, for example from a kiosk.\n * Ignored otherwise: the staff member is identified from the caller's session.\n * @format GUID\n */\n staffMemberId?: string | null;\n /** Source the clock-in came from. */\n source?: ClockSourceWithLiterals;\n /**\n * ID of the location of the clock-in. Not every source, such as a POS terminal,\n * provides one. (Formerly field 2 as a required plain string.)\n * @format GUID\n */\n locationId?: string | null;\n}\n\n/**\n * Closes the signed-in staff member's open timecard (clock-out). Any still-running\n * task segment is closed at the same time.\n *\n * Call this with the staff member's StaffToken as a bearer credential.\n * @public\n * @documentationMaturity preview\n * @fqn wix.staff.kiosk.v1.KioskSessionService.ClockOutTimecard\n */\nexport async function kioskClockOutTimecard(\n options?: KioskClockOutTimecardOptions\n): Promise<\n NonNullablePaths<\n ClockOutTimecardResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`,\n 3\n > & {\n __applicationErrorsType?: KioskClockOutTimecardApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n staffMemberId: options?.staffMemberId,\n source: options?.source,\n });\n\n const reqOpts =\n ambassadorWixStaffTimeClockV1Timecard.kioskClockOutTimecard(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n staffMemberId: '$[0].staffMemberId',\n source: '$[0].source',\n },\n singleArgumentUnchanged: false,\n },\n ['options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface KioskClockOutTimecardOptions {\n /**\n * ID of the staff member to clock out.\n *\n * Required when clocking out on behalf of a staff member, for example from a kiosk.\n * Ignored otherwise: the staff member is identified from the caller's session.\n * @format GUID\n */\n staffMemberId?: string | null;\n /** Source the clock-out came from. */\n source?: ClockSourceWithLiterals;\n}\n\n/**\n * Starts a task on the signed-in staff member's open timecard. If another task is\n * already running it is closed first (a task switch).\n *\n * Call this with the staff member's StaffToken as a bearer credential.\n * @public\n * @documentationMaturity preview\n * @fqn wix.staff.kiosk.v1.KioskSessionService.StartTimecardTask\n */\nexport async function kioskStartTimecardTask(\n options?: KioskStartTimecardTaskOptions\n): Promise<\n NonNullablePaths<\n StartTimecardTaskResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`,\n 3\n > & {\n __applicationErrorsType?: KioskStartTimecardTaskApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n staffMemberId: options?.staffMemberId,\n taskId: options?.taskId,\n });\n\n const reqOpts =\n ambassadorWixStaffTimeClockV1Timecard.kioskStartTimecardTask(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n staffMemberId: '$[0].staffMemberId',\n taskId: '$[0].taskId',\n },\n singleArgumentUnchanged: false,\n },\n ['options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface KioskStartTimecardTaskOptions {\n /**\n * ID of the staff member to start the task for.\n *\n * Required when starting a task on behalf of a staff member, for example from a kiosk.\n * Ignored otherwise: the staff member is identified from the caller's session.\n * @format GUID\n */\n staffMemberId?: string | null;\n /**\n * ID of the task to start, from the site's task catalog.\n * @format GUID\n */\n taskId?: string;\n}\n\n/**\n * Ends the running task on the signed-in staff member's open timecard, returning it\n * to untasked working time.\n *\n * Call this with the staff member's StaffToken as a bearer credential.\n * @public\n * @documentationMaturity preview\n * @fqn wix.staff.kiosk.v1.KioskSessionService.EndTimecardTask\n */\nexport async function kioskEndTimecardTask(\n options?: KioskEndTimecardTaskOptions\n): Promise<\n NonNullablePaths<\n EndTimecardTaskResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`,\n 3\n > & {\n __applicationErrorsType?: KioskEndTimecardTaskApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n staffMemberId: options?.staffMemberId,\n });\n\n const reqOpts =\n ambassadorWixStaffTimeClockV1Timecard.kioskEndTimecardTask(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { staffMemberId: '$[0].staffMemberId' },\n singleArgumentUnchanged: false,\n },\n ['options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface KioskEndTimecardTaskOptions {\n /**\n * ID of the staff member to end the task for.\n *\n * Required when ending a task on behalf of a staff member, for example from a kiosk.\n * Ignored otherwise: the staff member is identified from the caller's session.\n * @format GUID\n */\n staffMemberId?: string | null;\n}\n\n/**\n * Opens a timecard for a staff member (clock-in).\n *\n * If the staff member already has an open timecard, from any source, no second\n * timecard is opened. The existing timecard is returned with `wasAlreadyOpen` set\n * to `true`.\n *\n * The call fails if the new timecard would overlap one the staff member already\n * has. For example, a timecard with a clock-out time in the future still covers\n * the moment of the clock-in.\n *\n * A staff member who clocks themselves in needs self clock-in to be enabled in the\n * site's time clock settings. Clocking in on behalf of a staff member, for example\n * from a kiosk, doesn't depend on that setting.\n * @public\n * @documentationMaturity preview\n * @permissionId staff:time_clock:v1:timecard:clock_in_timecard\n * @permissionId staff:time_clock:v1:timecard:clock_on_behalf\n * @applicableIdentity APP\n * @fqn wix.staff.time_clock.v1.TimecardsService.ClockInTimecard\n */\nexport async function clockInTimecard(\n options?: ClockInTimecardOptions\n): Promise<\n NonNullablePaths<\n ClockInTimecardResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`\n | `wasAlreadyOpen`,\n 3\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n staffMemberId: options?.staffMemberId,\n source: options?.source,\n locationId: options?.locationId,\n });\n\n const reqOpts =\n ambassadorWixStaffTimeClockV1Timecard.clockInTimecard(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n staffMemberId: '$[0].staffMemberId',\n source: '$[0].source',\n locationId: '$[0].locationId',\n },\n singleArgumentUnchanged: false,\n },\n ['options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface ClockInTimecardOptions {\n /**\n * ID of the staff member to clock in.\n *\n * Required when clocking in on behalf of a staff member, for example from a kiosk.\n * Ignored otherwise: the staff member is identified from the caller's session.\n * @format GUID\n */\n staffMemberId?: string | null;\n /** Source the clock-in came from. */\n source?: ClockSourceWithLiterals;\n /**\n * ID of the location of the clock-in. Not every source, such as a POS terminal,\n * provides one. (Formerly field 2 as a required plain string.)\n * @format GUID\n */\n locationId?: string | null;\n}\n\n/**\n * Closes the staff member's open timecard (clock-out).\n *\n * A task that is still running is closed at the same time. The call fails if the\n * staff member has no open timecard, so a second call right after a clock-out\n * fails.\n * @public\n * @documentationMaturity preview\n * @permissionId staff:time_clock:v1:timecard:clock_out_timecard\n * @permissionId staff:time_clock:v1:timecard:clock_on_behalf\n * @applicableIdentity APP\n * @fqn wix.staff.time_clock.v1.TimecardsService.ClockOutTimecard\n */\nexport async function clockOutTimecard(\n options?: ClockOutTimecardOptions\n): Promise<\n NonNullablePaths<\n ClockOutTimecardResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`,\n 3\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n staffMemberId: options?.staffMemberId,\n source: options?.source,\n });\n\n const reqOpts =\n ambassadorWixStaffTimeClockV1Timecard.clockOutTimecard(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n staffMemberId: '$[0].staffMemberId',\n source: '$[0].source',\n },\n singleArgumentUnchanged: false,\n },\n ['options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface ClockOutTimecardOptions {\n /**\n * ID of the staff member to clock out.\n *\n * Required when clocking out on behalf of a staff member, for example from a kiosk.\n * Ignored otherwise: the staff member is identified from the caller's session.\n * @format GUID\n */\n staffMemberId?: string | null;\n /** Source the clock-out came from. */\n source?: ClockSourceWithLiterals;\n}\n\n/**\n * Starts a task on the staff member's open timecard.\n *\n * If another task is already running, it is closed first, so switching tasks takes\n * a single call. The task's label and whether it's paid are copied from the site's\n * task catalog when the task starts. Later changes to the catalog don't affect it.\n * @public\n * @documentationMaturity preview\n * @permissionId staff:time_clock:v1:timecard:start_timecard_task\n * @fqn wix.staff.time_clock.v1.TimecardsService.StartTimecardTask\n */\nexport async function startTimecardTask(\n options?: StartTimecardTaskOptions\n): Promise<\n NonNullablePaths<\n StartTimecardTaskResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`,\n 3\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n staffMemberId: options?.staffMemberId,\n taskId: options?.taskId,\n });\n\n const reqOpts =\n ambassadorWixStaffTimeClockV1Timecard.startTimecardTask(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n staffMemberId: '$[0].staffMemberId',\n taskId: '$[0].taskId',\n },\n singleArgumentUnchanged: false,\n },\n ['options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface StartTimecardTaskOptions {\n /**\n * ID of the staff member to start the task for.\n *\n * Required when starting a task on behalf of a staff member, for example from a kiosk.\n * Ignored otherwise: the staff member is identified from the caller's session.\n * @format GUID\n */\n staffMemberId?: string | null;\n /**\n * ID of the task to start, from the site's task catalog.\n * @format GUID\n */\n taskId?: string;\n}\n\n/**\n * Ends the running task on the staff member's open timecard, returning it to\n * untasked working time.\n *\n * The call fails if no task is running.\n * @public\n * @documentationMaturity preview\n * @permissionId staff:time_clock:v1:timecard:end_timecard_task\n * @fqn wix.staff.time_clock.v1.TimecardsService.EndTimecardTask\n */\nexport async function endTimecardTask(\n options?: EndTimecardTaskOptions\n): Promise<\n NonNullablePaths<\n EndTimecardTaskResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`,\n 3\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n staffMemberId: options?.staffMemberId,\n });\n\n const reqOpts =\n ambassadorWixStaffTimeClockV1Timecard.endTimecardTask(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { staffMemberId: '$[0].staffMemberId' },\n singleArgumentUnchanged: false,\n },\n ['options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface EndTimecardTaskOptions {\n /**\n * ID of the staff member to end the task for.\n *\n * Required when ending a task on behalf of a staff member, for example from a kiosk.\n * Ignored otherwise: the staff member is identified from the caller's session.\n * @format GUID\n */\n staffMemberId?: string | null;\n}\n\n/**\n * Retrieves the staff member's open timecard.\n *\n * If the staff member is clocked out, no timecard is returned. Use this to show\n * whether a staff member is clocked in, working on a task, or clocked out.\n * @public\n * @documentationMaturity preview\n * @permissionId staff:time_clock:v1:timecard:get_open_timecard\n * @permissionId staff:time_clock:v1:timecard:read_on_behalf\n * @applicableIdentity APP\n * @fqn wix.staff.time_clock.v1.TimecardsService.GetOpenTimecard\n */\nexport async function getOpenTimecard(\n options?: GetOpenTimecardOptions\n): Promise<\n NonNullablePaths<\n GetOpenTimecardResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`,\n 3\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n staffMemberId: options?.staffMemberId,\n timeZone: options?.timeZone,\n });\n\n const reqOpts =\n ambassadorWixStaffTimeClockV1Timecard.getOpenTimecard(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n staffMemberId: '$[0].staffMemberId',\n timeZone: '$[0].timeZone',\n },\n singleArgumentUnchanged: false,\n },\n ['options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface GetOpenTimecardOptions {\n /**\n * ID of the staff member whose open timecard to retrieve.\n *\n * Default: The staff member identified from the caller's session.\n * @format GUID\n */\n staffMemberId?: string | null;\n /**\n * Time zone in IANA format, for example `America/New_York`. Used to display the\n * `adjusted` dates in the returned timecard. The recorded `date` is always returned\n * as stored.\n *\n * Default: `UTC`\n * @maxLength 50\n */\n timeZone?: string | null;\n}\n\n/**\n * Creates a timecard directly, for example for a manual entry.\n *\n * Provide a complete record: either a closed timecard with a clock-in and a\n * clock-out, or an open timecard with only a clock-in. The `source` of the punches\n * is set to `MANUAL`. You can provide a `reason`, which is recorded in the\n * timecard's audit trail. `locationId` is optional.\n * @param timecard - Timecard to create.\n * @public\n * @documentationMaturity preview\n * @requiredField timecard\n * @requiredField timecard.clockIn\n * @requiredField timecard.clockIn.date.localDate\n * @requiredField timecard.clockIn.date.timeZone\n * @requiredField timecard.staffMemberId\n * @permissionId staff:time_clock:v1:timecard:create_timecard\n * @applicableIdentity APP\n * @returns Created timecard.\n * @fqn wix.staff.time_clock.v1.TimecardsService.CreateTimecard\n */\nexport async function createTimecard(\n timecard: NonNullablePaths<\n Timecard,\n | `clockIn`\n | `clockIn.date.localDate`\n | `clockIn.date.timeZone`\n | `staffMemberId`,\n 2\n >,\n options?: CreateTimecardOptions\n): Promise<\n NonNullablePaths<\n Timecard,\n | `staffMemberId`\n | `clockIn.source`\n | `taskAssignments`\n | `taskAssignments.${number}.taskId`\n | `taskAssignments.${number}.label`\n | `taskAssignments.${number}.paid`,\n 2\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n timecard: timecard,\n reason: options?.reason,\n });\n\n const reqOpts = ambassadorWixStaffTimeClockV1Timecard.createTimecard(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)?.timecard!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { timecard: '$[0]', reason: '$[1].reason' },\n singleArgumentUnchanged: false,\n },\n ['timecard', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface CreateTimecardOptions {\n /**\n * Reason for the change. Recorded in the timecard's audit trail. It isn't stored\n * on the timecard or returned in the response.\n * @maxLength 1000\n */\n reason?: string | null;\n}\n\n/**\n * Updates a timecard, for example to correct a clock-in or clock-out time.\n *\n * Each time the timecard is updated, `revision` increments by 1. The current\n * `revision` must be passed when updating the timecard. This ensures you're working\n * with the latest timecard and prevents unintended overwrites.\n *\n * Only the fields in `fieldMask` are updated. You can provide a `reason`, which is\n * recorded in the timecard's audit trail.\n * @param _id - Timecard ID.\n * @public\n * @documentationMaturity preview\n * @requiredField _id\n * @requiredField timecard\n * @requiredField timecard.revision\n * @permissionId staff:time_clock:v1:timecard:update_timecard\n * @applicableIdentity APP\n * @returns Updated timecard.\n * @fqn wix.staff.time_clock.v1.TimecardsService.UpdateTimecard\n */\nexport async function updateTimecard(\n _id: string,\n timecard: NonNullablePaths<UpdateTimecard, `revision`, 0>,\n options?: UpdateTimecardOptions\n): Promise<\n NonNullablePaths<\n Timecard,\n | `staffMemberId`\n | `clockIn.source`\n | `taskAssignments`\n | `taskAssignments.${number}.taskId`\n | `taskAssignments.${number}.label`\n | `taskAssignments.${number}.paid`,\n 2\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[3] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n timecard: { ...timecard, id: _id },\n reason: options?.reason,\n });\n\n const reqOpts = ambassadorWixStaffTimeClockV1Timecard.updateTimecard(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)?.timecard!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: { timecard: '$[1]' },\n explicitPathsToArguments: {\n 'timecard.id': '$[0]',\n reason: '$[2].reason',\n },\n singleArgumentUnchanged: false,\n },\n ['_id', 'timecard', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface UpdateTimecard {\n /**\n * Timecard ID.\n * @format GUID\n * @readonly\n */\n _id?: string | null;\n /**\n * Revision number, which increments by 1 each time the timecard is updated.\n * To prevent conflicting changes, the current revision must be passed when\n * updating the timecard.\n *\n * Ignored when creating a timecard.\n * @readonly\n */\n revision?: string | null;\n /**\n * Date and time the timecard was created.\n * @readonly\n */\n _createdDate?: Date | null;\n /**\n * Date and time the timecard was updated.\n * @readonly\n */\n _updatedDate?: Date | null;\n /**\n * ID of the staff member the timecard belongs to.\n * @format GUID\n */\n staffMemberId?: string;\n /** Clock-in, which starts the timecard. */\n clockIn?: ClockPunch;\n /** Clock-out, which ends the timecard. Not set while the timecard is open. */\n clockOut?: ClockPunch;\n /**\n * Tasks the staff member worked on during the timecard, in order and without\n * overlap. A break is a task that is marked as unpaid.\n * @maxSize 200\n */\n taskAssignments?: TaskAssignment[];\n /**\n * ID of the location where the work was done. Not every source, such as a POS\n * terminal, provides one. (Formerly field 6 as a required plain string, see the\n * `reserved 6` note above for why this moved to a new field number.)\n * @format GUID\n */\n locationId?: string | null;\n /**\n * Time worked during this timecard. Calculated from the clock-in, clock-out, and\n * tasks whenever the timecard is read. Ignored when creating or updating a timecard.\n *\n * Each value is rounded down to whole minutes for the timecard, so the sum over several\n * timecards can be up to 2 minutes per timecard lower than the hours returned by List\n * Aggregated Timecards. Use List Aggregated Timecards for totals over a range, and\n * this field for a single shift.\n *\n * `0` while the timecard is open, which means nothing is completed yet, not that no\n * time was worked.\n * @readonly\n */\n workedTime?: WorkedTime;\n}\n\nexport interface UpdateTimecardOptions {\n /**\n * Reason for the change. Recorded in the timecard's audit trail. It isn't stored\n * on the timecard or returned in the response.\n * @maxLength 1000\n */\n reason?: string | null;\n}\n\n/**\n * Deletes a timecard.\n *\n * You can provide a `reason`, which is recorded in the timecard's audit trail.\n * @param timecardId - ID of the timecard to delete.\n * @public\n * @documentationMaturity preview\n * @requiredField timecardId\n * @permissionId staff:time_clock:v1:timecard:delete_timecard\n * @applicableIdentity APP\n * @fqn wix.staff.time_clock.v1.TimecardsService.DeleteTimecard\n */\nexport async function deleteTimecard(\n timecardId: string,\n options?: DeleteTimecardOptions\n): Promise<void> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n timecardId: timecardId,\n reason: options?.reason,\n });\n\n const reqOpts = ambassadorWixStaffTimeClockV1Timecard.deleteTimecard(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { timecardId: '$[0]', reason: '$[1].reason' },\n singleArgumentUnchanged: false,\n },\n ['timecardId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface DeleteTimecardOptions {\n /**\n * Reason for the change. Recorded in the timecard's audit trail. It isn't stored\n * on the timecard or returned in the response.\n * @maxLength 1000\n */\n reason?: string | null;\n}\n\n/**\n * Retrieves a timecard by ID.\n * @param timecardId - ID of the timecard to retrieve.\n * @public\n * @documentationMaturity preview\n * @requiredField timecardId\n * @permissionId staff:time_clock:v1:timecard:get_timecard\n * @permissionId staff:time_clock:v1:timecard:read_on_behalf\n * @applicableIdentity APP\n * @returns Retrieved timecard.\n * @fqn wix.staff.time_clock.v1.TimecardsService.GetTimecard\n */\nexport async function getTimecard(\n timecardId: string,\n options?: GetTimecardOptions\n): Promise<\n NonNullablePaths<\n Timecard,\n | `staffMemberId`\n | `clockIn.source`\n | `taskAssignments`\n | `taskAssignments.${number}.taskId`\n | `taskAssignments.${number}.label`\n | `taskAssignments.${number}.paid`,\n 2\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n timecardId: timecardId,\n timeZone: options?.timeZone,\n });\n\n const reqOpts = ambassadorWixStaffTimeClockV1Timecard.getTimecard(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)?.timecard!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n timecardId: '$[0]',\n timeZone: '$[1].timeZone',\n },\n singleArgumentUnchanged: false,\n },\n ['timecardId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface GetTimecardOptions {\n /**\n * Time zone in IANA format, for example `America/New_York`. Used to display the\n * `adjusted` dates in the returned timecard. The recorded `date` is always returned\n * as stored.\n *\n * Default: `UTC`\n * @maxLength 50\n */\n timeZone?: string | null;\n}\n\n/**\n * Retrieves a list of timecards, given the provided paging, filtering, and sorting.\n *\n * You can filter by `staffMemberId`, `locationId`, `clockIn.date.utcDate`,\n * `clockOut.date.utcDate`, and `updatedDate`. Filtering and sorting by `updatedDate`\n * lets you keep a bookmark and retrieve only the timecards that changed since.\n *\n * To learn about working with Query methods, see [API Query Language](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language), [Sorting and Paging](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-sorting-and-paging), and [Field Projection](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-field-projection).\n * @public\n * @documentationMaturity preview\n * @permissionId staff:time_clock:v1:timecard:query_timecards\n * @permissionId staff:time_clock:v1:timecard:read_on_behalf\n * @applicableIdentity APP\n * @fqn wix.staff.time_clock.v1.TimecardsService.QueryTimecards\n */\nexport function queryTimecards(\n options?: QueryTimecardsOptions\n): TimecardsQueryBuilder {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n return queryBuilder<\n Timecard,\n 'CURSOR',\n QueryTimecardsRequest,\n QueryTimecardsResponse\n >({\n func: async (payload: QueryTimecardsRequest) => {\n const reqOpts = ambassadorWixStaffTimeClockV1Timecard.queryTimecards({\n ...payload,\n ...(options ?? {}),\n });\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n return result;\n } catch (err) {\n sideEffects?.onError?.(err);\n throw err;\n }\n },\n requestTransformer: (query: QueryTimecardsRequest['query']) => {\n const args = [query, options] as [\n QueryTimecardsRequest['query'],\n QueryTimecardsOptions\n ];\n return renameKeysFromSDKRequestToRESTRequest({\n ...args?.[1],\n query: args?.[0],\n });\n },\n responseTransformer: ({ data }: HttpResponse<QueryTimecardsResponse>) => {\n const transformedData = renameKeysFromRESTResponseToSDKResponse(\n transformPaths(data, [])\n );\n\n return {\n items: transformedData?.timecards,\n pagingMetadata: transformedData?.pagingMetadata,\n };\n },\n errorTransformer: (err: unknown) => {\n const transformedError = sdkTransformError(err, {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { query: '$[0]' },\n singleArgumentUnchanged: false,\n });\n\n throw transformedError;\n },\n pagingMethod: 'CURSOR',\n transformationPaths: {},\n });\n}\n\nexport interface QueryTimecardsOptions {\n /**\n * Time zone in IANA format, for example `America/New_York`. Used to display the\n * `adjusted` dates in the returned timecards. The recorded `date` is always\n * returned as stored.\n *\n * Default: `UTC`\n * @maxLength 50\n */\n timeZone?: string | null | undefined;\n /**\n * Whether to read from the primary database, so a timecard written just before this\n * call is included.\n *\n * Default: `false`\n * @internal\n */\n consistentRead?: boolean | undefined;\n}\n\ninterface QueryCursorResult {\n cursors: Cursors;\n hasNext: () => boolean;\n hasPrev: () => boolean;\n length: number;\n pageSize: number;\n}\n\nexport interface TimecardsQueryResult extends QueryCursorResult {\n items: Timecard[];\n query: TimecardsQueryBuilder;\n next: () => Promise<TimecardsQueryResult>;\n prev: () => Promise<TimecardsQueryResult>;\n}\n\nexport interface TimecardsQueryBuilder {\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n eq: (\n propertyName:\n | '_id'\n | '_updatedDate'\n | 'staffMemberId'\n | 'clockIn.date.utcDate'\n | 'locationId',\n value: any\n ) => TimecardsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n ne: (\n propertyName:\n | '_id'\n | '_updatedDate'\n | 'staffMemberId'\n | 'clockIn.date.utcDate'\n | 'locationId',\n value: any\n ) => TimecardsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n ge: (\n propertyName:\n | '_id'\n | '_updatedDate'\n | 'staffMemberId'\n | 'clockIn.date.utcDate'\n | 'locationId',\n value: any\n ) => TimecardsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n gt: (\n propertyName:\n | '_id'\n | '_updatedDate'\n | 'staffMemberId'\n | 'clockIn.date.utcDate'\n | 'locationId',\n value: any\n ) => TimecardsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n le: (\n propertyName:\n | '_id'\n | '_updatedDate'\n | 'staffMemberId'\n | 'clockIn.date.utcDate'\n | 'locationId',\n value: any\n ) => TimecardsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n lt: (\n propertyName:\n | '_id'\n | '_updatedDate'\n | 'staffMemberId'\n | 'clockIn.date.utcDate'\n | 'locationId',\n value: any\n ) => TimecardsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `string`.\n * @param string - String to compare against. Case-insensitive.\n * @documentationMaturity preview\n */\n startsWith: (\n propertyName: '_id' | 'staffMemberId' | 'locationId',\n value: string\n ) => TimecardsQueryBuilder;\n /** @documentationMaturity preview */\n in: (\n propertyName:\n | '_id'\n | '_updatedDate'\n | 'staffMemberId'\n | 'clockIn.date.utcDate'\n | 'locationId',\n value: any\n ) => TimecardsQueryBuilder;\n /** @documentationMaturity preview */\n exists: (\n propertyName:\n | '_id'\n | '_updatedDate'\n | 'staffMemberId'\n | 'clockIn.date.utcDate'\n | 'locationId',\n value: boolean\n ) => TimecardsQueryBuilder;\n /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments.\n * @documentationMaturity preview\n */\n ascending: (\n ...propertyNames: Array<\n '_id' | '_updatedDate' | 'staffMemberId' | 'locationId'\n >\n ) => TimecardsQueryBuilder;\n /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments.\n * @documentationMaturity preview\n */\n descending: (\n ...propertyNames: Array<\n '_id' | '_updatedDate' | 'staffMemberId' | 'locationId'\n >\n ) => TimecardsQueryBuilder;\n /** @param limit - Number of items to return, which is also the `pageSize` of the results object.\n * @documentationMaturity preview\n */\n limit: (limit: number) => TimecardsQueryBuilder;\n /** @param cursor - A pointer to specific record\n * @documentationMaturity preview\n */\n skipTo: (cursor: string) => TimecardsQueryBuilder;\n /** @documentationMaturity preview */\n find: () => Promise<TimecardsQueryResult>;\n}\n\n/**\n * @hidden\n * @fqn wix.staff.time_clock.v1.TimecardsService.QueryTimecards\n * @requiredField query\n */\nexport async function typedQueryTimecards(\n query: TimecardQuery,\n options?: QueryTimecardsOptions\n): Promise<\n NonNullablePaths<\n QueryTimecardsResponse,\n | `timecards`\n | `timecards.${number}.staffMemberId`\n | `timecards.${number}.clockIn.source`,\n 3\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n query: query,\n ...options,\n });\n\n const reqOpts = ambassadorWixStaffTimeClockV1Timecard.queryTimecards(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { query: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['query', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface TimecardQuerySpec extends QuerySpec {\n paging: 'cursor';\n wql: [\n {\n fields: ['_id', 'locationId', 'staffMemberId'];\n operators: '*';\n sort: 'BOTH';\n },\n {\n fields: ['clockIn.date.utcDate', 'clockOut.date.utcDate'];\n operators: '*';\n sort: 'NONE';\n },\n {\n fields: ['_updatedDate'];\n operators: '*';\n sort: 'BOTH';\n }\n ];\n}\n\nexport type CommonQueryWithEntityContext = QuerySdkType<\n Timecard,\n TimecardQuerySpec\n>;\nexport type TimecardQuery = {\n /** \n Cursor paging options.\n\n Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging). \n */\n cursorPaging?: {\n /** \n Maximum number of items to return in the results. \n @max: 100 \n */\n limit?:\n | NonNullable<CommonQueryWithEntityContext['cursorPaging']>['limit']\n | null;\n /** \n Pointer to the next or previous page in the list of results.\n\n Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\n Not relevant for the first request. \n @maxLength: 16000 \n */\n cursor?:\n | NonNullable<CommonQueryWithEntityContext['cursorPaging']>['cursor']\n | null;\n };\n /** \n Filter object.\n\n Learn more about the [filter section](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#the-filter-section). \n */\n filter?: CommonQueryWithEntityContext['filter'] | null;\n /** \n Sort object.\n\n Learn more about the [sort section](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#the-sort-section). \n @maxSize: 5 \n */\n sort?: {\n /** \n Name of the field to sort by. \n @maxLength: 512 \n */\n fieldName?: NonNullable<\n CommonQueryWithEntityContext['sort']\n >[number]['fieldName'];\n /** \n Sort order. \n */\n order?: NonNullable<CommonQueryWithEntityContext['sort']>[number]['order'];\n }[];\n};\n\nexport const utils = {\n query: /*#__PURE__*/ createQueryUtils<\n Timecard,\n TimecardQuerySpec,\n TimecardQuery\n >(),\n};\n\n/**\n * Retrieves the hours each staff member worked over a date range.\n *\n * The response has one row per staff member with paid, unpaid, and total hours, a\n * breakdown by location, and totals across all rows.\n *\n * A timecard counts toward the day its clock-in falls on, whenever it was clocked\n * out. A shift that crosses midnight is reported whole against the day it started\n * and doesn't appear in the next day's report. You can therefore add up reports\n * over consecutive ranges without counting an overnight shift twice.\n *\n * `locationIds` limits which locations the hours are summed over, and a staff\n * member with no timecards in those locations isn't listed. `staffMemberIds` limits\n * which rows are returned and doesn't change the hours per location. Open timecards\n * aren't included in the hours. They're returned as `openTimecardId`.\n *\n * The range can span up to 92 days. Currently, all rows are returned in a single\n * page, and `cursorPaging` is ignored.\n * @param fromLocalDate - First day of the reporting range, inclusive. Interpreted in `timeZone`, so the\n * range starts at the beginning of this day. A timecard is included when its\n * clock-in falls within the range, whenever it was clocked out.\n * @public\n * @documentationMaturity preview\n * @requiredField fromLocalDate\n * @requiredField options.timeZone\n * @requiredField options.toLocalDate\n * @permissionId staff:time_clock:v1:timecard:list_aggregated_timecards\n * @permissionId staff:time_clock:v1:timecard:read_on_behalf\n * @applicableIdentity APP\n * @fqn wix.staff.time_clock.v1.TimecardsService.ListAggregatedTimecards\n */\nexport async function listAggregatedTimecards(\n fromLocalDate: string,\n options?: NonNullablePaths<\n ListAggregatedTimecardsOptions,\n `timeZone` | `toLocalDate`,\n 0\n >\n): Promise<\n NonNullablePaths<\n ListAggregatedTimecardsResponse,\n | `aggregatedTimecards`\n | `aggregatedTimecards.${number}.staffMemberId`\n | `totals.staffCount`\n | `totals.openTimecardCount`,\n 2\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n fromLocalDate: fromLocalDate,\n toLocalDate: options?.toLocalDate,\n timeZone: options?.timeZone,\n locationIds: options?.locationIds,\n staffMemberIds: options?.staffMemberIds,\n cursorPaging: options?.cursorPaging,\n consistentRead: options?.consistentRead,\n });\n\n const reqOpts =\n ambassadorWixStaffTimeClockV1Timecard.listAggregatedTimecards(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n fromLocalDate: '$[0]',\n toLocalDate: '$[1].toLocalDate',\n timeZone: '$[1].timeZone',\n locationIds: '$[1].locationIds',\n staffMemberIds: '$[1].staffMemberIds',\n cursorPaging: '$[1].cursorPaging',\n consistentRead: '$[1].consistentRead',\n },\n singleArgumentUnchanged: false,\n },\n ['fromLocalDate', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface ListAggregatedTimecardsOptions {\n /**\n * Last day of the reporting range, inclusive. Interpreted in `timeZone`, so the\n * range ends at the end of this day.\n *\n * Supports a range of up to 92 days.\n * @format LOCAL_DATE\n */\n toLocalDate: string | null;\n /**\n * Time zone in IANA format, for example `America/New_York`. Day boundaries and the\n * range are interpreted in this time zone.\n * @maxLength 50\n */\n timeZone: string | null;\n /**\n * IDs of the locations to sum hours over. A staff member with no timecards in these\n * locations isn't listed.\n *\n * Default: All locations.\n * @maxSize 200\n * @format GUID\n */\n locationIds?: string[];\n /**\n * IDs of the staff members to return. Doesn't change the hours calculated per\n * location.\n *\n * Default: All staff members with timecards in the range.\n * @maxSize 500\n * @format GUID\n */\n staffMemberIds?: string[];\n /**\n * Cursor paging options for the staff member rows.\n *\n * Currently ignored: all rows are returned in a single page.\n */\n cursorPaging?: CursorPaging;\n /**\n * Whether to read from the primary database, so a timecard created or updated just\n * before this call is included in the hours. Reading from the primary is slower, so\n * use it only right after a write.\n *\n * Default: `false`, which reads from a replica that can be slightly out of date.\n */\n consistentRead?: boolean;\n}\n","import { toURLSearchParams } from '@wix/sdk-runtime/rest-modules';\nimport { transformSDKTimestampToRESTTimestamp } from '@wix/sdk-runtime/transformations/timestamp';\nimport { transformRESTTimestampToSDKTimestamp } from '@wix/sdk-runtime/transformations/timestamp';\nimport { transformSDKFieldMaskToRESTFieldMask } from '@wix/sdk-runtime/transformations/field-mask';\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\nimport { resolveUrl } from '@wix/sdk-runtime/rest-modules';\nimport { ResolveUrlOpts } from '@wix/sdk-runtime/rest-modules';\nimport { RequestOptionsFactory } from '@wix/sdk-types';\n\nconst TRANSFORM_PATHS_0 = [{ path: 'expirationDate' }];\nconst TRANSFORM_PATHS_1 = [\n { path: 'openTimecard.createdDate' },\n { path: 'openTimecard.updatedDate' },\n { path: 'openTimecard.clockIn.date.utcDate' },\n { path: 'openTimecard.clockIn.adjustedDate.utcDate' },\n { path: 'openTimecard.clockOut.date.utcDate' },\n { path: 'openTimecard.clockOut.adjustedDate.utcDate' },\n { path: 'openTimecard.taskAssignments.startDate.utcDate' },\n { path: 'openTimecard.taskAssignments.endDate.utcDate' },\n { path: 'openTimecard.taskAssignments.adjustedStartDate.utcDate' },\n { path: 'openTimecard.taskAssignments.adjustedEndDate.utcDate' },\n];\nconst TRANSFORM_PATHS_2 = [\n { path: 'timecard.createdDate' },\n { path: 'timecard.updatedDate' },\n { path: 'timecard.clockIn.date.utcDate' },\n { path: 'timecard.clockIn.adjustedDate.utcDate' },\n { path: 'timecard.clockOut.date.utcDate' },\n { path: 'timecard.clockOut.adjustedDate.utcDate' },\n { path: 'timecard.taskAssignments.startDate.utcDate' },\n { path: 'timecard.taskAssignments.endDate.utcDate' },\n { path: 'timecard.taskAssignments.adjustedStartDate.utcDate' },\n { path: 'timecard.taskAssignments.adjustedEndDate.utcDate' },\n];\nconst TRANSFORM_PATHS_3 = [{ path: 'fieldMask' }];\nconst TRANSFORM_PATHS_4 = [\n { path: 'timecards.createdDate' },\n { path: 'timecards.updatedDate' },\n { path: 'timecards.clockIn.date.utcDate' },\n { path: 'timecards.clockIn.adjustedDate.utcDate' },\n { path: 'timecards.clockOut.date.utcDate' },\n { path: 'timecards.clockOut.adjustedDate.utcDate' },\n { path: 'timecards.taskAssignments.startDate.utcDate' },\n { path: 'timecards.taskAssignments.endDate.utcDate' },\n { path: 'timecards.taskAssignments.adjustedStartDate.utcDate' },\n { path: 'timecards.taskAssignments.adjustedEndDate.utcDate' },\n];\n\nfunction resolveWixStaffTimeClockV1TimecardsServiceUrl(\n opts: Omit<ResolveUrlOpts, 'domainToMappings'>\n) {\n const domainToMappings = {\n 'manage._base_domain_': [\n {\n srcPath: '/_api/timecard',\n destPath: '',\n },\n ],\n };\n\n return resolveUrl(Object.assign(opts, { domainToMappings }));\n}\n\nfunction resolveWixStaffKioskV1KioskSessionServiceUrl(\n opts: Omit<ResolveUrlOpts, 'domainToMappings'>\n) {\n const domainToMappings = {\n 'www.wixapis.com': [\n {\n srcPath: '/v1/timecards',\n destPath: '/v1/timecards',\n },\n ],\n };\n\n return resolveUrl(Object.assign(opts, { domainToMappings }));\n}\n\nconst PACKAGE_NAME = '@wix/auto_sdk_staff-time-clock_timecards';\n\n/**\n * Exchanges a staff member's PIN hash for a short-lived StaffToken.\n *\n * Call this with the device's Kiosk Token as a bearer credential. The site and\n * location are taken from that token.\n *\n * A PIN that matches no staff member and a staff member who has no PIN return the\n * same error, with no detail distinguishing them.\n */\nexport function generateStaffToken(\n payload: object\n): RequestOptionsFactory<any> {\n function __generateStaffToken({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.staff.time_clock.v1.timecard',\n method: 'POST' as any,\n methodFqn: 'wix.staff.kiosk.v1.KioskSessionService.GenerateStaffToken',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStaffKioskV1KioskSessionServiceUrl({\n protoPath: '/v1/timecards/generate-staff-token',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: TRANSFORM_PATHS_0,\n },\n ]),\n };\n\n return metadata;\n }\n\n return __generateStaffToken;\n}\n\n/**\n * Retrieves the signed-in staff member's open timecard and the site's task catalog.\n *\n * Call this with the staff member's StaffToken as a bearer credential. The staff\n * member is taken from that token.\n */\nexport function getTimeClockDetails(\n payload: object\n): RequestOptionsFactory<any> {\n function __getTimeClockDetails({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.staff.time_clock.v1.timecard',\n method: 'POST' as any,\n methodFqn: 'wix.staff.kiosk.v1.KioskSessionService.GetTimeClockDetails',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStaffKioskV1KioskSessionServiceUrl({\n protoPath: '/v1/timecards/get-time-clock-details',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: TRANSFORM_PATHS_1,\n },\n ]),\n };\n\n return metadata;\n }\n\n return __getTimeClockDetails;\n}\n\n/**\n * Opens a timecard for the signed-in staff member (clock-in).\n *\n * Call this with the staff member's StaffToken as a bearer credential. Idempotent:\n * if the staff member already has an open timecard, it is returned with\n * `wasAlreadyOpen` set instead of opening a second one.\n */\nexport function kioskClockInTimecard(\n payload: object\n): RequestOptionsFactory<any> {\n function __kioskClockInTimecard({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.staff.time_clock.v1.timecard',\n method: 'POST' as any,\n methodFqn: 'wix.staff.kiosk.v1.KioskSessionService.ClockInTimecard',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStaffKioskV1KioskSessionServiceUrl({\n protoPath: '/v1/timecards/clock-in',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: TRANSFORM_PATHS_2,\n },\n ]),\n };\n\n return metadata;\n }\n\n return __kioskClockInTimecard;\n}\n\n/**\n * Closes the signed-in staff member's open timecard (clock-out). Any still-running\n * task segment is closed at the same time.\n *\n * Call this with the staff member's StaffToken as a bearer credential.\n */\nexport function kioskClockOutTimecard(\n payload: object\n): RequestOptionsFactory<any> {\n function __kioskClockOutTimecard({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.staff.time_clock.v1.timecard',\n method: 'POST' as any,\n methodFqn: 'wix.staff.kiosk.v1.KioskSessionService.ClockOutTimecard',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStaffKioskV1KioskSessionServiceUrl({\n protoPath: '/v1/timecards/clock-out',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: TRANSFORM_PATHS_2,\n },\n ]),\n };\n\n return metadata;\n }\n\n return __kioskClockOutTimecard;\n}\n\n/**\n * Starts a task on the signed-in staff member's open timecard. If another task is\n * already running it is closed first (a task switch).\n *\n * Call this with the staff member's StaffToken as a bearer credential.\n */\nexport function kioskStartTimecardTask(\n payload: object\n): RequestOptionsFactory<any> {\n function __kioskStartTimecardTask({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.staff.time_clock.v1.timecard',\n method: 'POST' as any,\n methodFqn: 'wix.staff.kiosk.v1.KioskSessionService.StartTimecardTask',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStaffKioskV1KioskSessionServiceUrl({\n protoPath: '/v1/timecards/start-task',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: TRANSFORM_PATHS_2,\n },\n ]),\n };\n\n return metadata;\n }\n\n return __kioskStartTimecardTask;\n}\n\n/**\n * Ends the running task on the signed-in staff member's open timecard, returning it\n * to untasked working time.\n *\n * Call this with the staff member's StaffToken as a bearer credential.\n */\nexport function kioskEndTimecardTask(\n payload: object\n): RequestOptionsFactory<any> {\n function __kioskEndTimecardTask({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.staff.time_clock.v1.timecard',\n method: 'POST' as any,\n methodFqn: 'wix.staff.kiosk.v1.KioskSessionService.EndTimecardTask',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStaffKioskV1KioskSessionServiceUrl({\n protoPath: '/v1/timecards/end-task',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: TRANSFORM_PATHS_2,\n },\n ]),\n };\n\n return metadata;\n }\n\n return __kioskEndTimecardTask;\n}\n\n/**\n * Opens a timecard for a staff member (clock-in).\n *\n * If the staff member already has an open timecard, from any source, no second\n * timecard is opened. The existing timecard is returned with `wasAlreadyOpen` set\n * to `true`.\n *\n * The call fails if the new timecard would overlap one the staff member already\n * has. For example, a timecard with a clock-out time in the future still covers\n * the moment of the clock-in.\n *\n * A staff member who clocks themselves in needs self clock-in to be enabled in the\n * site's time clock settings. Clocking in on behalf of a staff member, for example\n * from a kiosk, doesn't depend on that setting.\n */\nexport function clockInTimecard(payload: object): RequestOptionsFactory<any> {\n function __clockInTimecard({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.staff.time_clock.v1.timecard',\n method: 'POST' as any,\n methodFqn: 'wix.staff.time_clock.v1.TimecardsService.ClockInTimecard',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStaffTimeClockV1TimecardsServiceUrl({\n protoPath: '/v1/timecards/clock-in',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: TRANSFORM_PATHS_2,\n },\n ]),\n };\n\n return metadata;\n }\n\n return __clockInTimecard;\n}\n\n/**\n * Closes the staff member's open timecard (clock-out).\n *\n * A task that is still running is closed at the same time. The call fails if the\n * staff member has no open timecard, so a second call right after a clock-out\n * fails.\n */\nexport function clockOutTimecard(payload: object): RequestOptionsFactory<any> {\n function __clockOutTimecard({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.staff.time_clock.v1.timecard',\n method: 'POST' as any,\n methodFqn: 'wix.staff.time_clock.v1.TimecardsService.ClockOutTimecard',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStaffTimeClockV1TimecardsServiceUrl({\n protoPath: '/v1/timecards/clock-out',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: TRANSFORM_PATHS_2,\n },\n ]),\n };\n\n return metadata;\n }\n\n return __clockOutTimecard;\n}\n\n/**\n * Starts a task on the staff member's open timecard.\n *\n * If another task is already running, it is closed first, so switching tasks takes\n * a single call. The task's label and whether it's paid are copied from the site's\n * task catalog when the task starts. Later changes to the catalog don't affect it.\n */\nexport function startTimecardTask(payload: object): RequestOptionsFactory<any> {\n function __startTimecardTask({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.staff.time_clock.v1.timecard',\n method: 'POST' as any,\n methodFqn: 'wix.staff.time_clock.v1.TimecardsService.StartTimecardTask',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStaffTimeClockV1TimecardsServiceUrl({\n protoPath: '/v1/timecards/start-task',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: TRANSFORM_PATHS_2,\n },\n ]),\n };\n\n return metadata;\n }\n\n return __startTimecardTask;\n}\n\n/**\n * Ends the running task on the staff member's open timecard, returning it to\n * untasked working time.\n *\n * The call fails if no task is running.\n */\nexport function endTimecardTask(payload: object): RequestOptionsFactory<any> {\n function __endTimecardTask({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.staff.time_clock.v1.timecard',\n method: 'POST' as any,\n methodFqn: 'wix.staff.time_clock.v1.TimecardsService.EndTimecardTask',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStaffTimeClockV1TimecardsServiceUrl({\n protoPath: '/v1/timecards/end-task',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: TRANSFORM_PATHS_2,\n },\n ]),\n };\n\n return metadata;\n }\n\n return __endTimecardTask;\n}\n\n/**\n * Retrieves the staff member's open timecard.\n *\n * If the staff member is clocked out, no timecard is returned. Use this to show\n * whether a staff member is clocked in, working on a task, or clocked out.\n */\nexport function getOpenTimecard(payload: object): RequestOptionsFactory<any> {\n function __getOpenTimecard({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.staff.time_clock.v1.timecard',\n method: 'GET' as any,\n methodFqn: 'wix.staff.time_clock.v1.TimecardsService.GetOpenTimecard',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStaffTimeClockV1TimecardsServiceUrl({\n protoPath: '/v1/timecards/open',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: TRANSFORM_PATHS_2,\n },\n ]),\n };\n\n return metadata;\n }\n\n return __getOpenTimecard;\n}\n\n/**\n * Creates a timecard directly, for example for a manual entry.\n *\n * Provide a complete record: either a closed timecard with a clock-in and a\n * clock-out, or an open timecard with only a clock-in. The `source` of the punches\n * is set to `MANUAL`. You can provide a `reason`, which is recorded in the\n * timecard's audit trail. `locationId` is optional.\n */\nexport function createTimecard(payload: object): RequestOptionsFactory<any> {\n function __createTimecard({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: TRANSFORM_PATHS_2,\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.staff.time_clock.v1.timecard',\n method: 'POST' as any,\n methodFqn: 'wix.staff.time_clock.v1.TimecardsService.CreateTimecard',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStaffTimeClockV1TimecardsServiceUrl({\n protoPath: '/v1/timecards',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: TRANSFORM_PATHS_2,\n },\n ]),\n };\n\n return metadata;\n }\n\n return __createTimecard;\n}\n\n/**\n * Updates a timecard, for example to correct a clock-in or clock-out time.\n *\n * Each time the timecard is updated, `revision` increments by 1. The current\n * `revision` must be passed when updating the timecard. This ensures you're working\n * with the latest timecard and prevents unintended overwrites.\n *\n * Only the fields in `fieldMask` are updated. You can provide a `reason`, which is\n * recorded in the timecard's audit trail.\n */\nexport function updateTimecard(payload: object): RequestOptionsFactory<any> {\n function __updateTimecard({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFieldMaskToRESTFieldMask,\n paths: TRANSFORM_PATHS_3,\n },\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: TRANSFORM_PATHS_2,\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.staff.time_clock.v1.timecard',\n method: 'PATCH' as any,\n methodFqn: 'wix.staff.time_clock.v1.TimecardsService.UpdateTimecard',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStaffTimeClockV1TimecardsServiceUrl({\n protoPath: '/v1/timecards/{timecard.id}',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: TRANSFORM_PATHS_2,\n },\n ]),\n };\n\n return metadata;\n }\n\n return __updateTimecard;\n}\n\n/**\n * Deletes a timecard.\n *\n * You can provide a `reason`, which is recorded in the timecard's audit trail.\n */\nexport function deleteTimecard(payload: object): RequestOptionsFactory<any> {\n function __deleteTimecard({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.staff.time_clock.v1.timecard',\n method: 'DELETE' as any,\n methodFqn: 'wix.staff.time_clock.v1.TimecardsService.DeleteTimecard',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStaffTimeClockV1TimecardsServiceUrl({\n protoPath: '/v1/timecards/{timecardId}',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n };\n\n return metadata;\n }\n\n return __deleteTimecard;\n}\n\n/** Retrieves a timecard by ID. */\nexport function getTimecard(payload: object): RequestOptionsFactory<any> {\n function __getTimecard({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.staff.time_clock.v1.timecard',\n method: 'GET' as any,\n methodFqn: 'wix.staff.time_clock.v1.TimecardsService.GetTimecard',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStaffTimeClockV1TimecardsServiceUrl({\n protoPath: '/v1/timecards/{timecardId}',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: TRANSFORM_PATHS_2,\n },\n ]),\n };\n\n return metadata;\n }\n\n return __getTimecard;\n}\n\n/**\n * Retrieves a list of timecards, given the provided paging, filtering, and sorting.\n *\n * You can filter by `staffMemberId`, `locationId`, `clockIn.date.utcDate`,\n * `clockOut.date.utcDate`, and `updatedDate`. Filtering and sorting by `updatedDate`\n * lets you keep a bookmark and retrieve only the timecards that changed since.\n *\n * To learn about working with Query methods, see [API Query Language](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language), [Sorting and Paging](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-sorting-and-paging), and [Field Projection](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-field-projection).\n */\nexport function queryTimecards(payload: object): RequestOptionsFactory<any> {\n function __queryTimecards({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.staff.time_clock.v1.timecard',\n method: 'GET' as any,\n methodFqn: 'wix.staff.time_clock.v1.TimecardsService.QueryTimecards',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStaffTimeClockV1TimecardsServiceUrl({\n protoPath: '/v1/timecards/query',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload, true),\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: TRANSFORM_PATHS_4,\n },\n ]),\n fallback: [\n {\n method: 'POST' as any,\n url: resolveWixStaffTimeClockV1TimecardsServiceUrl({\n protoPath: '/v1/timecards/query',\n data: payload,\n host,\n }),\n data: payload,\n },\n ],\n };\n\n return metadata;\n }\n\n return __queryTimecards;\n}\n\n/**\n * Retrieves the hours each staff member worked over a date range.\n *\n * The response has one row per staff member with paid, unpaid, and total hours, a\n * breakdown by location, and totals across all rows.\n *\n * A timecard counts toward the day its clock-in falls on, whenever it was clocked\n * out. A shift that crosses midnight is reported whole against the day it started\n * and doesn't appear in the next day's report. You can therefore add up reports\n * over consecutive ranges without counting an overnight shift twice.\n *\n * `locationIds` limits which locations the hours are summed over, and a staff\n * member with no timecards in those locations isn't listed. `staffMemberIds` limits\n * which rows are returned and doesn't change the hours per location. Open timecards\n * aren't included in the hours. They're returned as `openTimecardId`.\n *\n * The range can span up to 92 days. Currently, all rows are returned in a single\n * page, and `cursorPaging` is ignored.\n */\nexport function listAggregatedTimecards(\n payload: object\n): RequestOptionsFactory<any> {\n function __listAggregatedTimecards({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.staff.time_clock.v1.timecard',\n method: 'POST' as any,\n methodFqn:\n 'wix.staff.time_clock.v1.TimecardsService.ListAggregatedTimecards',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStaffTimeClockV1TimecardsServiceUrl({\n protoPath: '/v1/timecards/list-aggregated',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __listAggregatedTimecards;\n}\n","import { HttpClient, NonNullablePaths } from '@wix/sdk-types';\nimport {\n ClockInTimecardOptions,\n ClockInTimecardResponse,\n ClockOutTimecardOptions,\n ClockOutTimecardResponse,\n CreateTimecardOptions,\n DeleteTimecardOptions,\n EndTimecardTaskOptions,\n EndTimecardTaskResponse,\n GenerateStaffTokenApplicationErrors,\n GenerateStaffTokenResponse,\n GetOpenTimecardOptions,\n GetOpenTimecardResponse,\n GetTimeClockDetailsApplicationErrors,\n GetTimeClockDetailsResponse,\n GetTimecardOptions,\n KioskClockInTimecardApplicationErrors,\n KioskClockInTimecardOptions,\n KioskClockOutTimecardApplicationErrors,\n KioskClockOutTimecardOptions,\n KioskEndTimecardTaskApplicationErrors,\n KioskEndTimecardTaskOptions,\n KioskStartTimecardTaskApplicationErrors,\n KioskStartTimecardTaskOptions,\n ListAggregatedTimecardsOptions,\n ListAggregatedTimecardsResponse,\n QueryTimecardsOptions,\n QueryTimecardsResponse,\n StartTimecardTaskOptions,\n StartTimecardTaskResponse,\n Timecard,\n TimecardQuery,\n TimecardsQueryBuilder,\n UpdateTimecard,\n UpdateTimecardOptions,\n clockInTimecard as universalClockInTimecard,\n clockOutTimecard as universalClockOutTimecard,\n createTimecard as universalCreateTimecard,\n deleteTimecard as universalDeleteTimecard,\n endTimecardTask as universalEndTimecardTask,\n generateStaffToken as universalGenerateStaffToken,\n getOpenTimecard as universalGetOpenTimecard,\n getTimeClockDetails as universalGetTimeClockDetails,\n getTimecard as universalGetTimecard,\n kioskClockInTimecard as universalKioskClockInTimecard,\n kioskClockOutTimecard as universalKioskClockOutTimecard,\n kioskEndTimecardTask as universalKioskEndTimecardTask,\n kioskStartTimecardTask as universalKioskStartTimecardTask,\n listAggregatedTimecards as universalListAggregatedTimecards,\n queryTimecards as universalQueryTimecards,\n startTimecardTask as universalStartTimecardTask,\n typedQueryTimecards as universalTypedQueryTimecards,\n updateTimecard as universalUpdateTimecard,\n} from './staff-time-clock-v1-timecard-timecards.universal.js';\n\nexport const __metadata = { PACKAGE_NAME: '@wix/staff-time-clock' };\n\nexport function generateStaffToken(\n httpClient: HttpClient\n): GenerateStaffTokenSignature {\n return (pin: string) =>\n universalGenerateStaffToken(\n pin,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface GenerateStaffTokenSignature {\n /**\n * Exchanges a staff member's PIN hash for a short-lived StaffToken.\n *\n * Call this with the device's Kiosk Token as a bearer credential. The site and\n * location are taken from that token.\n *\n * A PIN that matches no staff member and a staff member who has no PIN return the\n * same error, with no detail distinguishing them.\n * @param - Hash of the PIN the staff member entered, as uppercase hex, computed as\n * `SHA-256(\"Pin(symbols=[1, 2, 3, 4])|<metaSiteId>\")` over the entered digits and\n * the site ID from the device's pairing context.\n */\n (pin: string): Promise<\n NonNullablePaths<GenerateStaffTokenResponse, `staffToken`, 0> & {\n __applicationErrorsType?: GenerateStaffTokenApplicationErrors;\n }\n >;\n}\n\nexport function getTimeClockDetails(\n httpClient: HttpClient\n): GetTimeClockDetailsSignature {\n return () =>\n universalGetTimeClockDetails(\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface GetTimeClockDetailsSignature {\n /**\n * Retrieves the signed-in staff member's open timecard and the site's task catalog.\n *\n * Call this with the staff member's StaffToken as a bearer credential. The staff\n * member is taken from that token.\n */\n (): Promise<\n NonNullablePaths<\n GetTimeClockDetailsResponse,\n | `openTimecard.staffMemberId`\n | `openTimecard.clockIn.source`\n | `openTimecard.taskAssignments`\n | `openTimecard.taskAssignments.${number}.taskId`\n | `openTimecard.taskAssignments.${number}.label`\n | `openTimecard.taskAssignments.${number}.paid`\n | `tasks`\n | `tasks.${number}.label`\n | `tasks.${number}.paid`,\n 3\n > & {\n __applicationErrorsType?: GetTimeClockDetailsApplicationErrors;\n }\n >;\n}\n\nexport function kioskClockInTimecard(\n httpClient: HttpClient\n): KioskClockInTimecardSignature {\n return (options?: KioskClockInTimecardOptions) =>\n universalKioskClockInTimecard(\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface KioskClockInTimecardSignature {\n /**\n * Opens a timecard for the signed-in staff member (clock-in).\n *\n * Call this with the staff member's StaffToken as a bearer credential. Idempotent:\n * if the staff member already has an open timecard, it is returned with\n * `wasAlreadyOpen` set instead of opening a second one.\n */\n (options?: KioskClockInTimecardOptions): Promise<\n NonNullablePaths<\n ClockInTimecardResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`\n | `wasAlreadyOpen`,\n 3\n > & {\n __applicationErrorsType?: KioskClockInTimecardApplicationErrors;\n }\n >;\n}\n\nexport function kioskClockOutTimecard(\n httpClient: HttpClient\n): KioskClockOutTimecardSignature {\n return (options?: KioskClockOutTimecardOptions) =>\n universalKioskClockOutTimecard(\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface KioskClockOutTimecardSignature {\n /**\n * Closes the signed-in staff member's open timecard (clock-out). Any still-running\n * task segment is closed at the same time.\n *\n * Call this with the staff member's StaffToken as a bearer credential.\n */\n (options?: KioskClockOutTimecardOptions): Promise<\n NonNullablePaths<\n ClockOutTimecardResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`,\n 3\n > & {\n __applicationErrorsType?: KioskClockOutTimecardApplicationErrors;\n }\n >;\n}\n\nexport function kioskStartTimecardTask(\n httpClient: HttpClient\n): KioskStartTimecardTaskSignature {\n return (options?: KioskStartTimecardTaskOptions) =>\n universalKioskStartTimecardTask(\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface KioskStartTimecardTaskSignature {\n /**\n * Starts a task on the signed-in staff member's open timecard. If another task is\n * already running it is closed first (a task switch).\n *\n * Call this with the staff member's StaffToken as a bearer credential.\n */\n (options?: KioskStartTimecardTaskOptions): Promise<\n NonNullablePaths<\n StartTimecardTaskResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`,\n 3\n > & {\n __applicationErrorsType?: KioskStartTimecardTaskApplicationErrors;\n }\n >;\n}\n\nexport function kioskEndTimecardTask(\n httpClient: HttpClient\n): KioskEndTimecardTaskSignature {\n return (options?: KioskEndTimecardTaskOptions) =>\n universalKioskEndTimecardTask(\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface KioskEndTimecardTaskSignature {\n /**\n * Ends the running task on the signed-in staff member's open timecard, returning it\n * to untasked working time.\n *\n * Call this with the staff member's StaffToken as a bearer credential.\n */\n (options?: KioskEndTimecardTaskOptions): Promise<\n NonNullablePaths<\n EndTimecardTaskResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`,\n 3\n > & {\n __applicationErrorsType?: KioskEndTimecardTaskApplicationErrors;\n }\n >;\n}\n\nexport function clockInTimecard(\n httpClient: HttpClient\n): ClockInTimecardSignature {\n return (options?: ClockInTimecardOptions) =>\n universalClockInTimecard(\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface ClockInTimecardSignature {\n /**\n * Opens a timecard for a staff member (clock-in).\n *\n * If the staff member already has an open timecard, from any source, no second\n * timecard is opened. The existing timecard is returned with `wasAlreadyOpen` set\n * to `true`.\n *\n * The call fails if the new timecard would overlap one the staff member already\n * has. For example, a timecard with a clock-out time in the future still covers\n * the moment of the clock-in.\n *\n * A staff member who clocks themselves in needs self clock-in to be enabled in the\n * site's time clock settings. Clocking in on behalf of a staff member, for example\n * from a kiosk, doesn't depend on that setting.\n */\n (options?: ClockInTimecardOptions): Promise<\n NonNullablePaths<\n ClockInTimecardResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`\n | `wasAlreadyOpen`,\n 3\n >\n >;\n}\n\nexport function clockOutTimecard(\n httpClient: HttpClient\n): ClockOutTimecardSignature {\n return (options?: ClockOutTimecardOptions) =>\n universalClockOutTimecard(\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface ClockOutTimecardSignature {\n /**\n * Closes the staff member's open timecard (clock-out).\n *\n * A task that is still running is closed at the same time. The call fails if the\n * staff member has no open timecard, so a second call right after a clock-out\n * fails.\n */\n (options?: ClockOutTimecardOptions): Promise<\n NonNullablePaths<\n ClockOutTimecardResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`,\n 3\n >\n >;\n}\n\nexport function startTimecardTask(\n httpClient: HttpClient\n): StartTimecardTaskSignature {\n return (options?: StartTimecardTaskOptions) =>\n universalStartTimecardTask(\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface StartTimecardTaskSignature {\n /**\n * Starts a task on the staff member's open timecard.\n *\n * If another task is already running, it is closed first, so switching tasks takes\n * a single call. The task's label and whether it's paid are copied from the site's\n * task catalog when the task starts. Later changes to the catalog don't affect it.\n */\n (options?: StartTimecardTaskOptions): Promise<\n NonNullablePaths<\n StartTimecardTaskResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`,\n 3\n >\n >;\n}\n\nexport function endTimecardTask(\n httpClient: HttpClient\n): EndTimecardTaskSignature {\n return (options?: EndTimecardTaskOptions) =>\n universalEndTimecardTask(\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface EndTimecardTaskSignature {\n /**\n * Ends the running task on the staff member's open timecard, returning it to\n * untasked working time.\n *\n * The call fails if no task is running.\n */\n (options?: EndTimecardTaskOptions): Promise<\n NonNullablePaths<\n EndTimecardTaskResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`,\n 3\n >\n >;\n}\n\nexport function getOpenTimecard(\n httpClient: HttpClient\n): GetOpenTimecardSignature {\n return (options?: GetOpenTimecardOptions) =>\n universalGetOpenTimecard(\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface GetOpenTimecardSignature {\n /**\n * Retrieves the staff member's open timecard.\n *\n * If the staff member is clocked out, no timecard is returned. Use this to show\n * whether a staff member is clocked in, working on a task, or clocked out.\n */\n (options?: GetOpenTimecardOptions): Promise<\n NonNullablePaths<\n GetOpenTimecardResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`,\n 3\n >\n >;\n}\n\nexport function createTimecard(\n httpClient: HttpClient\n): CreateTimecardSignature {\n return (\n timecard: NonNullablePaths<\n Timecard,\n | `clockIn`\n | `clockIn.date.localDate`\n | `clockIn.date.timeZone`\n | `staffMemberId`,\n 2\n >,\n options?: CreateTimecardOptions\n ) =>\n universalCreateTimecard(\n timecard,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface CreateTimecardSignature {\n /**\n * Creates a timecard directly, for example for a manual entry.\n *\n * Provide a complete record: either a closed timecard with a clock-in and a\n * clock-out, or an open timecard with only a clock-in. The `source` of the punches\n * is set to `MANUAL`. You can provide a `reason`, which is recorded in the\n * timecard's audit trail. `locationId` is optional.\n * @param - Timecard to create.\n * @returns Created timecard.\n */\n (\n timecard: NonNullablePaths<\n Timecard,\n | `clockIn`\n | `clockIn.date.localDate`\n | `clockIn.date.timeZone`\n | `staffMemberId`,\n 2\n >,\n options?: CreateTimecardOptions\n ): Promise<\n NonNullablePaths<\n Timecard,\n | `staffMemberId`\n | `clockIn.source`\n | `taskAssignments`\n | `taskAssignments.${number}.taskId`\n | `taskAssignments.${number}.label`\n | `taskAssignments.${number}.paid`,\n 2\n >\n >;\n}\n\nexport function updateTimecard(\n httpClient: HttpClient\n): UpdateTimecardSignature {\n return (\n _id: string,\n timecard: NonNullablePaths<UpdateTimecard, `revision`, 0>,\n options?: UpdateTimecardOptions\n ) =>\n universalUpdateTimecard(\n _id,\n timecard,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface UpdateTimecardSignature {\n /**\n * Updates a timecard, for example to correct a clock-in or clock-out time.\n *\n * Each time the timecard is updated, `revision` increments by 1. The current\n * `revision` must be passed when updating the timecard. This ensures you're working\n * with the latest timecard and prevents unintended overwrites.\n *\n * Only the fields in `fieldMask` are updated. You can provide a `reason`, which is\n * recorded in the timecard's audit trail.\n * @param - Timecard ID.\n * @returns Updated timecard.\n */\n (\n _id: string,\n timecard: NonNullablePaths<UpdateTimecard, `revision`, 0>,\n options?: UpdateTimecardOptions\n ): Promise<\n NonNullablePaths<\n Timecard,\n | `staffMemberId`\n | `clockIn.source`\n | `taskAssignments`\n | `taskAssignments.${number}.taskId`\n | `taskAssignments.${number}.label`\n | `taskAssignments.${number}.paid`,\n 2\n >\n >;\n}\n\nexport function deleteTimecard(\n httpClient: HttpClient\n): DeleteTimecardSignature {\n return (timecardId: string, options?: DeleteTimecardOptions) =>\n universalDeleteTimecard(\n timecardId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface DeleteTimecardSignature {\n /**\n * Deletes a timecard.\n *\n * You can provide a `reason`, which is recorded in the timecard's audit trail.\n * @param - ID of the timecard to delete.\n */\n (timecardId: string, options?: DeleteTimecardOptions): Promise<void>;\n}\n\nexport function getTimecard(httpClient: HttpClient): GetTimecardSignature {\n return (timecardId: string, options?: GetTimecardOptions) =>\n universalGetTimecard(\n timecardId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface GetTimecardSignature {\n /**\n * Retrieves a timecard by ID.\n * @param - ID of the timecard to retrieve.\n * @returns Retrieved timecard.\n */\n (timecardId: string, options?: GetTimecardOptions): Promise<\n NonNullablePaths<\n Timecard,\n | `staffMemberId`\n | `clockIn.source`\n | `taskAssignments`\n | `taskAssignments.${number}.taskId`\n | `taskAssignments.${number}.label`\n | `taskAssignments.${number}.paid`,\n 2\n >\n >;\n}\n\nexport function queryTimecards(\n httpClient: HttpClient\n): QueryTimecardsSignature {\n return (options?: QueryTimecardsOptions) =>\n universalQueryTimecards(\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface QueryTimecardsSignature {\n /**\n * Retrieves a list of timecards, given the provided paging, filtering, and sorting.\n *\n * You can filter by `staffMemberId`, `locationId`, `clockIn.date.utcDate`,\n * `clockOut.date.utcDate`, and `updatedDate`. Filtering and sorting by `updatedDate`\n * lets you keep a bookmark and retrieve only the timecards that changed since.\n *\n * To learn about working with Query methods, see [API Query Language](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language), [Sorting and Paging](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-sorting-and-paging), and [Field Projection](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-field-projection).\n */\n (options?: QueryTimecardsOptions): TimecardsQueryBuilder;\n}\n\nexport function typedQueryTimecards(\n httpClient: HttpClient\n): TypedQueryTimecardsSignature {\n return (query: TimecardQuery, options?: QueryTimecardsOptions) =>\n universalTypedQueryTimecards(\n query,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface TypedQueryTimecardsSignature {\n /** */\n (query: TimecardQuery, options?: QueryTimecardsOptions): Promise<\n NonNullablePaths<\n QueryTimecardsResponse,\n | `timecards`\n | `timecards.${number}.staffMemberId`\n | `timecards.${number}.clockIn.source`,\n 3\n >\n >;\n}\n\nexport function listAggregatedTimecards(\n httpClient: HttpClient\n): ListAggregatedTimecardsSignature {\n return (\n fromLocalDate: string,\n options?: NonNullablePaths<\n ListAggregatedTimecardsOptions,\n `timeZone` | `toLocalDate`,\n 0\n >\n ) =>\n universalListAggregatedTimecards(\n fromLocalDate,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface ListAggregatedTimecardsSignature {\n /**\n * Retrieves the hours each staff member worked over a date range.\n *\n * The response has one row per staff member with paid, unpaid, and total hours, a\n * breakdown by location, and totals across all rows.\n *\n * A timecard counts toward the day its clock-in falls on, whenever it was clocked\n * out. A shift that crosses midnight is reported whole against the day it started\n * and doesn't appear in the next day's report. You can therefore add up reports\n * over consecutive ranges without counting an overnight shift twice.\n *\n * `locationIds` limits which locations the hours are summed over, and a staff\n * member with no timecards in those locations isn't listed. `staffMemberIds` limits\n * which rows are returned and doesn't change the hours per location. Open timecards\n * aren't included in the hours. They're returned as `openTimecardId`.\n *\n * The range can span up to 92 days. Currently, all rows are returned in a single\n * page, and `cursorPaging` is ignored.\n * @param - First day of the reporting range, inclusive. Interpreted in `timeZone`, so the\n * range starts at the beginning of this day. A timecard is included when its\n * clock-in falls within the range, whenever it was clocked out.\n */\n (\n fromLocalDate: string,\n options?: NonNullablePaths<\n ListAggregatedTimecardsOptions,\n `timeZone` | `toLocalDate`,\n 0\n >\n ): Promise<\n NonNullablePaths<\n ListAggregatedTimecardsResponse,\n | `aggregatedTimecards`\n | `aggregatedTimecards.${number}.staffMemberId`\n | `totals.staffCount`\n | `totals.openTimecardCount`,\n 2\n >\n >;\n}\n\nexport {\n AccountInfo,\n ActionEvent,\n AggregatedTimecard,\n ClockInTimecardOptions,\n ClockInTimecardRequest,\n ClockInTimecardResponse,\n ClockOutTimecardOptions,\n ClockOutTimecardRequest,\n ClockOutTimecardResponse,\n ClockPunch,\n ClockSource,\n CloseTimecardRequest,\n CloseTimecardResponse,\n CompletePinSetupRequest,\n CompletePinSetupResponse,\n CreateTimecardOptions,\n CreateTimecardRequest,\n CreateTimecardResponse,\n CursorPaging,\n CursorPagingMetadata,\n CursorQuery,\n CursorQueryPagingMethodOneOf,\n Cursors,\n DeleteTimecardOptions,\n DeleteTimecardRequest,\n DeleteTimecardResponse,\n DomainEvent,\n DomainEventBodyOneOf,\n Empty,\n EndTimecardTaskOptions,\n EndTimecardTaskRequest,\n EndTimecardTaskResponse,\n EntityCreatedEvent,\n EntityDeletedEvent,\n EntityUpdatedEvent,\n GenerateStaffTokenRequest,\n GenerateStaffTokenResponse,\n GetOpenTimecardOptions,\n GetOpenTimecardRequest,\n GetOpenTimecardResponse,\n GetTimeClockDetailsRequest,\n GetTimeClockDetailsResponse,\n GetTimecardOptions,\n GetTimecardRequest,\n GetTimecardResponse,\n IdentificationData,\n IdentificationDataIdOneOf,\n KioskClockInTimecardOptions,\n KioskClockOutTimecardOptions,\n KioskEndTimecardTaskOptions,\n KioskStartTimecardTaskOptions,\n ListAggregatedTimecardsOptions,\n ListAggregatedTimecardsRequest,\n ListAggregatedTimecardsResponse,\n LocationWorkedTime,\n MessageEnvelope,\n QueryTimecardsOptions,\n QueryTimecardsRequest,\n QueryTimecardsResponse,\n RestoreInfo,\n SendPinSetupLinkRequest,\n SendPinSetupLinkResponse,\n SortOrder,\n Sorting,\n StartTimecardTaskOptions,\n StartTimecardTaskRequest,\n StartTimecardTaskResponse,\n Task,\n TaskAssignment,\n Timecard,\n TimecardQuerySpec,\n TimecardsQueryBuilder,\n TimecardsQueryResult,\n TimecardsTotals,\n UpdateTimecard,\n UpdateTimecardOptions,\n UpdateTimecardRequest,\n UpdateTimecardResponse,\n ValidatePinSetupLinkRequest,\n ValidatePinSetupLinkResponse,\n WebhookIdentityType,\n WorkedTime,\n ZonedDate,\n utils,\n} from './staff-time-clock-v1-timecard-timecards.universal.js';\n","import {\n generateStaffToken as publicGenerateStaffToken,\n getTimeClockDetails as publicGetTimeClockDetails,\n kioskClockInTimecard as publicKioskClockInTimecard,\n kioskClockOutTimecard as publicKioskClockOutTimecard,\n kioskStartTimecardTask as publicKioskStartTimecardTask,\n kioskEndTimecardTask as publicKioskEndTimecardTask,\n clockInTimecard as publicClockInTimecard,\n clockOutTimecard as publicClockOutTimecard,\n startTimecardTask as publicStartTimecardTask,\n endTimecardTask as publicEndTimecardTask,\n getOpenTimecard as publicGetOpenTimecard,\n createTimecard as publicCreateTimecard,\n updateTimecard as publicUpdateTimecard,\n deleteTimecard as publicDeleteTimecard,\n getTimecard as publicGetTimecard,\n queryTimecards as publicQueryTimecards,\n typedQueryTimecards as publicTypedQueryTimecards,\n listAggregatedTimecards as publicListAggregatedTimecards,\n} from './staff-time-clock-v1-timecard-timecards.public.js';\nimport { createRESTModule } from '@wix/sdk-runtime/rest-modules';\nimport { BuildRESTFunction, MaybeContext } from '@wix/sdk-types';\nimport { HttpClient } from '@wix/sdk-types';\nimport { createQueryOverloadRouter } from '@wix/sdk-runtime/query-method-router';\nimport {\n QueryTimecardsOptions,\n TimecardQuery,\n TimecardsQueryBuilder,\n typedQueryTimecards as universalTypedQueryTimecards,\n} from './staff-time-clock-v1-timecard-timecards.universal.js';\n\nfunction customQueryTimecards(httpClient: HttpClient) {\n const router = /*#__PURE__*/ createQueryOverloadRouter({\n builderQueryFunction: (options?: QueryTimecardsOptions) =>\n publicQueryTimecards(httpClient)(options),\n typedQueryFunction: (\n query: TimecardQuery,\n options?: QueryTimecardsOptions\n ) => publicTypedQueryTimecards(httpClient)(query, options),\n hasOptionsParameter: true,\n });\n\n function overloadedQuery(\n query: TimecardQuery,\n options?: QueryTimecardsOptions\n ): ReturnType<typeof universalTypedQueryTimecards>;\n function overloadedQuery(\n options?: QueryTimecardsOptions\n ): TimecardsQueryBuilder;\n function overloadedQuery(\n queryOrOptions?: TimecardQuery | QueryTimecardsOptions,\n options?: QueryTimecardsOptions\n ): any {\n return router(...arguments);\n }\n\n return overloadedQuery;\n}\n\nexport const generateStaffToken: MaybeContext<\n BuildRESTFunction<typeof publicGenerateStaffToken> &\n typeof publicGenerateStaffToken\n> = /*#__PURE__*/ createRESTModule(publicGenerateStaffToken);\nexport const getTimeClockDetails: MaybeContext<\n BuildRESTFunction<typeof publicGetTimeClockDetails> &\n typeof publicGetTimeClockDetails\n> = /*#__PURE__*/ createRESTModule(publicGetTimeClockDetails);\nexport const kioskClockInTimecard: MaybeContext<\n BuildRESTFunction<typeof publicKioskClockInTimecard> &\n typeof publicKioskClockInTimecard\n> = /*#__PURE__*/ createRESTModule(publicKioskClockInTimecard);\nexport const kioskClockOutTimecard: MaybeContext<\n BuildRESTFunction<typeof publicKioskClockOutTimecard> &\n typeof publicKioskClockOutTimecard\n> = /*#__PURE__*/ createRESTModule(publicKioskClockOutTimecard);\nexport const kioskStartTimecardTask: MaybeContext<\n BuildRESTFunction<typeof publicKioskStartTimecardTask> &\n typeof publicKioskStartTimecardTask\n> = /*#__PURE__*/ createRESTModule(publicKioskStartTimecardTask);\nexport const kioskEndTimecardTask: MaybeContext<\n BuildRESTFunction<typeof publicKioskEndTimecardTask> &\n typeof publicKioskEndTimecardTask\n> = /*#__PURE__*/ createRESTModule(publicKioskEndTimecardTask);\nexport const clockInTimecard: MaybeContext<\n BuildRESTFunction<typeof publicClockInTimecard> & typeof publicClockInTimecard\n> = /*#__PURE__*/ createRESTModule(publicClockInTimecard);\nexport const clockOutTimecard: MaybeContext<\n BuildRESTFunction<typeof publicClockOutTimecard> &\n typeof publicClockOutTimecard\n> = /*#__PURE__*/ createRESTModule(publicClockOutTimecard);\nexport const startTimecardTask: MaybeContext<\n BuildRESTFunction<typeof publicStartTimecardTask> &\n typeof publicStartTimecardTask\n> = /*#__PURE__*/ createRESTModule(publicStartTimecardTask);\nexport const endTimecardTask: MaybeContext<\n BuildRESTFunction<typeof publicEndTimecardTask> & typeof publicEndTimecardTask\n> = /*#__PURE__*/ createRESTModule(publicEndTimecardTask);\nexport const getOpenTimecard: MaybeContext<\n BuildRESTFunction<typeof publicGetOpenTimecard> & typeof publicGetOpenTimecard\n> = /*#__PURE__*/ createRESTModule(publicGetOpenTimecard);\nexport const createTimecard: MaybeContext<\n BuildRESTFunction<typeof publicCreateTimecard> & typeof publicCreateTimecard\n> = /*#__PURE__*/ createRESTModule(publicCreateTimecard);\nexport const updateTimecard: MaybeContext<\n BuildRESTFunction<typeof publicUpdateTimecard> & typeof publicUpdateTimecard\n> = /*#__PURE__*/ createRESTModule(publicUpdateTimecard);\nexport const deleteTimecard: MaybeContext<\n BuildRESTFunction<typeof publicDeleteTimecard> & typeof publicDeleteTimecard\n> = /*#__PURE__*/ createRESTModule(publicDeleteTimecard);\nexport const getTimecard: MaybeContext<\n BuildRESTFunction<typeof publicGetTimecard> & typeof publicGetTimecard\n> = /*#__PURE__*/ createRESTModule(publicGetTimecard);\nexport const listAggregatedTimecards: MaybeContext<\n BuildRESTFunction<typeof publicListAggregatedTimecards> &\n typeof publicListAggregatedTimecards\n> = /*#__PURE__*/ createRESTModule(publicListAggregatedTimecards);\nexport const queryTimecards: MaybeContext<\n BuildRESTFunction<typeof customQueryTimecards> & typeof customQueryTimecards\n> = /*#__PURE__*/ createRESTModule(customQueryTimecards);\n\nexport {\n ClockSource,\n WebhookIdentityType,\n SortOrder,\n} from './staff-time-clock-v1-timecard-timecards.universal.js';\nexport {\n Timecard,\n ClockPunch,\n ZonedDate,\n TaskAssignment,\n WorkedTime,\n GenerateStaffTokenRequest,\n GenerateStaffTokenResponse,\n GetTimeClockDetailsRequest,\n GetTimeClockDetailsResponse,\n Task,\n ClockInTimecardRequest,\n ClockInTimecardResponse,\n ClockOutTimecardRequest,\n ClockOutTimecardResponse,\n StartTimecardTaskRequest,\n StartTimecardTaskResponse,\n EndTimecardTaskRequest,\n EndTimecardTaskResponse,\n SendPinSetupLinkRequest,\n SendPinSetupLinkResponse,\n CompletePinSetupRequest,\n CompletePinSetupResponse,\n ValidatePinSetupLinkRequest,\n ValidatePinSetupLinkResponse,\n DomainEvent,\n DomainEventBodyOneOf,\n EntityCreatedEvent,\n RestoreInfo,\n EntityUpdatedEvent,\n EntityDeletedEvent,\n ActionEvent,\n MessageEnvelope,\n IdentificationData,\n IdentificationDataIdOneOf,\n AccountInfo,\n CloseTimecardRequest,\n CloseTimecardResponse,\n GetOpenTimecardRequest,\n GetOpenTimecardResponse,\n CreateTimecardRequest,\n CreateTimecardResponse,\n UpdateTimecardRequest,\n UpdateTimecardResponse,\n DeleteTimecardRequest,\n DeleteTimecardResponse,\n GetTimecardRequest,\n GetTimecardResponse,\n QueryTimecardsRequest,\n CursorQuery,\n CursorQueryPagingMethodOneOf,\n Sorting,\n CursorPaging,\n QueryTimecardsResponse,\n CursorPagingMetadata,\n Cursors,\n ListAggregatedTimecardsRequest,\n ListAggregatedTimecardsResponse,\n AggregatedTimecard,\n LocationWorkedTime,\n TimecardsTotals,\n Empty,\n KioskClockInTimecardOptions,\n KioskClockOutTimecardOptions,\n KioskStartTimecardTaskOptions,\n KioskEndTimecardTaskOptions,\n ClockInTimecardOptions,\n ClockOutTimecardOptions,\n StartTimecardTaskOptions,\n EndTimecardTaskOptions,\n GetOpenTimecardOptions,\n CreateTimecardOptions,\n UpdateTimecard,\n UpdateTimecardOptions,\n DeleteTimecardOptions,\n GetTimecardOptions,\n QueryTimecardsOptions,\n TimecardsQueryResult,\n TimecardsQueryBuilder,\n TimecardQuerySpec,\n ListAggregatedTimecardsOptions,\n} from './staff-time-clock-v1-timecard-timecards.universal.js';\nexport { utils } from './staff-time-clock-v1-timecard-timecards.universal.js';\nexport {\n ClockSourceWithLiterals,\n WebhookIdentityTypeWithLiterals,\n SortOrderWithLiterals,\n GenerateStaffTokenApplicationErrors,\n GetTimeClockDetailsApplicationErrors,\n KioskClockInTimecardApplicationErrors,\n KioskClockOutTimecardApplicationErrors,\n KioskStartTimecardTaskApplicationErrors,\n KioskEndTimecardTaskApplicationErrors,\n CommonQueryWithEntityContext,\n TimecardQuery,\n} from './staff-time-clock-v1-timecard-timecards.universal.js';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAAA;AAAA,EAAA,wBAAAC;AAAA,EAAA,sBAAAC;AAAA,EAAA,sBAAAC;AAAA,EAAA,uBAAAC;AAAA,EAAA,0BAAAC;AAAA,EAAA,uBAAAC;AAAA,EAAA,2BAAAC;AAAA,EAAA,mBAAAC;AAAA,EAAA,4BAAAC;AAAA,EAAA,6BAAAC;AAAA,EAAA,4BAAAC;AAAA,EAAA,8BAAAC;AAAA,EAAA,+BAAAC;AAAA,EAAA,sBAAAC;AAAA,EAAA,yBAAAC;AAAA,EAAA,sBAAAC;AAAA,EAAA;AAAA;AAAA;;;ACAA,6BAAoD;AACpD,2BAA6B;AAC7B,oCAGO;;;ACLP,0BAAkC;AAClC,uBAAqD;AACrD,IAAAC,oBAAqD;AACrD,wBAAqD;AACrD,6BAA+B;AAC/B,IAAAC,uBAA2B;AAI3B,IAAM,oBAAoB,CAAC,EAAE,MAAM,iBAAiB,CAAC;AACrD,IAAM,oBAAoB;AAAA,EACxB,EAAE,MAAM,2BAA2B;AAAA,EACnC,EAAE,MAAM,2BAA2B;AAAA,EACnC,EAAE,MAAM,oCAAoC;AAAA,EAC5C,EAAE,MAAM,4CAA4C;AAAA,EACpD,EAAE,MAAM,qCAAqC;AAAA,EAC7C,EAAE,MAAM,6CAA6C;AAAA,EACrD,EAAE,MAAM,iDAAiD;AAAA,EACzD,EAAE,MAAM,+CAA+C;AAAA,EACvD,EAAE,MAAM,yDAAyD;AAAA,EACjE,EAAE,MAAM,uDAAuD;AACjE;AACA,IAAM,oBAAoB;AAAA,EACxB,EAAE,MAAM,uBAAuB;AAAA,EAC/B,EAAE,MAAM,uBAAuB;AAAA,EAC/B,EAAE,MAAM,gCAAgC;AAAA,EACxC,EAAE,MAAM,wCAAwC;AAAA,EAChD,EAAE,MAAM,iCAAiC;AAAA,EACzC,EAAE,MAAM,yCAAyC;AAAA,EACjD,EAAE,MAAM,6CAA6C;AAAA,EACrD,EAAE,MAAM,2CAA2C;AAAA,EACnD,EAAE,MAAM,qDAAqD;AAAA,EAC7D,EAAE,MAAM,mDAAmD;AAC7D;AACA,IAAM,oBAAoB,CAAC,EAAE,MAAM,YAAY,CAAC;AAChD,IAAM,oBAAoB;AAAA,EACxB,EAAE,MAAM,wBAAwB;AAAA,EAChC,EAAE,MAAM,wBAAwB;AAAA,EAChC,EAAE,MAAM,iCAAiC;AAAA,EACzC,EAAE,MAAM,yCAAyC;AAAA,EACjD,EAAE,MAAM,kCAAkC;AAAA,EAC1C,EAAE,MAAM,0CAA0C;AAAA,EAClD,EAAE,MAAM,8CAA8C;AAAA,EACtD,EAAE,MAAM,4CAA4C;AAAA,EACpD,EAAE,MAAM,sDAAsD;AAAA,EAC9D,EAAE,MAAM,oDAAoD;AAC9D;AAEA,SAAS,8CACP,MACA;AACA,QAAM,mBAAmB;AAAA,IACvB,wBAAwB;AAAA,MACtB;AAAA,QACE,SAAS;AAAA,QACT,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,EACF;AAEA,aAAO,iCAAW,OAAO,OAAO,MAAM,EAAE,iBAAiB,CAAC,CAAC;AAC7D;AAEA,SAAS,6CACP,MACA;AACA,QAAM,mBAAmB;AAAA,IACvB,mBAAmB;AAAA,MACjB;AAAA,QACE,SAAS;AAAA,QACT,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,EACF;AAEA,aAAO,iCAAW,OAAO,OAAO,MAAM,EAAE,iBAAiB,CAAC,CAAC;AAC7D;AAEA,IAAM,eAAe;AAWd,SAAS,mBACd,SAC4B;AAC5B,WAAS,qBAAqB,EAAE,KAAK,GAAQ;AAC3C,UAAM,WAAW;AAAA,MACf,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,aAAa;AAAA,MACb,kBAAkB;AAAA,QAChB,wBAAwB;AAAA,MAC1B;AAAA,MACA,KAAK,6CAA6C;AAAA,QAChD,WAAW;AAAA,QACX,MAAM;AAAA,QACN;AAAA,MACF,CAAC;AAAA,MACD,MAAM;AAAA,MACN,mBAAmB,CAACC,iBAClB,uCAAeA,UAAS;AAAA,QACtB;AAAA,UACE,aAAa;AAAA,UACb,OAAO;AAAA,QACT;AAAA,MACF,CAAC;AAAA,IACL;AAEA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAQO,SAAS,oBACd,SAC4B;AAC5B,WAAS,sBAAsB,EAAE,KAAK,GAAQ;AAC5C,UAAM,WAAW;AAAA,MACf,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,aAAa;AAAA,MACb,kBAAkB;AAAA,QAChB,wBAAwB;AAAA,MAC1B;AAAA,MACA,KAAK,6CAA6C;AAAA,QAChD,WAAW;AAAA,QACX,MAAM;AAAA,QACN;AAAA,MACF,CAAC;AAAA,MACD,MAAM;AAAA,MACN,mBAAmB,CAACA,iBAClB,uCAAeA,UAAS;AAAA,QACtB;AAAA,UACE,aAAa;AAAA,UACb,OAAO;AAAA,QACT;AAAA,MACF,CAAC;AAAA,IACL;AAEA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AASO,SAAS,qBACd,SAC4B;AAC5B,WAAS,uBAAuB,EAAE,KAAK,GAAQ;AAC7C,UAAM,WAAW;AAAA,MACf,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,aAAa;AAAA,MACb,kBAAkB;AAAA,QAChB,wBAAwB;AAAA,MAC1B;AAAA,MACA,KAAK,6CAA6C;AAAA,QAChD,WAAW;AAAA,QACX,MAAM;AAAA,QACN;AAAA,MACF,CAAC;AAAA,MACD,MAAM;AAAA,MACN,mBAAmB,CAACA,iBAClB,uCAAeA,UAAS;AAAA,QACtB;AAAA,UACE,aAAa;AAAA,UACb,OAAO;AAAA,QACT;AAAA,MACF,CAAC;AAAA,IACL;AAEA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAQO,SAAS,sBACd,SAC4B;AAC5B,WAAS,wBAAwB,EAAE,KAAK,GAAQ;AAC9C,UAAM,WAAW;AAAA,MACf,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,aAAa;AAAA,MACb,kBAAkB;AAAA,QAChB,wBAAwB;AAAA,MAC1B;AAAA,MACA,KAAK,6CAA6C;AAAA,QAChD,WAAW;AAAA,QACX,MAAM;AAAA,QACN;AAAA,MACF,CAAC;AAAA,MACD,MAAM;AAAA,MACN,mBAAmB,CAACA,iBAClB,uCAAeA,UAAS;AAAA,QACtB;AAAA,UACE,aAAa;AAAA,UACb,OAAO;AAAA,QACT;AAAA,MACF,CAAC;AAAA,IACL;AAEA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAQO,SAAS,uBACd,SAC4B;AAC5B,WAAS,yBAAyB,EAAE,KAAK,GAAQ;AAC/C,UAAM,WAAW;AAAA,MACf,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,aAAa;AAAA,MACb,kBAAkB;AAAA,QAChB,wBAAwB;AAAA,MAC1B;AAAA,MACA,KAAK,6CAA6C;AAAA,QAChD,WAAW;AAAA,QACX,MAAM;AAAA,QACN;AAAA,MACF,CAAC;AAAA,MACD,MAAM;AAAA,MACN,mBAAmB,CAACA,iBAClB,uCAAeA,UAAS;AAAA,QACtB;AAAA,UACE,aAAa;AAAA,UACb,OAAO;AAAA,QACT;AAAA,MACF,CAAC;AAAA,IACL;AAEA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAQO,SAAS,qBACd,SAC4B;AAC5B,WAAS,uBAAuB,EAAE,KAAK,GAAQ;AAC7C,UAAM,WAAW;AAAA,MACf,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,aAAa;AAAA,MACb,kBAAkB;AAAA,QAChB,wBAAwB;AAAA,MAC1B;AAAA,MACA,KAAK,6CAA6C;AAAA,QAChD,WAAW;AAAA,QACX,MAAM;AAAA,QACN;AAAA,MACF,CAAC;AAAA,MACD,MAAM;AAAA,MACN,mBAAmB,CAACA,iBAClB,uCAAeA,UAAS;AAAA,QACtB;AAAA,UACE,aAAa;AAAA,UACb,OAAO;AAAA,QACT;AAAA,MACF,CAAC;AAAA,IACL;AAEA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAiBO,SAAS,gBAAgB,SAA6C;AAC3E,WAAS,kBAAkB,EAAE,KAAK,GAAQ;AACxC,UAAM,WAAW;AAAA,MACf,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,aAAa;AAAA,MACb,kBAAkB;AAAA,QAChB,wBAAwB;AAAA,MAC1B;AAAA,MACA,KAAK,8CAA8C;AAAA,QACjD,WAAW;AAAA,QACX,MAAM;AAAA,QACN;AAAA,MACF,CAAC;AAAA,MACD,MAAM;AAAA,MACN,mBAAmB,CAACA,iBAClB,uCAAeA,UAAS;AAAA,QACtB;AAAA,UACE,aAAa;AAAA,UACb,OAAO;AAAA,QACT;AAAA,MACF,CAAC;AAAA,IACL;AAEA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AASO,SAAS,iBAAiB,SAA6C;AAC5E,WAAS,mBAAmB,EAAE,KAAK,GAAQ;AACzC,UAAM,WAAW;AAAA,MACf,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,aAAa;AAAA,MACb,kBAAkB;AAAA,QAChB,wBAAwB;AAAA,MAC1B;AAAA,MACA,KAAK,8CAA8C;AAAA,QACjD,WAAW;AAAA,QACX,MAAM;AAAA,QACN;AAAA,MACF,CAAC;AAAA,MACD,MAAM;AAAA,MACN,mBAAmB,CAACA,iBAClB,uCAAeA,UAAS;AAAA,QACtB;AAAA,UACE,aAAa;AAAA,UACb,OAAO;AAAA,QACT;AAAA,MACF,CAAC;AAAA,IACL;AAEA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AASO,SAAS,kBAAkB,SAA6C;AAC7E,WAAS,oBAAoB,EAAE,KAAK,GAAQ;AAC1C,UAAM,WAAW;AAAA,MACf,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,aAAa;AAAA,MACb,kBAAkB;AAAA,QAChB,wBAAwB;AAAA,MAC1B;AAAA,MACA,KAAK,8CAA8C;AAAA,QACjD,WAAW;AAAA,QACX,MAAM;AAAA,QACN;AAAA,MACF,CAAC;AAAA,MACD,MAAM;AAAA,MACN,mBAAmB,CAACA,iBAClB,uCAAeA,UAAS;AAAA,QACtB;AAAA,UACE,aAAa;AAAA,UACb,OAAO;AAAA,QACT;AAAA,MACF,CAAC;AAAA,IACL;AAEA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAQO,SAAS,gBAAgB,SAA6C;AAC3E,WAAS,kBAAkB,EAAE,KAAK,GAAQ;AACxC,UAAM,WAAW;AAAA,MACf,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,aAAa;AAAA,MACb,kBAAkB;AAAA,QAChB,wBAAwB;AAAA,MAC1B;AAAA,MACA,KAAK,8CAA8C;AAAA,QACjD,WAAW;AAAA,QACX,MAAM;AAAA,QACN;AAAA,MACF,CAAC;AAAA,MACD,MAAM;AAAA,MACN,mBAAmB,CAACA,iBAClB,uCAAeA,UAAS;AAAA,QACtB;AAAA,UACE,aAAa;AAAA,UACb,OAAO;AAAA,QACT;AAAA,MACF,CAAC;AAAA,IACL;AAEA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAQO,SAAS,gBAAgB,SAA6C;AAC3E,WAAS,kBAAkB,EAAE,KAAK,GAAQ;AACxC,UAAM,WAAW;AAAA,MACf,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,aAAa;AAAA,MACb,kBAAkB;AAAA,QAChB,wBAAwB;AAAA,MAC1B;AAAA,MACA,KAAK,8CAA8C;AAAA,QACjD,WAAW;AAAA,QACX,MAAM;AAAA,QACN;AAAA,MACF,CAAC;AAAA,MACD,YAAQ,uCAAkB,OAAO;AAAA,MACjC,mBAAmB,CAACA,iBAClB,uCAAeA,UAAS;AAAA,QACtB;AAAA,UACE,aAAa;AAAA,UACb,OAAO;AAAA,QACT;AAAA,MACF,CAAC;AAAA,IACL;AAEA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAUO,SAAS,eAAe,SAA6C;AAC1E,WAAS,iBAAiB,EAAE,KAAK,GAAQ;AACvC,UAAM,qBAAiB,uCAAe,SAAS;AAAA,MAC7C;AAAA,QACE,aAAa;AAAA,QACb,OAAO;AAAA,MACT;AAAA,IACF,CAAC;AACD,UAAM,WAAW;AAAA,MACf,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,aAAa;AAAA,MACb,kBAAkB;AAAA,QAChB,wBAAwB;AAAA,MAC1B;AAAA,MACA,KAAK,8CAA8C;AAAA,QACjD,WAAW;AAAA,QACX,MAAM;AAAA,QACN;AAAA,MACF,CAAC;AAAA,MACD,MAAM;AAAA,MACN,mBAAmB,CAACA,iBAClB,uCAAeA,UAAS;AAAA,QACtB;AAAA,UACE,aAAa;AAAA,UACb,OAAO;AAAA,QACT;AAAA,MACF,CAAC;AAAA,IACL;AAEA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAYO,SAAS,eAAe,SAA6C;AAC1E,WAAS,iBAAiB,EAAE,KAAK,GAAQ;AACvC,UAAM,qBAAiB,uCAAe,SAAS;AAAA,MAC7C;AAAA,QACE,aAAa;AAAA,QACb,OAAO;AAAA,MACT;AAAA,MACA;AAAA,QACE,aAAa;AAAA,QACb,OAAO;AAAA,MACT;AAAA,IACF,CAAC;AACD,UAAM,WAAW;AAAA,MACf,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,aAAa;AAAA,MACb,kBAAkB;AAAA,QAChB,wBAAwB;AAAA,MAC1B;AAAA,MACA,KAAK,8CAA8C;AAAA,QACjD,WAAW;AAAA,QACX,MAAM;AAAA,QACN;AAAA,MACF,CAAC;AAAA,MACD,MAAM;AAAA,MACN,mBAAmB,CAACA,iBAClB,uCAAeA,UAAS;AAAA,QACtB;AAAA,UACE,aAAa;AAAA,UACb,OAAO;AAAA,QACT;AAAA,MACF,CAAC;AAAA,IACL;AAEA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAOO,SAAS,eAAe,SAA6C;AAC1E,WAAS,iBAAiB,EAAE,KAAK,GAAQ;AACvC,UAAM,WAAW;AAAA,MACf,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,aAAa;AAAA,MACb,kBAAkB;AAAA,QAChB,wBAAwB;AAAA,MAC1B;AAAA,MACA,KAAK,8CAA8C;AAAA,QACjD,WAAW;AAAA,QACX,MAAM;AAAA,QACN;AAAA,MACF,CAAC;AAAA,MACD,YAAQ,uCAAkB,OAAO;AAAA,IACnC;AAEA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAGO,SAAS,YAAY,SAA6C;AACvE,WAAS,cAAc,EAAE,KAAK,GAAQ;AACpC,UAAM,WAAW;AAAA,MACf,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,aAAa;AAAA,MACb,kBAAkB;AAAA,QAChB,wBAAwB;AAAA,MAC1B;AAAA,MACA,KAAK,8CAA8C;AAAA,QACjD,WAAW;AAAA,QACX,MAAM;AAAA,QACN;AAAA,MACF,CAAC;AAAA,MACD,YAAQ,uCAAkB,OAAO;AAAA,MACjC,mBAAmB,CAACA,iBAClB,uCAAeA,UAAS;AAAA,QACtB;AAAA,UACE,aAAa;AAAA,UACb,OAAO;AAAA,QACT;AAAA,MACF,CAAC;AAAA,IACL;AAEA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAWO,SAAS,eAAe,SAA6C;AAC1E,WAAS,iBAAiB,EAAE,KAAK,GAAQ;AACvC,UAAM,WAAW;AAAA,MACf,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,aAAa;AAAA,MACb,kBAAkB;AAAA,QAChB,wBAAwB;AAAA,MAC1B;AAAA,MACA,KAAK,8CAA8C;AAAA,QACjD,WAAW;AAAA,QACX,MAAM;AAAA,QACN;AAAA,MACF,CAAC;AAAA,MACD,YAAQ,uCAAkB,SAAS,IAAI;AAAA,MACvC,mBAAmB,CAACA,iBAClB,uCAAeA,UAAS;AAAA,QACtB;AAAA,UACE,aAAa;AAAA,UACb,OAAO;AAAA,QACT;AAAA,MACF,CAAC;AAAA,MACH,UAAU;AAAA,QACR;AAAA,UACE,QAAQ;AAAA,UACR,KAAK,8CAA8C;AAAA,YACjD,WAAW;AAAA,YACX,MAAM;AAAA,YACN;AAAA,UACF,CAAC;AAAA,UACD,MAAM;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAqBO,SAAS,wBACd,SAC4B;AAC5B,WAAS,0BAA0B,EAAE,KAAK,GAAQ;AAChD,UAAM,WAAW;AAAA,MACf,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,WACE;AAAA,MACF,aAAa;AAAA,MACb,kBAAkB;AAAA,QAChB,wBAAwB;AAAA,MAC1B;AAAA,MACA,KAAK,8CAA8C;AAAA,QACjD,WAAW;AAAA,QACX,MAAM;AAAA,QACN;AAAA,MACF,CAAC;AAAA,MACD,MAAM;AAAA,IACR;AAEA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;;;AD/uBA,IAAAC,0BAA+B;AAC/B,iCAAiC;AAmI1B,IAAK,cAAL,kBAAKC,iBAAL;AAEL,EAAAA,aAAA,WAAQ;AAER,EAAAA,aAAA,eAAY;AAEZ,EAAAA,aAAA,kBAAe;AAEf,EAAAA,aAAA,YAAS;AAET,EAAAA,aAAA,YAAS;AAVC,SAAAA;AAAA,GAAA;AA6aL,IAAK,sBAAL,kBAAKC,yBAAL;AACL,EAAAA,qBAAA,aAAU;AACV,EAAAA,qBAAA,uBAAoB;AACpB,EAAAA,qBAAA,YAAS;AACT,EAAAA,qBAAA,cAAW;AACX,EAAAA,qBAAA,SAAM;AALI,SAAAA;AAAA,GAAA;AAuOL,IAAK,YAAL,kBAAKC,eAAL;AACL,EAAAA,WAAA,SAAM;AACN,EAAAA,WAAA,UAAO;AAFG,SAAAA;AAAA,GAAA;AAyUZ,eAAsBC,oBAAmB,KAIvC;AAEA,QAAM,EAAE,YAAY,YAAY,IAAI,UAAU,CAAC;AAK/C,QAAM,cAAU,qEAAsC,EAAE,IAAS,CAAC;AAElE,QAAM,UACkC,mBAAmB,OAAO;AAElE,eAAa,aAAa;AAC1B,MAAI;AACF,UAAM,SAAS,MAAM,WAAW,QAAQ,OAAO;AAC/C,iBAAa,YAAY,MAAM;AAE/B,eAAO,uEAAwC,OAAO,IAAI;AAAA,EAC5D,SAAS,KAAU;AACjB,UAAM,uBAAmB,uBAAAC;AAAA,MACvB;AAAA,MACA;AAAA,QACE,wBAAwB,CAAC;AAAA,QACzB,0BAA0B,EAAE,KAAK,OAAO;AAAA,QACxC,yBAAyB;AAAA,MAC3B;AAAA,MACA,CAAC,KAAK;AAAA,IACR;AACA,iBAAa,UAAU,GAAG;AAE1B,UAAM;AAAA,EACR;AACF;AAWA,eAAsBC,uBAgBpB;AAEA,QAAM,EAAE,YAAY,YAAY,IAAI,UAAU,CAAC;AAK/C,QAAM,cAAU,qEAAsC,CAAC,CAAC;AAExD,QAAM,UACkC,oBAAoB,OAAO;AAEnE,eAAa,aAAa;AAC1B,MAAI;AACF,UAAM,SAAS,MAAM,WAAW,QAAQ,OAAO;AAC/C,iBAAa,YAAY,MAAM;AAE/B,eAAO,uEAAwC,OAAO,IAAI;AAAA,EAC5D,SAAS,KAAU;AACjB,UAAM,uBAAmB,uBAAAD;AAAA,MACvB;AAAA,MACA;AAAA,QACE,wBAAwB,CAAC;AAAA,QACzB,0BAA0B,CAAC;AAAA,QAC3B,yBAAyB;AAAA,MAC3B;AAAA,MACA,CAAC;AAAA,IACH;AACA,iBAAa,UAAU,GAAG;AAE1B,UAAM;AAAA,EACR;AACF;AAYA,eAAsBE,sBACpB,SAeA;AAEA,QAAM,EAAE,YAAY,YAAY,IAAI,UAAU,CAAC;AAK/C,QAAM,cAAU,qEAAsC;AAAA,IACpD,eAAe,SAAS;AAAA,IACxB,QAAQ,SAAS;AAAA,IACjB,YAAY,SAAS;AAAA,EACvB,CAAC;AAED,QAAM,UACkC,qBAAqB,OAAO;AAEpE,eAAa,aAAa;AAC1B,MAAI;AACF,UAAM,SAAS,MAAM,WAAW,QAAQ,OAAO;AAC/C,iBAAa,YAAY,MAAM;AAE/B,eAAO,uEAAwC,OAAO,IAAI;AAAA,EAC5D,SAAS,KAAU;AACjB,UAAM,uBAAmB,uBAAAF;AAAA,MACvB;AAAA,MACA;AAAA,QACE,wBAAwB,CAAC;AAAA,QACzB,0BAA0B;AAAA,UACxB,eAAe;AAAA,UACf,QAAQ;AAAA,UACR,YAAY;AAAA,QACd;AAAA,QACA,yBAAyB;AAAA,MAC3B;AAAA,MACA,CAAC,SAAS;AAAA,IACZ;AACA,iBAAa,UAAU,GAAG;AAE1B,UAAM;AAAA,EACR;AACF;AA8BA,eAAsBG,uBACpB,SAcA;AAEA,QAAM,EAAE,YAAY,YAAY,IAAI,UAAU,CAAC;AAK/C,QAAM,cAAU,qEAAsC;AAAA,IACpD,eAAe,SAAS;AAAA,IACxB,QAAQ,SAAS;AAAA,EACnB,CAAC;AAED,QAAM,UACkC,sBAAsB,OAAO;AAErE,eAAa,aAAa;AAC1B,MAAI;AACF,UAAM,SAAS,MAAM,WAAW,QAAQ,OAAO;AAC/C,iBAAa,YAAY,MAAM;AAE/B,eAAO,uEAAwC,OAAO,IAAI;AAAA,EAC5D,SAAS,KAAU;AACjB,UAAM,uBAAmB,uBAAAH;AAAA,MACvB;AAAA,MACA;AAAA,QACE,wBAAwB,CAAC;AAAA,QACzB,0BAA0B;AAAA,UACxB,eAAe;AAAA,UACf,QAAQ;AAAA,QACV;AAAA,QACA,yBAAyB;AAAA,MAC3B;AAAA,MACA,CAAC,SAAS;AAAA,IACZ;AACA,iBAAa,UAAU,GAAG;AAE1B,UAAM;AAAA,EACR;AACF;AAwBA,eAAsBI,wBACpB,SAcA;AAEA,QAAM,EAAE,YAAY,YAAY,IAAI,UAAU,CAAC;AAK/C,QAAM,cAAU,qEAAsC;AAAA,IACpD,eAAe,SAAS;AAAA,IACxB,QAAQ,SAAS;AAAA,EACnB,CAAC;AAED,QAAM,UACkC,uBAAuB,OAAO;AAEtE,eAAa,aAAa;AAC1B,MAAI;AACF,UAAM,SAAS,MAAM,WAAW,QAAQ,OAAO;AAC/C,iBAAa,YAAY,MAAM;AAE/B,eAAO,uEAAwC,OAAO,IAAI;AAAA,EAC5D,SAAS,KAAU;AACjB,UAAM,uBAAmB,uBAAAJ;AAAA,MACvB;AAAA,MACA;AAAA,QACE,wBAAwB,CAAC;AAAA,QACzB,0BAA0B;AAAA,UACxB,eAAe;AAAA,UACf,QAAQ;AAAA,QACV;AAAA,QACA,yBAAyB;AAAA,MAC3B;AAAA,MACA,CAAC,SAAS;AAAA,IACZ;AACA,iBAAa,UAAU,GAAG;AAE1B,UAAM;AAAA,EACR;AACF;AA2BA,eAAsBK,sBACpB,SAcA;AAEA,QAAM,EAAE,YAAY,YAAY,IAAI,UAAU,CAAC;AAK/C,QAAM,cAAU,qEAAsC;AAAA,IACpD,eAAe,SAAS;AAAA,EAC1B,CAAC;AAED,QAAM,UACkC,qBAAqB,OAAO;AAEpE,eAAa,aAAa;AAC1B,MAAI;AACF,UAAM,SAAS,MAAM,WAAW,QAAQ,OAAO;AAC/C,iBAAa,YAAY,MAAM;AAE/B,eAAO,uEAAwC,OAAO,IAAI;AAAA,EAC5D,SAAS,KAAU;AACjB,UAAM,uBAAmB,uBAAAL;AAAA,MACvB;AAAA,MACA;AAAA,QACE,wBAAwB,CAAC;AAAA,QACzB,0BAA0B,EAAE,eAAe,qBAAqB;AAAA,QAChE,yBAAyB;AAAA,MAC3B;AAAA,MACA,CAAC,SAAS;AAAA,IACZ;AACA,iBAAa,UAAU,GAAG;AAE1B,UAAM;AAAA,EACR;AACF;AAkCA,eAAsBM,iBACpB,SAaA;AAEA,QAAM,EAAE,YAAY,YAAY,IAAI,UAAU,CAAC;AAK/C,QAAM,cAAU,qEAAsC;AAAA,IACpD,eAAe,SAAS;AAAA,IACxB,QAAQ,SAAS;AAAA,IACjB,YAAY,SAAS;AAAA,EACvB,CAAC;AAED,QAAM,UACkC,gBAAgB,OAAO;AAE/D,eAAa,aAAa;AAC1B,MAAI;AACF,UAAM,SAAS,MAAM,WAAW,QAAQ,OAAO;AAC/C,iBAAa,YAAY,MAAM;AAE/B,eAAO,uEAAwC,OAAO,IAAI;AAAA,EAC5D,SAAS,KAAU;AACjB,UAAM,uBAAmB,uBAAAN;AAAA,MACvB;AAAA,MACA;AAAA,QACE,wBAAwB,CAAC;AAAA,QACzB,0BAA0B;AAAA,UACxB,eAAe;AAAA,UACf,QAAQ;AAAA,UACR,YAAY;AAAA,QACd;AAAA,QACA,yBAAyB;AAAA,MAC3B;AAAA,MACA,CAAC,SAAS;AAAA,IACZ;AACA,iBAAa,UAAU,GAAG;AAE1B,UAAM;AAAA,EACR;AACF;AAkCA,eAAsBO,kBACpB,SAYA;AAEA,QAAM,EAAE,YAAY,YAAY,IAAI,UAAU,CAAC;AAK/C,QAAM,cAAU,qEAAsC;AAAA,IACpD,eAAe,SAAS;AAAA,IACxB,QAAQ,SAAS;AAAA,EACnB,CAAC;AAED,QAAM,UACkC,iBAAiB,OAAO;AAEhE,eAAa,aAAa;AAC1B,MAAI;AACF,UAAM,SAAS,MAAM,WAAW,QAAQ,OAAO;AAC/C,iBAAa,YAAY,MAAM;AAE/B,eAAO,uEAAwC,OAAO,IAAI;AAAA,EAC5D,SAAS,KAAU;AACjB,UAAM,uBAAmB,uBAAAP;AAAA,MACvB;AAAA,MACA;AAAA,QACE,wBAAwB,CAAC;AAAA,QACzB,0BAA0B;AAAA,UACxB,eAAe;AAAA,UACf,QAAQ;AAAA,QACV;AAAA,QACA,yBAAyB;AAAA,MAC3B;AAAA,MACA,CAAC,SAAS;AAAA,IACZ;AACA,iBAAa,UAAU,GAAG;AAE1B,UAAM;AAAA,EACR;AACF;AA0BA,eAAsBQ,mBACpB,SAYA;AAEA,QAAM,EAAE,YAAY,YAAY,IAAI,UAAU,CAAC;AAK/C,QAAM,cAAU,qEAAsC;AAAA,IACpD,eAAe,SAAS;AAAA,IACxB,QAAQ,SAAS;AAAA,EACnB,CAAC;AAED,QAAM,UACkC,kBAAkB,OAAO;AAEjE,eAAa,aAAa;AAC1B,MAAI;AACF,UAAM,SAAS,MAAM,WAAW,QAAQ,OAAO;AAC/C,iBAAa,YAAY,MAAM;AAE/B,eAAO,uEAAwC,OAAO,IAAI;AAAA,EAC5D,SAAS,KAAU;AACjB,UAAM,uBAAmB,uBAAAR;AAAA,MACvB;AAAA,MACA;AAAA,QACE,wBAAwB,CAAC;AAAA,QACzB,0BAA0B;AAAA,UACxB,eAAe;AAAA,UACf,QAAQ;AAAA,QACV;AAAA,QACA,yBAAyB;AAAA,MAC3B;AAAA,MACA,CAAC,SAAS;AAAA,IACZ;AACA,iBAAa,UAAU,GAAG;AAE1B,UAAM;AAAA,EACR;AACF;AA4BA,eAAsBS,iBACpB,SAYA;AAEA,QAAM,EAAE,YAAY,YAAY,IAAI,UAAU,CAAC;AAK/C,QAAM,cAAU,qEAAsC;AAAA,IACpD,eAAe,SAAS;AAAA,EAC1B,CAAC;AAED,QAAM,UACkC,gBAAgB,OAAO;AAE/D,eAAa,aAAa;AAC1B,MAAI;AACF,UAAM,SAAS,MAAM,WAAW,QAAQ,OAAO;AAC/C,iBAAa,YAAY,MAAM;AAE/B,eAAO,uEAAwC,OAAO,IAAI;AAAA,EAC5D,SAAS,KAAU;AACjB,UAAM,uBAAmB,uBAAAT;AAAA,MACvB;AAAA,MACA;AAAA,QACE,wBAAwB,CAAC;AAAA,QACzB,0BAA0B,EAAE,eAAe,qBAAqB;AAAA,QAChE,yBAAyB;AAAA,MAC3B;AAAA,MACA,CAAC,SAAS;AAAA,IACZ;AACA,iBAAa,UAAU,GAAG;AAE1B,UAAM;AAAA,EACR;AACF;AAyBA,eAAsBU,iBACpB,SAYA;AAEA,QAAM,EAAE,YAAY,YAAY,IAAI,UAAU,CAAC;AAK/C,QAAM,cAAU,qEAAsC;AAAA,IACpD,eAAe,SAAS;AAAA,IACxB,UAAU,SAAS;AAAA,EACrB,CAAC;AAED,QAAM,UACkC,gBAAgB,OAAO;AAE/D,eAAa,aAAa;AAC1B,MAAI;AACF,UAAM,SAAS,MAAM,WAAW,QAAQ,OAAO;AAC/C,iBAAa,YAAY,MAAM;AAE/B,eAAO,uEAAwC,OAAO,IAAI;AAAA,EAC5D,SAAS,KAAU;AACjB,UAAM,uBAAmB,uBAAAV;AAAA,MACvB;AAAA,MACA;AAAA,QACE,wBAAwB,CAAC;AAAA,QACzB,0BAA0B;AAAA,UACxB,eAAe;AAAA,UACf,UAAU;AAAA,QACZ;AAAA,QACA,yBAAyB;AAAA,MAC3B;AAAA,MACA,CAAC,SAAS;AAAA,IACZ;AACA,iBAAa,UAAU,GAAG;AAE1B,UAAM;AAAA,EACR;AACF;AAyCA,eAAsBW,gBACpB,UAQA,SAYA;AAEA,QAAM,EAAE,YAAY,YAAY,IAAI,UAAU,CAAC;AAK/C,QAAM,cAAU,qEAAsC;AAAA,IACpD;AAAA,IACA,QAAQ,SAAS;AAAA,EACnB,CAAC;AAED,QAAM,UAAgD,eAAe,OAAO;AAE5E,eAAa,aAAa;AAC1B,MAAI;AACF,UAAM,SAAS,MAAM,WAAW,QAAQ,OAAO;AAC/C,iBAAa,YAAY,MAAM;AAE/B,eAAO,uEAAwC,OAAO,IAAI,GAAG;AAAA,EAC/D,SAAS,KAAU;AACjB,UAAM,uBAAmB,uBAAAX;AAAA,MACvB;AAAA,MACA;AAAA,QACE,wBAAwB,CAAC;AAAA,QACzB,0BAA0B,EAAE,UAAU,QAAQ,QAAQ,cAAc;AAAA,QACpE,yBAAyB;AAAA,MAC3B;AAAA,MACA,CAAC,YAAY,SAAS;AAAA,IACxB;AACA,iBAAa,UAAU,GAAG;AAE1B,UAAM;AAAA,EACR;AACF;AA+BA,eAAsBY,gBACpB,KACA,UACA,SAYA;AAEA,QAAM,EAAE,YAAY,YAAY,IAAI,UAAU,CAAC;AAK/C,QAAM,cAAU,qEAAsC;AAAA,IACpD,UAAU,EAAE,GAAG,UAAU,IAAI,IAAI;AAAA,IACjC,QAAQ,SAAS;AAAA,EACnB,CAAC;AAED,QAAM,UAAgD,eAAe,OAAO;AAE5E,eAAa,aAAa;AAC1B,MAAI;AACF,UAAM,SAAS,MAAM,WAAW,QAAQ,OAAO;AAC/C,iBAAa,YAAY,MAAM;AAE/B,eAAO,uEAAwC,OAAO,IAAI,GAAG;AAAA,EAC/D,SAAS,KAAU;AACjB,UAAM,uBAAmB,uBAAAZ;AAAA,MACvB;AAAA,MACA;AAAA,QACE,wBAAwB,EAAE,UAAU,OAAO;AAAA,QAC3C,0BAA0B;AAAA,UACxB,eAAe;AAAA,UACf,QAAQ;AAAA,QACV;AAAA,QACA,yBAAyB;AAAA,MAC3B;AAAA,MACA,CAAC,OAAO,YAAY,SAAS;AAAA,IAC/B;AACA,iBAAa,UAAU,GAAG;AAE1B,UAAM;AAAA,EACR;AACF;AAuFA,eAAsBa,gBACpB,YACA,SACe;AAEf,QAAM,EAAE,YAAY,YAAY,IAAI,UAAU,CAAC;AAK/C,QAAM,cAAU,qEAAsC;AAAA,IACpD;AAAA,IACA,QAAQ,SAAS;AAAA,EACnB,CAAC;AAED,QAAM,UAAgD,eAAe,OAAO;AAE5E,eAAa,aAAa;AAC1B,MAAI;AACF,UAAM,SAAS,MAAM,WAAW,QAAQ,OAAO;AAC/C,iBAAa,YAAY,MAAM;AAAA,EACjC,SAAS,KAAU;AACjB,UAAM,uBAAmB,uBAAAb;AAAA,MACvB;AAAA,MACA;AAAA,QACE,wBAAwB,CAAC;AAAA,QACzB,0BAA0B,EAAE,YAAY,QAAQ,QAAQ,cAAc;AAAA,QACtE,yBAAyB;AAAA,MAC3B;AAAA,MACA,CAAC,cAAc,SAAS;AAAA,IAC1B;AACA,iBAAa,UAAU,GAAG;AAE1B,UAAM;AAAA,EACR;AACF;AAuBA,eAAsBc,aACpB,YACA,SAYA;AAEA,QAAM,EAAE,YAAY,YAAY,IAAI,UAAU,CAAC;AAK/C,QAAM,cAAU,qEAAsC;AAAA,IACpD;AAAA,IACA,UAAU,SAAS;AAAA,EACrB,CAAC;AAED,QAAM,UAAgD,YAAY,OAAO;AAEzE,eAAa,aAAa;AAC1B,MAAI;AACF,UAAM,SAAS,MAAM,WAAW,QAAQ,OAAO;AAC/C,iBAAa,YAAY,MAAM;AAE/B,eAAO,uEAAwC,OAAO,IAAI,GAAG;AAAA,EAC/D,SAAS,KAAU;AACjB,UAAM,uBAAmB,uBAAAd;AAAA,MACvB;AAAA,MACA;AAAA,QACE,wBAAwB,CAAC;AAAA,QACzB,0BAA0B;AAAA,UACxB,YAAY;AAAA,UACZ,UAAU;AAAA,QACZ;AAAA,QACA,yBAAyB;AAAA,MAC3B;AAAA,MACA,CAAC,cAAc,SAAS;AAAA,IAC1B;AACA,iBAAa,UAAU,GAAG;AAE1B,UAAM;AAAA,EACR;AACF;AA6BO,SAASe,gBACd,SACuB;AAEvB,QAAM,EAAE,YAAY,YAAY,IAAI,UAAU,CAAC;AAK/C,aAAO,mCAKL;AAAA,IACA,MAAM,OAAO,YAAmC;AAC9C,YAAM,UAAgD,eAAe;AAAA,QACnE,GAAG;AAAA,QACH,GAAI,WAAW,CAAC;AAAA,MAClB,CAAC;AAED,mBAAa,aAAa;AAC1B,UAAI;AACF,cAAM,SAAS,MAAM,WAAW,QAAQ,OAAO;AAC/C,qBAAa,YAAY,MAAM;AAC/B,eAAO;AAAA,MACT,SAAS,KAAK;AACZ,qBAAa,UAAU,GAAG;AAC1B,cAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,oBAAoB,CAAC,UAA0C;AAC7D,YAAM,OAAO,CAAC,OAAO,OAAO;AAI5B,iBAAO,qEAAsC;AAAA,QAC3C,GAAG,OAAO,CAAC;AAAA,QACX,OAAO,OAAO,CAAC;AAAA,MACjB,CAAC;AAAA,IACH;AAAA,IACA,qBAAqB,CAAC,EAAE,KAAK,MAA4C;AACvE,YAAM,sBAAkB;AAAA,YACtB,wCAAe,MAAM,CAAC,CAAC;AAAA,MACzB;AAEA,aAAO;AAAA,QACL,OAAO,iBAAiB;AAAA,QACxB,gBAAgB,iBAAiB;AAAA,MACnC;AAAA,IACF;AAAA,IACA,kBAAkB,CAAC,QAAiB;AAClC,YAAM,uBAAmB,uBAAAf,gBAAkB,KAAK;AAAA,QAC9C,wBAAwB,CAAC;AAAA,QACzB,0BAA0B,EAAE,OAAO,OAAO;AAAA,QAC1C,yBAAyB;AAAA,MAC3B,CAAC;AAED,YAAM;AAAA,IACR;AAAA,IACA,cAAc;AAAA,IACd,qBAAqB,CAAC;AAAA,EACxB,CAAC;AACH;AAiLA,eAAsB,oBACpB,OACA,SASA;AAEA,QAAM,EAAE,YAAY,YAAY,IAAI,UAAU,CAAC;AAK/C,QAAM,cAAU,qEAAsC;AAAA,IACpD;AAAA,IACA,GAAG;AAAA,EACL,CAAC;AAED,QAAM,UAAgD,eAAe,OAAO;AAE5E,eAAa,aAAa;AAC1B,MAAI;AACF,UAAM,SAAS,MAAM,WAAW,QAAQ,OAAO;AAC/C,iBAAa,YAAY,MAAM;AAE/B,eAAO,uEAAwC,OAAO,IAAI;AAAA,EAC5D,SAAS,KAAU;AACjB,UAAM,uBAAmB,uBAAAA;AAAA,MACvB;AAAA,MACA;AAAA,QACE,wBAAwB,CAAC;AAAA,QACzB,0BAA0B,EAAE,OAAO,OAAO;AAAA,QAC1C,yBAAyB;AAAA,MAC3B;AAAA,MACA,CAAC,SAAS,SAAS;AAAA,IACrB;AACA,iBAAa,UAAU,GAAG;AAE1B,UAAM;AAAA,EACR;AACF;AA+EO,IAAM,QAAQ;AAAA,EACnB,OAAqB,iEAInB;AACJ;AAiCA,eAAsBgB,yBACpB,eACA,SAcA;AAEA,QAAM,EAAE,YAAY,YAAY,IAAI,UAAU,CAAC;AAK/C,QAAM,cAAU,qEAAsC;AAAA,IACpD;AAAA,IACA,aAAa,SAAS;AAAA,IACtB,UAAU,SAAS;AAAA,IACnB,aAAa,SAAS;AAAA,IACtB,gBAAgB,SAAS;AAAA,IACzB,cAAc,SAAS;AAAA,IACvB,gBAAgB,SAAS;AAAA,EAC3B,CAAC;AAED,QAAM,UACkC,wBAAwB,OAAO;AAEvE,eAAa,aAAa;AAC1B,MAAI;AACF,UAAM,SAAS,MAAM,WAAW,QAAQ,OAAO;AAC/C,iBAAa,YAAY,MAAM;AAE/B,eAAO,uEAAwC,OAAO,IAAI;AAAA,EAC5D,SAAS,KAAU;AACjB,UAAM,uBAAmB,uBAAAhB;AAAA,MACvB;AAAA,MACA;AAAA,QACE,wBAAwB,CAAC;AAAA,QACzB,0BAA0B;AAAA,UACxB,eAAe;AAAA,UACf,aAAa;AAAA,UACb,UAAU;AAAA,UACV,aAAa;AAAA,UACb,gBAAgB;AAAA,UAChB,cAAc;AAAA,UACd,gBAAgB;AAAA,QAClB;AAAA,QACA,yBAAyB;AAAA,MAC3B;AAAA,MACA,CAAC,iBAAiB,SAAS;AAAA,IAC7B;AACA,iBAAa,UAAU,GAAG;AAE1B,UAAM;AAAA,EACR;AACF;;;AE7rFO,SAASiB,oBACd,YAC6B;AAC7B,SAAO,CAAC,QACNA;AAAA,IACE;AAAA;AAAA,IAEA,EAAE,WAAW;AAAA,EACf;AACJ;AAsBO,SAASC,qBACd,YAC8B;AAC9B,SAAO,MACLA;AAAA;AAAA,IAEE,EAAE,WAAW;AAAA,EACf;AACJ;AA4BO,SAASC,sBACd,YAC+B;AAC/B,SAAO,CAAC,YACNA;AAAA,IACE;AAAA;AAAA,IAEA,EAAE,WAAW;AAAA,EACf;AACJ;AA2BO,SAASC,uBACd,YACgC;AAChC,SAAO,CAAC,YACNA;AAAA,IACE;AAAA;AAAA,IAEA,EAAE,WAAW;AAAA,EACf;AACJ;AAyBO,SAASC,wBACd,YACiC;AACjC,SAAO,CAAC,YACNA;AAAA,IACE;AAAA;AAAA,IAEA,EAAE,WAAW;AAAA,EACf;AACJ;AAyBO,SAASC,sBACd,YAC+B;AAC/B,SAAO,CAAC,YACNA;AAAA,IACE;AAAA;AAAA,IAEA,EAAE,WAAW;AAAA,EACf;AACJ;AAyBO,SAASC,iBACd,YAC0B;AAC1B,SAAO,CAAC,YACNA;AAAA,IACE;AAAA;AAAA,IAEA,EAAE,WAAW;AAAA,EACf;AACJ;AAiCO,SAASC,kBACd,YAC2B;AAC3B,SAAO,CAAC,YACNA;AAAA,IACE;AAAA;AAAA,IAEA,EAAE,WAAW;AAAA,EACf;AACJ;AAwBO,SAASC,mBACd,YAC4B;AAC5B,SAAO,CAAC,YACNA;AAAA,IACE;AAAA;AAAA,IAEA,EAAE,WAAW;AAAA,EACf;AACJ;AAwBO,SAASC,iBACd,YAC0B;AAC1B,SAAO,CAAC,YACNA;AAAA,IACE;AAAA;AAAA,IAEA,EAAE,WAAW;AAAA,EACf;AACJ;AAuBO,SAASC,iBACd,YAC0B;AAC1B,SAAO,CAAC,YACNA;AAAA,IACE;AAAA;AAAA,IAEA,EAAE,WAAW;AAAA,EACf;AACJ;AAuBO,SAASC,gBACd,YACyB;AACzB,SAAO,CACL,UAQA,YAEAA;AAAA,IACE;AAAA,IACA;AAAA;AAAA,IAEA,EAAE,WAAW;AAAA,EACf;AACJ;AAqCO,SAASC,gBACd,YACyB;AACzB,SAAO,CACL,KACA,UACA,YAEAA;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA,EAAE,WAAW;AAAA,EACf;AACJ;AAiCO,SAASC,gBACd,YACyB;AACzB,SAAO,CAAC,YAAoB,YAC1BA;AAAA,IACE;AAAA,IACA;AAAA;AAAA,IAEA,EAAE,WAAW;AAAA,EACf;AACJ;AAYO,SAASC,aAAY,YAA8C;AACxE,SAAO,CAAC,YAAoB,YAC1BA;AAAA,IACE;AAAA,IACA;AAAA;AAAA,IAEA,EAAE,WAAW;AAAA,EACf;AACJ;AAsBO,SAASC,gBACd,YACyB;AACzB,SAAO,CAAC,YACNA;AAAA,IACE;AAAA;AAAA,IAEA,EAAE,WAAW;AAAA,EACf;AACJ;AAeO,SAASC,qBACd,YAC8B;AAC9B,SAAO,CAAC,OAAsB,YAC5B;AAAA,IACE;AAAA,IACA;AAAA;AAAA,IAEA,EAAE,WAAW;AAAA,EACf;AACJ;AAeO,SAASC,yBACd,YACkC;AAClC,SAAO,CACL,eACA,YAMAA;AAAA,IACE;AAAA,IACA;AAAA;AAAA,IAEA,EAAE,WAAW;AAAA,EACf;AACJ;;;AC9nBA,IAAAC,uBAAiC;AAGjC,iCAA0C;AAQ1C,SAAS,qBAAqB,YAAwB;AACpD,QAAM,SAAuB,0EAA0B;AAAA,IACrD,sBAAsB,CAAC,YACrBC,gBAAqB,UAAU,EAAE,OAAO;AAAA,IAC1C,oBAAoB,CAClB,OACA,YACGC,qBAA0B,UAAU,EAAE,OAAO,OAAO;AAAA,IACzD,qBAAqB;AAAA,EACvB,CAAC;AASD,WAAS,gBACP,gBACA,SACK;AACL,WAAO,OAAO,GAAG,SAAS;AAAA,EAC5B;AAEA,SAAO;AACT;AAEO,IAAMC,sBAGK,2DAAiBA,mBAAwB;AACpD,IAAMC,uBAGK,2DAAiBA,oBAAyB;AACrD,IAAMC,wBAGK,2DAAiBA,qBAA0B;AACtD,IAAMC,yBAGK,2DAAiBA,sBAA2B;AACvD,IAAMC,0BAGK,2DAAiBA,uBAA4B;AACxD,IAAMC,wBAGK,2DAAiBA,qBAA0B;AACtD,IAAMC,mBAEK,2DAAiBA,gBAAqB;AACjD,IAAMC,oBAGK,2DAAiBA,iBAAsB;AAClD,IAAMC,qBAGK,2DAAiBA,kBAAuB;AACnD,IAAMC,mBAEK,2DAAiBA,gBAAqB;AACjD,IAAMC,mBAEK,2DAAiBA,gBAAqB;AACjD,IAAMC,kBAEK,2DAAiBA,eAAoB;AAChD,IAAMC,kBAEK,2DAAiBA,eAAoB;AAChD,IAAMC,kBAEK,2DAAiBA,eAAoB;AAChD,IAAMC,eAEK,2DAAiBA,YAAiB;AAC7C,IAAMC,2BAGK,2DAAiBA,wBAA6B;AACzD,IAAMjB,kBAEK,2DAAiB,oBAAoB;","names":["clockInTimecard","clockOutTimecard","createTimecard","deleteTimecard","endTimecardTask","generateStaffToken","getOpenTimecard","getTimeClockDetails","getTimecard","kioskClockInTimecard","kioskClockOutTimecard","kioskEndTimecardTask","kioskStartTimecardTask","listAggregatedTimecards","queryTimecards","startTimecardTask","updateTimecard","import_timestamp","import_rest_modules","payload","import_transform_paths","ClockSource","WebhookIdentityType","SortOrder","generateStaffToken","sdkTransformError","getTimeClockDetails","kioskClockInTimecard","kioskClockOutTimecard","kioskStartTimecardTask","kioskEndTimecardTask","clockInTimecard","clockOutTimecard","startTimecardTask","endTimecardTask","getOpenTimecard","createTimecard","updateTimecard","deleteTimecard","getTimecard","queryTimecards","listAggregatedTimecards","generateStaffToken","getTimeClockDetails","kioskClockInTimecard","kioskClockOutTimecard","kioskStartTimecardTask","kioskEndTimecardTask","clockInTimecard","clockOutTimecard","startTimecardTask","endTimecardTask","getOpenTimecard","createTimecard","updateTimecard","deleteTimecard","getTimecard","queryTimecards","typedQueryTimecards","listAggregatedTimecards","import_rest_modules","queryTimecards","typedQueryTimecards","generateStaffToken","getTimeClockDetails","kioskClockInTimecard","kioskClockOutTimecard","kioskStartTimecardTask","kioskEndTimecardTask","clockInTimecard","clockOutTimecard","startTimecardTask","endTimecardTask","getOpenTimecard","createTimecard","updateTimecard","deleteTimecard","getTimecard","listAggregatedTimecards"]}
1
+ {"version":3,"sources":["../../index.ts","../../src/staff-time-clock-v1-timecard-timecards.universal.ts","../../src/staff-time-clock-v1-timecard-timecards.http.ts","../../src/staff-time-clock-v1-timecard-timecards.public.ts","../../src/staff-time-clock-v1-timecard-timecards.context.ts"],"sourcesContent":["export * from './src/staff-time-clock-v1-timecard-timecards.context.js';\n","import { transformError as sdkTransformError } from '@wix/sdk-runtime/transform-error';\nimport { queryBuilder } from '@wix/sdk-runtime/query-builder';\nimport {\n renameKeysFromSDKRequestToRESTRequest,\n renameKeysFromRESTResponseToSDKResponse,\n} from '@wix/sdk-runtime/rename-all-nested-keys';\nimport {\n HttpClient,\n HttpResponse,\n NonNullablePaths,\n QuerySpec,\n Query as QuerySdkType,\n} from '@wix/sdk-types';\nimport * as ambassadorWixStaffTimeClockV1Timecard from './staff-time-clock-v1-timecard-timecards.http.js';\n// @ts-ignore\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\nimport { createQueryUtils } from '@wix/sdk-runtime/query-builder-utils';\n\n/**\n * A timecard records one period of work for a staff member, from a clock-in to a\n * clock-out. A timecard is open until it has a clock-out. Daily totals are calculated\n * from timecards, not stored separately.\n */\nexport interface Timecard {\n /**\n * Timecard ID.\n * @format GUID\n * @readonly\n */\n _id?: string | null;\n /**\n * Revision number, which increments by 1 each time the timecard is updated.\n * To prevent conflicting changes, the current revision must be passed when\n * updating the timecard.\n *\n * Ignored when creating a timecard.\n * @readonly\n */\n revision?: string | null;\n /**\n * Date and time the timecard was created.\n * @readonly\n */\n _createdDate?: Date | null;\n /**\n * Date and time the timecard was updated.\n * @readonly\n */\n _updatedDate?: Date | null;\n /**\n * ID of the staff member the timecard belongs to.\n * @format GUID\n */\n staffMemberId?: string;\n /** Clock-in, which starts the timecard. */\n clockIn?: ClockPunch;\n /** Clock-out, which ends the timecard. Not set while the timecard is open. */\n clockOut?: ClockPunch;\n /**\n * Tasks the staff member worked on during the timecard, in order and without\n * overlap. A break is a task that is marked as unpaid.\n * @maxSize 200\n */\n taskAssignments?: TaskAssignment[];\n /**\n * ID of the location where the work was done. Not every source, such as a POS\n * terminal, provides one. (Formerly field 6 as a required plain string, see the\n * `reserved 6` note above for why this moved to a new field number.)\n * @format GUID\n */\n locationId?: string | null;\n /**\n * Time worked during this timecard. Calculated from the clock-in, clock-out, and\n * tasks whenever the timecard is read. Ignored when creating or updating a timecard.\n *\n * Each value is rounded down to whole minutes for the timecard, so the sum over several\n * timecards can be up to 2 minutes per timecard lower than the hours returned by List\n * Aggregated Timecards. Use List Aggregated Timecards for totals over a range, and\n * this field for a single shift.\n *\n * `0` while the timecard is open, which means nothing is completed yet, not that no\n * time was worked.\n * @readonly\n */\n workedTime?: WorkedTime;\n}\n\n/** A clock-in or clock-out: the moment it happened and the source it came from. */\nexport interface ClockPunch {\n /**\n * When the clock-in or clock-out happened. `utcDate` is the exact moment. `localDate`\n * and `timeZone` are the local time and time zone recorded with it. They aren't set\n * for a live clock-in or clock-out that didn't provide a time zone.\n */\n date?: ZonedDate;\n /** Source the clock-in or clock-out came from. */\n source?: ClockSourceWithLiterals;\n /**\n * The same moment as `date`, shown in the time zone the caller requested. Calculated\n * when the timecard is read. Not set unless the request included a time zone.\n * @readonly\n */\n adjustedDate?: ZonedDate;\n /**\n * ID of the offline time clock punch this clock-in or clock-out was derived from.\n * Not set for live clock-ins and clock-outs or for automatic clock-outs by the system.\n * @format GUID\n */\n timeClockPunchId?: string | null;\n}\n\n/**\n * A moment in time, with the local time and time zone it was recorded in.\n *\n * `utcDate` is the exact moment. `localDate` and `timeZone` are the local time and\n * IANA time zone recorded with it. They're stored as provided, so the recorded local\n * time doesn't change if time zone rules change later.\n *\n * When writing, provide `localDate` and `timeZone`. The server calculates `utcDate`\n * from them. A live clock-in or clock-out can have only a `utcDate` set by the server,\n * with `localDate` and `timeZone` not set. When reading, the recorded values are\n * returned as stored. The `adjusted` fields on a clock-in, clock-out, or task show the\n * same moment in the time zone you request.\n */\nexport interface ZonedDate {\n /**\n * Recorded local date and time in `YYYY-MM-DDThh:mm:ss` format, for example\n * `2026-07-01T09:00:00`. Interpreted in `timeZone`. Not set when the recorded time\n * zone is unknown.\n * @format LOCAL_DATE_TIME\n */\n localDate?: string | null;\n /**\n * Recorded time zone in IANA format, for example `America/New_York`. Not set when\n * unknown, for example for a live clock-in that didn't provide one.\n * @maxLength 50\n */\n timeZone?: string | null;\n /**\n * The exact moment, in UTC. Calculated from `localDate` and `timeZone` when writing, or\n * set by the server for a live clock-in or clock-out.\n * @readonly\n */\n utcDate?: Date | null;\n}\n\n/** Source a clock-in or clock-out came from. */\nexport enum ClockSource {\n /** Staff Hub kiosk. */\n KIOSK = 'KIOSK',\n /** Wix Owner app. */\n OWNER_APP = 'OWNER_APP',\n /** Point of sale terminal. */\n POS_TERMINAL = 'POS_TERMINAL',\n /** Manual entry or edit by an admin. */\n MANUAL = 'MANUAL',\n /** The system, for example an automatic clock-out. */\n SYSTEM = 'SYSTEM',\n}\n\n/** @enumType */\nexport type ClockSourceWithLiterals =\n | ClockSource\n | 'KIOSK'\n | 'OWNER_APP'\n | 'POS_TERMINAL'\n | 'MANUAL'\n | 'SYSTEM';\n\n/** A task a staff member worked on during a timecard. */\nexport interface TaskAssignment {\n /**\n * ID of the task, from the site's task catalog in the time clock settings.\n * @format GUID\n */\n taskId?: string;\n /** When the task started. */\n startDate?: ZonedDate;\n /** When the task ended. Not set while the task is running. */\n endDate?: ZonedDate;\n /**\n * Task label, copied from the task catalog when the task started.\n * @maxLength 100\n */\n label?: string;\n /**\n * Whether the task counts as paid time. Copied from the task catalog when the task\n * started. When `false`, the task's time is deducted from paid hours.\n */\n paid?: boolean;\n /**\n * The same moment as `startDate`, shown in the time zone the caller requested.\n * Calculated when the timecard is read. Not set unless the request included a time\n * zone.\n * @readonly\n */\n adjustedStartDate?: ZonedDate;\n /**\n * The same moment as `endDate`, shown in the time zone the caller requested.\n * Calculated when the timecard is read. Not set unless the request included a time\n * zone, or while the task is running.\n * @readonly\n */\n adjustedEndDate?: ZonedDate;\n}\n\n/**\n * Worked time split into paid, unpaid, and total, in minutes. The total is the paid time\n * plus the unpaid time.\n */\nexport interface WorkedTime {\n /** Paid time, in minutes. Doesn't include unpaid tasks. */\n paidDurationInMinutes?: string | null;\n /** Unpaid time, in minutes, such as breaks. */\n unpaidDurationInMinutes?: string | null;\n /** Total time, in minutes: paid time plus unpaid time. */\n totalDurationInMinutes?: string | null;\n}\n\nexport interface GenerateStaffTokenRequest {\n /**\n * Hash of the PIN the staff member entered, as uppercase hex, computed as\n * `SHA-256(\"Pin(symbols=[1, 2, 3, 4])|<metaSiteId>\")` over the entered digits and\n * the site ID from the device's pairing context.\n * @minLength 64\n * @maxLength 64\n */\n pin: string;\n}\n\nexport interface GenerateStaffTokenResponse {\n /**\n * Short-lived token identifying the staff member for the rest of their kiosk\n * session. Treat it as opaque and don't decode it: anyone holding it can act as\n * this staff member until it expires.\n * @maxLength 4096\n */\n staffToken?: string;\n /**\n * The staff member's display name, for the greeting shown after a correct PIN.\n * @maxLength 40\n */\n displayName?: string | null;\n /**\n * Date and time the staff token expires. After this, the staff member must\n * enter their PIN again to get a new token.\n */\n expirationDate?: Date | null;\n}\n\nexport interface GetTimeClockDetailsRequest {}\n\nexport interface GetTimeClockDetailsResponse {\n /** The staff member's open timecard. Unset when they're clocked out. */\n openTimecard?: Timecard;\n /**\n * The site's task catalog. A site has at most 100 tasks.\n * @maxSize 100\n */\n tasks?: Task[];\n}\n\n/**\n * A kind of work a staff member can start during a timecard, such as \"Front\n * desk\" or \"Lunch\". Time spent on an unpaid task isn't counted as paid working\n * time.\n */\nexport interface Task {\n /**\n * Task ID. Leave empty when adding a task, and one is assigned. Pass the\n * existing ID when updating a task. Tasks are identified by ID, so 2 tasks\n * can have the same label.\n * @format GUID\n */\n _id?: string | null;\n /**\n * Task name shown to staff members and managers, such as \"Lunch\" or\n * \"Training\".\n * @maxLength 100\n */\n label?: string;\n /** Whether time spent on this task counts as paid working time. */\n paid?: boolean;\n}\n\nexport interface ClockInTimecardRequest {\n /**\n * ID of the staff member to clock in.\n *\n * Required when clocking in on behalf of a staff member, for example from a kiosk.\n * Ignored otherwise: the staff member is identified from the caller's session.\n * @format GUID\n */\n staffMemberId?: string | null;\n /** Source the clock-in came from. */\n source?: ClockSourceWithLiterals;\n /**\n * Time zone in IANA format, for example `America/New_York`.\n *\n * The clock-in time is always set by the server. If you provide a time zone, it's\n * recorded on the clock-in and used to display the `adjusted` dates in the response.\n *\n * Default: No recorded time zone, and `adjusted` dates are in UTC.\n * @internal\n * @maxLength 50\n */\n timeZone?: string | null;\n /**\n * ID of the location of the clock-in. Not every source, such as a POS terminal,\n * provides one. (Formerly field 2 as a required plain string.)\n * @format GUID\n */\n locationId?: string | null;\n}\n\nexport interface ClockInTimecardResponse {\n /**\n * Open timecard. If the staff member was already clocked in, this is their\n * existing timecard.\n */\n timecard?: Timecard;\n /**\n * Whether the staff member already had an open timecard. When `true`, no new\n * timecard was created.\n */\n wasAlreadyOpen?: boolean;\n}\n\nexport interface ClockOutTimecardRequest {\n /**\n * ID of the staff member to clock out.\n *\n * Required when clocking out on behalf of a staff member, for example from a kiosk.\n * Ignored otherwise: the staff member is identified from the caller's session.\n * @format GUID\n */\n staffMemberId?: string | null;\n /** Source the clock-out came from. */\n source?: ClockSourceWithLiterals;\n /**\n * Time zone in IANA format, recorded on the clock-out and used to display the\n * `adjusted` dates in the response. See `time_zone` in the clock-in request.\n * @internal\n * @maxLength 50\n */\n timeZone?: string | null;\n}\n\nexport interface ClockOutTimecardResponse {\n /** Closed timecard. */\n timecard?: Timecard;\n}\n\nexport interface StartTimecardTaskRequest {\n /**\n * ID of the staff member to start the task for.\n *\n * Required when starting a task on behalf of a staff member, for example from a kiosk.\n * Ignored otherwise: the staff member is identified from the caller's session.\n * @format GUID\n */\n staffMemberId?: string | null;\n /**\n * ID of the task to start, from the site's task catalog.\n * @format GUID\n */\n taskId?: string;\n /**\n * Time zone in IANA format, recorded on the task start and used to display the\n * `adjusted` dates in the response. See `time_zone` in the clock-in request.\n * @internal\n * @maxLength 50\n */\n timeZone?: string | null;\n}\n\nexport interface StartTimecardTaskResponse {\n /** Updated timecard. */\n timecard?: Timecard;\n}\n\nexport interface EndTimecardTaskRequest {\n /**\n * ID of the staff member to end the task for.\n *\n * Required when ending a task on behalf of a staff member, for example from a kiosk.\n * Ignored otherwise: the staff member is identified from the caller's session.\n * @format GUID\n */\n staffMemberId?: string | null;\n /**\n * Time zone in IANA format, recorded on the task end and used to display the\n * `adjusted` dates in the response. See `time_zone` in the clock-in request.\n * @internal\n * @maxLength 50\n */\n timeZone?: string | null;\n}\n\nexport interface EndTimecardTaskResponse {\n /** Updated timecard. */\n timecard?: Timecard;\n}\n\nexport interface SendPinSetupLinkRequest {\n /**\n * Email address the staff member typed at the kiosk.\n * @format EMAIL\n * @maxLength 320\n */\n email?: string;\n}\n\nexport interface SendPinSetupLinkResponse {}\n\nexport interface CompletePinSetupRequest {\n /**\n * PIN Setup Token from the PIN setup link.\n * @maxLength 4096\n */\n pinSetupToken?: string;\n /**\n * Hash of the new PIN, in the same format as `GenerateStaffTokenRequest.pin`.\n * @minLength 64\n * @maxLength 64\n */\n pin?: string;\n}\n\nexport interface CompletePinSetupResponse {}\n\nexport interface ValidatePinSetupLinkRequest {\n /**\n * PIN Setup Token from the PIN setup link.\n * @maxLength 4096\n */\n pinSetupToken?: string;\n}\n\nexport interface ValidatePinSetupLinkResponse {}\n\nexport interface DomainEvent extends DomainEventBodyOneOf {\n createdEvent?: EntityCreatedEvent;\n updatedEvent?: EntityUpdatedEvent;\n deletedEvent?: EntityDeletedEvent;\n actionEvent?: ActionEvent;\n /** Event ID. With this ID you can easily spot duplicated events and ignore them. */\n _id?: string;\n /**\n * Fully Qualified Domain Name of an entity. This is a unique identifier assigned to the API main business entities.\n * For example, `wix.stores.catalog.product`, `wix.bookings.session`, `wix.payments.transaction`.\n */\n entityFqdn?: string;\n /**\n * Event action name, placed at the top level to make it easier for users to dispatch messages.\n * For example: `created`/`updated`/`deleted`/`started`/`completed`/`email_opened`.\n */\n slug?: string;\n /** ID of the entity associated with the event. */\n entityId?: string;\n /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example, `2020-04-26T13:57:50.699Z`. */\n eventTime?: Date | null;\n /**\n * Whether the event was triggered as a result of a privacy regulation application\n * (for example, GDPR).\n */\n triggeredByAnonymizeRequest?: boolean | null;\n /** If present, indicates the action that triggered the event. */\n originatedFrom?: string | null;\n /**\n * A sequence number that indicates the order of updates to an entity. For example, if an entity was updated at `16:00` and then again at `16:01`, the second update will always have a higher sequence number.\n * You can use this number to make sure you're handling updates in the right order. Just save the latest sequence number on your end and compare it to the one in each new message. If the new message has an older (lower) number, you can safely ignore it.\n */\n entityEventSequence?: string | null;\n}\n\n/** @oneof */\nexport interface DomainEventBodyOneOf {\n createdEvent?: EntityCreatedEvent;\n updatedEvent?: EntityUpdatedEvent;\n deletedEvent?: EntityDeletedEvent;\n actionEvent?: ActionEvent;\n}\n\nexport interface EntityCreatedEvent {\n entity?: string;\n}\n\nexport interface RestoreInfo {\n deletedDate?: Date | null;\n}\n\nexport interface EntityUpdatedEvent {\n /**\n * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.\n * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.\n * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it.\n */\n currentEntity?: string;\n}\n\nexport interface EntityDeletedEvent {\n /** Entity that was deleted. */\n deletedEntity?: string | null;\n}\n\nexport interface ActionEvent {\n body?: string;\n}\n\nexport interface MessageEnvelope {\n /**\n * App instance ID.\n * @format GUID\n */\n instanceId?: string | null;\n /**\n * Event type.\n * @maxLength 150\n */\n eventType?: string;\n /** The identification type and identity data. */\n identity?: IdentificationData;\n /** Stringify payload. */\n data?: string;\n /** Details related to the account */\n accountInfo?: AccountInfo;\n}\n\nexport interface IdentificationData extends IdentificationDataIdOneOf {\n /**\n * ID of a site visitor that has not logged in to the site.\n * @format GUID\n */\n anonymousVisitorId?: string;\n /**\n * ID of a site visitor that has logged in to the site.\n * @format GUID\n */\n memberId?: string;\n /**\n * ID of a Wix user (site owner, contributor, etc.).\n * @format GUID\n */\n wixUserId?: string;\n /**\n * ID of an app.\n * @format GUID\n */\n appId?: string;\n /** @readonly */\n identityType?: WebhookIdentityTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface IdentificationDataIdOneOf {\n /**\n * ID of a site visitor that has not logged in to the site.\n * @format GUID\n */\n anonymousVisitorId?: string;\n /**\n * ID of a site visitor that has logged in to the site.\n * @format GUID\n */\n memberId?: string;\n /**\n * ID of a Wix user (site owner, contributor, etc.).\n * @format GUID\n */\n wixUserId?: string;\n /**\n * ID of an app.\n * @format GUID\n */\n appId?: string;\n}\n\nexport enum WebhookIdentityType {\n UNKNOWN = 'UNKNOWN',\n ANONYMOUS_VISITOR = 'ANONYMOUS_VISITOR',\n MEMBER = 'MEMBER',\n WIX_USER = 'WIX_USER',\n APP = 'APP',\n}\n\n/** @enumType */\nexport type WebhookIdentityTypeWithLiterals =\n | WebhookIdentityType\n | 'UNKNOWN'\n | 'ANONYMOUS_VISITOR'\n | 'MEMBER'\n | 'WIX_USER'\n | 'APP';\n\nexport interface AccountInfo {\n /**\n * ID of the Wix account associated with the event.\n * @format GUID\n */\n accountId?: string | null;\n /**\n * ID of the parent Wix account. Only included when accountId belongs to a child account.\n * @format GUID\n */\n parentAccountId?: string | null;\n /**\n * ID of the Wix site associated with the event. Only included when the event is tied to a specific site.\n * @format GUID\n */\n siteId?: string | null;\n}\n\nexport interface CloseTimecardRequest {\n /**\n * ID of the timecard to close.\n * @format GUID\n */\n timecardId?: string;\n /**\n * Clock-out to close the timecard with. Include its `date` (`localDate` and\n * `timeZone`), its `source`, and the `timeClockPunchId` it came from.\n * It either closes an open timecard or replaces a clock-out that the system\n * recorded automatically.\n */\n clockOut?: ClockPunch;\n /**\n * Reason for the change. Recorded in the timecard's audit trail. It isn't stored\n * on the timecard or returned in the response.\n * @maxLength 1000\n */\n reason?: string | null;\n}\n\nexport interface CloseTimecardResponse {\n /** Closed timecard. */\n timecard?: Timecard;\n}\n\nexport interface GetOpenTimecardRequest {\n /**\n * ID of the staff member whose open timecard to retrieve.\n *\n * Default: The staff member identified from the caller's session.\n * @format GUID\n */\n staffMemberId?: string | null;\n /**\n * Time zone in IANA format, for example `America/New_York`. Used to display the\n * `adjusted` dates in the returned timecard. The recorded `date` is always returned\n * as stored.\n *\n * Default: `UTC`\n * @maxLength 50\n */\n timeZone?: string | null;\n}\n\nexport interface GetOpenTimecardResponse {\n /** Retrieved open timecard. Not set when the staff member is clocked out. */\n timecard?: Timecard;\n}\n\nexport interface CreateTimecardRequest {\n /** Timecard to create. */\n timecard: Timecard;\n /**\n * Reason for the change. Recorded in the timecard's audit trail. It isn't stored\n * on the timecard or returned in the response.\n * @maxLength 1000\n */\n reason?: string | null;\n}\n\nexport interface CreateTimecardResponse {\n /** Created timecard. */\n timecard?: Timecard;\n}\n\nexport interface UpdateTimecardRequest {\n /** Timecard to update. It can contain only the fields you want to change. */\n timecard: Timecard;\n /**\n * Fields to update.\n *\n * Default: The fields included in `timecard`.\n * @internal\n */\n fieldMask?: string[];\n /**\n * Reason for the change. Recorded in the timecard's audit trail. It isn't stored\n * on the timecard or returned in the response.\n * @maxLength 1000\n */\n reason?: string | null;\n}\n\nexport interface UpdateTimecardResponse {\n /** Updated timecard. */\n timecard?: Timecard;\n}\n\nexport interface DeleteTimecardRequest {\n /**\n * ID of the timecard to delete.\n * @format GUID\n */\n timecardId: string;\n /**\n * Reason for the change. Recorded in the timecard's audit trail. It isn't stored\n * on the timecard or returned in the response.\n * @maxLength 1000\n */\n reason?: string | null;\n}\n\nexport interface DeleteTimecardResponse {}\n\nexport interface GetTimecardRequest {\n /**\n * ID of the timecard to retrieve.\n * @format GUID\n */\n timecardId: string;\n /**\n * Time zone in IANA format, for example `America/New_York`. Used to display the\n * `adjusted` dates in the returned timecard. The recorded `date` is always returned\n * as stored.\n *\n * Default: `UTC`\n * @maxLength 50\n */\n timeZone?: string | null;\n}\n\nexport interface GetTimecardResponse {\n /** Retrieved timecard. */\n timecard?: Timecard;\n}\n\nexport interface QueryTimecardsRequest {\n /**\n * Query options. You can filter by `staffMemberId`, `locationId`,\n * `clockIn.date.utcDate`, `clockOut.date.utcDate`, and `updatedDate`.\n * To report hours per staff member over a range of local dates, use List\n * Aggregated Timecards instead.\n */\n query?: CursorQuery;\n /**\n * Time zone in IANA format, for example `America/New_York`. Used to display the\n * `adjusted` dates in the returned timecards. The recorded `date` is always\n * returned as stored.\n *\n * Default: `UTC`\n * @maxLength 50\n */\n timeZone?: string | null;\n /**\n * Whether to read from the primary database, so a timecard written just before this\n * call is included.\n *\n * Default: `false`\n * @internal\n */\n consistentRead?: boolean;\n}\n\nexport interface CursorQuery extends CursorQueryPagingMethodOneOf {\n /**\n * Cursor paging options.\n *\n * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).\n */\n cursorPaging?: CursorPaging;\n /**\n * Filter object.\n *\n * Learn more about the [filter section](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#the-filter-section).\n */\n filter?: Record<string, any> | null;\n /**\n * Sort object.\n *\n * Learn more about the [sort section](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#the-sort-section).\n * @maxSize 5\n */\n sort?: Sorting[];\n}\n\n/** @oneof */\nexport interface CursorQueryPagingMethodOneOf {\n /**\n * Cursor paging options.\n *\n * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).\n */\n cursorPaging?: CursorPaging;\n}\n\nexport interface Sorting {\n /**\n * Name of the field to sort by.\n * @maxLength 512\n */\n fieldName?: string;\n /** Sort order. */\n order?: SortOrderWithLiterals;\n}\n\nexport enum SortOrder {\n ASC = 'ASC',\n DESC = 'DESC',\n}\n\n/** @enumType */\nexport type SortOrderWithLiterals = SortOrder | 'ASC' | 'DESC';\n\nexport interface CursorPaging {\n /**\n * Maximum number of items to return in the results.\n * @max 100\n */\n limit?: number | null;\n /**\n * Pointer to the next or previous page in the list of results.\n *\n * Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\n * Not relevant for the first request.\n * @maxLength 16000\n */\n cursor?: string | null;\n}\n\nexport interface QueryTimecardsResponse {\n /** Retrieved timecards. */\n timecards?: Timecard[];\n /** Metadata for the paged results. */\n pagingMetadata?: CursorPagingMetadata;\n}\n\nexport interface CursorPagingMetadata {\n /** Number of items returned in current page. */\n count?: number | null;\n /** Cursor strings that point to the next page, previous page, or both. */\n cursors?: Cursors;\n /**\n * Whether there are more pages to retrieve following the current page.\n *\n * + `true`: Another page of results can be retrieved.\n * + `false`: This is the last page.\n */\n hasNext?: boolean | null;\n}\n\nexport interface Cursors {\n /**\n * Cursor string pointing to the next page in the list of results.\n * @maxLength 16000\n */\n next?: string | null;\n /**\n * Cursor pointing to the previous page in the list of results.\n * @maxLength 16000\n */\n prev?: string | null;\n}\n\nexport interface ListAggregatedTimecardsRequest {\n /**\n * First day of the reporting range, inclusive. Interpreted in `timeZone`, so the\n * range starts at the beginning of this day. A timecard is included when its\n * clock-in falls within the range, whenever it was clocked out.\n * @format LOCAL_DATE\n */\n fromLocalDate: string | null;\n /**\n * Last day of the reporting range, inclusive. Interpreted in `timeZone`, so the\n * range ends at the end of this day.\n *\n * Supports a range of up to 92 days.\n * @format LOCAL_DATE\n */\n toLocalDate: string | null;\n /**\n * Time zone in IANA format, for example `America/New_York`. Day boundaries and the\n * range are interpreted in this time zone.\n * @maxLength 50\n */\n timeZone: string | null;\n /**\n * IDs of the locations to sum hours over. A staff member with no timecards in these\n * locations isn't listed.\n *\n * Default: All locations.\n * @maxSize 200\n * @format GUID\n */\n locationIds?: string[];\n /**\n * IDs of the staff members to return. Doesn't change the hours calculated per\n * location.\n *\n * Default: All staff members with timecards in the range.\n * @maxSize 500\n * @format GUID\n */\n staffMemberIds?: string[];\n /**\n * Cursor paging options for the staff member rows.\n *\n * Currently ignored: all rows are returned in a single page.\n */\n cursorPaging?: CursorPaging;\n /**\n * Whether to read from the primary database, so a timecard created or updated just\n * before this call is included in the hours. Reading from the primary is slower, so\n * use it only right after a write.\n *\n * Default: `false`, which reads from a replica that can be slightly out of date.\n */\n consistentRead?: boolean;\n}\n\nexport interface ListAggregatedTimecardsResponse {\n /**\n * Hours per staff member over the range and locations.\n * @maxSize 1000\n */\n aggregatedTimecards?: AggregatedTimecard[];\n /** Totals across all staff members in the result. */\n totals?: TimecardsTotals;\n /** Metadata for the paged results. */\n pagingMetadata?: CursorPagingMetadata;\n}\n\n/** Hours a staff member worked over the reporting range. */\nexport interface AggregatedTimecard {\n /**\n * ID of the staff member the hours belong to.\n * @format GUID\n */\n staffMemberId?: string;\n /**\n * Paid, unpaid, and total hours, summed over the staff member's timecards in the\n * range.\n */\n workedTime?: WorkedTime;\n /**\n * ID of the staff member's open timecard in the range. Not set when there is none.\n *\n * Open timecards aren't included in `workedTime`, so when this is set, the hours are\n * provisional. Resolve the open timecard before exporting hours for payroll.\n * @format GUID\n */\n openTimecardId?: string | null;\n /**\n * Hours by location. Only locations in the request's `locationIds` appear. Timecards\n * with no recorded location are combined into a single row with no `locationId`.\n * @maxSize 200\n */\n byLocation?: LocationWorkedTime[];\n /**\n * IDs of the timecards in `workedTime` that the system closed automatically instead of\n * the staff member. Ordered by clock-in, oldest first. Empty when there are none.\n *\n * The hours of these timecards end at the site's automatic clock-out threshold, not at\n * a time the staff member recorded, so check them before exporting hours for payroll.\n * A timecard drops out of this list after a manual correction.\n * @maxSize 200\n * @format GUID\n */\n autoClockOutTimecardIds?: string[];\n}\n\n/**\n * Hours a staff member worked at a single location. `locationId` is not set for the row\n * that combines timecards with no recorded location.\n */\nexport interface LocationWorkedTime {\n /** Paid, unpaid, and total hours at this location. */\n workedTime?: WorkedTime;\n /**\n * ID of the location the time was worked at. Not set for the row that combines\n * timecards with no recorded location. (Formerly field 1 as a required plain string.)\n * @format GUID\n */\n locationId?: string | null;\n}\n\n/** Totals across all staff members in the result. */\nexport interface TimecardsTotals {\n /** Paid, unpaid, and total hours across all staff members. */\n workedTime?: WorkedTime;\n /** Number of staff members in the result. */\n staffCount?: number;\n /**\n * Number of staff members who have an open timecard in the range. Their hours are\n * provisional.\n */\n openTimecardCount?: number;\n}\n\nexport interface Empty {}\n\n/** @docsIgnore */\nexport type GenerateStaffTokenApplicationErrors =\n | {\n code?: 'STAFF_PIN_NOT_RECOGNIZED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'KIOSK_TOKEN_INVALID';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'KIOSK_UNPAIRED';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type GetTimeClockDetailsApplicationErrors =\n | {\n code?: 'STAFF_TOKEN_INVALID';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'STAFF_TOKEN_EXPIRED';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type KioskClockInTimecardApplicationErrors =\n | {\n code?: 'KIOSK_STAFF_NOT_ALLOWED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'TIMECARD_OVERLAP';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'STAFF_TOKEN_INVALID';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'STAFF_TOKEN_EXPIRED';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type KioskClockOutTimecardApplicationErrors =\n | {\n code?: 'STAFF_NOT_CLOCKED_IN';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'STAFF_TOKEN_INVALID';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'STAFF_TOKEN_EXPIRED';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type KioskStartTimecardTaskApplicationErrors =\n | {\n code?: 'KIOSK_STAFF_NOT_ALLOWED';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'STAFF_NOT_CLOCKED_IN';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'UNKNOWN_TASK';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'STAFF_TOKEN_INVALID';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'STAFF_TOKEN_EXPIRED';\n description?: string;\n data?: Record<string, any>;\n };\n/** @docsIgnore */\nexport type KioskEndTimecardTaskApplicationErrors =\n | {\n code?: 'STAFF_NOT_CLOCKED_IN';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'NO_OPEN_TASK';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'STAFF_TOKEN_INVALID';\n description?: string;\n data?: Record<string, any>;\n }\n | {\n code?: 'STAFF_TOKEN_EXPIRED';\n description?: string;\n data?: Record<string, any>;\n };\n\n/**\n * Exchanges a staff member's PIN hash for a short-lived StaffToken.\n *\n * Call this with the device's Kiosk Token as a bearer credential. The site and\n * location are taken from that token.\n *\n * A PIN that matches no staff member and a staff member who has no PIN return the\n * same error, with no detail distinguishing them.\n * @param pin - Hash of the PIN the staff member entered, as uppercase hex, computed as\n * `SHA-256(\"Pin(symbols=[1, 2, 3, 4])|<metaSiteId>\")` over the entered digits and\n * the site ID from the device's pairing context.\n * @public\n * @documentationMaturity preview\n * @requiredField pin\n * @fqn wix.staff.kiosk.v1.KioskSessionService.GenerateStaffToken\n */\nexport async function generateStaffToken(pin: string): Promise<\n NonNullablePaths<GenerateStaffTokenResponse, `staffToken`, 0> & {\n __applicationErrorsType?: GenerateStaffTokenApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({ pin: pin });\n\n const reqOpts =\n ambassadorWixStaffTimeClockV1Timecard.generateStaffToken(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { pin: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['pin']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Retrieves the signed-in staff member's open timecard and the site's task catalog.\n *\n * Call this with the staff member's StaffToken as a bearer credential. The staff\n * member is taken from that token.\n * @public\n * @documentationMaturity preview\n * @fqn wix.staff.kiosk.v1.KioskSessionService.GetTimeClockDetails\n */\nexport async function getTimeClockDetails(): Promise<\n NonNullablePaths<\n GetTimeClockDetailsResponse,\n | `openTimecard.staffMemberId`\n | `openTimecard.clockIn.source`\n | `openTimecard.taskAssignments`\n | `openTimecard.taskAssignments.${number}.taskId`\n | `openTimecard.taskAssignments.${number}.label`\n | `openTimecard.taskAssignments.${number}.paid`\n | `tasks`\n | `tasks.${number}.label`\n | `tasks.${number}.paid`,\n 3\n > & {\n __applicationErrorsType?: GetTimeClockDetailsApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[0] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({});\n\n const reqOpts =\n ambassadorWixStaffTimeClockV1Timecard.getTimeClockDetails(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {},\n singleArgumentUnchanged: false,\n },\n []\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\n/**\n * Opens a timecard for the signed-in staff member (clock-in).\n *\n * Call this with the staff member's StaffToken as a bearer credential. Idempotent:\n * if the staff member already has an open timecard, it is returned with\n * `wasAlreadyOpen` set instead of opening a second one.\n * @public\n * @documentationMaturity preview\n * @fqn wix.staff.kiosk.v1.KioskSessionService.ClockInTimecard\n */\nexport async function kioskClockInTimecard(\n options?: KioskClockInTimecardOptions\n): Promise<\n NonNullablePaths<\n ClockInTimecardResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`\n | `wasAlreadyOpen`,\n 3\n > & {\n __applicationErrorsType?: KioskClockInTimecardApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n staffMemberId: options?.staffMemberId,\n source: options?.source,\n locationId: options?.locationId,\n });\n\n const reqOpts =\n ambassadorWixStaffTimeClockV1Timecard.kioskClockInTimecard(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n staffMemberId: '$[0].staffMemberId',\n source: '$[0].source',\n locationId: '$[0].locationId',\n },\n singleArgumentUnchanged: false,\n },\n ['options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface KioskClockInTimecardOptions {\n /**\n * ID of the staff member to clock in.\n *\n * Required when clocking in on behalf of a staff member, for example from a kiosk.\n * Ignored otherwise: the staff member is identified from the caller's session.\n * @format GUID\n */\n staffMemberId?: string | null;\n /** Source the clock-in came from. */\n source?: ClockSourceWithLiterals;\n /**\n * ID of the location of the clock-in. Not every source, such as a POS terminal,\n * provides one. (Formerly field 2 as a required plain string.)\n * @format GUID\n */\n locationId?: string | null;\n}\n\n/**\n * Closes the signed-in staff member's open timecard (clock-out). Any still-running\n * task segment is closed at the same time.\n *\n * Call this with the staff member's StaffToken as a bearer credential.\n * @public\n * @documentationMaturity preview\n * @fqn wix.staff.kiosk.v1.KioskSessionService.ClockOutTimecard\n */\nexport async function kioskClockOutTimecard(\n options?: KioskClockOutTimecardOptions\n): Promise<\n NonNullablePaths<\n ClockOutTimecardResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`,\n 3\n > & {\n __applicationErrorsType?: KioskClockOutTimecardApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n staffMemberId: options?.staffMemberId,\n source: options?.source,\n });\n\n const reqOpts =\n ambassadorWixStaffTimeClockV1Timecard.kioskClockOutTimecard(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n staffMemberId: '$[0].staffMemberId',\n source: '$[0].source',\n },\n singleArgumentUnchanged: false,\n },\n ['options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface KioskClockOutTimecardOptions {\n /**\n * ID of the staff member to clock out.\n *\n * Required when clocking out on behalf of a staff member, for example from a kiosk.\n * Ignored otherwise: the staff member is identified from the caller's session.\n * @format GUID\n */\n staffMemberId?: string | null;\n /** Source the clock-out came from. */\n source?: ClockSourceWithLiterals;\n}\n\n/**\n * Starts a task on the signed-in staff member's open timecard. If another task is\n * already running it is closed first (a task switch).\n *\n * Call this with the staff member's StaffToken as a bearer credential.\n * @public\n * @documentationMaturity preview\n * @fqn wix.staff.kiosk.v1.KioskSessionService.StartTimecardTask\n */\nexport async function kioskStartTimecardTask(\n options?: KioskStartTimecardTaskOptions\n): Promise<\n NonNullablePaths<\n StartTimecardTaskResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`,\n 3\n > & {\n __applicationErrorsType?: KioskStartTimecardTaskApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n staffMemberId: options?.staffMemberId,\n taskId: options?.taskId,\n });\n\n const reqOpts =\n ambassadorWixStaffTimeClockV1Timecard.kioskStartTimecardTask(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n staffMemberId: '$[0].staffMemberId',\n taskId: '$[0].taskId',\n },\n singleArgumentUnchanged: false,\n },\n ['options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface KioskStartTimecardTaskOptions {\n /**\n * ID of the staff member to start the task for.\n *\n * Required when starting a task on behalf of a staff member, for example from a kiosk.\n * Ignored otherwise: the staff member is identified from the caller's session.\n * @format GUID\n */\n staffMemberId?: string | null;\n /**\n * ID of the task to start, from the site's task catalog.\n * @format GUID\n */\n taskId?: string;\n}\n\n/**\n * Ends the running task on the signed-in staff member's open timecard, returning it\n * to untasked working time.\n *\n * Call this with the staff member's StaffToken as a bearer credential.\n * @public\n * @documentationMaturity preview\n * @fqn wix.staff.kiosk.v1.KioskSessionService.EndTimecardTask\n */\nexport async function kioskEndTimecardTask(\n options?: KioskEndTimecardTaskOptions\n): Promise<\n NonNullablePaths<\n EndTimecardTaskResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`,\n 3\n > & {\n __applicationErrorsType?: KioskEndTimecardTaskApplicationErrors;\n }\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n staffMemberId: options?.staffMemberId,\n });\n\n const reqOpts =\n ambassadorWixStaffTimeClockV1Timecard.kioskEndTimecardTask(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { staffMemberId: '$[0].staffMemberId' },\n singleArgumentUnchanged: false,\n },\n ['options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface KioskEndTimecardTaskOptions {\n /**\n * ID of the staff member to end the task for.\n *\n * Required when ending a task on behalf of a staff member, for example from a kiosk.\n * Ignored otherwise: the staff member is identified from the caller's session.\n * @format GUID\n */\n staffMemberId?: string | null;\n}\n\n/**\n * Opens a timecard for a staff member (clock-in).\n *\n * If the staff member already has an open timecard, from any source, no second\n * timecard is opened. The existing timecard is returned with `wasAlreadyOpen` set\n * to `true`.\n *\n * The call fails if the new timecard would overlap one the staff member already\n * has. For example, a timecard with a clock-out time in the future still covers\n * the moment of the clock-in.\n *\n * A staff member who clocks themselves in needs self clock-in to be enabled in the\n * site's time clock settings. Clocking in on behalf of a staff member, for example\n * from a kiosk, doesn't depend on that setting.\n * @public\n * @documentationMaturity preview\n * @permissionId staff:time_clock:v1:timecard:clock_in_timecard\n * @permissionId staff:time_clock:v1:timecard:clock_on_behalf\n * @applicableIdentity APP\n * @fqn wix.staff.time_clock.v1.TimecardsService.ClockInTimecard\n */\nexport async function clockInTimecard(\n options?: ClockInTimecardOptions\n): Promise<\n NonNullablePaths<\n ClockInTimecardResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`\n | `wasAlreadyOpen`,\n 3\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n staffMemberId: options?.staffMemberId,\n source: options?.source,\n locationId: options?.locationId,\n });\n\n const reqOpts =\n ambassadorWixStaffTimeClockV1Timecard.clockInTimecard(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n staffMemberId: '$[0].staffMemberId',\n source: '$[0].source',\n locationId: '$[0].locationId',\n },\n singleArgumentUnchanged: false,\n },\n ['options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface ClockInTimecardOptions {\n /**\n * ID of the staff member to clock in.\n *\n * Required when clocking in on behalf of a staff member, for example from a kiosk.\n * Ignored otherwise: the staff member is identified from the caller's session.\n * @format GUID\n */\n staffMemberId?: string | null;\n /** Source the clock-in came from. */\n source?: ClockSourceWithLiterals;\n /**\n * ID of the location of the clock-in. Not every source, such as a POS terminal,\n * provides one. (Formerly field 2 as a required plain string.)\n * @format GUID\n */\n locationId?: string | null;\n}\n\n/**\n * Closes the staff member's open timecard (clock-out).\n *\n * A task that is still running is closed at the same time. The call fails if the\n * staff member has no open timecard, so a second call right after a clock-out\n * fails.\n * @public\n * @documentationMaturity preview\n * @permissionId staff:time_clock:v1:timecard:clock_out_timecard\n * @permissionId staff:time_clock:v1:timecard:clock_on_behalf\n * @applicableIdentity APP\n * @fqn wix.staff.time_clock.v1.TimecardsService.ClockOutTimecard\n */\nexport async function clockOutTimecard(\n options?: ClockOutTimecardOptions\n): Promise<\n NonNullablePaths<\n ClockOutTimecardResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`,\n 3\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n staffMemberId: options?.staffMemberId,\n source: options?.source,\n });\n\n const reqOpts =\n ambassadorWixStaffTimeClockV1Timecard.clockOutTimecard(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n staffMemberId: '$[0].staffMemberId',\n source: '$[0].source',\n },\n singleArgumentUnchanged: false,\n },\n ['options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface ClockOutTimecardOptions {\n /**\n * ID of the staff member to clock out.\n *\n * Required when clocking out on behalf of a staff member, for example from a kiosk.\n * Ignored otherwise: the staff member is identified from the caller's session.\n * @format GUID\n */\n staffMemberId?: string | null;\n /** Source the clock-out came from. */\n source?: ClockSourceWithLiterals;\n}\n\n/**\n * Starts a task on the staff member's open timecard.\n *\n * If another task is already running, it is closed first, so switching tasks takes\n * a single call. The task's label and whether it's paid are copied from the site's\n * task catalog when the task starts. Later changes to the catalog don't affect it.\n * @public\n * @documentationMaturity preview\n * @permissionId staff:time_clock:v1:timecard:start_timecard_task\n * @fqn wix.staff.time_clock.v1.TimecardsService.StartTimecardTask\n */\nexport async function startTimecardTask(\n options?: StartTimecardTaskOptions\n): Promise<\n NonNullablePaths<\n StartTimecardTaskResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`,\n 3\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n staffMemberId: options?.staffMemberId,\n taskId: options?.taskId,\n });\n\n const reqOpts =\n ambassadorWixStaffTimeClockV1Timecard.startTimecardTask(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n staffMemberId: '$[0].staffMemberId',\n taskId: '$[0].taskId',\n },\n singleArgumentUnchanged: false,\n },\n ['options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface StartTimecardTaskOptions {\n /**\n * ID of the staff member to start the task for.\n *\n * Required when starting a task on behalf of a staff member, for example from a kiosk.\n * Ignored otherwise: the staff member is identified from the caller's session.\n * @format GUID\n */\n staffMemberId?: string | null;\n /**\n * ID of the task to start, from the site's task catalog.\n * @format GUID\n */\n taskId?: string;\n}\n\n/**\n * Ends the running task on the staff member's open timecard, returning it to\n * untasked working time.\n *\n * The call fails if no task is running.\n * @public\n * @documentationMaturity preview\n * @permissionId staff:time_clock:v1:timecard:end_timecard_task\n * @fqn wix.staff.time_clock.v1.TimecardsService.EndTimecardTask\n */\nexport async function endTimecardTask(\n options?: EndTimecardTaskOptions\n): Promise<\n NonNullablePaths<\n EndTimecardTaskResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`,\n 3\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n staffMemberId: options?.staffMemberId,\n });\n\n const reqOpts =\n ambassadorWixStaffTimeClockV1Timecard.endTimecardTask(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { staffMemberId: '$[0].staffMemberId' },\n singleArgumentUnchanged: false,\n },\n ['options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface EndTimecardTaskOptions {\n /**\n * ID of the staff member to end the task for.\n *\n * Required when ending a task on behalf of a staff member, for example from a kiosk.\n * Ignored otherwise: the staff member is identified from the caller's session.\n * @format GUID\n */\n staffMemberId?: string | null;\n}\n\n/**\n * Retrieves the staff member's open timecard.\n *\n * If the staff member is clocked out, no timecard is returned. Use this to show\n * whether a staff member is clocked in, working on a task, or clocked out.\n * @public\n * @documentationMaturity preview\n * @permissionId staff:time_clock:v1:timecard:get_open_timecard\n * @permissionId staff:time_clock:v1:timecard:read_on_behalf\n * @applicableIdentity APP\n * @fqn wix.staff.time_clock.v1.TimecardsService.GetOpenTimecard\n */\nexport async function getOpenTimecard(\n options?: GetOpenTimecardOptions\n): Promise<\n NonNullablePaths<\n GetOpenTimecardResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`,\n 3\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n staffMemberId: options?.staffMemberId,\n timeZone: options?.timeZone,\n });\n\n const reqOpts =\n ambassadorWixStaffTimeClockV1Timecard.getOpenTimecard(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n staffMemberId: '$[0].staffMemberId',\n timeZone: '$[0].timeZone',\n },\n singleArgumentUnchanged: false,\n },\n ['options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface GetOpenTimecardOptions {\n /**\n * ID of the staff member whose open timecard to retrieve.\n *\n * Default: The staff member identified from the caller's session.\n * @format GUID\n */\n staffMemberId?: string | null;\n /**\n * Time zone in IANA format, for example `America/New_York`. Used to display the\n * `adjusted` dates in the returned timecard. The recorded `date` is always returned\n * as stored.\n *\n * Default: `UTC`\n * @maxLength 50\n */\n timeZone?: string | null;\n}\n\n/**\n * Creates a timecard directly, for example for a manual entry.\n *\n * Provide a complete record: either a closed timecard with a clock-in and a\n * clock-out, or an open timecard with only a clock-in. The `source` of the punches\n * is set to `MANUAL`. You can provide a `reason`, which is recorded in the\n * timecard's audit trail. `locationId` is optional.\n * @param timecard - Timecard to create.\n * @public\n * @documentationMaturity preview\n * @requiredField timecard\n * @requiredField timecard.clockIn\n * @requiredField timecard.clockIn.date.localDate\n * @requiredField timecard.clockIn.date.timeZone\n * @requiredField timecard.staffMemberId\n * @permissionId staff:time_clock:v1:timecard:create_timecard\n * @applicableIdentity APP\n * @returns Created timecard.\n * @fqn wix.staff.time_clock.v1.TimecardsService.CreateTimecard\n */\nexport async function createTimecard(\n timecard: NonNullablePaths<\n Timecard,\n | `clockIn`\n | `clockIn.date.localDate`\n | `clockIn.date.timeZone`\n | `staffMemberId`,\n 2\n >,\n options?: CreateTimecardOptions\n): Promise<\n NonNullablePaths<\n Timecard,\n | `staffMemberId`\n | `clockIn.source`\n | `taskAssignments`\n | `taskAssignments.${number}.taskId`\n | `taskAssignments.${number}.label`\n | `taskAssignments.${number}.paid`,\n 2\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n timecard: timecard,\n reason: options?.reason,\n });\n\n const reqOpts = ambassadorWixStaffTimeClockV1Timecard.createTimecard(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)?.timecard!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { timecard: '$[0]', reason: '$[1].reason' },\n singleArgumentUnchanged: false,\n },\n ['timecard', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface CreateTimecardOptions {\n /**\n * Reason for the change. Recorded in the timecard's audit trail. It isn't stored\n * on the timecard or returned in the response.\n * @maxLength 1000\n */\n reason?: string | null;\n}\n\n/**\n * Updates a timecard, for example to correct a clock-in or clock-out time.\n *\n * Each time the timecard is updated, `revision` increments by 1. The current\n * `revision` must be passed when updating the timecard. This ensures you're working\n * with the latest timecard and prevents unintended overwrites.\n *\n * Only the fields in `fieldMask` are updated. You can provide a `reason`, which is\n * recorded in the timecard's audit trail.\n * @param _id - Timecard ID.\n * @public\n * @documentationMaturity preview\n * @requiredField _id\n * @requiredField timecard\n * @requiredField timecard.revision\n * @permissionId staff:time_clock:v1:timecard:update_timecard\n * @applicableIdentity APP\n * @returns Updated timecard.\n * @fqn wix.staff.time_clock.v1.TimecardsService.UpdateTimecard\n */\nexport async function updateTimecard(\n _id: string,\n timecard: NonNullablePaths<UpdateTimecard, `revision`, 0>,\n options?: UpdateTimecardOptions\n): Promise<\n NonNullablePaths<\n Timecard,\n | `staffMemberId`\n | `clockIn.source`\n | `taskAssignments`\n | `taskAssignments.${number}.taskId`\n | `taskAssignments.${number}.label`\n | `taskAssignments.${number}.paid`,\n 2\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[3] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n timecard: { ...timecard, id: _id },\n reason: options?.reason,\n });\n\n const reqOpts = ambassadorWixStaffTimeClockV1Timecard.updateTimecard(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)?.timecard!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: { timecard: '$[1]' },\n explicitPathsToArguments: {\n 'timecard.id': '$[0]',\n reason: '$[2].reason',\n },\n singleArgumentUnchanged: false,\n },\n ['_id', 'timecard', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface UpdateTimecard {\n /**\n * Timecard ID.\n * @format GUID\n * @readonly\n */\n _id?: string | null;\n /**\n * Revision number, which increments by 1 each time the timecard is updated.\n * To prevent conflicting changes, the current revision must be passed when\n * updating the timecard.\n *\n * Ignored when creating a timecard.\n * @readonly\n */\n revision?: string | null;\n /**\n * Date and time the timecard was created.\n * @readonly\n */\n _createdDate?: Date | null;\n /**\n * Date and time the timecard was updated.\n * @readonly\n */\n _updatedDate?: Date | null;\n /**\n * ID of the staff member the timecard belongs to.\n * @format GUID\n */\n staffMemberId?: string;\n /** Clock-in, which starts the timecard. */\n clockIn?: ClockPunch;\n /** Clock-out, which ends the timecard. Not set while the timecard is open. */\n clockOut?: ClockPunch;\n /**\n * Tasks the staff member worked on during the timecard, in order and without\n * overlap. A break is a task that is marked as unpaid.\n * @maxSize 200\n */\n taskAssignments?: TaskAssignment[];\n /**\n * ID of the location where the work was done. Not every source, such as a POS\n * terminal, provides one. (Formerly field 6 as a required plain string, see the\n * `reserved 6` note above for why this moved to a new field number.)\n * @format GUID\n */\n locationId?: string | null;\n /**\n * Time worked during this timecard. Calculated from the clock-in, clock-out, and\n * tasks whenever the timecard is read. Ignored when creating or updating a timecard.\n *\n * Each value is rounded down to whole minutes for the timecard, so the sum over several\n * timecards can be up to 2 minutes per timecard lower than the hours returned by List\n * Aggregated Timecards. Use List Aggregated Timecards for totals over a range, and\n * this field for a single shift.\n *\n * `0` while the timecard is open, which means nothing is completed yet, not that no\n * time was worked.\n * @readonly\n */\n workedTime?: WorkedTime;\n}\n\nexport interface UpdateTimecardOptions {\n /**\n * Reason for the change. Recorded in the timecard's audit trail. It isn't stored\n * on the timecard or returned in the response.\n * @maxLength 1000\n */\n reason?: string | null;\n}\n\n/**\n * Deletes a timecard.\n *\n * You can provide a `reason`, which is recorded in the timecard's audit trail.\n * @param timecardId - ID of the timecard to delete.\n * @public\n * @documentationMaturity preview\n * @requiredField timecardId\n * @permissionId staff:time_clock:v1:timecard:delete_timecard\n * @applicableIdentity APP\n * @fqn wix.staff.time_clock.v1.TimecardsService.DeleteTimecard\n */\nexport async function deleteTimecard(\n timecardId: string,\n options?: DeleteTimecardOptions\n): Promise<void> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n timecardId: timecardId,\n reason: options?.reason,\n });\n\n const reqOpts = ambassadorWixStaffTimeClockV1Timecard.deleteTimecard(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { timecardId: '$[0]', reason: '$[1].reason' },\n singleArgumentUnchanged: false,\n },\n ['timecardId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface DeleteTimecardOptions {\n /**\n * Reason for the change. Recorded in the timecard's audit trail. It isn't stored\n * on the timecard or returned in the response.\n * @maxLength 1000\n */\n reason?: string | null;\n}\n\n/**\n * Retrieves a timecard by ID.\n * @param timecardId - ID of the timecard to retrieve.\n * @public\n * @documentationMaturity preview\n * @requiredField timecardId\n * @permissionId staff:time_clock:v1:timecard:get_timecard\n * @permissionId staff:time_clock:v1:timecard:read_on_behalf\n * @applicableIdentity APP\n * @returns Retrieved timecard.\n * @fqn wix.staff.time_clock.v1.TimecardsService.GetTimecard\n */\nexport async function getTimecard(\n timecardId: string,\n options?: GetTimecardOptions\n): Promise<\n NonNullablePaths<\n Timecard,\n | `staffMemberId`\n | `clockIn.source`\n | `taskAssignments`\n | `taskAssignments.${number}.taskId`\n | `taskAssignments.${number}.label`\n | `taskAssignments.${number}.paid`,\n 2\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n timecardId: timecardId,\n timeZone: options?.timeZone,\n });\n\n const reqOpts = ambassadorWixStaffTimeClockV1Timecard.getTimecard(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)?.timecard!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n timecardId: '$[0]',\n timeZone: '$[1].timeZone',\n },\n singleArgumentUnchanged: false,\n },\n ['timecardId', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface GetTimecardOptions {\n /**\n * Time zone in IANA format, for example `America/New_York`. Used to display the\n * `adjusted` dates in the returned timecard. The recorded `date` is always returned\n * as stored.\n *\n * Default: `UTC`\n * @maxLength 50\n */\n timeZone?: string | null;\n}\n\n/**\n * Retrieves a list of timecards, given the provided paging, filtering, and sorting.\n *\n * You can filter by `staffMemberId`, `locationId`, `clockIn.date.utcDate`,\n * `clockOut.date.utcDate`, and `updatedDate`. Filtering and sorting by `updatedDate`\n * lets you keep a bookmark and retrieve only the timecards that changed since.\n *\n * To learn about working with Query methods, see [API Query Language](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language), [Sorting and Paging](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-sorting-and-paging), and [Field Projection](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-field-projection).\n * @public\n * @documentationMaturity preview\n * @permissionId staff:time_clock:v1:timecard:query_timecards\n * @permissionId staff:time_clock:v1:timecard:read_on_behalf\n * @applicableIdentity APP\n * @fqn wix.staff.time_clock.v1.TimecardsService.QueryTimecards\n */\nexport function queryTimecards(\n options?: QueryTimecardsOptions\n): TimecardsQueryBuilder {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[1] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n return queryBuilder<\n Timecard,\n 'CURSOR',\n QueryTimecardsRequest,\n QueryTimecardsResponse\n >({\n func: async (payload: QueryTimecardsRequest) => {\n const reqOpts = ambassadorWixStaffTimeClockV1Timecard.queryTimecards({\n ...payload,\n ...(options ?? {}),\n });\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n return result;\n } catch (err) {\n sideEffects?.onError?.(err);\n throw err;\n }\n },\n requestTransformer: (query: QueryTimecardsRequest['query']) => {\n const args = [query, options] as [\n QueryTimecardsRequest['query'],\n QueryTimecardsOptions\n ];\n return renameKeysFromSDKRequestToRESTRequest({\n ...args?.[1],\n query: args?.[0],\n });\n },\n responseTransformer: ({ data }: HttpResponse<QueryTimecardsResponse>) => {\n const transformedData = renameKeysFromRESTResponseToSDKResponse(\n transformPaths(data, [])\n );\n\n return {\n items: transformedData?.timecards,\n pagingMetadata: transformedData?.pagingMetadata,\n };\n },\n errorTransformer: (err: unknown) => {\n const transformedError = sdkTransformError(err, {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { query: '$[0]' },\n singleArgumentUnchanged: false,\n });\n\n throw transformedError;\n },\n pagingMethod: 'CURSOR',\n transformationPaths: {},\n });\n}\n\nexport interface QueryTimecardsOptions {\n /**\n * Time zone in IANA format, for example `America/New_York`. Used to display the\n * `adjusted` dates in the returned timecards. The recorded `date` is always\n * returned as stored.\n *\n * Default: `UTC`\n * @maxLength 50\n */\n timeZone?: string | null | undefined;\n /**\n * Whether to read from the primary database, so a timecard written just before this\n * call is included.\n *\n * Default: `false`\n * @internal\n */\n consistentRead?: boolean | undefined;\n}\n\ninterface QueryCursorResult {\n cursors: Cursors;\n hasNext: () => boolean;\n hasPrev: () => boolean;\n length: number;\n pageSize: number;\n}\n\nexport interface TimecardsQueryResult extends QueryCursorResult {\n items: Timecard[];\n query: TimecardsQueryBuilder;\n next: () => Promise<TimecardsQueryResult>;\n prev: () => Promise<TimecardsQueryResult>;\n}\n\nexport interface TimecardsQueryBuilder {\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n eq: (\n propertyName:\n | '_id'\n | '_updatedDate'\n | 'staffMemberId'\n | 'clockIn.date.utcDate'\n | 'locationId',\n value: any\n ) => TimecardsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n ne: (\n propertyName:\n | '_id'\n | '_updatedDate'\n | 'staffMemberId'\n | 'clockIn.date.utcDate'\n | 'locationId',\n value: any\n ) => TimecardsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n ge: (\n propertyName:\n | '_id'\n | '_updatedDate'\n | 'staffMemberId'\n | 'clockIn.date.utcDate'\n | 'locationId',\n value: any\n ) => TimecardsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n gt: (\n propertyName:\n | '_id'\n | '_updatedDate'\n | 'staffMemberId'\n | 'clockIn.date.utcDate'\n | 'locationId',\n value: any\n ) => TimecardsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n le: (\n propertyName:\n | '_id'\n | '_updatedDate'\n | 'staffMemberId'\n | 'clockIn.date.utcDate'\n | 'locationId',\n value: any\n ) => TimecardsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `value`.\n * @param value - Value to compare against.\n * @documentationMaturity preview\n */\n lt: (\n propertyName:\n | '_id'\n | '_updatedDate'\n | 'staffMemberId'\n | 'clockIn.date.utcDate'\n | 'locationId',\n value: any\n ) => TimecardsQueryBuilder;\n /** @param propertyName - Property whose value is compared with `string`.\n * @param string - String to compare against. Case-insensitive.\n * @documentationMaturity preview\n */\n startsWith: (\n propertyName: '_id' | 'staffMemberId' | 'locationId',\n value: string\n ) => TimecardsQueryBuilder;\n /** @documentationMaturity preview */\n in: (\n propertyName:\n | '_id'\n | '_updatedDate'\n | 'staffMemberId'\n | 'clockIn.date.utcDate'\n | 'locationId',\n value: any\n ) => TimecardsQueryBuilder;\n /** @documentationMaturity preview */\n exists: (\n propertyName:\n | '_id'\n | '_updatedDate'\n | 'staffMemberId'\n | 'clockIn.date.utcDate'\n | 'locationId',\n value: boolean\n ) => TimecardsQueryBuilder;\n /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments.\n * @documentationMaturity preview\n */\n ascending: (\n ...propertyNames: Array<\n '_id' | '_updatedDate' | 'staffMemberId' | 'locationId'\n >\n ) => TimecardsQueryBuilder;\n /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments.\n * @documentationMaturity preview\n */\n descending: (\n ...propertyNames: Array<\n '_id' | '_updatedDate' | 'staffMemberId' | 'locationId'\n >\n ) => TimecardsQueryBuilder;\n /** @param limit - Number of items to return, which is also the `pageSize` of the results object.\n * @documentationMaturity preview\n */\n limit: (limit: number) => TimecardsQueryBuilder;\n /** @param cursor - A pointer to specific record\n * @documentationMaturity preview\n */\n skipTo: (cursor: string) => TimecardsQueryBuilder;\n /** @documentationMaturity preview */\n find: () => Promise<TimecardsQueryResult>;\n}\n\n/**\n * @hidden\n * @fqn wix.staff.time_clock.v1.TimecardsService.QueryTimecards\n * @requiredField query\n */\nexport async function typedQueryTimecards(\n query: TimecardQuery,\n options?: QueryTimecardsOptions\n): Promise<\n NonNullablePaths<\n QueryTimecardsResponse,\n | `timecards`\n | `timecards.${number}.staffMemberId`\n | `timecards.${number}.clockIn.source`,\n 3\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n query: query,\n ...options,\n });\n\n const reqOpts = ambassadorWixStaffTimeClockV1Timecard.queryTimecards(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: { query: '$[0]' },\n singleArgumentUnchanged: false,\n },\n ['query', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface TimecardQuerySpec extends QuerySpec {\n paging: 'cursor';\n wql: [\n {\n fields: ['_id', 'locationId', 'staffMemberId'];\n operators: '*';\n sort: 'BOTH';\n },\n {\n fields: ['clockIn.date.utcDate', 'clockOut.date.utcDate'];\n operators: '*';\n sort: 'NONE';\n },\n {\n fields: ['_updatedDate'];\n operators: '*';\n sort: 'BOTH';\n }\n ];\n}\n\nexport type CommonQueryWithEntityContext = QuerySdkType<\n Timecard,\n TimecardQuerySpec\n>;\nexport type TimecardQuery = {\n /** \n Cursor paging options.\n\n Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging). \n */\n cursorPaging?: {\n /** \n Maximum number of items to return in the results. \n @max: 100 \n */\n limit?:\n | NonNullable<CommonQueryWithEntityContext['cursorPaging']>['limit']\n | null;\n /** \n Pointer to the next or previous page in the list of results.\n\n Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\n Not relevant for the first request. \n @maxLength: 16000 \n */\n cursor?:\n | NonNullable<CommonQueryWithEntityContext['cursorPaging']>['cursor']\n | null;\n };\n /** \n Filter object.\n\n Learn more about the [filter section](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#the-filter-section). \n */\n filter?: CommonQueryWithEntityContext['filter'] | null;\n /** \n Sort object.\n\n Learn more about the [sort section](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#the-sort-section). \n @maxSize: 5 \n */\n sort?: {\n /** \n Name of the field to sort by. \n @maxLength: 512 \n */\n fieldName?: NonNullable<\n CommonQueryWithEntityContext['sort']\n >[number]['fieldName'];\n /** \n Sort order. \n */\n order?: NonNullable<CommonQueryWithEntityContext['sort']>[number]['order'];\n }[];\n};\n\nexport const utils = {\n query: /*#__PURE__*/ createQueryUtils<\n Timecard,\n TimecardQuerySpec,\n TimecardQuery\n >(),\n};\n\n/**\n * Retrieves the hours each staff member worked over a date range.\n *\n * The response has one row per staff member with paid, unpaid, and total hours, a\n * breakdown by location, and totals across all rows.\n *\n * A timecard counts toward the day its clock-in falls on, whenever it was clocked\n * out. A shift that crosses midnight is reported whole against the day it started\n * and doesn't appear in the next day's report. You can therefore add up reports\n * over consecutive ranges without counting an overnight shift twice.\n *\n * `locationIds` limits which locations the hours are summed over, and a staff\n * member with no timecards in those locations isn't listed. `staffMemberIds` limits\n * which rows are returned and doesn't change the hours per location. Open timecards\n * aren't included in the hours. They're returned as `openTimecardId`.\n *\n * The range can span up to 92 days. Currently, all rows are returned in a single\n * page, and `cursorPaging` is ignored.\n * @param fromLocalDate - First day of the reporting range, inclusive. Interpreted in `timeZone`, so the\n * range starts at the beginning of this day. A timecard is included when its\n * clock-in falls within the range, whenever it was clocked out.\n * @public\n * @documentationMaturity preview\n * @requiredField fromLocalDate\n * @requiredField options.timeZone\n * @requiredField options.toLocalDate\n * @permissionId staff:time_clock:v1:timecard:list_aggregated_timecards\n * @permissionId staff:time_clock:v1:timecard:read_on_behalf\n * @applicableIdentity APP\n * @fqn wix.staff.time_clock.v1.TimecardsService.ListAggregatedTimecards\n */\nexport async function listAggregatedTimecards(\n fromLocalDate: string,\n options?: NonNullablePaths<\n ListAggregatedTimecardsOptions,\n `timeZone` | `toLocalDate`,\n 0\n >\n): Promise<\n NonNullablePaths<\n ListAggregatedTimecardsResponse,\n | `aggregatedTimecards`\n | `aggregatedTimecards.${number}.staffMemberId`\n | `totals.staffCount`\n | `totals.openTimecardCount`,\n 2\n >\n> {\n // @ts-ignore\n const { httpClient, sideEffects } = arguments[2] as {\n httpClient: HttpClient;\n sideEffects?: any;\n };\n\n const payload = renameKeysFromSDKRequestToRESTRequest({\n fromLocalDate: fromLocalDate,\n toLocalDate: options?.toLocalDate,\n timeZone: options?.timeZone,\n locationIds: options?.locationIds,\n staffMemberIds: options?.staffMemberIds,\n cursorPaging: options?.cursorPaging,\n consistentRead: options?.consistentRead,\n });\n\n const reqOpts =\n ambassadorWixStaffTimeClockV1Timecard.listAggregatedTimecards(payload);\n\n sideEffects?.onSiteCall?.();\n try {\n const result = await httpClient.request(reqOpts);\n sideEffects?.onSuccess?.(result);\n\n return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n } catch (err: any) {\n const transformedError = sdkTransformError(\n err,\n {\n spreadPathsToArguments: {},\n explicitPathsToArguments: {\n fromLocalDate: '$[0]',\n toLocalDate: '$[1].toLocalDate',\n timeZone: '$[1].timeZone',\n locationIds: '$[1].locationIds',\n staffMemberIds: '$[1].staffMemberIds',\n cursorPaging: '$[1].cursorPaging',\n consistentRead: '$[1].consistentRead',\n },\n singleArgumentUnchanged: false,\n },\n ['fromLocalDate', 'options']\n );\n sideEffects?.onError?.(err);\n\n throw transformedError;\n }\n}\n\nexport interface ListAggregatedTimecardsOptions {\n /**\n * Last day of the reporting range, inclusive. Interpreted in `timeZone`, so the\n * range ends at the end of this day.\n *\n * Supports a range of up to 92 days.\n * @format LOCAL_DATE\n */\n toLocalDate: string | null;\n /**\n * Time zone in IANA format, for example `America/New_York`. Day boundaries and the\n * range are interpreted in this time zone.\n * @maxLength 50\n */\n timeZone: string | null;\n /**\n * IDs of the locations to sum hours over. A staff member with no timecards in these\n * locations isn't listed.\n *\n * Default: All locations.\n * @maxSize 200\n * @format GUID\n */\n locationIds?: string[];\n /**\n * IDs of the staff members to return. Doesn't change the hours calculated per\n * location.\n *\n * Default: All staff members with timecards in the range.\n * @maxSize 500\n * @format GUID\n */\n staffMemberIds?: string[];\n /**\n * Cursor paging options for the staff member rows.\n *\n * Currently ignored: all rows are returned in a single page.\n */\n cursorPaging?: CursorPaging;\n /**\n * Whether to read from the primary database, so a timecard created or updated just\n * before this call is included in the hours. Reading from the primary is slower, so\n * use it only right after a write.\n *\n * Default: `false`, which reads from a replica that can be slightly out of date.\n */\n consistentRead?: boolean;\n}\n","import { toURLSearchParams } from '@wix/sdk-runtime/rest-modules';\nimport { transformSDKTimestampToRESTTimestamp } from '@wix/sdk-runtime/transformations/timestamp';\nimport { transformRESTTimestampToSDKTimestamp } from '@wix/sdk-runtime/transformations/timestamp';\nimport { transformSDKFieldMaskToRESTFieldMask } from '@wix/sdk-runtime/transformations/field-mask';\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\nimport { resolveUrl } from '@wix/sdk-runtime/rest-modules';\nimport { ResolveUrlOpts } from '@wix/sdk-runtime/rest-modules';\nimport { RequestOptionsFactory } from '@wix/sdk-types';\n\nconst TRANSFORM_PATHS_0 = [{ path: 'expirationDate' }];\nconst TRANSFORM_PATHS_1 = [\n { path: 'openTimecard.createdDate' },\n { path: 'openTimecard.updatedDate' },\n { path: 'openTimecard.clockIn.date.utcDate' },\n { path: 'openTimecard.clockIn.adjustedDate.utcDate' },\n { path: 'openTimecard.clockOut.date.utcDate' },\n { path: 'openTimecard.clockOut.adjustedDate.utcDate' },\n { path: 'openTimecard.taskAssignments.startDate.utcDate' },\n { path: 'openTimecard.taskAssignments.endDate.utcDate' },\n { path: 'openTimecard.taskAssignments.adjustedStartDate.utcDate' },\n { path: 'openTimecard.taskAssignments.adjustedEndDate.utcDate' },\n];\nconst TRANSFORM_PATHS_2 = [\n { path: 'timecard.createdDate' },\n { path: 'timecard.updatedDate' },\n { path: 'timecard.clockIn.date.utcDate' },\n { path: 'timecard.clockIn.adjustedDate.utcDate' },\n { path: 'timecard.clockOut.date.utcDate' },\n { path: 'timecard.clockOut.adjustedDate.utcDate' },\n { path: 'timecard.taskAssignments.startDate.utcDate' },\n { path: 'timecard.taskAssignments.endDate.utcDate' },\n { path: 'timecard.taskAssignments.adjustedStartDate.utcDate' },\n { path: 'timecard.taskAssignments.adjustedEndDate.utcDate' },\n];\nconst TRANSFORM_PATHS_3 = [{ path: 'fieldMask' }];\nconst TRANSFORM_PATHS_4 = [\n { path: 'timecards.createdDate' },\n { path: 'timecards.updatedDate' },\n { path: 'timecards.clockIn.date.utcDate' },\n { path: 'timecards.clockIn.adjustedDate.utcDate' },\n { path: 'timecards.clockOut.date.utcDate' },\n { path: 'timecards.clockOut.adjustedDate.utcDate' },\n { path: 'timecards.taskAssignments.startDate.utcDate' },\n { path: 'timecards.taskAssignments.endDate.utcDate' },\n { path: 'timecards.taskAssignments.adjustedStartDate.utcDate' },\n { path: 'timecards.taskAssignments.adjustedEndDate.utcDate' },\n];\n\nfunction resolveWixStaffTimeClockV1TimecardsServiceUrl(\n opts: Omit<ResolveUrlOpts, 'domainToMappings'>\n) {\n const domainToMappings = {\n 'manage._base_domain_': [\n {\n srcPath: '/_api/timecard',\n destPath: '',\n },\n ],\n };\n\n return resolveUrl(Object.assign(opts, { domainToMappings }));\n}\n\nfunction resolveWixStaffKioskV1KioskSessionServiceUrl(\n opts: Omit<ResolveUrlOpts, 'domainToMappings'>\n) {\n const domainToMappings = {\n 'www.wixapis.com': [\n {\n srcPath: '/v1/timecards',\n destPath: '/v1/timecards',\n },\n ],\n };\n\n return resolveUrl(Object.assign(opts, { domainToMappings }));\n}\n\nconst PACKAGE_NAME = '@wix/auto_sdk_staff-time-clock_timecards';\n\n/**\n * Exchanges a staff member's PIN hash for a short-lived StaffToken.\n *\n * Call this with the device's Kiosk Token as a bearer credential. The site and\n * location are taken from that token.\n *\n * A PIN that matches no staff member and a staff member who has no PIN return the\n * same error, with no detail distinguishing them.\n */\nexport function generateStaffToken(\n payload: object\n): RequestOptionsFactory<any> {\n function __generateStaffToken({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.staff.time_clock.v1.timecard',\n method: 'POST' as any,\n methodFqn: 'wix.staff.kiosk.v1.KioskSessionService.GenerateStaffToken',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStaffKioskV1KioskSessionServiceUrl({\n protoPath: '/v1/timecards/generate-staff-token',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: TRANSFORM_PATHS_0,\n },\n ]),\n };\n\n return metadata;\n }\n\n return __generateStaffToken;\n}\n\n/**\n * Retrieves the signed-in staff member's open timecard and the site's task catalog.\n *\n * Call this with the staff member's StaffToken as a bearer credential. The staff\n * member is taken from that token.\n */\nexport function getTimeClockDetails(\n payload: object\n): RequestOptionsFactory<any> {\n function __getTimeClockDetails({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.staff.time_clock.v1.timecard',\n method: 'POST' as any,\n methodFqn: 'wix.staff.kiosk.v1.KioskSessionService.GetTimeClockDetails',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStaffKioskV1KioskSessionServiceUrl({\n protoPath: '/v1/timecards/get-time-clock-details',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: TRANSFORM_PATHS_1,\n },\n ]),\n };\n\n return metadata;\n }\n\n return __getTimeClockDetails;\n}\n\n/**\n * Opens a timecard for the signed-in staff member (clock-in).\n *\n * Call this with the staff member's StaffToken as a bearer credential. Idempotent:\n * if the staff member already has an open timecard, it is returned with\n * `wasAlreadyOpen` set instead of opening a second one.\n */\nexport function kioskClockInTimecard(\n payload: object\n): RequestOptionsFactory<any> {\n function __kioskClockInTimecard({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.staff.time_clock.v1.timecard',\n method: 'POST' as any,\n methodFqn: 'wix.staff.kiosk.v1.KioskSessionService.ClockInTimecard',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStaffKioskV1KioskSessionServiceUrl({\n protoPath: '/v1/timecards/clock-in',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: TRANSFORM_PATHS_2,\n },\n ]),\n };\n\n return metadata;\n }\n\n return __kioskClockInTimecard;\n}\n\n/**\n * Closes the signed-in staff member's open timecard (clock-out). Any still-running\n * task segment is closed at the same time.\n *\n * Call this with the staff member's StaffToken as a bearer credential.\n */\nexport function kioskClockOutTimecard(\n payload: object\n): RequestOptionsFactory<any> {\n function __kioskClockOutTimecard({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.staff.time_clock.v1.timecard',\n method: 'POST' as any,\n methodFqn: 'wix.staff.kiosk.v1.KioskSessionService.ClockOutTimecard',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStaffKioskV1KioskSessionServiceUrl({\n protoPath: '/v1/timecards/clock-out',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: TRANSFORM_PATHS_2,\n },\n ]),\n };\n\n return metadata;\n }\n\n return __kioskClockOutTimecard;\n}\n\n/**\n * Starts a task on the signed-in staff member's open timecard. If another task is\n * already running it is closed first (a task switch).\n *\n * Call this with the staff member's StaffToken as a bearer credential.\n */\nexport function kioskStartTimecardTask(\n payload: object\n): RequestOptionsFactory<any> {\n function __kioskStartTimecardTask({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.staff.time_clock.v1.timecard',\n method: 'POST' as any,\n methodFqn: 'wix.staff.kiosk.v1.KioskSessionService.StartTimecardTask',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStaffKioskV1KioskSessionServiceUrl({\n protoPath: '/v1/timecards/start-task',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: TRANSFORM_PATHS_2,\n },\n ]),\n };\n\n return metadata;\n }\n\n return __kioskStartTimecardTask;\n}\n\n/**\n * Ends the running task on the signed-in staff member's open timecard, returning it\n * to untasked working time.\n *\n * Call this with the staff member's StaffToken as a bearer credential.\n */\nexport function kioskEndTimecardTask(\n payload: object\n): RequestOptionsFactory<any> {\n function __kioskEndTimecardTask({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.staff.time_clock.v1.timecard',\n method: 'POST' as any,\n methodFqn: 'wix.staff.kiosk.v1.KioskSessionService.EndTimecardTask',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStaffKioskV1KioskSessionServiceUrl({\n protoPath: '/v1/timecards/end-task',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: TRANSFORM_PATHS_2,\n },\n ]),\n };\n\n return metadata;\n }\n\n return __kioskEndTimecardTask;\n}\n\n/**\n * Opens a timecard for a staff member (clock-in).\n *\n * If the staff member already has an open timecard, from any source, no second\n * timecard is opened. The existing timecard is returned with `wasAlreadyOpen` set\n * to `true`.\n *\n * The call fails if the new timecard would overlap one the staff member already\n * has. For example, a timecard with a clock-out time in the future still covers\n * the moment of the clock-in.\n *\n * A staff member who clocks themselves in needs self clock-in to be enabled in the\n * site's time clock settings. Clocking in on behalf of a staff member, for example\n * from a kiosk, doesn't depend on that setting.\n */\nexport function clockInTimecard(payload: object): RequestOptionsFactory<any> {\n function __clockInTimecard({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.staff.time_clock.v1.timecard',\n method: 'POST' as any,\n methodFqn: 'wix.staff.time_clock.v1.TimecardsService.ClockInTimecard',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStaffTimeClockV1TimecardsServiceUrl({\n protoPath: '/v1/timecards/clock-in',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: TRANSFORM_PATHS_2,\n },\n ]),\n };\n\n return metadata;\n }\n\n return __clockInTimecard;\n}\n\n/**\n * Closes the staff member's open timecard (clock-out).\n *\n * A task that is still running is closed at the same time. The call fails if the\n * staff member has no open timecard, so a second call right after a clock-out\n * fails.\n */\nexport function clockOutTimecard(payload: object): RequestOptionsFactory<any> {\n function __clockOutTimecard({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.staff.time_clock.v1.timecard',\n method: 'POST' as any,\n methodFqn: 'wix.staff.time_clock.v1.TimecardsService.ClockOutTimecard',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStaffTimeClockV1TimecardsServiceUrl({\n protoPath: '/v1/timecards/clock-out',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: TRANSFORM_PATHS_2,\n },\n ]),\n };\n\n return metadata;\n }\n\n return __clockOutTimecard;\n}\n\n/**\n * Starts a task on the staff member's open timecard.\n *\n * If another task is already running, it is closed first, so switching tasks takes\n * a single call. The task's label and whether it's paid are copied from the site's\n * task catalog when the task starts. Later changes to the catalog don't affect it.\n */\nexport function startTimecardTask(payload: object): RequestOptionsFactory<any> {\n function __startTimecardTask({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.staff.time_clock.v1.timecard',\n method: 'POST' as any,\n methodFqn: 'wix.staff.time_clock.v1.TimecardsService.StartTimecardTask',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStaffTimeClockV1TimecardsServiceUrl({\n protoPath: '/v1/timecards/start-task',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: TRANSFORM_PATHS_2,\n },\n ]),\n };\n\n return metadata;\n }\n\n return __startTimecardTask;\n}\n\n/**\n * Ends the running task on the staff member's open timecard, returning it to\n * untasked working time.\n *\n * The call fails if no task is running.\n */\nexport function endTimecardTask(payload: object): RequestOptionsFactory<any> {\n function __endTimecardTask({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.staff.time_clock.v1.timecard',\n method: 'POST' as any,\n methodFqn: 'wix.staff.time_clock.v1.TimecardsService.EndTimecardTask',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStaffTimeClockV1TimecardsServiceUrl({\n protoPath: '/v1/timecards/end-task',\n data: payload,\n host,\n }),\n data: payload,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: TRANSFORM_PATHS_2,\n },\n ]),\n };\n\n return metadata;\n }\n\n return __endTimecardTask;\n}\n\n/**\n * Retrieves the staff member's open timecard.\n *\n * If the staff member is clocked out, no timecard is returned. Use this to show\n * whether a staff member is clocked in, working on a task, or clocked out.\n */\nexport function getOpenTimecard(payload: object): RequestOptionsFactory<any> {\n function __getOpenTimecard({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.staff.time_clock.v1.timecard',\n method: 'GET' as any,\n methodFqn: 'wix.staff.time_clock.v1.TimecardsService.GetOpenTimecard',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStaffTimeClockV1TimecardsServiceUrl({\n protoPath: '/v1/timecards/open',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: TRANSFORM_PATHS_2,\n },\n ]),\n };\n\n return metadata;\n }\n\n return __getOpenTimecard;\n}\n\n/**\n * Creates a timecard directly, for example for a manual entry.\n *\n * Provide a complete record: either a closed timecard with a clock-in and a\n * clock-out, or an open timecard with only a clock-in. The `source` of the punches\n * is set to `MANUAL`. You can provide a `reason`, which is recorded in the\n * timecard's audit trail. `locationId` is optional.\n */\nexport function createTimecard(payload: object): RequestOptionsFactory<any> {\n function __createTimecard({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: TRANSFORM_PATHS_2,\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.staff.time_clock.v1.timecard',\n method: 'POST' as any,\n methodFqn: 'wix.staff.time_clock.v1.TimecardsService.CreateTimecard',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStaffTimeClockV1TimecardsServiceUrl({\n protoPath: '/v1/timecards',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: TRANSFORM_PATHS_2,\n },\n ]),\n };\n\n return metadata;\n }\n\n return __createTimecard;\n}\n\n/**\n * Updates a timecard, for example to correct a clock-in or clock-out time.\n *\n * Each time the timecard is updated, `revision` increments by 1. The current\n * `revision` must be passed when updating the timecard. This ensures you're working\n * with the latest timecard and prevents unintended overwrites.\n *\n * Only the fields in `fieldMask` are updated. You can provide a `reason`, which is\n * recorded in the timecard's audit trail.\n */\nexport function updateTimecard(payload: object): RequestOptionsFactory<any> {\n function __updateTimecard({ host }: any) {\n const serializedData = transformPaths(payload, [\n {\n transformFn: transformSDKFieldMaskToRESTFieldMask,\n paths: TRANSFORM_PATHS_3,\n },\n {\n transformFn: transformSDKTimestampToRESTTimestamp,\n paths: TRANSFORM_PATHS_2,\n },\n ]);\n const metadata = {\n entityFqdn: 'wix.staff.time_clock.v1.timecard',\n method: 'PATCH' as any,\n methodFqn: 'wix.staff.time_clock.v1.TimecardsService.UpdateTimecard',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStaffTimeClockV1TimecardsServiceUrl({\n protoPath: '/v1/timecards/{timecard.id}',\n data: serializedData,\n host,\n }),\n data: serializedData,\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: TRANSFORM_PATHS_2,\n },\n ]),\n };\n\n return metadata;\n }\n\n return __updateTimecard;\n}\n\n/**\n * Deletes a timecard.\n *\n * You can provide a `reason`, which is recorded in the timecard's audit trail.\n */\nexport function deleteTimecard(payload: object): RequestOptionsFactory<any> {\n function __deleteTimecard({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.staff.time_clock.v1.timecard',\n method: 'DELETE' as any,\n methodFqn: 'wix.staff.time_clock.v1.TimecardsService.DeleteTimecard',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStaffTimeClockV1TimecardsServiceUrl({\n protoPath: '/v1/timecards/{timecardId}',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n };\n\n return metadata;\n }\n\n return __deleteTimecard;\n}\n\n/** Retrieves a timecard by ID. */\nexport function getTimecard(payload: object): RequestOptionsFactory<any> {\n function __getTimecard({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.staff.time_clock.v1.timecard',\n method: 'GET' as any,\n methodFqn: 'wix.staff.time_clock.v1.TimecardsService.GetTimecard',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStaffTimeClockV1TimecardsServiceUrl({\n protoPath: '/v1/timecards/{timecardId}',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload),\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: TRANSFORM_PATHS_2,\n },\n ]),\n };\n\n return metadata;\n }\n\n return __getTimecard;\n}\n\n/**\n * Retrieves a list of timecards, given the provided paging, filtering, and sorting.\n *\n * You can filter by `staffMemberId`, `locationId`, `clockIn.date.utcDate`,\n * `clockOut.date.utcDate`, and `updatedDate`. Filtering and sorting by `updatedDate`\n * lets you keep a bookmark and retrieve only the timecards that changed since.\n *\n * To learn about working with Query methods, see [API Query Language](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language), [Sorting and Paging](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-sorting-and-paging), and [Field Projection](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-field-projection).\n */\nexport function queryTimecards(payload: object): RequestOptionsFactory<any> {\n function __queryTimecards({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.staff.time_clock.v1.timecard',\n method: 'GET' as any,\n methodFqn: 'wix.staff.time_clock.v1.TimecardsService.QueryTimecards',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStaffTimeClockV1TimecardsServiceUrl({\n protoPath: '/v1/timecards/query',\n data: payload,\n host,\n }),\n params: toURLSearchParams(payload, true),\n transformResponse: (payload: any) =>\n transformPaths(payload, [\n {\n transformFn: transformRESTTimestampToSDKTimestamp,\n paths: TRANSFORM_PATHS_4,\n },\n ]),\n fallback: [\n {\n method: 'POST' as any,\n url: resolveWixStaffTimeClockV1TimecardsServiceUrl({\n protoPath: '/v1/timecards/query',\n data: payload,\n host,\n }),\n data: payload,\n },\n ],\n };\n\n return metadata;\n }\n\n return __queryTimecards;\n}\n\n/**\n * Retrieves the hours each staff member worked over a date range.\n *\n * The response has one row per staff member with paid, unpaid, and total hours, a\n * breakdown by location, and totals across all rows.\n *\n * A timecard counts toward the day its clock-in falls on, whenever it was clocked\n * out. A shift that crosses midnight is reported whole against the day it started\n * and doesn't appear in the next day's report. You can therefore add up reports\n * over consecutive ranges without counting an overnight shift twice.\n *\n * `locationIds` limits which locations the hours are summed over, and a staff\n * member with no timecards in those locations isn't listed. `staffMemberIds` limits\n * which rows are returned and doesn't change the hours per location. Open timecards\n * aren't included in the hours. They're returned as `openTimecardId`.\n *\n * The range can span up to 92 days. Currently, all rows are returned in a single\n * page, and `cursorPaging` is ignored.\n */\nexport function listAggregatedTimecards(\n payload: object\n): RequestOptionsFactory<any> {\n function __listAggregatedTimecards({ host }: any) {\n const metadata = {\n entityFqdn: 'wix.staff.time_clock.v1.timecard',\n method: 'POST' as any,\n methodFqn:\n 'wix.staff.time_clock.v1.TimecardsService.ListAggregatedTimecards',\n packageName: PACKAGE_NAME,\n migrationOptions: {\n optInTransformResponse: true,\n },\n url: resolveWixStaffTimeClockV1TimecardsServiceUrl({\n protoPath: '/v1/timecards/list-aggregated',\n data: payload,\n host,\n }),\n data: payload,\n };\n\n return metadata;\n }\n\n return __listAggregatedTimecards;\n}\n","import { HttpClient, NonNullablePaths } from '@wix/sdk-types';\nimport {\n ClockInTimecardOptions,\n ClockInTimecardResponse,\n ClockOutTimecardOptions,\n ClockOutTimecardResponse,\n CreateTimecardOptions,\n DeleteTimecardOptions,\n EndTimecardTaskOptions,\n EndTimecardTaskResponse,\n GenerateStaffTokenApplicationErrors,\n GenerateStaffTokenResponse,\n GetOpenTimecardOptions,\n GetOpenTimecardResponse,\n GetTimeClockDetailsApplicationErrors,\n GetTimeClockDetailsResponse,\n GetTimecardOptions,\n KioskClockInTimecardApplicationErrors,\n KioskClockInTimecardOptions,\n KioskClockOutTimecardApplicationErrors,\n KioskClockOutTimecardOptions,\n KioskEndTimecardTaskApplicationErrors,\n KioskEndTimecardTaskOptions,\n KioskStartTimecardTaskApplicationErrors,\n KioskStartTimecardTaskOptions,\n ListAggregatedTimecardsOptions,\n ListAggregatedTimecardsResponse,\n QueryTimecardsOptions,\n QueryTimecardsResponse,\n StartTimecardTaskOptions,\n StartTimecardTaskResponse,\n Timecard,\n TimecardQuery,\n TimecardsQueryBuilder,\n UpdateTimecard,\n UpdateTimecardOptions,\n clockInTimecard as universalClockInTimecard,\n clockOutTimecard as universalClockOutTimecard,\n createTimecard as universalCreateTimecard,\n deleteTimecard as universalDeleteTimecard,\n endTimecardTask as universalEndTimecardTask,\n generateStaffToken as universalGenerateStaffToken,\n getOpenTimecard as universalGetOpenTimecard,\n getTimeClockDetails as universalGetTimeClockDetails,\n getTimecard as universalGetTimecard,\n kioskClockInTimecard as universalKioskClockInTimecard,\n kioskClockOutTimecard as universalKioskClockOutTimecard,\n kioskEndTimecardTask as universalKioskEndTimecardTask,\n kioskStartTimecardTask as universalKioskStartTimecardTask,\n listAggregatedTimecards as universalListAggregatedTimecards,\n queryTimecards as universalQueryTimecards,\n startTimecardTask as universalStartTimecardTask,\n typedQueryTimecards as universalTypedQueryTimecards,\n updateTimecard as universalUpdateTimecard,\n} from './staff-time-clock-v1-timecard-timecards.universal.js';\n\nexport const __metadata = { PACKAGE_NAME: '@wix/staff-time-clock' };\n\nexport function generateStaffToken(\n httpClient: HttpClient\n): GenerateStaffTokenSignature {\n return (pin: string) =>\n universalGenerateStaffToken(\n pin,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface GenerateStaffTokenSignature {\n /**\n * Exchanges a staff member's PIN hash for a short-lived StaffToken.\n *\n * Call this with the device's Kiosk Token as a bearer credential. The site and\n * location are taken from that token.\n *\n * A PIN that matches no staff member and a staff member who has no PIN return the\n * same error, with no detail distinguishing them.\n * @param - Hash of the PIN the staff member entered, as uppercase hex, computed as\n * `SHA-256(\"Pin(symbols=[1, 2, 3, 4])|<metaSiteId>\")` over the entered digits and\n * the site ID from the device's pairing context.\n */\n (pin: string): Promise<\n NonNullablePaths<GenerateStaffTokenResponse, `staffToken`, 0> & {\n __applicationErrorsType?: GenerateStaffTokenApplicationErrors;\n }\n >;\n}\n\nexport function getTimeClockDetails(\n httpClient: HttpClient\n): GetTimeClockDetailsSignature {\n return () =>\n universalGetTimeClockDetails(\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface GetTimeClockDetailsSignature {\n /**\n * Retrieves the signed-in staff member's open timecard and the site's task catalog.\n *\n * Call this with the staff member's StaffToken as a bearer credential. The staff\n * member is taken from that token.\n */\n (): Promise<\n NonNullablePaths<\n GetTimeClockDetailsResponse,\n | `openTimecard.staffMemberId`\n | `openTimecard.clockIn.source`\n | `openTimecard.taskAssignments`\n | `openTimecard.taskAssignments.${number}.taskId`\n | `openTimecard.taskAssignments.${number}.label`\n | `openTimecard.taskAssignments.${number}.paid`\n | `tasks`\n | `tasks.${number}.label`\n | `tasks.${number}.paid`,\n 3\n > & {\n __applicationErrorsType?: GetTimeClockDetailsApplicationErrors;\n }\n >;\n}\n\nexport function kioskClockInTimecard(\n httpClient: HttpClient\n): KioskClockInTimecardSignature {\n return (options?: KioskClockInTimecardOptions) =>\n universalKioskClockInTimecard(\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface KioskClockInTimecardSignature {\n /**\n * Opens a timecard for the signed-in staff member (clock-in).\n *\n * Call this with the staff member's StaffToken as a bearer credential. Idempotent:\n * if the staff member already has an open timecard, it is returned with\n * `wasAlreadyOpen` set instead of opening a second one.\n */\n (options?: KioskClockInTimecardOptions): Promise<\n NonNullablePaths<\n ClockInTimecardResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`\n | `wasAlreadyOpen`,\n 3\n > & {\n __applicationErrorsType?: KioskClockInTimecardApplicationErrors;\n }\n >;\n}\n\nexport function kioskClockOutTimecard(\n httpClient: HttpClient\n): KioskClockOutTimecardSignature {\n return (options?: KioskClockOutTimecardOptions) =>\n universalKioskClockOutTimecard(\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface KioskClockOutTimecardSignature {\n /**\n * Closes the signed-in staff member's open timecard (clock-out). Any still-running\n * task segment is closed at the same time.\n *\n * Call this with the staff member's StaffToken as a bearer credential.\n */\n (options?: KioskClockOutTimecardOptions): Promise<\n NonNullablePaths<\n ClockOutTimecardResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`,\n 3\n > & {\n __applicationErrorsType?: KioskClockOutTimecardApplicationErrors;\n }\n >;\n}\n\nexport function kioskStartTimecardTask(\n httpClient: HttpClient\n): KioskStartTimecardTaskSignature {\n return (options?: KioskStartTimecardTaskOptions) =>\n universalKioskStartTimecardTask(\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface KioskStartTimecardTaskSignature {\n /**\n * Starts a task on the signed-in staff member's open timecard. If another task is\n * already running it is closed first (a task switch).\n *\n * Call this with the staff member's StaffToken as a bearer credential.\n */\n (options?: KioskStartTimecardTaskOptions): Promise<\n NonNullablePaths<\n StartTimecardTaskResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`,\n 3\n > & {\n __applicationErrorsType?: KioskStartTimecardTaskApplicationErrors;\n }\n >;\n}\n\nexport function kioskEndTimecardTask(\n httpClient: HttpClient\n): KioskEndTimecardTaskSignature {\n return (options?: KioskEndTimecardTaskOptions) =>\n universalKioskEndTimecardTask(\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface KioskEndTimecardTaskSignature {\n /**\n * Ends the running task on the signed-in staff member's open timecard, returning it\n * to untasked working time.\n *\n * Call this with the staff member's StaffToken as a bearer credential.\n */\n (options?: KioskEndTimecardTaskOptions): Promise<\n NonNullablePaths<\n EndTimecardTaskResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`,\n 3\n > & {\n __applicationErrorsType?: KioskEndTimecardTaskApplicationErrors;\n }\n >;\n}\n\nexport function clockInTimecard(\n httpClient: HttpClient\n): ClockInTimecardSignature {\n return (options?: ClockInTimecardOptions) =>\n universalClockInTimecard(\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface ClockInTimecardSignature {\n /**\n * Opens a timecard for a staff member (clock-in).\n *\n * If the staff member already has an open timecard, from any source, no second\n * timecard is opened. The existing timecard is returned with `wasAlreadyOpen` set\n * to `true`.\n *\n * The call fails if the new timecard would overlap one the staff member already\n * has. For example, a timecard with a clock-out time in the future still covers\n * the moment of the clock-in.\n *\n * A staff member who clocks themselves in needs self clock-in to be enabled in the\n * site's time clock settings. Clocking in on behalf of a staff member, for example\n * from a kiosk, doesn't depend on that setting.\n */\n (options?: ClockInTimecardOptions): Promise<\n NonNullablePaths<\n ClockInTimecardResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`\n | `wasAlreadyOpen`,\n 3\n >\n >;\n}\n\nexport function clockOutTimecard(\n httpClient: HttpClient\n): ClockOutTimecardSignature {\n return (options?: ClockOutTimecardOptions) =>\n universalClockOutTimecard(\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface ClockOutTimecardSignature {\n /**\n * Closes the staff member's open timecard (clock-out).\n *\n * A task that is still running is closed at the same time. The call fails if the\n * staff member has no open timecard, so a second call right after a clock-out\n * fails.\n */\n (options?: ClockOutTimecardOptions): Promise<\n NonNullablePaths<\n ClockOutTimecardResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`,\n 3\n >\n >;\n}\n\nexport function startTimecardTask(\n httpClient: HttpClient\n): StartTimecardTaskSignature {\n return (options?: StartTimecardTaskOptions) =>\n universalStartTimecardTask(\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface StartTimecardTaskSignature {\n /**\n * Starts a task on the staff member's open timecard.\n *\n * If another task is already running, it is closed first, so switching tasks takes\n * a single call. The task's label and whether it's paid are copied from the site's\n * task catalog when the task starts. Later changes to the catalog don't affect it.\n */\n (options?: StartTimecardTaskOptions): Promise<\n NonNullablePaths<\n StartTimecardTaskResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`,\n 3\n >\n >;\n}\n\nexport function endTimecardTask(\n httpClient: HttpClient\n): EndTimecardTaskSignature {\n return (options?: EndTimecardTaskOptions) =>\n universalEndTimecardTask(\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface EndTimecardTaskSignature {\n /**\n * Ends the running task on the staff member's open timecard, returning it to\n * untasked working time.\n *\n * The call fails if no task is running.\n */\n (options?: EndTimecardTaskOptions): Promise<\n NonNullablePaths<\n EndTimecardTaskResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`,\n 3\n >\n >;\n}\n\nexport function getOpenTimecard(\n httpClient: HttpClient\n): GetOpenTimecardSignature {\n return (options?: GetOpenTimecardOptions) =>\n universalGetOpenTimecard(\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface GetOpenTimecardSignature {\n /**\n * Retrieves the staff member's open timecard.\n *\n * If the staff member is clocked out, no timecard is returned. Use this to show\n * whether a staff member is clocked in, working on a task, or clocked out.\n */\n (options?: GetOpenTimecardOptions): Promise<\n NonNullablePaths<\n GetOpenTimecardResponse,\n | `timecard.staffMemberId`\n | `timecard.clockIn.source`\n | `timecard.taskAssignments`\n | `timecard.taskAssignments.${number}.taskId`\n | `timecard.taskAssignments.${number}.label`\n | `timecard.taskAssignments.${number}.paid`,\n 3\n >\n >;\n}\n\nexport function createTimecard(\n httpClient: HttpClient\n): CreateTimecardSignature {\n return (\n timecard: NonNullablePaths<\n Timecard,\n | `clockIn`\n | `clockIn.date.localDate`\n | `clockIn.date.timeZone`\n | `staffMemberId`,\n 2\n >,\n options?: CreateTimecardOptions\n ) =>\n universalCreateTimecard(\n timecard,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface CreateTimecardSignature {\n /**\n * Creates a timecard directly, for example for a manual entry.\n *\n * Provide a complete record: either a closed timecard with a clock-in and a\n * clock-out, or an open timecard with only a clock-in. The `source` of the punches\n * is set to `MANUAL`. You can provide a `reason`, which is recorded in the\n * timecard's audit trail. `locationId` is optional.\n * @param - Timecard to create.\n * @returns Created timecard.\n */\n (\n timecard: NonNullablePaths<\n Timecard,\n | `clockIn`\n | `clockIn.date.localDate`\n | `clockIn.date.timeZone`\n | `staffMemberId`,\n 2\n >,\n options?: CreateTimecardOptions\n ): Promise<\n NonNullablePaths<\n Timecard,\n | `staffMemberId`\n | `clockIn.source`\n | `taskAssignments`\n | `taskAssignments.${number}.taskId`\n | `taskAssignments.${number}.label`\n | `taskAssignments.${number}.paid`,\n 2\n >\n >;\n}\n\nexport function updateTimecard(\n httpClient: HttpClient\n): UpdateTimecardSignature {\n return (\n _id: string,\n timecard: NonNullablePaths<UpdateTimecard, `revision`, 0>,\n options?: UpdateTimecardOptions\n ) =>\n universalUpdateTimecard(\n _id,\n timecard,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface UpdateTimecardSignature {\n /**\n * Updates a timecard, for example to correct a clock-in or clock-out time.\n *\n * Each time the timecard is updated, `revision` increments by 1. The current\n * `revision` must be passed when updating the timecard. This ensures you're working\n * with the latest timecard and prevents unintended overwrites.\n *\n * Only the fields in `fieldMask` are updated. You can provide a `reason`, which is\n * recorded in the timecard's audit trail.\n * @param - Timecard ID.\n * @returns Updated timecard.\n */\n (\n _id: string,\n timecard: NonNullablePaths<UpdateTimecard, `revision`, 0>,\n options?: UpdateTimecardOptions\n ): Promise<\n NonNullablePaths<\n Timecard,\n | `staffMemberId`\n | `clockIn.source`\n | `taskAssignments`\n | `taskAssignments.${number}.taskId`\n | `taskAssignments.${number}.label`\n | `taskAssignments.${number}.paid`,\n 2\n >\n >;\n}\n\nexport function deleteTimecard(\n httpClient: HttpClient\n): DeleteTimecardSignature {\n return (timecardId: string, options?: DeleteTimecardOptions) =>\n universalDeleteTimecard(\n timecardId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface DeleteTimecardSignature {\n /**\n * Deletes a timecard.\n *\n * You can provide a `reason`, which is recorded in the timecard's audit trail.\n * @param - ID of the timecard to delete.\n */\n (timecardId: string, options?: DeleteTimecardOptions): Promise<void>;\n}\n\nexport function getTimecard(httpClient: HttpClient): GetTimecardSignature {\n return (timecardId: string, options?: GetTimecardOptions) =>\n universalGetTimecard(\n timecardId,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface GetTimecardSignature {\n /**\n * Retrieves a timecard by ID.\n * @param - ID of the timecard to retrieve.\n * @returns Retrieved timecard.\n */\n (timecardId: string, options?: GetTimecardOptions): Promise<\n NonNullablePaths<\n Timecard,\n | `staffMemberId`\n | `clockIn.source`\n | `taskAssignments`\n | `taskAssignments.${number}.taskId`\n | `taskAssignments.${number}.label`\n | `taskAssignments.${number}.paid`,\n 2\n >\n >;\n}\n\nexport function queryTimecards(\n httpClient: HttpClient\n): QueryTimecardsSignature {\n return (options?: QueryTimecardsOptions) =>\n universalQueryTimecards(\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface QueryTimecardsSignature {\n /**\n * Retrieves a list of timecards, given the provided paging, filtering, and sorting.\n *\n * You can filter by `staffMemberId`, `locationId`, `clockIn.date.utcDate`,\n * `clockOut.date.utcDate`, and `updatedDate`. Filtering and sorting by `updatedDate`\n * lets you keep a bookmark and retrieve only the timecards that changed since.\n *\n * To learn about working with Query methods, see [API Query Language](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-the-wix-api-query-language), [Sorting and Paging](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-sorting-and-paging), and [Field Projection](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/data-retrieval/about-field-projection).\n */\n (options?: QueryTimecardsOptions): TimecardsQueryBuilder;\n}\n\nexport function typedQueryTimecards(\n httpClient: HttpClient\n): TypedQueryTimecardsSignature {\n return (query: TimecardQuery, options?: QueryTimecardsOptions) =>\n universalTypedQueryTimecards(\n query,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface TypedQueryTimecardsSignature {\n /** */\n (query: TimecardQuery, options?: QueryTimecardsOptions): Promise<\n NonNullablePaths<\n QueryTimecardsResponse,\n | `timecards`\n | `timecards.${number}.staffMemberId`\n | `timecards.${number}.clockIn.source`,\n 3\n >\n >;\n}\n\nexport function listAggregatedTimecards(\n httpClient: HttpClient\n): ListAggregatedTimecardsSignature {\n return (\n fromLocalDate: string,\n options?: NonNullablePaths<\n ListAggregatedTimecardsOptions,\n `timeZone` | `toLocalDate`,\n 0\n >\n ) =>\n universalListAggregatedTimecards(\n fromLocalDate,\n options,\n // @ts-ignore\n { httpClient }\n );\n}\n\ninterface ListAggregatedTimecardsSignature {\n /**\n * Retrieves the hours each staff member worked over a date range.\n *\n * The response has one row per staff member with paid, unpaid, and total hours, a\n * breakdown by location, and totals across all rows.\n *\n * A timecard counts toward the day its clock-in falls on, whenever it was clocked\n * out. A shift that crosses midnight is reported whole against the day it started\n * and doesn't appear in the next day's report. You can therefore add up reports\n * over consecutive ranges without counting an overnight shift twice.\n *\n * `locationIds` limits which locations the hours are summed over, and a staff\n * member with no timecards in those locations isn't listed. `staffMemberIds` limits\n * which rows are returned and doesn't change the hours per location. Open timecards\n * aren't included in the hours. They're returned as `openTimecardId`.\n *\n * The range can span up to 92 days. Currently, all rows are returned in a single\n * page, and `cursorPaging` is ignored.\n * @param - First day of the reporting range, inclusive. Interpreted in `timeZone`, so the\n * range starts at the beginning of this day. A timecard is included when its\n * clock-in falls within the range, whenever it was clocked out.\n */\n (\n fromLocalDate: string,\n options?: NonNullablePaths<\n ListAggregatedTimecardsOptions,\n `timeZone` | `toLocalDate`,\n 0\n >\n ): Promise<\n NonNullablePaths<\n ListAggregatedTimecardsResponse,\n | `aggregatedTimecards`\n | `aggregatedTimecards.${number}.staffMemberId`\n | `totals.staffCount`\n | `totals.openTimecardCount`,\n 2\n >\n >;\n}\n\nexport {\n AccountInfo,\n ActionEvent,\n AggregatedTimecard,\n ClockInTimecardOptions,\n ClockInTimecardRequest,\n ClockInTimecardResponse,\n ClockOutTimecardOptions,\n ClockOutTimecardRequest,\n ClockOutTimecardResponse,\n ClockPunch,\n ClockSource,\n CloseTimecardRequest,\n CloseTimecardResponse,\n CompletePinSetupRequest,\n CompletePinSetupResponse,\n CreateTimecardOptions,\n CreateTimecardRequest,\n CreateTimecardResponse,\n CursorPaging,\n CursorPagingMetadata,\n CursorQuery,\n CursorQueryPagingMethodOneOf,\n Cursors,\n DeleteTimecardOptions,\n DeleteTimecardRequest,\n DeleteTimecardResponse,\n DomainEvent,\n DomainEventBodyOneOf,\n Empty,\n EndTimecardTaskOptions,\n EndTimecardTaskRequest,\n EndTimecardTaskResponse,\n EntityCreatedEvent,\n EntityDeletedEvent,\n EntityUpdatedEvent,\n GenerateStaffTokenRequest,\n GenerateStaffTokenResponse,\n GetOpenTimecardOptions,\n GetOpenTimecardRequest,\n GetOpenTimecardResponse,\n GetTimeClockDetailsRequest,\n GetTimeClockDetailsResponse,\n GetTimecardOptions,\n GetTimecardRequest,\n GetTimecardResponse,\n IdentificationData,\n IdentificationDataIdOneOf,\n KioskClockInTimecardOptions,\n KioskClockOutTimecardOptions,\n KioskEndTimecardTaskOptions,\n KioskStartTimecardTaskOptions,\n ListAggregatedTimecardsOptions,\n ListAggregatedTimecardsRequest,\n ListAggregatedTimecardsResponse,\n LocationWorkedTime,\n MessageEnvelope,\n QueryTimecardsOptions,\n QueryTimecardsRequest,\n QueryTimecardsResponse,\n RestoreInfo,\n SendPinSetupLinkRequest,\n SendPinSetupLinkResponse,\n SortOrder,\n Sorting,\n StartTimecardTaskOptions,\n StartTimecardTaskRequest,\n StartTimecardTaskResponse,\n Task,\n TaskAssignment,\n Timecard,\n TimecardQuerySpec,\n TimecardsQueryBuilder,\n TimecardsQueryResult,\n TimecardsTotals,\n UpdateTimecard,\n UpdateTimecardOptions,\n UpdateTimecardRequest,\n UpdateTimecardResponse,\n ValidatePinSetupLinkRequest,\n ValidatePinSetupLinkResponse,\n WebhookIdentityType,\n WorkedTime,\n ZonedDate,\n utils,\n} from './staff-time-clock-v1-timecard-timecards.universal.js';\n","import {\n generateStaffToken as publicGenerateStaffToken,\n getTimeClockDetails as publicGetTimeClockDetails,\n kioskClockInTimecard as publicKioskClockInTimecard,\n kioskClockOutTimecard as publicKioskClockOutTimecard,\n kioskStartTimecardTask as publicKioskStartTimecardTask,\n kioskEndTimecardTask as publicKioskEndTimecardTask,\n clockInTimecard as publicClockInTimecard,\n clockOutTimecard as publicClockOutTimecard,\n startTimecardTask as publicStartTimecardTask,\n endTimecardTask as publicEndTimecardTask,\n getOpenTimecard as publicGetOpenTimecard,\n createTimecard as publicCreateTimecard,\n updateTimecard as publicUpdateTimecard,\n deleteTimecard as publicDeleteTimecard,\n getTimecard as publicGetTimecard,\n queryTimecards as publicQueryTimecards,\n typedQueryTimecards as publicTypedQueryTimecards,\n listAggregatedTimecards as publicListAggregatedTimecards,\n} from './staff-time-clock-v1-timecard-timecards.public.js';\nimport { createRESTModule } from '@wix/sdk-runtime/rest-modules';\nimport { BuildRESTFunction, MaybeContext } from '@wix/sdk-types';\nimport { HttpClient } from '@wix/sdk-types';\nimport { createQueryOverloadRouter } from '@wix/sdk-runtime/query-method-router';\nimport {\n QueryTimecardsOptions,\n TimecardQuery,\n TimecardsQueryBuilder,\n typedQueryTimecards as universalTypedQueryTimecards,\n} from './staff-time-clock-v1-timecard-timecards.universal.js';\n\nfunction customQueryTimecards(httpClient: HttpClient) {\n const router = /*#__PURE__*/ createQueryOverloadRouter({\n builderQueryFunction: (options?: QueryTimecardsOptions) =>\n publicQueryTimecards(httpClient)(options),\n typedQueryFunction: (\n query: TimecardQuery,\n options?: QueryTimecardsOptions\n ) => publicTypedQueryTimecards(httpClient)(query, options),\n hasOptionsParameter: true,\n });\n\n function overloadedQuery(\n query: TimecardQuery,\n options?: QueryTimecardsOptions\n ): ReturnType<typeof universalTypedQueryTimecards>;\n function overloadedQuery(\n options?: QueryTimecardsOptions\n ): TimecardsQueryBuilder;\n function overloadedQuery(\n queryOrOptions?: TimecardQuery | QueryTimecardsOptions,\n options?: QueryTimecardsOptions\n ): any {\n return router(...arguments);\n }\n\n return overloadedQuery;\n}\n\nexport const generateStaffToken: MaybeContext<\n BuildRESTFunction<typeof publicGenerateStaffToken> &\n typeof publicGenerateStaffToken\n> = /*#__PURE__*/ createRESTModule(publicGenerateStaffToken);\nexport const getTimeClockDetails: MaybeContext<\n BuildRESTFunction<typeof publicGetTimeClockDetails> &\n typeof publicGetTimeClockDetails\n> = /*#__PURE__*/ createRESTModule(publicGetTimeClockDetails);\nexport const kioskClockInTimecard: MaybeContext<\n BuildRESTFunction<typeof publicKioskClockInTimecard> &\n typeof publicKioskClockInTimecard\n> = /*#__PURE__*/ createRESTModule(publicKioskClockInTimecard);\nexport const kioskClockOutTimecard: MaybeContext<\n BuildRESTFunction<typeof publicKioskClockOutTimecard> &\n typeof publicKioskClockOutTimecard\n> = /*#__PURE__*/ createRESTModule(publicKioskClockOutTimecard);\nexport const kioskStartTimecardTask: MaybeContext<\n BuildRESTFunction<typeof publicKioskStartTimecardTask> &\n typeof publicKioskStartTimecardTask\n> = /*#__PURE__*/ createRESTModule(publicKioskStartTimecardTask);\nexport const kioskEndTimecardTask: MaybeContext<\n BuildRESTFunction<typeof publicKioskEndTimecardTask> &\n typeof publicKioskEndTimecardTask\n> = /*#__PURE__*/ createRESTModule(publicKioskEndTimecardTask);\nexport const clockInTimecard: MaybeContext<\n BuildRESTFunction<typeof publicClockInTimecard> & typeof publicClockInTimecard\n> = /*#__PURE__*/ createRESTModule(publicClockInTimecard);\nexport const clockOutTimecard: MaybeContext<\n BuildRESTFunction<typeof publicClockOutTimecard> &\n typeof publicClockOutTimecard\n> = /*#__PURE__*/ createRESTModule(publicClockOutTimecard);\nexport const startTimecardTask: MaybeContext<\n BuildRESTFunction<typeof publicStartTimecardTask> &\n typeof publicStartTimecardTask\n> = /*#__PURE__*/ createRESTModule(publicStartTimecardTask);\nexport const endTimecardTask: MaybeContext<\n BuildRESTFunction<typeof publicEndTimecardTask> & typeof publicEndTimecardTask\n> = /*#__PURE__*/ createRESTModule(publicEndTimecardTask);\nexport const getOpenTimecard: MaybeContext<\n BuildRESTFunction<typeof publicGetOpenTimecard> & typeof publicGetOpenTimecard\n> = /*#__PURE__*/ createRESTModule(publicGetOpenTimecard);\nexport const createTimecard: MaybeContext<\n BuildRESTFunction<typeof publicCreateTimecard> & typeof publicCreateTimecard\n> = /*#__PURE__*/ createRESTModule(publicCreateTimecard);\nexport const updateTimecard: MaybeContext<\n BuildRESTFunction<typeof publicUpdateTimecard> & typeof publicUpdateTimecard\n> = /*#__PURE__*/ createRESTModule(publicUpdateTimecard);\nexport const deleteTimecard: MaybeContext<\n BuildRESTFunction<typeof publicDeleteTimecard> & typeof publicDeleteTimecard\n> = /*#__PURE__*/ createRESTModule(publicDeleteTimecard);\nexport const getTimecard: MaybeContext<\n BuildRESTFunction<typeof publicGetTimecard> & typeof publicGetTimecard\n> = /*#__PURE__*/ createRESTModule(publicGetTimecard);\nexport const listAggregatedTimecards: MaybeContext<\n BuildRESTFunction<typeof publicListAggregatedTimecards> &\n typeof publicListAggregatedTimecards\n> = /*#__PURE__*/ createRESTModule(publicListAggregatedTimecards);\nexport const queryTimecards: MaybeContext<\n BuildRESTFunction<typeof customQueryTimecards> & typeof customQueryTimecards\n> = /*#__PURE__*/ createRESTModule(customQueryTimecards);\n\nexport {\n ClockSource,\n WebhookIdentityType,\n SortOrder,\n} from './staff-time-clock-v1-timecard-timecards.universal.js';\nexport {\n Timecard,\n ClockPunch,\n ZonedDate,\n TaskAssignment,\n WorkedTime,\n GenerateStaffTokenRequest,\n GenerateStaffTokenResponse,\n GetTimeClockDetailsRequest,\n GetTimeClockDetailsResponse,\n Task,\n ClockInTimecardRequest,\n ClockInTimecardResponse,\n ClockOutTimecardRequest,\n ClockOutTimecardResponse,\n StartTimecardTaskRequest,\n StartTimecardTaskResponse,\n EndTimecardTaskRequest,\n EndTimecardTaskResponse,\n SendPinSetupLinkRequest,\n SendPinSetupLinkResponse,\n CompletePinSetupRequest,\n CompletePinSetupResponse,\n ValidatePinSetupLinkRequest,\n ValidatePinSetupLinkResponse,\n DomainEvent,\n DomainEventBodyOneOf,\n EntityCreatedEvent,\n RestoreInfo,\n EntityUpdatedEvent,\n EntityDeletedEvent,\n ActionEvent,\n MessageEnvelope,\n IdentificationData,\n IdentificationDataIdOneOf,\n AccountInfo,\n CloseTimecardRequest,\n CloseTimecardResponse,\n GetOpenTimecardRequest,\n GetOpenTimecardResponse,\n CreateTimecardRequest,\n CreateTimecardResponse,\n UpdateTimecardRequest,\n UpdateTimecardResponse,\n DeleteTimecardRequest,\n DeleteTimecardResponse,\n GetTimecardRequest,\n GetTimecardResponse,\n QueryTimecardsRequest,\n CursorQuery,\n CursorQueryPagingMethodOneOf,\n Sorting,\n CursorPaging,\n QueryTimecardsResponse,\n CursorPagingMetadata,\n Cursors,\n ListAggregatedTimecardsRequest,\n ListAggregatedTimecardsResponse,\n AggregatedTimecard,\n LocationWorkedTime,\n TimecardsTotals,\n Empty,\n KioskClockInTimecardOptions,\n KioskClockOutTimecardOptions,\n KioskStartTimecardTaskOptions,\n KioskEndTimecardTaskOptions,\n ClockInTimecardOptions,\n ClockOutTimecardOptions,\n StartTimecardTaskOptions,\n EndTimecardTaskOptions,\n GetOpenTimecardOptions,\n CreateTimecardOptions,\n UpdateTimecard,\n UpdateTimecardOptions,\n DeleteTimecardOptions,\n GetTimecardOptions,\n QueryTimecardsOptions,\n TimecardsQueryResult,\n TimecardsQueryBuilder,\n TimecardQuerySpec,\n ListAggregatedTimecardsOptions,\n} from './staff-time-clock-v1-timecard-timecards.universal.js';\nexport { utils } from './staff-time-clock-v1-timecard-timecards.universal.js';\nexport {\n ClockSourceWithLiterals,\n WebhookIdentityTypeWithLiterals,\n SortOrderWithLiterals,\n GenerateStaffTokenApplicationErrors,\n GetTimeClockDetailsApplicationErrors,\n KioskClockInTimecardApplicationErrors,\n KioskClockOutTimecardApplicationErrors,\n KioskStartTimecardTaskApplicationErrors,\n KioskEndTimecardTaskApplicationErrors,\n CommonQueryWithEntityContext,\n TimecardQuery,\n} from './staff-time-clock-v1-timecard-timecards.universal.js';\n"],"mappings":"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","names":["clockInTimecard","clockOutTimecard","createTimecard","deleteTimecard","endTimecardTask","generateStaffToken","getOpenTimecard","getTimeClockDetails","getTimecard","kioskClockInTimecard","kioskClockOutTimecard","kioskEndTimecardTask","kioskStartTimecardTask","listAggregatedTimecards","queryTimecards","startTimecardTask","updateTimecard","import_timestamp","import_rest_modules","payload","import_transform_paths","ClockSource","WebhookIdentityType","SortOrder","generateStaffToken","sdkTransformError","getTimeClockDetails","kioskClockInTimecard","kioskClockOutTimecard","kioskStartTimecardTask","kioskEndTimecardTask","clockInTimecard","clockOutTimecard","startTimecardTask","endTimecardTask","getOpenTimecard","createTimecard","updateTimecard","deleteTimecard","getTimecard","queryTimecards","listAggregatedTimecards","generateStaffToken","getTimeClockDetails","kioskClockInTimecard","kioskClockOutTimecard","kioskStartTimecardTask","kioskEndTimecardTask","clockInTimecard","clockOutTimecard","startTimecardTask","endTimecardTask","getOpenTimecard","createTimecard","updateTimecard","deleteTimecard","getTimecard","queryTimecards","typedQueryTimecards","listAggregatedTimecards","import_rest_modules","queryTimecards","typedQueryTimecards","generateStaffToken","getTimeClockDetails","kioskClockInTimecard","kioskClockOutTimecard","kioskStartTimecardTask","kioskEndTimecardTask","clockInTimecard","clockOutTimecard","startTimecardTask","endTimecardTask","getOpenTimecard","createTimecard","updateTimecard","deleteTimecard","getTimecard","listAggregatedTimecards"]}