@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
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const
|
|
12
|
-
async function
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
from: new RegExp(replaceKey, 'g'),
|
|
17
|
-
to: replaceValue,
|
|
18
|
-
optionsForFiles: {
|
|
19
|
-
ignore: ['**/node_modules/**'],
|
|
20
|
-
},
|
|
21
|
-
};
|
|
22
|
-
await (0, replace_in_file_1.replaceInFile)(replaceOptions);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
async function generateMiniFromTemplate(name, handle, templateName, outputDir = '.') {
|
|
26
|
-
const tmpDir = await fs_extra_1.default.mkdtemp(path_1.default.join(os_1.default.tmpdir(), `${handle}-`));
|
|
27
|
-
const miniTemplateDir = await path_1.default.join(__dirname, '../../../../templates', `__template_${templateName}`);
|
|
28
|
-
const miniDestinationDir = path_1.default.resolve(process.cwd(), outputDir, handle);
|
|
29
|
-
const CLIVersion = require('../../../../package.json').version; // eslint-disable-line @typescript-eslint/no-var-requires
|
|
1
|
+
import url from 'node:url';
|
|
2
|
+
import { mkdtemp } from 'node:fs/promises';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import os from 'os';
|
|
5
|
+
import { copy, move } from 'fs-extra';
|
|
6
|
+
import _ from 'lodash';
|
|
7
|
+
import { CLI_VERSION } from '../../config.js';
|
|
8
|
+
import { replaceStringsInTemplate } from '../../../utils/replace-strings-in-template.js';
|
|
9
|
+
import { execAsync } from '../../../utils/exec-async-child-process.js';
|
|
10
|
+
import { getPackageLatestVersionCommand } from '../../../utils/package-manager.js';
|
|
11
|
+
const __dirname = url.fileURLToPath(new URL('.', import.meta.url));
|
|
12
|
+
export async function generateMiniFromTemplate(name, templateName, outputDir = '.', miniDir) {
|
|
13
|
+
const tmpDir = await mkdtemp(path.join(os.tmpdir(), `${miniDir}-`));
|
|
14
|
+
const miniTemplateDir = await path.join(__dirname, '../../../../templates', `__template_${templateName}`);
|
|
15
|
+
const miniDestinationDir = path.resolve(process.cwd(), outputDir, miniDir);
|
|
30
16
|
const stringsToReplace = {
|
|
31
17
|
__MINI_APP_NAME__: name,
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
__SHOP_MINIS_CLI_VERSION__:
|
|
18
|
+
__MINI_APP_NAME_PASCAL_CASE__: _.startCase(miniDir).replace(/ /g, ''),
|
|
19
|
+
__MINI_APP_NAME_KEBAB_CASE__: _.kebabCase(name),
|
|
20
|
+
__SHOP_MINIS_CLI_VERSION__: CLI_VERSION,
|
|
21
|
+
__SHOP_MINIS_RUNTIME_VERSION__: await fetchLatestMinisRuntimeVersion(),
|
|
35
22
|
};
|
|
36
|
-
const commonTemplateFilesDir = await
|
|
37
|
-
await
|
|
38
|
-
await
|
|
39
|
-
await
|
|
23
|
+
const commonTemplateFilesDir = await path.join(__dirname, '../../../../templates', '__template_common');
|
|
24
|
+
await copy(commonTemplateFilesDir, tmpDir);
|
|
25
|
+
await copy(miniTemplateDir, tmpDir);
|
|
26
|
+
await move(path.join(tmpDir, 'gitignore'), path.join(tmpDir, '.gitignore'));
|
|
40
27
|
await replaceStringsInTemplate(tmpDir, stringsToReplace);
|
|
41
|
-
await
|
|
28
|
+
await copy(tmpDir, miniDestinationDir);
|
|
29
|
+
}
|
|
30
|
+
async function fetchLatestMinisRuntimeVersion() {
|
|
31
|
+
try {
|
|
32
|
+
const getLatestVersionCommand = await getPackageLatestVersionCommand('@shopify/shop-minis-runtime');
|
|
33
|
+
const { stdout: latestMinisRuntimeVersionStdout } = await execAsync({
|
|
34
|
+
cmd: getLatestVersionCommand,
|
|
35
|
+
});
|
|
36
|
+
return latestMinisRuntimeVersionStdout[0];
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
// this fallback shouldn't be needed but we should make our best to make sure the mini creation doesn't fail
|
|
40
|
+
// this was the latest version at the time of writing this function
|
|
41
|
+
return '0.0.13';
|
|
42
|
+
}
|
|
42
43
|
}
|
|
43
|
-
exports.generateMiniFromTemplate = generateMiniFromTemplate;
|
|
44
44
|
//# sourceMappingURL=template-app.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-app.js","sourceRoot":"","sources":["../../../../src/commands/create-mini/utils/template-app.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"template-app.js","sourceRoot":"","sources":["../../../../src/commands/create-mini/utils/template-app.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,UAAU,CAAA;AAC1B,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAA;AACxC,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,MAAM,IAAI,CAAA;AAEnB,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,MAAM,UAAU,CAAA;AACnC,OAAO,CAAC,MAAM,QAAQ,CAAA;AAEtB,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAC,wBAAwB,EAAC,MAAM,+CAA+C,CAAA;AACtF,OAAO,EAAC,SAAS,EAAC,MAAM,4CAA4C,CAAA;AACpE,OAAO,EAAC,8BAA8B,EAAC,MAAM,mCAAmC,CAAA;AAEhF,MAAM,SAAS,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAElE,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,IAAY,EACZ,YAAoB,EACpB,SAAS,GAAG,GAAG,EACf,OAAe;IAEf,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,GAAG,CAAC,CAAC,CAAA;IACnE,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,IAAI,CACrC,SAAS,EACT,uBAAuB,EACvB,cAAc,YAAY,EAAE,CAC7B,CAAA;IACD,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;IAE1E,MAAM,gBAAgB,GAAG;QACvB,iBAAiB,EAAE,IAAI;QACvB,6BAA6B,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACrE,4BAA4B,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;QAC/C,0BAA0B,EAAE,WAAW;QACvC,8BAA8B,EAAE,MAAM,8BAA8B,EAAE;KACvE,CAAA;IAED,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,IAAI,CAC5C,SAAS,EACT,uBAAuB,EACvB,mBAAmB,CACpB,CAAA;IAED,MAAM,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAA;IAC1C,MAAM,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;IACnC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAA;IAC3E,MAAM,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IACxD,MAAM,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;AACxC,CAAC;AAED,KAAK,UAAU,8BAA8B;IAC3C,IAAI;QACF,MAAM,uBAAuB,GAAG,MAAM,8BAA8B,CAClE,6BAA6B,CAC9B,CAAA;QAED,MAAM,EAAC,MAAM,EAAE,+BAA+B,EAAC,GAAG,MAAM,SAAS,CAAC;YAChE,GAAG,EAAE,uBAAuB;SAC7B,CAAC,CAAA;QACF,OAAO,+BAA+B,CAAC,CAAC,CAAC,CAAA;KAC1C;IAAC,MAAM;QACN,4GAA4G;QAC5G,mEAAmE;QACnE,OAAO,QAAQ,CAAA;KAChB;AACH,CAAC"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
+
import { BuildType } from './utils/types.js';
|
|
2
3
|
export interface DevCommandOptions {
|
|
3
4
|
resetCache?: boolean;
|
|
4
5
|
host?: string;
|
|
6
|
+
buildType: BuildType;
|
|
7
|
+
snapshotVersion?: string;
|
|
5
8
|
}
|
|
6
9
|
export declare function loadCommand(parentProgram: Command): Promise<void>;
|
|
@@ -1,31 +1,60 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
async function loadCommand(parentProgram) {
|
|
14
|
-
const ip = await
|
|
15
|
-
const command = new
|
|
1
|
+
import { Command, Option } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import internalIp from 'internal-ip';
|
|
4
|
+
import { outputDebug } from '@shopify/cli-kit/node/output';
|
|
5
|
+
import { handler as handleError } from '@shopify/cli-kit/node/error';
|
|
6
|
+
import { getMiniManifest } from '../../utils/minis-manifest.js';
|
|
7
|
+
import { maybeApplyPatches } from '../../utils/patch-package.js';
|
|
8
|
+
import { getInvalidDependencies } from '../doctor/utils/diagnose-dependencies.js';
|
|
9
|
+
import { getRunBinCommand } from '../../utils/package-manager.js';
|
|
10
|
+
import { InteractiveTerminal } from './utils/interactive-terminal.js';
|
|
11
|
+
import { runMetro } from './utils/metro/metro-server.js';
|
|
12
|
+
import { BuildType } from './utils/types.js';
|
|
13
|
+
export async function loadCommand(parentProgram) {
|
|
14
|
+
const ip = await internalIp.v4();
|
|
15
|
+
const command = new Command()
|
|
16
16
|
.name('dev')
|
|
17
|
-
.version('2.0.0')
|
|
18
17
|
.description('Start a local dev server for the mini app')
|
|
19
18
|
.option('--reset-cache', 'reset the dev server cache')
|
|
20
19
|
.option('--host <host>', "packager's host", ip)
|
|
20
|
+
.option('--verbose', 'print debugging messages') // compatible with cli-kit
|
|
21
|
+
.addOption(new Option('--build-type <buildType>', 'build type')
|
|
22
|
+
.choices(Object.values(BuildType))
|
|
23
|
+
.default(BuildType.Release))
|
|
24
|
+
.addOption(new Option('--snapshot-version <version>', 'specify the snapshot version to use. (example: 2.100.0+544)').implies({ buildType: 'snapshot' }))
|
|
21
25
|
.action(async (options) => {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
try {
|
|
27
|
+
const miniName = getMiniManifest().name;
|
|
28
|
+
outputDebug(`Dev command args ${JSON.stringify(options)}`);
|
|
29
|
+
outputDebug(`Running mini "${miniName}" at ${process.cwd()}`);
|
|
30
|
+
validateOptions(options);
|
|
31
|
+
await validateDependencies();
|
|
32
|
+
maybeApplyPatches(); // we need to patch react-native pressability system to avoid duplicated react tags
|
|
33
|
+
await runMetro(options);
|
|
34
|
+
console.log('Local development environment for', chalk.green(miniName), 'is running...');
|
|
35
|
+
const interactiveTerminal = new InteractiveTerminal(options);
|
|
36
|
+
interactiveTerminal.start();
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
delete err.stack; // delete the stack to avoid a verbose error in case the manifest file does not exist
|
|
40
|
+
await handleError(err);
|
|
41
|
+
}
|
|
27
42
|
});
|
|
28
43
|
parentProgram.addCommand(command);
|
|
29
44
|
}
|
|
30
|
-
|
|
45
|
+
function validateOptions({ snapshotVersion, buildType }) {
|
|
46
|
+
if (snapshotVersion && buildType !== 'snapshot') {
|
|
47
|
+
console.warn('\n--snapshot-version was specified but --build-type is not `snapshot`. --snapshot-version will be ignored.');
|
|
48
|
+
}
|
|
49
|
+
else if (buildType === 'snapshot' && !snapshotVersion) {
|
|
50
|
+
console.warn('\n--build-type was set to `snapshot` but --snapshot-version was not specified. Fetching the latest available snapshot');
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
async function validateDependencies() {
|
|
54
|
+
const { areDependenciesInvalid } = getInvalidDependencies();
|
|
55
|
+
if (areDependenciesInvalid) {
|
|
56
|
+
console.warn(chalk.yellow(`\n⚠️ There are some issues with the dependencies of your mini. Run ${chalk.bold(await getRunBinCommand('shop-minis doctor'))} for more details and instructions on how to fix them.`));
|
|
57
|
+
console.warn(chalk.yellow('⚠️ Problems with the dependencies of your mini could be a cause of rejection during the submission process\n'));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
31
60
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/dev/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/dev/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,10 +7,12 @@ export interface androidDevice {
|
|
|
7
7
|
}
|
|
8
8
|
export declare function getDevices(): Promise<androidDevice[]>;
|
|
9
9
|
export declare function getEmulators(): Promise<androidDevice[]>;
|
|
10
|
-
export declare function androidHomeExists(): boolean;
|
|
11
10
|
export declare function promptForAndroidDevices(): Promise<androidDevice | null>;
|
|
12
11
|
export declare function maybeLaunchEmulator(emulatorName: string): Promise<string | null>;
|
|
13
|
-
export declare function installShopInEmulator(emulatorId: string,
|
|
14
|
-
export declare function getInstalledShopVersion(emulatorId: string): Promise<
|
|
12
|
+
export declare function installShopInEmulator(emulatorId: string, fileName: string): Promise<void>;
|
|
13
|
+
export declare function getInstalledShopVersion(emulatorId: string): Promise<{
|
|
14
|
+
version: string;
|
|
15
|
+
build: string;
|
|
16
|
+
} | null>;
|
|
15
17
|
export declare function connectDevelopmentServer(emulatorId: string): Promise<void>;
|
|
16
|
-
export declare function deeplinkToEmulator(emulatorId: string,
|
|
18
|
+
export declare function deeplinkToEmulator(emulatorId: string, originalDeeplink: string): Promise<void>;
|
|
@@ -1,35 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
const prompts_1 = __importDefault(require("prompts"));
|
|
12
|
-
const exec_async_child_process_1 = require("../../utils/exec-async-child-process");
|
|
13
|
-
const with_retries_1 = require("./with-retries");
|
|
14
|
-
const binaries_1 = require("./binaries");
|
|
15
|
-
const DEFAULT_ANDROID_HOME_MACOS = `${process.env.HOME}/Library/Android/sdk`;
|
|
16
|
-
function whichAndroidHome() {
|
|
17
|
-
if (process.env.ANDROID_HOME) {
|
|
18
|
-
return process.env.ANDROID_HOME;
|
|
19
|
-
}
|
|
20
|
-
if (fs_1.default.existsSync(DEFAULT_ANDROID_HOME_MACOS)) {
|
|
21
|
-
return DEFAULT_ANDROID_HOME_MACOS;
|
|
22
|
-
}
|
|
23
|
-
return null;
|
|
24
|
-
}
|
|
25
|
-
function whichEmulator() {
|
|
26
|
-
return `${whichAndroidHome()}/emulator/emulator`;
|
|
27
|
-
}
|
|
28
|
-
function whichAdb() {
|
|
29
|
-
return `${whichAndroidHome()}/platform-tools/adb`;
|
|
30
|
-
}
|
|
31
|
-
async function getDevices() {
|
|
32
|
-
const { stdout: devicesList } = await (0, exec_async_child_process_1.execAsync)(`${whichAdb()} devices -l`);
|
|
1
|
+
import child_process from 'child_process';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import _ from 'lodash';
|
|
4
|
+
import prompts from 'prompts';
|
|
5
|
+
import { outputDebug } from '@shopify/cli-kit/node/output';
|
|
6
|
+
import { execAsync } from '../../../utils/exec-async-child-process.js';
|
|
7
|
+
import { PATHS, whichAdb, whichEmulator } from '../../config.js';
|
|
8
|
+
import { withRetries } from './with-retries.js';
|
|
9
|
+
export async function getDevices() {
|
|
10
|
+
const { stdout: devicesList } = await execAsync(`${whichAdb()} devices -l`);
|
|
33
11
|
return devicesList
|
|
34
12
|
.slice(1)
|
|
35
13
|
.filter(name => !name.includes('emulator'))
|
|
@@ -41,9 +19,8 @@ async function getDevices() {
|
|
|
41
19
|
isAuthorized: true,
|
|
42
20
|
}));
|
|
43
21
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
const { stdout: devicesList } = await (0, exec_async_child_process_1.execAsync)(`${whichEmulator()} -list-avds`);
|
|
22
|
+
export async function getEmulators() {
|
|
23
|
+
const { stdout: devicesList } = await execAsync(`${whichEmulator()} -list-avds`);
|
|
47
24
|
return devicesList.map(name => ({
|
|
48
25
|
name,
|
|
49
26
|
description: `${name} (emulator)`,
|
|
@@ -52,19 +29,14 @@ async function getEmulators() {
|
|
|
52
29
|
isAuthorized: true,
|
|
53
30
|
}));
|
|
54
31
|
}
|
|
55
|
-
|
|
56
|
-
function androidHomeExists() {
|
|
57
|
-
return Boolean(whichAndroidHome());
|
|
58
|
-
}
|
|
59
|
-
exports.androidHomeExists = androidHomeExists;
|
|
60
|
-
async function promptForAndroidDevices() {
|
|
32
|
+
export async function promptForAndroidDevices() {
|
|
61
33
|
const devices = await getDevices();
|
|
62
34
|
const emulators = await getEmulators();
|
|
63
35
|
const androidDevices = devices.concat(emulators);
|
|
64
36
|
if (!androidDevices.length) {
|
|
65
37
|
return null;
|
|
66
38
|
}
|
|
67
|
-
const { value } = await (
|
|
39
|
+
const { value } = await prompts({
|
|
68
40
|
type: 'autocomplete',
|
|
69
41
|
name: 'value',
|
|
70
42
|
limit: 11,
|
|
@@ -82,8 +54,7 @@ async function promptForAndroidDevices() {
|
|
|
82
54
|
});
|
|
83
55
|
return value;
|
|
84
56
|
}
|
|
85
|
-
|
|
86
|
-
async function maybeLaunchEmulator(emulatorName) {
|
|
57
|
+
export async function maybeLaunchEmulator(emulatorName) {
|
|
87
58
|
let emulatorId = await getIdForEmulatorWithName(emulatorName); // if emulatorId is defined the emulator is already running
|
|
88
59
|
if (!emulatorId) {
|
|
89
60
|
emulatorId = await doLaunchEmulator(emulatorName);
|
|
@@ -93,38 +64,55 @@ async function maybeLaunchEmulator(emulatorName) {
|
|
|
93
64
|
}
|
|
94
65
|
return emulatorId;
|
|
95
66
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
const
|
|
99
|
-
|
|
100
|
-
await (0, exec_async_child_process_1.execAsync)(`${whichAdb()} -s ${emulatorId} install -r "${binaryPath}"`);
|
|
67
|
+
export async function installShopInEmulator(emulatorId, fileName) {
|
|
68
|
+
outputDebug(`Install Shop in Android emulator ${JSON.stringify({ emulatorId, fileName })}`);
|
|
69
|
+
const binaryPath = path.join(PATHS.CACHE_DIR, fileName);
|
|
70
|
+
await execAsync(`${whichAdb()} -s ${emulatorId} install -r -d "${binaryPath}"`);
|
|
101
71
|
}
|
|
102
|
-
|
|
103
|
-
async function getInstalledShopVersion(emulatorId) {
|
|
72
|
+
export async function getInstalledShopVersion(emulatorId) {
|
|
104
73
|
try {
|
|
105
|
-
const
|
|
106
|
-
|
|
107
|
-
|
|
74
|
+
const versionName = await execAsync(`${whichAdb()} -s ${emulatorId} shell dumpsys package com.shopify.arrive.internal | grep versionName`);
|
|
75
|
+
const versionCode = await execAsync(`${whichAdb()} -s ${emulatorId} shell dumpsys package com.shopify.arrive.internal | grep versionCode`);
|
|
76
|
+
// stdout: [" versionName=2.86.0"]
|
|
77
|
+
const version = _.last(versionName.stdout[0]?.trim().split('='));
|
|
78
|
+
// stdout: [" versionCode=1680515537 minSdk=21 targetSdk=33"]
|
|
79
|
+
const build = _.last(versionCode.stdout[0]?.trim().split(' ')[0]?.split('='));
|
|
80
|
+
if (version == null || build == null) {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
version,
|
|
85
|
+
build,
|
|
86
|
+
};
|
|
108
87
|
}
|
|
109
88
|
catch {
|
|
110
89
|
return null;
|
|
111
90
|
}
|
|
112
91
|
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
92
|
+
export async function connectDevelopmentServer(emulatorId) {
|
|
93
|
+
await execAsync(`${whichAdb()} -s ${emulatorId} reverse tcp:8082 tcp:8082`);
|
|
94
|
+
}
|
|
95
|
+
export async function deeplinkToEmulator(emulatorId, originalDeeplink) {
|
|
96
|
+
let deeplink = originalDeeplink;
|
|
97
|
+
// If we have a querystring we need to modify it to escape ampersands
|
|
98
|
+
// https://stackoverflow.com/a/45323695
|
|
99
|
+
const queryIndex = deeplink.indexOf('?');
|
|
100
|
+
if (queryIndex !== -1) {
|
|
101
|
+
const urlObj = new URL(deeplink);
|
|
102
|
+
const preQueryString = deeplink.substring(0, queryIndex);
|
|
103
|
+
const queryString = Array.from(urlObj.searchParams.entries())
|
|
104
|
+
.map(([key, value]) => `${key}=${value}`)
|
|
105
|
+
.join('\\&');
|
|
106
|
+
deeplink = `${preQueryString}?${queryString}`;
|
|
107
|
+
}
|
|
108
|
+
await execAsync(`${whichAdb()} -s ${emulatorId} shell am start -a android.intent.action.VIEW -d "${deeplink}"`);
|
|
120
109
|
}
|
|
121
|
-
exports.deeplinkToEmulator = deeplinkToEmulator;
|
|
122
110
|
async function getNameForEmulatorWithId(emulatorId) {
|
|
123
|
-
const { stdout } = await
|
|
111
|
+
const { stdout } = await execAsync(`${whichAdb()} -s ${emulatorId} emu avd name`);
|
|
124
112
|
return stdout[0];
|
|
125
113
|
}
|
|
126
114
|
async function getIdForEmulatorWithName(emulatorName) {
|
|
127
|
-
const { stdout } = await
|
|
115
|
+
const { stdout } = await execAsync(`${whichAdb()} devices`);
|
|
128
116
|
const emulatorIds = stdout.filter(result => result.startsWith('emulator-'));
|
|
129
117
|
for (const emulatorId of emulatorIds) {
|
|
130
118
|
const name = await getNameForEmulatorWithId(emulatorId);
|
|
@@ -136,16 +124,16 @@ async function getIdForEmulatorWithName(emulatorName) {
|
|
|
136
124
|
}
|
|
137
125
|
async function waitForEmulatorToBoot(emulatorId, timeout = 60 * 2 * 1000 // 2 minutes
|
|
138
126
|
) {
|
|
139
|
-
await
|
|
127
|
+
await execAsync(`${whichAdb()} -s ${emulatorId} wait-for-device shell 'while [[ -z $(getprop sys.boot_completed) ]]; do sleep 1; done;'`, { timeout });
|
|
140
128
|
}
|
|
141
129
|
function doLaunchEmulator(emulatorName) {
|
|
142
|
-
const emulatorProcess =
|
|
130
|
+
const emulatorProcess = child_process.spawn(whichEmulator(), [`@${emulatorName}`], {
|
|
143
131
|
stdio: 'ignore',
|
|
144
132
|
detached: true,
|
|
145
133
|
});
|
|
146
134
|
emulatorProcess.unref();
|
|
147
135
|
return new Promise((resolve, reject) => {
|
|
148
|
-
|
|
136
|
+
withRetries(() => getIdForEmulatorWithName(emulatorName))
|
|
149
137
|
.then(resolve)
|
|
150
138
|
.catch(reject)
|
|
151
139
|
.finally(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"android.js","sourceRoot":"","sources":["../../../../src/commands/dev/utils/android.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"android.js","sourceRoot":"","sources":["../../../../src/commands/dev/utils/android.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,83 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
type Platform = 'ios' | 'android';
|
|
3
|
-
/**
|
|
4
|
-
* Returns the file extension used for each platform.
|
|
5
|
-
* android: .apk
|
|
6
|
-
* ios: .zip (we intentionally compress .app files before uploading them to the cloud storage)
|
|
7
|
-
*/
|
|
8
|
-
export declare function getBinaryFileExtensionForPlatform(platform: Platform): ".zip" | ".apk";
|
|
9
|
-
/**
|
|
10
|
-
* @example
|
|
11
|
-
* platform android
|
|
12
|
-
* version 2.76.0
|
|
13
|
-
* returns "2-76-0.apk"
|
|
14
|
-
*
|
|
15
|
-
* platform ios
|
|
16
|
-
* version 2.55.0+4
|
|
17
|
-
* returns "2-55-0+4.zip"
|
|
18
|
-
*/
|
|
19
|
-
export declare function versionToBinaryFileName(version: string, platform: Platform): string;
|
|
20
|
-
/**
|
|
21
|
-
* @example
|
|
22
|
-
* binaryFileName "2-76-0.apk"
|
|
23
|
-
* returns "2.76.0"
|
|
24
|
-
*
|
|
25
|
-
* binaryFileName "2-16-0+3.zip"
|
|
26
|
-
* returns "2.16.0+3"
|
|
27
|
-
*/
|
|
28
|
-
export declare function binaryFileNameToVersion(binaryFileName: string): string;
|
|
29
|
-
/**
|
|
30
|
-
* @example
|
|
31
|
-
* filenames ["2-76-0+3.apk", "2-76-0+3.zip", "2-77-0.apk", "2-77-0.zip", "2-77-0+1.apk", "2-77-0+1.zip"]
|
|
32
|
-
* returns "2.77.0+1"
|
|
33
|
-
*/
|
|
34
|
-
export declare function getLatestVersionFromFilesList(filenames: string[]): string | null;
|
|
1
|
+
import { BinaryMetadata } from './types.js';
|
|
35
2
|
/**
|
|
36
3
|
* Returns a boolean indicating if the binary for the given version and platform is already downloaded in the system
|
|
37
4
|
*/
|
|
38
|
-
export declare function isVersionAvailableLocally(
|
|
39
|
-
/**
|
|
40
|
-
* Gets the biggest version in the downloads folder for the given platform.
|
|
41
|
-
*/
|
|
42
|
-
export declare function getLatestDownloadedVersion(platform: Platform): Promise<string | null>;
|
|
43
|
-
/**
|
|
44
|
-
* Returns the latest version that's present in the remote storage of binaries
|
|
45
|
-
* TODO: this won't handle a bucket that has more than 50 files.
|
|
46
|
-
*/
|
|
47
|
-
export declare function getLatestRemoteVersion(platform: Platform): Promise<string>;
|
|
48
|
-
/**
|
|
49
|
-
* Downloads a binary from the remote storage
|
|
50
|
-
* @returns Promise that resolves to the downloaded version
|
|
51
|
-
*/
|
|
52
|
-
export declare function downloadBinary(platform: Platform, { onProgress, version, }?: {
|
|
53
|
-
/**
|
|
54
|
-
* Download progress callback
|
|
55
|
-
*/
|
|
56
|
-
onProgress?: (progress: number) => void;
|
|
57
|
-
/**
|
|
58
|
-
* Version to download. Defaults to latest version available
|
|
59
|
-
*/
|
|
60
|
-
version?: string;
|
|
61
|
-
}): Promise<string>;
|
|
62
|
-
/**
|
|
63
|
-
* Compares the current version against the latest available version.
|
|
64
|
-
*
|
|
65
|
-
* Does nothing if the current version is already the latest.
|
|
66
|
-
* Otherwise prompts the user to download the new version.
|
|
67
|
-
*/
|
|
68
|
-
export declare function maybePromptBinaryUpgrade(platform: Platform, { currentVersion, onProgress, onDownloadStart, }?: {
|
|
69
|
-
/**
|
|
70
|
-
* The version that's currently being used.
|
|
71
|
-
* Defaults to the bigger version in the downloads folder.
|
|
72
|
-
*/
|
|
73
|
-
currentVersion?: string;
|
|
74
|
-
/**
|
|
75
|
-
* Download progress callback
|
|
76
|
-
*/
|
|
77
|
-
onProgress?: (progress: number) => void;
|
|
78
|
-
/**
|
|
79
|
-
* Callback executed if the user agrees to update, before starting the download.
|
|
80
|
-
*/
|
|
81
|
-
onDownloadStart?: (version: string) => void;
|
|
82
|
-
}): Promise<string | null>;
|
|
83
|
-
export {};
|
|
5
|
+
export declare function isVersionAvailableLocally(version: BinaryMetadata): Promise<boolean>;
|