shoplazza-cli 1.1.2 → 2.0.0

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 (400) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/LICENSE +21 -0
  3. package/README.md +206 -332
  4. package/README.zh.md +318 -0
  5. package/package.json +24 -70
  6. package/scripts/install.js +144 -0
  7. package/scripts/jsbuild/dev/index.js +123 -0
  8. package/scripts/jsbuild/index.js +77 -0
  9. package/{lib/checkout/build → scripts/jsbuild}/plugin/vite-plugin-add-extension-id.js +4 -2
  10. package/scripts/jsbuild/vite.config.js +35 -0
  11. package/scripts/run.js +29 -0
  12. package/.editorconfig +0 -28
  13. package/.prettierrc +0 -9
  14. package/bin/shoplazza +0 -137
  15. package/fixtures/assets/blog.scss +0 -74
  16. package/fixtures/assets/cart_modal.scss +0 -450
  17. package/fixtures/assets/collection_detail.js +0 -234
  18. package/fixtures/assets/collection_detail.scss +0 -345
  19. package/fixtures/assets/collection_list.scss +0 -11
  20. package/fixtures/assets/collection_slider.scss +0 -169
  21. package/fixtures/assets/feature_columns.scss +0 -26
  22. package/fixtures/assets/feature_product.scss +0 -109
  23. package/fixtures/assets/footer.js +0 -58
  24. package/fixtures/assets/footer.scss +0 -337
  25. package/fixtures/assets/four_images.scss +0 -29
  26. package/fixtures/assets/gallery.scss +0 -55
  27. package/fixtures/assets/header.js +0 -178
  28. package/fixtures/assets/header.scss +0 -929
  29. package/fixtures/assets/image_text.scss +0 -72
  30. package/fixtures/assets/logo_bar.scss +0 -11
  31. package/fixtures/assets/newsletter.scss +0 -90
  32. package/fixtures/assets/not_found.scss +0 -39
  33. package/fixtures/assets/page_detail.scss +0 -16
  34. package/fixtures/assets/pagination.scss +0 -150
  35. package/fixtures/assets/postcss.config.js +0 -6
  36. package/fixtures/assets/product_description.scss +0 -88
  37. package/fixtures/assets/product_detail.js +0 -634
  38. package/fixtures/assets/product_detail.scss +0 -1106
  39. package/fixtures/assets/relative_product.scss +0 -45
  40. package/fixtures/assets/reviews.scss +0 -70
  41. package/fixtures/assets/rich_text.scss +0 -71
  42. package/fixtures/assets/search.js +0 -87
  43. package/fixtures/assets/search.scss +0 -67
  44. package/fixtures/assets/slide.scss +0 -51
  45. package/fixtures/assets/slider.scss +0 -141
  46. package/fixtures/assets/test.scss +0 -1
  47. package/fixtures/assets/theme.css +0 -976
  48. package/fixtures/assets/theme.scss +0 -1100
  49. package/fixtures/assets/three_images.scss +0 -20
  50. package/fixtures/assets/tools.scss +0 -23
  51. package/fixtures/assets/two_images.scss +0 -24
  52. package/fixtures/assets/video.scss +0 -45
  53. package/fixtures/assets/video_text.scss +0 -63
  54. package/fixtures/config/settings_data.json +0 -107
  55. package/fixtures/config/settings_schema.json +0 -690
  56. package/fixtures/layout/theme.liquid +0 -76
  57. package/fixtures/locales/ar-SA.json +0 -212
  58. package/fixtures/locales/de-DE.json +0 -290
  59. package/fixtures/locales/en-US.json +0 -290
  60. package/fixtures/locales/es-ES.json +0 -290
  61. package/fixtures/locales/fr-FR.json +0 -290
  62. package/fixtures/locales/id-ID.json +0 -212
  63. package/fixtures/locales/it-IT.json +0 -212
  64. package/fixtures/locales/ja-JP.json +0 -289
  65. package/fixtures/locales/ko-KR.json +0 -290
  66. package/fixtures/locales/nl-NL.json +0 -290
  67. package/fixtures/locales/pl-PL.json +0 -290
  68. package/fixtures/locales/pt-PT.json +0 -212
  69. package/fixtures/locales/ru-RU.json +0 -212
  70. package/fixtures/locales/th-TH.json +0 -212
  71. package/fixtures/locales/zh-CN.json +0 -290
  72. package/fixtures/locales/zh-TW.json +0 -290
  73. package/fixtures/sections/apps.liquid +0 -47
  74. package/fixtures/sections/blog.liquid +0 -137
  75. package/fixtures/sections/collection_desc.liquid +0 -34
  76. package/fixtures/sections/collection_detail.liquid +0 -436
  77. package/fixtures/sections/collection_image.liquid +0 -104
  78. package/fixtures/sections/collection_list.liquid +0 -161
  79. package/fixtures/sections/collection_name.liquid +0 -34
  80. package/fixtures/sections/collection_slider.liquid +0 -330
  81. package/fixtures/sections/feature_columns.liquid +0 -275
  82. package/fixtures/sections/feature_product.liquid +0 -227
  83. package/fixtures/sections/footer.liquid +0 -488
  84. package/fixtures/sections/four_images.liquid +0 -160
  85. package/fixtures/sections/gallery.liquid +0 -258
  86. package/fixtures/sections/header.liquid +0 -1157
  87. package/fixtures/sections/html.liquid +0 -40
  88. package/fixtures/sections/image_text.liquid +0 -350
  89. package/fixtures/sections/instagram_plus.liquid +0 -393
  90. package/fixtures/sections/logo_bar.liquid +0 -183
  91. package/fixtures/sections/newsletter.liquid +0 -225
  92. package/fixtures/sections/not_found.liquid +0 -39
  93. package/fixtures/sections/overlay_image.liquid +0 -648
  94. package/fixtures/sections/page_detail.liquid +0 -39
  95. package/fixtures/sections/photo_collection.liquid +0 -433
  96. package/fixtures/sections/product_description.liquid +0 -208
  97. package/fixtures/sections/product_detail.liquid +0 -611
  98. package/fixtures/sections/products.liquid +0 -216
  99. package/fixtures/sections/relative_product.liquid +0 -121
  100. package/fixtures/sections/reviews.liquid +0 -115
  101. package/fixtures/sections/rich_text.liquid +0 -157
  102. package/fixtures/sections/search.liquid +0 -163
  103. package/fixtures/sections/slide.liquid +0 -719
  104. package/fixtures/sections/three_images.liquid +0 -157
  105. package/fixtures/sections/two_images.liquid +0 -125
  106. package/fixtures/sections/video.liquid +0 -95
  107. package/fixtures/sections/video_text.liquid +0 -128
  108. package/fixtures/snippets/bgset.liquid +0 -21
  109. package/fixtures/snippets/card_title.liquid +0 -8
  110. package/fixtures/snippets/cart_modal.liquid +0 -74
  111. package/fixtures/snippets/collection.liquid +0 -77
  112. package/fixtures/snippets/collection_filter_modal.liquid +0 -56
  113. package/fixtures/snippets/default_image_4.liquid +0 -14
  114. package/fixtures/snippets/default_image_6.liquid +0 -18
  115. package/fixtures/snippets/default_image_8.liquid +0 -23
  116. package/fixtures/snippets/four_images_item.liquid +0 -8
  117. package/fixtures/snippets/header_ads.liquid +0 -95
  118. package/fixtures/snippets/hero_image.liquid +0 -94
  119. package/fixtures/snippets/icon_video_play_large.liquid +0 -1
  120. package/fixtures/snippets/icon_video_play_medium.liquid +0 -4
  121. package/fixtures/snippets/icon_video_play_small.liquid +0 -4
  122. package/fixtures/snippets/lazyimg.liquid +0 -22
  123. package/fixtures/snippets/lazyimg_art.liquid +0 -36
  124. package/fixtures/snippets/lazysizes.liquid +0 -41
  125. package/fixtures/snippets/link.liquid +0 -2
  126. package/fixtures/snippets/pagination.liquid +0 -48
  127. package/fixtures/snippets/product.liquid +0 -126
  128. package/fixtures/snippets/product_art_tpl.liquid +0 -152
  129. package/fixtures/snippets/product_info_body.liquid +0 -337
  130. package/fixtures/snippets/product_info_tpl.liquid +0 -423
  131. package/fixtures/snippets/product_label.liquid +0 -46
  132. package/fixtures/snippets/settings.liquid +0 -295
  133. package/fixtures/snippets/social-meta-tags.liquid +0 -106
  134. package/fixtures/snippets/video_html.liquid +0 -11
  135. package/fixtures/snippets/video_source.liquid +0 -98
  136. package/fixtures/snippets/video_thumb_icon.liquid +0 -2
  137. package/fixtures/templates/404.liquid +0 -1
  138. package/fixtures/templates/collection.liquid +0 -92
  139. package/fixtures/templates/index.liquid +0 -206
  140. package/fixtures/templates/page.liquid +0 -1
  141. package/fixtures/templates/product.liquid +0 -99
  142. package/fixtures/templates/search.liquid +0 -1
  143. package/jest.config.js +0 -192
  144. package/lib/__tests__/log.test.js +0 -15
  145. package/lib/__tests__/utils.test.js +0 -69
  146. package/lib/app/api/cli.js +0 -225
  147. package/lib/app/api/openapi.js +0 -121
  148. package/lib/app/api/partnerOpenapi.js +0 -104
  149. package/lib/app/bin/index.js +0 -20
  150. package/lib/app/bin/javy/javy-arm-linux-v5.0.1 +0 -0
  151. package/lib/app/bin/javy/javy-arm-macos-v5.0.1 +0 -0
  152. package/lib/app/bin/javy/javy-x86_64-linux-v5.0.1 +0 -0
  153. package/lib/app/bin/javy/javy-x86_64-macos-v5.0.1 +0 -0
  154. package/lib/app/bin/javy/javy-x86_64-windows-v5.0.1 +0 -0
  155. package/lib/app/commands/config/actions/link.js +0 -189
  156. package/lib/app/commands/config/actions/use.js +0 -40
  157. package/lib/app/commands/config/index.js +0 -25
  158. package/lib/app/commands/config/link.js +0 -11
  159. package/lib/app/commands/config/use.js +0 -11
  160. package/lib/app/commands/deploy/actions/deploy.js +0 -196
  161. package/lib/app/commands/deploy/index.js +0 -11
  162. package/lib/app/commands/dev/actions/dev.js +0 -206
  163. package/lib/app/commands/dev/index.js +0 -11
  164. package/lib/app/commands/generate/actions/extension.js +0 -97
  165. package/lib/app/commands/generate/actions/generateCheckout.js +0 -58
  166. package/lib/app/commands/generate/actions/generateFunction.js +0 -56
  167. package/lib/app/commands/generate/actions/generateTheme.js +0 -128
  168. package/lib/app/commands/generate/extension.js +0 -11
  169. package/lib/app/commands/generate/index.js +0 -22
  170. package/lib/app/commands/index.js +0 -82
  171. package/lib/app/commands/info/actions/info.js +0 -168
  172. package/lib/app/commands/info/index.js +0 -11
  173. package/lib/app/commands/init/actions/init.js +0 -176
  174. package/lib/app/commands/init/index.js +0 -14
  175. package/lib/app/commands/versions/actions/list.js +0 -210
  176. package/lib/app/commands/versions/index.js +0 -22
  177. package/lib/app/commands/versions/list.js +0 -14
  178. package/lib/app/constant/code.js +0 -7
  179. package/lib/app/constant/color.js +0 -18
  180. package/lib/app/constant/extension.js +0 -16
  181. package/lib/app/constant/host.js +0 -23
  182. package/lib/app/constant/sso.js +0 -7
  183. package/lib/app/index.js +0 -8
  184. package/lib/app/services/auth/config.js +0 -33
  185. package/lib/app/services/auth/index.js +0 -9
  186. package/lib/app/services/auth/oauth-server.js +0 -70
  187. package/lib/app/services/auth/partner-token.js +0 -45
  188. package/lib/app/services/auth/sso-token.js +0 -69
  189. package/lib/app/services/auth/store-token.js +0 -100
  190. package/lib/app/services/auth/url-builder.js +0 -23
  191. package/lib/app/services/config/index.js +0 -41
  192. package/lib/app/services/devServer/app.js +0 -76
  193. package/lib/app/services/devServer/index.js +0 -103
  194. package/lib/app/services/devServer/middleware/hmacValidatorMiddleWare.js +0 -20
  195. package/lib/app/services/devServer/middleware/index.js +0 -5
  196. package/lib/app/services/devServer/tunnel/index.js +0 -43
  197. package/lib/app/services/devServer/tunnel/providers/cloudflare.js +0 -364
  198. package/lib/app/services/devServer/tunnel/providers/ngrok.js +0 -70
  199. package/lib/app/services/devServer/utils/index.js +0 -5
  200. package/lib/app/services/devServer/utils/secureCompare.js +0 -5
  201. package/lib/app/services/devServer/views/app.ejs +0 -133
  202. package/lib/app/services/extension-build/buildCheckout.js +0 -47
  203. package/lib/app/services/extension-build/buildFunction.js +0 -57
  204. package/lib/app/services/extension-build/buildTheme.js +0 -100
  205. package/lib/app/services/extension-build/index.js +0 -23
  206. package/lib/app/services/extension-build/plugins/vite-plugin-add-extension-id.js +0 -26
  207. package/lib/app/services/extension-diff/index.js +0 -132
  208. package/lib/app/services/extension-upsert/index.js +0 -21
  209. package/lib/app/services/extension-upsert/upsertCheckout.js +0 -44
  210. package/lib/app/services/extension-upsert/upsertFunction.js +0 -52
  211. package/lib/app/services/extension-upsert/upsertTheme.js +0 -113
  212. package/lib/app/services/oss/index.js +0 -45
  213. package/lib/app/services/partner/index.js +0 -52
  214. package/lib/app/store/base-store.js +0 -37
  215. package/lib/app/store/config-store.js +0 -55
  216. package/lib/app/store/config.js +0 -21
  217. package/lib/app/store/index.js +0 -14
  218. package/lib/app/store/install-store.js +0 -41
  219. package/lib/app/store/sso-store.js +0 -55
  220. package/lib/app/utils/asyncPool.js +0 -42
  221. package/lib/app/utils/debug/index.js +0 -16
  222. package/lib/app/utils/env.js +0 -24
  223. package/lib/app/utils/error.js +0 -20
  224. package/lib/app/utils/git.js +0 -20
  225. package/lib/app/utils/json.js +0 -27
  226. package/lib/app/utils/path.js +0 -33
  227. package/lib/app/utils/platform.js +0 -37
  228. package/lib/app/utils/request/cli.js +0 -72
  229. package/lib/app/utils/request/debug.js +0 -13
  230. package/lib/app/utils/request/openapi.js +0 -67
  231. package/lib/app/utils/request/partnerOpenapi.js +0 -47
  232. package/lib/app/utils/toml.js +0 -56
  233. package/lib/app/utils/views/message.js +0 -68
  234. package/lib/app/utils/views/select.js +0 -36
  235. package/lib/app/utils/withTempDir.js +0 -55
  236. package/lib/auth/__mocks__/getCode.js +0 -7
  237. package/lib/auth/__mocks__/index.js +0 -0
  238. package/lib/auth/child.js +0 -23
  239. package/lib/auth/getCode.js +0 -39
  240. package/lib/auth/index.js +0 -134
  241. package/lib/check.js +0 -28
  242. package/lib/checkout/api.js +0 -164
  243. package/lib/checkout/build/plugin/vite-plugin-transform-extension-html.js +0 -207
  244. package/lib/checkout/build/vite.config.js +0 -34
  245. package/lib/checkout/build.js +0 -38
  246. package/lib/checkout/config.js +0 -97
  247. package/lib/checkout/create.js +0 -132
  248. package/lib/checkout/delete.js +0 -26
  249. package/lib/checkout/deploy.js +0 -59
  250. package/lib/checkout/dev/index.js +0 -143
  251. package/lib/checkout/fields.js +0 -29
  252. package/lib/checkout/index.js +0 -63
  253. package/lib/checkout/preview.js +0 -52
  254. package/lib/checkout/pull.js +0 -22
  255. package/lib/checkout/push.js +0 -141
  256. package/lib/checkout/template/README.md +0 -34
  257. package/lib/checkout/template/_gitignore +0 -4
  258. package/lib/checkout/template/extension.config.js +0 -4
  259. package/lib/checkout/template/extensions/extension-template/extension.json +0 -10
  260. package/lib/checkout/template/extensions/extension-template/src/content.html +0 -3
  261. package/lib/checkout/template/extensions/extension-template/src/index.html +0 -5
  262. package/lib/checkout/template/extensions/extension-template/src/index.js +0 -11
  263. package/lib/checkout/template/extensions/extension-template/src/script.html +0 -3
  264. package/lib/checkout/template/extensions/extension-template/src/style.html +0 -3
  265. package/lib/checkout/template/package.json +0 -17
  266. package/lib/checkout/undeploy.js +0 -40
  267. package/lib/checkout/util.js +0 -201
  268. package/lib/checkout/verify.js +0 -16
  269. package/lib/checkout/version.js +0 -7
  270. package/lib/commands/__tests__/login.test.js +0 -77
  271. package/lib/commands/__tests__/logout.test.js +0 -29
  272. package/lib/commands/__tests__/store.test.js +0 -44
  273. package/lib/commands/__tests__/switch.test.js +0 -45
  274. package/lib/commands/login.js +0 -120
  275. package/lib/commands/logout.js +0 -23
  276. package/lib/commands/store.js +0 -14
  277. package/lib/commands/switch.js +0 -52
  278. package/lib/commands/theme/__tests__/delete.test.js +0 -49
  279. package/lib/commands/theme/__tests__/init.test.js +0 -21
  280. package/lib/commands/theme/__tests__/list.test.js +0 -80
  281. package/lib/commands/theme/__tests__/package.test.js +0 -17
  282. package/lib/commands/theme/__tests__/publish.test.js +0 -61
  283. package/lib/commands/theme/__tests__/pull.test.js +0 -69
  284. package/lib/commands/theme/__tests__/push.test.js +0 -63
  285. package/lib/commands/theme/__tests__/serve.test.js +0 -107
  286. package/lib/commands/theme/delete.js +0 -64
  287. package/lib/commands/theme/init.js +0 -51
  288. package/lib/commands/theme/list.js +0 -28
  289. package/lib/commands/theme/package.js +0 -37
  290. package/lib/commands/theme/publish.js +0 -56
  291. package/lib/commands/theme/pull.js +0 -62
  292. package/lib/commands/theme/push.js +0 -106
  293. package/lib/commands/theme/serve.js +0 -153
  294. package/lib/commands/theme/share.js +0 -20
  295. package/lib/commands/version.js +0 -6
  296. package/lib/common/constants.js +0 -24
  297. package/lib/common/db/partner.js +0 -91
  298. package/lib/common/inquirers/choose-app.js +0 -79
  299. package/lib/common/inquirers/choose-partner.js +0 -74
  300. package/lib/common/log.js +0 -15
  301. package/lib/common/login.js +0 -125
  302. package/lib/common/logout.js +0 -16
  303. package/lib/db/__mocks__/index.js +0 -9
  304. package/lib/db/__tests__/analytics.test.js +0 -19
  305. package/lib/db/__tests__/user.test.js +0 -20
  306. package/lib/db/analytics.js +0 -48
  307. package/lib/db/index.js +0 -9
  308. package/lib/db/user.js +0 -71
  309. package/lib/function/bin/index.js +0 -20
  310. package/lib/function/bin/javy/javy-arm-linux-v5.0.1 +0 -0
  311. package/lib/function/bin/javy/javy-arm-macos-v5.0.1 +0 -0
  312. package/lib/function/bin/javy/javy-x86_64-linux-v5.0.1 +0 -0
  313. package/lib/function/bin/javy/javy-x86_64-macos-v5.0.1 +0 -0
  314. package/lib/function/bin/javy/javy-x86_64-windows-v5.0.1 +0 -0
  315. package/lib/function/commands/compile.js +0 -43
  316. package/lib/function/commands/create.js +0 -77
  317. package/lib/function/commands/list.js +0 -18
  318. package/lib/function/commands/release.js +0 -69
  319. package/lib/function/index.js +0 -24
  320. package/lib/function/template/js/README.md +0 -37
  321. package/lib/function/template/js/_gitignore +0 -4
  322. package/lib/function/template/js/extension.config.json +0 -5
  323. package/lib/function/template/js/package.json +0 -17
  324. package/lib/function/template/js/src/index.js +0 -64
  325. package/lib/function/utils.js +0 -29
  326. package/lib/log.js +0 -13
  327. package/lib/openAPI/__mocks__/index.js +0 -20
  328. package/lib/openAPI/api.js +0 -76
  329. package/lib/openAPI/index.js +0 -56
  330. package/lib/oss.js +0 -102
  331. package/lib/partner-api/axios.js +0 -67
  332. package/lib/partner-api/index.js +0 -79
  333. package/lib/report.js +0 -37
  334. package/lib/theme-extension/api/index.js +0 -96
  335. package/lib/theme-extension/commands/build.js +0 -114
  336. package/lib/theme-extension/commands/connect.js +0 -73
  337. package/lib/theme-extension/commands/create.js +0 -105
  338. package/lib/theme-extension/commands/deploy.js +0 -56
  339. package/lib/theme-extension/commands/list.js +0 -35
  340. package/lib/theme-extension/commands/release.js +0 -59
  341. package/lib/theme-extension/commands/serve.js +0 -179
  342. package/lib/theme-extension/commands/versions.js +0 -55
  343. package/lib/theme-extension/index.js +0 -29
  344. package/lib/theme-extension/template/basic-app/README.md +0 -125
  345. package/lib/theme-extension/template/basic-app/extension.config.json +0 -4
  346. package/lib/theme-extension/template/basic-app/package.json +0 -18
  347. package/lib/theme-extension/template/basic-app/theme-app/assets/index.css +0 -4
  348. package/lib/theme-extension/template/basic-app/theme-app/assets-manifest.json +0 -1
  349. package/lib/theme-extension/template/basic-app/theme-app/blocks/index.liquid +0 -16
  350. package/lib/theme-extension/template/basic-app/theme-app/locales/ar-SA.json +0 -1
  351. package/lib/theme-extension/template/basic-app/theme-app/locales/de-DE.json +0 -1
  352. package/lib/theme-extension/template/basic-app/theme-app/locales/en-US.json +0 -6
  353. package/lib/theme-extension/template/basic-app/theme-app/locales/es-ES.json +0 -1
  354. package/lib/theme-extension/template/basic-app/theme-app/locales/fr-FR.json +0 -1
  355. package/lib/theme-extension/template/basic-app/theme-app/locales/id-ID.json +0 -1
  356. package/lib/theme-extension/template/basic-app/theme-app/locales/it-IT.json +0 -1
  357. package/lib/theme-extension/template/basic-app/theme-app/locales/ja-JP.json +0 -1
  358. package/lib/theme-extension/template/basic-app/theme-app/locales/ko-KR.json +0 -1
  359. package/lib/theme-extension/template/basic-app/theme-app/locales/nl-NL.json +0 -1
  360. package/lib/theme-extension/template/basic-app/theme-app/locales/pl-PL.json +0 -1
  361. package/lib/theme-extension/template/basic-app/theme-app/locales/pt-PT.json +0 -1
  362. package/lib/theme-extension/template/basic-app/theme-app/locales/ru-RU.json +0 -1
  363. package/lib/theme-extension/template/basic-app/theme-app/locales/th-TH.json +0 -1
  364. package/lib/theme-extension/template/basic-app/theme-app/locales/zh-CN.json +0 -6
  365. package/lib/theme-extension/template/basic-app/theme-app/locales/zh-TW.json +0 -1
  366. package/lib/theme-extension/template/basic-app/theme-app/snippets/index.liquid +0 -8
  367. package/lib/theme-extension/template/embed-app/README.md +0 -125
  368. package/lib/theme-extension/template/embed-app/extension.config.json +0 -4
  369. package/lib/theme-extension/template/embed-app/package.json +0 -18
  370. package/lib/theme-extension/template/embed-app/theme-app/assets-manifest.json +0 -1
  371. package/lib/theme-extension/template/embed-app/theme-app/blocks/index.liquid +0 -18
  372. package/lib/theme-extension/template/embed-app/theme-app/locales/ar-SA.json +0 -1
  373. package/lib/theme-extension/template/embed-app/theme-app/locales/de-DE.json +0 -1
  374. package/lib/theme-extension/template/embed-app/theme-app/locales/en-US.json +0 -6
  375. package/lib/theme-extension/template/embed-app/theme-app/locales/es-ES.json +0 -1
  376. package/lib/theme-extension/template/embed-app/theme-app/locales/fr-FR.json +0 -1
  377. package/lib/theme-extension/template/embed-app/theme-app/locales/id-ID.json +0 -1
  378. package/lib/theme-extension/template/embed-app/theme-app/locales/it-IT.json +0 -1
  379. package/lib/theme-extension/template/embed-app/theme-app/locales/ja-JP.json +0 -1
  380. package/lib/theme-extension/template/embed-app/theme-app/locales/ko-KR.json +0 -1
  381. package/lib/theme-extension/template/embed-app/theme-app/locales/nl-NL.json +0 -1
  382. package/lib/theme-extension/template/embed-app/theme-app/locales/pl-PL.json +0 -1
  383. package/lib/theme-extension/template/embed-app/theme-app/locales/pt-PT.json +0 -1
  384. package/lib/theme-extension/template/embed-app/theme-app/locales/ru-RU.json +0 -1
  385. package/lib/theme-extension/template/embed-app/theme-app/locales/th-TH.json +0 -1
  386. package/lib/theme-extension/template/embed-app/theme-app/locales/zh-CN.json +0 -6
  387. package/lib/theme-extension/template/embed-app/theme-app/locales/zh-TW.json +0 -1
  388. package/lib/theme-extension/template/embed-app/theme-app/snippets/index.liquid +0 -8
  389. package/lib/theme-extension/template/embed-app/theme-app/snippets/index_css.liquid +0 -6
  390. package/lib/theme-extension/utils/config.js +0 -32
  391. package/lib/theme-extension/utils/index.js +0 -213
  392. package/lib/tracing.js +0 -50
  393. package/lib/utils/config.js +0 -12
  394. package/lib/utils/console.js +0 -33
  395. package/lib/utils/env.js +0 -17
  396. package/lib/utils/file.js +0 -48
  397. package/lib/utils/platform.js +0 -37
  398. package/lib/utils/utils.js +0 -165
  399. /package/{lib/checkout → scripts/jsbuild}/dev/client.js +0 -0
  400. /package/{lib/app/services/extension-build/plugins → scripts/jsbuild/plugin}/vite-plugin-transform-extension-html.js +0 -0
@@ -1,62 +0,0 @@
1
- const path = require('path');
2
- const os = require('os');
3
- const fs = require('fs-extra');
4
- const ora = require('ora');
5
- const chalk = require('chalk');
6
- const inquirer = require('inquirer');
7
- const Sentry = require('@sentry/node');
8
- const { get } = require('../../db/user');
9
- const { pullTheme, getThemes, getDefaultThemeDetail } = require('../../openAPI/api');
10
- const { unzipTheme, formatThemeList } = require('../../utils/utils');
11
- const log = require('../../log');
12
-
13
- const pullThemeFiles = async (theme) => {
14
- const storeDomain = get('store_domain');
15
- const spinner = ora(chalk.cyan(`Pulling theme files from ${theme} on ${storeDomain}`)).start();
16
- const { data } = await pullTheme(theme);
17
- const zipPath = path.join(path.join(os.homedir(), '/.cache/shoplazza_theme.zip'));
18
- const write = fs.createWriteStream(zipPath);
19
- return new Promise((resolve, reject) => {
20
- data
21
- .pipe(write)
22
- .on('finish', async () => {
23
- unzipTheme(zipPath, path.resolve(process.cwd()));
24
- spinner.stop();
25
- log.info(chalk.green(`✓ Theme pulled successfully`));
26
- resolve();
27
- })
28
- .on('error', (err) => {
29
- reject(err);
30
- log.error(chalk.red('✗ Error pulling theme ', err));
31
- Sentry.captureException(err);
32
- });
33
- });
34
- };
35
-
36
- module.exports = async (options) => {
37
- try {
38
- if (options.theme) {
39
- await pullThemeFiles(options.theme);
40
- } else {
41
- const storeDomain = get('store_domain');
42
- const spinner = ora(chalk.cyan(`Fetching theme lists from ${storeDomain}`)).start();
43
- const [themesRes, defaultThemeRes] = await Promise.all([getThemes(), getDefaultThemeDetail()]);
44
- spinner.stop();
45
- const answers = await inquirer.prompt([
46
- {
47
- name: 'theme',
48
- type: 'rawlist',
49
- message: `Select a theme to pull from ${chalk.cyan('(Choose with ↑ ↓ ⏎)')}`,
50
- choices: formatThemeList(
51
- [defaultThemeRes.data.data, ...themesRes.data.data.themes],
52
- defaultThemeRes.data.data.id
53
- )
54
- }
55
- ]);
56
- await pullThemeFiles(answers.theme);
57
- }
58
- } catch (error) {
59
- log.error(chalk.red(`✗ Failed to pull theme: ${error?.response?.status}`));
60
- Sentry.captureException(error);
61
- }
62
- };
@@ -1,106 +0,0 @@
1
- const ora = require('ora');
2
- const chalk = require('chalk');
3
- const inquirer = require('inquirer');
4
- const Sentry = require('@sentry/node');
5
- const fs = require('fs-extra');
6
- const { get } = require('../../db/user');
7
- const { getThemeDetail, getThemes, getDefaultThemeDetail, pushTheme, getPushTask } = require('../../openAPI/api');
8
- const { sleep, formatThemeList } = require('../../utils/utils');
9
- const { checkAndZipThemes } = require('./package');
10
- const log = require('../../log');
11
-
12
- const checkPushTask = (taskId) => {
13
- let maxCheckCount = 3 * 60;
14
- let state = -1;
15
- return new Promise(async (resolve, reject) => {
16
- while (maxCheckCount--) {
17
- const {
18
- data: {
19
- task: { status, info, message }
20
- }
21
- } = await getPushTask(taskId);
22
- status == 0 && (await sleep(3 * 1000));
23
- if (status == 1 || status == 2) {
24
- state = status;
25
- state == 1 && resolve(info);
26
- state == 2 && reject(`Status Detection failure (2), Error message: ${message}`);
27
- break;
28
- }
29
- }
30
- state == -1 && reject('Retry timeout');
31
- }).catch((error) => {
32
- log.error(chalk.red(`\n✗ Failed to push theme`, error));
33
- Sentry.captureException(error);
34
- process.exit(-1);
35
- });
36
- };
37
-
38
- const pushThemeFiles = async (theme) => {
39
- let merchant_theme_id = '';
40
- let name = '';
41
- if (theme) {
42
- const { data } = await getThemeDetail(theme);
43
- if (!data) {
44
- log.error(chalk.red(`✗ Theme ${theme} does not exist`));
45
- process.exit(-1);
46
- }
47
- name = data.data.name;
48
- merchant_theme_id = data.data.merchant_theme_id;
49
- }
50
-
51
- const { theme_name, theme_version = '', zipPath } = checkAndZipThemes();
52
- const {
53
- data: {
54
- task: {
55
- task: { id }
56
- }
57
- }
58
- } = await pushTheme({
59
- name: name || theme_name,
60
- version: theme_version,
61
- merchant_theme_id,
62
- theme_id: theme || '',
63
- zipPath
64
- });
65
- fs.rmSync(zipPath);
66
- return checkPushTask(id);
67
- };
68
-
69
- const execPushTheme = async (theme) => {
70
- const storeDomain = get('store_domain');
71
- const spinner = ora(chalk.cyan(`Pushing theme files on ${storeDomain}`)).start();
72
- const { name } = JSON.parse(await pushThemeFiles(theme));
73
- spinner.stop();
74
- log.info(chalk.green(`✓ The ${name} theme pushed successfully`));
75
- };
76
-
77
- const pushCommand = async (options) => {
78
- try {
79
- if (options.theme) {
80
- await execPushTheme(options.theme);
81
- } else {
82
- const storeDomain = get('store_domain');
83
- const spinner = ora(chalk.cyan(`Fetching theme lists from ${storeDomain}`)).start();
84
- const [themesRes, defaultThemeRes] = await Promise.all([getThemes(), getDefaultThemeDetail()]);
85
- spinner.stop();
86
- const answers = await inquirer.prompt([
87
- {
88
- name: 'theme',
89
- type: 'rawlist',
90
- message: `Select a theme to push ${chalk.cyan('(Choose with ↑ ↓ ⏎)')}`,
91
- choices: [
92
- { name: ' Create a new unpublished theme', value: '' },
93
- ...formatThemeList([defaultThemeRes.data.data, ...themesRes.data.data.themes], defaultThemeRes.data.data.id)
94
- ]
95
- }
96
- ]);
97
- await execPushTheme(answers.theme);
98
- }
99
- } catch (error) {
100
- log.error(chalk.red(`✗ Failed to push theme`));
101
- Sentry.captureException(error);
102
- }
103
- };
104
-
105
- exports.pushCommand = pushCommand;
106
- exports.pushThemeFiles = pushThemeFiles;
@@ -1,153 +0,0 @@
1
- const path = require('path');
2
- const os = require('os');
3
- const fs = require('fs-extra');
4
- const ora = require('ora');
5
- const chalk = require('chalk');
6
- const inquirer = require('inquirer');
7
- const Sentry = require('@sentry/node');
8
- const livereload = require('livereload');
9
- const watch = require('node-watch');
10
- const { get, set } = require('../../db/user');
11
- const { pushThemeFiles } = require('./push');
12
- const { getThemes, getDefaultThemeDetail, deleteFile, updateFile, addFile, getFileList } = require('../../openAPI/api');
13
- const log = require('../../log');
14
- const { THEME_DIRS } = require('../../utils/config');
15
- const { getThemeFilenameTypeAndLocation, formatThemeList } = require('../../utils/utils');
16
-
17
- const existInList = (filename, fileList) => {
18
- const { type, location } = getThemeFilenameTypeAndLocation(filename);
19
- return fileList[type] && fileList[type].find((item) => item.location == location);
20
- };
21
- const deleteInList = (filename, fileList) => {
22
- const { type, location } = getThemeFilenameTypeAndLocation(filename);
23
- fileList[type] = fileList[type].filter((i) => i.location !== location);
24
- };
25
- const addInList = (filename, fileList) => {
26
- const { type, location } = getThemeFilenameTypeAndLocation(filename);
27
- fileList[type].push({ location });
28
- };
29
-
30
- const startDevServer = async (theme) => {
31
- const { data: fileList } = await getFileList(theme);
32
- const server = livereload.createServer({ port: '21647', applyCSSLive: false, applyImgLive: false });
33
- const watcher = watch(process.cwd(), {
34
- recursive: true,
35
- filter: (f, skip) => {
36
- const { type } = getThemeFilenameTypeAndLocation(f);
37
- return THEME_DIRS.includes(type);
38
- }
39
- });
40
- return new Promise((resolve, reject) => {
41
- watcher
42
- .on('change', async (evt, filename) => {
43
- try {
44
- log.info(chalk.green(`[${evt}]: ${filename}`));
45
- if (
46
- fs.existsSync(path.join(process.cwd(), filename)) &&
47
- fs.lstatSync(path.join(process.cwd(), filename)).isDirectory()
48
- )
49
- return; // windows change return directory always
50
- if (evt == 'remove') {
51
- await deleteFile(theme, filename);
52
- deleteInList(filename, fileList);
53
- } else if (!/\/\.\w+/.test(filename)) {
54
- // path not contain .xxx hidden file/folder
55
- if (existInList(filename, fileList)) {
56
- await updateFile(theme, filename);
57
- } else {
58
- await addFile(theme, filename);
59
- addInList(filename, fileList);
60
- if (fs.readFileSync(filename, 'utf-8')) {
61
- // addFile api not support post with content
62
- await updateFile(theme, filename);
63
- }
64
- }
65
- }
66
- server.refresh();
67
- log.info(chalk.cyan(`Updated, please refresh your browser, will continue listening for file changes ...`));
68
- } catch (err) {
69
- log.error(chalk.red(`✗ ${err.message || 'Unknown error'}`));
70
- }
71
- })
72
- .on('error', (err) => {
73
- reject(err);
74
- log.error(chalk.red(`✗ Error `, err));
75
- Sentry.captureException(err);
76
- })
77
- .on('ready', () => {
78
- resolve(watcher);
79
- const storeDomain = get('store_domain');
80
- const url = new URL(`https://${storeDomain}`);
81
- url.searchParams.set('preview_theme_id', theme);
82
- log.info(
83
- `Please open this URL in your browser:
84
- ${chalk.green(url.href)}
85
-
86
- Customize this theme in the Theme Editor, and use 'theme pull' to get the changes:
87
- ${chalk.green(`https://${storeDomain}/admin/smart_apps/editor?theme_id=${theme}`)}`.replace(/^[^\S\n]+/gm, '')
88
- );
89
- log.info(`\nListening for file changes ...`);
90
- });
91
- });
92
- };
93
-
94
- module.exports = async (options) => {
95
- try {
96
- const storeDomain = get('store_domain');
97
- if (options.theme) {
98
- const spinner = ora(chalk.cyan(`Syncing theme files on ${storeDomain}`)).start();
99
- const { name } = await pushThemeFiles(options.theme);
100
- set({
101
- theme_id: options.theme,
102
- theme_name: `${name} (${options.theme})`
103
- });
104
- spinner.stop();
105
- return startDevServer(options.theme);
106
- } else {
107
- const spinner = ora(chalk.cyan(`Fetching theme lists`)).start();
108
- const [themesRes, defaultThemeRes] = await Promise.all([getThemes(), getDefaultThemeDetail()]);
109
- spinner.stop();
110
- const themeList = [defaultThemeRes.data.data, ...themesRes.data.data.themes];
111
- const choices = [
112
- { name: 'Create a new unpublished theme', value: '' },
113
- ...formatThemeList(themeList, defaultThemeRes.data.data.id)
114
- ];
115
- const theme_id = get('theme_id');
116
- const theme_name = get('theme_id');
117
-
118
- if (theme_id && theme_name && themeList.find((theme) => theme.id == theme_id)) {
119
- choices.unshift({ name: `Use previous selected ${theme_name}`, value: theme_id });
120
- }
121
-
122
- const answers = await inquirer.prompt([
123
- {
124
- name: 'theme',
125
- type: 'rawlist',
126
- message: `Select a theme to push ${chalk.cyan('(Choose with ↑ ↓ ⏎)')}`,
127
- choices: choices
128
- }
129
- ]);
130
-
131
- const syncSpinner = ora(chalk.cyan(`Syncing theme files on ${storeDomain}`)).start();
132
- if (answers.theme) {
133
- const themeObj = themeList.find((theme) => theme.id == answers.theme);
134
- set({
135
- theme_id: themeObj.id,
136
- theme_name: themeObj.name
137
- });
138
- await pushThemeFiles(answers.theme);
139
- } else {
140
- const { name, theme_id } = JSON.parse(await pushThemeFiles(answers.theme));
141
- set({
142
- theme_id,
143
- theme_name: name
144
- });
145
- }
146
- syncSpinner.stop();
147
- return startDevServer(get('theme_id'));
148
- }
149
- } catch (error) {
150
- log.error(chalk.red(`✗ Failed to serve theme`));
151
- Sentry.captureException(error);
152
- }
153
- };
@@ -1,20 +0,0 @@
1
- const chalk = require('chalk');
2
- const ora = require('ora');
3
- const Sentry = require('@sentry/node');
4
- const log = require('../../log');
5
- const { getShopDetail } = require('../../openAPI/api');
6
- const { pushThemeFiles } = require('./push');
7
-
8
- module.exports = async () => {
9
- try {
10
- const { data } = await getShopDetail();
11
- const spinner = ora(chalk.cyan(`Pushing theme files on ${data.shop.domain}`)).start();
12
- const { name, theme_id } = JSON.parse(await pushThemeFiles());
13
- spinner.stop();
14
- log.info(chalk.green(`✓ The ${name} Theme pushed successfully`));
15
- log.info(`Share your theme preview:\n${chalk.cyan(`https://${data.shop.domain}?preview_theme_id=${theme_id}`)}`);
16
- } catch (error) {
17
- log.error(chalk.red(`✗ Failed to share theme`));
18
- Sentry.captureException(error);
19
- }
20
- };
@@ -1,6 +0,0 @@
1
- const pkg = require('../../package.json');
2
- const log = require('../log');
3
-
4
- module.exports = () => {
5
- log.info(pkg.version);
6
- };
@@ -1,24 +0,0 @@
1
- const mode = 'prod';
2
- let constans;
3
-
4
- if (mode === 'dev') {
5
- constans = {
6
- PARNTER_URL: 'https://partners.dev.shoplazza.com',
7
- LOGIN_BASE_URL: 'https://sso.dev.shoplazza.com',
8
- CLIENT_ID: 'b630b285-e098-4c51-a7a4-d0240c9fc209'
9
- };
10
- } else if (mode === 'stg') {
11
- constans = {
12
- PARNTER_URL: 'https://partners.stg.shoplazza.com',
13
- LOGIN_BASE_URL: 'https://sso.stg.shoplazza.com',
14
- CLIENT_ID: 'b630b285-e098-4c51-a7a4-d0240c9fc209'
15
- };
16
- } else if (mode === 'prod') {
17
- constans = {
18
- PARNTER_URL: 'https://partners.shoplazza.com',
19
- LOGIN_BASE_URL: 'https://sso.shoplazza.com',
20
- CLIENT_ID: '807525c9-dd77-4f4e-a738-d1e9d02c593d'
21
- };
22
- }
23
-
24
- module.exports = constans;
@@ -1,91 +0,0 @@
1
- const fs = require('fs-extra');
2
- const path = require('path');
3
- const os = require('os');
4
-
5
- fs.ensureDirSync(path.join(os.homedir(), '/.cache/shoplazza'));
6
- const db = require('better-sqlite3')(path.join(os.homedir(), '/.cache/shoplazza/.partner.db'), {});
7
-
8
- const PARTNER_KEYS = {
9
- SESSION_ID: 'session_id',
10
- EXPIRES_IN: 'expires_in',
11
- LOGIN_TIMESTAMP: 'login_timestamp',
12
- PARTNER_ID: 'partner_id',
13
- APP: 'app',
14
- EXTENSION_TYPE: 'extension_type',
15
- EXTENSION_NAME: 'extension_name',
16
- EXTENSION_ID: 'extension_id'
17
- };
18
-
19
- db.prepare(
20
- `CREATE TABLE IF NOT EXISTS partner (
21
- id integer primary key AUTOINCREMENT,
22
- ${PARTNER_KEYS.SESSION_ID} TEXT,
23
- ${PARTNER_KEYS.EXPIRES_IN} TEXT,
24
- ${PARTNER_KEYS.LOGIN_TIMESTAMP} TEXT,
25
- ${PARTNER_KEYS.PARTNER_ID} TEXT,
26
- ${PARTNER_KEYS.APP} TEXT,
27
- ${PARTNER_KEYS.EXTENSION_TYPE} TEXT,
28
- ${PARTNER_KEYS.EXTENSION_NAME} TEXT,
29
- ${PARTNER_KEYS.EXTENSION_ID} TEXT
30
- )`
31
- ).run();
32
-
33
- const get = () => {
34
- return db.prepare('select * from partner limit 0,1;').get();
35
- };
36
-
37
- const getValue = (key) => {
38
- const partner = get();
39
- if (partner) {
40
- return partner[key];
41
- }
42
- return null;
43
- };
44
-
45
- const getNewValues = (values) => {
46
- const currentValues = Object.values(PARTNER_KEYS).reduce(
47
- (res, key) => Object.assign(res, { [key]: getValue(key) }),
48
- {}
49
- );
50
- if (typeof values === 'object' && values !== null && !Array.isArray(values)) {
51
- return Object.assign(currentValues, values);
52
- }
53
-
54
- return currentValues;
55
- };
56
-
57
- const getApp = () => {
58
- const appsStr = getValue(PARTNER_KEYS.APP);
59
- if (appsStr) {
60
- return JSON.parse(appsStr);
61
- }
62
- };
63
-
64
- const empty = () => {
65
- db.prepare(`delete from partner`).run();
66
- };
67
-
68
- const set = (values) => {
69
- db.prepare(
70
- `INSERT OR REPLACE INTO partner (id, ${PARTNER_KEYS.SESSION_ID}, ${PARTNER_KEYS.EXPIRES_IN}, ${PARTNER_KEYS.LOGIN_TIMESTAMP}, ${PARTNER_KEYS.PARTNER_ID}, ${PARTNER_KEYS.APP}, ${PARTNER_KEYS.EXTENSION_TYPE}, ${PARTNER_KEYS.EXTENSION_NAME}, ${PARTNER_KEYS.EXTENSION_ID}) values (
71
- (select id from partner where ${PARTNER_KEYS.SESSION_ID} = @${PARTNER_KEYS.SESSION_ID}),
72
- @${PARTNER_KEYS.SESSION_ID},
73
- @${PARTNER_KEYS.EXPIRES_IN},
74
- @${PARTNER_KEYS.LOGIN_TIMESTAMP},
75
- @${PARTNER_KEYS.PARTNER_ID},
76
- @${PARTNER_KEYS.APP},
77
- @${PARTNER_KEYS.EXTENSION_TYPE},
78
- @${PARTNER_KEYS.EXTENSION_NAME},
79
- @${PARTNER_KEYS.EXTENSION_ID}
80
- )`
81
- ).run(getNewValues(values));
82
- };
83
-
84
- module.exports = {
85
- get,
86
- getValue,
87
- getApp,
88
- set,
89
- empty,
90
- PARTNER_KEYS
91
- };
@@ -1,79 +0,0 @@
1
- const axios = require('axios');
2
- const inquirer = require('inquirer');
3
- const ora = require('ora');
4
- const chalk = require('chalk');
5
-
6
- const { getValue, PARTNER_KEYS, set, get } = require('../db/partner');
7
- const { PARNTER_URL } = require('../constants');
8
-
9
- const requestAppList = async () => {
10
- const spinner = ora(chalk.cyan(`Waiting request your apps ...`)).start();
11
-
12
- try {
13
- const partnerId = getValue(PARTNER_KEYS.PARTNER_ID);
14
- if (!partnerId) {
15
- spinner.fail('You have to choose a partner first!');
16
- return;
17
- }
18
-
19
- const url = `${PARNTER_URL}/api/partners/${partnerId}/apps`;
20
- const result = await axios.get(url, {
21
- headers: {
22
- cookie: `awesomev2=${getValue(PARTNER_KEYS.SESSION_ID)};`,
23
- 'x-shoplazza-partner-id': partnerId
24
- }
25
- });
26
-
27
- if (!result.data.length) {
28
- spinner.fail(chalk.red(`You haven't any apps yet, please create one at ${PARNTER_URL} fist!`));
29
- return;
30
- }
31
-
32
- spinner.succeed();
33
- return result.data;
34
- } catch (e) {
35
- spinner.fail();
36
- console.log(
37
- chalk.red(
38
- `Failed to get partners, please try to run \n ${chalk.green(
39
- ' shoplazza app retry -p '
40
- )} \nor contact with Shoplazza!`
41
- )
42
- );
43
- }
44
- };
45
-
46
- const chooseApp = async () => {
47
- const list = await requestAppList();
48
- if (!list) {
49
- return;
50
- }
51
-
52
- try {
53
- const answer = await inquirer.prompt([
54
- {
55
- type: 'list',
56
- name: 'appId',
57
- message: 'Choose your app:',
58
- default: list[0].id,
59
- prefix: '*',
60
- choices: list.map((app) => {
61
- return {
62
- name: app.name,
63
- value: app.id
64
- };
65
- })
66
- }
67
- ]);
68
-
69
- const app = list.find((app) => app.id === answer['appId']);
70
- set({ [PARTNER_KEYS.APP]: JSON.stringify(app) });
71
- return true;
72
- } catch (e) {
73
- console.log(e);
74
- }
75
- };
76
-
77
- module.exports = {
78
- chooseApp
79
- };
@@ -1,74 +0,0 @@
1
- const axios = require('axios');
2
- const inquirer = require('inquirer');
3
- const ora = require('ora');
4
- const chalk = require('chalk');
5
-
6
- const { getValue, PARTNER_KEYS, set, get } = require('../db/partner');
7
- const { PARNTER_URL } = require('../constants');
8
- const log = require('../../log');
9
-
10
- const requestPartnerList = async () => {
11
- const spinner = ora(chalk.cyan(`Waiting request your partners ...`)).start();
12
-
13
- try {
14
- const url = `${PARNTER_URL}/api/partners`;
15
- const sessionId = getValue(PARTNER_KEYS.SESSION_ID);
16
-
17
- const result = await axios.get(url, {
18
- headers: {
19
- Cookie: `awesomev2=${sessionId}`
20
- }
21
- });
22
-
23
- if (!result.data.length) {
24
- spinner.fail(chalk.red(`You haven't any partners yet, please create one at ${PARNTER_URL} fist!`));
25
- return;
26
- }
27
-
28
- spinner.succeed();
29
- return result.data;
30
- } catch (e) {
31
- spinner.fail(e.message);
32
- log.error(
33
- chalk.red(
34
- `Failed to get partners, please try to run \n ${chalk.green(
35
- ' shoplazza app retry -p '
36
- )} \nor contact with Shoplazza!`
37
- )
38
- );
39
- }
40
- };
41
-
42
- const choosePartner = async () => {
43
- const list = await requestPartnerList();
44
- if (!list) {
45
- return;
46
- }
47
-
48
- try {
49
- const answer = await inquirer.prompt([
50
- {
51
- type: 'list',
52
- name: 'partnerId',
53
- message: 'Choose your partner:',
54
- default: list[0].partner_id,
55
- prefix: '*',
56
- choices: list.map((app) => {
57
- return {
58
- name: `${app.partner_id} ${app.business_name}`,
59
- value: String(app.partner_id)
60
- };
61
- })
62
- }
63
- ]);
64
-
65
- set({ [PARTNER_KEYS.PARTNER_ID]: answer['partnerId'] });
66
- return true;
67
- } catch (e) {
68
- console.log(e);
69
- }
70
- };
71
-
72
- module.exports = {
73
- choosePartner
74
- };
package/lib/common/log.js DELETED
@@ -1,15 +0,0 @@
1
- const ora = require('ora');
2
- const chalk = require('chalk');
3
-
4
- const done = () => {
5
- ora(chalk.cyan(`Done`)).succeed();
6
- };
7
-
8
- const line = () => {
9
- console.log('\b');
10
- };
11
-
12
- module.exports = {
13
- done,
14
- line
15
- };