@wix/agent-skills 1.35.1 → 1.36.1
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 +8 -3
- package/skills/wix-app/references/CODE_QUALITY.md +1 -1
- package/skills/wix-app/references/EDITOR_REACT_COMPONENT.md +27 -29
- package/skills/wix-app/references/editor-react-component/ANIMATED-COMPONENTS.md +1 -1
- package/skills/wix-app/references/editor-react-component/COMPONENT-CONTRACT.md +26 -25
- package/skills/wix-app/references/editor-react-component/CSS-GUIDELINES.md +12 -42
- package/skills/wix-app/references/editor-react-component/DESIGN-STATES.md +9 -20
- package/skills/wix-app/references/editor-react-component/MANIFEST-ERRORS.md +5 -4
- package/skills/wix-app/references/editor-react-component/PARTS.md +1 -1
- package/skills/wix-app/references/editor-react-component/PROPS-VS-CSS.md +1 -1
- package/skills/wix-app/references/editor-react-component/VECTOR-ART.md +95 -0
- package/skills/wix-app/references/editor-react-component/VISUAL-QUALITY.md +39 -0
- package/skills/wix-docs/references/CALLING.md +1 -1
- package/skills/wix-headless-kit/guides/api-run.md +1 -1
- package/skills/wix-headless-kit/install/pins.json +1 -1
- package/skills/wix-headless-templates/blog/seed/seed-blog.mjs +1 -1
- package/skills/wix-headless-templates/donations/app/wix/donations/campaigns.ts +0 -1
- package/skills/wix-headless-templates/donations/app/wix/donations/donate.ts +1 -1
- package/skills/wix-headless-templates/donations/project/src/wix/donations/campaigns.ts +0 -1
- package/skills/wix-headless-templates/donations/project/src/wix/donations/donate.ts +1 -1
- package/skills/wix-headless-templates/donations/rest/campaigns.ts +0 -1
- package/skills/wix-headless-templates/donations/rest/donate.ts +1 -1
- package/skills/wix-headless-templates/events/seed/seed-events.mjs +1 -1
- package/skills/wix-headless-templates/faq/INSTRUCTIONS.md +1 -1
- package/skills/wix-headless-templates/faq/app/wix/faq/faq.ts +2 -2
- package/skills/wix-headless-templates/faq/project/src/wix/faq/faq.ts +2 -2
- package/skills/wix-headless-templates/faq/rest/faq.ts +2 -2
- package/skills/wix-headless-templates/faq/seed/SEED.md +1 -1
- package/skills/wix-headless-templates/faq/seed/read-site.mjs +1 -1
- package/skills/wix-headless-templates/faq/seed/seed-faq.mjs +5 -5
- package/skills/wix-headless-templates/forms/app/wix/forms/forms.ts +2 -2
- package/skills/wix-headless-templates/forms/app/wix/forms/submissions.ts +2 -2
- package/skills/wix-headless-templates/forms/project/src/wix/forms/forms.ts +2 -2
- package/skills/wix-headless-templates/forms/project/src/wix/forms/submissions.ts +2 -2
- package/skills/wix-headless-templates/members/seed/read-site.mjs +1 -1
- package/skills/wix-headless-templates/pricing-plans/app/wix/pricing-plans/plan-access.ts +1 -1
- package/skills/wix-headless-templates/pricing-plans/project/src/wix/pricing-plans/plan-access.ts +1 -1
- package/skills/wix-headless-templates/pricing-plans/rest/plan-access.ts +1 -1
- package/skills/wix-headless-templates/restaurants/app/wix/restaurants/menu.ts +0 -1
- package/skills/wix-headless-templates/restaurants/project/src/wix/restaurants/menu.ts +0 -1
- package/skills/wix-headless-templates/restaurants/rest/menu.ts +0 -1
- package/skills/wix-headless-templates/shared/rest/client.ts +1 -1
- package/skills/wix-headless-templates/shared/seed/site.mjs +2 -1
- package/skills/wix-manage/SKILL.md +3 -3
- package/skills/wix-manage/references/cms/cms-data-items-crud.md +78 -1
- package/skills/wix-manage/references/google-ads/create-performance-max-campaign.md +11 -11
- package/skills/wix-manage/references/google-ads/get-campaign-suggestions.md +0 -1
- package/skills/wix-manage/references/google-ads/install-and-create-account.md +0 -1
- package/skills/wix-manage/references/marketing/create-and-publish-social-post.md +20 -51
- package/skills/wix-manage/references/marketing/generate-and-publish-marketing-plan.md +4 -4
- package/skills/wix-manage/references/rich-content/ricos-converter-service.md +1 -1
- package/skills/wix-base44-connector/SKILL.md +0 -437
- package/skills/wix-base44-connector/references/CAPABILITY_MAP.md +0 -78
- package/skills/wix-base44-connector/scripts/utils.cjs +0 -466
- package/skills/wix-export/SKILL.md +0 -83
- package/skills/wix-harmony-editor/.publish-manifest.json +0 -8
- package/skills/wix-harmony-editor/COPY-SITE.md +0 -494
- package/skills/wix-harmony-editor/SKILL.md +0 -317
- package/skills/wix-harmony-editor/scripts/copy/build-description.mjs +0 -249
- package/skills/wix-harmony-editor/scripts/copy/check-description.mjs +0 -225
- package/skills/wix-harmony-editor/scripts/copy/check-mirror.mjs +0 -89
- package/skills/wix-harmony-editor/scripts/copy/compare-preview.mjs +0 -76
- package/skills/wix-harmony-editor/scripts/copy/deploy-description.mjs +0 -212
- package/skills/wix-harmony-editor/scripts/copy/desc-hash.mjs +0 -44
- package/skills/wix-harmony-editor/scripts/copy/editor-run.mjs +0 -45
- package/skills/wix-harmony-editor/scripts/copy/export-page.mjs +0 -53
- package/skills/wix-harmony-editor/scripts/copy/find-interactions.mjs +0 -76
- package/skills/wix-harmony-editor/scripts/copy/hide-scrollbars.mjs +0 -16
- package/skills/wix-harmony-editor/scripts/copy/import-media.mjs +0 -150
- package/skills/wix-harmony-editor/scripts/copy/link-url.mjs +0 -27
- package/skills/wix-harmony-editor/scripts/copy/lint-api.mjs +0 -56
- package/skills/wix-harmony-editor/scripts/copy/measure-source.mjs +0 -211
- package/skills/wix-harmony-editor/scripts/copy/merge-mirrors.mjs +0 -29
- package/skills/wix-harmony-editor/scripts/copy/mirror-site.mjs +0 -92
- package/skills/wix-harmony-editor/scripts/copy/mobile-stage.mjs +0 -56
- package/skills/wix-harmony-editor/scripts/copy/preview-widths.mjs +0 -73
- package/skills/wix-harmony-editor/scripts/copy/render-plate.mjs +0 -67
- package/skills/wix-harmony-editor/scripts/copy/serve-mirror.mjs +0 -102
- package/skills/wix-harmony-editor/scripts/copy/snapshot-capabilities.mjs +0 -40
- package/skills/wix-harmony-editor/scripts/copy/split-sections.mjs +0 -191
- package/skills/wix-harmony-editor/scripts/copy/upload-media-manager.mjs +0 -61
- package/skills/wix-harmony-editor/scripts/launch.sh +0 -359
- package/skills/wix-headless/SKILL.md +0 -151
- package/skills/wix-headless/references/AI_FEATURES.md +0 -178
- package/skills/wix-headless/references/CAPABILITIES.md +0 -117
- package/skills/wix-headless/references/CONTENT.md +0 -36
- package/skills/wix-headless/references/DESIGN.md +0 -55
- package/skills/wix-headless/references/DISCOVERY.md +0 -80
- package/skills/wix-headless/references/DOC_DISCOVERY.md +0 -43
- package/skills/wix-headless/references/FEEDBACK.md +0 -129
- package/skills/wix-headless/references/IMAGE_GENERATION.md +0 -80
- package/skills/wix-headless/references/SDK_HANDOFF.md +0 -108
- package/skills/wix-headless/references/SEED.md +0 -74
- package/skills/wix-headless/references/SETUP.md +0 -60
- package/skills/wix-headless/references/astro.md +0 -98
- package/skills/wix-headless/references/inline-recipes/experience-donations.md +0 -102
- package/skills/wix-headless/references/inline-recipes/experience-store.md +0 -49
- package/skills/wix-headless/references/inline-recipes/how-to-code-a-blog.md +0 -196
- package/skills/wix-headless/references/inline-recipes/how-to-code-a-store.md +0 -590
- package/skills/wix-headless/references/inline-recipes/how-to-code-bookings.md +0 -279
- package/skills/wix-headless/references/inline-recipes/how-to-code-cms.md +0 -163
- package/skills/wix-headless/references/inline-recipes/how-to-code-donations.md +0 -146
- package/skills/wix-headless/references/inline-recipes/how-to-code-events.md +0 -203
- package/skills/wix-headless/references/inline-recipes/how-to-code-forms.md +0 -696
- package/skills/wix-headless/references/inline-recipes/how-to-code-members-astro.md +0 -124
- package/skills/wix-headless/references/inline-recipes/how-to-code-members-custom-login.md +0 -160
- package/skills/wix-headless/references/inline-recipes/how-to-code-members-non-astro.md +0 -118
- package/skills/wix-headless/references/inline-recipes/how-to-code-portfolio.md +0 -132
- package/skills/wix-headless/references/inline-recipes/how-to-code-pricing-plans.md +0 -126
- package/skills/wix-headless/references/inline-recipes/how-to-code-rentals.md +0 -254
- package/skills/wix-headless/references/inline-recipes/how-to-code-restaurant-orders.md +0 -191
- package/skills/wix-headless/references/inline-recipes/how-to-code-restaurant-reservations.md +0 -213
- package/skills/wix-headless/references/inline-recipes/how-to-code-restaurants.md +0 -161
- package/skills/wix-headless/references/inline-recipes/setup-blog.md +0 -175
- package/skills/wix-headless/references/inline-recipes/setup-bookings.md +0 -232
- package/skills/wix-headless/references/inline-recipes/setup-cms.md +0 -200
- package/skills/wix-headless/references/inline-recipes/setup-donations.md +0 -15
- package/skills/wix-headless/references/inline-recipes/setup-events.md +0 -196
- package/skills/wix-headless/references/inline-recipes/setup-forms.md +0 -288
- package/skills/wix-headless/references/inline-recipes/setup-online-store.md +0 -214
- package/skills/wix-headless/references/inline-recipes/setup-portfolio.md +0 -155
- package/skills/wix-headless/references/inline-recipes/setup-pricing-plans.md +0 -229
- package/skills/wix-headless/references/inline-recipes/setup-rentals.md +0 -254
- package/skills/wix-headless/references/inline-recipes/setup-restaurant-experiences.md +0 -73
- package/skills/wix-headless/references/inline-recipes/setup-restaurant-orders.md +0 -197
- package/skills/wix-headless/references/inline-recipes/setup-restaurant-reservations.md +0 -136
- package/skills/wix-headless/references/inline-recipes/setup-restaurants.md +0 -152
- package/skills/wix-headless/references/managed/AUTHENTICATION.md +0 -71
- package/skills/wix-headless/references/managed/CONNECT.md +0 -74
- package/skills/wix-headless/references/managed/CREATE.md +0 -149
- package/skills/wix-headless/references/managed/DEPLOYMENT.md +0 -104
- package/skills/wix-headless/references/non-astro.md +0 -59
- package/skills/wix-headless/references/self-managed/AUTHENTICATION.md +0 -22
- package/skills/wix-headless/references/self-managed/DEPLOYMENT.md +0 -15
- package/skills/wix-headless/references/stripe/AUTHENTICATION.md +0 -55
- package/skills/wix-headless/references/stripe/DEPLOYMENT.md +0 -71
- package/skills/wix-headless/scripts/bootstrap.mjs +0 -156
- package/skills/wix-headless-replatform/.publish-manifest.json +0 -8
- package/skills/wix-headless-replatform/SKILL.md +0 -116
- package/skills/wix-headless-replatform/agents/openai.yaml +0 -6
- package/skills/wix-headless-replatform/references/control-and-visual-fidelity-contract.md +0 -43
- package/skills/wix-headless-replatform/references/extraction-schema.md +0 -187
- package/skills/wix-headless-replatform/references/interaction-runtime-contract.md +0 -137
- package/skills/wix-headless-replatform/references/layout-blueprint-contract.md +0 -41
- package/skills/wix-headless-replatform/references/output-contract.md +0 -93
- package/skills/wix-headless-replatform/references/post-build-gap-contract.md +0 -125
- package/skills/wix-headless-replatform/references/qa-checklist.md +0 -83
- package/skills/wix-headless-replatform/references/safety.md +0 -19
- package/skills/wix-headless-replatform/references/ui-normalization-contract.md +0 -70
- package/skills/wix-headless-replatform/references/workflow.md +0 -157
- package/skills/wix-headless-replatform/registry/README.md +0 -20
- package/skills/wix-headless-replatform/registry/approvals/button/shadcn-default-ac60ef5.json +0 -28
- package/skills/wix-headless-replatform/registry/items/button/shadcn-default-ac60ef5/button.tsx +0 -54
- package/skills/wix-headless-replatform/registry/items/button/shadcn-default-ac60ef5/capabilities.json +0 -60
- package/skills/wix-headless-replatform/registry/items/button/shadcn-default-ac60ef5/contract.md +0 -48
- package/skills/wix-headless-replatform/registry/licenses/shadcn-ui-ac60ef5-MIT.txt +0 -21
- package/skills/wix-headless-replatform/registry/registry.json +0 -36
- package/skills/wix-headless-replatform/resources/rp-facelift/SKILL.md +0 -32
- package/skills/wix-headless-replatform/resources/rp-project-context/SKILL.md +0 -62
- package/skills/wix-headless-replatform/resources/rp-qa-gap-loop/SKILL.md +0 -64
- package/skills/wix-headless-replatform/resources/rp-source-evidence/SKILL.md +0 -42
- package/skills/wix-headless-replatform/resources/rp-ui-implementation/SKILL.md +0 -73
- package/skills/wix-headless-replatform/schemas/build-plan.schema.json +0 -10
- package/skills/wix-headless-replatform/schemas/candidate.schema.json +0 -19
- package/skills/wix-headless-replatform/schemas/common.schema.json +0 -33
- package/skills/wix-headless-replatform/schemas/decision-patch.schema.json +0 -10
- package/skills/wix-headless-replatform/schemas/decision-request.schema.json +0 -10
- package/skills/wix-headless-replatform/schemas/extraction-gap.schema.json +0 -28
- package/skills/wix-headless-replatform/schemas/extraction-manifest.schema.json +0 -34
- package/skills/wix-headless-replatform/schemas/final-report.schema.json +0 -10
- package/skills/wix-headless-replatform/schemas/foundation.schema.json +0 -11
- package/skills/wix-headless-replatform/schemas/metadata.schema.json +0 -11
- package/skills/wix-headless-replatform/schemas/observation-packet.schema.json +0 -17
- package/skills/wix-headless-replatform/schemas/page-capture.schema.json +0 -11
- package/skills/wix-headless-replatform/schemas/page-resolution.schema.json +0 -33
- package/skills/wix-headless-replatform/schemas/shared-chrome.schema.json +0 -11
- package/skills/wix-headless-replatform/schemas/unit.schema.json +0 -40
- package/skills/wix-headless-replatform/scripts/assemble-extraction.mjs +0 -844
- package/skills/wix-headless-replatform/scripts/benchmark-extraction.mjs +0 -163
- package/skills/wix-headless-replatform/scripts/browser-extraction-preflight.mjs +0 -42
- package/skills/wix-headless-replatform/scripts/build-extracted-homepage.mjs +0 -228
- package/skills/wix-headless-replatform/scripts/clear-wix-starter.mjs +0 -87
- package/skills/wix-headless-replatform/scripts/create-wix-project.mjs +0 -505
- package/skills/wix-headless-replatform/scripts/discover-urls.mjs +0 -142
- package/skills/wix-headless-replatform/scripts/extract-assets.mjs +0 -140
- package/skills/wix-headless-replatform/scripts/extract-design-system.mjs +0 -637
- package/skills/wix-headless-replatform/scripts/extract-interactions.mjs +0 -1903
- package/skills/wix-headless-replatform/scripts/extract-page.mjs +0 -2461
- package/skills/wix-headless-replatform/scripts/extract-seo.mjs +0 -25
- package/skills/wix-headless-replatform/scripts/extract-tokens.mjs +0 -63
- package/skills/wix-headless-replatform/scripts/finalize-extraction-report.mjs +0 -126
- package/skills/wix-headless-replatform/scripts/finalize-gap-review.mjs +0 -180
- package/skills/wix-headless-replatform/scripts/finalize-gap-review.test.mjs +0 -98
- package/skills/wix-headless-replatform/scripts/finalize-migration-website.mjs +0 -103
- package/skills/wix-headless-replatform/scripts/generate-control-state-contract.mjs +0 -176
- package/skills/wix-headless-replatform/scripts/generate-design-md.mjs +0 -261
- package/skills/wix-headless-replatform/scripts/generate-extraction-validators.mjs +0 -25
- package/skills/wix-headless-replatform/scripts/generate-invoice-download-backend.mjs +0 -342
- package/skills/wix-headless-replatform/scripts/generate-layout-blueprint.mjs +0 -140
- package/skills/wix-headless-replatform/scripts/generate-repeater-cms.mjs +0 -22
- package/skills/wix-headless-replatform/scripts/generate-route-plan.mjs +0 -143
- package/skills/wix-headless-replatform/scripts/generate-scene-contract.mjs +0 -288
- package/skills/wix-headless-replatform/scripts/generate-ui-normalization.mjs +0 -266
- package/skills/wix-headless-replatform/scripts/generate-visual-assets.mjs +0 -111
- package/skills/wix-headless-replatform/scripts/lib/browser-tooling.mjs +0 -570
- package/skills/wix-headless-replatform/scripts/lib/common.mjs +0 -329
- package/skills/wix-headless-replatform/scripts/lib/component-capabilities.mjs +0 -121
- package/skills/wix-headless-replatform/scripts/lib/component-registry.mjs +0 -282
- package/skills/wix-headless-replatform/scripts/lib/content-boundary.mjs +0 -61
- package/skills/wix-headless-replatform/scripts/lib/extraction-contract.mjs +0 -374
- package/skills/wix-headless-replatform/scripts/lib/extraction-detectors.mjs +0 -243
- package/skills/wix-headless-replatform/scripts/lib/extraction-validators.generated.mjs +0 -1139
- package/skills/wix-headless-replatform/scripts/lib/font-contract.mjs +0 -326
- package/skills/wix-headless-replatform/scripts/lib/frontend-automation-state.mjs +0 -184
- package/skills/wix-headless-replatform/scripts/lib/gap-analysis.mjs +0 -396
- package/skills/wix-headless-replatform/scripts/lib/html-extract.mjs +0 -168
- package/skills/wix-headless-replatform/scripts/lib/interaction-bootstrap.mjs +0 -10
- package/skills/wix-headless-replatform/scripts/lib/interaction-runtime.mjs +0 -194
- package/skills/wix-headless-replatform/scripts/lib/interaction-timeline.mjs +0 -348
- package/skills/wix-headless-replatform/scripts/lib/layout-blueprint/classifiers.mjs +0 -141
- package/skills/wix-headless-replatform/scripts/lib/layout-blueprint/geometry.mjs +0 -43
- package/skills/wix-headless-replatform/scripts/lib/layout-blueprint/vocabulary.mjs +0 -18
- package/skills/wix-headless-replatform/scripts/lib/ui-normalization.css +0 -64
- package/skills/wix-headless-replatform/scripts/optimize-svg.mjs +0 -31
- package/skills/wix-headless-replatform/scripts/post-build-gap.mjs +0 -358
- package/skills/wix-headless-replatform/scripts/provision-repeater-cms.mjs +0 -25
- package/skills/wix-headless-replatform/scripts/record-gap-decision.mjs +0 -39
- package/skills/wix-headless-replatform/scripts/replay-extraction.mjs +0 -107
- package/skills/wix-headless-replatform/scripts/resolve-home-page.mjs +0 -96
- package/skills/wix-headless-replatform/scripts/site-clone.mjs +0 -658
- package/skills/wix-headless-replatform/scripts/validate-font-contract.mjs +0 -29
- package/skills/wix-headless-replatform/scripts/verify-interactions.mjs +0 -669
- package/skills/wix-headless-replatform/scripts/visual-qa.mjs +0 -370
- package/skills/wix-import/SKILL.md +0 -90
- package/skills/wix-replatform/.publish-manifest.json +0 -8
- package/skills/wix-replatform/CLI.md +0 -162
- package/skills/wix-replatform/README.md +0 -52
- package/skills/wix-replatform/SKILL.md +0 -238
- package/skills/wix-replatform/console/account.css +0 -1
- package/skills/wix-replatform/console/app.css +0 -1
- package/skills/wix-replatform/console/app.js +0 -117
- package/skills/wix-replatform/console/index.html +0 -4
- package/skills/wix-replatform/console/json.css +0 -11
- package/skills/wix-replatform/lib/agent-adapters/index.js +0 -71
- package/skills/wix-replatform/lib/app-page-routing.js +0 -75
- package/skills/wix-replatform/lib/artifact-freshness.js +0 -225
- package/skills/wix-replatform/lib/blocked-data-requests.js +0 -427
- package/skills/wix-replatform/lib/census-reconciliation.js +0 -426
- package/skills/wix-replatform/lib/completion-report.js +0 -1580
- package/skills/wix-replatform/lib/config-env.js +0 -133
- package/skills/wix-replatform/lib/confirmed-pictures.js +0 -212
- package/skills/wix-replatform/lib/dependency-readiness.js +0 -423
- package/skills/wix-replatform/lib/dependency-recovery.js +0 -21
- package/skills/wix-replatform/lib/destination-choice.js +0 -163
- package/skills/wix-replatform/lib/destination-handoff.js +0 -62
- package/skills/wix-replatform/lib/destination-http.js +0 -81
- package/skills/wix-replatform/lib/destination-route.js +0 -98
- package/skills/wix-replatform/lib/destination.js +0 -919
- package/skills/wix-replatform/lib/discovered-census.js +0 -231
- package/skills/wix-replatform/lib/discovered-set-status.js +0 -255
- package/skills/wix-replatform/lib/document-url-guard.js +0 -203
- package/skills/wix-replatform/lib/entity-qa-attestation.js +0 -339
- package/skills/wix-replatform/lib/entity-verification.js +0 -18
- package/skills/wix-replatform/lib/execution-capability.js +0 -120
- package/skills/wix-replatform/lib/execution-log.js +0 -170
- package/skills/wix-replatform/lib/execution-manifest.js +0 -203
- package/skills/wix-replatform/lib/execution-state.js +0 -195
- package/skills/wix-replatform/lib/expectations-ledger.js +0 -96
- package/skills/wix-replatform/lib/generated-plugin-handoff.js +0 -140
- package/skills/wix-replatform/lib/import-readiness-contract.js +0 -23
- package/skills/wix-replatform/lib/import-recovery.js +0 -1107
- package/skills/wix-replatform/lib/imported-redirect-targets.js +0 -608
- package/skills/wix-replatform/lib/internal-link-reconciliation.js +0 -166
- package/skills/wix-replatform/lib/link-audit.js +0 -173
- package/skills/wix-replatform/lib/link-census.js +0 -194
- package/skills/wix-replatform/lib/link-plan.js +0 -148
- package/skills/wix-replatform/lib/link-verification.js +0 -274
- package/skills/wix-replatform/lib/link-write-journal.js +0 -42
- package/skills/wix-replatform/lib/local-state.js +0 -1481
- package/skills/wix-replatform/lib/member-completion.js +0 -658
- package/skills/wix-replatform/lib/member-crosswalk.js +0 -69
- package/skills/wix-replatform/lib/member-outcome-registry.js +0 -265
- package/skills/wix-replatform/lib/migration-completion.js +0 -311
- package/skills/wix-replatform/lib/operator-identity.js +0 -47
- package/skills/wix-replatform/lib/orchestration-decisions.js +0 -248
- package/skills/wix-replatform/lib/orchestration-preflight.js +0 -525
- package/skills/wix-replatform/lib/orchestration-router.js +0 -698
- package/skills/wix-replatform/lib/orchestration-state.js +0 -631
- package/skills/wix-replatform/lib/order-reference-readiness.js +0 -30
- package/skills/wix-replatform/lib/payments-outcome-registry.js +0 -200
- package/skills/wix-replatform/lib/plugin-cms-fallback.js +0 -618
- package/skills/wix-replatform/lib/preservation-approval-stamp.js +0 -54
- package/skills/wix-replatform/lib/product-media-deferral.js +0 -96
- package/skills/wix-replatform/lib/progress-log.js +0 -240
- package/skills/wix-replatform/lib/progress-log.sh +0 -140
- package/skills/wix-replatform/lib/read-back-approval.js +0 -184
- package/skills/wix-replatform/lib/read-back-comparison.js +0 -136
- package/skills/wix-replatform/lib/read-back-contract.js +0 -243
- package/skills/wix-replatform/lib/read-back-extract.js +0 -118
- package/skills/wix-replatform/lib/read-back-gate.js +0 -734
- package/skills/wix-replatform/lib/read-back-reads.js +0 -94
- package/skills/wix-replatform/lib/read-back-state.js +0 -107
- package/skills/wix-replatform/lib/read-back-summary.js +0 -81
- package/skills/wix-replatform/lib/rerun-conflicts.js +0 -334
- package/skills/wix-replatform/lib/run-controller.js +0 -401
- package/skills/wix-replatform/lib/seo-outcome-registry.js +0 -45
- package/skills/wix-replatform/lib/setup-verification.js +0 -148
- package/skills/wix-replatform/lib/source-access.js +0 -231
- package/skills/wix-replatform/lib/source-coverage.js +0 -1130
- package/skills/wix-replatform/lib/source-secrets.js +0 -277
- package/skills/wix-replatform/lib/structured-link-patch.js +0 -59
- package/skills/wix-replatform/lib/task-state.js +0 -110
- package/skills/wix-replatform/lib/url-preservation-report.js +0 -319
- package/skills/wix-replatform/lib/url-preservation-state.js +0 -739
- package/skills/wix-replatform/lib/url-redirect-plan.js +0 -728
- package/skills/wix-replatform/lib/url-verification.js +0 -315
- package/skills/wix-replatform/lib/user-action-effects.js +0 -42
- package/skills/wix-replatform/lib/user-actions.js +0 -264
- package/skills/wix-replatform/lib/website-handoff.js +0 -1220
- package/skills/wix-replatform/lib/wix-client-callers.js +0 -54
- package/skills/wix-replatform/lib/wix-dashboard-url.js +0 -35
- package/skills/wix-replatform/lib/write-verification-state.js +0 -92
- package/skills/wix-replatform/lib/write-verification.js +0 -274
- package/skills/wix-replatform/resources/rp-destination/SKILL.md +0 -137
- package/skills/wix-replatform/resources/rp-discovery/SKILL.md +0 -357
- package/skills/wix-replatform/resources/rp-discovery/scripts/promote-source-coverage.js +0 -47
- package/skills/wix-replatform/resources/rp-execute-import/SKILL.md +0 -1369
- package/skills/wix-replatform/resources/rp-execute-import/scripts/shipping-estimate-audit.js +0 -70
- package/skills/wix-replatform/resources/rp-execute-setup/SKILL.md +0 -482
- package/skills/wix-replatform/resources/rp-execute-setup/scripts/execute-setup.js +0 -442
- package/skills/wix-replatform/resources/rp-execute-setup/scripts/mint-token.sh +0 -64
- package/skills/wix-replatform/resources/rp-execution-policy/SKILL.md +0 -112
- package/skills/wix-replatform/resources/rp-execution-policy/lib/coupon-currency-plan-report.js +0 -143
- package/skills/wix-replatform/resources/rp-execution-policy/lib/payments-report.js +0 -244
- package/skills/wix-replatform/resources/rp-import-codegen/SKILL.md +0 -3158
- package/skills/wix-replatform/resources/rp-mapper/SKILL.md +0 -947
- package/skills/wix-replatform/resources/rp-mapper/lib/mapping-resolve.js +0 -217
- package/skills/wix-replatform/resources/rp-mapper/lib/structure-bridge-planning.js +0 -303
- package/skills/wix-replatform/resources/rp-mapper/scripts/coverage-reconcile.js +0 -88
- package/skills/wix-replatform/resources/rp-mapper/scripts/resolve-mapping.js +0 -148
- package/skills/wix-replatform/resources/rp-mapper/wix-business-solutions-taxonomy.md +0 -378
- package/skills/wix-replatform/resources/rp-preflight/SKILL.md +0 -40
- package/skills/wix-replatform/resources/rp-project-intake/SKILL.md +0 -55
- package/skills/wix-replatform/resources/rp-quick-runtime/SKILL.md +0 -60
- package/skills/wix-replatform/resources/rp-quick-runtime/lib/import-progress.js +0 -89
- package/skills/wix-replatform/resources/rp-quick-runtime/lib/limit-recovery.js +0 -36
- package/skills/wix-replatform/resources/rp-quick-shopify/SKILL.md +0 -123
- package/skills/wix-replatform/resources/rp-quick-shopify/quick-mode.json +0 -124
- package/skills/wix-replatform/resources/rp-quick-shopify/scripts/quick-mode.js +0 -522
- package/skills/wix-replatform/resources/rp-quick-woocommerce/SKILL.md +0 -56
- package/skills/wix-replatform/resources/rp-quick-woocommerce/quick-mode.json +0 -91
- package/skills/wix-replatform/resources/rp-quick-woocommerce/scripts/quick-mode.js +0 -255
- package/skills/wix-replatform/resources/rp-setup-discovery/SKILL.md +0 -253
- package/skills/wix-replatform/resources/rp-setup-discovery/scripts/quick-setup-plan.js +0 -44
- package/skills/wix-replatform/resources/rp-source-csv/SKILL.md +0 -481
- package/skills/wix-replatform/resources/rp-source-csv/lib/canonical-record.js +0 -136
- package/skills/wix-replatform/resources/rp-source-csv/lib/csv-fileset.js +0 -0
- package/skills/wix-replatform/resources/rp-source-csv/lib/csv-fingerprint.js +0 -310
- package/skills/wix-replatform/resources/rp-source-csv/lib/csv-layout.js +0 -1081
- package/skills/wix-replatform/resources/rp-source-csv/lib/csv-parse.js +0 -618
- package/skills/wix-replatform/resources/rp-source-csv/scripts/csv-discovery.js +0 -969
- package/skills/wix-replatform/resources/rp-source-csv/source-schema.example.json +0 -196
- package/skills/wix-replatform/resources/rp-source-csv/vendors/bigcommerce.json +0 -66
- package/skills/wix-replatform/resources/rp-source-csv/vendors/magento.json +0 -60
- package/skills/wix-replatform/resources/rp-source-csv/vendors/shopify.json +0 -95
- package/skills/wix-replatform/resources/rp-source-csv/vendors/woocommerce.json +0 -82
- package/skills/wix-replatform/resources/rp-source-inputs/SKILL.md +0 -66
- package/skills/wix-replatform/resources/rp-source-sfcc/SKILL.md +0 -153
- package/skills/wix-replatform/resources/rp-source-shopify/SKILL.md +0 -394
- package/skills/wix-replatform/resources/rp-source-shopify/lib/discovery-reads.js +0 -200
- package/skills/wix-replatform/resources/rp-source-shopify/lib/import-findings.js +0 -34
- package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-bulk-sqlite-worker.js +0 -44
- package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-bulk.js +0 -1470
- package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-cli.js +0 -446
- package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-gift-cards.js +0 -474
- package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-protected-fields.js +0 -879
- package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-session.js +0 -426
- package/skills/wix-replatform/resources/rp-source-shopify/queries/articles.graphql +0 -24
- package/skills/wix-replatform/resources/rp-source-shopify/queries/blogs.graphql +0 -18
- package/skills/wix-replatform/resources/rp-source-shopify/queries/collections.graphql +0 -40
- package/skills/wix-replatform/resources/rp-source-shopify/queries/customers.graphql +0 -76
- package/skills/wix-replatform/resources/rp-source-shopify/queries/delivery-profiles.graphql +0 -51
- package/skills/wix-replatform/resources/rp-source-shopify/queries/discounts.graphql +0 -35
- package/skills/wix-replatform/resources/rp-source-shopify/queries/files.graphql +0 -20
- package/skills/wix-replatform/resources/rp-source-shopify/queries/gift-cards.graphql +0 -18
- package/skills/wix-replatform/resources/rp-source-shopify/queries/inventory.graphql +0 -31
- package/skills/wix-replatform/resources/rp-source-shopify/queries/locations.graphql +0 -21
- package/skills/wix-replatform/resources/rp-source-shopify/queries/menus.graphql +0 -21
- package/skills/wix-replatform/resources/rp-source-shopify/queries/metaobjects.graphql +0 -30
- package/skills/wix-replatform/resources/rp-source-shopify/queries/orders-core.graphql +0 -150
- package/skills/wix-replatform/resources/rp-source-shopify/queries/orders-fulfillments.graphql +0 -36
- package/skills/wix-replatform/resources/rp-source-shopify/queries/orders-refunds.graphql +0 -48
- package/skills/wix-replatform/resources/rp-source-shopify/queries/pages.graphql +0 -20
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-customers-address.graphql +0 -8
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-customers-email.graphql +0 -6
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-customers-name.graphql +0 -8
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-customers-phone.graphql +0 -8
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-orders-address.graphql +0 -12
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-orders-email.graphql +0 -6
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-orders-name.graphql +0 -13
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-orders-phone.graphql +0 -13
- package/skills/wix-replatform/resources/rp-source-shopify/queries/products.graphql +0 -73
- package/skills/wix-replatform/resources/rp-source-shopify/queries/url-redirects.graphql +0 -13
- package/skills/wix-replatform/resources/rp-source-shopify/scripts/shopify-discovery.js +0 -693
- package/skills/wix-replatform/resources/rp-source-shopify/scripts/shopify-extract.js +0 -283
- package/skills/wix-replatform/resources/rp-source-shopify/scripts/shopify-gift-card-remedy.js +0 -191
- package/skills/wix-replatform/resources/rp-source-shopify/scripts/shopify-session-check.js +0 -115
- package/skills/wix-replatform/resources/rp-source-shopify/source-schema.example.json +0 -201
- package/skills/wix-replatform/resources/rp-source-wordpress/PLUGIN-READ-PLANS.md +0 -146
- package/skills/wix-replatform/resources/rp-source-wordpress/SKILL.md +0 -970
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/blocked-data-handlers.js +0 -73
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/checkout-field-csv-parser.js +0 -115
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/checkout-field-csv-parser.test-fixture.js +0 -91
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/coupon-discovery.js +0 -440
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/currency-gate.js +0 -125
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/gateway-source-keys.js +0 -252
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/gateway-source-keys.json +0 -183
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/gateway-summary.mjs +0 -333
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/invoice-discovery.js +0 -426
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/plugin-disposition.js +0 -400
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/plugin-entity-read-plan.js +0 -633
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/plugin-knowledge.js +0 -1127
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/refund-corroboration.js +0 -194
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/refund-corroboration.json +0 -100
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/sampled-ids-batch.js +0 -157
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/secret-value-guard.js +0 -234
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/store-currency.js +0 -101
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/structure-bridge-reader.js +0 -755
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wix-wp-plugin-v2-client.js +0 -1074
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wix-wp-plugin-v2-client.test-fixture.js +0 -149
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/woo-inventory.js +0 -25
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-http.js +0 -444
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-image-url.js +0 -186
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-plugin-detect.js +0 -1422
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-redirect-sources.js +0 -343
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-route-classifier.js +0 -680
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/yoast-product-seo-evidence.js +0 -272
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/README.md +0 -373
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/advanced-custom-fields.json +0 -101
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/back-in-stock-notifier-for-woocommerce.json +0 -81
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/capabilities-pending-decision.json +0 -128
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/cms-fallback-eligible.json +0 -18
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/contact-form-7.json +0 -104
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/facebook-for-woocommerce.json +0 -44
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/fingerprint-aliases.json +0 -49
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/free-gifts-for-woocommerce.json +0 -94
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/index.json +0 -863
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/mailpoet.json +0 -52
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/membership-for-woocommerce.json +0 -161
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/mwb-bookings-for-woocommerce.json +0 -180
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/no-migration-needed.json +0 -286
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/pricing-deals-for-woocommerce.json +0 -79
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/product-extras-for-woocommerce.json +0 -120
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/pw-woocommerce-gift-cards.json +0 -128
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/requires-development.json +0 -88
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/seo-by-rank-math.json +0 -80
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/seriously-simple-podcasting.json +0 -46
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/strong-testimonials.json +0 -55
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/subscriptions-for-woocommerce.json +0 -99
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/tablepress.json +0 -55
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/the-events-calendar.json +0 -160
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/ti-woocommerce-wishlist.json +0 -81
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woo-checkout-field-editor-pro.json +0 -60
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woo-discount-rules.json +0 -74
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woo-product-bundle.json +0 -75
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woocommerce-gift-cards.json +0 -60
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woocommerce-other-payment-gateway.json +0 -44
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woocommerce-pdf-invoices-packing-slips.json +0 -57
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woocommerce-product-addon.json +0 -141
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woocommerce-progressive-discounts.json +0 -54
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/wordpress-seo.json +0 -158
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/wpc-composite-products.json +0 -97
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/wpforms-lite.json +0 -86
- package/skills/wix-replatform/resources/rp-source-wordpress/scripts/capture-store-settings.js +0 -90
- package/skills/wix-replatform/resources/rp-source-wordpress/scripts/plugin-knowledge-validate.js +0 -51
- package/skills/wix-replatform/resources/rp-source-wordpress/scripts/plugin-knowledge.js +0 -103
- package/skills/wix-replatform/resources/rp-source-wordpress/scripts/wp-discovery.js +0 -2409
- package/skills/wix-replatform/resources/rp-source-wordpress/scripts/wp-plugin-inventory.js +0 -273
- package/skills/wix-replatform/resources/rp-source-wordpress/secret-value-patterns.v1.json +0 -11
- package/skills/wix-replatform/resources/rp-source-wordpress/source-schema.example.json +0 -71
- package/skills/wix-replatform/resources/rp-source-wordpress/sub-parts.json +0 -13
- package/skills/wix-replatform/resources/rp-target-wix/SKILL.md +0 -1046
- package/skills/wix-replatform/resources/rp-target-wix/app-page-routing-capabilities.json +0 -36
- package/skills/wix-replatform/resources/rp-target-wix/domains/README.md +0 -57
- package/skills/wix-replatform/resources/rp-target-wix/domains/SERVICE-PLUGINS.md +0 -322
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/docs-survey.json +0 -70
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/domain.json +0 -29
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/category.json +0 -71
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/comment.json +0 -83
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/post.json +0 -95
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/tag.json +0 -66
- package/skills/wix-replatform/resources/rp-target-wix/domains/bookings/docs-survey.json +0 -332
- package/skills/wix-replatform/resources/rp-target-wix/domains/bookings/domain.json +0 -75
- package/skills/wix-replatform/resources/rp-target-wix/domains/bookings/entities/booking.json +0 -181
- package/skills/wix-replatform/resources/rp-target-wix/domains/bookings/entities/service-add-on.json +0 -130
- package/skills/wix-replatform/resources/rp-target-wix/domains/bookings/entities/service.json +0 -180
- package/skills/wix-replatform/resources/rp-target-wix/domains/cms/docs-survey.json +0 -161
- package/skills/wix-replatform/resources/rp-target-wix/domains/cms/domain.json +0 -25
- package/skills/wix-replatform/resources/rp-target-wix/domains/cms/entities/collection.json +0 -67
- package/skills/wix-replatform/resources/rp-target-wix/domains/cms/entities/data-item.json +0 -75
- package/skills/wix-replatform/resources/rp-target-wix/domains/cms/entities/reference.json +0 -41
- package/skills/wix-replatform/resources/rp-target-wix/domains/crm/docs-survey.json +0 -204
- package/skills/wix-replatform/resources/rp-target-wix/domains/crm/domain.json +0 -27
- package/skills/wix-replatform/resources/rp-target-wix/domains/crm/entities/contact.json +0 -275
- package/skills/wix-replatform/resources/rp-target-wix/domains/crm/entities/email-subscription.json +0 -105
- package/skills/wix-replatform/resources/rp-target-wix/domains/crm/entities/label.json +0 -77
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/docs-survey.json +0 -306
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/domain.json +0 -44
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/delivery-profile.json +0 -171
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/discount-rule.json +0 -182
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-applied-discount.json +0 -129
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-invoice-document.json +0 -192
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-line-item-options.json +0 -123
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-line-item.json +0 -85
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-merchant-note.json +0 -112
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-payment.json +0 -191
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-refund.json +0 -164
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order.json +0 -462
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/pickup-location.json +0 -122
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/shipping-option.json +0 -98
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/wishlist-item.json +0 -86
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/docs-survey.json +0 -128
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/domain.json +0 -38
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/entities/category.json +0 -73
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/entities/event.json +0 -107
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/entities/registration-form.json +0 -89
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/entities/rsvp.json +0 -118
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/entities/ticket-definition.json +0 -93
- package/skills/wix-replatform/resources/rp-target-wix/domains/forms/docs-survey.json +0 -86
- package/skills/wix-replatform/resources/rp-target-wix/domains/forms/domain.json +0 -56
- package/skills/wix-replatform/resources/rp-target-wix/domains/forms/entities/form-submission.json +0 -121
- package/skills/wix-replatform/resources/rp-target-wix/domains/forms/entities/form.json +0 -134
- package/skills/wix-replatform/resources/rp-target-wix/domains/gift-cards/docs-survey.json +0 -41
- package/skills/wix-replatform/resources/rp-target-wix/domains/gift-cards/domain.json +0 -50
- package/skills/wix-replatform/resources/rp-target-wix/domains/gift-cards/entities/gift-card-product.json +0 -87
- package/skills/wix-replatform/resources/rp-target-wix/domains/gift-cards/entities/gift-card.json +0 -130
- package/skills/wix-replatform/resources/rp-target-wix/domains/index.json +0 -1418
- package/skills/wix-replatform/resources/rp-target-wix/domains/media/docs-survey.json +0 -41
- package/skills/wix-replatform/resources/rp-target-wix/domains/media/domain.json +0 -24
- package/skills/wix-replatform/resources/rp-target-wix/domains/media/entities/media-file.json +0 -75
- package/skills/wix-replatform/resources/rp-target-wix/domains/media/entities/media-folder.json +0 -71
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/docs-survey.json +0 -119
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/domain.json +0 -23
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/entities/badge.json +0 -71
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/entities/custom-field.json +0 -82
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/entities/member-about.json +0 -77
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/entities/member.json +0 -205
- package/skills/wix-replatform/resources/rp-target-wix/domains/pricing-plans/docs-survey.json +0 -41
- package/skills/wix-replatform/resources/rp-target-wix/domains/pricing-plans/domain.json +0 -46
- package/skills/wix-replatform/resources/rp-target-wix/domains/pricing-plans/entities/plan-order.json +0 -137
- package/skills/wix-replatform/resources/rp-target-wix/domains/pricing-plans/entities/plan.json +0 -133
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/docs-survey.json +0 -7
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/domain.json +0 -36
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/amazon-shop-connect.json +0 -71
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/ebay-shop-connect.json +0 -67
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/google-youtube-connect.json +0 -72
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/meta-catalog-connect.json +0 -74
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/pinterest-catalog-connect.json +0 -69
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/tiktok-catalog-connect.json +0 -61
- package/skills/wix-replatform/resources/rp-target-wix/domains/schema.json +0 -111
- package/skills/wix-replatform/resources/rp-target-wix/domains/seo/docs-survey.json +0 -109
- package/skills/wix-replatform/resources/rp-target-wix/domains/seo/domain.json +0 -73
- package/skills/wix-replatform/resources/rp-target-wix/domains/seo/entities/item-seo-tags.json +0 -148
- package/skills/wix-replatform/resources/rp-target-wix/domains/seo/entities/seo-pattern.json +0 -91
- package/skills/wix-replatform/resources/rp-target-wix/domains/seo/entities/site-seo-tags.json +0 -79
- package/skills/wix-replatform/resources/rp-target-wix/domains/site/docs-survey.json +0 -32
- package/skills/wix-replatform/resources/rp-target-wix/domains/site/domain.json +0 -49
- package/skills/wix-replatform/resources/rp-target-wix/domains/site/entities/business-contact.json +0 -103
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/docs-survey.json +0 -203
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/domain.json +0 -42
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/back-in-stock-request.json +0 -119
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/brand.json +0 -111
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/category.json +0 -81
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/coupon.json +0 -241
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/inventory-item.json +0 -118
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/product-customization.json +0 -111
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/product-tag.json +0 -79
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/product.json +0 -221
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/promotion.json +0 -84
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/review.json +0 -178
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/subscription-product.json +0 -87
- package/skills/wix-replatform/resources/rp-target-wix/domains/tax/docs-survey.json +0 -106
- package/skills/wix-replatform/resources/rp-target-wix/domains/tax/domain.json +0 -64
- package/skills/wix-replatform/resources/rp-target-wix/domains/tax/entities/manual-tax-mapping.json +0 -119
- package/skills/wix-replatform/resources/rp-target-wix/domains/tax/entities/tax-group.json +0 -94
- package/skills/wix-replatform/resources/rp-target-wix/domains/tax/entities/tax-region.json +0 -113
- package/skills/wix-replatform/resources/rp-target-wix/domains/tax/entities/tax-settings.json +0 -65
- package/skills/wix-replatform/resources/rp-target-wix/lib/audit-summary.js +0 -64
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-author-attribution.js +0 -165
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build-client.js +0 -60
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build-duplicates.js +0 -201
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build-ledger.js +0 -306
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build-report.js +0 -229
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build-stage.js +0 -55
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build.js +0 -715
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-media.js +0 -567
- package/skills/wix-replatform/resources/rp-target-wix/lib/bulk-results.js +0 -73
- package/skills/wix-replatform/resources/rp-target-wix/lib/contact-extended-fields.js +0 -194
- package/skills/wix-replatform/resources/rp-target-wix/lib/contact-import.js +0 -133
- package/skills/wix-replatform/resources/rp-target-wix/lib/contract-ledger.js +0 -150
- package/skills/wix-replatform/resources/rp-target-wix/lib/coupon-redemption-drift.js +0 -491
- package/skills/wix-replatform/resources/rp-target-wix/lib/customer-member.js +0 -104
- package/skills/wix-replatform/resources/rp-target-wix/lib/data-extension-schema.js +0 -673
- package/skills/wix-replatform/resources/rp-target-wix/lib/domain-knowledge.js +0 -835
- package/skills/wix-replatform/resources/rp-target-wix/lib/gift-card-balance-reconciliation.js +0 -119
- package/skills/wix-replatform/resources/rp-target-wix/lib/gift-card-build.js +0 -566
- package/skills/wix-replatform/resources/rp-target-wix/lib/gift-card-redemption-build.js +0 -249
- package/skills/wix-replatform/resources/rp-target-wix/lib/ndjson.js +0 -260
- package/skills/wix-replatform/resources/rp-target-wix/lib/order-applied-discount-build.js +0 -63
- package/skills/wix-replatform/resources/rp-target-wix/lib/order-buyer.js +0 -187
- package/skills/wix-replatform/resources/rp-target-wix/lib/order-channel-build.js +0 -64
- package/skills/wix-replatform/resources/rp-target-wix/lib/order-history.js +0 -1027
- package/skills/wix-replatform/resources/rp-target-wix/lib/order-invoice-contract.js +0 -90
- package/skills/wix-replatform/resources/rp-target-wix/lib/order-payment-mapping.js +0 -420
- package/skills/wix-replatform/resources/rp-target-wix/lib/pricing-plan-definition.js +0 -177
- package/skills/wix-replatform/resources/rp-target-wix/lib/product-import.js +0 -151
- package/skills/wix-replatform/resources/rp-target-wix/lib/product-seo.js +0 -723
- package/skills/wix-replatform/resources/rp-target-wix/lib/seo-redirects.js +0 -353
- package/skills/wix-replatform/resources/rp-target-wix/lib/shipping-build.js +0 -1437
- package/skills/wix-replatform/resources/rp-target-wix/lib/shipping-option-stage.js +0 -354
- package/skills/wix-replatform/resources/rp-target-wix/lib/store-config-build.js +0 -134
- package/skills/wix-replatform/resources/rp-target-wix/lib/stores-category-attach.js +0 -221
- package/skills/wix-replatform/resources/rp-target-wix/lib/stores-inventory.js +0 -248
- package/skills/wix-replatform/resources/rp-target-wix/lib/stores-verification.js +0 -321
- package/skills/wix-replatform/resources/rp-target-wix/lib/tax-build.js +0 -231
- package/skills/wix-replatform/resources/rp-target-wix/lib/url-mapper-transport.js +0 -28
- package/skills/wix-replatform/resources/rp-target-wix/lib/value-utils.js +0 -14
- package/skills/wix-replatform/resources/rp-target-wix/lib/variant-correlation.js +0 -34
- package/skills/wix-replatform/resources/rp-target-wix/lib/wix-build.js +0 -388
- package/skills/wix-replatform/resources/rp-target-wix/lib/wix-target-spec.js +0 -255
- package/skills/wix-replatform/resources/rp-target-wix/lib/wix-writers.js +0 -6041
- package/skills/wix-replatform/resources/rp-target-wix/lib/write-verification.js +0 -3
- package/skills/wix-replatform/resources/rp-target-wix/scripts/docs-survey-sync.js +0 -150
- package/skills/wix-replatform/resources/rp-target-wix/scripts/domain-knowledge-validate.js +0 -69
- package/skills/wix-replatform/resources/rp-target-wix/scripts/domain-knowledge.js +0 -100
- package/skills/wix-replatform/resources/rp-target-wix/scripts/verify-stores.js +0 -112
- package/skills/wix-replatform/resources/rp-telemetry/SKILL.md +0 -484
- package/skills/wix-replatform/resources/rp-telemetry/lib/bi-sink.js +0 -318
- package/skills/wix-replatform/resources/rp-telemetry/lib/telemetry-recorder.js +0 -2831
- package/skills/wix-replatform/resources/rp-telemetry/lib/transcript-digest.js +0 -318
- package/skills/wix-replatform/resources/rp-telemetry/scripts/meter-from-audit.js +0 -83
- package/skills/wix-replatform/resources/rp-telemetry/scripts/rp-telemetry.js +0 -243
- package/skills/wix-replatform/resources/rp-website-continuation/SKILL.md +0 -94
- package/skills/wix-replatform/scripts/artifact-freshness.js +0 -76
- package/skills/wix-replatform/scripts/census-reconciliation.js +0 -25
- package/skills/wix-replatform/scripts/cms-fallback.js +0 -89
- package/skills/wix-replatform/scripts/discovered-census.js +0 -26
- package/skills/wix-replatform/scripts/discovered-set-status.js +0 -33
- package/skills/wix-replatform/scripts/entity-qa-attestation.js +0 -130
- package/skills/wix-replatform/scripts/execution-health-check.js +0 -415
- package/skills/wix-replatform/scripts/execution-manifest-validate.js +0 -43
- package/skills/wix-replatform/scripts/execution-state-prepare.js +0 -128
- package/skills/wix-replatform/scripts/expectations-ledger.js +0 -44
- package/skills/wix-replatform/scripts/import-contract-verify.js +0 -183
- package/skills/wix-replatform/scripts/internal-link-audit.js +0 -90
- package/skills/wix-replatform/scripts/item-seo-tags-verify.js +0 -205
- package/skills/wix-replatform/scripts/migration-completion.js +0 -76
- package/skills/wix-replatform/scripts/orchestration-preflight.js +0 -67
- package/skills/wix-replatform/scripts/orchestration-route.js +0 -77
- package/skills/wix-replatform/scripts/orchestration-state.js +0 -381
- package/skills/wix-replatform/scripts/read-back-gate.js +0 -175
- package/skills/wix-replatform/scripts/replatform-console.js +0 -146
- package/skills/wix-replatform/scripts/replatform.js +0 -436
- package/skills/wix-replatform/scripts/source-secrets.js +0 -77
- package/skills/wix-replatform/scripts/url-redirects.js +0 -286
- package/skills/wix-replatform/scripts/user-action.js +0 -58
- package/skills/wix-replatform/scripts/website-handoff-generate.js +0 -64
- package/skills/wix-replatform/scripts/wix-dashboard-url.js +0 -54
- package/skills/wix-replatform/scripts/wix-destination.js +0 -143
- package/skills/wix-replatform/scripts/wix-headless-scaffold.js +0 -762
- package/skills/wix-vibe-headless/SKILL.md +0 -183
- package/skills/wix-vibe-headless/install/deploy.cjs +0 -221
- package/skills/wix-vibe-headless/install/pin-agents-md.cjs +0 -35
- package/skills/wix-vibe-headless/platforms/README.md +0 -26
- package/skills/wix-vibe-headless/platforms/base44-ecom-light-seed-with-install.md +0 -127
- package/skills/wix-vibe-headless/platforms/base44-ecom-light-seed.md +0 -121
- package/skills/wix-vibe-headless/platforms/base44-ecom-light.md +0 -87
- package/skills/wix-vibe-headless/platforms/base44.md +0 -148
- package/skills/wix-vibe-headless/platforms/generic.md +0 -132
- package/skills/wix-vibe-headless/references/_shared/nav/nav.tanstack.js +0 -30
- package/skills/wix-vibe-headless/references/_shared/routing.md +0 -86
- package/skills/wix-vibe-headless/references/blog/INSTRUCTIONS.md +0 -270
- package/skills/wix-vibe-headless/references/blog/app/components/PostCard.jsx +0 -43
- package/skills/wix-vibe-headless/references/blog/app/components/PostChips.jsx +0 -25
- package/skills/wix-vibe-headless/references/blog/app/components/PostGrid.jsx +0 -15
- package/skills/wix-vibe-headless/references/blog/app/context/TaxonomyContext.jsx +0 -35
- package/skills/wix-vibe-headless/references/blog/app/hooks/usePostDetail.js +0 -38
- package/skills/wix-vibe-headless/references/blog/app/pages/Blog.jsx +0 -40
- package/skills/wix-vibe-headless/references/blog/app/pages/CategoryPage.jsx +0 -54
- package/skills/wix-vibe-headless/references/blog/app/pages/PostDetail.jsx +0 -65
- package/skills/wix-vibe-headless/references/blog/app/pages/TagPage.jsx +0 -50
- package/skills/wix-vibe-headless/references/blog/app/rest/wix-blog.js +0 -217
- package/skills/wix-vibe-headless/references/blog/seed/SEED.md +0 -99
- package/skills/wix-vibe-headless/references/blog/seed/seed-blog.cjs +0 -269
- package/skills/wix-vibe-headless/references/bookings/INSTRUCTIONS.md +0 -342
- package/skills/wix-vibe-headless/references/bookings/app/components/BookingForm.jsx +0 -65
- package/skills/wix-vibe-headless/references/bookings/app/components/RentalDurationPicker.jsx +0 -67
- package/skills/wix-vibe-headless/references/bookings/app/components/ServiceCard.jsx +0 -47
- package/skills/wix-vibe-headless/references/bookings/app/components/ServiceGrid.jsx +0 -13
- package/skills/wix-vibe-headless/references/bookings/app/components/SlotPicker.jsx +0 -126
- package/skills/wix-vibe-headless/references/bookings/app/hooks/useRentalDuration.js +0 -128
- package/skills/wix-vibe-headless/references/bookings/app/hooks/useServiceDetail.js +0 -110
- package/skills/wix-vibe-headless/references/bookings/app/hooks/useServices.js +0 -58
- package/skills/wix-vibe-headless/references/bookings/app/lib/serviceFacts.js +0 -95
- package/skills/wix-vibe-headless/references/bookings/app/pages/ServiceDetail.jsx +0 -94
- package/skills/wix-vibe-headless/references/bookings/app/pages/Services.jsx +0 -89
- package/skills/wix-vibe-headless/references/bookings/app/rest/wix-bookings-checkout.js +0 -148
- package/skills/wix-vibe-headless/references/bookings/app/rest/wix-bookings-rentals.js +0 -250
- package/skills/wix-vibe-headless/references/bookings/app/rest/wix-bookings-services.js +0 -300
- package/skills/wix-vibe-headless/references/bookings/seed/SEED.md +0 -154
- package/skills/wix-vibe-headless/references/bookings/seed/seed-bookings.cjs +0 -333
- package/skills/wix-vibe-headless/references/bookings/seed/seed-rentals.cjs +0 -267
- package/skills/wix-vibe-headless/references/cms/INSTRUCTIONS.md +0 -178
- package/skills/wix-vibe-headless/references/cms/app/collection.config.js +0 -31
- package/skills/wix-vibe-headless/references/cms/app/lib/wixImage.js +0 -18
- package/skills/wix-vibe-headless/references/cms/app/rest/wix-cms.js +0 -231
- package/skills/wix-vibe-headless/references/cms/seed/SEED.md +0 -145
- package/skills/wix-vibe-headless/references/donations/INSTRUCTIONS.md +0 -88
- package/skills/wix-vibe-headless/references/donations/app/rest/wix-donations.js +0 -112
- package/skills/wix-vibe-headless/references/donations/seed/SEED.md +0 -11
- package/skills/wix-vibe-headless/references/donations/tests/donations.test.mjs +0 -258
- package/skills/wix-vibe-headless/references/events/INSTRUCTIONS.md +0 -267
- package/skills/wix-vibe-headless/references/events/app/components/CategoryFilter.jsx +0 -23
- package/skills/wix-vibe-headless/references/events/app/components/EventCard.jsx +0 -43
- package/skills/wix-vibe-headless/references/events/app/components/EventGrid.jsx +0 -13
- package/skills/wix-vibe-headless/references/events/app/components/EventRegistration.jsx +0 -29
- package/skills/wix-vibe-headless/references/events/app/components/RsvpForm.jsx +0 -57
- package/skills/wix-vibe-headless/references/events/app/components/TicketPicker.jsx +0 -78
- package/skills/wix-vibe-headless/references/events/app/hooks/useEventDetail.js +0 -27
- package/skills/wix-vibe-headless/references/events/app/hooks/useEventsList.js +0 -54
- package/skills/wix-vibe-headless/references/events/app/hooks/useRsvpForm.js +0 -40
- package/skills/wix-vibe-headless/references/events/app/hooks/useTicketing.js +0 -81
- package/skills/wix-vibe-headless/references/events/app/pages/EventDetail.jsx +0 -48
- package/skills/wix-vibe-headless/references/events/app/pages/Events.jsx +0 -36
- package/skills/wix-vibe-headless/references/events/app/rest/wix-events-browse.js +0 -136
- package/skills/wix-vibe-headless/references/events/app/rest/wix-events-registration.js +0 -187
- package/skills/wix-vibe-headless/references/events/seed/SEED.md +0 -103
- package/skills/wix-vibe-headless/references/events/seed/seed-events.cjs +0 -251
- package/skills/wix-vibe-headless/references/forms/INSTRUCTIONS.md +0 -487
- package/skills/wix-vibe-headless/references/forms/app/hooks/useWixForm.js +0 -425
- package/skills/wix-vibe-headless/references/forms/app/lib/wix-form-schema-utils.js +0 -187
- package/skills/wix-vibe-headless/references/forms/app/rest/wix-forms-submissions.js +0 -238
- package/skills/wix-vibe-headless/references/forms/app/rest/wix-forms.js +0 -108
- package/skills/wix-vibe-headless/references/forms/seed/SEED.md +0 -1836
- package/skills/wix-vibe-headless/references/members/INSTRUCTIONS.md +0 -328
- package/skills/wix-vibe-headless/references/members/app/components/LoginForm.jsx +0 -101
- package/skills/wix-vibe-headless/references/members/app/components/MemberMenu.jsx +0 -33
- package/skills/wix-vibe-headless/references/members/app/components/RequireAuth.jsx +0 -21
- package/skills/wix-vibe-headless/references/members/app/components/SocialButtons.jsx +0 -29
- package/skills/wix-vibe-headless/references/members/app/context/MemberContext.jsx +0 -54
- package/skills/wix-vibe-headless/references/members/app/hooks/useLoginForm.js +0 -77
- package/skills/wix-vibe-headless/references/members/app/pages/Account.jsx +0 -36
- package/skills/wix-vibe-headless/references/members/app/pages/Callback.jsx +0 -32
- package/skills/wix-vibe-headless/references/members/app/pages/Login.jsx +0 -35
- package/skills/wix-vibe-headless/references/members/app/rest/wix-members-auth.js +0 -390
- package/skills/wix-vibe-headless/references/members/install/Register.jsx +0 -22
- package/skills/wix-vibe-headless/references/members/seed/SEED.md +0 -21
- package/skills/wix-vibe-headless/references/portfolio/INSTRUCTIONS.md +0 -270
- package/skills/wix-vibe-headless/references/portfolio/app/components/CollectionCard.jsx +0 -31
- package/skills/wix-vibe-headless/references/portfolio/app/components/CollectionGrid.jsx +0 -15
- package/skills/wix-vibe-headless/references/portfolio/app/components/ProjectCard.jsx +0 -39
- package/skills/wix-vibe-headless/references/portfolio/app/components/ProjectGrid.jsx +0 -15
- package/skills/wix-vibe-headless/references/portfolio/app/components/ProjectMedia.jsx +0 -29
- package/skills/wix-vibe-headless/references/portfolio/app/hooks/useCollectionProjects.js +0 -35
- package/skills/wix-vibe-headless/references/portfolio/app/hooks/usePortfolioGallery.js +0 -27
- package/skills/wix-vibe-headless/references/portfolio/app/hooks/useProjectDetail.js +0 -25
- package/skills/wix-vibe-headless/references/portfolio/app/pages/CollectionPage.jsx +0 -39
- package/skills/wix-vibe-headless/references/portfolio/app/pages/Portfolio.jsx +0 -27
- package/skills/wix-vibe-headless/references/portfolio/app/pages/ProjectDetail.jsx +0 -60
- package/skills/wix-vibe-headless/references/portfolio/app/rest/wix-portfolio.js +0 -223
- package/skills/wix-vibe-headless/references/portfolio/seed/SEED.md +0 -90
- package/skills/wix-vibe-headless/references/portfolio/seed/seed-portfolio.cjs +0 -236
- package/skills/wix-vibe-headless/references/pricing-plans/INSTRUCTIONS.md +0 -280
- package/skills/wix-vibe-headless/references/pricing-plans/app/components/OrderCard.jsx +0 -35
- package/skills/wix-vibe-headless/references/pricing-plans/app/components/PlanCard.jsx +0 -48
- package/skills/wix-vibe-headless/references/pricing-plans/app/components/PlanGrid.jsx +0 -16
- package/skills/wix-vibe-headless/references/pricing-plans/app/components/PlanPrice.jsx +0 -35
- package/skills/wix-vibe-headless/references/pricing-plans/app/hooks/useMyPlans.js +0 -25
- package/skills/wix-vibe-headless/references/pricing-plans/app/hooks/usePlanDetail.js +0 -28
- package/skills/wix-vibe-headless/references/pricing-plans/app/hooks/usePlans.js +0 -30
- package/skills/wix-vibe-headless/references/pricing-plans/app/pages/MyPlans.jsx +0 -30
- package/skills/wix-vibe-headless/references/pricing-plans/app/pages/PlanDetail.jsx +0 -53
- package/skills/wix-vibe-headless/references/pricing-plans/app/pages/Plans.jsx +0 -28
- package/skills/wix-vibe-headless/references/pricing-plans/app/rest/wix-pricing-plans.js +0 -157
- package/skills/wix-vibe-headless/references/pricing-plans/seed/SEED.md +0 -82
- package/skills/wix-vibe-headless/references/pricing-plans/seed/seed-pricing-plans.cjs +0 -251
- package/skills/wix-vibe-headless/references/rentals/INSTRUCTIONS.md +0 -13
- package/skills/wix-vibe-headless/references/restaurants/INSTRUCTIONS.md +0 -290
- package/skills/wix-vibe-headless/references/restaurants/app/components/ItemDialog.jsx +0 -81
- package/skills/wix-vibe-headless/references/restaurants/app/components/MenuItemCard.jsx +0 -71
- package/skills/wix-vibe-headless/references/restaurants/app/components/MenuList.jsx +0 -43
- package/skills/wix-vibe-headless/references/restaurants/app/components/OrderCartButton.jsx +0 -21
- package/skills/wix-vibe-headless/references/restaurants/app/components/OrderCartDrawer.jsx +0 -72
- package/skills/wix-vibe-headless/references/restaurants/app/context/OrderCartContext.jsx +0 -66
- package/skills/wix-vibe-headless/references/restaurants/app/hooks/useItemOrder.js +0 -32
- package/skills/wix-vibe-headless/references/restaurants/app/hooks/useReservation.js +0 -73
- package/skills/wix-vibe-headless/references/restaurants/app/pages/Menu.jsx +0 -28
- package/skills/wix-vibe-headless/references/restaurants/app/pages/Reservations.jsx +0 -102
- package/skills/wix-vibe-headless/references/restaurants/app/rest/wix-restaurants-menu.js +0 -224
- package/skills/wix-vibe-headless/references/restaurants/app/rest/wix-restaurants-ordering.js +0 -218
- package/skills/wix-vibe-headless/references/restaurants/app/rest/wix-restaurants-reservations.js +0 -107
- package/skills/wix-vibe-headless/references/restaurants/seed/SEED.md +0 -176
- package/skills/wix-vibe-headless/references/restaurants/seed/seed-restaurants.cjs +0 -452
- package/skills/wix-vibe-headless/references/shared/app/components/WixManageBanner.jsx +0 -56
- package/skills/wix-vibe-headless/references/shared/app/lib/nav.js +0 -9
- package/skills/wix-vibe-headless/references/shared/app/rest/wix-client.js +0 -185
- package/skills/wix-vibe-headless/references/shared/app/rest/wix-config.js +0 -8
- package/skills/wix-vibe-headless/references/storefront/INSTRUCTIONS.md +0 -471
- package/skills/wix-vibe-headless/references/storefront/app/components/CartButton.jsx +0 -20
- package/skills/wix-vibe-headless/references/storefront/app/components/CartDrawer.jsx +0 -167
- package/skills/wix-vibe-headless/references/storefront/app/context/CartContext.jsx +0 -83
- package/skills/wix-vibe-headless/references/storefront/app/hooks/useProductCard.js +0 -104
- package/skills/wix-vibe-headless/references/storefront/app/hooks/useProductDetail.js +0 -163
- package/skills/wix-vibe-headless/references/storefront/app/hooks/useShop.js +0 -83
- package/skills/wix-vibe-headless/references/storefront/app/hooks/useVariantOptions.js +0 -76
- package/skills/wix-vibe-headless/references/storefront/app/lib/storeImage.js +0 -64
- package/skills/wix-vibe-headless/references/storefront/app/rest/wix-store-cart.js +0 -176
- package/skills/wix-vibe-headless/references/storefront/app/rest/wix-store-catalog.js +0 -218
- package/skills/wix-vibe-headless/references/storefront/seed/SEED.md +0 -174
- package/skills/wix-vibe-headless/references/storefront/seed/seed-store.cjs +0 -546
|
@@ -1,321 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const fs = require('fs');
|
|
4
|
-
const path = require('path');
|
|
5
|
-
const w = require('./wix-writers');
|
|
6
|
-
const verification = require('./write-verification');
|
|
7
|
-
|
|
8
|
-
const DEFAULT_VERIFIED_SUBSCRIPTION_PATHS = [
|
|
9
|
-
'product.subscriptionDetails',
|
|
10
|
-
'product.subscriptionDetails.allowOneTimePurchases',
|
|
11
|
-
'product.subscriptionDetails.subscriptions[]',
|
|
12
|
-
'product.subscriptionDetails.subscriptions[].id',
|
|
13
|
-
'product.subscriptionDetails.subscriptions[].title',
|
|
14
|
-
'product.subscriptionDetails.subscriptions[].description',
|
|
15
|
-
'product.subscriptionDetails.subscriptions[].frequency',
|
|
16
|
-
'product.subscriptionDetails.subscriptions[].interval',
|
|
17
|
-
'product.subscriptionDetails.subscriptions[].autoRenewal',
|
|
18
|
-
];
|
|
19
|
-
|
|
20
|
-
function timestamp() {
|
|
21
|
-
return new Date().toISOString();
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
function defaultProbeProduct({ marker, name } = {}) {
|
|
25
|
-
const suffix = marker || `rp-probe-${Date.now()}`;
|
|
26
|
-
return {
|
|
27
|
-
name: name || `RePlatform subscription probe ${suffix}`,
|
|
28
|
-
productType: 'PHYSICAL',
|
|
29
|
-
visible: false,
|
|
30
|
-
sku: suffix,
|
|
31
|
-
price: { actualPrice: { amount: '1.00' } },
|
|
32
|
-
subscriptionDetails: {
|
|
33
|
-
allowOneTimePurchases: true,
|
|
34
|
-
subscriptions: [{
|
|
35
|
-
title: 'Monthly delivery',
|
|
36
|
-
description: 'Ships every month',
|
|
37
|
-
frequency: 'MONTH',
|
|
38
|
-
interval: 1,
|
|
39
|
-
autoRenewal: true,
|
|
40
|
-
}],
|
|
41
|
-
},
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
function artifactBase({ command, siteId, endpoint, method }) {
|
|
46
|
-
return {
|
|
47
|
-
schemaVersion: 1,
|
|
48
|
-
command,
|
|
49
|
-
targetSiteIdentifier: siteId || null,
|
|
50
|
-
endpoint,
|
|
51
|
-
method,
|
|
52
|
-
status: 'unknown',
|
|
53
|
-
verifiedPaths: [],
|
|
54
|
-
constraintsDiscovered: [],
|
|
55
|
-
probeRecordId: null,
|
|
56
|
-
cleanup: { attempted: false, status: 'not_applicable' },
|
|
57
|
-
warnings: [],
|
|
58
|
-
recoveryInstructions: [],
|
|
59
|
-
timestamp: timestamp(),
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
function valueAtPath(root, pathExpr) {
|
|
64
|
-
const parts = String(pathExpr).split('.');
|
|
65
|
-
let values = [root];
|
|
66
|
-
for (const part of parts) {
|
|
67
|
-
const arrayPart = part.endsWith('[]') ? part.slice(0, -2) : null;
|
|
68
|
-
const key = arrayPart || part;
|
|
69
|
-
const next = [];
|
|
70
|
-
for (const value of values) {
|
|
71
|
-
if (!value || typeof value !== 'object') continue;
|
|
72
|
-
const child = value[key];
|
|
73
|
-
if (arrayPart) {
|
|
74
|
-
if (Array.isArray(child)) next.push(...child);
|
|
75
|
-
} else {
|
|
76
|
-
next.push(child);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
values = next;
|
|
80
|
-
}
|
|
81
|
-
return values.filter((value) => value !== undefined && value !== null);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
function verifyPaths(root, paths) {
|
|
85
|
-
return paths.map((pathExpr) => ({
|
|
86
|
-
path: pathExpr,
|
|
87
|
-
present: valueAtPath(root, pathExpr).length > 0,
|
|
88
|
-
}));
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
function queryFilterByMarker({ markerPath, markerValue }) {
|
|
92
|
-
if (!markerPath || markerValue == null) {
|
|
93
|
-
throw new Error('product-by-source-marker requires --marker-path and --marker-value');
|
|
94
|
-
}
|
|
95
|
-
return {
|
|
96
|
-
filter: { [markerPath]: { $eq: markerValue } },
|
|
97
|
-
paging: { limit: 100, offset: 0 },
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
async function writeArtifact(file, result) {
|
|
102
|
-
if (!file) return result;
|
|
103
|
-
fs.mkdirSync(path.dirname(file), { recursive: true });
|
|
104
|
-
fs.writeFileSync(file, `${JSON.stringify(result, null, 2)}\n`);
|
|
105
|
-
return result;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
async function verifyStoresSubscriptionCreate({ wix, siteId, artifactPath, probeProduct, marker, cleanup = true } = {}) {
|
|
109
|
-
const createRequest = w.buildCreateStoresProductRequest(probeProduct || defaultProbeProduct({ marker }));
|
|
110
|
-
const artifact = artifactBase({
|
|
111
|
-
command: 'stores subscription-create',
|
|
112
|
-
siteId,
|
|
113
|
-
endpoint: createRequest.url,
|
|
114
|
-
method: createRequest.method,
|
|
115
|
-
});
|
|
116
|
-
|
|
117
|
-
let createdProduct;
|
|
118
|
-
try {
|
|
119
|
-
const expected = verification.subscriptionExpected(createRequest.body.product);
|
|
120
|
-
createdProduct = (await wix.send(createRequest)).product;
|
|
121
|
-
artifact.probeRecordId = createdProduct && createdProduct.id;
|
|
122
|
-
if (!require('./bulk-results').opaqueId(artifact.probeRecordId) || createdProduct._dryRunPlaceholder) throw new Error('create response did not include a live product.id');
|
|
123
|
-
artifact.valueEvidence = { expected, targetId: artifact.probeRecordId, actual: null };
|
|
124
|
-
await writeArtifact(artifactPath, artifact);
|
|
125
|
-
|
|
126
|
-
const getRequest = w.buildGetStoresProductRequest(artifact.probeRecordId);
|
|
127
|
-
artifact.readback = { endpoint: getRequest.url, method: getRequest.method };
|
|
128
|
-
const readProduct = (await wix.send(getRequest)).product;
|
|
129
|
-
artifact.verifiedPaths = verifyPaths({ product: readProduct }, DEFAULT_VERIFIED_SUBSCRIPTION_PATHS);
|
|
130
|
-
artifact.constraintsDiscovered = w.STORES_SUBSCRIPTION_CONTRACT.constraints.map((constraint) => ({ ...constraint }));
|
|
131
|
-
artifact.valueEvidence.actual = readProduct;
|
|
132
|
-
artifact.comparison = verification.verifySubscriptionEvidence(artifact.valueEvidence);
|
|
133
|
-
artifact.status = artifact.comparison.verified ? 'passed' : 'failed';
|
|
134
|
-
if (artifact.status === 'failed') {
|
|
135
|
-
artifact.warnings.push('Subscription readback identity or values do not match the submitted product.');
|
|
136
|
-
}
|
|
137
|
-
} catch (error) {
|
|
138
|
-
artifact.status = 'failed';
|
|
139
|
-
artifact.error = error && error.message ? error.message : String(error);
|
|
140
|
-
} finally {
|
|
141
|
-
if (cleanup && artifact.probeRecordId) {
|
|
142
|
-
artifact.cleanup.attempted = true;
|
|
143
|
-
artifact.cleanup.endpoint = w.buildDeleteStoresProductRequest(artifact.probeRecordId).url;
|
|
144
|
-
artifact.cleanup.method = 'DELETE';
|
|
145
|
-
try {
|
|
146
|
-
await wix.send(w.buildDeleteStoresProductRequest(artifact.probeRecordId));
|
|
147
|
-
artifact.cleanup.status = 'deleted';
|
|
148
|
-
} catch (error) {
|
|
149
|
-
artifact.cleanup.status = 'failed';
|
|
150
|
-
artifact.cleanup.error = error && error.message ? error.message : String(error);
|
|
151
|
-
artifact.warnings.push(`Probe product cleanup failed for ${artifact.probeRecordId}.`);
|
|
152
|
-
artifact.recoveryInstructions.push(
|
|
153
|
-
`Delete probe product ${artifact.probeRecordId} from Wix Stores or run: verify stores delete-probe --product-id ${artifact.probeRecordId}`,
|
|
154
|
-
);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
return writeArtifact(artifactPath, artifact);
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
async function verifyStoresProductCount({ wix, siteId, artifactPath, query = { paging: { limit: 1, offset: 0 } } } = {}) {
|
|
163
|
-
const request = w.buildQueryStoresProductsRequest(query);
|
|
164
|
-
const artifact = artifactBase({
|
|
165
|
-
command: 'stores product-count',
|
|
166
|
-
siteId,
|
|
167
|
-
endpoint: request.url,
|
|
168
|
-
method: request.method,
|
|
169
|
-
});
|
|
170
|
-
try {
|
|
171
|
-
const response = await wix.send(request);
|
|
172
|
-
const products = response.products || [];
|
|
173
|
-
artifact.count = Number.isInteger(response.totalCount) ? response.totalCount : products.length;
|
|
174
|
-
artifact.status = 'passed';
|
|
175
|
-
} catch (error) {
|
|
176
|
-
artifact.status = 'failed';
|
|
177
|
-
artifact.error = error && error.message ? error.message : String(error);
|
|
178
|
-
}
|
|
179
|
-
return writeArtifact(artifactPath, artifact);
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
async function verifyStoresProductBySourceMarker({ wix, siteId, artifactPath, markerPath, markerValue } = {}) {
|
|
183
|
-
const query = queryFilterByMarker({ markerPath, markerValue });
|
|
184
|
-
const request = w.buildQueryStoresProductsRequest(query);
|
|
185
|
-
const artifact = artifactBase({
|
|
186
|
-
command: 'stores product-by-source-marker',
|
|
187
|
-
siteId,
|
|
188
|
-
endpoint: request.url,
|
|
189
|
-
method: request.method,
|
|
190
|
-
});
|
|
191
|
-
artifact.marker = { path: markerPath, value: markerValue };
|
|
192
|
-
try {
|
|
193
|
-
const response = await wix.send(request);
|
|
194
|
-
artifact.products = (response.products || []).map((product) => ({
|
|
195
|
-
id: product.id,
|
|
196
|
-
name: product.name,
|
|
197
|
-
slug: product.slug,
|
|
198
|
-
revision: product.revision,
|
|
199
|
-
}));
|
|
200
|
-
artifact.count = artifact.products.length;
|
|
201
|
-
artifact.status = 'passed';
|
|
202
|
-
} catch (error) {
|
|
203
|
-
artifact.status = 'failed';
|
|
204
|
-
artifact.error = error && error.message ? error.message : String(error);
|
|
205
|
-
}
|
|
206
|
-
return writeArtifact(artifactPath, artifact);
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
async function verifyStoresDeleteProbe({ wix, siteId, artifactPath, productId } = {}) {
|
|
210
|
-
if (!productId) throw new Error('delete-probe requires --product-id');
|
|
211
|
-
const request = w.buildDeleteStoresProductRequest(productId);
|
|
212
|
-
const artifact = artifactBase({
|
|
213
|
-
command: 'stores delete-probe',
|
|
214
|
-
siteId,
|
|
215
|
-
endpoint: request.url,
|
|
216
|
-
method: request.method,
|
|
217
|
-
});
|
|
218
|
-
artifact.probeRecordId = productId;
|
|
219
|
-
artifact.cleanup = { attempted: true, endpoint: request.url, method: request.method, status: 'unknown' };
|
|
220
|
-
try {
|
|
221
|
-
await wix.send(request);
|
|
222
|
-
artifact.cleanup.status = 'deleted';
|
|
223
|
-
artifact.status = 'passed';
|
|
224
|
-
} catch (error) {
|
|
225
|
-
artifact.cleanup.status = 'failed';
|
|
226
|
-
artifact.status = 'failed';
|
|
227
|
-
artifact.error = error && error.message ? error.message : String(error);
|
|
228
|
-
artifact.warnings.push(`Probe product cleanup failed for ${productId}.`);
|
|
229
|
-
artifact.recoveryInstructions.push(`Delete probe product ${productId} manually in Wix Stores and keep this artifact with the cleanup evidence.`);
|
|
230
|
-
}
|
|
231
|
-
return writeArtifact(artifactPath, artifact);
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
// Runs only against an explicitly selected, already-muted test target. All products are
|
|
235
|
-
// synthetic and hidden. The artifact is saved as IDs are acquired so cleanup is recoverable.
|
|
236
|
-
async function verifyStoresInventoryImport({ wix, siteId, artifactPath } = {}) {
|
|
237
|
-
const inventory = require('./stores-inventory.js');
|
|
238
|
-
const build = require('./wix-build.js');
|
|
239
|
-
const artifact = artifactBase({ command: 'stores inventory-import', siteId, endpoint: '/stores/v3/bulk/inventory-items/create', method: 'POST' });
|
|
240
|
-
artifact.probeProductIds = [];
|
|
241
|
-
artifact.checks = [];
|
|
242
|
-
let stockWrites = 0;
|
|
243
|
-
const client = wix;
|
|
244
|
-
wix = { ...client, send(request) {
|
|
245
|
-
if (request.method !== 'GET' && /\/inventory-items(?:\/|$)/.test(request.url) && !request.url.endsWith('/query')) stockWrites++;
|
|
246
|
-
return client.send(request);
|
|
247
|
-
} };
|
|
248
|
-
const check = (name, passed, detail) => {
|
|
249
|
-
artifact.checks.push({ name, passed, detail });
|
|
250
|
-
writeArtifact(artifactPath, artifact);
|
|
251
|
-
if (!passed) throw new Error(`Inventory probe failed: ${name}`);
|
|
252
|
-
};
|
|
253
|
-
const marker = `inventory-probe-${Date.now()}`;
|
|
254
|
-
const payload = (index, stock) => build.buildProduct({ name: `${marker}-${index}`, visible: false, productType: 'PHYSICAL', variants: [{ price: 1, ...(stock || {}) }] });
|
|
255
|
-
try {
|
|
256
|
-
const mute = await w.getSiteMuteState(wix);
|
|
257
|
-
if (!mute || mute.muted !== true) throw new Error('Inventory probe requires an already-muted disposable test target');
|
|
258
|
-
const locationId = await inventory.resolveInventoryLocation(wix);
|
|
259
|
-
const rows = [];
|
|
260
|
-
for (const [index, state] of [{ inStock: true }, { inStock: false }, { quantity: 0 }, { quantity: 7 }].entries()) {
|
|
261
|
-
const product = await w.createStoresProduct(wix, payload(index));
|
|
262
|
-
if (!product || !product.id) throw new Error('Probe product create returned no identity');
|
|
263
|
-
artifact.probeProductIds.push(product.id); writeArtifact(artifactPath, artifact);
|
|
264
|
-
const variants = product.variantsInfo && product.variantsInfo.variants;
|
|
265
|
-
if (!Array.isArray(variants) || variants.length !== 1 || !variants[0].id) throw new Error('Probe product did not return one variant identity');
|
|
266
|
-
rows.push({ productId: product.id, variantId: variants[0].id, inventory: state });
|
|
267
|
-
}
|
|
268
|
-
const created = await inventory.reconcileInventory(wix, rows, { locationId, expectedCount: 4, verifyAttempts: 5 });
|
|
269
|
-
check('mixed stock create and read-back', created.complete && created.counts.created === 4, created);
|
|
270
|
-
const changed = rows.map((r, i) => ({ ...r, inventory: i % 2 ? { inStock: false } : { quantity: 3 } }));
|
|
271
|
-
const updated = await inventory.reconcileInventory(wix, changed, { locationId, expectedCount: 4, verifyAttempts: 5 });
|
|
272
|
-
check('revisioned updates and tracking-mode changes', updated.complete && updated.counts.updated === 3, updated);
|
|
273
|
-
const beforeRerun = stockWrites;
|
|
274
|
-
const rerun = await inventory.reconcileInventory(wix, changed, { locationId, expectedCount: 4 });
|
|
275
|
-
check('matching rerun performs no stock writes', rerun.complete && rerun.counts.reconciled === 4 && stockWrites === beforeRerun, { ...rerun, observedStockWrites: stockWrites - beforeRerun });
|
|
276
|
-
const singleProduct = await w.createStoresProduct(wix, payload('single'));
|
|
277
|
-
if (!singleProduct || !singleProduct.id) throw new Error('Single probe missing product identity');
|
|
278
|
-
artifact.probeProductIds.push(singleProduct.id); writeArtifact(artifactPath, artifact);
|
|
279
|
-
const singleRow = { productId: singleProduct.id, variantId: singleProduct.variantsInfo.variants[0].id, inventory: { inStock: false } };
|
|
280
|
-
await w.createInventoryItem(wix, { productId: singleRow.productId, variantId: singleRow.variantId, inStock: false, trackQuantity: false });
|
|
281
|
-
const single = await inventory.reconcileInventory(wix, [singleRow], { locationId, expectedCount: 1 });
|
|
282
|
-
check('single-create helper and read-back', single.complete && single.counts.reconciled === 1, single);
|
|
283
|
-
const bulk = await w.bulkCreateStoresProductsWithInventory(wix, [payload('inline-false', { inStock: false }), payload('inline-quantity', { inventoryTracked: true, inventoryQuantity: 5 })], { returnEntity: true });
|
|
284
|
-
for (const result of bulk.results) if (result.success && result.productId) artifact.probeProductIds.push(result.productId);
|
|
285
|
-
writeArtifact(artifactPath, artifact);
|
|
286
|
-
check('inline bulk product creation', bulk.succeeded.length === 2 && bulk.unaccounted === 0, { successes: bulk.succeeded.length, unaccounted: bulk.unaccounted });
|
|
287
|
-
const inlineRows = bulk.succeeded.map((r) => {
|
|
288
|
-
const variants = r.product && r.product.variantsInfo && r.product.variantsInfo.variants;
|
|
289
|
-
if (!variants || variants.length !== 1 || !variants[0].id) throw new Error('Inline probe missing variant identity');
|
|
290
|
-
return { productId: r.productId, variantId: variants[0].id, inventory: r.inputProduct.variantsInfo.variants[0].inventoryItem };
|
|
291
|
-
});
|
|
292
|
-
const inline = await inventory.reconcileInventory(wix, inlineRows, { locationId, expectedCount: 2 });
|
|
293
|
-
check('inline stock persisted without repair', inline.complete && inline.counts.reconciled === 2, inline);
|
|
294
|
-
artifact.status = 'passed';
|
|
295
|
-
} catch (error) { artifact.status = 'failed'; artifact.error = error.message; }
|
|
296
|
-
finally {
|
|
297
|
-
artifact.cleanup = { attempted: artifact.probeProductIds.length > 0, status: artifact.probeProductIds.length ? 'deleted' : 'not_applicable', failedProductIds: [] };
|
|
298
|
-
for (const id of artifact.probeProductIds) {
|
|
299
|
-
try { await w.deleteStoresProduct(wix, id); }
|
|
300
|
-
catch (_) { artifact.cleanup.failedProductIds.push(id); }
|
|
301
|
-
}
|
|
302
|
-
if (artifact.cleanup.failedProductIds.length) {
|
|
303
|
-
artifact.cleanup.status = 'failed'; artifact.status = 'failed';
|
|
304
|
-
artifact.recoveryInstructions.push('Delete only the probe product IDs listed in cleanup.failedProductIds.');
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
return writeArtifact(artifactPath, artifact);
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
module.exports = {
|
|
311
|
-
DEFAULT_VERIFIED_SUBSCRIPTION_PATHS,
|
|
312
|
-
defaultProbeProduct,
|
|
313
|
-
queryFilterByMarker,
|
|
314
|
-
valueAtPath,
|
|
315
|
-
verifyPaths,
|
|
316
|
-
verifyStoresSubscriptionCreate,
|
|
317
|
-
verifyStoresProductCount,
|
|
318
|
-
verifyStoresProductBySourceMarker,
|
|
319
|
-
verifyStoresDeleteProbe,
|
|
320
|
-
verifyStoresInventoryImport,
|
|
321
|
-
};
|
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const { isBlank } = require('./value-utils.js');
|
|
4
|
-
|
|
5
|
-
// rp-target-wix — the DETERMINISTIC WooCommerce tax-rate -> Wix Tax payload builder.
|
|
6
|
-
//
|
|
7
|
-
// Mirrors wix-build.js's role for Stores products: everything here implements, as plain code,
|
|
8
|
-
// the mapping rules already recorded as prose in domains/tax/{domain.json,entities/*.json}. Do
|
|
9
|
-
// not re-derive these rules by LLM judgement per project — read them here, and if a rule changes,
|
|
10
|
-
// change it here and in the domain JSON's mappingGuidance together, since they must stay the same
|
|
11
|
-
// fact stated twice (once for humans, once as code).
|
|
12
|
-
//
|
|
13
|
-
// Scope: Tax Groups / Tax Regions / Manual Tax Mappings only. Tax Settings is a single
|
|
14
|
-
// site-level upsert (see domains/tax/entities/tax-settings.json) with no payload-shaping
|
|
15
|
-
// logic worth a builder — just a boolean passthrough.
|
|
16
|
-
|
|
17
|
-
// ISO 3166-1 alpha-2 countries Wix accepts a `subdivision` for (dev.wix.com Tax Region object,
|
|
18
|
-
// verified live 2026-08-12). Any other country must omit subdivision (or pass '*').
|
|
19
|
-
const SUBDIVISION_ELIGIBLE_COUNTRIES = new Set([
|
|
20
|
-
'AU', 'BR', 'CA', 'FR', 'DE', 'IN', 'IT', 'MX', 'NL', 'PT', 'ES', 'AE', 'GB', 'US',
|
|
21
|
-
]);
|
|
22
|
-
|
|
23
|
-
// Countries Tax Region create rejects outright (dev.wix.com, "embargoed-countries-rejected").
|
|
24
|
-
const EMBARGOED_COUNTRIES = new Set(['CU', 'IR', 'KP', 'SY']);
|
|
25
|
-
|
|
26
|
-
// WooCommerce's `state` column format varies by version/site — sometimes bare ("NY"), sometimes
|
|
27
|
-
// country-prefixed ("US-NY"). Wix stores ISO 3166-2 WITHOUT the country prefix. Never invent a
|
|
28
|
-
// subdivision for a country outside the eligible set — pass none (country-level region) instead.
|
|
29
|
-
function normalizeSubdivision(country, rawState) {
|
|
30
|
-
const countryCode = String(country || '').trim().toUpperCase();
|
|
31
|
-
if (isBlank(rawState)) return undefined;
|
|
32
|
-
if (!SUBDIVISION_ELIGIBLE_COUNTRIES.has(countryCode)) return undefined;
|
|
33
|
-
const raw = String(rawState).trim().toUpperCase();
|
|
34
|
-
const prefix = `${countryCode}-`;
|
|
35
|
-
return raw.startsWith(prefix) ? raw.slice(prefix.length) : raw;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// WooCommerce `rate` is a PERCENTAGE (e.g. "7.5000"). Wix `taxRate` is a decimal-string FRACTION
|
|
39
|
-
// with at most 6 decimal places (e.g. "0.075"). A number, integer, or percent-string all 400.
|
|
40
|
-
function toWixTaxRateFraction(percentage) {
|
|
41
|
-
const n = Number(percentage);
|
|
42
|
-
if (!Number.isFinite(n)) {
|
|
43
|
-
throw new Error(`toWixTaxRateFraction: "${percentage}" is not a finite number`);
|
|
44
|
-
}
|
|
45
|
-
let fixed = (n / 100).toFixed(6);
|
|
46
|
-
if (fixed.includes('.')) {
|
|
47
|
-
fixed = fixed.replace(/0+$/, '');
|
|
48
|
-
if (fixed.endsWith('.')) fixed += '0';
|
|
49
|
-
}
|
|
50
|
-
return fixed;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
// One Wix Tax Region per distinct (country, subdivision) pair — a source can have several rate
|
|
54
|
-
// rows (standard/reduced/zero) sharing one region, which fan out to separate Manual Tax Mappings
|
|
55
|
-
// against that ONE region rather than one region each.
|
|
56
|
-
function groupTaxRatesByRegion(taxRates) {
|
|
57
|
-
const regions = new Map();
|
|
58
|
-
for (const rate of taxRates || []) {
|
|
59
|
-
const country = String(rate.country || '').trim().toUpperCase();
|
|
60
|
-
if (!country) continue;
|
|
61
|
-
const subdivision = normalizeSubdivision(country, rate.state);
|
|
62
|
-
const key = taxRegionDedupeKey({ country, subdivision });
|
|
63
|
-
if (!regions.has(key)) {
|
|
64
|
-
regions.set(key, { country, subdivision, rates: [] });
|
|
65
|
-
}
|
|
66
|
-
regions.get(key).rates.push(rate);
|
|
67
|
-
}
|
|
68
|
-
return [...regions.values()];
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
function taxRegionDedupeKey({ country, subdivision }) {
|
|
72
|
-
return `${String(country || '').trim().toUpperCase()}|${subdivision || ''}`;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
function isEmbargoedCountry(country) {
|
|
76
|
-
return EMBARGOED_COUNTRIES.has(String(country || '').trim().toUpperCase());
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
// `appId` must be resolved live per site via listTaxCalculators/resolveManualTaxCalculatorAppId
|
|
80
|
-
// in wix-writers.js — never hardcoded here, since it's installation-scoped and differs per site.
|
|
81
|
-
function buildTaxRegionInput({ country, subdivision }, { appId, taxIncludedInPrice = false }) {
|
|
82
|
-
if (!appId) throw new Error('buildTaxRegionInput: appId is required (resolve live, never hardcode)');
|
|
83
|
-
const taxRegion = { country: String(country).trim().toUpperCase(), appId, taxIncludedInPrice };
|
|
84
|
-
if (subdivision) taxRegion.subdivision = subdivision;
|
|
85
|
-
return taxRegion;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
function buildTaxGroupInput({ name }) {
|
|
89
|
-
if (isBlank(name)) throw new Error('buildTaxGroupInput: name is required');
|
|
90
|
-
return { name: String(name).trim() };
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
// `taxGroupId`/`taxRegionId` must already exist — resolve both from their own crosswalks before
|
|
94
|
-
// calling. `taxName` is cosmetic (shown at checkout) and never affects the calculated amount.
|
|
95
|
-
function buildManualTaxMappingInput(rate, { taxGroupId, taxRegionId }) {
|
|
96
|
-
if (!taxGroupId) throw new Error('buildManualTaxMappingInput: taxGroupId is required');
|
|
97
|
-
if (!taxRegionId) throw new Error('buildManualTaxMappingInput: taxRegionId is required');
|
|
98
|
-
const mapping = {
|
|
99
|
-
taxGroupId,
|
|
100
|
-
taxRegionId,
|
|
101
|
-
taxRate: toWixTaxRateFraction(rate.rate),
|
|
102
|
-
};
|
|
103
|
-
if (!isBlank(rate.name)) mapping.taxName = String(rate.name).trim();
|
|
104
|
-
return mapping;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
// Create Manual Tax Mapping 409s on a duplicate (taxRegionId, taxGroupId, taxName, taxType,
|
|
108
|
-
// jurisdiction, jurisdictionType) — dedupe on that composite key before creating, since
|
|
109
|
-
// WooCommerce rows differing only in `priority` (no Wix equivalent) would otherwise re-collide.
|
|
110
|
-
//
|
|
111
|
-
// LIVE-VERIFIED 2026-08-15: Query Manual Tax Mapping returns the STRING "UNDEFINED" for an unset
|
|
112
|
-
// `jurisdictionType` (not "" and not the field's absence), while a freshly-built mappingInput that
|
|
113
|
-
// never sets the field is plain JS `undefined` — so comparing a fetched mapping against a
|
|
114
|
-
// newly-built one for the same (region, group) 409'd instead of correctly deduping. Normalize both
|
|
115
|
-
// "" and "UNDEFINED" to the same bucket so a fetched existing mapping and a freshly-built one that
|
|
116
|
-
// both mean "no jurisdictionType" produce the same key.
|
|
117
|
-
function normalizeDedupeField(value) {
|
|
118
|
-
const s = String(value || '').trim();
|
|
119
|
-
return s === 'UNDEFINED' ? '' : s;
|
|
120
|
-
}
|
|
121
|
-
function manualTaxMappingDedupeKey({ taxRegionId, taxGroupId, taxName, taxType, jurisdiction, jurisdictionType }) {
|
|
122
|
-
return [
|
|
123
|
-
taxRegionId,
|
|
124
|
-
taxGroupId,
|
|
125
|
-
normalizeDedupeField(taxName),
|
|
126
|
-
normalizeDedupeField(taxType),
|
|
127
|
-
normalizeDedupeField(jurisdiction),
|
|
128
|
-
normalizeDedupeField(jurisdictionType),
|
|
129
|
-
].join('|');
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
// The four Wix "default" tax groups every site has (VERIFIED live 2026-08-12 via
|
|
133
|
-
// List Default Tax Groups: "Shipping and delivery", "Products", "Services", "Cancellation
|
|
134
|
-
// fees" — see tax-group.json's query-tax-groups-excludes-defaults pitfall). WooCommerce has no
|
|
135
|
-
// equivalent split: a `class: "standard"` rate (or a blank class) is the store's ONE general
|
|
136
|
-
// rate, not a products-only rate — WooCommerce's own `shipping` boolean on a tax rate row
|
|
137
|
-
// exists specifically because the rate is meant to reach beyond products. Wix's
|
|
138
|
-
// Products/Shipping and delivery/Services/Cancellation fees groups are BILLING categories, not
|
|
139
|
-
// TAX-RATE categories, so mapping a standard rate to "Products" only silently zero-rates every
|
|
140
|
-
// other category in that region — a group with no manual tax mapping calculates to EXACTLY
|
|
141
|
-
// ZERO tax (VERIFIED live 2026-08-12, see manual-tax-mapping.json's
|
|
142
|
-
// unmapped-tax-group-calculates-to-exactly-zero-tax finding). That is undercharging, not a
|
|
143
|
-
// faithful migration, so a standard-class rate must get one mapping per default group.
|
|
144
|
-
const DEFAULT_GROUP_NAMES = ['Products', 'Shipping and delivery', 'Services', 'Cancellation fees'];
|
|
145
|
-
|
|
146
|
-
// Which already-created Wix tax groups a WooCommerce rate's Manual Tax Mapping(s) should
|
|
147
|
-
// target. `defaultGroups` is List Default Tax Groups' result; `customGroups` is this project's
|
|
148
|
-
// own created-group tracking, each carrying the `sourceTaxClass` it was created for (from
|
|
149
|
-
// planCustomTaxGroups's plan — a plain Query Tax Groups result has no such field, since Wix
|
|
150
|
-
// itself doesn't know why a custom group exists).
|
|
151
|
-
//
|
|
152
|
-
// A `standard` (or blank) class rate targets every DEFAULT group — never a class-specific
|
|
153
|
-
// custom group (a reduced-rate/zero-rate group exists so a product TAGGED with that class gets
|
|
154
|
-
// a different rate than the store's general one, not the same rate broadened everywhere), and
|
|
155
|
-
// never the Tax Exempt group (no mapping is how exempt is represented at all — this falls out
|
|
156
|
-
// naturally here since Tax Exempt's `sourceTaxClass` is null and no rate's class is ever null).
|
|
157
|
-
// A non-standard class rate targets ONLY its own matching custom group.
|
|
158
|
-
//
|
|
159
|
-
// List Default Tax Groups' own schema (dev.wix.com, checked 2026-08-15) has no locale-invariant
|
|
160
|
-
// key for "which billing category is this" — a TaxGroup is only {id, name, revision, dates}, and
|
|
161
|
-
// the docs' own worked example returns a completely different default set ("Standard Tax") than
|
|
162
|
-
// a live site returns, confirming `name` genuinely varies per site/locale and isn't a fixed
|
|
163
|
-
// constant. `name` is matched here anyway because it's the ONLY field the API offers for this —
|
|
164
|
-
// but matching zero (or some but not all four) of DEFAULT_GROUP_NAMES on a translated or
|
|
165
|
-
// differently-configured site must never fall through to a silent partial fan-out: that would
|
|
166
|
-
// reproduce the exact silent-undercharging bug this function exists to fix, just triggered by
|
|
167
|
-
// site language/config instead of an incomplete implementation. Fail loudly instead, so a human
|
|
168
|
-
// resolves the real name mismatch before any mapping is created.
|
|
169
|
-
function groupsForRate(rate, { defaultGroups = [], customGroups = [] } = {}) {
|
|
170
|
-
const taxClass = String(rate?.class || 'standard').trim() || 'standard';
|
|
171
|
-
if (taxClass === 'standard') {
|
|
172
|
-
const matched = defaultGroups.filter((group) => DEFAULT_GROUP_NAMES.includes(String(group?.name || '').trim()));
|
|
173
|
-
if (matched.length !== DEFAULT_GROUP_NAMES.length) {
|
|
174
|
-
const foundNames = matched.map((group) => group.name);
|
|
175
|
-
const missing = DEFAULT_GROUP_NAMES.filter((name) => !foundNames.includes(name));
|
|
176
|
-
throw new Error(
|
|
177
|
-
`groupsForRate: expected all ${DEFAULT_GROUP_NAMES.length} default tax groups (${DEFAULT_GROUP_NAMES.join(', ')}), `
|
|
178
|
-
+ `found only ${matched.length} (missing: ${missing.join(', ')}). This site's default tax group names may be `
|
|
179
|
-
+ 'translated or otherwise non-standard -- resolve the real names via List Default Tax Groups before mapping, '
|
|
180
|
-
+ 'do not silently map to a partial set.',
|
|
181
|
-
);
|
|
182
|
-
}
|
|
183
|
-
return matched;
|
|
184
|
-
}
|
|
185
|
-
return customGroups.filter((group) => group?.sourceTaxClass === taxClass);
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
// Only create a custom tax group when a real per-product signal exists — never speculatively,
|
|
189
|
-
// just because wc/v3/taxes/classes lists WooCommerce's unused defaults (reduced-rate/zero-rate).
|
|
190
|
-
// `products` here is the discovered wc/v3/products record shape (`tax_class`, `tax_status`).
|
|
191
|
-
function planCustomTaxGroups(products) {
|
|
192
|
-
const plans = [];
|
|
193
|
-
const classesInUse = new Set();
|
|
194
|
-
let hasExempt = false;
|
|
195
|
-
for (const product of products || []) {
|
|
196
|
-
const taxClass = String(product.tax_class || 'standard').trim() || 'standard';
|
|
197
|
-
if (taxClass !== 'standard') classesInUse.add(taxClass);
|
|
198
|
-
if (String(product.tax_status || 'taxable').trim() === 'none') hasExempt = true;
|
|
199
|
-
}
|
|
200
|
-
for (const taxClass of classesInUse) {
|
|
201
|
-
plans.push({ name: taxClass, sourceTaxClass: taxClass, reason: 'non-default WooCommerce tax_class actually assigned to at least one product' });
|
|
202
|
-
}
|
|
203
|
-
if (hasExempt) {
|
|
204
|
-
plans.push({ name: 'Tax Exempt', sourceTaxClass: null, exempt: true, reason: 'at least one product has tax_status=none — dedicated group, deliberately no manual tax mapping in any region' });
|
|
205
|
-
}
|
|
206
|
-
return plans;
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
// "No source has any tax-rate rows" is the majority case — the
|
|
210
|
-
// correct action is to create nothing speculative, not to pre-create empty regions/mappings.
|
|
211
|
-
function shouldSkipTaxDomain(taxRates) {
|
|
212
|
-
return !Array.isArray(taxRates) || taxRates.length === 0;
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
module.exports = {
|
|
216
|
-
SUBDIVISION_ELIGIBLE_COUNTRIES,
|
|
217
|
-
EMBARGOED_COUNTRIES,
|
|
218
|
-
normalizeSubdivision,
|
|
219
|
-
toWixTaxRateFraction,
|
|
220
|
-
groupTaxRatesByRegion,
|
|
221
|
-
taxRegionDedupeKey,
|
|
222
|
-
isEmbargoedCountry,
|
|
223
|
-
buildTaxRegionInput,
|
|
224
|
-
buildTaxGroupInput,
|
|
225
|
-
buildManualTaxMappingInput,
|
|
226
|
-
manualTaxMappingDedupeKey,
|
|
227
|
-
DEFAULT_GROUP_NAMES,
|
|
228
|
-
groupsForRate,
|
|
229
|
-
planCustomTaxGroups,
|
|
230
|
-
shouldSkipTaxDomain,
|
|
231
|
-
};
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const WRITER_ROOT = '/_api/url-mapper/writer/v1/url-mapping';
|
|
4
|
-
|
|
5
|
-
function createUrlMapperTransport({ send, inspectDestination }) {
|
|
6
|
-
if (typeof send !== 'function' || typeof inspectDestination !== 'function') throw new Error('authenticated sender and destination inspection required');
|
|
7
|
-
return {
|
|
8
|
-
inspectDestination,
|
|
9
|
-
async read(key) {
|
|
10
|
-
const result = await send({ method: 'GET', path: `${WRITER_ROOT}/${encodeURIComponent(key)}` });
|
|
11
|
-
if (result && (result.code === 'URL_MAPPER_NOT_FOUND' || result.status === 404)) return null;
|
|
12
|
-
const mapping = result && (result.urlMapping || result.mappingRecord || result);
|
|
13
|
-
if (!mapping || typeof mapping.mapping !== 'string' || typeof mapping.pageIdentifier !== 'string') {
|
|
14
|
-
throw new Error(`URL Mapper read-back for ${key} lacks saved mapping or page identifier`);
|
|
15
|
-
}
|
|
16
|
-
return mapping;
|
|
17
|
-
},
|
|
18
|
-
async write(payload, capability, { mode }) {
|
|
19
|
-
if (!capability || payload.key !== capability.key || payload.urlMapping?.pageIdentifier !== capability.pageIdentifier) {
|
|
20
|
-
throw new Error('URL Mapper payload differs from capability knowledge');
|
|
21
|
-
}
|
|
22
|
-
if (!['create', 'update'].includes(mode)) throw new Error('URL Mapper write mode required');
|
|
23
|
-
return send({ method: mode === 'create' ? 'POST' : 'PUT', path: `${WRITER_ROOT}/${encodeURIComponent(payload.key)}`, body: payload });
|
|
24
|
-
},
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
module.exports = { WRITER_ROOT, createUrlMapperTransport };
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
// Shared scalar-value helpers used across the rp-target-wix builders (tax-build.js,
|
|
4
|
-
// shipping-build.js, gift-card-build.js, ...). Kept tiny and dependency-free on purpose — this is
|
|
5
|
-
// not a general utils dumping ground, just the one helper that was independently duplicated
|
|
6
|
-
// byte-for-byte in three builder files.
|
|
7
|
-
|
|
8
|
-
function isBlank(value) {
|
|
9
|
-
return value == null || String(value).trim() === '';
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
module.exports = {
|
|
13
|
-
isBlank,
|
|
14
|
-
};
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
// Shared deterministic one-to-one comparison; response order is never an identity.
|
|
4
|
-
function resolveInventoryRows(canonical, target) {
|
|
5
|
-
if (!target || !target.id || !Array.isArray(target.variantsInfo?.variants)) throw new Error('Target product omitted variant identities');
|
|
6
|
-
// Stores V3 may re-case option and choice names on write ("ALTERNATIV" reads back
|
|
7
|
-
// "Alternativ", "10m" reads back "10M"; LIVE-VERIFIED 2026-10-15), so names match
|
|
8
|
-
// case-insensitively. A case-only collision still fails below as an ambiguous match.
|
|
9
|
-
const key = (choices) => JSON.stringify(choices.map(c => [String(c.optionName).toLowerCase(), String(c.choiceName).toLowerCase()]).sort((a, b) => JSON.stringify(a).localeCompare(JSON.stringify(b))));
|
|
10
|
-
const targetByChoices = new Map();
|
|
11
|
-
for (const variant of target.variantsInfo.variants) {
|
|
12
|
-
if (!variant.id) throw new Error('Target variant omitted identity');
|
|
13
|
-
const choices = (variant.choices || []).map(c => {
|
|
14
|
-
if (c.optionChoiceNames) return c.optionChoiceNames;
|
|
15
|
-
const options = (target.options || []).filter(o => o.id === c.optionChoiceIds?.optionId);
|
|
16
|
-
if (options.length !== 1) throw new Error('Target option identity is missing or ambiguous');
|
|
17
|
-
const values = (options[0].choicesSettings?.choices || []).filter(v => v.choiceId === c.optionChoiceIds.choiceId);
|
|
18
|
-
if (values.length !== 1) throw new Error('Target choice identity is missing or ambiguous');
|
|
19
|
-
return { optionName: options[0].name, choiceName: values[0].name };
|
|
20
|
-
});
|
|
21
|
-
const identity = key(choices);
|
|
22
|
-
if (targetByChoices.has(identity)) throw new Error('Ambiguous target variant choices');
|
|
23
|
-
targetByChoices.set(identity, variant.id);
|
|
24
|
-
}
|
|
25
|
-
const matched = new Set();
|
|
26
|
-
return canonical.variants.map(variant => {
|
|
27
|
-
const variantId = targetByChoices.get(key(variant.choices));
|
|
28
|
-
if (!variantId || matched.has(variantId)) throw new Error('Source variant has no unique target match');
|
|
29
|
-
matched.add(variantId);
|
|
30
|
-
return { productId: target.id, variantId, inventory: { inStock: variant.inStock } };
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
module.exports = { resolveInventoryRows };
|