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,56 +0,0 @@
1
- const { getTemplateGitRequest } = require('../../../api/cli');
2
- const { withTempDir } = require('../../../utils/withTempDir');
3
- const { checkGit } = require('../../../utils/git');
4
- const simpleGit = require('simple-git');
5
- const { modifyJsonFile } = require('../../../utils/json');
6
- const { modifyTomlFile } = require('../../../utils/toml');
7
- const path = require('path');
8
- const fs = require('fs');
9
- const { successMessageRender } = require('../../../utils/views/message');
10
- const { EXTENSION_TYPES } = require('../../../constant/extension');
11
-
12
- // 生成功能扩展
13
- async function generateFunction({ targetDirectory }) {
14
- const extensionName = path.basename(targetDirectory);
15
-
16
- // 检查 git 是否安装
17
- checkGit();
18
-
19
- await withTempDir(async (tempDir) => {
20
- const { https } = await getTemplateGitRequest('ext_func');
21
-
22
- const tempDirPath = path.join(tempDir, 'extension');
23
-
24
- // 克隆项目到本地
25
- await simpleGit().clone(https, tempDirPath);
26
-
27
- // 删除 .git 文件夹
28
- fs.rmSync(path.join(tempDirPath, '.git'), { recursive: true, force: true });
29
-
30
- // 修改 package.json
31
- await modifyJsonFile(path.join(tempDirPath, 'package.json'), (config) => {
32
- return {
33
- ...config,
34
- name: extensionName
35
- };
36
- });
37
-
38
- // 修改 shoplazza.extension.toml
39
- await modifyTomlFile(path.join(tempDirPath, 'shoplazza.extension.toml'), (config) => {
40
- return {
41
- ...config,
42
- name: extensionName,
43
- type: EXTENSION_TYPES.FUNCTION
44
- };
45
- });
46
-
47
- // 复制目录到目标位置
48
- fs.cpSync(tempDirPath, targetDirectory, { recursive: true });
49
- });
50
-
51
- successMessageRender(`Your extension was created in extensions/${extensionName}.`);
52
- }
53
-
54
- module.exports = {
55
- generateFunction
56
- };
@@ -1,128 +0,0 @@
1
- const fs = require('fs');
2
- const path = require('path');
3
- const inquirer = require('inquirer');
4
-
5
- const { getTemplateGitRequest } = require('../../../api/cli');
6
- const { THEME_EXTENSION_TYPES, EXTENSION_TYPES } = require('../../../constant/extension');
7
- const { successMessageRender } = require('../../../utils/views/message');
8
- const { withTempDir } = require('../../../utils/withTempDir');
9
- const { checkGit } = require('../../../utils/git');
10
- const simpleGit = require('simple-git');
11
- const { modifyJsonFile } = require('../../../utils/json');
12
- const { modifyTomlFile } = require('../../../utils/toml');
13
- // 生成主题扩展
14
- async function generateTheme({ targetDirectory }) {
15
- const extensionName = path.basename(targetDirectory);
16
-
17
- // 选择主题扩展类型
18
- const { themeExtensionType } = await inquirer.prompt([
19
- {
20
- type: 'list',
21
- name: 'themeExtensionType',
22
- message: 'Select theme extension type:',
23
- choices: [
24
- { name: 'Basic Extension(a card storekeeper decide where it add)', value: THEME_EXTENSION_TYPES.BASIC },
25
- { name: 'Embed Extension(a card not need add)', value: THEME_EXTENSION_TYPES.EMBED }
26
- ]
27
- }
28
- ]);
29
-
30
- // 检查 git 是否安装
31
- checkGit();
32
-
33
- await withTempDir(async (tempDir) => {
34
- const { https } = await getTemplateGitRequest('ext_thm');
35
-
36
- const tempDirPath = path.join(tempDir, 'extension');
37
-
38
- // 克隆项目到本地
39
- await simpleGit().clone(https, tempDirPath);
40
-
41
- // 删除 .git 文件夹
42
- fs.rmSync(path.join(tempDirPath, '.git'), { recursive: true, force: true });
43
-
44
- // 修改 package.json
45
- await modifyJsonFile(path.join(tempDirPath, 'package.json'), (config) => {
46
- return {
47
- ...config,
48
- name: extensionName
49
- };
50
- });
51
-
52
- // 修改 shoplazza.extension.toml
53
- await modifyTomlFile(path.join(tempDirPath, 'shoplazza.extension.toml'), (config) => {
54
- return {
55
- ...config,
56
- name: extensionName,
57
- type: EXTENSION_TYPES.THEME
58
- };
59
- });
60
-
61
- // 重命名 文件
62
- fs.renameSync(
63
- path.join(tempDirPath, 'blocks', `index-${themeExtensionType}.liquid`),
64
- path.join(tempDirPath, 'blocks', `${extensionName}.liquid`)
65
- );
66
- fs.renameSync(
67
- path.join(tempDirPath, 'snippets', 'index.liquid'),
68
- path.join(tempDirPath, 'snippets', `${extensionName}.liquid`)
69
- );
70
-
71
- if (themeExtensionType === THEME_EXTENSION_TYPES.EMBED) {
72
- // embed 重命名 snippets/index_css.liquid
73
- fs.renameSync(
74
- path.join(tempDirPath, 'snippets', 'index_css.liquid'),
75
- path.join(tempDirPath, 'snippets', `${extensionName}_css.liquid`)
76
- );
77
-
78
- // embed 删除 assets/**
79
- fs.rmSync(path.join(tempDirPath, 'assets'), { recursive: true, force: true });
80
- } else {
81
- // 删除 snippets/index_css.liquid
82
- fs.unlinkSync(path.join(tempDirPath, 'snippets', 'index_css.liquid'));
83
-
84
- // basic 重命名 assets/index.css
85
- fs.renameSync(
86
- path.join(tempDirPath, 'assets', 'index.css'),
87
- path.join(tempDirPath, 'assets', `${extensionName}.css`)
88
- );
89
- }
90
-
91
- // 修改 blocks/index.liquid
92
- const blocksIndexLiquidPath = path.join(tempDirPath, 'blocks', `${extensionName}.liquid`);
93
- const blocksIndexLiquidContent = fs.readFileSync(blocksIndexLiquidPath, 'utf-8');
94
- const newBlocksIndexLiquidContent = blocksIndexLiquidContent.replaceAll('{{projectName}}', extensionName);
95
- fs.writeFileSync(blocksIndexLiquidPath, newBlocksIndexLiquidContent);
96
-
97
- // 修改 locales/en-US.json 和 locales/zh-CN.json
98
- await Promise.all(
99
- ['en-US.json', 'zh-CN.json'].map(async (locale) => {
100
- const localesJsonPath = path.join(tempDirPath, 'locales', locale);
101
- const localesJsonContent = fs.readFileSync(localesJsonPath, 'utf-8');
102
- const newLocalesJsonContent = localesJsonContent.replaceAll(
103
- '{{type}}',
104
- themeExtensionType === THEME_EXTENSION_TYPES.BASIC ? 'BASIC' : 'EMBED'
105
- );
106
- fs.writeFileSync(localesJsonPath, newLocalesJsonContent);
107
- })
108
- );
109
-
110
- // 删除 多余的 blocks/index-xxx.liquid
111
- fs.unlinkSync(
112
- path.join(
113
- tempDirPath,
114
- 'blocks',
115
- `index-${themeExtensionType === THEME_EXTENSION_TYPES.BASIC ? 'embed' : 'basic'}.liquid`
116
- )
117
- );
118
-
119
- // 复制目录到目标位置
120
- fs.cpSync(tempDirPath, targetDirectory, { recursive: true });
121
- });
122
-
123
- successMessageRender(`Your extension was created in extensions/${extensionName}.`);
124
- }
125
-
126
- module.exports = {
127
- generateTheme
128
- };
@@ -1,11 +0,0 @@
1
- const { Command } = require('commander');
2
- const { extensionAction } = require('./actions/extension');
3
- const extensionCommand = new Command('extension');
4
-
5
- extensionCommand.option('--path <path>', 'The path to your app directory');
6
-
7
- extensionCommand.action(extensionAction);
8
-
9
- module.exports = {
10
- extensionCommand
11
- };
@@ -1,22 +0,0 @@
1
- const { Command } = require('commander');
2
- const { extensionCommand } = require('./extension');
3
- const chalk = require('chalk');
4
- const generateCommand = new Command('generate');
5
-
6
- generateCommand.option('--path <path>', 'The path to your app directory');
7
-
8
- generateCommand.addCommand(extensionCommand);
9
-
10
- generateCommand.helpInformation = function () {
11
- return `Generate a new app Extension.
12
-
13
- ${chalk.bold('USAGE')}
14
- $ shoplazza app generate COMMAND
15
-
16
- ${chalk.bold('COMMANDS')}
17
- app generate extension Generate a new app Extension.`;
18
- };
19
-
20
- module.exports = {
21
- generateCommand
22
- };
@@ -1,82 +0,0 @@
1
- const chalk = require('chalk');
2
- const { Command } = require('commander');
3
- const { configCommand } = require('./config');
4
- const { versionsCommand } = require('./versions');
5
- const { deployCommand } = require('./deploy');
6
- const { infoCommand } = require('./info');
7
- const { initCommand } = require('./init');
8
- const { generateCommand } = require('./generate');
9
- const { devCommand } = require('./dev');
10
- const path = require('path');
11
- const { ssoStore, configStore, installStore } = require('../store');
12
- const { existsPath } = require('../utils/path');
13
- const { errorMessageRender } = require('../utils/views/message');
14
- const { isDebug } = require('../utils/debug');
15
- const appCommand = new Command('app')
16
- .description('Build Shoplazza apps.')
17
- .option('--reset', 'Reset app cache') // 重置 app 的本地缓存
18
- .addCommand(initCommand)
19
- .addCommand(infoCommand)
20
- .addCommand(deployCommand)
21
- .addCommand(configCommand)
22
- .addCommand(versionsCommand)
23
- .addCommand(generateCommand)
24
- .addCommand(devCommand);
25
-
26
- // 在 appCommand 执行任何子命令前加载 dotenv
27
- appCommand.hook('preAction', (thisCommand, actionCommand) => {
28
- const { path: argPath = '.' } = actionCommand.opts();
29
-
30
- const { reset: argReset } = thisCommand.opts();
31
-
32
- const projectDir = path.resolve(process.cwd(), argPath);
33
-
34
- if (!existsPath(projectDir)) {
35
- errorMessageRender(`Couldn't find directory ${projectDir}`);
36
- process.exit(1);
37
- }
38
-
39
- require('dotenv').config({
40
- path: path.join(projectDir, '.env')
41
- });
42
-
43
- // 增加环境变量
44
- process.env.APP_PROJECT_DIR = projectDir;
45
-
46
- if (isDebug()) {
47
- // 设置调试模式
48
- process.env.DEBUG = true;
49
- }
50
-
51
- if (argReset) {
52
- // 清空 app config 缓存
53
- configStore.clear();
54
- // 清空 app clientId 对应店铺授权信息
55
- installStore.clear();
56
- // 清空 app access_token
57
- ssoStore.clear();
58
- }
59
- });
60
-
61
- appCommand.helpInformation = function () {
62
- return `Build Shoplazza app.
63
-
64
- ${chalk.bold('USAGE')}
65
- $ shoplazza app COMMAND [options]
66
-
67
- ${chalk.bold('TOPICS')}
68
- app config Manage app configuration.
69
- app generate Generate a new app Extension.
70
- app versions List deployed versions of your app.
71
-
72
- ${chalk.bold('COMMANDS')}
73
- app init Create a new app project.
74
- app info Print basic information about your app and extensions.
75
- app dev Run the app.
76
- app deploy Deploy your Shoplazza app.
77
- `;
78
- };
79
-
80
- module.exports = {
81
- appCommand
82
- };
@@ -1,168 +0,0 @@
1
- const path = require('path');
2
- const fs = require('fs');
3
- const glob = require('glob');
4
- const chalk = require('chalk');
5
-
6
- const { parseTomlFile } = require('../../../utils/toml');
7
- const { withErrorHandling } = require('../../../utils/error');
8
- const { warningMessageRender, infoMessageRender } = require('../../../utils/views/message');
9
- const { getAppCompleteInfoRequest } = require('../../../api/cli');
10
- const { getActiveConfigFile } = require('../../../services/config');
11
-
12
- // 整理 extensions 信息
13
- function getExtensionInfo(projectDir) {
14
- const extnesions = glob.sync(path.join(projectDir, 'extensions/**/*.toml'));
15
-
16
- const extensionsInfo = extnesions.map((extension) => {
17
- const extensionInfo = parseTomlFile(extension);
18
- return {
19
- name: extensionInfo.name,
20
- type: extensionInfo.type
21
- };
22
- });
23
-
24
- // 获取 extnesions 中 name 最长的长度
25
- const maxNameLength = Math.max(...extensionsInfo.map((item) => item.name.length));
26
-
27
- // padEnd 长度
28
- const result = extensionsInfo.map((item) => {
29
- return `${item.name.padEnd(maxNameLength)} ${chalk.gray(`(${item.type})`)}`;
30
- });
31
-
32
- return result.join('\n');
33
- }
34
-
35
- async function infoAction(options) {
36
- const { path: argPath = '.' } = options;
37
- // 项目地址
38
- const projectDir = path.resolve(argPath);
39
-
40
- // 判断项目是否存在
41
- if (!fs.existsSync(projectDir)) {
42
- throw new Error(`Couldn't find directory ${projectDir}`);
43
- }
44
-
45
- // 获取当前正在使用的 configFile
46
- const activeConfigFile = getActiveConfigFile(projectDir);
47
-
48
- // 判断 configFile 是否存在
49
- if (!fs.existsSync(path.join(projectDir, activeConfigFile))) {
50
- // 获取 projectDir 根目录下 所有的 shoplazza.app.*.toml
51
- const configFiles = glob.sync(path.join(projectDir, 'shoplazza.app.*.toml'));
52
-
53
- // 如果 configFiles 为空,则抛出错误
54
- if (configFiles.length === 0) {
55
- warningMessageRender(
56
- `No config file found, please use ${chalk.hex('#d079f8')(
57
- '`shoplazza app config link`'
58
- )} to create a new config file`
59
- );
60
- } else {
61
- warningMessageRender(
62
- `No active config file found, please use ${chalk.hex('#d079f8')(
63
- '`shoplazza app config use`'
64
- )} to switch to a new config file`
65
- );
66
- }
67
-
68
- process.exit(1);
69
- }
70
-
71
- // 获取 configFile 信息
72
- const configContent = parseTomlFile(path.join(projectDir, activeConfigFile));
73
-
74
- // 获取 app 相关信息
75
- const { user, partner, app } = await getAppCompleteInfoRequest(configContent.client_id);
76
-
77
- // userObj
78
- const userObj = [
79
- {
80
- label: 'Configuration file',
81
- value: activeConfigFile
82
- },
83
- {
84
- label: 'App name',
85
- value: app.name
86
- },
87
- {
88
- label: 'App Client ID',
89
- value: configContent.client_id
90
- },
91
- {
92
- label: 'Access scopes',
93
- value: configContent.scopes
94
- },
95
- {
96
- label: 'User',
97
- value: user.shoplazza_account
98
- }
99
- ];
100
-
101
- // your project
102
- const projectObj = [
103
- {
104
- label: 'Root location',
105
- value: projectDir
106
- }
107
- ];
108
-
109
- // tooling and system
110
- const toolingObj = [
111
- {
112
- label: 'Shoplazza CLI',
113
- value: `v${require('../../../../../package.json').version}`
114
- },
115
- {
116
- label: 'OS',
117
- value: `${process.platform}-${process.arch}`
118
- },
119
- {
120
- label: 'Shell',
121
- value: process.env.SHELL
122
- },
123
- {
124
- label: 'Node',
125
- value: process.version
126
- }
127
- ];
128
-
129
- const userObjStr = userObj
130
- .map((item) => {
131
- return `${chalk.gray(item.label.padEnd(20))} ${item.value || ''}`;
132
- })
133
- .join('\n');
134
-
135
- const projectObjStr = projectObj
136
- .map((item) => {
137
- return `${chalk.gray(item.label.padEnd(20))} ${item.value || ''}`;
138
- })
139
- .join('\n');
140
-
141
- const toolingObjStr = toolingObj
142
- .map((item) => {
143
- return `${chalk.gray(item.label.padEnd(20))} ${item.value || ''}`;
144
- })
145
- .join('\n');
146
-
147
- // 展示 CURRENT APP CONFIGURATION
148
- infoMessageRender(`${chalk.bold('CURRENT APP CONFIGURATION')}
149
-
150
- ${userObjStr}
151
-
152
- ${chalk.bold('YOUR PROJECT')}
153
-
154
- ${projectObjStr}
155
-
156
- ${chalk.bold('DIRECTORY COMPONENTS')}
157
-
158
- ${getExtensionInfo(projectDir)}
159
-
160
- ${chalk.bold('TOOLING AND SYSTEM')}
161
-
162
- ${toolingObjStr}
163
- `);
164
- }
165
-
166
- module.exports = {
167
- infoAction: withErrorHandling(infoAction)
168
- };
@@ -1,11 +0,0 @@
1
- const { Command } = require('commander');
2
- const { infoAction } = require('./actions/info');
3
- const infoCommand = new Command('info');
4
-
5
- infoCommand.option('--path <path>', 'The path to your app directory');
6
-
7
- infoCommand.action(infoAction);
8
-
9
- module.exports = {
10
- infoCommand
11
- };
@@ -1,176 +0,0 @@
1
- const fs = require('fs');
2
- const path = require('path');
3
- const chalk = require('chalk');
4
- const inquirer = require('inquirer');
5
- const simpleGit = require('simple-git');
6
-
7
- const { getAppListRequest, createAppRequest, getTemplateGitRequest, getAppConfigRequest } = require('../../../api/cli');
8
-
9
- const { checkGit } = require('../../../utils/git');
10
- const { slugify } = require('../../../utils/path');
11
- const { modifyTomlFile } = require('../../../utils/toml');
12
- const { modifyJsonFile } = require('../../../utils/json');
13
- const { selectOne } = require('../../../utils/views/select');
14
- const { withErrorHandling } = require('../../../utils/error');
15
- const { withTempDir } = require('../../../utils/withTempDir');
16
- const { successMessageRender } = require('../../../utils/views/message');
17
- const { getPartner, promptCreateOrConnect } = require('../../../services/partner');
18
- const { ssoStore, configStore } = require('../../../store');
19
-
20
- // 校验项目地址
21
- async function checkProjectDir(projectDir) {
22
- // 检查目录是否已存在
23
- if (fs.existsSync(projectDir)) {
24
- throw new Error(
25
- `A directory with this name (${path.basename(projectDir)}) already exists.\nChoose a new name for your app.`
26
- );
27
- }
28
- }
29
-
30
- // 初始化项目
31
- async function initProject(projectDir, app) {
32
- // 检查 git 是否安装
33
- checkGit();
34
-
35
- await withTempDir(async (tempDir) => {
36
- // 获取模板 git
37
- const { https } = await getTemplateGitRequest('app');
38
-
39
- // 克隆项目到本地
40
- await simpleGit().clone(https, tempDir);
41
-
42
- // 删除 .git 文件夹
43
- fs.rmSync(path.resolve(tempDir, '.git'), { recursive: true, force: true });
44
-
45
- // 修改 package.json
46
- await modifyJsonFile(path.join(tempDir, 'package.json'), (packageJsonObj) => ({
47
- ...packageJsonObj,
48
- name: app.name
49
- }));
50
-
51
- // 修改 shoplazza.app.toml
52
- await modifyTomlFile(path.resolve(tempDir, 'shoplazza.app.toml'), (config) => {
53
- config.client_id = app.client_id;
54
- return config;
55
- });
56
-
57
- // 复制项目到本地
58
- fs.cpSync(tempDir, projectDir, { recursive: true });
59
- });
60
- }
61
-
62
- // 成功提示
63
- function successTips(projectDir) {
64
- const appName = path.basename(projectDir);
65
- successMessageRender(`${chalk.hex('#73cedd')(appName)} is ready for you to build!
66
-
67
- Next steps:
68
- • Run ${chalk.hex('#d079f8')(`\`cd ${appName}\``)}
69
- • For extensions, run ${chalk.hex('#d079f8')('`shoplazza app generate extension`')}
70
- • To see your app, run ${chalk.hex('#d079f8')('`shoplazza app deploy`')}
71
-
72
- Reference
73
- • Shoplazza docs [1]
74
- • For an overview of commands, run ${chalk.hex('#d079f8')('`shoplazza app --help`')}`);
75
- console.log(`[1] https://shoplazza.dev`);
76
- }
77
-
78
- async function initAction(options) {
79
- const { path: argPath = '.', clientId: argClientId, name: argName } = options;
80
-
81
- // 选取 partner
82
- const partner = await getPartner(argClientId);
83
-
84
- // 获取 appList
85
- const appListRes = await getAppListRequest(partner.id);
86
-
87
- // 判断 创建 还是 链接
88
- const isCreate = argClientId ? false : await promptCreateOrConnect(appListRes);
89
-
90
- if (isCreate) {
91
- // 创建
92
- const appName = await inquirer
93
- .prompt({
94
- type: 'input',
95
- name: 'app_name',
96
- message: 'App name:',
97
- default: argName,
98
- validate: (value) => {
99
- return value.trim() !== '' ? true : "App name can't be empty";
100
- }
101
- })
102
- .then((r) => r.app_name);
103
-
104
- // 规范化 appName
105
- const normalizedAppName = slugify(appName);
106
-
107
- // 项目目录
108
- const projectDir = path.resolve(process.cwd(), argPath, normalizedAppName);
109
-
110
- // 校验项目地址
111
- await checkProjectDir(projectDir);
112
-
113
- // 创建 app
114
- const { app } = await createAppRequest(partner.id, {
115
- app_name: normalizedAppName
116
- });
117
-
118
- // 初始化项目
119
- await initProject(projectDir, app);
120
-
121
- // 缓存 app 相关信息
122
- configStore.setProjectConfig(projectDir, {
123
- clientId: app.client_id,
124
- directory: projectDir,
125
- configFile: 'shoplazza.app.toml'
126
- });
127
-
128
- // 成功提示
129
- successTips(projectDir);
130
- } else {
131
- // 链接
132
- const appListRes = await getAppListRequest(partner.id);
133
-
134
- if (appListRes.total === 0) {
135
- throw new Error("You haven't any apps yet, please create one first!");
136
- }
137
-
138
- // 选取 app
139
- const appClientId =
140
- argClientId ||
141
- (await selectOne(appListRes.apps, {
142
- message: 'Which app is this work for?',
143
- autoPickSingle: false,
144
- formatChoice: (a) => ({ name: a.name, value: a.client_id })
145
- }));
146
-
147
- // 获取 app 配置
148
- const { app } = await getAppConfigRequest(partner.id, appClientId);
149
-
150
- // 规范化 appName
151
- const normalizedAppName = slugify(app.name);
152
-
153
- // 项目目录
154
- const projectDir = path.resolve(process.cwd(), argPath, normalizedAppName);
155
-
156
- // 校验项目地址
157
- await checkProjectDir(projectDir);
158
-
159
- // 初始化项目
160
- await initProject(projectDir, app);
161
-
162
- // 缓存 app 相关信息
163
- configStore.setProjectConfig(projectDir, {
164
- clientId: app.client_id,
165
- directory: projectDir,
166
- configFile: 'shoplazza.app.toml'
167
- });
168
-
169
- // 成功提示
170
- successTips(projectDir);
171
- }
172
- }
173
-
174
- module.exports = {
175
- initAction: withErrorHandling(initAction)
176
- };
@@ -1,14 +0,0 @@
1
- const { Command } = require('commander');
2
- const { initAction } = require('./actions/init');
3
- const initCommand = new Command('init');
4
-
5
- initCommand
6
- .option('--path <path>', 'The path to your app directory')
7
- .option('--client-id <client-id>', 'The client id of your app')
8
- .option('--name <name>', 'The name of your app');
9
-
10
- initCommand.action(initAction);
11
-
12
- module.exports = {
13
- initCommand
14
- };