@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,141 @@
|
|
|
1
|
+
You are an expert in React, React Native, TypeScript and mobile app development. You are writing a Mini for Shop App, using the SDK provided by Shopify. SDK is called `@shopify/shop-minis-platform-sdk`.
|
|
2
|
+
|
|
3
|
+
- Write concise, technical responses with accurate TypeScript examples.
|
|
4
|
+
- Use functional, declarative programming. Avoid classes.
|
|
5
|
+
- Prefer iteration and modularization over duplication.
|
|
6
|
+
- Use descriptive variable names with auxiliary verbs (e.g., isLoading).
|
|
7
|
+
- Use lowercase with dashes for directories (e.g., components/auth-wizard).
|
|
8
|
+
- Favor named exports for components.
|
|
9
|
+
- Dependencies: react, react-native, `@shopify/shop-minis-platform-sdk`
|
|
10
|
+
- Use functional components with hooks
|
|
11
|
+
- Utilize React hooks and UI Components from `@shopify/shop-minis-platform-sdk` library.
|
|
12
|
+
- Implement proper navigation using React Navigation
|
|
13
|
+
- Implement proper error handling and crash reporting
|
|
14
|
+
- Implement proper styling using StyleSheet
|
|
15
|
+
- Follow React Native best practices for performance
|
|
16
|
+
|
|
17
|
+
Shop Minis Platform SDK:
|
|
18
|
+
|
|
19
|
+
- For atomic components, use React Native components, such as `View`, `Text` etc.
|
|
20
|
+
- For images, use `Image` component from `@shopify/shop-minis-platform-sdk`
|
|
21
|
+
- For icons, use `Icon` component from `@shopify/shop-minis-platform-sdk`
|
|
22
|
+
- For Safe Area, use `SafeAreaView` component from `@shopify/shop-minis-platform-sdk`
|
|
23
|
+
- For pressables, use `PressableAnimated` component from `@shopify/shop-minis-platform-sdk`
|
|
24
|
+
- For product related components, you can use these from `@shopify/shop-minis-platform-sdk`:
|
|
25
|
+
ProductCard
|
|
26
|
+
ProductCardGrid
|
|
27
|
+
ProductLink
|
|
28
|
+
- Other available components from `@shopify/shop-minis-platform-sdk`:
|
|
29
|
+
Accordion
|
|
30
|
+
Avatar
|
|
31
|
+
Badge
|
|
32
|
+
BottomSheet
|
|
33
|
+
CollectionThumbnail
|
|
34
|
+
DatePicker
|
|
35
|
+
Dimensions
|
|
36
|
+
Divider
|
|
37
|
+
FastImageBox
|
|
38
|
+
FavoritesButton
|
|
39
|
+
FormatMoney
|
|
40
|
+
Grid
|
|
41
|
+
IconButton
|
|
42
|
+
ImageCarousel
|
|
43
|
+
ImageMultipleChoice
|
|
44
|
+
KeyboardAvoidingView
|
|
45
|
+
Modal
|
|
46
|
+
MultipleChoice
|
|
47
|
+
CompactVariantPicker
|
|
48
|
+
Picker
|
|
49
|
+
PressableAnimated
|
|
50
|
+
ProgressIndicators
|
|
51
|
+
QuantityPicker
|
|
52
|
+
RadioButton
|
|
53
|
+
RadioPickerItem
|
|
54
|
+
SafeAreaView
|
|
55
|
+
Selector
|
|
56
|
+
ScreenWidthContainer
|
|
57
|
+
ShareEmail
|
|
58
|
+
Shelf
|
|
59
|
+
Spinner
|
|
60
|
+
TextField
|
|
61
|
+
ToggleButton
|
|
62
|
+
WebView
|
|
63
|
+
- Available hooks:
|
|
64
|
+
useSavedProducts
|
|
65
|
+
useUpdateSavedProducts
|
|
66
|
+
useFollowedShops
|
|
67
|
+
useUpdateFollowedShops
|
|
68
|
+
useRecentProducts
|
|
69
|
+
useRecentShops
|
|
70
|
+
useSearchProducts
|
|
71
|
+
useProductMetafields
|
|
72
|
+
useProductMedia
|
|
73
|
+
useProductVariants
|
|
74
|
+
useAsyncStorage
|
|
75
|
+
useSecureStorage
|
|
76
|
+
useUserMetafields
|
|
77
|
+
useImageUpload
|
|
78
|
+
useShopNavigation
|
|
79
|
+
navigateToProduct
|
|
80
|
+
navigateToShop
|
|
81
|
+
navigateToCheckout
|
|
82
|
+
useCloseMini
|
|
83
|
+
useSheet
|
|
84
|
+
useMinisParams
|
|
85
|
+
useShop
|
|
86
|
+
useShopSearch
|
|
87
|
+
useShopCart
|
|
88
|
+
addToCart
|
|
89
|
+
buyProduct
|
|
90
|
+
shopEvents
|
|
91
|
+
useCheckoutSuccessfully
|
|
92
|
+
useOnMiniAppClosed
|
|
93
|
+
useOnMiniAppFocused
|
|
94
|
+
useOnMiniAppBlurred
|
|
95
|
+
useOnVariantUpdated
|
|
96
|
+
useOnAppStateChange
|
|
97
|
+
useErrorScreen
|
|
98
|
+
useErrorToast
|
|
99
|
+
useMinisDimensions
|
|
100
|
+
useAccessibilityInfo
|
|
101
|
+
- Here are the available third party dependencies. Do not install any other dependencies.
|
|
102
|
+
@react-navigation/bottom-tabs
|
|
103
|
+
@react-navigation/native
|
|
104
|
+
@react-navigation/native-stack
|
|
105
|
+
@reactvision/react-viro
|
|
106
|
+
@shopify/react-native-skia
|
|
107
|
+
react-native-device-info
|
|
108
|
+
react-native-fast-image
|
|
109
|
+
react-native-gesture-handler
|
|
110
|
+
react-native-haptic-feedback
|
|
111
|
+
react-native-image-colors
|
|
112
|
+
react-native-image-crop-picker
|
|
113
|
+
react-native-linear-gradient
|
|
114
|
+
react-native-localize
|
|
115
|
+
react-native-permissions
|
|
116
|
+
react-native-reanimated
|
|
117
|
+
react-native-reanimated-carousel
|
|
118
|
+
react-native-render-html
|
|
119
|
+
react-native-safe-area-context
|
|
120
|
+
react-native-screens
|
|
121
|
+
react-native-share
|
|
122
|
+
react-native-svg
|
|
123
|
+
react-native-uuid
|
|
124
|
+
react-native-video
|
|
125
|
+
react-native-view-shot
|
|
126
|
+
react-native-webview
|
|
127
|
+
|
|
128
|
+
Project Structure:
|
|
129
|
+
|
|
130
|
+
- Ensure the following folder structure is present:
|
|
131
|
+
- src/
|
|
132
|
+
- assets/
|
|
133
|
+
- components/
|
|
134
|
+
- screens/
|
|
135
|
+
- navigation/
|
|
136
|
+
- hooks/
|
|
137
|
+
- utils/
|
|
138
|
+
- App.tsx
|
|
139
|
+
- index.tsx
|
|
140
|
+
|
|
141
|
+
Follow Shop Minis SDK docs for components, hooks and available third party dependencies. (Docs: https://shop.app/minis/docs/)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*.graphql.d.ts
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('@shopify/shop-minis-runtime/graphqlrc')
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
declare module '*.svg' {
|
|
2
|
+
const content: import('react').FC<import('react-native-svg').SvgProps>
|
|
3
|
+
export default content
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
declare module '*.png' {
|
|
7
|
+
const content: import('react-native').ImageRequireSource
|
|
8
|
+
export default content
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
declare module '*.jpg' {
|
|
12
|
+
const content: import('react-native').ImageRequireSource
|
|
13
|
+
export default content
|
|
14
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
// Changes to babel config are not supported by the mini platform.
|
|
3
|
+
// Custom configuration can introduce unexpected behaviour in your mini and could be a cause of rejection during the submission process.
|
|
4
|
+
presets: ['@shopify/shop-minis-runtime/babel-preset'],
|
|
5
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "__MINI_APP_NAME_KEBAB_CASE__",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"private": true,
|
|
5
|
+
"scripts": {
|
|
6
|
+
"start": "shop-minis dev",
|
|
7
|
+
"test": "jest",
|
|
8
|
+
"lint": "eslint ."
|
|
9
|
+
},
|
|
10
|
+
"dependencies": {
|
|
11
|
+
"@shopify/shop-minis-platform-sdk": "__SHOP_MINIS_SDK_VERSION__",
|
|
12
|
+
"@shopify/shop-minis-runtime": "__SHOP_MINIS_RUNTIME_VERSION__",
|
|
13
|
+
"@shopify/shop-minis-ui-extensions": "__SHOP_MINIS_UI_EXTENSIONS_VERSION__"
|
|
14
|
+
},
|
|
15
|
+
"devDependencies": {
|
|
16
|
+
"@shopify/shop-minis-cli": "__SHOP_MINIS_CLI_VERSION__",
|
|
17
|
+
"@types/jest": "^29.2.6",
|
|
18
|
+
"babel-jest": "^26.6.3",
|
|
19
|
+
"eslint": "^8.32.0",
|
|
20
|
+
"jest": "^29.3.1",
|
|
21
|
+
"prettier": "^2.8.2"
|
|
22
|
+
},
|
|
23
|
+
"jest": {
|
|
24
|
+
"preset": "react-native"
|
|
25
|
+
},
|
|
26
|
+
"overrides": {
|
|
27
|
+
"graphql": "15.8.0",
|
|
28
|
+
"react": "18.2.0",
|
|
29
|
+
"react-native": "__REACT_NATIVE_VERSION__"
|
|
30
|
+
},
|
|
31
|
+
"resolutions": {
|
|
32
|
+
"@apollo/federation": "0.38.1",
|
|
33
|
+
"graphql": "15.8.0"
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"baseUrl": ".",
|
|
4
|
+
"paths": {
|
|
5
|
+
"*": [
|
|
6
|
+
"*",
|
|
7
|
+
"*.ios",
|
|
8
|
+
"*.android",
|
|
9
|
+
"./node_modules/@shopify/shop-minis-runtime/node_modules/*"
|
|
10
|
+
]
|
|
11
|
+
},
|
|
12
|
+
"allowJs": true,
|
|
13
|
+
"resolveJsonModule": true,
|
|
14
|
+
"allowSyntheticDefaultImports": true,
|
|
15
|
+
"esModuleInterop": true,
|
|
16
|
+
"isolatedModules": false,
|
|
17
|
+
"jsx": "preserve",
|
|
18
|
+
"lib": ["es2019"],
|
|
19
|
+
"noUnusedParameters": true,
|
|
20
|
+
"noUnusedLocals": true,
|
|
21
|
+
"moduleResolution": "node",
|
|
22
|
+
"noEmit": true,
|
|
23
|
+
"incremental": true,
|
|
24
|
+
"strict": true,
|
|
25
|
+
"target": "esnext",
|
|
26
|
+
"skipLibCheck": true,
|
|
27
|
+
"noImplicitReturns": false,
|
|
28
|
+
"noFallthroughCasesInSwitch": true,
|
|
29
|
+
"allowUnreachableCode": false,
|
|
30
|
+
"allowUnusedLabels": false,
|
|
31
|
+
"noImplicitAny": true,
|
|
32
|
+
"strictNullChecks": true,
|
|
33
|
+
"strictFunctionTypes": true,
|
|
34
|
+
"strictBindCallApply": true,
|
|
35
|
+
"strictPropertyInitialization": true,
|
|
36
|
+
"noImplicitThis": true,
|
|
37
|
+
"alwaysStrict": true,
|
|
38
|
+
"useUnknownInCatchVariables": false
|
|
39
|
+
},
|
|
40
|
+
"exclude": ["node_modules"]
|
|
41
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import {createNativeStackNavigator} from '@react-navigation/native-stack'
|
|
2
|
+
|
|
3
|
+
import {HomeScreen} from './screens/HomeScreen'
|
|
4
|
+
import {NativeFeaturesScreen} from './screens/NativeFeaturesScreen'
|
|
5
|
+
|
|
6
|
+
const Stack = createNativeStackNavigator()
|
|
7
|
+
|
|
8
|
+
export function App() {
|
|
9
|
+
return (
|
|
10
|
+
<Stack.Navigator>
|
|
11
|
+
<Stack.Screen
|
|
12
|
+
name="GettingStarted.Home"
|
|
13
|
+
component={HomeScreen}
|
|
14
|
+
options={{headerShown: false}}
|
|
15
|
+
/>
|
|
16
|
+
<Stack.Screen
|
|
17
|
+
name="GettingStarted.NativeFeatures"
|
|
18
|
+
component={NativeFeaturesScreen}
|
|
19
|
+
options={{headerShown: false}}
|
|
20
|
+
/>
|
|
21
|
+
</Stack.Navigator>
|
|
22
|
+
)
|
|
23
|
+
}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import {useState} from 'react'
|
|
2
|
+
import {ScrollView} from 'react-native'
|
|
3
|
+
import {useNavigation} from '@react-navigation/native'
|
|
4
|
+
import {NativeStackNavigationProp} from '@react-navigation/native-stack'
|
|
5
|
+
import {
|
|
6
|
+
Box,
|
|
7
|
+
SafeAreaView,
|
|
8
|
+
Text,
|
|
9
|
+
ProductCard,
|
|
10
|
+
useProductSearch,
|
|
11
|
+
useTheme,
|
|
12
|
+
Button,
|
|
13
|
+
TextField,
|
|
14
|
+
RadioButton,
|
|
15
|
+
Divider,
|
|
16
|
+
} from '@shopify/shop-minis-platform-sdk'
|
|
17
|
+
|
|
18
|
+
import {RootStackParamList} from '../types/screens'
|
|
19
|
+
|
|
20
|
+
export function HomeScreen() {
|
|
21
|
+
const theme = useTheme()
|
|
22
|
+
const navigation =
|
|
23
|
+
useNavigation<NativeStackNavigationProp<RootStackParamList>>()
|
|
24
|
+
|
|
25
|
+
const {products} = useProductSearch({
|
|
26
|
+
query: 'skateboard',
|
|
27
|
+
first: 4,
|
|
28
|
+
filters: {
|
|
29
|
+
minimumRating: 4,
|
|
30
|
+
price: {
|
|
31
|
+
min: 150,
|
|
32
|
+
max: 250,
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
})
|
|
36
|
+
|
|
37
|
+
const radioButtonOptions = ['Option A', 'Option B', 'Option C']
|
|
38
|
+
|
|
39
|
+
const [selectedOption, setSelectedOption] = useState(radioButtonOptions[0])
|
|
40
|
+
const [textFieldValue, setTextFieldValue] = useState('')
|
|
41
|
+
|
|
42
|
+
return (
|
|
43
|
+
<SafeAreaView
|
|
44
|
+
style={{flex: 1, backgroundColor: theme.colors['backgrounds-regular']}}
|
|
45
|
+
>
|
|
46
|
+
<ScrollView>
|
|
47
|
+
<Box
|
|
48
|
+
flex={1}
|
|
49
|
+
paddingHorizontal="gutter"
|
|
50
|
+
marginBottom="s"
|
|
51
|
+
backgroundColor="backgrounds-regular"
|
|
52
|
+
>
|
|
53
|
+
<Text variant="heroBold" marginBottom="s" marginTop="xs">
|
|
54
|
+
Hello, World!
|
|
55
|
+
</Text>
|
|
56
|
+
<Text variant="subtitle" marginBottom="s">
|
|
57
|
+
You just created a Shop Mini! Nice.
|
|
58
|
+
</Text>
|
|
59
|
+
<Text variant="subtitle">Let's explore what a Mini can do.</Text>
|
|
60
|
+
<Divider marginVertical="s" />
|
|
61
|
+
{products ? (
|
|
62
|
+
<>
|
|
63
|
+
<Text marginBottom="s">
|
|
64
|
+
First up: Product Cards (Since we're all about shopping,
|
|
65
|
+
right?)
|
|
66
|
+
</Text>
|
|
67
|
+
<Box flexDirection="row">
|
|
68
|
+
{products.slice(0, 2).map(product => (
|
|
69
|
+
<Box key={product.id} flex={1}>
|
|
70
|
+
<ProductCard product={product} />
|
|
71
|
+
</Box>
|
|
72
|
+
))}
|
|
73
|
+
</Box>
|
|
74
|
+
<Box flexDirection="row">
|
|
75
|
+
{products.slice(2, 4).map(product => (
|
|
76
|
+
<Box key={product.id} flex={1} padding="xs">
|
|
77
|
+
<ProductCard product={product} />
|
|
78
|
+
</Box>
|
|
79
|
+
))}
|
|
80
|
+
</Box>
|
|
81
|
+
</>
|
|
82
|
+
) : null}
|
|
83
|
+
<Divider marginVertical="s" />
|
|
84
|
+
|
|
85
|
+
<Text marginBottom="s">
|
|
86
|
+
You can add interactions to your Mini with inputs.
|
|
87
|
+
</Text>
|
|
88
|
+
<Box>
|
|
89
|
+
<TextField
|
|
90
|
+
placeholder="I love Minis because..."
|
|
91
|
+
value={textFieldValue}
|
|
92
|
+
onChangeText={setTextFieldValue}
|
|
93
|
+
/>
|
|
94
|
+
{textFieldValue ? (
|
|
95
|
+
<Text marginTop="xs">I love Minis because {textFieldValue}</Text>
|
|
96
|
+
) : null}
|
|
97
|
+
</Box>
|
|
98
|
+
<Divider marginVertical="s" />
|
|
99
|
+
|
|
100
|
+
<Text>Radio buttons</Text>
|
|
101
|
+
{radioButtonOptions.map(option => (
|
|
102
|
+
<Box key={option} marginVertical="xs">
|
|
103
|
+
<RadioButton
|
|
104
|
+
variant="tertiary"
|
|
105
|
+
text={option}
|
|
106
|
+
active={selectedOption === option}
|
|
107
|
+
onPress={() => setSelectedOption(option)}
|
|
108
|
+
/>
|
|
109
|
+
</Box>
|
|
110
|
+
))}
|
|
111
|
+
<Divider marginVertical="s" />
|
|
112
|
+
|
|
113
|
+
<Text marginBottom="s">
|
|
114
|
+
Ready for more? Let's explore native capabilities in the
|
|
115
|
+
screen.
|
|
116
|
+
</Text>
|
|
117
|
+
<Button
|
|
118
|
+
text="Next"
|
|
119
|
+
size="l"
|
|
120
|
+
onPress={() => {
|
|
121
|
+
navigation.navigate('GettingStarted.NativeFeatures')
|
|
122
|
+
}}
|
|
123
|
+
/>
|
|
124
|
+
</Box>
|
|
125
|
+
</ScrollView>
|
|
126
|
+
</SafeAreaView>
|
|
127
|
+
)
|
|
128
|
+
}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import {useState} from 'react'
|
|
2
|
+
import {ScrollView, TouchableOpacity} from 'react-native'
|
|
3
|
+
import {useNavigation} from '@react-navigation/native'
|
|
4
|
+
import {NativeStackNavigationProp} from '@react-navigation/native-stack'
|
|
5
|
+
import ImagePicker from 'react-native-image-crop-picker'
|
|
6
|
+
import Share from 'react-native-share'
|
|
7
|
+
import {
|
|
8
|
+
Box,
|
|
9
|
+
SafeAreaView,
|
|
10
|
+
Text,
|
|
11
|
+
useTheme,
|
|
12
|
+
Button,
|
|
13
|
+
Icon,
|
|
14
|
+
useMinisDimensions,
|
|
15
|
+
Image,
|
|
16
|
+
Divider,
|
|
17
|
+
} from '@shopify/shop-minis-platform-sdk'
|
|
18
|
+
|
|
19
|
+
import {RootStackParamList} from '../types/screens'
|
|
20
|
+
|
|
21
|
+
export function NativeFeaturesScreen() {
|
|
22
|
+
const theme = useTheme()
|
|
23
|
+
const navigation =
|
|
24
|
+
useNavigation<NativeStackNavigationProp<RootStackParamList>>()
|
|
25
|
+
const {height, width} = useMinisDimensions()
|
|
26
|
+
|
|
27
|
+
const [imageUrl, setImageUrl] = useState<string>()
|
|
28
|
+
|
|
29
|
+
return (
|
|
30
|
+
<SafeAreaView
|
|
31
|
+
style={{flex: 1, backgroundColor: theme.colors['backgrounds-regular']}}
|
|
32
|
+
>
|
|
33
|
+
<ScrollView>
|
|
34
|
+
<Box
|
|
35
|
+
flex={1}
|
|
36
|
+
paddingHorizontal="gutter"
|
|
37
|
+
backgroundColor="backgrounds-regular"
|
|
38
|
+
>
|
|
39
|
+
<Box>
|
|
40
|
+
<TouchableOpacity
|
|
41
|
+
onPress={() => navigation.goBack()}
|
|
42
|
+
accessibilityLabel="Navigate back"
|
|
43
|
+
>
|
|
44
|
+
<Box marginTop="xs">
|
|
45
|
+
<Icon name="arrow-left" />
|
|
46
|
+
</Box>
|
|
47
|
+
</TouchableOpacity>
|
|
48
|
+
</Box>
|
|
49
|
+
<Text variant="heroBold" marginBottom="s" marginTop="xs">
|
|
50
|
+
Unlock Native Capabilities
|
|
51
|
+
</Text>
|
|
52
|
+
<Text variant="subtitle" marginBottom="s">
|
|
53
|
+
Let's explore the native capabilities your Shop Mini can
|
|
54
|
+
access.
|
|
55
|
+
</Text>
|
|
56
|
+
<Box>
|
|
57
|
+
<Button
|
|
58
|
+
text="Camera access"
|
|
59
|
+
onPress={async () => {
|
|
60
|
+
await ImagePicker.openCamera({})
|
|
61
|
+
.then(image => {
|
|
62
|
+
setImageUrl(image.path)
|
|
63
|
+
})
|
|
64
|
+
.catch(error => {
|
|
65
|
+
console.log(error)
|
|
66
|
+
})
|
|
67
|
+
}}
|
|
68
|
+
/>
|
|
69
|
+
<Text variant="bodySmall" marginTop="xs">
|
|
70
|
+
Run this Mini on a real device to access the camera.
|
|
71
|
+
</Text>
|
|
72
|
+
</Box>
|
|
73
|
+
<Box marginVertical="s">
|
|
74
|
+
<Button
|
|
75
|
+
text="Gallery access"
|
|
76
|
+
variant="secondary"
|
|
77
|
+
onPress={async () => {
|
|
78
|
+
await ImagePicker.openPicker({})
|
|
79
|
+
.then(image => {
|
|
80
|
+
setImageUrl(image.path)
|
|
81
|
+
})
|
|
82
|
+
.catch(error => {
|
|
83
|
+
console.log(error)
|
|
84
|
+
})
|
|
85
|
+
}}
|
|
86
|
+
/>
|
|
87
|
+
</Box>
|
|
88
|
+
{imageUrl ? (
|
|
89
|
+
<Box marginBottom="s">
|
|
90
|
+
<Box
|
|
91
|
+
style={{
|
|
92
|
+
width: 100,
|
|
93
|
+
height: 100,
|
|
94
|
+
borderRadius: 10,
|
|
95
|
+
overflow: 'hidden',
|
|
96
|
+
}}
|
|
97
|
+
>
|
|
98
|
+
<Image
|
|
99
|
+
source={{uri: imageUrl}}
|
|
100
|
+
style={{width: 100, height: 100}}
|
|
101
|
+
/>
|
|
102
|
+
</Box>
|
|
103
|
+
</Box>
|
|
104
|
+
) : null}
|
|
105
|
+
<Box>
|
|
106
|
+
<Button
|
|
107
|
+
text="Share sheet"
|
|
108
|
+
variant="tertiary"
|
|
109
|
+
onPress={async () => {
|
|
110
|
+
await Share.open({
|
|
111
|
+
url: 'https://shop.app/minis',
|
|
112
|
+
title: 'title',
|
|
113
|
+
}).catch(error => {
|
|
114
|
+
console.log(error)
|
|
115
|
+
})
|
|
116
|
+
}}
|
|
117
|
+
/>
|
|
118
|
+
</Box>
|
|
119
|
+
<Divider marginVertical="s" />
|
|
120
|
+
<Box>
|
|
121
|
+
<Text variant="subtitle" marginBottom="s">
|
|
122
|
+
Use some of our built-in APIs
|
|
123
|
+
</Text>
|
|
124
|
+
<Text>Screen height: {height}</Text>
|
|
125
|
+
<Text>Screen width: {width}</Text>
|
|
126
|
+
</Box>
|
|
127
|
+
<Divider marginVertical="s" />
|
|
128
|
+
<Text marginBottom="s">
|
|
129
|
+
We look forward to seeing what you build! Check out the
|
|
130
|
+
documentation at
|
|
131
|
+
</Text>
|
|
132
|
+
<Text>https://shop.app/minis</Text>
|
|
133
|
+
</Box>
|
|
134
|
+
</ScrollView>
|
|
135
|
+
</SafeAreaView>
|
|
136
|
+
)
|
|
137
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import {useMemo} from 'react'
|
|
2
|
+
import {StatusBar} from 'react-native'
|
|
3
|
+
import {
|
|
4
|
+
ShoppablePosts,
|
|
5
|
+
useMinisParams,
|
|
6
|
+
SafeAreaView,
|
|
7
|
+
Box,
|
|
8
|
+
shoppablePostsFixture,
|
|
9
|
+
} from '@shopify/shop-minis-platform-sdk'
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* A stub type to get you started. Remove this in favor of the type of your extension input query data moving forward.
|
|
13
|
+
*/
|
|
14
|
+
interface MyExtensionDataType {
|
|
15
|
+
shop?: {
|
|
16
|
+
id: string
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function App() {
|
|
21
|
+
const {extensionData} = useMinisParams<MyExtensionDataType>()
|
|
22
|
+
const shopId = extensionData?.shop?.id
|
|
23
|
+
|
|
24
|
+
const shoppablePosts = useMemo(() => {
|
|
25
|
+
// Format your data in to the shape expected by `<ShoppablePosts />`
|
|
26
|
+
// return getShoppablePostsFromExtensionData(extensionData)
|
|
27
|
+
return shoppablePostsFixture
|
|
28
|
+
}, [])
|
|
29
|
+
|
|
30
|
+
if (!shopId) {
|
|
31
|
+
throw new Error('Shop not found')
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return (
|
|
35
|
+
<Box backgroundColor="foregrounds-contrasting-inverted" flex={1}>
|
|
36
|
+
<StatusBar barStyle="light-content" />
|
|
37
|
+
<SafeAreaView style={{flex: 1}}>
|
|
38
|
+
<ShoppablePosts initialItems={shoppablePosts} shopId={shopId} />
|
|
39
|
+
</SafeAreaView>
|
|
40
|
+
</Box>
|
|
41
|
+
)
|
|
42
|
+
}
|