@shopify/shop-minis-cli 0.0.37 → 0.0.82
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/.vscode/extensions.json +3 -0
- package/.vscode/launch.json +29 -0
- package/.vscode/settings.json +8 -0
- package/.vscode/shop-minis-cli.code-workspace +8 -0
- package/build/commands/cancel-submission/cancel-submission.d.ts +1 -0
- package/build/commands/cancel-submission/cancel-submission.js +57 -0
- package/build/commands/cancel-submission/cancel-submission.js.map +1 -0
- package/build/commands/cancel-submission/index.d.ts +2 -0
- package/build/commands/cancel-submission/index.js +18 -0
- package/build/commands/cancel-submission/index.js.map +1 -0
- package/build/commands/cancel-submission/types.d.ts +3 -0
- package/build/commands/cancel-submission/types.js +2 -0
- package/build/commands/cancel-submission/types.js.map +1 -0
- package/build/commands/check-submission/index.d.ts +2 -0
- package/build/commands/check-submission/index.js +55 -0
- package/build/commands/check-submission/index.js.map +1 -0
- package/build/commands/check-submission/types.d.ts +3 -0
- package/build/commands/check-submission/types.js +2 -0
- package/build/commands/check-submission/types.js.map +1 -0
- package/build/commands/codemod/index.d.ts +3 -0
- package/build/commands/codemod/index.js +47 -0
- package/build/commands/codemod/index.js.map +1 -0
- package/build/commands/codemod/releases/index.d.ts +7 -0
- package/build/commands/codemod/releases/index.js +58 -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-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/config.d.ts +14 -0
- package/build/commands/config.js +42 -0
- package/build/commands/config.js.map +1 -0
- package/build/commands/create-mini/index.js +84 -68
- package/build/commands/create-mini/index.js.map +1 -1
- package/build/commands/create-mini/utils/template-app.d.ts +1 -1
- package/build/commands/create-mini/utils/template-app.js +38 -38
- package/build/commands/create-mini/utils/template-app.js.map +1 -1
- package/build/commands/dev/index.d.ts +3 -0
- package/build/commands/dev/index.js +51 -22
- package/build/commands/dev/index.js.map +1 -1
- package/build/commands/dev/utils/android.d.ts +6 -4
- package/build/commands/dev/utils/android.js +55 -67
- package/build/commands/dev/utils/android.js.map +1 -1
- package/build/commands/dev/utils/binaries.d.ts +2 -80
- package/build/commands/dev/utils/binaries.js +10 -166
- package/build/commands/dev/utils/binaries.js.map +1 -1
- package/build/commands/dev/utils/build-type.d.ts +2 -0
- package/build/commands/dev/utils/build-type.js +14 -0
- package/build/commands/dev/utils/build-type.js.map +1 -0
- package/build/commands/dev/utils/deeplink.d.ts +3 -3
- package/build/commands/dev/utils/deeplink.js +13 -18
- package/build/commands/dev/utils/deeplink.js.map +1 -1
- package/build/commands/dev/utils/interactive-terminal.d.ts +4 -2
- package/build/commands/dev/utils/interactive-terminal.js +66 -107
- package/build/commands/dev/utils/interactive-terminal.js.map +1 -1
- package/build/commands/dev/utils/metro/metro-config.js +17 -20
- package/build/commands/dev/utils/metro/metro-config.js.map +1 -1
- package/build/commands/dev/utils/metro/metro-reporter.d.ts +3 -4
- package/build/commands/dev/utils/metro/metro-reporter.js +6 -13
- package/build/commands/dev/utils/metro/metro-reporter.js.map +1 -1
- package/build/commands/dev/utils/metro/metro-server-middleware.d.ts +1 -0
- package/build/commands/dev/utils/metro/metro-server-middleware.js +11 -12
- package/build/commands/dev/utils/metro/metro-server-middleware.js.map +1 -1
- package/build/commands/dev/utils/metro/metro-server.d.ts +2 -2
- package/build/commands/dev/utils/metro/metro-server.js +7 -14
- package/build/commands/dev/utils/metro/metro-server.js.map +1 -1
- package/build/commands/dev/utils/network.d.ts +20 -0
- package/build/commands/dev/utils/network.js +122 -0
- package/build/commands/dev/utils/network.js.map +1 -0
- package/build/commands/dev/utils/platform.d.ts +18 -0
- package/build/commands/dev/utils/platform.js +41 -0
- package/build/commands/dev/utils/platform.js.map +1 -0
- package/build/commands/dev/utils/prompt-binary-upgrade.d.ts +1 -0
- package/build/commands/dev/utils/prompt-binary-upgrade.js +12 -0
- package/build/commands/dev/utils/prompt-binary-upgrade.js.map +1 -0
- package/build/commands/dev/utils/qr-code.js +3 -10
- package/build/commands/dev/utils/qr-code.js.map +1 -1
- package/build/commands/dev/utils/simulator.d.ts +5 -2
- package/build/commands/dev/utils/simulator.js +43 -37
- package/build/commands/dev/utils/simulator.js.map +1 -1
- package/build/commands/dev/utils/start-app/config.d.ts +5 -0
- package/build/commands/dev/utils/start-app/config.js +25 -0
- package/build/commands/dev/utils/start-app/config.js.map +1 -0
- package/build/commands/dev/utils/start-app/start-app-with-options.d.ts +2 -0
- package/build/commands/dev/utils/start-app/start-app-with-options.js +94 -0
- package/build/commands/dev/utils/start-app/start-app-with-options.js.map +1 -0
- package/build/commands/dev/utils/start-app/start-app.d.ts +2 -0
- package/build/commands/dev/utils/start-app/start-app.js +10 -0
- package/build/commands/dev/utils/start-app/start-app.js.map +1 -0
- package/build/commands/dev/utils/start-app/types.d.ts +20 -0
- package/build/commands/dev/utils/start-app/types.js +2 -0
- package/build/commands/dev/utils/start-app/types.js.map +1 -0
- package/build/commands/dev/utils/types.d.ts +24 -0
- package/build/commands/dev/utils/types.js +7 -0
- package/build/commands/dev/utils/types.js.map +1 -0
- package/build/commands/dev/utils/version.d.ts +64 -0
- package/build/commands/dev/utils/version.js +101 -0
- package/build/commands/dev/utils/version.js.map +1 -0
- package/build/commands/dev/utils/with-retries.js +1 -5
- package/build/commands/dev/utils/with-retries.js.map +1 -1
- 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 +108 -0
- package/build/commands/doctor/utils/diagnose-dependencies.js.map +1 -0
- package/build/commands/generate-graphql-types/index.d.ts +1 -0
- package/build/commands/generate-graphql-types/index.js +43 -27
- package/build/commands/generate-graphql-types/index.js.map +1 -1
- 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 +81 -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 +10 -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 +222 -0
- package/build/commands/submit/submit.js.map +1 -0
- package/build/commands/submit/tasks.d.ts +37 -0
- package/build/commands/submit/tasks.js +91 -0
- package/build/commands/submit/tasks.js.map +1 -0
- package/build/commands/submit/types.d.ts +14 -0
- package/build/commands/submit/types.js +2 -0
- package/build/commands/submit/types.js.map +1 -0
- package/build/commands/submit/utils/assert-core-dependencies-version.d.ts +1 -0
- package/build/commands/submit/utils/assert-core-dependencies-version.js +58 -0
- package/build/commands/submit/utils/assert-core-dependencies-version.js.map +1 -0
- package/build/commands/submit/utils/request-entry-point-params.d.ts +1 -0
- package/build/commands/submit/utils/request-entry-point-params.js +41 -0
- package/build/commands/submit/utils/request-entry-point-params.js.map +1 -0
- package/build/commands/submit/validation.d.ts +1 -0
- package/build/commands/submit/validation.js +11 -0
- package/build/commands/submit/validation.js.map +1 -0
- package/build/commands/upgrade/index.d.ts +13 -0
- package/build/commands/upgrade/index.js +53 -0
- package/build/commands/upgrade/index.js.map +1 -0
- package/build/commands/upgrade/utils/cli.d.ts +1 -0
- package/build/commands/upgrade/utils/cli.js +15 -0
- package/build/commands/upgrade/utils/cli.js.map +1 -0
- package/build/commands/validate-manifest/index.d.ts +3 -0
- package/build/commands/validate-manifest/index.js +29 -0
- package/build/commands/validate-manifest/index.js.map +1 -0
- package/build/data/accept-invitation.d.ts +4 -0
- package/build/data/accept-invitation.js +16 -0
- package/build/data/accept-invitation.js.map +1 -0
- package/build/data/cancel-submission.d.ts +22 -0
- package/build/data/cancel-submission.js +26 -0
- package/build/data/cancel-submission.js.map +1 -0
- package/build/data/create-submission.d.ts +20 -0
- package/build/data/create-submission.js +27 -0
- package/build/data/create-submission.js.map +1 -0
- package/build/data/create-upload.d.ts +21 -0
- package/build/data/create-upload.js +40 -0
- package/build/data/create-upload.js.map +1 -0
- package/build/data/get-submissions.d.ts +27 -0
- package/build/data/get-submissions.js +33 -0
- package/build/data/get-submissions.js.map +1 -0
- package/build/data/gql-client.d.ts +8 -0
- package/build/data/gql-client.js +9 -0
- package/build/data/gql-client.js.map +1 -0
- package/build/data/mini.d.ts +5 -0
- package/build/data/mini.js +14 -0
- package/build/data/mini.js.map +1 -0
- package/build/data/types/autogenerated/shop-minis-admin-api/fragment-masking.d.ts +13 -0
- package/build/data/types/autogenerated/shop-minis-admin-api/fragment-masking.js +7 -0
- package/build/data/types/autogenerated/shop-minis-admin-api/fragment-masking.js.map +1 -0
- package/build/data/types/autogenerated/shop-minis-admin-api/gql.d.ts +75 -0
- package/build/data/types/autogenerated/shop-minis-admin-api/gql.js +24 -0
- package/build/data/types/autogenerated/shop-minis-admin-api/gql.js.map +1 -0
- package/build/data/types/autogenerated/shop-minis-admin-api/graphql.d.ts +1570 -0
- package/build/data/types/autogenerated/shop-minis-admin-api/graphql.js +1062 -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 +6 -9
- package/build/dev-panel/index.html +1 -1
- package/build/dev-panel/static/css/{main.31436fe3.css → main.7f1ee407.css} +2 -2
- package/build/dev-panel/static/css/main.7f1ee407.css.map +1 -0
- package/build/dev-panel/static/js/{main.27f47095.js → main.6625699c.js} +3 -3
- package/build/dev-panel/static/js/main.6625699c.js.map +1 -0
- package/build/index.d.ts +1 -1
- package/build/index.js +30 -15
- package/build/index.js.map +1 -1
- package/build/schemas/manifest.schema.json +198 -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/common-tasks.d.ts +1 -0
- package/build/utils/common-tasks.js +49 -0
- package/build/utils/common-tasks.js.map +1 -0
- package/build/utils/development-params.d.ts +13 -0
- package/build/utils/development-params.js +42 -0
- package/build/utils/development-params.js.map +1 -0
- package/build/{commands/utils → utils}/exec-async-child-process.d.ts +1 -1
- package/build/{commands/utils → utils}/exec-async-child-process.js +6 -13
- package/build/utils/exec-async-child-process.js.map +1 -0
- package/build/utils/file.d.ts +1 -0
- package/build/utils/file.js +7 -0
- package/build/utils/file.js.map +1 -0
- package/build/utils/minis-manifest.d.ts +6 -0
- package/build/utils/minis-manifest.js +56 -0
- package/build/utils/minis-manifest.js.map +1 -0
- package/build/utils/package-manager.d.ts +38 -0
- package/build/utils/package-manager.js +98 -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/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/{commands/utils → utils}/wrap-with-loading-indicator.d.ts +1 -1
- package/build/utils/wrap-with-loading-indicator.js +16 -0
- package/build/utils/wrap-with-loading-indicator.js.map +1 -0
- package/package.json +35 -28
- package/scripts/graphql-codegen.ts +23 -0
- package/scripts/test-template.ts +63 -0
- package/shipit.alpha.yml +3 -0
- package/templates/__template_blank/src/index.tsx +5 -4
- package/templates/__template_blank/src/types.ts +1 -1
- package/templates/__template_common/.eslintrc.js +16 -0
- package/templates/__template_common/assets.d.ts +14 -0
- package/templates/__template_common/babel.config.js +3 -17
- package/templates/__template_common/gitignore +2 -0
- package/templates/__template_common/index.tsx +3 -6
- package/templates/__template_common/metro.config.js +4 -30
- package/templates/__template_common/package.json +17 -47
- package/templates/__template_common/src/manifest.json +1 -27
- package/templates/__template_hello_world/src/components/ComponentLink.ts +31 -19
- package/templates/__template_hello_world/src/components/ComponentListItem.tsx +1 -0
- package/templates/__template_hello_world/src/components/FeaturedComponents.tsx +4 -2
- package/templates/__template_hello_world/src/components/quiz/ImageCarouselSlide.tsx +54 -0
- package/templates/__template_hello_world/src/components/quiz/MultipleChoiceSlide.tsx +77 -0
- package/templates/__template_hello_world/src/components/quiz/QuizProvider.tsx +64 -0
- package/templates/__template_hello_world/src/components/quiz/QuizSlide.tsx +79 -0
- package/templates/__template_hello_world/src/components/quiz/QuizSlideCommander.tsx +35 -0
- package/templates/__template_hello_world/src/components/quiz/TextFieldSlide.tsx +84 -0
- package/templates/__template_hello_world/src/components/quiz/TextSlide.tsx +6 -0
- package/templates/__template_hello_world/src/components/quiz/types.ts +72 -0
- package/templates/__template_hello_world/src/data/Test.graphql.d.ts +69 -76
- package/templates/__template_hello_world/src/data/TestProducts.graphql +30 -0
- package/templates/__template_hello_world/src/data/TestProducts.graphql.d.ts +159 -81
- package/templates/__template_hello_world/src/fixtures/mocked-products-with-variants.ts +274 -0
- package/templates/__template_hello_world/src/hooks/useQuizData.ts +26 -0
- package/templates/__template_hello_world/src/hooks/useQuizState.ts +27 -0
- package/templates/__template_hello_world/src/index.tsx +6 -5
- package/templates/__template_hello_world/src/routes.tsx +46 -22
- package/templates/__template_hello_world/src/screens/AccordionScreen.tsx +73 -0
- package/templates/__template_hello_world/src/screens/BottomSheetScreen.tsx +6 -5
- package/templates/__template_hello_world/src/screens/HomeScreen.tsx +14 -3
- package/templates/__template_hello_world/src/screens/{ImageCarouselScreen.tsx → ImageMultipleChoiceScreen.tsx} +4 -6
- package/templates/__template_hello_world/src/screens/InputScreen.tsx +13 -70
- package/templates/__template_hello_world/src/screens/QuizResultScreen.tsx +82 -0
- package/templates/__template_hello_world/src/screens/QuizScreen.tsx +40 -0
- package/templates/__template_hello_world/src/screens/QuizSlideScreen.tsx +150 -0
- package/templates/__template_hello_world/src/screens/ShopActionsScreen.tsx +48 -0
- package/templates/__template_hello_world/src/screens/VariantPickerScreen.tsx +120 -0
- package/templates/__template_hello_world/src/types.ts +27 -24
- package/templates/__template_hello_world/src/utils/mockQuizData.ts +330 -0
- package/templates/__template_hello_world/src/utils/quizUtils.ts +75 -0
- package/templates/__template_snowboardz/src/components/SkillLevelIcon.tsx +1 -4
- package/templates/__template_snowboardz/src/components/SkillLevelPicker.tsx +7 -1
- package/templates/__template_snowboardz/src/data/TestProducts.graphql +1 -1
- package/templates/__template_snowboardz/src/data/TestProducts.graphql.d.ts +84 -74
- package/templates/__template_snowboardz/src/index.tsx +6 -5
- package/templates/__template_snowboardz/src/routes.tsx +2 -2
- package/templates/__template_snowboardz/src/types.ts +3 -3
- package/build/commands/check/index.d.ts +0 -5
- package/build/commands/check/index.js +0 -77
- package/build/commands/check/index.js.map +0 -1
- package/build/commands/check/utils/versions.d.ts +0 -1
- package/build/commands/check/utils/versions.js +0 -14
- package/build/commands/check/utils/versions.js.map +0 -1
- package/build/commands/dev/utils/binaries.test.d.ts +0 -1
- package/build/commands/dev/utils/binaries.test.js +0 -275
- package/build/commands/dev/utils/binaries.test.js.map +0 -1
- package/build/commands/dev/utils/minis-manifest.d.ts +0 -1
- package/build/commands/dev/utils/minis-manifest.js +0 -24
- package/build/commands/dev/utils/minis-manifest.js.map +0 -1
- package/build/commands/utils/exec-async-child-process.js.map +0 -1
- package/build/commands/utils/wrap-with-loading-indicator.js +0 -23
- package/build/commands/utils/wrap-with-loading-indicator.js.map +0 -1
- package/build/dev-panel/middleware.d.ts +0 -4
- package/build/dev-panel/middleware.js +0 -11
- package/build/dev-panel/middleware.js.map +0 -1
- package/build/dev-panel/static/css/main.31436fe3.css.map +0 -1
- package/build/dev-panel/static/js/main.27f47095.js.map +0 -1
- package/build/dev-panel/static/media/bottomsheet.fe525b8722f6d504a185.png +0 -0
- package/build/dev-panel/static/media/navigation.597434370a97c328a970.png +0 -0
- package/build/dev-panel/static/media/stories.a425b6972a5338fabdad.png +0 -0
- package/templates/__template_blank/src/custom.d.ts +0 -4
- package/templates/__template_common/.eslintrc.json +0 -132
- package/templates/__template_common/patches/react-native+0.68.5.patch +0 -173
- package/templates/__template_hello_world/src/utils/getFlagEmoji.spec.tsx +0 -19
- /package/build/dev-panel/static/js/{main.27f47095.js.LICENSE.txt → main.6625699c.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import fs from 'fs';
|
|
3
|
+
import { AbortError } from '@shopify/cli-kit/node/error';
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
import { hardResetDependencies } from '../../../utils/package-manager.js';
|
|
6
|
+
import { wrapWithLoadingIndicator } from '../../../utils/wrap-with-loading-indicator.js';
|
|
7
|
+
export async function diagnoseDependencies(autoFix) {
|
|
8
|
+
const { areDependenciesInvalid, duplicatedDependencies, duplicatedDevDependencies, nonSupportedDependencies, } = getInvalidDependencies();
|
|
9
|
+
if (areDependenciesInvalid) {
|
|
10
|
+
console.log(chalk.red(`\n❌ Found some issues with the dependencies of your mini. Read more about supported dependencies in ${chalk.bold('https://shop.app/minis/docs/build-a-shop-mini/dependencies/')}`));
|
|
11
|
+
logNonSupportedDependencies(nonSupportedDependencies);
|
|
12
|
+
logDuplicatedDependencies(duplicatedDependencies);
|
|
13
|
+
logDuplicatedDependencies(duplicatedDevDependencies, true);
|
|
14
|
+
}
|
|
15
|
+
if (autoFix) {
|
|
16
|
+
await removeInvalidDependencies({
|
|
17
|
+
packageJsonPath: path.join(process.cwd(), 'package.json'),
|
|
18
|
+
duplicatedDependencies,
|
|
19
|
+
duplicatedDevDependencies,
|
|
20
|
+
nonSupportedDependencies,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
else if (areDependenciesInvalid) {
|
|
24
|
+
logTroubleshootInstructions();
|
|
25
|
+
}
|
|
26
|
+
// mark the validation as failed if there are any duplicated dependencies or dev dependencies
|
|
27
|
+
return !areDependenciesInvalid;
|
|
28
|
+
}
|
|
29
|
+
export function getInvalidDependencies() {
|
|
30
|
+
const runtimePackageJsonPath = path.join(process.cwd(), 'node_modules', '@shopify', 'shop-minis-runtime', 'package.json');
|
|
31
|
+
const runtimeDependencies = getPackageJsonByPath(runtimePackageJsonPath).dependencies;
|
|
32
|
+
const miniPackageJsonPath = path.join(process.cwd(), 'package.json');
|
|
33
|
+
const miniPackageJson = getPackageJsonByPath(miniPackageJsonPath);
|
|
34
|
+
const duplicatedDependencies = Object.keys(miniPackageJson.dependencies).filter(dependency => Boolean(runtimeDependencies[dependency]));
|
|
35
|
+
const duplicatedDevDependencies = Object.keys(miniPackageJson.devDependencies).filter(devDependency => Boolean(runtimeDependencies[devDependency]));
|
|
36
|
+
// everything that's listed as a dependency as is not shop-minis-runtime and is not duplicated is invalid
|
|
37
|
+
// shop-minis-runtime should be the only dependency of the mini
|
|
38
|
+
const nonSupportedDependencies = Object.keys(miniPackageJson.dependencies).filter(dependency => dependency !== '@shopify/shop-minis-runtime' &&
|
|
39
|
+
!duplicatedDependencies.includes(dependency));
|
|
40
|
+
const areDependenciesInvalid = Boolean(duplicatedDependencies.length +
|
|
41
|
+
duplicatedDevDependencies.length +
|
|
42
|
+
nonSupportedDependencies.length);
|
|
43
|
+
return {
|
|
44
|
+
duplicatedDependencies,
|
|
45
|
+
duplicatedDevDependencies,
|
|
46
|
+
nonSupportedDependencies,
|
|
47
|
+
areDependenciesInvalid,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
function logNonSupportedDependencies(dependencies) {
|
|
51
|
+
if (dependencies.length === 0) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
console.log(chalk.red('\n❌ Usage of the following dependencies in your mini is not supported:'));
|
|
55
|
+
dependencies.forEach(dependency => console.log(`- ${dependency}`));
|
|
56
|
+
}
|
|
57
|
+
function logDuplicatedDependencies(dependencies, isDev = false) {
|
|
58
|
+
if (dependencies.length === 0) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
console.log(chalk.red(`\n❌ The following ${isDev ? 'devDependencies' : 'dependencies'} are duplicated with @shopify/shop-minis-runtime:`));
|
|
62
|
+
dependencies.forEach(dependency => console.log(`- ${dependency}`));
|
|
63
|
+
}
|
|
64
|
+
function getPackageJsonByPath(packageJsonPath) {
|
|
65
|
+
let packageJson = {};
|
|
66
|
+
try {
|
|
67
|
+
const packageJsonString = fs.readFileSync(packageJsonPath).toString('utf-8');
|
|
68
|
+
packageJson = JSON.parse(packageJsonString);
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
throw new AbortError(`Failed to read from file on path ${packageJsonPath}`);
|
|
72
|
+
}
|
|
73
|
+
return packageJson;
|
|
74
|
+
}
|
|
75
|
+
function logTroubleshootInstructions() {
|
|
76
|
+
console.log(chalk.cyan(`\nℹ️ This error is potentially fixable with the ${chalk.bold('--fix')} option.`));
|
|
77
|
+
console.log(chalk.cyan('\nℹ️ If you want to fix this error manually, try:'));
|
|
78
|
+
console.log('1. Remove the invalid dependencies and/or devDependencies from your package.json');
|
|
79
|
+
console.log('2. Remove the node_modules folder and the dependencies lockfile (package-lock.json or yarn.lock)');
|
|
80
|
+
console.log('3. Reinstall dependencies');
|
|
81
|
+
console.log('4. Commit the changes to the package.json and lockfile');
|
|
82
|
+
}
|
|
83
|
+
async function removeInvalidDependencies({ packageJsonPath, duplicatedDependencies, duplicatedDevDependencies, nonSupportedDependencies, }) {
|
|
84
|
+
if (!duplicatedDependencies.length &&
|
|
85
|
+
!duplicatedDevDependencies.length &&
|
|
86
|
+
!nonSupportedDependencies.length) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
const packageJson = getPackageJsonByPath(packageJsonPath);
|
|
90
|
+
nonSupportedDependencies.forEach(dependency => {
|
|
91
|
+
delete packageJson.dependencies[dependency];
|
|
92
|
+
});
|
|
93
|
+
duplicatedDependencies.forEach(dependency => {
|
|
94
|
+
delete packageJson.dependencies[dependency];
|
|
95
|
+
});
|
|
96
|
+
duplicatedDevDependencies.forEach(devDependency => {
|
|
97
|
+
delete packageJson.devDependencies[devDependency];
|
|
98
|
+
});
|
|
99
|
+
fs.writeFileSync(packageJsonPath, `${JSON.stringify(packageJson, null, 2)}\n`, // keep the new line at the end of the file
|
|
100
|
+
{
|
|
101
|
+
encoding: 'utf-8',
|
|
102
|
+
});
|
|
103
|
+
await wrapWithLoadingIndicator(hardResetDependencies(), {
|
|
104
|
+
loadingMessage: 'Removing invalid dependencies and recreating lockfiles...',
|
|
105
|
+
successMessage: 'Dependencies reinstalled',
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=diagnose-dependencies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnose-dependencies.js","sourceRoot":"","sources":["../../../../src/commands/doctor/utils/diagnose-dependencies.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,40 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
1
|
+
import { createRequire } from 'node:module';
|
|
2
|
+
import { execSync } from 'node:child_process';
|
|
3
|
+
import { Command } from 'commander';
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
import { GraphQLConfig } from 'graphql-config';
|
|
6
|
+
import { getMiniManifest } from '../../utils/minis-manifest.js';
|
|
7
|
+
import { maybeApplyPatches } from '../../utils/patch-package.js';
|
|
8
|
+
import { getRunBinCommand } from '../../utils/package-manager.js';
|
|
9
|
+
// Import these bits as cjs because their esm exports are broken
|
|
10
|
+
// TODO: this way of requiring libraries loses the types
|
|
11
|
+
// https://github.com/Shopify/shop-minis-cli/issues/191
|
|
12
|
+
const { Builder, ExportFormat } = createRequire(import.meta.url)('graphql-typescript-definitions');
|
|
13
|
+
export function loadCommand(parentProgram) {
|
|
14
|
+
const command = new Command()
|
|
14
15
|
.name('generate-graphql-types')
|
|
15
16
|
.description('Generate types for all of your .graphql files')
|
|
16
17
|
.option('--watch', 'enable watch mode')
|
|
18
|
+
.option('--verbose', 'print debugging messages')
|
|
17
19
|
.action(async (options) => {
|
|
20
|
+
const appliedPatches = maybeApplyPatches(); // we need to patch graphql-typescript-definitions for types to be correct
|
|
21
|
+
// if the patch was applied, we need to rerun the command in a new context to take the applied patch into account
|
|
22
|
+
if (appliedPatches.some(patchName => patchName.startsWith('graphql-typescript-definitions'))) {
|
|
23
|
+
const args = [
|
|
24
|
+
options.watch ? ' --watch' : '',
|
|
25
|
+
options.verbose ? ' --verbose' : '',
|
|
26
|
+
].join('');
|
|
27
|
+
execSync(await getRunBinCommand(`shop-minis generate-graphql-types ${args}`), {
|
|
28
|
+
stdio: 'inherit',
|
|
29
|
+
});
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
18
32
|
const miniDir = process.cwd();
|
|
19
|
-
const
|
|
20
|
-
console.log('Generating graphql types for',
|
|
33
|
+
const miniName = getMiniManifest().name;
|
|
34
|
+
console.log('Generating graphql types for', chalk.green(miniName), '\n');
|
|
21
35
|
// All of the paths below are relative to `miniDir` and refer to dependencies of the mini app itself
|
|
22
|
-
const schemaTypesPathConfig = 'node_modules/@shopify/shop-minis-platform-sdk/
|
|
23
|
-
const config = new
|
|
36
|
+
const schemaTypesPathConfig = 'node_modules/@shopify/shop-minis-platform-sdk/api/types';
|
|
37
|
+
const config = new GraphQLConfig({
|
|
24
38
|
config: {
|
|
25
39
|
schemaPath: 'node_modules/@shopify/shop-minis-platform-sdk/src/api/minis.graphql',
|
|
26
40
|
includes: [`**/*.graphql`],
|
|
@@ -31,26 +45,29 @@ function loadCommand(parentProgram) {
|
|
|
31
45
|
},
|
|
32
46
|
filepath: '',
|
|
33
47
|
}, []);
|
|
34
|
-
const
|
|
48
|
+
const builderOptions = {
|
|
35
49
|
cwd: miniDir,
|
|
36
50
|
addTypename: true,
|
|
37
51
|
schemaTypesPath: schemaTypesPathConfig,
|
|
52
|
+
exportFormat: ExportFormat.DocumentWithTypedDocumentNode,
|
|
53
|
+
// @ts-expect-error this happens because typescript is loading the same definition of GraphQLConfig from different places
|
|
38
54
|
config,
|
|
39
|
-
}
|
|
55
|
+
};
|
|
56
|
+
const builder = new Builder(builderOptions);
|
|
40
57
|
const schemas = [];
|
|
41
58
|
const docs = [];
|
|
42
|
-
const builtColor =
|
|
43
|
-
const errorColor =
|
|
59
|
+
const builtColor = chalk.inverse.bold.green(' BUILT ');
|
|
60
|
+
const errorColor = chalk.inverse.bold.red(' ERROR ');
|
|
44
61
|
builder.on('start:docs', () => {
|
|
45
62
|
docs.length = 0;
|
|
46
63
|
});
|
|
47
64
|
builder.on('start:schema', () => {
|
|
48
65
|
schemas.length = 0;
|
|
49
66
|
});
|
|
50
|
-
builder.on('build:docs', doc => {
|
|
67
|
+
builder.on('build:docs', (doc) => {
|
|
51
68
|
docs.push(doc);
|
|
52
69
|
});
|
|
53
|
-
builder.on('build:schema', schema => {
|
|
70
|
+
builder.on('build:schema', (schema) => {
|
|
54
71
|
schemas.push(schema);
|
|
55
72
|
});
|
|
56
73
|
builder.on('end:docs', () => {
|
|
@@ -60,17 +77,17 @@ function loadCommand(parentProgram) {
|
|
|
60
77
|
// Make the paths a bit nicer to look at by removing all the path up to the mini's dir
|
|
61
78
|
const trimmedDocumentPath = documentPath.replace(miniDir, '');
|
|
62
79
|
const trimmedDefinitionPath = definitionPath.replace(miniDir, '');
|
|
63
|
-
console.log(`${builtColor} ${
|
|
80
|
+
console.log(`${builtColor} ${chalk.dim(trimmedDocumentPath)} → ${trimmedDefinitionPath}`);
|
|
64
81
|
});
|
|
65
82
|
});
|
|
66
83
|
builder.on('end:schema', () => {
|
|
67
84
|
// It would be good if there was a way to get `graphql-typescript-definitions` to not build the schema types
|
|
68
85
|
// but instead we will just ignore it and not tell the user what happened
|
|
69
86
|
});
|
|
70
|
-
builder.on('error', error => {
|
|
87
|
+
builder.on('error', (error) => {
|
|
71
88
|
console.log(`${errorColor} ${error.message}`);
|
|
72
89
|
if (error.stack) {
|
|
73
|
-
console.log(
|
|
90
|
+
console.log(chalk.dim(error.stack));
|
|
74
91
|
}
|
|
75
92
|
console.log();
|
|
76
93
|
if (!options.watch) {
|
|
@@ -86,5 +103,4 @@ function loadCommand(parentProgram) {
|
|
|
86
103
|
});
|
|
87
104
|
parentProgram.addCommand(command);
|
|
88
105
|
}
|
|
89
|
-
exports.loadCommand = loadCommand;
|
|
90
106
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/generate-graphql-types/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/generate-graphql-types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import envinfo from 'envinfo';
|
|
3
|
+
import { wrapWithLoadingIndicator } from '../../utils/wrap-with-loading-indicator.js';
|
|
4
|
+
import { getPackageVersion } from '../../utils/package-manager.js';
|
|
5
|
+
export const command = new Command()
|
|
6
|
+
.name('info')
|
|
7
|
+
.description('Get relevant version info about OS, toolchain and libraries')
|
|
8
|
+
.option('--verbose', 'print debugging messages')
|
|
9
|
+
.action(async () => {
|
|
10
|
+
const infoPromise = envinfo.run({
|
|
11
|
+
System: ['OS', 'CPU', 'Memory', 'Shell'],
|
|
12
|
+
Binaries: ['Node', 'Yarn', 'npm', 'Watchman'],
|
|
13
|
+
IDEs: ['Xcode', 'Android Studio'],
|
|
14
|
+
Managers: ['CocoaPods'],
|
|
15
|
+
Languages: ['Java'],
|
|
16
|
+
SDKs: ['iOS SDK', 'Android SDK'],
|
|
17
|
+
});
|
|
18
|
+
// we can not use envinfo to fetch these because some of these packages are not direct dependencies of each mini
|
|
19
|
+
// some are transient dependencies via @shopify/shop-minis-runtime
|
|
20
|
+
const packageVersionPromises = [
|
|
21
|
+
getPackageVersion('@shopify/shop-minis-cli'),
|
|
22
|
+
getPackageVersion('@shopify/shop-minis-platform-sdk'),
|
|
23
|
+
getPackageVersion('@shopify/shop-minis-runtime'),
|
|
24
|
+
getPackageVersion('react'),
|
|
25
|
+
getPackageVersion('react-native'),
|
|
26
|
+
];
|
|
27
|
+
const [info, cliVersion, sdkVersion, runtimeVersion, reactVersion, reactNativeVersion,] = await wrapWithLoadingIndicator(Promise.all([infoPromise, ...packageVersionPromises]), {
|
|
28
|
+
loadingMessage: 'Fetching system information...',
|
|
29
|
+
successMessage: 'System information loaded',
|
|
30
|
+
});
|
|
31
|
+
console.log(`${info} Packages:`);
|
|
32
|
+
console.log(` @shopify/shop-minis-cli: ${cliVersion}`);
|
|
33
|
+
console.log(` @shopify/shop-minis-platform-sdk: ${sdkVersion}`);
|
|
34
|
+
console.log(` @shopify/shop-minis-runtime: ${runtimeVersion}`);
|
|
35
|
+
console.log(` react: ${reactVersion}`);
|
|
36
|
+
console.log(` react-native: ${reactNativeVersion}`);
|
|
37
|
+
console.log(''); // empty line at the end
|
|
38
|
+
});
|
|
39
|
+
export async function loadCommand(parentProgram) {
|
|
40
|
+
parentProgram.addCommand(command);
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/info/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AACjC,OAAO,OAAO,MAAM,SAAS,CAAA;AAE7B,OAAO,EAAC,wBAAwB,EAAC,MAAM,4CAA4C,CAAA;AACnF,OAAO,EAAC,iBAAiB,EAAC,MAAM,gCAAgC,CAAA;AAEhE,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;KACjC,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,6DAA6D,CAAC;KAC1E,MAAM,CAAC,WAAW,EAAE,0BAA0B,CAAC;KAC/C,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;QAC9B,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC;QACxC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC;QAC7C,IAAI,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC;QACjC,QAAQ,EAAE,CAAC,WAAW,CAAC;QACvB,SAAS,EAAE,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC;KACjC,CAAC,CAAA;IAEF,gHAAgH;IAChH,kEAAkE;IAClE,MAAM,sBAAsB,GAAG;QAC7B,iBAAiB,CAAC,yBAAyB,CAAC;QAC5C,iBAAiB,CAAC,kCAAkC,CAAC;QACrD,iBAAiB,CAAC,6BAA6B,CAAC;QAChD,iBAAiB,CAAC,OAAO,CAAC;QAC1B,iBAAiB,CAAC,cAAc,CAAC;KACzB,CAAA;IAEV,MAAM,CACJ,IAAI,EACJ,UAAU,EACV,UAAU,EACV,cAAc,EACd,YAAY,EACZ,kBAAkB,EACnB,GAAG,MAAM,wBAAwB,CAChC,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,GAAG,sBAAsB,CAAC,CAAC,EACrD;QACE,cAAc,EAAE,gCAAgC;QAChD,cAAc,EAAE,2BAA2B;KAC5C,CACF,CAAA;IAED,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,aAAa,CAAC,CAAA;IACjC,OAAO,CAAC,GAAG,CAAC,gCAAgC,UAAU,EAAE,CAAC,CAAA;IACzD,OAAO,CAAC,GAAG,CAAC,yCAAyC,UAAU,EAAE,CAAC,CAAA;IAClE,OAAO,CAAC,GAAG,CAAC,oCAAoC,cAAc,EAAE,CAAC,CAAA;IACjE,OAAO,CAAC,GAAG,CAAC,cAAc,YAAY,EAAE,CAAC,CAAA;IACzC,OAAO,CAAC,GAAG,CAAC,qBAAqB,kBAAkB,EAAE,CAAC,CAAA;IACtD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA,CAAC,wBAAwB;AAC1C,CAAC,CAAC,CAAA;AAEJ,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,aAAsB;IACtD,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;AACnC,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import { Command } from 'commander';
|
|
4
|
+
import prompts from 'prompts';
|
|
5
|
+
import { wrapWithLoadingIndicator } from '../../utils/wrap-with-loading-indicator.js';
|
|
6
|
+
import { fetchMini } from '../../data/mini.js';
|
|
7
|
+
import { SHOP_MINIS_ADMIN_API_KEY } from '../config.js';
|
|
8
|
+
import { acceptInvitation } from '../../data/accept-invitation.js';
|
|
9
|
+
function onCancel() {
|
|
10
|
+
console.log('\nCancelled setting up a new Shop Mini\n');
|
|
11
|
+
process.exit(0);
|
|
12
|
+
}
|
|
13
|
+
export function loadCommand(parentProgram) {
|
|
14
|
+
const command = new Command()
|
|
15
|
+
.name('setup')
|
|
16
|
+
.description('Set up a new Shop Mini')
|
|
17
|
+
.action(async () => {
|
|
18
|
+
const { confirmInvitationEmail } = await prompts.prompt({
|
|
19
|
+
type: 'confirm',
|
|
20
|
+
name: 'confirmInvitationEmail',
|
|
21
|
+
message: 'To begin the setup process, please confirm that you have received an invitation email from the Shop Minis team. If you have not, please apply to join the early access program at https://shop.app/minis/apply/.',
|
|
22
|
+
}, { onCancel });
|
|
23
|
+
if (!confirmInvitationEmail) {
|
|
24
|
+
onCancel();
|
|
25
|
+
}
|
|
26
|
+
if (SHOP_MINIS_ADMIN_API_KEY) {
|
|
27
|
+
const { confirmOverwrite } = await prompts.prompt({
|
|
28
|
+
type: 'confirm',
|
|
29
|
+
name: 'confirmOverwrite',
|
|
30
|
+
message: 'This command will overwrite your exiting Shop Minis Admin API Key. If you have an existing .env file, it will be backed up as .env.bak. Do you want to continue?',
|
|
31
|
+
}, { onCancel });
|
|
32
|
+
if (!confirmOverwrite) {
|
|
33
|
+
onCancel();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
const response = await prompts.prompt({
|
|
37
|
+
type: 'text',
|
|
38
|
+
name: 'invitationCode',
|
|
39
|
+
message: `Provide the invitation code from the welcome email:`,
|
|
40
|
+
}, { onCancel });
|
|
41
|
+
const token = await wrapWithLoadingIndicator(acceptInvitation({ code: response.invitationCode }), {
|
|
42
|
+
loadingMessage: 'Fetching API key...',
|
|
43
|
+
successMessage: 'API key fetched',
|
|
44
|
+
});
|
|
45
|
+
const envFilePath = path.join(process.cwd(), '.env');
|
|
46
|
+
if (fs.existsSync(envFilePath)) {
|
|
47
|
+
fs.copyFileSync(envFilePath, `${envFilePath}.bak`);
|
|
48
|
+
}
|
|
49
|
+
fs.writeFileSync(envFilePath, `SHOP_MINIS_API_KEY=${token}\n`, {
|
|
50
|
+
encoding: 'utf-8',
|
|
51
|
+
});
|
|
52
|
+
try {
|
|
53
|
+
const miniInfo = await fetchMini({
|
|
54
|
+
Authorization: `Bearer ${token}`,
|
|
55
|
+
});
|
|
56
|
+
if (miniInfo) {
|
|
57
|
+
const manifestJsonPath = path.join(process.cwd(), 'src/manifest.json');
|
|
58
|
+
const manifestJsonString = fs.readFileSync(manifestJsonPath, {
|
|
59
|
+
encoding: 'utf-8',
|
|
60
|
+
});
|
|
61
|
+
const manifestJson = JSON.parse(manifestJsonString) || {};
|
|
62
|
+
manifestJson.handle = miniInfo.handle;
|
|
63
|
+
fs.writeFileSync(manifestJsonPath, `${JSON.stringify(manifestJson, null, 2)}\n`, {
|
|
64
|
+
encoding: 'utf-8',
|
|
65
|
+
});
|
|
66
|
+
console.log('Your Shop Mini has been set up.');
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
if (error?.response?.status === 401) {
|
|
71
|
+
console.error('Invalid invitation code.');
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
console.error('An error occurred.');
|
|
75
|
+
console.error(error);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
parentProgram.addCommand(command);
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/setup/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const SUBMISSION_PATHS: {
|
|
2
|
+
SUBMISSION_CACHE_DIR: string;
|
|
3
|
+
};
|
|
4
|
+
export declare const SUBMISSION_VALIDATION: {
|
|
5
|
+
SUBMISSION_DESCRIPTION_MAX_LENGTH: number;
|
|
6
|
+
SUBMISSION_FILE_SIZE_MAX_BYTES: number;
|
|
7
|
+
};
|
|
8
|
+
export declare const generateSubmissionArchiveFilename: () => string;
|
|
9
|
+
export declare const getSubmissionArchivePath: (filename: string) => string;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { PATHS } from '../config.js';
|
|
3
|
+
import { getMiniManifest } from '../../utils/minis-manifest.js';
|
|
4
|
+
export const SUBMISSION_PATHS = {
|
|
5
|
+
SUBMISSION_CACHE_DIR: path.resolve(PATHS.CACHE_DIR, 'submissions'),
|
|
6
|
+
};
|
|
7
|
+
export const SUBMISSION_VALIDATION = {
|
|
8
|
+
SUBMISSION_DESCRIPTION_MAX_LENGTH: 2056,
|
|
9
|
+
SUBMISSION_FILE_SIZE_MAX_BYTES: 1000000,
|
|
10
|
+
};
|
|
11
|
+
export const generateSubmissionArchiveFilename = () => {
|
|
12
|
+
const miniHandle = getMiniManifest().handle;
|
|
13
|
+
return `${miniHandle}-${String(Date.now())}.tar.gz`;
|
|
14
|
+
};
|
|
15
|
+
export const getSubmissionArchivePath = (filename) => {
|
|
16
|
+
return path.join(SUBMISSION_PATHS.SUBMISSION_CACHE_DIR, filename);
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/commands/submit/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAC,KAAK,EAAC,MAAM,cAAc,CAAA;AAClC,OAAO,EAAC,eAAe,EAAC,MAAM,+BAA+B,CAAA;AAE7D,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,oBAAoB,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,aAAa,CAAC;CACnE,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,iCAAiC,EAAE,IAAI;IACvC,8BAA8B,EAAE,OAAO;CACxC,CAAA;AAED,MAAM,CAAC,MAAM,iCAAiC,GAAG,GAAG,EAAE;IACpD,MAAM,UAAU,GAAG,eAAe,EAAE,CAAC,MAAM,CAAA;IAE3C,OAAO,GAAG,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAA;AACrD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,QAAgB,EAAE,EAAE;IAC3D,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAA;AACnE,CAAC,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { AbortError } from '@shopify/cli-kit/node/error';
|
|
2
|
+
import { CreateSubmissionMutation, CreateUploadMutation, SubmissionsQuery } from '../../data/types/autogenerated/shop-minis-admin-api/graphql.js';
|
|
3
|
+
import { CreateUploadParameters } from '../../data/create-upload.js';
|
|
4
|
+
type UnwrapArray<T> = T extends Array<infer R> ? R : never;
|
|
5
|
+
interface UserErrorShape {
|
|
6
|
+
code: string;
|
|
7
|
+
message: string;
|
|
8
|
+
field?: Array<string> | null;
|
|
9
|
+
}
|
|
10
|
+
interface WrapErrorOptions {
|
|
11
|
+
separator?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare const wrapError: (error: any, message: string, userOptions?: WrapErrorOptions) => Error;
|
|
14
|
+
export declare const userErrorToErrorMessage: ({ code, message, field, }: UserErrorShape) => string;
|
|
15
|
+
export declare const handleCreateUploadErrors: (params: CreateUploadParameters, userErrors?: CreateUploadMutation['submissionUploadCreate']['userErrors']) => void;
|
|
16
|
+
export declare const generateExistingPendingSubmissionError: (pendingSubmission: UnwrapArray<SubmissionsQuery['submissions']['nodes']> | null) => Promise<AbortError>;
|
|
17
|
+
export declare const handleCreateSubmissionErrors: (userErrors?: CreateSubmissionMutation['submissionCreate']['userErrors']) => Promise<void>;
|
|
18
|
+
export declare const handleUploadFileErrors: (error: any) => never;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { AbortError } from '@shopify/cli-kit/node/error';
|
|
2
|
+
import { outputDebug } from '@shopify/cli-kit/node/output';
|
|
3
|
+
import { getRunBinCommand } from '../../utils/package-manager.js';
|
|
4
|
+
import { getPendingSubmission } from '../../data/get-submissions.js';
|
|
5
|
+
const wrapErrorDefaultOptions = {
|
|
6
|
+
separator: ': ',
|
|
7
|
+
};
|
|
8
|
+
// Prefix an error with a nice message without loosing the stack
|
|
9
|
+
export const wrapError = (error, message, userOptions = {}) => {
|
|
10
|
+
const options = {
|
|
11
|
+
...wrapErrorDefaultOptions,
|
|
12
|
+
...userOptions,
|
|
13
|
+
};
|
|
14
|
+
const err = new Error(`${message}${options.separator}${error?.message ?? 'Unknown error'}`);
|
|
15
|
+
if (error && error?.stack) {
|
|
16
|
+
err.stack = error?.stack;
|
|
17
|
+
}
|
|
18
|
+
return err;
|
|
19
|
+
};
|
|
20
|
+
export const userErrorToErrorMessage = ({ code, message, field, }) => {
|
|
21
|
+
if (!field || field.length === 0)
|
|
22
|
+
return `${message}. (${code})`;
|
|
23
|
+
return `${message}. (${code} for fields ${field.join(', ')})`;
|
|
24
|
+
};
|
|
25
|
+
export const handleCreateUploadErrors = (params, userErrors) => {
|
|
26
|
+
if (!userErrors || userErrors.length === 0)
|
|
27
|
+
return;
|
|
28
|
+
const errorMessages = userErrors.map(userError => {
|
|
29
|
+
switch (userError.code) {
|
|
30
|
+
case 'INVALID_CHECKSUM':
|
|
31
|
+
return `Invalid checksum for uploaded archive: ${params.checksum}`;
|
|
32
|
+
case 'INVALID_FILE_SIZE':
|
|
33
|
+
return `Invalid file size for uploaded archive: ${params.fileSize}`;
|
|
34
|
+
case 'INVALID_MIME_TYPE':
|
|
35
|
+
return `Invalid mime type for uploaded archive: ${params.mimeType}`;
|
|
36
|
+
default:
|
|
37
|
+
return userErrorToErrorMessage(userError);
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
throw new AbortError('There was a problem creating your upload', errorMessages);
|
|
41
|
+
};
|
|
42
|
+
export const generateExistingPendingSubmissionError = async (pendingSubmission) => {
|
|
43
|
+
outputDebug(`Existing pending submission found ${pendingSubmission ? JSON.stringify(pendingSubmission) : ''}`);
|
|
44
|
+
const errorMessage = pendingSubmission
|
|
45
|
+
? `The previous submission (reference: ${pendingSubmission.reference}) was submitted at ${pendingSubmission.submittedAt}.\n\n` +
|
|
46
|
+
`Status of ${pendingSubmission.reference}: ${pendingSubmission.status}`
|
|
47
|
+
: undefined;
|
|
48
|
+
return new AbortError('Already a submission under review', errorMessage, [
|
|
49
|
+
[
|
|
50
|
+
'Cancel previous submission. Run',
|
|
51
|
+
{
|
|
52
|
+
command: await getRunBinCommand('shop-minis cancel-submission'),
|
|
53
|
+
},
|
|
54
|
+
'to cancel',
|
|
55
|
+
],
|
|
56
|
+
[
|
|
57
|
+
'Cancel this submission. Do nothing else and wait for previous submission to be reviewed.',
|
|
58
|
+
],
|
|
59
|
+
]);
|
|
60
|
+
};
|
|
61
|
+
export const handleCreateSubmissionErrors = async (userErrors) => {
|
|
62
|
+
if (!userErrors || userErrors.length === 0)
|
|
63
|
+
return;
|
|
64
|
+
for (const userError of userErrors) {
|
|
65
|
+
if (userError.code === 'ALREADY_PENDING_SUBMISSION') {
|
|
66
|
+
const pendingSubmission = await getPendingSubmission();
|
|
67
|
+
throw await generateExistingPendingSubmissionError(pendingSubmission);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
const errorMessages = userErrors.map(userError => {
|
|
71
|
+
switch (userError.code) {
|
|
72
|
+
case 'FILE_NOT_FOUND':
|
|
73
|
+
return `Your uploaded package could not be found`;
|
|
74
|
+
case 'UPLOAD_NOT_FOUND':
|
|
75
|
+
return `Your upload could not be found`;
|
|
76
|
+
default:
|
|
77
|
+
return userErrorToErrorMessage(userError);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
throw new AbortError('There was a problem creating your submission', errorMessages);
|
|
81
|
+
};
|
|
82
|
+
export const handleUploadFileErrors = (error) => {
|
|
83
|
+
throw wrapError(error, 'There was a problem with your upload\n\n', {
|
|
84
|
+
separator: '',
|
|
85
|
+
});
|
|
86
|
+
};
|
|
87
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/commands/submit/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
import { fetch } from '@shopify/cli-kit/node/http';
|
|
3
|
+
export const uploadFile = async ({ url, headers, filepath, }) => {
|
|
4
|
+
await fetch(url, {
|
|
5
|
+
method: 'PUT',
|
|
6
|
+
headers,
|
|
7
|
+
body: readFileSync(filepath),
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=gcs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gcs.js","sourceRoot":"","sources":["../../../src/commands/submit/gcs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,SAAS,CAAA;AAEpC,OAAO,EAAC,KAAK,EAAC,MAAM,4BAA4B,CAAA;AAQhD,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,EAC/B,GAAG,EACH,OAAO,EACP,QAAQ,GACa,EAAE,EAAE;IACzB,MAAM,KAAK,CAAC,GAAG,EAAE;QACf,MAAM,EAAE,KAAK;QACb,OAAO;QACP,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;KAC7B,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { outputDebug } from '@shopify/cli-kit/node/output';
|
|
3
|
+
import { getMiniManifest } from '../../utils/minis-manifest.js';
|
|
4
|
+
import { codeBuildChecks, completeConfig, doSubmit, preSubmitChecks, } from './submit.js';
|
|
5
|
+
export function loadCommand(parentProgram) {
|
|
6
|
+
const command = new Command()
|
|
7
|
+
.name('submit')
|
|
8
|
+
.description('submit your mini app')
|
|
9
|
+
.option('--description [description]', 'submission description - describes the change')
|
|
10
|
+
.option('--verbose', 'print debugging messages') // compatible with cli-kit
|
|
11
|
+
.action(async (args) => {
|
|
12
|
+
const miniName = getMiniManifest().name;
|
|
13
|
+
outputDebug(`Submit args ${JSON.stringify(args)}`);
|
|
14
|
+
outputDebug(`Submitting mini "${miniName}" at ${process.cwd()}`);
|
|
15
|
+
const continueWithSubmission = await codeBuildChecks();
|
|
16
|
+
if (!continueWithSubmission) {
|
|
17
|
+
process.exit(0);
|
|
18
|
+
}
|
|
19
|
+
await preSubmitChecks();
|
|
20
|
+
const config = await completeConfig(args);
|
|
21
|
+
await doSubmit(config);
|
|
22
|
+
});
|
|
23
|
+
parentProgram.addCommand(command);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/submit/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AACjC,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAA;AAExD,OAAO,EAAC,eAAe,EAAC,MAAM,+BAA+B,CAAA;AAE7D,OAAO,EACL,eAAe,EACf,cAAc,EACd,QAAQ,EACR,eAAe,GAChB,MAAM,aAAa,CAAA;AAGpB,MAAM,UAAU,WAAW,CAAC,aAAsB;IAChD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;SAC1B,IAAI,CAAC,QAAQ,CAAC;SACd,WAAW,CAAC,sBAAsB,CAAC;SACnC,MAAM,CACL,6BAA6B,EAC7B,+CAA+C,CAChD;SACA,MAAM,CAAC,WAAW,EAAE,0BAA0B,CAAC,CAAC,0BAA0B;SAC1E,MAAM,CAAC,KAAK,EAAE,IAAuB,EAAE,EAAE;QACxC,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC,IAAI,CAAA;QAEvC,WAAW,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAClD,WAAW,CAAC,oBAAoB,QAAQ,QAAQ,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;QAEhE,MAAM,sBAAsB,GAAG,MAAM,eAAe,EAAE,CAAA;QACtD,IAAI,CAAC,sBAAsB,EAAE;YAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;SAChB;QAED,MAAM,eAAe,EAAE,CAAA;QACvB,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAA;QACzC,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAA;IACxB,CAAC,CAAC,CAAA;IAEJ,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;AACnC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { SubmitCommandArgs, SubmitConfig } from './types.js';
|
|
2
|
+
export declare const codeBuildChecks: () => Promise<boolean>;
|
|
3
|
+
export declare const preSubmitChecks: () => Promise<void>;
|
|
4
|
+
export declare const completeConfig: (args: SubmitCommandArgs) => Promise<SubmitConfig>;
|
|
5
|
+
export declare const doSubmit: (config: SubmitConfig) => Promise<void>;
|