@shopify/shop-minis-cli 0.0.0-hackathon.20250221160544
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 +114 -0
- package/build/commands/app/index.d.ts +2 -0
- package/build/commands/app/index.js +14 -0
- package/build/commands/app/index.js.map +1 -0
- package/build/commands/app/link.d.ts +2 -0
- package/build/commands/app/link.js +65 -0
- package/build/commands/app/link.js.map +1 -0
- package/build/commands/app/list.d.ts +2 -0
- package/build/commands/app/list.js +45 -0
- package/build/commands/app/list.js.map +1 -0
- package/build/commands/app/unlink.d.ts +2 -0
- package/build/commands/app/unlink.js +55 -0
- package/build/commands/app/unlink.js.map +1 -0
- package/build/commands/cancel-submission/cancel-submission.d.ts +1 -0
- package/build/commands/cancel-submission/cancel-submission.js +59 -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 +97 -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-123.d.ts +3 -0
- package/build/commands/codemod/releases/v0-0-123.js +33 -0
- package/build/commands/codemod/releases/v0-0-123.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-125.d.ts +3 -0
- package/build/commands/codemod/releases/v0-0-125.js +37 -0
- package/build/commands/codemod/releases/v0-0-125.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-130.d.ts +3 -0
- package/build/commands/codemod/releases/v0-0-130.js +26 -0
- package/build/commands/codemod/releases/v0-0-130.js.map +1 -0
- package/build/commands/codemod/releases/v0-0-139.d.ts +3 -0
- package/build/commands/codemod/releases/v0-0-139.js +26 -0
- package/build/commands/codemod/releases/v0-0-139.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 +17 -0
- package/build/commands/config.js +45 -0
- package/build/commands/config.js.map +1 -0
- package/build/commands/create-extension/constants.d.ts +44 -0
- package/build/commands/create-extension/constants.js +111 -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 +68 -0
- package/build/commands/create-extension/index.js.map +1 -0
- package/build/commands/create-extension/types.d.ts +13 -0
- package/build/commands/create-extension/types.js +8 -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 +48 -0
- package/build/commands/create-extension/utils/add-target-to-config.js.map +1 -0
- package/build/commands/create-extension/utils/create-extension-files.d.ts +11 -0
- package/build/commands/create-extension/utils/create-extension-files.js +96 -0
- package/build/commands/create-extension/utils/create-extension-files.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 +47 -0
- package/build/commands/create-extension/utils/create-from-template.js.map +1 -0
- package/build/commands/create-extension/utils/format-extension-files.d.ts +1 -0
- package/build/commands/create-extension/utils/format-extension-files.js +22 -0
- package/build/commands/create-extension/utils/format-extension-files.js.map +1 -0
- package/build/commands/create-mini/index.d.ts +2 -0
- package/build/commands/create-mini/index.js +182 -0
- package/build/commands/create-mini/index.js.map +1 -0
- package/build/commands/create-mini/utils/examples.d.ts +4 -0
- package/build/commands/create-mini/utils/examples.js +44 -0
- package/build/commands/create-mini/utils/examples.js.map +1 -0
- package/build/commands/create-mini/utils/template-app.d.ts +2 -0
- package/build/commands/create-mini/utils/template-app.js +86 -0
- package/build/commands/create-mini/utils/template-app.js.map +1 -0
- package/build/commands/dev/index.d.ts +13 -0
- package/build/commands/dev/index.js +95 -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 +158 -0
- package/build/commands/dev/utils/android.js.map +1 -0
- package/build/commands/dev/utils/app-screens.d.ts +9 -0
- package/build/commands/dev/utils/app-screens.js +170 -0
- package/build/commands/dev/utils/app-screens.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/cache-cleanup.d.ts +1 -0
- package/build/commands/dev/utils/cache-cleanup.js +45 -0
- package/build/commands/dev/utils/cache-cleanup.js.map +1 -0
- package/build/commands/dev/utils/deeplink.d.ts +22 -0
- package/build/commands/dev/utils/deeplink.js +70 -0
- package/build/commands/dev/utils/deeplink.js.map +1 -0
- package/build/commands/dev/utils/env-config.d.ts +2 -0
- package/build/commands/dev/utils/env-config.js +47 -0
- package/build/commands/dev/utils/env-config.js.map +1 -0
- package/build/commands/dev/utils/interactive-terminal.d.ts +25 -0
- package/build/commands/dev/utils/interactive-terminal.js +244 -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 +21 -0
- package/build/commands/dev/utils/metro/metro-reporter.js +46 -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/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 +113 -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 +24 -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 +3 -0
- package/build/commands/dev/utils/start-app/start-app-with-options.js +95 -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 +3 -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 +14 -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 +67 -0
- package/build/commands/generate-graphql-types/utils/generate-graphql-types.js.map +1 -0
- package/build/commands/generate-graphql-types/utils/get-graphql-config.d.ts +1 -0
- package/build/commands/generate-graphql-types/utils/get-graphql-config.js +31 -0
- package/build/commands/generate-graphql-types/utils/get-graphql-config.js.map +1 -0
- package/build/commands/generate-graphql-types/utils/get-graphql-config.spec.d.ts +1 -0
- package/build/commands/generate-graphql-types/utils/get-graphql-config.spec.js +57 -0
- package/build/commands/generate-graphql-types/utils/get-graphql-config.spec.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 +103 -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 +268 -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 +73 -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 +43 -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 +14 -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 +70 -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 +38 -0
- package/build/commands/validate-manifest/index.js.map +1 -0
- package/build/constants/extensions.d.ts +21 -0
- package/build/constants/extensions.js +25 -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-linked-apps.d.ts +13 -0
- package/build/data/get-linked-apps.js +21 -0
- package/build/data/get-linked-apps.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 +14 -0
- package/build/data/gql-client.js.map +1 -0
- package/build/data/mini-create.d.ts +19 -0
- package/build/data/mini-create.js +34 -0
- package/build/data/mini-create.js.map +1 -0
- package/build/data/mini-link-app.d.ts +20 -0
- package/build/data/mini-link-app.js +35 -0
- package/build/data/mini-link-app.js.map +1 -0
- package/build/data/mini-unlink-app.d.ts +18 -0
- package/build/data/mini-unlink-app.js +25 -0
- package/build/data/mini-unlink-app.js.map +1 -0
- package/build/data/mini.d.ts +7 -0
- package/build/data/mini.js +16 -0
- package/build/data/mini.js.map +1 -0
- package/build/data/partners/query.d.ts +32 -0
- package/build/data/partners/query.js +123 -0
- package/build/data/partners/query.js.map +1 -0
- package/build/data/partners/types.d.ts +55 -0
- package/build/data/partners/types.js +6 -0
- package/build/data/partners/types.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 +107 -0
- package/build/data/types/autogenerated/shop-minis-admin-api/gql.js +28 -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 +2177 -0
- package/build/data/types/autogenerated/shop-minis-admin-api/graphql.js +1474 -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.94b1dbb1.css +2 -0
- package/build/dev-panel/static/css/main.94b1dbb1.css.map +1 -0
- package/build/dev-panel/static/js/main.917a564c.js +3 -0
- package/build/dev-panel/static/js/main.917a564c.js.LICENSE.txt +41 -0
- package/build/dev-panel/static/js/main.917a564c.js.map +1 -0
- package/build/dev-panel/topics.svg +3 -0
- package/build/index.d.ts +2 -0
- package/build/index.js +53 -0
- package/build/index.js.map +1 -0
- package/build/schemas/manifest.schema.json +185 -0
- package/build/templates-index.d.ts +6 -0
- package/build/templates-index.js +24 -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 +44 -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/extract-id-gid.d.ts +1 -0
- package/build/utils/extract-id-gid.js +16 -0
- package/build/utils/extract-id-gid.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/loading-state-handlers.d.ts +10 -0
- package/build/utils/loading-state-handlers.js +23 -0
- package/build/utils/loading-state-handlers.js.map +1 -0
- package/build/utils/minis-manifest.d.ts +8 -0
- package/build/utils/minis-manifest.js +90 -0
- package/build/utils/minis-manifest.js.map +1 -0
- package/build/utils/package-manager.d.ts +52 -0
- package/build/utils/package-manager.js +139 -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/sync-manifest.d.ts +5 -0
- package/build/utils/sync-manifest.js +26 -0
- package/build/utils/sync-manifest.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 +29 -0
- package/scripts/test-template.ts +66 -0
- package/shipit.hackathon-2025.yml +9 -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/.cursorrules +141 -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 +5 -0
- package/templates/__template_common/metro.config.js +5 -0
- package/templates/__template_common/package.json +35 -0
- package/templates/__template_common/src/manifest.json +6 -0
- package/templates/__template_common/tsconfig.json +41 -0
- package/templates/__template_getting_started/src/App.tsx +23 -0
- package/templates/__template_getting_started/src/index.tsx +9 -0
- package/templates/__template_getting_started/src/manifest.json +7 -0
- package/templates/__template_getting_started/src/screens/HomeScreen.tsx +128 -0
- package/templates/__template_getting_started/src/screens/NativeFeaturesScreen.tsx +137 -0
- package/templates/__template_getting_started/src/types/screens.ts +5 -0
- package/templates/__template_shoppable_posts/src/App.tsx +42 -0
- package/templates/__template_shoppable_posts/src/index.tsx +9 -0
- package/templates/__template_shoppable_videos/src/App.tsx +39 -0
- package/templates/__template_shoppable_videos/src/index.tsx +9 -0
- package/templates/extensions/components/__template_blank/render.tsx +9 -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_survey-single-response/render.tsx +26 -0
- package/templates/extensions/components/__template_survey-single-response/seed.ts +22 -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_order-confirmation-page/input.graphql +5 -0
- package/templates/extensions/queries/__template_order-confirmation-page/input.graphql.d.ts +24 -0
- package/templates/extensions/queries/__template_order-management-page/input.graphql +5 -0
- package/templates/extensions/queries/__template_order-management-page/input.graphql.d.ts +24 -0
- package/templates/extensions/queries/__template_product-page/input.graphql +9 -0
- package/templates/extensions/queries/__template_product-page/input.graphql.d.ts +36 -0
- package/templates/extensions/queries/__template_store-page/input.graphql +5 -0
- package/templates/extensions/queries/__template_store-page/input.graphql.d.ts +24 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { ClientError } from 'graphql-request';
|
|
2
|
+
import { AbortError } from '@shopify/cli-kit/node/error';
|
|
3
|
+
import { SHOP_MINIS_ADMIN_API_KEY } from '../commands/config.js';
|
|
4
|
+
import { getSubmissions as graphqlGetSubmissions } from '../data/get-submissions.js';
|
|
5
|
+
import { getRunBinCommand } from './package-manager.js';
|
|
6
|
+
export async function assertNetworkAndAuth() {
|
|
7
|
+
const apiKey = SHOP_MINIS_ADMIN_API_KEY;
|
|
8
|
+
const setupCmd = await getRunBinCommand('shop-minis setup');
|
|
9
|
+
if (!apiKey) {
|
|
10
|
+
throw new AbortError('Shop Minis API key is not set.', undefined, [
|
|
11
|
+
[
|
|
12
|
+
'Before continuing, run',
|
|
13
|
+
{ bold: setupCmd },
|
|
14
|
+
'to set up your Shop Minis API key.',
|
|
15
|
+
],
|
|
16
|
+
]);
|
|
17
|
+
}
|
|
18
|
+
try {
|
|
19
|
+
// Use this query as a simple way to check network and auth at the same time
|
|
20
|
+
await graphqlGetSubmissions();
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
if (error instanceof ClientError && error.response.status === 401) {
|
|
24
|
+
throw new AbortError('Unable to authenticate your account', 'Your Shop Minis Admin API key is invalid.\n', [
|
|
25
|
+
[
|
|
26
|
+
'Before continuing, run',
|
|
27
|
+
{ bold: setupCmd },
|
|
28
|
+
'to set up your Shop Minis API key.',
|
|
29
|
+
],
|
|
30
|
+
]);
|
|
31
|
+
}
|
|
32
|
+
if (error instanceof Object &&
|
|
33
|
+
'code' in error &&
|
|
34
|
+
error?.code === 'ENOTFOUND') {
|
|
35
|
+
const submitCmd = await getRunBinCommand('shop-minis submit');
|
|
36
|
+
throw new AbortError(`Network error`, 'Try again and if the issue continues, contact us.', [
|
|
37
|
+
`Try to run "${submitCmd}" again`,
|
|
38
|
+
"Contact Shop if you're having issues",
|
|
39
|
+
]);
|
|
40
|
+
}
|
|
41
|
+
throw error;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# 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,EAAC,wBAAwB,EAAC,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAC,cAAc,IAAI,qBAAqB,EAAC,MAAM,4BAA4B,CAAA;AAElF,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAA;AAErD,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,MAAM,GAAG,wBAAwB,CAAA;IACvC,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,kBAAkB,CAAC,CAAA;IAE3D,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,IAAI,UAAU,CAAC,gCAAgC,EAAE,SAAS,EAAE;YAChE;gBACE,wBAAwB;gBACxB,EAAC,IAAI,EAAE,QAAQ,EAAC;gBAChB,oCAAoC;aACrC;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,EAC7C;gBACE;oBACE,wBAAwB;oBACxB,EAAC,IAAI,EAAE,QAAQ,EAAC;oBAChB,oCAAoC;iBACrC;aACF,CACF,CAAA;SACF;QAED,IACE,KAAK,YAAY,MAAM;YACvB,MAAM,IAAI,KAAK;YACf,KAAK,EAAE,IAAI,KAAK,WAAW,EAC3B;YACA,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,mBAAmB,CAAC,CAAA;YAC7D,MAAM,IAAI,UAAU,CAClB,eAAe,EACf,mDAAmD,EACnD;gBACE,eAAe,SAAS,SAAS;gBACjC,sCAAsC;aACvC,CACF,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 function extractIdFromGID(variantId: string): number;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
const GID_REGEXP = /\/(\w[\w-]*)(?:\?(.*))*$/;
|
|
2
|
+
function safeParseInt(value) {
|
|
3
|
+
const intValue = parseInt(value, 10);
|
|
4
|
+
if (isNaN(intValue)) {
|
|
5
|
+
return 0;
|
|
6
|
+
}
|
|
7
|
+
return intValue;
|
|
8
|
+
}
|
|
9
|
+
export function extractIdFromGID(variantId) {
|
|
10
|
+
const matches = variantId.match(GID_REGEXP);
|
|
11
|
+
if (matches && matches[1] !== undefined) {
|
|
12
|
+
return safeParseInt(matches[1]);
|
|
13
|
+
}
|
|
14
|
+
return safeParseInt(variantId);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=extract-id-gid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract-id-gid.js","sourceRoot":"","sources":["../../src/utils/extract-id-gid.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,0BAA0B,CAAA;AAE7C,SAAS,YAAY,CAAC,KAAa;IACjC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACpC,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE;QACnB,OAAO,CAAC,CAAA;KACT;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IAC3C,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;QACvC,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;KAChC;IACD,OAAO,YAAY,CAAC,SAAS,CAAC,CAAA;AAChC,CAAC"}
|
|
@@ -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,10 @@
|
|
|
1
|
+
import ora from 'ora';
|
|
2
|
+
export declare class LoadingStateHandlers {
|
|
3
|
+
_loading: ora.Ora | null;
|
|
4
|
+
loadingStart: (logMessage: string, options?: {
|
|
5
|
+
endPreviousLoadingWithStatus?: 'succeed' | 'fail' | 'warn' | 'info';
|
|
6
|
+
endPreviousLoadingWithMessage?: string;
|
|
7
|
+
}) => void;
|
|
8
|
+
loadingEnd: (endState?: 'succeed' | 'fail' | 'warn' | 'info', logMessage?: string) => void;
|
|
9
|
+
loadingUpdate: (text: string) => void;
|
|
10
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import ora from 'ora';
|
|
2
|
+
export class LoadingStateHandlers {
|
|
3
|
+
_loading = null;
|
|
4
|
+
loadingStart = (logMessage, options = {}) => {
|
|
5
|
+
if (this._loading) {
|
|
6
|
+
this.loadingEnd(options.endPreviousLoadingWithStatus, options.endPreviousLoadingWithMessage);
|
|
7
|
+
}
|
|
8
|
+
this._loading = ora({ text: logMessage }).start();
|
|
9
|
+
};
|
|
10
|
+
loadingEnd = (endState = 'succeed', logMessage) => {
|
|
11
|
+
if (!this._loading) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
this._loading[endState](logMessage);
|
|
15
|
+
this._loading = null;
|
|
16
|
+
};
|
|
17
|
+
loadingUpdate = (text) => {
|
|
18
|
+
if (this._loading) {
|
|
19
|
+
this._loading.text = text;
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=loading-state-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loading-state-handlers.js","sourceRoot":"","sources":["../../src/utils/loading-state-handlers.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AAErB,MAAM,OAAO,oBAAoB;IAC/B,QAAQ,GAAmB,IAAI,CAAA;IAE/B,YAAY,GAAG,CACb,UAAkB,EAClB,UAGI,EAAE,EACN,EAAE;QACF,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,UAAU,CACb,OAAO,CAAC,4BAA4B,EACpC,OAAO,CAAC,6BAA6B,CACtC,CAAA;SACF;QAED,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,EAAC,IAAI,EAAE,UAAU,EAAC,CAAC,CAAC,KAAK,EAAE,CAAA;IACjD,CAAC,CAAA;IAED,UAAU,GAAG,CACX,WAAiD,SAAS,EAC1D,UAAmB,EACnB,EAAE;QACF,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,OAAM;SACP;QAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAA;QACnC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;IACtB,CAAC,CAAA;IAED,aAAa,GAAG,CAAC,IAAY,EAAE,EAAE;QAC/B,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAA;SAC1B;IACH,CAAC,CAAA;CACF"}
|
|
@@ -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,90 @@
|
|
|
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
|
+
function isValidHostname(hostname) {
|
|
56
|
+
// Hostname regex: allows letters, numbers, dots, and hyphens
|
|
57
|
+
// Does not allow protocols or paths
|
|
58
|
+
const hostnameRegex = /^[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?)*$/;
|
|
59
|
+
return hostnameRegex.test(hostname);
|
|
60
|
+
}
|
|
61
|
+
export function validateManifest(manifestPath) {
|
|
62
|
+
const manifest = getMiniManifest(manifestPath);
|
|
63
|
+
const validator = new Validator();
|
|
64
|
+
const result = validator.validate(manifest, manifestSchema);
|
|
65
|
+
const validationErrors = [
|
|
66
|
+
...result.errors.map(validationError => validationError.stack),
|
|
67
|
+
];
|
|
68
|
+
// Check for V1 entry points
|
|
69
|
+
if (manifest.entry_points?.some((entry_point) => entry_point.type && V1_ENTRYPOINTS.includes(entry_point.type))) {
|
|
70
|
+
throw new AbortError(`${V1_ENTRYPOINTS} entry points are no longer supported and must be removed from the manifest.`);
|
|
71
|
+
}
|
|
72
|
+
// Validate trusted_domains
|
|
73
|
+
if (manifest.trusted_domains) {
|
|
74
|
+
if (Array.isArray(manifest.trusted_domains)) {
|
|
75
|
+
manifest.trusted_domains.forEach((domain) => {
|
|
76
|
+
if (!isValidHostname(domain)) {
|
|
77
|
+
validationErrors.push(`Invalid hostname format in trusted_domains: "${domain}". Domain should not include protocol or path`);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
validationErrors.push('trusted_domains must be an array');
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return {
|
|
86
|
+
valid: result.valid && validationErrors.length === 0,
|
|
87
|
+
errors: validationErrors,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
//# 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,52 @@
|
|
|
1
|
+
import _ from 'lodash';
|
|
2
|
+
export declare const getPackageManager: (() => Promise<"yarn" | "npm" | "pnpm" | "bun" | "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 addOverride: (packageName: string, version: string) => Promise<void>;
|
|
12
|
+
export declare const execUpgradePackageCommand: (packageName: string, { version, exact }?: UpgradeCommandOptions) => Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* Install the latest versions that are compatible with the range in package.json
|
|
15
|
+
* Yarn will upgrade in this range if it can and npm will stick with an existing compatible version
|
|
16
|
+
*/
|
|
17
|
+
export declare const getInstallCommand: () => Promise<"yarn install" | "npm install --legacy-peer-deps">;
|
|
18
|
+
export declare const execInstallCommand: () => Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Get a package.json script command formatted according to the detected package manager
|
|
21
|
+
*/
|
|
22
|
+
export declare const getRunScriptCommand: (scriptName: string, scriptArgs?: string[]) => Promise<string>;
|
|
23
|
+
/**
|
|
24
|
+
* Get a dependency bin command formatted according to the detected package manager
|
|
25
|
+
*/
|
|
26
|
+
export declare const getRunBinCommand: (scriptName: string, scriptArgs?: string[]) => Promise<string>;
|
|
27
|
+
/**
|
|
28
|
+
* Gets the latest version of a package available in the public npm registry
|
|
29
|
+
*/
|
|
30
|
+
export declare const getPackageLatestVersionCommand: (packageName: string) => string;
|
|
31
|
+
/**
|
|
32
|
+
* Gets the latest alpha version of a package available in the public npm registry
|
|
33
|
+
*/
|
|
34
|
+
export declare const getPackageAlphaVersionCommand: (packageName: string) => string;
|
|
35
|
+
/**
|
|
36
|
+
* Gets the latest tagged version of a package available in the public npm registry
|
|
37
|
+
*/
|
|
38
|
+
export declare const getTaggedPackageVersionCommand: (packageName: string, tag?: string) => string;
|
|
39
|
+
/**
|
|
40
|
+
* Gets the dependency version of a package available in the public npm registry
|
|
41
|
+
*/
|
|
42
|
+
export declare const getPackageDependencyVersionCommand: (packageName: string, dependencyName: string) => string;
|
|
43
|
+
export declare const hardResetDependencies: () => Promise<[{
|
|
44
|
+
stdout: string[];
|
|
45
|
+
stderr: string[];
|
|
46
|
+
}, {
|
|
47
|
+
stdout: string[];
|
|
48
|
+
stderr: string[];
|
|
49
|
+
}]>;
|
|
50
|
+
export declare const getPackageVersion: (packageName: string) => Promise<string>;
|
|
51
|
+
export declare const getPackageDependencyVersion: (packageName: string, dependencyName: string) => Promise<string | undefined>;
|
|
52
|
+
export {};
|