@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,146 @@
|
|
|
1
|
+
import type { ContentItem, ContentListResponse, ContentItemResponse, CreateContentInput } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* `list`'s query, named rather than derived.
|
|
4
|
+
*
|
|
5
|
+
* `listAll` originally typed this as `Parameters<typeof contentApi.list>[2]`,
|
|
6
|
+
* which is a reference to the object being declared: TypeScript cannot resolve
|
|
7
|
+
* that while inferring the literal, so it fell back to `{}` for `list`'s
|
|
8
|
+
* RETURN type too — and every caller in the app suddenly had no `.data`. A
|
|
9
|
+
* self-referential type inside an object literal fails silently at the
|
|
10
|
+
* declaration and loudly everywhere else.
|
|
11
|
+
*/
|
|
12
|
+
export interface ContentListParams {
|
|
13
|
+
status?: string;
|
|
14
|
+
/** Server honours `active` (not `status`); false returns drafts. */
|
|
15
|
+
active?: boolean;
|
|
16
|
+
featured?: boolean;
|
|
17
|
+
behaviors?: string[];
|
|
18
|
+
page?: number;
|
|
19
|
+
limit?: number;
|
|
20
|
+
search?: string;
|
|
21
|
+
}
|
|
22
|
+
export declare const contentApi: {
|
|
23
|
+
/**
|
|
24
|
+
* List all content of a specific type
|
|
25
|
+
*/
|
|
26
|
+
list: (tenantSlug: string, contentType: string, params?: ContentListParams) => Promise<ContentListResponse>;
|
|
27
|
+
/**
|
|
28
|
+
* Every page of a content type, not the first.
|
|
29
|
+
*
|
|
30
|
+
* `list` with `limit: 200` is not "all collections"; it is the first two
|
|
31
|
+
* hundred, and a merchant past that had the rest silently disappear from a
|
|
32
|
+
* list that filters and paginates client-side. Reads `meta.pagination.total`
|
|
33
|
+
* to know when to stop, and stops regardless at CONTENT_PAGE_LIMIT pages.
|
|
34
|
+
*/
|
|
35
|
+
listAll: (tenantSlug: string, contentType: string, params?: ContentListParams) => Promise<ContentItem[]>;
|
|
36
|
+
/**
|
|
37
|
+
* Get a single content item by ID
|
|
38
|
+
*/
|
|
39
|
+
get: (tenantSlug: string, contentType: string, id: string) => Promise<ContentItemResponse>;
|
|
40
|
+
/**
|
|
41
|
+
* Get a single content item by slug
|
|
42
|
+
*/
|
|
43
|
+
getBySlug: (tenantSlug: string, contentType: string, slug: string) => Promise<ContentItemResponse>;
|
|
44
|
+
/**
|
|
45
|
+
* Create a new content item
|
|
46
|
+
*/
|
|
47
|
+
create: (tenantSlug: string, contentType: string, data: CreateContentInput) => Promise<ContentItemResponse>;
|
|
48
|
+
/**
|
|
49
|
+
* Update an existing content item
|
|
50
|
+
*/
|
|
51
|
+
update: (tenantSlug: string, contentType: string, id: string, data: Partial<CreateContentInput>) => Promise<ContentItemResponse>;
|
|
52
|
+
/**
|
|
53
|
+
* Delete a content item
|
|
54
|
+
*/
|
|
55
|
+
delete: (tenantSlug: string, contentType: string, id: string) => Promise<unknown>;
|
|
56
|
+
/**
|
|
57
|
+
* Reorder content items
|
|
58
|
+
*/
|
|
59
|
+
reorder: (tenantSlug: string, contentType: string, items: {
|
|
60
|
+
id: string;
|
|
61
|
+
sortOrder: number;
|
|
62
|
+
}[]) => Promise<unknown>;
|
|
63
|
+
/**
|
|
64
|
+
* Bulk update status — and it has to send `isActive`, not `status`.
|
|
65
|
+
*
|
|
66
|
+
* THIS WAS A SILENT NO-OP. The endpoint reads `body.isActive` (a boolean) and
|
|
67
|
+
* `BulkUpdateStatusUseCase` writes that one column; this client sent
|
|
68
|
+
* `{ ids, status: 'archived' }`, so `isActive` arrived undefined, Sequelize
|
|
69
|
+
* skipped the key, and `contentModel.update` wrote nothing. Both bulk
|
|
70
|
+
* Publish and bulk Archive selected rows, called the API, got a 200 with an
|
|
71
|
+
* `affected` count, reported success and changed nothing at all.
|
|
72
|
+
*
|
|
73
|
+
* It surfaced by trying to archive a product and finding it still in the Live
|
|
74
|
+
* list afterwards — which read as a UI race and was not one.
|
|
75
|
+
*
|
|
76
|
+
* The signature keeps a status word because that is what the call site means,
|
|
77
|
+
* but only two states are reachable: the column is a boolean, so `archived`
|
|
78
|
+
* and `draft` are the same write. Anything wanting a real third state needs a
|
|
79
|
+
* `status` column on content and a use case that sets it.
|
|
80
|
+
*/
|
|
81
|
+
bulkUpdateStatus: (tenantSlug: string, contentType: string, ids: string[], status: "draft" | "published" | "archived") => Promise<unknown>;
|
|
82
|
+
/**
|
|
83
|
+
* Bulk delete
|
|
84
|
+
*/
|
|
85
|
+
bulkDelete: (tenantSlug: string, contentType: string, ids: string[]) => Promise<unknown>;
|
|
86
|
+
/**
|
|
87
|
+
* Assign content to a single customer (Customer Programs)
|
|
88
|
+
* Pass customerId: null to unassign.
|
|
89
|
+
*/
|
|
90
|
+
assign: (tenantSlug: string, contentType: string, id: string, customerId: string | null) => Promise<ContentItemResponse>;
|
|
91
|
+
/**
|
|
92
|
+
* Bulk-assign content to all active subscribers of a plan or tier.
|
|
93
|
+
* Returns { created, skipped, failed }.
|
|
94
|
+
*/
|
|
95
|
+
assignBulk: (tenantSlug: string, contentType: string, id: string, params: {
|
|
96
|
+
planId?: string;
|
|
97
|
+
tierId?: string;
|
|
98
|
+
}) => Promise<{
|
|
99
|
+
data: {
|
|
100
|
+
created: number;
|
|
101
|
+
skipped: number;
|
|
102
|
+
failed: number;
|
|
103
|
+
};
|
|
104
|
+
}>;
|
|
105
|
+
/**
|
|
106
|
+
* Create an event series from a parent event.
|
|
107
|
+
*/
|
|
108
|
+
createSeries: (tenantSlug: string, contentType: string, id: string, recurrence: {
|
|
109
|
+
frequency: "daily" | "weekly" | "biweekly" | "monthly";
|
|
110
|
+
interval?: number;
|
|
111
|
+
occurrences?: number;
|
|
112
|
+
endDate?: string;
|
|
113
|
+
}, maxOccurrences?: number) => Promise<{
|
|
114
|
+
data: {
|
|
115
|
+
parentId: string;
|
|
116
|
+
created: number;
|
|
117
|
+
occurrences: ContentItem[];
|
|
118
|
+
errors: {
|
|
119
|
+
date: string;
|
|
120
|
+
error: string;
|
|
121
|
+
}[];
|
|
122
|
+
};
|
|
123
|
+
}>;
|
|
124
|
+
/**
|
|
125
|
+
* List all occurrences in an event series.
|
|
126
|
+
*/
|
|
127
|
+
listSeries: (tenantSlug: string, contentType: string, id: string, options?: {
|
|
128
|
+
upcoming?: boolean;
|
|
129
|
+
}) => Promise<{
|
|
130
|
+
data: {
|
|
131
|
+
parent: ContentItem;
|
|
132
|
+
recurrence: {
|
|
133
|
+
frequency: string;
|
|
134
|
+
interval?: number;
|
|
135
|
+
occurrences?: number;
|
|
136
|
+
endDate?: string;
|
|
137
|
+
} | null;
|
|
138
|
+
occurrences: ContentItem[];
|
|
139
|
+
totalOccurrences: number;
|
|
140
|
+
};
|
|
141
|
+
}>;
|
|
142
|
+
/**
|
|
143
|
+
* Delete a single series occurrence.
|
|
144
|
+
*/
|
|
145
|
+
deleteSeriesOccurrence: (tenantSlug: string, contentType: string, parentId: string, childId: string) => Promise<unknown>;
|
|
146
|
+
};
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import { stripNonMediaKeys } from "@withpotter/lib/media-utils";
|
|
2
|
+
import { apiFetch } from "./core";
|
|
3
|
+
const CONTENT_PAGE_SIZE = 200;
|
|
4
|
+
const CONTENT_PAGE_LIMIT = 5;
|
|
5
|
+
const contentApi = {
|
|
6
|
+
/**
|
|
7
|
+
* List all content of a specific type
|
|
8
|
+
*/
|
|
9
|
+
list: (tenantSlug, contentType, params) => {
|
|
10
|
+
const searchParams = new URLSearchParams();
|
|
11
|
+
if (params?.status) searchParams.set("status", params.status);
|
|
12
|
+
if (params?.active !== void 0)
|
|
13
|
+
searchParams.set("active", String(params.active));
|
|
14
|
+
if (params?.featured !== void 0)
|
|
15
|
+
searchParams.set("featured", String(params.featured));
|
|
16
|
+
if (params?.behaviors?.length)
|
|
17
|
+
searchParams.set("behaviors", params.behaviors.join(","));
|
|
18
|
+
if (params?.page) searchParams.set("page", String(params.page));
|
|
19
|
+
if (params?.limit) searchParams.set("limit", String(params.limit));
|
|
20
|
+
if (params?.search) searchParams.set("search", params.search);
|
|
21
|
+
const query = searchParams.toString() ? `?${searchParams.toString()}` : "";
|
|
22
|
+
return apiFetch(`/content/${contentType}${query}`, {
|
|
23
|
+
tenantSlug
|
|
24
|
+
});
|
|
25
|
+
},
|
|
26
|
+
/**
|
|
27
|
+
* Every page of a content type, not the first.
|
|
28
|
+
*
|
|
29
|
+
* `list` with `limit: 200` is not "all collections"; it is the first two
|
|
30
|
+
* hundred, and a merchant past that had the rest silently disappear from a
|
|
31
|
+
* list that filters and paginates client-side. Reads `meta.pagination.total`
|
|
32
|
+
* to know when to stop, and stops regardless at CONTENT_PAGE_LIMIT pages.
|
|
33
|
+
*/
|
|
34
|
+
listAll: async (tenantSlug, contentType, params) => {
|
|
35
|
+
const limit = params?.limit ?? CONTENT_PAGE_SIZE;
|
|
36
|
+
const first = await contentApi.list(tenantSlug, contentType, {
|
|
37
|
+
...params,
|
|
38
|
+
limit,
|
|
39
|
+
page: 1
|
|
40
|
+
});
|
|
41
|
+
const items = [...first.data || []];
|
|
42
|
+
const total = first.meta?.pagination?.total ?? items.length;
|
|
43
|
+
const pages = Math.min(
|
|
44
|
+
Math.max(1, Math.ceil(total / limit)),
|
|
45
|
+
CONTENT_PAGE_LIMIT
|
|
46
|
+
);
|
|
47
|
+
if (pages > 1) {
|
|
48
|
+
const rest = await Promise.all(
|
|
49
|
+
Array.from(
|
|
50
|
+
{ length: pages - 1 },
|
|
51
|
+
(_, i) => contentApi.list(tenantSlug, contentType, {
|
|
52
|
+
...params,
|
|
53
|
+
limit,
|
|
54
|
+
page: i + 2
|
|
55
|
+
})
|
|
56
|
+
)
|
|
57
|
+
);
|
|
58
|
+
for (const result of rest) items.push(...result.data || []);
|
|
59
|
+
}
|
|
60
|
+
return items;
|
|
61
|
+
},
|
|
62
|
+
/**
|
|
63
|
+
* Get a single content item by ID
|
|
64
|
+
*/
|
|
65
|
+
get: (tenantSlug, contentType, id) => apiFetch(`/content/${contentType}/${id}`, {
|
|
66
|
+
tenantSlug
|
|
67
|
+
}),
|
|
68
|
+
/**
|
|
69
|
+
* Get a single content item by slug
|
|
70
|
+
*/
|
|
71
|
+
getBySlug: (tenantSlug, contentType, slug) => apiFetch(`/content/${contentType}/slug/${slug}`, {
|
|
72
|
+
tenantSlug
|
|
73
|
+
}),
|
|
74
|
+
/**
|
|
75
|
+
* Create a new content item
|
|
76
|
+
*/
|
|
77
|
+
create: (tenantSlug, contentType, data) => apiFetch(`/content/${contentType}`, {
|
|
78
|
+
method: "POST",
|
|
79
|
+
tenantSlug,
|
|
80
|
+
// See `stripNonMediaKeys`: the API forbids non-whitelisted keys, so one
|
|
81
|
+
// stray `id` on a media object rejects the entire create.
|
|
82
|
+
body: JSON.stringify(stripNonMediaKeys(data))
|
|
83
|
+
}),
|
|
84
|
+
/**
|
|
85
|
+
* Update an existing content item
|
|
86
|
+
*/
|
|
87
|
+
update: (tenantSlug, contentType, id, data) => apiFetch(`/content/${contentType}/${id}`, {
|
|
88
|
+
method: "PUT",
|
|
89
|
+
tenantSlug,
|
|
90
|
+
// Same trap as create: an edit round-trips the media it just read back,
|
|
91
|
+
// which is exactly where a client-side `id` gets reattached.
|
|
92
|
+
body: JSON.stringify(stripNonMediaKeys(data))
|
|
93
|
+
}),
|
|
94
|
+
/**
|
|
95
|
+
* Delete a content item
|
|
96
|
+
*/
|
|
97
|
+
delete: (tenantSlug, contentType, id) => apiFetch(`/content/${contentType}/${id}`, {
|
|
98
|
+
method: "DELETE",
|
|
99
|
+
tenantSlug
|
|
100
|
+
}),
|
|
101
|
+
/**
|
|
102
|
+
* Reorder content items
|
|
103
|
+
*/
|
|
104
|
+
reorder: (tenantSlug, contentType, items) => apiFetch(`/content/${contentType}/reorder`, {
|
|
105
|
+
method: "POST",
|
|
106
|
+
tenantSlug,
|
|
107
|
+
body: JSON.stringify({ items })
|
|
108
|
+
}),
|
|
109
|
+
/**
|
|
110
|
+
* Bulk update status — and it has to send `isActive`, not `status`.
|
|
111
|
+
*
|
|
112
|
+
* THIS WAS A SILENT NO-OP. The endpoint reads `body.isActive` (a boolean) and
|
|
113
|
+
* `BulkUpdateStatusUseCase` writes that one column; this client sent
|
|
114
|
+
* `{ ids, status: 'archived' }`, so `isActive` arrived undefined, Sequelize
|
|
115
|
+
* skipped the key, and `contentModel.update` wrote nothing. Both bulk
|
|
116
|
+
* Publish and bulk Archive selected rows, called the API, got a 200 with an
|
|
117
|
+
* `affected` count, reported success and changed nothing at all.
|
|
118
|
+
*
|
|
119
|
+
* It surfaced by trying to archive a product and finding it still in the Live
|
|
120
|
+
* list afterwards — which read as a UI race and was not one.
|
|
121
|
+
*
|
|
122
|
+
* The signature keeps a status word because that is what the call site means,
|
|
123
|
+
* but only two states are reachable: the column is a boolean, so `archived`
|
|
124
|
+
* and `draft` are the same write. Anything wanting a real third state needs a
|
|
125
|
+
* `status` column on content and a use case that sets it.
|
|
126
|
+
*/
|
|
127
|
+
bulkUpdateStatus: (tenantSlug, contentType, ids, status) => apiFetch(`/content/${contentType}/bulk/status`, {
|
|
128
|
+
method: "POST",
|
|
129
|
+
tenantSlug,
|
|
130
|
+
body: JSON.stringify({ ids, isActive: status === "published" })
|
|
131
|
+
}),
|
|
132
|
+
/**
|
|
133
|
+
* Bulk delete
|
|
134
|
+
*/
|
|
135
|
+
bulkDelete: (tenantSlug, contentType, ids) => apiFetch(`/content/${contentType}/bulk/delete`, {
|
|
136
|
+
method: "POST",
|
|
137
|
+
tenantSlug,
|
|
138
|
+
body: JSON.stringify({ ids })
|
|
139
|
+
}),
|
|
140
|
+
/**
|
|
141
|
+
* Assign content to a single customer (Customer Programs)
|
|
142
|
+
* Pass customerId: null to unassign.
|
|
143
|
+
*/
|
|
144
|
+
assign: (tenantSlug, contentType, id, customerId) => apiFetch(`/content/${contentType}/${id}/assign`, {
|
|
145
|
+
method: "POST",
|
|
146
|
+
tenantSlug,
|
|
147
|
+
body: JSON.stringify({ customerId })
|
|
148
|
+
}),
|
|
149
|
+
/**
|
|
150
|
+
* Bulk-assign content to all active subscribers of a plan or tier.
|
|
151
|
+
* Returns { created, skipped, failed }.
|
|
152
|
+
*/
|
|
153
|
+
assignBulk: (tenantSlug, contentType, id, params) => apiFetch(
|
|
154
|
+
`/content/${contentType}/${id}/assign-bulk`,
|
|
155
|
+
{
|
|
156
|
+
method: "POST",
|
|
157
|
+
tenantSlug,
|
|
158
|
+
body: JSON.stringify(params)
|
|
159
|
+
}
|
|
160
|
+
),
|
|
161
|
+
/**
|
|
162
|
+
* Create an event series from a parent event.
|
|
163
|
+
*/
|
|
164
|
+
createSeries: (tenantSlug, contentType, id, recurrence, maxOccurrences) => apiFetch(`/content/${contentType}/${id}/series`, {
|
|
165
|
+
method: "POST",
|
|
166
|
+
tenantSlug,
|
|
167
|
+
body: JSON.stringify({ recurrence, maxOccurrences })
|
|
168
|
+
}),
|
|
169
|
+
/**
|
|
170
|
+
* List all occurrences in an event series.
|
|
171
|
+
*/
|
|
172
|
+
listSeries: (tenantSlug, contentType, id, options) => apiFetch(
|
|
173
|
+
`/content/${contentType}/${id}/series${options?.upcoming ? "?upcoming=true" : ""}`,
|
|
174
|
+
{ tenantSlug }
|
|
175
|
+
),
|
|
176
|
+
/**
|
|
177
|
+
* Delete a single series occurrence.
|
|
178
|
+
*/
|
|
179
|
+
deleteSeriesOccurrence: (tenantSlug, contentType, parentId, childId) => apiFetch(`/content/${contentType}/${parentId}/series/${childId}`, {
|
|
180
|
+
method: "DELETE",
|
|
181
|
+
tenantSlug
|
|
182
|
+
})
|
|
183
|
+
};
|
|
184
|
+
export {
|
|
185
|
+
contentApi
|
|
186
|
+
};
|
|
187
|
+
//# sourceMappingURL=content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/api/content.ts"],"sourcesContent":["import { stripNonMediaKeys } from '@withpotter/lib/media-utils';\nimport { apiFetch } from './core';\nimport type {\n ContentItem,\n ContentListResponse,\n ContentItemResponse,\n CreateContentInput,\n} from './types';\n\n/** Items per request in `listAll`. */\nconst CONTENT_PAGE_SIZE = 200;\n/** Stop after this many pages rather than walking an unbounded library. */\nconst CONTENT_PAGE_LIMIT = 5;\n\n/**\n * `list`'s query, named rather than derived.\n *\n * `listAll` originally typed this as `Parameters<typeof contentApi.list>[2]`,\n * which is a reference to the object being declared: TypeScript cannot resolve\n * that while inferring the literal, so it fell back to `{}` for `list`'s\n * RETURN type too — and every caller in the app suddenly had no `.data`. A\n * self-referential type inside an object literal fails silently at the\n * declaration and loudly everywhere else.\n */\nexport interface ContentListParams {\n status?: string;\n /** Server honours `active` (not `status`); false returns drafts. */\n active?: boolean;\n featured?: boolean;\n behaviors?: string[];\n page?: number;\n limit?: number;\n search?: string;\n}\n\nexport const contentApi = {\n /**\n * List all content of a specific type\n */\n list: (\n tenantSlug: string,\n contentType: string,\n params?: ContentListParams,\n ): Promise<ContentListResponse> => {\n const searchParams = new URLSearchParams();\n if (params?.status) searchParams.set('status', params.status);\n if (params?.active !== undefined)\n searchParams.set('active', String(params.active));\n if (params?.featured !== undefined)\n searchParams.set('featured', String(params.featured));\n if (params?.behaviors?.length)\n searchParams.set('behaviors', params.behaviors.join(','));\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 const query = searchParams.toString() ? `?${searchParams.toString()}` : '';\n return apiFetch<ContentListResponse>(`/content/${contentType}${query}`, {\n tenantSlug,\n });\n },\n\n /**\n * Every page of a content type, not the first.\n *\n * `list` with `limit: 200` is not \"all collections\"; it is the first two\n * hundred, and a merchant past that had the rest silently disappear from a\n * list that filters and paginates client-side. Reads `meta.pagination.total`\n * to know when to stop, and stops regardless at CONTENT_PAGE_LIMIT pages.\n */\n listAll: async (\n tenantSlug: string,\n contentType: string,\n params?: ContentListParams,\n ): Promise<ContentItem[]> => {\n const limit = params?.limit ?? CONTENT_PAGE_SIZE;\n const first = await contentApi.list(tenantSlug, contentType, {\n ...params,\n limit,\n page: 1,\n });\n const items = [...(first.data || [])];\n const total = first.meta?.pagination?.total ?? items.length;\n const pages = Math.min(\n Math.max(1, Math.ceil(total / limit)),\n CONTENT_PAGE_LIMIT,\n );\n if (pages > 1) {\n const rest = await Promise.all(\n Array.from({ length: pages - 1 }, (_, i) =>\n contentApi.list(tenantSlug, contentType, {\n ...params,\n limit,\n page: i + 2,\n }),\n ),\n );\n for (const result of rest) items.push(...(result.data || []));\n }\n return items;\n },\n\n /**\n * Get a single content item by ID\n */\n get: (tenantSlug: string, contentType: string, id: string) =>\n apiFetch<ContentItemResponse>(`/content/${contentType}/${id}`, {\n tenantSlug,\n }),\n\n /**\n * Get a single content item by slug\n */\n getBySlug: (tenantSlug: string, contentType: string, slug: string) =>\n apiFetch<ContentItemResponse>(`/content/${contentType}/slug/${slug}`, {\n tenantSlug,\n }),\n\n /**\n * Create a new content item\n */\n create: (tenantSlug: string, contentType: string, data: CreateContentInput) =>\n apiFetch<ContentItemResponse>(`/content/${contentType}`, {\n method: 'POST',\n tenantSlug,\n // See `stripNonMediaKeys`: the API forbids non-whitelisted keys, so one\n // stray `id` on a media object rejects the entire create.\n body: JSON.stringify(stripNonMediaKeys(data)),\n }),\n\n /**\n * Update an existing content item\n */\n update: (\n tenantSlug: string,\n contentType: string,\n id: string,\n data: Partial<CreateContentInput>,\n ) =>\n apiFetch<ContentItemResponse>(`/content/${contentType}/${id}`, {\n method: 'PUT',\n tenantSlug,\n // Same trap as create: an edit round-trips the media it just read back,\n // which is exactly where a client-side `id` gets reattached.\n body: JSON.stringify(stripNonMediaKeys(data)),\n }),\n\n /**\n * Delete a content item\n */\n delete: (tenantSlug: string, contentType: string, id: string) =>\n apiFetch(`/content/${contentType}/${id}`, {\n method: 'DELETE',\n tenantSlug,\n }),\n\n /**\n * Reorder content items\n */\n reorder: (\n tenantSlug: string,\n contentType: string,\n items: { id: string; sortOrder: number }[],\n ) =>\n apiFetch(`/content/${contentType}/reorder`, {\n method: 'POST',\n tenantSlug,\n body: JSON.stringify({ items }),\n }),\n\n /**\n * Bulk update status — and it has to send `isActive`, not `status`.\n *\n * THIS WAS A SILENT NO-OP. The endpoint reads `body.isActive` (a boolean) and\n * `BulkUpdateStatusUseCase` writes that one column; this client sent\n * `{ ids, status: 'archived' }`, so `isActive` arrived undefined, Sequelize\n * skipped the key, and `contentModel.update` wrote nothing. Both bulk\n * Publish and bulk Archive selected rows, called the API, got a 200 with an\n * `affected` count, reported success and changed nothing at all.\n *\n * It surfaced by trying to archive a product and finding it still in the Live\n * list afterwards — which read as a UI race and was not one.\n *\n * The signature keeps a status word because that is what the call site means,\n * but only two states are reachable: the column is a boolean, so `archived`\n * and `draft` are the same write. Anything wanting a real third state needs a\n * `status` column on content and a use case that sets it.\n */\n bulkUpdateStatus: (\n tenantSlug: string,\n contentType: string,\n ids: string[],\n status: 'draft' | 'published' | 'archived',\n ) =>\n apiFetch(`/content/${contentType}/bulk/status`, {\n method: 'POST',\n tenantSlug,\n body: JSON.stringify({ ids, isActive: status === 'published' }),\n }),\n\n /**\n * Bulk delete\n */\n bulkDelete: (tenantSlug: string, contentType: string, ids: string[]) =>\n apiFetch(`/content/${contentType}/bulk/delete`, {\n method: 'POST',\n tenantSlug,\n body: JSON.stringify({ ids }),\n }),\n\n /**\n * Assign content to a single customer (Customer Programs)\n * Pass customerId: null to unassign.\n */\n assign: (\n tenantSlug: string,\n contentType: string,\n id: string,\n customerId: string | null,\n ) =>\n apiFetch<ContentItemResponse>(`/content/${contentType}/${id}/assign`, {\n method: 'POST',\n tenantSlug,\n body: JSON.stringify({ customerId }),\n }),\n\n /**\n * Bulk-assign content to all active subscribers of a plan or tier.\n * Returns { created, skipped, failed }.\n */\n assignBulk: (\n tenantSlug: string,\n contentType: string,\n id: string,\n params: { planId?: string; tierId?: string },\n ) =>\n apiFetch<{ data: { created: number; skipped: number; failed: number } }>(\n `/content/${contentType}/${id}/assign-bulk`,\n {\n method: 'POST',\n tenantSlug,\n body: JSON.stringify(params),\n },\n ),\n\n /**\n * Create an event series from a parent event.\n */\n createSeries: (\n tenantSlug: string,\n contentType: string,\n id: string,\n recurrence: {\n frequency: 'daily' | 'weekly' | 'biweekly' | 'monthly';\n interval?: number;\n occurrences?: number;\n endDate?: string;\n },\n maxOccurrences?: number,\n ) =>\n apiFetch<{\n data: {\n parentId: string;\n created: number;\n occurrences: ContentItem[];\n errors: { date: string; error: string }[];\n };\n }>(`/content/${contentType}/${id}/series`, {\n method: 'POST',\n tenantSlug,\n body: JSON.stringify({ recurrence, maxOccurrences }),\n }),\n\n /**\n * List all occurrences in an event series.\n */\n listSeries: (\n tenantSlug: string,\n contentType: string,\n id: string,\n options?: { upcoming?: boolean },\n ) =>\n apiFetch<{\n data: {\n parent: ContentItem;\n recurrence: {\n frequency: string;\n interval?: number;\n occurrences?: number;\n endDate?: string;\n } | null;\n occurrences: ContentItem[];\n totalOccurrences: number;\n };\n }>(\n `/content/${contentType}/${id}/series${options?.upcoming ? '?upcoming=true' : ''}`,\n { tenantSlug },\n ),\n\n /**\n * Delete a single series occurrence.\n */\n deleteSeriesOccurrence: (\n tenantSlug: string,\n contentType: string,\n parentId: string,\n childId: string,\n ) =>\n apiFetch(`/content/${contentType}/${parentId}/series/${childId}`, {\n method: 'DELETE',\n tenantSlug,\n }),\n};\n\n// ============================================\n// BOOKINGS API (special endpoint, not under /content)\n// ============================================\n"],"mappings":"AAAA,SAAS,yBAAyB;AAClC,SAAS,gBAAgB;AASzB,MAAM,oBAAoB;AAE1B,MAAM,qBAAqB;AAuBpB,MAAM,aAAa;AAAA;AAAA;AAAA;AAAA,EAIxB,MAAM,CACJ,YACA,aACA,WACiC;AACjC,UAAM,eAAe,IAAI,gBAAgB;AACzC,QAAI,QAAQ,OAAQ,cAAa,IAAI,UAAU,OAAO,MAAM;AAC5D,QAAI,QAAQ,WAAW;AACrB,mBAAa,IAAI,UAAU,OAAO,OAAO,MAAM,CAAC;AAClD,QAAI,QAAQ,aAAa;AACvB,mBAAa,IAAI,YAAY,OAAO,OAAO,QAAQ,CAAC;AACtD,QAAI,QAAQ,WAAW;AACrB,mBAAa,IAAI,aAAa,OAAO,UAAU,KAAK,GAAG,CAAC;AAC1D,QAAI,QAAQ,KAAM,cAAa,IAAI,QAAQ,OAAO,OAAO,IAAI,CAAC;AAC9D,QAAI,QAAQ,MAAO,cAAa,IAAI,SAAS,OAAO,OAAO,KAAK,CAAC;AACjE,QAAI,QAAQ,OAAQ,cAAa,IAAI,UAAU,OAAO,MAAM;AAC5D,UAAM,QAAQ,aAAa,SAAS,IAAI,IAAI,aAAa,SAAS,CAAC,KAAK;AACxE,WAAO,SAA8B,YAAY,WAAW,GAAG,KAAK,IAAI;AAAA,MACtE;AAAA,IACF,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,SAAS,OACP,YACA,aACA,WAC2B;AAC3B,UAAM,QAAQ,QAAQ,SAAS;AAC/B,UAAM,QAAQ,MAAM,WAAW,KAAK,YAAY,aAAa;AAAA,MAC3D,GAAG;AAAA,MACH;AAAA,MACA,MAAM;AAAA,IACR,CAAC;AACD,UAAM,QAAQ,CAAC,GAAI,MAAM,QAAQ,CAAC,CAAE;AACpC,UAAM,QAAQ,MAAM,MAAM,YAAY,SAAS,MAAM;AACrD,UAAM,QAAQ,KAAK;AAAA,MACjB,KAAK,IAAI,GAAG,KAAK,KAAK,QAAQ,KAAK,CAAC;AAAA,MACpC;AAAA,IACF;AACA,QAAI,QAAQ,GAAG;AACb,YAAM,OAAO,MAAM,QAAQ;AAAA,QACzB,MAAM;AAAA,UAAK,EAAE,QAAQ,QAAQ,EAAE;AAAA,UAAG,CAAC,GAAG,MACpC,WAAW,KAAK,YAAY,aAAa;AAAA,YACvC,GAAG;AAAA,YACH;AAAA,YACA,MAAM,IAAI;AAAA,UACZ,CAAC;AAAA,QACH;AAAA,MACF;AACA,iBAAW,UAAU,KAAM,OAAM,KAAK,GAAI,OAAO,QAAQ,CAAC,CAAE;AAAA,IAC9D;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,KAAK,CAAC,YAAoB,aAAqB,OAC7C,SAA8B,YAAY,WAAW,IAAI,EAAE,IAAI;AAAA,IAC7D;AAAA,EACF,CAAC;AAAA;AAAA;AAAA;AAAA,EAKH,WAAW,CAAC,YAAoB,aAAqB,SACnD,SAA8B,YAAY,WAAW,SAAS,IAAI,IAAI;AAAA,IACpE;AAAA,EACF,CAAC;AAAA;AAAA;AAAA;AAAA,EAKH,QAAQ,CAAC,YAAoB,aAAqB,SAChD,SAA8B,YAAY,WAAW,IAAI;AAAA,IACvD,QAAQ;AAAA,IACR;AAAA;AAAA;AAAA,IAGA,MAAM,KAAK,UAAU,kBAAkB,IAAI,CAAC;AAAA,EAC9C,CAAC;AAAA;AAAA;AAAA;AAAA,EAKH,QAAQ,CACN,YACA,aACA,IACA,SAEA,SAA8B,YAAY,WAAW,IAAI,EAAE,IAAI;AAAA,IAC7D,QAAQ;AAAA,IACR;AAAA;AAAA;AAAA,IAGA,MAAM,KAAK,UAAU,kBAAkB,IAAI,CAAC;AAAA,EAC9C,CAAC;AAAA;AAAA;AAAA;AAAA,EAKH,QAAQ,CAAC,YAAoB,aAAqB,OAChD,SAAS,YAAY,WAAW,IAAI,EAAE,IAAI;AAAA,IACxC,QAAQ;AAAA,IACR;AAAA,EACF,CAAC;AAAA;AAAA;AAAA;AAAA,EAKH,SAAS,CACP,YACA,aACA,UAEA,SAAS,YAAY,WAAW,YAAY;AAAA,IAC1C,QAAQ;AAAA,IACR;AAAA,IACA,MAAM,KAAK,UAAU,EAAE,MAAM,CAAC;AAAA,EAChC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAoBH,kBAAkB,CAChB,YACA,aACA,KACA,WAEA,SAAS,YAAY,WAAW,gBAAgB;AAAA,IAC9C,QAAQ;AAAA,IACR;AAAA,IACA,MAAM,KAAK,UAAU,EAAE,KAAK,UAAU,WAAW,YAAY,CAAC;AAAA,EAChE,CAAC;AAAA;AAAA;AAAA;AAAA,EAKH,YAAY,CAAC,YAAoB,aAAqB,QACpD,SAAS,YAAY,WAAW,gBAAgB;AAAA,IAC9C,QAAQ;AAAA,IACR;AAAA,IACA,MAAM,KAAK,UAAU,EAAE,IAAI,CAAC;AAAA,EAC9B,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMH,QAAQ,CACN,YACA,aACA,IACA,eAEA,SAA8B,YAAY,WAAW,IAAI,EAAE,WAAW;AAAA,IACpE,QAAQ;AAAA,IACR;AAAA,IACA,MAAM,KAAK,UAAU,EAAE,WAAW,CAAC;AAAA,EACrC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMH,YAAY,CACV,YACA,aACA,IACA,WAEA;AAAA,IACE,YAAY,WAAW,IAAI,EAAE;AAAA,IAC7B;AAAA,MACE,QAAQ;AAAA,MACR;AAAA,MACA,MAAM,KAAK,UAAU,MAAM;AAAA,IAC7B;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKF,cAAc,CACZ,YACA,aACA,IACA,YAMA,mBAEA,SAOG,YAAY,WAAW,IAAI,EAAE,WAAW;AAAA,IACzC,QAAQ;AAAA,IACR;AAAA,IACA,MAAM,KAAK,UAAU,EAAE,YAAY,eAAe,CAAC;AAAA,EACrD,CAAC;AAAA;AAAA;AAAA;AAAA,EAKH,YAAY,CACV,YACA,aACA,IACA,YAEA;AAAA,IAaE,YAAY,WAAW,IAAI,EAAE,UAAU,SAAS,WAAW,mBAAmB,EAAE;AAAA,IAChF,EAAE,WAAW;AAAA,EACf;AAAA;AAAA;AAAA;AAAA,EAKF,wBAAwB,CACtB,YACA,aACA,UACA,YAEA,SAAS,YAAY,WAAW,IAAI,QAAQ,WAAW,OAAO,IAAI;AAAA,IAChE,QAAQ;AAAA,IACR;AAAA,EACF,CAAC;AACL;","names":[]}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WhatsApp conversations — the half of the Inbox that was typed in by hand.
|
|
3
|
+
*
|
|
4
|
+
* The Inbox has always said it holds "everything a customer said to you", and
|
|
5
|
+
* it held two things a customer wrote on OUR surfaces: an enquiry form and a
|
|
6
|
+
* review. The channel they actually use in this market was represented by a
|
|
7
|
+
* dropdown value on "Log enquiry", where a merchant re-typed a message they had
|
|
8
|
+
* already read on their phone.
|
|
9
|
+
*/
|
|
10
|
+
export type ConversationDirection = 'inbound' | 'outbound';
|
|
11
|
+
export interface ConversationMessage {
|
|
12
|
+
id: string;
|
|
13
|
+
direction: ConversationDirection;
|
|
14
|
+
body: string;
|
|
15
|
+
mediaUrl: string | null;
|
|
16
|
+
mediaType: string | null;
|
|
17
|
+
readAt: string | null;
|
|
18
|
+
createdAt: string;
|
|
19
|
+
}
|
|
20
|
+
export interface ConversationThread {
|
|
21
|
+
/** Digits, country code resolved — the way the API stores a contact. */
|
|
22
|
+
contact: string;
|
|
23
|
+
memberId: string | null;
|
|
24
|
+
memberName: string | null;
|
|
25
|
+
lastMessageAt: string;
|
|
26
|
+
lastInboundAt: string | null;
|
|
27
|
+
lastBody: string;
|
|
28
|
+
lastDirection: ConversationDirection;
|
|
29
|
+
unread: number;
|
|
30
|
+
/**
|
|
31
|
+
* Whether WhatsApp will still accept a free-form reply.
|
|
32
|
+
*
|
|
33
|
+
* Computed by the API against the same clock its reachable-contacts count
|
|
34
|
+
* uses, rather than derived here from `lastInboundAt` — two answers to "is
|
|
35
|
+
* this open" drifting by a request's worth of time would show a merchant an
|
|
36
|
+
* open reply box on a conversation the send would then refuse.
|
|
37
|
+
*/
|
|
38
|
+
windowOpen: boolean;
|
|
39
|
+
}
|
|
40
|
+
export declare const conversationsApi: {
|
|
41
|
+
/**
|
|
42
|
+
* Two numbers for the sidebar. Its own route rather than a count taken from
|
|
43
|
+
* `threads`, which reads every conversation a business has — the sidebar
|
|
44
|
+
* renders on every page.
|
|
45
|
+
*/
|
|
46
|
+
unread: (tenantSlug: string) => Promise<{
|
|
47
|
+
threads: number;
|
|
48
|
+
messages: number;
|
|
49
|
+
}>;
|
|
50
|
+
threads: (tenantSlug: string) => Promise<{
|
|
51
|
+
threads: ConversationThread[];
|
|
52
|
+
}>;
|
|
53
|
+
thread: (tenantSlug: string, contact: string) => Promise<{
|
|
54
|
+
contact: string;
|
|
55
|
+
messages: ConversationMessage[];
|
|
56
|
+
}>;
|
|
57
|
+
markRead: (tenantSlug: string, contact: string) => Promise<{
|
|
58
|
+
marked: number;
|
|
59
|
+
}>;
|
|
60
|
+
reply: (tenantSlug: string, contact: string, body: string, mediaUrl?: string) => Promise<{
|
|
61
|
+
sent: boolean;
|
|
62
|
+
messageId: string | null;
|
|
63
|
+
}>;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Whether an attachment is something a browser can load.
|
|
67
|
+
*
|
|
68
|
+
* Neither provider hands over a public URL: Twilio's needs Twilio's
|
|
69
|
+
* credentials on every request and Meta gives an id that has to be exchanged
|
|
70
|
+
* for a short-lived signed link. The API re-hosts inbound media after storing
|
|
71
|
+
* the message, so anything still wearing a provider shape is one whose
|
|
72
|
+
* download has not landed — or failed, which is allowed. Pointing an `<img>`
|
|
73
|
+
* at either would draw a broken image where a customer's photo should be, and
|
|
74
|
+
* a broken image reads as a lost message.
|
|
75
|
+
*
|
|
76
|
+
* The same rule as `isHostedMedia` in potter-api, and it has to stay the same:
|
|
77
|
+
* the two decide the same question on either side of the wire.
|
|
78
|
+
*/
|
|
79
|
+
export declare function isRenderableMedia(url: string | null): url is string;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { apiFetch } from "./core";
|
|
2
|
+
const conversationsApi = {
|
|
3
|
+
/**
|
|
4
|
+
* Two numbers for the sidebar. Its own route rather than a count taken from
|
|
5
|
+
* `threads`, which reads every conversation a business has — the sidebar
|
|
6
|
+
* renders on every page.
|
|
7
|
+
*/
|
|
8
|
+
unread: (tenantSlug) => apiFetch(
|
|
9
|
+
"/communications/whatsapp/unread",
|
|
10
|
+
{ tenantSlug }
|
|
11
|
+
),
|
|
12
|
+
threads: (tenantSlug) => apiFetch(
|
|
13
|
+
"/communications/whatsapp/threads",
|
|
14
|
+
{ tenantSlug }
|
|
15
|
+
),
|
|
16
|
+
thread: (tenantSlug, contact) => apiFetch(
|
|
17
|
+
`/communications/whatsapp/threads/${encodeURIComponent(contact)}`,
|
|
18
|
+
{ tenantSlug }
|
|
19
|
+
),
|
|
20
|
+
markRead: (tenantSlug, contact) => apiFetch(
|
|
21
|
+
`/communications/whatsapp/threads/${encodeURIComponent(contact)}/read`,
|
|
22
|
+
{ method: "POST", tenantSlug }
|
|
23
|
+
),
|
|
24
|
+
reply: (tenantSlug, contact, body, mediaUrl) => apiFetch(
|
|
25
|
+
`/communications/whatsapp/threads/${encodeURIComponent(contact)}/reply`,
|
|
26
|
+
{
|
|
27
|
+
method: "POST",
|
|
28
|
+
tenantSlug,
|
|
29
|
+
body: JSON.stringify({ body, mediaUrl })
|
|
30
|
+
}
|
|
31
|
+
)
|
|
32
|
+
};
|
|
33
|
+
function isRenderableMedia(url) {
|
|
34
|
+
if (!url) return false;
|
|
35
|
+
return !url.startsWith("meta:") && !url.includes("api.twilio.com");
|
|
36
|
+
}
|
|
37
|
+
export {
|
|
38
|
+
conversationsApi,
|
|
39
|
+
isRenderableMedia
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=conversations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/api/conversations.ts"],"sourcesContent":["import { apiFetch } from './core';\n\n/**\n * WhatsApp conversations — the half of the Inbox that was typed in by hand.\n *\n * The Inbox has always said it holds \"everything a customer said to you\", and\n * it held two things a customer wrote on OUR surfaces: an enquiry form and a\n * review. The channel they actually use in this market was represented by a\n * dropdown value on \"Log enquiry\", where a merchant re-typed a message they had\n * already read on their phone.\n */\n\nexport type ConversationDirection = 'inbound' | 'outbound';\n\nexport interface ConversationMessage {\n id: string;\n direction: ConversationDirection;\n body: string;\n mediaUrl: string | null;\n mediaType: string | null;\n readAt: string | null;\n createdAt: string;\n}\n\nexport interface ConversationThread {\n /** Digits, country code resolved — the way the API stores a contact. */\n contact: string;\n memberId: string | null;\n memberName: string | null;\n lastMessageAt: string;\n lastInboundAt: string | null;\n lastBody: string;\n lastDirection: ConversationDirection;\n unread: number;\n /**\n * Whether WhatsApp will still accept a free-form reply.\n *\n * Computed by the API against the same clock its reachable-contacts count\n * uses, rather than derived here from `lastInboundAt` — two answers to \"is\n * this open\" drifting by a request's worth of time would show a merchant an\n * open reply box on a conversation the send would then refuse.\n */\n windowOpen: boolean;\n}\n\nexport const conversationsApi = {\n /**\n * Two numbers for the sidebar. Its own route rather than a count taken from\n * `threads`, which reads every conversation a business has — the sidebar\n * renders on every page.\n */\n unread: (tenantSlug: string) =>\n apiFetch<{ threads: number; messages: number }>(\n '/communications/whatsapp/unread',\n { tenantSlug },\n ),\n\n threads: (tenantSlug: string) =>\n apiFetch<{ threads: ConversationThread[] }>(\n '/communications/whatsapp/threads',\n { tenantSlug },\n ),\n\n thread: (tenantSlug: string, contact: string) =>\n apiFetch<{ contact: string; messages: ConversationMessage[] }>(\n `/communications/whatsapp/threads/${encodeURIComponent(contact)}`,\n { tenantSlug },\n ),\n\n markRead: (tenantSlug: string, contact: string) =>\n apiFetch<{ marked: number }>(\n `/communications/whatsapp/threads/${encodeURIComponent(contact)}/read`,\n { method: 'POST', tenantSlug },\n ),\n\n reply: (\n tenantSlug: string,\n contact: string,\n body: string,\n mediaUrl?: string,\n ) =>\n apiFetch<{ sent: boolean; messageId: string | null }>(\n `/communications/whatsapp/threads/${encodeURIComponent(contact)}/reply`,\n {\n method: 'POST',\n tenantSlug,\n body: JSON.stringify({ body, mediaUrl }),\n },\n ),\n};\n\n/**\n * Whether an attachment is something a browser can load.\n *\n * Neither provider hands over a public URL: Twilio's needs Twilio's\n * credentials on every request and Meta gives an id that has to be exchanged\n * for a short-lived signed link. The API re-hosts inbound media after storing\n * the message, so anything still wearing a provider shape is one whose\n * download has not landed — or failed, which is allowed. Pointing an `<img>`\n * at either would draw a broken image where a customer's photo should be, and\n * a broken image reads as a lost message.\n *\n * The same rule as `isHostedMedia` in potter-api, and it has to stay the same:\n * the two decide the same question on either side of the wire.\n */\nexport function isRenderableMedia(url: string | null): url is string {\n if (!url) return false;\n return !url.startsWith('meta:') && !url.includes('api.twilio.com');\n}\n"],"mappings":"AAAA,SAAS,gBAAgB;AA6ClB,MAAM,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM9B,QAAQ,CAAC,eACP;AAAA,IACE;AAAA,IACA,EAAE,WAAW;AAAA,EACf;AAAA,EAEF,SAAS,CAAC,eACR;AAAA,IACE;AAAA,IACA,EAAE,WAAW;AAAA,EACf;AAAA,EAEF,QAAQ,CAAC,YAAoB,YAC3B;AAAA,IACE,oCAAoC,mBAAmB,OAAO,CAAC;AAAA,IAC/D,EAAE,WAAW;AAAA,EACf;AAAA,EAEF,UAAU,CAAC,YAAoB,YAC7B;AAAA,IACE,oCAAoC,mBAAmB,OAAO,CAAC;AAAA,IAC/D,EAAE,QAAQ,QAAQ,WAAW;AAAA,EAC/B;AAAA,EAEF,OAAO,CACL,YACA,SACA,MACA,aAEA;AAAA,IACE,oCAAoC,mBAAmB,OAAO,CAAC;AAAA,IAC/D;AAAA,MACE,QAAQ;AAAA,MACR;AAAA,MACA,MAAM,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAAA,IACzC;AAAA,EACF;AACJ;AAgBO,SAAS,kBAAkB,KAAmC;AACnE,MAAI,CAAC,IAAK,QAAO;AACjB,SAAO,CAAC,IAAI,WAAW,OAAO,KAAK,CAAC,IAAI,SAAS,gBAAgB;AACnE;","names":[]}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The shared plumbing every API module needs: auth token, CSRF, the bounce
|
|
3
|
+
* guard, and apiFetch itself.
|
|
4
|
+
*
|
|
5
|
+
* Split out of the old 7,657-line src/lib/api.ts. That file was imported by
|
|
6
|
+
* 405 files, so touching any endpoint invalidated all of them, and a route
|
|
7
|
+
* that wanted one call pulled the whole surface.
|
|
8
|
+
*/
|
|
9
|
+
export declare const IS_BROWSER: boolean;
|
|
10
|
+
import type { FetchOptions } from './types';
|
|
11
|
+
export declare const getApiUrl: () => string;
|
|
12
|
+
export declare function getAccountId(): string | null;
|
|
13
|
+
export declare function getCsrfToken(): string | null;
|
|
14
|
+
/**
|
|
15
|
+
* Thrown when the API rejects the session (401). Typed so a caller can tell an
|
|
16
|
+
* expired session apart from a genuine empty result — the distinction the whole
|
|
17
|
+
* dashboard was previously unable to make.
|
|
18
|
+
*/
|
|
19
|
+
export declare class SessionExpiredError extends Error {
|
|
20
|
+
constructor();
|
|
21
|
+
}
|
|
22
|
+
export declare class ApiRequestError extends Error {
|
|
23
|
+
readonly status: number;
|
|
24
|
+
readonly details?: unknown | undefined;
|
|
25
|
+
constructor(message: string, status: number, details?: unknown | undefined);
|
|
26
|
+
}
|
|
27
|
+
export { AUTH_ROUTES, isSessionExpiryResponse } from './session-scope';
|
|
28
|
+
/**
|
|
29
|
+
* Where we last sent someone to log in, and when. Bouncing to login is a full
|
|
30
|
+
* page load, so the in-memory guard above resets every time — it cannot see a
|
|
31
|
+
* loop. This can.
|
|
32
|
+
*/
|
|
33
|
+
/**
|
|
34
|
+
* Where we last sent someone to log in, and when. Bouncing to login is a full
|
|
35
|
+
* page load, so the in-memory guard above resets every time — it cannot see a
|
|
36
|
+
* loop. This can.
|
|
37
|
+
*/
|
|
38
|
+
export declare const BOUNCE_KEY = "pb_session_bounce";
|
|
39
|
+
/** Two bounces off the same path inside this window is a loop, not a login. */
|
|
40
|
+
/** Two bounces off the same path inside this window is a loop, not a login. */
|
|
41
|
+
export declare const BOUNCE_WINDOW_MS = 15000;
|
|
42
|
+
/**
|
|
43
|
+
* True when we already bounced this path to login and are right back on it.
|
|
44
|
+
*
|
|
45
|
+
* That combination means the session is fine — login only returns you here if
|
|
46
|
+
* it recognises you — and some single endpoint is answering 401 for its own
|
|
47
|
+
* reasons (a missing tenant header, say). Bouncing again just repeats the
|
|
48
|
+
* round trip forever, which the merchant sees as a page that reloads and
|
|
49
|
+
* reloads. Better to let that one panel fail and leave the page standing.
|
|
50
|
+
*/
|
|
51
|
+
/**
|
|
52
|
+
* True when we already bounced this path to login and are right back on it.
|
|
53
|
+
*
|
|
54
|
+
* That combination means the session is fine — login only returns you here if
|
|
55
|
+
* it recognises you — and some single endpoint is answering 401 for its own
|
|
56
|
+
* reasons (a missing tenant header, say). Bouncing again just repeats the
|
|
57
|
+
* round trip forever, which the merchant sees as a page that reloads and
|
|
58
|
+
* reloads. Better to let that one panel fail and leave the page standing.
|
|
59
|
+
*/
|
|
60
|
+
export declare function bouncedRecently(path: string): boolean;
|
|
61
|
+
export declare function recordBounce(path: string): void;
|
|
62
|
+
export declare function apiFetch<T = unknown>(endpoint: string, options?: FetchOptions): Promise<T>;
|