@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
@@ -0,0 +1,141 @@
1
+ You are an expert in React, React Native, TypeScript and mobile app development. You are writing a Mini for Shop App, using the SDK provided by Shopify. SDK is called `@shopify/shop-minis-platform-sdk`.
2
+
3
+ - Write concise, technical responses with accurate TypeScript examples.
4
+ - Use functional, declarative programming. Avoid classes.
5
+ - Prefer iteration and modularization over duplication.
6
+ - Use descriptive variable names with auxiliary verbs (e.g., isLoading).
7
+ - Use lowercase with dashes for directories (e.g., components/auth-wizard).
8
+ - Favor named exports for components.
9
+ - Dependencies: react, react-native, `@shopify/shop-minis-platform-sdk`
10
+ - Use functional components with hooks
11
+ - Utilize React hooks and UI Components from `@shopify/shop-minis-platform-sdk` library.
12
+ - Implement proper navigation using React Navigation
13
+ - Implement proper error handling and crash reporting
14
+ - Implement proper styling using StyleSheet
15
+ - Follow React Native best practices for performance
16
+
17
+ Shop Minis Platform SDK:
18
+
19
+ - For atomic components, use React Native components, such as `View`, `Text` etc.
20
+ - For images, use `Image` component from `@shopify/shop-minis-platform-sdk`
21
+ - For icons, use `Icon` component from `@shopify/shop-minis-platform-sdk`
22
+ - For Safe Area, use `SafeAreaView` component from `@shopify/shop-minis-platform-sdk`
23
+ - For pressables, use `PressableAnimated` component from `@shopify/shop-minis-platform-sdk`
24
+ - For product related components, you can use these from `@shopify/shop-minis-platform-sdk`:
25
+ ProductCard
26
+ ProductCardGrid
27
+ ProductLink
28
+ - Other available components from `@shopify/shop-minis-platform-sdk`:
29
+ Accordion
30
+ Avatar
31
+ Badge
32
+ BottomSheet
33
+ CollectionThumbnail
34
+ DatePicker
35
+ Dimensions
36
+ Divider
37
+ FastImageBox
38
+ FavoritesButton
39
+ FormatMoney
40
+ Grid
41
+ IconButton
42
+ ImageCarousel
43
+ ImageMultipleChoice
44
+ KeyboardAvoidingView
45
+ Modal
46
+ MultipleChoice
47
+ CompactVariantPicker
48
+ Picker
49
+ PressableAnimated
50
+ ProgressIndicators
51
+ QuantityPicker
52
+ RadioButton
53
+ RadioPickerItem
54
+ SafeAreaView
55
+ Selector
56
+ ScreenWidthContainer
57
+ ShareEmail
58
+ Shelf
59
+ Spinner
60
+ TextField
61
+ ToggleButton
62
+ WebView
63
+ - Available hooks:
64
+ useSavedProducts
65
+ useUpdateSavedProducts
66
+ useFollowedShops
67
+ useUpdateFollowedShops
68
+ useRecentProducts
69
+ useRecentShops
70
+ useSearchProducts
71
+ useProductMetafields
72
+ useProductMedia
73
+ useProductVariants
74
+ useAsyncStorage
75
+ useSecureStorage
76
+ useUserMetafields
77
+ useImageUpload
78
+ useShopNavigation
79
+ navigateToProduct
80
+ navigateToShop
81
+ navigateToCheckout
82
+ useCloseMini
83
+ useSheet
84
+ useMinisParams
85
+ useShop
86
+ useShopSearch
87
+ useShopCart
88
+ addToCart
89
+ buyProduct
90
+ shopEvents
91
+ useCheckoutSuccessfully
92
+ useOnMiniAppClosed
93
+ useOnMiniAppFocused
94
+ useOnMiniAppBlurred
95
+ useOnVariantUpdated
96
+ useOnAppStateChange
97
+ useErrorScreen
98
+ useErrorToast
99
+ useMinisDimensions
100
+ useAccessibilityInfo
101
+ - Here are the available third party dependencies. Do not install any other dependencies.
102
+ @react-navigation/bottom-tabs
103
+ @react-navigation/native
104
+ @react-navigation/native-stack
105
+ @reactvision/react-viro
106
+ @shopify/react-native-skia
107
+ react-native-device-info
108
+ react-native-fast-image
109
+ react-native-gesture-handler
110
+ react-native-haptic-feedback
111
+ react-native-image-colors
112
+ react-native-image-crop-picker
113
+ react-native-linear-gradient
114
+ react-native-localize
115
+ react-native-permissions
116
+ react-native-reanimated
117
+ react-native-reanimated-carousel
118
+ react-native-render-html
119
+ react-native-safe-area-context
120
+ react-native-screens
121
+ react-native-share
122
+ react-native-svg
123
+ react-native-uuid
124
+ react-native-video
125
+ react-native-view-shot
126
+ react-native-webview
127
+
128
+ Project Structure:
129
+
130
+ - Ensure the following folder structure is present:
131
+ - src/
132
+ - assets/
133
+ - components/
134
+ - screens/
135
+ - navigation/
136
+ - hooks/
137
+ - utils/
138
+ - App.tsx
139
+ - index.tsx
140
+
141
+ Follow Shop Minis SDK docs for components, hooks and available third party dependencies. (Docs: https://shop.app/minis/docs/)
@@ -0,0 +1 @@
1
+ *.graphql.d.ts
@@ -0,0 +1,3 @@
1
+ const {minisEslintConfig} = require('@shopify/shop-minis-runtime/eslint-config')
2
+
3
+ module.exports = minisEslintConfig
@@ -0,0 +1 @@
1
+ module.exports = require('@shopify/shop-minis-runtime/graphqlrc')
@@ -0,0 +1,8 @@
1
+ {
2
+ "semi": false,
3
+ "singleQuote": true,
4
+ "trailingComma": "es5",
5
+ "arrowParens": "avoid",
6
+ "bracketSpacing": false,
7
+ "printWidth": 80
8
+ }
@@ -0,0 +1,14 @@
1
+ declare module '*.svg' {
2
+ const content: import('react').FC<import('react-native-svg').SvgProps>
3
+ export default content
4
+ }
5
+
6
+ declare module '*.png' {
7
+ const content: import('react-native').ImageRequireSource
8
+ export default content
9
+ }
10
+
11
+ declare module '*.jpg' {
12
+ const content: import('react-native').ImageRequireSource
13
+ export default content
14
+ }
@@ -0,0 +1,5 @@
1
+ module.exports = {
2
+ // Changes to babel config are not supported by the mini platform.
3
+ // Custom configuration can introduce unexpected behaviour in your mini and could be a cause of rejection during the submission process.
4
+ presets: ['@shopify/shop-minis-runtime/babel-preset'],
5
+ }
@@ -0,0 +1,5 @@
1
+ node_modules
2
+ .minis-cache
3
+ *.tsbuildinfo
4
+ .env
5
+ entry-point-params.json
@@ -0,0 +1,5 @@
1
+ import {renderDevelopmentMini} from '@shopify/shop-minis-runtime/src/utils/renderDevelopmentMini'
2
+
3
+ import MiniApp from './src'
4
+
5
+ renderDevelopmentMini(MiniApp)
@@ -0,0 +1,5 @@
1
+ const {
2
+ getMinisMetroConfig,
3
+ } = require('@shopify/shop-minis-runtime/metro-config')
4
+
5
+ module.exports = getMinisMetroConfig(__dirname)
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "__MINI_APP_NAME_KEBAB_CASE__",
3
+ "version": "0.0.1",
4
+ "private": true,
5
+ "scripts": {
6
+ "start": "shop-minis dev",
7
+ "test": "jest",
8
+ "lint": "eslint ."
9
+ },
10
+ "dependencies": {
11
+ "@shopify/shop-minis-platform-sdk": "__SHOP_MINIS_SDK_VERSION__",
12
+ "@shopify/shop-minis-runtime": "__SHOP_MINIS_RUNTIME_VERSION__",
13
+ "@shopify/shop-minis-ui-extensions": "__SHOP_MINIS_UI_EXTENSIONS_VERSION__"
14
+ },
15
+ "devDependencies": {
16
+ "@shopify/shop-minis-cli": "__SHOP_MINIS_CLI_VERSION__",
17
+ "@types/jest": "^29.2.6",
18
+ "babel-jest": "^26.6.3",
19
+ "eslint": "^8.32.0",
20
+ "jest": "^29.3.1",
21
+ "prettier": "^2.8.2"
22
+ },
23
+ "jest": {
24
+ "preset": "react-native"
25
+ },
26
+ "overrides": {
27
+ "graphql": "15.8.0",
28
+ "react": "18.2.0",
29
+ "react-native": "__REACT_NATIVE_VERSION__"
30
+ },
31
+ "resolutions": {
32
+ "@apollo/federation": "0.38.1",
33
+ "graphql": "15.8.0"
34
+ }
35
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "name": "__MINI_APP_NAME__",
3
+ "features": [
4
+ "FULL_BLEED_VIEWER"
5
+ ]
6
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "compilerOptions": {
3
+ "baseUrl": ".",
4
+ "paths": {
5
+ "*": [
6
+ "*",
7
+ "*.ios",
8
+ "*.android",
9
+ "./node_modules/@shopify/shop-minis-runtime/node_modules/*"
10
+ ]
11
+ },
12
+ "allowJs": true,
13
+ "resolveJsonModule": true,
14
+ "allowSyntheticDefaultImports": true,
15
+ "esModuleInterop": true,
16
+ "isolatedModules": false,
17
+ "jsx": "preserve",
18
+ "lib": ["es2019"],
19
+ "noUnusedParameters": true,
20
+ "noUnusedLocals": true,
21
+ "moduleResolution": "node",
22
+ "noEmit": true,
23
+ "incremental": true,
24
+ "strict": true,
25
+ "target": "esnext",
26
+ "skipLibCheck": true,
27
+ "noImplicitReturns": false,
28
+ "noFallthroughCasesInSwitch": true,
29
+ "allowUnreachableCode": false,
30
+ "allowUnusedLabels": false,
31
+ "noImplicitAny": true,
32
+ "strictNullChecks": true,
33
+ "strictFunctionTypes": true,
34
+ "strictBindCallApply": true,
35
+ "strictPropertyInitialization": true,
36
+ "noImplicitThis": true,
37
+ "alwaysStrict": true,
38
+ "useUnknownInCatchVariables": false
39
+ },
40
+ "exclude": ["node_modules"]
41
+ }
@@ -0,0 +1,23 @@
1
+ import {createNativeStackNavigator} from '@react-navigation/native-stack'
2
+
3
+ import {HomeScreen} from './screens/HomeScreen'
4
+ import {NativeFeaturesScreen} from './screens/NativeFeaturesScreen'
5
+
6
+ const Stack = createNativeStackNavigator()
7
+
8
+ export function App() {
9
+ return (
10
+ <Stack.Navigator>
11
+ <Stack.Screen
12
+ name="GettingStarted.Home"
13
+ component={HomeScreen}
14
+ options={{headerShown: false}}
15
+ />
16
+ <Stack.Screen
17
+ name="GettingStarted.NativeFeatures"
18
+ component={NativeFeaturesScreen}
19
+ options={{headerShown: false}}
20
+ />
21
+ </Stack.Navigator>
22
+ )
23
+ }
@@ -0,0 +1,9 @@
1
+ import {MiniAppConfig} from '@shopify/shop-minis-platform-sdk'
2
+
3
+ import {App} from './App'
4
+
5
+ const config: MiniAppConfig = {
6
+ ViewerRoot: App,
7
+ }
8
+
9
+ export default config
@@ -0,0 +1,7 @@
1
+ {
2
+ "name": "__MINI_APP_NAME__",
3
+ "features": [
4
+ "FULL_BLEED_VIEWER",
5
+ "STANDALONE"
6
+ ]
7
+ }
@@ -0,0 +1,128 @@
1
+ import {useState} from 'react'
2
+ import {ScrollView} from 'react-native'
3
+ import {useNavigation} from '@react-navigation/native'
4
+ import {NativeStackNavigationProp} from '@react-navigation/native-stack'
5
+ import {
6
+ Box,
7
+ SafeAreaView,
8
+ Text,
9
+ ProductCard,
10
+ useProductSearch,
11
+ useTheme,
12
+ Button,
13
+ TextField,
14
+ RadioButton,
15
+ Divider,
16
+ } from '@shopify/shop-minis-platform-sdk'
17
+
18
+ import {RootStackParamList} from '../types/screens'
19
+
20
+ export function HomeScreen() {
21
+ const theme = useTheme()
22
+ const navigation =
23
+ useNavigation<NativeStackNavigationProp<RootStackParamList>>()
24
+
25
+ const {products} = useProductSearch({
26
+ query: 'skateboard',
27
+ first: 4,
28
+ filters: {
29
+ minimumRating: 4,
30
+ price: {
31
+ min: 150,
32
+ max: 250,
33
+ },
34
+ },
35
+ })
36
+
37
+ const radioButtonOptions = ['Option A', 'Option B', 'Option C']
38
+
39
+ const [selectedOption, setSelectedOption] = useState(radioButtonOptions[0])
40
+ const [textFieldValue, setTextFieldValue] = useState('')
41
+
42
+ return (
43
+ <SafeAreaView
44
+ style={{flex: 1, backgroundColor: theme.colors['backgrounds-regular']}}
45
+ >
46
+ <ScrollView>
47
+ <Box
48
+ flex={1}
49
+ paddingHorizontal="gutter"
50
+ marginBottom="s"
51
+ backgroundColor="backgrounds-regular"
52
+ >
53
+ <Text variant="heroBold" marginBottom="s" marginTop="xs">
54
+ Hello, World!
55
+ </Text>
56
+ <Text variant="subtitle" marginBottom="s">
57
+ You just created a Shop Mini! Nice.
58
+ </Text>
59
+ <Text variant="subtitle">Let&apos;s explore what a Mini can do.</Text>
60
+ <Divider marginVertical="s" />
61
+ {products ? (
62
+ <>
63
+ <Text marginBottom="s">
64
+ First up: Product Cards (Since we&apos;re all about shopping,
65
+ right?)
66
+ </Text>
67
+ <Box flexDirection="row">
68
+ {products.slice(0, 2).map(product => (
69
+ <Box key={product.id} flex={1}>
70
+ <ProductCard product={product} />
71
+ </Box>
72
+ ))}
73
+ </Box>
74
+ <Box flexDirection="row">
75
+ {products.slice(2, 4).map(product => (
76
+ <Box key={product.id} flex={1} padding="xs">
77
+ <ProductCard product={product} />
78
+ </Box>
79
+ ))}
80
+ </Box>
81
+ </>
82
+ ) : null}
83
+ <Divider marginVertical="s" />
84
+
85
+ <Text marginBottom="s">
86
+ You can add interactions to your Mini with inputs.
87
+ </Text>
88
+ <Box>
89
+ <TextField
90
+ placeholder="I love Minis because..."
91
+ value={textFieldValue}
92
+ onChangeText={setTextFieldValue}
93
+ />
94
+ {textFieldValue ? (
95
+ <Text marginTop="xs">I love Minis because {textFieldValue}</Text>
96
+ ) : null}
97
+ </Box>
98
+ <Divider marginVertical="s" />
99
+
100
+ <Text>Radio buttons</Text>
101
+ {radioButtonOptions.map(option => (
102
+ <Box key={option} marginVertical="xs">
103
+ <RadioButton
104
+ variant="tertiary"
105
+ text={option}
106
+ active={selectedOption === option}
107
+ onPress={() => setSelectedOption(option)}
108
+ />
109
+ </Box>
110
+ ))}
111
+ <Divider marginVertical="s" />
112
+
113
+ <Text marginBottom="s">
114
+ Ready for more? Let&apos;s explore native capabilities in the
115
+ screen.
116
+ </Text>
117
+ <Button
118
+ text="Next"
119
+ size="l"
120
+ onPress={() => {
121
+ navigation.navigate('GettingStarted.NativeFeatures')
122
+ }}
123
+ />
124
+ </Box>
125
+ </ScrollView>
126
+ </SafeAreaView>
127
+ )
128
+ }
@@ -0,0 +1,137 @@
1
+ import {useState} from 'react'
2
+ import {ScrollView, TouchableOpacity} from 'react-native'
3
+ import {useNavigation} from '@react-navigation/native'
4
+ import {NativeStackNavigationProp} from '@react-navigation/native-stack'
5
+ import ImagePicker from 'react-native-image-crop-picker'
6
+ import Share from 'react-native-share'
7
+ import {
8
+ Box,
9
+ SafeAreaView,
10
+ Text,
11
+ useTheme,
12
+ Button,
13
+ Icon,
14
+ useMinisDimensions,
15
+ Image,
16
+ Divider,
17
+ } from '@shopify/shop-minis-platform-sdk'
18
+
19
+ import {RootStackParamList} from '../types/screens'
20
+
21
+ export function NativeFeaturesScreen() {
22
+ const theme = useTheme()
23
+ const navigation =
24
+ useNavigation<NativeStackNavigationProp<RootStackParamList>>()
25
+ const {height, width} = useMinisDimensions()
26
+
27
+ const [imageUrl, setImageUrl] = useState<string>()
28
+
29
+ return (
30
+ <SafeAreaView
31
+ style={{flex: 1, backgroundColor: theme.colors['backgrounds-regular']}}
32
+ >
33
+ <ScrollView>
34
+ <Box
35
+ flex={1}
36
+ paddingHorizontal="gutter"
37
+ backgroundColor="backgrounds-regular"
38
+ >
39
+ <Box>
40
+ <TouchableOpacity
41
+ onPress={() => navigation.goBack()}
42
+ accessibilityLabel="Navigate back"
43
+ >
44
+ <Box marginTop="xs">
45
+ <Icon name="arrow-left" />
46
+ </Box>
47
+ </TouchableOpacity>
48
+ </Box>
49
+ <Text variant="heroBold" marginBottom="s" marginTop="xs">
50
+ Unlock Native Capabilities
51
+ </Text>
52
+ <Text variant="subtitle" marginBottom="s">
53
+ Let&apos;s explore the native capabilities your Shop Mini can
54
+ access.
55
+ </Text>
56
+ <Box>
57
+ <Button
58
+ text="Camera access"
59
+ onPress={async () => {
60
+ await ImagePicker.openCamera({})
61
+ .then(image => {
62
+ setImageUrl(image.path)
63
+ })
64
+ .catch(error => {
65
+ console.log(error)
66
+ })
67
+ }}
68
+ />
69
+ <Text variant="bodySmall" marginTop="xs">
70
+ Run this Mini on a real device to access the camera.
71
+ </Text>
72
+ </Box>
73
+ <Box marginVertical="s">
74
+ <Button
75
+ text="Gallery access"
76
+ variant="secondary"
77
+ onPress={async () => {
78
+ await ImagePicker.openPicker({})
79
+ .then(image => {
80
+ setImageUrl(image.path)
81
+ })
82
+ .catch(error => {
83
+ console.log(error)
84
+ })
85
+ }}
86
+ />
87
+ </Box>
88
+ {imageUrl ? (
89
+ <Box marginBottom="s">
90
+ <Box
91
+ style={{
92
+ width: 100,
93
+ height: 100,
94
+ borderRadius: 10,
95
+ overflow: 'hidden',
96
+ }}
97
+ >
98
+ <Image
99
+ source={{uri: imageUrl}}
100
+ style={{width: 100, height: 100}}
101
+ />
102
+ </Box>
103
+ </Box>
104
+ ) : null}
105
+ <Box>
106
+ <Button
107
+ text="Share sheet"
108
+ variant="tertiary"
109
+ onPress={async () => {
110
+ await Share.open({
111
+ url: 'https://shop.app/minis',
112
+ title: 'title',
113
+ }).catch(error => {
114
+ console.log(error)
115
+ })
116
+ }}
117
+ />
118
+ </Box>
119
+ <Divider marginVertical="s" />
120
+ <Box>
121
+ <Text variant="subtitle" marginBottom="s">
122
+ Use some of our built-in APIs
123
+ </Text>
124
+ <Text>Screen height: {height}</Text>
125
+ <Text>Screen width: {width}</Text>
126
+ </Box>
127
+ <Divider marginVertical="s" />
128
+ <Text marginBottom="s">
129
+ We look forward to seeing what you build! Check out the
130
+ documentation at
131
+ </Text>
132
+ <Text>https://shop.app/minis</Text>
133
+ </Box>
134
+ </ScrollView>
135
+ </SafeAreaView>
136
+ )
137
+ }
@@ -0,0 +1,5 @@
1
+ import {ParamListBase} from '@react-navigation/native'
2
+
3
+ export interface RootStackParamList extends ParamListBase {
4
+ 'GettingStarted.Home': undefined
5
+ }
@@ -0,0 +1,42 @@
1
+ import {useMemo} from 'react'
2
+ import {StatusBar} from 'react-native'
3
+ import {
4
+ ShoppablePosts,
5
+ useMinisParams,
6
+ SafeAreaView,
7
+ Box,
8
+ shoppablePostsFixture,
9
+ } from '@shopify/shop-minis-platform-sdk'
10
+
11
+ /**
12
+ * A stub type to get you started. Remove this in favor of the type of your extension input query data moving forward.
13
+ */
14
+ interface MyExtensionDataType {
15
+ shop?: {
16
+ id: string
17
+ }
18
+ }
19
+
20
+ export function App() {
21
+ const {extensionData} = useMinisParams<MyExtensionDataType>()
22
+ const shopId = extensionData?.shop?.id
23
+
24
+ const shoppablePosts = useMemo(() => {
25
+ // Format your data in to the shape expected by `<ShoppablePosts />`
26
+ // return getShoppablePostsFromExtensionData(extensionData)
27
+ return shoppablePostsFixture
28
+ }, [])
29
+
30
+ if (!shopId) {
31
+ throw new Error('Shop not found')
32
+ }
33
+
34
+ return (
35
+ <Box backgroundColor="foregrounds-contrasting-inverted" flex={1}>
36
+ <StatusBar barStyle="light-content" />
37
+ <SafeAreaView style={{flex: 1}}>
38
+ <ShoppablePosts initialItems={shoppablePosts} shopId={shopId} />
39
+ </SafeAreaView>
40
+ </Box>
41
+ )
42
+ }
@@ -0,0 +1,9 @@
1
+ import {MiniAppConfig} from '@shopify/shop-minis-platform-sdk'
2
+
3
+ import {App} from './App'
4
+
5
+ const config: MiniAppConfig = {
6
+ ViewerRoot: App,
7
+ }
8
+
9
+ export default config