@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.
Files changed (362) hide show
  1. package/.eslintrc.cjs +78 -0
  2. package/.vscode/extensions.json +3 -0
  3. package/.vscode/launch.json +29 -0
  4. package/.vscode/settings.json +8 -0
  5. package/.vscode/shop-minis-cli.code-workspace +8 -0
  6. package/build/commands/cancel-submission/cancel-submission.d.ts +1 -0
  7. package/build/commands/cancel-submission/cancel-submission.js +57 -0
  8. package/build/commands/cancel-submission/cancel-submission.js.map +1 -0
  9. package/build/commands/cancel-submission/index.d.ts +2 -0
  10. package/build/commands/cancel-submission/index.js +18 -0
  11. package/build/commands/cancel-submission/index.js.map +1 -0
  12. package/build/commands/cancel-submission/types.d.ts +3 -0
  13. package/build/commands/cancel-submission/types.js +2 -0
  14. package/build/commands/cancel-submission/types.js.map +1 -0
  15. package/build/commands/check-submission/index.d.ts +2 -0
  16. package/build/commands/check-submission/index.js +55 -0
  17. package/build/commands/check-submission/index.js.map +1 -0
  18. package/build/commands/check-submission/types.d.ts +3 -0
  19. package/build/commands/check-submission/types.js +2 -0
  20. package/build/commands/check-submission/types.js.map +1 -0
  21. package/build/commands/codemod/index.d.ts +3 -0
  22. package/build/commands/codemod/index.js +47 -0
  23. package/build/commands/codemod/index.js.map +1 -0
  24. package/build/commands/codemod/releases/index.d.ts +7 -0
  25. package/build/commands/codemod/releases/index.js +58 -0
  26. package/build/commands/codemod/releases/index.js.map +1 -0
  27. package/build/commands/codemod/releases/types.d.ts +9 -0
  28. package/build/commands/codemod/releases/types.js +2 -0
  29. package/build/commands/codemod/releases/types.js.map +1 -0
  30. package/build/commands/codemod/releases/v0-0-42/index.d.ts +3 -0
  31. package/build/commands/codemod/releases/v0-0-42/index.js +46 -0
  32. package/build/commands/codemod/releases/v0-0-42/index.js.map +1 -0
  33. package/build/commands/codemod/releases/v0-0-42/reset-files.d.ts +7 -0
  34. package/build/commands/codemod/releases/v0-0-42/reset-files.js +83 -0
  35. package/build/commands/codemod/releases/v0-0-42/reset-files.js.map +1 -0
  36. package/build/commands/codemod/releases/v0-0-43.d.ts +3 -0
  37. package/build/commands/codemod/releases/v0-0-43.js +32 -0
  38. package/build/commands/codemod/releases/v0-0-43.js.map +1 -0
  39. package/build/commands/codemod/releases/v0-0-44.d.ts +3 -0
  40. package/build/commands/codemod/releases/v0-0-44.js +214 -0
  41. package/build/commands/codemod/releases/v0-0-44.js.map +1 -0
  42. package/build/commands/codemod/releases/v0-0-45.d.ts +3 -0
  43. package/build/commands/codemod/releases/v0-0-45.js +23 -0
  44. package/build/commands/codemod/releases/v0-0-45.js.map +1 -0
  45. package/build/commands/codemod/releases/v0-0-50.d.ts +3 -0
  46. package/build/commands/codemod/releases/v0-0-50.js +34 -0
  47. package/build/commands/codemod/releases/v0-0-50.js.map +1 -0
  48. package/build/commands/codemod/releases/v0-0-54.d.ts +3 -0
  49. package/build/commands/codemod/releases/v0-0-54.js +70 -0
  50. package/build/commands/codemod/releases/v0-0-54.js.map +1 -0
  51. package/build/commands/codemod/releases/v0-0-56.d.ts +3 -0
  52. package/build/commands/codemod/releases/v0-0-56.js +48 -0
  53. package/build/commands/codemod/releases/v0-0-56.js.map +1 -0
  54. package/build/commands/codemod/releases/v0-0-57.d.ts +3 -0
  55. package/build/commands/codemod/releases/v0-0-57.js +41 -0
  56. package/build/commands/codemod/releases/v0-0-57.js.map +1 -0
  57. package/build/commands/codemod/releases/v0-0-58.d.ts +3 -0
  58. package/build/commands/codemod/releases/v0-0-58.js +68 -0
  59. package/build/commands/codemod/releases/v0-0-58.js.map +1 -0
  60. package/build/commands/codemod/releases/v0-0-61.d.ts +3 -0
  61. package/build/commands/codemod/releases/v0-0-61.js +30 -0
  62. package/build/commands/codemod/releases/v0-0-61.js.map +1 -0
  63. package/build/commands/codemod/releases/v0-0-63.d.ts +3 -0
  64. package/build/commands/codemod/releases/v0-0-63.js +42 -0
  65. package/build/commands/codemod/releases/v0-0-63.js.map +1 -0
  66. package/build/commands/codemod/releases/v0-0-64.d.ts +3 -0
  67. package/build/commands/codemod/releases/v0-0-64.js +47 -0
  68. package/build/commands/codemod/releases/v0-0-64.js.map +1 -0
  69. package/build/commands/codemod/releases/v0-0-75.d.ts +3 -0
  70. package/build/commands/codemod/releases/v0-0-75.js +30 -0
  71. package/build/commands/codemod/releases/v0-0-75.js.map +1 -0
  72. package/build/commands/codemod/releases/v0-0-76.d.ts +3 -0
  73. package/build/commands/codemod/releases/v0-0-76.js +32 -0
  74. package/build/commands/codemod/releases/v0-0-76.js.map +1 -0
  75. package/build/commands/codemod/releases/v0-0-77.d.ts +3 -0
  76. package/build/commands/codemod/releases/v0-0-77.js +39 -0
  77. package/build/commands/codemod/releases/v0-0-77.js.map +1 -0
  78. package/build/commands/codemod/releases/v0-0-79.d.ts +3 -0
  79. package/build/commands/codemod/releases/v0-0-79.js +35 -0
  80. package/build/commands/codemod/releases/v0-0-79.js.map +1 -0
  81. package/build/commands/config.d.ts +14 -0
  82. package/build/commands/config.js +42 -0
  83. package/build/commands/config.js.map +1 -0
  84. package/build/commands/create-mini/index.js +84 -68
  85. package/build/commands/create-mini/index.js.map +1 -1
  86. package/build/commands/create-mini/utils/template-app.d.ts +1 -1
  87. package/build/commands/create-mini/utils/template-app.js +38 -38
  88. package/build/commands/create-mini/utils/template-app.js.map +1 -1
  89. package/build/commands/dev/index.d.ts +3 -0
  90. package/build/commands/dev/index.js +51 -22
  91. package/build/commands/dev/index.js.map +1 -1
  92. package/build/commands/dev/utils/android.d.ts +6 -4
  93. package/build/commands/dev/utils/android.js +55 -67
  94. package/build/commands/dev/utils/android.js.map +1 -1
  95. package/build/commands/dev/utils/binaries.d.ts +2 -80
  96. package/build/commands/dev/utils/binaries.js +10 -166
  97. package/build/commands/dev/utils/binaries.js.map +1 -1
  98. package/build/commands/dev/utils/build-type.d.ts +2 -0
  99. package/build/commands/dev/utils/build-type.js +14 -0
  100. package/build/commands/dev/utils/build-type.js.map +1 -0
  101. package/build/commands/dev/utils/deeplink.d.ts +3 -3
  102. package/build/commands/dev/utils/deeplink.js +13 -18
  103. package/build/commands/dev/utils/deeplink.js.map +1 -1
  104. package/build/commands/dev/utils/interactive-terminal.d.ts +4 -2
  105. package/build/commands/dev/utils/interactive-terminal.js +66 -107
  106. package/build/commands/dev/utils/interactive-terminal.js.map +1 -1
  107. package/build/commands/dev/utils/metro/metro-config.js +17 -20
  108. package/build/commands/dev/utils/metro/metro-config.js.map +1 -1
  109. package/build/commands/dev/utils/metro/metro-reporter.d.ts +3 -4
  110. package/build/commands/dev/utils/metro/metro-reporter.js +6 -13
  111. package/build/commands/dev/utils/metro/metro-reporter.js.map +1 -1
  112. package/build/commands/dev/utils/metro/metro-server-middleware.d.ts +1 -0
  113. package/build/commands/dev/utils/metro/metro-server-middleware.js +11 -12
  114. package/build/commands/dev/utils/metro/metro-server-middleware.js.map +1 -1
  115. package/build/commands/dev/utils/metro/metro-server.d.ts +2 -2
  116. package/build/commands/dev/utils/metro/metro-server.js +7 -14
  117. package/build/commands/dev/utils/metro/metro-server.js.map +1 -1
  118. package/build/commands/dev/utils/network.d.ts +20 -0
  119. package/build/commands/dev/utils/network.js +122 -0
  120. package/build/commands/dev/utils/network.js.map +1 -0
  121. package/build/commands/dev/utils/platform.d.ts +18 -0
  122. package/build/commands/dev/utils/platform.js +41 -0
  123. package/build/commands/dev/utils/platform.js.map +1 -0
  124. package/build/commands/dev/utils/prompt-binary-upgrade.d.ts +1 -0
  125. package/build/commands/dev/utils/prompt-binary-upgrade.js +12 -0
  126. package/build/commands/dev/utils/prompt-binary-upgrade.js.map +1 -0
  127. package/build/commands/dev/utils/qr-code.js +3 -10
  128. package/build/commands/dev/utils/qr-code.js.map +1 -1
  129. package/build/commands/dev/utils/simulator.d.ts +5 -2
  130. package/build/commands/dev/utils/simulator.js +43 -37
  131. package/build/commands/dev/utils/simulator.js.map +1 -1
  132. package/build/commands/dev/utils/start-app/config.d.ts +5 -0
  133. package/build/commands/dev/utils/start-app/config.js +25 -0
  134. package/build/commands/dev/utils/start-app/config.js.map +1 -0
  135. package/build/commands/dev/utils/start-app/start-app-with-options.d.ts +2 -0
  136. package/build/commands/dev/utils/start-app/start-app-with-options.js +94 -0
  137. package/build/commands/dev/utils/start-app/start-app-with-options.js.map +1 -0
  138. package/build/commands/dev/utils/start-app/start-app.d.ts +2 -0
  139. package/build/commands/dev/utils/start-app/start-app.js +10 -0
  140. package/build/commands/dev/utils/start-app/start-app.js.map +1 -0
  141. package/build/commands/dev/utils/start-app/types.d.ts +20 -0
  142. package/build/commands/dev/utils/start-app/types.js +2 -0
  143. package/build/commands/dev/utils/start-app/types.js.map +1 -0
  144. package/build/commands/dev/utils/types.d.ts +24 -0
  145. package/build/commands/dev/utils/types.js +7 -0
  146. package/build/commands/dev/utils/types.js.map +1 -0
  147. package/build/commands/dev/utils/version.d.ts +64 -0
  148. package/build/commands/dev/utils/version.js +101 -0
  149. package/build/commands/dev/utils/version.js.map +1 -0
  150. package/build/commands/dev/utils/with-retries.js +1 -5
  151. package/build/commands/dev/utils/with-retries.js.map +1 -1
  152. package/build/commands/doctor/index.d.ts +6 -0
  153. package/build/commands/doctor/index.js +21 -0
  154. package/build/commands/doctor/index.js.map +1 -0
  155. package/build/commands/doctor/utils/diagnose-dependencies.d.ts +7 -0
  156. package/build/commands/doctor/utils/diagnose-dependencies.js +108 -0
  157. package/build/commands/doctor/utils/diagnose-dependencies.js.map +1 -0
  158. package/build/commands/generate-graphql-types/index.d.ts +1 -0
  159. package/build/commands/generate-graphql-types/index.js +43 -27
  160. package/build/commands/generate-graphql-types/index.js.map +1 -1
  161. package/build/commands/info/index.d.ts +3 -0
  162. package/build/commands/info/index.js +42 -0
  163. package/build/commands/info/index.js.map +1 -0
  164. package/build/commands/setup/index.d.ts +2 -0
  165. package/build/commands/setup/index.js +81 -0
  166. package/build/commands/setup/index.js.map +1 -0
  167. package/build/commands/submit/config.d.ts +9 -0
  168. package/build/commands/submit/config.js +18 -0
  169. package/build/commands/submit/config.js.map +1 -0
  170. package/build/commands/submit/errors.d.ts +19 -0
  171. package/build/commands/submit/errors.js +87 -0
  172. package/build/commands/submit/errors.js.map +1 -0
  173. package/build/commands/submit/gcs.d.ts +6 -0
  174. package/build/commands/submit/gcs.js +10 -0
  175. package/build/commands/submit/gcs.js.map +1 -0
  176. package/build/commands/submit/index.d.ts +2 -0
  177. package/build/commands/submit/index.js +25 -0
  178. package/build/commands/submit/index.js.map +1 -0
  179. package/build/commands/submit/submit.d.ts +5 -0
  180. package/build/commands/submit/submit.js +222 -0
  181. package/build/commands/submit/submit.js.map +1 -0
  182. package/build/commands/submit/tasks.d.ts +37 -0
  183. package/build/commands/submit/tasks.js +91 -0
  184. package/build/commands/submit/tasks.js.map +1 -0
  185. package/build/commands/submit/types.d.ts +14 -0
  186. package/build/commands/submit/types.js +2 -0
  187. package/build/commands/submit/types.js.map +1 -0
  188. package/build/commands/submit/utils/assert-core-dependencies-version.d.ts +1 -0
  189. package/build/commands/submit/utils/assert-core-dependencies-version.js +58 -0
  190. package/build/commands/submit/utils/assert-core-dependencies-version.js.map +1 -0
  191. package/build/commands/submit/utils/request-entry-point-params.d.ts +1 -0
  192. package/build/commands/submit/utils/request-entry-point-params.js +41 -0
  193. package/build/commands/submit/utils/request-entry-point-params.js.map +1 -0
  194. package/build/commands/submit/validation.d.ts +1 -0
  195. package/build/commands/submit/validation.js +11 -0
  196. package/build/commands/submit/validation.js.map +1 -0
  197. package/build/commands/upgrade/index.d.ts +13 -0
  198. package/build/commands/upgrade/index.js +53 -0
  199. package/build/commands/upgrade/index.js.map +1 -0
  200. package/build/commands/upgrade/utils/cli.d.ts +1 -0
  201. package/build/commands/upgrade/utils/cli.js +15 -0
  202. package/build/commands/upgrade/utils/cli.js.map +1 -0
  203. package/build/commands/validate-manifest/index.d.ts +3 -0
  204. package/build/commands/validate-manifest/index.js +29 -0
  205. package/build/commands/validate-manifest/index.js.map +1 -0
  206. package/build/data/accept-invitation.d.ts +4 -0
  207. package/build/data/accept-invitation.js +16 -0
  208. package/build/data/accept-invitation.js.map +1 -0
  209. package/build/data/cancel-submission.d.ts +22 -0
  210. package/build/data/cancel-submission.js +26 -0
  211. package/build/data/cancel-submission.js.map +1 -0
  212. package/build/data/create-submission.d.ts +20 -0
  213. package/build/data/create-submission.js +27 -0
  214. package/build/data/create-submission.js.map +1 -0
  215. package/build/data/create-upload.d.ts +21 -0
  216. package/build/data/create-upload.js +40 -0
  217. package/build/data/create-upload.js.map +1 -0
  218. package/build/data/get-submissions.d.ts +27 -0
  219. package/build/data/get-submissions.js +33 -0
  220. package/build/data/get-submissions.js.map +1 -0
  221. package/build/data/gql-client.d.ts +8 -0
  222. package/build/data/gql-client.js +9 -0
  223. package/build/data/gql-client.js.map +1 -0
  224. package/build/data/mini.d.ts +5 -0
  225. package/build/data/mini.js +14 -0
  226. package/build/data/mini.js.map +1 -0
  227. package/build/data/types/autogenerated/shop-minis-admin-api/fragment-masking.d.ts +13 -0
  228. package/build/data/types/autogenerated/shop-minis-admin-api/fragment-masking.js +7 -0
  229. package/build/data/types/autogenerated/shop-minis-admin-api/fragment-masking.js.map +1 -0
  230. package/build/data/types/autogenerated/shop-minis-admin-api/gql.d.ts +75 -0
  231. package/build/data/types/autogenerated/shop-minis-admin-api/gql.js +24 -0
  232. package/build/data/types/autogenerated/shop-minis-admin-api/gql.js.map +1 -0
  233. package/build/data/types/autogenerated/shop-minis-admin-api/graphql.d.ts +1570 -0
  234. package/build/data/types/autogenerated/shop-minis-admin-api/graphql.js +1062 -0
  235. package/build/data/types/autogenerated/shop-minis-admin-api/graphql.js.map +1 -0
  236. package/build/data/types/autogenerated/shop-minis-admin-api/index.d.ts +2 -0
  237. package/build/data/types/autogenerated/shop-minis-admin-api/index.js +3 -0
  238. package/build/data/types/autogenerated/shop-minis-admin-api/index.js.map +1 -0
  239. package/build/dev-panel/asset-manifest.json +6 -9
  240. package/build/dev-panel/index.html +1 -1
  241. package/build/dev-panel/static/css/{main.31436fe3.css → main.7f1ee407.css} +2 -2
  242. package/build/dev-panel/static/css/main.7f1ee407.css.map +1 -0
  243. package/build/dev-panel/static/js/{main.27f47095.js → main.6625699c.js} +3 -3
  244. package/build/dev-panel/static/js/main.6625699c.js.map +1 -0
  245. package/build/index.d.ts +1 -1
  246. package/build/index.js +30 -15
  247. package/build/index.js.map +1 -1
  248. package/build/schemas/manifest.schema.json +198 -0
  249. package/build/utils/archive.d.ts +30 -0
  250. package/build/utils/archive.js +38 -0
  251. package/build/utils/archive.js.map +1 -0
  252. package/build/utils/common-tasks.d.ts +1 -0
  253. package/build/utils/common-tasks.js +49 -0
  254. package/build/utils/common-tasks.js.map +1 -0
  255. package/build/utils/development-params.d.ts +13 -0
  256. package/build/utils/development-params.js +42 -0
  257. package/build/utils/development-params.js.map +1 -0
  258. package/build/{commands/utils → utils}/exec-async-child-process.d.ts +1 -1
  259. package/build/{commands/utils → utils}/exec-async-child-process.js +6 -13
  260. package/build/utils/exec-async-child-process.js.map +1 -0
  261. package/build/utils/file.d.ts +1 -0
  262. package/build/utils/file.js +7 -0
  263. package/build/utils/file.js.map +1 -0
  264. package/build/utils/minis-manifest.d.ts +6 -0
  265. package/build/utils/minis-manifest.js +56 -0
  266. package/build/utils/minis-manifest.js.map +1 -0
  267. package/build/utils/package-manager.d.ts +38 -0
  268. package/build/utils/package-manager.js +98 -0
  269. package/build/utils/package-manager.js.map +1 -0
  270. package/build/utils/patch-package.d.ts +5 -0
  271. package/build/utils/patch-package.js +76 -0
  272. package/build/utils/patch-package.js.map +1 -0
  273. package/build/utils/replace-strings-in-template.d.ts +1 -0
  274. package/build/utils/replace-strings-in-template.js +15 -0
  275. package/build/utils/replace-strings-in-template.js.map +1 -0
  276. package/build/utils/semver.d.ts +1 -0
  277. package/build/utils/semver.js +19 -0
  278. package/build/utils/semver.js.map +1 -0
  279. package/build/{commands/utils → utils}/wrap-with-loading-indicator.d.ts +1 -1
  280. package/build/utils/wrap-with-loading-indicator.js +16 -0
  281. package/build/utils/wrap-with-loading-indicator.js.map +1 -0
  282. package/package.json +35 -28
  283. package/scripts/graphql-codegen.ts +23 -0
  284. package/scripts/test-template.ts +63 -0
  285. package/shipit.alpha.yml +3 -0
  286. package/templates/__template_blank/src/index.tsx +5 -4
  287. package/templates/__template_blank/src/types.ts +1 -1
  288. package/templates/__template_common/.eslintrc.js +16 -0
  289. package/templates/__template_common/assets.d.ts +14 -0
  290. package/templates/__template_common/babel.config.js +3 -17
  291. package/templates/__template_common/gitignore +2 -0
  292. package/templates/__template_common/index.tsx +3 -6
  293. package/templates/__template_common/metro.config.js +4 -30
  294. package/templates/__template_common/package.json +17 -47
  295. package/templates/__template_common/src/manifest.json +1 -27
  296. package/templates/__template_hello_world/src/components/ComponentLink.ts +31 -19
  297. package/templates/__template_hello_world/src/components/ComponentListItem.tsx +1 -0
  298. package/templates/__template_hello_world/src/components/FeaturedComponents.tsx +4 -2
  299. package/templates/__template_hello_world/src/components/quiz/ImageCarouselSlide.tsx +54 -0
  300. package/templates/__template_hello_world/src/components/quiz/MultipleChoiceSlide.tsx +77 -0
  301. package/templates/__template_hello_world/src/components/quiz/QuizProvider.tsx +64 -0
  302. package/templates/__template_hello_world/src/components/quiz/QuizSlide.tsx +79 -0
  303. package/templates/__template_hello_world/src/components/quiz/QuizSlideCommander.tsx +35 -0
  304. package/templates/__template_hello_world/src/components/quiz/TextFieldSlide.tsx +84 -0
  305. package/templates/__template_hello_world/src/components/quiz/TextSlide.tsx +6 -0
  306. package/templates/__template_hello_world/src/components/quiz/types.ts +72 -0
  307. package/templates/__template_hello_world/src/data/Test.graphql.d.ts +69 -76
  308. package/templates/__template_hello_world/src/data/TestProducts.graphql +30 -0
  309. package/templates/__template_hello_world/src/data/TestProducts.graphql.d.ts +159 -81
  310. package/templates/__template_hello_world/src/fixtures/mocked-products-with-variants.ts +274 -0
  311. package/templates/__template_hello_world/src/hooks/useQuizData.ts +26 -0
  312. package/templates/__template_hello_world/src/hooks/useQuizState.ts +27 -0
  313. package/templates/__template_hello_world/src/index.tsx +6 -5
  314. package/templates/__template_hello_world/src/routes.tsx +46 -22
  315. package/templates/__template_hello_world/src/screens/AccordionScreen.tsx +73 -0
  316. package/templates/__template_hello_world/src/screens/BottomSheetScreen.tsx +6 -5
  317. package/templates/__template_hello_world/src/screens/HomeScreen.tsx +14 -3
  318. package/templates/__template_hello_world/src/screens/{ImageCarouselScreen.tsx → ImageMultipleChoiceScreen.tsx} +4 -6
  319. package/templates/__template_hello_world/src/screens/InputScreen.tsx +13 -70
  320. package/templates/__template_hello_world/src/screens/QuizResultScreen.tsx +82 -0
  321. package/templates/__template_hello_world/src/screens/QuizScreen.tsx +40 -0
  322. package/templates/__template_hello_world/src/screens/QuizSlideScreen.tsx +150 -0
  323. package/templates/__template_hello_world/src/screens/ShopActionsScreen.tsx +48 -0
  324. package/templates/__template_hello_world/src/screens/VariantPickerScreen.tsx +120 -0
  325. package/templates/__template_hello_world/src/types.ts +27 -24
  326. package/templates/__template_hello_world/src/utils/mockQuizData.ts +330 -0
  327. package/templates/__template_hello_world/src/utils/quizUtils.ts +75 -0
  328. package/templates/__template_snowboardz/src/components/SkillLevelIcon.tsx +1 -4
  329. package/templates/__template_snowboardz/src/components/SkillLevelPicker.tsx +7 -1
  330. package/templates/__template_snowboardz/src/data/TestProducts.graphql +1 -1
  331. package/templates/__template_snowboardz/src/data/TestProducts.graphql.d.ts +84 -74
  332. package/templates/__template_snowboardz/src/index.tsx +6 -5
  333. package/templates/__template_snowboardz/src/routes.tsx +2 -2
  334. package/templates/__template_snowboardz/src/types.ts +3 -3
  335. package/build/commands/check/index.d.ts +0 -5
  336. package/build/commands/check/index.js +0 -77
  337. package/build/commands/check/index.js.map +0 -1
  338. package/build/commands/check/utils/versions.d.ts +0 -1
  339. package/build/commands/check/utils/versions.js +0 -14
  340. package/build/commands/check/utils/versions.js.map +0 -1
  341. package/build/commands/dev/utils/binaries.test.d.ts +0 -1
  342. package/build/commands/dev/utils/binaries.test.js +0 -275
  343. package/build/commands/dev/utils/binaries.test.js.map +0 -1
  344. package/build/commands/dev/utils/minis-manifest.d.ts +0 -1
  345. package/build/commands/dev/utils/minis-manifest.js +0 -24
  346. package/build/commands/dev/utils/minis-manifest.js.map +0 -1
  347. package/build/commands/utils/exec-async-child-process.js.map +0 -1
  348. package/build/commands/utils/wrap-with-loading-indicator.js +0 -23
  349. package/build/commands/utils/wrap-with-loading-indicator.js.map +0 -1
  350. package/build/dev-panel/middleware.d.ts +0 -4
  351. package/build/dev-panel/middleware.js +0 -11
  352. package/build/dev-panel/middleware.js.map +0 -1
  353. package/build/dev-panel/static/css/main.31436fe3.css.map +0 -1
  354. package/build/dev-panel/static/js/main.27f47095.js.map +0 -1
  355. package/build/dev-panel/static/media/bottomsheet.fe525b8722f6d504a185.png +0 -0
  356. package/build/dev-panel/static/media/navigation.597434370a97c328a970.png +0 -0
  357. package/build/dev-panel/static/media/stories.a425b6972a5338fabdad.png +0 -0
  358. package/templates/__template_blank/src/custom.d.ts +0 -4
  359. package/templates/__template_common/.eslintrc.json +0 -132
  360. package/templates/__template_common/patches/react-native+0.68.5.patch +0 -173
  361. package/templates/__template_hello_world/src/utils/getFlagEmoji.spec.tsx +0 -19
  362. /package/build/dev-panel/static/js/{main.27f47095.js.LICENSE.txt → main.6625699c.js.LICENSE.txt} +0 -0
@@ -1,44 +1,44 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.generateMiniFromTemplate = void 0;
7
- const path_1 = __importDefault(require("path"));
8
- const os_1 = __importDefault(require("os"));
9
- const fs_extra_1 = __importDefault(require("fs-extra"));
10
- const replace_in_file_1 = require("replace-in-file");
11
- const lodash_1 = __importDefault(require("lodash"));
12
- async function replaceStringsInTemplate(dir, stringsToReplace) {
13
- for (const [replaceKey, replaceValue] of Object.entries(stringsToReplace)) {
14
- const replaceOptions = {
15
- files: [`${dir}/**/*.*`],
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
- __MINI_APP_HANDLE_PASCAL_CASE__: lodash_1.default.startCase(handle).replace(/ /g, ''),
33
- __MINI_APP_HANDLE_KEBAB_CASE__: handle,
34
- __SHOP_MINIS_CLI_VERSION__: CLIVersion,
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 path_1.default.join(__dirname, '../../../../templates', '__template_common');
37
- await fs_extra_1.default.copy(commonTemplateFilesDir, tmpDir);
38
- await fs_extra_1.default.copy(miniTemplateDir, tmpDir);
39
- await fs_extra_1.default.move(path_1.default.join(tmpDir, 'gitignore'), path_1.default.join(tmpDir, '.gitignore'));
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 fs_extra_1.default.copy(tmpDir, miniDestinationDir);
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":";;;;;;AAAA,gDAAuB;AACvB,4CAAmB;AAEnB,wDAAyB;AACzB,qDAA6C;AAC7C,oDAAsB;AAEtB,KAAK,UAAU,wBAAwB,CACrC,GAAW,EACX,gBAAwC;IAExC,KAAK,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;QACzE,MAAM,cAAc,GAAG;YACrB,KAAK,EAAE,CAAC,GAAG,GAAG,SAAS,CAAC;YACxB,IAAI,EAAE,IAAI,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC;YACjC,EAAE,EAAE,YAAY;YAChB,eAAe,EAAE;gBACf,MAAM,EAAE,CAAC,oBAAoB,CAAC;aAC/B;SACF,CAAA;QAED,MAAM,IAAA,+BAAa,EAAC,cAAc,CAAC,CAAA;KACpC;AACH,CAAC;AAEM,KAAK,UAAU,wBAAwB,CAC5C,IAAY,EACZ,MAAc,EACd,YAAoB,EACpB,SAAS,GAAG,GAAG;IAEf,MAAM,MAAM,GAAG,MAAM,kBAAE,CAAC,OAAO,CAAC,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,GAAG,MAAM,GAAG,CAAC,CAAC,CAAA;IACrE,MAAM,eAAe,GAAG,MAAM,cAAI,CAAC,IAAI,CACrC,SAAS,EACT,uBAAuB,EACvB,cAAc,YAAY,EAAE,CAC7B,CAAA;IACD,MAAM,kBAAkB,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;IAEzE,MAAM,UAAU,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC,OAAO,CAAA,CAAC,yDAAyD;IACxH,MAAM,gBAAgB,GAAG;QACvB,iBAAiB,EAAE,IAAI;QACvB,+BAA+B,EAAE,gBAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACtE,8BAA8B,EAAE,MAAM;QACtC,0BAA0B,EAAE,UAAU;KACvC,CAAA;IAED,MAAM,sBAAsB,GAAG,MAAM,cAAI,CAAC,IAAI,CAC5C,SAAS,EACT,uBAAuB,EACvB,mBAAmB,CACpB,CAAA;IAED,MAAM,kBAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAA;IAC7C,MAAM,kBAAE,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;IACtC,MAAM,kBAAE,CAAC,IAAI,CAAC,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAA;IAC9E,MAAM,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IACxD,MAAM,kBAAE,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;AAC3C,CAAC;AAjCD,4DAiCC"}
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
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.loadCommand = void 0;
7
- const commander_1 = require("commander");
8
- const chalk_1 = __importDefault(require("chalk"));
9
- const internal_ip_1 = require("internal-ip");
10
- const interactive_terminal_1 = require("./utils/interactive-terminal");
11
- const metro_server_1 = require("./utils/metro/metro-server");
12
- const minis_manifest_1 = require("./utils/minis-manifest");
13
- async function loadCommand(parentProgram) {
14
- const ip = await (0, internal_ip_1.v4)();
15
- const command = new commander_1.Command()
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
- await (0, metro_server_1.runMetro)(options);
23
- const miniHandle = (0, minis_manifest_1.getMiniManifest)().handle;
24
- console.log('Local development environment for', chalk_1.default.green(miniHandle), 'is running...');
25
- const interactiveTerminal = new interactive_terminal_1.InteractiveTerminal(options);
26
- interactiveTerminal.start();
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
- exports.loadCommand = loadCommand;
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":";;;;;;AAAA,yCAAiC;AACjC,kDAAyB;AACzB,6CAAsC;AAEtC,uEAAgE;AAChE,6DAAmD;AACnD,2DAAsD;AAO/C,KAAK,UAAU,WAAW,CAAC,aAAsB;IACtD,MAAM,EAAE,GAAG,MAAM,IAAA,gBAAI,GAAE,CAAA;IAEvB,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE;SAC1B,IAAI,CAAC,KAAK,CAAC;SACX,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,2CAA2C,CAAC;SACxD,MAAM,CAAC,eAAe,EAAE,4BAA4B,CAAC;SACrD,MAAM,CAAC,eAAe,EAAE,iBAAiB,EAAE,EAAE,CAAC;SAC9C,MAAM,CAAC,KAAK,EAAE,OAA0B,EAAE,EAAE;QAC3C,MAAM,IAAA,uBAAQ,EAAC,OAAO,CAAC,CAAA;QAEvB,MAAM,UAAU,GAAG,IAAA,gCAAe,GAAE,CAAC,MAAM,CAAA;QAC3C,OAAO,CAAC,GAAG,CACT,mCAAmC,EACnC,eAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EACvB,eAAe,CAChB,CAAA;QAED,MAAM,mBAAmB,GAAG,IAAI,0CAAmB,CAAC,OAAO,CAAC,CAAA;QAC5D,mBAAmB,CAAC,KAAK,EAAE,CAAA;IAC7B,CAAC,CAAC,CAAA;IAEJ,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;AACnC,CAAC;AAxBD,kCAwBC"}
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, version: string): Promise<void>;
14
- export declare function getInstalledShopVersion(emulatorId: string): Promise<string | null | undefined>;
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, deeplink: string): Promise<void>;
18
+ export declare function deeplinkToEmulator(emulatorId: string, originalDeeplink: string): Promise<void>;
@@ -1,35 +1,13 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.deeplinkToEmulator = exports.connectDevelopmentServer = exports.getInstalledShopVersion = exports.installShopInEmulator = exports.maybeLaunchEmulator = exports.promptForAndroidDevices = exports.androidHomeExists = exports.getEmulators = exports.getDevices = void 0;
7
- const child_process_1 = __importDefault(require("child_process"));
8
- const path_1 = __importDefault(require("path"));
9
- const fs_1 = __importDefault(require("fs"));
10
- const lodash_1 = __importDefault(require("lodash"));
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
- exports.getDevices = getDevices;
45
- async function getEmulators() {
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
- exports.getEmulators = getEmulators;
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 (0, prompts_1.default)({
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
- exports.promptForAndroidDevices = promptForAndroidDevices;
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
- exports.maybeLaunchEmulator = maybeLaunchEmulator;
97
- async function installShopInEmulator(emulatorId, version) {
98
- const fileName = (0, binaries_1.versionToBinaryFileName)(version, 'android');
99
- const binaryPath = path_1.default.join(binaries_1.BINARIES_PATH, fileName);
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
- exports.installShopInEmulator = installShopInEmulator;
103
- async function getInstalledShopVersion(emulatorId) {
72
+ export async function getInstalledShopVersion(emulatorId) {
104
73
  try {
105
- const { stdout } = await (0, exec_async_child_process_1.execAsync)(`${whichAdb()} -s ${emulatorId} shell dumpsys package com.shopify.arrive.internal | grep versionName`);
106
- // stdout: ["versionName=2.86.0"]
107
- return lodash_1.default.last(stdout?.[0]?.split('='));
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
- exports.getInstalledShopVersion = getInstalledShopVersion;
114
- async function connectDevelopmentServer(emulatorId) {
115
- await (0, exec_async_child_process_1.execAsync)(`${whichAdb()} -s ${emulatorId} reverse tcp:8082 tcp:8082`);
116
- }
117
- exports.connectDevelopmentServer = connectDevelopmentServer;
118
- async function deeplinkToEmulator(emulatorId, deeplink) {
119
- await (0, exec_async_child_process_1.execAsync)(`${whichAdb()} -s ${emulatorId} shell am start -a android.intent.action.VIEW -d ${deeplink}`);
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 (0, exec_async_child_process_1.execAsync)(`${whichAdb()} -s ${emulatorId} emu avd name`);
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 (0, exec_async_child_process_1.execAsync)(`${whichAdb()} devices`);
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 (0, exec_async_child_process_1.execAsync)(`${whichAdb()} -s ${emulatorId} wait-for-device shell 'while [[ -z $(getprop sys.boot_completed) ]]; do sleep 1; done;'`, { timeout });
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 = child_process_1.default.spawn(whichEmulator(), [`@${emulatorName}`], {
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
- (0, with_retries_1.withRetries)(() => getIdForEmulatorWithName(emulatorName))
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":"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"}
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
- export declare const BINARIES_PATH: string;
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(platform: Platform, version: string): Promise<boolean>;
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>;