@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,311 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Product Types — Platform-level type definitions for product CRUD.
|
|
3
|
+
*
|
|
4
|
+
* These types represent the fields that the API always accepts,
|
|
5
|
+
* independent of any template. Template-specific fields are stored
|
|
6
|
+
* in the generic `data` record.
|
|
7
|
+
*/
|
|
8
|
+
export declare enum ProductType {
|
|
9
|
+
PHYSICAL = "physical",
|
|
10
|
+
DIGITAL = "digital",
|
|
11
|
+
SERVICE = "service",
|
|
12
|
+
TICKET = "ticket",
|
|
13
|
+
PACKAGE = "package"
|
|
14
|
+
}
|
|
15
|
+
export declare const PRODUCT_TYPE_OPTIONS: readonly [{
|
|
16
|
+
readonly value: ProductType.PHYSICAL;
|
|
17
|
+
readonly label: "Physical product";
|
|
18
|
+
}, {
|
|
19
|
+
readonly value: ProductType.DIGITAL;
|
|
20
|
+
readonly label: "Digital product";
|
|
21
|
+
}, {
|
|
22
|
+
readonly value: ProductType.SERVICE;
|
|
23
|
+
readonly label: "Service";
|
|
24
|
+
}, {
|
|
25
|
+
readonly value: ProductType.TICKET;
|
|
26
|
+
readonly label: "Ticket";
|
|
27
|
+
}, {
|
|
28
|
+
readonly value: ProductType.PACKAGE;
|
|
29
|
+
readonly label: "Package";
|
|
30
|
+
}];
|
|
31
|
+
export interface ProductMedia {
|
|
32
|
+
url: string;
|
|
33
|
+
type?: 'image' | 'video';
|
|
34
|
+
alt?: string;
|
|
35
|
+
width?: number;
|
|
36
|
+
height?: number;
|
|
37
|
+
thumbnail?: string;
|
|
38
|
+
duration?: number;
|
|
39
|
+
}
|
|
40
|
+
/** @deprecated Use ProductMedia */
|
|
41
|
+
export type ProductImage = ProductMedia;
|
|
42
|
+
export interface ProductVariant {
|
|
43
|
+
id: string;
|
|
44
|
+
name: string;
|
|
45
|
+
sku?: string;
|
|
46
|
+
price?: number;
|
|
47
|
+
costPrice?: number | null;
|
|
48
|
+
quantity?: number;
|
|
49
|
+
image?: ProductMedia;
|
|
50
|
+
data?: Record<string, unknown>;
|
|
51
|
+
}
|
|
52
|
+
/** Base config — every behavior at minimum has an enabled flag */
|
|
53
|
+
export interface BehaviorConfig {
|
|
54
|
+
enabled: boolean;
|
|
55
|
+
}
|
|
56
|
+
/** Nothing beyond `enabled` yet (return policy, restocking fee are future). */
|
|
57
|
+
export type SellableConfig = BehaviorConfig;
|
|
58
|
+
/**
|
|
59
|
+
* Where a booking actually happens.
|
|
60
|
+
*
|
|
61
|
+
* A service could say how long it takes, who does it and what it costs, and
|
|
62
|
+
* had nowhere to say where the customer should turn up. The only meeting link
|
|
63
|
+
* the engine knew about hung off the *ticketed* behaviour, so a consultation
|
|
64
|
+
* could only have a place by accident — connect a calendar and Google mints a
|
|
65
|
+
* Meet room. In person, a phone call, or "here is my own Zoom" were unsayable,
|
|
66
|
+
* and the confirmation went out with no answer to the one question the
|
|
67
|
+
* customer has.
|
|
68
|
+
*
|
|
69
|
+
* `google-meet` is the only kind that has no `value`: the room is minted per
|
|
70
|
+
* booking when the calendar is connected, which is also why it is the only one
|
|
71
|
+
* that can go wrong later — see the note on the field in the panel.
|
|
72
|
+
*/
|
|
73
|
+
export type BookingLocationKind = 'google-meet' | 'link' | 'in-person' | 'phone' | 'custom';
|
|
74
|
+
export interface BookingLocation {
|
|
75
|
+
kind: BookingLocationKind;
|
|
76
|
+
/**
|
|
77
|
+
* The link, address or number the kind asks for. Empty on `google-meet`
|
|
78
|
+
* and on `custom`, which carry nothing and `instructions` respectively.
|
|
79
|
+
*/
|
|
80
|
+
value?: string;
|
|
81
|
+
/** Anything else the customer needs — the buzzer, the parking, the door. */
|
|
82
|
+
instructions?: string;
|
|
83
|
+
}
|
|
84
|
+
export interface BookableConfig extends BehaviorConfig {
|
|
85
|
+
bookingMode?: 'duration' | 'date-range' | 'group';
|
|
86
|
+
durationMinutes?: number;
|
|
87
|
+
bufferBefore?: number;
|
|
88
|
+
bufferAfter?: number;
|
|
89
|
+
advanceBookingDays?: number;
|
|
90
|
+
maxCapacity?: number;
|
|
91
|
+
requiresDeposit?: boolean;
|
|
92
|
+
depositPercent?: number;
|
|
93
|
+
cancellationHours?: number;
|
|
94
|
+
assignmentStrategy?: 'auto-first' | 'auto-best' | 'customer-chooses' | 'round-robin' | 'pool' | 'sole-provider';
|
|
95
|
+
durationType?: 'fixed' | 'hourly' | 'nightly' | 'weekly' | 'monthly';
|
|
96
|
+
checkInTime?: string;
|
|
97
|
+
checkOutTime?: string;
|
|
98
|
+
minDuration?: number;
|
|
99
|
+
maxDuration?: number;
|
|
100
|
+
pricingUnit?: 'flat' | 'hourly';
|
|
101
|
+
location?: BookingLocation;
|
|
102
|
+
}
|
|
103
|
+
export interface ShippableConfig extends BehaviorConfig {
|
|
104
|
+
weight?: number;
|
|
105
|
+
dimensions?: {
|
|
106
|
+
l: number;
|
|
107
|
+
w: number;
|
|
108
|
+
h: number;
|
|
109
|
+
};
|
|
110
|
+
requiresAddress?: boolean;
|
|
111
|
+
}
|
|
112
|
+
export interface SubscribableConfig extends BehaviorConfig {
|
|
113
|
+
interval?: 'weekly' | 'biweekly' | 'monthly' | 'yearly';
|
|
114
|
+
trialDays?: number;
|
|
115
|
+
linkedPlanId?: string;
|
|
116
|
+
accessTags?: string[];
|
|
117
|
+
}
|
|
118
|
+
export interface DownloadableConfig extends BehaviorConfig {
|
|
119
|
+
fileUrl?: string;
|
|
120
|
+
fileSize?: number;
|
|
121
|
+
maxDownloads?: number;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Something let out to someone else for a while: a short-let, a vacation
|
|
125
|
+
* rental, a hall, a studio, a pitch. `pricingModel` decides the unit it is
|
|
126
|
+
* let by, and every length rule below is counted in that same unit.
|
|
127
|
+
*/
|
|
128
|
+
export interface RentableConfig extends BehaviorConfig {
|
|
129
|
+
pricingModel?: 'per-night' | 'per-hour' | 'flat-rate';
|
|
130
|
+
surchargeWeekend?: number;
|
|
131
|
+
securityDeposit?: number;
|
|
132
|
+
cleaningFee?: number;
|
|
133
|
+
maxGuests?: number;
|
|
134
|
+
/** Shortest booking accepted, in nights or hours per `pricingModel`. */
|
|
135
|
+
minUnits?: number;
|
|
136
|
+
/** Longest booking accepted, in the same unit. */
|
|
137
|
+
maxUnits?: number;
|
|
138
|
+
/** How many interchangeable copies of this listing exist — eight identical
|
|
139
|
+
* studios sold as one product rather than eight. One by default. */
|
|
140
|
+
availableUnits?: number;
|
|
141
|
+
/** The listing this one is part of, by id. A house let both whole and by
|
|
142
|
+
* the room shares one calendar, so letting either takes the other. */
|
|
143
|
+
partOf?: string;
|
|
144
|
+
/** Dates the owner has closed, as `YYYY-MM-DD`. Not sold, not booked: shut,
|
|
145
|
+
* and refused on the storefront in words of its own. */
|
|
146
|
+
blockedDates?: string[];
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* A product that mints a gift card when it is paid for.
|
|
150
|
+
*
|
|
151
|
+
* Denominations are ordinary variants: the line's selling price becomes the
|
|
152
|
+
* card's face value, so a merchant offering ₦5,000 / ₦10,000 / ₦25,000 sets
|
|
153
|
+
* those up the way they set up any other variant. A parallel list of amounts
|
|
154
|
+
* here would be a second way to say the same thing, and the two would drift.
|
|
155
|
+
*/
|
|
156
|
+
export interface GiftCardConfig extends BehaviorConfig {
|
|
157
|
+
/** Days the issued card stays valid. Omit for a card that never expires. */
|
|
158
|
+
expiresAfterDays?: number;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* One thing a customer can add to this item on the way to paying for it: the
|
|
162
|
+
* extra laces with the shoe, the airport pickup with the stay, the candles on
|
|
163
|
+
* the cake.
|
|
164
|
+
*
|
|
165
|
+
* Not a variant. A variant is a fork — you buy the S *or* the M, and the price
|
|
166
|
+
* replaces the item's. An add-on is a sum — you buy the shoe *and* the laces,
|
|
167
|
+
* and its price is added on top. That is why they cannot be the same control:
|
|
168
|
+
* three sizes are three prices to choose between, three add-ons are eight
|
|
169
|
+
* possible baskets.
|
|
170
|
+
*/
|
|
171
|
+
export interface AddOnItem {
|
|
172
|
+
id: string;
|
|
173
|
+
name: string;
|
|
174
|
+
description?: string;
|
|
175
|
+
/** Added to the line total, on top of the item (or the chosen variant). */
|
|
176
|
+
price: number;
|
|
177
|
+
/** Always included and not removable — a service charge, a deposit. */
|
|
178
|
+
required?: boolean;
|
|
179
|
+
}
|
|
180
|
+
export interface AddableConfig extends BehaviorConfig {
|
|
181
|
+
addOns: AddOnItem[];
|
|
182
|
+
}
|
|
183
|
+
export interface TicketedConfig extends BehaviorConfig {
|
|
184
|
+
eventDate?: string;
|
|
185
|
+
eventStartTime?: string;
|
|
186
|
+
eventEndTime?: string;
|
|
187
|
+
venueCapacity?: number;
|
|
188
|
+
seating?: 'assigned' | 'general-admission';
|
|
189
|
+
maxPerCustomer?: number;
|
|
190
|
+
salesDeadline?: string;
|
|
191
|
+
venueName?: string;
|
|
192
|
+
venueAddress?: string;
|
|
193
|
+
venueCity?: string;
|
|
194
|
+
venueState?: string;
|
|
195
|
+
venueCountry?: string;
|
|
196
|
+
venueCoordinates?: {
|
|
197
|
+
lat: number;
|
|
198
|
+
lng: number;
|
|
199
|
+
};
|
|
200
|
+
onlineEventUrl?: string;
|
|
201
|
+
tiers?: Array<{
|
|
202
|
+
id?: string;
|
|
203
|
+
name: string;
|
|
204
|
+
price: number;
|
|
205
|
+
quantity: number;
|
|
206
|
+
soldCount?: number;
|
|
207
|
+
}>;
|
|
208
|
+
recurrence?: EventRecurrenceRule;
|
|
209
|
+
}
|
|
210
|
+
/** Recurrence rule for generating event series occurrences */
|
|
211
|
+
export interface EventRecurrenceRule {
|
|
212
|
+
frequency: 'daily' | 'weekly' | 'biweekly' | 'monthly';
|
|
213
|
+
interval?: number;
|
|
214
|
+
daysOfWeek?: number[];
|
|
215
|
+
endDate?: string;
|
|
216
|
+
occurrences?: number;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Backward-compatible: each behavior can be a simple boolean OR a config object.
|
|
220
|
+
* Old `{ sellable: true }` still works. New `{ bookable: { enabled: true, durationMinutes: 60 } }` also works.
|
|
221
|
+
*/
|
|
222
|
+
export interface ProductBehaviors {
|
|
223
|
+
sellable?: boolean | SellableConfig;
|
|
224
|
+
bookable?: boolean | BookableConfig;
|
|
225
|
+
subscribable?: boolean | SubscribableConfig;
|
|
226
|
+
/** Legacy tag-based content gate. Customer must have active sub granting ALL listed tags. */
|
|
227
|
+
gatedBy?: string[];
|
|
228
|
+
/** Plan-id content gate. Customer must have active sub to ANY of these plan IDs (OR'd with gatedBy). */
|
|
229
|
+
gatedByPlanIds?: string[];
|
|
230
|
+
reservable?: boolean;
|
|
231
|
+
downloadable?: boolean | DownloadableConfig;
|
|
232
|
+
shippable?: boolean | ShippableConfig;
|
|
233
|
+
rentable?: boolean | RentableConfig;
|
|
234
|
+
ticketed?: boolean | TicketedConfig;
|
|
235
|
+
giftcard?: boolean | GiftCardConfig;
|
|
236
|
+
/**
|
|
237
|
+
* Extras sold alongside this item. The engine has honoured these since the
|
|
238
|
+
* cart was written — `resolve-item-price` verifies every selected add-on
|
|
239
|
+
* against this list and prices it from here, never from the storefront — but
|
|
240
|
+
* nothing in the dashboard could put one here, so the list was always empty.
|
|
241
|
+
*/
|
|
242
|
+
addable?: boolean | AddableConfig;
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Check if a behavior is enabled regardless of boolean or config format.
|
|
246
|
+
*
|
|
247
|
+
* Takes `unknown` on purpose. Behaviours are read out of JSONB and reach these
|
|
248
|
+
* helpers as `unknown` far more often than as a typed union, so a narrow
|
|
249
|
+
* parameter did not make callers safer — it made forty of them write
|
|
250
|
+
* `isBehaviorEnabled(x as any)`, which asserts a shape nobody checked. The
|
|
251
|
+
* runtime narrowing below is the real guarantee, so let it be the only one.
|
|
252
|
+
*/
|
|
253
|
+
export declare function isBehaviorEnabled(value: unknown): boolean;
|
|
254
|
+
/**
|
|
255
|
+
* Extract the config object from a behavior value. See isBehaviorEnabled for
|
|
256
|
+
* why this accepts `unknown`.
|
|
257
|
+
*/
|
|
258
|
+
export declare function getBehaviorConfig<T extends BehaviorConfig>(value: unknown): T | null;
|
|
259
|
+
/**
|
|
260
|
+
* Platform fields — always accepted by POST /products.
|
|
261
|
+
* Template-specific fields go in `data`.
|
|
262
|
+
*/
|
|
263
|
+
export interface CreateProductPayload {
|
|
264
|
+
type: ProductType;
|
|
265
|
+
title: string;
|
|
266
|
+
slug: string;
|
|
267
|
+
description?: string;
|
|
268
|
+
shortDescription?: string;
|
|
269
|
+
category?: string;
|
|
270
|
+
tags?: string[];
|
|
271
|
+
featured?: boolean;
|
|
272
|
+
isActive?: boolean;
|
|
273
|
+
sortOrder?: number;
|
|
274
|
+
image?: ProductMedia;
|
|
275
|
+
gallery?: ProductMedia[];
|
|
276
|
+
price?: number;
|
|
277
|
+
compareAtPrice?: number;
|
|
278
|
+
costPrice?: number | null;
|
|
279
|
+
currency?: string;
|
|
280
|
+
trackInventory?: boolean;
|
|
281
|
+
quantity?: number;
|
|
282
|
+
lowStockThreshold?: number;
|
|
283
|
+
behaviors?: ProductBehaviors;
|
|
284
|
+
hasVariants?: boolean;
|
|
285
|
+
variants?: ProductVariant[];
|
|
286
|
+
/** Template-specific fields live here */
|
|
287
|
+
data?: Record<string, unknown>;
|
|
288
|
+
/** Semantic intent key — which business activity this item serves */
|
|
289
|
+
intent?: string;
|
|
290
|
+
/** Team member IDs (tenant_members.id) assigned as owners of this product. */
|
|
291
|
+
assigneeIds?: string[];
|
|
292
|
+
}
|
|
293
|
+
export type UpdateProductPayload = Partial<Omit<CreateProductPayload, 'type'>>;
|
|
294
|
+
/**
|
|
295
|
+
* Full product as returned by GET /products/:id.
|
|
296
|
+
* Extends the create payload with server-generated fields.
|
|
297
|
+
*/
|
|
298
|
+
export interface Product extends CreateProductPayload {
|
|
299
|
+
id: string;
|
|
300
|
+
tenantId: string;
|
|
301
|
+
seriesId?: string | null;
|
|
302
|
+
reserved?: number;
|
|
303
|
+
available?: number;
|
|
304
|
+
status?: string;
|
|
305
|
+
createdAt?: string;
|
|
306
|
+
updatedAt?: string;
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Generate a URL-safe slug from a title string.
|
|
310
|
+
*/
|
|
311
|
+
export declare function generateSlug(title: string): string;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
var ProductType = /* @__PURE__ */ ((ProductType2) => {
|
|
2
|
+
ProductType2["PHYSICAL"] = "physical";
|
|
3
|
+
ProductType2["DIGITAL"] = "digital";
|
|
4
|
+
ProductType2["SERVICE"] = "service";
|
|
5
|
+
ProductType2["TICKET"] = "ticket";
|
|
6
|
+
ProductType2["PACKAGE"] = "package";
|
|
7
|
+
return ProductType2;
|
|
8
|
+
})(ProductType || {});
|
|
9
|
+
const PRODUCT_TYPE_OPTIONS = [
|
|
10
|
+
{ value: "physical" /* PHYSICAL */, label: "Physical product" },
|
|
11
|
+
{ value: "digital" /* DIGITAL */, label: "Digital product" },
|
|
12
|
+
{ value: "service" /* SERVICE */, label: "Service" },
|
|
13
|
+
{ value: "ticket" /* TICKET */, label: "Ticket" },
|
|
14
|
+
{ value: "package" /* PACKAGE */, label: "Package" }
|
|
15
|
+
];
|
|
16
|
+
function isBehaviorEnabled(value) {
|
|
17
|
+
if (typeof value === "boolean") return value;
|
|
18
|
+
if (typeof value === "object" && value !== null && "enabled" in value) {
|
|
19
|
+
return Boolean(value.enabled);
|
|
20
|
+
}
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
function getBehaviorConfig(value) {
|
|
24
|
+
if (typeof value === "object" && value !== null) return value;
|
|
25
|
+
if (value === true) return { enabled: true };
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
function generateSlug(title) {
|
|
29
|
+
return title.toLowerCase().trim().replace(/[^\w\s-]/g, "").replace(/[\s_]+/g, "-").replace(/-+/g, "-").replace(/^-|-$/g, "");
|
|
30
|
+
}
|
|
31
|
+
export {
|
|
32
|
+
PRODUCT_TYPE_OPTIONS,
|
|
33
|
+
ProductType,
|
|
34
|
+
generateSlug,
|
|
35
|
+
getBehaviorConfig,
|
|
36
|
+
isBehaviorEnabled
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=product-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/product-types.ts"],"sourcesContent":["/**\n * Product Types — Platform-level type definitions for product CRUD.\n *\n * These types represent the fields that the API always accepts,\n * independent of any template. Template-specific fields are stored\n * in the generic `data` record.\n */\n\n// ============================================\n// ENUMS\n// ============================================\n\nexport enum ProductType {\n PHYSICAL = 'physical',\n DIGITAL = 'digital',\n SERVICE = 'service',\n TICKET = 'ticket',\n PACKAGE = 'package',\n}\n\nexport const PRODUCT_TYPE_OPTIONS = [\n { value: ProductType.PHYSICAL, label: 'Physical product' },\n { value: ProductType.DIGITAL, label: 'Digital product' },\n { value: ProductType.SERVICE, label: 'Service' },\n { value: ProductType.TICKET, label: 'Ticket' },\n { value: ProductType.PACKAGE, label: 'Package' },\n] as const;\n\n// ============================================\n// INTERFACES\n// ============================================\n\nexport interface ProductMedia {\n url: string;\n type?: 'image' | 'video';\n alt?: string;\n width?: number;\n height?: number;\n thumbnail?: string;\n duration?: number;\n}\n\n/** @deprecated Use ProductMedia */\nexport type ProductImage = ProductMedia;\n\nexport interface ProductVariant {\n id: string;\n name: string;\n sku?: string;\n price?: number;\n costPrice?: number | null;\n quantity?: number;\n image?: ProductMedia;\n data?: Record<string, unknown>;\n}\n\n// ============================================\n// BEHAVIOR CONFIG TYPES\n// ============================================\n\n/** Base config — every behavior at minimum has an enabled flag */\nexport interface BehaviorConfig {\n enabled: boolean;\n}\n\n/** Nothing beyond `enabled` yet (return policy, restocking fee are future). */\nexport type SellableConfig = BehaviorConfig;\n\n/**\n * Where a booking actually happens.\n *\n * A service could say how long it takes, who does it and what it costs, and\n * had nowhere to say where the customer should turn up. The only meeting link\n * the engine knew about hung off the *ticketed* behaviour, so a consultation\n * could only have a place by accident — connect a calendar and Google mints a\n * Meet room. In person, a phone call, or \"here is my own Zoom\" were unsayable,\n * and the confirmation went out with no answer to the one question the\n * customer has.\n *\n * `google-meet` is the only kind that has no `value`: the room is minted per\n * booking when the calendar is connected, which is also why it is the only one\n * that can go wrong later — see the note on the field in the panel.\n */\nexport type BookingLocationKind =\n 'google-meet' | 'link' | 'in-person' | 'phone' | 'custom';\n\nexport interface BookingLocation {\n kind: BookingLocationKind;\n /**\n * The link, address or number the kind asks for. Empty on `google-meet`\n * and on `custom`, which carry nothing and `instructions` respectively.\n */\n value?: string;\n /** Anything else the customer needs — the buzzer, the parking, the door. */\n instructions?: string;\n}\n\nexport interface BookableConfig extends BehaviorConfig {\n bookingMode?: 'duration' | 'date-range' | 'group';\n durationMinutes?: number;\n bufferBefore?: number;\n bufferAfter?: number;\n advanceBookingDays?: number;\n maxCapacity?: number;\n requiresDeposit?: boolean;\n depositPercent?: number;\n cancellationHours?: number;\n assignmentStrategy?:\n | 'auto-first'\n | 'auto-best'\n | 'customer-chooses'\n | 'round-robin'\n | 'pool'\n | 'sole-provider';\n durationType?: 'fixed' | 'hourly' | 'nightly' | 'weekly' | 'monthly';\n checkInTime?: string;\n checkOutTime?: string;\n minDuration?: number;\n maxDuration?: number;\n pricingUnit?: 'flat' | 'hourly';\n location?: BookingLocation;\n}\n\nexport interface ShippableConfig extends BehaviorConfig {\n weight?: number;\n dimensions?: { l: number; w: number; h: number };\n requiresAddress?: boolean;\n}\n\nexport interface SubscribableConfig extends BehaviorConfig {\n interval?: 'weekly' | 'biweekly' | 'monthly' | 'yearly';\n trialDays?: number;\n linkedPlanId?: string;\n accessTags?: string[];\n}\n\nexport interface DownloadableConfig extends BehaviorConfig {\n fileUrl?: string;\n fileSize?: number;\n maxDownloads?: number;\n}\n\n/**\n * Something let out to someone else for a while: a short-let, a vacation\n * rental, a hall, a studio, a pitch. `pricingModel` decides the unit it is\n * let by, and every length rule below is counted in that same unit.\n */\nexport interface RentableConfig extends BehaviorConfig {\n pricingModel?: 'per-night' | 'per-hour' | 'flat-rate';\n surchargeWeekend?: number;\n securityDeposit?: number;\n cleaningFee?: number;\n maxGuests?: number;\n /** Shortest booking accepted, in nights or hours per `pricingModel`. */\n minUnits?: number;\n /** Longest booking accepted, in the same unit. */\n maxUnits?: number;\n /** How many interchangeable copies of this listing exist — eight identical\n * studios sold as one product rather than eight. One by default. */\n availableUnits?: number;\n /** The listing this one is part of, by id. A house let both whole and by\n * the room shares one calendar, so letting either takes the other. */\n partOf?: string;\n /** Dates the owner has closed, as `YYYY-MM-DD`. Not sold, not booked: shut,\n * and refused on the storefront in words of its own. */\n blockedDates?: string[];\n}\n\n/**\n * A product that mints a gift card when it is paid for.\n *\n * Denominations are ordinary variants: the line's selling price becomes the\n * card's face value, so a merchant offering ₦5,000 / ₦10,000 / ₦25,000 sets\n * those up the way they set up any other variant. A parallel list of amounts\n * here would be a second way to say the same thing, and the two would drift.\n */\nexport interface GiftCardConfig extends BehaviorConfig {\n /** Days the issued card stays valid. Omit for a card that never expires. */\n expiresAfterDays?: number;\n}\n\n/**\n * One thing a customer can add to this item on the way to paying for it: the\n * extra laces with the shoe, the airport pickup with the stay, the candles on\n * the cake.\n *\n * Not a variant. A variant is a fork — you buy the S *or* the M, and the price\n * replaces the item's. An add-on is a sum — you buy the shoe *and* the laces,\n * and its price is added on top. That is why they cannot be the same control:\n * three sizes are three prices to choose between, three add-ons are eight\n * possible baskets.\n */\nexport interface AddOnItem {\n id: string;\n name: string;\n description?: string;\n /** Added to the line total, on top of the item (or the chosen variant). */\n price: number;\n /** Always included and not removable — a service charge, a deposit. */\n required?: boolean;\n}\n\nexport interface AddableConfig extends BehaviorConfig {\n addOns: AddOnItem[];\n}\n\nexport interface TicketedConfig extends BehaviorConfig {\n eventDate?: string;\n eventStartTime?: string;\n eventEndTime?: string;\n venueCapacity?: number;\n seating?: 'assigned' | 'general-admission';\n maxPerCustomer?: number;\n salesDeadline?: string;\n venueName?: string;\n venueAddress?: string;\n venueCity?: string;\n venueState?: string;\n venueCountry?: string;\n venueCoordinates?: { lat: number; lng: number };\n onlineEventUrl?: string;\n tiers?: Array<{\n id?: string;\n name: string;\n price: number;\n quantity: number;\n soldCount?: number;\n }>;\n recurrence?: EventRecurrenceRule;\n}\n\n/** Recurrence rule for generating event series occurrences */\nexport interface EventRecurrenceRule {\n frequency: 'daily' | 'weekly' | 'biweekly' | 'monthly';\n interval?: number;\n daysOfWeek?: number[];\n endDate?: string;\n occurrences?: number;\n}\n\n/**\n * Backward-compatible: each behavior can be a simple boolean OR a config object.\n * Old `{ sellable: true }` still works. New `{ bookable: { enabled: true, durationMinutes: 60 } }` also works.\n */\nexport interface ProductBehaviors {\n sellable?: boolean | SellableConfig;\n bookable?: boolean | BookableConfig;\n subscribable?: boolean | SubscribableConfig;\n /** Legacy tag-based content gate. Customer must have active sub granting ALL listed tags. */\n gatedBy?: string[];\n /** Plan-id content gate. Customer must have active sub to ANY of these plan IDs (OR'd with gatedBy). */\n gatedByPlanIds?: string[];\n reservable?: boolean; // deprecated, use bookable\n downloadable?: boolean | DownloadableConfig;\n shippable?: boolean | ShippableConfig;\n rentable?: boolean | RentableConfig;\n ticketed?: boolean | TicketedConfig;\n giftcard?: boolean | GiftCardConfig;\n /**\n * Extras sold alongside this item. The engine has honoured these since the\n * cart was written — `resolve-item-price` verifies every selected add-on\n * against this list and prices it from here, never from the storefront — but\n * nothing in the dashboard could put one here, so the list was always empty.\n */\n addable?: boolean | AddableConfig;\n}\n\n// ============================================\n// BEHAVIOR HELPERS\n// ============================================\n\n/**\n * Check if a behavior is enabled regardless of boolean or config format.\n *\n * Takes `unknown` on purpose. Behaviours are read out of JSONB and reach these\n * helpers as `unknown` far more often than as a typed union, so a narrow\n * parameter did not make callers safer — it made forty of them write\n * `isBehaviorEnabled(x as any)`, which asserts a shape nobody checked. The\n * runtime narrowing below is the real guarantee, so let it be the only one.\n */\nexport function isBehaviorEnabled(value: unknown): boolean {\n if (typeof value === 'boolean') return value;\n if (typeof value === 'object' && value !== null && 'enabled' in value) {\n return Boolean((value as BehaviorConfig).enabled);\n }\n return false;\n}\n\n/**\n * Extract the config object from a behavior value. See isBehaviorEnabled for\n * why this accepts `unknown`.\n */\nexport function getBehaviorConfig<T extends BehaviorConfig>(\n value: unknown,\n): T | null {\n if (typeof value === 'object' && value !== null) return value as T;\n if (value === true) return { enabled: true } as T;\n return null;\n}\n\n/**\n * Platform fields — always accepted by POST /products.\n * Template-specific fields go in `data`.\n */\nexport interface CreateProductPayload {\n type: ProductType;\n title: string;\n slug: string;\n description?: string;\n shortDescription?: string;\n category?: string;\n tags?: string[];\n featured?: boolean;\n isActive?: boolean;\n sortOrder?: number;\n image?: ProductMedia;\n gallery?: ProductMedia[];\n price?: number;\n compareAtPrice?: number;\n costPrice?: number | null;\n currency?: string;\n trackInventory?: boolean;\n quantity?: number;\n lowStockThreshold?: number;\n behaviors?: ProductBehaviors;\n hasVariants?: boolean;\n variants?: ProductVariant[];\n /** Template-specific fields live here */\n data?: Record<string, unknown>;\n /** Semantic intent key — which business activity this item serves */\n intent?: string;\n /** Team member IDs (tenant_members.id) assigned as owners of this product. */\n assigneeIds?: string[];\n}\n\nexport type UpdateProductPayload = Partial<Omit<CreateProductPayload, 'type'>>;\n\n/**\n * Full product as returned by GET /products/:id.\n * Extends the create payload with server-generated fields.\n */\nexport interface Product extends CreateProductPayload {\n id: string;\n tenantId: string;\n seriesId?: string | null;\n reserved?: number;\n available?: number;\n status?: string;\n createdAt?: string;\n updatedAt?: string;\n}\n\n// ============================================\n// HELPERS\n// ============================================\n\n/**\n * Generate a URL-safe slug from a title string.\n */\nexport function generateSlug(title: string): string {\n return title\n .toLowerCase()\n .trim()\n .replace(/[^\\w\\s-]/g, '') // strip special chars\n .replace(/[\\s_]+/g, '-') // spaces/underscores to hyphens\n .replace(/-+/g, '-') // collapse multiple hyphens\n .replace(/^-|-$/g, ''); // trim leading/trailing hyphens\n}\n"],"mappings":"AAYO,IAAK,cAAL,kBAAKA,iBAAL;AACL,EAAAA,aAAA,cAAW;AACX,EAAAA,aAAA,aAAU;AACV,EAAAA,aAAA,aAAU;AACV,EAAAA,aAAA,YAAS;AACT,EAAAA,aAAA,aAAU;AALA,SAAAA;AAAA,GAAA;AAQL,MAAM,uBAAuB;AAAA,EAClC,EAAE,OAAO,2BAAsB,OAAO,mBAAmB;AAAA,EACzD,EAAE,OAAO,yBAAqB,OAAO,kBAAkB;AAAA,EACvD,EAAE,OAAO,yBAAqB,OAAO,UAAU;AAAA,EAC/C,EAAE,OAAO,uBAAoB,OAAO,SAAS;AAAA,EAC7C,EAAE,OAAO,yBAAqB,OAAO,UAAU;AACjD;AA8PO,SAAS,kBAAkB,OAAyB;AACzD,MAAI,OAAO,UAAU,UAAW,QAAO;AACvC,MAAI,OAAO,UAAU,YAAY,UAAU,QAAQ,aAAa,OAAO;AACrE,WAAO,QAAS,MAAyB,OAAO;AAAA,EAClD;AACA,SAAO;AACT;AAMO,SAAS,kBACd,OACU;AACV,MAAI,OAAO,UAAU,YAAY,UAAU,KAAM,QAAO;AACxD,MAAI,UAAU,KAAM,QAAO,EAAE,SAAS,KAAK;AAC3C,SAAO;AACT;AA6DO,SAAS,aAAa,OAAuB;AAClD,SAAO,MACJ,YAAY,EACZ,KAAK,EACL,QAAQ,aAAa,EAAE,EACvB,QAAQ,WAAW,GAAG,EACtB,QAAQ,OAAO,GAAG,EAClB,QAAQ,UAAU,EAAE;AACzB;","names":["ProductType"]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The day a merchant promised an order would arrive.
|
|
3
|
+
*
|
|
4
|
+
* Kept as `YYYY-MM-DD` all the way through — the column, the DTO, `DateField`
|
|
5
|
+
* and here — because that is the form that can be compared to today. It used
|
|
6
|
+
* to be free text ("December 20, 2024") which meant nothing could sort by it
|
|
7
|
+
* and no order could ever be late.
|
|
8
|
+
*
|
|
9
|
+
* Days are compared as strings, never as Dates. Turning both sides into Date
|
|
10
|
+
* objects makes "is this late?" depend on the hour and on the reader's
|
|
11
|
+
* timezone: an order promised for today is not late at 23:00.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Today where the merchant is standing.
|
|
15
|
+
*
|
|
16
|
+
* Built from local parts rather than `toISOString().slice(0, 10)`, which is
|
|
17
|
+
* UTC: at 00:30 in Lagos that returns yesterday, and the queue would call an
|
|
18
|
+
* order late a day early.
|
|
19
|
+
*/
|
|
20
|
+
export declare function todayIso(now?: Date): string;
|
|
21
|
+
/** Has the promised day passed? Never true for an order nobody promised. */
|
|
22
|
+
export declare function isOverdue(day: string | null | undefined, today?: string): boolean;
|
|
23
|
+
/** Is the promised day today? The orders that need to move now. */
|
|
24
|
+
export declare function isDueToday(day: string | null | undefined, today?: string): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* How a promised day reads in the interface: "today", "tomorrow", "3 days
|
|
27
|
+
* late", or the date itself once it is far enough away to need naming.
|
|
28
|
+
*
|
|
29
|
+
* Relative near the present because that is the only range where a merchant
|
|
30
|
+
* is doing arithmetic against today, and absolute beyond it because "in 23
|
|
31
|
+
* days" is not something anyone can act on.
|
|
32
|
+
*/
|
|
33
|
+
export declare function describePromisedDay(day: string | null | undefined, today?: string): string | null;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
const ISO_DAY = /^\d{4}-\d{2}-\d{2}$/;
|
|
2
|
+
function todayIso(now = /* @__PURE__ */ new Date()) {
|
|
3
|
+
const month = String(now.getMonth() + 1).padStart(2, "0");
|
|
4
|
+
const day = String(now.getDate()).padStart(2, "0");
|
|
5
|
+
return `${now.getFullYear()}-${month}-${day}`;
|
|
6
|
+
}
|
|
7
|
+
function isOverdue(day, today = todayIso()) {
|
|
8
|
+
if (!day || !ISO_DAY.test(day)) return false;
|
|
9
|
+
return day < today;
|
|
10
|
+
}
|
|
11
|
+
function isDueToday(day, today = todayIso()) {
|
|
12
|
+
return !!day && day === today;
|
|
13
|
+
}
|
|
14
|
+
function describePromisedDay(day, today = todayIso()) {
|
|
15
|
+
if (!day || !ISO_DAY.test(day)) return null;
|
|
16
|
+
const diff = daysBetween(today, day);
|
|
17
|
+
if (diff === 0) return "today";
|
|
18
|
+
if (diff === 1) return "tomorrow";
|
|
19
|
+
if (diff === -1) return "a day late";
|
|
20
|
+
if (diff < -1) return `${Math.abs(diff)} days late`;
|
|
21
|
+
if (diff <= 6) return `in ${diff} days`;
|
|
22
|
+
return (/* @__PURE__ */ new Date(`${day}T00:00:00`)).toLocaleDateString(void 0, {
|
|
23
|
+
day: "numeric",
|
|
24
|
+
month: "short"
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
function daysBetween(from, to) {
|
|
28
|
+
const start = Date.parse(`${from}T00:00:00Z`);
|
|
29
|
+
const end = Date.parse(`${to}T00:00:00Z`);
|
|
30
|
+
return Math.round((end - start) / 864e5);
|
|
31
|
+
}
|
|
32
|
+
export {
|
|
33
|
+
describePromisedDay,
|
|
34
|
+
isDueToday,
|
|
35
|
+
isOverdue,
|
|
36
|
+
todayIso
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=promised-day.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/promised-day.ts"],"sourcesContent":["/**\n * The day a merchant promised an order would arrive.\n *\n * Kept as `YYYY-MM-DD` all the way through — the column, the DTO, `DateField`\n * and here — because that is the form that can be compared to today. It used\n * to be free text (\"December 20, 2024\") which meant nothing could sort by it\n * and no order could ever be late.\n *\n * Days are compared as strings, never as Dates. Turning both sides into Date\n * objects makes \"is this late?\" depend on the hour and on the reader's\n * timezone: an order promised for today is not late at 23:00.\n */\n\nconst ISO_DAY = /^\\d{4}-\\d{2}-\\d{2}$/;\n\n/**\n * Today where the merchant is standing.\n *\n * Built from local parts rather than `toISOString().slice(0, 10)`, which is\n * UTC: at 00:30 in Lagos that returns yesterday, and the queue would call an\n * order late a day early.\n */\nexport function todayIso(now: Date = new Date()): string {\n const month = String(now.getMonth() + 1).padStart(2, '0');\n const day = String(now.getDate()).padStart(2, '0');\n return `${now.getFullYear()}-${month}-${day}`;\n}\n\n/** Has the promised day passed? Never true for an order nobody promised. */\nexport function isOverdue(\n day: string | null | undefined,\n today: string = todayIso(),\n): boolean {\n if (!day || !ISO_DAY.test(day)) return false;\n return day < today;\n}\n\n/** Is the promised day today? The orders that need to move now. */\nexport function isDueToday(\n day: string | null | undefined,\n today: string = todayIso(),\n): boolean {\n return !!day && day === today;\n}\n\n/**\n * How a promised day reads in the interface: \"today\", \"tomorrow\", \"3 days\n * late\", or the date itself once it is far enough away to need naming.\n *\n * Relative near the present because that is the only range where a merchant\n * is doing arithmetic against today, and absolute beyond it because \"in 23\n * days\" is not something anyone can act on.\n */\nexport function describePromisedDay(\n day: string | null | undefined,\n today: string = todayIso(),\n): string | null {\n if (!day || !ISO_DAY.test(day)) return null;\n\n const diff = daysBetween(today, day);\n if (diff === 0) return 'today';\n if (diff === 1) return 'tomorrow';\n if (diff === -1) return 'a day late';\n if (diff < -1) return `${Math.abs(diff)} days late`;\n if (diff <= 6) return `in ${diff} days`;\n\n return new Date(`${day}T00:00:00`).toLocaleDateString(undefined, {\n day: 'numeric',\n month: 'short',\n });\n}\n\n/**\n * Whole days from `from` to `to`, both `YYYY-MM-DD`.\n *\n * Parsed as UTC so the subtraction cannot land on a 23- or 25-hour day when a\n * daylight-saving boundary falls between the two dates.\n */\nfunction daysBetween(from: string, to: string): number {\n const start = Date.parse(`${from}T00:00:00Z`);\n const end = Date.parse(`${to}T00:00:00Z`);\n return Math.round((end - start) / 86_400_000);\n}\n"],"mappings":"AAaA,MAAM,UAAU;AAST,SAAS,SAAS,MAAY,oBAAI,KAAK,GAAW;AACvD,QAAM,QAAQ,OAAO,IAAI,SAAS,IAAI,CAAC,EAAE,SAAS,GAAG,GAAG;AACxD,QAAM,MAAM,OAAO,IAAI,QAAQ,CAAC,EAAE,SAAS,GAAG,GAAG;AACjD,SAAO,GAAG,IAAI,YAAY,CAAC,IAAI,KAAK,IAAI,GAAG;AAC7C;AAGO,SAAS,UACd,KACA,QAAgB,SAAS,GAChB;AACT,MAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,GAAG,EAAG,QAAO;AACvC,SAAO,MAAM;AACf;AAGO,SAAS,WACd,KACA,QAAgB,SAAS,GAChB;AACT,SAAO,CAAC,CAAC,OAAO,QAAQ;AAC1B;AAUO,SAAS,oBACd,KACA,QAAgB,SAAS,GACV;AACf,MAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,GAAG,EAAG,QAAO;AAEvC,QAAM,OAAO,YAAY,OAAO,GAAG;AACnC,MAAI,SAAS,EAAG,QAAO;AACvB,MAAI,SAAS,EAAG,QAAO;AACvB,MAAI,SAAS,GAAI,QAAO;AACxB,MAAI,OAAO,GAAI,QAAO,GAAG,KAAK,IAAI,IAAI,CAAC;AACvC,MAAI,QAAQ,EAAG,QAAO,MAAM,IAAI;AAEhC,UAAO,oBAAI,KAAK,GAAG,GAAG,WAAW,GAAE,mBAAmB,QAAW;AAAA,IAC/D,KAAK;AAAA,IACL,OAAO;AAAA,EACT,CAAC;AACH;AAQA,SAAS,YAAY,MAAc,IAAoB;AACrD,QAAM,QAAQ,KAAK,MAAM,GAAG,IAAI,YAAY;AAC5C,QAAM,MAAM,KAAK,MAAM,GAAG,EAAE,YAAY;AACxC,SAAO,KAAK,OAAO,MAAM,SAAS,KAAU;AAC9C;","names":[]}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
export type ProposalKind = 'page-diff' | 'feature-bundle' | 'operation';
|
|
2
|
+
export type ProposalRisk = 'low' | 'medium' | 'high';
|
|
3
|
+
export type ProposalStatus = 'draft' | 'proposed' | 'approved' | 'applied' | 'reverted' | 'rejected' | 'expired';
|
|
4
|
+
export type ProposalEvidenceType = 'user-prompt' | 'metric' | 'event' | 'catalog-fact' | 'template-fact';
|
|
5
|
+
export interface ProposalEvidence {
|
|
6
|
+
type: ProposalEvidenceType;
|
|
7
|
+
content: string;
|
|
8
|
+
ref?: string;
|
|
9
|
+
}
|
|
10
|
+
/** A single reversible edit to a page's sections or design. */
|
|
11
|
+
export type PageDiffOp = {
|
|
12
|
+
op: 'set-field';
|
|
13
|
+
sectionId: string;
|
|
14
|
+
field: string;
|
|
15
|
+
value: unknown;
|
|
16
|
+
} | {
|
|
17
|
+
op: 'set-extension';
|
|
18
|
+
sectionId: string;
|
|
19
|
+
field: string;
|
|
20
|
+
value: unknown;
|
|
21
|
+
} | {
|
|
22
|
+
op: 'set-variant';
|
|
23
|
+
sectionId: string;
|
|
24
|
+
variant: string;
|
|
25
|
+
} | {
|
|
26
|
+
op: 'add-block';
|
|
27
|
+
block: {
|
|
28
|
+
type: string;
|
|
29
|
+
data: Record<string, unknown>;
|
|
30
|
+
afterSectionId?: string;
|
|
31
|
+
};
|
|
32
|
+
} | {
|
|
33
|
+
op: 'remove-block';
|
|
34
|
+
sectionId: string;
|
|
35
|
+
} | {
|
|
36
|
+
op: 'reorder';
|
|
37
|
+
order: string[];
|
|
38
|
+
};
|
|
39
|
+
export interface PageDiffPayload {
|
|
40
|
+
pageId: string;
|
|
41
|
+
ops: PageDiffOp[];
|
|
42
|
+
designDiff?: Record<string, unknown>;
|
|
43
|
+
}
|
|
44
|
+
export interface ProposalActor {
|
|
45
|
+
type: 'merchant' | 'runtime' | 'system';
|
|
46
|
+
id?: string;
|
|
47
|
+
}
|
|
48
|
+
export interface Proposal {
|
|
49
|
+
id: string;
|
|
50
|
+
tenantId: string;
|
|
51
|
+
kind: ProposalKind;
|
|
52
|
+
/** Open string — includes `mcp:<client>`. */
|
|
53
|
+
origin: string;
|
|
54
|
+
risk: ProposalRisk;
|
|
55
|
+
status: ProposalStatus;
|
|
56
|
+
evidence: ProposalEvidence[];
|
|
57
|
+
payload: Record<string, unknown>;
|
|
58
|
+
createdAt: string;
|
|
59
|
+
updatedAt: string;
|
|
60
|
+
}
|
|
61
|
+
export interface ProposalAuditEvent {
|
|
62
|
+
id: string;
|
|
63
|
+
proposalId: string;
|
|
64
|
+
tenantId: string;
|
|
65
|
+
/** e.g. `draft->proposed`, `approved`, `applied`, `reverted`, `rejected`. */
|
|
66
|
+
transition: string;
|
|
67
|
+
actor: ProposalActor;
|
|
68
|
+
detail: Record<string, unknown>;
|
|
69
|
+
createdAt: string;
|
|
70
|
+
}
|
|
71
|
+
export type ProposalDetail = Proposal & {
|
|
72
|
+
auditEvents?: ProposalAuditEvent[];
|
|
73
|
+
};
|
|
74
|
+
/** Result returned by the host after the merchant approves or rejects. */
|
|
75
|
+
export interface ProposalDecisionResult {
|
|
76
|
+
proposal: Proposal;
|
|
77
|
+
audit: ProposalAuditEvent;
|
|
78
|
+
}
|
|
79
|
+
/** Kinds the host can actually apply today. Others are typed but rejected. */
|
|
80
|
+
export declare const APPLICABLE_KINDS: readonly ProposalKind[];
|
|
81
|
+
/** Statuses awaiting a human decision. */
|
|
82
|
+
export declare const PENDING_STATUSES: readonly ProposalStatus[];
|
|
83
|
+
export declare function isPageDiffPayload(kind: ProposalKind, payload: Record<string, unknown>): payload is PageDiffPayload & Record<string, unknown>;
|
|
84
|
+
export declare function isDecidable(status: ProposalStatus): boolean;
|
|
85
|
+
export declare const proposalsApi: {
|
|
86
|
+
/** List every proposal for the current tenant (newest first, host-ordered). */
|
|
87
|
+
list: (tenantSlug: string) => Promise<Proposal[]>;
|
|
88
|
+
/** Get a proposal with its full audit trail. */
|
|
89
|
+
get: (tenantSlug: string, id: string) => Promise<ProposalDetail>;
|
|
90
|
+
/** Approve → stage the proposal into draft and return its audit event. */
|
|
91
|
+
approve: (tenantSlug: string, id: string) => Promise<ProposalDecisionResult>;
|
|
92
|
+
/** Reject the proposal with an optional reason and return its audit event. */
|
|
93
|
+
reject: (tenantSlug: string, id: string, reason?: string) => Promise<ProposalDecisionResult>;
|
|
94
|
+
/** Revert only this approved proposal's still-unpublished draft changes. */
|
|
95
|
+
revert: (tenantSlug: string, id: string) => Promise<ProposalDecisionResult>;
|
|
96
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { apiFetch } from "./api";
|
|
2
|
+
const APPLICABLE_KINDS = ["page-diff"];
|
|
3
|
+
const PENDING_STATUSES = [
|
|
4
|
+
"proposed"
|
|
5
|
+
];
|
|
6
|
+
function isPageDiffPayload(kind, payload) {
|
|
7
|
+
return kind === "page-diff" && typeof payload.pageId === "string" && Array.isArray(payload.ops);
|
|
8
|
+
}
|
|
9
|
+
function isDecidable(status) {
|
|
10
|
+
return status === "proposed";
|
|
11
|
+
}
|
|
12
|
+
const proposalsApi = {
|
|
13
|
+
/** List every proposal for the current tenant (newest first, host-ordered). */
|
|
14
|
+
list: (tenantSlug) => apiFetch("/proposals", { tenantSlug }),
|
|
15
|
+
/** Get a proposal with its full audit trail. */
|
|
16
|
+
get: (tenantSlug, id) => apiFetch(`/proposals/${id}`, { tenantSlug }),
|
|
17
|
+
/** Approve → stage the proposal into draft and return its audit event. */
|
|
18
|
+
approve: (tenantSlug, id) => apiFetch(`/proposals/${id}/approve`, {
|
|
19
|
+
method: "POST",
|
|
20
|
+
tenantSlug
|
|
21
|
+
}),
|
|
22
|
+
/** Reject the proposal with an optional reason and return its audit event. */
|
|
23
|
+
reject: (tenantSlug, id, reason) => apiFetch(`/proposals/${id}/reject`, {
|
|
24
|
+
method: "POST",
|
|
25
|
+
body: JSON.stringify({ reason }),
|
|
26
|
+
tenantSlug
|
|
27
|
+
}),
|
|
28
|
+
/** Revert only this approved proposal's still-unpublished draft changes. */
|
|
29
|
+
revert: (tenantSlug, id) => apiFetch(`/proposals/${id}/revert`, {
|
|
30
|
+
method: "POST",
|
|
31
|
+
tenantSlug
|
|
32
|
+
})
|
|
33
|
+
};
|
|
34
|
+
export {
|
|
35
|
+
APPLICABLE_KINDS,
|
|
36
|
+
PENDING_STATUSES,
|
|
37
|
+
isDecidable,
|
|
38
|
+
isPageDiffPayload,
|
|
39
|
+
proposalsApi
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=proposals-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/proposals-api.ts"],"sourcesContent":["// Governed-proposal review surface — client for the `api` proposals module\n// (POST/GET /proposals, /:id, /:id/approve, /:id/reject, /:id/revert).\n//\n// Mirrors the host contract in\n// api/src/modules/proposals/contracts/* and the Proposal entity. The spine is\n// already live; this is the merchant-facing window onto it (Commerce-AI I1).\n\nimport { apiFetch } from './api';\n\n// ── Contract types (mirror of api host vocabulary) ───────────────────────────\n\nexport type ProposalKind = 'page-diff' | 'feature-bundle' | 'operation';\n\nexport type ProposalRisk = 'low' | 'medium' | 'high';\n\nexport type ProposalStatus =\n | 'draft'\n | 'proposed'\n | 'approved'\n | 'applied'\n | 'reverted'\n | 'rejected'\n | 'expired';\n\nexport type ProposalEvidenceType =\n | 'user-prompt'\n | 'metric'\n | 'event'\n | 'catalog-fact'\n | 'template-fact';\n\nexport interface ProposalEvidence {\n type: ProposalEvidenceType;\n content: string;\n ref?: string;\n}\n\n/** A single reversible edit to a page's sections or design. */\nexport type PageDiffOp =\n | { op: 'set-field'; sectionId: string; field: string; value: unknown }\n | { op: 'set-extension'; sectionId: string; field: string; value: unknown }\n | { op: 'set-variant'; sectionId: string; variant: string }\n | {\n op: 'add-block';\n block: {\n type: string;\n data: Record<string, unknown>;\n afterSectionId?: string;\n };\n }\n | { op: 'remove-block'; sectionId: string }\n | { op: 'reorder'; order: string[] };\n\nexport interface PageDiffPayload {\n pageId: string;\n ops: PageDiffOp[];\n designDiff?: Record<string, unknown>;\n}\n\nexport interface ProposalActor {\n type: 'merchant' | 'runtime' | 'system';\n id?: string;\n}\n\nexport interface Proposal {\n id: string;\n tenantId: string;\n kind: ProposalKind;\n /** Open string — includes `mcp:<client>`. */\n origin: string;\n risk: ProposalRisk;\n status: ProposalStatus;\n evidence: ProposalEvidence[];\n payload: Record<string, unknown>;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface ProposalAuditEvent {\n id: string;\n proposalId: string;\n tenantId: string;\n /** e.g. `draft->proposed`, `approved`, `applied`, `reverted`, `rejected`. */\n transition: string;\n actor: ProposalActor;\n detail: Record<string, unknown>;\n createdAt: string;\n}\n\nexport type ProposalDetail = Proposal & {\n auditEvents?: ProposalAuditEvent[];\n};\n\n/** Result returned by the host after the merchant approves or rejects. */\nexport interface ProposalDecisionResult {\n proposal: Proposal;\n audit: ProposalAuditEvent;\n}\n\n// ── Type guards / helpers ────────────────────────────────────────────────────\n\n/** Kinds the host can actually apply today. Others are typed but rejected. */\nexport const APPLICABLE_KINDS: readonly ProposalKind[] = ['page-diff'] as const;\n\n/** Statuses awaiting a human decision. */\nexport const PENDING_STATUSES: readonly ProposalStatus[] = [\n 'proposed',\n] as const;\n\nexport function isPageDiffPayload(\n kind: ProposalKind,\n payload: Record<string, unknown>,\n): payload is PageDiffPayload & Record<string, unknown> {\n return (\n kind === 'page-diff' &&\n typeof payload.pageId === 'string' &&\n Array.isArray(payload.ops)\n );\n}\n\nexport function isDecidable(status: ProposalStatus): boolean {\n return status === 'proposed';\n}\n\n// ── API module ───────────────────────────────────────────────────────────────\n\nexport const proposalsApi = {\n /** List every proposal for the current tenant (newest first, host-ordered). */\n list: (tenantSlug: string) =>\n apiFetch<Proposal[]>('/proposals', { tenantSlug }),\n\n /** Get a proposal with its full audit trail. */\n get: (tenantSlug: string, id: string) =>\n apiFetch<ProposalDetail>(`/proposals/${id}`, { tenantSlug }),\n\n /** Approve → stage the proposal into draft and return its audit event. */\n approve: (tenantSlug: string, id: string) =>\n apiFetch<ProposalDecisionResult>(`/proposals/${id}/approve`, {\n method: 'POST',\n tenantSlug,\n }),\n\n /** Reject the proposal with an optional reason and return its audit event. */\n reject: (tenantSlug: string, id: string, reason?: string) =>\n apiFetch<ProposalDecisionResult>(`/proposals/${id}/reject`, {\n method: 'POST',\n body: JSON.stringify({ reason }),\n tenantSlug,\n }),\n\n /** Revert only this approved proposal's still-unpublished draft changes. */\n revert: (tenantSlug: string, id: string) =>\n apiFetch<ProposalDecisionResult>(`/proposals/${id}/revert`, {\n method: 'POST',\n tenantSlug,\n }),\n};\n"],"mappings":"AAOA,SAAS,gBAAgB;AA+FlB,MAAM,mBAA4C,CAAC,WAAW;AAG9D,MAAM,mBAA8C;AAAA,EACzD;AACF;AAEO,SAAS,kBACd,MACA,SACsD;AACtD,SACE,SAAS,eACT,OAAO,QAAQ,WAAW,YAC1B,MAAM,QAAQ,QAAQ,GAAG;AAE7B;AAEO,SAAS,YAAY,QAAiC;AAC3D,SAAO,WAAW;AACpB;AAIO,MAAM,eAAe;AAAA;AAAA,EAE1B,MAAM,CAAC,eACL,SAAqB,cAAc,EAAE,WAAW,CAAC;AAAA;AAAA,EAGnD,KAAK,CAAC,YAAoB,OACxB,SAAyB,cAAc,EAAE,IAAI,EAAE,WAAW,CAAC;AAAA;AAAA,EAG7D,SAAS,CAAC,YAAoB,OAC5B,SAAiC,cAAc,EAAE,YAAY;AAAA,IAC3D,QAAQ;AAAA,IACR;AAAA,EACF,CAAC;AAAA;AAAA,EAGH,QAAQ,CAAC,YAAoB,IAAY,WACvC,SAAiC,cAAc,EAAE,WAAW;AAAA,IAC1D,QAAQ;AAAA,IACR,MAAM,KAAK,UAAU,EAAE,OAAO,CAAC;AAAA,IAC/B;AAAA,EACF,CAAC;AAAA;AAAA,EAGH,QAAQ,CAAC,YAAoB,OAC3B,SAAiC,cAAc,EAAE,WAAW;AAAA,IAC1D,QAAQ;AAAA,IACR;AAAA,EACF,CAAC;AACL;","names":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which API path prefixes the dashboard proxy will forward.
|
|
3
|
+
*
|
|
4
|
+
* Hand-maintained, and the reason it lives in its own file: a first path
|
|
5
|
+
* segment that is not here answers 404 "Invalid API path" before the request
|
|
6
|
+
* ever reaches potter-api — and nothing else fails. Types pass, lint passes,
|
|
7
|
+
* the endpoint is perfect when curled directly. It breaks only in a browser,
|
|
8
|
+
* and on a list with an empty state it breaks INVISIBLY: the 404 falls through
|
|
9
|
+
* to "nothing here", which is pixel-identical to the truth and is a lie.
|
|
10
|
+
*
|
|
11
|
+
* `src/lib/proxy-allowlist.test.ts` compares this list against every literal
|
|
12
|
+
* `apiFetch<...>('/segment')` in `lib/api/*.ts`. Run it whenever you add an api
|
|
13
|
+
* client module; five paths shipped broken before it existed.
|
|
14
|
+
*/
|
|
15
|
+
export declare const ALLOWED_PATH_PREFIXES: string[];
|