@wix/himalaya-cli 0.1392.0 → 0.1393.0
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/authoring-runtime/node_modules/@wix/himalaya/dist/_types/stdlib/wix-sdk/bookings-v2/src/extensions.d.ts +7 -5
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/wix-bookings.mjs +4 -4
- package/dist/cli.mjs +31 -24
- package/dist/preview-assets.generated.bin +0 -0
- package/guides/sdk-reference.json +4 -4
- package/package.json +2 -2
- package/templates/beauty-salon/tier5-src/_shared/owner-load-error.ts +115 -12
- package/templates/beauty-salon/tier5-src/himi-branded-lite-cart/index.ts +52 -28
- package/templates/beauty-salon-owner/dev/index.ts +545 -100
- package/templates/beauty-salon-owner/himalaya.content.json +6 -0
- package/templates/beauty-salon-owner/tier5-src/_shared/owner-account.ts +6 -2
- package/templates/beauty-salon-owner/tier5-src/_shared/owner-booking-respond.ts +82 -0
- package/templates/beauty-salon-owner/tier5-src/_shared/owner-load-error.ts +115 -12
- package/templates/beauty-salon-owner/tier5-src/himi-owner-lite-account/index.ts +7 -4
- package/templates/beauty-salon-owner/tier5-src/himi-owner-lite-appointments/index.ts +2 -2
- package/templates/beauty-salon-owner/tier5-src/himi-owner-lite-ask/live.ts +3 -3
- package/templates/beauty-salon-owner/tier5-src/himi-owner-lite-home/index.ts +2 -2
- package/templates/beauty-salon-owner/tier5-src/himi-owner-lite-order/index.ts +3 -3
- package/templates/beauty-salon-owner/tier5-src/himi-owner-lite-orders/index.ts +2 -2
- package/templates/beauty-salon-owner/tier5-src/himi-owner-lite-overview/index.ts +2 -2
- package/templates/beauty-salon-owner/tier5-src/himi-owner-lite-post/index.ts +60 -43
- package/templates/beauty-salon-owner/tier5-src/himi-owner-lite-post-form/index.ts +10 -23
- package/templates/beauty-salon-owner/tier5-src/himi-owner-lite-posts/index.ts +2 -2
- package/templates/beauty-salon-owner/tier5-src/himi-owner-lite-product/index.ts +31 -32
- package/templates/beauty-salon-owner/tier5-src/himi-owner-lite-product-form/index.ts +23 -43
- package/templates/beauty-salon-owner/tier5-src/himi-owner-lite-products/index.ts +2 -2
- package/templates/beauty-salon-owner/tier5-src/himi-owner-lite-service/index.ts +18 -20
- package/templates/beauty-salon-owner/tier5-src/himi-owner-lite-service-form/index.ts +16 -29
- package/templates/beauty-salon-owner/tier5-src/himi-owner-lite-services/index.ts +2 -2
- package/templates/beauty-salon-owner/tier5-src/himi-owner-lite-sites/index.ts +2 -2
- package/templates/beauty-salon-owner/tier5-src/himi-owner-lite-today/index.ts +315 -0
- package/templates/beauty-salon-owner/tier5-src/himi-owner-lite-wrist/index.ts +42 -15
- package/templates/branded-lite/tier5-src/_shared/owner-load-error.ts +115 -12
- package/templates/branded-lite/tier5-src/himi-branded-lite-cart/index.ts +52 -28
- package/templates/branded-lite/tier5-src/himi-branded-lite-group/index.ts +24 -24
- package/templates/community-club/tier5-src/_shared/owner-load-error.ts +115 -12
- package/templates/community-club/tier5-src/himi-branded-lite-group/index.ts +24 -24
- package/templates/community-club-owner/dev/index.ts +317 -100
- package/templates/community-club-owner/himalaya.content.json +6 -0
- package/templates/community-club-owner/tier5-src/_shared/owner-account.ts +6 -2
- package/templates/community-club-owner/tier5-src/_shared/owner-booking-respond.ts +82 -0
- package/templates/community-club-owner/tier5-src/_shared/owner-load-error.ts +115 -12
- package/templates/community-club-owner/tier5-src/himi-owner-lite-account/index.ts +7 -4
- package/templates/community-club-owner/tier5-src/himi-owner-lite-ask/live.ts +3 -3
- package/templates/community-club-owner/tier5-src/himi-owner-lite-event/index.ts +18 -20
- package/templates/community-club-owner/tier5-src/himi-owner-lite-event-form/index.ts +20 -28
- package/templates/community-club-owner/tier5-src/himi-owner-lite-events/index.ts +2 -2
- package/templates/community-club-owner/tier5-src/himi-owner-lite-home/index.ts +2 -2
- package/templates/community-club-owner/tier5-src/himi-owner-lite-order/index.ts +3 -3
- package/templates/community-club-owner/tier5-src/himi-owner-lite-orders/index.ts +2 -2
- package/templates/community-club-owner/tier5-src/himi-owner-lite-overview/index.ts +2 -2
- package/templates/community-club-owner/tier5-src/himi-owner-lite-post/index.ts +60 -43
- package/templates/community-club-owner/tier5-src/himi-owner-lite-post-form/index.ts +10 -23
- package/templates/community-club-owner/tier5-src/himi-owner-lite-posts/index.ts +2 -2
- package/templates/community-club-owner/tier5-src/himi-owner-lite-product/index.ts +31 -32
- package/templates/community-club-owner/tier5-src/himi-owner-lite-product-form/index.ts +23 -43
- package/templates/community-club-owner/tier5-src/himi-owner-lite-products/index.ts +2 -2
- package/templates/community-club-owner/tier5-src/himi-owner-lite-sites/index.ts +2 -2
- package/templates/community-club-owner/tier5-src/himi-owner-lite-today/index.ts +315 -0
- package/templates/community-club-owner/tier5-src/himi-owner-lite-wrist/index.ts +42 -15
- package/templates/events-meetups/tier5-src/_shared/owner-load-error.ts +115 -12
- package/templates/events-meetups/tier5-src/himi-branded-lite-group/index.ts +24 -24
- package/templates/events-meetups-owner/dev/index.ts +275 -100
- package/templates/events-meetups-owner/himalaya.content.json +6 -0
- package/templates/events-meetups-owner/tier5-src/_shared/owner-account.ts +6 -2
- package/templates/events-meetups-owner/tier5-src/_shared/owner-booking-respond.ts +82 -0
- package/templates/events-meetups-owner/tier5-src/_shared/owner-load-error.ts +115 -12
- package/templates/events-meetups-owner/tier5-src/himi-owner-lite-account/index.ts +7 -4
- package/templates/events-meetups-owner/tier5-src/himi-owner-lite-ask/live.ts +3 -3
- package/templates/events-meetups-owner/tier5-src/himi-owner-lite-event/index.ts +18 -20
- package/templates/events-meetups-owner/tier5-src/himi-owner-lite-event-form/index.ts +20 -28
- package/templates/events-meetups-owner/tier5-src/himi-owner-lite-events/index.ts +2 -2
- package/templates/events-meetups-owner/tier5-src/himi-owner-lite-home/index.ts +2 -2
- package/templates/events-meetups-owner/tier5-src/himi-owner-lite-overview/index.ts +2 -2
- package/templates/events-meetups-owner/tier5-src/himi-owner-lite-post/index.ts +60 -43
- package/templates/events-meetups-owner/tier5-src/himi-owner-lite-post-form/index.ts +10 -23
- package/templates/events-meetups-owner/tier5-src/himi-owner-lite-posts/index.ts +2 -2
- package/templates/events-meetups-owner/tier5-src/himi-owner-lite-sites/index.ts +2 -2
- package/templates/events-meetups-owner/tier5-src/himi-owner-lite-today/index.ts +315 -0
- package/templates/events-meetups-owner/tier5-src/himi-owner-lite-wrist/index.ts +42 -15
- package/templates/gym-fitness/tier5-src/_shared/owner-load-error.ts +115 -12
- package/templates/gym-fitness/tier5-src/himi-branded-lite-cart/index.ts +52 -28
- package/templates/gym-fitness-owner/dev/index.ts +545 -100
- package/templates/gym-fitness-owner/himalaya.content.json +6 -0
- package/templates/gym-fitness-owner/tier5-src/_shared/owner-account.ts +6 -2
- package/templates/gym-fitness-owner/tier5-src/_shared/owner-booking-respond.ts +82 -0
- package/templates/gym-fitness-owner/tier5-src/_shared/owner-load-error.ts +115 -12
- package/templates/gym-fitness-owner/tier5-src/himi-owner-lite-account/index.ts +7 -4
- package/templates/gym-fitness-owner/tier5-src/himi-owner-lite-appointments/index.ts +2 -2
- package/templates/gym-fitness-owner/tier5-src/himi-owner-lite-ask/live.ts +3 -3
- package/templates/gym-fitness-owner/tier5-src/himi-owner-lite-event/index.ts +18 -20
- package/templates/gym-fitness-owner/tier5-src/himi-owner-lite-event-form/index.ts +20 -28
- package/templates/gym-fitness-owner/tier5-src/himi-owner-lite-events/index.ts +2 -2
- package/templates/gym-fitness-owner/tier5-src/himi-owner-lite-home/index.ts +2 -2
- package/templates/gym-fitness-owner/tier5-src/himi-owner-lite-order/index.ts +3 -3
- package/templates/gym-fitness-owner/tier5-src/himi-owner-lite-orders/index.ts +2 -2
- package/templates/gym-fitness-owner/tier5-src/himi-owner-lite-overview/index.ts +2 -2
- package/templates/gym-fitness-owner/tier5-src/himi-owner-lite-post/index.ts +60 -43
- package/templates/gym-fitness-owner/tier5-src/himi-owner-lite-post-form/index.ts +10 -23
- package/templates/gym-fitness-owner/tier5-src/himi-owner-lite-posts/index.ts +2 -2
- package/templates/gym-fitness-owner/tier5-src/himi-owner-lite-product/index.ts +31 -32
- package/templates/gym-fitness-owner/tier5-src/himi-owner-lite-product-form/index.ts +23 -43
- package/templates/gym-fitness-owner/tier5-src/himi-owner-lite-products/index.ts +2 -2
- package/templates/gym-fitness-owner/tier5-src/himi-owner-lite-service/index.ts +18 -20
- package/templates/gym-fitness-owner/tier5-src/himi-owner-lite-service-form/index.ts +16 -29
- package/templates/gym-fitness-owner/tier5-src/himi-owner-lite-services/index.ts +2 -2
- package/templates/gym-fitness-owner/tier5-src/himi-owner-lite-sites/index.ts +2 -2
- package/templates/gym-fitness-owner/tier5-src/himi-owner-lite-today/index.ts +315 -0
- package/templates/gym-fitness-owner/tier5-src/himi-owner-lite-wrist/index.ts +42 -15
- package/templates/himi-chat/tier5-src/_shared/owner-load-error.ts +115 -12
- package/templates/nonprofit-cause/tier5-src/_shared/owner-load-error.ts +115 -12
- package/templates/nonprofit-cause/tier5-src/himi-branded-lite-group/index.ts +24 -24
- package/templates/nonprofit-cause-owner/dev/index.ts +503 -100
- package/templates/nonprofit-cause-owner/himalaya.content.json +6 -0
- package/templates/nonprofit-cause-owner/tier5-src/_shared/owner-account.ts +6 -2
- package/templates/nonprofit-cause-owner/tier5-src/_shared/owner-booking-respond.ts +82 -0
- package/templates/nonprofit-cause-owner/tier5-src/_shared/owner-load-error.ts +115 -12
- package/templates/nonprofit-cause-owner/tier5-src/himi-owner-lite-account/index.ts +7 -4
- package/templates/nonprofit-cause-owner/tier5-src/himi-owner-lite-appointments/index.ts +2 -2
- package/templates/nonprofit-cause-owner/tier5-src/himi-owner-lite-ask/live.ts +3 -3
- package/templates/nonprofit-cause-owner/tier5-src/himi-owner-lite-event/index.ts +18 -20
- package/templates/nonprofit-cause-owner/tier5-src/himi-owner-lite-event-form/index.ts +20 -28
- package/templates/nonprofit-cause-owner/tier5-src/himi-owner-lite-events/index.ts +2 -2
- package/templates/nonprofit-cause-owner/tier5-src/himi-owner-lite-home/index.ts +2 -2
- package/templates/nonprofit-cause-owner/tier5-src/himi-owner-lite-overview/index.ts +2 -2
- package/templates/nonprofit-cause-owner/tier5-src/himi-owner-lite-post/index.ts +60 -43
- package/templates/nonprofit-cause-owner/tier5-src/himi-owner-lite-post-form/index.ts +10 -23
- package/templates/nonprofit-cause-owner/tier5-src/himi-owner-lite-posts/index.ts +2 -2
- package/templates/nonprofit-cause-owner/tier5-src/himi-owner-lite-service/index.ts +18 -20
- package/templates/nonprofit-cause-owner/tier5-src/himi-owner-lite-service-form/index.ts +16 -29
- package/templates/nonprofit-cause-owner/tier5-src/himi-owner-lite-services/index.ts +2 -2
- package/templates/nonprofit-cause-owner/tier5-src/himi-owner-lite-sites/index.ts +2 -2
- package/templates/nonprofit-cause-owner/tier5-src/himi-owner-lite-today/index.ts +315 -0
- package/templates/nonprofit-cause-owner/tier5-src/himi-owner-lite-wrist/index.ts +42 -15
- package/templates/owner-lite/dev/index.ts +545 -100
- package/templates/owner-lite/himalaya.content.json +6 -0
- package/templates/owner-lite/tier5-src/_shared/owner-account.ts +6 -2
- package/templates/owner-lite/tier5-src/_shared/owner-booking-respond.ts +82 -0
- package/templates/owner-lite/tier5-src/_shared/owner-load-error.ts +115 -12
- package/templates/owner-lite/tier5-src/himi-owner-lite-account/index.ts +7 -4
- package/templates/owner-lite/tier5-src/himi-owner-lite-appointments/index.ts +2 -2
- package/templates/owner-lite/tier5-src/himi-owner-lite-ask/live.ts +3 -3
- package/templates/owner-lite/tier5-src/himi-owner-lite-event/index.ts +18 -20
- package/templates/owner-lite/tier5-src/himi-owner-lite-event-form/index.ts +20 -28
- package/templates/owner-lite/tier5-src/himi-owner-lite-events/index.ts +2 -2
- package/templates/owner-lite/tier5-src/himi-owner-lite-home/index.ts +2 -2
- package/templates/owner-lite/tier5-src/himi-owner-lite-order/index.ts +3 -3
- package/templates/owner-lite/tier5-src/himi-owner-lite-orders/index.ts +2 -2
- package/templates/owner-lite/tier5-src/himi-owner-lite-overview/index.ts +2 -2
- package/templates/owner-lite/tier5-src/himi-owner-lite-post/index.ts +60 -43
- package/templates/owner-lite/tier5-src/himi-owner-lite-post-form/index.ts +10 -23
- package/templates/owner-lite/tier5-src/himi-owner-lite-posts/index.ts +2 -2
- package/templates/owner-lite/tier5-src/himi-owner-lite-product/index.ts +31 -32
- package/templates/owner-lite/tier5-src/himi-owner-lite-product-form/index.ts +23 -43
- package/templates/owner-lite/tier5-src/himi-owner-lite-products/index.ts +2 -2
- package/templates/owner-lite/tier5-src/himi-owner-lite-service/index.ts +18 -20
- package/templates/owner-lite/tier5-src/himi-owner-lite-service-form/index.ts +16 -29
- package/templates/owner-lite/tier5-src/himi-owner-lite-services/index.ts +2 -2
- package/templates/owner-lite/tier5-src/himi-owner-lite-sites/index.ts +2 -2
- package/templates/owner-lite/tier5-src/himi-owner-lite-today/index.ts +315 -0
- package/templates/owner-lite/tier5-src/himi-owner-lite-wrist/index.ts +42 -15
- package/templates/podcast-creator/tier5-src/_shared/owner-load-error.ts +115 -12
- package/templates/podcast-creator-owner/dev/index.ts +317 -100
- package/templates/podcast-creator-owner/himalaya.content.json +6 -0
- package/templates/podcast-creator-owner/tier5-src/_shared/owner-account.ts +6 -2
- package/templates/podcast-creator-owner/tier5-src/_shared/owner-booking-respond.ts +82 -0
- package/templates/podcast-creator-owner/tier5-src/_shared/owner-load-error.ts +115 -12
- package/templates/podcast-creator-owner/tier5-src/himi-owner-lite-account/index.ts +7 -4
- package/templates/podcast-creator-owner/tier5-src/himi-owner-lite-ask/live.ts +3 -3
- package/templates/podcast-creator-owner/tier5-src/himi-owner-lite-event/index.ts +18 -20
- package/templates/podcast-creator-owner/tier5-src/himi-owner-lite-event-form/index.ts +20 -28
- package/templates/podcast-creator-owner/tier5-src/himi-owner-lite-events/index.ts +2 -2
- package/templates/podcast-creator-owner/tier5-src/himi-owner-lite-home/index.ts +2 -2
- package/templates/podcast-creator-owner/tier5-src/himi-owner-lite-order/index.ts +3 -3
- package/templates/podcast-creator-owner/tier5-src/himi-owner-lite-orders/index.ts +2 -2
- package/templates/podcast-creator-owner/tier5-src/himi-owner-lite-overview/index.ts +2 -2
- package/templates/podcast-creator-owner/tier5-src/himi-owner-lite-post/index.ts +60 -43
- package/templates/podcast-creator-owner/tier5-src/himi-owner-lite-post-form/index.ts +10 -23
- package/templates/podcast-creator-owner/tier5-src/himi-owner-lite-posts/index.ts +2 -2
- package/templates/podcast-creator-owner/tier5-src/himi-owner-lite-product/index.ts +31 -32
- package/templates/podcast-creator-owner/tier5-src/himi-owner-lite-product-form/index.ts +23 -43
- package/templates/podcast-creator-owner/tier5-src/himi-owner-lite-products/index.ts +2 -2
- package/templates/podcast-creator-owner/tier5-src/himi-owner-lite-sites/index.ts +2 -2
- package/templates/podcast-creator-owner/tier5-src/himi-owner-lite-today/index.ts +315 -0
- package/templates/podcast-creator-owner/tier5-src/himi-owner-lite-wrist/index.ts +42 -15
- package/templates/portfolio-creative/tier5-src/_shared/owner-load-error.ts +115 -12
- package/templates/portfolio-creative/tier5-src/himi-branded-lite-cart/index.ts +52 -28
- package/templates/portfolio-creative-owner/dev/index.ts +545 -100
- package/templates/portfolio-creative-owner/himalaya.content.json +6 -0
- package/templates/portfolio-creative-owner/tier5-src/_shared/owner-account.ts +6 -2
- package/templates/portfolio-creative-owner/tier5-src/_shared/owner-booking-respond.ts +82 -0
- package/templates/portfolio-creative-owner/tier5-src/_shared/owner-load-error.ts +115 -12
- package/templates/portfolio-creative-owner/tier5-src/himi-owner-lite-account/index.ts +7 -4
- package/templates/portfolio-creative-owner/tier5-src/himi-owner-lite-appointments/index.ts +2 -2
- package/templates/portfolio-creative-owner/tier5-src/himi-owner-lite-ask/live.ts +3 -3
- package/templates/portfolio-creative-owner/tier5-src/himi-owner-lite-home/index.ts +2 -2
- package/templates/portfolio-creative-owner/tier5-src/himi-owner-lite-order/index.ts +3 -3
- package/templates/portfolio-creative-owner/tier5-src/himi-owner-lite-orders/index.ts +2 -2
- package/templates/portfolio-creative-owner/tier5-src/himi-owner-lite-overview/index.ts +2 -2
- package/templates/portfolio-creative-owner/tier5-src/himi-owner-lite-post/index.ts +60 -43
- package/templates/portfolio-creative-owner/tier5-src/himi-owner-lite-post-form/index.ts +10 -23
- package/templates/portfolio-creative-owner/tier5-src/himi-owner-lite-posts/index.ts +2 -2
- package/templates/portfolio-creative-owner/tier5-src/himi-owner-lite-product/index.ts +31 -32
- package/templates/portfolio-creative-owner/tier5-src/himi-owner-lite-product-form/index.ts +23 -43
- package/templates/portfolio-creative-owner/tier5-src/himi-owner-lite-products/index.ts +2 -2
- package/templates/portfolio-creative-owner/tier5-src/himi-owner-lite-service/index.ts +18 -20
- package/templates/portfolio-creative-owner/tier5-src/himi-owner-lite-service-form/index.ts +16 -29
- package/templates/portfolio-creative-owner/tier5-src/himi-owner-lite-services/index.ts +2 -2
- package/templates/portfolio-creative-owner/tier5-src/himi-owner-lite-sites/index.ts +2 -2
- package/templates/portfolio-creative-owner/tier5-src/himi-owner-lite-today/index.ts +315 -0
- package/templates/portfolio-creative-owner/tier5-src/himi-owner-lite-wrist/index.ts +42 -15
- package/templates/restaurant/tier5-src/_shared/owner-load-error.ts +115 -12
- package/templates/restaurant-owner/dev/index.ts +545 -100
- package/templates/restaurant-owner/himalaya.content.json +6 -0
- package/templates/restaurant-owner/tier5-src/_shared/owner-account.ts +6 -2
- package/templates/restaurant-owner/tier5-src/_shared/owner-booking-respond.ts +82 -0
- package/templates/restaurant-owner/tier5-src/_shared/owner-load-error.ts +115 -12
- package/templates/restaurant-owner/tier5-src/himi-owner-lite-account/index.ts +7 -4
- package/templates/restaurant-owner/tier5-src/himi-owner-lite-appointments/index.ts +2 -2
- package/templates/restaurant-owner/tier5-src/himi-owner-lite-ask/live.ts +3 -3
- package/templates/restaurant-owner/tier5-src/himi-owner-lite-event/index.ts +18 -20
- package/templates/restaurant-owner/tier5-src/himi-owner-lite-event-form/index.ts +20 -28
- package/templates/restaurant-owner/tier5-src/himi-owner-lite-events/index.ts +2 -2
- package/templates/restaurant-owner/tier5-src/himi-owner-lite-home/index.ts +2 -2
- package/templates/restaurant-owner/tier5-src/himi-owner-lite-order/index.ts +3 -3
- package/templates/restaurant-owner/tier5-src/himi-owner-lite-orders/index.ts +2 -2
- package/templates/restaurant-owner/tier5-src/himi-owner-lite-overview/index.ts +2 -2
- package/templates/restaurant-owner/tier5-src/himi-owner-lite-post/index.ts +60 -43
- package/templates/restaurant-owner/tier5-src/himi-owner-lite-post-form/index.ts +10 -23
- package/templates/restaurant-owner/tier5-src/himi-owner-lite-posts/index.ts +2 -2
- package/templates/restaurant-owner/tier5-src/himi-owner-lite-product/index.ts +31 -32
- package/templates/restaurant-owner/tier5-src/himi-owner-lite-product-form/index.ts +23 -43
- package/templates/restaurant-owner/tier5-src/himi-owner-lite-products/index.ts +2 -2
- package/templates/restaurant-owner/tier5-src/himi-owner-lite-service/index.ts +18 -20
- package/templates/restaurant-owner/tier5-src/himi-owner-lite-service-form/index.ts +16 -29
- package/templates/restaurant-owner/tier5-src/himi-owner-lite-services/index.ts +2 -2
- package/templates/restaurant-owner/tier5-src/himi-owner-lite-sites/index.ts +2 -2
- package/templates/restaurant-owner/tier5-src/himi-owner-lite-today/index.ts +315 -0
- package/templates/restaurant-owner/tier5-src/himi-owner-lite-wrist/index.ts +42 -15
- package/templates/retail-store/tier5-src/_shared/owner-load-error.ts +115 -12
- package/templates/retail-store/tier5-src/himi-branded-lite-cart/index.ts +52 -28
- package/templates/retail-store-owner/dev/index.ts +317 -100
- package/templates/retail-store-owner/himalaya.content.json +6 -0
- package/templates/retail-store-owner/tier5-src/_shared/owner-account.ts +6 -2
- package/templates/retail-store-owner/tier5-src/_shared/owner-booking-respond.ts +82 -0
- package/templates/retail-store-owner/tier5-src/_shared/owner-load-error.ts +115 -12
- package/templates/retail-store-owner/tier5-src/himi-owner-lite-account/index.ts +7 -4
- package/templates/retail-store-owner/tier5-src/himi-owner-lite-ask/live.ts +3 -3
- package/templates/retail-store-owner/tier5-src/himi-owner-lite-home/index.ts +2 -2
- package/templates/retail-store-owner/tier5-src/himi-owner-lite-order/index.ts +3 -3
- package/templates/retail-store-owner/tier5-src/himi-owner-lite-orders/index.ts +2 -2
- package/templates/retail-store-owner/tier5-src/himi-owner-lite-overview/index.ts +2 -2
- package/templates/retail-store-owner/tier5-src/himi-owner-lite-post/index.ts +60 -43
- package/templates/retail-store-owner/tier5-src/himi-owner-lite-post-form/index.ts +10 -23
- package/templates/retail-store-owner/tier5-src/himi-owner-lite-posts/index.ts +2 -2
- package/templates/retail-store-owner/tier5-src/himi-owner-lite-product/index.ts +31 -32
- package/templates/retail-store-owner/tier5-src/himi-owner-lite-product-form/index.ts +23 -43
- package/templates/retail-store-owner/tier5-src/himi-owner-lite-products/index.ts +2 -2
- package/templates/retail-store-owner/tier5-src/himi-owner-lite-sites/index.ts +2 -2
- package/templates/retail-store-owner/tier5-src/himi-owner-lite-today/index.ts +315 -0
- package/templates/retail-store-owner/tier5-src/himi-owner-lite-wrist/index.ts +42 -15
- package/templates/yoga-studio/tier5-src/_shared/owner-load-error.ts +115 -12
- package/templates/yoga-studio-owner/dev/index.ts +503 -100
- package/templates/yoga-studio-owner/himalaya.content.json +6 -0
- package/templates/yoga-studio-owner/tier5-src/_shared/owner-account.ts +6 -2
- package/templates/yoga-studio-owner/tier5-src/_shared/owner-booking-respond.ts +82 -0
- package/templates/yoga-studio-owner/tier5-src/_shared/owner-load-error.ts +115 -12
- package/templates/yoga-studio-owner/tier5-src/himi-owner-lite-account/index.ts +7 -4
- package/templates/yoga-studio-owner/tier5-src/himi-owner-lite-appointments/index.ts +2 -2
- package/templates/yoga-studio-owner/tier5-src/himi-owner-lite-ask/live.ts +3 -3
- package/templates/yoga-studio-owner/tier5-src/himi-owner-lite-event/index.ts +18 -20
- package/templates/yoga-studio-owner/tier5-src/himi-owner-lite-event-form/index.ts +20 -28
- package/templates/yoga-studio-owner/tier5-src/himi-owner-lite-events/index.ts +2 -2
- package/templates/yoga-studio-owner/tier5-src/himi-owner-lite-home/index.ts +2 -2
- package/templates/yoga-studio-owner/tier5-src/himi-owner-lite-overview/index.ts +2 -2
- package/templates/yoga-studio-owner/tier5-src/himi-owner-lite-post/index.ts +60 -43
- package/templates/yoga-studio-owner/tier5-src/himi-owner-lite-post-form/index.ts +10 -23
- package/templates/yoga-studio-owner/tier5-src/himi-owner-lite-posts/index.ts +2 -2
- package/templates/yoga-studio-owner/tier5-src/himi-owner-lite-service/index.ts +18 -20
- package/templates/yoga-studio-owner/tier5-src/himi-owner-lite-service-form/index.ts +16 -29
- package/templates/yoga-studio-owner/tier5-src/himi-owner-lite-services/index.ts +2 -2
- package/templates/yoga-studio-owner/tier5-src/himi-owner-lite-sites/index.ts +2 -2
- package/templates/yoga-studio-owner/tier5-src/himi-owner-lite-today/index.ts +315 -0
- package/templates/yoga-studio-owner/tier5-src/himi-owner-lite-wrist/index.ts +42 -15
|
@@ -4,8 +4,8 @@ import { getMember } from "@himalaya/wix-members";
|
|
|
4
4
|
import { signedInEmail } from "../_shared/himi-account";
|
|
5
5
|
import { initials } from "../_shared/himi-text.js";
|
|
6
6
|
import { copyParam, stashCopy } from "../_shared/himi-copy.js";
|
|
7
|
-
import { get as dbGet, upsert as dbUpsert,
|
|
8
|
-
import {
|
|
7
|
+
import { get as dbGet, upsert as dbUpsert, type DbEntity } from "@himalaya/local-db";
|
|
8
|
+
import { isOfflineFailure, writeMayHaveLanded } from "../_shared/owner-load-error";
|
|
9
9
|
|
|
10
10
|
interface MemberAvatar {
|
|
11
11
|
initials: string;
|
|
@@ -13,11 +13,12 @@ interface MemberAvatar {
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
// Offline-first (data-offline): the group detail READS through the shared `groups`
|
|
16
|
-
// cache (get by id) so a previously-synced group still renders offline
|
|
17
|
-
// are
|
|
18
|
-
//
|
|
19
|
-
//
|
|
20
|
-
// build without the `local_database` grant
|
|
16
|
+
// cache (get by id) so a previously-synced group still renders offline. Join/leave
|
|
17
|
+
// are SERVER-CONFIRMED: the cached membership changes only after Wix accepts it; a
|
|
18
|
+
// failed one leaves it alone and tells the member why. No host replays a queued
|
|
19
|
+
// write, so nothing is queued.
|
|
20
|
+
// Every local-db call is wrapped so a build without the `local_database` grant
|
|
21
|
+
// behaves exactly as before (online-only).
|
|
21
22
|
const ENTITY = "groups";
|
|
22
23
|
async function readCachedGroup(id: string): Promise<DbEntity | null> {
|
|
23
24
|
try { return await dbGet(ENTITY, id); } catch { return null; }
|
|
@@ -41,9 +42,6 @@ async function cachePutMembership(state: State, joined: boolean): Promise<void>
|
|
|
41
42
|
await dbUpsert(ENTITY, { ...existing, id: state.id, joined: joined ? "true" : "false" });
|
|
42
43
|
} catch { /* capability not granted */ }
|
|
43
44
|
}
|
|
44
|
-
async function queueWrite(actionId: string, params: Record<string, string>): Promise<void> {
|
|
45
|
-
try { await dbEnqueue(actionId, params); } catch { /* capability not granted */ }
|
|
46
|
-
}
|
|
47
45
|
|
|
48
46
|
interface State {
|
|
49
47
|
status: "loading" | "ready" | "error";
|
|
@@ -242,17 +240,19 @@ const svc = defineService<State, {
|
|
|
242
240
|
if (state.privacy !== "Public" && state.privacy !== "Unknown") {
|
|
243
241
|
return membershipState({ ...state, message: copyParam("group.privateInviteMessage", "Private groups are available by invitation.") }, false, true);
|
|
244
242
|
}
|
|
245
|
-
// Optimistic local write — persist the joined membership so it survives offline.
|
|
246
|
-
await cachePutMembership(state, true);
|
|
247
243
|
try {
|
|
248
244
|
await joinGroup(state.id);
|
|
245
|
+
// Wix confirmed it: persist the joined membership so it survives offline.
|
|
246
|
+
await cachePutMembership(state, true);
|
|
249
247
|
return membershipState({ ...state, message: copyParam("group.joinedMessage", "You joined the group.") }, true, true);
|
|
250
248
|
} catch (e) {
|
|
251
|
-
if (
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
249
|
+
if (isOfflineFailure(e)) {
|
|
250
|
+
return membershipState({ ...state, message: copyParam("group.offlineFailedMessage", "You’re offline — nothing was saved. Try again when you reconnect.") }, false, true);
|
|
251
|
+
}
|
|
252
|
+
// It may have landed: neither "joined" nor "could not". (No "refresh to check": a load
|
|
253
|
+
// does not read the membership back.)
|
|
254
|
+
if (writeMayHaveLanded(e)) {
|
|
255
|
+
return membershipState({ ...state, message: copyParam("group.joinUnconfirmedMessage", "Wix didn’t confirm this, so you may already have joined the group.") }, false, true);
|
|
256
256
|
}
|
|
257
257
|
return membershipState({ ...state, message: copyParam("group.joinFailedMessage", "The group could not be joined. Try again.") }, false, true);
|
|
258
258
|
}
|
|
@@ -260,17 +260,17 @@ const svc = defineService<State, {
|
|
|
260
260
|
leave: async (state) => {
|
|
261
261
|
const signedIn = Boolean(await signedInEmail());
|
|
262
262
|
if (!signedIn) return membershipState({ ...state, message: copyParam("group.manageSignInMessage", "Sign in from Profile to manage groups.") }, state.isJoined, false);
|
|
263
|
-
// Optimistic local write — persist the left membership so it survives offline.
|
|
264
|
-
await cachePutMembership(state, false);
|
|
265
263
|
try {
|
|
266
264
|
await leaveGroup(state.id);
|
|
265
|
+
// Wix confirmed it: persist the left membership so it survives offline.
|
|
266
|
+
await cachePutMembership(state, false);
|
|
267
267
|
return membershipState({ ...state, message: copyParam("group.leftMessage", "You left the group.") }, false, true);
|
|
268
268
|
} catch (e) {
|
|
269
|
-
if (
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
return membershipState({ ...state, message: copyParam("group.
|
|
269
|
+
if (isOfflineFailure(e)) {
|
|
270
|
+
return membershipState({ ...state, message: copyParam("group.offlineFailedMessage", "You’re offline — nothing was saved. Try again when you reconnect.") }, true, true);
|
|
271
|
+
}
|
|
272
|
+
if (writeMayHaveLanded(e)) {
|
|
273
|
+
return membershipState({ ...state, message: copyParam("group.leaveUnconfirmedMessage", "Wix didn’t confirm this, so you may already have left the group.") }, true, true);
|
|
274
274
|
}
|
|
275
275
|
return membershipState({ ...state, message: copyParam("group.leaveFailedMessage", "The group could not be left. Try again.") }, true, true);
|
|
276
276
|
}
|
|
@@ -51899,106 +51899,6 @@ const SCREENS = runtimeSetting({
|
|
|
51899
51899
|
]
|
|
51900
51900
|
}
|
|
51901
51901
|
}
|
|
51902
|
-
},
|
|
51903
|
-
{
|
|
51904
|
-
"id": "himi_owner_lite_account.role",
|
|
51905
|
-
"body": {
|
|
51906
|
-
"package": "himalaya",
|
|
51907
|
-
"type": "HStack",
|
|
51908
|
-
"props": {
|
|
51909
|
-
"spacing": 0,
|
|
51910
|
-
"children": [
|
|
51911
|
-
{
|
|
51912
|
-
"id": "",
|
|
51913
|
-
"body": {
|
|
51914
|
-
"package": "himalaya",
|
|
51915
|
-
"type": "Text",
|
|
51916
|
-
"props": {
|
|
51917
|
-
"text": "Role",
|
|
51918
|
-
"style": "footnote",
|
|
51919
|
-
"color": "textSecondary"
|
|
51920
|
-
}
|
|
51921
|
-
},
|
|
51922
|
-
"modifiers": {
|
|
51923
|
-
"padding": {
|
|
51924
|
-
"trailing": 10
|
|
51925
|
-
}
|
|
51926
|
-
}
|
|
51927
|
-
},
|
|
51928
|
-
{
|
|
51929
|
-
"id": "",
|
|
51930
|
-
"body": {
|
|
51931
|
-
"package": "himalaya",
|
|
51932
|
-
"type": "Spacer",
|
|
51933
|
-
"props": {}
|
|
51934
|
-
}
|
|
51935
|
-
},
|
|
51936
|
-
{
|
|
51937
|
-
"id": "",
|
|
51938
|
-
"body": {
|
|
51939
|
-
"package": "himalaya",
|
|
51940
|
-
"type": "Text",
|
|
51941
|
-
"props": {
|
|
51942
|
-
"text": "Organiser",
|
|
51943
|
-
"style": "bodyEmphasis",
|
|
51944
|
-
"maxLines": 1,
|
|
51945
|
-
"collapseWhenEmpty": true
|
|
51946
|
-
}
|
|
51947
|
-
}
|
|
51948
|
-
}
|
|
51949
|
-
]
|
|
51950
|
-
}
|
|
51951
|
-
}
|
|
51952
|
-
},
|
|
51953
|
-
{
|
|
51954
|
-
"id": "himi_owner_lite_account.plan",
|
|
51955
|
-
"body": {
|
|
51956
|
-
"package": "himalaya",
|
|
51957
|
-
"type": "HStack",
|
|
51958
|
-
"props": {
|
|
51959
|
-
"spacing": 0,
|
|
51960
|
-
"children": [
|
|
51961
|
-
{
|
|
51962
|
-
"id": "",
|
|
51963
|
-
"body": {
|
|
51964
|
-
"package": "himalaya",
|
|
51965
|
-
"type": "Text",
|
|
51966
|
-
"props": {
|
|
51967
|
-
"text": "Plan",
|
|
51968
|
-
"style": "footnote",
|
|
51969
|
-
"color": "textSecondary"
|
|
51970
|
-
}
|
|
51971
|
-
},
|
|
51972
|
-
"modifiers": {
|
|
51973
|
-
"padding": {
|
|
51974
|
-
"trailing": 10
|
|
51975
|
-
}
|
|
51976
|
-
}
|
|
51977
|
-
},
|
|
51978
|
-
{
|
|
51979
|
-
"id": "",
|
|
51980
|
-
"body": {
|
|
51981
|
-
"package": "himalaya",
|
|
51982
|
-
"type": "Spacer",
|
|
51983
|
-
"props": {}
|
|
51984
|
-
}
|
|
51985
|
-
},
|
|
51986
|
-
{
|
|
51987
|
-
"id": "",
|
|
51988
|
-
"body": {
|
|
51989
|
-
"package": "himalaya",
|
|
51990
|
-
"type": "Text",
|
|
51991
|
-
"props": {
|
|
51992
|
-
"text": "Business",
|
|
51993
|
-
"style": "bodyEmphasis",
|
|
51994
|
-
"maxLines": 1,
|
|
51995
|
-
"collapseWhenEmpty": true
|
|
51996
|
-
}
|
|
51997
|
-
}
|
|
51998
|
-
}
|
|
51999
|
-
]
|
|
52000
|
-
}
|
|
52001
|
-
}
|
|
52002
51902
|
}
|
|
52003
51903
|
]
|
|
52004
51904
|
}
|
|
@@ -52094,6 +51994,28 @@ const SCREENS = runtimeSetting({
|
|
|
52094
51994
|
"modifiers": {
|
|
52095
51995
|
"hiddenPath": "$service:himiOwnerLiteAccount.noTerms"
|
|
52096
51996
|
}
|
|
51997
|
+
},
|
|
51998
|
+
{
|
|
51999
|
+
"id": "himi_owner_lite_account.deleteAccount",
|
|
52000
|
+
"body": {
|
|
52001
|
+
"package": "himalaya",
|
|
52002
|
+
"type": "Button",
|
|
52003
|
+
"props": {
|
|
52004
|
+
"title": "Delete account",
|
|
52005
|
+
"style": "plain",
|
|
52006
|
+
"fullWidth": true,
|
|
52007
|
+
"role": "destructive",
|
|
52008
|
+
"action": {
|
|
52009
|
+
"actionId": "tier5.himiOwnerLiteAccount.openLink",
|
|
52010
|
+
"params": {
|
|
52011
|
+
"kind": "deleteAccount"
|
|
52012
|
+
}
|
|
52013
|
+
}
|
|
52014
|
+
}
|
|
52015
|
+
},
|
|
52016
|
+
"modifiers": {
|
|
52017
|
+
"hiddenPath": "$service:himiOwnerLiteAccount.noDeleteAccount"
|
|
52018
|
+
}
|
|
52097
52019
|
}
|
|
52098
52020
|
]
|
|
52099
52021
|
}
|
|
@@ -52165,6 +52087,7 @@ const SCREENS = runtimeSetting({
|
|
|
52165
52087
|
"supportUrl": "https://www.wix.com/support",
|
|
52166
52088
|
"privacyUrl": "https://www.wix.com/about/privacy",
|
|
52167
52089
|
"termsUrl": "https://www.wix.com/about/terms-of-use",
|
|
52090
|
+
"deleteAccountUrl": "https://manage.wix.com/account/account-settings",
|
|
52168
52091
|
"businessName": "__HIMI_APP_NAME__",
|
|
52169
52092
|
"copy": "{\"ownerAccount.roleValue\":\"Organiser\",\"ownerAccount.subtitle\":\"Event organiser\"}"
|
|
52170
52093
|
}
|
|
@@ -63441,6 +63364,258 @@ const SCREENS = runtimeSetting({
|
|
|
63441
63364
|
"bundleVersion": "0.0.1"
|
|
63442
63365
|
}
|
|
63443
63366
|
},
|
|
63367
|
+
"himi_owner_lite_widget_today_small": {
|
|
63368
|
+
"screenId": "himi_owner_lite_widget_today_small",
|
|
63369
|
+
"renderer": "sdui_intent",
|
|
63370
|
+
"title": "Today widget (small)",
|
|
63371
|
+
"schemaVersion": 1,
|
|
63372
|
+
"cacheControl": {
|
|
63373
|
+
"maxAge": 0,
|
|
63374
|
+
"staleWhileRevalidate": 0
|
|
63375
|
+
},
|
|
63376
|
+
"telemetryScreenName": "himi_owner_lite_widget_today_small",
|
|
63377
|
+
"payload": {
|
|
63378
|
+
"id": "himi_owner_lite_widget_today_small.root",
|
|
63379
|
+
"body": {
|
|
63380
|
+
"package": "himalaya",
|
|
63381
|
+
"type": "VStack",
|
|
63382
|
+
"props": {
|
|
63383
|
+
"spacing": 4,
|
|
63384
|
+
"alignment": "leading",
|
|
63385
|
+
"children": [
|
|
63386
|
+
{
|
|
63387
|
+
"id": "owner_widget.small.header",
|
|
63388
|
+
"body": {
|
|
63389
|
+
"package": "himalaya",
|
|
63390
|
+
"type": "HStack",
|
|
63391
|
+
"props": {
|
|
63392
|
+
"spacing": 4,
|
|
63393
|
+
"children": [
|
|
63394
|
+
{
|
|
63395
|
+
"id": "owner_widget.small.icon",
|
|
63396
|
+
"body": {
|
|
63397
|
+
"package": "himalaya",
|
|
63398
|
+
"type": "Icon",
|
|
63399
|
+
"props": {
|
|
63400
|
+
"name": "calendar",
|
|
63401
|
+
"size": 12,
|
|
63402
|
+
"tint": "accentPrimary"
|
|
63403
|
+
}
|
|
63404
|
+
},
|
|
63405
|
+
"modifiers": {
|
|
63406
|
+
"accessibilityRole": "decorative"
|
|
63407
|
+
}
|
|
63408
|
+
},
|
|
63409
|
+
{
|
|
63410
|
+
"id": "owner_widget.small.title",
|
|
63411
|
+
"body": {
|
|
63412
|
+
"package": "himalaya",
|
|
63413
|
+
"type": "Text",
|
|
63414
|
+
"props": {
|
|
63415
|
+
"text": "Today",
|
|
63416
|
+
"style": "caption",
|
|
63417
|
+
"color": "textSecondary",
|
|
63418
|
+
"maxLines": 1
|
|
63419
|
+
}
|
|
63420
|
+
}
|
|
63421
|
+
}
|
|
63422
|
+
]
|
|
63423
|
+
}
|
|
63424
|
+
}
|
|
63425
|
+
},
|
|
63426
|
+
{
|
|
63427
|
+
"id": "owner_widget.small.message",
|
|
63428
|
+
"body": {
|
|
63429
|
+
"package": "himalaya",
|
|
63430
|
+
"type": "Text",
|
|
63431
|
+
"props": {
|
|
63432
|
+
"text": "$service:ownerToday.message",
|
|
63433
|
+
"style": "footnote",
|
|
63434
|
+
"color": "textSecondary",
|
|
63435
|
+
"maxLines": 3
|
|
63436
|
+
}
|
|
63437
|
+
},
|
|
63438
|
+
"modifiers": {
|
|
63439
|
+
"hiddenPath": "$service:ownerToday.hideMessage"
|
|
63440
|
+
}
|
|
63441
|
+
},
|
|
63442
|
+
{
|
|
63443
|
+
"id": "owner_widget.small.spacer",
|
|
63444
|
+
"body": {
|
|
63445
|
+
"package": "himalaya",
|
|
63446
|
+
"type": "Spacer",
|
|
63447
|
+
"props": {}
|
|
63448
|
+
}
|
|
63449
|
+
},
|
|
63450
|
+
{
|
|
63451
|
+
"id": "owner_widget.small.counts",
|
|
63452
|
+
"body": {
|
|
63453
|
+
"package": "himalaya",
|
|
63454
|
+
"type": "Text",
|
|
63455
|
+
"props": {
|
|
63456
|
+
"text": "$service:ownerToday.countsShort",
|
|
63457
|
+
"style": "caption",
|
|
63458
|
+
"maxLines": 1,
|
|
63459
|
+
"monospacedDigits": true
|
|
63460
|
+
}
|
|
63461
|
+
},
|
|
63462
|
+
"modifiers": {
|
|
63463
|
+
"hiddenPath": "$service:ownerToday.message"
|
|
63464
|
+
}
|
|
63465
|
+
}
|
|
63466
|
+
]
|
|
63467
|
+
}
|
|
63468
|
+
}
|
|
63469
|
+
},
|
|
63470
|
+
"input": {
|
|
63471
|
+
"verticals": ""
|
|
63472
|
+
},
|
|
63473
|
+
"logicBundle": {
|
|
63474
|
+
"url": "http://localhost:8190/v1/bundles/himi-owner-lite-today",
|
|
63475
|
+
"integrity": "",
|
|
63476
|
+
"contentType": "application/javascript+ts-bundle",
|
|
63477
|
+
"declaredCapabilities": [
|
|
63478
|
+
"wix_api"
|
|
63479
|
+
],
|
|
63480
|
+
"minBinaryVersion": "0.1.0",
|
|
63481
|
+
"bundleVersion": "0.0.1"
|
|
63482
|
+
}
|
|
63483
|
+
},
|
|
63484
|
+
"himi_owner_lite_widget_today_medium": {
|
|
63485
|
+
"screenId": "himi_owner_lite_widget_today_medium",
|
|
63486
|
+
"renderer": "sdui_intent",
|
|
63487
|
+
"title": "Today widget (medium)",
|
|
63488
|
+
"schemaVersion": 1,
|
|
63489
|
+
"cacheControl": {
|
|
63490
|
+
"maxAge": 0,
|
|
63491
|
+
"staleWhileRevalidate": 0
|
|
63492
|
+
},
|
|
63493
|
+
"telemetryScreenName": "himi_owner_lite_widget_today_medium",
|
|
63494
|
+
"payload": {
|
|
63495
|
+
"id": "himi_owner_lite_widget_today_medium.root",
|
|
63496
|
+
"body": {
|
|
63497
|
+
"package": "himalaya",
|
|
63498
|
+
"type": "VStack",
|
|
63499
|
+
"props": {
|
|
63500
|
+
"spacing": 6,
|
|
63501
|
+
"alignment": "leading",
|
|
63502
|
+
"children": [
|
|
63503
|
+
{
|
|
63504
|
+
"id": "owner_widget.medium.header_row",
|
|
63505
|
+
"body": {
|
|
63506
|
+
"package": "himalaya",
|
|
63507
|
+
"type": "HStack",
|
|
63508
|
+
"props": {
|
|
63509
|
+
"spacing": 4,
|
|
63510
|
+
"children": [
|
|
63511
|
+
{
|
|
63512
|
+
"id": "owner_widget.medium.icon",
|
|
63513
|
+
"body": {
|
|
63514
|
+
"package": "himalaya",
|
|
63515
|
+
"type": "Icon",
|
|
63516
|
+
"props": {
|
|
63517
|
+
"name": "calendar",
|
|
63518
|
+
"size": 12,
|
|
63519
|
+
"tint": "accentPrimary"
|
|
63520
|
+
}
|
|
63521
|
+
},
|
|
63522
|
+
"modifiers": {
|
|
63523
|
+
"accessibilityRole": "decorative"
|
|
63524
|
+
}
|
|
63525
|
+
},
|
|
63526
|
+
{
|
|
63527
|
+
"id": "owner_widget.medium.header",
|
|
63528
|
+
"body": {
|
|
63529
|
+
"package": "himalaya",
|
|
63530
|
+
"type": "Text",
|
|
63531
|
+
"props": {
|
|
63532
|
+
"text": "$service:ownerToday.header",
|
|
63533
|
+
"style": "caption",
|
|
63534
|
+
"color": "textSecondary",
|
|
63535
|
+
"maxLines": 1
|
|
63536
|
+
}
|
|
63537
|
+
}
|
|
63538
|
+
}
|
|
63539
|
+
]
|
|
63540
|
+
}
|
|
63541
|
+
}
|
|
63542
|
+
},
|
|
63543
|
+
{
|
|
63544
|
+
"id": "owner_widget.medium.message",
|
|
63545
|
+
"body": {
|
|
63546
|
+
"package": "himalaya",
|
|
63547
|
+
"type": "Text",
|
|
63548
|
+
"props": {
|
|
63549
|
+
"text": "$service:ownerToday.message",
|
|
63550
|
+
"style": "footnote",
|
|
63551
|
+
"color": "textSecondary",
|
|
63552
|
+
"maxLines": 3
|
|
63553
|
+
}
|
|
63554
|
+
},
|
|
63555
|
+
"modifiers": {
|
|
63556
|
+
"hiddenPath": "$service:ownerToday.hideMessage"
|
|
63557
|
+
}
|
|
63558
|
+
},
|
|
63559
|
+
{
|
|
63560
|
+
"id": "owner_widget.medium.spacer",
|
|
63561
|
+
"body": {
|
|
63562
|
+
"package": "himalaya",
|
|
63563
|
+
"type": "Spacer",
|
|
63564
|
+
"props": {}
|
|
63565
|
+
}
|
|
63566
|
+
},
|
|
63567
|
+
{
|
|
63568
|
+
"id": "owner_widget.medium.divider",
|
|
63569
|
+
"body": {
|
|
63570
|
+
"package": "himalaya",
|
|
63571
|
+
"type": "Divider",
|
|
63572
|
+
"props": {}
|
|
63573
|
+
},
|
|
63574
|
+
"modifiers": {
|
|
63575
|
+
"hiddenPath": "$service:ownerToday.message"
|
|
63576
|
+
}
|
|
63577
|
+
},
|
|
63578
|
+
{
|
|
63579
|
+
"id": "owner_widget.medium.counts",
|
|
63580
|
+
"body": {
|
|
63581
|
+
"package": "himalaya",
|
|
63582
|
+
"type": "HStack",
|
|
63583
|
+
"props": {
|
|
63584
|
+
"spacing": 8,
|
|
63585
|
+
"children": [
|
|
63586
|
+
{
|
|
63587
|
+
"id": "owner_widget.medium.counts_spacer",
|
|
63588
|
+
"body": {
|
|
63589
|
+
"package": "himalaya",
|
|
63590
|
+
"type": "Spacer",
|
|
63591
|
+
"props": {}
|
|
63592
|
+
}
|
|
63593
|
+
}
|
|
63594
|
+
]
|
|
63595
|
+
}
|
|
63596
|
+
},
|
|
63597
|
+
"modifiers": {
|
|
63598
|
+
"hiddenPath": "$service:ownerToday.message"
|
|
63599
|
+
}
|
|
63600
|
+
}
|
|
63601
|
+
]
|
|
63602
|
+
}
|
|
63603
|
+
}
|
|
63604
|
+
},
|
|
63605
|
+
"input": {
|
|
63606
|
+
"verticals": ""
|
|
63607
|
+
},
|
|
63608
|
+
"logicBundle": {
|
|
63609
|
+
"url": "http://localhost:8190/v1/bundles/himi-owner-lite-today",
|
|
63610
|
+
"integrity": "",
|
|
63611
|
+
"contentType": "application/javascript+ts-bundle",
|
|
63612
|
+
"declaredCapabilities": [
|
|
63613
|
+
"wix_api"
|
|
63614
|
+
],
|
|
63615
|
+
"minBinaryVersion": "0.1.0",
|
|
63616
|
+
"bundleVersion": "0.0.1"
|
|
63617
|
+
}
|
|
63618
|
+
},
|
|
63444
63619
|
"himi_owner_lite_wrist_home": {
|
|
63445
63620
|
"screenId": "himi_owner_lite_wrist_home",
|
|
63446
63621
|
"renderer": "sdui_intent",
|
|
@@ -154,6 +154,12 @@
|
|
|
154
154
|
"himi_owner_lite_sites": {
|
|
155
155
|
"displayName": "Sites"
|
|
156
156
|
},
|
|
157
|
+
"himi_owner_lite_widget_today_medium": {
|
|
158
|
+
"displayName": "Today widget (medium)"
|
|
159
|
+
},
|
|
160
|
+
"himi_owner_lite_widget_today_small": {
|
|
161
|
+
"displayName": "Today widget (small)"
|
|
162
|
+
},
|
|
157
163
|
"himi_owner_lite_wrist_home": {
|
|
158
164
|
"displayName": "Next up"
|
|
159
165
|
},
|
|
@@ -15,10 +15,13 @@ export interface AccountState {
|
|
|
15
15
|
supportUrl: string;
|
|
16
16
|
privacyUrl: string;
|
|
17
17
|
termsUrl: string;
|
|
18
|
+
/** Wix's own account-deletion destination (App Store 5.1.1(v)). */
|
|
19
|
+
deleteAccountUrl: string;
|
|
18
20
|
/** hiddenPath flags — TRUE hides, so each is phrased negatively. */
|
|
19
21
|
noSupport: boolean;
|
|
20
22
|
noPrivacy: boolean;
|
|
21
23
|
noTerms: boolean;
|
|
24
|
+
noDeleteAccount: boolean;
|
|
22
25
|
}
|
|
23
26
|
|
|
24
27
|
/** Only absolute http(s) URLs are openable; anything else is treated as absent. */
|
|
@@ -37,13 +40,14 @@ export function ownerLineOf(name: string, email: string): string {
|
|
|
37
40
|
|
|
38
41
|
export function shapeAccount(s: Partial<AccountState>): AccountState {
|
|
39
42
|
const supportUrl = safeUrl(s.supportUrl), privacyUrl = safeUrl(s.privacyUrl), termsUrl = safeUrl(s.termsUrl);
|
|
43
|
+
const deleteAccountUrl = safeUrl(s.deleteAccountUrl);
|
|
40
44
|
return {
|
|
41
45
|
status: s.status ?? "loading",
|
|
42
46
|
businessName: s.businessName ?? "",
|
|
43
47
|
ownerLine: s.ownerLine ?? "",
|
|
44
48
|
versionLine: s.versionLine ?? "",
|
|
45
49
|
error: s.error ?? "",
|
|
46
|
-
supportUrl, privacyUrl, termsUrl,
|
|
47
|
-
noSupport: !supportUrl, noPrivacy: !privacyUrl, noTerms: !termsUrl,
|
|
50
|
+
supportUrl, privacyUrl, termsUrl, deleteAccountUrl,
|
|
51
|
+
noSupport: !supportUrl, noPrivacy: !privacyUrl, noTerms: !termsUrl, noDeleteAccount: !deleteAccountUrl,
|
|
48
52
|
};
|
|
49
53
|
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
// Accept / Decline ONE booking request — the write shared by the two __HIMI_APP_NAME__ surfaces that
|
|
2
|
+
// answer a request without opening the booking screen: the paired watch (`himi-owner-lite-wrist`)
|
|
3
|
+
// and the notification's action buttons (`himi-owner-lite-nav`).
|
|
4
|
+
//
|
|
5
|
+
// Both follow the same rules:
|
|
6
|
+
// • the press names the business it was shown for, and is REFUSED unless that is the business
|
|
7
|
+
// the phone has active — a site switched between delivery and press must never confirm
|
|
8
|
+
// another business's booking;
|
|
9
|
+
// • the write itself is addressed at that business (`wix-site-id`), so even a switch that lands
|
|
10
|
+
// between the check and the request cannot move it;
|
|
11
|
+
// • only a request still pending is written, at the revision Wix last reported.
|
|
12
|
+
|
|
13
|
+
import { getBooking, confirmBooking, declineBooking } from "@himalaya/wix-bookings";
|
|
14
|
+
|
|
15
|
+
type Rec = Record<string, unknown>;
|
|
16
|
+
|
|
17
|
+
/** The statuses that are waiting on the owner. */
|
|
18
|
+
export const PENDING_BOOKING_STATUSES: ReadonlySet<string> = new Set(["PENDING", "PENDING_APPROVAL", "WAITING_LIST"]);
|
|
19
|
+
|
|
20
|
+
export type BookingResponse = "confirm" | "decline";
|
|
21
|
+
|
|
22
|
+
/** A press may write only for the business the phone has active. Fails CLOSED: a press that
|
|
23
|
+
* names no business, or a host that cannot say which one is active, writes nothing. */
|
|
24
|
+
export function isForActiveBusiness(siteId: string, activeSiteId: string): boolean {
|
|
25
|
+
return !!siteId && !!activeSiteId && siteId === activeSiteId;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/** Wix refused the write because the booking moved on (another revision, already handled). */
|
|
29
|
+
export function isStaleBookingWrite(e: unknown): boolean {
|
|
30
|
+
return /revision|\b409\b|ABORTED|conflict/i.test(String((e as Error)?.message ?? e));
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/** Confirm or decline `bookingId` at `revision`, addressed at `siteId`. Rejects without a
|
|
34
|
+
* request when `siteId` is empty: an unaddressed write would land on whatever business the
|
|
35
|
+
* ambient bridge is scoped to. */
|
|
36
|
+
export function writeBookingResponse(kind: BookingResponse, bookingId: string, revision: string, siteId: string): Promise<unknown> {
|
|
37
|
+
const site = siteId.trim();
|
|
38
|
+
if (!site) return Promise.reject(new Error("writeBookingResponse: a booking write must name its business"));
|
|
39
|
+
const opts = { site };
|
|
40
|
+
return kind === "confirm" ? confirmBooking(bookingId, revision, opts) : declineBooking(bookingId, revision, false, opts);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export type BookingResponseOutcome =
|
|
44
|
+
| "confirmed" | "declined"
|
|
45
|
+
/** Not written: no booking id, or a press for a business other than the active one. */
|
|
46
|
+
| "refused"
|
|
47
|
+
/** Not written: the booking is no longer waiting on the owner (or no longer exists). */
|
|
48
|
+
| "notPending"
|
|
49
|
+
/** Not written: Wix reported a newer revision between the read and the write. */
|
|
50
|
+
| "stale"
|
|
51
|
+
/** Not written: the read or the write failed. */
|
|
52
|
+
| "failed";
|
|
53
|
+
|
|
54
|
+
function str(r: Rec | undefined, key: string): string {
|
|
55
|
+
const v = r?.[key];
|
|
56
|
+
return typeof v === "string" ? v : typeof v === "number" ? String(v) : "";
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/** Answer a request known only by id — a notification carries no revision, so the booking is
|
|
60
|
+
* read first (from the business the press names) and written only while it is still pending. */
|
|
61
|
+
export async function respondToBookingById(
|
|
62
|
+
kind: BookingResponse,
|
|
63
|
+
bookingId: string,
|
|
64
|
+
siteId: string,
|
|
65
|
+
activeSiteId: string,
|
|
66
|
+
): Promise<BookingResponseOutcome> {
|
|
67
|
+
if (!bookingId || !isForActiveBusiness(siteId, activeSiteId)) return "refused";
|
|
68
|
+
let booking: Rec | undefined;
|
|
69
|
+
try {
|
|
70
|
+
booking = ((await getBooking(bookingId, { site: siteId })) as unknown as { booking?: Rec } | undefined)?.booking;
|
|
71
|
+
} catch {
|
|
72
|
+
return "failed";
|
|
73
|
+
}
|
|
74
|
+
const revision = str(booking, "revision");
|
|
75
|
+
if (!booking || !revision || !PENDING_BOOKING_STATUSES.has(str(booking, "status"))) return "notPending";
|
|
76
|
+
try {
|
|
77
|
+
await writeBookingResponse(kind, bookingId, revision, siteId);
|
|
78
|
+
} catch (e) {
|
|
79
|
+
return isStaleBookingWrite(e) ? "stale" : "failed";
|
|
80
|
+
}
|
|
81
|
+
return kind === "confirm" ? "confirmed" : "declined";
|
|
82
|
+
}
|