@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,325 @@
|
|
|
1
|
+
import {
|
|
2
|
+
apiFetch
|
|
3
|
+
} from "./api";
|
|
4
|
+
import { tenantsQuery } from "./admin-tenants-query";
|
|
5
|
+
function ledgerQuery(f, pageSizeKey = "limit") {
|
|
6
|
+
const qs = new URLSearchParams();
|
|
7
|
+
const { limit, ...rest } = f;
|
|
8
|
+
for (const [key, value] of Object.entries(rest)) {
|
|
9
|
+
if (value !== void 0 && value !== "") qs.set(key, String(value));
|
|
10
|
+
}
|
|
11
|
+
if (limit) qs.set(pageSizeKey, String(limit));
|
|
12
|
+
const q = qs.toString();
|
|
13
|
+
return q ? `?${q}` : "";
|
|
14
|
+
}
|
|
15
|
+
const platformAdminApi = {
|
|
16
|
+
/**
|
|
17
|
+
* Password step. A box that emails sign-in codes answers `codeRequired` and
|
|
18
|
+
* sets no session yet; finish with `verifyLoginCode`.
|
|
19
|
+
*/
|
|
20
|
+
login: (email, password) => apiFetch("/platform-admin/v1/auth/login", {
|
|
21
|
+
method: "POST",
|
|
22
|
+
body: JSON.stringify({ email, password })
|
|
23
|
+
}),
|
|
24
|
+
verifyLoginCode: (challengeId, code) => apiFetch("/platform-admin/v1/auth/login/verify", {
|
|
25
|
+
method: "POST",
|
|
26
|
+
body: JSON.stringify({ challengeId, code })
|
|
27
|
+
}),
|
|
28
|
+
resendLoginCode: (challengeId) => apiFetch("/platform-admin/v1/auth/login/resend", {
|
|
29
|
+
method: "POST",
|
|
30
|
+
body: JSON.stringify({ challengeId })
|
|
31
|
+
}),
|
|
32
|
+
logout: () => apiFetch("/platform-admin/v1/auth/logout", {
|
|
33
|
+
method: "POST"
|
|
34
|
+
}),
|
|
35
|
+
me: () => apiFetch("/platform-admin/v1/auth/me"),
|
|
36
|
+
changePassword: (currentPassword, newPassword) => apiFetch("/platform-admin/v1/auth/change-password", {
|
|
37
|
+
method: "POST",
|
|
38
|
+
body: JSON.stringify({ currentPassword, newPassword })
|
|
39
|
+
}),
|
|
40
|
+
overview: () => apiFetch("/platform-admin/v1/overview"),
|
|
41
|
+
gatewayChannels: (params = {}) => {
|
|
42
|
+
const qs = new URLSearchParams();
|
|
43
|
+
if (params.startDate) qs.set("startDate", params.startDate);
|
|
44
|
+
if (params.endDate) qs.set("endDate", params.endDate);
|
|
45
|
+
const q = qs.toString();
|
|
46
|
+
return apiFetch(
|
|
47
|
+
`/platform-admin/v1/gateway-payments/channels${q ? `?${q}` : ""}`
|
|
48
|
+
);
|
|
49
|
+
},
|
|
50
|
+
merchantPayments: (f = {}) => apiFetch(
|
|
51
|
+
`/platform-admin/v1/revenue/merchant-payments${ledgerQuery(f)}`
|
|
52
|
+
),
|
|
53
|
+
/** The same payments as CSV text. */
|
|
54
|
+
merchantPaymentsCsv: (f = {}) => apiFetch(
|
|
55
|
+
`/platform-admin/v1/revenue/merchant-payments/export${ledgerQuery(f)}`
|
|
56
|
+
),
|
|
57
|
+
subscriptionPayments: (f = {}) => apiFetch(
|
|
58
|
+
`/platform-admin/v1/revenue/subscription-payments${ledgerQuery(f, "pageSize")}`
|
|
59
|
+
),
|
|
60
|
+
subscriptionPaymentsCsv: (f = {}) => apiFetch(
|
|
61
|
+
`/platform-admin/v1/revenue/subscription-payments/export${ledgerQuery(f, "pageSize")}`
|
|
62
|
+
),
|
|
63
|
+
cockpit: (params = {}) => {
|
|
64
|
+
const qs = new URLSearchParams();
|
|
65
|
+
if (params.startDate) qs.set("startDate", params.startDate);
|
|
66
|
+
if (params.endDate) qs.set("endDate", params.endDate);
|
|
67
|
+
const q = qs.toString();
|
|
68
|
+
return apiFetch(
|
|
69
|
+
`/platform-admin/v1/overview/cockpit${q ? `?${q}` : ""}`
|
|
70
|
+
);
|
|
71
|
+
},
|
|
72
|
+
revenue: (params = {}) => {
|
|
73
|
+
const qs = new URLSearchParams();
|
|
74
|
+
if (params.startDate) qs.set("startDate", params.startDate);
|
|
75
|
+
if (params.endDate) qs.set("endDate", params.endDate);
|
|
76
|
+
const q = qs.toString();
|
|
77
|
+
return apiFetch(
|
|
78
|
+
`/platform-admin/v1/overview/revenue${q ? `?${q}` : ""}`
|
|
79
|
+
);
|
|
80
|
+
},
|
|
81
|
+
tenantsAnalytics: (params = {}) => {
|
|
82
|
+
const qs = new URLSearchParams();
|
|
83
|
+
if (params.startDate) qs.set("startDate", params.startDate);
|
|
84
|
+
if (params.endDate) qs.set("endDate", params.endDate);
|
|
85
|
+
const q = qs.toString();
|
|
86
|
+
return apiFetch(
|
|
87
|
+
`/platform-admin/v1/overview/tenants-analytics${q ? `?${q}` : ""}`
|
|
88
|
+
);
|
|
89
|
+
},
|
|
90
|
+
tenants: (params = {}) => apiFetch(`/platform-admin/v1/tenants${tenantsQuery(params)}`),
|
|
91
|
+
tenant: (id, range = {}) => {
|
|
92
|
+
const qs = new URLSearchParams();
|
|
93
|
+
if (range.startDate) qs.set("startDate", range.startDate);
|
|
94
|
+
if (range.endDate) qs.set("endDate", range.endDate);
|
|
95
|
+
const query = qs.toString();
|
|
96
|
+
return apiFetch(
|
|
97
|
+
`/platform-admin/v1/tenants/${id}${query ? `?${query}` : ""}`
|
|
98
|
+
);
|
|
99
|
+
},
|
|
100
|
+
tenantAnalytics: (id, range = {}) => {
|
|
101
|
+
const qs = new URLSearchParams();
|
|
102
|
+
if (range.startDate) qs.set("startDate", range.startDate);
|
|
103
|
+
if (range.endDate) qs.set("endDate", range.endDate);
|
|
104
|
+
if (range.limit) qs.set("limit", String(range.limit));
|
|
105
|
+
const query = qs.toString();
|
|
106
|
+
return apiFetch(
|
|
107
|
+
`/platform-admin/v1/tenants/${id}/analytics${query ? `?${query}` : ""}`
|
|
108
|
+
);
|
|
109
|
+
},
|
|
110
|
+
tenantFinance: (id, range = {}) => {
|
|
111
|
+
const qs = new URLSearchParams();
|
|
112
|
+
if (range.startDate) qs.set("startDate", range.startDate);
|
|
113
|
+
if (range.endDate) qs.set("endDate", range.endDate);
|
|
114
|
+
if (range.period) qs.set("period", range.period);
|
|
115
|
+
const query = qs.toString();
|
|
116
|
+
return apiFetch(
|
|
117
|
+
`/platform-admin/v1/tenants/${id}/finance${query ? `?${query}` : ""}`
|
|
118
|
+
);
|
|
119
|
+
},
|
|
120
|
+
tenantTransactions: (id, params = {}) => {
|
|
121
|
+
const qs = new URLSearchParams();
|
|
122
|
+
if (params.status) qs.set("status", params.status);
|
|
123
|
+
if (params.type) qs.set("type", params.type);
|
|
124
|
+
if (params.search) qs.set("search", params.search);
|
|
125
|
+
if (params.page) qs.set("page", String(params.page));
|
|
126
|
+
if (params.limit) qs.set("limit", String(params.limit));
|
|
127
|
+
const query = qs.toString();
|
|
128
|
+
return apiFetch(
|
|
129
|
+
`/platform-admin/v1/tenants/${id}/transactions${query ? `?${query}` : ""}`
|
|
130
|
+
);
|
|
131
|
+
},
|
|
132
|
+
tenantCustomers: (id, params = {}) => {
|
|
133
|
+
const qs = new URLSearchParams();
|
|
134
|
+
if (params.search) qs.set("search", params.search);
|
|
135
|
+
if (params.type) qs.set("type", params.type);
|
|
136
|
+
if (params.status) qs.set("status", params.status);
|
|
137
|
+
if (params.page) qs.set("page", String(params.page));
|
|
138
|
+
if (params.limit) qs.set("limit", String(params.limit));
|
|
139
|
+
const query = qs.toString();
|
|
140
|
+
return apiFetch(
|
|
141
|
+
`/platform-admin/v1/tenants/${id}/customers${query ? `?${query}` : ""}`
|
|
142
|
+
);
|
|
143
|
+
},
|
|
144
|
+
tenantProducts: (id, params = {}) => {
|
|
145
|
+
const qs = new URLSearchParams();
|
|
146
|
+
if (params.type) qs.set("type", params.type);
|
|
147
|
+
if (params.search) qs.set("search", params.search);
|
|
148
|
+
const query = qs.toString();
|
|
149
|
+
return apiFetch(
|
|
150
|
+
`/platform-admin/v1/tenants/${id}/products${query ? `?${query}` : ""}`
|
|
151
|
+
);
|
|
152
|
+
},
|
|
153
|
+
tenantProductInsights: (id, range = {}) => {
|
|
154
|
+
const qs = new URLSearchParams();
|
|
155
|
+
if (range.startDate) qs.set("startDate", range.startDate);
|
|
156
|
+
const query = qs.toString();
|
|
157
|
+
return apiFetch(
|
|
158
|
+
`/platform-admin/v1/tenants/${id}/products/insights${query ? `?${query}` : ""}`
|
|
159
|
+
);
|
|
160
|
+
},
|
|
161
|
+
tenantCustomerInsights: (id, range = {}) => {
|
|
162
|
+
const qs = new URLSearchParams();
|
|
163
|
+
if (range.startDate) qs.set("startDate", range.startDate);
|
|
164
|
+
const query = qs.toString();
|
|
165
|
+
return apiFetch(
|
|
166
|
+
`/platform-admin/v1/tenants/${id}/customers/insights${query ? `?${query}` : ""}`
|
|
167
|
+
);
|
|
168
|
+
},
|
|
169
|
+
tenantInvoices: (id, params = {}) => {
|
|
170
|
+
const qs = new URLSearchParams();
|
|
171
|
+
if (params.status) qs.set("status", params.status);
|
|
172
|
+
if (params.search) qs.set("search", params.search);
|
|
173
|
+
if (params.page) qs.set("page", String(params.page));
|
|
174
|
+
if (params.limit) qs.set("limit", String(params.limit));
|
|
175
|
+
const query = qs.toString();
|
|
176
|
+
return apiFetch(
|
|
177
|
+
`/platform-admin/v1/tenants/${id}/invoices${query ? `?${query}` : ""}`
|
|
178
|
+
);
|
|
179
|
+
},
|
|
180
|
+
tenantLoyalty: (id) => apiFetch(`/platform-admin/v1/tenants/${id}/loyalty`),
|
|
181
|
+
tenantDiscounts: (id, params = {}) => {
|
|
182
|
+
const qs = new URLSearchParams();
|
|
183
|
+
if (params.status) qs.set("status", params.status);
|
|
184
|
+
if (params.discountType) qs.set("discountType", params.discountType);
|
|
185
|
+
if (params.search) qs.set("search", params.search);
|
|
186
|
+
if (params.page) qs.set("page", String(params.page));
|
|
187
|
+
if (params.limit) qs.set("limit", String(params.limit));
|
|
188
|
+
const query = qs.toString();
|
|
189
|
+
return apiFetch(
|
|
190
|
+
`/platform-admin/v1/tenants/${id}/discounts${query ? `?${query}` : ""}`
|
|
191
|
+
);
|
|
192
|
+
},
|
|
193
|
+
tenantSettlements: (id, params = {}) => {
|
|
194
|
+
const qs = new URLSearchParams();
|
|
195
|
+
if (params.page) qs.set("page", String(params.page));
|
|
196
|
+
if (params.limit) qs.set("limit", String(params.limit));
|
|
197
|
+
if (params.startDate) qs.set("startDate", params.startDate);
|
|
198
|
+
if (params.endDate) qs.set("endDate", params.endDate);
|
|
199
|
+
const query = qs.toString();
|
|
200
|
+
return apiFetch(
|
|
201
|
+
`/platform-admin/v1/tenants/${id}/settlements${query ? `?${query}` : ""}`
|
|
202
|
+
);
|
|
203
|
+
},
|
|
204
|
+
tenantSubscriptions: (id, params = {}) => {
|
|
205
|
+
const qs = new URLSearchParams();
|
|
206
|
+
if (params.status) qs.set("status", params.status);
|
|
207
|
+
if (params.planId) qs.set("planId", params.planId);
|
|
208
|
+
if (params.page) qs.set("page", String(params.page));
|
|
209
|
+
if (params.limit) qs.set("limit", String(params.limit));
|
|
210
|
+
const query = qs.toString();
|
|
211
|
+
return apiFetch(
|
|
212
|
+
`/platform-admin/v1/tenants/${id}/subscriptions${query ? `?${query}` : ""}`
|
|
213
|
+
);
|
|
214
|
+
},
|
|
215
|
+
setTenantStatus: (id, status) => apiFetch(`/platform-admin/v1/tenants/${id}/status`, {
|
|
216
|
+
method: "PATCH",
|
|
217
|
+
body: JSON.stringify({ status })
|
|
218
|
+
}),
|
|
219
|
+
accounts: (params = {}) => {
|
|
220
|
+
const qs = new URLSearchParams();
|
|
221
|
+
if (params.page) qs.set("page", String(params.page));
|
|
222
|
+
if (params.pageSize) qs.set("pageSize", String(params.pageSize));
|
|
223
|
+
if (params.search) qs.set("search", params.search);
|
|
224
|
+
if (params.joinedFrom) qs.set("joinedFrom", params.joinedFrom);
|
|
225
|
+
if (params.joinedTo) qs.set("joinedTo", params.joinedTo);
|
|
226
|
+
if (params.stage) qs.set("stage", params.stage);
|
|
227
|
+
const query = qs.toString();
|
|
228
|
+
return apiFetch(
|
|
229
|
+
`/platform-admin/v1/accounts${query ? `?${query}` : ""}`
|
|
230
|
+
);
|
|
231
|
+
},
|
|
232
|
+
accountsAnalytics: (params = {}) => {
|
|
233
|
+
const qs = new URLSearchParams();
|
|
234
|
+
if (params.startDate) qs.set("startDate", params.startDate);
|
|
235
|
+
if (params.endDate) qs.set("endDate", params.endDate);
|
|
236
|
+
const q = qs.toString();
|
|
237
|
+
return apiFetch(
|
|
238
|
+
`/platform-admin/v1/accounts/analytics${q ? `?${q}` : ""}`
|
|
239
|
+
);
|
|
240
|
+
},
|
|
241
|
+
setAccountStatus: (id, status) => apiFetch(`/platform-admin/v1/accounts/${id}/status`, {
|
|
242
|
+
method: "PATCH",
|
|
243
|
+
body: JSON.stringify({ status })
|
|
244
|
+
}),
|
|
245
|
+
verifyAccount: (id) => apiFetch(`/platform-admin/v1/accounts/${id}/verify`, {
|
|
246
|
+
method: "POST"
|
|
247
|
+
}),
|
|
248
|
+
accountSessions: (id) => apiFetch(`/platform-admin/v1/accounts/${id}/sessions`),
|
|
249
|
+
accountTenants: (id) => apiFetch(`/platform-admin/v1/accounts/${id}/tenants`),
|
|
250
|
+
impersonateAccount: (id) => apiFetch(
|
|
251
|
+
`/platform-admin/v1/accounts/${id}/impersonate`,
|
|
252
|
+
{ method: "POST" }
|
|
253
|
+
),
|
|
254
|
+
admins: () => apiFetch("/platform-admin/v1/admins"),
|
|
255
|
+
adminsAnalytics: (params = {}) => {
|
|
256
|
+
const qs = new URLSearchParams();
|
|
257
|
+
if (params.startDate) qs.set("startDate", params.startDate);
|
|
258
|
+
if (params.endDate) qs.set("endDate", params.endDate);
|
|
259
|
+
const q = qs.toString();
|
|
260
|
+
return apiFetch(
|
|
261
|
+
`/platform-admin/v1/admins/analytics${q ? `?${q}` : ""}`
|
|
262
|
+
);
|
|
263
|
+
},
|
|
264
|
+
adminPermissions: () => apiFetch("/platform-admin/v1/admins/permissions"),
|
|
265
|
+
inviteAdmin: (email, role, permissions = [], roleIds = []) => apiFetch(
|
|
266
|
+
"/platform-admin/v1/admins",
|
|
267
|
+
{
|
|
268
|
+
method: "POST",
|
|
269
|
+
body: JSON.stringify({ email, role, permissions, roleIds })
|
|
270
|
+
}
|
|
271
|
+
),
|
|
272
|
+
setAdminStatus: (id, status) => apiFetch(`/platform-admin/v1/admins/${id}/status`, {
|
|
273
|
+
method: "PATCH",
|
|
274
|
+
body: JSON.stringify({ status })
|
|
275
|
+
}),
|
|
276
|
+
setAdminPermissions: (id, permissions) => apiFetch(
|
|
277
|
+
`/platform-admin/v1/admins/${id}/permissions`,
|
|
278
|
+
{ method: "PATCH", body: JSON.stringify({ permissions }) }
|
|
279
|
+
),
|
|
280
|
+
setAdminRoles: (id, roleIds) => apiFetch(`/platform-admin/v1/admins/${id}/roles`, {
|
|
281
|
+
method: "PATCH",
|
|
282
|
+
body: JSON.stringify({ roleIds })
|
|
283
|
+
}),
|
|
284
|
+
resetAdminPassword: (id) => apiFetch(
|
|
285
|
+
`/platform-admin/v1/admins/${id}/reset-password`,
|
|
286
|
+
{ method: "POST" }
|
|
287
|
+
),
|
|
288
|
+
roles: () => apiFetch("/platform-admin/v1/roles"),
|
|
289
|
+
createRole: (name, permissions, description) => apiFetch("/platform-admin/v1/roles", {
|
|
290
|
+
method: "POST",
|
|
291
|
+
body: JSON.stringify({ name, permissions, description })
|
|
292
|
+
}),
|
|
293
|
+
updateRole: (id, data) => apiFetch(`/platform-admin/v1/roles/${id}`, {
|
|
294
|
+
method: "PATCH",
|
|
295
|
+
body: JSON.stringify(data)
|
|
296
|
+
}),
|
|
297
|
+
deleteRole: (id) => apiFetch(`/platform-admin/v1/roles/${id}`, {
|
|
298
|
+
method: "DELETE"
|
|
299
|
+
}),
|
|
300
|
+
audit: (params = {}) => {
|
|
301
|
+
const qs = new URLSearchParams();
|
|
302
|
+
if (params.page) qs.set("page", String(params.page));
|
|
303
|
+
if (params.pageSize) qs.set("pageSize", String(params.pageSize));
|
|
304
|
+
if (params.search) qs.set("search", params.search);
|
|
305
|
+
if (params.action) qs.set("action", params.action);
|
|
306
|
+
if (params.adminEmail) qs.set("adminEmail", params.adminEmail);
|
|
307
|
+
if (params.from) qs.set("from", params.from);
|
|
308
|
+
if (params.to) qs.set("to", params.to);
|
|
309
|
+
const q = qs.toString();
|
|
310
|
+
return apiFetch(`/platform-admin/v1/audit${q ? `?${q}` : ""}`);
|
|
311
|
+
},
|
|
312
|
+
auditAnalytics: (params = {}) => {
|
|
313
|
+
const qs = new URLSearchParams();
|
|
314
|
+
if (params.startDate) qs.set("startDate", params.startDate);
|
|
315
|
+
if (params.endDate) qs.set("endDate", params.endDate);
|
|
316
|
+
const q = qs.toString();
|
|
317
|
+
return apiFetch(
|
|
318
|
+
`/platform-admin/v1/audit/analytics${q ? `?${q}` : ""}`
|
|
319
|
+
);
|
|
320
|
+
}
|
|
321
|
+
};
|
|
322
|
+
export {
|
|
323
|
+
platformAdminApi
|
|
324
|
+
};
|
|
325
|
+
//# sourceMappingURL=admin-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/admin-api.ts"],"sourcesContent":["import {\n apiFetch,\n type DashboardStats,\n type FinanceAnalytics,\n type Transaction,\n} from './api';\n\nexport type {\n AccountRow,\n AccountsPage,\n AccountTenantRow,\n AccountSession,\n AccountStage,\n AccountKycStatus,\n TenantTeamMember,\n AccountsAnalytics,\n} from './admin-account-types';\nimport type {\n AccountRow,\n AccountSession,\n AccountStage,\n AccountsPage,\n AccountTenantRow,\n TenantTeamMember,\n AccountsAnalytics,\n} from './admin-account-types';\nimport type { TenantSetup } from './admin-tenant-setup-types';\nimport type { CountryFields } from './admin-country-api';\nimport { tenantsQuery, type TenantListParams } from './admin-tenants-query';\nimport type { AccountOfficer } from './admin-account-officer-api';\nimport type {\n CurrencyAmount,\n CurrencyGmvKpi,\n CurrencyOverdue,\n CurrencyPerformance,\n CurrencyRevenueGmv,\n CurrencyRevenueQuality,\n CurrencySeries,\n CurrencySettlementSummary,\n CurrencyTopTenants,\n CurrencyTotals,\n FinanceByCurrency,\n TenantCurrencyMetrics,\n} from './admin-currency-types';\nexport type * from './admin-currency-types';\n\nexport type { DashboardStats, FinanceAnalytics, Transaction } from './api';\n\n/** A merchant's finance dashboard as the admin API sends it: per currency too. */\nexport type AdminFinanceAnalytics = FinanceAnalytics & FinanceByCurrency;\n\nexport interface TenantTransactionsPage {\n transactions: Transaction[];\n pagination: {\n total: number;\n page: number;\n limit: number;\n totalPages: number;\n };\n}\n\n// ============================================\n// PLATFORM ADMIN API (growth cockpit)\n// Cross-tenant aggregates — admin/superadmin only.\n// ============================================\n\nexport interface PlatformOverview {\n tenants: { total: number; active: number; new30d: number; new7d: number };\n accounts: { total: number; new30d: number };\n orders: { total: number; gmv: number; gmv30d: number };\n subscriptions: { active: number; trialing: number };\n growth: { tenantSeries: Array<{ date: string; count: number }> };\n}\n\nexport interface TenantsAnalytics {\n range: { startDate: string; endDate: string };\n totals: {\n tenants: number;\n accounts: number;\n avgTenantsPerAccount: number;\n activeRate: number;\n gmv: number;\n orders: number;\n aov: number;\n gmvInRange: number;\n ordersInRange: number;\n newTenantsInRange: number;\n };\n statusBreakdown: Array<{ status: string; count: number }>;\n industryBreakdown: Array<{ industry: string; count: number }>;\n onboardingSeries: Array<{ date: string; count: number }>;\n performanceSeries: Array<{ date: string; gmv: number; orders: number }>;\n /** Absent until the matching api deploy lands — guard with `?? []`. */\n previousOnboardingSeries?: Array<{ date: string; count: number }>;\n previousPerformanceSeries?: Array<{\n date: string;\n gmv: number;\n orders: number;\n }>;\n topTenants: Array<{\n id: string;\n businessName: string;\n slug: string;\n gmv: number;\n orders: number;\n }>;\n /** @deprecated adds currencies together, not converted. */\n baseCurrency: string;\n /** @deprecated never convert with these. */\n rates: Record<string, number>;\n currencies?: string[];\n totalsByCurrency?: CurrencyTotals[];\n performanceSeriesByCurrency?: CurrencySeries[];\n topTenantsByCurrency?: CurrencyTopTenants[];\n}\n\nexport interface CockpitKpi {\n current: number;\n previous: number;\n pct: number | null;\n}\n\ninterface AttentionTenantRef {\n id: string;\n businessName: string;\n slug: string;\n}\n\nexport interface PlatformCockpit {\n range: { startDate: string; endDate: string };\n // Base currency all monetary figures are expressed in (USD). `rates` maps a\n // currency code to its rate-to-USD, so the client can render figures in a\n // chosen display currency by dividing a USD amount by the target's rate.\n baseCurrency: string;\n rates: Record<string, number>;\n /** Currencies with money in this payload, A→Z. */\n currencies?: string[];\n topTenantsByCurrency?: CurrencyTopTenants[];\n kpis: {\n newTenants: CockpitKpi;\n newAccounts: CockpitKpi;\n /** @deprecated adds currencies together; use `gmvByCurrency`. */\n gmv: CockpitKpi;\n orders: CockpitKpi;\n gmvByCurrency?: CurrencyGmvKpi[];\n };\n totals: {\n totalTenants: number;\n activeTenants: number;\n totalAccounts: number;\n activeSubscriptions: number;\n trialingSubscriptions: number;\n /** @deprecated adds currencies together; use `lifetimeGmvByCurrency`. */\n lifetimeGmv: number;\n lifetimeGmvByCurrency?: CurrencyAmount[];\n /**\n * Platform fees collected on card payments, one row per currency. Absent\n * until the api serves it; the Overview shows no card without it.\n */\n gatewayFeesByCurrency?: CurrencyAmount[];\n /**\n * Wallets whose business passed KYC / KYB. Absent until the api serves\n * it; the Overview shows no card without it.\n */\n verifiedWallets?: number;\n };\n sparklines: {\n tenants: number[];\n accounts: number[];\n gmv: number[];\n orders: number[];\n };\n statusBreakdown: Array<{ status: string; count: number }>;\n industryBreakdown: Array<{ industry: string; count: number }>;\n topTenants: Array<{\n id: string;\n businessName: string;\n slug: string;\n gmv: number;\n orders: number;\n }>;\n health?: {\n mrr: number;\n newMrr: number;\n churnedMrr: number;\n netNewMrr: number;\n grossMrrChurnPct: number;\n grossRevenueRetentionPct: number;\n newLogos: number;\n churnedLogos: number;\n netNewLogos: number;\n logoChurnPct: number;\n activePayingLogos: number;\n gmvConcentrationTop10Pct: number;\n };\n performance?: {\n takeRatePct: number | null;\n annualizedGmvRunRate: number;\n gmvPerActiveTenant: number;\n revenuePerActiveTenant: number;\n transactingTenants: number;\n transactingTenantRatePct: number;\n gmvGrowthPct: number | null;\n ordersGrowthPct: number | null;\n netNewLogos: number;\n byCurrency?: CurrencyPerformance[];\n };\n verticals?: Array<{\n industry: string;\n tenants: number;\n gmv: number;\n orders: number;\n aov: number;\n gmvGrowthPct: number | null;\n share: number;\n }>;\n /** GMV/orders across every service Box offers (sell-products, event-tickets, …). */\n salesByService?: Array<{\n service: string;\n merchants: number;\n gmv: number;\n orders: number;\n aov: number;\n gmvGrowthPct: number | null;\n share: number;\n }>;\n activation?: {\n funnel: Array<{ stage: string; count: number }>;\n medianDaysToFirstOrder: number | null;\n activationRatePct: number;\n orderConversionPct: number;\n };\n accounts?: {\n total: number;\n active: number;\n suspended: number;\n verified: number;\n unverifiedEmail: number;\n neverLoggedIn: number;\n dormant: number;\n new: number;\n };\n trend: {\n performanceSeries: Array<{ date: string; gmv: number; orders: number }>;\n onboardingSeries: Array<{ date: string; count: number }>;\n /** Absent until the matching api deploy lands — guard with `?? []`. */\n previousPerformanceSeries?: Array<{\n date: string;\n gmv: number;\n orders: number;\n }>;\n previousOnboardingSeries?: Array<{ date: string; count: number }>;\n performanceSeriesByCurrency?: CurrencySeries[];\n };\n attention: {\n /**\n * Feeds whose query failed; their counts are placeholders, not zeros.\n * Absent when talking to an API that predates this field.\n */\n unavailable?: Array<\n 'needsReview' | 'dormantTenants' | 'overdueInvoices' | 'failedSettlements'\n >;\n trialsEndingSoon: Array<\n AttentionTenantRef & { trialEndsAt: string; daysLeft: number }\n >;\n needsReview: Array<\n AttentionTenantRef & { status: string; createdAt: string }\n >;\n dormantTenants: Array<AttentionTenantRef & { createdAt: string }>;\n overdueInvoices: {\n count: number;\n /** @deprecated adds currencies together; use `totalByCurrency`. */\n total: number;\n totalByCurrency?: CurrencyOverdue[];\n sample: Array<{\n id: string;\n invoiceNumber: string;\n tenantId: string;\n tenantName: string;\n customerName: string | null;\n amountDue: number;\n currency: string;\n dueDate: string | null;\n }>;\n };\n failedSettlements: {\n count: number;\n sample: Array<{\n id: string;\n tenantId: string;\n tenantName: string;\n netAmount: number;\n currency: string;\n createdAt: string;\n }>;\n };\n };\n}\n\n/**\n * What one payment channel (Card, USSD, Bank transfer, Opay...) brought in, in one\n * currency. `amountMinor` is in minor units. Sent only by a box that records how\n * customers paid; others answer 404, and the panels that use it stay hidden.\n */\nexport interface GatewayChannelTotal {\n channel: { key: string; label: string };\n currency: string;\n count: number;\n amountMinor: string;\n}\n\n/**\n * Revenue's Merchant payments and Subscriptions views. Amounts are whole minor\n * units in strings (kobo), per currency, never added across currencies.\n * Boxes older than this answer 404 and the views stay hidden.\n */\nexport interface LedgerFilters {\n startDate?: string;\n endDate?: string;\n /** Shown as a word in the table; the API takes a card, ussd, transfer, opay… key. */\n method?: string;\n type?: string;\n status?: string;\n /** Matches a reference, a payer's name, email or phone, or a merchant's name. */\n q?: string;\n page?: number;\n limit?: number;\n}\n\nexport interface MerchantPaymentRow {\n id: string;\n reference: string;\n paidAt: string;\n payer: { name: string | null; email: string | null; phone: string | null };\n merchant: { id: string; name: string | null };\n channel: { key: string; label: string };\n /** The card (brand and last four) or the bank, when known. */\n methodDetail: string | null;\n type: string;\n status: string;\n currency: string;\n amountMinor: string;\n feeMinor: string;\n netMinor: string;\n orderId: string | null;\n}\n\nexport interface LedgerCard {\n currency: string;\n grossMinor: string;\n feeMinor: string;\n netMinor: string;\n refundsMinor: string;\n payments: number;\n /** Percent of attempts that went through; null when nothing was attempted. */\n successRate: number | null;\n}\n\nexport interface MerchantPaymentsPage {\n rows: MerchantPaymentRow[];\n page: number;\n limit: number;\n total: number;\n /** Totals of exactly the rows the filters match. */\n strip: Array<{\n currency: string;\n payments: number;\n amountMinor: string;\n feeMinor: string;\n netMinor: string;\n }>;\n cards: { current: LedgerCard[]; previous: LedgerCard[] | null };\n byChannel: {\n current: GatewayChannelTotal[];\n previous: GatewayChannelTotal[] | null;\n };\n}\n\nexport interface SubscriptionPaymentRow {\n id: string;\n reference: string;\n merchantName: string | null;\n merchantEmail: string | null;\n tenantId: string;\n plan: string;\n /** select_plan, upgrade, renewal, reactivation or mandate_setup. */\n purpose: string;\n amountKobo: number;\n /** gateway, wallet or manual. */\n method: string;\n /** pending, succeeded or failed. */\n status: string;\n paidAt: string | null;\n createdAt: string;\n failureReason: string | null;\n}\n\nexport interface SubscriptionPaymentsPage {\n items: SubscriptionPaymentRow[];\n total: number;\n page: number;\n pageSize: number;\n}\n\nexport interface PlatformRevenue {\n range: { startDate: string; endDate: string };\n currency: string;\n /**\n * What Olive keeps from payouts, settlements and subscription charges: net\n * credits on the ledger's platform fees account, in major units, one row per\n * currency, A to Z. Empty when nothing was earned. Not card fees only, no\n * refund netting, and test merchants are included. Absent until the api\n * serves it, so the UI hides the figure rather than showing a zero.\n */\n platformFeesEarnedByCurrency?: CurrencyAmount[];\n recurring: {\n /** False when no billing source feeds the figures below (all are 0). */\n tracked?: boolean;\n /** The currency of the figures below, when the box names it. */\n currency?: string;\n /** Merchants on a paid plan right now (absent on older APIs). */\n payingMerchants?: number;\n mrr: number;\n arr: number;\n arpa: number;\n activeSubscriptions: number;\n trialingSubscriptions: number;\n pastDueSubscriptions: number;\n nonRenewingSubscriptions: number;\n cancelledSubscriptions: number;\n newInRange: number;\n churnedInRange: number;\n planBreakdown: Array<{\n planId: string;\n name: string;\n interval: string;\n subscribers: number;\n mrr: number;\n }>;\n };\n gmv: {\n lifetime: number;\n inRange: number;\n ordersInRange: number;\n aov: number;\n series: Array<{ date: string; gmv: number; orders: number }>;\n topTenants: Array<{\n id: string;\n businessName: string;\n slug: string;\n gmv: number;\n orders: number;\n }>;\n };\n quality?: {\n quickRatio: number | null;\n nrrPct: number | null;\n expansionMrr: number;\n contractionMrr: number;\n mrrChurnRatePct: number | null;\n logoChurnRatePct: number | null;\n grossGmv: number;\n refundedGmv: number;\n netGmv: number;\n refundRatePct: number;\n refundedOrders: number;\n cohorts: Array<{\n cohort: string;\n size: number;\n retention: Array<number | null>;\n }>;\n gmvByCurrency?: CurrencyRevenueQuality[];\n };\n /** @deprecated never convert with these. */\n rates: Record<string, number>;\n currencies?: string[];\n gmvByCurrency?: CurrencyRevenueGmv[];\n}\n\nexport type TenantStatus = 'active' | 'suspended' | 'pending' | 'deleted';\n\nexport interface TenantRow extends CountryFields {\n id: string;\n slug: string;\n businessName: string;\n status: TenantStatus;\n industryKey: string | null;\n createdAt: string;\n /** The business's contact email (absent on older APIs). */\n email?: string | null;\n phone?: string | null;\n /** The owner's sign-in email. */\n ownerEmail?: string | null;\n /** @deprecated adds currencies together; use `gmvByCurrency`. */\n gmv: number;\n gmvByCurrency?: CurrencyAmount[];\n /** The merchant's account officer (absent on older APIs). */\n accountOfficer?: Pick<AccountOfficer, 'id' | 'name'> | null;\n}\n\nexport interface TenantsPage {\n rows: TenantRow[];\n total: number;\n page: number;\n pageSize: number;\n}\n\nexport interface TenantActivityOrder {\n id: string;\n orderNumber: string;\n total: number;\n currency: string;\n status: string;\n paymentStatus: string;\n customerEmail: string;\n customerName: string | null;\n customerPhone?: string | null;\n /** How the customer paid (Card, USSD, Bank transfer, Opay); absent on older APIs. */\n paymentMethod?: string | null;\n createdAt: string;\n}\n\nexport interface TenantDetail extends TenantSetup {\n /** Who runs the workspace and how to reach it (absent on older APIs). */\n contact?: { email: string | null; phone: string | null };\n owner?: TenantTeamMember | null;\n team?: TenantTeamMember[];\n /** The admin in charge of this merchant (absent on older APIs). */\n accountOfficer?: AccountOfficer | null;\n id: string;\n slug: string;\n businessName: string;\n status: TenantStatus;\n industryKey: string | null;\n customDomain: string | null;\n createdAt: string;\n chargeBearer: 'merchant' | 'customer';\n currency: string;\n metrics: {\n totalOrders: number;\n paidOrders: number;\n pendingOrders: number;\n gmv: number;\n gmv30d: number;\n gmv7d: number;\n aov: number;\n totalCustomers: number;\n subscriptionStatus: string | null;\n window: {\n startDate: string;\n endDate: string;\n gmv: number;\n orders: number;\n paidOrders: number;\n aov: number;\n customers: number;\n };\n byCurrency?: TenantCurrencyMetrics[];\n };\n /** Currencies with paid orders, A→Z. */\n currencies?: string[];\n revenueSeries: Array<{ date: string; amount: number }>;\n revenueSeriesByCurrency?: Array<{\n currency: string;\n series: Array<{ date: string; amount: number }>;\n }>;\n recentOrders: TenantActivityOrder[];\n}\n\n// ---- Iteration 3: tenant cockpit domains ----\n\nexport interface TenantCustomer {\n id: string;\n email: string;\n phone: string | null;\n name: string | null;\n type: string;\n source: string | null;\n status: string;\n emailVerified: boolean;\n totalOrders: number;\n totalSpent: number;\n lastOrderAt: string | null;\n createdAt: string;\n}\n\nexport interface TenantCustomersPage {\n members: TenantCustomer[];\n total: number;\n page: number;\n limit: number;\n totalPages: number;\n}\n\nexport interface TenantProduct {\n id: string;\n type: string;\n slug: string;\n title: string;\n category: string | null;\n tags: string[];\n featured: boolean;\n isActive: boolean;\n image?: { url: string } | null;\n price: number | null;\n compareAtPrice: number | null;\n currency: string | null;\n trackInventory: boolean;\n quantity: number | null;\n reserved: number | null;\n lowStockThreshold: number | null;\n createdAt: string;\n}\n\nexport interface TenantProductStats {\n total: number;\n active: number;\n featured: number;\n lowStock: number;\n outOfStock: number;\n}\n\nexport interface TenantProductsData {\n items: TenantProduct[];\n total: number;\n stats: TenantProductStats;\n}\n\nexport interface ProductRef {\n id: string;\n title: string;\n}\n\nexport interface SellerRow {\n id: string;\n title: string;\n units: number;\n revenue: number;\n}\n\nexport interface CategorySlice {\n category: string;\n count: number;\n value: number;\n}\n\nexport interface ProductInsights {\n currency: string;\n totalProducts: number;\n activeProducts: number;\n featuredProducts: number;\n lowStock: number;\n outOfStock: number;\n trackedProducts: number;\n catalogValue: number;\n inventoryValue: number;\n inventoryAtRiskValue: number;\n avgPrice: number;\n medianPrice: number;\n totalUnitsSold: number;\n totalRevenue: number;\n pctEverSold: number;\n deadStock: number;\n newestProduct: (ProductRef & { createdAt: string }) | null;\n lastUpdatedProduct: (ProductRef & { updatedAt: string }) | null;\n categories: CategorySlice[];\n bestSellers: SellerRow[];\n worstSellers: SellerRow[];\n featuredSellThrough: {\n featuredTotal: number;\n featuredSold: number;\n featuredUnits: number;\n nonFeaturedTotal: number;\n nonFeaturedSold: number;\n nonFeaturedUnits: number;\n };\n unitsSeries: Array<{ date: string; count: number }>;\n}\n\nexport interface SpenderRow {\n id: string;\n name: string | null;\n email: string;\n totalSpent: number;\n totalOrders: number;\n}\n\nexport interface BreakdownSlice {\n label: string;\n count: number;\n}\n\nexport interface CustomerInsights {\n currency: string;\n totalCustomers: number;\n newCustomers30d: number;\n payingCustomers: number;\n repeatCustomers: number;\n repeatRate: number;\n dormantCustomers: number;\n marketingOptInRate: number;\n lifetimeValue: number;\n avgSpendPerCustomer: number;\n avgOrdersPerCustomer: number;\n avgOrderValue: number;\n topSpenders: SpenderRow[];\n bySource: BreakdownSlice[];\n byType: BreakdownSlice[];\n signupsSeries: Array<{ date: string; count: number }>;\n}\n\nexport interface TenantInvoice {\n id: string;\n invoiceNumber: string;\n status: string;\n customerEmail: string | null;\n customerName: string | null;\n total: number;\n amountPaid: number;\n amountDue: number;\n currency: string;\n dueDate: string | null;\n createdAt: string;\n}\n\nexport interface TenantInvoiceStats {\n draft: number;\n sent: number;\n paid: number;\n overdue: number;\n cancelled: number;\n total: number;\n totalRevenue: number;\n totalOutstanding: number;\n}\n\nexport interface TenantInvoicesData {\n invoices: TenantInvoice[];\n total: number;\n page: number;\n limit: number;\n totalPages: number;\n stats: TenantInvoiceStats;\n}\n\nexport interface TenantLoyaltyProgram {\n id: string;\n name: string;\n pointsName: string;\n pointsPerCurrency: number;\n currencyPerPoint: number;\n isActive: boolean;\n tiers?: Array<{ id: string; name: string; threshold: number }>;\n earnRules?: Array<{ id: string; name: string; points: number }>;\n}\n\nexport interface TenantLoyaltyStats {\n totalMembers: number;\n totalPointsIssued: number;\n totalPointsRedeemed: number;\n activeMembers: number;\n programActive: boolean;\n}\n\nexport interface TenantLoyaltyData {\n program: TenantLoyaltyProgram | null;\n stats: TenantLoyaltyStats;\n}\n\nexport interface TenantDiscount {\n id: string;\n name: string;\n code: string;\n discountType: string;\n value: number;\n maxDiscountAmount: number | null;\n startsAt: string | null;\n endsAt: string | null;\n usageLimit: number | null;\n usageCount: number;\n status: string;\n autoApply: boolean;\n isValid: boolean;\n isExpired: boolean;\n createdAt: string;\n}\n\nexport interface TenantDiscountsPage {\n discounts: TenantDiscount[];\n total: number;\n page: number;\n limit: number;\n totalPages: number;\n}\n\nexport interface TenantSettlement {\n id: string;\n grossAmount: number;\n paystackFee: number;\n platformFee: number;\n netAmount: number;\n currency: string;\n status: string;\n settlementType: string;\n bankAccount?: { bankName: string; accountNumber: string } | null;\n settledAt: string | null;\n createdAt: string;\n}\n\nexport interface TenantSettlementSummary {\n totalSettled: number;\n totalPending: number;\n totalFailed: number;\n count: number;\n platformFeesCollected: number;\n currency: string;\n currencies?: string[];\n byCurrency?: CurrencySettlementSummary[];\n}\n\nexport interface TenantBankAccount {\n id: string;\n bankCode: string;\n bankName: string;\n accountNumber: string;\n accountName: string;\n splitPercentage: number | null;\n status: string;\n isDefault: boolean;\n /** Paystack subaccount code (ACCT_…). */\n subaccountCode?: string | null;\n failureReason?: string | null;\n createdAt: string;\n}\n\nexport interface TenantSettlementsData {\n settlements: TenantSettlement[];\n total: number;\n page: number;\n limit: number;\n summary: TenantSettlementSummary;\n bankAccounts: TenantBankAccount[];\n}\n\nexport interface TenantSubscriptionPlan {\n id: string;\n name: string;\n interval: string;\n amount: number;\n currency: string;\n}\n\nexport interface TenantSubscription {\n id: string;\n planId: string;\n customerId: string;\n customerEmail: string;\n status: string;\n amount: number;\n currency: string;\n currentPeriodStart: string | null;\n currentPeriodEnd: string | null;\n nextPaymentDate: string | null;\n cancelledAt: string | null;\n paymentsCount: number;\n createdAt: string;\n plan?: TenantSubscriptionPlan | null;\n customer?: { id: string; name: string | null; email: string } | null;\n}\n\nexport interface TenantSubscriptionStats {\n totalActive: number;\n totalNonRenewing: number;\n totalCancelled: number;\n monthlyRecurringRevenue: number;\n}\n\nexport interface TenantSubscriptionsData {\n subscriptions: TenantSubscription[];\n total: number;\n page: number;\n limit: number;\n stats: TenantSubscriptionStats;\n}\n\nexport interface AdminsAnalytics {\n range: { startDate: string; endDate: string };\n totals: {\n admins: number;\n active: number;\n suspended: number;\n superadmins: number;\n standardAdmins: number;\n neverLoggedIn: number;\n activeInRange: number;\n actionsInRange: number;\n };\n roleBreakdown: Array<{ role: string; count: number }>;\n statusBreakdown: Array<{ status: string; count: number }>;\n activitySeries: Array<{ date: string; count: number }>;\n topActions: Array<{ action: string; count: number }>;\n recentActivity: Array<{\n id: string;\n adminEmail: string | null;\n action: string;\n targetType: string | null;\n createdAt: string;\n }>;\n}\n\nexport interface AdminSession {\n id: string;\n email: string;\n name: string | null;\n role: 'admin' | 'superadmin';\n permissions: string[];\n mustChangePassword: boolean;\n}\n\nexport interface AdminLoginCodeRequired {\n codeRequired: true;\n challengeId: string;\n /** The address the code went to, masked: `a***@gmail.com`. */\n sentTo: string;\n}\n\nexport type AdminLoginAnswer =\n | AdminLoginCodeRequired\n | {\n codeRequired?: undefined;\n mustChangePassword: boolean;\n admin: Omit<AdminSession, 'permissions'>;\n };\n\n/** The query string for a Revenue view; empty values are left out. */\nfunction ledgerQuery(f: LedgerFilters, pageSizeKey: 'limit' | 'pageSize' = 'limit'): string {\n const qs = new URLSearchParams();\n const { limit, ...rest } = f;\n for (const [key, value] of Object.entries(rest)) {\n if (value !== undefined && value !== '') qs.set(key, String(value));\n }\n if (limit) qs.set(pageSizeKey, String(limit));\n const q = qs.toString();\n\n return q ? `?${q}` : '';\n}\n\nexport const platformAdminApi = {\n /**\n * Password step. A box that emails sign-in codes answers `codeRequired` and\n * sets no session yet; finish with `verifyLoginCode`.\n */\n login: (email: string, password: string) =>\n apiFetch<AdminLoginAnswer>('/platform-admin/v1/auth/login', {\n method: 'POST',\n body: JSON.stringify({ email, password }),\n }),\n verifyLoginCode: (challengeId: string, code: string) =>\n apiFetch<{\n mustChangePassword: boolean;\n admin: Omit<AdminSession, 'permissions'>;\n }>('/platform-admin/v1/auth/login/verify', {\n method: 'POST',\n body: JSON.stringify({ challengeId, code }),\n }),\n resendLoginCode: (challengeId: string) =>\n apiFetch<AdminLoginCodeRequired>('/platform-admin/v1/auth/login/resend', {\n method: 'POST',\n body: JSON.stringify({ challengeId }),\n }),\n logout: () =>\n apiFetch<{ success: boolean }>('/platform-admin/v1/auth/logout', {\n method: 'POST',\n }),\n me: () => apiFetch<AdminSession>('/platform-admin/v1/auth/me'),\n changePassword: (currentPassword: string, newPassword: string) =>\n apiFetch<{ success: boolean }>('/platform-admin/v1/auth/change-password', {\n method: 'POST',\n body: JSON.stringify({ currentPassword, newPassword }),\n }),\n overview: () => apiFetch<PlatformOverview>('/platform-admin/v1/overview'),\n gatewayChannels: (params: { startDate?: string; endDate?: string } = {}) => {\n const qs = new URLSearchParams();\n if (params.startDate) qs.set('startDate', params.startDate);\n if (params.endDate) qs.set('endDate', params.endDate);\n const q = qs.toString();\n return apiFetch<{ byChannel: GatewayChannelTotal[] }>(\n `/platform-admin/v1/gateway-payments/channels${q ? `?${q}` : ''}`,\n );\n },\n merchantPayments: (f: LedgerFilters = {}) =>\n apiFetch<MerchantPaymentsPage>(\n `/platform-admin/v1/revenue/merchant-payments${ledgerQuery(f)}`,\n ),\n /** The same payments as CSV text. */\n merchantPaymentsCsv: (f: LedgerFilters = {}) =>\n apiFetch<string>(\n `/platform-admin/v1/revenue/merchant-payments/export${ledgerQuery(f)}`,\n ),\n subscriptionPayments: (f: LedgerFilters = {}) =>\n apiFetch<SubscriptionPaymentsPage>(\n `/platform-admin/v1/revenue/subscription-payments${ledgerQuery(f, 'pageSize')}`,\n ),\n subscriptionPaymentsCsv: (f: LedgerFilters = {}) =>\n apiFetch<string>(\n `/platform-admin/v1/revenue/subscription-payments/export${ledgerQuery(f, 'pageSize')}`,\n ),\n cockpit: (params: { startDate?: string; endDate?: string } = {}) => {\n const qs = new URLSearchParams();\n if (params.startDate) qs.set('startDate', params.startDate);\n if (params.endDate) qs.set('endDate', params.endDate);\n const q = qs.toString();\n return apiFetch<PlatformCockpit>(\n `/platform-admin/v1/overview/cockpit${q ? `?${q}` : ''}`,\n );\n },\n revenue: (params: { startDate?: string; endDate?: string } = {}) => {\n const qs = new URLSearchParams();\n if (params.startDate) qs.set('startDate', params.startDate);\n if (params.endDate) qs.set('endDate', params.endDate);\n const q = qs.toString();\n return apiFetch<PlatformRevenue>(\n `/platform-admin/v1/overview/revenue${q ? `?${q}` : ''}`,\n );\n },\n tenantsAnalytics: (params: { startDate?: string; endDate?: string } = {}) => {\n const qs = new URLSearchParams();\n if (params.startDate) qs.set('startDate', params.startDate);\n if (params.endDate) qs.set('endDate', params.endDate);\n const q = qs.toString();\n return apiFetch<TenantsAnalytics>(\n `/platform-admin/v1/overview/tenants-analytics${q ? `?${q}` : ''}`,\n );\n },\n tenants: (params: TenantListParams = {}) =>\n apiFetch<TenantsPage>(`/platform-admin/v1/tenants${tenantsQuery(params)}`),\n tenant: (\n id: string,\n range: { startDate?: string; endDate?: string } = {},\n ) => {\n const qs = new URLSearchParams();\n if (range.startDate) qs.set('startDate', range.startDate);\n if (range.endDate) qs.set('endDate', range.endDate);\n const query = qs.toString();\n return apiFetch<TenantDetail>(\n `/platform-admin/v1/tenants/${id}${query ? `?${query}` : ''}`,\n );\n },\n tenantAnalytics: (\n id: string,\n range: { startDate?: string; endDate?: string; limit?: number } = {},\n ) => {\n const qs = new URLSearchParams();\n if (range.startDate) qs.set('startDate', range.startDate);\n if (range.endDate) qs.set('endDate', range.endDate);\n if (range.limit) qs.set('limit', String(range.limit));\n const query = qs.toString();\n return apiFetch<DashboardStats>(\n `/platform-admin/v1/tenants/${id}/analytics${query ? `?${query}` : ''}`,\n );\n },\n tenantFinance: (\n id: string,\n range: { startDate?: string; endDate?: string; period?: string } = {},\n ) => {\n const qs = new URLSearchParams();\n if (range.startDate) qs.set('startDate', range.startDate);\n if (range.endDate) qs.set('endDate', range.endDate);\n if (range.period) qs.set('period', range.period);\n const query = qs.toString();\n return apiFetch<AdminFinanceAnalytics>(\n `/platform-admin/v1/tenants/${id}/finance${query ? `?${query}` : ''}`,\n );\n },\n tenantTransactions: (\n id: string,\n params: {\n status?: string;\n type?: string;\n search?: string;\n page?: number;\n limit?: number;\n } = {},\n ) => {\n const qs = new URLSearchParams();\n if (params.status) qs.set('status', params.status);\n if (params.type) qs.set('type', params.type);\n if (params.search) qs.set('search', params.search);\n if (params.page) qs.set('page', String(params.page));\n if (params.limit) qs.set('limit', String(params.limit));\n const query = qs.toString();\n return apiFetch<TenantTransactionsPage>(\n `/platform-admin/v1/tenants/${id}/transactions${\n query ? `?${query}` : ''\n }`,\n );\n },\n tenantCustomers: (\n id: string,\n params: {\n search?: string;\n type?: string;\n status?: string;\n page?: number;\n limit?: number;\n } = {},\n ) => {\n const qs = new URLSearchParams();\n if (params.search) qs.set('search', params.search);\n if (params.type) qs.set('type', params.type);\n if (params.status) qs.set('status', params.status);\n if (params.page) qs.set('page', String(params.page));\n if (params.limit) qs.set('limit', String(params.limit));\n const query = qs.toString();\n return apiFetch<TenantCustomersPage>(\n `/platform-admin/v1/tenants/${id}/customers${query ? `?${query}` : ''}`,\n );\n },\n tenantProducts: (\n id: string,\n params: { type?: string; search?: string } = {},\n ) => {\n const qs = new URLSearchParams();\n if (params.type) qs.set('type', params.type);\n if (params.search) qs.set('search', params.search);\n const query = qs.toString();\n return apiFetch<TenantProductsData>(\n `/platform-admin/v1/tenants/${id}/products${query ? `?${query}` : ''}`,\n );\n },\n tenantProductInsights: (id: string, range: { startDate?: string } = {}) => {\n const qs = new URLSearchParams();\n if (range.startDate) qs.set('startDate', range.startDate);\n const query = qs.toString();\n return apiFetch<ProductInsights>(\n `/platform-admin/v1/tenants/${id}/products/insights${\n query ? `?${query}` : ''\n }`,\n );\n },\n tenantCustomerInsights: (id: string, range: { startDate?: string } = {}) => {\n const qs = new URLSearchParams();\n if (range.startDate) qs.set('startDate', range.startDate);\n const query = qs.toString();\n return apiFetch<CustomerInsights>(\n `/platform-admin/v1/tenants/${id}/customers/insights${\n query ? `?${query}` : ''\n }`,\n );\n },\n tenantInvoices: (\n id: string,\n params: {\n status?: string;\n search?: string;\n page?: number;\n limit?: number;\n } = {},\n ) => {\n const qs = new URLSearchParams();\n if (params.status) qs.set('status', params.status);\n if (params.search) qs.set('search', params.search);\n if (params.page) qs.set('page', String(params.page));\n if (params.limit) qs.set('limit', String(params.limit));\n const query = qs.toString();\n return apiFetch<TenantInvoicesData>(\n `/platform-admin/v1/tenants/${id}/invoices${query ? `?${query}` : ''}`,\n );\n },\n tenantLoyalty: (id: string) =>\n apiFetch<TenantLoyaltyData>(`/platform-admin/v1/tenants/${id}/loyalty`),\n tenantDiscounts: (\n id: string,\n params: {\n status?: string;\n discountType?: string;\n search?: string;\n page?: number;\n limit?: number;\n } = {},\n ) => {\n const qs = new URLSearchParams();\n if (params.status) qs.set('status', params.status);\n if (params.discountType) qs.set('discountType', params.discountType);\n if (params.search) qs.set('search', params.search);\n if (params.page) qs.set('page', String(params.page));\n if (params.limit) qs.set('limit', String(params.limit));\n const query = qs.toString();\n return apiFetch<TenantDiscountsPage>(\n `/platform-admin/v1/tenants/${id}/discounts${query ? `?${query}` : ''}`,\n );\n },\n tenantSettlements: (\n id: string,\n params: {\n page?: number;\n limit?: number;\n startDate?: string;\n endDate?: string;\n } = {},\n ) => {\n const qs = new URLSearchParams();\n if (params.page) qs.set('page', String(params.page));\n if (params.limit) qs.set('limit', String(params.limit));\n if (params.startDate) qs.set('startDate', params.startDate);\n if (params.endDate) qs.set('endDate', params.endDate);\n const query = qs.toString();\n return apiFetch<TenantSettlementsData>(\n `/platform-admin/v1/tenants/${id}/settlements${query ? `?${query}` : ''}`,\n );\n },\n tenantSubscriptions: (\n id: string,\n params: {\n status?: string;\n planId?: string;\n page?: number;\n limit?: number;\n } = {},\n ) => {\n const qs = new URLSearchParams();\n if (params.status) qs.set('status', params.status);\n if (params.planId) qs.set('planId', params.planId);\n if (params.page) qs.set('page', String(params.page));\n if (params.limit) qs.set('limit', String(params.limit));\n const query = qs.toString();\n return apiFetch<TenantSubscriptionsData>(\n `/platform-admin/v1/tenants/${id}/subscriptions${\n query ? `?${query}` : ''\n }`,\n );\n },\n setTenantStatus: (id: string, status: TenantStatus) =>\n apiFetch<{ success: boolean }>(`/platform-admin/v1/tenants/${id}/status`, {\n method: 'PATCH',\n body: JSON.stringify({ status }),\n }),\n accounts: (\n params: {\n page?: number;\n pageSize?: number;\n search?: string;\n joinedFrom?: string;\n joinedTo?: string;\n stage?: AccountStage;\n } = {},\n ) => {\n const qs = new URLSearchParams();\n if (params.page) qs.set('page', String(params.page));\n if (params.pageSize) qs.set('pageSize', String(params.pageSize));\n if (params.search) qs.set('search', params.search);\n if (params.joinedFrom) qs.set('joinedFrom', params.joinedFrom);\n if (params.joinedTo) qs.set('joinedTo', params.joinedTo);\n if (params.stage) qs.set('stage', params.stage);\n const query = qs.toString();\n return apiFetch<AccountsPage>(\n `/platform-admin/v1/accounts${query ? `?${query}` : ''}`,\n );\n },\n accountsAnalytics: (\n params: { startDate?: string; endDate?: string } = {},\n ) => {\n const qs = new URLSearchParams();\n if (params.startDate) qs.set('startDate', params.startDate);\n if (params.endDate) qs.set('endDate', params.endDate);\n const q = qs.toString();\n return apiFetch<AccountsAnalytics>(\n `/platform-admin/v1/accounts/analytics${q ? `?${q}` : ''}`,\n );\n },\n setAccountStatus: (id: string, status: string) =>\n apiFetch<{ success: boolean }>(`/platform-admin/v1/accounts/${id}/status`, {\n method: 'PATCH',\n body: JSON.stringify({ status }),\n }),\n verifyAccount: (id: string) =>\n apiFetch<{ success: boolean }>(`/platform-admin/v1/accounts/${id}/verify`, {\n method: 'POST',\n }),\n accountSessions: (id: string) =>\n apiFetch<AccountSession[]>(`/platform-admin/v1/accounts/${id}/sessions`),\n accountTenants: (id: string) =>\n apiFetch<AccountTenantRow[]>(`/platform-admin/v1/accounts/${id}/tenants`),\n impersonateAccount: (id: string) =>\n apiFetch<{ success: boolean }>(\n `/platform-admin/v1/accounts/${id}/impersonate`,\n { method: 'POST' },\n ),\n admins: () => apiFetch<AdminRow[]>('/platform-admin/v1/admins'),\n adminsAnalytics: (params: { startDate?: string; endDate?: string } = {}) => {\n const qs = new URLSearchParams();\n if (params.startDate) qs.set('startDate', params.startDate);\n if (params.endDate) qs.set('endDate', params.endDate);\n const q = qs.toString();\n return apiFetch<AdminsAnalytics>(\n `/platform-admin/v1/admins/analytics${q ? `?${q}` : ''}`,\n );\n },\n adminPermissions: () =>\n apiFetch<string[]>('/platform-admin/v1/admins/permissions'),\n inviteAdmin: (\n email: string,\n role: 'admin' | 'superadmin',\n permissions: string[] = [],\n roleIds: string[] = [],\n ) =>\n apiFetch<{ email: string; tempPassword: string }>(\n '/platform-admin/v1/admins',\n {\n method: 'POST',\n body: JSON.stringify({ email, role, permissions, roleIds }),\n },\n ),\n setAdminStatus: (id: string, status: 'active' | 'suspended') =>\n apiFetch<{ success: boolean }>(`/platform-admin/v1/admins/${id}/status`, {\n method: 'PATCH',\n body: JSON.stringify({ status }),\n }),\n setAdminPermissions: (id: string, permissions: string[]) =>\n apiFetch<{ success: boolean }>(\n `/platform-admin/v1/admins/${id}/permissions`,\n { method: 'PATCH', body: JSON.stringify({ permissions }) },\n ),\n setAdminRoles: (id: string, roleIds: string[]) =>\n apiFetch<{ success: boolean }>(`/platform-admin/v1/admins/${id}/roles`, {\n method: 'PATCH',\n body: JSON.stringify({ roleIds }),\n }),\n resetAdminPassword: (id: string) =>\n apiFetch<{ tempPassword: string }>(\n `/platform-admin/v1/admins/${id}/reset-password`,\n { method: 'POST' },\n ),\n roles: () => apiFetch<RoleRow[]>('/platform-admin/v1/roles'),\n createRole: (name: string, permissions: string[], description?: string) =>\n apiFetch<RoleRow>('/platform-admin/v1/roles', {\n method: 'POST',\n body: JSON.stringify({ name, permissions, description }),\n }),\n updateRole: (\n id: string,\n data: { name?: string; permissions?: string[]; description?: string },\n ) =>\n apiFetch<{ success: boolean }>(`/platform-admin/v1/roles/${id}`, {\n method: 'PATCH',\n body: JSON.stringify(data),\n }),\n deleteRole: (id: string) =>\n apiFetch<{ success: boolean }>(`/platform-admin/v1/roles/${id}`, {\n method: 'DELETE',\n }),\n audit: (\n params: {\n page?: number;\n pageSize?: number;\n search?: string;\n action?: string;\n adminEmail?: string;\n from?: string;\n to?: string;\n } = {},\n ) => {\n const qs = new URLSearchParams();\n if (params.page) qs.set('page', String(params.page));\n if (params.pageSize) qs.set('pageSize', String(params.pageSize));\n if (params.search) qs.set('search', params.search);\n if (params.action) qs.set('action', params.action);\n if (params.adminEmail) qs.set('adminEmail', params.adminEmail);\n if (params.from) qs.set('from', params.from);\n if (params.to) qs.set('to', params.to);\n const q = qs.toString();\n return apiFetch<AuditPage>(`/platform-admin/v1/audit${q ? `?${q}` : ''}`);\n },\n auditAnalytics: (params: { startDate?: string; endDate?: string } = {}) => {\n const qs = new URLSearchParams();\n if (params.startDate) qs.set('startDate', params.startDate);\n if (params.endDate) qs.set('endDate', params.endDate);\n const q = qs.toString();\n return apiFetch<AuditAnalytics>(\n `/platform-admin/v1/audit/analytics${q ? `?${q}` : ''}`,\n );\n },\n};\n\nexport interface AdminRow {\n id: string;\n email: string;\n name: string | null;\n role: 'admin' | 'superadmin';\n status: 'active' | 'suspended';\n permissions: string[];\n roleIds: string[];\n mustChangePassword: boolean;\n lastLoginAt: string | null;\n createdAt: string;\n}\n\nexport interface RoleRow {\n id: string;\n key: string;\n name: string;\n description: string | null;\n permissions: string[];\n isSystem: boolean;\n assignedCount: number;\n}\n\nexport interface AuditRow {\n id: string;\n /** Who did it, by name. Absent from an engine that does not send it, or when the admin has none. */\n adminName?: string | null;\n adminEmail: string | null;\n action: string;\n targetType: string | null;\n targetId: string | null;\n metadata: Record<string, unknown>;\n ipAddress: string | null;\n /** The browser or tool the action came from. Absent from an engine that does not send it. */\n userAgent?: string | null;\n createdAt: string;\n}\n\nexport interface AuditPage {\n rows: AuditRow[];\n total: number;\n page: number;\n pageSize: number;\n}\nexport interface AuditAnalytics {\n range: { startDate: string; endDate: string };\n totals: {\n actions: number;\n activeAdmins: number;\n actionTypes: number;\n topAction: string | null;\n };\n actionSeries: Array<{ date: string; count: number }>;\n actionBreakdown: Array<{ action: string; count: number }>;\n adminBreakdown: Array<{ adminEmail: string; count: number }>;\n targetBreakdown: Array<{ targetType: string; count: number }>;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { CaseList, CaseStatus, DecisionBody, DocumentLink, VerificationCase } from './admin-case-types';
|
|
2
|
+
/**
|
|
3
|
+
* One business's wallet verification case, as a platform admin reviews it.
|
|
4
|
+
* Same `apiFetch` and cookie session as the rest of the console; the routes
|
|
5
|
+
* answer with the record itself, no envelope. Shapes: `admin-case-types.ts`.
|
|
6
|
+
*/
|
|
7
|
+
export type PhotoKind = 'selfie' | 'bvn' | 'nin';
|
|
8
|
+
export declare const photoPath: (tenantId: string, personId: string, kind: PhotoKind) => string;
|
|
9
|
+
export declare const adminCaseApi: {
|
|
10
|
+
/** 404 when the business has not started verification. */
|
|
11
|
+
get: (tenantId: string) => Promise<VerificationCase>;
|
|
12
|
+
/** Oldest wait first. */
|
|
13
|
+
list: (q?: {
|
|
14
|
+
status?: CaseStatus;
|
|
15
|
+
page?: number;
|
|
16
|
+
limit?: number;
|
|
17
|
+
}) => Promise<CaseList>;
|
|
18
|
+
/** `total` is all the queue needs; one row keeps the answer small. */
|
|
19
|
+
waitingCount: () => Promise<{
|
|
20
|
+
total: number;
|
|
21
|
+
}>;
|
|
22
|
+
photo: (tenantId: string, personId: string, kind: PhotoKind) => Promise<Blob>;
|
|
23
|
+
reveal: (tenantId: string, personId: string, field: "bvn" | "nin") => Promise<{
|
|
24
|
+
value: string;
|
|
25
|
+
}>;
|
|
26
|
+
/** A short-lived link to an ID photo or certificate; 502 when it could not be opened. */
|
|
27
|
+
viewDocument: (tenantId: string, documentId: string) => Promise<DocumentLink>;
|
|
28
|
+
/** 409 when the case is not waiting for review. */
|
|
29
|
+
decide: (tenantId: string, body: DecisionBody) => Promise<VerificationCase>;
|
|
30
|
+
/** 403 for the admin who decided; 409 when there is nothing to reverse. */
|
|
31
|
+
reverse: (tenantId: string, note: string) => Promise<VerificationCase>;
|
|
32
|
+
};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { apiFetch } from "./api";
|
|
2
|
+
import {
|
|
3
|
+
ApiRequestError,
|
|
4
|
+
getAccountId,
|
|
5
|
+
getApiUrl
|
|
6
|
+
} from "./api/core";
|
|
7
|
+
const BASE = "/platform-admin/v1/compliance/cases";
|
|
8
|
+
const caseUrl = (tenantId) => `${BASE}/${encodeURIComponent(tenantId)}`;
|
|
9
|
+
const personUrl = (tenantId, personId) => `${caseUrl(tenantId)}/people/${encodeURIComponent(personId)}`;
|
|
10
|
+
const photoPath = (tenantId, personId, kind) => kind === "selfie" ? `${personUrl(tenantId, personId)}/photo` : `${personUrl(tenantId, personId)}/reference-photo?source=${kind}`;
|
|
11
|
+
async function fetchImage(path) {
|
|
12
|
+
const headers = {};
|
|
13
|
+
const account = getAccountId();
|
|
14
|
+
if (account) headers["x-account-id"] = account;
|
|
15
|
+
const res = await fetch(`${getApiUrl()}${path}`, {
|
|
16
|
+
headers,
|
|
17
|
+
credentials: "include",
|
|
18
|
+
cache: "no-store"
|
|
19
|
+
});
|
|
20
|
+
if (!res.ok) {
|
|
21
|
+
const body = await res.json().catch(() => null);
|
|
22
|
+
throw new ApiRequestError(
|
|
23
|
+
body?.message || `HTTP ${res.status}`,
|
|
24
|
+
res.status,
|
|
25
|
+
body
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
return res.blob();
|
|
29
|
+
}
|
|
30
|
+
const post = (path, body) => apiFetch(path, { method: "POST", body: JSON.stringify(body) });
|
|
31
|
+
const adminCaseApi = {
|
|
32
|
+
/** 404 when the business has not started verification. */
|
|
33
|
+
get: (tenantId) => apiFetch(caseUrl(tenantId)),
|
|
34
|
+
/** Oldest wait first. */
|
|
35
|
+
list: (q = {}) => {
|
|
36
|
+
const params = new URLSearchParams();
|
|
37
|
+
if (q.status) params.set("status", q.status);
|
|
38
|
+
if (q.page) params.set("page", String(q.page));
|
|
39
|
+
if (q.limit) params.set("limit", String(q.limit));
|
|
40
|
+
const qs = params.toString();
|
|
41
|
+
return apiFetch(qs ? `${BASE}?${qs}` : BASE);
|
|
42
|
+
},
|
|
43
|
+
/** `total` is all the queue needs; one row keeps the answer small. */
|
|
44
|
+
waitingCount: () => apiFetch(`${BASE}?status=WAITING_REVIEW&limit=1`),
|
|
45
|
+
photo: (tenantId, personId, kind) => fetchImage(photoPath(tenantId, personId, kind)),
|
|
46
|
+
reveal: (tenantId, personId, field) => post(`${personUrl(tenantId, personId)}/reveal`, {
|
|
47
|
+
field
|
|
48
|
+
}),
|
|
49
|
+
/** A short-lived link to an ID photo or certificate; 502 when it could not be opened. */
|
|
50
|
+
viewDocument: (tenantId, documentId) => post(
|
|
51
|
+
`${caseUrl(tenantId)}/documents/${encodeURIComponent(documentId)}/view`,
|
|
52
|
+
{}
|
|
53
|
+
),
|
|
54
|
+
/** 409 when the case is not waiting for review. */
|
|
55
|
+
decide: (tenantId, body) => post(`${caseUrl(tenantId)}/decision`, body),
|
|
56
|
+
/** 403 for the admin who decided; 409 when there is nothing to reverse. */
|
|
57
|
+
reverse: (tenantId, note) => post(`${caseUrl(tenantId)}/reverse`, { note })
|
|
58
|
+
};
|
|
59
|
+
export {
|
|
60
|
+
adminCaseApi,
|
|
61
|
+
photoPath
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=admin-case-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/admin-case-api.ts"],"sourcesContent":["import { apiFetch } from './api';\nimport type {\n CaseList,\n CaseStatus,\n DecisionBody,\n DocumentLink,\n VerificationCase,\n} from './admin-case-types';\nimport {\n ApiRequestError,\n getAccountId,\n getApiUrl,\n} from './api/core';\n\n/**\n * One business's wallet verification case, as a platform admin reviews it.\n * Same `apiFetch` and cookie session as the rest of the console; the routes\n * answer with the record itself, no envelope. Shapes: `admin-case-types.ts`.\n */\n\nexport type PhotoKind = 'selfie' | 'bvn' | 'nin';\n\nconst BASE = '/platform-admin/v1/compliance/cases';\n\nconst caseUrl = (tenantId: string) => `${BASE}/${encodeURIComponent(tenantId)}`;\n\nconst personUrl = (tenantId: string, personId: string) =>\n `${caseUrl(tenantId)}/people/${encodeURIComponent(personId)}`;\n\nexport const photoPath = (\n tenantId: string,\n personId: string,\n kind: PhotoKind,\n) =>\n kind === 'selfie'\n ? `${personUrl(tenantId, personId)}/photo`\n : `${personUrl(tenantId, personId)}/reference-photo?source=${kind}`;\n\n/**\n * Image bytes, not JSON, so not `apiFetch`: the same proxy, cookies and\n * headers, read as a blob. Never cached; the caller makes the object URL.\n */\nasync function fetchImage(path: string): Promise<Blob> {\n const headers: Record<string, string> = {};\n const account = getAccountId();\n\n if (account) headers['x-account-id'] = account;\n\n const res = await fetch(`${getApiUrl()}${path}`, {\n headers,\n credentials: 'include',\n cache: 'no-store',\n });\n\n if (!res.ok) {\n const body = await res.json().catch(() => null);\n\n throw new ApiRequestError(\n body?.message || `HTTP ${res.status}`,\n res.status,\n body,\n );\n }\n\n return res.blob();\n}\n\nconst post = <T>(path: string, body: unknown) =>\n apiFetch<T>(path, { method: 'POST', body: JSON.stringify(body) });\n\nexport const adminCaseApi = {\n /** 404 when the business has not started verification. */\n get: (tenantId: string) => apiFetch<VerificationCase>(caseUrl(tenantId)),\n\n /** Oldest wait first. */\n list: (q: { status?: CaseStatus; page?: number; limit?: number } = {}) => {\n const params = new URLSearchParams();\n\n if (q.status) params.set('status', q.status);\n\n if (q.page) params.set('page', String(q.page));\n\n if (q.limit) params.set('limit', String(q.limit));\n\n const qs = params.toString();\n\n return apiFetch<CaseList>(qs ? `${BASE}?${qs}` : BASE);\n },\n\n /** `total` is all the queue needs; one row keeps the answer small. */\n waitingCount: () =>\n apiFetch<{ total: number }>(`${BASE}?status=WAITING_REVIEW&limit=1`),\n\n photo: (tenantId: string, personId: string, kind: PhotoKind) =>\n fetchImage(photoPath(tenantId, personId, kind)),\n\n reveal: (tenantId: string, personId: string, field: 'bvn' | 'nin') =>\n post<{ value: string }>(`${personUrl(tenantId, personId)}/reveal`, {\n field,\n }),\n\n /** A short-lived link to an ID photo or certificate; 502 when it could not be opened. */\n viewDocument: (tenantId: string, documentId: string) =>\n post<DocumentLink>(\n `${caseUrl(tenantId)}/documents/${encodeURIComponent(documentId)}/view`,\n {},\n ),\n\n /** 409 when the case is not waiting for review. */\n decide: (tenantId: string, body: DecisionBody) =>\n post<VerificationCase>(`${caseUrl(tenantId)}/decision`, body),\n\n /** 403 for the admin who decided; 409 when there is nothing to reverse. */\n reverse: (tenantId: string, note: string) =>\n post<VerificationCase>(`${caseUrl(tenantId)}/reverse`, { note }),\n};\n"],"mappings":"AAAA,SAAS,gBAAgB;AAQzB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAUP,MAAM,OAAO;AAEb,MAAM,UAAU,CAAC,aAAqB,GAAG,IAAI,IAAI,mBAAmB,QAAQ,CAAC;AAE7E,MAAM,YAAY,CAAC,UAAkB,aACnC,GAAG,QAAQ,QAAQ,CAAC,WAAW,mBAAmB,QAAQ,CAAC;AAEtD,MAAM,YAAY,CACvB,UACA,UACA,SAEA,SAAS,WACL,GAAG,UAAU,UAAU,QAAQ,CAAC,WAChC,GAAG,UAAU,UAAU,QAAQ,CAAC,2BAA2B,IAAI;AAMrE,eAAe,WAAW,MAA6B;AACrD,QAAM,UAAkC,CAAC;AACzC,QAAM,UAAU,aAAa;AAE7B,MAAI,QAAS,SAAQ,cAAc,IAAI;AAEvC,QAAM,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,IAAI,IAAI;AAAA,IAC/C;AAAA,IACA,aAAa;AAAA,IACb,OAAO;AAAA,EACT,CAAC;AAED,MAAI,CAAC,IAAI,IAAI;AACX,UAAM,OAAO,MAAM,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI;AAE9C,UAAM,IAAI;AAAA,MACR,MAAM,WAAW,QAAQ,IAAI,MAAM;AAAA,MACnC,IAAI;AAAA,MACJ;AAAA,IACF;AAAA,EACF;AAEA,SAAO,IAAI,KAAK;AAClB;AAEA,MAAM,OAAO,CAAI,MAAc,SAC7B,SAAY,MAAM,EAAE,QAAQ,QAAQ,MAAM,KAAK,UAAU,IAAI,EAAE,CAAC;AAE3D,MAAM,eAAe;AAAA;AAAA,EAE1B,KAAK,CAAC,aAAqB,SAA2B,QAAQ,QAAQ,CAAC;AAAA;AAAA,EAGvE,MAAM,CAAC,IAA4D,CAAC,MAAM;AACxE,UAAM,SAAS,IAAI,gBAAgB;AAEnC,QAAI,EAAE,OAAQ,QAAO,IAAI,UAAU,EAAE,MAAM;AAE3C,QAAI,EAAE,KAAM,QAAO,IAAI,QAAQ,OAAO,EAAE,IAAI,CAAC;AAE7C,QAAI,EAAE,MAAO,QAAO,IAAI,SAAS,OAAO,EAAE,KAAK,CAAC;AAEhD,UAAM,KAAK,OAAO,SAAS;AAE3B,WAAO,SAAmB,KAAK,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI;AAAA,EACvD;AAAA;AAAA,EAGA,cAAc,MACZ,SAA4B,GAAG,IAAI,gCAAgC;AAAA,EAErE,OAAO,CAAC,UAAkB,UAAkB,SAC1C,WAAW,UAAU,UAAU,UAAU,IAAI,CAAC;AAAA,EAEhD,QAAQ,CAAC,UAAkB,UAAkB,UAC3C,KAAwB,GAAG,UAAU,UAAU,QAAQ,CAAC,WAAW;AAAA,IACjE;AAAA,EACF,CAAC;AAAA;AAAA,EAGH,cAAc,CAAC,UAAkB,eAC/B;AAAA,IACE,GAAG,QAAQ,QAAQ,CAAC,cAAc,mBAAmB,UAAU,CAAC;AAAA,IAChE,CAAC;AAAA,EACH;AAAA;AAAA,EAGF,QAAQ,CAAC,UAAkB,SACzB,KAAuB,GAAG,QAAQ,QAAQ,CAAC,aAAa,IAAI;AAAA;AAAA,EAG9D,SAAS,CAAC,UAAkB,SAC1B,KAAuB,GAAG,QAAQ,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC;AACnE;","names":[]}
|