@shopify/shop-minis-cli 0.0.0-snapshot.20240712123821
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/.eslintrc.cjs +78 -0
- package/LICENSE +21 -0
- package/README.md +8 -0
- package/README_INTERNAL.md +115 -0
- package/build/commands/cancel-submission/cancel-submission.d.ts +1 -0
- package/build/commands/cancel-submission/cancel-submission.js +57 -0
- package/build/commands/cancel-submission/cancel-submission.js.map +1 -0
- package/build/commands/cancel-submission/index.d.ts +2 -0
- package/build/commands/cancel-submission/index.js +18 -0
- package/build/commands/cancel-submission/index.js.map +1 -0
- package/build/commands/cancel-submission/types.d.ts +3 -0
- package/build/commands/cancel-submission/types.js +2 -0
- package/build/commands/cancel-submission/types.js.map +1 -0
- package/build/commands/check-submission/index.d.ts +2 -0
- package/build/commands/check-submission/index.js +55 -0
- package/build/commands/check-submission/index.js.map +1 -0
- package/build/commands/check-submission/types.d.ts +3 -0
- package/build/commands/check-submission/types.js +2 -0
- package/build/commands/check-submission/types.js.map +1 -0
- package/build/commands/codemod/index.d.ts +3 -0
- package/build/commands/codemod/index.js +47 -0
- package/build/commands/codemod/index.js.map +1 -0
- package/build/commands/codemod/releases/index.d.ts +7 -0
- package/build/commands/codemod/releases/index.js +89 -0
- package/build/commands/codemod/releases/index.js.map +1 -0
- package/build/commands/codemod/releases/types.d.ts +9 -0
- package/build/commands/codemod/releases/types.js +2 -0
- package/build/commands/codemod/releases/types.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-100.d.ts +3 -0
- package/build/commands/codemod/releases/v0-0-100.js +50 -0
- package/build/commands/codemod/releases/v0-0-100.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-103.d.ts +3 -0
- package/build/commands/codemod/releases/v0-0-103.js +43 -0
- package/build/commands/codemod/releases/v0-0-103.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-105.d.ts +3 -0
- package/build/commands/codemod/releases/v0-0-105.js +59 -0
- package/build/commands/codemod/releases/v0-0-105.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-106.d.ts +3 -0
- package/build/commands/codemod/releases/v0-0-106.js +32 -0
- package/build/commands/codemod/releases/v0-0-106.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-114.d.ts +3 -0
- package/build/commands/codemod/releases/v0-0-114.js +48 -0
- package/build/commands/codemod/releases/v0-0-114.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-115.d.ts +3 -0
- package/build/commands/codemod/releases/v0-0-115.js +50 -0
- package/build/commands/codemod/releases/v0-0-115.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-121.d.ts +3 -0
- package/build/commands/codemod/releases/v0-0-121.js +74 -0
- package/build/commands/codemod/releases/v0-0-121.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-42/index.d.ts +3 -0
- package/build/commands/codemod/releases/v0-0-42/index.js +46 -0
- package/build/commands/codemod/releases/v0-0-42/index.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-42/reset-files.d.ts +7 -0
- package/build/commands/codemod/releases/v0-0-42/reset-files.js +83 -0
- package/build/commands/codemod/releases/v0-0-42/reset-files.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-43.d.ts +3 -0
- package/build/commands/codemod/releases/v0-0-43.js +32 -0
- package/build/commands/codemod/releases/v0-0-43.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-44.d.ts +3 -0
- package/build/commands/codemod/releases/v0-0-44.js +214 -0
- package/build/commands/codemod/releases/v0-0-44.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-45.d.ts +3 -0
- package/build/commands/codemod/releases/v0-0-45.js +23 -0
- package/build/commands/codemod/releases/v0-0-45.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-50.d.ts +3 -0
- package/build/commands/codemod/releases/v0-0-50.js +34 -0
- package/build/commands/codemod/releases/v0-0-50.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-54.d.ts +3 -0
- package/build/commands/codemod/releases/v0-0-54.js +70 -0
- package/build/commands/codemod/releases/v0-0-54.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-56.d.ts +3 -0
- package/build/commands/codemod/releases/v0-0-56.js +48 -0
- package/build/commands/codemod/releases/v0-0-56.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-57.d.ts +3 -0
- package/build/commands/codemod/releases/v0-0-57.js +41 -0
- package/build/commands/codemod/releases/v0-0-57.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-58.d.ts +3 -0
- package/build/commands/codemod/releases/v0-0-58.js +68 -0
- package/build/commands/codemod/releases/v0-0-58.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-61.d.ts +3 -0
- package/build/commands/codemod/releases/v0-0-61.js +30 -0
- package/build/commands/codemod/releases/v0-0-61.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-63.d.ts +3 -0
- package/build/commands/codemod/releases/v0-0-63.js +42 -0
- package/build/commands/codemod/releases/v0-0-63.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-64.d.ts +3 -0
- package/build/commands/codemod/releases/v0-0-64.js +47 -0
- package/build/commands/codemod/releases/v0-0-64.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-75.d.ts +3 -0
- package/build/commands/codemod/releases/v0-0-75.js +30 -0
- package/build/commands/codemod/releases/v0-0-75.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-76.d.ts +3 -0
- package/build/commands/codemod/releases/v0-0-76.js +32 -0
- package/build/commands/codemod/releases/v0-0-76.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-77.d.ts +3 -0
- package/build/commands/codemod/releases/v0-0-77.js +39 -0
- package/build/commands/codemod/releases/v0-0-77.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-79.d.ts +3 -0
- package/build/commands/codemod/releases/v0-0-79.js +35 -0
- package/build/commands/codemod/releases/v0-0-79.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-84.d.ts +3 -0
- package/build/commands/codemod/releases/v0-0-84.js +41 -0
- package/build/commands/codemod/releases/v0-0-84.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-85.d.ts +3 -0
- package/build/commands/codemod/releases/v0-0-85.js +60 -0
- package/build/commands/codemod/releases/v0-0-85.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-89.d.ts +3 -0
- package/build/commands/codemod/releases/v0-0-89.js +60 -0
- package/build/commands/codemod/releases/v0-0-89.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-91/index.d.ts +3 -0
- package/build/commands/codemod/releases/v0-0-91/index.js +38 -0
- package/build/commands/codemod/releases/v0-0-91/index.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-91/replace-dev-wrapper.d.ts +5 -0
- package/build/commands/codemod/releases/v0-0-91/replace-dev-wrapper.js +45 -0
- package/build/commands/codemod/releases/v0-0-91/replace-dev-wrapper.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-91/replace-safe-area-imports.d.ts +1 -0
- package/build/commands/codemod/releases/v0-0-91/replace-safe-area-imports.js +97 -0
- package/build/commands/codemod/releases/v0-0-91/replace-safe-area-imports.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-92.d.ts +3 -0
- package/build/commands/codemod/releases/v0-0-92.js +38 -0
- package/build/commands/codemod/releases/v0-0-92.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-93/blank/App-after.d.ts +1 -0
- package/build/commands/codemod/releases/v0-0-93/blank/App-after.js +15 -0
- package/build/commands/codemod/releases/v0-0-93/blank/App-after.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-93/blank/App-before.d.ts +1 -0
- package/build/commands/codemod/releases/v0-0-93/blank/App-before.js +13 -0
- package/build/commands/codemod/releases/v0-0-93/blank/App-before.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-93/index.d.ts +6 -0
- package/build/commands/codemod/releases/v0-0-93/index.js +7 -0
- package/build/commands/codemod/releases/v0-0-93/index.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-93/shoppable-posts/App-after.d.ts +1 -0
- package/build/commands/codemod/releases/v0-0-93/shoppable-posts/App-after.js +53 -0
- package/build/commands/codemod/releases/v0-0-93/shoppable-posts/App-after.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-93/shoppable-posts/App-before.d.ts +1 -0
- package/build/commands/codemod/releases/v0-0-93/shoppable-posts/App-before.js +43 -0
- package/build/commands/codemod/releases/v0-0-93/shoppable-posts/App-before.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-93/shoppable-videos/App-after.d.ts +1 -0
- package/build/commands/codemod/releases/v0-0-93/shoppable-videos/App-after.js +49 -0
- package/build/commands/codemod/releases/v0-0-93/shoppable-videos/App-after.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-93/shoppable-videos/App-before.d.ts +1 -0
- package/build/commands/codemod/releases/v0-0-93/shoppable-videos/App-before.js +42 -0
- package/build/commands/codemod/releases/v0-0-93/shoppable-videos/App-before.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-93.d.ts +3 -0
- package/build/commands/codemod/releases/v0-0-93.js +48 -0
- package/build/commands/codemod/releases/v0-0-93.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-97/index.d.ts +3 -0
- package/build/commands/codemod/releases/v0-0-97/index.js +20 -0
- package/build/commands/codemod/releases/v0-0-97/index.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-97/migrate-to-new-theme.d.ts +1 -0
- package/build/commands/codemod/releases/v0-0-97/migrate-to-new-theme.js +47 -0
- package/build/commands/codemod/releases/v0-0-97/migrate-to-new-theme.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-97/remove-theme-from-config.d.ts +1 -0
- package/build/commands/codemod/releases/v0-0-97/remove-theme-from-config.js +105 -0
- package/build/commands/codemod/releases/v0-0-97/remove-theme-from-config.js.map +1 -0
- package/build/commands/config.d.ts +14 -0
- package/build/commands/config.js +42 -0
- package/build/commands/config.js.map +1 -0
- package/build/commands/create-extension/constants.d.ts +24 -0
- package/build/commands/create-extension/constants.js +68 -0
- package/build/commands/create-extension/constants.js.map +1 -0
- package/build/commands/create-extension/index.d.ts +2 -0
- package/build/commands/create-extension/index.js +122 -0
- package/build/commands/create-extension/index.js.map +1 -0
- package/build/commands/create-extension/types.d.ts +11 -0
- package/build/commands/create-extension/types.js +7 -0
- package/build/commands/create-extension/types.js.map +1 -0
- package/build/commands/create-extension/utils/add-target-to-config.d.ts +2 -0
- package/build/commands/create-extension/utils/add-target-to-config.js +56 -0
- package/build/commands/create-extension/utils/add-target-to-config.js.map +1 -0
- package/build/commands/create-extension/utils/create-from-template.d.ts +3 -0
- package/build/commands/create-extension/utils/create-from-template.js +46 -0
- package/build/commands/create-extension/utils/create-from-template.js.map +1 -0
- package/build/commands/create-mini/index.d.ts +2 -0
- package/build/commands/create-mini/index.js +137 -0
- package/build/commands/create-mini/index.js.map +1 -0
- package/build/commands/create-mini/utils/template-app.d.ts +1 -0
- package/build/commands/create-mini/utils/template-app.js +47 -0
- package/build/commands/create-mini/utils/template-app.js.map +1 -0
- package/build/commands/dev/index.d.ts +12 -0
- package/build/commands/dev/index.js +75 -0
- package/build/commands/dev/index.js.map +1 -0
- package/build/commands/dev/utils/android.d.ts +18 -0
- package/build/commands/dev/utils/android.js +153 -0
- package/build/commands/dev/utils/android.js.map +1 -0
- package/build/commands/dev/utils/binaries.d.ts +5 -0
- package/build/commands/dev/utils/binaries.js +17 -0
- package/build/commands/dev/utils/binaries.js.map +1 -0
- package/build/commands/dev/utils/build-type.d.ts +2 -0
- package/build/commands/dev/utils/build-type.js +14 -0
- package/build/commands/dev/utils/build-type.js.map +1 -0
- package/build/commands/dev/utils/deeplink.d.ts +14 -0
- package/build/commands/dev/utils/deeplink.js +58 -0
- package/build/commands/dev/utils/deeplink.js.map +1 -0
- package/build/commands/dev/utils/interactive-terminal.d.ts +25 -0
- package/build/commands/dev/utils/interactive-terminal.js +210 -0
- package/build/commands/dev/utils/interactive-terminal.js.map +1 -0
- package/build/commands/dev/utils/metro/metro-config.d.ts +2 -0
- package/build/commands/dev/utils/metro/metro-config.js +27 -0
- package/build/commands/dev/utils/metro/metro-config.js.map +1 -0
- package/build/commands/dev/utils/metro/metro-minis-module-resolver.d.ts +6 -0
- package/build/commands/dev/utils/metro/metro-minis-module-resolver.js +11 -0
- package/build/commands/dev/utils/metro/metro-minis-module-resolver.js.map +1 -0
- package/build/commands/dev/utils/metro/metro-reporter.d.ts +13 -0
- package/build/commands/dev/utils/metro/metro-reporter.js +27 -0
- package/build/commands/dev/utils/metro/metro-reporter.js.map +1 -0
- package/build/commands/dev/utils/metro/metro-server-middleware.d.ts +10 -0
- package/build/commands/dev/utils/metro/metro-server-middleware.js +74 -0
- package/build/commands/dev/utils/metro/metro-server-middleware.js.map +1 -0
- package/build/commands/dev/utils/metro/metro-server.d.ts +6 -0
- package/build/commands/dev/utils/metro/metro-server.js +26 -0
- package/build/commands/dev/utils/metro/metro-server.js.map +1 -0
- package/build/commands/dev/utils/network.d.ts +20 -0
- package/build/commands/dev/utils/network.js +129 -0
- package/build/commands/dev/utils/network.js.map +1 -0
- package/build/commands/dev/utils/platform.d.ts +18 -0
- package/build/commands/dev/utils/platform.js +41 -0
- package/build/commands/dev/utils/platform.js.map +1 -0
- package/build/commands/dev/utils/prompt-binary-upgrade.d.ts +1 -0
- package/build/commands/dev/utils/prompt-binary-upgrade.js +12 -0
- package/build/commands/dev/utils/prompt-binary-upgrade.js.map +1 -0
- package/build/commands/dev/utils/qr-code.d.ts +1 -0
- package/build/commands/dev/utils/qr-code.js +5 -0
- package/build/commands/dev/utils/qr-code.js.map +1 -0
- package/build/commands/dev/utils/react-native-version.d.ts +4 -0
- package/build/commands/dev/utils/react-native-version.js +23 -0
- package/build/commands/dev/utils/react-native-version.js.map +1 -0
- package/build/commands/dev/utils/simulator.d.ts +22 -0
- package/build/commands/dev/utils/simulator.js +95 -0
- package/build/commands/dev/utils/simulator.js.map +1 -0
- package/build/commands/dev/utils/start-app/config.d.ts +5 -0
- package/build/commands/dev/utils/start-app/config.js +25 -0
- package/build/commands/dev/utils/start-app/config.js.map +1 -0
- package/build/commands/dev/utils/start-app/start-app-with-options.d.ts +2 -0
- package/build/commands/dev/utils/start-app/start-app-with-options.js +94 -0
- package/build/commands/dev/utils/start-app/start-app-with-options.js.map +1 -0
- package/build/commands/dev/utils/start-app/start-app.d.ts +2 -0
- package/build/commands/dev/utils/start-app/start-app.js +10 -0
- package/build/commands/dev/utils/start-app/start-app.js.map +1 -0
- package/build/commands/dev/utils/start-app/types.d.ts +20 -0
- package/build/commands/dev/utils/start-app/types.js +2 -0
- package/build/commands/dev/utils/start-app/types.js.map +1 -0
- package/build/commands/dev/utils/types.d.ts +24 -0
- package/build/commands/dev/utils/types.js +7 -0
- package/build/commands/dev/utils/types.js.map +1 -0
- package/build/commands/dev/utils/version.d.ts +64 -0
- package/build/commands/dev/utils/version.js +101 -0
- package/build/commands/dev/utils/version.js.map +1 -0
- package/build/commands/dev/utils/with-retries.d.ts +4 -0
- package/build/commands/dev/utils/with-retries.js +24 -0
- package/build/commands/dev/utils/with-retries.js.map +1 -0
- package/build/commands/doctor/index.d.ts +6 -0
- package/build/commands/doctor/index.js +21 -0
- package/build/commands/doctor/index.js.map +1 -0
- package/build/commands/doctor/utils/diagnose-dependencies.d.ts +7 -0
- package/build/commands/doctor/utils/diagnose-dependencies.js +113 -0
- package/build/commands/doctor/utils/diagnose-dependencies.js.map +1 -0
- package/build/commands/features/index.d.ts +6 -0
- package/build/commands/features/index.js +135 -0
- package/build/commands/features/index.js.map +1 -0
- package/build/commands/generate-graphql-types/index.d.ts +6 -0
- package/build/commands/generate-graphql-types/index.js +33 -0
- package/build/commands/generate-graphql-types/index.js.map +1 -0
- package/build/commands/generate-graphql-types/utils/generate-graphql-types.d.ts +2 -0
- package/build/commands/generate-graphql-types/utils/generate-graphql-types.js +101 -0
- package/build/commands/generate-graphql-types/utils/generate-graphql-types.js.map +1 -0
- package/build/commands/info/index.d.ts +3 -0
- package/build/commands/info/index.js +42 -0
- package/build/commands/info/index.js.map +1 -0
- package/build/commands/setup/index.d.ts +2 -0
- package/build/commands/setup/index.js +82 -0
- package/build/commands/setup/index.js.map +1 -0
- package/build/commands/submit/config.d.ts +9 -0
- package/build/commands/submit/config.js +18 -0
- package/build/commands/submit/config.js.map +1 -0
- package/build/commands/submit/errors.d.ts +19 -0
- package/build/commands/submit/errors.js +87 -0
- package/build/commands/submit/errors.js.map +1 -0
- package/build/commands/submit/gcs.d.ts +6 -0
- package/build/commands/submit/gcs.js +21 -0
- package/build/commands/submit/gcs.js.map +1 -0
- package/build/commands/submit/index.d.ts +2 -0
- package/build/commands/submit/index.js +25 -0
- package/build/commands/submit/index.js.map +1 -0
- package/build/commands/submit/submit.d.ts +5 -0
- package/build/commands/submit/submit.js +225 -0
- package/build/commands/submit/submit.js.map +1 -0
- package/build/commands/submit/tasks.d.ts +37 -0
- package/build/commands/submit/tasks.js +91 -0
- package/build/commands/submit/tasks.js.map +1 -0
- package/build/commands/submit/types.d.ts +14 -0
- package/build/commands/submit/types.js +2 -0
- package/build/commands/submit/types.js.map +1 -0
- package/build/commands/submit/utils/assert-core-dependencies-version.d.ts +1 -0
- package/build/commands/submit/utils/assert-core-dependencies-version.js +58 -0
- package/build/commands/submit/utils/assert-core-dependencies-version.js.map +1 -0
- package/build/commands/submit/utils/request-entry-point-params.d.ts +1 -0
- package/build/commands/submit/utils/request-entry-point-params.js +41 -0
- package/build/commands/submit/utils/request-entry-point-params.js.map +1 -0
- package/build/commands/submit/validation.d.ts +1 -0
- package/build/commands/submit/validation.js +11 -0
- package/build/commands/submit/validation.js.map +1 -0
- package/build/commands/upgrade/index.d.ts +13 -0
- package/build/commands/upgrade/index.js +65 -0
- package/build/commands/upgrade/index.js.map +1 -0
- package/build/commands/upgrade/utils/clear-metro-cache.d.ts +1 -0
- package/build/commands/upgrade/utils/clear-metro-cache.js +12 -0
- package/build/commands/upgrade/utils/clear-metro-cache.js.map +1 -0
- package/build/commands/upgrade/utils/cli.d.ts +1 -0
- package/build/commands/upgrade/utils/cli.js +15 -0
- package/build/commands/upgrade/utils/cli.js.map +1 -0
- package/build/commands/validate-manifest/index.d.ts +3 -0
- package/build/commands/validate-manifest/index.js +29 -0
- package/build/commands/validate-manifest/index.js.map +1 -0
- package/build/constants/extensions.d.ts +26 -0
- package/build/constants/extensions.js +31 -0
- package/build/constants/extensions.js.map +1 -0
- package/build/data/accept-invitation.d.ts +4 -0
- package/build/data/accept-invitation.js +16 -0
- package/build/data/accept-invitation.js.map +1 -0
- package/build/data/cancel-submission.d.ts +22 -0
- package/build/data/cancel-submission.js +26 -0
- package/build/data/cancel-submission.js.map +1 -0
- package/build/data/create-submission.d.ts +20 -0
- package/build/data/create-submission.js +27 -0
- package/build/data/create-submission.js.map +1 -0
- package/build/data/create-upload.d.ts +21 -0
- package/build/data/create-upload.js +40 -0
- package/build/data/create-upload.js.map +1 -0
- package/build/data/get-submissions.d.ts +27 -0
- package/build/data/get-submissions.js +33 -0
- package/build/data/get-submissions.js.map +1 -0
- package/build/data/gql-client.d.ts +8 -0
- package/build/data/gql-client.js +9 -0
- package/build/data/gql-client.js.map +1 -0
- package/build/data/mini.d.ts +5 -0
- package/build/data/mini.js +14 -0
- package/build/data/mini.js.map +1 -0
- package/build/data/types/autogenerated/shop-minis-admin-api/fragment-masking.d.ts +13 -0
- package/build/data/types/autogenerated/shop-minis-admin-api/fragment-masking.js +7 -0
- package/build/data/types/autogenerated/shop-minis-admin-api/fragment-masking.js.map +1 -0
- package/build/data/types/autogenerated/shop-minis-admin-api/gql.d.ts +75 -0
- package/build/data/types/autogenerated/shop-minis-admin-api/gql.js +24 -0
- package/build/data/types/autogenerated/shop-minis-admin-api/gql.js.map +1 -0
- package/build/data/types/autogenerated/shop-minis-admin-api/graphql.d.ts +1745 -0
- package/build/data/types/autogenerated/shop-minis-admin-api/graphql.js +1072 -0
- package/build/data/types/autogenerated/shop-minis-admin-api/graphql.js.map +1 -0
- package/build/data/types/autogenerated/shop-minis-admin-api/index.d.ts +2 -0
- package/build/data/types/autogenerated/shop-minis-admin-api/index.js +3 -0
- package/build/data/types/autogenerated/shop-minis-admin-api/index.js.map +1 -0
- package/build/dev-panel/asset-manifest.json +13 -0
- package/build/dev-panel/checkmark.svg +3 -0
- package/build/dev-panel/chevron.svg +3 -0
- package/build/dev-panel/copy.svg +4 -0
- package/build/dev-panel/get-started.svg +3 -0
- package/build/dev-panel/how-to.svg +3 -0
- package/build/dev-panel/index.html +1 -0
- package/build/dev-panel/references.svg +3 -0
- package/build/dev-panel/robots.txt +3 -0
- package/build/dev-panel/static/css/main.7f1ee407.css +2 -0
- package/build/dev-panel/static/css/main.7f1ee407.css.map +1 -0
- package/build/dev-panel/static/js/main.6625699c.js +3 -0
- package/build/dev-panel/static/js/main.6625699c.js.LICENSE.txt +41 -0
- package/build/dev-panel/static/js/main.6625699c.js.map +1 -0
- package/build/dev-panel/topics.svg +3 -0
- package/build/index.d.ts +2 -0
- package/build/index.js +47 -0
- package/build/index.js.map +1 -0
- package/build/schemas/manifest.schema.json +214 -0
- package/build/templates-index.d.ts +6 -0
- package/build/templates-index.js +19 -0
- package/build/templates-index.js.map +1 -0
- package/build/utils/archive.d.ts +30 -0
- package/build/utils/archive.js +38 -0
- package/build/utils/archive.js.map +1 -0
- package/build/utils/codemod.d.ts +86 -0
- package/build/utils/codemod.js +161 -0
- package/build/utils/codemod.js.map +1 -0
- package/build/utils/common-tasks.d.ts +1 -0
- package/build/utils/common-tasks.js +49 -0
- package/build/utils/common-tasks.js.map +1 -0
- package/build/utils/development-params.d.ts +13 -0
- package/build/utils/development-params.js +44 -0
- package/build/utils/development-params.js.map +1 -0
- package/build/utils/exec-async-child-process.d.ts +18 -0
- package/build/utils/exec-async-child-process.js +41 -0
- package/build/utils/exec-async-child-process.js.map +1 -0
- package/build/utils/extensions.d.ts +13 -0
- package/build/utils/extensions.js +87 -0
- package/build/utils/extensions.js.map +1 -0
- package/build/utils/file.d.ts +1 -0
- package/build/utils/file.js +7 -0
- package/build/utils/file.js.map +1 -0
- package/build/utils/minis-manifest.d.ts +8 -0
- package/build/utils/minis-manifest.js +67 -0
- package/build/utils/minis-manifest.js.map +1 -0
- package/build/utils/package-manager.d.ts +42 -0
- package/build/utils/package-manager.js +107 -0
- package/build/utils/package-manager.js.map +1 -0
- package/build/utils/patch-package.d.ts +5 -0
- package/build/utils/patch-package.js +76 -0
- package/build/utils/patch-package.js.map +1 -0
- package/build/utils/path.d.ts +1 -0
- package/build/utils/path.js +8 -0
- package/build/utils/path.js.map +1 -0
- package/build/utils/replace-strings-in-template.d.ts +1 -0
- package/build/utils/replace-strings-in-template.js +15 -0
- package/build/utils/replace-strings-in-template.js.map +1 -0
- package/build/utils/semver.d.ts +1 -0
- package/build/utils/semver.js +19 -0
- package/build/utils/semver.js.map +1 -0
- package/build/utils/wrap-with-loading-indicator.d.ts +9 -0
- package/build/utils/wrap-with-loading-indicator.js +16 -0
- package/build/utils/wrap-with-loading-indicator.js.map +1 -0
- package/package.json +102 -0
- package/scripts/graphql-codegen.ts +23 -0
- package/scripts/test-template.ts +66 -0
- package/shipit.snapshot.yml +9 -0
- package/templates/__template_blank/src/App.tsx +24 -0
- package/templates/__template_blank/src/index.tsx +9 -0
- package/templates/__template_common/.eslintignore +1 -0
- package/templates/__template_common/.eslintrc.js +3 -0
- package/templates/__template_common/.graphqlrc.js +1 -0
- package/templates/__template_common/.prettierrc.json +8 -0
- package/templates/__template_common/assets.d.ts +14 -0
- package/templates/__template_common/babel.config.js +5 -0
- package/templates/__template_common/gitignore +5 -0
- package/templates/__template_common/index.tsx +7 -0
- package/templates/__template_common/metro.config.js +5 -0
- package/templates/__template_common/package.json +38 -0
- package/templates/__template_common/src/manifest.json +6 -0
- package/templates/__template_common/tsconfig.json +41 -0
- package/templates/__template_shoppable_posts/src/App.tsx +37 -0
- package/templates/__template_shoppable_posts/src/index.tsx +9 -0
- package/templates/__template_shoppable_videos/src/App.tsx +34 -0
- package/templates/__template_shoppable_videos/src/index.tsx +9 -0
- package/templates/extensions/components/__template_blank/render.tsx +11 -0
- package/templates/extensions/components/__template_bundle-collection/render.tsx +31 -0
- package/templates/extensions/components/__template_bundle-collection/seed.ts +26 -0
- package/templates/extensions/components/__template_bundle-selector/render.tsx +51 -0
- package/templates/extensions/components/__template_bundle-selector/seed.ts +72 -0
- package/templates/extensions/components/__template_default-card/render.tsx +24 -0
- package/templates/extensions/components/__template_default-card/seed.ts +10 -0
- package/templates/extensions/components/__template_image-collection/render.tsx +17 -0
- package/templates/extensions/components/__template_image-collection/seed.ts +70 -0
- package/templates/extensions/components/__template_link/render.tsx +17 -0
- package/templates/extensions/components/__template_link/seed.ts +5 -0
- package/templates/extensions/components/__template_product-offer-card/render.tsx +17 -0
- package/templates/extensions/components/__template_product-offer-card/seed.ts +44 -0
- package/templates/extensions/components/__template_video-collection/render.tsx +17 -0
- package/templates/extensions/components/__template_video-collection/seed.ts +37 -0
- package/templates/extensions/queries/__template_product-page/input.graphql +6 -0
- package/templates/extensions/queries/__template_product-page/input.graphql.d.ts +26 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { ClientError } from 'graphql-request';
|
|
2
|
+
import { AbortError } from '@shopify/cli-kit/node/error';
|
|
3
|
+
import { APPLY_FOR_EARLY_ACCESS_URL, SHOP_MINIS_ADMIN_API_KEY, } from '../commands/config.js';
|
|
4
|
+
import { getSubmissions as graphqlGetSubmissions } from '../data/get-submissions.js';
|
|
5
|
+
export async function assertNetworkAndAuth() {
|
|
6
|
+
const apiKey = SHOP_MINIS_ADMIN_API_KEY;
|
|
7
|
+
if (!apiKey) {
|
|
8
|
+
throw new AbortError('Shop Minis API key is not set.', undefined, [
|
|
9
|
+
[
|
|
10
|
+
'To continue, set the environment variable in .env',
|
|
11
|
+
{ bold: 'SHOP_MINIS_API_KEY=<your-shop-minis-api-key>' },
|
|
12
|
+
],
|
|
13
|
+
]);
|
|
14
|
+
}
|
|
15
|
+
try {
|
|
16
|
+
// Use this query as a simple way to check network and auth at the same time
|
|
17
|
+
await graphqlGetSubmissions();
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
if (error instanceof ClientError && error.response.status === 401) {
|
|
21
|
+
throw new AbortError('Unable to authenticate your account', 'Your Shop Minis Admin API key is invalid.\n' +
|
|
22
|
+
'Request a new API key and insert it into .env to continue.', [
|
|
23
|
+
[
|
|
24
|
+
'If you',
|
|
25
|
+
{ bold: 'have' },
|
|
26
|
+
'early access, request a new Shop Minis Admin API key from the Shop Minis team.',
|
|
27
|
+
],
|
|
28
|
+
[
|
|
29
|
+
'If you',
|
|
30
|
+
{ bold: "don't have" },
|
|
31
|
+
'early access, apply for early access:',
|
|
32
|
+
{
|
|
33
|
+
link: {
|
|
34
|
+
url: APPLY_FOR_EARLY_ACCESS_URL,
|
|
35
|
+
label: 'Shop Minis website',
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
]);
|
|
40
|
+
}
|
|
41
|
+
if (error instanceof Object &&
|
|
42
|
+
'code' in error &&
|
|
43
|
+
error?.code === 'ENOTFOUND') {
|
|
44
|
+
throw new AbortError(`Network error`, 'Try again and if the issue continues, contact us.', ['Try to run `submit` again', "Contact Shop if you're having issues"]);
|
|
45
|
+
}
|
|
46
|
+
throw error;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=common-tasks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common-tasks.js","sourceRoot":"","sources":["../../src/utils/common-tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAC,UAAU,EAAC,MAAM,6BAA6B,CAAA;AAEtD,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAC,cAAc,IAAI,qBAAqB,EAAC,MAAM,4BAA4B,CAAA;AAElF,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,MAAM,GAAG,wBAAwB,CAAA;IAEvC,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,IAAI,UAAU,CAAC,gCAAgC,EAAE,SAAS,EAAE;YAChE;gBACE,mDAAmD;gBACnD,EAAC,IAAI,EAAE,8CAA8C,EAAC;aACvD;SACF,CAAC,CAAA;KACH;IAED,IAAI;QACF,4EAA4E;QAC5E,MAAM,qBAAqB,EAAE,CAAA;KAC9B;IAAC,OAAO,KAAK,EAAE;QACd,IAAI,KAAK,YAAY,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;YACjE,MAAM,IAAI,UAAU,CAClB,qCAAqC,EACrC,6CAA6C;gBAC3C,4DAA4D,EAC9D;gBACE;oBACE,QAAQ;oBACR,EAAC,IAAI,EAAE,MAAM,EAAC;oBACd,gFAAgF;iBACjF;gBACD;oBACE,QAAQ;oBACR,EAAC,IAAI,EAAE,YAAY,EAAC;oBACpB,uCAAuC;oBACvC;wBACE,IAAI,EAAE;4BACJ,GAAG,EAAE,0BAA0B;4BAC/B,KAAK,EAAE,oBAAoB;yBAC5B;qBACF;iBACF;aACF,CACF,CAAA;SACF;QAED,IACE,KAAK,YAAY,MAAM;YACvB,MAAM,IAAI,KAAK;YACf,KAAK,EAAE,IAAI,KAAK,WAAW,EAC3B;YACA,MAAM,IAAI,UAAU,CAClB,eAAe,EACf,mDAAmD,EACnD,CAAC,2BAA2B,EAAE,sCAAsC,CAAC,CACtE,CAAA;SACF;QAED,MAAM,KAAK,CAAA;KACZ;AACH,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
declare const ALLOWED_ENTRY_POINT_PARAMS: readonly ["product_id", "shop_id", "product_variant_id", "external_id", "shop_domain", "order_id", "category_id"];
|
|
2
|
+
type DevelopmentEntryPointParams = {
|
|
3
|
+
[key in (typeof ALLOWED_ENTRY_POINT_PARAMS)[number]]?: string;
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* Reads the content of the file entry-point-params.json in the rootpath of a Mini folder, which should be of the shape Record<string, string>.
|
|
7
|
+
* Then, formats the object as an URL query string and returns it.
|
|
8
|
+
*
|
|
9
|
+
* Returns empty string if the file does not exist or if the format of its content is incorrect.
|
|
10
|
+
*/
|
|
11
|
+
export declare function getDevelopmentEntryPointParams(): DevelopmentEntryPointParams;
|
|
12
|
+
export declare function getDevelopmentEntryPointParamsQueryString(): string;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { getMiniBasePath } from './path.js';
|
|
4
|
+
const ALLOWED_ENTRY_POINT_PARAMS = [
|
|
5
|
+
'product_id',
|
|
6
|
+
'shop_id',
|
|
7
|
+
'product_variant_id',
|
|
8
|
+
'external_id',
|
|
9
|
+
'shop_domain',
|
|
10
|
+
'order_id',
|
|
11
|
+
'category_id',
|
|
12
|
+
];
|
|
13
|
+
const DEVELOPMENT_PARAMS_FILE_NAME = 'entry-point-params.json';
|
|
14
|
+
const DEVELOPMENT_PARAMS_FILE_PATH = path.join(getMiniBasePath(), DEVELOPMENT_PARAMS_FILE_NAME);
|
|
15
|
+
/**
|
|
16
|
+
* Reads the content of the file entry-point-params.json in the rootpath of a Mini folder, which should be of the shape Record<string, string>.
|
|
17
|
+
* Then, formats the object as an URL query string and returns it.
|
|
18
|
+
*
|
|
19
|
+
* Returns empty string if the file does not exist or if the format of its content is incorrect.
|
|
20
|
+
*/
|
|
21
|
+
export function getDevelopmentEntryPointParams() {
|
|
22
|
+
try {
|
|
23
|
+
const localRequire = createRequire(import.meta.url);
|
|
24
|
+
delete localRequire.cache[localRequire.resolve(DEVELOPMENT_PARAMS_FILE_PATH)];
|
|
25
|
+
const persistedParams = localRequire(DEVELOPMENT_PARAMS_FILE_PATH);
|
|
26
|
+
const paramsAsEntries = Object.entries(persistedParams).filter(([key, value]) => ALLOWED_ENTRY_POINT_PARAMS.includes(key) && Boolean(value));
|
|
27
|
+
return Object.fromEntries(paramsAsEntries);
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
if (err?.code !== 'MODULE_NOT_FOUND' && err?.code !== 'ENOENT') {
|
|
31
|
+
console.log('\n ⚠️ Development entrypoints params ignored due to errors:\n');
|
|
32
|
+
console.log(err);
|
|
33
|
+
console.log('\n');
|
|
34
|
+
}
|
|
35
|
+
// do nothing, the development entrypoint params file is optional and might not exist.
|
|
36
|
+
return {};
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export function getDevelopmentEntryPointParamsQueryString() {
|
|
40
|
+
const paramsObject = getDevelopmentEntryPointParams();
|
|
41
|
+
const paramsQueryString = new URLSearchParams(paramsObject).toString();
|
|
42
|
+
return paramsQueryString ? `?${paramsQueryString}` : '';
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=development-params.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"development-params.js","sourceRoot":"","sources":["../../src/utils/development-params.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAA;AACzC,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAC,eAAe,EAAC,MAAM,WAAW,CAAA;AAEzC,MAAM,0BAA0B,GAAG;IACjC,YAAY;IACZ,SAAS;IACT,oBAAoB;IACpB,aAAa;IACb,aAAa;IACb,UAAU;IACV,aAAa;CACL,CAAA;AAMV,MAAM,4BAA4B,GAAG,yBAAyB,CAAA;AAC9D,MAAM,4BAA4B,GAAG,IAAI,CAAC,IAAI,CAC5C,eAAe,EAAE,EACjB,4BAA4B,CAC7B,CAAA;AAED;;;;;GAKG;AACH,MAAM,UAAU,8BAA8B;IAC5C,IAAI;QACF,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACnD,OAAO,YAAY,CAAC,KAAK,CACvB,YAAY,CAAC,OAAO,CAAC,4BAA4B,CAAC,CACnD,CAAA;QACD,MAAM,eAAe,GAA2B,YAAY,CAC1D,4BAA4B,CAC7B,CAAA;QAED,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,MAAM,CAC5D,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CACf,0BAA0B,CAAC,QAAQ,CACjC,GAAwC,CACzC,IAAI,OAAO,CAAC,KAAK,CAAC,CACtB,CAAA;QACD,OAAO,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,CAAA;KAC3C;IAAC,OAAO,GAAQ,EAAE;QACjB,IAAI,GAAG,EAAE,IAAI,KAAK,kBAAkB,IAAI,GAAG,EAAE,IAAI,KAAK,QAAQ,EAAE;YAC9D,OAAO,CAAC,GAAG,CACT,gEAAgE,CACjE,CAAA;YACD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAChB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;SAClB;QACD,sFAAsF;QACtF,OAAO,EAAE,CAAA;KACV;AACH,CAAC;AAED,MAAM,UAAU,yCAAyC;IACvD,MAAM,YAAY,GAAG,8BAA8B,EAAE,CAAA;IACrD,MAAM,iBAAiB,GAAG,IAAI,eAAe,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAA;IAEtE,OAAO,iBAAiB,CAAC,CAAC,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;AACzD,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
import { exec } from 'child_process';
|
|
3
|
+
import { Options as OraOptions } from 'ora';
|
|
4
|
+
declare const _execAsync: typeof exec.__promisify__;
|
|
5
|
+
type Tail<T extends any[]> = T extends [infer _I, ...infer L] ? L : never;
|
|
6
|
+
type ExecOptions = Tail<Parameters<typeof _execAsync>>;
|
|
7
|
+
interface CmdOptions {
|
|
8
|
+
cmd: string;
|
|
9
|
+
loadingMessage?: string;
|
|
10
|
+
successMessage?: string;
|
|
11
|
+
errorMessage?: string;
|
|
12
|
+
spinnerOptions?: Omit<OraOptions, 'text' | 'prefixText'>;
|
|
13
|
+
}
|
|
14
|
+
export declare function execAsync(cmdConfig: CmdOptions | string, ...args: ExecOptions): Promise<{
|
|
15
|
+
stdout: string[];
|
|
16
|
+
stderr: string[];
|
|
17
|
+
}>;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { promisify } from 'util';
|
|
2
|
+
import { exec } from 'child_process';
|
|
3
|
+
import ora from 'ora';
|
|
4
|
+
const _execAsync = promisify(exec);
|
|
5
|
+
export async function execAsync(cmdConfig, ...args) {
|
|
6
|
+
if (typeof cmdConfig === 'string') {
|
|
7
|
+
cmdConfig = { cmd: cmdConfig }; // eslint-disable-line no-param-reassign
|
|
8
|
+
}
|
|
9
|
+
const loadingIndicator = ora(cmdConfig.spinnerOptions);
|
|
10
|
+
if (cmdConfig.loadingMessage) {
|
|
11
|
+
loadingIndicator.start(cmdConfig.loadingMessage);
|
|
12
|
+
}
|
|
13
|
+
let stderr = '';
|
|
14
|
+
let stdout = '';
|
|
15
|
+
try {
|
|
16
|
+
const result = await _execAsync(cmdConfig.cmd, ...args);
|
|
17
|
+
stderr = result.stderr;
|
|
18
|
+
stdout = result.stdout;
|
|
19
|
+
}
|
|
20
|
+
catch (err) {
|
|
21
|
+
if (loadingIndicator.isSpinning) {
|
|
22
|
+
loadingIndicator.fail(cmdConfig.errorMessage);
|
|
23
|
+
console.log('\n');
|
|
24
|
+
}
|
|
25
|
+
throw err;
|
|
26
|
+
}
|
|
27
|
+
if (loadingIndicator.isSpinning) {
|
|
28
|
+
loadingIndicator.succeed(cmdConfig.successMessage);
|
|
29
|
+
}
|
|
30
|
+
if (typeof stdout !== 'string') {
|
|
31
|
+
stdout = stdout.toString('utf8');
|
|
32
|
+
}
|
|
33
|
+
if (typeof stderr !== 'string') {
|
|
34
|
+
stderr = stderr.toString('utf8');
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
stdout: stdout.split(/[\n\r\t]+/).filter(Boolean),
|
|
38
|
+
stderr: stderr.split(/[\n\r\t]+/).filter(Boolean),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=exec-async-child-process.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exec-async-child-process.js","sourceRoot":"","sources":["../../src/utils/exec-async-child-process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,MAAM,CAAA;AAC9B,OAAO,EAAC,IAAI,EAAC,MAAM,eAAe,CAAA;AAElC,OAAO,GAA4B,MAAM,KAAK,CAAA;AAE9C,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;AAalC,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,SAA8B,EAC9B,GAAG,IAAiB;IAEpB,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;QACjC,SAAS,GAAG,EAAC,GAAG,EAAE,SAAS,EAAC,CAAA,CAAC,wCAAwC;KACtE;IAED,MAAM,gBAAgB,GAAG,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IACtD,IAAI,SAAS,CAAC,cAAc,EAAE;QAC5B,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;KACjD;IAED,IAAI,MAAM,GAAoB,EAAE,CAAA;IAChC,IAAI,MAAM,GAAoB,EAAE,CAAA;IAChC,IAAI;QACF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;QACvD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;QACtB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;KACvB;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,gBAAgB,CAAC,UAAU,EAAE;YAC/B,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;YAC7C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;SAClB;QACD,MAAM,GAAG,CAAA;KACV;IAED,IAAI,gBAAgB,CAAC,UAAU,EAAE;QAC/B,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;KACnD;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC9B,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;KACjC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC9B,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;KACjC;IACD,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QACjD,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;KAClD,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ExtensionTarget } from '../constants/extensions.js';
|
|
2
|
+
export declare const CONFIG_PATH: string;
|
|
3
|
+
/**
|
|
4
|
+
* Find a list of extensions used by this mini
|
|
5
|
+
*
|
|
6
|
+
* We read this from the minis src/index.tsx config.Targets object
|
|
7
|
+
*/
|
|
8
|
+
export declare function getMiniExtensions(specifiedExtensionTargets: string[] | undefined): Promise<ExtensionTarget[]>;
|
|
9
|
+
/**
|
|
10
|
+
* Given a extension target name, returns the path to the folder in the mini codebase that contains
|
|
11
|
+
* input queries
|
|
12
|
+
*/
|
|
13
|
+
export declare function getExtensionInputQueriesFolderPath(target: string): string;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { readFile } from 'node:fs/promises';
|
|
3
|
+
import { outputDebug } from '@shopify/cli-kit/node/output';
|
|
4
|
+
import { ExtensionTarget } from '../constants/extensions.js';
|
|
5
|
+
import { findObjectExpression, findObjectProperty, j, objectKeys, } from './codemod.js';
|
|
6
|
+
import { getMiniBasePath } from './path.js';
|
|
7
|
+
export const CONFIG_PATH = path.join('src', 'index.tsx');
|
|
8
|
+
const readConfigFile = () => readFile(path.join(getMiniBasePath(), CONFIG_PATH), 'utf8');
|
|
9
|
+
/**
|
|
10
|
+
* Find a list of extensions used by this mini
|
|
11
|
+
*
|
|
12
|
+
* We read this from the minis src/index.tsx config.Targets object
|
|
13
|
+
*/
|
|
14
|
+
export async function getMiniExtensions(specifiedExtensionTargets) {
|
|
15
|
+
let configFile;
|
|
16
|
+
let root;
|
|
17
|
+
try {
|
|
18
|
+
configFile = await readConfigFile();
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
outputDebug(`getMiniExtensions couldn't read config at ${CONFIG_PATH}`);
|
|
22
|
+
return [];
|
|
23
|
+
}
|
|
24
|
+
if (!configFile || !configFile.includes('MiniAppConfig')) {
|
|
25
|
+
outputDebug(`getMiniExtensions couldn't find \`MiniAppConfig\` in ${CONFIG_PATH}`);
|
|
26
|
+
return [];
|
|
27
|
+
}
|
|
28
|
+
try {
|
|
29
|
+
root = j(configFile);
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
outputDebug(`getMiniExtensions couldn't parse config at ${CONFIG_PATH}`);
|
|
33
|
+
return [];
|
|
34
|
+
}
|
|
35
|
+
// It would be better if we could find this by type `MiniAppConfig`
|
|
36
|
+
// Or find it by tracing back the default export of the config file
|
|
37
|
+
const configObject = findObjectExpression(root, 'config');
|
|
38
|
+
if (!configObject) {
|
|
39
|
+
outputDebug(`getMiniExtensions couldn't find a \`config\` object in ${CONFIG_PATH}`);
|
|
40
|
+
return [];
|
|
41
|
+
}
|
|
42
|
+
const targetsObject = findObjectProperty({
|
|
43
|
+
obj: configObject,
|
|
44
|
+
key: 'Targets',
|
|
45
|
+
});
|
|
46
|
+
if (!targetsObject) {
|
|
47
|
+
outputDebug('getMiniExtensions no `Targets` found in config');
|
|
48
|
+
return [];
|
|
49
|
+
}
|
|
50
|
+
const targetsValue = targetsObject.value;
|
|
51
|
+
if (targetsValue.type !== 'ObjectExpression') {
|
|
52
|
+
outputDebug(`getMiniExtensions unexpected type for Targets. Expected: ObjectExpression, Found: ${targetsValue.type}`);
|
|
53
|
+
return [];
|
|
54
|
+
}
|
|
55
|
+
const definedExtensions = objectKeys({ obj: targetsValue });
|
|
56
|
+
if (!definedExtensions) {
|
|
57
|
+
outputDebug('getMiniExtensions no extensions found in `Targets`');
|
|
58
|
+
return [];
|
|
59
|
+
}
|
|
60
|
+
const possibleExtensions = Object.values(ExtensionTarget);
|
|
61
|
+
const validDefinedExtensions = possibleExtensions.filter(val => definedExtensions.includes(val));
|
|
62
|
+
outputDebug(`getMiniExtensions extensions found in \`Targets\`: ${JSON.stringify(validDefinedExtensions)}`);
|
|
63
|
+
const invalidDefinedExtensions = definedExtensions.filter(val => !possibleExtensions.includes(val));
|
|
64
|
+
if (invalidDefinedExtensions.length > 0) {
|
|
65
|
+
outputDebug(`getMiniExtensions invalid extensions found in \`Targets\`: ${JSON.stringify(invalidDefinedExtensions)}`);
|
|
66
|
+
}
|
|
67
|
+
let extensionsToStart = validDefinedExtensions;
|
|
68
|
+
// Find the valid extensions this mini has, filter to cli-args if supplied
|
|
69
|
+
// We could (should?) error out if we don't find what the user wanted
|
|
70
|
+
if (Array.isArray(specifiedExtensionTargets) &&
|
|
71
|
+
specifiedExtensionTargets.length > 0) {
|
|
72
|
+
outputDebug(`Extensions from cli args ${JSON.stringify(specifiedExtensionTargets)}`);
|
|
73
|
+
extensionsToStart = validDefinedExtensions.filter(ext => specifiedExtensionTargets?.includes(ext));
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
outputDebug(`No extensions from cli args`);
|
|
77
|
+
}
|
|
78
|
+
return extensionsToStart;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Given a extension target name, returns the path to the folder in the mini codebase that contains
|
|
82
|
+
* input queries
|
|
83
|
+
*/
|
|
84
|
+
export function getExtensionInputQueriesFolderPath(target) {
|
|
85
|
+
return path.join(getMiniBasePath(), 'src', 'targets', target);
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=extensions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../src/utils/extensions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getFileChecksum: (filename: string) => string;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import crypto from 'node:crypto';
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
export const getFileChecksum = (filename) => {
|
|
4
|
+
const fileBuffer = fs.readFileSync(filename);
|
|
5
|
+
return crypto.createHash('md5').update(fileBuffer).digest('base64');
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/utils/file.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,MAAM,SAAS,CAAA;AAExB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,QAAgB,EAAE,EAAE;IAClD,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;IAE5C,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;AACrE,CAAC,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const DEFAULT_MANIFEST_PATH: string;
|
|
2
|
+
export declare function getMiniManifest(manifestPath?: string): any;
|
|
3
|
+
export declare const getMiniManifestFeatures: (manifestPath?: string) => string[];
|
|
4
|
+
export declare const setMiniManifestFeatures: (features: string[], manifestPath?: string) => void;
|
|
5
|
+
export declare function validateManifest(manifestPath?: string): {
|
|
6
|
+
valid: boolean;
|
|
7
|
+
errors: string[];
|
|
8
|
+
};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { writeFileSync } from 'node:fs';
|
|
4
|
+
import { AbortError } from '@shopify/cli-kit/node/error';
|
|
5
|
+
import { Validator } from 'jsonschema';
|
|
6
|
+
import { getMiniBasePath } from './path.js';
|
|
7
|
+
const require = createRequire(import.meta.url);
|
|
8
|
+
const manifestSchema = require('../schemas/manifest.schema.json');
|
|
9
|
+
export const DEFAULT_MANIFEST_PATH = path.join('src', 'manifest.json');
|
|
10
|
+
export function getMiniManifest(manifestPath = DEFAULT_MANIFEST_PATH) {
|
|
11
|
+
const fullManifestPath = path.join(getMiniBasePath(), manifestPath);
|
|
12
|
+
let manifest;
|
|
13
|
+
try {
|
|
14
|
+
manifest = require(fullManifestPath);
|
|
15
|
+
}
|
|
16
|
+
catch (err) {
|
|
17
|
+
const mockManifest = process.env.MOCK_MANIFEST;
|
|
18
|
+
if (mockManifest) {
|
|
19
|
+
try {
|
|
20
|
+
manifest = JSON.parse(mockManifest);
|
|
21
|
+
manifest = typeof manifest === 'object' ? manifest : null;
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
manifest = null;
|
|
25
|
+
}
|
|
26
|
+
if (manifest === null) {
|
|
27
|
+
throw new Error(`Failed to load mock manifest value: ${mockManifest}`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
let errorMessage = `Could not load manifest file from ${manifestPath}`;
|
|
32
|
+
if (err?.name === 'SyntaxError') {
|
|
33
|
+
errorMessage = `There are syntax errors in your manifest file (path: ${manifestPath}).`;
|
|
34
|
+
}
|
|
35
|
+
else if (err?.code === 'MODULE_NOT_FOUND') {
|
|
36
|
+
errorMessage = `The manifest file of your mini does not exist. Create it in the path "${manifestPath}".`;
|
|
37
|
+
}
|
|
38
|
+
errorMessage +=
|
|
39
|
+
'\nRead more about the manifest schema here: https://shop.app/minis/docs/reference/manifest/';
|
|
40
|
+
throw new AbortError('Failed to read the manifest file.', errorMessage);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return manifest;
|
|
44
|
+
}
|
|
45
|
+
export const getMiniManifestFeatures = (manifestPath = DEFAULT_MANIFEST_PATH) => getMiniManifest(manifestPath)?.features ?? [];
|
|
46
|
+
export const setMiniManifestFeatures = (features, manifestPath = DEFAULT_MANIFEST_PATH) => {
|
|
47
|
+
const fullManifestPath = path.join(getMiniBasePath(), manifestPath);
|
|
48
|
+
const manifestJson = getMiniManifest(manifestPath);
|
|
49
|
+
manifestJson.features = features;
|
|
50
|
+
writeFileSync(fullManifestPath, `${JSON.stringify(manifestJson, null, 2)}\n`, {
|
|
51
|
+
encoding: 'utf-8',
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
const V1_ENTRYPOINTS = ['CONTENT_CARD', 'ACTION_BUTTON', 'EVENT_CARD'];
|
|
55
|
+
export function validateManifest(manifestPath) {
|
|
56
|
+
const manifest = getMiniManifest(manifestPath);
|
|
57
|
+
const validator = new Validator();
|
|
58
|
+
const result = validator.validate(manifest, manifestSchema);
|
|
59
|
+
if (manifest.entry_points?.some((entry_point) => entry_point.type && V1_ENTRYPOINTS.includes(entry_point.type))) {
|
|
60
|
+
throw new AbortError(`${V1_ENTRYPOINTS} entry points are no longer supported and must be removed from the manifest.`);
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
valid: result.valid,
|
|
64
|
+
errors: result.errors.map(validationError => validationError.stack),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=minis-manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"minis-manifest.js","sourceRoot":"","sources":["../../src/utils/minis-manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import _ from 'lodash';
|
|
2
|
+
export declare const getPackageManager: (() => Promise<"yarn" | "npm" | "pnpm" | "unknown">) & _.MemoizedFunction;
|
|
3
|
+
interface UpgradeCommandOptions {
|
|
4
|
+
version?: string;
|
|
5
|
+
exact?: boolean;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Install a package + update package.json and locks
|
|
9
|
+
*/
|
|
10
|
+
export declare const getUpgradePackageCommand: (packageName: string, { version, exact }?: UpgradeCommandOptions) => Promise<string>;
|
|
11
|
+
export declare const execUpgradePackageCommand: (packageName: string, { version, exact }?: UpgradeCommandOptions) => Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* Install the latest versions that are compatible with the range in package.json
|
|
14
|
+
* Yarn will upgrade in this range if it can and npm will stick with an existing compatible version
|
|
15
|
+
*/
|
|
16
|
+
export declare const getInstallCommand: () => Promise<"yarn install" | "npm install --legacy-peer-deps">;
|
|
17
|
+
export declare const execInstallCommand: () => Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Get a package.json script command formatted according to the detected package manager
|
|
20
|
+
*/
|
|
21
|
+
export declare const getRunScriptCommand: (scriptName: string, scriptArgs?: string[]) => Promise<string>;
|
|
22
|
+
/**
|
|
23
|
+
* Get a dependency bin command formatted according to the detected package manager
|
|
24
|
+
*/
|
|
25
|
+
export declare const getRunBinCommand: (scriptName: string, scriptArgs?: string[]) => Promise<string>;
|
|
26
|
+
/**
|
|
27
|
+
* Gets the latest version of a package available in the public npm registry
|
|
28
|
+
*/
|
|
29
|
+
export declare const getPackageLatestVersionCommand: (packageName: string) => Promise<string>;
|
|
30
|
+
/**
|
|
31
|
+
* Gets the latest alpha version of a package available in the public npm registry
|
|
32
|
+
*/
|
|
33
|
+
export declare const getPackageAlphaVersionCommand: (packageName: string) => Promise<string>;
|
|
34
|
+
export declare const hardResetDependencies: () => Promise<[{
|
|
35
|
+
stdout: string[];
|
|
36
|
+
stderr: string[];
|
|
37
|
+
}, {
|
|
38
|
+
stdout: string[];
|
|
39
|
+
stderr: string[];
|
|
40
|
+
}]>;
|
|
41
|
+
export declare const getPackageVersion: (packageName: string) => Promise<string>;
|
|
42
|
+
export {};
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import fs from 'fs';
|
|
3
|
+
import os from 'os';
|
|
4
|
+
import { mkdtemp } from 'node:fs/promises';
|
|
5
|
+
import _ from 'lodash';
|
|
6
|
+
import { getPackageManager as _getPackageManager } from '@shopify/cli-kit/node/node-package-manager';
|
|
7
|
+
import { formatPackageManagerCommand, outputDebug, } from '@shopify/cli-kit/node/output';
|
|
8
|
+
import { execAsync } from './exec-async-child-process.js';
|
|
9
|
+
export const getPackageManager = _.memoize(async () => {
|
|
10
|
+
const packageManager = await _getPackageManager(process.cwd());
|
|
11
|
+
outputDebug(`Preferred package manager has been detected as: ${packageManager}`);
|
|
12
|
+
return packageManager;
|
|
13
|
+
});
|
|
14
|
+
/**
|
|
15
|
+
* Install a package + update package.json and locks
|
|
16
|
+
*/
|
|
17
|
+
export const getUpgradePackageCommand = async (packageName, { version = 'latest', exact } = {}) => {
|
|
18
|
+
const packageManager = await getPackageManager();
|
|
19
|
+
return packageManager === 'yarn'
|
|
20
|
+
? `yarn add ${packageName}@${version} ${exact ? '--exact' : ''}`.trim()
|
|
21
|
+
: // `--save` will save to the existing section of package.json
|
|
22
|
+
// `--legacy-peer-deps` gets us around react 16/17/18 peer dep conflicts that do not matter
|
|
23
|
+
`npm install ${packageName}@${version} --legacy-peer-deps ${exact ? '--save-exact' : '--save'}`;
|
|
24
|
+
};
|
|
25
|
+
export const execUpgradePackageCommand = async (packageName, { version = 'latest', exact } = {}) => {
|
|
26
|
+
const upgradeCommand = await getUpgradePackageCommand(packageName, {
|
|
27
|
+
version,
|
|
28
|
+
exact,
|
|
29
|
+
});
|
|
30
|
+
await execAsync({
|
|
31
|
+
cmd: upgradeCommand,
|
|
32
|
+
loadingMessage: `Upgrading ${packageName}...`,
|
|
33
|
+
successMessage: `${packageName} upgraded`,
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Install the latest versions that are compatible with the range in package.json
|
|
38
|
+
* Yarn will upgrade in this range if it can and npm will stick with an existing compatible version
|
|
39
|
+
*/
|
|
40
|
+
export const getInstallCommand = async () => {
|
|
41
|
+
const packageManager = await getPackageManager();
|
|
42
|
+
return packageManager === 'yarn'
|
|
43
|
+
? `yarn install`
|
|
44
|
+
: // `--legacy-peer-deps` gets us around react 16/17/18 peer dep conflicts that do not matter
|
|
45
|
+
`npm install --legacy-peer-deps`;
|
|
46
|
+
};
|
|
47
|
+
export const execInstallCommand = async () => {
|
|
48
|
+
const installCommand = await getInstallCommand();
|
|
49
|
+
await execAsync({
|
|
50
|
+
cmd: installCommand,
|
|
51
|
+
loadingMessage: 'Installing dependencies...',
|
|
52
|
+
successMessage: 'Dependencies installed',
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Get a package.json script command formatted according to the detected package manager
|
|
57
|
+
*/
|
|
58
|
+
export const getRunScriptCommand = async (scriptName, scriptArgs = []) => {
|
|
59
|
+
return formatPackageManagerCommand(await getPackageManager(), scriptName, ...scriptArgs);
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Get a dependency bin command formatted according to the detected package manager
|
|
63
|
+
*/
|
|
64
|
+
export const getRunBinCommand = async (scriptName, scriptArgs = []) => {
|
|
65
|
+
const packageManager = await getPackageManager();
|
|
66
|
+
return `${packageManager === 'yarn' ? 'yarn' : 'npx'} ${scriptName} ${scriptArgs.join(' ')}`.trimEnd();
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Gets the latest version of a package available in the public npm registry
|
|
70
|
+
*/
|
|
71
|
+
export const getPackageLatestVersionCommand = async (packageName) => {
|
|
72
|
+
const packageManager = await getPackageManager();
|
|
73
|
+
return packageManager === 'yarn'
|
|
74
|
+
? `yarn info ${packageName} version --silent`
|
|
75
|
+
: `npm show ${packageName} version`;
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Gets the latest alpha version of a package available in the public npm registry
|
|
79
|
+
*/
|
|
80
|
+
export const getPackageAlphaVersionCommand = async (packageName) => {
|
|
81
|
+
const packageManager = await getPackageManager();
|
|
82
|
+
return packageManager === 'yarn'
|
|
83
|
+
? `yarn info ${packageName} dist-tags.alpha --silent`
|
|
84
|
+
: `npm show ${packageName} dist-tags.alpha`;
|
|
85
|
+
};
|
|
86
|
+
export const hardResetDependencies = async () => {
|
|
87
|
+
const installCommand = await getInstallCommand(); // get install command before deleting lockfiles, since lockfiles are used to detect package manager
|
|
88
|
+
await execAsync('rm -rf yarn.lock package-lock.json');
|
|
89
|
+
// doing `rm -rf node_modules proved to be very slow
|
|
90
|
+
// we move it to a tmp folder instead, so that we can reinstall dependencies while we delete the directory in parallel
|
|
91
|
+
const tmpDir = await mkdtemp(path.join(os.tmpdir(), 'minis_dependencies'));
|
|
92
|
+
await execAsync(`mv node_modules ${tmpDir}`);
|
|
93
|
+
return Promise.all([execAsync(`rm -rf ${tmpDir}`), execAsync(installCommand)]);
|
|
94
|
+
};
|
|
95
|
+
export const getPackageVersion = async (packageName) => {
|
|
96
|
+
const packageJsonPath = path.join(process.cwd(), 'node_modules', ...packageName.split('/'), 'package.json');
|
|
97
|
+
let packageJson = {};
|
|
98
|
+
try {
|
|
99
|
+
const packageJsonString = fs.readFileSync(packageJsonPath).toString('utf-8');
|
|
100
|
+
packageJson = JSON.parse(packageJsonString);
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
// do nothing. we will return 'not found' instead of crashing
|
|
104
|
+
}
|
|
105
|
+
return packageJson.version || 'not found';
|
|
106
|
+
};
|
|
107
|
+
//# sourceMappingURL=package-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../../src/utils/package-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { outputDebug } from '@shopify/cli-kit/node/output';
|
|
4
|
+
import fs from 'fs-extra';
|
|
5
|
+
const { applyPatch: patchPackageApplyPatch } = createRequire(import.meta.url)('patch-package/dist/applyPatches');
|
|
6
|
+
const { getPackageDetailsFromPatchFilename } = createRequire(import.meta.url)('patch-package/dist/PackageDetails');
|
|
7
|
+
// We use an empty file to know if a patch was already applied or not. i.e.
|
|
8
|
+
// if node_modules/react-native/.patched-by-minis-cli exists, we assume that a patch was already applied
|
|
9
|
+
// if node_modules/react-native/.patched-by-minis-cli does not exist, we assume that a patch is not applied yet
|
|
10
|
+
const PATCHED_MARK_FILE = '.patched-by-minis-cli';
|
|
11
|
+
const nodeModulesPath = path.join(process.cwd(), 'node_modules');
|
|
12
|
+
const patchesDirectoryPath = path.join(nodeModulesPath, '@shopify', 'shop-minis-runtime', 'patches');
|
|
13
|
+
function getPatchFiles() {
|
|
14
|
+
try {
|
|
15
|
+
return fs.readdirSync(patchesDirectoryPath);
|
|
16
|
+
}
|
|
17
|
+
catch (err) {
|
|
18
|
+
// older versions of shop-minis-runtime (< 0.0.5) do not have the patches folder.
|
|
19
|
+
outputDebug('Patches folder does not exist. Please update @shopify/shop-minis-runtime to ^0.0.5');
|
|
20
|
+
return [];
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Applies patches to Minis dependencies (only if they have not been applied yet)
|
|
25
|
+
* @returns a list with the names of the patches that were applied
|
|
26
|
+
*/
|
|
27
|
+
export function maybeApplyPatches() {
|
|
28
|
+
const appliedPatches = [];
|
|
29
|
+
outputDebug('Applying dependency patches...');
|
|
30
|
+
const patches = getPatchFiles();
|
|
31
|
+
for (const patch of patches) {
|
|
32
|
+
if (isPatchApplied(patch)) {
|
|
33
|
+
outputDebug(`${patch} is already applied`);
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
outputDebug(`Applying patch ${patch}`);
|
|
37
|
+
const applied = applyPatch(patch);
|
|
38
|
+
if (applied) {
|
|
39
|
+
markPatchAsApplied(patch);
|
|
40
|
+
outputDebug(`Patch ${patch} applied`);
|
|
41
|
+
appliedPatches.push(patch);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
outputDebug(`Failed to apply patch ${patch}`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return appliedPatches;
|
|
48
|
+
}
|
|
49
|
+
function isPatchApplied(patch) {
|
|
50
|
+
const dependencyName = getDependencyNameForPatch(patch);
|
|
51
|
+
return fs.existsSync(path.join(nodeModulesPath, dependencyName, PATCHED_MARK_FILE));
|
|
52
|
+
}
|
|
53
|
+
function applyPatch(patch) {
|
|
54
|
+
const patchFilePath = path.join(patchesDirectoryPath, patch);
|
|
55
|
+
return patchPackageApplyPatch({
|
|
56
|
+
patchFilePath,
|
|
57
|
+
reverse: false,
|
|
58
|
+
patchDir: patchesDirectoryPath,
|
|
59
|
+
packageDetails: getPackageDetailsFromPatchFilename(patch),
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
function markPatchAsApplied(patch) {
|
|
63
|
+
const dependencyName = getDependencyNameForPatch(patch);
|
|
64
|
+
fs.createFileSync(path.join(nodeModulesPath, dependencyName, PATCHED_MARK_FILE));
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Given a patch file name, returns the name of the actual dependency that's being patched.
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* getDependencyNameForPatch('react-native+0.68.5.patch')
|
|
71
|
+
* // returns 'react-native'
|
|
72
|
+
*/
|
|
73
|
+
function getDependencyNameForPatch(patch) {
|
|
74
|
+
return patch.split('+')[0];
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=patch-package.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patch-package.js","sourceRoot":"","sources":["../../src/utils/patch-package.ts"],"names":[],"mappings":"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"}
|