@shopify/shop-minis-cli 0.0.0-hackathon.20250221160544

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 (540) hide show
  1. package/.eslintrc.cjs +78 -0
  2. package/LICENSE +21 -0
  3. package/README.md +8 -0
  4. package/README_INTERNAL.md +114 -0
  5. package/build/commands/app/index.d.ts +2 -0
  6. package/build/commands/app/index.js +14 -0
  7. package/build/commands/app/index.js.map +1 -0
  8. package/build/commands/app/link.d.ts +2 -0
  9. package/build/commands/app/link.js +65 -0
  10. package/build/commands/app/link.js.map +1 -0
  11. package/build/commands/app/list.d.ts +2 -0
  12. package/build/commands/app/list.js +45 -0
  13. package/build/commands/app/list.js.map +1 -0
  14. package/build/commands/app/unlink.d.ts +2 -0
  15. package/build/commands/app/unlink.js +55 -0
  16. package/build/commands/app/unlink.js.map +1 -0
  17. package/build/commands/cancel-submission/cancel-submission.d.ts +1 -0
  18. package/build/commands/cancel-submission/cancel-submission.js +59 -0
  19. package/build/commands/cancel-submission/cancel-submission.js.map +1 -0
  20. package/build/commands/cancel-submission/index.d.ts +2 -0
  21. package/build/commands/cancel-submission/index.js +18 -0
  22. package/build/commands/cancel-submission/index.js.map +1 -0
  23. package/build/commands/cancel-submission/types.d.ts +3 -0
  24. package/build/commands/cancel-submission/types.js +2 -0
  25. package/build/commands/cancel-submission/types.js.map +1 -0
  26. package/build/commands/check-submission/index.d.ts +2 -0
  27. package/build/commands/check-submission/index.js +55 -0
  28. package/build/commands/check-submission/index.js.map +1 -0
  29. package/build/commands/check-submission/types.d.ts +3 -0
  30. package/build/commands/check-submission/types.js +2 -0
  31. package/build/commands/check-submission/types.js.map +1 -0
  32. package/build/commands/codemod/index.d.ts +3 -0
  33. package/build/commands/codemod/index.js +47 -0
  34. package/build/commands/codemod/index.js.map +1 -0
  35. package/build/commands/codemod/releases/index.d.ts +7 -0
  36. package/build/commands/codemod/releases/index.js +97 -0
  37. package/build/commands/codemod/releases/index.js.map +1 -0
  38. package/build/commands/codemod/releases/types.d.ts +9 -0
  39. package/build/commands/codemod/releases/types.js +2 -0
  40. package/build/commands/codemod/releases/types.js.map +1 -0
  41. package/build/commands/codemod/releases/v0-0-100.d.ts +3 -0
  42. package/build/commands/codemod/releases/v0-0-100.js +50 -0
  43. package/build/commands/codemod/releases/v0-0-100.js.map +1 -0
  44. package/build/commands/codemod/releases/v0-0-103.d.ts +3 -0
  45. package/build/commands/codemod/releases/v0-0-103.js +43 -0
  46. package/build/commands/codemod/releases/v0-0-103.js.map +1 -0
  47. package/build/commands/codemod/releases/v0-0-105.d.ts +3 -0
  48. package/build/commands/codemod/releases/v0-0-105.js +59 -0
  49. package/build/commands/codemod/releases/v0-0-105.js.map +1 -0
  50. package/build/commands/codemod/releases/v0-0-106.d.ts +3 -0
  51. package/build/commands/codemod/releases/v0-0-106.js +32 -0
  52. package/build/commands/codemod/releases/v0-0-106.js.map +1 -0
  53. package/build/commands/codemod/releases/v0-0-114.d.ts +3 -0
  54. package/build/commands/codemod/releases/v0-0-114.js +48 -0
  55. package/build/commands/codemod/releases/v0-0-114.js.map +1 -0
  56. package/build/commands/codemod/releases/v0-0-115.d.ts +3 -0
  57. package/build/commands/codemod/releases/v0-0-115.js +50 -0
  58. package/build/commands/codemod/releases/v0-0-115.js.map +1 -0
  59. package/build/commands/codemod/releases/v0-0-121.d.ts +3 -0
  60. package/build/commands/codemod/releases/v0-0-121.js +74 -0
  61. package/build/commands/codemod/releases/v0-0-121.js.map +1 -0
  62. package/build/commands/codemod/releases/v0-0-123.d.ts +3 -0
  63. package/build/commands/codemod/releases/v0-0-123.js +33 -0
  64. package/build/commands/codemod/releases/v0-0-123.js.map +1 -0
  65. package/build/commands/codemod/releases/v0-0-125.d.ts +3 -0
  66. package/build/commands/codemod/releases/v0-0-125.js +37 -0
  67. package/build/commands/codemod/releases/v0-0-125.js.map +1 -0
  68. package/build/commands/codemod/releases/v0-0-130.d.ts +3 -0
  69. package/build/commands/codemod/releases/v0-0-130.js +26 -0
  70. package/build/commands/codemod/releases/v0-0-130.js.map +1 -0
  71. package/build/commands/codemod/releases/v0-0-139.d.ts +3 -0
  72. package/build/commands/codemod/releases/v0-0-139.js +26 -0
  73. package/build/commands/codemod/releases/v0-0-139.js.map +1 -0
  74. package/build/commands/codemod/releases/v0-0-42/index.d.ts +3 -0
  75. package/build/commands/codemod/releases/v0-0-42/index.js +46 -0
  76. package/build/commands/codemod/releases/v0-0-42/index.js.map +1 -0
  77. package/build/commands/codemod/releases/v0-0-42/reset-files.d.ts +7 -0
  78. package/build/commands/codemod/releases/v0-0-42/reset-files.js +83 -0
  79. package/build/commands/codemod/releases/v0-0-42/reset-files.js.map +1 -0
  80. package/build/commands/codemod/releases/v0-0-43.d.ts +3 -0
  81. package/build/commands/codemod/releases/v0-0-43.js +32 -0
  82. package/build/commands/codemod/releases/v0-0-43.js.map +1 -0
  83. package/build/commands/codemod/releases/v0-0-44.d.ts +3 -0
  84. package/build/commands/codemod/releases/v0-0-44.js +214 -0
  85. package/build/commands/codemod/releases/v0-0-44.js.map +1 -0
  86. package/build/commands/codemod/releases/v0-0-45.d.ts +3 -0
  87. package/build/commands/codemod/releases/v0-0-45.js +23 -0
  88. package/build/commands/codemod/releases/v0-0-45.js.map +1 -0
  89. package/build/commands/codemod/releases/v0-0-50.d.ts +3 -0
  90. package/build/commands/codemod/releases/v0-0-50.js +34 -0
  91. package/build/commands/codemod/releases/v0-0-50.js.map +1 -0
  92. package/build/commands/codemod/releases/v0-0-54.d.ts +3 -0
  93. package/build/commands/codemod/releases/v0-0-54.js +70 -0
  94. package/build/commands/codemod/releases/v0-0-54.js.map +1 -0
  95. package/build/commands/codemod/releases/v0-0-56.d.ts +3 -0
  96. package/build/commands/codemod/releases/v0-0-56.js +48 -0
  97. package/build/commands/codemod/releases/v0-0-56.js.map +1 -0
  98. package/build/commands/codemod/releases/v0-0-57.d.ts +3 -0
  99. package/build/commands/codemod/releases/v0-0-57.js +41 -0
  100. package/build/commands/codemod/releases/v0-0-57.js.map +1 -0
  101. package/build/commands/codemod/releases/v0-0-58.d.ts +3 -0
  102. package/build/commands/codemod/releases/v0-0-58.js +68 -0
  103. package/build/commands/codemod/releases/v0-0-58.js.map +1 -0
  104. package/build/commands/codemod/releases/v0-0-61.d.ts +3 -0
  105. package/build/commands/codemod/releases/v0-0-61.js +30 -0
  106. package/build/commands/codemod/releases/v0-0-61.js.map +1 -0
  107. package/build/commands/codemod/releases/v0-0-63.d.ts +3 -0
  108. package/build/commands/codemod/releases/v0-0-63.js +42 -0
  109. package/build/commands/codemod/releases/v0-0-63.js.map +1 -0
  110. package/build/commands/codemod/releases/v0-0-64.d.ts +3 -0
  111. package/build/commands/codemod/releases/v0-0-64.js +47 -0
  112. package/build/commands/codemod/releases/v0-0-64.js.map +1 -0
  113. package/build/commands/codemod/releases/v0-0-75.d.ts +3 -0
  114. package/build/commands/codemod/releases/v0-0-75.js +30 -0
  115. package/build/commands/codemod/releases/v0-0-75.js.map +1 -0
  116. package/build/commands/codemod/releases/v0-0-76.d.ts +3 -0
  117. package/build/commands/codemod/releases/v0-0-76.js +32 -0
  118. package/build/commands/codemod/releases/v0-0-76.js.map +1 -0
  119. package/build/commands/codemod/releases/v0-0-77.d.ts +3 -0
  120. package/build/commands/codemod/releases/v0-0-77.js +39 -0
  121. package/build/commands/codemod/releases/v0-0-77.js.map +1 -0
  122. package/build/commands/codemod/releases/v0-0-79.d.ts +3 -0
  123. package/build/commands/codemod/releases/v0-0-79.js +35 -0
  124. package/build/commands/codemod/releases/v0-0-79.js.map +1 -0
  125. package/build/commands/codemod/releases/v0-0-84.d.ts +3 -0
  126. package/build/commands/codemod/releases/v0-0-84.js +41 -0
  127. package/build/commands/codemod/releases/v0-0-84.js.map +1 -0
  128. package/build/commands/codemod/releases/v0-0-85.d.ts +3 -0
  129. package/build/commands/codemod/releases/v0-0-85.js +60 -0
  130. package/build/commands/codemod/releases/v0-0-85.js.map +1 -0
  131. package/build/commands/codemod/releases/v0-0-89.d.ts +3 -0
  132. package/build/commands/codemod/releases/v0-0-89.js +60 -0
  133. package/build/commands/codemod/releases/v0-0-89.js.map +1 -0
  134. package/build/commands/codemod/releases/v0-0-91/index.d.ts +3 -0
  135. package/build/commands/codemod/releases/v0-0-91/index.js +38 -0
  136. package/build/commands/codemod/releases/v0-0-91/index.js.map +1 -0
  137. package/build/commands/codemod/releases/v0-0-91/replace-dev-wrapper.d.ts +5 -0
  138. package/build/commands/codemod/releases/v0-0-91/replace-dev-wrapper.js +45 -0
  139. package/build/commands/codemod/releases/v0-0-91/replace-dev-wrapper.js.map +1 -0
  140. package/build/commands/codemod/releases/v0-0-91/replace-safe-area-imports.d.ts +1 -0
  141. package/build/commands/codemod/releases/v0-0-91/replace-safe-area-imports.js +97 -0
  142. package/build/commands/codemod/releases/v0-0-91/replace-safe-area-imports.js.map +1 -0
  143. package/build/commands/codemod/releases/v0-0-92.d.ts +3 -0
  144. package/build/commands/codemod/releases/v0-0-92.js +38 -0
  145. package/build/commands/codemod/releases/v0-0-92.js.map +1 -0
  146. package/build/commands/codemod/releases/v0-0-93/blank/App-after.d.ts +1 -0
  147. package/build/commands/codemod/releases/v0-0-93/blank/App-after.js +15 -0
  148. package/build/commands/codemod/releases/v0-0-93/blank/App-after.js.map +1 -0
  149. package/build/commands/codemod/releases/v0-0-93/blank/App-before.d.ts +1 -0
  150. package/build/commands/codemod/releases/v0-0-93/blank/App-before.js +13 -0
  151. package/build/commands/codemod/releases/v0-0-93/blank/App-before.js.map +1 -0
  152. package/build/commands/codemod/releases/v0-0-93/index.d.ts +6 -0
  153. package/build/commands/codemod/releases/v0-0-93/index.js +7 -0
  154. package/build/commands/codemod/releases/v0-0-93/index.js.map +1 -0
  155. package/build/commands/codemod/releases/v0-0-93/shoppable-posts/App-after.d.ts +1 -0
  156. package/build/commands/codemod/releases/v0-0-93/shoppable-posts/App-after.js +53 -0
  157. package/build/commands/codemod/releases/v0-0-93/shoppable-posts/App-after.js.map +1 -0
  158. package/build/commands/codemod/releases/v0-0-93/shoppable-posts/App-before.d.ts +1 -0
  159. package/build/commands/codemod/releases/v0-0-93/shoppable-posts/App-before.js +43 -0
  160. package/build/commands/codemod/releases/v0-0-93/shoppable-posts/App-before.js.map +1 -0
  161. package/build/commands/codemod/releases/v0-0-93/shoppable-videos/App-after.d.ts +1 -0
  162. package/build/commands/codemod/releases/v0-0-93/shoppable-videos/App-after.js +49 -0
  163. package/build/commands/codemod/releases/v0-0-93/shoppable-videos/App-after.js.map +1 -0
  164. package/build/commands/codemod/releases/v0-0-93/shoppable-videos/App-before.d.ts +1 -0
  165. package/build/commands/codemod/releases/v0-0-93/shoppable-videos/App-before.js +42 -0
  166. package/build/commands/codemod/releases/v0-0-93/shoppable-videos/App-before.js.map +1 -0
  167. package/build/commands/codemod/releases/v0-0-93.d.ts +3 -0
  168. package/build/commands/codemod/releases/v0-0-93.js +48 -0
  169. package/build/commands/codemod/releases/v0-0-93.js.map +1 -0
  170. package/build/commands/codemod/releases/v0-0-97/index.d.ts +3 -0
  171. package/build/commands/codemod/releases/v0-0-97/index.js +20 -0
  172. package/build/commands/codemod/releases/v0-0-97/index.js.map +1 -0
  173. package/build/commands/codemod/releases/v0-0-97/migrate-to-new-theme.d.ts +1 -0
  174. package/build/commands/codemod/releases/v0-0-97/migrate-to-new-theme.js +47 -0
  175. package/build/commands/codemod/releases/v0-0-97/migrate-to-new-theme.js.map +1 -0
  176. package/build/commands/codemod/releases/v0-0-97/remove-theme-from-config.d.ts +1 -0
  177. package/build/commands/codemod/releases/v0-0-97/remove-theme-from-config.js +105 -0
  178. package/build/commands/codemod/releases/v0-0-97/remove-theme-from-config.js.map +1 -0
  179. package/build/commands/config.d.ts +17 -0
  180. package/build/commands/config.js +45 -0
  181. package/build/commands/config.js.map +1 -0
  182. package/build/commands/create-extension/constants.d.ts +44 -0
  183. package/build/commands/create-extension/constants.js +111 -0
  184. package/build/commands/create-extension/constants.js.map +1 -0
  185. package/build/commands/create-extension/index.d.ts +2 -0
  186. package/build/commands/create-extension/index.js +68 -0
  187. package/build/commands/create-extension/index.js.map +1 -0
  188. package/build/commands/create-extension/types.d.ts +13 -0
  189. package/build/commands/create-extension/types.js +8 -0
  190. package/build/commands/create-extension/types.js.map +1 -0
  191. package/build/commands/create-extension/utils/add-target-to-config.d.ts +2 -0
  192. package/build/commands/create-extension/utils/add-target-to-config.js +48 -0
  193. package/build/commands/create-extension/utils/add-target-to-config.js.map +1 -0
  194. package/build/commands/create-extension/utils/create-extension-files.d.ts +11 -0
  195. package/build/commands/create-extension/utils/create-extension-files.js +96 -0
  196. package/build/commands/create-extension/utils/create-extension-files.js.map +1 -0
  197. package/build/commands/create-extension/utils/create-from-template.d.ts +3 -0
  198. package/build/commands/create-extension/utils/create-from-template.js +47 -0
  199. package/build/commands/create-extension/utils/create-from-template.js.map +1 -0
  200. package/build/commands/create-extension/utils/format-extension-files.d.ts +1 -0
  201. package/build/commands/create-extension/utils/format-extension-files.js +22 -0
  202. package/build/commands/create-extension/utils/format-extension-files.js.map +1 -0
  203. package/build/commands/create-mini/index.d.ts +2 -0
  204. package/build/commands/create-mini/index.js +182 -0
  205. package/build/commands/create-mini/index.js.map +1 -0
  206. package/build/commands/create-mini/utils/examples.d.ts +4 -0
  207. package/build/commands/create-mini/utils/examples.js +44 -0
  208. package/build/commands/create-mini/utils/examples.js.map +1 -0
  209. package/build/commands/create-mini/utils/template-app.d.ts +2 -0
  210. package/build/commands/create-mini/utils/template-app.js +86 -0
  211. package/build/commands/create-mini/utils/template-app.js.map +1 -0
  212. package/build/commands/dev/index.d.ts +13 -0
  213. package/build/commands/dev/index.js +95 -0
  214. package/build/commands/dev/index.js.map +1 -0
  215. package/build/commands/dev/utils/android.d.ts +18 -0
  216. package/build/commands/dev/utils/android.js +158 -0
  217. package/build/commands/dev/utils/android.js.map +1 -0
  218. package/build/commands/dev/utils/app-screens.d.ts +9 -0
  219. package/build/commands/dev/utils/app-screens.js +170 -0
  220. package/build/commands/dev/utils/app-screens.js.map +1 -0
  221. package/build/commands/dev/utils/binaries.d.ts +5 -0
  222. package/build/commands/dev/utils/binaries.js +17 -0
  223. package/build/commands/dev/utils/binaries.js.map +1 -0
  224. package/build/commands/dev/utils/build-type.d.ts +2 -0
  225. package/build/commands/dev/utils/build-type.js +14 -0
  226. package/build/commands/dev/utils/build-type.js.map +1 -0
  227. package/build/commands/dev/utils/cache-cleanup.d.ts +1 -0
  228. package/build/commands/dev/utils/cache-cleanup.js +45 -0
  229. package/build/commands/dev/utils/cache-cleanup.js.map +1 -0
  230. package/build/commands/dev/utils/deeplink.d.ts +22 -0
  231. package/build/commands/dev/utils/deeplink.js +70 -0
  232. package/build/commands/dev/utils/deeplink.js.map +1 -0
  233. package/build/commands/dev/utils/env-config.d.ts +2 -0
  234. package/build/commands/dev/utils/env-config.js +47 -0
  235. package/build/commands/dev/utils/env-config.js.map +1 -0
  236. package/build/commands/dev/utils/interactive-terminal.d.ts +25 -0
  237. package/build/commands/dev/utils/interactive-terminal.js +244 -0
  238. package/build/commands/dev/utils/interactive-terminal.js.map +1 -0
  239. package/build/commands/dev/utils/metro/metro-config.d.ts +2 -0
  240. package/build/commands/dev/utils/metro/metro-config.js +27 -0
  241. package/build/commands/dev/utils/metro/metro-config.js.map +1 -0
  242. package/build/commands/dev/utils/metro/metro-minis-module-resolver.d.ts +6 -0
  243. package/build/commands/dev/utils/metro/metro-minis-module-resolver.js +11 -0
  244. package/build/commands/dev/utils/metro/metro-minis-module-resolver.js.map +1 -0
  245. package/build/commands/dev/utils/metro/metro-reporter.d.ts +21 -0
  246. package/build/commands/dev/utils/metro/metro-reporter.js +46 -0
  247. package/build/commands/dev/utils/metro/metro-reporter.js.map +1 -0
  248. package/build/commands/dev/utils/metro/metro-server-middleware.d.ts +10 -0
  249. package/build/commands/dev/utils/metro/metro-server-middleware.js +74 -0
  250. package/build/commands/dev/utils/metro/metro-server-middleware.js.map +1 -0
  251. package/build/commands/dev/utils/metro/metro-server.d.ts +6 -0
  252. package/build/commands/dev/utils/metro/metro-server.js +26 -0
  253. package/build/commands/dev/utils/metro/metro-server.js.map +1 -0
  254. package/build/commands/dev/utils/network.d.ts +20 -0
  255. package/build/commands/dev/utils/network.js +129 -0
  256. package/build/commands/dev/utils/network.js.map +1 -0
  257. package/build/commands/dev/utils/platform.d.ts +18 -0
  258. package/build/commands/dev/utils/platform.js +41 -0
  259. package/build/commands/dev/utils/platform.js.map +1 -0
  260. package/build/commands/dev/utils/prompt-binary-upgrade.d.ts +1 -0
  261. package/build/commands/dev/utils/prompt-binary-upgrade.js +12 -0
  262. package/build/commands/dev/utils/prompt-binary-upgrade.js.map +1 -0
  263. package/build/commands/dev/utils/react-native-version.d.ts +4 -0
  264. package/build/commands/dev/utils/react-native-version.js +23 -0
  265. package/build/commands/dev/utils/react-native-version.js.map +1 -0
  266. package/build/commands/dev/utils/simulator.d.ts +22 -0
  267. package/build/commands/dev/utils/simulator.js +113 -0
  268. package/build/commands/dev/utils/simulator.js.map +1 -0
  269. package/build/commands/dev/utils/start-app/config.d.ts +5 -0
  270. package/build/commands/dev/utils/start-app/config.js +24 -0
  271. package/build/commands/dev/utils/start-app/config.js.map +1 -0
  272. package/build/commands/dev/utils/start-app/start-app-with-options.d.ts +3 -0
  273. package/build/commands/dev/utils/start-app/start-app-with-options.js +95 -0
  274. package/build/commands/dev/utils/start-app/start-app-with-options.js.map +1 -0
  275. package/build/commands/dev/utils/start-app/start-app.d.ts +3 -0
  276. package/build/commands/dev/utils/start-app/start-app.js +10 -0
  277. package/build/commands/dev/utils/start-app/start-app.js.map +1 -0
  278. package/build/commands/dev/utils/start-app/types.d.ts +14 -0
  279. package/build/commands/dev/utils/start-app/types.js +2 -0
  280. package/build/commands/dev/utils/start-app/types.js.map +1 -0
  281. package/build/commands/dev/utils/types.d.ts +24 -0
  282. package/build/commands/dev/utils/types.js +7 -0
  283. package/build/commands/dev/utils/types.js.map +1 -0
  284. package/build/commands/dev/utils/version.d.ts +64 -0
  285. package/build/commands/dev/utils/version.js +101 -0
  286. package/build/commands/dev/utils/version.js.map +1 -0
  287. package/build/commands/dev/utils/with-retries.d.ts +4 -0
  288. package/build/commands/dev/utils/with-retries.js +24 -0
  289. package/build/commands/dev/utils/with-retries.js.map +1 -0
  290. package/build/commands/doctor/index.d.ts +6 -0
  291. package/build/commands/doctor/index.js +21 -0
  292. package/build/commands/doctor/index.js.map +1 -0
  293. package/build/commands/doctor/utils/diagnose-dependencies.d.ts +7 -0
  294. package/build/commands/doctor/utils/diagnose-dependencies.js +113 -0
  295. package/build/commands/doctor/utils/diagnose-dependencies.js.map +1 -0
  296. package/build/commands/features/index.d.ts +6 -0
  297. package/build/commands/features/index.js +135 -0
  298. package/build/commands/features/index.js.map +1 -0
  299. package/build/commands/generate-graphql-types/index.d.ts +6 -0
  300. package/build/commands/generate-graphql-types/index.js +33 -0
  301. package/build/commands/generate-graphql-types/index.js.map +1 -0
  302. package/build/commands/generate-graphql-types/utils/generate-graphql-types.d.ts +2 -0
  303. package/build/commands/generate-graphql-types/utils/generate-graphql-types.js +67 -0
  304. package/build/commands/generate-graphql-types/utils/generate-graphql-types.js.map +1 -0
  305. package/build/commands/generate-graphql-types/utils/get-graphql-config.d.ts +1 -0
  306. package/build/commands/generate-graphql-types/utils/get-graphql-config.js +31 -0
  307. package/build/commands/generate-graphql-types/utils/get-graphql-config.js.map +1 -0
  308. package/build/commands/generate-graphql-types/utils/get-graphql-config.spec.d.ts +1 -0
  309. package/build/commands/generate-graphql-types/utils/get-graphql-config.spec.js +57 -0
  310. package/build/commands/generate-graphql-types/utils/get-graphql-config.spec.js.map +1 -0
  311. package/build/commands/info/index.d.ts +3 -0
  312. package/build/commands/info/index.js +42 -0
  313. package/build/commands/info/index.js.map +1 -0
  314. package/build/commands/setup/index.d.ts +2 -0
  315. package/build/commands/setup/index.js +103 -0
  316. package/build/commands/setup/index.js.map +1 -0
  317. package/build/commands/submit/config.d.ts +9 -0
  318. package/build/commands/submit/config.js +18 -0
  319. package/build/commands/submit/config.js.map +1 -0
  320. package/build/commands/submit/errors.d.ts +19 -0
  321. package/build/commands/submit/errors.js +87 -0
  322. package/build/commands/submit/errors.js.map +1 -0
  323. package/build/commands/submit/gcs.d.ts +6 -0
  324. package/build/commands/submit/gcs.js +21 -0
  325. package/build/commands/submit/gcs.js.map +1 -0
  326. package/build/commands/submit/index.d.ts +2 -0
  327. package/build/commands/submit/index.js +25 -0
  328. package/build/commands/submit/index.js.map +1 -0
  329. package/build/commands/submit/submit.d.ts +5 -0
  330. package/build/commands/submit/submit.js +268 -0
  331. package/build/commands/submit/submit.js.map +1 -0
  332. package/build/commands/submit/tasks.d.ts +37 -0
  333. package/build/commands/submit/tasks.js +91 -0
  334. package/build/commands/submit/tasks.js.map +1 -0
  335. package/build/commands/submit/types.d.ts +14 -0
  336. package/build/commands/submit/types.js +2 -0
  337. package/build/commands/submit/types.js.map +1 -0
  338. package/build/commands/submit/utils/assert-core-dependencies-version.d.ts +1 -0
  339. package/build/commands/submit/utils/assert-core-dependencies-version.js +73 -0
  340. package/build/commands/submit/utils/assert-core-dependencies-version.js.map +1 -0
  341. package/build/commands/submit/utils/request-entry-point-params.d.ts +1 -0
  342. package/build/commands/submit/utils/request-entry-point-params.js +43 -0
  343. package/build/commands/submit/utils/request-entry-point-params.js.map +1 -0
  344. package/build/commands/submit/validation.d.ts +1 -0
  345. package/build/commands/submit/validation.js +14 -0
  346. package/build/commands/submit/validation.js.map +1 -0
  347. package/build/commands/upgrade/index.d.ts +13 -0
  348. package/build/commands/upgrade/index.js +70 -0
  349. package/build/commands/upgrade/index.js.map +1 -0
  350. package/build/commands/upgrade/utils/clear-metro-cache.d.ts +1 -0
  351. package/build/commands/upgrade/utils/clear-metro-cache.js +12 -0
  352. package/build/commands/upgrade/utils/clear-metro-cache.js.map +1 -0
  353. package/build/commands/upgrade/utils/cli.d.ts +1 -0
  354. package/build/commands/upgrade/utils/cli.js +15 -0
  355. package/build/commands/upgrade/utils/cli.js.map +1 -0
  356. package/build/commands/validate-manifest/index.d.ts +3 -0
  357. package/build/commands/validate-manifest/index.js +38 -0
  358. package/build/commands/validate-manifest/index.js.map +1 -0
  359. package/build/constants/extensions.d.ts +21 -0
  360. package/build/constants/extensions.js +25 -0
  361. package/build/constants/extensions.js.map +1 -0
  362. package/build/data/accept-invitation.d.ts +4 -0
  363. package/build/data/accept-invitation.js +16 -0
  364. package/build/data/accept-invitation.js.map +1 -0
  365. package/build/data/cancel-submission.d.ts +22 -0
  366. package/build/data/cancel-submission.js +26 -0
  367. package/build/data/cancel-submission.js.map +1 -0
  368. package/build/data/create-submission.d.ts +20 -0
  369. package/build/data/create-submission.js +27 -0
  370. package/build/data/create-submission.js.map +1 -0
  371. package/build/data/create-upload.d.ts +21 -0
  372. package/build/data/create-upload.js +40 -0
  373. package/build/data/create-upload.js.map +1 -0
  374. package/build/data/get-linked-apps.d.ts +13 -0
  375. package/build/data/get-linked-apps.js +21 -0
  376. package/build/data/get-linked-apps.js.map +1 -0
  377. package/build/data/get-submissions.d.ts +27 -0
  378. package/build/data/get-submissions.js +33 -0
  379. package/build/data/get-submissions.js.map +1 -0
  380. package/build/data/gql-client.d.ts +8 -0
  381. package/build/data/gql-client.js +14 -0
  382. package/build/data/gql-client.js.map +1 -0
  383. package/build/data/mini-create.d.ts +19 -0
  384. package/build/data/mini-create.js +34 -0
  385. package/build/data/mini-create.js.map +1 -0
  386. package/build/data/mini-link-app.d.ts +20 -0
  387. package/build/data/mini-link-app.js +35 -0
  388. package/build/data/mini-link-app.js.map +1 -0
  389. package/build/data/mini-unlink-app.d.ts +18 -0
  390. package/build/data/mini-unlink-app.js +25 -0
  391. package/build/data/mini-unlink-app.js.map +1 -0
  392. package/build/data/mini.d.ts +7 -0
  393. package/build/data/mini.js +16 -0
  394. package/build/data/mini.js.map +1 -0
  395. package/build/data/partners/query.d.ts +32 -0
  396. package/build/data/partners/query.js +123 -0
  397. package/build/data/partners/query.js.map +1 -0
  398. package/build/data/partners/types.d.ts +55 -0
  399. package/build/data/partners/types.js +6 -0
  400. package/build/data/partners/types.js.map +1 -0
  401. package/build/data/types/autogenerated/shop-minis-admin-api/fragment-masking.d.ts +13 -0
  402. package/build/data/types/autogenerated/shop-minis-admin-api/fragment-masking.js +7 -0
  403. package/build/data/types/autogenerated/shop-minis-admin-api/fragment-masking.js.map +1 -0
  404. package/build/data/types/autogenerated/shop-minis-admin-api/gql.d.ts +107 -0
  405. package/build/data/types/autogenerated/shop-minis-admin-api/gql.js +28 -0
  406. package/build/data/types/autogenerated/shop-minis-admin-api/gql.js.map +1 -0
  407. package/build/data/types/autogenerated/shop-minis-admin-api/graphql.d.ts +2177 -0
  408. package/build/data/types/autogenerated/shop-minis-admin-api/graphql.js +1474 -0
  409. package/build/data/types/autogenerated/shop-minis-admin-api/graphql.js.map +1 -0
  410. package/build/data/types/autogenerated/shop-minis-admin-api/index.d.ts +2 -0
  411. package/build/data/types/autogenerated/shop-minis-admin-api/index.js +3 -0
  412. package/build/data/types/autogenerated/shop-minis-admin-api/index.js.map +1 -0
  413. package/build/dev-panel/asset-manifest.json +13 -0
  414. package/build/dev-panel/checkmark.svg +3 -0
  415. package/build/dev-panel/chevron.svg +3 -0
  416. package/build/dev-panel/copy.svg +4 -0
  417. package/build/dev-panel/get-started.svg +3 -0
  418. package/build/dev-panel/how-to.svg +3 -0
  419. package/build/dev-panel/index.html +1 -0
  420. package/build/dev-panel/references.svg +3 -0
  421. package/build/dev-panel/robots.txt +3 -0
  422. package/build/dev-panel/static/css/main.94b1dbb1.css +2 -0
  423. package/build/dev-panel/static/css/main.94b1dbb1.css.map +1 -0
  424. package/build/dev-panel/static/js/main.917a564c.js +3 -0
  425. package/build/dev-panel/static/js/main.917a564c.js.LICENSE.txt +41 -0
  426. package/build/dev-panel/static/js/main.917a564c.js.map +1 -0
  427. package/build/dev-panel/topics.svg +3 -0
  428. package/build/index.d.ts +2 -0
  429. package/build/index.js +53 -0
  430. package/build/index.js.map +1 -0
  431. package/build/schemas/manifest.schema.json +185 -0
  432. package/build/templates-index.d.ts +6 -0
  433. package/build/templates-index.js +24 -0
  434. package/build/templates-index.js.map +1 -0
  435. package/build/utils/archive.d.ts +30 -0
  436. package/build/utils/archive.js +38 -0
  437. package/build/utils/archive.js.map +1 -0
  438. package/build/utils/codemod.d.ts +86 -0
  439. package/build/utils/codemod.js +161 -0
  440. package/build/utils/codemod.js.map +1 -0
  441. package/build/utils/common-tasks.d.ts +1 -0
  442. package/build/utils/common-tasks.js +44 -0
  443. package/build/utils/common-tasks.js.map +1 -0
  444. package/build/utils/development-params.d.ts +13 -0
  445. package/build/utils/development-params.js +44 -0
  446. package/build/utils/development-params.js.map +1 -0
  447. package/build/utils/exec-async-child-process.d.ts +18 -0
  448. package/build/utils/exec-async-child-process.js +41 -0
  449. package/build/utils/exec-async-child-process.js.map +1 -0
  450. package/build/utils/extensions.d.ts +13 -0
  451. package/build/utils/extensions.js +87 -0
  452. package/build/utils/extensions.js.map +1 -0
  453. package/build/utils/extract-id-gid.d.ts +1 -0
  454. package/build/utils/extract-id-gid.js +16 -0
  455. package/build/utils/extract-id-gid.js.map +1 -0
  456. package/build/utils/file.d.ts +1 -0
  457. package/build/utils/file.js +7 -0
  458. package/build/utils/file.js.map +1 -0
  459. package/build/utils/loading-state-handlers.d.ts +10 -0
  460. package/build/utils/loading-state-handlers.js +23 -0
  461. package/build/utils/loading-state-handlers.js.map +1 -0
  462. package/build/utils/minis-manifest.d.ts +8 -0
  463. package/build/utils/minis-manifest.js +90 -0
  464. package/build/utils/minis-manifest.js.map +1 -0
  465. package/build/utils/package-manager.d.ts +52 -0
  466. package/build/utils/package-manager.js +139 -0
  467. package/build/utils/package-manager.js.map +1 -0
  468. package/build/utils/patch-package.d.ts +5 -0
  469. package/build/utils/patch-package.js +76 -0
  470. package/build/utils/patch-package.js.map +1 -0
  471. package/build/utils/path.d.ts +1 -0
  472. package/build/utils/path.js +8 -0
  473. package/build/utils/path.js.map +1 -0
  474. package/build/utils/replace-strings-in-template.d.ts +1 -0
  475. package/build/utils/replace-strings-in-template.js +15 -0
  476. package/build/utils/replace-strings-in-template.js.map +1 -0
  477. package/build/utils/semver.d.ts +1 -0
  478. package/build/utils/semver.js +19 -0
  479. package/build/utils/semver.js.map +1 -0
  480. package/build/utils/sync-manifest.d.ts +5 -0
  481. package/build/utils/sync-manifest.js +26 -0
  482. package/build/utils/sync-manifest.js.map +1 -0
  483. package/build/utils/wrap-with-loading-indicator.d.ts +9 -0
  484. package/build/utils/wrap-with-loading-indicator.js +16 -0
  485. package/build/utils/wrap-with-loading-indicator.js.map +1 -0
  486. package/package.json +102 -0
  487. package/scripts/graphql-codegen.ts +29 -0
  488. package/scripts/test-template.ts +66 -0
  489. package/shipit.hackathon-2025.yml +9 -0
  490. package/shipit.snapshot.yml +9 -0
  491. package/templates/__template_blank/src/App.tsx +24 -0
  492. package/templates/__template_blank/src/index.tsx +9 -0
  493. package/templates/__template_common/.cursorrules +141 -0
  494. package/templates/__template_common/.eslintignore +1 -0
  495. package/templates/__template_common/.eslintrc.js +3 -0
  496. package/templates/__template_common/.graphqlrc.js +1 -0
  497. package/templates/__template_common/.prettierrc.json +8 -0
  498. package/templates/__template_common/assets.d.ts +14 -0
  499. package/templates/__template_common/babel.config.js +5 -0
  500. package/templates/__template_common/gitignore +5 -0
  501. package/templates/__template_common/index.tsx +5 -0
  502. package/templates/__template_common/metro.config.js +5 -0
  503. package/templates/__template_common/package.json +35 -0
  504. package/templates/__template_common/src/manifest.json +6 -0
  505. package/templates/__template_common/tsconfig.json +41 -0
  506. package/templates/__template_getting_started/src/App.tsx +23 -0
  507. package/templates/__template_getting_started/src/index.tsx +9 -0
  508. package/templates/__template_getting_started/src/manifest.json +7 -0
  509. package/templates/__template_getting_started/src/screens/HomeScreen.tsx +128 -0
  510. package/templates/__template_getting_started/src/screens/NativeFeaturesScreen.tsx +137 -0
  511. package/templates/__template_getting_started/src/types/screens.ts +5 -0
  512. package/templates/__template_shoppable_posts/src/App.tsx +42 -0
  513. package/templates/__template_shoppable_posts/src/index.tsx +9 -0
  514. package/templates/__template_shoppable_videos/src/App.tsx +39 -0
  515. package/templates/__template_shoppable_videos/src/index.tsx +9 -0
  516. package/templates/extensions/components/__template_blank/render.tsx +9 -0
  517. package/templates/extensions/components/__template_bundle-collection/render.tsx +31 -0
  518. package/templates/extensions/components/__template_bundle-collection/seed.ts +26 -0
  519. package/templates/extensions/components/__template_bundle-selector/render.tsx +51 -0
  520. package/templates/extensions/components/__template_bundle-selector/seed.ts +72 -0
  521. package/templates/extensions/components/__template_default-card/render.tsx +24 -0
  522. package/templates/extensions/components/__template_default-card/seed.ts +10 -0
  523. package/templates/extensions/components/__template_image-collection/render.tsx +17 -0
  524. package/templates/extensions/components/__template_image-collection/seed.ts +70 -0
  525. package/templates/extensions/components/__template_link/render.tsx +17 -0
  526. package/templates/extensions/components/__template_link/seed.ts +5 -0
  527. package/templates/extensions/components/__template_product-offer-card/render.tsx +17 -0
  528. package/templates/extensions/components/__template_product-offer-card/seed.ts +44 -0
  529. package/templates/extensions/components/__template_survey-single-response/render.tsx +26 -0
  530. package/templates/extensions/components/__template_survey-single-response/seed.ts +22 -0
  531. package/templates/extensions/components/__template_video-collection/render.tsx +17 -0
  532. package/templates/extensions/components/__template_video-collection/seed.ts +37 -0
  533. package/templates/extensions/queries/__template_order-confirmation-page/input.graphql +5 -0
  534. package/templates/extensions/queries/__template_order-confirmation-page/input.graphql.d.ts +24 -0
  535. package/templates/extensions/queries/__template_order-management-page/input.graphql +5 -0
  536. package/templates/extensions/queries/__template_order-management-page/input.graphql.d.ts +24 -0
  537. package/templates/extensions/queries/__template_product-page/input.graphql +9 -0
  538. package/templates/extensions/queries/__template_product-page/input.graphql.d.ts +36 -0
  539. package/templates/extensions/queries/__template_store-page/input.graphql +5 -0
  540. package/templates/extensions/queries/__template_store-page/input.graphql.d.ts +24 -0
package/.eslintrc.cjs ADDED
@@ -0,0 +1,78 @@
1
+ module.exports = {
2
+ root: true,
3
+ extends: [
4
+ '@react-native-community',
5
+ 'plugin:@shopify/typescript',
6
+ 'plugin:@shopify/prettier',
7
+ ],
8
+ parserOptions: {
9
+ ecmaVersion: 6,
10
+ project: './tsconfig.json',
11
+ },
12
+ rules: {
13
+ '@babel/no-unused-expressions': 0,
14
+ '@typescript-eslint/no-unused-expressions': [
15
+ 'error',
16
+ {
17
+ allowShortCircuit: true,
18
+ },
19
+ ],
20
+ 'line-comment-position': 0,
21
+ 'no-implicit-coercion': 2,
22
+ 'consistent-return': 0,
23
+ 'no-console': 0,
24
+ 'spaced-comment': 0,
25
+ 'no-warning-comments': 'off',
26
+ 'no-process-env': 'off',
27
+ 'lines-around-comment': 'off',
28
+ '@shopify/typescript/prefer-pascal-case-enums': 'off',
29
+ '@typescript-eslint/naming-convention': 'off',
30
+ '@typescript-eslint/ban-ts-comment': 'off',
31
+ '@typescript-eslint/consistent-indexed-object-style': 'off',
32
+ '@typescript-eslint/member-ordering': 'off',
33
+ 'import/no-named-as-default': 'off',
34
+ 'import/named': 'off',
35
+ 'id-blacklist': [2, 'blacklist', 'whitelist'],
36
+ '@typescript-eslint/camelcase': 'off',
37
+ '@typescript-eslint/ban-ts-ignore': 'off',
38
+ '@typescript-eslint/ban-types': 'off',
39
+ '@typescript-eslint/class-name-casing': 'off',
40
+ '@typescript-eslint/array-type': 'off',
41
+ '@typescript-eslint/no-namespace': 'off',
42
+ '@typescript-eslint/no-unused-vars': [
43
+ 'error',
44
+ {
45
+ argsIgnorePattern: '^_',
46
+ varsIgnorePattern: '^_.{1,}',
47
+ },
48
+ ],
49
+ '@typescript-eslint/no-shadow': 'error',
50
+ 'no-shadow': 'off',
51
+ 'max-len': [
52
+ 'error',
53
+ {
54
+ code: 200,
55
+ ignoreUrls: true,
56
+ },
57
+ ],
58
+
59
+ // Type files generated by codegen have eslint disabled with a comment
60
+ 'eslint-comments/no-unlimited-disable': 'off',
61
+ },
62
+ overrides: [
63
+ {
64
+ files: ['*.ts'],
65
+ rules: {
66
+ '@typescript-eslint/no-non-null-assertion': 0,
67
+ 'shopify/typescript/prefer-pascal-case-enums': 0,
68
+ },
69
+ },
70
+ {
71
+ files: ['*.spec.*', '*.test.*'],
72
+ rules: {
73
+ 'require-await': 2,
74
+ '@typescript-eslint/no-floating-promises': 2,
75
+ },
76
+ },
77
+ ],
78
+ }
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 Shopify Inc
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,8 @@
1
+ # Shop Minis CLI
2
+
3
+ A CLI tool to create, run and publish Shop Minis.
4
+
5
+ ## Getting started
6
+
7
+ Use this CLI tool to create a new Shop Mini by running `npm init @shopify/shop-mini` or `yarn create @shopify/shop-mini`.
8
+ Follow the instructions in the console to run your mini.
@@ -0,0 +1,114 @@
1
+ # Shop minis CLI
2
+
3
+ The CLI tool to create, run and publish minis.
4
+
5
+ ## Getting started
6
+
7
+ _If you want to read on how to use the CLI, jump to [using the cli](#using-the-cli) section_
8
+
9
+ ### Set up
10
+
11
+ 1. Clone the repository with `dev clone shop-minis-cli`
12
+ 2. Install dependencies: `yarn`
13
+
14
+ ### Development
15
+
16
+ When working with templates or the create mini command, you can easily test your local changes by creating a new mini running `yarn build:cli && yarn shop-minis create`.
17
+
18
+ However, testing changes on the dev command gets more complicated because newly created minis get the CLI as a dependency from npm instead of using our local version with the changes we want to test. Follow instructions below to link a mini to your local CLI:
19
+
20
+ 1. In the CLI folder, run `yarn link`.
21
+ 2. In your mini (create a new mini if you don't have a mini already), run `yarn link @shopify/shop-minis-cli`
22
+ 3. Whenever you change something in the CLI, run `yarn build`.
23
+ 4. Rerun `yarn start` in the mini, the command should reflect the latest changes you did in the CLI project.
24
+
25
+ #### Installing dependencies
26
+
27
+ Use `yarn`, don't create or commit an npm `package-lock.json`. `yarn.lock` is the source of truth.
28
+
29
+ ### Testing changes with snapshot releases
30
+
31
+ `yarn link` helps us a lot when testing changes to CLI locally, but there are edge cases where symbolic links interfere with the functionality we are actually trying to test.
32
+
33
+ In those cases, you can create an snapshot release:
34
+
35
+ 1. checkout the snapshot branch: `git checkout -b snapshot origin/snapshot`
36
+ 2. the branch might be old and stale, so reset it to the latest main: `git reset --hard origin/main`
37
+ 3. bring your changes to this branch via `git merge`, `git rebase`, `git cherry-pick` or whatever method you prefer
38
+ 4. push the branch and the tag: `git push origin snapshot` (you may need to use the `--force`)
39
+ 5. run the shipit deployment in [Shipit shop-minis-cli/snapshot](https://shipit.shopify.io/shopify/shop-minis-cli/snapshot) (Ignore the message about bumping the version - we use a timestamp for the version like `0.0.0-snapshot.20240910122838`)
40
+ 6. install the snapshot version in the mini you want to use to test the new changes of the CLI
41
+ 7. test it!
42
+ 8. if more changes are needed, include them in the snapshot branch, push and redeploy
43
+
44
+ snapshot versions are released to npm with the tag `snapshot`, so they won't be installed by partners unless they explicitly use the tag (`npm install @shopify/shop-minis-cli@snapshot`)
45
+
46
+ ## Using the CLI
47
+
48
+ To use the CLI create a new mini: `yarn create @shopify/shop-mini`
49
+
50
+ Then use `yarn shop-minis --help` to get instructions on how to use the CLI.
51
+
52
+ ## Creating a new release
53
+
54
+ 1. Check out and pull the latest `main` branch.
55
+ 2. Run `yarn version --patch`.
56
+ 3. Push both the version bump commit and the tag `git push origin main --follow-tags`
57
+ 4. In [shipit](https://shipit.shopify.io/shopify/shop-minis-cli/production), find the commit corresponding to the new release and deploy it.
58
+ 5. After the deploy succeeds, the new version should be published in the [npm public registry](https://www.npmjs.com/package/@shopify/shop-minis-cli) and ready to be used.
59
+
60
+ ## Sharing snapshot builds with partners
61
+
62
+ If you need to share a snapshot build with a partner, follow these steps.
63
+
64
+ 1. Follow [these docs](https://shop.docs.shopify.io/docs/shop-client/tophatting#manually-triggering-snapshot-builds) to manually create the snapshot build from the branch you want to share with the partner (use `main` as the branch if the change you want to share is already merged)
65
+ 2. When the snapshot build is ready, take note of the version and build number. (In shipit, snapshot builds are usually named `<version>-snapshot.<build number>`, example: `2.45.0-snapshot.1645678813`)
66
+ 3. Instruct the partner to run the mini, adding `--snapshot-version <version>+<build number>` to the start command. Example: `yarn start --snapshot-version 2.108.1+1685260045` or `npm start -- --snapshot-version 2.108.1+1685260045`
67
+
68
+ Using this argument should download a new Shop binary in the partner's device. Note that android and iOS snapshots will have different build numbers, so check with the partner which platform they want to use.
69
+
70
+ ## Codemods
71
+
72
+ If some changes in the SDK or CLI require changes to the way we run minis you might need a codemod for the next version.
73
+
74
+ Imagine `shop-minis-cli` is currently on `v0.0.74`. You will be creating the codemod for `v0.0.75`
75
+
76
+ - Before making any changes checkout `v0.0.74`, run a cli build and create a mini.
77
+ - Optional: Set up git for the mini and make an initial commit. This will allow you to reset the state later.
78
+ - Create `src/commands/codemod/releases/v0-0-75.ts`. Copying the previous codemod will ensure you get the right format
79
+ - Add your codemod to `src/commands/codemod/releases/index.ts`
80
+ - [Run the cli and link your mini](#development)
81
+ - Make your changes
82
+ - Run `yarn shop-minis codemod --from-version 0.0.74 --to-version 0.0.75 --no-hard-reset-dependencies --verbose` to test your changes
83
+ - Use the git diff to decide if your codemod worked as expected. Also verify your test mini still runs as expected.
84
+ - Use git reset, make changes and re-run the codemod until it works as expected
85
+ - When everything works as expected send a PR with the changes.
86
+ - Ensure this PR gets merged before `v0.0.75` is tagged/released. If someone tags/releases `v0.0.75` before your change lands you will need to rename your codemod to be the next version. This is because once cli users have upgraded to `v0.0.75` this codemod will never be run if it is merged and included in a later release
87
+
88
+ ### Codemod testing
89
+
90
+ You can add unit tests for each codemod if required. Each codemod will also be validated by CI. The CI tests work as follows:
91
+
92
+ - Mini A is created with the latest CLI
93
+ - Mini B is created with CLI v0.0.42 (The first version supported by codemods)
94
+ - Mini B is upgraded by running all the codemods
95
+ - The expectation is that Mini B equals Mini A (old mini + codemods === new mini)
96
+
97
+ See [upgrade_command_integration.yml](.github/workflows/upgrade_command_integration.yml) and [an example run](https://github.com/Shopify/shop-minis-cli/actions/runs/5544190658/jobs/10121293912?pr=306) for details.
98
+
99
+ ### Troubleshooting
100
+
101
+ #### Making sure the partner is using the right version
102
+
103
+ To make sure the partner is using the right version, you can ask them to provide a screenshot of the About screen of the app (Profile tab -> Support -> About)
104
+
105
+ The version shown in the screen should match the snapshot version you handled them.
106
+
107
+ #### Making sure the partner build exists
108
+
109
+ All partner builds are uploaded to a bucket in google cloud. If you created a snapshot, there should be a partner build in [this bucket](https://console.cloud.google.com/storage/browser/minis_cli_app_builds;tab=objects?project=arrive-167720&prefix=&forceOnObjectsSortingFiltering=false) matching the version of the snapshot.
110
+
111
+ If you can't find your build, try looking for errors in the pipelines that create these builds:
112
+
113
+ - Pipeline for iOS: https://buildkite.com/shopify/shipit-mobile-shop-ios-minis-partner-build
114
+ - Pipeline for Android: https://buildkite.com/shopify/shipit-mobile-shop-android-minis-partner-build
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function loadCommand(parentProgram: Command): void;
@@ -0,0 +1,14 @@
1
+ import { Command } from 'commander';
2
+ import { command as listCommand } from './list.js';
3
+ import { command as linkCommand } from './link.js';
4
+ import { command as unlinkCommand } from './unlink.js';
5
+ export function loadCommand(parentProgram) {
6
+ const command = new Command()
7
+ .name('app')
8
+ .description('Manage the Shopify apps linked to your Shop Mini')
9
+ .addCommand(listCommand)
10
+ .addCommand(linkCommand)
11
+ .addCommand(unlinkCommand);
12
+ parentProgram.addCommand(command);
13
+ }
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/app/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AAEjC,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,MAAM,WAAW,CAAA;AAChD,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,MAAM,WAAW,CAAA;AAChD,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,MAAM,aAAa,CAAA;AAEpD,MAAM,UAAU,WAAW,CAAC,aAAsB;IAChD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;SAC1B,IAAI,CAAC,KAAK,CAAC;SACX,WAAW,CAAC,kDAAkD,CAAC;SAC/D,UAAU,CAAC,WAAW,CAAC;SACvB,UAAU,CAAC,WAAW,CAAC;SACvB,UAAU,CAAC,aAAa,CAAC,CAAA;IAE5B,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;AACnC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare const command: Command;
@@ -0,0 +1,65 @@
1
+ import { Command } from 'commander';
2
+ import { renderError, renderSelectPrompt, renderSuccess, } from '@shopify/cli-kit/node/ui';
3
+ import { handler as handleError } from '@shopify/cli-kit/node/error';
4
+ import { fetchAllOrgs, fetchAppsForOrg, token, } from '../../data/partners/query.js';
5
+ import { miniLinkApp } from '../../data/mini-link-app.js';
6
+ import { syncManifest } from '../../utils/sync-manifest.js';
7
+ import { assertNetworkAndAuth } from '../../utils/common-tasks.js';
8
+ export const command = new Command()
9
+ .name('link')
10
+ .description('Link an app to your Shop Mini')
11
+ .option('--primary', 'Link the production app')
12
+ .action(async ({ primary }) => {
13
+ const allOrgs = await fetchAllOrgs();
14
+ const orgId = (await renderSelectPrompt({
15
+ message: 'Select your organization',
16
+ choices: allOrgs.map(org => ({
17
+ label: org.businessName,
18
+ value: org.id,
19
+ })),
20
+ }));
21
+ const apps = await fetchAppsForOrg(orgId);
22
+ const appId = (await renderSelectPrompt({
23
+ message: 'Select your app',
24
+ choices: apps.apps.map(app => ({
25
+ label: app.title,
26
+ value: app.id,
27
+ })),
28
+ }));
29
+ const selectedApp = apps.apps.find(app => app.id === appId);
30
+ if (!selectedApp) {
31
+ throw new Error('App API key is required');
32
+ }
33
+ try {
34
+ await assertNetworkAndAuth();
35
+ // TODO: handle needs to be unique
36
+ const { userErrors, mini } = await miniLinkApp({
37
+ appApiKey: selectedApp.apiKey,
38
+ partnersAccessToken: await token(),
39
+ primary,
40
+ });
41
+ if (userErrors.length > 0) {
42
+ renderError({
43
+ headline: 'Error linking app',
44
+ body: userErrors.map(error => error.message),
45
+ });
46
+ }
47
+ if (mini) {
48
+ syncManifest(mini);
49
+ renderSuccess({
50
+ headline: 'App linked',
51
+ body: [
52
+ 'Shopify app',
53
+ {
54
+ bold: selectedApp.title,
55
+ },
56
+ 'has been linked to your Shop Mini.',
57
+ ],
58
+ });
59
+ }
60
+ }
61
+ catch (error) {
62
+ handleError(error);
63
+ }
64
+ });
65
+ //# sourceMappingURL=link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link.js","sourceRoot":"","sources":["../../../src/commands/app/link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AACjC,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,aAAa,GACd,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,MAAM,6BAA6B,CAAA;AAElE,OAAO,EACL,YAAY,EACZ,eAAe,EACf,KAAK,GACN,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAC,WAAW,EAAC,MAAM,6BAA6B,CAAA;AACvD,OAAO,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAA;AACzD,OAAO,EAAC,oBAAoB,EAAC,MAAM,6BAA6B,CAAA;AAEhE,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;KACjC,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,+BAA+B,CAAC;KAC5C,MAAM,CAAC,WAAW,EAAE,yBAAyB,CAAC;KAC9C,MAAM,CAAC,KAAK,EAAE,EAAC,OAAO,EAAC,EAAE,EAAE;IAC1B,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAA;IAEpC,MAAM,KAAK,GAAG,CAAC,MAAM,kBAAkB,CAAS;QAC9C,OAAO,EAAE,0BAA0B;QACnC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC3B,KAAK,EAAE,GAAG,CAAC,YAAY;YACvB,KAAK,EAAE,GAAG,CAAC,EAAE;SACd,CAAC,CAAC;KACJ,CAAC,CAAW,CAAA;IAEb,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,CAAA;IAEzC,MAAM,KAAK,GAAG,CAAC,MAAM,kBAAkB,CAAS;QAC9C,OAAO,EAAE,iBAAiB;QAC1B,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7B,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,KAAK,EAAE,GAAG,CAAC,EAAE;SACd,CAAC,CAAC;KACJ,CAAC,CAAW,CAAA;IAEb,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,CAAC,CAAA;IAE3D,IAAI,CAAC,WAAW,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;KAC3C;IAED,IAAI;QACF,MAAM,oBAAoB,EAAE,CAAA;QAC5B,kCAAkC;QAClC,MAAM,EAAC,UAAU,EAAE,IAAI,EAAC,GAAG,MAAM,WAAW,CAAC;YAC3C,SAAS,EAAE,WAAW,CAAC,MAAM;YAC7B,mBAAmB,EAAE,MAAM,KAAK,EAAE;YAClC,OAAO;SACR,CAAC,CAAA;QAEF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,WAAW,CAAC;gBACV,QAAQ,EAAE,mBAAmB;gBAC7B,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;aAC7C,CAAC,CAAA;SACH;QAED,IAAI,IAAI,EAAE;YACR,YAAY,CAAC,IAAI,CAAC,CAAA;YAClB,aAAa,CAAC;gBACZ,QAAQ,EAAE,YAAY;gBACtB,IAAI,EAAE;oBACJ,aAAa;oBACb;wBACE,IAAI,EAAE,WAAW,CAAC,KAAK;qBACxB;oBACD,oCAAoC;iBACrC;aACF,CAAC,CAAA;SACH;KACF;IAAC,OAAO,KAAK,EAAE;QACd,WAAW,CAAC,KAAK,CAAC,CAAA;KACnB;AACH,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare const command: Command;
@@ -0,0 +1,45 @@
1
+ import { Command } from 'commander';
2
+ import { outputInfo } from '@shopify/cli-kit/node/output';
3
+ import { handler as handleError } from '@shopify/cli-kit/node/error';
4
+ import { renderTable } from '@shopify/cli-kit/node/ui';
5
+ import { getLinkedApps } from '../../data/get-linked-apps.js';
6
+ import { extractIdFromGID } from '../../utils/extract-id-gid.js';
7
+ import { assertNetworkAndAuth } from '../../utils/common-tasks.js';
8
+ export const command = new Command()
9
+ .name('list')
10
+ .description('List apps linked to your Shop Mini')
11
+ .action(async () => {
12
+ try {
13
+ await assertNetworkAndAuth();
14
+ const linkedApps = await getLinkedApps();
15
+ const rows = [];
16
+ if (linkedApps.productionShopifyApp) {
17
+ rows.push({
18
+ id: extractIdFromGID(linkedApps.productionShopifyApp.id),
19
+ title: linkedApps.productionShopifyApp.title,
20
+ type: 'production',
21
+ });
22
+ }
23
+ linkedApps.developmentShopifyApps?.forEach(app => {
24
+ rows.push({
25
+ id: extractIdFromGID(app.id),
26
+ title: app.title,
27
+ type: 'development',
28
+ });
29
+ });
30
+ outputInfo('');
31
+ renderTable({
32
+ rows,
33
+ columns: {
34
+ title: { header: 'Title' },
35
+ type: { header: 'Type' },
36
+ id: { header: 'ID' },
37
+ },
38
+ });
39
+ outputInfo('');
40
+ }
41
+ catch (error) {
42
+ handleError(error);
43
+ }
44
+ });
45
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/app/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AACjC,OAAO,EAAC,UAAU,EAAC,MAAM,8BAA8B,CAAA;AACvD,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAC,WAAW,EAAC,MAAM,0BAA0B,CAAA;AAEpD,OAAO,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAA;AAC3D,OAAO,EAAC,gBAAgB,EAAC,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAC,oBAAoB,EAAC,MAAM,6BAA6B,CAAA;AAEhE,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;KACjC,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI;QACF,MAAM,oBAAoB,EAAE,CAAA;QAC5B,MAAM,UAAU,GAAG,MAAM,aAAa,EAAE,CAAA;QAExC,MAAM,IAAI,GAAG,EAAE,CAAA;QAEf,IAAI,UAAU,CAAC,oBAAoB,EAAE;YACnC,IAAI,CAAC,IAAI,CAAC;gBACR,EAAE,EAAE,gBAAgB,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC;gBACxD,KAAK,EAAE,UAAU,CAAC,oBAAoB,CAAC,KAAK;gBAC5C,IAAI,EAAE,YAAY;aACnB,CAAC,CAAA;SACH;QAED,UAAU,CAAC,sBAAsB,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE;YAC/C,IAAI,CAAC,IAAI,CAAC;gBACR,EAAE,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,IAAI,EAAE,aAAa;aACpB,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,UAAU,CAAC,EAAE,CAAC,CAAA;QACd,WAAW,CAAC;YACV,IAAI;YACJ,OAAO,EAAE;gBACP,KAAK,EAAE,EAAC,MAAM,EAAE,OAAO,EAAC;gBACxB,IAAI,EAAE,EAAC,MAAM,EAAE,MAAM,EAAC;gBACtB,EAAE,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC;aACnB;SACF,CAAC,CAAA;QACF,UAAU,CAAC,EAAE,CAAC,CAAA;KACf;IAAC,OAAO,KAAK,EAAE;QACd,WAAW,CAAC,KAAK,CAAC,CAAA;KACnB;AACH,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare const command: Command;
@@ -0,0 +1,55 @@
1
+ import { Command } from 'commander';
2
+ import { renderError, renderSelectPrompt, renderSuccess, } from '@shopify/cli-kit/node/ui';
3
+ import { handler as handleError } from '@shopify/cli-kit/node/error';
4
+ import { getLinkedApps } from '../../data/get-linked-apps.js';
5
+ import { miniUnlinkApp } from '../../data/mini-unlink-app.js';
6
+ import { assertNetworkAndAuth } from '../../utils/common-tasks.js';
7
+ export const command = new Command()
8
+ .name('unlink')
9
+ .description('Unlink a development app from your Shop Mini')
10
+ .action(async () => {
11
+ const linkedApps = await getLinkedApps();
12
+ // Only development apps are supported for unlinking
13
+ if (!linkedApps?.developmentShopifyApps?.length) {
14
+ renderError({
15
+ headline: 'Error unlinking app',
16
+ body: ['No development apps linked to your Shop Mini'],
17
+ });
18
+ return;
19
+ }
20
+ const appId = (await renderSelectPrompt({
21
+ message: 'Select the development app to unlink',
22
+ choices: linkedApps.developmentShopifyApps.map(app => ({
23
+ label: app.title,
24
+ value: app.id,
25
+ })),
26
+ }));
27
+ const selectedApp = linkedApps.developmentShopifyApps.find(app => app.id === appId);
28
+ try {
29
+ await assertNetworkAndAuth();
30
+ const result = await miniUnlinkApp({
31
+ appId,
32
+ });
33
+ if (result.userErrors.length) {
34
+ renderError({
35
+ headline: 'Error unlinking app',
36
+ body: result.userErrors.map(error => error.message),
37
+ });
38
+ return;
39
+ }
40
+ renderSuccess({
41
+ headline: 'App unlinked',
42
+ body: [
43
+ 'Shopify app',
44
+ {
45
+ bold: selectedApp.title,
46
+ },
47
+ 'has been unlinked from your Shop Mini.',
48
+ ],
49
+ });
50
+ }
51
+ catch (error) {
52
+ handleError(error);
53
+ }
54
+ });
55
+ //# sourceMappingURL=unlink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unlink.js","sourceRoot":"","sources":["../../../src/commands/app/unlink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AACjC,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,aAAa,GACd,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,MAAM,6BAA6B,CAAA;AAElE,OAAO,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAA;AAC3D,OAAO,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAA;AAC3D,OAAO,EAAC,oBAAoB,EAAC,MAAM,6BAA6B,CAAA;AAEhE,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;KACjC,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CAAC,8CAA8C,CAAC;KAC3D,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,UAAU,GAAG,MAAM,aAAa,EAAE,CAAA;IAExC,oDAAoD;IACpD,IAAI,CAAC,UAAU,EAAE,sBAAsB,EAAE,MAAM,EAAE;QAC/C,WAAW,CAAC;YACV,QAAQ,EAAE,qBAAqB;YAC/B,IAAI,EAAE,CAAC,8CAA8C,CAAC;SACvD,CAAC,CAAA;QACF,OAAM;KACP;IAED,MAAM,KAAK,GAAG,CAAC,MAAM,kBAAkB,CAAS;QAC9C,OAAO,EAAE,sCAAsC;QAC/C,OAAO,EAAE,UAAU,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrD,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,KAAK,EAAE,GAAG,CAAC,EAAE;SACd,CAAC,CAAC;KACJ,CAAC,CAAW,CAAA;IAEb,MAAM,WAAW,GAAG,UAAU,CAAC,sBAAsB,CAAC,IAAI,CACxD,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,CACvB,CAAA;IAEF,IAAI;QACF,MAAM,oBAAoB,EAAE,CAAA;QAC5B,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;YACjC,KAAK;SACN,CAAC,CAAA;QAEF,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE;YAC5B,WAAW,CAAC;gBACV,QAAQ,EAAE,qBAAqB;gBAC/B,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;aACpD,CAAC,CAAA;YACF,OAAM;SACP;QAED,aAAa,CAAC;YACZ,QAAQ,EAAE,cAAc;YACxB,IAAI,EAAE;gBACJ,aAAa;gBACb;oBACE,IAAI,EAAE,WAAW,CAAC,KAAK;iBACxB;gBACD,wCAAwC;aACzC;SACF,CAAC,CAAA;KACH;IAAC,OAAO,KAAK,EAAE;QACd,WAAW,CAAC,KAAK,CAAC,CAAA;KACnB;AACH,CAAC,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export declare const cancelSubmission: () => Promise<void>;
@@ -0,0 +1,59 @@
1
+ import { renderSuccess, renderInfo, renderConfirmationPrompt, } from '@shopify/cli-kit/node/ui';
2
+ import { AbortError, handler as handleError } from '@shopify/cli-kit/node/error';
3
+ import { getPendingSubmission as graphqlGetPendingSubmission } from '../../data/get-submissions.js';
4
+ import { cancelSubmission as graphqlCancelSubmission } from '../../data/cancel-submission.js';
5
+ import { assertNetworkAndAuth } from '../../utils/common-tasks.js';
6
+ import { getRunBinCommand } from '../../utils/package-manager.js';
7
+ export const cancelSubmission = async () => {
8
+ try {
9
+ await assertNetworkAndAuth();
10
+ const pendingSubmission = await graphqlGetPendingSubmission();
11
+ if (pendingSubmission) {
12
+ const shouldContinue = await renderConfirmationPrompt({
13
+ message: [
14
+ 'Are you sure you want to cancel submission',
15
+ { bold: pendingSubmission.reference },
16
+ `created ${pendingSubmission.submittedAt}?`,
17
+ ],
18
+ });
19
+ if (!shouldContinue)
20
+ return;
21
+ const { submission: cancelledSubmission } = await graphqlCancelSubmission({
22
+ reference: pendingSubmission.reference,
23
+ });
24
+ if (cancelledSubmission) {
25
+ renderSuccess({
26
+ headline: 'Submission cancelled',
27
+ body: [
28
+ 'Your submission with reference',
29
+ {
30
+ bold: cancelledSubmission.reference,
31
+ },
32
+ 'was cancelled.',
33
+ ],
34
+ });
35
+ }
36
+ else {
37
+ const cancelSubmissionCmd = await getRunBinCommand('shop-minis cancel-submission');
38
+ throw new AbortError('Failed to cancel submission.', 'Try again and if the issue continues, contact us.', [
39
+ `Try running "${cancelSubmissionCmd}" again`,
40
+ "Contact Shop if you're having issues",
41
+ ]);
42
+ }
43
+ }
44
+ else {
45
+ renderInfo({
46
+ headline: 'No pending submission',
47
+ body: [
48
+ 'If you previously had a pending submission, it may have been reviewed or already cancelled.',
49
+ ],
50
+ });
51
+ }
52
+ }
53
+ catch (error) {
54
+ // Always output the error first
55
+ handleError(error);
56
+ process.exit(1);
57
+ }
58
+ };
59
+ //# sourceMappingURL=cancel-submission.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cancel-submission.js","sourceRoot":"","sources":["../../../src/commands/cancel-submission/cancel-submission.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,UAAU,EACV,wBAAwB,GACzB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAC,UAAU,EAAE,OAAO,IAAI,WAAW,EAAC,MAAM,6BAA6B,CAAA;AAE9E,OAAO,EAAC,oBAAoB,IAAI,2BAA2B,EAAC,MAAM,+BAA+B,CAAA;AACjG,OAAO,EAAC,gBAAgB,IAAI,uBAAuB,EAAC,MAAM,iCAAiC,CAAA;AAC3F,OAAO,EAAC,oBAAoB,EAAC,MAAM,6BAA6B,CAAA;AAChE,OAAO,EAAC,gBAAgB,EAAC,MAAM,gCAAgC,CAAA;AAE/D,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE;IACzC,IAAI;QACF,MAAM,oBAAoB,EAAE,CAAA;QAE5B,MAAM,iBAAiB,GAAG,MAAM,2BAA2B,EAAE,CAAA;QAE7D,IAAI,iBAAiB,EAAE;YACrB,MAAM,cAAc,GAAG,MAAM,wBAAwB,CAAC;gBACpD,OAAO,EAAE;oBACP,4CAA4C;oBAC5C,EAAC,IAAI,EAAE,iBAAiB,CAAC,SAAS,EAAC;oBACnC,WAAW,iBAAiB,CAAC,WAAW,GAAG;iBAC5C;aACF,CAAC,CAAA;YACF,IAAI,CAAC,cAAc;gBAAE,OAAM;YAE3B,MAAM,EAAC,UAAU,EAAE,mBAAmB,EAAC,GAAG,MAAM,uBAAuB,CAAC;gBACtE,SAAS,EAAE,iBAAiB,CAAC,SAAS;aACvC,CAAC,CAAA;YAEF,IAAI,mBAAmB,EAAE;gBACvB,aAAa,CAAC;oBACZ,QAAQ,EAAE,sBAAsB;oBAChC,IAAI,EAAE;wBACJ,gCAAgC;wBAChC;4BACE,IAAI,EAAE,mBAAmB,CAAC,SAAS;yBACpC;wBACD,gBAAgB;qBACjB;iBACF,CAAC,CAAA;aACH;iBAAM;gBACL,MAAM,mBAAmB,GAAG,MAAM,gBAAgB,CAChD,8BAA8B,CAC/B,CAAA;gBACD,MAAM,IAAI,UAAU,CAClB,8BAA8B,EAC9B,mDAAmD,EACnD;oBACE,gBAAgB,mBAAmB,SAAS;oBAC5C,sCAAsC;iBACvC,CACF,CAAA;aACF;SACF;aAAM;YACL,UAAU,CAAC;gBACT,QAAQ,EAAE,uBAAuB;gBACjC,IAAI,EAAE;oBACJ,6FAA6F;iBAC9F;aACF,CAAC,CAAA;SACH;KACF;IAAC,OAAO,KAAU,EAAE;QACnB,gCAAgC;QAChC,WAAW,CAAC,KAAK,CAAC,CAAA;QAElB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAChB;AACH,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function loadCommand(parentProgram: Command): void;
@@ -0,0 +1,18 @@
1
+ import { Command } from 'commander';
2
+ import { outputDebug } from '@shopify/cli-kit/node/output';
3
+ import { getMiniManifest } from '../../utils/minis-manifest.js';
4
+ import { cancelSubmission } from './cancel-submission.js';
5
+ export function loadCommand(parentProgram) {
6
+ const command = new Command()
7
+ .name('cancel-submission')
8
+ .description('cancel a pending submission')
9
+ .option('--verbose', 'print debugging messages') // compatible with cli-kit
10
+ .action(async (args) => {
11
+ const miniHandle = getMiniManifest().handle;
12
+ outputDebug(`Cancel submission args ${JSON.stringify(args)}`);
13
+ outputDebug(`Cancelling submission for mini "${miniHandle}" at ${process.cwd()}`);
14
+ await cancelSubmission();
15
+ });
16
+ parentProgram.addCommand(command);
17
+ }
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/cancel-submission/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AACjC,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAA;AAExD,OAAO,EAAC,eAAe,EAAC,MAAM,+BAA+B,CAAA;AAG7D,OAAO,EAAC,gBAAgB,EAAC,MAAM,wBAAwB,CAAA;AAEvD,MAAM,UAAU,WAAW,CAAC,aAAsB;IAChD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;SAC1B,IAAI,CAAC,mBAAmB,CAAC;SACzB,WAAW,CAAC,6BAA6B,CAAC;SAC1C,MAAM,CAAC,WAAW,EAAE,0BAA0B,CAAC,CAAC,0BAA0B;SAC1E,MAAM,CAAC,KAAK,EAAE,IAAiC,EAAE,EAAE;QAClD,MAAM,UAAU,GAAG,eAAe,EAAE,CAAC,MAAM,CAAA;QAE3C,WAAW,CAAC,0BAA0B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC7D,WAAW,CACT,mCAAmC,UAAU,QAAQ,OAAO,CAAC,GAAG,EAAE,EAAE,CACrE,CAAA;QAED,MAAM,gBAAgB,EAAE,CAAA;IAC1B,CAAC,CAAC,CAAA;IAEJ,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;AACnC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export interface CancelSubmissionCommandArgs {
2
+ verbose?: boolean;
3
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/commands/cancel-submission/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function loadCommand(parentProgram: Command): void;
@@ -0,0 +1,55 @@
1
+ import { Command } from 'commander';
2
+ import { outputDebug } from '@shopify/cli-kit/node/output';
3
+ import { handler as handleError } from '@shopify/cli-kit/node/error';
4
+ import { renderInfo } from '@shopify/cli-kit/node/ui';
5
+ import { getMiniManifest } from '../../utils/minis-manifest.js';
6
+ import { getSubmissions } from '../../data/get-submissions.js';
7
+ import { assertNetworkAndAuth } from '../../utils/common-tasks.js';
8
+ export function loadCommand(parentProgram) {
9
+ const command = new Command()
10
+ .name('check-submission')
11
+ .description('check submissions')
12
+ .option('--verbose', 'print debugging messages') // compatible with cli-kit
13
+ .action(async (args) => {
14
+ const miniHandle = getMiniManifest().handle;
15
+ outputDebug(`Check submission args ${JSON.stringify(args)}`);
16
+ outputDebug(`Checking submissions for mini "${miniHandle}" at ${process.cwd()}`);
17
+ try {
18
+ await assertNetworkAndAuth();
19
+ const { nodes } = await getSubmissions();
20
+ if (nodes.length === 0) {
21
+ renderInfo({
22
+ headline: 'No submissions found',
23
+ });
24
+ }
25
+ else {
26
+ const latestSubmission = nodes[0];
27
+ const nextSteps = latestSubmission.status === 'REJECTED'
28
+ ? [
29
+ 'Check the email for more information and feedback on your submission.',
30
+ ]
31
+ : [];
32
+ const formattedDate = new Intl.DateTimeFormat(undefined, {
33
+ dateStyle: 'full',
34
+ timeStyle: 'full',
35
+ }).format(new Date(latestSubmission.submittedAt));
36
+ const formattedStatus = latestSubmission.status[0].toLocaleUpperCase() +
37
+ latestSubmission.status.slice(1).toLocaleLowerCase();
38
+ renderInfo({
39
+ headline: `Status: ${formattedStatus}`,
40
+ body: `Description:\n${latestSubmission.description}\n\n` +
41
+ `Reference: ${latestSubmission.reference}\n\n` +
42
+ `Submitted ${formattedDate}`,
43
+ nextSteps,
44
+ });
45
+ }
46
+ }
47
+ catch (error) {
48
+ // Always output the error first
49
+ handleError(error);
50
+ process.exit(1);
51
+ }
52
+ });
53
+ parentProgram.addCommand(command);
54
+ }
55
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/check-submission/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AACjC,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAA;AACxD,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAA;AAEnD,OAAO,EAAC,eAAe,EAAC,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAC,cAAc,EAAC,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAC,oBAAoB,EAAC,MAAM,6BAA6B,CAAA;AAIhE,MAAM,UAAU,WAAW,CAAC,aAAsB;IAChD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;SAC1B,IAAI,CAAC,kBAAkB,CAAC;SACxB,WAAW,CAAC,mBAAmB,CAAC;SAChC,MAAM,CAAC,WAAW,EAAE,0BAA0B,CAAC,CAAC,0BAA0B;SAC1E,MAAM,CAAC,KAAK,EAAE,IAAgC,EAAE,EAAE;QACjD,MAAM,UAAU,GAAG,eAAe,EAAE,CAAC,MAAM,CAAA;QAE3C,WAAW,CAAC,yBAAyB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC5D,WAAW,CACT,kCAAkC,UAAU,QAAQ,OAAO,CAAC,GAAG,EAAE,EAAE,CACpE,CAAA;QAED,IAAI;YACF,MAAM,oBAAoB,EAAE,CAAA;YAE5B,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,cAAc,EAAE,CAAA;YAEtC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;gBACtB,UAAU,CAAC;oBACT,QAAQ,EAAE,sBAAsB;iBACjC,CAAC,CAAA;aACH;iBAAM;gBACL,MAAM,gBAAgB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;gBACjC,MAAM,SAAS,GACb,gBAAgB,CAAC,MAAM,KAAK,UAAU;oBACpC,CAAC,CAAC;wBACE,uEAAuE;qBACxE;oBACH,CAAC,CAAC,EAAE,CAAA;gBACR,MAAM,aAAa,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE;oBACvD,SAAS,EAAE,MAAM;oBACjB,SAAS,EAAE,MAAM;iBAClB,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAA;gBACjD,MAAM,eAAe,GACnB,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE;oBAC9C,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAA;gBAEtD,UAAU,CAAC;oBACT,QAAQ,EAAE,WAAW,eAAe,EAAE;oBACtC,IAAI,EACF,iBAAiB,gBAAgB,CAAC,WAAW,MAAM;wBACnD,cAAc,gBAAgB,CAAC,SAAS,MAAM;wBAC9C,aAAa,aAAa,EAAE;oBAC9B,SAAS;iBACV,CAAC,CAAA;aACH;SACF;QAAC,OAAO,KAAU,EAAE;YACnB,gCAAgC;YAChC,WAAW,CAAC,KAAK,CAAC,CAAA;YAElB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;SAChB;IACH,CAAC,CAAC,CAAA;IAEJ,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;AACnC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export interface CheckSubmissionCommandArgs {
2
+ verbose?: boolean;
3
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/commands/check-submission/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const command: Command;
3
+ export declare function loadCommand(parentProgram: Command): Promise<void>;