@withpotter/lib 0.13.0-next.101
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__fixtures__/demo-content-server.json +484 -0
- package/dist/accessibility-context.d.ts +27 -0
- package/dist/accessibility-context.js +107 -0
- package/dist/accessibility-context.js.map +1 -0
- package/dist/active-workspace.d.ts +45 -0
- package/dist/active-workspace.js +34 -0
- package/dist/active-workspace.js.map +1 -0
- package/dist/admin-account-officer-api.d.ts +13 -0
- package/dist/admin-account-officer-api.js +12 -0
- package/dist/admin-account-officer-api.js.map +1 -0
- package/dist/admin-account-types.d.ts +122 -0
- package/dist/admin-account-types.js +1 -0
- package/dist/admin-account-types.js.map +1 -0
- package/dist/admin-adoption-api.d.ts +35 -0
- package/dist/admin-adoption-api.js +16 -0
- package/dist/admin-adoption-api.js.map +1 -0
- package/dist/admin-api.d.ts +1219 -0
- package/dist/admin-api.js +325 -0
- package/dist/admin-api.js.map +1 -0
- package/dist/admin-case-api.d.ts +32 -0
- package/dist/admin-case-api.js +63 -0
- package/dist/admin-case-api.js.map +1 -0
- package/dist/admin-case-types.d.ts +166 -0
- package/dist/admin-case-types.js +1 -0
- package/dist/admin-case-types.js.map +1 -0
- package/dist/admin-compliance-api.d.ts +31 -0
- package/dist/admin-compliance-api.js +20 -0
- package/dist/admin-compliance-api.js.map +1 -0
- package/dist/admin-country-api.d.ts +28 -0
- package/dist/admin-country-api.js +9 -0
- package/dist/admin-country-api.js.map +1 -0
- package/dist/admin-currency-types.d.ts +138 -0
- package/dist/admin-currency-types.js +1 -0
- package/dist/admin-currency-types.js.map +1 -0
- package/dist/admin-feedback-api.d.ts +215 -0
- package/dist/admin-feedback-api.js +63 -0
- package/dist/admin-feedback-api.js.map +1 -0
- package/dist/admin-inbox-seen.d.ts +22 -0
- package/dist/admin-inbox-seen.js +47 -0
- package/dist/admin-inbox-seen.js.map +1 -0
- package/dist/admin-ledger-api.d.ts +85 -0
- package/dist/admin-ledger-api.js +30 -0
- package/dist/admin-ledger-api.js.map +1 -0
- package/dist/admin-money-api.d.ts +127 -0
- package/dist/admin-money-api.js +125 -0
- package/dist/admin-money-api.js.map +1 -0
- package/dist/admin-newsletter-contacts-api.d.ts +70 -0
- package/dist/admin-newsletter-contacts-api.js +20 -0
- package/dist/admin-newsletter-contacts-api.js.map +1 -0
- package/dist/admin-newsletter-deliveries-api.d.ts +47 -0
- package/dist/admin-newsletter-deliveries-api.js +16 -0
- package/dist/admin-newsletter-deliveries-api.js.map +1 -0
- package/dist/admin-newsletters-api.d.ts +118 -0
- package/dist/admin-newsletters-api.js +47 -0
- package/dist/admin-newsletters-api.js.map +1 -0
- package/dist/admin-pos-api.d.ts +16 -0
- package/dist/admin-pos-api.js +35 -0
- package/dist/admin-pos-api.js.map +1 -0
- package/dist/admin-pos-query.d.ts +43 -0
- package/dist/admin-pos-query.js +55 -0
- package/dist/admin-pos-query.js.map +1 -0
- package/dist/admin-pos-types.d.ts +122 -0
- package/dist/admin-pos-types.js +1 -0
- package/dist/admin-pos-types.js.map +1 -0
- package/dist/admin-pricing-api.d.ts +88 -0
- package/dist/admin-pricing-api.js +66 -0
- package/dist/admin-pricing-api.js.map +1 -0
- package/dist/admin-readiness-api.d.ts +25 -0
- package/dist/admin-readiness-api.js +39 -0
- package/dist/admin-readiness-api.js.map +1 -0
- package/dist/admin-sales-api.d.ts +124 -0
- package/dist/admin-sales-api.js +41 -0
- package/dist/admin-sales-api.js.map +1 -0
- package/dist/admin-saved-replies-api.d.ts +35 -0
- package/dist/admin-saved-replies-api.js +70 -0
- package/dist/admin-saved-replies-api.js.map +1 -0
- package/dist/admin-service-operations-api.d.ts +142 -0
- package/dist/admin-service-operations-api.js +52 -0
- package/dist/admin-service-operations-api.js.map +1 -0
- package/dist/admin-signatures-api.d.ts +57 -0
- package/dist/admin-signatures-api.js +15 -0
- package/dist/admin-signatures-api.js.map +1 -0
- package/dist/admin-support-analytics-api.d.ts +36 -0
- package/dist/admin-support-analytics-api.js +71 -0
- package/dist/admin-support-analytics-api.js.map +1 -0
- package/dist/admin-tenant-setup-types.d.ts +85 -0
- package/dist/admin-tenant-setup-types.js +1 -0
- package/dist/admin-tenant-setup-types.js.map +1 -0
- package/dist/admin-tenants-query.d.ts +14 -0
- package/dist/admin-tenants-query.js +17 -0
- package/dist/admin-tenants-query.js.map +1 -0
- package/dist/analytics/PostHogProvider.d.ts +25 -0
- package/dist/analytics/PostHogProvider.js +44 -0
- package/dist/analytics/PostHogProvider.js.map +1 -0
- package/dist/analytics/index.d.ts +1 -0
- package/dist/analytics/index.js +11 -0
- package/dist/analytics/index.js.map +1 -0
- package/dist/analytics.d.ts +1 -0
- package/dist/analytics.js +1 -0
- package/dist/api/abandoned-cart.d.ts +18 -0
- package/dist/api/abandoned-cart.js +68 -0
- package/dist/api/abandoned-cart.js.map +1 -0
- package/dist/api/accounts.d.ts +176 -0
- package/dist/api/accounts.js +194 -0
- package/dist/api/accounts.js.map +1 -0
- package/dist/api/analytics-patterns.d.ts +18 -0
- package/dist/api/analytics-patterns.js +52 -0
- package/dist/api/analytics-patterns.js.map +1 -0
- package/dist/api/analytics.d.ts +143 -0
- package/dist/api/analytics.js +379 -0
- package/dist/api/analytics.js.map +1 -0
- package/dist/api/assignee-prefs.d.ts +7 -0
- package/dist/api/assignee-prefs.js +17 -0
- package/dist/api/assignee-prefs.js.map +1 -0
- package/dist/api/automations.d.ts +73 -0
- package/dist/api/automations.js +102 -0
- package/dist/api/automations.js.map +1 -0
- package/dist/api/behaviors.d.ts +15 -0
- package/dist/api/behaviors.js +15 -0
- package/dist/api/behaviors.js.map +1 -0
- package/dist/api/bio.d.ts +7 -0
- package/dist/api/bio.js +17 -0
- package/dist/api/bio.js.map +1 -0
- package/dist/api/booking-calendar.d.ts +14 -0
- package/dist/api/booking-calendar.js +33 -0
- package/dist/api/booking-calendar.js.map +1 -0
- package/dist/api/bookings.d.ts +199 -0
- package/dist/api/bookings.js +284 -0
- package/dist/api/bookings.js.map +1 -0
- package/dist/api/business-devices.d.ts +108 -0
- package/dist/api/business-devices.js +139 -0
- package/dist/api/business-devices.js.map +1 -0
- package/dist/api/business-locations.d.ts +26 -0
- package/dist/api/business-locations.js +39 -0
- package/dist/api/business-locations.js.map +1 -0
- package/dist/api/cache-bus.d.ts +56 -0
- package/dist/api/cache-bus.js +18 -0
- package/dist/api/cache-bus.js.map +1 -0
- package/dist/api/calendar-sync.d.ts +49 -0
- package/dist/api/calendar-sync.js +50 -0
- package/dist/api/calendar-sync.js.map +1 -0
- package/dist/api/campaign-initiatives.d.ts +115 -0
- package/dist/api/campaign-initiatives.js +42 -0
- package/dist/api/campaign-initiatives.js.map +1 -0
- package/dist/api/campaigns.d.ts +89 -0
- package/dist/api/campaigns.js +100 -0
- package/dist/api/campaigns.js.map +1 -0
- package/dist/api/capabilities.d.ts +12 -0
- package/dist/api/capabilities.js +16 -0
- package/dist/api/capabilities.js.map +1 -0
- package/dist/api/commerce.d.ts +19 -0
- package/dist/api/commerce.js +31 -0
- package/dist/api/commerce.js.map +1 -0
- package/dist/api/communications.d.ts +166 -0
- package/dist/api/communications.js +141 -0
- package/dist/api/communications.js.map +1 -0
- package/dist/api/connect.d.ts +72 -0
- package/dist/api/connect.js +50 -0
- package/dist/api/connect.js.map +1 -0
- package/dist/api/content.d.ts +146 -0
- package/dist/api/content.js +187 -0
- package/dist/api/content.js.map +1 -0
- package/dist/api/conversations.d.ts +79 -0
- package/dist/api/conversations.js +41 -0
- package/dist/api/conversations.js.map +1 -0
- package/dist/api/core.d.ts +62 -0
- package/dist/api/core.js +223 -0
- package/dist/api/core.js.map +1 -0
- package/dist/api/credentials.d.ts +65 -0
- package/dist/api/credentials.js +48 -0
- package/dist/api/credentials.js.map +1 -0
- package/dist/api/credits.d.ts +96 -0
- package/dist/api/credits.js +24 -0
- package/dist/api/credits.js.map +1 -0
- package/dist/api/crm-analytics.d.ts +10 -0
- package/dist/api/crm-analytics.js +22 -0
- package/dist/api/crm-analytics.js.map +1 -0
- package/dist/api/crm-segments.d.ts +14 -0
- package/dist/api/crm-segments.js +42 -0
- package/dist/api/crm-segments.js.map +1 -0
- package/dist/api/deliveries.d.ts +99 -0
- package/dist/api/deliveries.js +37 -0
- package/dist/api/deliveries.js.map +1 -0
- package/dist/api/demo-content.d.ts +104 -0
- package/dist/api/demo-content.js +36 -0
- package/dist/api/demo-content.js.map +1 -0
- package/dist/api/device-shifts.d.ts +56 -0
- package/dist/api/device-shifts.js +50 -0
- package/dist/api/device-shifts.js.map +1 -0
- package/dist/api/devices.d.ts +6 -0
- package/dist/api/devices.js +10 -0
- package/dist/api/devices.js.map +1 -0
- package/dist/api/digital-files.d.ts +22 -0
- package/dist/api/digital-files.js +55 -0
- package/dist/api/digital-files.js.map +1 -0
- package/dist/api/discounts.d.ts +29 -0
- package/dist/api/discounts.js +46 -0
- package/dist/api/discounts.js.map +1 -0
- package/dist/api/disputes.d.ts +47 -0
- package/dist/api/disputes.js +42 -0
- package/dist/api/disputes.js.map +1 -0
- package/dist/api/feature-locked.d.ts +11 -0
- package/dist/api/feature-locked.js +18 -0
- package/dist/api/feature-locked.js.map +1 -0
- package/dist/api/feedback-prompts.d.ts +45 -0
- package/dist/api/feedback-prompts.js +85 -0
- package/dist/api/feedback-prompts.js.map +1 -0
- package/dist/api/feedback.d.ts +254 -0
- package/dist/api/feedback.js +108 -0
- package/dist/api/feedback.js.map +1 -0
- package/dist/api/finance.d.ts +199 -0
- package/dist/api/finance.js +203 -0
- package/dist/api/finance.js.map +1 -0
- package/dist/api/gallery.d.ts +30 -0
- package/dist/api/gallery.js +48 -0
- package/dist/api/gallery.js.map +1 -0
- package/dist/api/geo.d.ts +18 -0
- package/dist/api/geo.js +19 -0
- package/dist/api/geo.js.map +1 -0
- package/dist/api/giftcards.d.ts +63 -0
- package/dist/api/giftcards.js +63 -0
- package/dist/api/giftcards.js.map +1 -0
- package/dist/api/hardware-orders.d.ts +40 -0
- package/dist/api/hardware-orders.js +37 -0
- package/dist/api/hardware-orders.js.map +1 -0
- package/dist/api/index.d.ts +71 -0
- package/dist/api/index.js +78 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/inquiries.d.ts +92 -0
- package/dist/api/inquiries.js +129 -0
- package/dist/api/inquiries.js.map +1 -0
- package/dist/api/inventory.d.ts +133 -0
- package/dist/api/inventory.js +203 -0
- package/dist/api/inventory.js.map +1 -0
- package/dist/api/invite-body.d.ts +19 -0
- package/dist/api/invite-body.js +8 -0
- package/dist/api/invite-body.js.map +1 -0
- package/dist/api/invoices.d.ts +19 -0
- package/dist/api/invoices.js +80 -0
- package/dist/api/invoices.js.map +1 -0
- package/dist/api/locations.d.ts +15 -0
- package/dist/api/locations.js +30 -0
- package/dist/api/locations.js.map +1 -0
- package/dist/api/loyalty.d.ts +68 -0
- package/dist/api/loyalty.js +112 -0
- package/dist/api/loyalty.js.map +1 -0
- package/dist/api/marketing-consent.d.ts +36 -0
- package/dist/api/marketing-consent.js +11 -0
- package/dist/api/marketing-consent.js.map +1 -0
- package/dist/api/marketing-suppressions.d.ts +81 -0
- package/dist/api/marketing-suppressions.js +65 -0
- package/dist/api/marketing-suppressions.js.map +1 -0
- package/dist/api/members.d.ts +79 -0
- package/dist/api/members.js +148 -0
- package/dist/api/members.js.map +1 -0
- package/dist/api/merchant-notifications.d.ts +27 -0
- package/dist/api/merchant-notifications.js +41 -0
- package/dist/api/merchant-notifications.js.map +1 -0
- package/dist/api/merchant-referrals.d.ts +23 -0
- package/dist/api/merchant-referrals.js +10 -0
- package/dist/api/merchant-referrals.js.map +1 -0
- package/dist/api/merchant-subscriptions.d.ts +117 -0
- package/dist/api/merchant-subscriptions.js +113 -0
- package/dist/api/merchant-subscriptions.js.map +1 -0
- package/dist/api/misc.d.ts +4 -0
- package/dist/api/misc.js +24 -0
- package/dist/api/misc.js.map +1 -0
- package/dist/api/odoo.d.ts +102 -0
- package/dist/api/odoo.js +36 -0
- package/dist/api/odoo.js.map +1 -0
- package/dist/api/onboarding.d.ts +48 -0
- package/dist/api/onboarding.js +78 -0
- package/dist/api/onboarding.js.map +1 -0
- package/dist/api/orders.d.ts +153 -0
- package/dist/api/orders.js +303 -0
- package/dist/api/orders.js.map +1 -0
- package/dist/api/organizations.d.ts +14 -0
- package/dist/api/organizations.js +19 -0
- package/dist/api/organizations.js.map +1 -0
- package/dist/api/packages.d.ts +16 -0
- package/dist/api/packages.js +25 -0
- package/dist/api/packages.js.map +1 -0
- package/dist/api/pages.d.ts +79 -0
- package/dist/api/pages.js +125 -0
- package/dist/api/pages.js.map +1 -0
- package/dist/api/payables.d.ts +34 -0
- package/dist/api/payables.js +70 -0
- package/dist/api/payables.js.map +1 -0
- package/dist/api/plan-refusal.d.ts +21 -0
- package/dist/api/plan-refusal.js +28 -0
- package/dist/api/plan-refusal.js.map +1 -0
- package/dist/api/pos.d.ts +66 -0
- package/dist/api/pos.js +115 -0
- package/dist/api/pos.js.map +1 -0
- package/dist/api/potter.d.ts +114 -0
- package/dist/api/potter.js +88 -0
- package/dist/api/potter.js.map +1 -0
- package/dist/api/push.d.ts +25 -0
- package/dist/api/push.js +23 -0
- package/dist/api/push.js.map +1 -0
- package/dist/api/referrals.d.ts +10 -0
- package/dist/api/referrals.js +16 -0
- package/dist/api/referrals.js.map +1 -0
- package/dist/api/resource-categories.d.ts +35 -0
- package/dist/api/resource-categories.js +76 -0
- package/dist/api/resource-categories.js.map +1 -0
- package/dist/api/resources.d.ts +54 -0
- package/dist/api/resources.js +92 -0
- package/dist/api/resources.js.map +1 -0
- package/dist/api/reviews.d.ts +18 -0
- package/dist/api/reviews.js +46 -0
- package/dist/api/reviews.js.map +1 -0
- package/dist/api/riders.d.ts +70 -0
- package/dist/api/riders.js +24 -0
- package/dist/api/riders.js.map +1 -0
- package/dist/api/role-permissions.d.ts +25 -0
- package/dist/api/role-permissions.js +47 -0
- package/dist/api/role-permissions.js.map +1 -0
- package/dist/api/sales-channels.d.ts +234 -0
- package/dist/api/sales-channels.js +119 -0
- package/dist/api/sales-channels.js.map +1 -0
- package/dist/api/service-missing.d.ts +10 -0
- package/dist/api/service-missing.js +19 -0
- package/dist/api/service-missing.js.map +1 -0
- package/dist/api/session-refresh.d.ts +18 -0
- package/dist/api/session-refresh.js +37 -0
- package/dist/api/session-refresh.js.map +1 -0
- package/dist/api/session-scope.d.ts +35 -0
- package/dist/api/session-scope.js +53 -0
- package/dist/api/session-scope.js.map +1 -0
- package/dist/api/settlements.d.ts +106 -0
- package/dist/api/settlements.js +114 -0
- package/dist/api/settlements.js.map +1 -0
- package/dist/api/share-links.d.ts +46 -0
- package/dist/api/share-links.js +25 -0
- package/dist/api/share-links.js.map +1 -0
- package/dist/api/shift-notes.d.ts +19 -0
- package/dist/api/shift-notes.js +13 -0
- package/dist/api/shift-notes.js.map +1 -0
- package/dist/api/shipping.d.ts +42 -0
- package/dist/api/shipping.js +53 -0
- package/dist/api/shipping.js.map +1 -0
- package/dist/api/social-sources.d.ts +58 -0
- package/dist/api/social-sources.js +23 -0
- package/dist/api/social-sources.js.map +1 -0
- package/dist/api/tabs.d.ts +14 -0
- package/dist/api/tabs.js +39 -0
- package/dist/api/tabs.js.map +1 -0
- package/dist/api/team.d.ts +112 -0
- package/dist/api/team.js +144 -0
- package/dist/api/team.js.map +1 -0
- package/dist/api/template-settings.d.ts +26 -0
- package/dist/api/template-settings.js +36 -0
- package/dist/api/template-settings.js.map +1 -0
- package/dist/api/templates.d.ts +21 -0
- package/dist/api/templates.js +25 -0
- package/dist/api/templates.js.map +1 -0
- package/dist/api/tenant-slug.d.ts +13 -0
- package/dist/api/tenant-slug.js +18 -0
- package/dist/api/tenant-slug.js.map +1 -0
- package/dist/api/tenant.d.ts +33 -0
- package/dist/api/tenant.js +51 -0
- package/dist/api/tenant.js.map +1 -0
- package/dist/api/types/analytics-attribution.d.ts +43 -0
- package/dist/api/types/analytics-attribution.js +1 -0
- package/dist/api/types/analytics-attribution.js.map +1 -0
- package/dist/api/types/analytics.d.ts +465 -0
- package/dist/api/types/analytics.js +1 -0
- package/dist/api/types/analytics.js.map +1 -0
- package/dist/api/types/auth.d.ts +206 -0
- package/dist/api/types/auth.js +7 -0
- package/dist/api/types/auth.js.map +1 -0
- package/dist/api/types/automation-flow.d.ts +199 -0
- package/dist/api/types/automation-flow.js +1 -0
- package/dist/api/types/automation-flow.js.map +1 -0
- package/dist/api/types/bookings.d.ts +226 -0
- package/dist/api/types/bookings.js +1 -0
- package/dist/api/types/bookings.js.map +1 -0
- package/dist/api/types/campaigns.d.ts +262 -0
- package/dist/api/types/campaigns.js +1 -0
- package/dist/api/types/campaigns.js.map +1 -0
- package/dist/api/types/catalog.d.ts +273 -0
- package/dist/api/types/catalog.js +1 -0
- package/dist/api/types/catalog.js.map +1 -0
- package/dist/api/types/collections.d.ts +189 -0
- package/dist/api/types/collections.js +1 -0
- package/dist/api/types/collections.js.map +1 -0
- package/dist/api/types/crm.d.ts +264 -0
- package/dist/api/types/crm.js +1 -0
- package/dist/api/types/crm.js.map +1 -0
- package/dist/api/types/customers.d.ts +269 -0
- package/dist/api/types/customers.js +1 -0
- package/dist/api/types/customers.js.map +1 -0
- package/dist/api/types/devices.d.ts +390 -0
- package/dist/api/types/devices.js +1 -0
- package/dist/api/types/devices.js.map +1 -0
- package/dist/api/types/discounts.d.ts +237 -0
- package/dist/api/types/discounts.js +1 -0
- package/dist/api/types/discounts.js.map +1 -0
- package/dist/api/types/filters.d.ts +258 -0
- package/dist/api/types/filters.js +1 -0
- package/dist/api/types/filters.js.map +1 -0
- package/dist/api/types/index.d.ts +31 -0
- package/dist/api/types/index.js +25 -0
- package/dist/api/types/index.js.map +1 -0
- package/dist/api/types/inquiries.d.ts +266 -0
- package/dist/api/types/inquiries.js +1 -0
- package/dist/api/types/inquiries.js.map +1 -0
- package/dist/api/types/locations.d.ts +208 -0
- package/dist/api/types/locations.js +1 -0
- package/dist/api/types/locations.js.map +1 -0
- package/dist/api/types/onboarding.d.ts +311 -0
- package/dist/api/types/onboarding.js +1 -0
- package/dist/api/types/onboarding.js.map +1 -0
- package/dist/api/types/operations.d.ts +136 -0
- package/dist/api/types/operations.js +1 -0
- package/dist/api/types/operations.js.map +1 -0
- package/dist/api/types/orders.d.ts +242 -0
- package/dist/api/types/orders.js +1 -0
- package/dist/api/types/orders.js.map +1 -0
- package/dist/api/types/payables.d.ts +140 -0
- package/dist/api/types/payables.js +1 -0
- package/dist/api/types/payables.js.map +1 -0
- package/dist/api/types/pos.d.ts +121 -0
- package/dist/api/types/pos.js +5 -0
- package/dist/api/types/pos.js.map +1 -0
- package/dist/api/types/record-analytics.d.ts +95 -0
- package/dist/api/types/record-analytics.js +1 -0
- package/dist/api/types/record-analytics.js.map +1 -0
- package/dist/api/types/sales-patterns.d.ts +58 -0
- package/dist/api/types/sales-patterns.js +1 -0
- package/dist/api/types/sales-patterns.js.map +1 -0
- package/dist/api/types/tabs.d.ts +210 -0
- package/dist/api/types/tabs.js +1 -0
- package/dist/api/types/tabs.js.map +1 -0
- package/dist/api/types/templates.d.ts +398 -0
- package/dist/api/types/templates.js +1 -0
- package/dist/api/types/templates.js.map +1 -0
- package/dist/api/types/waitlist.d.ts +324 -0
- package/dist/api/types/waitlist.js +1 -0
- package/dist/api/types/waitlist.js.map +1 -0
- package/dist/api/types.d.ts +1 -0
- package/dist/api/types.js +1 -0
- package/dist/api/unserved-routes.d.ts +4 -0
- package/dist/api/unserved-routes.js +15 -0
- package/dist/api/unserved-routes.js.map +1 -0
- package/dist/api/waitlist.d.ts +80 -0
- package/dist/api/waitlist.js +85 -0
- package/dist/api/waitlist.js.map +1 -0
- package/dist/api.d.ts +1 -0
- package/dist/api.js +1 -0
- package/dist/app-name.d.ts +29 -0
- package/dist/app-name.js +11 -0
- package/dist/app-name.js.map +1 -0
- package/dist/arrival.d.ts +48 -0
- package/dist/arrival.js +34 -0
- package/dist/arrival.js.map +1 -0
- package/dist/auth-context.d.ts +90 -0
- package/dist/auth-context.js +732 -0
- package/dist/auth-context.js.map +1 -0
- package/dist/auth-session.d.ts +1 -0
- package/dist/auth-session.js +25 -0
- package/dist/auth-session.js.map +1 -0
- package/dist/bank-phone.d.ts +2 -0
- package/dist/bank-phone.js +12 -0
- package/dist/bank-phone.js.map +1 -0
- package/dist/behavior-config-types.d.ts +49 -0
- package/dist/behavior-config-types.js +1 -0
- package/dist/behavior-config-types.js.map +1 -0
- package/dist/behavior-context.d.ts +15 -0
- package/dist/behavior-context.js +38 -0
- package/dist/behavior-context.js.map +1 -0
- package/dist/behavior-fields.d.ts +41 -0
- package/dist/behavior-fields.js +20 -0
- package/dist/behavior-fields.js.map +1 -0
- package/dist/blog/__fixtures__/paste-hygiene.d.ts +7 -0
- package/dist/blog/__fixtures__/paste-hygiene.js +36 -0
- package/dist/blog/__fixtures__/paste-hygiene.js.map +1 -0
- package/dist/blog/density.d.ts +65 -0
- package/dist/blog/density.js +126 -0
- package/dist/blog/density.js.map +1 -0
- package/dist/blog/paste-hygiene.d.ts +3 -0
- package/dist/blog/paste-hygiene.js +168 -0
- package/dist/blog/paste-hygiene.js.map +1 -0
- package/dist/booking-location-label.d.ts +10 -0
- package/dist/booking-location-label.js +24 -0
- package/dist/booking-location-label.js.map +1 -0
- package/dist/booking-meeting-link.d.ts +48 -0
- package/dist/booking-meeting-link.js +40 -0
- package/dist/booking-meeting-link.js.map +1 -0
- package/dist/box-channels.d.ts +22 -0
- package/dist/box-channels.js +16 -0
- package/dist/box-channels.js.map +1 -0
- package/dist/box-delivery.d.ts +10 -0
- package/dist/box-delivery.js +5 -0
- package/dist/box-delivery.js.map +1 -0
- package/dist/box-inbox.d.ts +11 -0
- package/dist/box-inbox.js +5 -0
- package/dist/box-inbox.js.map +1 -0
- package/dist/box-letting.d.ts +14 -0
- package/dist/box-letting.js +7 -0
- package/dist/box-letting.js.map +1 -0
- package/dist/box-mark-paths.d.ts +28 -0
- package/dist/box-mark-paths.js +23 -0
- package/dist/box-mark-paths.js.map +1 -0
- package/dist/box-media.d.ts +9 -0
- package/dist/box-media.js +5 -0
- package/dist/box-media.js.map +1 -0
- package/dist/box-products.d.ts +16 -0
- package/dist/box-products.js +9 -0
- package/dist/box-products.js.map +1 -0
- package/dist/box-splits.d.ts +12 -0
- package/dist/box-splits.js +5 -0
- package/dist/box-splits.js.map +1 -0
- package/dist/brand.d.ts +26 -0
- package/dist/brand.js +22 -0
- package/dist/brand.js.map +1 -0
- package/dist/business-categories.d.ts +50 -0
- package/dist/business-categories.js +378 -0
- package/dist/business-categories.js.map +1 -0
- package/dist/business-intents.d.ts +31 -0
- package/dist/business-intents.js +142 -0
- package/dist/business-intents.js.map +1 -0
- package/dist/capability-context.d.ts +63 -0
- package/dist/capability-context.js +84 -0
- package/dist/capability-context.js.map +1 -0
- package/dist/carriers.d.ts +83 -0
- package/dist/carriers.js +124 -0
- package/dist/carriers.js.map +1 -0
- package/dist/commerce-build/api.d.ts +29 -0
- package/dist/commerce-build/api.js +152 -0
- package/dist/commerce-build/api.js.map +1 -0
- package/dist/commerce-build/contracts-profile.d.ts +83 -0
- package/dist/commerce-build/contracts-profile.js +1 -0
- package/dist/commerce-build/contracts-profile.js.map +1 -0
- package/dist/commerce-build/contracts-spec.d.ts +217 -0
- package/dist/commerce-build/contracts-spec.js +1 -0
- package/dist/commerce-build/contracts-spec.js.map +1 -0
- package/dist/commerce-build/contracts.d.ts +2 -0
- package/dist/commerce-build/contracts.js +1 -0
- package/dist/commerce-build/contracts.js.map +1 -0
- package/dist/commerce-build/launch-state.d.ts +20 -0
- package/dist/commerce-build/launch-state.js +72 -0
- package/dist/commerce-build/launch-state.js.map +1 -0
- package/dist/commerce-build/profile-utils.d.ts +5 -0
- package/dist/commerce-build/profile-utils.js +14 -0
- package/dist/commerce-build/profile-utils.js.map +1 -0
- package/dist/commerce-build/setup-flow.d.ts +10 -0
- package/dist/commerce-build/setup-flow.js +24 -0
- package/dist/commerce-build/setup-flow.js.map +1 -0
- package/dist/commerce-build/setup-session.d.ts +26 -0
- package/dist/commerce-build/setup-session.js +70 -0
- package/dist/commerce-build/setup-session.js.map +1 -0
- package/dist/commerce-build/turn-streaming.d.ts +21 -0
- package/dist/commerce-build/turn-streaming.js +113 -0
- package/dist/commerce-build/turn-streaming.js.map +1 -0
- package/dist/commerce-build/workspace-components.d.ts +23 -0
- package/dist/commerce-build/workspace-components.js +66 -0
- package/dist/commerce-build/workspace-components.js.map +1 -0
- package/dist/commerce-build/workspace-config.d.ts +7 -0
- package/dist/commerce-build/workspace-config.js +74 -0
- package/dist/commerce-build/workspace-config.js.map +1 -0
- package/dist/companion/config.d.ts +31 -0
- package/dist/companion/config.js +59 -0
- package/dist/companion/config.js.map +1 -0
- package/dist/connect/catalog.d.ts +32 -0
- package/dist/connect/catalog.js +268 -0
- package/dist/connect/catalog.js.map +1 -0
- package/dist/connect/fixtures/commands.d.ts +8 -0
- package/dist/connect/fixtures/commands.js +146 -0
- package/dist/connect/fixtures/commands.js.map +1 -0
- package/dist/connect/fixtures/connections.d.ts +21 -0
- package/dist/connect/fixtures/connections.js +370 -0
- package/dist/connect/fixtures/connections.js.map +1 -0
- package/dist/connect/fixtures/identities.d.ts +10 -0
- package/dist/connect/fixtures/identities.js +61 -0
- package/dist/connect/fixtures/identities.js.map +1 -0
- package/dist/connect/fixtures/index.d.ts +11 -0
- package/dist/connect/fixtures/index.js +11 -0
- package/dist/connect/fixtures/index.js.map +1 -0
- package/dist/connect/fixtures/usage.d.ts +2 -0
- package/dist/connect/fixtures/usage.js +21 -0
- package/dist/connect/fixtures/usage.js.map +1 -0
- package/dist/connect/fixtures.d.ts +1 -0
- package/dist/connect/fixtures.js +1 -0
- package/dist/connect/from-notifications.d.ts +3 -0
- package/dist/connect/from-notifications.js +78 -0
- package/dist/connect/from-notifications.js.map +1 -0
- package/dist/connect/identity.d.ts +67 -0
- package/dist/connect/identity.js +24 -0
- package/dist/connect/identity.js.map +1 -0
- package/dist/connect/index.d.ts +13 -0
- package/dist/connect/index.js +22 -0
- package/dist/connect/index.js.map +1 -0
- package/dist/connect/next-up.d.ts +18 -0
- package/dist/connect/next-up.js +45 -0
- package/dist/connect/next-up.js.map +1 -0
- package/dist/connect/types.d.ts +354 -0
- package/dist/connect/types.js +68 -0
- package/dist/connect/types.js.map +1 -0
- package/dist/connect/use-connect.d.ts +51 -0
- package/dist/connect/use-connect.js +85 -0
- package/dist/connect/use-connect.js.map +1 -0
- package/dist/connect.d.ts +1 -0
- package/dist/connect.js +1 -0
- package/dist/converted-tag.d.ts +7 -0
- package/dist/converted-tag.js +9 -0
- package/dist/converted-tag.js.map +1 -0
- package/dist/countries.d.ts +65 -0
- package/dist/countries.js +374 -0
- package/dist/countries.js.map +1 -0
- package/dist/country-regions.d.ts +12 -0
- package/dist/country-regions.js +36 -0
- package/dist/country-regions.js.map +1 -0
- package/dist/csv.d.ts +28 -0
- package/dist/csv.js +91 -0
- package/dist/csv.js.map +1 -0
- package/dist/currency.d.ts +5 -0
- package/dist/currency.js +25 -0
- package/dist/currency.js.map +1 -0
- package/dist/customer-helpers.d.ts +30 -0
- package/dist/customer-helpers.js +66 -0
- package/dist/customer-helpers.js.map +1 -0
- package/dist/customer-stage.d.ts +125 -0
- package/dist/customer-stage.js +113 -0
- package/dist/customer-stage.js.map +1 -0
- package/dist/dashboard-destinations.d.ts +5 -0
- package/dist/dashboard-destinations.js +29 -0
- package/dist/dashboard-destinations.js.map +1 -0
- package/dist/demo-content-mock.d.ts +22 -0
- package/dist/demo-content-mock.js +70 -0
- package/dist/demo-content-mock.js.map +1 -0
- package/dist/demo-content-poller.d.ts +33 -0
- package/dist/demo-content-poller.js +80 -0
- package/dist/demo-content-poller.js.map +1 -0
- package/dist/demo-content.d.ts +43 -0
- package/dist/demo-content.js +78 -0
- package/dist/demo-content.js.map +1 -0
- package/dist/describe-activity.d.ts +44 -0
- package/dist/describe-activity.js +16 -0
- package/dist/describe-activity.js.map +1 -0
- package/dist/describe-invite.d.ts +19 -0
- package/dist/describe-invite.js +46 -0
- package/dist/describe-invite.js.map +1 -0
- package/dist/design-schema.d.ts +76 -0
- package/dist/design-schema.js +47 -0
- package/dist/design-schema.js.map +1 -0
- package/dist/destination-alias.d.ts +43 -0
- package/dist/destination-alias.js +146 -0
- package/dist/destination-alias.js.map +1 -0
- package/dist/document-numbering.d.ts +40 -0
- package/dist/document-numbering.js +48 -0
- package/dist/document-numbering.js.map +1 -0
- package/dist/document-title.d.ts +22 -0
- package/dist/document-title.js +85 -0
- package/dist/document-title.js.map +1 -0
- package/dist/editor/row-ops.d.ts +39 -0
- package/dist/editor/row-ops.js +25 -0
- package/dist/editor/row-ops.js.map +1 -0
- package/dist/editor-agent/apply-proposal.d.ts +12 -0
- package/dist/editor-agent/apply-proposal.js +44 -0
- package/dist/editor-agent/apply-proposal.js.map +1 -0
- package/dist/editor-agent/contracts.d.ts +174 -0
- package/dist/editor-agent/contracts.js +1 -0
- package/dist/editor-agent/contracts.js.map +1 -0
- package/dist/editor-agent/converse.d.ts +34 -0
- package/dist/editor-agent/converse.js +141 -0
- package/dist/editor-agent/converse.js.map +1 -0
- package/dist/editor-agent/flag.d.ts +12 -0
- package/dist/editor-agent/flag.js +19 -0
- package/dist/editor-agent/flag.js.map +1 -0
- package/dist/editor-agent/template-document.d.ts +52 -0
- package/dist/editor-agent/template-document.js +50 -0
- package/dist/editor-agent/template-document.js.map +1 -0
- package/dist/editor-agent/use-converse.d.ts +30 -0
- package/dist/editor-agent/use-converse.js +130 -0
- package/dist/editor-agent/use-converse.js.map +1 -0
- package/dist/effective-module-labels.d.ts +17 -0
- package/dist/effective-module-labels.js +14 -0
- package/dist/effective-module-labels.js.map +1 -0
- package/dist/embedded-frame.d.ts +30 -0
- package/dist/embedded-frame.js +23 -0
- package/dist/embedded-frame.js.map +1 -0
- package/dist/empty-state-copy.d.ts +27 -0
- package/dist/empty-state-copy.js +167 -0
- package/dist/empty-state-copy.js.map +1 -0
- package/dist/end-session.d.ts +23 -0
- package/dist/end-session.js +30 -0
- package/dist/end-session.js.map +1 -0
- package/dist/file-intake.d.ts +65 -0
- package/dist/file-intake.js +162 -0
- package/dist/file-intake.js.map +1 -0
- package/dist/first-run.d.ts +5 -0
- package/dist/first-run.js +13 -0
- package/dist/first-run.js.map +1 -0
- package/dist/form-answers.d.ts +57 -0
- package/dist/form-answers.js +79 -0
- package/dist/form-answers.js.map +1 -0
- package/dist/form-draft.d.ts +30 -0
- package/dist/form-draft.js +73 -0
- package/dist/form-draft.js.map +1 -0
- package/dist/format.d.ts +29 -0
- package/dist/format.js +21 -0
- package/dist/format.js.map +1 -0
- package/dist/fulfilment-nav.d.ts +79 -0
- package/dist/fulfilment-nav.js +18 -0
- package/dist/fulfilment-nav.js.map +1 -0
- package/dist/go-live-gate.d.ts +55 -0
- package/dist/go-live-gate.js +17 -0
- package/dist/go-live-gate.js.map +1 -0
- package/dist/group-activity.d.ts +37 -0
- package/dist/group-activity.js +43 -0
- package/dist/group-activity.js.map +1 -0
- package/dist/haptic.d.ts +5 -0
- package/dist/haptic.js +16 -0
- package/dist/haptic.js.map +1 -0
- package/dist/help-topics.d.ts +77 -0
- package/dist/help-topics.js +308 -0
- package/dist/help-topics.js.map +1 -0
- package/dist/icon-resolver.d.ts +45 -0
- package/dist/icon-resolver.js +40 -0
- package/dist/icon-resolver.js.map +1 -0
- package/dist/icons/commerce.d.ts +9 -0
- package/dist/icons/commerce.js +168 -0
- package/dist/icons/commerce.js.map +1 -0
- package/dist/icons/core.d.ts +9 -0
- package/dist/icons/core.js +173 -0
- package/dist/icons/core.js.map +1 -0
- package/dist/icons/making.d.ts +9 -0
- package/dist/icons/making.js +209 -0
- package/dist/icons/making.js.map +1 -0
- package/dist/icons/places.d.ts +9 -0
- package/dist/icons/places.js +232 -0
- package/dist/icons/places.js.map +1 -0
- package/dist/icons/world.d.ts +9 -0
- package/dist/icons/world.js +87 -0
- package/dist/icons/world.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/industry-configs/beauty.d.ts +2 -0
- package/dist/industry-configs/beauty.js +152 -0
- package/dist/industry-configs/beauty.js.map +1 -0
- package/dist/industry-configs/creative.d.ts +2 -0
- package/dist/industry-configs/creative.js +131 -0
- package/dist/industry-configs/creative.js.map +1 -0
- package/dist/industry-configs/default.d.ts +2 -0
- package/dist/industry-configs/default.js +77 -0
- package/dist/industry-configs/default.js.map +1 -0
- package/dist/industry-configs/education.d.ts +2 -0
- package/dist/industry-configs/education.js +137 -0
- package/dist/industry-configs/education.js.map +1 -0
- package/dist/industry-configs/events.d.ts +2 -0
- package/dist/industry-configs/events.js +118 -0
- package/dist/industry-configs/events.js.map +1 -0
- package/dist/industry-configs/fashion.d.ts +2 -0
- package/dist/industry-configs/fashion.js +128 -0
- package/dist/industry-configs/fashion.js.map +1 -0
- package/dist/industry-configs/fitness.d.ts +2 -0
- package/dist/industry-configs/fitness.js +128 -0
- package/dist/industry-configs/fitness.js.map +1 -0
- package/dist/industry-configs/food.d.ts +2 -0
- package/dist/industry-configs/food.js +138 -0
- package/dist/industry-configs/food.js.map +1 -0
- package/dist/industry-configs/hospitality.d.ts +2 -0
- package/dist/industry-configs/hospitality.js +157 -0
- package/dist/industry-configs/hospitality.js.map +1 -0
- package/dist/industry-configs/index.d.ts +25 -0
- package/dist/industry-configs/index.js +77 -0
- package/dist/industry-configs/index.js.map +1 -0
- package/dist/industry-configs/professional.d.ts +2 -0
- package/dist/industry-configs/professional.js +129 -0
- package/dist/industry-configs/professional.js.map +1 -0
- package/dist/industry-configs/realestate.d.ts +2 -0
- package/dist/industry-configs/realestate.js +146 -0
- package/dist/industry-configs/realestate.js.map +1 -0
- package/dist/industry-configs/retail.d.ts +2 -0
- package/dist/industry-configs/retail.js +108 -0
- package/dist/industry-configs/retail.js.map +1 -0
- package/dist/industry-configs/services.d.ts +2 -0
- package/dist/industry-configs/services.js +120 -0
- package/dist/industry-configs/services.js.map +1 -0
- package/dist/industry-configs/technology.d.ts +2 -0
- package/dist/industry-configs/technology.js +120 -0
- package/dist/industry-configs/technology.js.map +1 -0
- package/dist/industry-configs/types.d.ts +99 -0
- package/dist/industry-configs/types.js +1 -0
- package/dist/industry-configs/types.js.map +1 -0
- package/dist/industry-configs/wellness.d.ts +2 -0
- package/dist/industry-configs/wellness.js +112 -0
- package/dist/industry-configs/wellness.js.map +1 -0
- package/dist/industry-configs.d.ts +1 -0
- package/dist/industry-configs.js +1 -0
- package/dist/intents/analytics-labels.d.ts +70 -0
- package/dist/intents/analytics-labels.js +39 -0
- package/dist/intents/analytics-labels.js.map +1 -0
- package/dist/intents/archetype-flow.d.ts +146 -0
- package/dist/intents/archetype-flow.js +185 -0
- package/dist/intents/archetype-flow.js.map +1 -0
- package/dist/intents/booking-query-style.d.ts +32 -0
- package/dist/intents/booking-query-style.js +22 -0
- package/dist/intents/booking-query-style.js.map +1 -0
- package/dist/intents/capture-leads.config.d.ts +31 -0
- package/dist/intents/capture-leads.config.js +231 -0
- package/dist/intents/capture-leads.config.js.map +1 -0
- package/dist/intents/catalog-stock.d.ts +43 -0
- package/dist/intents/catalog-stock.js +43 -0
- package/dist/intents/catalog-stock.js.map +1 -0
- package/dist/intents/collapse-shared-nav.d.ts +95 -0
- package/dist/intents/collapse-shared-nav.js +171 -0
- package/dist/intents/collapse-shared-nav.js.map +1 -0
- package/dist/intents/default-commerce.config.d.ts +6 -0
- package/dist/intents/default-commerce.config.js +281 -0
- package/dist/intents/default-commerce.config.js.map +1 -0
- package/dist/intents/digital-products.config.d.ts +2 -0
- package/dist/intents/digital-products.config.js +239 -0
- package/dist/intents/digital-products.config.js.map +1 -0
- package/dist/intents/dine-in.config.d.ts +15 -0
- package/dist/intents/dine-in.config.js +331 -0
- package/dist/intents/dine-in.config.js.map +1 -0
- package/dist/intents/event-tickets.config.d.ts +2 -0
- package/dist/intents/event-tickets.config.js +368 -0
- package/dist/intents/event-tickets.config.js.map +1 -0
- package/dist/intents/food-orders.config.d.ts +2 -0
- package/dist/intents/food-orders.config.js +299 -0
- package/dist/intents/food-orders.config.js.map +1 -0
- package/dist/intents/icon-map.d.ts +15 -0
- package/dist/intents/icon-map.js +104 -0
- package/dist/intents/icon-map.js.map +1 -0
- package/dist/intents/index.d.ts +12 -0
- package/dist/intents/index.js +50 -0
- package/dist/intents/index.js.map +1 -0
- package/dist/intents/infer-intents.d.ts +10 -0
- package/dist/intents/infer-intents.js +23 -0
- package/dist/intents/infer-intents.js.map +1 -0
- package/dist/intents/intent-chips.d.ts +47 -0
- package/dist/intents/intent-chips.js +38 -0
- package/dist/intents/intent-chips.js.map +1 -0
- package/dist/intents/intent-nav.d.ts +95 -0
- package/dist/intents/intent-nav.js +423 -0
- package/dist/intents/intent-nav.js.map +1 -0
- package/dist/intents/intent-scope.d.ts +52 -0
- package/dist/intents/intent-scope.js +19 -0
- package/dist/intents/intent-scope.js.map +1 -0
- package/dist/intents/nav-coverage.d.ts +71 -0
- package/dist/intents/nav-coverage.js +132 -0
- package/dist/intents/nav-coverage.js.map +1 -0
- package/dist/intents/operating-shell.d.ts +45 -0
- package/dist/intents/operating-shell.js +142 -0
- package/dist/intents/operating-shell.js.map +1 -0
- package/dist/intents/order-display.d.ts +21 -0
- package/dist/intents/order-display.js +110 -0
- package/dist/intents/order-display.js.map +1 -0
- package/dist/intents/order-intent.d.ts +18 -0
- package/dist/intents/order-intent.js +14 -0
- package/dist/intents/order-intent.js.map +1 -0
- package/dist/intents/order-progress.d.ts +81 -0
- package/dist/intents/order-progress.js +91 -0
- package/dist/intents/order-progress.js.map +1 -0
- package/dist/intents/order-sections.d.ts +173 -0
- package/dist/intents/order-sections.js +188 -0
- package/dist/intents/order-sections.js.map +1 -0
- package/dist/intents/order-stats.d.ts +24 -0
- package/dist/intents/order-stats.js +16 -0
- package/dist/intents/order-stats.js.map +1 -0
- package/dist/intents/order-transitions.d.ts +19 -0
- package/dist/intents/order-transitions.js +66 -0
- package/dist/intents/order-transitions.js.map +1 -0
- package/dist/intents/product-editor-config.d.ts +23 -0
- package/dist/intents/product-editor-config.js +13 -0
- package/dist/intents/product-editor-config.js.map +1 -0
- package/dist/intents/product-intent.d.ts +38 -0
- package/dist/intents/product-intent.js +19 -0
- package/dist/intents/product-intent.js.map +1 -0
- package/dist/intents/registry.d.ts +32 -0
- package/dist/intents/registry.js +41 -0
- package/dist/intents/registry.js.map +1 -0
- package/dist/intents/rent-property.config.d.ts +2 -0
- package/dist/intents/rent-property.config.js +284 -0
- package/dist/intents/rent-property.config.js.map +1 -0
- package/dist/intents/resolve-stats.d.ts +7 -0
- package/dist/intents/resolve-stats.js +29 -0
- package/dist/intents/resolve-stats.js.map +1 -0
- package/dist/intents/resolve-tenant-intents.d.ts +11 -0
- package/dist/intents/resolve-tenant-intents.js +61 -0
- package/dist/intents/resolve-tenant-intents.js.map +1 -0
- package/dist/intents/resolvers.d.ts +52 -0
- package/dist/intents/resolvers.js +177 -0
- package/dist/intents/resolvers.js.map +1 -0
- package/dist/intents/row-identity.d.ts +62 -0
- package/dist/intents/row-identity.js +25 -0
- package/dist/intents/row-identity.js.map +1 -0
- package/dist/intents/sales-verb.d.ts +8 -0
- package/dist/intents/sales-verb.js +12 -0
- package/dist/intents/sales-verb.js.map +1 -0
- package/dist/intents/scoped-config.d.ts +12 -0
- package/dist/intents/scoped-config.js +17 -0
- package/dist/intents/scoped-config.js.map +1 -0
- package/dist/intents/screen-title.d.ts +27 -0
- package/dist/intents/screen-title.js +59 -0
- package/dist/intents/screen-title.js.map +1 -0
- package/dist/intents/section-registry.d.ts +48 -0
- package/dist/intents/section-registry.js +33 -0
- package/dist/intents/section-registry.js.map +1 -0
- package/dist/intents/sell-products.config.d.ts +2 -0
- package/dist/intents/sell-products.config.js +275 -0
- package/dist/intents/sell-products.config.js.map +1 -0
- package/dist/intents/send-invoices.config.d.ts +16 -0
- package/dist/intents/send-invoices.config.js +223 -0
- package/dist/intents/send-invoices.config.js.map +1 -0
- package/dist/intents/subscriptions.config.d.ts +2 -0
- package/dist/intents/subscriptions.config.js +260 -0
- package/dist/intents/subscriptions.config.js.map +1 -0
- package/dist/intents/take-bookings.config.d.ts +2 -0
- package/dist/intents/take-bookings.config.js +298 -0
- package/dist/intents/take-bookings.config.js.map +1 -0
- package/dist/intents/types.d.ts +246 -0
- package/dist/intents/types.js +1 -0
- package/dist/intents/types.js.map +1 -0
- package/dist/intents/use-active-intent.d.ts +27 -0
- package/dist/intents/use-active-intent.js +74 -0
- package/dist/intents/use-active-intent.js.map +1 -0
- package/dist/intents/use-destination-label.d.ts +18 -0
- package/dist/intents/use-destination-label.js +45 -0
- package/dist/intents/use-destination-label.js.map +1 -0
- package/dist/intents/use-entity-label.d.ts +32 -0
- package/dist/intents/use-entity-label.js +75 -0
- package/dist/intents/use-entity-label.js.map +1 -0
- package/dist/intents/use-intent-config.d.ts +20 -0
- package/dist/intents/use-intent-config.js +91 -0
- package/dist/intents/use-intent-config.js.map +1 -0
- package/dist/intents/use-intent-nav-rows.d.ts +26 -0
- package/dist/intents/use-intent-nav-rows.js +49 -0
- package/dist/intents/use-intent-nav-rows.js.map +1 -0
- package/dist/intents/use-resource-label.d.ts +10 -0
- package/dist/intents/use-resource-label.js +9 -0
- package/dist/intents/use-resource-label.js.map +1 -0
- package/dist/intents/use-row-noun.d.ts +19 -0
- package/dist/intents/use-row-noun.js +13 -0
- package/dist/intents/use-row-noun.js.map +1 -0
- package/dist/intents/use-screen-title.d.ts +9 -0
- package/dist/intents/use-screen-title.js +25 -0
- package/dist/intents/use-screen-title.js.map +1 -0
- package/dist/intents/what-it-adds.d.ts +70 -0
- package/dist/intents/what-it-adds.js +29 -0
- package/dist/intents/what-it-adds.js.map +1 -0
- package/dist/intents/workflow-shape.d.ts +66 -0
- package/dist/intents/workflow-shape.js +151 -0
- package/dist/intents/workflow-shape.js.map +1 -0
- package/dist/intents.d.ts +1 -0
- package/dist/intents.js +1 -0
- package/dist/invite-refusal.d.ts +37 -0
- package/dist/invite-refusal.js +26 -0
- package/dist/invite-refusal.js.map +1 -0
- package/dist/invoice-brand.d.ts +28 -0
- package/dist/invoice-brand.js +33 -0
- package/dist/invoice-brand.js.map +1 -0
- package/dist/ios-navigation-context.d.ts +11 -0
- package/dist/ios-navigation-context.js +52 -0
- package/dist/ios-navigation-context.js.map +1 -0
- package/dist/legal-links.d.ts +10 -0
- package/dist/legal-links.js +7 -0
- package/dist/legal-links.js.map +1 -0
- package/dist/letting-policy.d.ts +85 -0
- package/dist/letting-policy.js +47 -0
- package/dist/letting-policy.js.map +1 -0
- package/dist/list-page-size.d.ts +24 -0
- package/dist/list-page-size.js +5 -0
- package/dist/list-page-size.js.map +1 -0
- package/dist/live-events/sse-frames.d.ts +15 -0
- package/dist/live-events/sse-frames.js +37 -0
- package/dist/live-events/sse-frames.js.map +1 -0
- package/dist/location-options.d.ts +16 -0
- package/dist/location-options.js +94 -0
- package/dist/location-options.js.map +1 -0
- package/dist/location-scope-context.d.ts +47 -0
- package/dist/location-scope-context.js +85 -0
- package/dist/location-scope-context.js.map +1 -0
- package/dist/media-service.d.ts +97 -0
- package/dist/media-service.js +282 -0
- package/dist/media-service.js.map +1 -0
- package/dist/media-utils.d.ts +51 -0
- package/dist/media-utils.js +85 -0
- package/dist/media-utils.js.map +1 -0
- package/dist/member-presence.d.ts +40 -0
- package/dist/member-presence.js +77 -0
- package/dist/member-presence.js.map +1 -0
- package/dist/member-subscription-enrollment.d.ts +16 -0
- package/dist/member-subscription-enrollment.js +32 -0
- package/dist/member-subscription-enrollment.js.map +1 -0
- package/dist/membership-freshness.d.ts +31 -0
- package/dist/membership-freshness.js +21 -0
- package/dist/membership-freshness.js.map +1 -0
- package/dist/mobile-header-context.d.ts +32 -0
- package/dist/mobile-header-context.js +59 -0
- package/dist/mobile-header-context.js.map +1 -0
- package/dist/mobile-routes.d.ts +81 -0
- package/dist/mobile-routes.js +406 -0
- package/dist/mobile-routes.js.map +1 -0
- package/dist/mobile-tab-config.d.ts +18 -0
- package/dist/mobile-tab-config.js +43 -0
- package/dist/mobile-tab-config.js.map +1 -0
- package/dist/money-coming-soon.d.ts +16 -0
- package/dist/money-coming-soon.js +22 -0
- package/dist/money-coming-soon.js.map +1 -0
- package/dist/money-minor.d.ts +17 -0
- package/dist/money-minor.js +53 -0
- package/dist/money-minor.js.map +1 -0
- package/dist/money-visibility.d.ts +38 -0
- package/dist/money-visibility.js +13 -0
- package/dist/money-visibility.js.map +1 -0
- package/dist/motion.d.ts +160 -0
- package/dist/motion.js +130 -0
- package/dist/motion.js.map +1 -0
- package/dist/nav-pending.d.ts +42 -0
- package/dist/nav-pending.js +84 -0
- package/dist/nav-pending.js.map +1 -0
- package/dist/navigation-groups.d.ts +52 -0
- package/dist/navigation-groups.js +64 -0
- package/dist/navigation-groups.js.map +1 -0
- package/dist/onboarding-draft.d.ts +23 -0
- package/dist/onboarding-draft.js +35 -0
- package/dist/onboarding-draft.js.map +1 -0
- package/dist/operating-model/index.d.ts +4 -0
- package/dist/operating-model/index.js +13 -0
- package/dist/operating-model/index.js.map +1 -0
- package/dist/operating-model/order-display.d.ts +10 -0
- package/dist/operating-model/order-display.js +24 -0
- package/dist/operating-model/order-display.js.map +1 -0
- package/dist/operating-model/resolver.d.ts +9 -0
- package/dist/operating-model/resolver.js +110 -0
- package/dist/operating-model/resolver.js.map +1 -0
- package/dist/operating-model/types.d.ts +36 -0
- package/dist/operating-model/types.js +1 -0
- package/dist/operating-model/types.js.map +1 -0
- package/dist/operating-model/use-operating-model.d.ts +7 -0
- package/dist/operating-model/use-operating-model.js +65 -0
- package/dist/operating-model/use-operating-model.js.map +1 -0
- package/dist/operating-model.d.ts +1 -0
- package/dist/operating-model.js +1 -0
- package/dist/order-config.d.ts +30 -0
- package/dist/order-config.js +56 -0
- package/dist/order-config.js.map +1 -0
- package/dist/order-discounts.d.ts +25 -0
- package/dist/order-discounts.js +27 -0
- package/dist/order-discounts.js.map +1 -0
- package/dist/order-shipping.d.ts +33 -0
- package/dist/order-shipping.js +49 -0
- package/dist/order-shipping.js.map +1 -0
- package/dist/order-tax.d.ts +28 -0
- package/dist/order-tax.js +21 -0
- package/dist/order-tax.js.map +1 -0
- package/dist/page-intros.d.ts +78 -0
- package/dist/page-intros.js +164 -0
- package/dist/page-intros.js.map +1 -0
- package/dist/page-transition.d.ts +20 -0
- package/dist/page-transition.js +19 -0
- package/dist/page-transition.js.map +1 -0
- package/dist/pages-api-response.d.ts +8 -0
- package/dist/pages-api-response.js +18 -0
- package/dist/pages-api-response.js.map +1 -0
- package/dist/payment-method-label.d.ts +6 -0
- package/dist/payment-method-label.js +14 -0
- package/dist/payment-method-label.js.map +1 -0
- package/dist/permission-aliases.d.ts +18 -0
- package/dist/permission-aliases.js +20 -0
- package/dist/permission-aliases.js.map +1 -0
- package/dist/permission-catalog-fallback.d.ts +17 -0
- package/dist/permission-catalog-fallback.js +147 -0
- package/dist/permission-catalog-fallback.js.map +1 -0
- package/dist/permission-change.d.ts +42 -0
- package/dist/permission-change.js +33 -0
- package/dist/permission-change.js.map +1 -0
- package/dist/phone.d.ts +16 -0
- package/dist/phone.js +20 -0
- package/dist/phone.js.map +1 -0
- package/dist/plan-access.d.ts +39 -0
- package/dist/plan-access.js +57 -0
- package/dist/plan-access.js.map +1 -0
- package/dist/plan-card-api.d.ts +34 -0
- package/dist/plan-card-api.js +30 -0
- package/dist/plan-card-api.js.map +1 -0
- package/dist/plan-price.d.ts +34 -0
- package/dist/plan-price.js +57 -0
- package/dist/plan-price.js.map +1 -0
- package/dist/post-login-target.d.ts +24 -0
- package/dist/post-login-target.js +12 -0
- package/dist/post-login-target.js.map +1 -0
- package/dist/potter-mark-paths.d.ts +21 -0
- package/dist/potter-mark-paths.js +9 -0
- package/dist/potter-mark-paths.js.map +1 -0
- package/dist/pricing-plans-types.d.ts +143 -0
- package/dist/pricing-plans-types.js +1 -0
- package/dist/pricing-plans-types.js.map +1 -0
- package/dist/product-assignees.d.ts +1 -0
- package/dist/product-assignees.js +18 -0
- package/dist/product-assignees.js.map +1 -0
- package/dist/product-collection-sync.d.ts +12 -0
- package/dist/product-collection-sync.js +97 -0
- package/dist/product-collection-sync.js.map +1 -0
- package/dist/product-cost.d.ts +12 -0
- package/dist/product-cost.js +24 -0
- package/dist/product-cost.js.map +1 -0
- package/dist/product-insights-api.d.ts +38 -0
- package/dist/product-insights-api.js +51 -0
- package/dist/product-insights-api.js.map +1 -0
- package/dist/product-types.d.ts +311 -0
- package/dist/product-types.js +38 -0
- package/dist/product-types.js.map +1 -0
- package/dist/promised-day.d.ts +33 -0
- package/dist/promised-day.js +38 -0
- package/dist/promised-day.js.map +1 -0
- package/dist/proposals-api.d.ts +96 -0
- package/dist/proposals-api.js +41 -0
- package/dist/proposals-api.js.map +1 -0
- package/dist/proxy-allowlist.d.ts +15 -0
- package/dist/proxy-allowlist.js +153 -0
- package/dist/proxy-allowlist.js.map +1 -0
- package/dist/public-config-loader.d.ts +27 -0
- package/dist/public-config-loader.js +12 -0
- package/dist/public-config-loader.js.map +1 -0
- package/dist/public-config-provider.d.ts +16 -0
- package/dist/public-config-provider.js +14 -0
- package/dist/public-config-provider.js.map +1 -0
- package/dist/resolve-enabled-behaviors.d.ts +55 -0
- package/dist/resolve-enabled-behaviors.js +134 -0
- package/dist/resolve-enabled-behaviors.js.map +1 -0
- package/dist/resource-types.d.ts +198 -0
- package/dist/resource-types.js +96 -0
- package/dist/resource-types.js.map +1 -0
- package/dist/resume-screen.d.ts +31 -0
- package/dist/resume-screen.js +25 -0
- package/dist/resume-screen.js.map +1 -0
- package/dist/rider-display.d.ts +37 -0
- package/dist/rider-display.js +110 -0
- package/dist/rider-display.js.map +1 -0
- package/dist/rider-view.d.ts +37 -0
- package/dist/rider-view.js +47 -0
- package/dist/rider-view.js.map +1 -0
- package/dist/roster-label.d.ts +27 -0
- package/dist/roster-label.js +8 -0
- package/dist/roster-label.js.map +1 -0
- package/dist/route-pattern.d.ts +11 -0
- package/dist/route-pattern.js +20 -0
- package/dist/route-pattern.js.map +1 -0
- package/dist/route-permission.d.ts +60 -0
- package/dist/route-permission.js +48 -0
- package/dist/route-permission.js.map +1 -0
- package/dist/runtime-config.d.ts +33 -0
- package/dist/runtime-config.js +23 -0
- package/dist/runtime-config.js.map +1 -0
- package/dist/schema-validation.d.ts +172 -0
- package/dist/schema-validation.js +252 -0
- package/dist/schema-validation.js.map +1 -0
- package/dist/service-areas.d.ts +30 -0
- package/dist/service-areas.js +24 -0
- package/dist/service-areas.js.map +1 -0
- package/dist/service-operations-api.d.ts +78 -0
- package/dist/service-operations-api.js +37 -0
- package/dist/service-operations-api.js.map +1 -0
- package/dist/settings-relevance.d.ts +64 -0
- package/dist/settings-relevance.js +25 -0
- package/dist/settings-relevance.js.map +1 -0
- package/dist/singularise.d.ts +16 -0
- package/dist/singularise.js +37 -0
- package/dist/singularise.js.map +1 -0
- package/dist/site-address.d.ts +14 -0
- package/dist/site-address.js +28 -0
- package/dist/site-address.js.map +1 -0
- package/dist/slug.d.ts +26 -0
- package/dist/slug.js +15 -0
- package/dist/slug.js.map +1 -0
- package/dist/sound.d.ts +14 -0
- package/dist/sound.js +166 -0
- package/dist/sound.js.map +1 -0
- package/dist/staff-arrival.d.ts +3 -0
- package/dist/staff-arrival.js +11 -0
- package/dist/staff-arrival.js.map +1 -0
- package/dist/staff-home.d.ts +58 -0
- package/dist/staff-home.js +90 -0
- package/dist/staff-home.js.map +1 -0
- package/dist/staff-landing.d.ts +1 -0
- package/dist/staff-landing.js +15 -0
- package/dist/staff-landing.js.map +1 -0
- package/dist/stat-card-types.d.ts +19 -0
- package/dist/stat-card-types.js +1 -0
- package/dist/stat-card-types.js.map +1 -0
- package/dist/stock-levels.d.ts +32 -0
- package/dist/stock-levels.js +17 -0
- package/dist/stock-levels.js.map +1 -0
- package/dist/stored-token.d.ts +1 -0
- package/dist/stored-token.js +11 -0
- package/dist/stored-token.js.map +1 -0
- package/dist/storefront-url.d.ts +31 -0
- package/dist/storefront-url.js +40 -0
- package/dist/storefront-url.js.map +1 -0
- package/dist/storefront.d.ts +64 -0
- package/dist/storefront.js +51 -0
- package/dist/storefront.js.map +1 -0
- package/dist/subscription-billing-api.d.ts +115 -0
- package/dist/subscription-billing-api.js +27 -0
- package/dist/subscription-billing-api.js.map +1 -0
- package/dist/subscription-billing-model.d.ts +26 -0
- package/dist/subscription-billing-model.js +58 -0
- package/dist/subscription-billing-model.js.map +1 -0
- package/dist/support-case-subject.d.ts +10 -0
- package/dist/support-case-subject.js +13 -0
- package/dist/support-case-subject.js.map +1 -0
- package/dist/support-inbox.d.ts +6 -0
- package/dist/support-inbox.js +5 -0
- package/dist/support-inbox.js.map +1 -0
- package/dist/support.d.ts +7 -0
- package/dist/support.js +16 -0
- package/dist/support.js.map +1 -0
- package/dist/team-page.d.ts +9 -0
- package/dist/team-page.js +5 -0
- package/dist/team-page.js.map +1 -0
- package/dist/team-roles.d.ts +140 -0
- package/dist/team-roles.js +247 -0
- package/dist/team-roles.js.map +1 -0
- package/dist/team-successors.d.ts +20 -0
- package/dist/team-successors.js +13 -0
- package/dist/team-successors.js.map +1 -0
- package/dist/template-asset-url.d.ts +11 -0
- package/dist/template-asset-url.js +8 -0
- package/dist/template-asset-url.js.map +1 -0
- package/dist/template-capabilities.d.ts +2 -0
- package/dist/template-capabilities.js +71 -0
- package/dist/template-capabilities.js.map +1 -0
- package/dist/template-context.d.ts +111 -0
- package/dist/template-context.js +1278 -0
- package/dist/template-context.js.map +1 -0
- package/dist/template-filter.d.ts +29 -0
- package/dist/template-filter.js +41 -0
- package/dist/template-filter.js.map +1 -0
- package/dist/template-preview/preview-author-patch.d.ts +24 -0
- package/dist/template-preview/preview-author-patch.js +78 -0
- package/dist/template-preview/preview-author-patch.js.map +1 -0
- package/dist/template-preview/use-template-document.d.ts +38 -0
- package/dist/template-preview/use-template-document.js +45 -0
- package/dist/template-preview/use-template-document.js.map +1 -0
- package/dist/template-requirements.d.ts +38 -0
- package/dist/template-requirements.js +13 -0
- package/dist/template-requirements.js.map +1 -0
- package/dist/template-types.d.ts +317 -0
- package/dist/template-types.js +1 -0
- package/dist/template-types.js.map +1 -0
- package/dist/templates.d.ts +22 -0
- package/dist/templates.js +1 -0
- package/dist/templates.js.map +1 -0
- package/dist/theme-context.d.ts +58 -0
- package/dist/theme-context.js +283 -0
- package/dist/theme-context.js.map +1 -0
- package/dist/theme-policy.d.ts +41 -0
- package/dist/theme-policy.js +32 -0
- package/dist/theme-policy.js.map +1 -0
- package/dist/ticket-access.d.ts +20 -0
- package/dist/ticket-access.js +39 -0
- package/dist/ticket-access.js.map +1 -0
- package/dist/timeline-copy.d.ts +65 -0
- package/dist/timeline-copy.js +150 -0
- package/dist/timeline-copy.js.map +1 -0
- package/dist/url-params.d.ts +23 -0
- package/dist/url-params.js +43 -0
- package/dist/url-params.js.map +1 -0
- package/dist/use-behaviors.d.ts +13 -0
- package/dist/use-behaviors.js +41 -0
- package/dist/use-behaviors.js.map +1 -0
- package/dist/use-business-locations.d.ts +35 -0
- package/dist/use-business-locations.js +71 -0
- package/dist/use-business-locations.js.map +1 -0
- package/dist/use-currency.d.ts +12 -0
- package/dist/use-currency.js +16 -0
- package/dist/use-currency.js.map +1 -0
- package/dist/use-empty-state-copy.d.ts +12 -0
- package/dist/use-empty-state-copy.js +13 -0
- package/dist/use-empty-state-copy.js.map +1 -0
- package/dist/use-geo-cities.d.ts +1 -0
- package/dist/use-geo-cities.js +42 -0
- package/dist/use-geo-cities.js.map +1 -0
- package/dist/use-has-hardware.d.ts +13 -0
- package/dist/use-has-hardware.js +14 -0
- package/dist/use-has-hardware.js.map +1 -0
- package/dist/use-industry-key.d.ts +10 -0
- package/dist/use-industry-key.js +16 -0
- package/dist/use-industry-key.js.map +1 -0
- package/dist/use-item-links.d.ts +20 -0
- package/dist/use-item-links.js +30 -0
- package/dist/use-item-links.js.map +1 -0
- package/dist/use-job-roles.d.ts +21 -0
- package/dist/use-job-roles.js +76 -0
- package/dist/use-job-roles.js.map +1 -0
- package/dist/use-merchant-plan.d.ts +36 -0
- package/dist/use-merchant-plan.js +78 -0
- package/dist/use-merchant-plan.js.map +1 -0
- package/dist/use-module-label.d.ts +12 -0
- package/dist/use-module-label.js +13 -0
- package/dist/use-module-label.js.map +1 -0
- package/dist/use-money-visibility.d.ts +14 -0
- package/dist/use-money-visibility.js +13 -0
- package/dist/use-money-visibility.js.map +1 -0
- package/dist/use-nav-groups.d.ts +27 -0
- package/dist/use-nav-groups.js +141 -0
- package/dist/use-nav-groups.js.map +1 -0
- package/dist/use-pathname.d.ts +15 -0
- package/dist/use-pathname.js +29 -0
- package/dist/use-pathname.js.map +1 -0
- package/dist/use-permissions.d.ts +43 -0
- package/dist/use-permissions.js +158 -0
- package/dist/use-permissions.js.map +1 -0
- package/dist/use-platform-modules.d.ts +49 -0
- package/dist/use-platform-modules.js +416 -0
- package/dist/use-platform-modules.js.map +1 -0
- package/dist/use-staff-home.d.ts +9 -0
- package/dist/use-staff-home.js +24 -0
- package/dist/use-staff-home.js.map +1 -0
- package/dist/use-workspace-invite.d.ts +37 -0
- package/dist/use-workspace-invite.js +69 -0
- package/dist/use-workspace-invite.js.map +1 -0
- package/dist/utils.d.ts +53 -0
- package/dist/utils.js +161 -0
- package/dist/utils.js.map +1 -0
- package/dist/wallet-format.d.ts +8 -0
- package/dist/wallet-format.js +36 -0
- package/dist/wallet-format.js.map +1 -0
- package/dist/wallet-settlement.d.ts +14 -0
- package/dist/wallet-settlement.js +5 -0
- package/dist/wallet-settlement.js.map +1 -0
- package/dist/web-url.d.ts +1 -0
- package/dist/web-url.js +50 -0
- package/dist/web-url.js.map +1 -0
- package/dist/whats-new.d.ts +59 -0
- package/dist/whats-new.js +77 -0
- package/dist/whats-new.js.map +1 -0
- package/dist/workspace-recents.d.ts +30 -0
- package/dist/workspace-recents.js +37 -0
- package/dist/workspace-recents.js.map +1 -0
- package/dist/workspace-slug.d.ts +1 -0
- package/dist/workspace-slug.js +15 -0
- package/dist/workspace-slug.js.map +1 -0
- package/package.json +57 -0
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
import { apiFetch, getAccountId, getApiUrl, getCsrfToken } from "./core";
|
|
2
|
+
const bookingsApi = {
|
|
3
|
+
/**
|
|
4
|
+
* Create a new booking
|
|
5
|
+
*/
|
|
6
|
+
create: (tenantSlug, data) => apiFetch("/bookings", {
|
|
7
|
+
method: "POST",
|
|
8
|
+
tenantSlug,
|
|
9
|
+
body: JSON.stringify(data)
|
|
10
|
+
}),
|
|
11
|
+
/**
|
|
12
|
+
* Create a walk-in booking (staff-created, auto-confirmed)
|
|
13
|
+
*/
|
|
14
|
+
createWalkIn: (tenantSlug, data) => apiFetch("/bookings/walk-in", {
|
|
15
|
+
method: "POST",
|
|
16
|
+
tenantSlug,
|
|
17
|
+
body: JSON.stringify(data)
|
|
18
|
+
}),
|
|
19
|
+
createTestPurchase: (tenantSlug, data) => apiFetch(
|
|
20
|
+
"/bookings/test-purchase",
|
|
21
|
+
{
|
|
22
|
+
method: "POST",
|
|
23
|
+
tenantSlug,
|
|
24
|
+
body: JSON.stringify(data)
|
|
25
|
+
}
|
|
26
|
+
),
|
|
27
|
+
eligibleResources: (tenantSlug, params) => {
|
|
28
|
+
const search = new URLSearchParams({
|
|
29
|
+
contentId: params.contentId,
|
|
30
|
+
date: params.date
|
|
31
|
+
});
|
|
32
|
+
if (params.startTime) search.set("startTime", params.startTime);
|
|
33
|
+
if (params.endTime) search.set("endTime", params.endTime);
|
|
34
|
+
return apiFetch(
|
|
35
|
+
`/bookings/eligible-resources?${search.toString()}`,
|
|
36
|
+
{ tenantSlug }
|
|
37
|
+
);
|
|
38
|
+
},
|
|
39
|
+
/**
|
|
40
|
+
* List all bookings
|
|
41
|
+
*/
|
|
42
|
+
list: (tenantSlug, params) => {
|
|
43
|
+
const searchParams = new URLSearchParams();
|
|
44
|
+
if (params?.status) {
|
|
45
|
+
const statuses = Array.isArray(params.status) ? params.status : [params.status];
|
|
46
|
+
statuses.forEach((s) => searchParams.append("status", s));
|
|
47
|
+
}
|
|
48
|
+
if (params?.type) {
|
|
49
|
+
const types = Array.isArray(params.type) ? params.type : [params.type];
|
|
50
|
+
types.forEach((t) => searchParams.append("type", t));
|
|
51
|
+
}
|
|
52
|
+
if (params?.contentId) searchParams.set("contentId", params.contentId);
|
|
53
|
+
if (params?.dateFrom) searchParams.set("dateFrom", params.dateFrom);
|
|
54
|
+
if (params?.dateTo) searchParams.set("dateTo", params.dateTo);
|
|
55
|
+
if (params?.page) searchParams.set("page", String(params.page));
|
|
56
|
+
if (params?.limit) searchParams.set("limit", String(params.limit));
|
|
57
|
+
if (params?.search) searchParams.set("search", params.search);
|
|
58
|
+
if (params?.memberId) searchParams.set("memberId", params.memberId);
|
|
59
|
+
if (params?.locationIds?.length)
|
|
60
|
+
searchParams.set("locationIds", params.locationIds.join(","));
|
|
61
|
+
if (params?.isPaid !== void 0)
|
|
62
|
+
searchParams.set("isPaid", String(params.isPaid));
|
|
63
|
+
if (params?.bookingMode) {
|
|
64
|
+
const bookingModes = Array.isArray(params.bookingMode) ? params.bookingMode : [params.bookingMode];
|
|
65
|
+
bookingModes.forEach((mode) => searchParams.append("bookingMode", mode));
|
|
66
|
+
}
|
|
67
|
+
if (params?.origin) searchParams.set("origin", params.origin);
|
|
68
|
+
if (params?.actorType) searchParams.set("actorType", params.actorType);
|
|
69
|
+
if (params?.sortBy) searchParams.set("sortBy", params.sortBy);
|
|
70
|
+
if (params?.sortOrder) searchParams.set("sortOrder", params.sortOrder);
|
|
71
|
+
const query = searchParams.toString() ? `?${searchParams.toString()}` : "";
|
|
72
|
+
return apiFetch(`/bookings${query}`, { tenantSlug });
|
|
73
|
+
},
|
|
74
|
+
/**
|
|
75
|
+
* Get a single booking by ID
|
|
76
|
+
*/
|
|
77
|
+
get: (tenantSlug, id) => apiFetch(`/bookings/${id}`, { tenantSlug }),
|
|
78
|
+
initializePayment: (tenantSlug, id, data) => apiFetch(`/bookings/${id}/pay`, {
|
|
79
|
+
method: "POST",
|
|
80
|
+
tenantSlug,
|
|
81
|
+
body: JSON.stringify(data)
|
|
82
|
+
}),
|
|
83
|
+
/**
|
|
84
|
+
* Update a booking
|
|
85
|
+
*/
|
|
86
|
+
update: (tenantSlug, id, data) => apiFetch(`/bookings/${id}`, {
|
|
87
|
+
method: "PUT",
|
|
88
|
+
tenantSlug,
|
|
89
|
+
body: JSON.stringify(data)
|
|
90
|
+
}),
|
|
91
|
+
/**
|
|
92
|
+
* Get booking stats
|
|
93
|
+
*/
|
|
94
|
+
stats: (tenantSlug, dateFrom, dateTo, filters) => {
|
|
95
|
+
const searchParams = new URLSearchParams();
|
|
96
|
+
if (dateFrom) searchParams.set("dateFrom", dateFrom);
|
|
97
|
+
if (dateTo) searchParams.set("dateTo", dateTo);
|
|
98
|
+
if (filters?.type) {
|
|
99
|
+
const types = Array.isArray(filters.type) ? filters.type : [filters.type];
|
|
100
|
+
types.forEach((type) => searchParams.append("type", type));
|
|
101
|
+
}
|
|
102
|
+
if (filters?.bookingMode) {
|
|
103
|
+
const bookingModes = Array.isArray(filters.bookingMode) ? filters.bookingMode : [filters.bookingMode];
|
|
104
|
+
bookingModes.forEach((mode) => searchParams.append("bookingMode", mode));
|
|
105
|
+
}
|
|
106
|
+
const query = searchParams.toString() ? `?${searchParams.toString()}` : "";
|
|
107
|
+
return apiFetch(`/bookings/stats${query}`, { tenantSlug });
|
|
108
|
+
},
|
|
109
|
+
/**
|
|
110
|
+
* Confirm a booking
|
|
111
|
+
*/
|
|
112
|
+
confirm: (tenantSlug, id) => apiFetch(`/bookings/${id}/confirm`, {
|
|
113
|
+
method: "PATCH",
|
|
114
|
+
tenantSlug,
|
|
115
|
+
body: JSON.stringify({})
|
|
116
|
+
}),
|
|
117
|
+
/**
|
|
118
|
+
* Complete a booking
|
|
119
|
+
*/
|
|
120
|
+
complete: (tenantSlug, id) => apiFetch(`/bookings/${id}/complete`, {
|
|
121
|
+
method: "PATCH",
|
|
122
|
+
tenantSlug,
|
|
123
|
+
body: JSON.stringify({})
|
|
124
|
+
}),
|
|
125
|
+
/**
|
|
126
|
+
* Cancel a booking (updates status to cancelled)
|
|
127
|
+
*/
|
|
128
|
+
cancel: (tenantSlug, id, reason) => apiFetch(`/bookings/${id}/cancel`, {
|
|
129
|
+
method: "PATCH",
|
|
130
|
+
tenantSlug,
|
|
131
|
+
body: JSON.stringify({ reason })
|
|
132
|
+
}),
|
|
133
|
+
/**
|
|
134
|
+
* Reschedule a booking
|
|
135
|
+
*/
|
|
136
|
+
reschedule: (tenantSlug, id, data) => apiFetch(`/bookings/${id}/reschedule`, {
|
|
137
|
+
method: "PATCH",
|
|
138
|
+
tenantSlug,
|
|
139
|
+
body: JSON.stringify(data)
|
|
140
|
+
}),
|
|
141
|
+
/**
|
|
142
|
+
* Record a manual payment (cash / bank transfer / card) taken at the desk.
|
|
143
|
+
*/
|
|
144
|
+
recordPayment: (tenantSlug, id, data) => apiFetch(`/bookings/${id}/payments/manual`, {
|
|
145
|
+
method: "POST",
|
|
146
|
+
tenantSlug,
|
|
147
|
+
body: JSON.stringify(data)
|
|
148
|
+
}),
|
|
149
|
+
recordManualPayment: (tenantSlug, id, data) => apiFetch(`/bookings/${id}/payments/manual`, {
|
|
150
|
+
method: "POST",
|
|
151
|
+
tenantSlug,
|
|
152
|
+
body: JSON.stringify(data)
|
|
153
|
+
}),
|
|
154
|
+
/**
|
|
155
|
+
* The booking's money picture (payments + refunds, totals).
|
|
156
|
+
*/
|
|
157
|
+
getFinance: (tenantSlug, id) => apiFetch(`/bookings/${id}/finance`, { tenantSlug }),
|
|
158
|
+
/**
|
|
159
|
+
* Give the security deposit back at checkout, or keep it against damage.
|
|
160
|
+
* A release is a real refund through whichever payments collected it.
|
|
161
|
+
*/
|
|
162
|
+
settleDeposit: (tenantSlug, id, data) => apiFetch(`/bookings/${id}/deposit/settle`, {
|
|
163
|
+
method: "POST",
|
|
164
|
+
tenantSlug,
|
|
165
|
+
body: JSON.stringify(data)
|
|
166
|
+
}),
|
|
167
|
+
/**
|
|
168
|
+
* The group/split state of a booking (participants + who has paid).
|
|
169
|
+
*/
|
|
170
|
+
getSplit: (tenantSlug, id) => apiFetch(`/bookings/${id}/split`, { tenantSlug }),
|
|
171
|
+
/**
|
|
172
|
+
* Refund a specific payment transaction on the booking.
|
|
173
|
+
*/
|
|
174
|
+
refund: (tenantSlug, id, data) => apiFetch(`/bookings/${id}/refunds`, {
|
|
175
|
+
method: "POST",
|
|
176
|
+
tenantSlug,
|
|
177
|
+
body: JSON.stringify(data)
|
|
178
|
+
}),
|
|
179
|
+
refundPayment: (tenantSlug, id, data) => apiFetch(`/bookings/${id}/refunds`, {
|
|
180
|
+
method: "POST",
|
|
181
|
+
tenantSlug,
|
|
182
|
+
body: JSON.stringify(data)
|
|
183
|
+
}),
|
|
184
|
+
/**
|
|
185
|
+
* Check-in a booking
|
|
186
|
+
*/
|
|
187
|
+
checkIn: (tenantSlug, id) => apiFetch(`/bookings/${id}/check-in`, {
|
|
188
|
+
method: "PATCH",
|
|
189
|
+
tenantSlug
|
|
190
|
+
}),
|
|
191
|
+
/**
|
|
192
|
+
* Mark booking as no-show
|
|
193
|
+
*/
|
|
194
|
+
noShow: (tenantSlug, id) => apiFetch(`/bookings/${id}/no-show`, {
|
|
195
|
+
method: "PATCH",
|
|
196
|
+
tenantSlug
|
|
197
|
+
}),
|
|
198
|
+
/**
|
|
199
|
+
* Free slots for one resource across a date range.
|
|
200
|
+
*
|
|
201
|
+
* The engine already refuses overlapping bookings with a 409
|
|
202
|
+
* (create-booking.usecase checks `hasConflict`), so a form that asks for a
|
|
203
|
+
* time as free text is a form that finds out by being rejected. This is the
|
|
204
|
+
* lookup that lets staff pick from what is actually open.
|
|
205
|
+
*
|
|
206
|
+
* `resourceId` is required by GetAvailabilityDto, so callers with no resource
|
|
207
|
+
* selected have nothing to ask about and should fall back to manual entry.
|
|
208
|
+
*/
|
|
209
|
+
availability: (tenantSlug, params) => {
|
|
210
|
+
const searchParams = new URLSearchParams({
|
|
211
|
+
resourceId: params.resourceId,
|
|
212
|
+
dateFrom: params.dateFrom,
|
|
213
|
+
dateTo: params.dateTo
|
|
214
|
+
});
|
|
215
|
+
if (params.serviceId) searchParams.set("serviceId", params.serviceId);
|
|
216
|
+
if (params.duration) searchParams.set("duration", String(params.duration));
|
|
217
|
+
if (params.partySize)
|
|
218
|
+
searchParams.set("partySize", String(params.partySize));
|
|
219
|
+
return apiFetch(
|
|
220
|
+
`/bookings/availability?${searchParams.toString()}`,
|
|
221
|
+
{ tenantSlug }
|
|
222
|
+
);
|
|
223
|
+
},
|
|
224
|
+
/**
|
|
225
|
+
* Export bookings as CSV
|
|
226
|
+
*/
|
|
227
|
+
exportCsv: (tenantSlug, params) => {
|
|
228
|
+
const searchParams = new URLSearchParams();
|
|
229
|
+
if (params?.contentId) searchParams.set("contentId", params.contentId);
|
|
230
|
+
if (params?.type) searchParams.set("type", params.type);
|
|
231
|
+
if (params?.status) searchParams.set("status", params.status);
|
|
232
|
+
if (params?.dateFrom) searchParams.set("dateFrom", params.dateFrom);
|
|
233
|
+
if (params?.dateTo) searchParams.set("dateTo", params.dateTo);
|
|
234
|
+
const query = searchParams.toString() ? `?${searchParams.toString()}` : "";
|
|
235
|
+
return apiFetch(`/bookings/export${query}`, {
|
|
236
|
+
tenantSlug,
|
|
237
|
+
headers: { Accept: "text/csv" }
|
|
238
|
+
});
|
|
239
|
+
},
|
|
240
|
+
scanTicket: (tenantSlug, ticketCode) => apiFetch("/bookings/scan", {
|
|
241
|
+
method: "POST",
|
|
242
|
+
tenantSlug,
|
|
243
|
+
body: JSON.stringify({ ticketCode })
|
|
244
|
+
}),
|
|
245
|
+
lookupByTicketCode: (tenantSlug, ticketCode) => apiFetch(
|
|
246
|
+
`/bookings/by-code/${encodeURIComponent(ticketCode)}`,
|
|
247
|
+
{
|
|
248
|
+
tenantSlug
|
|
249
|
+
}
|
|
250
|
+
),
|
|
251
|
+
getTickets: (tenantSlug, bookingId) => apiFetch(`/bookings/${bookingId}/tickets`, {
|
|
252
|
+
tenantSlug
|
|
253
|
+
}),
|
|
254
|
+
getTicketsPdfUrl: (tenantSlug, bookingId) => `/api/${tenantSlug}/bookings/${bookingId}/tickets/pdf`,
|
|
255
|
+
downloadTicketsPdf: async (tenantSlug, bookingId) => downloadTicketPdf(`/bookings/${bookingId}/tickets/pdf`, tenantSlug),
|
|
256
|
+
getSingleTicketPdfUrl: (tenantSlug, bookingId, ticketId) => `/api/${tenantSlug}/bookings/${bookingId}/tickets/${ticketId}/pdf`,
|
|
257
|
+
downloadSingleTicketPdf: async (tenantSlug, bookingId, ticketId) => downloadTicketPdf(
|
|
258
|
+
`/bookings/${bookingId}/tickets/${ticketId}/pdf`,
|
|
259
|
+
tenantSlug
|
|
260
|
+
)
|
|
261
|
+
};
|
|
262
|
+
async function downloadTicketPdf(endpoint, tenantSlug) {
|
|
263
|
+
const headers = {};
|
|
264
|
+
if (tenantSlug) headers["X-Tenant-Slug"] = tenantSlug;
|
|
265
|
+
const accountId = getAccountId();
|
|
266
|
+
if (accountId) headers["x-account-id"] = accountId;
|
|
267
|
+
const csrfToken = getCsrfToken();
|
|
268
|
+
if (csrfToken) headers["X-CSRF-Token"] = csrfToken;
|
|
269
|
+
const response = await fetch(`${getApiUrl()}${endpoint}`, {
|
|
270
|
+
headers,
|
|
271
|
+
credentials: "include"
|
|
272
|
+
});
|
|
273
|
+
if (!response.ok) {
|
|
274
|
+
const errorBody = await response.json().catch(() => null);
|
|
275
|
+
throw new Error(
|
|
276
|
+
errorBody?.message || `Failed to download ticket PDF (${response.status})`
|
|
277
|
+
);
|
|
278
|
+
}
|
|
279
|
+
return response.blob();
|
|
280
|
+
}
|
|
281
|
+
export {
|
|
282
|
+
bookingsApi
|
|
283
|
+
};
|
|
284
|
+
//# sourceMappingURL=bookings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/api/bookings.ts"],"sourcesContent":["import { apiFetch, getAccountId, getApiUrl, getCsrfToken } from './core';\nimport type {\n BookingItem,\n BookingListResponse,\n TicketItem,\n CreateBookingInput,\n BookingFinanceEntry,\n BookingFinance,\n SplitBooking,\n AvailabilityResponse,\n BookingResourceRequirement,\n TicketScanResponse,\n} from './types';\n\nexport const bookingsApi = {\n /**\n * Create a new booking\n */\n create: (tenantSlug: string, data: CreateBookingInput) =>\n apiFetch<BookingItem>('/bookings', {\n method: 'POST',\n tenantSlug,\n body: JSON.stringify(data),\n }),\n\n /**\n * Create a walk-in booking (staff-created, auto-confirmed)\n */\n createWalkIn: (tenantSlug: string, data: CreateBookingInput) =>\n apiFetch<BookingItem>('/bookings/walk-in', {\n method: 'POST',\n tenantSlug,\n body: JSON.stringify(data),\n }),\n\n createTestPurchase: (tenantSlug: string, data: CreateBookingInput) =>\n apiFetch<{ booking: BookingItem; finance: BookingFinance }>(\n '/bookings/test-purchase',\n {\n method: 'POST',\n tenantSlug,\n body: JSON.stringify(data),\n },\n ),\n\n eligibleResources: (\n tenantSlug: string,\n params: {\n contentId: string;\n date: string;\n startTime?: string;\n endTime?: string;\n },\n ) => {\n const search = new URLSearchParams({\n contentId: params.contentId,\n date: params.date,\n });\n if (params.startTime) search.set('startTime', params.startTime);\n if (params.endTime) search.set('endTime', params.endTime);\n return apiFetch<BookingResourceRequirement[]>(\n `/bookings/eligible-resources?${search.toString()}`,\n { tenantSlug },\n );\n },\n\n /**\n * List all bookings\n */\n list: (\n tenantSlug: string,\n params?: {\n status?: string | string[];\n type?: string | string[];\n contentId?: string;\n dateFrom?: string;\n dateTo?: string;\n page?: number;\n limit?: number;\n search?: string;\n memberId?: string;\n isPaid?: boolean;\n bookingMode?: string | string[];\n origin?: string;\n actorType?: string;\n /** Which column to order by. The API defaults to the booking's date. */\n sortBy?: string;\n /**\n * Which way to read the list. The API defaults to `DESC` — newest first,\n * right for a list of what has happened. A list of what is coming reads\n * the other way: the next appointment belongs at the top.\n */\n sortOrder?: 'ASC' | 'DESC';\n /**\n * Which branches. Matched through the resource's location, since a\n * booking has no branch of its own. Omit for every branch.\n */\n locationIds?: string[];\n },\n ) => {\n const searchParams = new URLSearchParams();\n if (params?.status) {\n const statuses = Array.isArray(params.status)\n ? params.status\n : [params.status];\n statuses.forEach((s) => searchParams.append('status', s));\n }\n if (params?.type) {\n const types = Array.isArray(params.type) ? params.type : [params.type];\n types.forEach((t) => searchParams.append('type', t));\n }\n if (params?.contentId) searchParams.set('contentId', params.contentId);\n if (params?.dateFrom) searchParams.set('dateFrom', params.dateFrom);\n if (params?.dateTo) searchParams.set('dateTo', params.dateTo);\n if (params?.page) searchParams.set('page', String(params.page));\n if (params?.limit) searchParams.set('limit', String(params.limit));\n if (params?.search) searchParams.set('search', params.search);\n if (params?.memberId) searchParams.set('memberId', params.memberId);\n if (params?.locationIds?.length)\n searchParams.set('locationIds', params.locationIds.join(','));\n if (params?.isPaid !== undefined)\n searchParams.set('isPaid', String(params.isPaid));\n if (params?.bookingMode) {\n const bookingModes = Array.isArray(params.bookingMode)\n ? params.bookingMode\n : [params.bookingMode];\n bookingModes.forEach((mode) => searchParams.append('bookingMode', mode));\n }\n if (params?.origin) searchParams.set('origin', params.origin);\n if (params?.actorType) searchParams.set('actorType', params.actorType);\n if (params?.sortBy) searchParams.set('sortBy', params.sortBy);\n if (params?.sortOrder) searchParams.set('sortOrder', params.sortOrder);\n const query = searchParams.toString() ? `?${searchParams.toString()}` : '';\n return apiFetch<BookingListResponse>(`/bookings${query}`, { tenantSlug });\n },\n\n /**\n * Get a single booking by ID\n */\n get: (tenantSlug: string, id: string) =>\n apiFetch<BookingItem>(`/bookings/${id}`, { tenantSlug }),\n\n initializePayment: (\n tenantSlug: string,\n id: string,\n data: { email: string; amount: number; callbackUrl?: string },\n ) =>\n apiFetch<{\n authorizationUrl: string;\n accessCode: string;\n reference: string;\n }>(`/bookings/${id}/pay`, {\n method: 'POST',\n tenantSlug,\n body: JSON.stringify(data),\n }),\n /**\n * Update a booking\n */\n update: (tenantSlug: string, id: string, data: Partial<BookingItem>) =>\n apiFetch<BookingItem>(`/bookings/${id}`, {\n method: 'PUT',\n tenantSlug,\n body: JSON.stringify(data),\n }),\n\n /**\n * Get booking stats\n */\n stats: (\n tenantSlug: string,\n dateFrom?: string,\n dateTo?: string,\n filters?: {\n type?: string | string[];\n bookingMode?: string | string[];\n },\n ) => {\n const searchParams = new URLSearchParams();\n if (dateFrom) searchParams.set('dateFrom', dateFrom);\n if (dateTo) searchParams.set('dateTo', dateTo);\n if (filters?.type) {\n const types = Array.isArray(filters.type) ? filters.type : [filters.type];\n types.forEach((type) => searchParams.append('type', type));\n }\n if (filters?.bookingMode) {\n const bookingModes = Array.isArray(filters.bookingMode)\n ? filters.bookingMode\n : [filters.bookingMode];\n bookingModes.forEach((mode) => searchParams.append('bookingMode', mode));\n }\n const query = searchParams.toString() ? `?${searchParams.toString()}` : '';\n return apiFetch<{\n total: number;\n today: number;\n revenue: number;\n byStatus: Record<string, number>;\n byType: Record<string, number>;\n }>(`/bookings/stats${query}`, { tenantSlug });\n },\n\n /**\n * Confirm a booking\n */\n confirm: (tenantSlug: string, id: string) =>\n apiFetch<BookingItem>(`/bookings/${id}/confirm`, {\n method: 'PATCH',\n tenantSlug,\n body: JSON.stringify({}),\n }),\n\n /**\n * Complete a booking\n */\n complete: (tenantSlug: string, id: string) =>\n apiFetch<BookingItem>(`/bookings/${id}/complete`, {\n method: 'PATCH',\n tenantSlug,\n body: JSON.stringify({}),\n }),\n\n /**\n * Cancel a booking (updates status to cancelled)\n */\n cancel: (tenantSlug: string, id: string, reason?: string) =>\n apiFetch<BookingItem>(`/bookings/${id}/cancel`, {\n method: 'PATCH',\n tenantSlug,\n body: JSON.stringify({ reason }),\n }),\n\n /**\n * Reschedule a booking\n */\n reschedule: (\n tenantSlug: string,\n id: string,\n data: {\n date: string;\n contentId?: string;\n startTime: string;\n endTime?: string;\n resourceId?: string;\n reason?: string;\n overrideCapacity?: boolean;\n },\n ) =>\n apiFetch<BookingItem>(`/bookings/${id}/reschedule`, {\n method: 'PATCH',\n tenantSlug,\n body: JSON.stringify(data),\n }),\n\n /**\n * Record a manual payment (cash / bank transfer / card) taken at the desk.\n */\n recordPayment: (\n tenantSlug: string,\n id: string,\n data: {\n amount: number;\n /**\n * `loyalty` is points settling a bill. Not a method the customer chose\n * so much as money they had already earned, but it clears a balance\n * exactly like one — and without it a redemption could not be recorded\n * against the thing it discounted.\n */\n channel: 'cash' | 'card' | 'bank_transfer' | 'loyalty';\n note?: string;\n },\n ) =>\n apiFetch<BookingItem>(`/bookings/${id}/payments/manual`, {\n method: 'POST',\n tenantSlug,\n body: JSON.stringify(data),\n }),\n\n recordManualPayment: (\n tenantSlug: string,\n id: string,\n data: {\n amount: number;\n channel: 'cash' | 'card' | 'bank_transfer' | 'loyalty';\n note?: string;\n },\n ) =>\n apiFetch<BookingFinanceEntry>(`/bookings/${id}/payments/manual`, {\n method: 'POST',\n tenantSlug,\n body: JSON.stringify(data),\n }),\n\n /**\n * The booking's money picture (payments + refunds, totals).\n */\n getFinance: (tenantSlug: string, id: string) =>\n apiFetch<BookingFinance>(`/bookings/${id}/finance`, { tenantSlug }),\n\n /**\n * Give the security deposit back at checkout, or keep it against damage.\n * A release is a real refund through whichever payments collected it.\n */\n settleDeposit: (\n tenantSlug: string,\n id: string,\n data: { action: 'release' | 'forfeit'; amount?: number; reason?: string },\n ) =>\n apiFetch<BookingFinance>(`/bookings/${id}/deposit/settle`, {\n method: 'POST',\n tenantSlug,\n body: JSON.stringify(data),\n }),\n\n /**\n * The group/split state of a booking (participants + who has paid).\n */\n getSplit: (tenantSlug: string, id: string) =>\n apiFetch<SplitBooking>(`/bookings/${id}/split`, { tenantSlug }),\n\n /**\n * Refund a specific payment transaction on the booking.\n */\n refund: (\n tenantSlug: string,\n id: string,\n data: { transactionId: string; amount: number; reason?: string },\n ) =>\n apiFetch<BookingFinanceEntry>(`/bookings/${id}/refunds`, {\n method: 'POST',\n tenantSlug,\n body: JSON.stringify(data),\n }),\n\n refundPayment: (\n tenantSlug: string,\n id: string,\n data: { transactionId: string; amount: number; reason?: string },\n ) =>\n apiFetch<BookingFinanceEntry>(`/bookings/${id}/refunds`, {\n method: 'POST',\n tenantSlug,\n body: JSON.stringify(data),\n }),\n\n /**\n * Check-in a booking\n */\n checkIn: (tenantSlug: string, id: string) =>\n apiFetch<BookingItem>(`/bookings/${id}/check-in`, {\n method: 'PATCH',\n tenantSlug,\n }),\n\n /**\n * Mark booking as no-show\n */\n noShow: (tenantSlug: string, id: string) =>\n apiFetch<BookingItem>(`/bookings/${id}/no-show`, {\n method: 'PATCH',\n tenantSlug,\n }),\n\n /**\n * Free slots for one resource across a date range.\n *\n * The engine already refuses overlapping bookings with a 409\n * (create-booking.usecase checks `hasConflict`), so a form that asks for a\n * time as free text is a form that finds out by being rejected. This is the\n * lookup that lets staff pick from what is actually open.\n *\n * `resourceId` is required by GetAvailabilityDto, so callers with no resource\n * selected have nothing to ask about and should fall back to manual entry.\n */\n availability: (\n tenantSlug: string,\n params: {\n resourceId: string;\n dateFrom: string;\n dateTo: string;\n serviceId?: string;\n duration?: number;\n partySize?: number;\n },\n ) => {\n const searchParams = new URLSearchParams({\n resourceId: params.resourceId,\n dateFrom: params.dateFrom,\n dateTo: params.dateTo,\n });\n if (params.serviceId) searchParams.set('serviceId', params.serviceId);\n if (params.duration) searchParams.set('duration', String(params.duration));\n if (params.partySize)\n searchParams.set('partySize', String(params.partySize));\n return apiFetch<AvailabilityResponse>(\n `/bookings/availability?${searchParams.toString()}`,\n { tenantSlug },\n );\n },\n\n /**\n * Export bookings as CSV\n */\n exportCsv: (\n tenantSlug: string,\n params?: {\n contentId?: string;\n type?: string;\n status?: string;\n dateFrom?: string;\n dateTo?: string;\n },\n ) => {\n const searchParams = new URLSearchParams();\n if (params?.contentId) searchParams.set('contentId', params.contentId);\n if (params?.type) searchParams.set('type', params.type);\n if (params?.status) searchParams.set('status', params.status);\n if (params?.dateFrom) searchParams.set('dateFrom', params.dateFrom);\n if (params?.dateTo) searchParams.set('dateTo', params.dateTo);\n const query = searchParams.toString() ? `?${searchParams.toString()}` : '';\n return apiFetch<string>(`/bookings/export${query}`, {\n tenantSlug,\n headers: { Accept: 'text/csv' },\n });\n },\n\n scanTicket: (tenantSlug: string, ticketCode: string) =>\n apiFetch<TicketScanResponse>('/bookings/scan', {\n method: 'POST',\n tenantSlug,\n body: JSON.stringify({ ticketCode }),\n }),\n\n lookupByTicketCode: (tenantSlug: string, ticketCode: string) =>\n apiFetch<BookingItem>(\n `/bookings/by-code/${encodeURIComponent(ticketCode)}`,\n {\n tenantSlug,\n },\n ),\n\n getTickets: (tenantSlug: string, bookingId: string) =>\n apiFetch<TicketItem[]>(`/bookings/${bookingId}/tickets`, {\n tenantSlug,\n }),\n\n getTicketsPdfUrl: (tenantSlug: string, bookingId: string) =>\n `/api/${tenantSlug}/bookings/${bookingId}/tickets/pdf`,\n\n downloadTicketsPdf: async (tenantSlug: string, bookingId: string) =>\n downloadTicketPdf(`/bookings/${bookingId}/tickets/pdf`, tenantSlug),\n\n getSingleTicketPdfUrl: (\n tenantSlug: string,\n bookingId: string,\n ticketId: string,\n ) => `/api/${tenantSlug}/bookings/${bookingId}/tickets/${ticketId}/pdf`,\n\n downloadSingleTicketPdf: async (\n tenantSlug: string,\n bookingId: string,\n ticketId: string,\n ) =>\n downloadTicketPdf(\n `/bookings/${bookingId}/tickets/${ticketId}/pdf`,\n tenantSlug,\n ),\n};\n\nasync function downloadTicketPdf(endpoint: string, tenantSlug: string) {\n const headers: Record<string, string> = {};\n if (tenantSlug) headers['X-Tenant-Slug'] = tenantSlug;\n\n const accountId = getAccountId();\n if (accountId) headers['x-account-id'] = accountId;\n\n const csrfToken = getCsrfToken();\n if (csrfToken) headers['X-CSRF-Token'] = csrfToken;\n\n const response = await fetch(`${getApiUrl()}${endpoint}`, {\n headers,\n credentials: 'include',\n });\n if (!response.ok) {\n const errorBody = await response.json().catch(() => null);\n throw new Error(\n errorBody?.message ||\n `Failed to download ticket PDF (${response.status})`,\n );\n }\n return response.blob();\n}\n\n// ============================================\n// RESOURCES API (Therapists, Rooms, etc.)\n// ============================================\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import type { BusinessDevice, DeviceProfile, DeviceOperatorAccess, DeviceOperators, PosPermissions, BusinessDeviceKind, BusinessDeviceStatus, BusinessDeviceConfig, DeviceEnrolmentPreview, LinkedDevice } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* The business's own hardware.
|
|
4
|
+
*
|
|
5
|
+
* Deliberately not `devicesApi`, which already exists and means something else
|
|
6
|
+
* entirely — which browsers an *account* has signed in from. Sharing the word
|
|
7
|
+
* would eventually put somebody's laptop in a list of card terminals.
|
|
8
|
+
*/
|
|
9
|
+
export declare const businessDevicesApi: {
|
|
10
|
+
list: (tenantSlug: string) => Promise<{
|
|
11
|
+
devices: BusinessDevice[];
|
|
12
|
+
}>;
|
|
13
|
+
get: (tenantSlug: string, id: string) => Promise<BusinessDevice>;
|
|
14
|
+
/**
|
|
15
|
+
* Look at the machine offering this code, before adopting it.
|
|
16
|
+
*
|
|
17
|
+
* Its own call rather than a field on the claim, because the confirmation is
|
|
18
|
+
* the point: six characters could be any machine in the building, and seeing
|
|
19
|
+
* "Card terminal, SN 8842" is how a merchant tells they read the code off the
|
|
20
|
+
* right one.
|
|
21
|
+
*/
|
|
22
|
+
previewEnrolment: (tenantSlug: string, code: string) => Promise<DeviceEnrolmentPreview>;
|
|
23
|
+
/**
|
|
24
|
+
* Adopt the machine offering this code.
|
|
25
|
+
*
|
|
26
|
+
* Comes back `pending` and stays there for about two seconds — the machine is
|
|
27
|
+
* already polling for its token, and collecting it is what makes the device
|
|
28
|
+
* live. Nothing here carries a credential: the merchant never holds one.
|
|
29
|
+
*/
|
|
30
|
+
claimEnrolment: (tenantSlug: string, code: string, data: {
|
|
31
|
+
deviceId: string;
|
|
32
|
+
label?: string;
|
|
33
|
+
kind?: BusinessDeviceKind;
|
|
34
|
+
locationId?: string;
|
|
35
|
+
}) => Promise<LinkedDevice>;
|
|
36
|
+
/** Rename a device, move it to another branch, or restrict who may work it. */
|
|
37
|
+
update: (tenantSlug: string, id: string, data: {
|
|
38
|
+
label?: string;
|
|
39
|
+
locationId?: string | null;
|
|
40
|
+
operatorAccess?: DeviceOperatorAccess;
|
|
41
|
+
/** Null takes it off a profile and back to the defaults. */
|
|
42
|
+
profileId?: string | null;
|
|
43
|
+
}) => Promise<BusinessDevice>;
|
|
44
|
+
/**
|
|
45
|
+
* Set how a device is allowed to behave.
|
|
46
|
+
*
|
|
47
|
+
* A patch of what changed, not a replacement — the API stores only the keys
|
|
48
|
+
* sent, so a default changed later still reaches every device nobody has
|
|
49
|
+
* overridden.
|
|
50
|
+
*/
|
|
51
|
+
setConfig: (tenantSlug: string, id: string, data: Partial<BusinessDeviceConfig>) => Promise<BusinessDevice & {
|
|
52
|
+
config: BusinessDeviceConfig;
|
|
53
|
+
}>;
|
|
54
|
+
/** Revoking is one-way, and the API enforces that. */
|
|
55
|
+
setStatus: (tenantSlug: string, id: string, status: Exclude<BusinessDeviceStatus, "pending">) => Promise<BusinessDevice>;
|
|
56
|
+
/**
|
|
57
|
+
* Who may sign in at this machine, and whether the list is consulted.
|
|
58
|
+
*
|
|
59
|
+
* Both in one answer on purpose: three names mean nothing without knowing
|
|
60
|
+
* whether the machine is actually restricted to them, and a screen showing
|
|
61
|
+
* only the names would read as a restriction that is not being enforced.
|
|
62
|
+
*/
|
|
63
|
+
operators: (tenantSlug: string, id: string) => Promise<DeviceOperators>;
|
|
64
|
+
addOperator: (tenantSlug: string, id: string, memberId: string) => Promise<DeviceOperators>;
|
|
65
|
+
removeOperator: (tenantSlug: string, id: string, memberId: string) => Promise<DeviceOperators>;
|
|
66
|
+
/**
|
|
67
|
+
* Set somebody's till code.
|
|
68
|
+
*
|
|
69
|
+
* Under devices rather than under team because it is hardware access: the
|
|
70
|
+
* person who decides who may open a till is the person who runs the room, not
|
|
71
|
+
* whoever administers dashboard logins.
|
|
72
|
+
*/
|
|
73
|
+
setPasscode: (tenantSlug: string, memberId: string, passcode: string) => Promise<{
|
|
74
|
+
setAt: string;
|
|
75
|
+
}>;
|
|
76
|
+
clearPasscode: (tenantSlug: string, memberId: string) => Promise<{
|
|
77
|
+
cleared: boolean;
|
|
78
|
+
}>;
|
|
79
|
+
setPosPermissions: (tenantSlug: string, memberId: string, permissions: PosPermissions) => Promise<PosPermissions>;
|
|
80
|
+
/**
|
|
81
|
+
* Named configs, with how many machines follow each.
|
|
82
|
+
*
|
|
83
|
+
* `profiles/all` rather than `profiles`, because `:id` on the same controller
|
|
84
|
+
* would swallow it — a route that reads as a list and resolves as a device
|
|
85
|
+
* lookup is the kind of collision that fails at runtime and nowhere else.
|
|
86
|
+
*/
|
|
87
|
+
profiles: (tenantSlug: string) => Promise<{
|
|
88
|
+
profiles: DeviceProfile[];
|
|
89
|
+
}>;
|
|
90
|
+
createProfile: (tenantSlug: string, body: {
|
|
91
|
+
name: string;
|
|
92
|
+
config?: Partial<BusinessDeviceConfig>;
|
|
93
|
+
isDefault?: boolean;
|
|
94
|
+
}) => Promise<DeviceProfile>;
|
|
95
|
+
/** A patch. Sending one field must not reset the others on six machines. */
|
|
96
|
+
updateProfile: (tenantSlug: string, id: string, body: {
|
|
97
|
+
name?: string;
|
|
98
|
+
config?: Partial<BusinessDeviceConfig>;
|
|
99
|
+
isDefault?: boolean;
|
|
100
|
+
}) => Promise<DeviceProfile>;
|
|
101
|
+
/** Refused while anything still follows it. */
|
|
102
|
+
deleteProfile: (tenantSlug: string, id: string) => Promise<{
|
|
103
|
+
deleted: boolean;
|
|
104
|
+
}>;
|
|
105
|
+
applyProfile: (tenantSlug: string, id: string, deviceIds: string[]) => Promise<{
|
|
106
|
+
applied: number;
|
|
107
|
+
}>;
|
|
108
|
+
};
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { apiFetch } from "./core";
|
|
2
|
+
const businessDevicesApi = {
|
|
3
|
+
list: (tenantSlug) => apiFetch("/business-devices", {
|
|
4
|
+
tenantSlug
|
|
5
|
+
}),
|
|
6
|
+
get: (tenantSlug, id) => apiFetch(`/business-devices/${id}`, { tenantSlug }),
|
|
7
|
+
/**
|
|
8
|
+
* Look at the machine offering this code, before adopting it.
|
|
9
|
+
*
|
|
10
|
+
* Its own call rather than a field on the claim, because the confirmation is
|
|
11
|
+
* the point: six characters could be any machine in the building, and seeing
|
|
12
|
+
* "Card terminal, SN 8842" is how a merchant tells they read the code off the
|
|
13
|
+
* right one.
|
|
14
|
+
*/
|
|
15
|
+
previewEnrolment: (tenantSlug, code) => apiFetch(
|
|
16
|
+
`/business-devices/enrolments/${encodeURIComponent(code)}`,
|
|
17
|
+
{ tenantSlug }
|
|
18
|
+
),
|
|
19
|
+
/**
|
|
20
|
+
* Adopt the machine offering this code.
|
|
21
|
+
*
|
|
22
|
+
* Comes back `pending` and stays there for about two seconds — the machine is
|
|
23
|
+
* already polling for its token, and collecting it is what makes the device
|
|
24
|
+
* live. Nothing here carries a credential: the merchant never holds one.
|
|
25
|
+
*/
|
|
26
|
+
claimEnrolment: (tenantSlug, code, data) => apiFetch(
|
|
27
|
+
`/business-devices/enrolments/${encodeURIComponent(code)}/claim`,
|
|
28
|
+
{ tenantSlug, method: "POST", body: JSON.stringify(data) }
|
|
29
|
+
),
|
|
30
|
+
/*
|
|
31
|
+
* REGISTERING AND REISSUING A PAIRING CODE USED TO LIVE HERE.
|
|
32
|
+
*
|
|
33
|
+
* Both were the dashboard's half of the old direction: the merchant described
|
|
34
|
+
* a machine they had not plugged in, we minted a code, and somebody walked
|
|
35
|
+
* over and typed it into a keypad. The machine speaks first now — see
|
|
36
|
+
* `previewEnrolment` and `claimEnrolment` above — so nothing in the dashboard
|
|
37
|
+
* mints a code any more.
|
|
38
|
+
*
|
|
39
|
+
* The API still serves `POST /business-devices` and `:id/pairing-code` for a
|
|
40
|
+
* device paired the old way. They are not called from here, and a client
|
|
41
|
+
* method for a flow no screen offers is how a dead path comes back.
|
|
42
|
+
*/
|
|
43
|
+
/** Rename a device, move it to another branch, or restrict who may work it. */
|
|
44
|
+
update: (tenantSlug, id, data) => apiFetch(`/business-devices/${id}`, {
|
|
45
|
+
tenantSlug,
|
|
46
|
+
method: "PATCH",
|
|
47
|
+
body: JSON.stringify(data)
|
|
48
|
+
}),
|
|
49
|
+
/**
|
|
50
|
+
* Set how a device is allowed to behave.
|
|
51
|
+
*
|
|
52
|
+
* A patch of what changed, not a replacement — the API stores only the keys
|
|
53
|
+
* sent, so a default changed later still reaches every device nobody has
|
|
54
|
+
* overridden.
|
|
55
|
+
*/
|
|
56
|
+
setConfig: (tenantSlug, id, data) => apiFetch(
|
|
57
|
+
`/business-devices/${id}/config`,
|
|
58
|
+
{ tenantSlug, method: "PATCH", body: JSON.stringify(data) }
|
|
59
|
+
),
|
|
60
|
+
/** Revoking is one-way, and the API enforces that. */
|
|
61
|
+
setStatus: (tenantSlug, id, status) => apiFetch(`/business-devices/${id}/status`, {
|
|
62
|
+
tenantSlug,
|
|
63
|
+
method: "POST",
|
|
64
|
+
body: JSON.stringify({ status })
|
|
65
|
+
}),
|
|
66
|
+
/**
|
|
67
|
+
* Who may sign in at this machine, and whether the list is consulted.
|
|
68
|
+
*
|
|
69
|
+
* Both in one answer on purpose: three names mean nothing without knowing
|
|
70
|
+
* whether the machine is actually restricted to them, and a screen showing
|
|
71
|
+
* only the names would read as a restriction that is not being enforced.
|
|
72
|
+
*/
|
|
73
|
+
operators: (tenantSlug, id) => apiFetch(`/business-devices/${id}/operators`, {
|
|
74
|
+
tenantSlug
|
|
75
|
+
}),
|
|
76
|
+
addOperator: (tenantSlug, id, memberId) => apiFetch(`/business-devices/${id}/operators`, {
|
|
77
|
+
tenantSlug,
|
|
78
|
+
method: "POST",
|
|
79
|
+
body: JSON.stringify({ memberId })
|
|
80
|
+
}),
|
|
81
|
+
removeOperator: (tenantSlug, id, memberId) => apiFetch(`/business-devices/${id}/operators/${memberId}`, {
|
|
82
|
+
tenantSlug,
|
|
83
|
+
method: "DELETE"
|
|
84
|
+
}),
|
|
85
|
+
/**
|
|
86
|
+
* Set somebody's till code.
|
|
87
|
+
*
|
|
88
|
+
* Under devices rather than under team because it is hardware access: the
|
|
89
|
+
* person who decides who may open a till is the person who runs the room, not
|
|
90
|
+
* whoever administers dashboard logins.
|
|
91
|
+
*/
|
|
92
|
+
setPasscode: (tenantSlug, memberId, passcode) => apiFetch(
|
|
93
|
+
`/business-devices/operators/${memberId}/passcode`,
|
|
94
|
+
{ tenantSlug, method: "PUT", body: JSON.stringify({ passcode }) }
|
|
95
|
+
),
|
|
96
|
+
clearPasscode: (tenantSlug, memberId) => apiFetch(
|
|
97
|
+
`/business-devices/operators/${memberId}/passcode`,
|
|
98
|
+
{ tenantSlug, method: "DELETE" }
|
|
99
|
+
),
|
|
100
|
+
setPosPermissions: (tenantSlug, memberId, permissions) => apiFetch(
|
|
101
|
+
`/business-devices/operators/${memberId}/permissions`,
|
|
102
|
+
{ tenantSlug, method: "PUT", body: JSON.stringify(permissions) }
|
|
103
|
+
),
|
|
104
|
+
/**
|
|
105
|
+
* Named configs, with how many machines follow each.
|
|
106
|
+
*
|
|
107
|
+
* `profiles/all` rather than `profiles`, because `:id` on the same controller
|
|
108
|
+
* would swallow it — a route that reads as a list and resolves as a device
|
|
109
|
+
* lookup is the kind of collision that fails at runtime and nowhere else.
|
|
110
|
+
*/
|
|
111
|
+
profiles: (tenantSlug) => apiFetch("/business-devices/profiles/all", {
|
|
112
|
+
tenantSlug
|
|
113
|
+
}),
|
|
114
|
+
createProfile: (tenantSlug, body) => apiFetch("/business-devices/profiles", {
|
|
115
|
+
tenantSlug,
|
|
116
|
+
method: "POST",
|
|
117
|
+
body: JSON.stringify(body)
|
|
118
|
+
}),
|
|
119
|
+
/** A patch. Sending one field must not reset the others on six machines. */
|
|
120
|
+
updateProfile: (tenantSlug, id, body) => apiFetch(`/business-devices/profiles/${id}`, {
|
|
121
|
+
tenantSlug,
|
|
122
|
+
method: "PATCH",
|
|
123
|
+
body: JSON.stringify(body)
|
|
124
|
+
}),
|
|
125
|
+
/** Refused while anything still follows it. */
|
|
126
|
+
deleteProfile: (tenantSlug, id) => apiFetch(`/business-devices/profiles/${id}`, {
|
|
127
|
+
tenantSlug,
|
|
128
|
+
method: "DELETE"
|
|
129
|
+
}),
|
|
130
|
+
applyProfile: (tenantSlug, id, deviceIds) => apiFetch(`/business-devices/profiles/${id}/apply`, {
|
|
131
|
+
tenantSlug,
|
|
132
|
+
method: "POST",
|
|
133
|
+
body: JSON.stringify({ deviceIds })
|
|
134
|
+
})
|
|
135
|
+
};
|
|
136
|
+
export {
|
|
137
|
+
businessDevicesApi
|
|
138
|
+
};
|
|
139
|
+
//# sourceMappingURL=business-devices.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/api/business-devices.ts"],"sourcesContent":["import { apiFetch } from './core';\nimport type {\n BusinessDevice,\n DeviceProfile,\n DeviceOperatorAccess,\n DeviceOperators,\n PosPermissions,\n BusinessDeviceKind,\n BusinessDeviceStatus,\n BusinessDeviceConfig,\n DeviceEnrolmentPreview,\n LinkedDevice,\n} from './types';\n\n/**\n * The business's own hardware.\n *\n * Deliberately not `devicesApi`, which already exists and means something else\n * entirely — which browsers an *account* has signed in from. Sharing the word\n * would eventually put somebody's laptop in a list of card terminals.\n */\nexport const businessDevicesApi = {\n list: (tenantSlug: string) =>\n apiFetch<{ devices: BusinessDevice[] }>('/business-devices', {\n tenantSlug,\n }),\n\n get: (tenantSlug: string, id: string) =>\n apiFetch<BusinessDevice>(`/business-devices/${id}`, { tenantSlug }),\n\n /**\n * Look at the machine offering this code, before adopting it.\n *\n * Its own call rather than a field on the claim, because the confirmation is\n * the point: six characters could be any machine in the building, and seeing\n * \"Card terminal, SN 8842\" is how a merchant tells they read the code off the\n * right one.\n */\n previewEnrolment: (tenantSlug: string, code: string) =>\n apiFetch<DeviceEnrolmentPreview>(\n `/business-devices/enrolments/${encodeURIComponent(code)}`,\n { tenantSlug },\n ),\n\n /**\n * Adopt the machine offering this code.\n *\n * Comes back `pending` and stays there for about two seconds — the machine is\n * already polling for its token, and collecting it is what makes the device\n * live. Nothing here carries a credential: the merchant never holds one.\n */\n claimEnrolment: (\n tenantSlug: string,\n code: string,\n data: {\n deviceId: string;\n label?: string;\n kind?: BusinessDeviceKind;\n locationId?: string;\n },\n ) =>\n apiFetch<LinkedDevice>(\n `/business-devices/enrolments/${encodeURIComponent(code)}/claim`,\n { tenantSlug, method: 'POST', body: JSON.stringify(data) },\n ),\n\n /*\n * REGISTERING AND REISSUING A PAIRING CODE USED TO LIVE HERE.\n *\n * Both were the dashboard's half of the old direction: the merchant described\n * a machine they had not plugged in, we minted a code, and somebody walked\n * over and typed it into a keypad. The machine speaks first now — see\n * `previewEnrolment` and `claimEnrolment` above — so nothing in the dashboard\n * mints a code any more.\n *\n * The API still serves `POST /business-devices` and `:id/pairing-code` for a\n * device paired the old way. They are not called from here, and a client\n * method for a flow no screen offers is how a dead path comes back.\n */\n\n /** Rename a device, move it to another branch, or restrict who may work it. */\n update: (\n tenantSlug: string,\n id: string,\n data: {\n label?: string;\n locationId?: string | null;\n operatorAccess?: DeviceOperatorAccess;\n /** Null takes it off a profile and back to the defaults. */\n profileId?: string | null;\n },\n ) =>\n apiFetch<BusinessDevice>(`/business-devices/${id}`, {\n tenantSlug,\n method: 'PATCH',\n body: JSON.stringify(data),\n }),\n\n /**\n * Set how a device is allowed to behave.\n *\n * A patch of what changed, not a replacement — the API stores only the keys\n * sent, so a default changed later still reaches every device nobody has\n * overridden.\n */\n setConfig: (\n tenantSlug: string,\n id: string,\n data: Partial<BusinessDeviceConfig>,\n ) =>\n apiFetch<BusinessDevice & { config: BusinessDeviceConfig }>(\n `/business-devices/${id}/config`,\n { tenantSlug, method: 'PATCH', body: JSON.stringify(data) },\n ),\n\n /** Revoking is one-way, and the API enforces that. */\n setStatus: (\n tenantSlug: string,\n id: string,\n status: Exclude<BusinessDeviceStatus, 'pending'>,\n ) =>\n apiFetch<BusinessDevice>(`/business-devices/${id}/status`, {\n tenantSlug,\n method: 'POST',\n body: JSON.stringify({ status }),\n }),\n\n /**\n * Who may sign in at this machine, and whether the list is consulted.\n *\n * Both in one answer on purpose: three names mean nothing without knowing\n * whether the machine is actually restricted to them, and a screen showing\n * only the names would read as a restriction that is not being enforced.\n */\n operators: (tenantSlug: string, id: string) =>\n apiFetch<DeviceOperators>(`/business-devices/${id}/operators`, {\n tenantSlug,\n }),\n\n addOperator: (tenantSlug: string, id: string, memberId: string) =>\n apiFetch<DeviceOperators>(`/business-devices/${id}/operators`, {\n tenantSlug,\n method: 'POST',\n body: JSON.stringify({ memberId }),\n }),\n\n removeOperator: (tenantSlug: string, id: string, memberId: string) =>\n apiFetch<DeviceOperators>(`/business-devices/${id}/operators/${memberId}`, {\n tenantSlug,\n method: 'DELETE',\n }),\n\n /**\n * Set somebody's till code.\n *\n * Under devices rather than under team because it is hardware access: the\n * person who decides who may open a till is the person who runs the room, not\n * whoever administers dashboard logins.\n */\n setPasscode: (tenantSlug: string, memberId: string, passcode: string) =>\n apiFetch<{ setAt: string }>(\n `/business-devices/operators/${memberId}/passcode`,\n { tenantSlug, method: 'PUT', body: JSON.stringify({ passcode }) },\n ),\n\n clearPasscode: (tenantSlug: string, memberId: string) =>\n apiFetch<{ cleared: boolean }>(\n `/business-devices/operators/${memberId}/passcode`,\n { tenantSlug, method: 'DELETE' },\n ),\n\n setPosPermissions: (\n tenantSlug: string,\n memberId: string,\n permissions: PosPermissions,\n ) =>\n apiFetch<PosPermissions>(\n `/business-devices/operators/${memberId}/permissions`,\n { tenantSlug, method: 'PUT', body: JSON.stringify(permissions) },\n ),\n\n /**\n * Named configs, with how many machines follow each.\n *\n * `profiles/all` rather than `profiles`, because `:id` on the same controller\n * would swallow it — a route that reads as a list and resolves as a device\n * lookup is the kind of collision that fails at runtime and nowhere else.\n */\n profiles: (tenantSlug: string) =>\n apiFetch<{ profiles: DeviceProfile[] }>('/business-devices/profiles/all', {\n tenantSlug,\n }),\n\n createProfile: (\n tenantSlug: string,\n body: {\n name: string;\n config?: Partial<BusinessDeviceConfig>;\n isDefault?: boolean;\n },\n ) =>\n apiFetch<DeviceProfile>('/business-devices/profiles', {\n tenantSlug,\n method: 'POST',\n body: JSON.stringify(body),\n }),\n\n /** A patch. Sending one field must not reset the others on six machines. */\n updateProfile: (\n tenantSlug: string,\n id: string,\n body: {\n name?: string;\n config?: Partial<BusinessDeviceConfig>;\n isDefault?: boolean;\n },\n ) =>\n apiFetch<DeviceProfile>(`/business-devices/profiles/${id}`, {\n tenantSlug,\n method: 'PATCH',\n body: JSON.stringify(body),\n }),\n\n /** Refused while anything still follows it. */\n deleteProfile: (tenantSlug: string, id: string) =>\n apiFetch<{ deleted: boolean }>(`/business-devices/profiles/${id}`, {\n tenantSlug,\n method: 'DELETE',\n }),\n\n applyProfile: (tenantSlug: string, id: string, deviceIds: string[]) =>\n apiFetch<{ applied: number }>(`/business-devices/profiles/${id}/apply`, {\n tenantSlug,\n method: 'POST',\n body: JSON.stringify({ deviceIds }),\n }),\n};\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { BusinessLocation, CreateBusinessLocationData, UpdateBusinessLocationData, LocationPerformance } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Physical places the business operates from.
|
|
4
|
+
*
|
|
5
|
+
* Not to be confused with `locationsApi`, which is the served-cities
|
|
6
|
+
* footprint behind Settings → Service areas.
|
|
7
|
+
*/
|
|
8
|
+
export declare const businessLocationsApi: {
|
|
9
|
+
list: (tenantSlug: string, opts?: {
|
|
10
|
+
includeArchived?: boolean;
|
|
11
|
+
}) => Promise<BusinessLocation[]>;
|
|
12
|
+
create: (tenantSlug: string, data: CreateBusinessLocationData) => Promise<BusinessLocation>;
|
|
13
|
+
update: (tenantSlug: string, id: string, data: UpdateBusinessLocationData) => Promise<BusinessLocation>;
|
|
14
|
+
/**
|
|
15
|
+
* Orders and revenue per branch over the last `days`, or all-time when
|
|
16
|
+
* omitted. Order-sourced rather than analytics-sourced on purpose: analytics
|
|
17
|
+
* is session-keyed and would miss every in-person sale, which on a business
|
|
18
|
+
* with a counter is most of them.
|
|
19
|
+
*
|
|
20
|
+
* Locations that sold nothing come back with `orders: 0` — a quiet branch is
|
|
21
|
+
* the finding, so it must not be filtered out server-side.
|
|
22
|
+
*/
|
|
23
|
+
performance: (tenantSlug: string, days?: number) => Promise<LocationPerformance[]>;
|
|
24
|
+
/** Closes the location. Archived, not deleted — its history has to survive. */
|
|
25
|
+
archive: (tenantSlug: string, id: string) => Promise<void>;
|
|
26
|
+
};
|