@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
package/build/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- #!/usr/bin/env node
1
+ #!/usr/bin/env -S node --experimental-json-modules --require=suppress-experimental-warnings
2
2
  export {};
package/build/index.js CHANGED
@@ -1,22 +1,37 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- const commander_1 = require("commander");
5
- const create_mini_1 = require("./commands/create-mini");
6
- const dev_1 = require("./commands/dev");
7
- const check_1 = require("./commands/check");
8
- const generate_graphql_types_1 = require("./commands/generate-graphql-types");
9
- const program = new commander_1.Command();
1
+ #!/usr/bin/env -S node --experimental-json-modules --require=suppress-experimental-warnings
2
+ import { Command } from 'commander';
3
+ import { loadCommand as loadCreateMiniCommand } from './commands/create-mini/index.js';
4
+ import { loadCommand as loadDevCommand } from './commands/dev/index.js';
5
+ import { loadCommand as loadGenerateGraphqlTypesCommand } from './commands/generate-graphql-types/index.js';
6
+ import { loadCommand as loadSubmitCommand } from './commands/submit/index.js';
7
+ import { loadCommand as loadCancelSubmissionCommand } from './commands/cancel-submission/index.js';
8
+ import { loadCommand as loadCheckSubmissionCommand } from './commands/check-submission/index.js';
9
+ import { loadCommand as loadUpgradeCommand } from './commands/upgrade/index.js';
10
+ import { loadCommand as loadCodemodCommand } from './commands/codemod/index.js';
11
+ import { loadCommand as loadValidateManifestCommand } from './commands/validate-manifest/index.js';
12
+ import { loadCommand as loadInfoCommand } from './commands/info/index.js';
13
+ import { loadCommand as loadSetupCommand } from './commands/setup/index.js';
14
+ import { command as doctorCommand } from './commands/doctor/index.js';
15
+ import { CLI_VERSION } from './commands/config.js';
16
+ const program = new Command();
10
17
  async function loadCommands() {
11
- (0, create_mini_1.loadCommand)(program);
12
- await (0, dev_1.loadCommand)(program);
13
- (0, check_1.loadCommand)(program);
14
- (0, generate_graphql_types_1.loadCommand)(program);
18
+ loadCreateMiniCommand(program);
19
+ await loadDevCommand(program);
20
+ loadGenerateGraphqlTypesCommand(program);
21
+ loadSubmitCommand(program);
22
+ loadCancelSubmissionCommand(program);
23
+ loadCheckSubmissionCommand(program);
24
+ loadUpgradeCommand(program);
25
+ loadValidateManifestCommand(program);
26
+ loadCodemodCommand(program);
27
+ loadInfoCommand(program);
28
+ loadSetupCommand(program);
29
+ program.addCommand(doctorCommand);
15
30
  }
16
31
  program
17
32
  .name('shop-minis')
18
- .description('CLI for creating a new Shop Mini')
19
- .version('2.0.0');
33
+ .description('CLI for Shop Minis development')
34
+ .version(CLI_VERSION);
20
35
  loadCommands()
21
36
  .then(() => {
22
37
  program.parse();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,yCAAiC;AAEjC,wDAA2E;AAC3E,wCAA4D;AAC5D,4CAAgE;AAChE,8EAAgG;AAEhG,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAA;AAE7B,KAAK,UAAU,YAAY;IACzB,IAAA,yBAAqB,EAAC,OAAO,CAAC,CAAA;IAC9B,MAAM,IAAA,iBAAc,EAAC,OAAO,CAAC,CAAA;IAC7B,IAAA,mBAAgB,EAAC,OAAO,CAAC,CAAA;IACzB,IAAA,oCAA+B,EAAC,OAAO,CAAC,CAAA;AAC1C,CAAC;AAED,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,kCAAkC,CAAC;KAC/C,OAAO,CAAC,OAAO,CAAC,CAAA;AAEnB,YAAY,EAAE;KACX,IAAI,CAAC,GAAG,EAAE;IACT,OAAO,CAAC,KAAK,EAAE,CAAA;AACjB,CAAC,CAAC;KACD,KAAK,CAAC,GAAG,CAAC,EAAE;IACX,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AAEjC,OAAO,EAAC,WAAW,IAAI,qBAAqB,EAAC,MAAM,iCAAiC,CAAA;AACpF,OAAO,EAAC,WAAW,IAAI,cAAc,EAAC,MAAM,yBAAyB,CAAA;AACrE,OAAO,EAAC,WAAW,IAAI,+BAA+B,EAAC,MAAM,4CAA4C,CAAA;AACzG,OAAO,EAAC,WAAW,IAAI,iBAAiB,EAAC,MAAM,4BAA4B,CAAA;AAC3E,OAAO,EAAC,WAAW,IAAI,2BAA2B,EAAC,MAAM,uCAAuC,CAAA;AAChG,OAAO,EAAC,WAAW,IAAI,0BAA0B,EAAC,MAAM,sCAAsC,CAAA;AAC9F,OAAO,EAAC,WAAW,IAAI,kBAAkB,EAAC,MAAM,6BAA6B,CAAA;AAC7E,OAAO,EAAC,WAAW,IAAI,kBAAkB,EAAC,MAAM,6BAA6B,CAAA;AAC7E,OAAO,EAAC,WAAW,IAAI,2BAA2B,EAAC,MAAM,uCAAuC,CAAA;AAChG,OAAO,EAAC,WAAW,IAAI,eAAe,EAAC,MAAM,0BAA0B,CAAA;AACvE,OAAO,EAAC,WAAW,IAAI,gBAAgB,EAAC,MAAM,2BAA2B,CAAA;AACzE,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,MAAM,4BAA4B,CAAA;AACnE,OAAO,EAAC,WAAW,EAAC,MAAM,sBAAsB,CAAA;AAEhD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,KAAK,UAAU,YAAY;IACzB,qBAAqB,CAAC,OAAO,CAAC,CAAA;IAC9B,MAAM,cAAc,CAAC,OAAO,CAAC,CAAA;IAC7B,+BAA+B,CAAC,OAAO,CAAC,CAAA;IACxC,iBAAiB,CAAC,OAAO,CAAC,CAAA;IAC1B,2BAA2B,CAAC,OAAO,CAAC,CAAA;IACpC,0BAA0B,CAAC,OAAO,CAAC,CAAA;IACnC,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAC3B,2BAA2B,CAAC,OAAO,CAAC,CAAA;IACpC,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAC3B,eAAe,CAAC,OAAO,CAAC,CAAA;IACxB,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAEzB,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;AACnC,CAAC;AAED,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,gCAAgC,CAAC;KAC7C,OAAO,CAAC,WAAW,CAAC,CAAA;AAEvB,YAAY,EAAE;KACX,IAAI,CAAC,GAAG,EAAE;IACT,OAAO,CAAC,KAAK,EAAE,CAAA;AACjB,CAAC,CAAC;KACD,KAAK,CAAC,GAAG,CAAC,EAAE;IACX,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
@@ -0,0 +1,198 @@
1
+ {
2
+ "$id": "/manifest.schema.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema",
4
+ "type": "object",
5
+ "title": "Shop Mini Manifest",
6
+ "additionalProperties": false,
7
+ "properties": {
8
+ "name": {
9
+ "type": "string",
10
+ "description": "The name of the Mini",
11
+ "maxLength": 20
12
+ },
13
+ "handle": {
14
+ "type": "string",
15
+ "description": "A unique identifier for the Mini",
16
+ "pattern": "^(?:@[a-z0-9-*~][a-z0-9-*._~]*/)?[a-z0-9-~][a-z0-9-._~]*$"
17
+ },
18
+ "description": {
19
+ "type": "string",
20
+ "description": "The description of the Mini",
21
+ "maxLength": 100
22
+ },
23
+ "icon_url": {
24
+ "type": "string",
25
+ "title": "The icon of the Mini",
26
+ "description": "An absolute path to the image (e.g. https://example.com/icon.png)"
27
+ },
28
+ "partner_name": {
29
+ "type": "string",
30
+ "description": "The name of the Shopify partner who built the Mini",
31
+ "maxLength": 20
32
+ },
33
+ "contact_email": {
34
+ "type": "string",
35
+ "description": "An email address for receiving notifications.",
36
+ "format": "email"
37
+ },
38
+ "activation_subpath": {
39
+ "type": "string",
40
+ "description": "A route on your Mini's Shopify app that will be used to activate (enable entry points) your Mini for the first time. This route path will be appended to the end of the admin URL of the Shopify app. For example, the value 'activate' will correspond to the URL https://admin.shopify.com/store/example-store/apps/my-handle/activate",
41
+ "pattern": "^(?:[a-z0-9~-]+/)*[a-z0-9~-]+$"
42
+ },
43
+ "shopify_apps": {
44
+ "type": "object",
45
+ "description": "The Shopify apps associated with the Mini",
46
+ "properties": {
47
+ "production": {
48
+ "type": "integer",
49
+ "minimum": 1,
50
+ "description": "The Shopify app ID for production",
51
+ "required": true
52
+ },
53
+ "development": {
54
+ "type": "array",
55
+ "description": "The Shopify app IDs for development",
56
+ "uniqueItems": true,
57
+ "items": { "type": "integer", "minimum": 1 }
58
+ }
59
+ }
60
+ },
61
+ "notification_topics": {
62
+ "type": "array",
63
+ "description": "Specifies the reason for communication and the scope for messages. An example of a topic could be live streaming related notifications related to a merchant",
64
+ "items": {
65
+ "type": "object",
66
+ "required": ["handle", "description", "scope"],
67
+ "properties": {
68
+ "handle": {
69
+ "type": "string",
70
+ "description": "Text identifier of the topic"
71
+ },
72
+ "description": {
73
+ "type": "string",
74
+ "description": "Reason for the communication using the topic"
75
+ },
76
+ "scope": {
77
+ "type": "string",
78
+ "description": "The scope in which messages are processed for the topic. SHOP means each message will be processed in the scope of a specific merchant, PRODUCT means each message will be processed in the scope of a specific product",
79
+ "enum": ["SHOP", "PRODUCT"]
80
+ }
81
+ }
82
+ }
83
+ },
84
+ "notification_templates": {
85
+ "type": "array",
86
+ "description": "Specify the message which will be sent to subscribers when notification is triggered by the mutation",
87
+ "items": {
88
+ "type": "object",
89
+ "required": [
90
+ "handle",
91
+ "topic_handle",
92
+ "title",
93
+ "body",
94
+ "cooldown_minutes"
95
+ ],
96
+ "properties": {
97
+ "handle": {
98
+ "type": "string",
99
+ "description": "Text identifier of the template"
100
+ },
101
+ "topic_handle": {
102
+ "type": "string",
103
+ "description": "Reference to a notification topic"
104
+ },
105
+ "title": {
106
+ "type": "string",
107
+ "description": "Template of notification title, supports interpolation using the Liquid template language"
108
+ },
109
+ "body": {
110
+ "type": "string",
111
+ "description": "Template of notification body, supports interpolation using the Liquid template language"
112
+ },
113
+ "cooldown_minutes": {
114
+ "type": "number",
115
+ "description": "How often the template allowes to send the exact same message to the same user, in minutes"
116
+ }
117
+ }
118
+ }
119
+ },
120
+ "entry_points": {
121
+ "type": "array",
122
+ "description": "A list of entry points that the Mini supports",
123
+ "items": {
124
+ "type": "object",
125
+ "properties": {
126
+ "location": {
127
+ "type": "string",
128
+ "enum": [
129
+ "PRODUCT_PAGE",
130
+ "STORE_PAGE",
131
+ "PRODUCT_PAGE_CONTEXT_MENU",
132
+ "STORE_PAGE_CONTEXT_MENU",
133
+ "ORDER_CONFIRMATION_PAGE"
134
+ ]
135
+ },
136
+ "type": {
137
+ "type": "string",
138
+ "enum": [
139
+ "LINK",
140
+ "DEFAULT_CARD",
141
+ "IMAGE_COLLECTION",
142
+ "VIDEO_COLLECTION",
143
+ "EVENT_CARD_V2",
144
+ "PRODUCT_OFFER_CARD"
145
+ ]
146
+ }
147
+ },
148
+ "allOf": [
149
+ {
150
+ "if": { "properties": { "type": { "const": "LINK" } } },
151
+ "then": { "required": ["location"] }
152
+ },
153
+ {
154
+ "if": { "properties": { "type": { "const": "DEFAULT_CARD" } } },
155
+ "then": { "required": ["location"] }
156
+ },
157
+ {
158
+ "if": { "properties": { "type": { "const": "IMAGE_COLLECTION" } } },
159
+ "then": { "required": ["location"] }
160
+ },
161
+ {
162
+ "if": { "properties": { "type": { "const": "VIDEO_COLLECTION" } } },
163
+ "then": { "required": ["location"] }
164
+ },
165
+ {
166
+ "if": { "properties": { "type": { "const": "EVENT_CARD_V2" } } },
167
+ "then": { "required": ["location"] }
168
+ }
169
+ ]
170
+ }
171
+ },
172
+ "trusted_domains": {
173
+ "type": "array",
174
+ "description": "A list of domains that the minis uses to make requests and fetch information. Requests to domains that are not in this list will fail in production.",
175
+ "uniqueItems": true,
176
+ "items": {
177
+ "type": "string"
178
+ }
179
+ },
180
+ "ios_app_store_url": {
181
+ "type": "string",
182
+ "description": "The URL to the Mini's publisher's app on the iOS App Store"
183
+ },
184
+ "android_play_store_url": {
185
+ "type": "string",
186
+ "description": "The URL to the Mini's publisher's app on the Android Play Store"
187
+ }
188
+ },
189
+ "required": [
190
+ "name",
191
+ "handle",
192
+ "icon_url",
193
+ "partner_name",
194
+ "shopify_apps",
195
+ "entry_points",
196
+ "contact_email"
197
+ ]
198
+ }
@@ -0,0 +1,30 @@
1
+ import archiver from 'archiver';
2
+ interface ZipOptions {
3
+ /**
4
+ * The absolute path to the directory to be zipped.
5
+ */
6
+ inputDirectory: string;
7
+ /**
8
+ * The absolute path to the output zip file.
9
+ */
10
+ outputArchivePath: string;
11
+ /**
12
+ * Pattern to match when adding files to archive, uses glob expressions.
13
+ */
14
+ matchFilePattern?: string;
15
+ /**
16
+ * Patterns to ignore adding files to archive, uses glob expressions.
17
+ */
18
+ ignore?: string[];
19
+ }
20
+ /**
21
+ * Creates a tar.gz
22
+ *
23
+ * This is a copy of `zip` [from cli-kit](https://github.com/Shopify/cli/blob/0aa5eb4fe34519e10297977e640dc521f9ab1676/packages/cli-kit/src/public/node/archiver.ts#L31)
24
+ *
25
+ * Our version defaults to tar.gz, theirs is hard-coded to zip
26
+ *
27
+ * @param options - ZipOptions.
28
+ */
29
+ export declare function zip(options: ZipOptions, format?: archiver.Format): Promise<void>;
30
+ export {};
@@ -0,0 +1,38 @@
1
+ import { createWriteStream } from 'node:fs';
2
+ import archiver from 'archiver';
3
+ import { relativePath } from '@shopify/cli-kit/node/path';
4
+ import { glob } from '@shopify/cli-kit/node/fs';
5
+ import { outputDebug, outputContent, outputToken, } from '@shopify/cli-kit/node/output';
6
+ /**
7
+ * Creates a tar.gz
8
+ *
9
+ * This is a copy of `zip` [from cli-kit](https://github.com/Shopify/cli/blob/0aa5eb4fe34519e10297977e640dc521f9ab1676/packages/cli-kit/src/public/node/archiver.ts#L31)
10
+ *
11
+ * Our version defaults to tar.gz, theirs is hard-coded to zip
12
+ *
13
+ * @param options - ZipOptions.
14
+ */
15
+ export async function zip(options, format = 'tar') {
16
+ const { inputDirectory, outputArchivePath, matchFilePattern = '**/*', ignore, } = options;
17
+ outputDebug(outputContent `${format === 'zip' ? 'Zipping' : 'Creating tar.gz of'} ${outputToken.path(inputDirectory)} into ${outputToken.path(outputArchivePath)}`);
18
+ const pathsToZip = await glob(matchFilePattern, {
19
+ cwd: inputDirectory,
20
+ absolute: true,
21
+ dot: true,
22
+ followSymbolicLinks: false,
23
+ ignore,
24
+ });
25
+ return new Promise((resolve, reject) => {
26
+ const archive = archiver(format, { gzip: true });
27
+ const output = createWriteStream(outputArchivePath);
28
+ output.on('close', () => resolve());
29
+ archive.on('error', error => reject(error));
30
+ archive.pipe(output);
31
+ for (const filePath of pathsToZip) {
32
+ const fileRelativePath = relativePath(inputDirectory, filePath);
33
+ archive.file(filePath, { name: fileRelativePath });
34
+ }
35
+ archive.finalize();
36
+ });
37
+ }
38
+ //# sourceMappingURL=archive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"archive.js","sourceRoot":"","sources":["../../src/utils/archive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,SAAS,CAAA;AAEzC,OAAO,QAAQ,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAC,IAAI,EAAC,MAAM,0BAA0B,CAAA;AAC7C,OAAO,EACL,WAAW,EACX,aAAa,EACb,WAAW,GACZ,MAAM,8BAA8B,CAAA;AAwBrC;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,GAAG,CACvB,OAAmB,EACnB,SAA0B,KAAK;IAE/B,MAAM,EACJ,cAAc,EACd,iBAAiB,EACjB,gBAAgB,GAAG,MAAM,EACzB,MAAM,GACP,GAAG,OAAO,CAAA;IAEX,WAAW,CACT,aAAa,CAAA,GACX,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,oBACjC,IAAI,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,WAAW,CAAC,IAAI,CAC3D,iBAAiB,CAClB,EAAE,CACJ,CAAA;IACD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE;QAC9C,GAAG,EAAE,cAAc;QACnB,QAAQ,EAAE,IAAI;QACd,GAAG,EAAE,IAAI;QACT,mBAAmB,EAAE,KAAK;QAC1B,MAAM;KACP,CAAC,CAAA;IAEF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAA;QAE9C,MAAM,MAAM,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAA;QACnD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;QACnC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAC3C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAEpB,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE;YACjC,MAAM,gBAAgB,GAAG,YAAY,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAA;YAC/D,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAC,IAAI,EAAE,gBAAgB,EAAC,CAAC,CAAA;SACjD;QAED,OAAO,CAAC,QAAQ,EAAE,CAAA;IACpB,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function assertNetworkAndAuth(): Promise<void>;
@@ -0,0 +1,49 @@
1
+ import { ClientError } from 'graphql-request';
2
+ import { AbortError } from '@shopify/cli-kit/node/error';
3
+ import { APPLY_FOR_EARLY_ACCESS_URL, SHOP_MINIS_ADMIN_API_KEY, } from '../commands/config.js';
4
+ import { getSubmissions as graphqlGetSubmissions } from '../data/get-submissions.js';
5
+ export async function assertNetworkAndAuth() {
6
+ const apiKey = SHOP_MINIS_ADMIN_API_KEY;
7
+ if (!apiKey) {
8
+ throw new AbortError('Shop Minis API key is not set.', undefined, [
9
+ [
10
+ 'To continue, set the environment variable in .env',
11
+ { bold: 'SHOP_MINIS_API_KEY=<your-shop-minis-api-key>' },
12
+ ],
13
+ ]);
14
+ }
15
+ try {
16
+ // Use this query as a simple way to check network and auth at the same time
17
+ await graphqlGetSubmissions();
18
+ }
19
+ catch (error) {
20
+ if (error instanceof ClientError && error.response.status === 401) {
21
+ throw new AbortError('Unable to authenticate your account', 'Your Shop Minis Admin API key is invalid.\n' +
22
+ 'Request a new API key and insert it into .env to continue.', [
23
+ [
24
+ 'If you',
25
+ { bold: 'have' },
26
+ 'early access, request a new Shop Minis Admin API key from the Shop Minis team.',
27
+ ],
28
+ [
29
+ 'If you',
30
+ { bold: "don't have" },
31
+ 'early access, apply for early access:',
32
+ {
33
+ link: {
34
+ url: APPLY_FOR_EARLY_ACCESS_URL,
35
+ label: 'Shop Minis website',
36
+ },
37
+ },
38
+ ],
39
+ ]);
40
+ }
41
+ if (error instanceof Object &&
42
+ 'code' in error &&
43
+ error?.code === 'ENOTFOUND') {
44
+ throw new AbortError(`Network error`, 'Try again and if the issue continues, contact us.', ['Try to run `submit` again', "Contact Shop if you're having issues"]);
45
+ }
46
+ throw error;
47
+ }
48
+ }
49
+ //# sourceMappingURL=common-tasks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common-tasks.js","sourceRoot":"","sources":["../../src/utils/common-tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAC,UAAU,EAAC,MAAM,6BAA6B,CAAA;AAEtD,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAC,cAAc,IAAI,qBAAqB,EAAC,MAAM,4BAA4B,CAAA;AAElF,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,MAAM,GAAG,wBAAwB,CAAA;IAEvC,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,IAAI,UAAU,CAAC,gCAAgC,EAAE,SAAS,EAAE;YAChE;gBACE,mDAAmD;gBACnD,EAAC,IAAI,EAAE,8CAA8C,EAAC;aACvD;SACF,CAAC,CAAA;KACH;IAED,IAAI;QACF,4EAA4E;QAC5E,MAAM,qBAAqB,EAAE,CAAA;KAC9B;IAAC,OAAO,KAAK,EAAE;QACd,IAAI,KAAK,YAAY,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;YACjE,MAAM,IAAI,UAAU,CAClB,qCAAqC,EACrC,6CAA6C;gBAC3C,4DAA4D,EAC9D;gBACE;oBACE,QAAQ;oBACR,EAAC,IAAI,EAAE,MAAM,EAAC;oBACd,gFAAgF;iBACjF;gBACD;oBACE,QAAQ;oBACR,EAAC,IAAI,EAAE,YAAY,EAAC;oBACpB,uCAAuC;oBACvC;wBACE,IAAI,EAAE;4BACJ,GAAG,EAAE,0BAA0B;4BAC/B,KAAK,EAAE,oBAAoB;yBAC5B;qBACF;iBACF;aACF,CACF,CAAA;SACF;QAED,IACE,KAAK,YAAY,MAAM;YACvB,MAAM,IAAI,KAAK;YACf,KAAK,EAAE,IAAI,KAAK,WAAW,EAC3B;YACA,MAAM,IAAI,UAAU,CAClB,eAAe,EACf,mDAAmD,EACnD,CAAC,2BAA2B,EAAE,sCAAsC,CAAC,CACtE,CAAA;SACF;QAED,MAAM,KAAK,CAAA;KACZ;AACH,CAAC"}
@@ -0,0 +1,13 @@
1
+ declare const ALLOWED_ENTRY_POINT_PARAMS: readonly ["product_id", "shop_id", "product_variant_id", "external_id", "shop_domain", "order_id"];
2
+ type DevelopmentEntryPointParams = {
3
+ [key in (typeof ALLOWED_ENTRY_POINT_PARAMS)[number]]?: string;
4
+ };
5
+ /**
6
+ * Reads the content of the file entry-point-params.json in the rootpath of a Mini folder, which should be of the shape Record<string, string>.
7
+ * Then, formats the object as an URL query string and returns it.
8
+ *
9
+ * Returns empty string if the file does not exist or if the format of its content is incorrect.
10
+ */
11
+ export declare function getDevelopmentEntryPointParams(): DevelopmentEntryPointParams;
12
+ export declare function getDevelopmentEntryPointParamsQueryString(): string;
13
+ export {};
@@ -0,0 +1,42 @@
1
+ import { createRequire } from 'node:module';
2
+ import path from 'node:path';
3
+ const ALLOWED_ENTRY_POINT_PARAMS = [
4
+ 'product_id',
5
+ 'shop_id',
6
+ 'product_variant_id',
7
+ 'external_id',
8
+ 'shop_domain',
9
+ 'order_id',
10
+ ];
11
+ const DEVELOPMENT_PARAMS_FILE_NAME = 'entry-point-params.json';
12
+ const DEVELOPMENT_PARAMS_FILE_PATH = path.join(process.cwd(), DEVELOPMENT_PARAMS_FILE_NAME);
13
+ /**
14
+ * Reads the content of the file entry-point-params.json in the rootpath of a Mini folder, which should be of the shape Record<string, string>.
15
+ * Then, formats the object as an URL query string and returns it.
16
+ *
17
+ * Returns empty string if the file does not exist or if the format of its content is incorrect.
18
+ */
19
+ export function getDevelopmentEntryPointParams() {
20
+ try {
21
+ const localRequire = createRequire(import.meta.url);
22
+ delete localRequire.cache[localRequire.resolve(DEVELOPMENT_PARAMS_FILE_PATH)];
23
+ const persistedParams = localRequire(DEVELOPMENT_PARAMS_FILE_PATH);
24
+ const paramsAsEntries = Object.entries(persistedParams).filter(([key, value]) => ALLOWED_ENTRY_POINT_PARAMS.includes(key) && Boolean(value));
25
+ return Object.fromEntries(paramsAsEntries);
26
+ }
27
+ catch (err) {
28
+ if (err?.code !== 'MODULE_NOT_FOUND' && err?.code !== 'ENOENT') {
29
+ console.log('\n ⚠️ Development entrypoints params ignored due to errors:\n');
30
+ console.log(err);
31
+ console.log('\n');
32
+ }
33
+ // do nothing, the development entrypoint params file is optional and might not exist.
34
+ return {};
35
+ }
36
+ }
37
+ export function getDevelopmentEntryPointParamsQueryString() {
38
+ const paramsObject = getDevelopmentEntryPointParams();
39
+ const paramsQueryString = new URLSearchParams(paramsObject).toString();
40
+ return paramsQueryString ? `?${paramsQueryString}` : '';
41
+ }
42
+ //# sourceMappingURL=development-params.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"development-params.js","sourceRoot":"","sources":["../../src/utils/development-params.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAA;AACzC,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,MAAM,0BAA0B,GAAG;IACjC,YAAY;IACZ,SAAS;IACT,oBAAoB;IACpB,aAAa;IACb,aAAa;IACb,UAAU;CACF,CAAA;AAMV,MAAM,4BAA4B,GAAG,yBAAyB,CAAA;AAC9D,MAAM,4BAA4B,GAAG,IAAI,CAAC,IAAI,CAC5C,OAAO,CAAC,GAAG,EAAE,EACb,4BAA4B,CAC7B,CAAA;AAED;;;;;GAKG;AACH,MAAM,UAAU,8BAA8B;IAC5C,IAAI;QACF,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACnD,OAAO,YAAY,CAAC,KAAK,CACvB,YAAY,CAAC,OAAO,CAAC,4BAA4B,CAAC,CACnD,CAAA;QACD,MAAM,eAAe,GAA2B,YAAY,CAC1D,4BAA4B,CAC7B,CAAA;QAED,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,MAAM,CAC5D,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CACf,0BAA0B,CAAC,QAAQ,CACjC,GAAwC,CACzC,IAAI,OAAO,CAAC,KAAK,CAAC,CACtB,CAAA;QACD,OAAO,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,CAAA;KAC3C;IAAC,OAAO,GAAQ,EAAE;QACjB,IAAI,GAAG,EAAE,IAAI,KAAK,kBAAkB,IAAI,GAAG,EAAE,IAAI,KAAK,QAAQ,EAAE;YAC9D,OAAO,CAAC,GAAG,CACT,gEAAgE,CACjE,CAAA;YACD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAChB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;SAClB;QACD,sFAAsF;QACtF,OAAO,EAAE,CAAA;KACV;AACH,CAAC;AAED,MAAM,UAAU,yCAAyC;IACvD,MAAM,YAAY,GAAG,8BAA8B,EAAE,CAAA;IACrD,MAAM,iBAAiB,GAAG,IAAI,eAAe,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAA;IAEtE,OAAO,iBAAiB,CAAC,CAAC,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;AACzD,CAAC"}
@@ -1,4 +1,4 @@
1
- /// <reference types="node" />
1
+ /// <reference types="node" resolution-mode="require"/>
2
2
  import { exec } from 'child_process';
3
3
  import { Options as OraOptions } from 'ora';
4
4
  declare const _execAsync: typeof exec.__promisify__;
@@ -1,18 +1,12 @@
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.execAsync = void 0;
7
- const util_1 = require("util");
8
- const child_process_1 = require("child_process");
9
- const ora_1 = __importDefault(require("ora"));
10
- const _execAsync = (0, util_1.promisify)(child_process_1.exec);
11
- async function execAsync(cmdConfig, ...args) {
1
+ import { promisify } from 'util';
2
+ import { exec } from 'child_process';
3
+ import ora from 'ora';
4
+ const _execAsync = promisify(exec);
5
+ export async function execAsync(cmdConfig, ...args) {
12
6
  if (typeof cmdConfig === 'string') {
13
7
  cmdConfig = { cmd: cmdConfig }; // eslint-disable-line no-param-reassign
14
8
  }
15
- const loadingIndicator = (0, ora_1.default)(cmdConfig.spinnerOptions);
9
+ const loadingIndicator = ora(cmdConfig.spinnerOptions);
16
10
  if (cmdConfig.loadingMessage) {
17
11
  loadingIndicator.start(cmdConfig.loadingMessage);
18
12
  }
@@ -44,5 +38,4 @@ async function execAsync(cmdConfig, ...args) {
44
38
  stderr: stderr.split(/[\n\r\t]+/).filter(Boolean),
45
39
  };
46
40
  }
47
- exports.execAsync = execAsync;
48
41
  //# sourceMappingURL=exec-async-child-process.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exec-async-child-process.js","sourceRoot":"","sources":["../../src/utils/exec-async-child-process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,MAAM,CAAA;AAC9B,OAAO,EAAC,IAAI,EAAC,MAAM,eAAe,CAAA;AAElC,OAAO,GAA4B,MAAM,KAAK,CAAA;AAE9C,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;AAalC,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,SAA8B,EAC9B,GAAG,IAAiB;IAEpB,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;QACjC,SAAS,GAAG,EAAC,GAAG,EAAE,SAAS,EAAC,CAAA,CAAC,wCAAwC;KACtE;IAED,MAAM,gBAAgB,GAAG,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IACtD,IAAI,SAAS,CAAC,cAAc,EAAE;QAC5B,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;KACjD;IAED,IAAI,MAAM,GAAoB,EAAE,CAAA;IAChC,IAAI,MAAM,GAAoB,EAAE,CAAA;IAChC,IAAI;QACF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;QACvD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;QACtB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;KACvB;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,gBAAgB,CAAC,UAAU,EAAE;YAC/B,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;YAC7C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;SAClB;QACD,MAAM,GAAG,CAAA;KACV;IAED,IAAI,gBAAgB,CAAC,UAAU,EAAE;QAC/B,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;KACnD;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC9B,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;KACjC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC9B,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;KACjC;IACD,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QACjD,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;KAClD,CAAA;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const getFileChecksum: (filename: string) => string;
@@ -0,0 +1,7 @@
1
+ import crypto from 'node:crypto';
2
+ import fs from 'node:fs';
3
+ export const getFileChecksum = (filename) => {
4
+ const fileBuffer = fs.readFileSync(filename);
5
+ return crypto.createHash('md5').update(fileBuffer).digest('base64');
6
+ };
7
+ //# sourceMappingURL=file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/utils/file.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,MAAM,SAAS,CAAA;AAExB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,QAAgB,EAAE,EAAE;IAClD,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;IAE5C,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;AACrE,CAAC,CAAA"}
@@ -0,0 +1,6 @@
1
+ export declare const DEFAULT_MANIFEST_PATH: string;
2
+ export declare function getMiniManifest(manifestPath?: string): any;
3
+ export declare function validateManifest(manifestPath?: string): {
4
+ valid: boolean;
5
+ errors: string[];
6
+ };
@@ -0,0 +1,56 @@
1
+ import { createRequire } from 'node:module';
2
+ import path from 'node:path';
3
+ import { AbortError } from '@shopify/cli-kit/node/error';
4
+ import { Validator } from 'jsonschema';
5
+ import manifestSchema from '../schemas/manifest.schema.json' assert { type: 'json' };
6
+ const manifestRequire = createRequire(import.meta.url);
7
+ export const DEFAULT_MANIFEST_PATH = path.join('src', 'manifest.json');
8
+ export function getMiniManifest(manifestPath = DEFAULT_MANIFEST_PATH) {
9
+ const fullManifestPath = path.join(process.cwd(), manifestPath);
10
+ let manifest;
11
+ try {
12
+ manifest = manifestRequire(fullManifestPath);
13
+ }
14
+ catch (err) {
15
+ const mockManifest = process.env.MOCK_MANIFEST;
16
+ if (mockManifest) {
17
+ try {
18
+ manifest = JSON.parse(mockManifest);
19
+ manifest = typeof manifest === 'object' ? manifest : null;
20
+ }
21
+ catch {
22
+ manifest = null;
23
+ }
24
+ if (manifest === null) {
25
+ throw new Error(`Failed to load mock manifest value: ${mockManifest}`);
26
+ }
27
+ }
28
+ else {
29
+ let errorMessage = `Could not load manifest file from ${manifestPath}`;
30
+ if (err?.name === 'SyntaxError') {
31
+ errorMessage = `There are syntax errors in your manifest file (path: ${manifestPath}).`;
32
+ }
33
+ else if (err?.code === 'MODULE_NOT_FOUND') {
34
+ errorMessage = `The manifest file of your mini does not exist. Create it in the path "${manifestPath}".`;
35
+ }
36
+ errorMessage +=
37
+ '\nRead more about the manifest schema here: https://shop.app/minis/docs/reference/manifest/';
38
+ throw new AbortError('Failed to read the manifest file.', errorMessage);
39
+ }
40
+ }
41
+ return manifest;
42
+ }
43
+ const V1_ENTRYPOINTS = ['CONTENT_CARD', 'ACTION_BUTTON', 'EVENT_CARD'];
44
+ export function validateManifest(manifestPath) {
45
+ const manifest = getMiniManifest(manifestPath);
46
+ const validator = new Validator();
47
+ const result = validator.validate(manifest, manifestSchema);
48
+ if (manifest.entry_points?.some((entry_point) => entry_point.type && V1_ENTRYPOINTS.includes(entry_point.type))) {
49
+ throw new AbortError(`${V1_ENTRYPOINTS} entry points are no longer supported and must be removed from the manifest.`);
50
+ }
51
+ return {
52
+ valid: result.valid,
53
+ errors: result.errors.map(validationError => validationError.stack),
54
+ };
55
+ }
56
+ //# sourceMappingURL=minis-manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minis-manifest.js","sourceRoot":"","sources":["../../src/utils/minis-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAA;AACzC,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAC,UAAU,EAAC,MAAM,6BAA6B,CAAA;AACtD,OAAO,EAAC,SAAS,EAAC,MAAM,YAAY,CAAA;AAEpC,OAAO,cAAc,MAAM,iCAAiC,CAAC,SAAQ,IAAI,EAAE,MAAM,EAAC,CAAA;AAElF,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAEtD,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,CAAA;AAEtE,MAAM,UAAU,eAAe,CAAC,YAAY,GAAG,qBAAqB;IAClE,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAA;IAC/D,IAAI,QAAa,CAAA;IACjB,IAAI;QACF,QAAQ,GAAG,eAAe,CAAC,gBAAgB,CAAC,CAAA;KAC7C;IAAC,OAAO,GAAQ,EAAE;QACjB,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAA;QAC9C,IAAI,YAAY,EAAE;YAChB,IAAI;gBACF,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;gBACnC,QAAQ,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAA;aAC1D;YAAC,MAAM;gBACN,QAAQ,GAAG,IAAI,CAAA;aAChB;YAED,IAAI,QAAQ,KAAK,IAAI,EAAE;gBACrB,MAAM,IAAI,KAAK,CAAC,uCAAuC,YAAY,EAAE,CAAC,CAAA;aACvE;SACF;aAAM;YACL,IAAI,YAAY,GAAG,qCAAqC,YAAY,EAAE,CAAA;YACtE,IAAI,GAAG,EAAE,IAAI,KAAK,aAAa,EAAE;gBAC/B,YAAY,GAAG,wDAAwD,YAAY,IAAI,CAAA;aACxF;iBAAM,IAAI,GAAG,EAAE,IAAI,KAAK,kBAAkB,EAAE;gBAC3C,YAAY,GAAG,yEAAyE,YAAY,IAAI,CAAA;aACzG;YACD,YAAY;gBACV,6FAA6F,CAAA;YAC/F,MAAM,IAAI,UAAU,CAAC,mCAAmC,EAAE,YAAY,CAAC,CAAA;SACxE;KACF;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,cAAc,GAAG,CAAC,cAAc,EAAE,eAAe,EAAE,YAAY,CAAC,CAAA;AAEtE,MAAM,UAAU,gBAAgB,CAAC,YAAqB;IACpD,MAAM,QAAQ,GAAG,eAAe,CAAC,YAAY,CAAC,CAAA;IAC9C,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAA;IACjC,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAA;IAE3D,IACE,QAAQ,CAAC,YAAY,EAAE,IAAI,CACzB,CAAC,WAA4B,EAAE,EAAE,CAC/B,WAAW,CAAC,IAAI,IAAI,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAChE,EACD;QACA,MAAM,IAAI,UAAU,CAClB,GAAG,cAAc,8EAA8E,CAChG,CAAA;KACF;IAED,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC;KACpE,CAAA;AACH,CAAC"}
@@ -0,0 +1,38 @@
1
+ import _ from 'lodash';
2
+ export declare const getPackageManager: (() => Promise<"yarn" | "npm" | "pnpm">) & _.MemoizedFunction;
3
+ interface UpgradeCommandOptions {
4
+ version?: string;
5
+ exact?: boolean;
6
+ }
7
+ /**
8
+ * Install a package + update package.json and locks
9
+ */
10
+ export declare const getUpgradePackageCommand: (packageName: string, { version, exact }?: UpgradeCommandOptions) => Promise<string>;
11
+ export declare const execUpgradePackageCommand: (packageName: string, { version, exact }?: UpgradeCommandOptions) => Promise<void>;
12
+ /**
13
+ * Install the latest versions that are compatible with the range in package.json
14
+ * Yarn will upgrade in this range if it can and npm will stick with an existing compatible version
15
+ */
16
+ export declare const getInstallCommand: () => Promise<"yarn install" | "npm install --legacy-peer-deps">;
17
+ export declare const execInstallCommand: () => Promise<void>;
18
+ /**
19
+ * Get a package.json script command formatted according to the detected package manager
20
+ */
21
+ export declare const getRunScriptCommand: (scriptName: string, scriptArgs?: string[]) => Promise<string>;
22
+ /**
23
+ * Get a dependency bin command formatted according to the detected package manager
24
+ */
25
+ export declare const getRunBinCommand: (scriptName: string, scriptArgs?: string[]) => Promise<string>;
26
+ /**
27
+ * Get a package.json script or a dependency bin command formatted according to the detected package manager
28
+ */
29
+ export declare const getPackageLatestVersionCommand: (packageName: string) => Promise<string>;
30
+ export declare const hardResetDependencies: () => Promise<[{
31
+ stdout: string[];
32
+ stderr: string[];
33
+ }, {
34
+ stdout: string[];
35
+ stderr: string[];
36
+ }]>;
37
+ export declare const getPackageVersion: (packageName: string) => Promise<string>;
38
+ export {};