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,125 +0,0 @@
1
- const chalk = require('chalk');
2
- const ora = require('ora');
3
- const open = require('open');
4
- const axios = require('axios');
5
- const { fork } = require('child_process');
6
- const path = require('path');
7
-
8
- const { set, PARTNER_KEYS, get, empty } = require('./db/partner');
9
- const { PARNTER_URL, LOGIN_BASE_URL, CLIENT_ID } = require('./constants');
10
- const { REDIRECT_URI } = require('../utils/config');
11
- const log = require('../log');
12
- const { choosePartner } = require('./inquirers/choose-partner');
13
- const { chooseApp } = require('./inquirers/choose-app');
14
-
15
- const isLogin = () => {
16
- const values = get();
17
- const time = new Date().getTime();
18
-
19
- if (!values || !values[PARTNER_KEYS.SESSION_ID]) {
20
- return false;
21
- }
22
-
23
- if (Number(time) - Number(values[PARTNER_KEYS.LOGIN_TIMESTAMP]) >= Number(values[PARTNER_KEYS.LOGIN_TIMESTAMP])) {
24
- return false;
25
- }
26
-
27
- return true;
28
- };
29
-
30
- const stop = async (time = 1000) => {
31
- return new Promise((resolve) => {
32
- setTimeout(() => {
33
- resolve(true);
34
- }, time);
35
- });
36
- };
37
-
38
- const openLoginPage = () => {
39
- open(
40
- `${LOGIN_BASE_URL}/switch_account?lack=0&continue=${encodeURIComponent(
41
- `${LOGIN_BASE_URL}/api/oauth/authorize?action=login&client_id=${CLIENT_ID}&redirect_uri=${REDIRECT_URI}&response_type=code`
42
- )}`
43
- );
44
- };
45
-
46
- const getCode = () => {
47
- return new Promise((resolve, reject) => {
48
- const child = fork(path.join(__dirname, '../auth/child.js'), { timeout: 60 * 1000 });
49
- child.on('message', function (message) {
50
- if (message.code) {
51
- resolve(message.code);
52
- }
53
- });
54
- child.on('close', function (message) {
55
- // Timeout
56
- if (message === null) {
57
- log.error(chalk.red('✗ Timed out while waiting for response from Shoplazza'));
58
- reject('timeout');
59
- }
60
- });
61
- openLoginPage();
62
- });
63
- };
64
-
65
- const postAccessToken = async (code) => {
66
- try {
67
- const url = `${LOGIN_BASE_URL}/api/oauth/token`;
68
- const { data } = await axios.post(
69
- url,
70
- `client_id=${CLIENT_ID}&code=${code}&grant_type=authorization_code&redirect_uri=${REDIRECT_URI}`,
71
- {
72
- headers: {
73
- 'Content-Type': 'application/x-www-form-urlencoded'
74
- }
75
- }
76
- );
77
-
78
- set({
79
- [PARTNER_KEYS.SESSION_ID]: data.session_id,
80
- [PARTNER_KEYS.EXPIRES_IN]: data.expires_in,
81
- [PARTNER_KEYS.LOGIN_TIMESTAMP]: new Date().getTime()
82
- });
83
- } catch (e) {
84
- console.log(e);
85
- log.error(chalk.red('\n✗ Failed to post access token'));
86
- process.exit(-1);
87
- }
88
- };
89
-
90
- const login = async () => {
91
- let spinner;
92
- try {
93
- spinner = ora(`Waiting logging in to ${chalk.green(PARNTER_URL)} \r`).start();
94
-
95
- const code = await getCode(PARNTER_URL);
96
- await postAccessToken(code);
97
-
98
- spinner && spinner.succeed();
99
- log.info('\n', chalk.green(`Logged into ${PARNTER_URL} successfully!`), '\n');
100
- return true;
101
- } catch (e) {
102
- spinner && spinner.fail();
103
- log.error(chalk.red(`✗ Logged into ${PARNTER_URL} failed`));
104
- }
105
- };
106
-
107
- const loginAndChoose = async () => {
108
- (await login()) && (await choosePartner()) && (await chooseApp());
109
- };
110
-
111
- const checkAndLogin = async () => {
112
- if (!isLogin()) {
113
- log.info('\n', chalk.red('Your identity has expired or you are not logged in, please log in first!'), '\n');
114
- empty();
115
- await stop(1000);
116
- await loginAndChoose();
117
- await stop(1000);
118
- }
119
- return true;
120
- };
121
-
122
- module.exports = {
123
- loginIntoPartner: loginAndChoose,
124
- checkAndLogin
125
- };
@@ -1,16 +0,0 @@
1
- const chalk = require('chalk');
2
- const log = require('../log');
3
- const { empty } = require('./db/partner');
4
-
5
- const logoutPartner = () => {
6
- try {
7
- empty();
8
- log.info('\n', chalk.green(`Logged out your partner account successfully!`), '\n');
9
- } catch (e) {
10
- log.error(chalk.red(`✗ Failed to logout your partner account`));
11
- }
12
- };
13
-
14
- module.exports = {
15
- logoutPartner
16
- };
@@ -1,9 +0,0 @@
1
- const path = require('path');
2
- const os = require('os');
3
- const fs = require('fs-extra');
4
-
5
- fs.ensureDirSync(path.join(os.homedir(), '/.tmp/shoplazza'));
6
-
7
- const db = require('better-sqlite3')(path.join(os.homedir(), '/.tmp/shoplazza/.user.db'), {});
8
-
9
- module.exports = db;
@@ -1,19 +0,0 @@
1
- const { hasBeenSetAnalytics, isEnabledAnalytics, setAnalyticsConfig, emptyAnalyticsData } = require('../analytics');
2
- jest.mock('../index');
3
-
4
- describe('db/analytics.js', () => {
5
- beforeEach(() => {
6
- emptyAnalyticsData();
7
- });
8
-
9
- it('get and set', () => {
10
- expect(hasBeenSetAnalytics('user_id')).toBe(false);
11
- expect(isEnabledAnalytics('user_id')).toBe(false);
12
- setAnalyticsConfig({
13
- user_id: 'user_id',
14
- enabled: 0
15
- });
16
- expect(hasBeenSetAnalytics('user_id')).toBe(true);
17
- expect(isEnabledAnalytics('user_id')).toBe(false);
18
- });
19
- });
@@ -1,20 +0,0 @@
1
- const { get, set, empty } = require('../user');
2
- jest.mock('../index');
3
-
4
- describe('db/user.js', () => {
5
- beforeEach(() => {
6
- empty();
7
- });
8
-
9
- it('get and set', () => {
10
- expect(get('access_token')).toBe(null);
11
- set({
12
- access_token: 'access_token',
13
- session_id: 'session_id',
14
- exchange_token: 'exchange_token'
15
- });
16
- expect(get('access_token')).toBe('access_token');
17
- expect(get('session_id')).toBe('session_id');
18
- expect(get('exchange_token')).toBe('exchange_token');
19
- });
20
- });
@@ -1,48 +0,0 @@
1
- const db = require('./index');
2
-
3
- const createTableIfNeeded = () => {
4
- const createTable = db.prepare(`create table if not exists analytics (
5
- id integer primary key AUTOINCREMENT,
6
- user_id text,
7
- enabled integer
8
- )`);
9
- createTable.run();
10
- };
11
- createTableIfNeeded();
12
-
13
- const getItem = (userId) => {
14
- const stmt = db.prepare('select * from analytics where user_id = ?');
15
- return stmt.get(userId);
16
- };
17
-
18
- const insertOrReplace = ({ user_id, enabled }) => {
19
- const stmt = db.prepare(
20
- `insert or replace into analytics (id, user_id, enabled) values (
21
- (select id from analytics where user_id = @user_id),
22
- @user_id,
23
- @enabled
24
- )`
25
- );
26
- stmt.run({ user_id, enabled });
27
- };
28
-
29
- const hasBeenSetAnalytics = (userId) => {
30
- const item = getItem(userId);
31
- return [0, 1].includes(item?.enabled);
32
- };
33
-
34
- const isEnabledAnalytics = (userId) => {
35
- const item = getItem(userId);
36
- return item?.enabled === 1;
37
- };
38
-
39
- const setAnalyticsConfig = (keyValueObj) => {
40
- insertOrReplace(keyValueObj);
41
- };
42
-
43
- const emptyAnalyticsData = () => {
44
- const stmt = db.prepare(`delete from analytics`);
45
- stmt.run();
46
- };
47
-
48
- module.exports = { hasBeenSetAnalytics, isEnabledAnalytics, setAnalyticsConfig, emptyAnalyticsData };
package/lib/db/index.js DELETED
@@ -1,9 +0,0 @@
1
- const path = require('path');
2
- const os = require('os');
3
- const fs = require('fs-extra');
4
-
5
- fs.ensureDirSync(path.join(os.homedir(), '/.cache/shoplazza'));
6
-
7
- const db = require('better-sqlite3')(path.join(os.homedir(), '/.cache/shoplazza/.user.db'), {});
8
-
9
- module.exports = db;
package/lib/db/user.js DELETED
@@ -1,71 +0,0 @@
1
- const db = require('./index');
2
-
3
- const createTableIfNeeded = () => {
4
- const createTable = db.prepare(`create table if not exists user (
5
- id integer primary key AUTOINCREMENT,
6
- access_token text,
7
- session_id text,
8
- exchange_token text,
9
- theme_id text,
10
- theme_name text,
11
- store_domain text,
12
- store_session text,
13
- user_id text
14
- )`);
15
- createTable.run();
16
- };
17
- createTableIfNeeded();
18
-
19
- const getUserObj = () => {
20
- const stmt = db.prepare('select * from user limit 0,1;');
21
- return stmt.get();
22
- };
23
-
24
- const insertOrReplace = ({
25
- access_token = get('access_token'),
26
- session_id = get('session_id'),
27
- exchange_token = get('exchange_token'),
28
- theme_id = get('theme_id'),
29
- theme_name = get('theme_name'),
30
- store_domain = get('store_domain'),
31
- store_session = get('store_session'),
32
- user_id = get('user_id')
33
- }) => {
34
- const stmt = db.prepare(
35
- `insert or replace into user (id, access_token, session_id, exchange_token, theme_id, theme_name, store_domain, store_session, user_id) values (
36
- (select id from user where access_token = @access_token),
37
- @access_token,
38
- @session_id,
39
- @exchange_token,
40
- @theme_id,
41
- @theme_name,
42
- @store_domain,
43
- @store_session,
44
- @user_id
45
- )`
46
- );
47
- stmt.run({ access_token, session_id, exchange_token, theme_id, theme_name, store_domain, store_session, user_id });
48
- };
49
-
50
- const emptyUserData = () => {
51
- const stmt = db.prepare(`delete from user`);
52
- stmt.run();
53
- };
54
-
55
- const get = (key) => {
56
- const userObj = getUserObj();
57
- if (userObj) {
58
- return userObj[key];
59
- }
60
- return null;
61
- };
62
-
63
- const set = (keyValueObj) => {
64
- insertOrReplace(keyValueObj);
65
- };
66
-
67
- const empty = () => {
68
- emptyUserData();
69
- };
70
-
71
- module.exports = { get, set, empty };
@@ -1,20 +0,0 @@
1
- const fs = require('fs-extra');
2
- const path = require('path');
3
- const { getArchPlatform } = require('../../utils/platform');
4
-
5
- function getLibPath(name) {
6
- const archPlatform = getArchPlatform();
7
- const supportedTargets = ['arm-linux', 'arm-macos', 'x86_64-macos', 'x86_64-windows', 'x86_64-linux'];
8
- if (!supportedTargets.includes(archPlatform)) {
9
- throw Error(`Unsupported platform/architecture combination ${processPlatform}/${processArch}`);
10
- }
11
- const libDir = fs.readdirSync(__dirname).find((n) => name === n);
12
- const targetPath = fs.readdirSync(path.resolve(__dirname, libDir)).find((libName) => libName.includes(archPlatform));
13
- const libPath = path.resolve(__dirname, name, targetPath);
14
- fs.chmodSync(libPath, 0o755);
15
- return libPath;
16
- }
17
-
18
- module.exports = {
19
- getLibPath
20
- };
@@ -1,43 +0,0 @@
1
- const fs = require('fs-extra');
2
- const { getConfigJson } = require('../../utils/file');
3
- const { getLibPath } = require('../bin');
4
- const path = require('path');
5
- const loadingCli = require('loading-cli');
6
- const { exec } = require('child_process');
7
-
8
- function createDistIfNotExist() {
9
- const distPath = path.resolve(process.cwd(), 'dist');
10
- if (fs.existsSync(distPath)) {
11
- fs.emptyDirSync(distPath);
12
- return;
13
- }
14
- fs.mkdir(distPath);
15
- }
16
-
17
- async function compileJsToWasm(command) {
18
- const config = getConfigJson();
19
- const javyPath = getLibPath('javy');
20
- const loading = loadingCli('compile js to wasm');
21
- try {
22
- loading.start();
23
- createDistIfNotExist();
24
- await new Promise((resolve, reject) =>
25
- exec(`"${javyPath}" build "./src/index.js" -o "./dist/${config.extensionName}.wasm"`, (err, stdout, stderr) => {
26
- if (err) {
27
- reject(err);
28
- } else {
29
- resolve(stdout);
30
- }
31
- })
32
- );
33
- loading.succeed('✅ WASM compile success');
34
- } catch (error) {
35
- loading.error('❌ compile failed:' + error.message);
36
- console.trace(error);
37
- process.exit(1);
38
- }
39
- }
40
-
41
- module.exports = {
42
- compileJsToWasm
43
- };
@@ -1,77 +0,0 @@
1
- const { consoleError, consoleSuccess } = require('../../utils/console');
2
- const path = require('path');
3
- const fs = require('fs');
4
- const inquirer = require('inquirer');
5
- const { copy } = require('../../utils/file');
6
-
7
- const cwd = process.cwd();
8
-
9
- const templateDir = path.resolve(__dirname, '../template');
10
-
11
- const renameFiles = {
12
- _gitignore: '.gitignore'
13
- };
14
-
15
- /**
16
- * 使用cli创建一个项目
17
- * @param {} command 项目名
18
- * @returns
19
- */
20
- async function createFuncExtension(command) {
21
- const { language, extensionName } = await inquirer.prompt([
22
- {
23
- type: 'input',
24
- name: 'extensionName',
25
- message: 'Enter the extension name:',
26
- prefix: '*'
27
- },
28
- {
29
- type: 'list',
30
- name: 'language',
31
- message: 'Select a language:',
32
- choices: [
33
- {
34
- name: 'javascript',
35
- value: 'js'
36
- }
37
- ],
38
- prefix: '*'
39
- }
40
- ]);
41
- const projectDir = extensionName.replace(/\/+$/g, '');
42
- const fullTempDir = path.join(templateDir, language);
43
- const root = path.join(cwd, projectDir);
44
- if (fs.existsSync(root)) {
45
- consoleError(`the directory '${projectDir}' is exist.`);
46
- return;
47
- }
48
- fs.mkdirSync(root, { recursive: true });
49
-
50
- const write = (file, content) => {
51
- const targetPath = path.join(root, renameFiles[file] ?? file);
52
- if (content) {
53
- fs.writeFileSync(targetPath, content);
54
- } else {
55
- copy(path.join(fullTempDir, file), targetPath);
56
- }
57
- };
58
-
59
- const files = fs.readdirSync(fullTempDir);
60
- for (const file of files.filter((f) => !['package.json'].includes(f))) {
61
- write(file);
62
- }
63
-
64
- const pkg = JSON.parse(fs.readFileSync(path.join(fullTempDir, `package.json`), 'utf-8'));
65
- pkg.name = projectDir;
66
- write('package.json', JSON.stringify(pkg, null, 2) + '\n');
67
-
68
- const config = JSON.parse(fs.readFileSync(path.join(fullTempDir, `extension.config.json`), 'utf-8'));
69
- config.extensionName = extensionName;
70
- write('extension.config.json', JSON.stringify(config, null, 2) + '\n');
71
-
72
- consoleSuccess(`Successfully created extension project '${extensionName}'.`);
73
- }
74
-
75
- module.exports = {
76
- createFuncExtension
77
- };
@@ -1,18 +0,0 @@
1
- const partnerAPI = require('../../partner-api');
2
- const { requestAppSecretWhenNotExist } = require('../utils');
3
-
4
- async function getFunctions() {
5
- const data = await partnerAPI.getFunctionList();
6
- return data.functions;
7
- }
8
-
9
- async function listFunctionExtension() {
10
- await requestAppSecretWhenNotExist();
11
- const list = await getFunctions();
12
- console.log(list.map(({ source_code, ...other }) => other));
13
- }
14
-
15
- module.exports = {
16
- getFunctions,
17
- listFunctionExtension
18
- };
@@ -1,69 +0,0 @@
1
- const inquirer = require('inquirer');
2
- const chalk = require('chalk');
3
- const fs = require('fs-extra');
4
- const path = require('path');
5
- const loadingCli = require('loading-cli');
6
- const { requestAppSecretWhenNotExist } = require('../utils');
7
- const { compileJsToWasm } = require('./compile');
8
- const { getConfigJson, updateConfigJson } = require('../../utils/file');
9
- const partnerAPI = require('../../partner-api');
10
- const { consoleError } = require('../../utils/console');
11
- const FormData = require('form-data');
12
-
13
- async function createOrUpdateFuncExtension() {
14
- const config = getConfigJson();
15
- const functionId = config.extensionId;
16
- const formData = new FormData();
17
- formData.append('namespace', 'cart_transform');
18
- formData.append('name', config.extensionName);
19
- formData.append('source_code', fs.readFileSync(path.resolve(process.cwd(), 'src/index.js'), { encoding: 'utf-8' }));
20
- formData.append('source_code', 'hello');
21
- formData.append(
22
- 'file',
23
- fs.createReadStream(path.resolve(process.cwd(), 'dist', `${config.extensionName}.wasm`), {
24
- filename: `${config.extensionName}.wasm`,
25
- contentType: 'application/wasm'
26
- })
27
- );
28
-
29
- let data;
30
- if (!functionId) {
31
- const loading = loadingCli('create an new function extension');
32
- loading.start();
33
- data = await partnerAPI
34
- .createFunctionExtension(formData)
35
- .then((res) => {
36
- loading.succeed();
37
- return res;
38
- })
39
- .catch((err) => {
40
- loading.fail();
41
- consoleError(err, err.response.data);
42
- });
43
- } else {
44
- const loading = loadingCli('update function extension');
45
- loading.start();
46
- formData.append('function_id', functionId);
47
- data = await partnerAPI
48
- .updateFunctionExtension(functionId, formData)
49
- .then((res) => {
50
- loading.succeed();
51
- return res;
52
- })
53
- .catch((err) => {
54
- loading.fail();
55
- consoleError(err, err.response);
56
- });
57
- }
58
- data && updateConfigJson({ extensionId: data.function_id, version: data.version });
59
- }
60
-
61
- async function releaseFunctionExtension(command) {
62
- await requestAppSecretWhenNotExist();
63
- await compileJsToWasm();
64
- await createOrUpdateFuncExtension();
65
- }
66
-
67
- module.exports = {
68
- releaseFunctionExtension
69
- };
@@ -1,24 +0,0 @@
1
- function makeFunctionCommand(_program) {
2
- const program = _program.command('function').description('Shoplazza function cli');
3
-
4
- program
5
- .command('create')
6
- .description('create a extension project')
7
- .action(require('./commands/create').createFuncExtension);
8
-
9
- program
10
- .command('list')
11
- .description('list all function of current app')
12
- .action(require('./commands/list').listFunctionExtension);
13
-
14
- program.command('compile').description('compile js to wasm').action(require('./commands/compile').compileJsToWasm);
15
-
16
- program
17
- .command('release')
18
- .description('release a version of function extension')
19
- .action(require('./commands/release').releaseFunctionExtension);
20
- }
21
-
22
- module.exports = {
23
- makeFunctionCommand
24
- };
@@ -1,37 +0,0 @@
1
- # Checkout Extension
2
- ## Getting started
3
-
4
- 1. 安装依赖
5
-
6
- ```
7
- npm i
8
- ```
9
- 2. 绑定app
10
- ```
11
- npm run connect
12
- ```
13
- 3. release extension
14
- ```
15
- npm run release
16
- ```
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
-
36
-
37
-
@@ -1,4 +0,0 @@
1
- node_modules/
2
- pnpm-lock.yaml
3
- dist
4
- .history/
@@ -1,5 +0,0 @@
1
- {
2
- "extensionName": "",
3
- "extensionId": "",
4
- "version": "1.0"
5
- }
@@ -1,17 +0,0 @@
1
- {
2
- "name": "hello",
3
- "version": "1.0.0",
4
- "description": "",
5
- "main": "index.js",
6
- "dependencies": {},
7
- "devDependencies": {},
8
- "scripts": {
9
- "dev": "shoplazza function dev",
10
- "connect": "shoplazza function connect",
11
- "release": "shoplazza function release",
12
- "list": "shoplazza function list"
13
- },
14
- "keywords": [],
15
- "author": "",
16
- "license": "ISC"
17
- }