@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,762 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
'use strict';
|
|
3
|
-
|
|
4
|
-
const { spawn } = require('node:child_process');
|
|
5
|
-
const fs = require('node:fs/promises');
|
|
6
|
-
const path = require('node:path');
|
|
7
|
-
const { readEnvFile, upsertEnvFile, statEnvKeys } = require('../lib/config-env.js');
|
|
8
|
-
|
|
9
|
-
function usage() {
|
|
10
|
-
return [
|
|
11
|
-
'Usage:',
|
|
12
|
-
' node scripts/wix-headless-scaffold.js --business-name <name> [--folder-name frontend] [--site-template commerce] [--project-dir <dir>]',
|
|
13
|
-
'',
|
|
14
|
-
'Runs the Wix headless scaffold non-interactively through npm create.',
|
|
15
|
-
'Idempotent: safe to re-invoke against the same project — adopts an',
|
|
16
|
-
'existing destination receipt instead of re-scaffolding, and never spawns a second',
|
|
17
|
-
'site when config/wix.env or frontend/wix.config.json already name one.',
|
|
18
|
-
].join('\n');
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
function parseArgs(argv) {
|
|
22
|
-
const args = {
|
|
23
|
-
folderName: 'frontend',
|
|
24
|
-
siteTemplate: 'blank',
|
|
25
|
-
projectDir: process.cwd(),
|
|
26
|
-
};
|
|
27
|
-
for (let i = 0; i < argv.length; i += 1) {
|
|
28
|
-
const token = argv[i];
|
|
29
|
-
switch (token) {
|
|
30
|
-
case '--business-name':
|
|
31
|
-
args.businessName = argv[i + 1];
|
|
32
|
-
i += 1;
|
|
33
|
-
break;
|
|
34
|
-
case '--folder-name':
|
|
35
|
-
args.folderName = argv[i + 1];
|
|
36
|
-
i += 1;
|
|
37
|
-
break;
|
|
38
|
-
case '--site-template':
|
|
39
|
-
args.siteTemplate = argv[i + 1];
|
|
40
|
-
i += 1;
|
|
41
|
-
break;
|
|
42
|
-
case '--project-dir':
|
|
43
|
-
args.projectDir = argv[i + 1];
|
|
44
|
-
i += 1;
|
|
45
|
-
break;
|
|
46
|
-
case '--help':
|
|
47
|
-
case '-h':
|
|
48
|
-
args.help = true;
|
|
49
|
-
break;
|
|
50
|
-
default:
|
|
51
|
-
throw new Error(`Unknown argument: ${token}`);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
return args;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
async function readWixConfig(frontendDir) {
|
|
58
|
-
try {
|
|
59
|
-
const raw = await fs.readFile(path.join(frontendDir, 'wix.config.json'), 'utf8');
|
|
60
|
-
const parsed = JSON.parse(raw);
|
|
61
|
-
if (parsed && typeof parsed.siteId === 'string' && parsed.siteId.trim() !== '') {
|
|
62
|
-
return parsed;
|
|
63
|
-
}
|
|
64
|
-
return null;
|
|
65
|
-
} catch (error) {
|
|
66
|
-
if (error && (error.code === 'ENOENT' || error instanceof SyntaxError)) {
|
|
67
|
-
return null;
|
|
68
|
-
}
|
|
69
|
-
throw error;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
async function readWixEnvValues(wixEnvPath) {
|
|
74
|
-
try {
|
|
75
|
-
return await readEnvFile(wixEnvPath);
|
|
76
|
-
} catch (error) {
|
|
77
|
-
if (error && error.code === 'ENOENT') {
|
|
78
|
-
return {};
|
|
79
|
-
}
|
|
80
|
-
throw error;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
async function isNonEmptyDir(dir) {
|
|
85
|
-
try {
|
|
86
|
-
const entries = await fs.readdir(dir);
|
|
87
|
-
return entries.length > 0;
|
|
88
|
-
} catch (error) {
|
|
89
|
-
if (error && error.code === 'ENOENT') {
|
|
90
|
-
return false;
|
|
91
|
-
}
|
|
92
|
-
throw error;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
async function defaultSpawnScaffold(args) {
|
|
97
|
-
return new Promise((resolve, reject) => {
|
|
98
|
-
const child = spawn('npm', [
|
|
99
|
-
'--yes',
|
|
100
|
-
'create',
|
|
101
|
-
'@wix/new@latest',
|
|
102
|
-
'--',
|
|
103
|
-
'headless',
|
|
104
|
-
'--business-name',
|
|
105
|
-
args.businessName,
|
|
106
|
-
'--folder-name',
|
|
107
|
-
args.folderName,
|
|
108
|
-
'--site-template',
|
|
109
|
-
args.siteTemplate,
|
|
110
|
-
'--skip-install',
|
|
111
|
-
], {
|
|
112
|
-
cwd: path.resolve(args.projectDir),
|
|
113
|
-
stdio: 'inherit',
|
|
114
|
-
});
|
|
115
|
-
child.on('error', reject);
|
|
116
|
-
child.on('exit', (code, signal) => {
|
|
117
|
-
resolve({ code: signal ? 1 : (code == null ? 1 : code) });
|
|
118
|
-
});
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
// Removes WIX_SCAFFOLD_STATUS entirely (not just blanking its value, which config-env.js's
|
|
123
|
-
// upsertEnvFile cannot do and which would itself read back as a present-but-unrecognized
|
|
124
|
-
// value) — used only when a spawn-launch failure proves nothing could have been created,
|
|
125
|
-
// so the next invocation sees a genuinely untouched config/wix.env, not a lingering marker.
|
|
126
|
-
async function clearWixScaffoldStatus(wixEnvPath) {
|
|
127
|
-
let raw;
|
|
128
|
-
try {
|
|
129
|
-
raw = await fs.readFile(wixEnvPath, 'utf8');
|
|
130
|
-
} catch (error) {
|
|
131
|
-
if (error && error.code === 'ENOENT') {
|
|
132
|
-
return;
|
|
133
|
-
}
|
|
134
|
-
throw error;
|
|
135
|
-
}
|
|
136
|
-
const hadTrailingNewline = /\r?\n$/.test(raw);
|
|
137
|
-
const lines = raw.split(/\r?\n/);
|
|
138
|
-
if (hadTrailingNewline && lines[lines.length - 1] === '') {
|
|
139
|
-
lines.pop();
|
|
140
|
-
}
|
|
141
|
-
const kept = lines.filter((line) => {
|
|
142
|
-
const trimmed = line.trim();
|
|
143
|
-
if (!trimmed || trimmed.startsWith('#')) {
|
|
144
|
-
return true;
|
|
145
|
-
}
|
|
146
|
-
const idx = line.indexOf('=');
|
|
147
|
-
return idx === -1 || line.slice(0, idx).trim() !== 'WIX_SCAFFOLD_STATUS';
|
|
148
|
-
});
|
|
149
|
-
const out = kept.join('\n');
|
|
150
|
-
await fs.writeFile(wixEnvPath, out === '' ? '' : `${out}\n`, 'utf8');
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
// Persists WIX_SITE_ID from a confirmed receipt, re-checking for a conflict immediately
|
|
154
|
-
// before the write (config/wix.env can change between the top-of-invocation read and now).
|
|
155
|
-
// Uses statEnvKeys' placeholder-aware classification for the conflict check —
|
|
156
|
-
// comparing the raw value directly treated a template placeholder
|
|
157
|
-
// (e.g. WIX_SITE_ID=REPLACE_WITH_REAL_VALUE) as a real, conflicting destination, which
|
|
158
|
-
// made this throw instead of persisting on the very first scaffold of a freshly
|
|
159
|
-
// templated project, silently discarding the receipt this function exists to confirm.
|
|
160
|
-
async function persistSiteId(wixEnvPath, siteId, scaffoldStatus) {
|
|
161
|
-
const currentStatus = (await statEnvKeys(wixEnvPath, ['WIX_SITE_ID'])).keys.WIX_SITE_ID;
|
|
162
|
-
if (currentStatus === 'present') {
|
|
163
|
-
const current = await readWixEnvValues(wixEnvPath);
|
|
164
|
-
if (current.WIX_SITE_ID !== siteId) {
|
|
165
|
-
throw new Error(
|
|
166
|
-
`config/wix.env's WIX_SITE_ID (${current.WIX_SITE_ID}) no longer matches the scaffold's own wix.config.json (${siteId}); refusing to overwrite a different destination.`,
|
|
167
|
-
);
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
await upsertEnvFile(wixEnvPath, { WIX_SITE_ID: siteId, WIX_SCAFFOLD_STATUS: scaffoldStatus });
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
// A locally-run `npm run dev` (or equivalent) against a scaffolded
|
|
174
|
-
// `website`-mode project, driven from a Wix Remote Machine by any
|
|
175
|
-
// LLM-based coding client (Claude Code or otherwise), hits two problems
|
|
176
|
-
// that are properties of the PROJECT, not of any one client or run:
|
|
177
|
-
//
|
|
178
|
-
// 1. `@wix/astro`'s auto-injected middleware validates an env schema
|
|
179
|
-
// (WIX_CLIENT_INSTANCE_ID etc.) that only lives in gitignored
|
|
180
|
-
// `.env.local` — wiped whenever the remote machine environment
|
|
181
|
-
// restarts, so the next `npm run dev` throws "MiddlewareCantBeLoaded"
|
|
182
|
-
// until `.env.local` is manually regenerated via `wix env pull`. Fixed
|
|
183
|
-
// durably by making the project re-pull it itself before every
|
|
184
|
-
// dev/build/release, rather than assuming it survives a restart.
|
|
185
|
-
// 2. The dev server's own Vite config needs `server.allowedHosts` (a
|
|
186
|
-
// LEADING-DOT suffix, e.g. ".remote-machine.wix-code.com" — never a
|
|
187
|
-
// literal full hostname, which changes on every fresh remote-machine
|
|
188
|
-
// instance and would go stale the moment it's committed) and
|
|
189
|
-
// `server.host: true` (bind all interfaces) — without the latter, a
|
|
190
|
-
// reverse proxy in front of the dev server can't reach it, surfacing as
|
|
191
|
-
// an unexplained 504.
|
|
192
|
-
//
|
|
193
|
-
// Both are properties of the scaffolded PROJECT (checkpointed, reused
|
|
194
|
-
// across every future local run), not of any one invocation — so they're
|
|
195
|
-
// applied once, right after a destination is confirmed (see main()), not
|
|
196
|
-
// re-derived by hand every time this happens.
|
|
197
|
-
const REMOTE_MACHINE_HOST_SUFFIX = '.remote-machine.wix-code.com';
|
|
198
|
-
const ENV_PULL_HOOK_SCRIPTS = {
|
|
199
|
-
predev: 'wix env pull',
|
|
200
|
-
prebuild: 'wix env pull',
|
|
201
|
-
prerelease: 'wix env pull',
|
|
202
|
-
};
|
|
203
|
-
|
|
204
|
-
// Same-length "search text" with every comment and string/template literal
|
|
205
|
-
// blanked out (non-newline characters replaced with spaces) — so none of
|
|
206
|
-
// the structural scanning below can mistake a `{`/`}` or a `vite`/`server`-
|
|
207
|
-
// shaped substring living inside a comment or string for real object
|
|
208
|
-
// structure. A REAL failure this caught before shipping: `// vite: {}`
|
|
209
|
-
// (a commented-out key, sitting elsewhere in the same object) was matched
|
|
210
|
-
// as if it were live, and injecting a multiline block right after its `{`
|
|
211
|
-
// terminated the `//` comment at the injected text's own leading newline,
|
|
212
|
-
// turning a perfectly valid file into one with a syntax error. Positions
|
|
213
|
-
// in the returned text line up EXACTLY with the input (only content is
|
|
214
|
-
// replaced, never length), so any offset found via the masked text is
|
|
215
|
-
// valid for slicing the ORIGINAL text — every call site below uses the
|
|
216
|
-
// masked text purely to decide WHERE things are, never to read what they
|
|
217
|
-
// actually say. The filler is a non-whitespace character (not a space):
|
|
218
|
-
// a value-span scan's trailing `\s*` must stop at the real edge of a
|
|
219
|
-
// masked string/comment rather than reading straight through it as if it
|
|
220
|
-
// were legitimate padding.
|
|
221
|
-
function maskCommentsAndStrings(text) {
|
|
222
|
-
let out = '';
|
|
223
|
-
let i = 0;
|
|
224
|
-
const n = text.length;
|
|
225
|
-
while (i < n) {
|
|
226
|
-
const ch = text[i];
|
|
227
|
-
const next = text[i + 1];
|
|
228
|
-
if (ch === '/' && next === '/') {
|
|
229
|
-
const start = i;
|
|
230
|
-
while (i < n && text[i] !== '\n') i += 1;
|
|
231
|
-
out += text.slice(start, i).replace(/[^\n]/g, 'x');
|
|
232
|
-
continue;
|
|
233
|
-
}
|
|
234
|
-
if (ch === '/' && next === '*') {
|
|
235
|
-
const start = i;
|
|
236
|
-
i += 2;
|
|
237
|
-
while (i < n && !(text[i] === '*' && text[i + 1] === '/')) i += 1;
|
|
238
|
-
i = Math.min(i + 2, n);
|
|
239
|
-
out += text.slice(start, i).replace(/[^\n]/g, 'x');
|
|
240
|
-
continue;
|
|
241
|
-
}
|
|
242
|
-
if (ch === "'" || ch === '"' || ch === '`') {
|
|
243
|
-
// Template literals are blanked out WHOLESALE, `${...}` interpolation
|
|
244
|
-
// included — this script has no reason to understand one, only to
|
|
245
|
-
// never mistake its contents for real object structure elsewhere.
|
|
246
|
-
// EXCEPTION: a quoted OBJECT KEY (`"vite": {...}`) must survive
|
|
247
|
-
// masking untouched — it's the very thing keyName lookups need to
|
|
248
|
-
// find — so anything immediately followed by `:` (the only shape a
|
|
249
|
-
// quoted key ever takes here) is left as-is instead of blanked.
|
|
250
|
-
const quote = ch;
|
|
251
|
-
const start = i;
|
|
252
|
-
i += 1;
|
|
253
|
-
while (i < n && text[i] !== quote) {
|
|
254
|
-
if (text[i] === '\\') i += 1; // skip an escaped character, e.g. \' or \\
|
|
255
|
-
i += 1;
|
|
256
|
-
}
|
|
257
|
-
i = Math.min(i + 1, n);
|
|
258
|
-
let j = i;
|
|
259
|
-
while (j < n && /\s/.test(text[j])) j += 1;
|
|
260
|
-
if (text[j] === ':') {
|
|
261
|
-
out += text.slice(start, i);
|
|
262
|
-
} else {
|
|
263
|
-
out += text.slice(start, i).replace(/[^\n]/g, 'x');
|
|
264
|
-
}
|
|
265
|
-
continue;
|
|
266
|
-
}
|
|
267
|
-
out += ch;
|
|
268
|
-
i += 1;
|
|
269
|
-
}
|
|
270
|
-
return out;
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
// Finds the index of the `}` that closes the `{` at openBraceIndex, by
|
|
274
|
-
// brace-depth counting rather than a full parse. Callers pass the MASKED
|
|
275
|
-
// text (see maskCommentsAndStrings) so a `{`/`}` inside a comment or
|
|
276
|
-
// string is never miscounted as real structure; every call site below
|
|
277
|
-
// only acts when it found a real, load-bearing structural brace via a
|
|
278
|
-
// preceding regex match, and returns -1 (skip, never guess) on anything
|
|
279
|
-
// unbalanced.
|
|
280
|
-
function findMatchingBrace(text, openBraceIndex) {
|
|
281
|
-
let depth = 0;
|
|
282
|
-
for (let i = openBraceIndex; i < text.length; i += 1) {
|
|
283
|
-
if (text[i] === '{') depth += 1;
|
|
284
|
-
else if (text[i] === '}') {
|
|
285
|
-
depth -= 1;
|
|
286
|
-
if (depth === 0) return i;
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
return -1;
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
// Matches keyName EXACTLY — as a bare identifier with no adjoining
|
|
293
|
-
// identifier/hyphen characters on either side, or as a fully quoted
|
|
294
|
-
// key whose entire quoted content is keyName (same quote character on
|
|
295
|
-
// both ends, via the backreference). A plain `["']?\bkeyName["']?` (what
|
|
296
|
-
// this replaced) only checks for a quote immediately around keyName, so
|
|
297
|
-
// it isn't anchored to the KEY'S own boundaries: "legacy-vite": {...} has
|
|
298
|
-
// a real word boundary right before "vite" (a hyphen is a non-word
|
|
299
|
-
// character) and no quote is required there since it's optional, so it
|
|
300
|
-
// matched as though the key were "vite". Requiring an EXACT bare match or
|
|
301
|
-
// an exact quoted match rules that out.
|
|
302
|
-
function exactKeyPattern(keyName) {
|
|
303
|
-
return `(?:(['"])${keyName}\\1|(?<![\\w$-])${keyName}(?![\\w$-]))`;
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
// Finds `keyName: {` (or the quoted form, `"keyName": {`/`'keyName': {'})
|
|
307
|
-
// as a DIRECT child of the object spanning parentOpen..parentClose
|
|
308
|
-
// (brace-DEPTH 1 relative to parentOpen) — never a same-named key nested
|
|
309
|
-
// deeper (e.g. inside a plugin call's own options object), which a plain
|
|
310
|
-
// "search anywhere in this span" regex would wrongly match and then
|
|
311
|
-
// corrupt. `text` must be the MASKED text (maskCommentsAndStrings), not
|
|
312
|
-
// the original source — this only ever returns POSITIONS, valid against
|
|
313
|
-
// either text since masking preserves length.
|
|
314
|
-
function findDirectChildBrace(text, parentOpen, parentClose, keyName) {
|
|
315
|
-
const pattern = new RegExp(`${exactKeyPattern(keyName)}\\s*:\\s*\\{`, 'g');
|
|
316
|
-
pattern.lastIndex = parentOpen + 1;
|
|
317
|
-
let match;
|
|
318
|
-
while ((match = pattern.exec(text)) !== null) {
|
|
319
|
-
if (match.index >= parentClose) return -1;
|
|
320
|
-
let depth = 0;
|
|
321
|
-
for (let i = parentOpen; i < match.index; i += 1) {
|
|
322
|
-
if (text[i] === '{') depth += 1;
|
|
323
|
-
else if (text[i] === '}') depth -= 1;
|
|
324
|
-
}
|
|
325
|
-
if (depth === 1) return match.index + match[0].length - 1;
|
|
326
|
-
}
|
|
327
|
-
return -1;
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
// Finds `keyName: <value>` (or the quoted key form) as a DIRECT child of
|
|
331
|
-
// the object spanning parentOpen..parentClose and returns { start, end }
|
|
332
|
-
// bounding <value>'s own source text, or 'ambiguous' if a value was found
|
|
333
|
-
// but its extent can't be safely bounded (an odd bracket run), or null if
|
|
334
|
-
// the key isn't a direct child at all. A bracketed value ([...]/{...}/
|
|
335
|
-
// (...)) is bounded by matching brackets; anything else runs to the next
|
|
336
|
-
// same-depth comma or the parent's own closing brace. `text` must be the
|
|
337
|
-
// MASKED text — this only ever returns POSITIONS; callers read the actual
|
|
338
|
-
// value text back out of the ORIGINAL source at those same positions.
|
|
339
|
-
function findDirectChildValueSpan(text, parentOpen, parentClose, keyName) {
|
|
340
|
-
const pattern = new RegExp(`${exactKeyPattern(keyName)}\\s*:\\s*`, 'g');
|
|
341
|
-
pattern.lastIndex = parentOpen + 1;
|
|
342
|
-
let match;
|
|
343
|
-
while ((match = pattern.exec(text)) !== null) {
|
|
344
|
-
if (match.index >= parentClose) return null;
|
|
345
|
-
let depth = 0;
|
|
346
|
-
for (let i = parentOpen; i < match.index; i += 1) {
|
|
347
|
-
if (text[i] === '{') depth += 1;
|
|
348
|
-
else if (text[i] === '}') depth -= 1;
|
|
349
|
-
}
|
|
350
|
-
if (depth !== 1) continue; // a same-named key nested deeper — keep looking
|
|
351
|
-
const valueStart = match.index + match[0].length;
|
|
352
|
-
const openChar = text[valueStart];
|
|
353
|
-
if (openChar === '[' || openChar === '{' || openChar === '(') {
|
|
354
|
-
const closeChar = openChar === '[' ? ']' : openChar === '{' ? '}' : ')';
|
|
355
|
-
let bracketDepth = 0;
|
|
356
|
-
for (let i = valueStart; i < parentClose; i += 1) {
|
|
357
|
-
if (text[i] === openChar) bracketDepth += 1;
|
|
358
|
-
else if (text[i] === closeChar) {
|
|
359
|
-
bracketDepth -= 1;
|
|
360
|
-
if (bracketDepth === 0) return { start: valueStart, end: i + 1 };
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
return 'ambiguous';
|
|
364
|
-
}
|
|
365
|
-
let bracketDepth = 0;
|
|
366
|
-
// INCLUSIVE of parentClose itself: a value with no trailing comma
|
|
367
|
-
// right before the parent's own closing brace (the common single-line
|
|
368
|
-
// case, e.g. `{ host: false }`) must have that `}` actually examined,
|
|
369
|
-
// not stop one character short of it.
|
|
370
|
-
for (let i = valueStart; i <= parentClose; i += 1) {
|
|
371
|
-
const ch = text[i];
|
|
372
|
-
if (ch === '[' || ch === '{' || ch === '(') bracketDepth += 1;
|
|
373
|
-
else if (ch === ']' || ch === '}' || ch === ')') {
|
|
374
|
-
if (bracketDepth === 0) return { start: valueStart, end: i }; // hit the parent's own close
|
|
375
|
-
bracketDepth -= 1;
|
|
376
|
-
} else if (ch === ',' && bracketDepth === 0) {
|
|
377
|
-
return { start: valueStart, end: i };
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
return 'ambiguous';
|
|
381
|
-
}
|
|
382
|
-
return null;
|
|
383
|
-
}
|
|
384
|
-
|
|
385
|
-
function quotedStringInner(valueText) {
|
|
386
|
-
const match = valueText.match(/^'([^']*)'$|^"([^"]*)"$/);
|
|
387
|
-
return match ? (match[1] ?? match[2]) : null;
|
|
388
|
-
}
|
|
389
|
-
|
|
390
|
-
// Best-effort, conservative: never touches a file it can't recognize the
|
|
391
|
-
// shape of. Merges into an EXISTING `vite`/`vite.server` block rather than
|
|
392
|
-
// skipping outright just because some unrelated vite config (e.g. plugins,
|
|
393
|
-
// or an unrelated nested `server:` inside a plugin's OWN options — never
|
|
394
|
-
// matched, since lookups here are depth-scoped to direct children only) is
|
|
395
|
-
// already present — a project with any of that must not be left
|
|
396
|
-
// permanently unpatched. Same treatment for the two settings themselves:
|
|
397
|
-
// presence alone isn't "already handled" — `host: false` and an
|
|
398
|
-
// `allowedHosts` array missing our own entry both still reproduce the
|
|
399
|
-
// original failure, so an already-effective VALUE is what's left alone,
|
|
400
|
-
// not just an already-present key. Only a value this can't safely
|
|
401
|
-
// interpret (some other expression — not a literal true/false/string or a
|
|
402
|
-
// bracketed array) is warned and left untouched rather than guessed at.
|
|
403
|
-
async function patchAstroConfigForRemoteMachinePreview(frontendDir) {
|
|
404
|
-
const configPath = path.join(frontendDir, 'astro.config.mjs');
|
|
405
|
-
let original;
|
|
406
|
-
try {
|
|
407
|
-
original = await fs.readFile(configPath, 'utf8');
|
|
408
|
-
} catch (error) {
|
|
409
|
-
if (error && error.code === 'ENOENT') {
|
|
410
|
-
console.warn(`[wix-headless-scaffold] no astro.config.mjs at ${configPath} — skipping preview-host patch.`);
|
|
411
|
-
return;
|
|
412
|
-
}
|
|
413
|
-
throw error;
|
|
414
|
-
}
|
|
415
|
-
// Used for ALL structural navigation below (finding keys, matching
|
|
416
|
-
// braces) — never for reading actual content, which always comes from
|
|
417
|
-
// `original` at the same positions (masking preserves length exactly).
|
|
418
|
-
const masked = maskCommentsAndStrings(original);
|
|
419
|
-
|
|
420
|
-
const allowedHostsComment =
|
|
421
|
-
`// Any remote machine's dynamic preview hostname (the hash/port prefix\n` +
|
|
422
|
-
` // changes per session) — a literal full hostname here would go\n` +
|
|
423
|
-
` // stale the moment a remote machine restarts.\n` +
|
|
424
|
-
` `;
|
|
425
|
-
const hostComment =
|
|
426
|
-
`// Bind all interfaces — Vite defaults to 127.0.0.1 only, which the\n` +
|
|
427
|
-
` // platform's reverse proxy cannot reach (surfaces as a 504).\n` +
|
|
428
|
-
` `;
|
|
429
|
-
const allowedHostsProp = `${allowedHostsComment}allowedHosts: ['${REMOTE_MACHINE_HOST_SUFFIX}'],`;
|
|
430
|
-
const hostProp = `${hostComment}host: true,`;
|
|
431
|
-
|
|
432
|
-
const defineMatch = masked.match(/defineConfig\(\s*\{/);
|
|
433
|
-
if (!defineMatch) {
|
|
434
|
-
console.warn('[wix-headless-scaffold] astro.config.mjs is not a recognizable `defineConfig({...})` — leaving it alone.');
|
|
435
|
-
return;
|
|
436
|
-
}
|
|
437
|
-
const defineOpenBrace = defineMatch.index + defineMatch[0].length - 1;
|
|
438
|
-
const defineCloseBrace = findMatchingBrace(masked, defineOpenBrace);
|
|
439
|
-
if (defineCloseBrace === -1) {
|
|
440
|
-
console.warn('[wix-headless-scaffold] astro.config.mjs has an unbalanced defineConfig({...}) call — leaving it alone.');
|
|
441
|
-
return;
|
|
442
|
-
}
|
|
443
|
-
|
|
444
|
-
// Depth-scoped to defineConfig's OWN direct children — never a `vite:`
|
|
445
|
-
// key nested inside some other option's value at any deeper level.
|
|
446
|
-
const viteOpenBrace = findDirectChildBrace(masked, defineOpenBrace, defineCloseBrace, 'vite');
|
|
447
|
-
|
|
448
|
-
let patched;
|
|
449
|
-
if (viteOpenBrace === -1) {
|
|
450
|
-
const insertAt = defineOpenBrace + 1;
|
|
451
|
-
const injected = `\n vite: {\n server: {\n ${allowedHostsProp}\n ${hostProp}\n },\n },`;
|
|
452
|
-
patched = original.slice(0, insertAt) + injected + original.slice(insertAt);
|
|
453
|
-
} else {
|
|
454
|
-
const viteCloseBrace = findMatchingBrace(masked, viteOpenBrace);
|
|
455
|
-
if (viteCloseBrace === -1) {
|
|
456
|
-
console.warn('[wix-headless-scaffold] astro.config.mjs has an unbalanced vite: {...} block — leaving it alone.');
|
|
457
|
-
return;
|
|
458
|
-
}
|
|
459
|
-
// Depth-scoped to vite's OWN direct children — never a `server:` key
|
|
460
|
-
// nested inside a plugin's own options within the same vite block.
|
|
461
|
-
const serverOpenBrace = findDirectChildBrace(masked, viteOpenBrace, viteCloseBrace, 'server');
|
|
462
|
-
|
|
463
|
-
if (serverOpenBrace === -1) {
|
|
464
|
-
const insertAt = viteOpenBrace + 1;
|
|
465
|
-
const injected = `\n server: {\n ${allowedHostsProp}\n ${hostProp}\n },`;
|
|
466
|
-
patched = original.slice(0, insertAt) + injected + original.slice(insertAt);
|
|
467
|
-
} else {
|
|
468
|
-
const serverCloseBrace = findMatchingBrace(masked, serverOpenBrace);
|
|
469
|
-
if (serverCloseBrace === -1) {
|
|
470
|
-
console.warn('[wix-headless-scaffold] astro.config.mjs has an unbalanced vite.server: {...} block — leaving it alone.');
|
|
471
|
-
return;
|
|
472
|
-
}
|
|
473
|
-
|
|
474
|
-
// Collected as {start, end, replacement} spans against the ORIGINAL
|
|
475
|
-
// text and applied in one pass, highest offset first, so neither
|
|
476
|
-
// edit invalidates the other's already-computed positions.
|
|
477
|
-
const edits = [];
|
|
478
|
-
let touchedSomething = false;
|
|
479
|
-
|
|
480
|
-
const allowedHostsValue = findDirectChildValueSpan(masked, serverOpenBrace, serverCloseBrace, 'allowedHosts');
|
|
481
|
-
if (allowedHostsValue === null) {
|
|
482
|
-
edits.push({ start: serverOpenBrace + 1, end: serverOpenBrace + 1, replacement: `\n ${allowedHostsProp}` });
|
|
483
|
-
touchedSomething = true;
|
|
484
|
-
} else if (allowedHostsValue === 'ambiguous') {
|
|
485
|
-
console.warn('[wix-headless-scaffold] vite.server.allowedHosts is set to something this script cannot safely interpret — leaving it alone.');
|
|
486
|
-
} else {
|
|
487
|
-
const valueText = original.slice(allowedHostsValue.start, allowedHostsValue.end);
|
|
488
|
-
const trimmed = valueText.trim();
|
|
489
|
-
if (trimmed === 'true') {
|
|
490
|
-
// Vite treats `allowedHosts: true` as "disable the check
|
|
491
|
-
// entirely" — already strictly more permissive than what this
|
|
492
|
-
// needs, nothing to do.
|
|
493
|
-
} else if (trimmed.startsWith('[') && trimmed.endsWith(']')) {
|
|
494
|
-
if (trimmed.includes(REMOTE_MACHINE_HOST_SUFFIX)) {
|
|
495
|
-
// Already covers it.
|
|
496
|
-
} else {
|
|
497
|
-
const closeBracketAt = allowedHostsValue.start + trimmed.lastIndexOf(']');
|
|
498
|
-
const beforeClose = original.slice(allowedHostsValue.start, closeBracketAt).replace(/\s+$/, '');
|
|
499
|
-
const isEmpty = /\[\s*$/.test(beforeClose);
|
|
500
|
-
const hasTrailingComma = /,\s*$/.test(beforeClose);
|
|
501
|
-
const sep = isEmpty ? '' : hasTrailingComma ? ' ' : ', ';
|
|
502
|
-
edits.push({
|
|
503
|
-
start: closeBracketAt,
|
|
504
|
-
end: closeBracketAt,
|
|
505
|
-
replacement: `${sep}'${REMOTE_MACHINE_HOST_SUFFIX}'`,
|
|
506
|
-
});
|
|
507
|
-
touchedSomething = true;
|
|
508
|
-
}
|
|
509
|
-
} else {
|
|
510
|
-
console.warn('[wix-headless-scaffold] vite.server.allowedHosts is set to something this script cannot safely interpret — leaving it alone.');
|
|
511
|
-
}
|
|
512
|
-
}
|
|
513
|
-
|
|
514
|
-
const hostValue = findDirectChildValueSpan(masked, serverOpenBrace, serverCloseBrace, 'host');
|
|
515
|
-
if (hostValue === null) {
|
|
516
|
-
edits.push({ start: serverOpenBrace + 1, end: serverOpenBrace + 1, replacement: `\n ${hostProp}` });
|
|
517
|
-
touchedSomething = true;
|
|
518
|
-
} else if (hostValue === 'ambiguous') {
|
|
519
|
-
console.warn('[wix-headless-scaffold] vite.server.host is set to something this script cannot safely interpret — leaving it alone.');
|
|
520
|
-
} else {
|
|
521
|
-
const trimmed = original.slice(hostValue.start, hostValue.end).trim();
|
|
522
|
-
const quotedInner = quotedStringInner(trimmed);
|
|
523
|
-
const isIneffective = trimmed === 'false' || (quotedInner !== null && ['localhost', '127.0.0.1'].includes(quotedInner));
|
|
524
|
-
const isKnownEffective = trimmed === 'true' || quotedInner !== null;
|
|
525
|
-
if (isIneffective) {
|
|
526
|
-
edits.push({ start: hostValue.start, end: hostValue.end, replacement: 'true' });
|
|
527
|
-
touchedSomething = true;
|
|
528
|
-
} else if (!isKnownEffective) {
|
|
529
|
-
console.warn('[wix-headless-scaffold] vite.server.host is set to something this script cannot safely interpret — leaving it alone.');
|
|
530
|
-
}
|
|
531
|
-
// else: true, or a real, non-localhost bind address — already effective.
|
|
532
|
-
}
|
|
533
|
-
|
|
534
|
-
if (!touchedSomething) {
|
|
535
|
-
console.log('[wix-headless-scaffold] vite.server.allowedHosts and host are already effective — nothing to patch.');
|
|
536
|
-
return;
|
|
537
|
-
}
|
|
538
|
-
|
|
539
|
-
edits.sort((a, b) => b.start - a.start);
|
|
540
|
-
patched = original;
|
|
541
|
-
for (const edit of edits) {
|
|
542
|
-
patched = patched.slice(0, edit.start) + edit.replacement + patched.slice(edit.end);
|
|
543
|
-
}
|
|
544
|
-
}
|
|
545
|
-
}
|
|
546
|
-
|
|
547
|
-
await fs.writeFile(configPath, patched);
|
|
548
|
-
console.log('[wix-headless-scaffold] patched astro.config.mjs for remote-machine preview (allowedHosts + host).');
|
|
549
|
-
}
|
|
550
|
-
|
|
551
|
-
async function patchPackageJsonEnvPullHooks(frontendDir) {
|
|
552
|
-
const pkgPath = path.join(frontendDir, 'package.json');
|
|
553
|
-
let pkg;
|
|
554
|
-
try {
|
|
555
|
-
pkg = JSON.parse(await fs.readFile(pkgPath, 'utf8'));
|
|
556
|
-
} catch (error) {
|
|
557
|
-
if (error && error.code === 'ENOENT') {
|
|
558
|
-
console.warn(`[wix-headless-scaffold] no package.json at ${pkgPath} — skipping env-pull hooks.`);
|
|
559
|
-
return;
|
|
560
|
-
}
|
|
561
|
-
throw error;
|
|
562
|
-
}
|
|
563
|
-
pkg.scripts = pkg.scripts || {};
|
|
564
|
-
let changed = false;
|
|
565
|
-
for (const [hook, command] of Object.entries(ENV_PULL_HOOK_SCRIPTS)) {
|
|
566
|
-
const existing = pkg.scripts[hook];
|
|
567
|
-
if (existing === undefined) {
|
|
568
|
-
pkg.scripts[hook] = command;
|
|
569
|
-
changed = true;
|
|
570
|
-
} else if (!existing.includes(command)) {
|
|
571
|
-
// A template's own hook (e.g. a codegen step) does something unrelated
|
|
572
|
-
// to env-pulling — compose rather than skip, or it silently never runs
|
|
573
|
-
// at all, defeating the whole point of this patch. Idempotent: a hook
|
|
574
|
-
// that already contains the command is left alone, never re-composed.
|
|
575
|
-
pkg.scripts[hook] = `${command} && ${existing}`;
|
|
576
|
-
changed = true;
|
|
577
|
-
}
|
|
578
|
-
}
|
|
579
|
-
if (!changed) {
|
|
580
|
-
console.warn('[wix-headless-scaffold] package.json already defines all env-pull hooks — leaving it alone.');
|
|
581
|
-
return;
|
|
582
|
-
}
|
|
583
|
-
await fs.writeFile(pkgPath, `${JSON.stringify(pkg, null, 2)}\n`);
|
|
584
|
-
console.log('[wix-headless-scaffold] added predev/prebuild/prerelease "wix env pull" hooks to package.json.');
|
|
585
|
-
}
|
|
586
|
-
|
|
587
|
-
// Safe to call more than once against the same project directory, including
|
|
588
|
-
// after its own prior partial failure. Every branch below either confirms a destination
|
|
589
|
-
// receipt before returning success, or fails closed without touching config/wix.env.
|
|
590
|
-
async function ensureDestinationReceipt(args, { spawnScaffold = defaultSpawnScaffold } = {}) {
|
|
591
|
-
const projectDir = path.resolve(args.projectDir);
|
|
592
|
-
const frontendDir = path.join(projectDir, args.folderName);
|
|
593
|
-
const wixEnvPath = path.join(projectDir, 'config', 'wix.env');
|
|
594
|
-
|
|
595
|
-
const siteIdStatus = (await statEnvKeys(wixEnvPath, ['WIX_SITE_ID'])).keys.WIX_SITE_ID;
|
|
596
|
-
const envValues = await readWixEnvValues(wixEnvPath);
|
|
597
|
-
const wixConfig = await readWixConfig(frontendDir);
|
|
598
|
-
|
|
599
|
-
if (siteIdStatus === 'present') {
|
|
600
|
-
// Case 1: config/wix.env already names a destination — checked first, independent of
|
|
601
|
-
// wix.config.json, so an env-only receipt (adopted/existing destination, or a lost
|
|
602
|
-
// frontend folder) can never fall through to spawning a second site.
|
|
603
|
-
if (wixConfig && wixConfig.siteId !== envValues.WIX_SITE_ID) {
|
|
604
|
-
// 1b — conflicting.
|
|
605
|
-
throw new Error(
|
|
606
|
-
`config/wix.env already has WIX_SITE_ID=${envValues.WIX_SITE_ID}, but ${frontendDir}/wix.config.json names a different siteId=${wixConfig.siteId}. Refusing to create or adopt a second destination — resolve the conflict manually.`,
|
|
607
|
-
);
|
|
608
|
-
}
|
|
609
|
-
// 1a — consistent (wix.config.json is absent, has no siteId, or matches).
|
|
610
|
-
const status = envValues.WIX_SCAFFOLD_STATUS;
|
|
611
|
-
if (status === undefined || status === 'complete') {
|
|
612
|
-
return { siteId: envValues.WIX_SITE_ID };
|
|
613
|
-
}
|
|
614
|
-
if (status === 'incomplete') {
|
|
615
|
-
throw new Error(
|
|
616
|
-
`Destination ${envValues.WIX_SITE_ID} already exists, but a prior scaffold attempt did not complete (WIX_SCAFFOLD_STATUS=incomplete). Refusing to spawn again — that would risk a duplicate site. Resolve manually before retrying.`,
|
|
617
|
-
);
|
|
618
|
-
}
|
|
619
|
-
throw new Error(
|
|
620
|
-
`config/wix.env has an unrecognized WIX_SCAFFOLD_STATUS value (${JSON.stringify(status)}); expected "complete", "incomplete", or the key to be absent. Refusing to proceed.`,
|
|
621
|
-
);
|
|
622
|
-
}
|
|
623
|
-
|
|
624
|
-
// Case 2: no confirmed real WIX_SITE_ID (missing, blank, or a placeholder — all treated
|
|
625
|
-
// alike here, matching case 1's classification). This branch
|
|
626
|
-
// must also inspect WIX_SCAFFOLD_STATUS, not just wix.config.json's existence — a bare
|
|
627
|
-
// "wix.config.json exists" check cannot tell a genuinely legacy/host-adopted receipt
|
|
628
|
-
// apart from one left behind by a scaffold attempt this script itself started but never
|
|
629
|
-
// finished recording (the wrapper crashed, or was killed, after the CLI created the site
|
|
630
|
-
// but before persistSiteId ran). Silently adopting the latter as "complete" is the same
|
|
631
|
-
// laundering bug as case 1 exists to prevent, just reached from the opposite direction.
|
|
632
|
-
const status = envValues.WIX_SCAFFOLD_STATUS;
|
|
633
|
-
if (status === 'in_progress') {
|
|
634
|
-
if (wixConfig) {
|
|
635
|
-
// A prior invocation marked in_progress before spawning (see 2c below) and never
|
|
636
|
-
// got to record a final outcome. The CLI may well have finished — never infer
|
|
637
|
-
// "complete" from an orphaned receipt like this. Persist it as incomplete (the same
|
|
638
|
-
// durable, fail-closed record a known non-zero exit produces) so the *next*
|
|
639
|
-
// invocation adopts and blocks via case 1's existing, tested handling instead of
|
|
640
|
-
// this ambiguity recurring indefinitely.
|
|
641
|
-
await persistSiteId(wixEnvPath, wixConfig.siteId, 'incomplete');
|
|
642
|
-
throw new Error(
|
|
643
|
-
`A prior scaffold attempt was interrupted before it could record its outcome (WIX_SCAFFOLD_STATUS=in_progress), but a destination was found (WIX_SITE_ID=${wixConfig.siteId}). Persisted as incomplete — resolve manually before retrying.`,
|
|
644
|
-
);
|
|
645
|
-
}
|
|
646
|
-
// No local receipt either does NOT mean nothing
|
|
647
|
-
// was created remotely — a crash could have happened after a remote site was created
|
|
648
|
-
// but before wix.config.json was written locally (or even before the frontend folder
|
|
649
|
-
// existed at all), which isNonEmptyDir below cannot detect. Fail closed
|
|
650
|
-
// unconditionally rather than falling through to 2b/2c; the one case that clears this
|
|
651
|
-
// marker for a safe automatic retry is a genuine spawn-launch failure (see 2c) — that
|
|
652
|
-
// is handled before this marker is ever left behind, not by re-reading it here.
|
|
653
|
-
throw new Error(
|
|
654
|
-
'A prior scaffold attempt was interrupted before it could record any outcome (WIX_SCAFFOLD_STATUS=in_progress) and no local destination receipt (wix.config.json) exists either. This cannot be safely distinguished from a remote site having been created before a local receipt was written. Refusing to retry automatically — confirm whether a destination already exists, then either record its WIX_SITE_ID manually or clear WIX_SCAFFOLD_STATUS from config/wix.env if nothing was actually created.',
|
|
655
|
-
);
|
|
656
|
-
}
|
|
657
|
-
if (status !== undefined) {
|
|
658
|
-
// WIX_SCAFFOLD_STATUS is set to something else (a known-ambiguous marker from this
|
|
659
|
-
// script, or corrupted state) while no real WIX_SITE_ID exists. Fail closed rather
|
|
660
|
-
// than silently proceeding as though nothing were recorded.
|
|
661
|
-
throw new Error(
|
|
662
|
-
`config/wix.env has WIX_SCAFFOLD_STATUS=${JSON.stringify(status)} but no valid WIX_SITE_ID; this cannot be automatically resolved. Refusing to proceed automatically — resolve manually.`,
|
|
663
|
-
);
|
|
664
|
-
}
|
|
665
|
-
|
|
666
|
-
if (wixConfig) {
|
|
667
|
-
// 2a — adopt a receipt with no status marker at all: a genuinely legacy/host-adopted
|
|
668
|
-
// destination, or one scaffolded before this script wrote WIX_SCAFFOLD_STATUS.
|
|
669
|
-
await upsertEnvFile(wixEnvPath, { WIX_SITE_ID: wixConfig.siteId, WIX_SCAFFOLD_STATUS: 'complete' });
|
|
670
|
-
return { siteId: wixConfig.siteId };
|
|
671
|
-
}
|
|
672
|
-
|
|
673
|
-
if (await isNonEmptyDir(frontendDir)) {
|
|
674
|
-
// 2b — genuinely ambiguous state this script cannot resolve on its own.
|
|
675
|
-
throw new Error(
|
|
676
|
-
`${frontendDir} already exists and is not empty, but no valid wix.config.json was found there and config/wix.env has no WIX_SITE_ID. Refusing to scaffold into this folder automatically — resolve manually before retrying.`,
|
|
677
|
-
);
|
|
678
|
-
}
|
|
679
|
-
|
|
680
|
-
// 2c — nothing exists yet; mark in_progress before spawning so a crash between now and
|
|
681
|
-
// persisting a final outcome always leaves a distinguishable trace instead of silently
|
|
682
|
-
// looking like "nothing was ever attempted."
|
|
683
|
-
await upsertEnvFile(wixEnvPath, { WIX_SCAFFOLD_STATUS: 'in_progress' });
|
|
684
|
-
let code;
|
|
685
|
-
try {
|
|
686
|
-
({ code } = await spawnScaffold(args));
|
|
687
|
-
} catch (spawnError) {
|
|
688
|
-
// A rejection alone isn't proof nothing was created — spawnScaffold could fail for
|
|
689
|
-
// reasons other than a launch failure after the child already did real work. Check for
|
|
690
|
-
// a receipt regardless of why this rejected: if one exists, leave the in_progress
|
|
691
|
-
// marker in place so the next invocation's self-heal branch above handles it (never
|
|
692
|
-
// clear a marker out from under a receipt that might exist). Only when there is
|
|
693
|
-
// genuinely no receipt is it safe to clear — for the real spawnScaffold, which only
|
|
694
|
-
// rejects via child_process's 'error' event (emitted specifically when the OS-level
|
|
695
|
-
// process itself could never be launched, before any exit code exists), that absence
|
|
696
|
-
// is deterministic: nothing could have been created remotely.
|
|
697
|
-
const orphanedConfig = await readWixConfig(frontendDir);
|
|
698
|
-
if (!orphanedConfig) {
|
|
699
|
-
await clearWixScaffoldStatus(wixEnvPath);
|
|
700
|
-
}
|
|
701
|
-
throw spawnError;
|
|
702
|
-
}
|
|
703
|
-
const postConfig = await readWixConfig(frontendDir);
|
|
704
|
-
if (postConfig) {
|
|
705
|
-
// Persisted even on a non-zero exit: site creation and later template/release work are
|
|
706
|
-
// separate phases of the CLI's run, so discarding the id here is exactly how a retry
|
|
707
|
-
// would spawn a second site.
|
|
708
|
-
await persistSiteId(wixEnvPath, postConfig.siteId, code === 0 ? 'complete' : 'incomplete');
|
|
709
|
-
if (code === 0) {
|
|
710
|
-
return { siteId: postConfig.siteId };
|
|
711
|
-
}
|
|
712
|
-
throw new Error(
|
|
713
|
-
`Scaffold process exited with code ${code}, but a destination was created (WIX_SITE_ID=${postConfig.siteId}); persisted as incomplete. Do not retry automatically — resolve the underlying failure first.`,
|
|
714
|
-
);
|
|
715
|
-
}
|
|
716
|
-
// The child process definitely ran to completion (it returned an exit code), but no
|
|
717
|
-
// valid local receipt was found. This must NOT be left as a retryable in_progress
|
|
718
|
-
// marker: a remote site could still have been created before a local write failed.
|
|
719
|
-
// Convert it to a durable, always-blocked marker instead.
|
|
720
|
-
await upsertEnvFile(wixEnvPath, { WIX_SCAFFOLD_STATUS: 'ambiguous' });
|
|
721
|
-
if (code === 0) {
|
|
722
|
-
throw new Error('Scaffold process exited 0, but no wix.config.json with a siteId was found afterward — cannot confirm whether a destination was created. Marked ambiguous; resolve manually before retrying.');
|
|
723
|
-
}
|
|
724
|
-
throw new Error(`Scaffold process exited with code ${code} and no destination receipt was found — cannot confirm whether a destination was created. Marked ambiguous; resolve manually before retrying.`);
|
|
725
|
-
}
|
|
726
|
-
|
|
727
|
-
async function main() {
|
|
728
|
-
const args = parseArgs(process.argv.slice(2));
|
|
729
|
-
if (args.help) {
|
|
730
|
-
console.log(usage());
|
|
731
|
-
return;
|
|
732
|
-
}
|
|
733
|
-
if (!args.businessName) {
|
|
734
|
-
console.error(usage());
|
|
735
|
-
process.exit(1);
|
|
736
|
-
return;
|
|
737
|
-
}
|
|
738
|
-
const result = await ensureDestinationReceipt(args);
|
|
739
|
-
// Applied after ANY successful resolution (a fresh scaffold, or an
|
|
740
|
-
// idempotent adopt of an existing receipt) — both patch functions are
|
|
741
|
-
// themselves idempotent and cheap, so an already-patched or pre-existing
|
|
742
|
-
// destination is a safe, fast no-op, not just the first-scaffold path.
|
|
743
|
-
const frontendDir = path.join(path.resolve(args.projectDir), args.folderName);
|
|
744
|
-
await patchAstroConfigForRemoteMachinePreview(frontendDir);
|
|
745
|
-
await patchPackageJsonEnvPullHooks(frontendDir);
|
|
746
|
-
console.log(JSON.stringify({ ok: true, siteId: result.siteId }));
|
|
747
|
-
}
|
|
748
|
-
|
|
749
|
-
if (require.main === module) {
|
|
750
|
-
main().catch((error) => {
|
|
751
|
-
console.error(error && error.message ? error.message : error);
|
|
752
|
-
process.exit(1);
|
|
753
|
-
});
|
|
754
|
-
}
|
|
755
|
-
|
|
756
|
-
module.exports = {
|
|
757
|
-
ensureDestinationReceipt,
|
|
758
|
-
parseArgs,
|
|
759
|
-
usage,
|
|
760
|
-
patchAstroConfigForRemoteMachinePreview,
|
|
761
|
-
patchPackageJsonEnvPullHooks,
|
|
762
|
-
};
|