@wix/agent-skills 1.20.1 → 1.22.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/package.json +1 -1
- package/skills/wix-app/SKILL.md +71 -113
- package/skills/wix-app/references/APP_TOOLS.md +2 -1
- package/skills/wix-app/references/BACKEND_EVENT.md +3 -3
- package/skills/wix-app/references/CUSTOM_ELEMENT_WIDGET.md +41 -152
- package/skills/wix-app/references/DASHBOARD_MODAL.md +4 -4
- package/skills/wix-app/references/DASHBOARD_PAGE.md +11 -25
- package/skills/wix-app/references/DATA_COLLECTION.md +16 -219
- package/skills/wix-app/references/SDK_MODULE_MAP.md +44 -0
- package/skills/wix-app/references/SITE_PLUGIN.md +36 -190
- package/skills/wix-app/references/app-tools/TOOLS.md +3 -1
- package/skills/wix-app/references/custom-element-widget/SETTINGS_PANEL.md +21 -0
- package/skills/wix-app/references/dashboard-page/DATA_SOURCES.md +182 -0
- package/skills/wix-app/references/dashboard-page/DRAFT_TEMPLATE.md +97 -0
- package/skills/wix-app/references/dashboard-page/DRAFT_TEMPLATE_COLLECTION.md +184 -0
- package/skills/wix-app/references/dashboard-page/DRAFT_TEMPLATE_ROUTER.md +203 -0
- package/skills/wix-app/references/dashboard-page/DRAFT_TEMPLATE_SETTINGS.md +44 -0
- package/skills/wix-app/references/dashboard-page/ECOM_NAVIGATION.md +17 -0
- package/skills/wix-app/references/dashboard-page/QUERY_AND_PAGING.md +182 -0
- package/skills/wix-app/references/dashboard-page/TABLE_STATE.md +133 -0
- package/skills/wix-app/references/dashboard-page/UX_SUCCESS_MODEL.md +10 -5
- package/skills/wix-app/references/dashboard-plugin/SLOTS.md +4 -18
- package/skills/wix-app/references/data-collection/LIFECYCLE.md +68 -0
- package/skills/wix-app/references/data-collection/PERMISSIONS.md +47 -0
- package/skills/wix-app/references/data-collection/SCHEMA.md +181 -0
- package/skills/wix-app/references/data-collection/WIX_DATA.md +38 -66
- package/skills/wix-app/references/site-plugin/EXAMPLES.md +1 -1
- package/skills/wix-headless-fast/SKILL.md +144 -221
- package/skills/wix-headless-fast/cold-start/bootstrap.mjs +156 -0
- package/skills/wix-headless-fast/{entry/skill.md → cold-start/cold-start.md} +15 -15
- package/skills/wix-headless-fast/guides/existing-site.md +76 -0
- package/skills/wix-headless-fast/guides/reference-mode.md +97 -0
- package/skills/wix-headless-fast/install/AGENTS.md +35 -0
- package/skills/wix-headless-fast/install/agents-md.mjs +39 -0
- package/skills/wix-headless-fast/install/attach.mjs +161 -86
- package/skills/wix-headless-fast/install/deploy.mjs +21 -60
- package/skills/wix-headless-fast/install/lock.mjs +55 -0
- package/skills/wix-headless-fast/install/setup.mjs +259 -0
- package/skills/wix-headless-fast/install/templates.mjs +168 -0
- package/skills/wix-manage/references/ecommerce/pricing-promotions/ecom-pricing-create-coupon.md +10 -19
- package/skills/wix-manage/references/events/create-wix-event.md +5 -1
- package/skills/wix-manage/references/google-ads/google-ads-dashboard-navigation.md +27 -0
- package/skills/wix-manage/references/google-ads/manage-campaign-success-guide.md +83 -37
- package/skills/wix-headless-fast/install/fast-path.mjs +0 -181
- package/skills/wix-headless-fast/references/blog/INSTRUCTIONS.md +0 -301
- package/skills/wix-headless-fast/references/blog/app/components/blog/BlogFeedView.tsx +0 -136
- package/skills/wix-headless-fast/references/blog/app/components/blog/PostView.tsx +0 -112
- package/skills/wix-headless-fast/references/blog/app/components/blog/RichContent.tsx +0 -42
- package/skills/wix-headless-fast/references/blog/app/hooks/blog/useBlogFeed.ts +0 -31
- package/skills/wix-headless-fast/references/blog/app/hooks/blog/usePost.ts +0 -22
- package/skills/wix-headless-fast/references/blog/app/wix/blog/blog-feed-store.ts +0 -137
- package/skills/wix-headless-fast/references/blog/app/wix/blog/post-store.ts +0 -78
- package/skills/wix-headless-fast/references/blog/app/wix/blog/posts-core.ts +0 -117
- package/skills/wix-headless-fast/references/blog/app/wix/blog/posts.ts +0 -52
- package/skills/wix-headless-fast/references/blog/app/wix/blog/taxonomy-core.ts +0 -47
- package/skills/wix-headless-fast/references/blog/app/wix/blog/taxonomy.ts +0 -58
- package/skills/wix-headless-fast/references/blog/app/wix/blog/types.ts +0 -62
- package/skills/wix-headless-fast/references/blog/app-astro/layouts/SiteLayout.astro +0 -40
- package/skills/wix-headless-fast/references/blog/app-astro/pages/blog/[...slug].astro +0 -97
- package/skills/wix-headless-fast/references/blog/app-astro/pages/blog.astro +0 -24
- package/skills/wix-headless-fast/references/blog/lock/astro/package-lock.json +0 -16156
- package/skills/wix-headless-fast/references/blog/rest/posts.ts +0 -42
- package/skills/wix-headless-fast/references/blog/rest/taxonomy.ts +0 -62
- package/skills/wix-headless-fast/references/blog/seed/SEED.md +0 -81
- package/skills/wix-headless-fast/references/blog/seed/seed-blog.mjs +0 -287
- package/skills/wix-headless-fast/references/bookings/INSTRUCTIONS.md +0 -275
- package/skills/wix-headless-fast/references/bookings/app/components/bookings/ServiceBookingView.tsx +0 -144
- package/skills/wix-headless-fast/references/bookings/app/components/bookings/ServicesView.tsx +0 -119
- package/skills/wix-headless-fast/references/bookings/app/hooks/bookings/useBookingFlow.ts +0 -32
- package/skills/wix-headless-fast/references/bookings/app/hooks/bookings/useServices.ts +0 -23
- package/skills/wix-headless-fast/references/bookings/app/wix/bookings/booking-core.ts +0 -218
- package/skills/wix-headless-fast/references/bookings/app/wix/bookings/booking-flow-store.ts +0 -169
- package/skills/wix-headless-fast/references/bookings/app/wix/bookings/booking.ts +0 -121
- package/skills/wix-headless-fast/references/bookings/app/wix/bookings/services-core.ts +0 -92
- package/skills/wix-headless-fast/references/bookings/app/wix/bookings/services-store.ts +0 -90
- package/skills/wix-headless-fast/references/bookings/app/wix/bookings/services.ts +0 -57
- package/skills/wix-headless-fast/references/bookings/app/wix/bookings/types.ts +0 -72
- package/skills/wix-headless-fast/references/bookings/app-astro/layouts/SiteLayout.astro +0 -40
- package/skills/wix-headless-fast/references/bookings/app-astro/pages/services/[slug].astro +0 -76
- package/skills/wix-headless-fast/references/bookings/app-astro/pages/services.astro +0 -22
- package/skills/wix-headless-fast/references/bookings/lock/astro/package-lock.json +0 -11962
- package/skills/wix-headless-fast/references/bookings/rest/booking.ts +0 -113
- package/skills/wix-headless-fast/references/bookings/rest/services.ts +0 -55
- package/skills/wix-headless-fast/references/bookings/seed/SEED.md +0 -71
- package/skills/wix-headless-fast/references/bookings/seed/seed-bookings.mjs +0 -302
- package/skills/wix-headless-fast/references/cms/INSTRUCTIONS.md +0 -353
- package/skills/wix-headless-fast/references/cms/app/hooks/cms/useCollection.ts +0 -50
- package/skills/wix-headless-fast/references/cms/app/hooks/cms/useItem.ts +0 -37
- package/skills/wix-headless-fast/references/cms/app/wix/cms/collection-store.ts +0 -158
- package/skills/wix-headless-fast/references/cms/app/wix/cms/item-store.ts +0 -93
- package/skills/wix-headless-fast/references/cms/app/wix/cms/items-core.ts +0 -177
- package/skills/wix-headless-fast/references/cms/app/wix/cms/items.ts +0 -123
- package/skills/wix-headless-fast/references/cms/app/wix/cms/types.ts +0 -75
- package/skills/wix-headless-fast/references/cms/app-astro/layouts/SiteLayout.astro +0 -41
- package/skills/wix-headless-fast/references/cms/lock/astro/package-lock.json +0 -11262
- package/skills/wix-headless-fast/references/cms/rest/items.ts +0 -125
- package/skills/wix-headless-fast/references/cms/seed/SEED.md +0 -112
- package/skills/wix-headless-fast/references/cms/seed/seed-cms.mjs +0 -324
- package/skills/wix-headless-fast/references/events/INSTRUCTIONS.md +0 -305
- package/skills/wix-headless-fast/references/events/app/components/events/EventConfirmationView.tsx +0 -66
- package/skills/wix-headless-fast/references/events/app/components/events/EventRegistrationView.tsx +0 -178
- package/skills/wix-headless-fast/references/events/app/components/events/EventsView.tsx +0 -118
- package/skills/wix-headless-fast/references/events/app/hooks/events/useEventRegistration.ts +0 -35
- package/skills/wix-headless-fast/references/events/app/hooks/events/useEvents.ts +0 -24
- package/skills/wix-headless-fast/references/events/app/wix/events/events-core.ts +0 -130
- package/skills/wix-headless-fast/references/events/app/wix/events/events-store.ts +0 -97
- package/skills/wix-headless-fast/references/events/app/wix/events/events.ts +0 -55
- package/skills/wix-headless-fast/references/events/app/wix/events/registration-core.ts +0 -113
- package/skills/wix-headless-fast/references/events/app/wix/events/registration-store.ts +0 -156
- package/skills/wix-headless-fast/references/events/app/wix/events/registration.ts +0 -97
- package/skills/wix-headless-fast/references/events/app/wix/events/types.ts +0 -61
- package/skills/wix-headless-fast/references/events/app-astro/layouts/SiteLayout.astro +0 -40
- package/skills/wix-headless-fast/references/events/app-astro/pages/event-confirmation.astro +0 -12
- package/skills/wix-headless-fast/references/events/app-astro/pages/events/[slug].astro +0 -80
- package/skills/wix-headless-fast/references/events/app-astro/pages/events.astro +0 -21
- package/skills/wix-headless-fast/references/events/lock/astro/package-lock.json +0 -11884
- package/skills/wix-headless-fast/references/events/rest/events.ts +0 -57
- package/skills/wix-headless-fast/references/events/rest/registration.ts +0 -83
- package/skills/wix-headless-fast/references/events/seed/SEED.md +0 -95
- package/skills/wix-headless-fast/references/events/seed/seed-events.mjs +0 -276
- package/skills/wix-headless-fast/references/forms/INSTRUCTIONS.md +0 -338
- package/skills/wix-headless-fast/references/forms/app/hooks/forms/useWixForm.ts +0 -85
- package/skills/wix-headless-fast/references/forms/app/wix/forms/form-store.ts +0 -332
- package/skills/wix-headless-fast/references/forms/app/wix/forms/forms-core.ts +0 -238
- package/skills/wix-headless-fast/references/forms/app/wix/forms/forms.ts +0 -54
- package/skills/wix-headless-fast/references/forms/app/wix/forms/submissions-core.ts +0 -216
- package/skills/wix-headless-fast/references/forms/app/wix/forms/submissions.ts +0 -59
- package/skills/wix-headless-fast/references/forms/app/wix/forms/types.ts +0 -135
- package/skills/wix-headless-fast/references/forms/lock/astro/package-lock.json +0 -10593
- package/skills/wix-headless-fast/references/forms/rest/forms.ts +0 -34
- package/skills/wix-headless-fast/references/forms/rest/submissions.ts +0 -56
- package/skills/wix-headless-fast/references/forms/seed/SEED.md +0 -116
- package/skills/wix-headless-fast/references/forms/seed/seed-forms.mjs +0 -327
- package/skills/wix-headless-fast/references/members/INSTRUCTIONS.md +0 -314
- package/skills/wix-headless-fast/references/members/app/components/members/AccountView.tsx +0 -60
- package/skills/wix-headless-fast/references/members/app/components/members/LoginForm.tsx +0 -155
- package/skills/wix-headless-fast/references/members/app/components/members/MemberMenu.tsx +0 -78
- package/skills/wix-headless-fast/references/members/app/components/members/RequireAuth.tsx +0 -47
- package/skills/wix-headless-fast/references/members/app/hooks/members/useMember.ts +0 -66
- package/skills/wix-headless-fast/references/members/app/wix/members/auth-core.ts +0 -105
- package/skills/wix-headless-fast/references/members/app/wix/members/auth.ts +0 -59
- package/skills/wix-headless-fast/references/members/app/wix/members/client.ts +0 -53
- package/skills/wix-headless-fast/references/members/app/wix/members/member-store.ts +0 -122
- package/skills/wix-headless-fast/references/members/app/wix/members/members-core.ts +0 -43
- package/skills/wix-headless-fast/references/members/app/wix/members/members.ts +0 -29
- package/skills/wix-headless-fast/references/members/app/wix/members/types.ts +0 -21
- package/skills/wix-headless-fast/references/members/app-astro/layouts/SiteLayout.astro +0 -42
- package/skills/wix-headless-fast/references/members/app-astro/pages/account.astro +0 -10
- package/skills/wix-headless-fast/references/members/app-astro/pages/login.astro +0 -11
- package/skills/wix-headless-fast/references/members/lock/astro/package-lock.json +0 -10329
- package/skills/wix-headless-fast/references/members/rest/auth.ts +0 -215
- package/skills/wix-headless-fast/references/members/rest/members.ts +0 -26
- package/skills/wix-headless-fast/references/members/seed/SEED.md +0 -39
- package/skills/wix-headless-fast/references/members/seed/seed-members.mjs +0 -94
- package/skills/wix-headless-fast/references/portfolio/INSTRUCTIONS.md +0 -313
- package/skills/wix-headless-fast/references/portfolio/app/components/portfolio/CollectionProjectsView.tsx +0 -110
- package/skills/wix-headless-fast/references/portfolio/app/components/portfolio/CollectionsView.tsx +0 -90
- package/skills/wix-headless-fast/references/portfolio/app/components/portfolio/GalleryMedia.tsx +0 -35
- package/skills/wix-headless-fast/references/portfolio/app/components/portfolio/ProjectDetailView.tsx +0 -85
- package/skills/wix-headless-fast/references/portfolio/app/hooks/portfolio/useCollectionProjects.ts +0 -32
- package/skills/wix-headless-fast/references/portfolio/app/hooks/portfolio/useCollections.ts +0 -21
- package/skills/wix-headless-fast/references/portfolio/app/hooks/portfolio/useProjectDetail.ts +0 -31
- package/skills/wix-headless-fast/references/portfolio/app/wix/portfolio/collection-projects-store.ts +0 -82
- package/skills/wix-headless-fast/references/portfolio/app/wix/portfolio/collections-store.ts +0 -58
- package/skills/wix-headless-fast/references/portfolio/app/wix/portfolio/portfolio-core.ts +0 -177
- package/skills/wix-headless-fast/references/portfolio/app/wix/portfolio/portfolio.ts +0 -78
- package/skills/wix-headless-fast/references/portfolio/app/wix/portfolio/project-detail-store.ts +0 -81
- package/skills/wix-headless-fast/references/portfolio/app/wix/portfolio/types.ts +0 -55
- package/skills/wix-headless-fast/references/portfolio/app-astro/layouts/SiteLayout.astro +0 -40
- package/skills/wix-headless-fast/references/portfolio/app-astro/pages/portfolio/[slug].astro +0 -30
- package/skills/wix-headless-fast/references/portfolio/app-astro/pages/portfolio.astro +0 -21
- package/skills/wix-headless-fast/references/portfolio/app-astro/pages/projects/[slug].astro +0 -29
- package/skills/wix-headless-fast/references/portfolio/lock/astro/package-lock.json +0 -10197
- package/skills/wix-headless-fast/references/portfolio/rest/portfolio.ts +0 -75
- package/skills/wix-headless-fast/references/portfolio/seed/SEED.md +0 -86
- package/skills/wix-headless-fast/references/portfolio/seed/seed-portfolio.mjs +0 -258
- package/skills/wix-headless-fast/references/pricing-plans/INSTRUCTIONS.md +0 -294
- package/skills/wix-headless-fast/references/pricing-plans/app/components/pricing-plans/PlanDetailView.tsx +0 -47
- package/skills/wix-headless-fast/references/pricing-plans/app/components/pricing-plans/PlansView.tsx +0 -101
- package/skills/wix-headless-fast/references/pricing-plans/app/components/pricing-plans/SubscribeButton.tsx +0 -41
- package/skills/wix-headless-fast/references/pricing-plans/app/hooks/pricing-plans/usePlanPurchase.ts +0 -16
- package/skills/wix-headless-fast/references/pricing-plans/app/hooks/pricing-plans/usePlans.ts +0 -22
- package/skills/wix-headless-fast/references/pricing-plans/app/wix/pricing-plans/plan-purchase-store.ts +0 -54
- package/skills/wix-headless-fast/references/pricing-plans/app/wix/pricing-plans/plans-core.ts +0 -106
- package/skills/wix-headless-fast/references/pricing-plans/app/wix/pricing-plans/plans-store.ts +0 -64
- package/skills/wix-headless-fast/references/pricing-plans/app/wix/pricing-plans/plans.ts +0 -27
- package/skills/wix-headless-fast/references/pricing-plans/app/wix/pricing-plans/purchase-core.ts +0 -43
- package/skills/wix-headless-fast/references/pricing-plans/app/wix/pricing-plans/purchase.ts +0 -22
- package/skills/wix-headless-fast/references/pricing-plans/app/wix/pricing-plans/types.ts +0 -30
- package/skills/wix-headless-fast/references/pricing-plans/app-astro/layouts/SiteLayout.astro +0 -41
- package/skills/wix-headless-fast/references/pricing-plans/app-astro/pages/plans/[slug].astro +0 -40
- package/skills/wix-headless-fast/references/pricing-plans/app-astro/pages/plans.astro +0 -21
- package/skills/wix-headless-fast/references/pricing-plans/lock/astro/package-lock.json +0 -11226
- package/skills/wix-headless-fast/references/pricing-plans/rest/plans.ts +0 -31
- package/skills/wix-headless-fast/references/pricing-plans/rest/purchase.ts +0 -20
- package/skills/wix-headless-fast/references/pricing-plans/seed/SEED.md +0 -79
- package/skills/wix-headless-fast/references/pricing-plans/seed/seed-pricing-plans.mjs +0 -279
- package/skills/wix-headless-fast/references/restaurants/INSTRUCTIONS.md +0 -358
- package/skills/wix-headless-fast/references/restaurants/app/components/restaurants/MenuView.tsx +0 -142
- package/skills/wix-headless-fast/references/restaurants/app/components/restaurants/OrderCartButton.tsx +0 -26
- package/skills/wix-headless-fast/references/restaurants/app/components/restaurants/OrderCartDrawer.tsx +0 -121
- package/skills/wix-headless-fast/references/restaurants/app/components/restaurants/ReservationView.tsx +0 -155
- package/skills/wix-headless-fast/references/restaurants/app/hooks/restaurants/useMenus.ts +0 -34
- package/skills/wix-headless-fast/references/restaurants/app/hooks/restaurants/useOrderCart.ts +0 -43
- package/skills/wix-headless-fast/references/restaurants/app/hooks/restaurants/useReservation.ts +0 -34
- package/skills/wix-headless-fast/references/restaurants/app/wix/restaurants/menu-core.ts +0 -155
- package/skills/wix-headless-fast/references/restaurants/app/wix/restaurants/menu-store.ts +0 -89
- package/skills/wix-headless-fast/references/restaurants/app/wix/restaurants/menu.ts +0 -71
- package/skills/wix-headless-fast/references/restaurants/app/wix/restaurants/order-store.ts +0 -103
- package/skills/wix-headless-fast/references/restaurants/app/wix/restaurants/ordering-core.ts +0 -124
- package/skills/wix-headless-fast/references/restaurants/app/wix/restaurants/ordering.ts +0 -185
- package/skills/wix-headless-fast/references/restaurants/app/wix/restaurants/reservation-store.ts +0 -193
- package/skills/wix-headless-fast/references/restaurants/app/wix/restaurants/reservations-core.ts +0 -94
- package/skills/wix-headless-fast/references/restaurants/app/wix/restaurants/reservations.ts +0 -74
- package/skills/wix-headless-fast/references/restaurants/app/wix/restaurants/types.ts +0 -168
- package/skills/wix-headless-fast/references/restaurants/app-astro/layouts/SiteLayout.astro +0 -47
- package/skills/wix-headless-fast/references/restaurants/app-astro/pages/menu.astro +0 -22
- package/skills/wix-headless-fast/references/restaurants/app-astro/pages/reservations.astro +0 -12
- package/skills/wix-headless-fast/references/restaurants/lock/astro/package-lock.json +0 -12560
- package/skills/wix-headless-fast/references/restaurants/rest/menu.ts +0 -60
- package/skills/wix-headless-fast/references/restaurants/rest/ordering.ts +0 -169
- package/skills/wix-headless-fast/references/restaurants/rest/reservations.ts +0 -68
- package/skills/wix-headless-fast/references/restaurants/seed/SEED.md +0 -89
- package/skills/wix-headless-fast/references/restaurants/seed/seed-restaurants.mjs +0 -479
- package/skills/wix-headless-fast/references/shared/CONTENT.md +0 -22
- package/skills/wix-headless-fast/references/shared/CUSTOM_OPERATIONS.md +0 -73
- package/skills/wix-headless-fast/references/shared/DESIGN.md +0 -26
- package/skills/wix-headless-fast/references/shared/SUPPLIED-CONTENT.md +0 -23
- package/skills/wix-headless-fast/references/shared/app/styles/global.css +0 -52
- package/skills/wix-headless-fast/references/shared/app/wix/config.ts +0 -15
- package/skills/wix-headless-fast/references/shared/app/wix/media.ts +0 -81
- package/skills/wix-headless-fast/references/shared/app/wix/money.ts +0 -24
- package/skills/wix-headless-fast/references/shared/app/wix/sdk.ts +0 -89
- package/skills/wix-headless-fast/references/shared/capabilities/media-upload/app/wix/media-upload/client.ts +0 -46
- package/skills/wix-headless-fast/references/shared/capabilities/media-upload/app-astro/pages/api/wix/media-upload.ts +0 -46
- package/skills/wix-headless-fast/references/shared/rest/client.ts +0 -155
- package/skills/wix-headless-fast/references/shared/rest/config.ts +0 -3
- package/skills/wix-headless-fast/references/shared/rest/media.ts +0 -65
- package/skills/wix-headless-fast/references/shared/seed/images.mjs +0 -145
- package/skills/wix-headless-fast/references/storefront/INSTRUCTIONS.md +0 -608
- package/skills/wix-headless-fast/references/storefront/app/components/storefront/CartButton.tsx +0 -26
- package/skills/wix-headless-fast/references/storefront/app/components/storefront/CartDrawer.tsx +0 -155
- package/skills/wix-headless-fast/references/storefront/app/components/storefront/FilterPanel.tsx +0 -266
- package/skills/wix-headless-fast/references/storefront/app/components/storefront/OptionPicker.tsx +0 -95
- package/skills/wix-headless-fast/references/storefront/app/components/storefront/QuickAdd.tsx +0 -136
- package/skills/wix-headless-fast/references/storefront/app/hooks/storefront/useCart.ts +0 -48
- package/skills/wix-headless-fast/references/storefront/app/hooks/storefront/useProductDetail.ts +0 -39
- package/skills/wix-headless-fast/references/storefront/app/hooks/storefront/useShop.ts +0 -34
- package/skills/wix-headless-fast/references/storefront/app/wix/storefront/cart-core.ts +0 -121
- package/skills/wix-headless-fast/references/storefront/app/wix/storefront/cart-store.ts +0 -107
- package/skills/wix-headless-fast/references/storefront/app/wix/storefront/cart.ts +0 -138
- package/skills/wix-headless-fast/references/storefront/app/wix/storefront/catalog-core.ts +0 -309
- package/skills/wix-headless-fast/references/storefront/app/wix/storefront/catalog.ts +0 -133
- package/skills/wix-headless-fast/references/storefront/app/wix/storefront/product-detail-store.ts +0 -147
- package/skills/wix-headless-fast/references/storefront/app/wix/storefront/shop-store.ts +0 -289
- package/skills/wix-headless-fast/references/storefront/app/wix/storefront/types.ts +0 -167
- package/skills/wix-headless-fast/references/storefront/app-astro/layouts/SiteLayout.astro +0 -65
- package/skills/wix-headless-fast/references/storefront/lock/astro/package-lock.json +0 -12247
- package/skills/wix-headless-fast/references/storefront/rest/cart.ts +0 -132
- package/skills/wix-headless-fast/references/storefront/rest/catalog.ts +0 -123
- package/skills/wix-headless-fast/references/storefront/seed/SEED.md +0 -124
- package/skills/wix-headless-fast/references/storefront/seed/seed-store.mjs +0 -525
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
# Data Collection — declaring the schema
|
|
2
|
+
|
|
3
|
+
> The `fields` and `indexes` you write inside a collection file.
|
|
4
|
+
> [DATA_COLLECTION.md](../DATA_COLLECTION.md) owns scaffolding, the file shape and the CLI
|
|
5
|
+
> constraints.
|
|
6
|
+
|
|
7
|
+
## Field Types
|
|
8
|
+
|
|
9
|
+
| Type | Description | Use Case |
|
|
10
|
+
| ----------------- | -------------------------------- | ---------------------- |
|
|
11
|
+
| `TEXT` | Single-line text | Names, titles |
|
|
12
|
+
| `RICH_TEXT` | Formatted HTML text | Blog content |
|
|
13
|
+
| `RICH_CONTENT` | Rich content with embedded media | Complex blog posts |
|
|
14
|
+
| `NUMBER` | Decimal numbers | Prices, quantities |
|
|
15
|
+
| `BOOLEAN` | True/false | Toggles, flags |
|
|
16
|
+
| `DATE` | Date only | Birthdays |
|
|
17
|
+
| `DATETIME` | Date with time | Timestamps |
|
|
18
|
+
| `TIME` | Time only | Schedules |
|
|
19
|
+
| `IMAGE` | Single image | Thumbnails |
|
|
20
|
+
| `DOCUMENT` | File attachment | PDFs |
|
|
21
|
+
| `VIDEO` | Video file | Media |
|
|
22
|
+
| `AUDIO` | Audio file | Podcasts |
|
|
23
|
+
| `MEDIA_GALLERY` | Multiple media | Galleries |
|
|
24
|
+
| `REFERENCE` | Link to one item | Author → User |
|
|
25
|
+
| `MULTI_REFERENCE` | Link to many items | Post → Tags |
|
|
26
|
+
| `ADDRESS` | Structured address | Locations |
|
|
27
|
+
| `URL` | URL validation | Links |
|
|
28
|
+
| `PAGE_LINK` | Link to Wix page | Internal navigation |
|
|
29
|
+
| `LANGUAGE` | Language code | Multi-language content |
|
|
30
|
+
| `OBJECT` | JSON object | Flexible data |
|
|
31
|
+
| `ARRAY` | Array of values | Generic arrays |
|
|
32
|
+
| `ARRAY_STRING` | Array of strings | Tags list |
|
|
33
|
+
| `ARRAY_DOCUMENT` | Array of documents | File collections |
|
|
34
|
+
| `ANY` | Any type | Most flexible |
|
|
35
|
+
|
|
36
|
+
**CRITICAL: OBJECT fields require `objectOptions` with a `fields` array.** When using `type: "OBJECT"`, you MUST include `objectOptions: { fields: [] }` — the API will reject OBJECT fields without it. Use an empty `fields` array if you don't need a fixed schema (the object will still accept arbitrary JSON):
|
|
37
|
+
|
|
38
|
+
```json
|
|
39
|
+
{
|
|
40
|
+
"key": "settings",
|
|
41
|
+
"displayName": "Settings",
|
|
42
|
+
"type": "OBJECT",
|
|
43
|
+
"objectOptions": { "fields": [] }
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
> ⚠️ `objectOptions: {}` (without the `fields` key) is **not valid** and will cause a runtime error. Always include `fields`, even as an empty array.
|
|
48
|
+
|
|
49
|
+
For structured objects with a defined schema, list the nested fields inside `objectOptions.fields`:
|
|
50
|
+
|
|
51
|
+
```json
|
|
52
|
+
{
|
|
53
|
+
"key": "triggerRules",
|
|
54
|
+
"displayName": "Trigger Rules",
|
|
55
|
+
"type": "OBJECT",
|
|
56
|
+
"objectOptions": {
|
|
57
|
+
"fields": [
|
|
58
|
+
{ "key": "url", "displayName": "URL Condition", "type": "TEXT" },
|
|
59
|
+
{
|
|
60
|
+
"key": "scrollDepth",
|
|
61
|
+
"displayName": "Scroll Depth %",
|
|
62
|
+
"type": "NUMBER"
|
|
63
|
+
},
|
|
64
|
+
{ "key": "dateStart", "displayName": "Start Date", "type": "DATE" }
|
|
65
|
+
]
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Field Properties
|
|
71
|
+
|
|
72
|
+
```ts
|
|
73
|
+
{
|
|
74
|
+
key: 'email', // required, lowerCamelCase ASCII
|
|
75
|
+
type: 'TEXT', // required, see Field Types above
|
|
76
|
+
displayName: 'Email Address', // optional, CMS label
|
|
77
|
+
description: "User's primary email", // optional, help text
|
|
78
|
+
encrypted: false, // optional, encrypt value at rest
|
|
79
|
+
// arrayOptions / objectOptions / referenceOptions / multiReferenceOptions
|
|
80
|
+
// only when type is ARRAY / OBJECT / REFERENCE / MULTI_REFERENCE
|
|
81
|
+
}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
| Property | Required | Description |
|
|
85
|
+
| ------------- | -------- | ------------------------------------ |
|
|
86
|
+
| `key` | yes | Field identifier (lowerCamelCase) |
|
|
87
|
+
| `type` | yes | Field data type (see Field Types) |
|
|
88
|
+
| `displayName` | no | Label shown in CMS |
|
|
89
|
+
| `description` | no | Help text |
|
|
90
|
+
| `encrypted` | no | Encrypt value at rest |
|
|
91
|
+
|
|
92
|
+
**There is no field-level `required`, `defaultValue`, or `unique`.** The `DevCenterDataCollectionField` type does not accept them and TypeScript will reject the build. Use these alternatives instead:
|
|
93
|
+
|
|
94
|
+
- **Required values:** Validate in the dashboard form and/or service-plugin handler before inserting. Do not rely on the collection schema to enforce presence.
|
|
95
|
+
- **Defaults:** Set defaults in the insert path (dashboard handler, service plugin) or via the collection's `initialData` for seeded rows.
|
|
96
|
+
- **Uniqueness:** Declare a unique index in the collection's `indexes` array (see [Indexes](#indexes)). Uniqueness is an index-level concern, not a field-level one.
|
|
97
|
+
|
|
98
|
+
## Indexes
|
|
99
|
+
|
|
100
|
+
**Most collections need no index at all — ship `indexes: []` unless you can name the query that
|
|
101
|
+
needs one.** `_id` and `_createdDate` are indexed automatically, and the budget is small: **3 regular
|
|
102
|
+
indexes, 1 unique, 4 total** (the collection reports its own `capabilities.indexLimits`). "Index the
|
|
103
|
+
field the table sorts by" is not a reason — it spends a slot for a page that would page fine without
|
|
104
|
+
it.
|
|
105
|
+
|
|
106
|
+
When you do add one, it is `{ fields: [{ path, order? }], unique? }` — and **nothing else**. In
|
|
107
|
+
particular there is **no `name`**: the runtime Create Index API takes one, but the extension builder
|
|
108
|
+
does not and the platform derives it (a `date` DESC index arrives as `date_DESC`). Read
|
|
109
|
+
`DevCenterDataCollectionIndex` in the builders package if in doubt; a stray key is a compile error on
|
|
110
|
+
the `satisfies DataCollection` literal.
|
|
111
|
+
|
|
112
|
+
The `indexes` array on the collection accepts entries shaped like:
|
|
113
|
+
|
|
114
|
+
```ts
|
|
115
|
+
indexes: [
|
|
116
|
+
{
|
|
117
|
+
fields: [{ path: 'email', order: 'ASC' }], // order is optional: 'ASC' | 'DESC'
|
|
118
|
+
unique: true, // optional, enforces uniqueness across items
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
fields: [
|
|
122
|
+
{ path: 'category' },
|
|
123
|
+
{ path: '_createdDate', order: 'DESC' },
|
|
124
|
+
],
|
|
125
|
+
},
|
|
126
|
+
],
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
| Property | Required | Description |
|
|
130
|
+
| --------------- | -------- | ------------------------------------------------------ |
|
|
131
|
+
| `fields` | yes | One or more `{ path, order? }` entries (composite index when more than one) |
|
|
132
|
+
| `fields[].path` | yes | Field key to index |
|
|
133
|
+
| `fields[].order`| no | `'ASC'` (default) or `'DESC'` |
|
|
134
|
+
| `unique` | no | Enforce uniqueness on the indexed field(s) |
|
|
135
|
+
|
|
136
|
+
Leave `indexes: []` when no custom indexing is needed; the `_id` index is created automatically.
|
|
137
|
+
|
|
138
|
+
## Naming Conventions
|
|
139
|
+
|
|
140
|
+
- **Field keys:** `lowerCamelCase`, ASCII only (e.g., `productName`, `isActive`, `createdAt`)
|
|
141
|
+
- **Collection IDs (`idSuffix`):** `lower-kebab-case` or `lower_underscore` (e.g., `product-categories`, `blog_posts`)
|
|
142
|
+
- **Display names:** Human-readable, can contain spaces (e.g., `"Product Name"`, `"Is Active"`)
|
|
143
|
+
|
|
144
|
+
## System Fields (Automatic)
|
|
145
|
+
|
|
146
|
+
Every collection includes: `_id`, `_createdDate`, `_updatedDate`, `_owner`
|
|
147
|
+
|
|
148
|
+
## Relationships
|
|
149
|
+
|
|
150
|
+
**One-to-One / Many-to-One (REFERENCE):**
|
|
151
|
+
|
|
152
|
+
```json
|
|
153
|
+
{
|
|
154
|
+
"key": "category",
|
|
155
|
+
"displayName": "Category",
|
|
156
|
+
"type": "REFERENCE",
|
|
157
|
+
"referenceOptions": {
|
|
158
|
+
"referencedCollectionId": "categories"
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
**Many-to-Many (MULTI_REFERENCE):**
|
|
164
|
+
|
|
165
|
+
```json
|
|
166
|
+
{
|
|
167
|
+
"key": "tags",
|
|
168
|
+
"displayName": "Tags",
|
|
169
|
+
"type": "MULTI_REFERENCE",
|
|
170
|
+
"multiReferenceOptions": {
|
|
171
|
+
"referencedCollectionId": "tags"
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
**CRITICAL Constraints:**
|
|
177
|
+
|
|
178
|
+
- REFERENCE/MULTI_REFERENCE fields can ONLY link to other custom CMS collections defined in your app
|
|
179
|
+
- The `referencedCollectionId` MUST be the `idSuffix` of another collection in the same plan
|
|
180
|
+
- **NEVER use REFERENCE fields to link to Wix business entities** (Products, Orders, Contacts, Members, etc.)
|
|
181
|
+
- Use Wix SDK APIs to access Wix business entities instead
|
|
@@ -1,39 +1,27 @@
|
|
|
1
1
|
# Wix Data SDK Reference
|
|
2
2
|
|
|
3
|
-
Complete reference for working with Wix Data collections.
|
|
4
|
-
|
|
5
3
|
## Installation
|
|
6
4
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
npm install @wix/data
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
### Troubleshooting
|
|
14
|
-
|
|
15
|
-
**If you encounter: `Cannot find module '@wix/data'`**
|
|
5
|
+
`@wix/data` must be a dependency before use: `npm install @wix/data`.
|
|
16
6
|
|
|
17
|
-
|
|
18
|
-
✅ **CORRECT**: Install the package using `npm install @wix/data`
|
|
19
|
-
|
|
20
|
-
The `@wix/data` package is a real npm package that provides access to Wix Data collections.
|
|
21
|
-
It must be installed before TypeScript compilation will succeed.
|
|
7
|
+
`Cannot find module '@wix/data'` means it is not installed. Install it — never mock it.
|
|
22
8
|
|
|
23
9
|
## SDK Methods & Interfaces
|
|
24
10
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
|
28
|
-
|
|
|
29
|
-
| `items.
|
|
30
|
-
| `items.
|
|
31
|
-
| `items.
|
|
32
|
-
| `items.
|
|
33
|
-
| `items.
|
|
34
|
-
| `items.
|
|
35
|
-
| `items.
|
|
36
|
-
| `items.
|
|
11
|
+
All of these come from `import { items } from '@wix/data'`.
|
|
12
|
+
|
|
13
|
+
| Method Call | TypeScript Signature | Description |
|
|
14
|
+
| --- | --- | --- |
|
|
15
|
+
| `items.get()` | `(collectionId: string, itemId: string, options?: WixDataGetOptions) => Promise<WixDataItem \| null>` | Get a single item by ID |
|
|
16
|
+
| `items.query()` | `(collectionId: string) => WixDataQuery` | Build a chainable query (call `.find()` to execute) |
|
|
17
|
+
| `items.insert()` | `(collectionId: string, item: Partial<WixDataItem>, options?: WixDataInsertOptions) => Promise<WixDataItem>` | Add a new item to a collection |
|
|
18
|
+
| `items.update()` | `(collectionId: string, item: WixDataItem, options?: WixDataUpdateOptions) => Promise<WixDataItem>` | Replace an existing item (item MUST include `_id`) |
|
|
19
|
+
| `items.save()` | `(collectionId: string, item: Partial<WixDataItem>, options?: WixDataSaveOptions) => Promise<WixDataItem>` | Insert or update (upsert) based on `_id` |
|
|
20
|
+
| `items.remove()` | `(collectionId: string, itemId: string, options?: WixDataRemoveOptions) => Promise<WixDataItem \| null>` | Remove an item by ID |
|
|
21
|
+
| `items.bulkInsert()` | `(collectionId: string, items: Partial<WixDataItem>[], options?: WixDataOptions) => Promise<WixDataBulkResult>` | Insert multiple items (max 1000) |
|
|
22
|
+
| `items.bulkUpdate()` | `(collectionId: string, items: WixDataItem[], options?: WixDataBulkUpdateOptions) => Promise<WixDataBulkResult>` | Update multiple items (max 1000) |
|
|
23
|
+
| `items.bulkRemove()` | `(collectionId: string, itemIds: string[], options?: WixDataBulkRemoveOptions) => Promise<WixDataBulkResult>` | Remove multiple items (max 1000) |
|
|
24
|
+
| `items.filter()` | `() => WixDataFilter` | Create a standalone filter (for use with `.or()`, `.and()`, `.not()`) |
|
|
37
25
|
|
|
38
26
|
## ⚠️ Common Wrong Method Names (DO NOT USE)
|
|
39
27
|
|
|
@@ -67,8 +55,8 @@ interface WixDataItem {
|
|
|
67
55
|
```ts
|
|
68
56
|
interface WixDataResult {
|
|
69
57
|
readonly items: WixDataItem[];
|
|
70
|
-
readonly totalCount: number | undefined; // only when returnTotalCount: true
|
|
71
|
-
readonly totalPages: number | undefined;
|
|
58
|
+
readonly totalCount: number | undefined; // both only when returnTotalCount: true
|
|
59
|
+
readonly totalPages: number | undefined;
|
|
72
60
|
readonly pageSize: number | undefined;
|
|
73
61
|
readonly currentPage: number | undefined;
|
|
74
62
|
readonly length: number;
|
|
@@ -81,7 +69,7 @@ interface WixDataResult {
|
|
|
81
69
|
|
|
82
70
|
### WixDataQuery (returned by `items.query()`)
|
|
83
71
|
|
|
84
|
-
Chainable
|
|
72
|
+
Chainable. Build filters, then `.find()`, `.count()` or `.distinct()`.
|
|
85
73
|
|
|
86
74
|
```ts
|
|
87
75
|
interface WixDataQuery {
|
|
@@ -149,25 +137,9 @@ interface WixDataGetOptions extends WixDataReadOptions {
|
|
|
149
137
|
includeFieldGroups?: string[];
|
|
150
138
|
}
|
|
151
139
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
condition?: WixDataFilter; // only update if condition is met
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
interface WixDataSaveOptions extends WixDataOptions {}
|
|
159
|
-
|
|
160
|
-
interface WixDataRemoveOptions extends WixDataOptions {
|
|
161
|
-
condition?: WixDataFilter; // only remove if condition is met
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
interface WixDataBulkUpdateOptions extends WixDataOptions {
|
|
165
|
-
condition?: WixDataFilter;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
interface WixDataBulkRemoveOptions extends WixDataOptions {
|
|
169
|
-
condition?: WixDataFilter;
|
|
170
|
-
}
|
|
140
|
+
// Insert/Save options add nothing to WixDataOptions.
|
|
141
|
+
// Update/Remove/BulkUpdate/BulkRemove options add an optional guard:
|
|
142
|
+
// condition?: WixDataFilter — only apply when the condition is met
|
|
171
143
|
```
|
|
172
144
|
|
|
173
145
|
### WixDataBulkResult (returned by bulk operations)
|
|
@@ -184,12 +156,8 @@ interface WixDataBulkResult {
|
|
|
184
156
|
removedItemIds: string[];
|
|
185
157
|
}
|
|
186
158
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
code: string;
|
|
190
|
-
originalIndex: number; // index in the request array
|
|
191
|
-
item: WixDataItem | string; // the failed item or ID
|
|
192
|
-
}
|
|
159
|
+
// WixDataBulkError extends Error with `code`, `originalIndex` (position in the
|
|
160
|
+
// request array) and `item` (the failed item or its id).
|
|
193
161
|
```
|
|
194
162
|
|
|
195
163
|
## Usage Examples
|
|
@@ -211,12 +179,18 @@ const result = await items.query("MyCollection")
|
|
|
211
179
|
// result.items: WixDataItem[]
|
|
212
180
|
|
|
213
181
|
// --- Compound query with or/and ---
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
.
|
|
182
|
+
// `or()` COMBINES two filters; it is not a condition. Called on a query or
|
|
183
|
+
// filter that holds no condition yet, it contributes an empty `{}` branch, and
|
|
184
|
+
// `{} OR x` matches the whole collection. Seed with the first condition, `or()`
|
|
185
|
+
// the rest onto it, then `and()` the result onto the query.
|
|
186
|
+
const pendingOrActive = items.filter().eq("status", "pending")
|
|
187
|
+
.or(items.filter().eq("status", "active"));
|
|
188
|
+
const result = await items.query("MyCollection").and(pendingOrActive).find();
|
|
189
|
+
|
|
190
|
+
// ❌ WRONG — or() onto a query holding no condition: matches every row
|
|
191
|
+
items.query("MyCollection").or(filter1).or(filter2);
|
|
192
|
+
// ❌ WRONG — or() onto the query itself: `country` is dropped from branch two
|
|
193
|
+
items.query("MyCollection").eq("country", "IL").contains("name", t).or(filter2);
|
|
220
194
|
|
|
221
195
|
// --- Insert ---
|
|
222
196
|
const created = await items.insert("MyCollection", {
|
|
@@ -249,10 +223,8 @@ const bulkResult = await items.bulkInsert("MyCollection", [
|
|
|
249
223
|
|
|
250
224
|
## Collection Schema Rules
|
|
251
225
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
- Use the schema's exact field types for all operations
|
|
255
|
-
- Custom fields are stored in the `[key: string]: any` part of `WixDataItem`
|
|
226
|
+
Use the collection id, field keys and field types exactly as the schema defines them. Custom fields
|
|
227
|
+
live in the `[key: string]: any` part of `WixDataItem`.
|
|
256
228
|
|
|
257
229
|
## Permissions
|
|
258
230
|
|
|
@@ -221,7 +221,7 @@ export default function PluginSettingsPage() {
|
|
|
221
221
|
|
|
222
222
|
## Wix Data API Integration
|
|
223
223
|
|
|
224
|
-
When using Wix Data API in plugins, handle the Wix Editor environment
|
|
224
|
+
When using Wix Data API in plugins, handle the Wix Editor environment. This example imports `@wix/site-window` — install it first (`npm install @wix/site-window`), since it's not part of the CLI's default scaffolded `package.json`:
|
|
225
225
|
|
|
226
226
|
```typescript
|
|
227
227
|
import { items } from "@wix/data";
|