@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,31 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
const metro_server_middleware_1 = require("./metro-server-middleware");
|
|
12
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
13
|
-
const defaults = require('metro-config/src/defaults/defaults');
|
|
1
|
+
import { createRequire } from 'node:module';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { loadMetroConfig } from '@react-native-community/cli-plugin-metro';
|
|
4
|
+
import cli from '@react-native-community/cli';
|
|
5
|
+
import { createMinisMetroReporter } from './metro-reporter.js';
|
|
6
|
+
import { injectMetroServerMiddleware } from './metro-server-middleware.js';
|
|
7
|
+
// Import as cjs
|
|
8
|
+
// TODO: this way of requiring libraries loses the types
|
|
9
|
+
// https://github.com/Shopify/shop-minis-cli/issues/191
|
|
10
|
+
const defaults = createRequire(import.meta.url)('metro-config/src/defaults/defaults');
|
|
14
11
|
// modified so that metro uses the mini dependency path and not the CLI dependency when using symlinks to run the CLI (yarn link)
|
|
15
12
|
defaults.moduleSystem = `${process.cwd()}/node_modules/metro-runtime/src/polyfills/require.js`;
|
|
16
|
-
async function getMetroConfig() {
|
|
17
|
-
const metroConfig =
|
|
13
|
+
export async function getMetroConfig() {
|
|
14
|
+
const metroConfig = await loadMetroConfig(cli.loadConfig());
|
|
18
15
|
// @ts-ignore - @types/metro is outdated and missing this attribute: https://facebook.github.io/metro/docs/configuration/#emptymodulepath
|
|
19
16
|
// Fix required when using yarn link to run a local version of the CLI in a mini
|
|
20
|
-
metroConfig.resolver.emptyModulePath =
|
|
17
|
+
metroConfig.resolver.emptyModulePath = path.join(metroConfig.projectRoot, 'node_modules', 'metro-runtime/src/modules/empty-module.js');
|
|
21
18
|
// @ts-ignore
|
|
22
19
|
// Fix required when using yarn link to run a local version of the CLI in a mini
|
|
23
|
-
metroConfig.transformer.asyncRequireModulePath =
|
|
24
|
-
|
|
20
|
+
metroConfig.transformer.asyncRequireModulePath = path.join(metroConfig.projectRoot, 'node_modules', 'metro-runtime/src/modules/asyncRequire');
|
|
21
|
+
injectMetroServerMiddleware(metroConfig);
|
|
22
|
+
const reporter = createMinisMetroReporter();
|
|
25
23
|
return {
|
|
26
24
|
...metroConfig,
|
|
27
|
-
reporter
|
|
25
|
+
reporter,
|
|
28
26
|
};
|
|
29
27
|
}
|
|
30
|
-
exports.getMetroConfig = getMetroConfig;
|
|
31
28
|
//# sourceMappingURL=metro-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metro-config.js","sourceRoot":"","sources":["../../../../../src/commands/dev/utils/metro/metro-config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"metro-config.js","sourceRoot":"","sources":["../../../../../src/commands/dev/utils/metro/metro-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAA;AACzC,OAAO,IAAI,MAAM,MAAM,CAAA;AAGvB,OAAO,EAAC,eAAe,EAAC,MAAM,0CAA0C,CAAA;AACxE,OAAO,GAAG,MAAM,6BAA6B,CAAA;AAE7C,OAAO,EAAC,wBAAwB,EAAC,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAC,2BAA2B,EAAC,MAAM,8BAA8B,CAAA;AAExE,gBAAgB;AAChB,wDAAwD;AACxD,uDAAuD;AACvD,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAC7C,oCAAoC,CACrC,CAAA;AAED,iIAAiI;AACjI,QAAQ,CAAC,YAAY,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,sDAAsD,CAAA;AAE9F,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAA;IAE3D,yIAAyI;IACzI,gFAAgF;IAChF,WAAW,CAAC,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAC9C,WAAW,CAAC,WAAW,EACvB,cAAc,EACd,2CAA2C,CAC5C,CAAA;IAED,aAAa;IACb,gFAAgF;IAChF,WAAW,CAAC,WAAW,CAAC,sBAAsB,GAAG,IAAI,CAAC,IAAI,CACxD,WAAW,CAAC,WAAW,EACvB,cAAc,EACd,wCAAwC,CACzC,CAAA;IAED,2BAA2B,CAAC,WAAW,CAAC,CAAA;IAExC,MAAM,QAAQ,GAAG,wBAAwB,EAAE,CAAA;IAE3C,OAAO;QACL,GAAG,WAAW;QACd,QAAQ;KACT,CAAA;AACH,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
declare const MetroTerminalReporter: typeof TerminalReporter.TerminalReporter;
|
|
1
|
+
import { TerminalReporter } from 'metro';
|
|
3
2
|
/**
|
|
4
3
|
* Custom metro reporter that customises the output to the terminal of minis.
|
|
5
4
|
*
|
|
@@ -7,8 +6,8 @@ declare const MetroTerminalReporter: typeof TerminalReporter.TerminalReporter;
|
|
|
7
6
|
* Default reporter: https://github.com/facebook/metro/blob/main/packages/metro/src/lib/TerminalReporter.js
|
|
8
7
|
* Expo example: https://github.com/expo/expo/blob/main/packages/%40expo/cli/src/start/server/metro/MetroTerminalReporter.ts
|
|
9
8
|
*/
|
|
10
|
-
declare class MinisMetroReporter extends
|
|
11
|
-
_log(event:
|
|
9
|
+
declare class MinisMetroReporter extends TerminalReporter {
|
|
10
|
+
_log(event: any): void;
|
|
12
11
|
}
|
|
13
12
|
export declare function createMinisMetroReporter(): MinisMetroReporter;
|
|
14
13
|
export {};
|
|
@@ -1,12 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.createMinisMetroReporter = void 0;
|
|
7
|
-
const TerminalReporter_1 = __importDefault(require("metro/src/lib/TerminalReporter"));
|
|
8
|
-
const metro_core_1 = require("metro-core");
|
|
9
|
-
const MetroTerminalReporter = TerminalReporter_1.default;
|
|
1
|
+
import { Terminal } from 'metro-core';
|
|
2
|
+
import { TerminalReporter } from 'metro';
|
|
10
3
|
/**
|
|
11
4
|
* Custom metro reporter that customises the output to the terminal of minis.
|
|
12
5
|
*
|
|
@@ -14,7 +7,7 @@ const MetroTerminalReporter = TerminalReporter_1.default;
|
|
|
14
7
|
* Default reporter: https://github.com/facebook/metro/blob/main/packages/metro/src/lib/TerminalReporter.js
|
|
15
8
|
* Expo example: https://github.com/expo/expo/blob/main/packages/%40expo/cli/src/start/server/metro/MetroTerminalReporter.ts
|
|
16
9
|
*/
|
|
17
|
-
class MinisMetroReporter extends
|
|
10
|
+
class MinisMetroReporter extends TerminalReporter {
|
|
18
11
|
_log(event) {
|
|
19
12
|
switch (event.type) {
|
|
20
13
|
case 'initialize_started':
|
|
@@ -27,8 +20,8 @@ class MinisMetroReporter extends MetroTerminalReporter {
|
|
|
27
20
|
super._log(event);
|
|
28
21
|
}
|
|
29
22
|
}
|
|
30
|
-
function createMinisMetroReporter() {
|
|
31
|
-
|
|
23
|
+
export function createMinisMetroReporter() {
|
|
24
|
+
// @ts-ignore
|
|
25
|
+
return new MinisMetroReporter(new Terminal(process.stdout));
|
|
32
26
|
}
|
|
33
|
-
exports.createMinisMetroReporter = createMinisMetroReporter;
|
|
34
27
|
//# sourceMappingURL=metro-reporter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metro-reporter.js","sourceRoot":"","sources":["../../../../../src/commands/dev/utils/metro/metro-reporter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"metro-reporter.js","sourceRoot":"","sources":["../../../../../src/commands/dev/utils/metro/metro-reporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAA;AACnC,OAAO,EAAC,gBAAgB,EAAC,MAAM,OAAO,CAAA;AAEtC;;;;;;GAMG;AACH,MAAM,kBAAmB,SAAQ,gBAAgB;IAC/C,IAAI,CAAC,KAAU;QACb,QAAQ,KAAK,CAAC,IAAI,EAAE;YAClB,KAAK,oBAAoB,CAAC;YAC1B,KAAK,mBAAmB,CAAC,CAAC;gBACxB,6CAA6C;gBAC7C,OAAM;aACP;SACF;QAED,aAAa;QACb,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACnB,CAAC;CACF;AAED,MAAM,UAAU,wBAAwB;IACtC,aAAa;IACb,OAAO,IAAI,kBAAkB,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;AAC7D,CAAC"}
|
|
@@ -4,3 +4,4 @@ import MetroConfig from 'metro-config';
|
|
|
4
4
|
* needed because of https://github.com/facebook/metro/issues/660
|
|
5
5
|
*/
|
|
6
6
|
export declare function injectMetroServerMiddleware(metroConfig: MetroConfig.ConfigT): void;
|
|
7
|
+
export declare const DEV_PANEL_BASE_URL = "http://localhost:8082/dev-panel";
|
|
@@ -1,19 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.injectMetroServerMiddleware = void 0;
|
|
7
|
-
const connect_1 = __importDefault(require("connect"));
|
|
8
|
-
const middleware_1 = require("../../../../dev-panel/middleware");
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import serve from 'serve-static';
|
|
3
|
+
import connect from 'connect';
|
|
9
4
|
/**
|
|
10
5
|
* mutates the received metro config param to inject a custom middleware.
|
|
11
6
|
* needed because of https://github.com/facebook/metro/issues/660
|
|
12
7
|
*/
|
|
13
|
-
function injectMetroServerMiddleware(metroConfig) {
|
|
14
|
-
const middleware = (
|
|
8
|
+
export function injectMetroServerMiddleware(metroConfig) {
|
|
9
|
+
const middleware = connect()
|
|
15
10
|
.use('/symbolicate', rawBodyMiddleware)
|
|
16
|
-
.use('/dev-panel',
|
|
11
|
+
.use('/dev-panel', devPanelMiddleware)
|
|
17
12
|
.use('/status', statusPageMiddleware);
|
|
18
13
|
const customEnhanceMiddleware = metroConfig.server.enhanceMiddleware;
|
|
19
14
|
// @ts-ignore
|
|
@@ -24,7 +19,6 @@ function injectMetroServerMiddleware(metroConfig) {
|
|
|
24
19
|
return middleware.use(metroMiddleware);
|
|
25
20
|
};
|
|
26
21
|
}
|
|
27
|
-
exports.injectMetroServerMiddleware = injectMetroServerMiddleware;
|
|
28
22
|
// reference https://github.com/react-native-community/cli/blob/main/packages/cli-server-api/src/rawBodyMiddleware.ts
|
|
29
23
|
function rawBodyMiddleware(req, _res, next) {
|
|
30
24
|
;
|
|
@@ -42,4 +36,9 @@ function rawBodyMiddleware(req, _res, next) {
|
|
|
42
36
|
function statusPageMiddleware(_req, res) {
|
|
43
37
|
res.end('packager-status:running');
|
|
44
38
|
}
|
|
39
|
+
function devPanelMiddleware(...args) {
|
|
40
|
+
const indexFilePath = path.join(process.cwd(), 'node_modules', '@shopify', 'shop-minis-cli', 'build', 'dev-panel');
|
|
41
|
+
return serve(indexFilePath)(...args);
|
|
42
|
+
}
|
|
43
|
+
export const DEV_PANEL_BASE_URL = `http://localhost:8082/dev-panel`;
|
|
45
44
|
//# sourceMappingURL=metro-server-middleware.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metro-server-middleware.js","sourceRoot":"","sources":["../../../../../src/commands/dev/utils/metro/metro-server-middleware.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"metro-server-middleware.js","sourceRoot":"","sources":["../../../../../src/commands/dev/utils/metro/metro-server-middleware.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,KAAK,MAAM,cAAc,CAAA;AAChC,OAAO,OAAO,MAAM,SAAS,CAAA;AAG7B;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CAAC,WAAgC;IAC1E,MAAM,UAAU,GAAG,OAAO,EAAE;SACzB,GAAG,CAAC,cAAc,EAAE,iBAAiB,CAAC;SACtC,GAAG,CAAC,YAAY,EAAE,kBAAkB,CAAC;SACrC,GAAG,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAA;IAEvC,MAAM,uBAAuB,GAAG,WAAW,CAAC,MAAM,CAAC,iBAAiB,CAAA;IAEpE,aAAa;IACb,WAAW,CAAC,MAAM,CAAC,iBAAiB,GAAG,CACrC,eAAoB,EACpB,MAAW,EACX,EAAE;QACF,IAAI,uBAAuB,EAAE;YAC3B,eAAe,GAAG,uBAAuB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA,CAAC,wCAAwC;SAC5G;QACD,OAAO,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IACxC,CAAC,CAAA;AACH,CAAC;AAED,qHAAqH;AACrH,SAAS,iBAAiB,CACxB,GAAyB,EACzB,IAAyB,EACzB,IAAyB;IAEzB,CAAC;IAAC,GAAgD,CAAC,OAAO,GAAG,EAAE,CAAA;IAC/D,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;IAEvB,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;QAC/B,CAAC;QAAC,GAAgD,CAAC,OAAO,IAAI,KAAK,CAAA;IACrE,CAAC,CAAC,CAAA;IAEF,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;QACjB,IAAI,EAAE,CAAA;IACR,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,4JAA4J;AAC5J,SAAS,oBAAoB,CAC3B,IAA0B,EAC1B,GAAwB;IAExB,GAAG,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;AACpC,CAAC;AAED,SAAS,kBAAkB,CACzB,GAAG,IAA4C;IAE/C,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAC7B,OAAO,CAAC,GAAG,EAAE,EACb,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,OAAO,EACP,WAAW,CACZ,CAAA;IACD,OAAO,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;AACtC,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,iCAAiC,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { DevCommandOptions } from '
|
|
2
|
-
export declare function runMetro(options?: DevCommandOptions): Promise<void>;
|
|
1
|
+
import type { DevCommandOptions } from '../../index.js';
|
|
2
|
+
export declare function runMetro(options?: Pick<DevCommandOptions, 'host' | 'resetCache'>): Promise<void>;
|
|
@@ -1,24 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.runMetro = void 0;
|
|
7
|
-
const metro_1 = __importDefault(require("metro"));
|
|
8
|
-
const metro_config_1 = require("./metro-config");
|
|
1
|
+
import Metro from 'metro';
|
|
2
|
+
import { getMetroConfig } from './metro-config.js';
|
|
9
3
|
const DEFAULT_OPTIONS = {
|
|
10
4
|
resetCache: false,
|
|
11
5
|
};
|
|
12
|
-
async function runMetro(options = DEFAULT_OPTIONS) {
|
|
6
|
+
export async function runMetro(options = DEFAULT_OPTIONS) {
|
|
13
7
|
const { host, ...metroOptions } = options;
|
|
14
8
|
const metroServerConfig = {
|
|
15
|
-
...(await
|
|
16
|
-
metroOptions,
|
|
9
|
+
...(await getMetroConfig()),
|
|
10
|
+
...metroOptions,
|
|
17
11
|
};
|
|
18
|
-
await
|
|
12
|
+
await Metro.runServer(metroServerConfig, { host });
|
|
19
13
|
if (host !== 'localhost') {
|
|
20
|
-
await
|
|
14
|
+
await Metro.runServer(metroServerConfig, { host: 'localhost' });
|
|
21
15
|
}
|
|
22
16
|
}
|
|
23
|
-
exports.runMetro = runMetro;
|
|
24
17
|
//# sourceMappingURL=metro-server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metro-server.js","sourceRoot":"","sources":["../../../../../src/commands/dev/utils/metro/metro-server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"metro-server.js","sourceRoot":"","sources":["../../../../../src/commands/dev/utils/metro/metro-server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAA;AAEhD,MAAM,eAAe,GAAG;IACtB,UAAU,EAAE,KAAK;CACT,CAAA;AAEV,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,UAA0D,eAAe;IAEzE,MAAM,EAAC,IAAI,EAAE,GAAG,YAAY,EAAC,GAAG,OAAO,CAAA;IACvC,MAAM,iBAAiB,GAAY;QACjC,GAAG,CAAC,MAAM,cAAc,EAAE,CAAC;QAC3B,GAAG,YAAY;KAChB,CAAA;IAED,MAAM,KAAK,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAC,IAAI,EAAC,CAAC,CAAA;IAEhD,IAAI,IAAI,KAAK,WAAW,EAAE;QACxB,MAAM,KAAK,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAC,IAAI,EAAE,WAAW,EAAC,CAAC,CAAA;KAC9D;AACH,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Platform } from './platform.js';
|
|
2
|
+
import { BinaryMetadata, BuildType } from './types.js';
|
|
3
|
+
export declare const CDN_ADDRESS = "http://34.160.57.53/";
|
|
4
|
+
export declare const GOOGLE_CLOUD_BUCKET_NAME = "minis_cli_app_builds";
|
|
5
|
+
export declare const metadataToBucketPath: (metadata: BinaryMetadata) => string;
|
|
6
|
+
/**
|
|
7
|
+
* Downloads a binary from the remote storage
|
|
8
|
+
* @returns Promise that resolves to the downloaded version
|
|
9
|
+
*/
|
|
10
|
+
export declare function downloadBinary(versionToDownload: BinaryMetadata, { onProgress, }?: {
|
|
11
|
+
/**
|
|
12
|
+
* Download progress callback
|
|
13
|
+
*/
|
|
14
|
+
onProgress?: (progress: number) => void;
|
|
15
|
+
}): Promise<BinaryMetadata>;
|
|
16
|
+
/**
|
|
17
|
+
* Returns the latest version that's present in the remote storage of binaries
|
|
18
|
+
* TODO: this won't handle a bucket that has more than 50 files.
|
|
19
|
+
*/
|
|
20
|
+
export declare function getLatestRemoteVersion(platform: Platform, type: BuildType): Promise<BinaryMetadata | null>;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { createWriteStream } from 'node:fs';
|
|
2
|
+
import { basename } from 'node:path';
|
|
3
|
+
import http from 'node:http';
|
|
4
|
+
import { Storage } from '@google-cloud/storage';
|
|
5
|
+
import { outputDebug } from '@shopify/cli-kit/node/output';
|
|
6
|
+
import { compare, parse } from 'semver';
|
|
7
|
+
import { PATHS } from '../../config.js';
|
|
8
|
+
import { isVersionAvailableLocally } from './binaries.js';
|
|
9
|
+
import { getLatestVersionFromFilesList, metadataToBinaryFileName, } from './version.js';
|
|
10
|
+
// TODO: set up domain and ssl certificate for cdn
|
|
11
|
+
// https://console.cloud.google.com/net-services/cdn/backendBucket/details/minis-app-builds-backend-bucket?project=arrive-167720
|
|
12
|
+
// https://console.cloud.google.com/storage/browser/minis_cli_app_builds
|
|
13
|
+
export const CDN_ADDRESS = 'http://34.160.57.53/';
|
|
14
|
+
export const GOOGLE_CLOUD_BUCKET_NAME = 'minis_cli_app_builds';
|
|
15
|
+
// Put bucket creation in to it's own function to make it easier to mock
|
|
16
|
+
const getBucket = () => {
|
|
17
|
+
return new Storage().bucket(GOOGLE_CLOUD_BUCKET_NAME);
|
|
18
|
+
};
|
|
19
|
+
export const metadataToBucketPath = (metadata) => `${metadata.version}/${metadataToBinaryFileName(metadata)}`;
|
|
20
|
+
/**
|
|
21
|
+
* Downloads a binary from the remote storage
|
|
22
|
+
* @returns Promise that resolves to the downloaded version
|
|
23
|
+
*/
|
|
24
|
+
export async function downloadBinary(versionToDownload, { onProgress, } = {}) {
|
|
25
|
+
outputDebug(`Downloading Shop app ${JSON.stringify(versionToDownload)}`);
|
|
26
|
+
const isVersionAlreadyDownloaded = await isVersionAvailableLocally(versionToDownload);
|
|
27
|
+
if (isVersionAlreadyDownloaded) {
|
|
28
|
+
outputDebug(`Shop app version already downloaded`);
|
|
29
|
+
onProgress?.(100);
|
|
30
|
+
return versionToDownload;
|
|
31
|
+
}
|
|
32
|
+
const localFileName = metadataToBinaryFileName(versionToDownload);
|
|
33
|
+
const remoteBucketPath = metadataToBucketPath(versionToDownload);
|
|
34
|
+
let fileSize = 0;
|
|
35
|
+
try {
|
|
36
|
+
const [metadata] = await getBucket().file(remoteBucketPath).getMetadata();
|
|
37
|
+
fileSize = parseInt(metadata.size, 10);
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
throw new Error(`Binary for version ${versionToDownload.version}+${versionToDownload.build} not found`);
|
|
41
|
+
}
|
|
42
|
+
return new Promise((resolve, reject) => {
|
|
43
|
+
const writeStream = createWriteStream(`${PATHS.CACHE_DIR}/${localFileName}`);
|
|
44
|
+
const progressInterval = setInterval(() => {
|
|
45
|
+
const progress = Math.round((writeStream.bytesWritten / fileSize) * 100);
|
|
46
|
+
onProgress?.(progress);
|
|
47
|
+
}, 200);
|
|
48
|
+
http.get(`${CDN_ADDRESS}${remoteBucketPath}`, cdnResponse => {
|
|
49
|
+
cdnResponse.pipe(writeStream);
|
|
50
|
+
writeStream.on('finish', () => {
|
|
51
|
+
writeStream.close();
|
|
52
|
+
outputDebug(`Shop app downloaded complete`);
|
|
53
|
+
onProgress?.(100);
|
|
54
|
+
resolve(versionToDownload);
|
|
55
|
+
clearInterval(progressInterval);
|
|
56
|
+
});
|
|
57
|
+
writeStream.on('error', err => {
|
|
58
|
+
outputDebug(`Shop app downloaded failed`);
|
|
59
|
+
reject(err);
|
|
60
|
+
clearInterval(progressInterval);
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Returns the latest version that's present in the remote storage of binaries
|
|
67
|
+
* TODO: this won't handle a bucket that has more than 50 files.
|
|
68
|
+
*/
|
|
69
|
+
export async function getLatestRemoteVersion(platform, type) {
|
|
70
|
+
const versions = await getRemoteVersions();
|
|
71
|
+
// newest first
|
|
72
|
+
const sortedVersions = versions.sort(compare).reverse();
|
|
73
|
+
// iterate over versions, in case newest version(s) don't contain builds for the given platform/type
|
|
74
|
+
for (const version of sortedVersions) {
|
|
75
|
+
const prefix = `${version}/`;
|
|
76
|
+
const [filesMetadata] = await getBucket().getFiles({
|
|
77
|
+
prefix,
|
|
78
|
+
});
|
|
79
|
+
const fileNames = filesMetadata
|
|
80
|
+
.map(file => file.name)
|
|
81
|
+
// extract filename from GCS bucket path
|
|
82
|
+
.map(path => basename(path));
|
|
83
|
+
const latestVersion = getLatestVersionFromFilesList(fileNames, platform, type);
|
|
84
|
+
if (latestVersion != null) {
|
|
85
|
+
return latestVersion;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Returns a list of all the versions that are present in the remote bucket,
|
|
92
|
+
* regardless of platform or build type
|
|
93
|
+
*/
|
|
94
|
+
async function getRemoteVersions() {
|
|
95
|
+
// GCS doesn't have a concept of 'folders', so we just list prefixes (which are the version numbers)
|
|
96
|
+
// and remove the trailing delimiter ('/')
|
|
97
|
+
let query = {
|
|
98
|
+
delimiter: '/',
|
|
99
|
+
// intentionally set to false to keep `apiResponse`
|
|
100
|
+
// see: https://github.com/googleapis/google-cloud-node/issues/2594
|
|
101
|
+
autoPaginate: false,
|
|
102
|
+
};
|
|
103
|
+
const prefixes = [];
|
|
104
|
+
// loop to handle pagination
|
|
105
|
+
do {
|
|
106
|
+
const [_files, nextQuery, apiResponse] = await getBucket().getFiles(query);
|
|
107
|
+
const newPrefixes = apiResponse.prefixes ?? [];
|
|
108
|
+
prefixes.push(...newPrefixes);
|
|
109
|
+
query = nextQuery;
|
|
110
|
+
} while (query != null);
|
|
111
|
+
return (prefixes
|
|
112
|
+
// remove trailing delimiter
|
|
113
|
+
.map(prefix => prefix.replace(/\/$/, ''))
|
|
114
|
+
// validate that we only have 'x.y.z', not 'x.y.z-rc.1' or 'x.y.z+123'
|
|
115
|
+
.filter(prefix => {
|
|
116
|
+
const parsed = parse(prefix);
|
|
117
|
+
return (parsed != null &&
|
|
118
|
+
parsed.build.length === 0 &&
|
|
119
|
+
parsed.prerelease.length === 0);
|
|
120
|
+
}));
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=network.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network.js","sourceRoot":"","sources":["../../../../src/commands/dev/utils/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,SAAS,CAAA;AACzC,OAAO,EAAC,QAAQ,EAAC,MAAM,WAAW,CAAA;AAClC,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAkB,OAAO,EAAC,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAA;AACxD,OAAO,EAAC,OAAO,EAAE,KAAK,EAAC,MAAM,QAAQ,CAAA;AAErC,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAA;AAErC,OAAO,EAAC,yBAAyB,EAAC,MAAM,eAAe,CAAA;AAGvD,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,cAAc,CAAA;AAErB,kDAAkD;AAClD,gIAAgI;AAChI,wEAAwE;AACxE,MAAM,CAAC,MAAM,WAAW,GAAG,sBAAsB,CAAA;AACjD,MAAM,CAAC,MAAM,wBAAwB,GAAG,sBAAsB,CAAA;AAE9D,wEAAwE;AACxE,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,OAAO,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAA;AACvD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,QAAwB,EAAE,EAAE,CAC/D,GAAG,QAAQ,CAAC,OAAO,IAAI,wBAAwB,CAAC,QAAQ,CAAC,EAAE,CAAA;AAE7D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,iBAAiC,EACjC,EACE,UAAU,MAMR,EAAE;IAEN,WAAW,CAAC,wBAAwB,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAA;IAExE,MAAM,0BAA0B,GAAG,MAAM,yBAAyB,CAChE,iBAAiB,CAClB,CAAA;IAED,IAAI,0BAA0B,EAAE;QAC9B,WAAW,CAAC,qCAAqC,CAAC,CAAA;QAClD,UAAU,EAAE,CAAC,GAAG,CAAC,CAAA;QACjB,OAAO,iBAAiB,CAAA;KACzB;IAED,MAAM,aAAa,GAAG,wBAAwB,CAAC,iBAAiB,CAAC,CAAA;IACjE,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,CAAA;IAEhE,IAAI,QAAQ,GAAG,CAAC,CAAA;IAChB,IAAI;QACF,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,SAAS,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAA;QACzE,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;KACvC;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAI,KAAK,CACb,sBAAsB,iBAAiB,CAAC,OAAO,IAAI,iBAAiB,CAAC,KAAK,YAAY,CACvF,CAAA;KACF;IAED,OAAO,IAAI,OAAO,CAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrD,MAAM,WAAW,GAAG,iBAAiB,CAAC,GAAG,KAAK,CAAC,SAAS,IAAI,aAAa,EAAE,CAAC,CAAA;QAE5E,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE;YACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,YAAY,GAAG,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAA;YACxE,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAA;QACxB,CAAC,EAAE,GAAG,CAAC,CAAA;QAEP,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,GAAG,gBAAgB,EAAE,EAAE,WAAW,CAAC,EAAE;YAC1D,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YAE7B,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;gBAC5B,WAAW,CAAC,KAAK,EAAE,CAAA;gBACnB,WAAW,CAAC,8BAA8B,CAAC,CAAA;gBAC3C,UAAU,EAAE,CAAC,GAAG,CAAC,CAAA;gBACjB,OAAO,CAAC,iBAAiB,CAAC,CAAA;gBAC1B,aAAa,CAAC,gBAAgB,CAAC,CAAA;YACjC,CAAC,CAAC,CAAA;YAEF,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;gBAC5B,WAAW,CAAC,4BAA4B,CAAC,CAAA;gBACzC,MAAM,CAAC,GAAG,CAAC,CAAA;gBACX,aAAa,CAAC,gBAAgB,CAAC,CAAA;YACjC,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,QAAkB,EAClB,IAAe;IAEf,MAAM,QAAQ,GAAG,MAAM,iBAAiB,EAAE,CAAA;IAE1C,eAAe;IACf,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAA;IAEvD,oGAAoG;IACpG,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE;QACpC,MAAM,MAAM,GAAG,GAAG,OAAO,GAAG,CAAA;QAE5B,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,SAAS,EAAE,CAAC,QAAQ,CAAC;YACjD,MAAM;SACP,CAAC,CAAA;QAEF,MAAM,SAAS,GAAG,aAAa;aAC5B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;YAEvB,wCAAwC;aACvC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;QAE9B,MAAM,aAAa,GAAG,6BAA6B,CACjD,SAAS,EACT,QAAQ,EACR,IAAI,CACL,CAAA;QAED,IAAI,aAAa,IAAI,IAAI,EAAE;YACzB,OAAO,aAAa,CAAA;SACrB;KACF;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,iBAAiB;IAC9B,oGAAoG;IACpG,0CAA0C;IAC1C,IAAI,KAAK,GAAoB;QAC3B,SAAS,EAAE,GAAG;QAEd,mDAAmD;QACnD,mEAAmE;QACnE,YAAY,EAAE,KAAK;KACpB,CAAA;IAED,MAAM,QAAQ,GAAa,EAAE,CAAA;IAE7B,4BAA4B;IAC5B,GAAG;QACD,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,GAAG,MAAM,SAAS,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAE1E,MAAM,WAAW,GAAI,WAAmC,CAAC,QAAQ,IAAI,EAAE,CAAA;QACvE,QAAQ,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAA;QAE7B,KAAK,GAAG,SAAS,CAAA;KAClB,QAAQ,KAAK,IAAI,IAAI,EAAC;IAEvB,OAAO,CACL,QAAQ;QACN,4BAA4B;SAC3B,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAEzC,sEAAsE;SACrE,MAAM,CAAC,MAAM,CAAC,EAAE;QACf,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAA;QAE5B,OAAO,CACL,MAAM,IAAI,IAAI;YACd,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YACzB,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAC/B,CAAA;IACH,CAAC,CAAC,CACL,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare enum Platform {
|
|
2
|
+
IOS = "ios",
|
|
3
|
+
Android = "android"
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Returns the platform for a given file extension.
|
|
7
|
+
*/
|
|
8
|
+
export declare function getPlatformForBinaryFileExtension(extension: string): Platform;
|
|
9
|
+
/**
|
|
10
|
+
* Returns the platform config for a given platform.
|
|
11
|
+
*/
|
|
12
|
+
export declare function getPlatformConfig(platform: Platform | PlatformConfig): Readonly<PlatformConfig>;
|
|
13
|
+
interface PlatformConfig {
|
|
14
|
+
platform: Platform;
|
|
15
|
+
name: string;
|
|
16
|
+
extension: string;
|
|
17
|
+
}
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export var Platform;
|
|
2
|
+
(function (Platform) {
|
|
3
|
+
Platform["IOS"] = "ios";
|
|
4
|
+
Platform["Android"] = "android";
|
|
5
|
+
})(Platform || (Platform = {}));
|
|
6
|
+
/**
|
|
7
|
+
* Returns the platform for a given file extension.
|
|
8
|
+
*/
|
|
9
|
+
export function getPlatformForBinaryFileExtension(extension) {
|
|
10
|
+
const platform = Object.values(Platform).find(aPlatform => platformConfigs[aPlatform].extension === extension);
|
|
11
|
+
if (platform == null) {
|
|
12
|
+
throw new Error(`Invalid extension: ${extension}`);
|
|
13
|
+
}
|
|
14
|
+
return platform;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Returns the platform config for a given platform.
|
|
18
|
+
*/
|
|
19
|
+
export function getPlatformConfig(platform) {
|
|
20
|
+
if (typeof platform === 'object') {
|
|
21
|
+
return platform;
|
|
22
|
+
}
|
|
23
|
+
const config = platformConfigs[platform];
|
|
24
|
+
if (config == null) {
|
|
25
|
+
throw new Error(`Invalid platform: ${platform}`);
|
|
26
|
+
}
|
|
27
|
+
return Object.freeze(config);
|
|
28
|
+
}
|
|
29
|
+
const platformConfigs = {
|
|
30
|
+
ios: {
|
|
31
|
+
platform: Platform.IOS,
|
|
32
|
+
name: 'iOS',
|
|
33
|
+
extension: 'app.zip',
|
|
34
|
+
},
|
|
35
|
+
android: {
|
|
36
|
+
platform: Platform.Android,
|
|
37
|
+
name: 'Android',
|
|
38
|
+
extension: 'apk',
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=platform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../../../../src/commands/dev/utils/platform.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,uBAAW,CAAA;IACX,+BAAmB,CAAA;AACrB,CAAC,EAHW,QAAQ,KAAR,QAAQ,QAGnB;AAED;;GAEG;AACH,MAAM,UAAU,iCAAiC,CAAC,SAAiB;IACjE,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC3C,SAAS,CAAC,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,SAAS,KAAK,SAAS,CAChE,CAAA;IAED,IAAI,QAAQ,IAAI,IAAI,EAAE;QACpB,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAA;KACnD;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAmC;IACnE,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;QAChC,OAAO,QAAQ,CAAA;KAChB;IAED,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAA;IAExC,IAAI,MAAM,IAAI,IAAI,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAA;KACjD;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AAC9B,CAAC;AAQD,MAAM,eAAe,GAAqC;IACxD,GAAG,EAAE;QACH,QAAQ,EAAE,QAAQ,CAAC,GAAG;QACtB,IAAI,EAAE,KAAK;QACX,SAAS,EAAE,SAAS;KACrB;IACD,OAAO,EAAE;QACP,QAAQ,EAAE,QAAQ,CAAC,OAAO;QAC1B,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,KAAK;KACjB;CACF,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const promptBinaryUpgrade: () => Promise<boolean>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import prompts from 'prompts';
|
|
2
|
+
export const promptBinaryUpgrade = async () => {
|
|
3
|
+
// prompt to download the latest version
|
|
4
|
+
const { wantsUpdate } = await prompts({
|
|
5
|
+
type: 'confirm',
|
|
6
|
+
initial: true,
|
|
7
|
+
name: 'wantsUpdate',
|
|
8
|
+
message: "There's a new version of Shop available. Do you want to upgrade?",
|
|
9
|
+
});
|
|
10
|
+
return Boolean(wantsUpdate);
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=prompt-binary-upgrade.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-binary-upgrade.js","sourceRoot":"","sources":["../../../../src/commands/dev/utils/prompt-binary-upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAA;AAE7B,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,IAAI,EAAE;IAC5C,wCAAwC;IACxC,MAAM,EAAC,WAAW,EAAC,GAAG,MAAM,OAAO,CAAC;QAClC,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,kEAAkE;KAC5E,CAAC,CAAA;IAEF,OAAO,OAAO,CAAC,WAAW,CAAC,CAAA;AAC7B,CAAC,CAAA"}
|
|
@@ -1,12 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.printQRCode = void 0;
|
|
7
|
-
const qrcode_terminal_1 = __importDefault(require("qrcode-terminal"));
|
|
8
|
-
async function printQRCode(content) {
|
|
9
|
-
qrcode_terminal_1.default.generate(content, { small: true }, (code) => console.log(code));
|
|
1
|
+
import qrcodeTerminal from 'qrcode-terminal';
|
|
2
|
+
export async function printQRCode(content) {
|
|
3
|
+
qrcodeTerminal.generate(content, { small: true }, (code) => console.log(code));
|
|
10
4
|
}
|
|
11
|
-
exports.printQRCode = printQRCode;
|
|
12
5
|
//# sourceMappingURL=qr-code.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qr-code.js","sourceRoot":"","sources":["../../../../src/commands/dev/utils/qr-code.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"qr-code.js","sourceRoot":"","sources":["../../../../src/commands/dev/utils/qr-code.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,iBAAiB,CAAA;AAE5C,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAe;IAC/C,cAAc,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAC,KAAK,EAAE,IAAI,EAAC,EAAE,CAAC,IAAY,EAAE,EAAE,CAC/D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAClB,CAAA;AACH,CAAC"}
|
|
@@ -12,8 +12,11 @@ interface EnhancedSimCtlListDevice extends SimCtlListDevice {
|
|
|
12
12
|
osVersion: string;
|
|
13
13
|
}
|
|
14
14
|
export declare function promptForSimulator(): Promise<EnhancedSimCtlListDevice | null | undefined>;
|
|
15
|
-
export declare function getInstalledShopVersion(udid: string): Promise<
|
|
15
|
+
export declare function getInstalledShopVersion(udid: string): Promise<{
|
|
16
|
+
version: string;
|
|
17
|
+
build: string;
|
|
18
|
+
} | null>;
|
|
16
19
|
export declare function bootSimulator(udid: string): Promise<void>;
|
|
17
|
-
export declare function installShopInSimulator(udid: string,
|
|
20
|
+
export declare function installShopInSimulator(udid: string, fileName: string): Promise<void>;
|
|
18
21
|
export declare function deeplinkToSimulator(udid: string, deeplink: string): Promise<void>;
|
|
19
22
|
export {};
|