@wix/agent-skills 1.36.0 → 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-headless-kit/install/pins.json +1 -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/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-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 -297
- 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,680 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const { isDeniedGatewayRoute } = require('./wp-http.js');
|
|
4
|
-
|
|
5
|
-
const ROUTE_CATEGORIES = new Set([
|
|
6
|
-
'backend_data',
|
|
7
|
-
'backend_metadata',
|
|
8
|
-
'public_commerce_data',
|
|
9
|
-
// A route whose response carries live credentials. Distinct from the other exclusions
|
|
10
|
-
// because those describe scope ("this is presentation, not data"), while this one describes
|
|
11
|
-
// danger: the route holds data we genuinely want (which gateways exist, which are enabled)
|
|
12
|
-
// wrapped around a secret we must never receive. Naming it makes the intent visible in the
|
|
13
|
-
// classification output instead of surfacing only as a transport-level refusal.
|
|
14
|
-
'excluded_credential_bearing',
|
|
15
|
-
'excluded_frontend',
|
|
16
|
-
'excluded_template_editor',
|
|
17
|
-
'excluded_runtime_session',
|
|
18
|
-
'excluded_admin_dashboard',
|
|
19
|
-
'excluded_diagnostics',
|
|
20
|
-
'excluded_integration',
|
|
21
|
-
'excluded_marketplace_setup',
|
|
22
|
-
'excluded_unsupported',
|
|
23
|
-
]);
|
|
24
|
-
|
|
25
|
-
const FRONTEND_RULES = [
|
|
26
|
-
['/wp/v2/pages', 'wp.frontend.pages', 'site composition pages are outside backend data scope'],
|
|
27
|
-
['/wp/v2/navigation', 'wp.frontend.navigation', 'navigation is site composition, not backend data'],
|
|
28
|
-
['/wp/v2/menus', 'wp.frontend.menus', 'menus are site composition, not backend data'],
|
|
29
|
-
['/wp/v2/menu-items', 'wp.frontend.menu-items', 'menu items are site composition, not backend data'],
|
|
30
|
-
['/wp/v2/menu-locations', 'wp.frontend.menu-locations', 'menu locations are presentation configuration'],
|
|
31
|
-
['/wp/v2/search', 'wp.frontend.search', 'search is a frontend lookup helper'],
|
|
32
|
-
['/oembed/1.0/*', 'wp.frontend.oembed', 'oEmbed routes are frontend embedding helpers'],
|
|
33
|
-
];
|
|
34
|
-
|
|
35
|
-
const TEMPLATE_EDITOR_RULES = [
|
|
36
|
-
['/wp/v2/templates*', 'wp.editor.templates', 'templates are theme/editor construction state'],
|
|
37
|
-
['/wp/v2/template-parts*', 'wp.editor.template-parts', 'template parts are theme/editor construction state'],
|
|
38
|
-
['/wp/v2/blocks', 'wp.editor.blocks', 'blocks are editor construction state'],
|
|
39
|
-
['/wp/v2/block-types', 'wp.editor.block-types', 'block types are editor metadata'],
|
|
40
|
-
['/wp/v2/block-directory/*', 'wp.editor.block-directory', 'block directory routes are editor helpers'],
|
|
41
|
-
['/wp/v2/block-patterns/*', 'wp.editor.block-patterns', 'block pattern routes are editor helpers'],
|
|
42
|
-
['/wp/v2/pattern-directory/*', 'wp.editor.pattern-directory', 'pattern directory routes are editor helpers'],
|
|
43
|
-
['/wp/v2/wp_pattern_category', 'wp.editor.pattern-category', 'pattern categories are editor helpers'],
|
|
44
|
-
['/wp-block-editor/*', 'wp.editor.namespace', 'block editor namespace is outside backend data scope'],
|
|
45
|
-
['/wp/v2/widgets', 'wp.editor.widgets', 'widgets are presentation configuration'],
|
|
46
|
-
['/wp/v2/widget-types', 'wp.editor.widget-types', 'widget types are presentation metadata'],
|
|
47
|
-
['/wp/v2/sidebars', 'wp.editor.sidebars', 'sidebars are presentation configuration'],
|
|
48
|
-
['/wp/v2/themes', 'wp.editor.themes', 'themes are presentation configuration'],
|
|
49
|
-
['/wp/v2/font-*', 'wp.editor.fonts', 'font routes describe presentation assets'],
|
|
50
|
-
['/wp/v2/icons', 'wp.editor.icons', 'icons describe presentation assets'],
|
|
51
|
-
];
|
|
52
|
-
|
|
53
|
-
const RUNTIME_RULES = [
|
|
54
|
-
['/wc/store/cart*', 'wc.runtime.cart', 'store cart routes are customer-session state'],
|
|
55
|
-
['/wc/store/checkout*', 'wc.runtime.checkout', 'store checkout routes are customer-session state'],
|
|
56
|
-
['/wc/store/v1/cart*', 'wc.runtime.v1.cart', 'store cart routes are customer-session state'],
|
|
57
|
-
['/wc/store/v1/checkout*', 'wc.runtime.v1.checkout', 'store checkout routes are customer-session state'],
|
|
58
|
-
];
|
|
59
|
-
|
|
60
|
-
const ADMIN_RULES = [
|
|
61
|
-
['/wc-admin/*', 'wc.admin.namespace', 'WooCommerce admin routes are dashboard surfaces'],
|
|
62
|
-
['/wc-analytics/*', 'wc.admin.analytics', 'WooCommerce analytics routes are dashboard/reporting surfaces'],
|
|
63
|
-
['/wc/v1/reports*', 'wc.admin.reports.v1', 'WooCommerce reports are analytics surfaces'],
|
|
64
|
-
['/wc/v2/reports*', 'wc.admin.reports.v2', 'WooCommerce reports are analytics surfaces'],
|
|
65
|
-
['/wc/v3/reports*', 'wc.admin.reports.v3', 'WooCommerce reports are analytics surfaces'],
|
|
66
|
-
];
|
|
67
|
-
|
|
68
|
-
const MARKETPLACE_RULES = [
|
|
69
|
-
['/wc/v3/marketplace/*', 'wc.setup.marketplace', 'WooCommerce marketplace routes are setup surfaces'],
|
|
70
|
-
['/wc/v3/system_status*', 'wc.setup.system-status', 'WooCommerce system status routes are operational diagnostics'],
|
|
71
|
-
['/wc/v3/settings', 'wc.setup.settings', 'WooCommerce settings are setup/configuration surfaces'],
|
|
72
|
-
['/wc/v3/wc_paypal/*', 'wc.setup.paypal', 'WooCommerce PayPal routes are provider setup surfaces'],
|
|
73
|
-
['/wc/v3/wc_stripe/*', 'wc.setup.stripe', 'WooCommerce Stripe routes are provider setup surfaces'],
|
|
74
|
-
['/wccom-site/*', 'wc.setup.wccom-site', 'WooCommerce.com routes are marketplace/setup surfaces'],
|
|
75
|
-
['/wc/gla/*', 'wc.setup.google-listings', 'Google Listings and Ads routes are setup/reporting surfaces'],
|
|
76
|
-
];
|
|
77
|
-
|
|
78
|
-
const DIAGNOSTIC_RULES = [
|
|
79
|
-
['/wp-site-health/*', 'wp.diagnostics.site-health', 'site health routes are diagnostics'],
|
|
80
|
-
['/wp-abilities/*', 'wp.diagnostics.abilities', 'abilities routes are capability discovery'],
|
|
81
|
-
['/serviceapp/*', 'wp.diagnostics.serviceapp', 'service app routes are operational surfaces'],
|
|
82
|
-
['/vip/*', 'wp.diagnostics.vip', 'VIP routes are operational surfaces'],
|
|
83
|
-
];
|
|
84
|
-
|
|
85
|
-
const INTEGRATION_RULES = [
|
|
86
|
-
['/jetpack/*', 'wp.integration.jetpack', 'Jetpack routes are external service or site operations surfaces'],
|
|
87
|
-
['/post-smtp/*', 'wp.integration.post-smtp', 'SMTP routes are mail operations surfaces'],
|
|
88
|
-
['/redirection/*', 'wp.integration.redirection', 'redirection routes are operational helper surfaces'],
|
|
89
|
-
['/yoast/*', 'wp.integration.yoast', 'SEO helper routes are outside backend data scope'],
|
|
90
|
-
['/klaviyo/*', 'wp.integration.klaviyo', 'marketing integration routes are outside backend data scope'],
|
|
91
|
-
['/kb-fluentcrm/*', 'wp.integration.fluentcrm', 'marketing integration routes are outside backend data scope'],
|
|
92
|
-
['/kb-getresponse/*', 'wp.integration.getresponse', 'marketing integration routes are outside backend data scope'],
|
|
93
|
-
['/kb-mailerlite/*', 'wp.integration.mailerlite', 'marketing integration routes are outside backend data scope'],
|
|
94
|
-
['/kb-design-library/*', 'wp.integration.design-library', 'design library routes are presentation helpers'],
|
|
95
|
-
['/kbp/*', 'wp.integration.kbp', 'AI or pattern helper routes are outside backend data scope'],
|
|
96
|
-
];
|
|
97
|
-
|
|
98
|
-
const BACKEND_DATA_RULES = [
|
|
99
|
-
['/wp/v2/posts', 'wp.data.posts', 'posts are durable content records'],
|
|
100
|
-
['/wp/v2/media', 'wp.data.media', 'media are durable asset records'],
|
|
101
|
-
['/wp/v2/categories', 'wp.data.categories', 'categories are durable taxonomy records'],
|
|
102
|
-
['/wp/v2/tags', 'wp.data.tags', 'tags are durable taxonomy records'],
|
|
103
|
-
['/wp/v2/comments', 'wp.data.comments', 'comments are durable content records'],
|
|
104
|
-
['/wc/v3/products/attributes*', 'wc.data.product-attributes', 'WooCommerce product attributes are canonical store data'],
|
|
105
|
-
['/wc/v3/products/categories*', 'wc.data.product-categories', 'WooCommerce product categories are canonical store data'],
|
|
106
|
-
['/wc/v3/products/tags*', 'wc.data.product-tags', 'WooCommerce product tags are canonical store data'],
|
|
107
|
-
['/wc/v3/products/shipping_classes*', 'wc.data.shipping-classes', 'WooCommerce shipping classes are canonical store data'],
|
|
108
|
-
['/wc/v3/products*', 'wc.data.products', 'WooCommerce products are canonical store data'],
|
|
109
|
-
['/wc/v3/coupons*', 'wc.data.coupons', 'WooCommerce coupons are canonical store data'],
|
|
110
|
-
['/wc/v3/orders*', 'wc.data.orders', 'WooCommerce orders are canonical store data'],
|
|
111
|
-
['/wc/v3/refunds*', 'wc.data.refunds', 'WooCommerce refunds are canonical store data'],
|
|
112
|
-
['/wc/v3/customers*', 'wc.data.customers', 'WooCommerce customers are canonical store data'],
|
|
113
|
-
// Must precede /wc/v3/taxes* (first-match-wins) — it's a prefix of that route.
|
|
114
|
-
['/wc/v3/taxes/classes*', 'wc.data.tax-classes', 'WooCommerce tax classes are canonical store data'],
|
|
115
|
-
['/wc/v3/taxes*', 'wc.data.taxes', 'WooCommerce taxes are canonical store data'],
|
|
116
|
-
// The store's OWN configuration: address, currency, which countries it sells to, whether tax
|
|
117
|
-
// is calculated. Canonical store data, not marketplace noise — it was landing in
|
|
118
|
-
// excluded_unsupported and was never sampled on any run, so a migrated site published with an
|
|
119
|
-
// empty business address and nobody noticed.
|
|
120
|
-
// NOTE the REST index advertises the PARAMETERIZED form `/wc/v3/settings/(?P<group>...)`, not
|
|
121
|
-
// this literal, so this rule alone does not cause a fetch — the group is read directly by the
|
|
122
|
-
// caller, the same way a shipping zone's /locations and /methods sub-resources are. The rule
|
|
123
|
-
// exists so that when the literal IS advertised it is classified as data rather than excluded.
|
|
124
|
-
['/wc/v3/settings/general', 'wc.data.store-settings-general', 'WooCommerce general settings hold the store address, currency and selling countries — canonical store configuration'],
|
|
125
|
-
['/wc/v3/shipping/zones', 'wc.data.shipping-zones', 'WooCommerce shipping zones are canonical store configuration'],
|
|
126
|
-
['/wc/v3/shipping_methods', 'wc.data.shipping-method-types', 'WooCommerce shipping method types are canonical store configuration'],
|
|
127
|
-
];
|
|
128
|
-
|
|
129
|
-
const BACKEND_METADATA_RULES = [
|
|
130
|
-
{
|
|
131
|
-
pattern: '/wc/v3/data/currencies*',
|
|
132
|
-
ruleId: 'wc.metadata.currencies',
|
|
133
|
-
reason: 'currency metadata may be needed to interpret WooCommerce records',
|
|
134
|
-
requiredPatterns: ['/wc/v3/products*', '/wc/v3/orders*', '/wc/v3/coupons*'],
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
pattern: '/wc/v3/data/countries*',
|
|
138
|
-
ruleId: 'wc.metadata.countries',
|
|
139
|
-
reason: 'country metadata may be needed to interpret WooCommerce tax and customer records',
|
|
140
|
-
requiredPatterns: ['/wc/v3/customers*', '/wc/v3/taxes*', '/wc/v3/orders*'],
|
|
141
|
-
},
|
|
142
|
-
];
|
|
143
|
-
|
|
144
|
-
// Route -> extra query parameters the sampler must send to see the WHOLE collection.
|
|
145
|
-
//
|
|
146
|
-
// A WP REST collection route is free to apply a default filter when the caller sends no
|
|
147
|
-
// parameters, and several do. Discovery samples with `per_page` and nothing else, so it
|
|
148
|
-
// silently sees the filtered subset and the plan under-counts — the entity looks smaller
|
|
149
|
-
// than it is and the hidden records never reach the mapper. This is a CLASS of bug, not one
|
|
150
|
-
// route: any route with a defaulted status/type/scope filter has it.
|
|
151
|
-
//
|
|
152
|
-
// The fix is a table, not a special case in the sampler: add the route and the parameters
|
|
153
|
-
// that turn the filter off, with the reason. Kept next to the other route pattern tables
|
|
154
|
-
// (BACKEND_DATA_RULES et al.) because these are facts about core routes; patterns use the
|
|
155
|
-
// same `*` suffix matching, longest pattern wins, and a route with no entry gets `{}`.
|
|
156
|
-
const ROUTE_DEFAULT_QUERY_RULES = [
|
|
157
|
-
[
|
|
158
|
-
'/wc/v3/products/reviews*',
|
|
159
|
-
{ status: 'all' },
|
|
160
|
-
'WooCommerce defaults product reviews to status=approved, hiding hold/spam/trash rows; observed live 2026-08-16: on-hold reviews are invisible to the plan unless status=all is passed',
|
|
161
|
-
],
|
|
162
|
-
];
|
|
163
|
-
|
|
164
|
-
function defaultQueryRuleFor(routePath) {
|
|
165
|
-
const normalized = normalizeRoutePath(routePath);
|
|
166
|
-
return ROUTE_DEFAULT_QUERY_RULES
|
|
167
|
-
.filter(([pattern]) => routeMatchesPattern(normalized, pattern))
|
|
168
|
-
.sort((a, b) => b[0].length - a[0].length)[0] || null;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
// The query parameters to add when sampling `routePath`, or {} when the route has no
|
|
172
|
-
// documented default filter. Copied so a caller cannot mutate the rule table; callers merge
|
|
173
|
-
// their own paging parameters over the result.
|
|
174
|
-
function defaultQueryFor(routePath) {
|
|
175
|
-
const rule = defaultQueryRuleFor(routePath);
|
|
176
|
-
return rule ? { ...rule[1] } : {};
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
// The human-readable reason a default query applies, for the discovery note that tells a
|
|
180
|
-
// reader why this route was sampled with extra parameters. Null when none applies.
|
|
181
|
-
function defaultQueryReasonFor(routePath) {
|
|
182
|
-
const rule = defaultQueryRuleFor(routePath);
|
|
183
|
-
return rule ? rule[2] : null;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
// Plugin route rules are DATA, not code: they come from the declarative profiles under
|
|
187
|
-
// plugins/. Adding or correcting a plugin is a JSON edit plus a fixture, never a change
|
|
188
|
-
// here. Loaded once and memoized; tests inject rules directly via overrides.pluginRules.
|
|
189
|
-
let memoizedPluginRules = null;
|
|
190
|
-
|
|
191
|
-
function defaultPluginRules() {
|
|
192
|
-
if (memoizedPluginRules) return memoizedPluginRules;
|
|
193
|
-
try {
|
|
194
|
-
// Required lazily so this module stays usable (with no plugin rules) if the profile
|
|
195
|
-
// directory is absent, e.g. a partial install.
|
|
196
|
-
const { pluginsRoot, buildRouteRules } = require('./plugin-knowledge.js');
|
|
197
|
-
memoizedPluginRules = buildRouteRules(pluginsRoot());
|
|
198
|
-
} catch (error) {
|
|
199
|
-
memoizedPluginRules = { dataRules: [], excludeRules: [], loadError: error.message };
|
|
200
|
-
}
|
|
201
|
-
return memoizedPluginRules;
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
function resetPluginRuleCache() {
|
|
205
|
-
memoizedPluginRules = null;
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
const LEGACY_WC_PREFIXES = [
|
|
209
|
-
'/wc/v1/products',
|
|
210
|
-
'/wc/v1/coupons',
|
|
211
|
-
'/wc/v1/orders',
|
|
212
|
-
'/wc/v1/refunds',
|
|
213
|
-
'/wc/v1/customers',
|
|
214
|
-
'/wc/v1/taxes',
|
|
215
|
-
'/wc/v1/taxes/classes',
|
|
216
|
-
'/wc/v2/products',
|
|
217
|
-
'/wc/v2/coupons',
|
|
218
|
-
'/wc/v2/orders',
|
|
219
|
-
'/wc/v2/refunds',
|
|
220
|
-
'/wc/v2/customers',
|
|
221
|
-
'/wc/v2/taxes',
|
|
222
|
-
'/wc/v2/taxes/classes',
|
|
223
|
-
];
|
|
224
|
-
|
|
225
|
-
function normalizeRoutePath(routePath) {
|
|
226
|
-
if (typeof routePath !== 'string' || routePath.length === 0) {
|
|
227
|
-
return '/';
|
|
228
|
-
}
|
|
229
|
-
return routePath.startsWith('/') ? routePath : `/${routePath}`;
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
function routeMatchesPattern(routePath, pattern) {
|
|
233
|
-
const route = normalizeRoutePath(routePath);
|
|
234
|
-
if (pattern.endsWith('/*')) {
|
|
235
|
-
const prefix = pattern.slice(0, -1);
|
|
236
|
-
return route.startsWith(prefix);
|
|
237
|
-
}
|
|
238
|
-
if (pattern.endsWith('*')) {
|
|
239
|
-
return route.startsWith(pattern.slice(0, -1));
|
|
240
|
-
}
|
|
241
|
-
return route === pattern;
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
// A WP REST index parameterized route looks like /wc/v3/orders/(?P<id>[\d]+)/notes.
|
|
245
|
-
// Normalizing every parameter segment to the same {parentId} placeholder a plugin-rest-child
|
|
246
|
-
// entity's `route` template uses lets that template be checked against the index without
|
|
247
|
-
// needing to know (or match) the parameter's name.
|
|
248
|
-
function normalizeIndexRouteTemplate(routePath) {
|
|
249
|
-
return routePath.replace(/\(\?P<[^>]+>[^)]*\)/g, '{parentId}');
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
// Whether the site's REST index advertises a route matching a plugin-rest-child entity's
|
|
253
|
-
// templated route (e.g. /wc/v3/orders/{parentId}/notes). This is a presence check only — it
|
|
254
|
-
// says the sub-resource exists on this site, not that any parent record actually has data
|
|
255
|
-
// there; that requires a live per-parent sample (see wp-discovery.js sampleChildEntities).
|
|
256
|
-
function childRouteAdvertised(restIndexRoutes, template) {
|
|
257
|
-
const routes = restIndexRoutes && typeof restIndexRoutes === 'object' ? Object.keys(restIndexRoutes) : [];
|
|
258
|
-
return routes.some((route) => normalizeIndexRouteTemplate(route) === template);
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
function findMatchingRule(routePath, rules) {
|
|
262
|
-
for (const rule of rules) {
|
|
263
|
-
const [pattern, ruleId, reason] = rule;
|
|
264
|
-
if (routeMatchesPattern(routePath, pattern)) {
|
|
265
|
-
return { ruleId, reason };
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
return null;
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
// Route patterns for the credential-bearing category, listed so coreRulePatterns() can refuse a
|
|
272
|
-
// plugin profile that tries to declare one of them as a data route. The MATCH itself is
|
|
273
|
-
// isDeniedGatewayRoute() in wp-http.js — one definition of "this is a gateway route" driving
|
|
274
|
-
// both the classifier and the transport deny, so the two layers cannot drift into disagreeing
|
|
275
|
-
// about which routes they cover.
|
|
276
|
-
const CREDENTIAL_BEARING_PATTERNS = [
|
|
277
|
-
'/wc/v1/payment_gateways*',
|
|
278
|
-
'/wc/v2/payment_gateways*',
|
|
279
|
-
'/wc/v3/payment_gateways*',
|
|
280
|
-
];
|
|
281
|
-
|
|
282
|
-
const CREDENTIAL_BEARING_REASON =
|
|
283
|
-
'WooCommerce payment-gateway routes return each gateway\'s full settings object, including live '
|
|
284
|
-
+ 'API keys and secrets; read gateway identity and enablement through fetchGatewaySummary() instead';
|
|
285
|
-
|
|
286
|
-
function actionForCategory(category) {
|
|
287
|
-
if (category === 'backend_data' || category === 'public_commerce_data') {
|
|
288
|
-
return 'sample';
|
|
289
|
-
}
|
|
290
|
-
if (category === 'backend_metadata') {
|
|
291
|
-
return 'metadata';
|
|
292
|
-
}
|
|
293
|
-
return 'skip';
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
function makeClassification(candidate, category, reason, ruleId, extra = {}) {
|
|
297
|
-
return {
|
|
298
|
-
routePath: candidate.routePath,
|
|
299
|
-
namespace: candidate.namespace,
|
|
300
|
-
category,
|
|
301
|
-
reason,
|
|
302
|
-
ruleId,
|
|
303
|
-
sampleByDefault: category === 'backend_data',
|
|
304
|
-
canIncludeByOverride: category !== 'backend_data' && category !== 'excluded_credential_bearing',
|
|
305
|
-
includedByOverride: false,
|
|
306
|
-
excludedByOverride: false,
|
|
307
|
-
effectiveAction: actionForCategory(category),
|
|
308
|
-
...extra,
|
|
309
|
-
};
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
function candidateHasCollectionShape(candidate) {
|
|
313
|
-
return Boolean(candidate.supportsPagination || candidate.getEndpoint?.args?.per_page || candidate.getEndpoint?.args?.page);
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
function hasSchema(candidate) {
|
|
317
|
-
return Boolean(candidate.getEndpoint?.schema || candidate.routeDefinition?.schema);
|
|
318
|
-
}
|
|
319
|
-
|
|
320
|
-
function classifyStoreCatalogRoute(candidate, routeSet, options = {}) {
|
|
321
|
-
const routePath = candidate.routePath;
|
|
322
|
-
let canonicalRoute = null;
|
|
323
|
-
let ruleId = null;
|
|
324
|
-
let reason = null;
|
|
325
|
-
|
|
326
|
-
if (routeMatchesPattern(routePath, '/wc/store/v1/products/categories*')) {
|
|
327
|
-
canonicalRoute = '/wc/v3/products/categories';
|
|
328
|
-
ruleId = 'wc.public-store.product-categories';
|
|
329
|
-
reason = 'WooCommerce Store API product categories expose durable public commerce taxonomy data';
|
|
330
|
-
} else if (routeMatchesPattern(routePath, '/wc/store/v1/products*')) {
|
|
331
|
-
canonicalRoute = '/wc/v3/products';
|
|
332
|
-
ruleId = 'wc.public-store.products';
|
|
333
|
-
reason = 'WooCommerce Store API products expose durable public commerce catalog data';
|
|
334
|
-
} else {
|
|
335
|
-
return null;
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
const commerceMode = options.commerceMode || 'authenticated';
|
|
339
|
-
if (commerceMode !== 'public' && routeSet.has(canonicalRoute)) {
|
|
340
|
-
return makeClassification(
|
|
341
|
-
candidate,
|
|
342
|
-
'excluded_unsupported',
|
|
343
|
-
`duplicated by canonical ${canonicalRoute} for authenticated/private commerce reads`,
|
|
344
|
-
'wc.public-store.duplicate',
|
|
345
|
-
{ duplicateOf: canonicalRoute },
|
|
346
|
-
);
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
return makeClassification(candidate, 'public_commerce_data', reason, ruleId, {
|
|
350
|
-
canonicalRoute: routeSet.has(canonicalRoute) ? canonicalRoute : null,
|
|
351
|
-
commerceMode,
|
|
352
|
-
});
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
function classifyLegacyWooCommerceRoute(candidate, routeSet) {
|
|
356
|
-
const routePath = candidate.routePath;
|
|
357
|
-
const legacyPrefix = LEGACY_WC_PREFIXES.find((prefix) => routeMatchesPattern(routePath, `${prefix}*`));
|
|
358
|
-
if (!legacyPrefix) {
|
|
359
|
-
return null;
|
|
360
|
-
}
|
|
361
|
-
|
|
362
|
-
const canonicalRoute = routePath.replace(/^\/wc\/v[12]\//, '/wc/v3/');
|
|
363
|
-
if (routeSet.has(canonicalRoute)) {
|
|
364
|
-
return makeClassification(
|
|
365
|
-
candidate,
|
|
366
|
-
'excluded_unsupported',
|
|
367
|
-
`duplicated by canonical ${canonicalRoute}`,
|
|
368
|
-
'wc.duplicate.legacy-version',
|
|
369
|
-
{ duplicateOf: canonicalRoute },
|
|
370
|
-
);
|
|
371
|
-
}
|
|
372
|
-
|
|
373
|
-
return makeClassification(
|
|
374
|
-
candidate,
|
|
375
|
-
'backend_data',
|
|
376
|
-
'legacy WooCommerce data route accepted because wc/v3 equivalent is unavailable',
|
|
377
|
-
'wc.data.legacy',
|
|
378
|
-
);
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
const EXCLUSION_RULE_GROUPS = [
|
|
382
|
-
['excluded_frontend', FRONTEND_RULES],
|
|
383
|
-
['excluded_template_editor', TEMPLATE_EDITOR_RULES],
|
|
384
|
-
['excluded_runtime_session', RUNTIME_RULES],
|
|
385
|
-
['excluded_admin_dashboard', ADMIN_RULES],
|
|
386
|
-
['excluded_marketplace_setup', MARKETPLACE_RULES],
|
|
387
|
-
['excluded_diagnostics', DIAGNOSTIC_RULES],
|
|
388
|
-
['excluded_integration', INTEGRATION_RULES],
|
|
389
|
-
];
|
|
390
|
-
|
|
391
|
-
function findExclusion(routePath) {
|
|
392
|
-
for (const [category, rules] of EXCLUSION_RULE_GROUPS) {
|
|
393
|
-
const rule = findMatchingRule(routePath, rules);
|
|
394
|
-
if (rule) return { category, ...rule };
|
|
395
|
-
}
|
|
396
|
-
return null;
|
|
397
|
-
}
|
|
398
|
-
|
|
399
|
-
// Every route pattern owned by the classifier itself. Exported so the plugin knowledge
|
|
400
|
-
// validator can refuse a profile route that silently shadows a core rule.
|
|
401
|
-
function coreRulePatterns() {
|
|
402
|
-
const patterns = new Set(CREDENTIAL_BEARING_PATTERNS);
|
|
403
|
-
for (const [, rules] of EXCLUSION_RULE_GROUPS) {
|
|
404
|
-
for (const [pattern] of rules) patterns.add(pattern);
|
|
405
|
-
}
|
|
406
|
-
for (const [pattern] of BACKEND_DATA_RULES) patterns.add(pattern);
|
|
407
|
-
for (const rule of BACKEND_METADATA_RULES) patterns.add(rule.pattern);
|
|
408
|
-
return patterns;
|
|
409
|
-
}
|
|
410
|
-
|
|
411
|
-
function classifyBaseRoute(candidate, routeSet, options = {}) {
|
|
412
|
-
const routePath = candidate.routePath;
|
|
413
|
-
const pluginRules = options.pluginRules || { dataRules: [], excludeRules: [] };
|
|
414
|
-
|
|
415
|
-
// FIRST, above the plugin profile rules and above every exclusion family. A profile's
|
|
416
|
-
// explicitly-listed data route beats an exclusion family by design, which is exactly why this
|
|
417
|
-
// check has to sit above that mechanism rather than inside it — a credential-bearing route is
|
|
418
|
-
// not a scope judgement a plugin author gets to overturn.
|
|
419
|
-
if (isDeniedGatewayRoute(routePath)) {
|
|
420
|
-
return makeClassification(candidate, 'excluded_credential_bearing', CREDENTIAL_BEARING_REASON, 'wc.credential-bearing.payment-gateways');
|
|
421
|
-
}
|
|
422
|
-
|
|
423
|
-
// Precedence: profile excludeRoutes > profile data routes > existing
|
|
424
|
-
// category rules > collection-shape fallback > unsupported.default. Profile data routes
|
|
425
|
-
// beat exclusion families because an explicitly listed route IS the per-capability
|
|
426
|
-
// opt-in; profiles cannot use a broad wildcard to reopen a family (validator enforces
|
|
427
|
-
// at least two concrete leading segments).
|
|
428
|
-
const pluginExclusion = findMatchingRule(routePath, pluginRules.excludeRules);
|
|
429
|
-
if (pluginExclusion) {
|
|
430
|
-
const existing = findExclusion(routePath);
|
|
431
|
-
return makeClassification(
|
|
432
|
-
candidate,
|
|
433
|
-
existing ? existing.category : 'excluded_unsupported',
|
|
434
|
-
pluginExclusion.reason,
|
|
435
|
-
pluginExclusion.ruleId,
|
|
436
|
-
);
|
|
437
|
-
}
|
|
438
|
-
|
|
439
|
-
const pluginData = findMatchingRule(routePath, pluginRules.dataRules);
|
|
440
|
-
if (pluginData) {
|
|
441
|
-
return makeClassification(candidate, 'backend_data', pluginData.reason, pluginData.ruleId);
|
|
442
|
-
}
|
|
443
|
-
|
|
444
|
-
const exclusion = findExclusion(routePath);
|
|
445
|
-
if (exclusion) {
|
|
446
|
-
return makeClassification(candidate, exclusion.category, exclusion.reason, exclusion.ruleId);
|
|
447
|
-
}
|
|
448
|
-
|
|
449
|
-
const storeCatalogClassification = classifyStoreCatalogRoute(candidate, routeSet, options);
|
|
450
|
-
if (storeCatalogClassification) {
|
|
451
|
-
return storeCatalogClassification;
|
|
452
|
-
}
|
|
453
|
-
|
|
454
|
-
const legacyWooCommerce = classifyLegacyWooCommerceRoute(candidate, routeSet);
|
|
455
|
-
if (legacyWooCommerce) {
|
|
456
|
-
return legacyWooCommerce;
|
|
457
|
-
}
|
|
458
|
-
|
|
459
|
-
const dataRule = findMatchingRule(routePath, BACKEND_DATA_RULES);
|
|
460
|
-
if (dataRule) {
|
|
461
|
-
return makeClassification(candidate, 'backend_data', dataRule.reason, dataRule.ruleId);
|
|
462
|
-
}
|
|
463
|
-
|
|
464
|
-
const metadataRule = BACKEND_METADATA_RULES.find((rule) => routeMatchesPattern(routePath, rule.pattern));
|
|
465
|
-
if (metadataRule) {
|
|
466
|
-
return makeClassification(candidate, 'backend_metadata', metadataRule.reason, metadataRule.ruleId, {
|
|
467
|
-
requiredPatterns: metadataRule.requiredPatterns,
|
|
468
|
-
});
|
|
469
|
-
}
|
|
470
|
-
|
|
471
|
-
// Registered non-core post types and taxonomies are persisted-record collections by
|
|
472
|
-
// definition, so /wp/v2/types + /wp/v2/taxonomies are positive evidence rather than a
|
|
473
|
-
// heuristic. This is the rule that makes custom post types discoverable at all:
|
|
474
|
-
// VERIFIED LIVE 2026-07-30 that the WordPress REST index advertises `schema` on ZERO
|
|
475
|
-
// routes, so the collection-shape fallbacks below — which
|
|
476
|
-
// require hasSchema() — never fire in production. Without this rule a plugin CPT is
|
|
477
|
-
// invisible unless someone hardcodes its route.
|
|
478
|
-
const registered = options.registeredRestBases instanceof Map
|
|
479
|
-
? options.registeredRestBases.get(routePath)
|
|
480
|
-
: null;
|
|
481
|
-
if (registered) {
|
|
482
|
-
return makeClassification(
|
|
483
|
-
candidate,
|
|
484
|
-
'backend_data',
|
|
485
|
-
`${registered.kind === 'taxonomy' ? 'taxonomy' : 'post type'} "${registered.slug}" is registered and REST-visible, so its collection holds persisted records`,
|
|
486
|
-
'wp.data.registered-type',
|
|
487
|
-
{ registeredType: registered.slug, registeredKind: registered.kind, hierarchical: registered.hierarchical === true },
|
|
488
|
-
);
|
|
489
|
-
}
|
|
490
|
-
|
|
491
|
-
if (candidate.namespace === 'wp/v2' && candidateHasCollectionShape(candidate) && hasSchema(candidate)) {
|
|
492
|
-
return makeClassification(
|
|
493
|
-
candidate,
|
|
494
|
-
'backend_data',
|
|
495
|
-
'wp/v2 collection route has persisted-record shape and is not otherwise excluded',
|
|
496
|
-
'wp.data.custom-collection',
|
|
497
|
-
);
|
|
498
|
-
}
|
|
499
|
-
|
|
500
|
-
if (candidateHasCollectionShape(candidate) && hasSchema(candidate)) {
|
|
501
|
-
return makeClassification(
|
|
502
|
-
candidate,
|
|
503
|
-
'backend_data',
|
|
504
|
-
'collection route has persisted-record REST shape and is not otherwise excluded',
|
|
505
|
-
'plugin.data.collection-shape',
|
|
506
|
-
);
|
|
507
|
-
}
|
|
508
|
-
|
|
509
|
-
return makeClassification(
|
|
510
|
-
candidate,
|
|
511
|
-
'excluded_unsupported',
|
|
512
|
-
'route is not in the backend data allowlist and does not have an accepted collection shape',
|
|
513
|
-
'unsupported.default',
|
|
514
|
-
);
|
|
515
|
-
}
|
|
516
|
-
|
|
517
|
-
function normalizeList(values) {
|
|
518
|
-
if (!Array.isArray(values)) {
|
|
519
|
-
return [];
|
|
520
|
-
}
|
|
521
|
-
return values.filter(Boolean).map(String);
|
|
522
|
-
}
|
|
523
|
-
|
|
524
|
-
function normalizeOverrides(overrides = {}) {
|
|
525
|
-
return {
|
|
526
|
-
includeRoutes: normalizeList(overrides.includeRoutes).map(normalizeRoutePath),
|
|
527
|
-
includeNamespaces: normalizeList(overrides.includeNamespaces),
|
|
528
|
-
includeExcludedCategories: normalizeList(overrides.includeExcludedCategories),
|
|
529
|
-
excludeRoutes: normalizeList(overrides.excludeRoutes).map(normalizeRoutePath),
|
|
530
|
-
overrideReason: overrides.overrideReason ? String(overrides.overrideReason) : null,
|
|
531
|
-
commerceMode: overrides.commerceMode === 'public' ? 'public' : 'authenticated',
|
|
532
|
-
// Tests and callers may inject rules; otherwise the checked-in profiles are used.
|
|
533
|
-
pluginRules: overrides.pluginRules || defaultPluginRules(),
|
|
534
|
-
registeredRestBases: overrides.registeredRestBases instanceof Map ? overrides.registeredRestBases : null,
|
|
535
|
-
};
|
|
536
|
-
}
|
|
537
|
-
|
|
538
|
-
// Build the route -> registered-type lookup consumed by the wp.data.registered-type rule.
|
|
539
|
-
// Core types/taxonomies are excluded: they already have explicit allowlist rules, or are
|
|
540
|
-
// deliberately excluded site-composition surfaces.
|
|
541
|
-
const CORE_POST_TYPE_SLUGS = new Set([
|
|
542
|
-
'post', 'page', 'attachment', 'nav_menu_item', 'wp_block', 'wp_template',
|
|
543
|
-
'wp_template_part', 'wp_navigation', 'wp_font_family', 'wp_font_face', 'wp_global_styles',
|
|
544
|
-
'product', 'product_variation', 'shop_order', 'shop_order_refund', 'shop_coupon',
|
|
545
|
-
]);
|
|
546
|
-
const CORE_TAXONOMY_SLUGS = new Set([
|
|
547
|
-
'category', 'post_tag', 'nav_menu', 'link_category', 'post_format', 'wp_pattern_category',
|
|
548
|
-
'product_cat', 'product_tag', 'product_brand', 'product_shipping_class', 'product_type', 'product_visibility',
|
|
549
|
-
]);
|
|
550
|
-
|
|
551
|
-
function buildRegisteredRestBases({ types = null, taxonomies = null } = {}) {
|
|
552
|
-
const map = new Map();
|
|
553
|
-
const add = (kind, slug, entry, coreSlugs) => {
|
|
554
|
-
if (!entry || coreSlugs.has(slug)) return;
|
|
555
|
-
if (entry.show_in_rest === false) return;
|
|
556
|
-
const restBase = entry.rest_base || entry.slug || slug;
|
|
557
|
-
if (!restBase) return;
|
|
558
|
-
const namespace = entry.rest_namespace || 'wp/v2';
|
|
559
|
-
map.set(`/${namespace}/${restBase}`, {
|
|
560
|
-
kind,
|
|
561
|
-
slug,
|
|
562
|
-
restBase,
|
|
563
|
-
hierarchical: entry.hierarchical === true,
|
|
564
|
-
attachedToTypes: Array.isArray(entry.types) ? [...entry.types] : [],
|
|
565
|
-
});
|
|
566
|
-
};
|
|
567
|
-
for (const [slug, entry] of Object.entries(types || {})) add('post-type', slug, entry, CORE_POST_TYPE_SLUGS);
|
|
568
|
-
for (const [slug, entry] of Object.entries(taxonomies || {})) add('taxonomy', slug, entry, CORE_TAXONOMY_SLUGS);
|
|
569
|
-
return map;
|
|
570
|
-
}
|
|
571
|
-
|
|
572
|
-
function isIncludedCategory(category, includeExcludedCategories) {
|
|
573
|
-
return includeExcludedCategories.includes(category) || includeExcludedCategories.includes('all');
|
|
574
|
-
}
|
|
575
|
-
|
|
576
|
-
function finalizeMetadataActions(classifications) {
|
|
577
|
-
const sampledRoutes = classifications
|
|
578
|
-
.filter((classification) => classification.effectiveAction === 'sample')
|
|
579
|
-
.map((classification) => classification.routePath);
|
|
580
|
-
|
|
581
|
-
return classifications.map((classification) => {
|
|
582
|
-
if (classification.category !== 'backend_metadata' || classification.includedByOverride || classification.excludedByOverride) {
|
|
583
|
-
return classification;
|
|
584
|
-
}
|
|
585
|
-
|
|
586
|
-
const requiredPatterns = Array.isArray(classification.requiredPatterns) ? classification.requiredPatterns : [];
|
|
587
|
-
const hasRelatedSampledRoute = requiredPatterns.some((pattern) =>
|
|
588
|
-
sampledRoutes.some((routePath) => routeMatchesPattern(routePath, pattern)));
|
|
589
|
-
|
|
590
|
-
if (hasRelatedSampledRoute) {
|
|
591
|
-
return { ...classification, effectiveAction: 'metadata' };
|
|
592
|
-
}
|
|
593
|
-
|
|
594
|
-
return {
|
|
595
|
-
...classification,
|
|
596
|
-
effectiveAction: 'skip',
|
|
597
|
-
sampleByDefault: false,
|
|
598
|
-
reason: `${classification.reason}; no related sampled backend route is in scope`,
|
|
599
|
-
};
|
|
600
|
-
});
|
|
601
|
-
}
|
|
602
|
-
|
|
603
|
-
function classifyRoutes(candidates, overrides = {}) {
|
|
604
|
-
const normalizedOverrides = normalizeOverrides(overrides);
|
|
605
|
-
const routeSet = new Set(candidates.map((candidate) => candidate.routePath));
|
|
606
|
-
let classifications = candidates.map((candidate) => {
|
|
607
|
-
const classification = classifyBaseRoute(candidate, routeSet, normalizedOverrides);
|
|
608
|
-
|
|
609
|
-
if (normalizedOverrides.excludeRoutes.includes(candidate.routePath)) {
|
|
610
|
-
return {
|
|
611
|
-
...classification,
|
|
612
|
-
excludedByOverride: true,
|
|
613
|
-
includedByOverride: false,
|
|
614
|
-
effectiveAction: 'skip',
|
|
615
|
-
sampleByDefault: false,
|
|
616
|
-
overrideReason: normalizedOverrides.overrideReason,
|
|
617
|
-
};
|
|
618
|
-
}
|
|
619
|
-
|
|
620
|
-
// `--include-route` and `--include-excluded-category` are operator overrides for scope
|
|
621
|
-
// judgements. They are not an override for a route that hands back live credentials, so a
|
|
622
|
-
// credential-bearing route stays `skip` no matter what was passed. The transport refuses it
|
|
623
|
-
// as well (wp-http.js); this layer is what keeps the CLI's own report honest rather than
|
|
624
|
-
// promising a sample it will never take.
|
|
625
|
-
const includeRoute = normalizedOverrides.includeRoutes.includes(candidate.routePath);
|
|
626
|
-
const includeCategory = isIncludedCategory(classification.category, normalizedOverrides.includeExcludedCategories);
|
|
627
|
-
if ((includeRoute || includeCategory) && classification.category === 'excluded_credential_bearing') {
|
|
628
|
-
return {
|
|
629
|
-
...classification,
|
|
630
|
-
reason: `${classification.reason}; requested by override and refused`,
|
|
631
|
-
};
|
|
632
|
-
}
|
|
633
|
-
if (includeRoute || includeCategory) {
|
|
634
|
-
return {
|
|
635
|
-
...classification,
|
|
636
|
-
includedByOverride: true,
|
|
637
|
-
effectiveAction: 'sample',
|
|
638
|
-
overrideReason: normalizedOverrides.overrideReason,
|
|
639
|
-
};
|
|
640
|
-
}
|
|
641
|
-
|
|
642
|
-
return classification;
|
|
643
|
-
});
|
|
644
|
-
|
|
645
|
-
classifications = finalizeMetadataActions(classifications);
|
|
646
|
-
return classifications.sort((a, b) => a.routePath.localeCompare(b.routePath));
|
|
647
|
-
}
|
|
648
|
-
|
|
649
|
-
function summarizeSkippedByCategory(classifications) {
|
|
650
|
-
const summary = {};
|
|
651
|
-
for (const classification of classifications) {
|
|
652
|
-
if (classification.effectiveAction !== 'skip') {
|
|
653
|
-
continue;
|
|
654
|
-
}
|
|
655
|
-
summary[classification.category] = (summary[classification.category] || 0) + 1;
|
|
656
|
-
}
|
|
657
|
-
return Object.fromEntries(Object.entries(summary).sort(([a], [b]) => a.localeCompare(b)));
|
|
658
|
-
}
|
|
659
|
-
|
|
660
|
-
module.exports = {
|
|
661
|
-
ROUTE_CATEGORIES,
|
|
662
|
-
CREDENTIAL_BEARING_PATTERNS,
|
|
663
|
-
// Re-exported so the plugin-profile validator can refuse a credential-bearing route without
|
|
664
|
-
// reaching into the transport module itself.
|
|
665
|
-
isCredentialBearingRoute: isDeniedGatewayRoute,
|
|
666
|
-
classifyRoutes,
|
|
667
|
-
normalizeOverrides,
|
|
668
|
-
routeMatchesPattern,
|
|
669
|
-
childRouteAdvertised,
|
|
670
|
-
summarizeSkippedByCategory,
|
|
671
|
-
coreRulePatterns,
|
|
672
|
-
ROUTE_DEFAULT_QUERY_RULES,
|
|
673
|
-
defaultQueryFor,
|
|
674
|
-
defaultQueryReasonFor,
|
|
675
|
-
defaultPluginRules,
|
|
676
|
-
resetPluginRuleCache,
|
|
677
|
-
buildRegisteredRestBases,
|
|
678
|
-
CORE_POST_TYPE_SLUGS,
|
|
679
|
-
CORE_TAXONOMY_SLUGS,
|
|
680
|
-
};
|