@shoplineos/cli 1.5.3 → 1.5.6

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 (230) hide show
  1. package/dist/commands/auth/index.js +2 -1
  2. package/dist/commands/auth/login.js +2 -1
  3. package/dist/commands/auth/logout.js +2 -1
  4. package/dist/commands/auth/whoami.js +2 -1
  5. package/dist/commands/extension/build.js +2 -1
  6. package/dist/commands/extension/common-options.js +2 -1
  7. package/dist/commands/extension/connect.js +2 -1
  8. package/dist/commands/extension/create.js +2 -1
  9. package/dist/commands/extension/index.js +2 -1
  10. package/dist/commands/extension/push.js +2 -1
  11. package/dist/commands/extension/serve.js +2 -1
  12. package/dist/commands/index.js +2 -1
  13. package/dist/commands/report.js +2 -1
  14. package/dist/commands/theme/check.js +2 -1
  15. package/dist/commands/theme/console.js +2 -1
  16. package/dist/commands/theme/index.js +2 -1
  17. package/dist/commands/theme/init.js +2 -1
  18. package/dist/commands/theme/list.js +2 -1
  19. package/dist/commands/theme/package.js +2 -1
  20. package/dist/commands/theme/pull.js +2 -1
  21. package/dist/commands/theme/push.js +2 -1
  22. package/dist/commands/theme/serve.js +2 -1
  23. package/dist/commands/theme/theme-common-options.js +2 -1
  24. package/dist/eventlistener.d.js +2 -1
  25. package/dist/helpers/config.js +2 -1
  26. package/dist/helpers/monitoring-bootstrap.js +2 -0
  27. package/dist/helpers/monitoring-environment.js +2 -0
  28. package/dist/helpers/monitoring.js +2 -0
  29. package/dist/helpers/open-admin-url.js +2 -1
  30. package/dist/helpers/process-errors.js +2 -0
  31. package/dist/helpers/report.js +2 -1
  32. package/dist/helpers/sum.js +2 -1
  33. package/dist/helpers/verify-login.js +2 -1
  34. package/dist/services/auth/logout.js +2 -1
  35. package/dist/services/dev-server/index.js +3 -2
  36. package/dist/services/dev-server/sse.js +2 -1
  37. package/dist/services/dev-server/web/socket-client.js +2 -1
  38. package/dist/services/dev-server-3/index.js +2 -1
  39. package/dist/services/dev-server-3/server.js +3 -2
  40. package/dist/services/dev-server-3/sse.js +2 -1
  41. package/dist/services/dev-server-3/web/socket-client.js +2 -1
  42. package/dist/services/extension/api.js +3 -2
  43. package/dist/services/extension/check-extension-version.js +2 -1
  44. package/dist/services/extension/clone-repo.js +2 -1
  45. package/dist/services/extension/connect/context.js +2 -1
  46. package/dist/services/extension/connect/index.js +2 -1
  47. package/dist/services/extension/connect/validate.js +2 -1
  48. package/dist/services/extension/const.js +2 -1
  49. package/dist/services/extension/context.js +2 -1
  50. package/dist/services/extension/create/index.js +2 -1
  51. package/dist/services/extension/ensure-project-type.js +2 -1
  52. package/dist/services/extension/env.js +2 -1
  53. package/dist/services/extension/extension.js +2 -1
  54. package/dist/services/extension/functions/generate.js +2 -1
  55. package/dist/services/extension/functions/info.js +2 -1
  56. package/dist/services/extension/functions/push.js +2 -1
  57. package/dist/services/extension/functions/schemas.js +2 -1
  58. package/dist/services/extension/generate.js +2 -1
  59. package/dist/services/extension/index.js +2 -1
  60. package/dist/services/extension/inquirer.js +2 -1
  61. package/dist/services/extension/loader.js +2 -1
  62. package/dist/services/extension/openapi.js +2 -1
  63. package/dist/services/extension/push/build.js +2 -1
  64. package/dist/services/extension/push/checkout-ui.js +2 -1
  65. package/dist/services/extension/push/index.js +2 -1
  66. package/dist/services/extension/push/pixels.js +2 -1
  67. package/dist/services/extension/push/post-purchase.js +2 -1
  68. package/dist/services/extension/push/shopper.js +2 -1
  69. package/dist/services/extension/push/show.js +2 -1
  70. package/dist/services/extension/push/theme.js +2 -1
  71. package/dist/services/extension/push/zip.js +2 -1
  72. package/dist/services/extension/register.js +2 -1
  73. package/dist/services/extension/schemas.js +2 -1
  74. package/dist/services/extension/serve/bundler.js +2 -1
  75. package/dist/services/extension/serve/extension.js +2 -1
  76. package/dist/services/extension/serve/localization.js +2 -1
  77. package/dist/services/extension/serve/models.js +2 -1
  78. package/dist/services/extension/serve/payload.js +2 -1
  79. package/dist/services/extension/serve/server/middlewares.js +2 -1
  80. package/dist/services/extension/serve/server.js +2 -1
  81. package/dist/services/extension/serve/websocket/handlers.js +2 -1
  82. package/dist/services/extension/serve/websocket/models.js +2 -1
  83. package/dist/services/extension/serve/websocket.js +2 -1
  84. package/dist/services/extension/serve.js +2 -1
  85. package/dist/services/extension/tunnel/cloudflared.js +2 -1
  86. package/dist/services/extension/tunnel/install-cloudflared.js +2 -1
  87. package/dist/services/extension/types.js +2 -1
  88. package/dist/services/extension/utils.js +2 -1
  89. package/dist/services/extension/validate.js +2 -1
  90. package/dist/services/extension/zip.js +2 -1
  91. package/dist/services/extension/zip3.js +2 -1
  92. package/dist/services/identity-auth/api.js +2 -1
  93. package/dist/services/identity-auth/const.js +2 -1
  94. package/dist/services/identity-auth/create-server.js +2 -1
  95. package/dist/services/identity-auth/index.js +2 -1
  96. package/dist/services/identity-auth/store-enter.js +2 -1
  97. package/dist/services/report/index.js +2 -1
  98. package/dist/services/theme/3.0/api.js +4 -3
  99. package/dist/services/theme/3.0/check.js +2 -1
  100. package/dist/services/theme/3.0/file.js +2 -1
  101. package/dist/services/theme/3.0/package.js +2 -1
  102. package/dist/services/theme/3.0/pull.js +2 -1
  103. package/dist/services/theme/3.0/push.js +2 -1
  104. package/dist/services/theme/3.0/remote-watcher.js +2 -1
  105. package/dist/services/theme/3.0/theme.js +4 -3
  106. package/dist/services/theme/api.js +2 -1
  107. package/dist/services/theme/check/check.js +2 -1
  108. package/dist/services/theme/check/config.js +2 -1
  109. package/dist/services/theme/check/exception.js +2 -1
  110. package/dist/services/theme/check/index.js +2 -1
  111. package/dist/services/theme/check/types.js +2 -1
  112. package/dist/services/theme/checksum.js +2 -1
  113. package/dist/services/theme/choose-theme-list.js +2 -1
  114. package/dist/services/theme/console/api.js +2 -1
  115. package/dist/services/theme/console/console.js +4 -3
  116. package/dist/services/theme/console/index.js +2 -1
  117. package/dist/services/theme/const.js +2 -1
  118. package/dist/services/theme/dev-server-monitoring.js +2 -0
  119. package/dist/services/theme/file.js +2 -1
  120. package/dist/services/theme/git.js +2 -1
  121. package/dist/services/theme/index.js +4 -3
  122. package/dist/services/theme/inquirer.js +2 -1
  123. package/dist/services/theme/no-second-check.js +2 -1
  124. package/dist/services/theme/operation.js +2 -1
  125. package/dist/services/theme/package.js +2 -1
  126. package/dist/services/theme/preview-http-client.js +2 -0
  127. package/dist/services/theme/proxy-error.js +2 -0
  128. package/dist/services/theme/pull.js +2 -1
  129. package/dist/services/theme/push.js +2 -1
  130. package/dist/services/theme/remote-watcher.js +2 -1
  131. package/dist/services/theme/types.js +2 -1
  132. package/dist/services/theme/update-queue.js +2 -1
  133. package/dist/services/theme/update.js +2 -1
  134. package/dist/services/theme/uploader.js +2 -1
  135. package/dist/services/theme/utils.js +3 -1
  136. package/dist/services/theme/watcher-monitoring.js +2 -0
  137. package/dist/type.d.js +2 -1
  138. package/dist/types/env.d.js +2 -1
  139. package/dist/types/type.d.js +2 -1
  140. package/dist/utils/abort.js +2 -1
  141. package/dist/utils/check-theme-type-version.js +2 -1
  142. package/dist/utils/check-update.js +2 -1
  143. package/dist/utils/colors.js +2 -1
  144. package/dist/utils/const.js +2 -1
  145. package/dist/utils/content-tokens.js +2 -1
  146. package/dist/utils/debug.js +2 -1
  147. package/dist/utils/decorators.js +2 -1
  148. package/dist/utils/environments.js +2 -1
  149. package/dist/utils/error.js +2 -1
  150. package/dist/utils/exit-hook.js +2 -1
  151. package/dist/utils/find-up-node-module.js +2 -1
  152. package/dist/utils/format-protocol.js +2 -1
  153. package/dist/utils/fs.js +2 -1
  154. package/dist/utils/get-objects-diff.js +2 -1
  155. package/dist/utils/get-real-referer.js +2 -1
  156. package/dist/utils/get-store-env.js +2 -1
  157. package/dist/utils/get-url-handle.js +2 -1
  158. package/dist/utils/git.js +2 -1
  159. package/dist/utils/has-command.js +2 -1
  160. package/dist/utils/hbs.js +2 -1
  161. package/dist/utils/http.js +2 -1
  162. package/dist/utils/ignore-filter.js +2 -1
  163. package/dist/utils/import-esm.js +2 -1
  164. package/dist/utils/include-filter.js +2 -1
  165. package/dist/utils/load-local-preset.js +2 -1
  166. package/dist/utils/local.js +2 -1
  167. package/dist/utils/logger.js +2 -1
  168. package/dist/utils/messages.js +3 -2
  169. package/dist/utils/misc.js +2 -1
  170. package/dist/utils/node-package-manager.js +2 -1
  171. package/dist/utils/ora-manager.js +2 -1
  172. package/dist/utils/os.js +2 -1
  173. package/dist/utils/output.js +2 -1
  174. package/dist/utils/parse-options.js +2 -1
  175. package/dist/utils/path-matcher.js +2 -1
  176. package/dist/utils/path.js +2 -1
  177. package/dist/utils/print-preview.js +2 -1
  178. package/dist/utils/program.js +2 -1
  179. package/dist/utils/replace-dot.js +2 -1
  180. package/dist/utils/replace-top-level-com.js +2 -1
  181. package/dist/utils/retry.js +2 -1
  182. package/dist/utils/schema.js +2 -1
  183. package/dist/utils/string.js +2 -1
  184. package/dist/utils/system.js +2 -1
  185. package/dist/utils/tcp.js +2 -1
  186. package/dist/utils/tiny-queue.js +2 -1
  187. package/dist/utils/toml.js +2 -1
  188. package/dist/utils/tree-kill.js +2 -1
  189. package/dist/utils/ui/Tasks.js +2 -1
  190. package/dist/utils/ui/alert.js +2 -1
  191. package/dist/utils/ui/components/Alert.js +2 -1
  192. package/dist/utils/ui/components/Banner.js +2 -1
  193. package/dist/utils/ui/components/Command.js +2 -1
  194. package/dist/utils/ui/components/ConcurrentOutput.js +2 -1
  195. package/dist/utils/ui/components/FatalError.js +2 -1
  196. package/dist/utils/ui/components/FilePath.js +2 -1
  197. package/dist/utils/ui/components/Link.js +2 -1
  198. package/dist/utils/ui/components/List.js +2 -1
  199. package/dist/utils/ui/components/Prompts/InfoTable.js +2 -1
  200. package/dist/utils/ui/components/SelectInput.js +2 -1
  201. package/dist/utils/ui/components/SelectPrompt.js +2 -1
  202. package/dist/utils/ui/components/Subdued.js +2 -1
  203. package/dist/utils/ui/components/TextAnimation.js +2 -1
  204. package/dist/utils/ui/components/TextInput.js +2 -1
  205. package/dist/utils/ui/components/TextPrompt.js +2 -1
  206. package/dist/utils/ui/components/TokenizedText.js +2 -1
  207. package/dist/utils/ui/components/UserInput.js +2 -1
  208. package/dist/utils/ui/contexts/LinksContext.js +2 -1
  209. package/dist/utils/ui/hooks/use-async-and-unmount.js +2 -1
  210. package/dist/utils/ui/hooks/use-layout.js +2 -1
  211. package/dist/utils/ui/render.js +2 -1
  212. package/dist/utils/ui/ui.js +2 -1
  213. package/dist/utils/ui/utilities.js +2 -1
  214. package/dist/utils/winston/index.js +2 -1
  215. package/dist/utils/winston/log-file.js +3 -2
  216. package/dist/utils/write-file-tree.js +2 -1
  217. package/dist/vendor/logger-apm-node/index.js +11 -0
  218. package/dist/vendor/logger-apm-node/licenses.txt +296 -0
  219. package/package.json +16 -9
  220. package/dist/commands/extension/tunnel.js +0 -1
  221. package/dist/helpers/sentry.js +0 -1
  222. package/dist/services/dev-server/socket.js +0 -1
  223. package/dist/services/extension/create.js +0 -1
  224. package/dist/services/extension/push.js +0 -1
  225. package/dist/services/extension/resolve-env.js +0 -1
  226. package/dist/services/extension/tunnel.js +0 -3
  227. package/dist/services/extension/write-env-file.js +0 -1
  228. package/dist/services/theme/draft.js +0 -1
  229. package/dist/services/theme/types.d.js +0 -1
  230. package/dist/utils/ui.js +0 -1
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(exports,{updateFile:()=>h,createFile:()=>R,uploadFile:()=>T,deleteFile:()=>_,uploadThemePackageFile:()=>O,getThemeFileDetail:()=>v,getThemeListWithPagination:()=>I,downloadThemePackage:()=>S,getThemeFileList:()=>$,uploadPrivateThemePackage:()=>b,getPublishedThemeInstance:()=>q,getThemeInfo:()=>w,changeThemeStatus:()=>y,createNewThemeOrCompleteUpload:()=>L});const e=p(require("axios")),t=require("querystring"),r=p(require("form-data")),s=p(require("../../helpers/config")),o=require("./const"),i=p(require("../../utils/debug")),a=p(require("./no-second-check")),n=require("../../helpers/sentry"),l=require("../../utils/error"),u=require("../../utils/const"),d=p(require("../../utils/winston"));function p(e){return e&&e.__esModule?e:{default:e}}const{loginInfo:c,currentStore:E}=s.default;function f(t){return p=>{let E=e.default.create({baseURL:t,maxContentLength:1/0,maxBodyLength:1/0});return E.interceptors.request.use(e=>{if(i.default.printRequest(e),c){let t=Object.keys(c).map(e=>`${e}=${c[e]}`).join(";"),r=s.default.dfpToken||"";Object.assign(e.headers,{cookie:t,"dfp-token":r,"User-Agent":u.CLI_USER_AGENT})}return(null==e?void 0:e.data)instanceof r.default&&Object.assign(e.headers,null==e?void 0:e.data.getHeaders()),d.default.logHttp({type:"request",method:e.method,url:e.baseURL+e.url,params:e.params}),e},e=>Promise.reject(e)),E.interceptors.response.use(async e=>{var t,r,s,u,c;let E=null==e?void 0:null===(t=e.data)||void 0===t?void 0:t.success,f=null==e?void 0:null===(r=e.data)||void 0===r?void 0:r.code,{config:g}=e;if(i.default.printResponse(g,e),(0,n.reportHttpRes)(e),d.default.logHttp({type:"response",method:e.config.method,url:e.config.baseURL+e.config.url,params:e.config.params,body:e.data,status:e.status,traceId:(null==e?void 0:null===(s=e.data)||void 0===s?void 0:s.trace_id)||(null==e?void 0:null===(u=e.headers)||void 0===u?void 0:u["x-request-id"])||""}),o.ERROR_CODES.THEME_COUNT_LIMIT.includes(f))throw Error(o.ERRORS.THEME_COUNT_LIMIT);if(o.ERROR_CODES.DEVELOPMENT_THEME_NOT_EXIST.includes(f))throw Error(o.ERRORS.THEME_IS_INVALID);if(o.ERROR_CODES.FEATURE_KEY_NOT_EXIST.includes(f))throw Error(o.ERRORS.FEATURE_KEY_NOT_EXIST);if(o.ERROR_CODES.NO_SECOND_CHECK.includes(f))await a.default.run();else if(o.ERROR_CODES.INVALID_FILE.includes(f))throw new l.ValidatorError({code:f,errors:e.data.data.errors,message:e.data.msg});if("boolean"==typeof E&&!1===E){let t=e.data.msg||e.data.message||"",r=Error(t);throw o.ERROR_CODES.FILE_NOT_EXIT.includes(f)||(0,n.reportBug)(r),new l.AbortError(t)}return(null==p?void 0:p.withResponseHeader)?e:null==e?void 0:null===(c=e.data)||void 0===c?void 0:c.data},e=>{let t=(()=>{if(null==e?void 0:e.response){let{status:t,statusText:r,data:s}=e.response;return(null==s?void 0:s.msg)||(null==s?void 0:s.message)||(s.error||"string"==typeof s?s:`${t}: ${r}`)}return e.message})();e.response&&(0,n.reportHttpRes)(e.response);let r=new l.AbortError(t);return i.default.printErrorResponse(e.config,e.response),(0,n.reportBug)(e),Promise.reject(r)}),E}}const g=f(`${E}/admin/api/merchant-bff`)(),m=f(`${E}${o.ENDPOINTS.THEME}`),h=(e,{fileContent:t,fileName:r,cliFirstCreateFile:s})=>g.put(`/file/theme/${e}`,{fileContent:t,fileName:r,cliFirstCreateFile:s}),R=(e,{fileName:t,fileContent:r,duplicateFlag:s=!1,cliFirstCreateFile:o,sourceFileName:i})=>g.post(`/file/theme/${e}`,{fileName:t,fileContent:r,duplicateFlag:s,sourceFileName:i,cliFirstCreateFile:o}),T=(e,t,r)=>g.post(`/file/theme/${e}/upload`,t,r),_=(e,{fileName:t})=>g.delete(`/file/theme/${e}`,{data:{fileName:t}}),O=(...e)=>g.post("/theme/upload",...e),v=({themeId:e,fileName:r})=>g.get(`/file/theme/${e}/detail?${(0,t.stringify)({fileName:r})}`),I=e=>{let r=e?`/instance/list/page?${(0,t.stringify)(e)}`:"/instance/list/page";return m().get(r)},S=e=>m({withResponseHeader:!0}).get(`/instance/download/${e}`,{responseType:"stream"}),$=e=>g.get(`/file/theme/${e}/list`),b=(e,t)=>g.post("/theme/upload",e,t),q=()=>m().get("/instance/current"),w=e=>m().get(`/instance/${e}`),y=e=>m().post("/instance/status",e);function L(e){return m().post("/upload/single-file",e)}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(exports,{updateFile:()=>T,createFile:()=>_,uploadFile:()=>v,deleteFile:()=>O,uploadThemePackageFile:()=>I,getThemeFileDetail:()=>S,getThemeListWithPagination:()=>b,downloadThemePackage:()=>q,getThemeFileList:()=>C,uploadPrivateThemePackage:()=>$,getPublishedThemeInstance:()=>w,getThemeInfo:()=>L,changeThemeStatus:()=>N,createNewThemeOrCompleteUpload:()=>y});const e=c(require("axios")),t=require("querystring"),r=c(require("form-data")),o=c(require("../../helpers/config")),i=require("./const"),n=c(require("../../utils/debug")),s=c(require("./no-second-check")),a=require("../../helpers/monitoring"),l=require("../../utils/error"),d=require("../../utils/const"),u=c(require("../../utils/winston"));function c(e){return e&&e.__esModule?e:{default:e}}const{loginInfo:p,currentStore:g}=o.default;function f(e){var t,r;let{monitoring:o}=e.config,i=null==e?void 0:null===(t=e.data)||void 0===t?void 0:t.code;return!(null==o?void 0:null===(r=o.ignoreBusinessCodes)||void 0===r?void 0:r.some(e=>String(e)===String(i)))}function E(e,t){f(t)&&(0,a.reportHttpError)(e,{response:t,source:"theme-2"})}function m(t){return c=>{let g=e.default.create({baseURL:t,maxContentLength:1/0,maxBodyLength:1/0});return g.interceptors.request.use(e=>{if(n.default.printRequest(e),p){let t=Object.keys(p).map(e=>`${e}=${p[e]}`).join(";"),r=o.default.dfpToken||"";Object.assign(e.headers,{cookie:t,"dfp-token":r,"User-Agent":d.CLI_USER_AGENT})}return(null==e?void 0:e.data)instanceof r.default&&Object.assign(e.headers,null==e?void 0:e.data.getHeaders()),u.default.logHttp({type:"request",method:e.method,url:e.baseURL+e.url,params:e.params}),e},e=>Promise.reject(e)),g.interceptors.response.use(async e=>{var t,r,o,a,d;let p=null==e?void 0:null===(t=e.data)||void 0===t?void 0:t.success,g=null==e?void 0:null===(r=e.data)||void 0===r?void 0:r.code,{config:f}=e;if(n.default.printResponse(f,e),u.default.logHttp({type:"response",method:e.config.method,url:e.config.baseURL+e.config.url,params:e.config.params,body:e.data,status:e.status,traceId:(null==e?void 0:null===(o=e.data)||void 0===o?void 0:o.trace_id)||(null==e?void 0:null===(a=e.headers)||void 0===a?void 0:a["x-request-id"])||""}),i.ERROR_CODES.THEME_COUNT_LIMIT.includes(g)){let t=Error(i.ERRORS.THEME_COUNT_LIMIT);throw E(t,e),t}if(i.ERROR_CODES.DEVELOPMENT_THEME_NOT_EXIST.includes(g)){let t=Object.assign(Error(i.ERRORS.THEME_IS_INVALID),{code:String(g)});throw E(t,e),t}if(i.ERROR_CODES.FEATURE_KEY_NOT_EXIST.includes(g)){let t=Error(i.ERRORS.FEATURE_KEY_NOT_EXIST);throw E(t,e),t}if(i.ERROR_CODES.NO_SECOND_CHECK.includes(g))await s.default.run();else if(i.ERROR_CODES.INVALID_FILE.includes(g)){let t=new l.ValidatorError({code:g,errors:e.data.data.errors,message:e.data.msg});throw E(t,e),t}if("boolean"==typeof p&&!1===p){let t=e.data.msg||e.data.message||"",r=new l.AbortError(t);throw E(r,e),r}return(null==c?void 0:c.withResponseHeader)?e:null==e?void 0:null===(d=e.data)||void 0===d?void 0:d.data},e=>{let t=(()=>{if(null==e?void 0:e.response){let{status:t,statusText:r,data:o}=e.response;return(null==o?void 0:o.msg)||(null==o?void 0:o.message)||(o.error||"string"==typeof o?o:`${t}: ${r}`)}return e.message})(),r=new l.AbortError(t);return r.stack=e.stack,e.code&&(r.code=e.code),n.default.printErrorResponse(e.config,e.response),(!e.response||f(e.response))&&(0,a.reportHttpError)(r,{response:e.response,requestConfig:e.config,source:"theme-2"}),Promise.reject(r)}),g}}const h=m(`${g}/admin/api/merchant-bff`)(),R=m(`${g}${i.ENDPOINTS.THEME}`),T=(e,{fileContent:t,fileName:r,cliFirstCreateFile:o})=>h.put(`/file/theme/${e}`,{fileContent:t,fileName:r,cliFirstCreateFile:o}),_=(e,{fileName:t,fileContent:r,duplicateFlag:o=!1,cliFirstCreateFile:i,sourceFileName:n})=>h.post(`/file/theme/${e}`,{fileName:t,fileContent:r,duplicateFlag:o,sourceFileName:n,cliFirstCreateFile:i}),v=(e,t,r)=>h.post(`/file/theme/${e}/upload`,t,r),O=(e,{fileName:t})=>h.delete(`/file/theme/${e}`,{data:{fileName:t}}),I=(...e)=>h.post("/theme/upload",...e),S=({themeId:e,fileName:r})=>h.get(`/file/theme/${e}/detail?${(0,t.stringify)({fileName:r})}`,{monitoring:{ignoreBusinessCodes:i.ERROR_CODES.FILE_NOT_EXIT}}),b=e=>{let r=e?`/instance/list/page?${(0,t.stringify)(e)}`:"/instance/list/page";return R().get(r)},q=e=>R({withResponseHeader:!0}).get(`/instance/download/${e}`,{responseType:"stream"}),C=e=>h.get(`/file/theme/${e}/list`),$=(e,t)=>h.post("/theme/upload",e,t),w=()=>R().get("/instance/current"),L=(e,t)=>R().get(`/instance/${e}`,{monitoring:t}),N=e=>R().post("/instance/status",e);function y(e){return R().post("/upload/single-file",e)}
2
+ //# sourceMappingURL=api.js.map
@@ -4,4 +4,5 @@ ${f}`},c?`
4
4
  ${c}`:"",d]});return n.flat()}function b(e){return e.reduce((e,t)=>{let r=!Object.prototype.hasOwnProperty.call(e,t.severity);return r&&(e[t.severity]=0),e[t.severity]+=1,e},{})}function $(e,t,r){let n=[`${r.length} files inspected`];if(0===e.length)n.push("with no offenses found.");else{n.push(`with ${e.length} total offenses.`);let t=b(e);t[l.EFailLevel.error]&&n.push(`
5
5
  ${t[l.EFailLevel.error]} errors.`),t[l.EFailLevel.suggestion]&&n.push(`
6
6
  ${t[l.EFailLevel.suggestion]} suggestion.`),t[l.EFailLevel.style]&&n.push(`
7
- ${t[l.EFailLevel.style]} style issues.`)}return n}function w(e){switch(e){case"error":return s.SeverityNumber.error;case"suggestion":return s.SeverityNumber.suggestion;case"style":return s.SeverityNumber.style;default:return}}function j(e,t){t||process.exit(0);let r=w(t),n=void 0!==r&&e.some(e=>w(e.severity)<=r);f.default.close(()=>{process.exit(n?1:0)})}function E(e){return e.map(e=>e.errors).flat()}function _(e){return"_handle"in e&&"object"==typeof e._handle&&null!==e._handle&&"function"==typeof e._handle.setBlocking}function O(e){return Object.entries(e).map(([e,t])=>{var r,n,i,o;let l=t.map(e=>{var t,l,s,u,a,f,c,d;return{check:e.check,severity:e.severity,start_row:null!==(r=null===(t=e.position)||void 0===t?void 0:null===(l=t.start)||void 0===l?void 0:l.line)&&void 0!==r?r:0,start_column:null!==(n=null===(s=e.position)||void 0===s?void 0:null===(u=s.start)||void 0===u?void 0:u.column)&&void 0!==n?n:0,end_row:null!==(i=null===(a=e.position)||void 0===a?void 0:null===(f=a.end)||void 0===f?void 0:f.line)&&void 0!==i?i:0,end_column:null!==(o=null===(c=e.position)||void 0===c?void 0:null===(d=c.end)||void 0===d?void 0:d.column)&&void 0!==o?o:0,message:e.message}}),s=b(t);return{path:e,offenses:l,errorCount:s.error||0,warningCount:s.suggestion||0,infoCount:s.style||0}})}function q(e,r){if(void 0===r)return e;if((0,t.isAbsolute)(r))throw new a.AbortError('the "root" property can only be relative');return(0,i.resolvePath)(e,r)}
7
+ ${t[l.EFailLevel.style]} style issues.`)}return n}function w(e){switch(e){case"error":return s.SeverityNumber.error;case"suggestion":return s.SeverityNumber.suggestion;case"style":return s.SeverityNumber.style;default:return}}function j(e,t){t||process.exit(0);let r=w(t),n=void 0!==r&&e.some(e=>w(e.severity)<=r);f.default.close(()=>{process.exit(n?1:0)})}function E(e){return e.map(e=>e.errors).flat()}function _(e){return"_handle"in e&&"object"==typeof e._handle&&null!==e._handle&&"function"==typeof e._handle.setBlocking}function O(e){return Object.entries(e).map(([e,t])=>{var r,n,i,o;let l=t.map(e=>{var t,l,s,u,a,f,c,d;return{check:e.check,severity:e.severity,start_row:null!==(r=null===(t=e.position)||void 0===t?void 0:null===(l=t.start)||void 0===l?void 0:l.line)&&void 0!==r?r:0,start_column:null!==(n=null===(s=e.position)||void 0===s?void 0:null===(u=s.start)||void 0===u?void 0:u.column)&&void 0!==n?n:0,end_row:null!==(i=null===(a=e.position)||void 0===a?void 0:null===(f=a.end)||void 0===f?void 0:f.line)&&void 0!==i?i:0,end_column:null!==(o=null===(c=e.position)||void 0===c?void 0:null===(d=c.end)||void 0===d?void 0:d.column)&&void 0!==o?o:0,message:e.message}}),s=b(t);return{path:e,offenses:l,errorCount:s.error||0,warningCount:s.suggestion||0,infoCount:s.style||0}})}function q(e,r){if(void 0===r)return e;if((0,t.isAbsolute)(r))throw new a.AbortError('the "root" property can only be relative');return(0,i.resolvePath)(e,r)}
8
+ //# sourceMappingURL=check.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,r){for(var t in r)Object.defineProperty(e,t,{enumerable:!0,get:r[t]})}(exports,{resolveConfig:()=>u,getDefaultConfig:()=>o,getMergedConfig:()=>a});const e=function(e){return e&&e.__esModule?e:{default:e}}(require("yaml")),r=require("@shoplinedev/theme-check"),t=require("../../../utils/fs"),i=require("../../../utils/path"),n=require("./types");function l(e){return Array.isArray(e)&&e.length>0?{global:{include_categories:e.map(e=>n.ECheckCategory[e])}}:null}async function u(r,n,u){if(!u)return l(n);let o=(0,i.joinPath)(r,u);if(await (0,t.fileExists)(o)){let r=e.default.parse(await (0,t.readFile)(o)),i=l(n);return i?{...r,global:{...r.global,include_categories:i.global.include_categories}}:r}return l(n)}function o(){return(0,r.generateConfig)()}function a(e){return(0,r.listEnabledConfig)(e||{})}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,r){for(var t in r)Object.defineProperty(e,t,{enumerable:!0,get:r[t]})}(exports,{resolveConfig:()=>u,getDefaultConfig:()=>o,getMergedConfig:()=>a});const e=function(e){return e&&e.__esModule?e:{default:e}}(require("yaml")),r=require("@shoplinedev/theme-check"),t=require("../../../utils/fs"),i=require("../../../utils/path"),n=require("./types");function l(e){return Array.isArray(e)&&e.length>0?{global:{include_categories:e.map(e=>n.ECheckCategory[e])}}:null}async function u(r,n,u){if(!u)return l(n);let o=(0,i.joinPath)(r,u);if(await (0,t.fileExists)(o)){let r=e.default.parse(await (0,t.readFile)(o)),i=l(n);return i?{...r,global:{...r.global,include_categories:i.global.include_categories}}:r}return l(n)}function o(){return(0,r.generateConfig)()}function a(e){return(0,r.listEnabledConfig)(e||{})}
2
+ //# sourceMappingURL=config.js.map
@@ -1 +1,2 @@
1
- "use strict";var e;Object.defineProperty(exports,"__esModule",{value:!0}),function(e,r){for(var t in r)Object.defineProperty(e,t,{enumerable:!0,get:r[t]})}(exports,{SeverityNumber:()=>e,CliCheckError:()=>r.CliCheckError,Errors:()=>r.Errors,Exception:()=>r.Exception,Severity:()=>r.Severity});const r=require("@shoplinedev/theme-check");!function(e){e[e.error=0]="error",e[e.suggestion=1]="suggestion",e[e.style=2]="style"}(e||(e={}));
1
+ "use strict";var e;Object.defineProperty(exports,"__esModule",{value:!0}),function(e,r){for(var t in r)Object.defineProperty(e,t,{enumerable:!0,get:r[t]})}(exports,{SeverityNumber:()=>e,CliCheckError:()=>r.CliCheckError,Errors:()=>r.Errors,Exception:()=>r.Exception,Severity:()=>r.Severity});const r=require("@shoplinedev/theme-check");!function(e){e[e.error=0]="error",e[e.suggestion=1]="suggestion",e[e.style=2]="style"}(e||(e={}));
2
+ //# sourceMappingURL=exception.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>l});const e=require("@shoplinedev/theme-check"),t=require("../../../utils/ui/render"),r=require("./check"),i=require("./config"),o=require("./types"),n=require("../../../utils/output"),u=function(e){return e&&e.__esModule?e:{default:e}}(require("../../../utils/winston"));async function l(l){var a;let{config:c,path:f,init:s,print:d,list:h,output:g,failLevel:m,category:k}=l;u.default.log("Resolve theme config...");let p=await (0,i.resolveConfig)(f,k,c);if(s){u.default.log("Init theme config in current directory..."),await (0,r.initConfig)(f,p),u.default.log("Init .theme-check.yml in current directory done.");return}if(d){u.default.log("Print active config..."),await (0,r.outputActiveConfig)(f,p),u.default.log("Print active config done.");return}if(h){u.default.log("List enabled checks..."),await (0,r.outputActiveChecks)(p),u.default.log("List enabled checks done.");return}let y=(0,r.getConfigRoot)(f,null==p?void 0:null===(a=p.global)||void 0===a?void 0:a.root);u.default.log("Check theme...");let{errors:v,checkFiles:C}=await (0,e.cliCheckTheme)({themePath:y,config:p}),O=(0,r.formatErrors)(v),b=(0,r.sortOffenses)(v),q=Object.values(C).flat();if(g===o.ECheckOutput.text){u.default.log("Render theme check summary..."),(0,r.renderOffensesText)(b,y);let e=O.length?t.renderInfo:t.renderSuccess;e({headline:"Theme Check Summary.",body:(0,r.formatSummary)(O,b,q)})}if(g===o.ECheckOutput.json){u.default.log("Render theme check summary in JSON format...");let{stdout:e}=process;(0,r.isExtendedWriteStream)(e)&&e._handle.setBlocking(!0),(0,n.outputInfo)(JSON.stringify((0,r.formatOffensesJson)(b)))}return(0,r.handleExit)(O,m)}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>l});const e=require("@shoplinedev/theme-check"),t=require("../../../utils/ui/render"),r=require("./check"),i=require("./config"),o=require("./types"),n=require("../../../utils/output"),u=function(e){return e&&e.__esModule?e:{default:e}}(require("../../../utils/winston"));async function l(l){var a;let{config:c,path:f,init:s,print:d,list:h,output:g,failLevel:m,category:k}=l;u.default.log("Resolve theme config...");let p=await (0,i.resolveConfig)(f,k,c);if(s){u.default.log("Init theme config in current directory..."),await (0,r.initConfig)(f,p),u.default.log("Init .theme-check.yml in current directory done.");return}if(d){u.default.log("Print active config..."),await (0,r.outputActiveConfig)(f,p),u.default.log("Print active config done.");return}if(h){u.default.log("List enabled checks..."),await (0,r.outputActiveChecks)(p),u.default.log("List enabled checks done.");return}let y=(0,r.getConfigRoot)(f,null==p?void 0:null===(a=p.global)||void 0===a?void 0:a.root);u.default.log("Check theme...");let{errors:v,checkFiles:C}=await (0,e.cliCheckTheme)({themePath:y,config:p}),O=(0,r.formatErrors)(v),b=(0,r.sortOffenses)(v),q=Object.values(C).flat();if(g===o.ECheckOutput.text){u.default.log("Render theme check summary..."),(0,r.renderOffensesText)(b,y);let e=O.length?t.renderInfo:t.renderSuccess;e({headline:"Theme Check Summary.",body:(0,r.formatSummary)(O,b,q)})}if(g===o.ECheckOutput.json){u.default.log("Render theme check summary in JSON format...");let{stdout:e}=process;(0,r.isExtendedWriteStream)(e)&&e._handle.setBlocking(!0),(0,n.outputInfo)(JSON.stringify((0,r.formatOffensesJson)(b)))}return(0,r.handleExit)(O,m)}
2
+ //# sourceMappingURL=index.js.map
@@ -1 +1,2 @@
1
- "use strict";var e,t,o;Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var o in t)Object.defineProperty(e,o,{enumerable:!0,get:t[o]})}(exports,{EFailLevel:()=>e,ECheckCategory:()=>t,ECheckOutput:()=>o,Config:()=>n.Config,Category:()=>n.Category,CheckConfig:()=>n.CheckConfig,GlobalConfig:()=>n.GlobalConfig});const n=require("@shoplinedev/theme-check");!function(e){e.error="error",e.suggestion="suggestion",e.style="style"}(e||(e={})),function(e){e.json="json",e.handlebars="handlebars",e.translation="translation",e.html="html"}(t||(t={})),function(e){e.text="text",e.json="json"}(o||(o={}));
1
+ "use strict";var e,t,o;Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var o in t)Object.defineProperty(e,o,{enumerable:!0,get:t[o]})}(exports,{EFailLevel:()=>e,ECheckCategory:()=>t,ECheckOutput:()=>o,Config:()=>n.Config,Category:()=>n.Category,CheckConfig:()=>n.CheckConfig,GlobalConfig:()=>n.GlobalConfig});const n=require("@shoplinedev/theme-check");!function(e){e.error="error",e.suggestion="suggestion",e.style="style"}(e||(e={})),function(e){e.json="json",e.handlebars="handlebars",e.translation="translation",e.html="html"}(t||(t={})),function(e){e.text="text",e.json="json"}(o||(o={}));
2
+ //# sourceMappingURL=types.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>e});class e{has(e){return!!this.get(e)}fileHasChanged(t){return this.checksumByKey.get(e.toKey(t))!==t.checksum}keys(){return Array.from(this.checksumByKey.keys())}delete(t){"string"==typeof t?this.checksumByKey.delete(t):this.checksumByKey.delete(e.toKey(t))}get(t){return this.checksumByKey.get(e.toKey(t))}set(e,t){this.checksumByKey.set(e,t||"")}static toKey(e){return e.fileName}constructor(){!function(e,t,s){t in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s}(this,"checksumByKey",new Map)}}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>e});class e{has(e){return!!this.get(e)}fileHasChanged(t){return this.checksumByKey.get(e.toKey(t))!==t.checksum}keys(){return Array.from(this.checksumByKey.keys())}delete(t){"string"==typeof t?this.checksumByKey.delete(t):this.checksumByKey.delete(e.toKey(t))}get(t){return this.checksumByKey.get(e.toKey(t))}set(e,t){this.checksumByKey.set(e,t||"")}static toKey(e){return e.fileName}constructor(){!function(e,t,s){t in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s}(this,"checksumByKey",new Map)}}
2
+ //# sourceMappingURL=checksum.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var s in t)Object.defineProperty(e,s,{enumerable:!0,get:t[s]})}(exports,{prompt:()=>m,getAllThemeList:()=>p,getSortedThemeList:()=>c,default:()=>g,themePresenter:()=>T});const e=o(require("inquirer")),t=require("lodash"),s=o(require("../../helpers/config")),u=require("./api"),i=require("./const"),n=require("./types"),a=require("../../utils/messages"),l=o(require("../../utils/colors")),r=require("../../utils/error");function o(e){return e&&e.__esModule?e:{default:e}}const m=e.default.createPromptModule(),d={[n.EThemeStatus.Published]:"green",[n.EThemeStatus.Unpublished]:"yellow",[n.EThemeStatus.Development]:"magenta"},h={[n.EThemeStatus.Published]:"live",[n.EThemeStatus.Unpublished]:"unpublished",[n.EThemeStatus.Development]:"development"};async function p(){let e=await (0,u.getThemeListWithPagination)({pageNum:1,pageSize:i.DEFAULT_PAGE_SIZE,includePublish:!0}),t=(null==e?void 0:e.list)||[];return t}async function c(e){let s=await p(),u=[n.EThemeStatus.Published,n.EThemeStatus.Unpublished,n.EThemeStatus.Development],i=(0,t.sortBy)(s,e=>(0,t.indexOf)(u,e.status));return"function"==typeof e?i.map(e):i}async function f(){var e;let t={originThemes:[],choices:[],publishedThemeId:""},u=await c();return u=function(e){let t=s.default.developmentThemeId,u=s.default.developmentThemeName;return t?e.concat({name:u,status:n.EThemeStatus.Development,id:t}):e}(u),t.choices=u.map(e=>({name:T(e,"short"),value:e.id})),t.publishedThemeId=null===(e=u.find(e=>e.status===n.EThemeStatus.Published))||void 0===e?void 0:e.id,t.originThemes=u,t}async function g(e){var t;let{choices:s,publishedThemeId:u,originThemes:n}=await f();if(!s.length)throw new r.AbortError((0,a.getMessage)("theme.errors.no_themes"));let{themeId:l}=await m([{type:"list",name:"themeId",message:"pull"===e?"Select a theme to pull from":"Select theme to push to",pageSize:i.DEFAULT_PAGE_SIZE,default:u,loop:!1,choices:s}]),o=null===(t=n.find(e=>e.id===l))||void 0===t?void 0:t.status;return{themeId:l,isPublished:!!(l&&u&&u===l),status:o}}function T(e,t="long"){let u=d[e.status],i=[`${l.default[u](`[${h[e.status]}]`)}`];if(e.id===s.default.developmentThemeId&&i.push(l.default.cyan("[yours]")),"long"===t){let t=(0,a.getMessage)("theme.list.long",{id:e.id,name:e.name,tags:i.join(" ")});return t}let n=(0,a.getMessage)("theme.list.short",{name:e.name,tags:i.join(" ")});return n}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var s in t)Object.defineProperty(e,s,{enumerable:!0,get:t[s]})}(exports,{prompt:()=>m,getAllThemeList:()=>p,getSortedThemeList:()=>c,default:()=>g,themePresenter:()=>T});const e=o(require("inquirer")),t=require("lodash"),s=o(require("../../helpers/config")),u=require("./api"),i=require("./const"),n=require("./types"),a=require("../../utils/messages"),l=o(require("../../utils/colors")),r=require("../../utils/error");function o(e){return e&&e.__esModule?e:{default:e}}const m=e.default.createPromptModule(),d={[n.EThemeStatus.Published]:"green",[n.EThemeStatus.Unpublished]:"yellow",[n.EThemeStatus.Development]:"magenta"},h={[n.EThemeStatus.Published]:"live",[n.EThemeStatus.Unpublished]:"unpublished",[n.EThemeStatus.Development]:"development"};async function p(){let e=await (0,u.getThemeListWithPagination)({pageNum:1,pageSize:i.DEFAULT_PAGE_SIZE,includePublish:!0}),t=(null==e?void 0:e.list)||[];return t}async function c(e){let s=await p(),u=[n.EThemeStatus.Published,n.EThemeStatus.Unpublished,n.EThemeStatus.Development],i=(0,t.sortBy)(s,e=>(0,t.indexOf)(u,e.status));return"function"==typeof e?i.map(e):i}async function f(){var e;let t={originThemes:[],choices:[],publishedThemeId:""},u=await c();return u=function(e){let t=s.default.developmentThemeId,u=s.default.developmentThemeName;return t?e.concat({name:u,status:n.EThemeStatus.Development,id:t}):e}(u),t.choices=u.map(e=>({name:T(e,"short"),value:e.id})),t.publishedThemeId=null===(e=u.find(e=>e.status===n.EThemeStatus.Published))||void 0===e?void 0:e.id,t.originThemes=u,t}async function g(e){var t;let{choices:s,publishedThemeId:u,originThemes:n}=await f();if(!s.length)throw new r.AbortError((0,a.getMessage)("theme.errors.no_themes"));let{themeId:l}=await m([{type:"list",name:"themeId",message:"pull"===e?"Select a theme to pull from":"Select theme to push to",pageSize:i.DEFAULT_PAGE_SIZE,default:u,loop:!1,choices:s}]),o=null===(t=n.find(e=>e.id===l))||void 0===t?void 0:t.status;return{themeId:l,isPublished:!!(l&&u&&u===l),status:o}}function T(e,t="long"){let u=d[e.status],i=[`${l.default[u](`[${h[e.status]}]`)}`];if(e.id===s.default.developmentThemeId&&i.push(l.default.cyan("[yours]")),"long"===t){let t=(0,a.getMessage)("theme.list.long",{id:e.id,name:e.name,tags:i.join(" ")});return t}let n=(0,a.getMessage)("theme.list.short",{name:e.name,tags:i.join(" ")});return n}
2
+ //# sourceMappingURL=choose-theme-list.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"renderSnippet",{enumerable:!0,get:()=>p});const e=i(require("axios")),t=i(require("form-data")),r=require("../../../helpers/sentry"),u=i(require("../../../utils/debug")),n=i(require("../../../helpers/config")),o=require("../../../utils/output"),s=require("../../../utils/const"),a=i(require("../../../utils/winston"));function i(e){return e&&e.__esModule?e:{default:e}}const{currentStore:l}=n.default,d=(()=>{let n=e.default.create({baseURL:l,maxContentLength:1/0,maxBodyLength:1/0,maxRedirects:0});return n.interceptors.request.use(e=>((0,o.outputDebug)((0,o.outputContent)`Request config: ${o.outputToken.json(e)}`),u.default.printRequest(e),Object.assign(e.headers,{cookie:"l_spwd=1","User-Agent":s.CLI_USER_AGENT}),(null==e?void 0:e.data)instanceof t.default&&Object.assign(e.headers,null==e?void 0:e.data.getHeaders()),a.default.logHttp({type:"request",method:e.method,url:e.baseURL+e.url,params:e.params}),e),e=>Promise.reject(e)),n.interceptors.response.use(async e=>{var t,r,n,o;return(u.default.printResponse(e.config,e),a.default.logHttp({type:"response",method:e.config.method,url:e.config.baseURL+e.config.url,params:e.config.params,body:e.data,status:e.status,traceId:(null==e?void 0:null===(t=e.data)||void 0===t?void 0:t.trace_id)||(null==e?void 0:null===(r=e.headers)||void 0===r?void 0:r["x-request-id"])||(null==e?void 0:null===(n=e.headers)||void 0===n?void 0:n["x-response-id"])||""}),200===e.status&&e.data&&e.data["announcement-bar"].html)?null!==(o=e.data["announcement-bar"].html)&&void 0!==o?o:"":"null"},e=>{var t;let u=null===(t=e.response)||void 0===t?void 0:t.status;if((0,r.reportBug)(e),u>=300&&u<400)throw Error("Page not found. Please provide a valid --url value.");return"null"}),n})();function p(e,t){return d.post(e,t)}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"renderSnippet",{enumerable:!0,get:()=>p});const e=i(require("axios")),t=i(require("form-data")),r=require("../../../helpers/monitoring"),o=i(require("../../../utils/debug")),s=i(require("../../../helpers/config")),n=require("../../../utils/output"),u=require("../../../utils/const"),a=i(require("../../../utils/winston"));function i(e){return e&&e.__esModule?e:{default:e}}const{currentStore:d}=s.default,l=(()=>{let s=e.default.create({baseURL:d,maxContentLength:1/0,maxBodyLength:1/0,maxRedirects:0});return s.interceptors.request.use(e=>((0,n.outputDebug)((0,n.outputContent)`Request config: ${n.outputToken.json(e)}`),o.default.printRequest(e),Object.assign(e.headers,{cookie:"l_spwd=1","User-Agent":u.CLI_USER_AGENT}),(null==e?void 0:e.data)instanceof t.default&&Object.assign(e.headers,null==e?void 0:e.data.getHeaders()),a.default.logHttp({type:"request",method:e.method,url:e.baseURL+e.url,params:e.params}),e),e=>Promise.reject(e)),s.interceptors.response.use(async e=>{var t,r,s,n;return(o.default.printResponse(e.config,e),a.default.logHttp({type:"response",method:e.config.method,url:e.config.baseURL+e.config.url,params:e.config.params,body:e.data,status:e.status,traceId:(null==e?void 0:null===(t=e.data)||void 0===t?void 0:t.trace_id)||(null==e?void 0:null===(r=e.headers)||void 0===r?void 0:r["x-request-id"])||(null==e?void 0:null===(s=e.headers)||void 0===s?void 0:s["x-response-id"])||""}),200===e.status&&e.data&&e.data["announcement-bar"].html)?null!==(n=e.data["announcement-bar"].html)&&void 0!==n?n:"":"null"},e=>{var t;let o=null===(t=e.response)||void 0===t?void 0:t.status,s=Error(o>=300&&o<400?"Page not found. Please provide a valid --url value.":e.message||"Failed to render theme snippet.");if(s.stack=e.stack,"string"==typeof e.code&&(s.code=e.code),(0,r.reportHttpError)(s,{response:e.response,requestConfig:e.config,source:"theme-console"}),o>=300&&o<400)throw s;return"null"}),s})();function p(e,t){return l.post(e,t)}
2
+ //# sourceMappingURL=api.js.map
@@ -1,8 +1,9 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>p});const e=d(require("repl")),t=require("htmlparser2"),r=require("domutils"),s=d(require("color-json")),l=d(require("../../../helpers/config")),n=require("../../../utils/output"),i=d(require("../../../utils/colors")),o=require("../../../utils/path"),a=require("./api"),u=d(require("../../../utils/winston"));function c(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function d(e){return e&&e.__esModule?e:{default:e}}class p{async start(){p.printReplMessage(),this.startReplServer()}static printReplMessage(){console.log(`
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>g});const e=p(require("repl")),t=require("htmlparser2"),r=require("domutils"),s=p(require("color-json")),l=p(require("../../../helpers/config")),n=require("../../../utils/output"),i=p(require("../../../utils/colors")),o=require("../../../utils/path"),a=require("./api"),u=p(require("../../../utils/winston")),c=require("../../../helpers/monitoring");function d(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function p(e){return e&&e.__esModule?e:{default:e}}class g{async start(){g.printReplMessage(),this.startReplServer()}static printReplMessage(){console.log(`
2
2
  Welcome to Shopline Handlebars console
3
3
  (press Ctrl + C twice to exit)
4
- `)}async evaluator(e,t,r,s){if(u.default.log(`Evaluating: ${e}`),(0,n.outputDebug)(`Evaluating: ${e}`),/\{\{\{?|\}\}\}?/.test(e)){p.delimiterWarning(),s(null);return}try{await this.renderSnippet(e),s(null)}catch(e){console.log(i.default.red(e.message)),s(e,null),u.default.logError(e,()=>{process.exit(1)})}}static delimiterWarning(){console.log(i.default.yellow(`
4
+ `)}async evaluator(e,t,r,s){if(u.default.log(`Evaluating: ${e}`),(0,n.outputDebug)(`Evaluating: ${e}`),/\{\{\{?|\}\}\}?/.test(e)){g.delimiterWarning(),s(null);return}try{await this.renderSnippet(e),s(null)}catch(e){console.log(i.default.red(e.message)),s(e,null),u.default.logError(e,()=>{(0,c.reportAndExit)(e)})}}static delimiterWarning(){console.log(i.default.yellow(`
5
5
  Handlebars Console doesn't support Handlebars delimiters such as '{{ ... }}' or '{{{ ... }}}'.
6
6
 
7
7
  Please use 'collections.first' instead of '{{ collections.first }}'.
8
- `))}startReplServer(){u.default.log("Starting node repl server...");let t=e.default.start({eval:this.evaluator.bind(this)});t.on("exit",()=>{process.exit()})}collectAssignmentExpressiones(e){return(/^assign\s+(["']).+\1\s+(["']).+\2/.test(e)&&(console.log(i.default.gray(`> ${e}`)),this.assignments.add(`{{${e}}}`)),this.assignments.size>0)?Array.from(this.assignments).join("\n"):""}async renderSnippet(e){(0,n.outputDebug)(`Request url: ${this.requestUrl}`),e=e.replace(/\r|\n|\t/g,"");let t=this.collectAssignmentExpressiones(e);u.default.log(`Render snippet: ${t}{{{json ${e}}}}`);let r=await (0,a.renderSnippet)(this.requestUrl,{"announcement-bar":null,replace_templates:{"sections/announcement-bar.html":`<div id='${p.RENDER_SNIPPET_ID}'>${t}{{{json ${e}}}}</div>`}});if(r&&r.includes(p.RENDER_SNIPPET_ID)){let e=p.getRenderResult(r);"object"==typeof e?console.log((0,s.default)(e)):"string"==typeof String(e)?console.log(i.default.cyan(e)):console.log(i.default.red("Except for Object and String, other types cannot be printed."))}else console.log(i.default.red(`Unknow object '${e}'`)),console.log(i.default.cyan("string"==typeof r?r:"null"))}get requestUrl(){let e=new URL(l.default.currentStore);return e.pathname=this.url,`${e.pathname}`}static getRenderResult(e){let s=(0,t.parseDocument)(e),l=(0,r.getElementById)(p.RENDER_SNIPPET_ID,s.children),n=(0,r.textContent)(l);try{return JSON.parse(n)}catch(e){return("string"==typeof n?n.trim():n)||"null"}}constructor(e,t){c(this,"url",void 0),c(this,"cwd",void 0),c(this,"assignments",new Set),this.url=e.url&&e.url.startsWith("/")?e.url:"/",this.cwd=null!=t?t:(0,o.cwd)()}}c(p,"RENDER_SNIPPET_ID","shopline-cli-repl-result");
8
+ `))}startReplServer(){u.default.log("Starting node repl server...");let t=e.default.start({eval:this.evaluator.bind(this)});t.on("exit",()=>{process.exit()})}collectAssignmentExpressiones(e){return(/^assign\s+(["']).+\1\s+(["']).+\2/.test(e)&&(console.log(i.default.gray(`> ${e}`)),this.assignments.add(`{{${e}}}`)),this.assignments.size>0)?Array.from(this.assignments).join("\n"):""}async renderSnippet(e){(0,n.outputDebug)(`Request url: ${this.requestUrl}`),e=e.replace(/\r|\n|\t/g,"");let t=this.collectAssignmentExpressiones(e);u.default.log(`Render snippet: ${t}{{{json ${e}}}}`);let r=await (0,a.renderSnippet)(this.requestUrl,{"announcement-bar":null,replace_templates:{"sections/announcement-bar.html":`<div id='${g.RENDER_SNIPPET_ID}'>${t}{{{json ${e}}}}</div>`}});if(r&&r.includes(g.RENDER_SNIPPET_ID)){let e=g.getRenderResult(r);"object"==typeof e?console.log((0,s.default)(e)):"string"==typeof String(e)?console.log(i.default.cyan(e)):console.log(i.default.red("Except for Object and String, other types cannot be printed."))}else console.log(i.default.red(`Unknow object '${e}'`)),console.log(i.default.cyan("string"==typeof r?r:"null"))}get requestUrl(){let e=new URL(l.default.currentStore);return e.pathname=this.url,`${e.pathname}`}static getRenderResult(e){let s=(0,t.parseDocument)(e),l=(0,r.getElementById)(g.RENDER_SNIPPET_ID,s.children),n=(0,r.textContent)(l);try{return JSON.parse(n)}catch(e){return("string"==typeof n?n.trim():n)||"null"}}constructor(e,t){d(this,"url",void 0),d(this,"cwd",void 0),d(this,"assignments",new Set),this.url=e.url&&e.url.startsWith("/")?e.url:"/",this.cwd=null!=t?t:(0,o.cwd)()}}d(g,"RENDER_SNIPPET_ID","shopline-cli-repl-result");
9
+ //# sourceMappingURL=console.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"consoleAction",{enumerable:!0,get:()=>s});const e=require("../../../utils/parse-options"),t=o(require("../../../helpers/config")),r=require("../utils"),i=o(require("./console")),n=o(require("../../../utils/winston"));function o(e){return e&&e.__esModule?e:{default:e}}async function s(o,s){try{let r=await (0,e.parseOptions)(o,s),u=r.path;n.default.log("Checking login..."),t.default.isLogin();let l=new i.default(r,u);await l.start()}catch(e){(0,r.handleError)(e)}}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"consoleAction",{enumerable:!0,get:()=>s});const e=require("../../../utils/parse-options"),t=o(require("../../../helpers/config")),r=require("../utils"),i=o(require("./console")),n=o(require("../../../utils/winston"));function o(e){return e&&e.__esModule?e:{default:e}}async function s(o,s){try{let r=await (0,e.parseOptions)(o,s),u=r.path;n.default.log("Checking login..."),t.default.isLogin();let l=new i.default(r,u);await l.start()}catch(e){(0,r.handleError)(e)}}
2
+ //# sourceMappingURL=index.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,E){for(var t in E)Object.defineProperty(e,t,{enumerable:!0,get:E[t]})}(exports,{ENDPOINTS:()=>e,ERRORS:()=>E,DEFAULT_ZIP_NAME:()=>t,DEFAULT_PAGE_SIZE:()=>_,LIVE_RELOAD_MODE:()=>T,DEFAULT_LIVE_RELOAD_MODE:()=>a,DEV_SERVE_PORT:()=>o,ERROR_CODES:()=>i,TEXT_TYPE_EXTNAMES:()=>r,IGNORE_LAYOUT_FILES:()=>n});const e={CODE_EDITOR:"/admin/api/site/code-editor",THEME:"/admin/api/site/theme"},E={NOT_EMPTY_DIR:"The directory is not empty, please clear the directory before operating",THEME_ID_NOT_EXIST:"Theme id does not exist",THEME_COUNT_LIMIT:"The number of themes has reached the limit",DOWNLOAD_THEME_FAILED:"Failed to download the theme",UPLOAD_THEME_FAILED:"Failed to upload the theme",LAYOUT_FILE_NOT_MATCH_TEMPLATE:"Layout file does not match the template",THEME_IS_PUBLISHED:"The current theme {themeName} (#{id}) is published",THEME_IS_INVALID:"The current development theme is not exist",NOT_STANDARD_DIRECTORY:"Current directory is not a theme, Please run this command in a theme directory",TEMPLATE_FILE_NAME_NOT_PASS:"The template name contains invalid characters, please modify it.",FEATURE_KEY_NOT_EXIST:"You haven’t the permission to upload the theme package, please contact your account manager for help",UNZIP_THEME_FAILED:"Unpacking failed due to corruption in the theme code package. Please check and try again."},t="theme.zip",_=50,T=["hot-reload","full-page","off"],a="hot-reload",o=8282,i={THEME_COUNT_LIMIT:["SLE0201"],DEVELOPMENT_THEME_NOT_EXIST:["SLE0101"],NO_SECOND_CHECK:["CUS0402","10049"],FEATURE_KEY_NOT_EXIST:["CUS0412","10048"],NOT_LOGIN:["1000"],INVALID_FILE:["1001"],FILE_NOT_EXIT:["10042","10001"]},r=[".js",".css",".hbs"],n=["password"];
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,E){for(var t in E)Object.defineProperty(e,t,{enumerable:!0,get:E[t]})}(exports,{ENDPOINTS:()=>e,ERRORS:()=>E,DEFAULT_ZIP_NAME:()=>t,DEFAULT_PAGE_SIZE:()=>_,LIVE_RELOAD_MODE:()=>T,DEFAULT_LIVE_RELOAD_MODE:()=>a,DEV_SERVE_PORT:()=>o,ERROR_CODES:()=>i,TEXT_TYPE_EXTNAMES:()=>r,IGNORE_LAYOUT_FILES:()=>n});const e={CODE_EDITOR:"/admin/api/site/code-editor",THEME:"/admin/api/site/theme"},E={NOT_EMPTY_DIR:"The directory is not empty, please clear the directory before operating",THEME_ID_NOT_EXIST:"Theme id does not exist",THEME_COUNT_LIMIT:"The number of themes has reached the limit",DOWNLOAD_THEME_FAILED:"Failed to download the theme",UPLOAD_THEME_FAILED:"Failed to upload the theme",LAYOUT_FILE_NOT_MATCH_TEMPLATE:"Layout file does not match the template",THEME_IS_PUBLISHED:"The current theme {themeName} (#{id}) is published",THEME_IS_INVALID:"The current development theme is not exist",NOT_STANDARD_DIRECTORY:"Current directory is not a theme, Please run this command in a theme directory",TEMPLATE_FILE_NAME_NOT_PASS:"The template name contains invalid characters, please modify it.",FEATURE_KEY_NOT_EXIST:"You haven’t the permission to upload the theme package, please contact your account manager for help",UNZIP_THEME_FAILED:"Unpacking failed due to corruption in the theme code package. Please check and try again."},t="theme.zip",_=50,T=["hot-reload","full-page","off"],a="hot-reload",o=8282,i={THEME_COUNT_LIMIT:["SLE0201"],DEVELOPMENT_THEME_NOT_EXIST:["SLE0101"],NO_SECOND_CHECK:["CUS0402","10049"],FEATURE_KEY_NOT_EXIST:["CUS0412","10048"],NOT_LOGIN:["1000"],INVALID_FILE:["1001"],FILE_NOT_EXIT:["10042","10001"]},r=[".js",".css",".hbs"],n=["password"];
2
+ //# sourceMappingURL=const.js.map
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,r){for(var o in r)Object.defineProperty(e,o,{enumerable:!0,get:r[o]})}(exports,{markExpectedStaticNotFound:()=>n,registerThemeDevServerErrorReporting:()=>d});const e=require("../../helpers/monitoring"),r=new Set(["ECONNRESET","EPIPE"]),o=new Set(["ENOENT","ENAMETOOLONG","ENOTDIR"]),t=new WeakSet;function n(e){t.add(e)}function d(n,{themeOs:d}){n.on("error",(i,l)=>{var u;let v=function(e){var r;if("ENOENT"===e.code)return 404;let o=null!==(r=e.status)&&void 0!==r?r:e.statusCode;return"number"==typeof o&&o>=400&&o<=599?o:500}(i);if(function(e,n,d){var i,l,u,v,s,c,a;if(d&&t.has(d)&&404===n&&e.code&&o.has(e.code))return!0;let h=(null==d?void 0:null===(i=d.req)||void 0===i?void 0:i.aborted)===!0||(null==d?void 0:null===(l=d.req)||void 0===l?void 0:l.destroyed)===!0&&(null==d?void 0:null===(u=d.req)||void 0===u?void 0:u.complete)!==!0,p=((null==d?void 0:null===(v=d.res)||void 0===v?void 0:v.destroyed)===!0||(null==d?void 0:null===(s=d.req)||void 0===s?void 0:null===(c=s.socket)||void 0===c?void 0:c.destroyed)===!0)&&(null==d?void 0:null===(a=d.res)||void 0===a?void 0:a.writableFinished)!==!0;return!!e.code&&r.has(e.code)&&(h||p)}(i,v,l))return;n.onerror(i);let s=null==l?void 0:null===(u=l.method)||void 0===u?void 0:u.toUpperCase(),c=function(e){try{var r;return null==e?void 0:null===(r=e.path)||void 0===r?void 0:r.slice(0,1024)}catch(e){return}}(l);try{(0,e.reportBugOnce)(i,{tags:{error_source:"theme-dev-server",theme_os:d,...s?{http_method:s}:{},...v?{http_status:String(v)}:{}},extra:{koa_request:{...s?{method:s}:{},...c?{path:c}:{},...v?{status:v}:{},...i.code?{errorCode:i.code}:{}}}})}catch(e){}})}
2
+ //# sourceMappingURL=dev-server-monitoring.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>r});const e=require("crypto"),t=function(e){return e&&e.__esModule?e:{default:e}}(require("mime")),i=require("../../utils/path"),s=require("../../utils/fs");function l(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class r{get fullPath(){return(0,i.joinPath)(this.cwd,this.filePath)}get extName(){return(0,i.extname)(this.filePath)}get isExist(){return(0,s.fileExistsSync)(this.fullPath)}get isConfigSchemaFile(){return"config/settings_schema.json"===this.fileName}get isConfigFile(){return["config/settings_schema.json","config/settings_data.json"].includes(this.fileName)}get mimeType(){return this.isExist?t.default.getType(this.filePath):""}get isImageType(){var e,t;return(null===(e=this.mimeType)||void 0===e?void 0:e.startsWith("image/"))&&!(null===(t=this.mimeType)||void 0===t?void 0:t.startsWith("image/svg"))}get fileName(){return this.filePath}get fileContent(){return this.filePath.startsWith("assets/")?(0,s.readFileSync)(this.localeFullFilePath,{}):(0,s.readFileSync)(this.localeFullFilePath)}get localeFullFilePath(){let e=this.filePath.endsWith(".preview")?this.filePath.replace(".preview",""):this.filePath,t=(0,i.joinPath)(this.cwd,e);return t}get checksum(){return(0,e.createHash)("sha256").update(this.fileContent).digest("hex")}constructor(e,t){l(this,"cwd",(0,i.cwd)()),l(this,"filePath",void 0),this.filePath=e,this.cwd=t}}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>r});const e=require("crypto"),t=function(e){return e&&e.__esModule?e:{default:e}}(require("mime")),i=require("../../utils/path"),s=require("../../utils/fs");function l(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class r{get fullPath(){return(0,i.joinPath)(this.cwd,this.filePath)}get extName(){return(0,i.extname)(this.filePath)}get isExist(){return(0,s.fileExistsSync)(this.fullPath)}get isConfigSchemaFile(){return"config/settings_schema.json"===this.fileName}get isConfigFile(){return["config/settings_schema.json","config/settings_data.json"].includes(this.fileName)}get mimeType(){return this.isExist?t.default.getType(this.filePath):""}get isImageType(){var e,t;return(null===(e=this.mimeType)||void 0===e?void 0:e.startsWith("image/"))&&!(null===(t=this.mimeType)||void 0===t?void 0:t.startsWith("image/svg"))}get fileName(){return this.filePath}get fileContent(){return this.filePath.startsWith("assets/")?(0,s.readFileSync)(this.localeFullFilePath,{}):(0,s.readFileSync)(this.localeFullFilePath)}get localeFullFilePath(){let e=this.filePath.endsWith(".preview")?this.filePath.replace(".preview",""):this.filePath,t=(0,i.joinPath)(this.cwd,e);return t}get checksum(){return(0,e.createHash)("sha256").update(this.fileContent).digest("hex")}constructor(e,t){l(this,"cwd",(0,i.cwd)()),l(this,"filePath",void 0),this.filePath=e,this.cwd=t}}
2
+ //# sourceMappingURL=file.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(exports,{cloneExampleTheme:()=>u,reInitGitRepo:()=>l});const e=n(require("simple-git")),t=n(require("ora")),r=n(require("path")),i=n(require("fs-extra")),s=require("../../utils/messages"),o=require("../../utils/error");function n(e){return e&&e.__esModule?e:{default:e}}const a=e=>i.default.existsSync(e),u=async r=>{if(a(r))return Promise.reject(new o.AbortError((0,s.getMessage)("theme.errors.directory_exists",{folder_name:r})));let i=(0,e.default)(),n="https://github.com/shoplineos/Bottle.git",u=(0,t.default)({text:`Cloning ${n} into ${r}`}).start();try{return await i.clone(n,r,{"--branch":"main","--progress":null}),u.succeed(),await Promise.resolve()}catch(e){return u.fail(),Promise.reject(e)}},l=async t=>{i.default.removeSync(r.default.join(t,".git"));let s=(0,e.default)(t);await s.init()};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(exports,{cloneExampleTheme:()=>u,reInitGitRepo:()=>l});const e=n(require("simple-git")),t=n(require("ora")),r=n(require("path")),i=n(require("fs-extra")),s=require("../../utils/messages"),o=require("../../utils/error");function n(e){return e&&e.__esModule?e:{default:e}}const a=e=>i.default.existsSync(e),u=async r=>{if(a(r))return Promise.reject(new o.AbortError((0,s.getMessage)("theme.errors.directory_exists",{folder_name:r})));let i=(0,e.default)(),n="https://github.com/shoplineos/Bottle.git",u=(0,t.default)({text:`Cloning ${n} into ${r}`}).start();try{return await i.clone(n,r,{"--branch":"main","--progress":null}),u.succeed(),await Promise.resolve()}catch(e){return u.fail(),Promise.reject(e)}},l=async t=>{i.default.removeSync(r.default.join(t,".git"));let s=(0,e.default)(t);await s.init()};
2
+ //# sourceMappingURL=git.js.map
@@ -1,7 +1,8 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var a in t)Object.defineProperty(e,a,{enumerable:!0,get:t[a]})}(exports,{startThemeService:()=>N,default:()=>O});const e=$(require("path")),t=$(require("fs-extra")),a=$(require("chokidar")),i=require("lodash"),s=$(require("form-data")),r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var a=I(t);if(a&&a.has(e))return a.get(e);var i={},s=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in e)if("default"!==r&&Object.prototype.hasOwnProperty.call(e,r)){var l=s?Object.getOwnPropertyDescriptor(e,r):null;l&&(l.get||l.set)?Object.defineProperty(i,r,l):i[r]=e[r]}return i.default=e,a&&a.set(e,i),i}(require("../../utils/logger")),l=$(require("../../helpers/config")),u=$(require("../../utils/write-file-tree")),n=$(require("../../utils/load-local-preset")),o=require("../../utils/git"),d=require("./git"),h=require("./api"),c=require("./utils"),m=$(require("./package")),f=$(require("../../utils/tiny-queue")),p=require("./types"),g=require("./const"),w=require("../../utils/messages"),y=require("./choose-theme-list"),T=$(require("../../utils/debug")),v=require("../../helpers/sentry"),k=require("../../utils/ora-manager"),b=$(require("../../utils/colors")),F=require("../../utils/path"),D=$(require("./uploader")),q=require("../../utils/error"),S=require("../../utils/output"),E=$(require("../../utils/winston"));function C(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function $(e){return e&&e.__esModule?e:{default:e}}function I(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,a=new WeakMap;return(I=function(e){return e?a:t})(e)}class _ extends T.default{static async package(e,t=(0,F.cwd)()){try{let a=new m.default(t);await a.pack(e)}catch(e){(0,c.handleError)(e)}}static async getDevelopmentId(){let e=l.default.developmentThemeId;return await _.isValidDevTheme(e)?e:""}static async getValidDevelopmentInfo(){let e=l.default.developmentThemeId;return await _.isValidDevTheme(e)?{id:e,name:"",status:p.EThemeStatus.Development}:{id:"",name:(0,c.generateDevThemeName)(),status:p.EThemeStatus.Development}}static async isValidDevTheme(e){try{let t=await (0,h.getThemeInfo)(e);return(null==t?void 0:t.status)===p.EThemeStatus.Development}catch(e){return!1}}static async isUncompletedDevTheme(e){try{let t=await (0,h.getThemeInfo)(e);return(null==t?void 0:t.status)===p.EThemeStatus.Uncompleted}catch(e){return!1}}static async getThemeInfo(e){let t=await (0,h.getThemeInfo)(e);return t}static async getLiveThemeId(){var e;let t=await (0,y.getAllThemeList)();return null===(e=t.find(e=>e.status===p.EThemeStatus.Published))||void 0===e?void 0:e.id}static async checkThemeStandardStructure(e){if(0===e.length)throw new q.AbortError(g.ERRORS.NOT_STANDARD_DIRECTORY);let t=(0,i.difference)(c.standardThemeDirectories,e);t.length>0&&Error(`
2
- The presence of ${b.default.bold(null==t?void 0:t[0])} in the directory structure isn't supported.
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var a in t)Object.defineProperty(e,a,{enumerable:!0,get:t[a]})}(exports,{startThemeService:()=>$,default:()=>R});const e=C(require("path")),t=C(require("fs-extra")),a=C(require("chokidar")),i=require("lodash"),s=C(require("form-data")),r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var a=I(t);if(a&&a.has(e))return a.get(e);var i={},s=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in e)if("default"!==r&&Object.prototype.hasOwnProperty.call(e,r)){var l=s?Object.getOwnPropertyDescriptor(e,r):null;l&&(l.get||l.set)?Object.defineProperty(i,r,l):i[r]=e[r]}return i.default=e,a&&a.set(e,i),i}(require("../../utils/logger")),l=C(require("../../helpers/config")),u=C(require("../../utils/write-file-tree")),n=C(require("../../utils/load-local-preset")),o=require("../../utils/git"),d=require("./git"),h=require("./api"),c=require("./utils"),m=C(require("./package")),f=C(require("../../utils/tiny-queue")),p=require("./types"),g=require("./const"),T=require("../../utils/messages"),w=require("./choose-theme-list"),y=C(require("../../utils/debug")),E=require("../../helpers/monitoring"),v=require("../../utils/ora-manager"),D=C(require("../../utils/colors")),k=require("../../utils/path"),b=C(require("./uploader")),F=require("../../utils/error"),S=require("../../utils/output"),q=C(require("../../utils/winston")),_=require("./watcher-monitoring");function O(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function C(e){return e&&e.__esModule?e:{default:e}}function I(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,a=new WeakMap;return(I=function(e){return e?a:t})(e)}class N extends y.default{static async package(e,t=(0,k.cwd)()){try{let a=new m.default(t);await a.pack(e)}catch(e){(0,c.handleError)(e)}}static async getDevelopmentId(){let e=l.default.developmentThemeId;return await N.isValidDevTheme(e)?e:""}static async getValidDevelopmentInfo(){let e=l.default.developmentThemeId;return await N.isValidDevTheme(e)?{id:e,name:"",status:p.EThemeStatus.Development}:{id:"",name:(0,c.generateDevThemeName)(),status:p.EThemeStatus.Development}}static async isValidDevTheme(e){try{let t=await (0,h.getThemeInfo)(e,{ignoreBusinessCodes:g.ERROR_CODES.DEVELOPMENT_THEME_NOT_EXIST});return(null==t?void 0:t.status)===p.EThemeStatus.Development}catch(e){return!1}}static async isUncompletedDevTheme(e){try{let t=await (0,h.getThemeInfo)(e,{ignoreBusinessCodes:g.ERROR_CODES.DEVELOPMENT_THEME_NOT_EXIST});return(null==t?void 0:t.status)===p.EThemeStatus.Uncompleted}catch(e){return!1}}static async getThemeInfo(e){let t=await (0,h.getThemeInfo)(e);return t}static async getLiveThemeId(){var e;let t=await (0,w.getAllThemeList)();return null===(e=t.find(e=>e.status===p.EThemeStatus.Published))||void 0===e?void 0:e.id}static async checkThemeStandardStructure(e){if(0===e.length)throw new F.AbortError(g.ERRORS.NOT_STANDARD_DIRECTORY);let t=(0,i.difference)(c.standardThemeDirectories,e);t.length>0&&Error(`
2
+ The presence of ${D.default.bold(null==t?void 0:t[0])} in the directory structure isn't supported.
3
3
 
4
4
  Move any files to a parent folder, then delete unsupported subdirectories.
5
5
 
6
6
  • Required directory structure: https://developer.myshopline.com/docs/introduce/bGgYARTh
7
- `)}static async findOrCreate(e){if(e){(0,S.outputDebug)(`Get theme info: ${e}`);try{let t=await (0,h.getThemeInfo)(e);if((0,S.outputDebug)((0,S.outputContent)`Theme info: ${S.outputToken.json(t)}`),t.id)return{id:t.id,name:t.name,status:t.status}}catch(t){let e=await _.createNewTheme();return e}}(0,S.outputDebug)(`The theme ${e} doesn't exist. creating a new one...`);let t=await _.createNewTheme();return(0,S.outputDebug)((0,S.outputContent)`The new theme info: ${S.outputToken.json(t)}`),t}static async createNewTheme(){(0,S.outputDebug)("Create a new development theme...");let e=(0,c.generateDevThemeName)(),t=await D.default.createNewTheme(e);return(0,S.outputDebug)((0,S.outputContent)`A new development theme info: ${S.outputToken.json({id:t,name:e})}`),{id:t,name:e}}static async deleteDevelopment(e){e&&await (0,h.changeThemeStatus)({themeId:e,status:p.EThemeStatus.Delete})}static async changeToPublishTheme(e){await (0,h.changeThemeStatus)({themeId:e,status:p.EThemeStatus.Published})}static async changeToUnpublishTheme(e){await (0,h.changeThemeStatus)({themeId:e,status:p.EThemeStatus.Unpublished})}static async init(t,a){let i=e.default.join(a,t),s=e.default.basename(t);try{E.default.log("ensure git..."),await (0,o.ensureGitOrAbort)(a),E.default.log("clone example theme..."),await (0,d.cloneExampleTheme)(i);let t="theme.schema.json",l=await (0,n.default)(e.default.join(i,t));l&&(l.name=s,l.theme_name=s),E.default.log(`create theme ${s}...`),await (0,u.default)(i,{[t]:JSON.stringify(l,null,2)}),E.default.log("reinit git in your project..."),await (0,d.reInitGitRepo)(i),r.success(`🎉 Successfully created theme ${b.default.yellow(s)}.`),E.default.log("initialize success in your project...")}catch(e){(0,c.handleError)(e)}}static async list(){try{E.default.log("Checking login..."),l.default.isLogin(),console.log((0,w.getMessage)("theme.list.title",{store:l.default.currentStore}));let e=await (0,y.getSortedThemeList)(e=>(0,y.themePresenter)(e));E.default.log("Printing sorted theme list..."),e.forEach(e=>{console.log(e)}),E.default.log("Print theme list succeed!")}catch(e){(0,c.handleError)(e)}}watch(){let e=a.default.watch((0,c.getThemeDirectory)(this.cwd),{ignored:/(^|[/\\])\../,interval:1e3,usePolling:!0,ignoreInitial:!0});e.on("ready",()=>{E.default.log("Watching theme files..."),this.queue.on("error",e=>{e instanceof q.ValidatorError?(e.errors.forEach(e=>{r.error(`${e.filename}: ${e.message.join("\n")}`)}),(0,k.clearAllOra)()):r.error(e.message||e)}),e.on("add",(...e)=>{let t=e[0];E.default.log(`Add theme file: ${t}`),this.shouldWatchFile(t)&&(this.shouldUpdate(t)?this.queue.push(this.onAdd.bind(this,t)):this.sse.broadcast(this.getSseData(t,"add")))}),e.on("change",(...e)=>{let t=e[0];E.default.log(`Change theme file: ${t}`),this.shouldWatchFile(t)&&(this.shouldUpdate(t)?this.queue.push(this.onChange.bind(this,t)):this.sse.broadcast(this.getSseData(t)))}),e.on("unlink",(...e)=>{let t=e[0];E.default.log(`Unlink theme file: ${t}`),this.shouldWatchFile(t)&&(this.shouldUpdate(t)?this.queue.push(this.onUnlink.bind(this,...e)):this.sse.broadcast(this.getSseData(t,"unlink")))})})}shouldWatchFile(e){let t=(0,c.parseFileName)(e,this.cwd),a=this.ignoreFilter.match(t),i=this.includeFilter.match(t);return!a&&i}shouldUpdate(e){let t=(0,c.parseFileName)(e,this.cwd),a=this.updateQueue.find(t);return!a||(this.updateQueue.delete(t),!1)}async onAdd(e){await this.createFile(e),this.sse.broadcast(this.getSseData(e,"add"))}async onChange(e){await this.updateFile(e),this.sse.broadcast(this.getSseData(e))}async onUnlink(e){await this.deleteFile(e),this.sse.broadcast(this.getSseData(e,"unlink"))}async deleteFile(e){let t=(0,c.parseFileName)(e,this.cwd),a=(0,k.createOra)((0,w.getMessage)("theme.serve.syncer.delete_strategy.success",{file_name:t})).start();if(!await this.isRemoteExistsFile(e)){r.warn((0,w.getMessage)("theme.serve.syncer.no_remote_file",{file_name:t}));return}E.default.log(`Delete file: ${t}`),await (0,h.deleteFile)(this.themeId,{fileName:t}),E.default.log(`Delete file (${t}) checksum`),this.uploader.checksums.delete(t),a.succeed()}async updateFile(a){let i=(0,c.parseFileName)(a,this.cwd),[r]=i.split("/"),l=e.default.extname(i);(0,c.checkTemplateFileName)(i);let u=(0,k.createOra)((0,w.getMessage)("theme.serve.syncer.update_strategy.success",{file_name:i})).start();if("assets"!==r||g.TEXT_TYPE_EXTNAMES.includes(l)){let{fileContent:e}=(0,c.parseFile)(a,this.cwd);if(!(0,c.checkLayoutFile)(i,e))return;try{await (0,h.getThemeFileDetail)({themeId:this.themeId,fileName:i})}catch(e){await this.createFile(a);return}E.default.log(`Update file: ${i}`);let t=await (0,h.updateFile)(this.themeId,{fileName:i,fileContent:e});E.default.log(`Update file (${i}) checksum: ${t.fileContentChecksum}`),this.uploader.checksums.set(i,t.fileContentChecksum)}else{let e=new s.default;e.append("file",t.default.createReadStream(a)),e.append("fileName",i);let r=e.getHeaders();E.default.log(`Upload asset file: ${i}`);let l=await (0,h.uploadFile)(this.themeId,e,{headers:r});E.default.log(`Update file (${i}) checksum: ${l.fileContentChecksum}`),this.uploader.checksums.set(i,l.fileContentChecksum)}u.succeed()}async createFile(a){let i=(0,c.parseFileName)(a,this.cwd),[r]=i.split("/"),l=e.default.extname(i),u=(0,k.createOra)((0,w.getMessage)("theme.serve.syncer.create_strategy.success",{file_name:i})).start();if("assets"!==r||g.TEXT_TYPE_EXTNAMES.includes(l)){let{fileContent:e}=(0,c.parseFile)(a,this.cwd);if(!(0,c.checkLayoutFile)(i,e))return;(0,c.checkTemplateFileName)(i),E.default.log(`Create file: ${i}`);let t=await (0,h.createFile)(this.themeId,{fileName:i,fileContent:e});E.default.log(`Update file (${i}) checksum: ${t.fileContentChecksum}`),this.uploader.checksums.set(i,t.fileContentChecksum)}else{let e=new s.default;e.append("file",t.default.createReadStream(a)),e.append("fileName",i);let r=e.getHeaders();E.default.log(`Upload asset file: ${i}`);let l=await (0,h.uploadFile)(this.themeId,e,{headers:r});E.default.log(`Update file (${i}) checksum: ${l.fileContentChecksum}`),this.uploader.checksums.set(i,l.fileContentChecksum)}u.succeed()}async isRemoteExistsFile(e){try{let t=(0,c.parseFileName)(e,this.cwd);return await (0,h.getThemeFileDetail)({themeId:this.themeId,fileName:t}),!0}catch(e){return!1}}getSseData(e,t){return"full-page"===this.mode||t&&["add","unlink"].includes(t)?{data:{reload_page:!0}}:{data:{modified:[(0,c.getRelativePath)(e,this.cwd)]}}}constructor({themeId:e,mode:t,editorSync:a,sse:i,updateQueue:s,includeFilter:r,ignoreFilter:l,uploader:u,cwd:n}){super("theme:theme"),C(this,"cwd",""),C(this,"themeId",""),C(this,"queue",void 0),C(this,"mode",void 0),C(this,"sse",void 0),C(this,"editorSync",void 0),C(this,"updateQueue",void 0),C(this,"includeFilter",void 0),C(this,"ignoreFilter",void 0),C(this,"uploader",void 0),this.themeId=e,this.queue=new f.default,this.mode=t,this.sse=i,this.editorSync=a,this.updateQueue=s,this.includeFilter=r,this.ignoreFilter=l,this.uploader=u,this.cwd=n,this.watch()}}async function N(e,t,a,i,s,u,n,o){try{let r=l.default.developmentThemeId,d=new _({themeId:r,mode:e,editorSync:t,sse:a,updateQueue:i,includeFilter:s,ignoreFilter:u,uploader:n,cwd:o});return{themeId:r,themeInstance:d}}catch(e){var d,h;return r.error((null==e?void 0:null===(d=e.response)||void 0===d?void 0:null===(h=d.data)||void 0===h?void 0:h.msg)||(null==e?void 0:e.stack)),(0,v.reportAndExit)(e)}}const O=_;
7
+ `)}static async findOrCreate(e){if(e){(0,S.outputDebug)(`Get theme info: ${e}`);try{let t=await (0,h.getThemeInfo)(e,{ignoreBusinessCodes:g.ERROR_CODES.DEVELOPMENT_THEME_NOT_EXIST});if((0,S.outputDebug)((0,S.outputContent)`Theme info: ${S.outputToken.json(t)}`),t.id)return{id:t.id,name:t.name,status:t.status}}catch(e){return N.createNewTheme()}}(0,S.outputDebug)(`The theme ${e} doesn't exist. creating a new one...`);let t=await N.createNewTheme();return(0,S.outputDebug)((0,S.outputContent)`The new theme info: ${S.outputToken.json(t)}`),t}static async createNewTheme(){(0,S.outputDebug)("Create a new development theme...");let e=(0,c.generateDevThemeName)(),t=await b.default.createNewTheme(e);return(0,S.outputDebug)((0,S.outputContent)`A new development theme info: ${S.outputToken.json({id:t,name:e})}`),{id:t,name:e}}static async deleteDevelopment(e){e&&await (0,h.changeThemeStatus)({themeId:e,status:p.EThemeStatus.Delete})}static async changeToPublishTheme(e){await (0,h.changeThemeStatus)({themeId:e,status:p.EThemeStatus.Published})}static async changeToUnpublishTheme(e){await (0,h.changeThemeStatus)({themeId:e,status:p.EThemeStatus.Unpublished})}static async init(t,a){let i=e.default.join(a,t),s=e.default.basename(t);try{q.default.log("ensure git..."),await (0,o.ensureGitOrAbort)(a),q.default.log("clone example theme..."),await (0,d.cloneExampleTheme)(i);let t="theme.schema.json",l=await (0,n.default)(e.default.join(i,t));l&&(l.name=s,l.theme_name=s),q.default.log(`create theme ${s}...`),await (0,u.default)(i,{[t]:JSON.stringify(l,null,2)}),q.default.log("reinit git in your project..."),await (0,d.reInitGitRepo)(i),r.success(`🎉 Successfully created theme ${D.default.yellow(s)}.`),q.default.log("initialize success in your project...")}catch(e){(0,c.handleError)(e)}}static async list(){try{q.default.log("Checking login..."),l.default.isLogin(),console.log((0,T.getMessage)("theme.list.title",{store:l.default.currentStore}));let e=await (0,w.getSortedThemeList)(e=>(0,w.themePresenter)(e));q.default.log("Printing sorted theme list..."),e.forEach(e=>{console.log(e)}),q.default.log("Print theme list succeed!")}catch(e){(0,c.handleError)(e)}}watch(){let e=a.default.watch((0,c.getThemeDirectory)(this.cwd),{ignored:/(^|[/\\])\../,interval:1e3,usePolling:!0,ignoreInitial:!0});e.on("ready",()=>{q.default.log("Watching theme files..."),this.queue.on("error",e=>{(0,_.reportThemeWatcherError)(e,{themeOs:"2",operation:"sync"}),e instanceof F.ValidatorError?(e.errors.forEach(e=>{r.error(`${e.filename}: ${e.message.join("\n")}`)}),(0,v.clearAllOra)()):r.error(e.message||e)}),e.on("add",(...e)=>{let t=e[0];q.default.log(`Add theme file: ${t}`),this.shouldWatchFile(t)&&(this.shouldUpdate(t)?this.queue.push(this.onAdd.bind(this,t)):this.sse.broadcast(this.getSseData(t,"add")))}),e.on("change",(...e)=>{let t=e[0];q.default.log(`Change theme file: ${t}`),this.shouldWatchFile(t)&&(this.shouldUpdate(t)?this.queue.push(this.onChange.bind(this,t)):this.sse.broadcast(this.getSseData(t)))}),e.on("unlink",(...e)=>{let t=e[0];q.default.log(`Unlink theme file: ${t}`),this.shouldWatchFile(t)&&(this.shouldUpdate(t)?this.queue.push(this.onUnlink.bind(this,...e)):this.sse.broadcast(this.getSseData(t,"unlink")))})})}shouldWatchFile(e){let t=(0,c.parseFileName)(e,this.cwd),a=this.ignoreFilter.match(t),i=this.includeFilter.match(t);return!a&&i}shouldUpdate(e){let t=(0,c.parseFileName)(e,this.cwd),a=this.updateQueue.find(t);return!a||(this.updateQueue.delete(t),!1)}async onAdd(e){await this.createFile(e),this.sse.broadcast(this.getSseData(e,"add"))}async onChange(e){await this.updateFile(e),this.sse.broadcast(this.getSseData(e))}async onUnlink(e){await this.deleteFile(e),this.sse.broadcast(this.getSseData(e,"unlink"))}async deleteFile(e){let t=(0,c.parseFileName)(e,this.cwd),a=(0,v.createOra)((0,T.getMessage)("theme.serve.syncer.delete_strategy.success",{file_name:t})).start();if(!await this.isRemoteExistsFile(e)){r.warn((0,T.getMessage)("theme.serve.syncer.no_remote_file",{file_name:t}));return}q.default.log(`Delete file: ${t}`),await (0,h.deleteFile)(this.themeId,{fileName:t}),q.default.log(`Delete file (${t}) checksum`),this.uploader.checksums.delete(t),a.succeed()}async updateFile(a){let i=(0,c.parseFileName)(a,this.cwd),[r]=i.split("/"),l=e.default.extname(i);(0,c.checkTemplateFileName)(i);let u=(0,v.createOra)((0,T.getMessage)("theme.serve.syncer.update_strategy.success",{file_name:i})).start();try{if("assets"!==r||g.TEXT_TYPE_EXTNAMES.includes(l)){let{fileContent:e}=(0,c.parseFile)(a,this.cwd);if(!(0,c.checkLayoutFile)(i,e)){u.stop();return}try{await (0,h.getThemeFileDetail)({themeId:this.themeId,fileName:i})}catch(e){await this.createFile(a),u.stop();return}q.default.log(`Update file: ${i}`);let t=await (0,h.updateFile)(this.themeId,{fileName:i,fileContent:e});q.default.log(`Update file (${i}) checksum: ${t.fileContentChecksum}`),this.uploader.checksums.set(i,t.fileContentChecksum)}else{let e=new s.default;e.append("file",t.default.createReadStream(a)),e.append("fileName",i);let r=e.getHeaders();q.default.log(`Upload asset file: ${i}`);let l=await (0,h.uploadFile)(this.themeId,e,{headers:r});q.default.log(`Update file (${i}) checksum: ${l.fileContentChecksum}`),this.uploader.checksums.set(i,l.fileContentChecksum)}u.succeed()}catch(e){throw u.fail(),(0,c.formatThemeFileUploadError)(e,{fileName:i,themeId:this.themeId})}}async createFile(a){let i=(0,c.parseFileName)(a,this.cwd),[r]=i.split("/"),l=e.default.extname(i),u=(0,v.createOra)((0,T.getMessage)("theme.serve.syncer.create_strategy.success",{file_name:i})).start();try{if("assets"!==r||g.TEXT_TYPE_EXTNAMES.includes(l)){let{fileContent:e}=(0,c.parseFile)(a,this.cwd);if(!(0,c.checkLayoutFile)(i,e)){u.stop();return}(0,c.checkTemplateFileName)(i),q.default.log(`Create file: ${i}`);let t=await (0,h.createFile)(this.themeId,{fileName:i,fileContent:e});q.default.log(`Update file (${i}) checksum: ${t.fileContentChecksum}`),this.uploader.checksums.set(i,t.fileContentChecksum)}else{let e=new s.default;e.append("file",t.default.createReadStream(a)),e.append("fileName",i);let r=e.getHeaders();q.default.log(`Upload asset file: ${i}`);let l=await (0,h.uploadFile)(this.themeId,e,{headers:r});q.default.log(`Update file (${i}) checksum: ${l.fileContentChecksum}`),this.uploader.checksums.set(i,l.fileContentChecksum)}u.succeed()}catch(e){throw u.fail(),(0,c.formatThemeFileUploadError)(e,{fileName:i,themeId:this.themeId})}}async isRemoteExistsFile(e){try{let t=(0,c.parseFileName)(e,this.cwd);return await (0,h.getThemeFileDetail)({themeId:this.themeId,fileName:t}),!0}catch(e){return!1}}getSseData(e,t){return"full-page"===this.mode||t&&["add","unlink"].includes(t)?{data:{reload_page:!0}}:{data:{modified:[(0,c.getRelativePath)(e,this.cwd)]}}}constructor({themeId:e,mode:t,editorSync:a,sse:i,updateQueue:s,includeFilter:r,ignoreFilter:l,uploader:u,cwd:n}){super("theme:theme"),O(this,"cwd",""),O(this,"themeId",""),O(this,"queue",void 0),O(this,"mode",void 0),O(this,"sse",void 0),O(this,"editorSync",void 0),O(this,"updateQueue",void 0),O(this,"includeFilter",void 0),O(this,"ignoreFilter",void 0),O(this,"uploader",void 0),this.themeId=e,this.queue=new f.default,this.mode=t,this.sse=i,this.editorSync=a,this.updateQueue=s,this.includeFilter=r,this.ignoreFilter=l,this.uploader=u,this.cwd=n,this.watch()}}async function $(e,t,a,i,s,u,n,o){try{let r=l.default.developmentThemeId,d=new N({themeId:r,mode:e,editorSync:t,sse:a,updateQueue:i,includeFilter:s,ignoreFilter:u,uploader:n,cwd:o});return{themeId:r,themeInstance:d}}catch(e){var d,h;return r.error((null==e?void 0:null===(d=e.response)||void 0===d?void 0:null===(h=d.data)||void 0===h?void 0:h.msg)||(null==e?void 0:e.stack)),(0,E.reportAndExit)(e)}}const R=N;
8
+ //# sourceMappingURL=index.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(exports,{askForPull:()=>a,askForUpdateStrategy:()=>s,askForApplyToAll:()=>l});const e=function(e){return e&&e.__esModule?e:{default:e}}(require("inquirer")),t=require("../../utils/messages"),r=e.default.createPromptModule();async function a(){let{overrideStrategy:e}=await r([{type:"list",name:"overrideStrategy",message:"Your current directory is not empty, Please select how to handle the current directory files",default:"override",choices:[{name:"Override files with the same name",value:"override"},{name:"Clear the current directory and pull remote files",value:"clear"}]}]);return e}async function s(){let{updateStrategy:e}=await r([{type:"list",name:"updateStrategy",message:(0,t.getMessage)("theme.serve.syncer.update_strategy.title_question"),default:"remote",choices:[{name:(0,t.getMessage)("theme.serve.syncer.update_strategy.keep_remote"),value:"remote"},{name:(0,t.getMessage)("theme.serve.syncer.update_strategy.keep_local"),value:"local"}]}]);return e}async function l(e){let{applyToAll:a}=await r([{type:"confirm",name:"applyToAll",message:(0,t.getMessage)("theme.serve.syncer.apply_to_all.title",{count:e}),default:!0}]);return a}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(exports,{askForPull:()=>a,askForUpdateStrategy:()=>s,askForApplyToAll:()=>l});const e=function(e){return e&&e.__esModule?e:{default:e}}(require("inquirer")),t=require("../../utils/messages"),r=e.default.createPromptModule();async function a(){let{overrideStrategy:e}=await r([{type:"list",name:"overrideStrategy",message:"Your current directory is not empty, Please select how to handle the current directory files",default:"override",choices:[{name:"Override files with the same name",value:"override"},{name:"Clear the current directory and pull remote files",value:"clear"}]}]);return e}async function s(){let{updateStrategy:e}=await r([{type:"list",name:"updateStrategy",message:(0,t.getMessage)("theme.serve.syncer.update_strategy.title_question"),default:"remote",choices:[{name:(0,t.getMessage)("theme.serve.syncer.update_strategy.keep_remote"),value:"remote"},{name:(0,t.getMessage)("theme.serve.syncer.update_strategy.keep_local"),value:"local"}]}]);return e}async function l(e){let{applyToAll:a}=await r([{type:"confirm",name:"applyToAll",message:(0,t.getMessage)("theme.serve.syncer.apply_to_all.title",{count:e}),default:!0}]);return a}
2
+ //# sourceMappingURL=inquirer.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>f});const e=c(require("open")),t=c(require("koa")),r=c(require("path")),a=c(require("fs")),s=c(require("koa-ejs")),i=c(require("killable")),l=c(require("inquirer")),n=c(require("../../helpers/config")),o=require("../../utils/messages"),u=require("../../utils/ora-manager");function c(e){return e&&e.__esModule?e:{default:e}}const d=l.default.createPromptModule();class f{static get checkStoreUrl(){let e=encodeURIComponent(`http://127.0.0.1:${f.PORT}`);return`${n.default.currentStore}/admin/checkStore?redirectUrl=${e}`}static get storeOriginUrl(){let e=new URL(f.checkStoreUrl);return e.origin}static async askForCheckStore(){let{immediately:e}=await d([{type:"confirm",name:"immediately",message:(0,o.getMessage)("theme.errors.check_store"),default:!0}]);return e}static async run(){(0,u.clearAllOra)();try{console.log((0,o.getMessage)("theme.errors.checking_store",{check_url:f.checkStoreUrl})),await (0,e.default)(f.checkStoreUrl);let t=await f.startServer();f.saveCurrentStoreCookie(t),f.printResultAndExit()}catch(e){throw Error(e.message||e)}}static printResultAndExit(){console.log((0,o.getMessage)("theme.errors.check_result")),process.exit(1)}static saveCurrentStoreCookie(e){let{loginInfo:t}=n.default,r={...t,a_osudb_verify:e};n.default.saveLoginInfo(r,f.storeOriginUrl)}static async startServer(){return new Promise((e,l)=>{let n=new t.default;(0,s.default)(n,{root:r.default.join(__dirname,"../identity-auth/client"),layout:!1,cache:!1});let o=n.listen(f.PORT);(0,i.default)(o),n.use(async t=>{let s=t.request.query,i=s.a_osudb_verify,n={css:a.default.readFileSync(r.default.join(__dirname,"../identity-auth/client/style.css"))};"string"==typeof i?(t.status=200,n.successful=200===t.status,n.message=`You’ve successfully complete verification. Please try run the previous command if necessary`,await t.render("index",n),e(i)):(t.status=403,n.successful=200===t.status,n.message="Verification failed. Please retry again.",await t.render("index",n),l(Error("Verification failed. Please retry again!"))),setImmediate(()=>{var e;null==o||null===(e=o.kill)||void 0===e||e.call(o)})})})}}!function(e,t,r){t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r}(f,"PORT",2345);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>g});const e=d(require("open")),r=d(require("koa")),t=d(require("path")),o=d(require("fs")),s=d(require("koa-ejs")),a=d(require("killable")),i=d(require("inquirer")),n=d(require("../../helpers/config")),l=require("../../helpers/monitoring"),u=require("../../utils/messages"),c=require("../../utils/ora-manager");function d(e){return e&&e.__esModule?e:{default:e}}const f=i.default.createPromptModule();function h(e){return e instanceof Error?e:Error(String(e))}class g{static get checkStoreUrl(){let e=encodeURIComponent(`http://127.0.0.1:${g.PORT}`);return`${n.default.currentStore}/admin/checkStore?redirectUrl=${e}`}static get storeOriginUrl(){let e=new URL(g.checkStoreUrl);return e.origin}static async askForCheckStore(){let{immediately:e}=await f([{type:"confirm",name:"immediately",message:(0,u.getMessage)("theme.errors.check_store"),default:!0}]);return e}static async run(){(0,c.clearAllOra)();try{console.log((0,u.getMessage)("theme.errors.checking_store",{check_url:g.checkStoreUrl})),await (0,e.default)(g.checkStoreUrl);let r=await g.startServer();g.saveCurrentStoreCookie(r),g.printResultAndExit()}catch(e){throw h(e)}}static printResultAndExit(){console.log((0,u.getMessage)("theme.errors.check_result")),process.exit(1)}static saveCurrentStoreCookie(e){let{loginInfo:r}=n.default,t={...r,a_osudb_verify:e};n.default.saveLoginInfo(t,g.storeOriginUrl)}static async startServer(){return new Promise((e,i)=>{let n;let u=new r.default,c=!1,d=!1,f=()=>{d||(d=!0,setImmediate(()=>{try{(null==n?void 0:n.kill)?n.kill():null==n||n.close()}catch(e){}}))},m=r=>{c||(c=!0,f(),e(r))},p=(e,{shouldReport:r=!1,ctx:t}={})=>{if(c)return;c=!0;let o=h(e);r&&function(e,r){try{var t;let o=null==r?void 0:null===(t=r.method)||void 0===t?void 0:t.toUpperCase(),s=function(e){try{var r;return null==e?void 0:null===(r=e.path)||void 0===r?void 0:r.slice(0,1024)}catch(e){return}}(r),a=function(e){var r;let t=null!==(r=e.status)&&void 0!==r?r:e.statusCode;return"number"==typeof t&&t>=400&&t<=599?t:500}(e);(0,l.reportBugOnce)(e,{tags:{error_source:"theme-check-store",...o?{http_method:o}:{},http_status:String(a)},extra:{koa_request:{...o?{method:o}:{},...s?{path:s}:{},status:a,...e.code?{errorCode:e.code}:{}}}})}catch(e){}}(o,t),f(),i(o)};u.on("error",(e,r)=>{let t=h(e);u.onerror(t),p(t,{shouldReport:!0,ctx:r})});try{(0,s.default)(u,{root:t.default.join(__dirname,"../identity-auth/client"),layout:!1,cache:!1}),u.use(async e=>{let r=e.request.query,s=r.a_osudb_verify,a={css:o.default.readFileSync(t.default.join(__dirname,"../identity-auth/client/style.css"))};"string"==typeof s?(e.status=200,a.successful=200===e.status,a.message=`You’ve successfully complete verification. Please try run the previous command if necessary`,await e.render("index",a),m(s)):(e.status=403,a.successful=200===e.status,a.message="Verification failed. Please retry again.",await e.render("index",a),p(Error("Verification failed. Please retry again!")))}),n=u.listen(g.PORT),(0,a.default)(n),n.once("error",e=>{let r=h(e);u.onerror(r),p(r,{shouldReport:!0})})}catch(r){let e=h(r);u.onerror(e),p(e,{shouldReport:!0})}})}}!function(e,r,t){r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t}(g,"PORT",2345);
2
+ //# sourceMappingURL=no-second-check.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>s});const e=require("lodash"),t=function(e){return e&&e.__esModule?e:{default:e}}(require("../../utils/colors"));function r(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}class s{toString(){return`${this.method} ${this.file.fileName}`}asErrorMessage(){return this.asMessageWith("error")}asSyncMessage(){return this.asMessageWith("synced")}asFixedMessage(){return this.asMessageWith("fixed")}asMessageWith(r){let s=new Date().toTimeString().slice(0,8),i="error"===r?"ERROR":(0,e.capitalize)(r);return`${t.default.gray(`• ${s}`)} ${i} ${t.default.gray(`\xbb ${this.method} ${this.file.fileName}`)}`}constructor(e,t){r(this,"method",void 0),r(this,"file",void 0),this.method=e,this.file=t}}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>s});const e=require("lodash"),t=function(e){return e&&e.__esModule?e:{default:e}}(require("../../utils/colors"));function r(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}class s{toString(){return`${this.method} ${this.file.fileName}`}asErrorMessage(){return this.asMessageWith("error")}asSyncMessage(){return this.asMessageWith("synced")}asFixedMessage(){return this.asMessageWith("fixed")}asMessageWith(r){let s=new Date().toTimeString().slice(0,8),i="error"===r?"ERROR":(0,e.capitalize)(r);return`${t.default.gray(`• ${s}`)} ${i} ${t.default.gray(`\xbb ${this.method} ${this.file.fileName}`)}`}constructor(e,t){r(this,"method",void 0),r(this,"file",void 0),this.method=e,this.file=t}}
2
+ //# sourceMappingURL=operation.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>y});const e=h(require("path")),t=h(require("fast-glob")),i=h(require("fs-extra")),r=h(require("adm-zip")),l=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var i=p(t);if(i&&i.has(e))return i.get(e);var r={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var s=l?Object.getOwnPropertyDescriptor(e,a):null;s&&(s.get||s.set)?Object.defineProperty(r,a,s):r[a]=e[a]}return r.default=e,i&&i.set(e,r),r}(require("../../utils/logger")),a=require("./utils"),s=h(require("../../utils/debug")),n=h(require("../../utils/colors")),u=require("../../utils/fs"),o=h(require("./index")),c=require("../../utils/path"),d=h(require("../../utils/winston"));function f(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function h(e){return e&&e.__esModule?e:{default:e}}function p(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,i=new WeakMap;return(p=function(e){return e?i:t})(e)}const g=/^[/\\]?(assets|config|layout|locales|sections|snippets|templates)/,m=/^[/\\]?(layout|sections|snippets|templates)/,w=/^[/\\]?(templates|sections)/;class y extends s.default{setFilter(e,t){this.includeFilter=e,this.ignoreFilter=t}async pack({silent:a=!1}){let s=new r.default,c=t.default.sync("**/*",{cwd:this.cwd,onlyDirectories:!0,deep:1}),f=t.default.sync("**/*",{cwd:this.cwd});return d.default.log("Check theme structure..."),await o.default.checkThemeStandardStructure(c),d.default.log("Pack theme..."),f.forEach(t=>{let i=e.default.dirname(t);if(w.test(t)&&t.endsWith(".json")||(!m.test(t)||t.endsWith(".html"))&&g.test(t)&&!t.includes(".map")){let r=e.default.join(this.cwd,t);if(a||l.info(`adding ${n.default.magenta(t)}`,!0),this.log(`adding ${n.default.magenta(t)}`),this.includeFilter&&this.ignoreFilter){let e=this.ignoreFilter.match(t),l=this.includeFilter.match(t);!e&&l&&s.addLocalFile(r,i)}else s.addLocalFile(r,i)}}),(0,u.pathExists)(this.targetZipFilePath)&&i.default.unlinkSync(this.targetZipFilePath),d.default.log(`Write zip file to ${this.targetZipFilePath}...`),s.writeZip(this.targetZipFilePath,e=>{if(e)throw e}),d.default.log(`Write zip file to ${this.targetZipFilePath} success`),this.targetZipFilePath}get targetZipFilePath(){let t=(0,a.getThemeInfo)(this.cwd),i=`${t.theme_name}-${t.theme_version}.zip`;return e.default.join(this.cwd,i)}constructor(e){super("theme:package"),f(this,"cwd",(0,c.cwd)()),f(this,"includeFilter",null),f(this,"ignoreFilter",null),e&&(this.cwd=e)}}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>y});const e=h(require("path")),t=h(require("fast-glob")),i=h(require("fs-extra")),r=h(require("adm-zip")),l=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var i=p(t);if(i&&i.has(e))return i.get(e);var r={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var s=l?Object.getOwnPropertyDescriptor(e,a):null;s&&(s.get||s.set)?Object.defineProperty(r,a,s):r[a]=e[a]}return r.default=e,i&&i.set(e,r),r}(require("../../utils/logger")),a=require("./utils"),s=h(require("../../utils/debug")),n=h(require("../../utils/colors")),u=require("../../utils/fs"),o=h(require("./index")),c=require("../../utils/path"),d=h(require("../../utils/winston"));function f(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function h(e){return e&&e.__esModule?e:{default:e}}function p(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,i=new WeakMap;return(p=function(e){return e?i:t})(e)}const g=/^[/\\]?(assets|config|layout|locales|sections|snippets|templates)/,m=/^[/\\]?(layout|sections|snippets|templates)/,w=/^[/\\]?(templates|sections)/;class y extends s.default{setFilter(e,t){this.includeFilter=e,this.ignoreFilter=t}async pack({silent:a=!1}){let s=new r.default,c=t.default.sync("**/*",{cwd:this.cwd,onlyDirectories:!0,deep:1}),f=t.default.sync("**/*",{cwd:this.cwd});return d.default.log("Check theme structure..."),await o.default.checkThemeStandardStructure(c),d.default.log("Pack theme..."),f.forEach(t=>{let i=e.default.dirname(t);if(w.test(t)&&t.endsWith(".json")||(!m.test(t)||t.endsWith(".html"))&&g.test(t)&&!t.includes(".map")){let r=e.default.join(this.cwd,t);if(a||l.info(`adding ${n.default.magenta(t)}`,!0),this.log(`adding ${n.default.magenta(t)}`),this.includeFilter&&this.ignoreFilter){let e=this.ignoreFilter.match(t),l=this.includeFilter.match(t);!e&&l&&s.addLocalFile(r,i)}else s.addLocalFile(r,i)}}),(0,u.pathExists)(this.targetZipFilePath)&&i.default.unlinkSync(this.targetZipFilePath),d.default.log(`Write zip file to ${this.targetZipFilePath}...`),s.writeZip(this.targetZipFilePath,e=>{if(e)throw e}),d.default.log(`Write zip file to ${this.targetZipFilePath} success`),this.targetZipFilePath}get targetZipFilePath(){let t=(0,a.getThemeInfo)(this.cwd),i=`${t.theme_name}-${t.theme_version}.zip`;return e.default.join(this.cwd,i)}constructor(e){super("theme:package"),f(this,"cwd",(0,c.cwd)()),f(this,"includeFilter",null),f(this,"ignoreFilter",null),e&&(this.cwd=e)}}
2
+ //# sourceMappingURL=package.js.map
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"createPreviewHttpClient",{enumerable:!0,get:()=>n});const e=p(require("https")),t=p(require("axios")),r=p(require("https-proxy-agent")),o=require("proxy-from-env");function p(e){return e&&e.__esModule?e:{default:e}}function n(p){let n;let u=new URL(p);if("https:"!==u.protocol)return t.default.create();let l=(0,o.getProxyForUrl)(u.href);if(!l)return t.default.create({proxy:!1,httpsAgent:new e.default.Agent({rejectUnauthorized:!1})});try{n=new URL(l)}catch(e){throw Error("代理地址格式无效")}if(n.username||n.password)throw Error("暂不支持带认证信息的代理地址");let{protocol:s}=n;if("http:"!==s&&"https:"!==s)throw Error(`不支持的代理协议:${s}`);return t.default.create({proxy:!1,httpsAgent:(0,r.default)({host:n.hostname.replace(/^\[|\]$/g,""),port:n.port,protocol:s,..."https:"===s?{ALPNProtocols:["http/1.1"]}:{}})})}
2
+ //# sourceMappingURL=preview-http-client.js.map
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,r){for(var t in r)Object.defineProperty(e,t,{enumerable:!0,get:r[t]})}(exports,{getXResponseId:()=>t,formatNetworkProxyError:()=>o,shouldSuppressThemeProxyWarning:()=>s,formatNonStart20ProxyError:()=>n,reportNonStart20ProxyError:()=>i,reportNetworkProxyError:()=>u});const e=require("../../helpers/monitoring"),r=require("../../utils/messages");function t(e){return e&&(e["x-response-id"]||e["X-Response-Id"])||""}function o(e){let r=e instanceof Error?e.message:String(e),t=e&&"object"==typeof e?Reflect.get(e,"code"):void 0;return"string"==typeof t||"number"==typeof t?`${t}: ${r}`:r}function s(e,r){return 400===r&&"/eclytics/o.gif"===e||502===r&&e.startsWith("/api/product-plugin/")||404===r&&(e.endsWith(".map")||e.endsWith("/manifest.json")||e.endsWith(".webmanifest")||e.endsWith("/service-worker.js")||e.endsWith("/apple-touch-icon.png")||e.endsWith("/apple-touch-icon-precomposed.png")||e.endsWith("/.well-known/appspecific/com.chrome.devtools.json"))}function n(e){let o=t(e.headers)||"-",s="string"==typeof e.requestQuery?e.requestQuery:JSON.stringify(e.requestQuery,null,2);return(0,r.getMessage)("theme.serve.error.non_start_20_error",{errorCode:e.errorCode,requestUrl:e.requestUrl,requestQuery:s,responseId:o})}function i(r){try{var o;let s=t(r.headers)||"-",n=Error(`theme serve proxy non-2xx: status=${r.errorCode} url=${r.requestUrl} x-response-id=${s}`),i={status:Number(r.errorCode),data:r.responseData,headers:null!==(o=r.headers)&&void 0!==o?o:{},config:{method:r.method,url:r.requestUrl}};(0,e.reportHttpError)(n,{response:i,source:"theme-proxy",...r.level?{level:r.level}:{}})}catch(e){}}function u({error:r,requestUrl:t,method:o}){try{let s=Error(r instanceof Error?r.message:String(r));r instanceof Error&&(s.stack=r.stack),r&&"object"==typeof r&&"code"in r&&("string"==typeof r.code||"number"==typeof r.code)&&(s.code=r.code),(0,e.reportHttpError)(s,{requestConfig:{method:o,url:t},source:"theme-proxy"})}catch(e){}}
2
+ //# sourceMappingURL=proxy-error.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"PullService",{enumerable:!0,get:()=>q});const e=T(require("fs-extra")),t=T(require("path")),r=T(require("progress")),i=T(require("adm-zip")),l=T(require("../../helpers/config")),s=require("./const"),o=T(require("../../utils/logger")),n=require("./api"),a=require("./utils"),d=T(require("./choose-theme-list")),u=T(require("../../utils/ignore-filter")),h=T(require("./index")),c=T(require("../../utils/include-filter")),m=T(require("../../utils/debug")),f=require("./inquirer"),p=require("../../utils/ora-manager"),w=require("../../utils/path"),g=require("../../utils/error"),v=T(require("../../utils/check-theme-type-version")),E=T(require("../../utils/winston"));function y(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function T(e){return e&&e.__esModule?e:{default:e}}class q extends m.default{get isEmptyDir(){return(0,a.isEmptyDir)(!0,this.cwd)}async pull(){let{themeId:e}=this;if(e){await this.beforePull(),E.default.log(`Downloading theme (${e})...`);let{fileName:t}=await this.processDownloadTheme(e);E.default.log(`Unzipping theme (${t})...`),this.unzipTheme(t),(0,v.default)(this.cwd),E.default.log(`Theme (${e}) pulled successfully`),o.default.success("Theme pulled successfully")}else throw new g.AbortError(s.ERRORS.THEME_ID_NOT_EXIST)}async beforePull(){if(this.isEmptyDir||this.nodelete)return Promise.resolve();let t=await (0,f.askForPull)();return"clear"===t&&(E.default.log("Clear local theme files..."),e.default.emptyDirSync(this.cwd)),Promise.resolve()}unzipTheme(r){let l=t.default.join(this.cwd,r);if(e.default.existsSync(l)){try{let e=new i.default(l),t=e.getEntries();t.forEach(t=>{let r=t.entryName,i=this.ignoreFilter.match(r),l=this.includeFilter.match(r);!i&&l&&e.extractEntryTo(r,this.cwd,!0,!0)})}catch(e){throw new g.AbortError(e.message,s.ERRORS.UNZIP_THEME_FAILED)}e.default.removeSync(l)}}downloadTheme(e,t){return new Promise(async(r,i)=>{let l=await (0,n.downloadThemePackage)(e);if(t.succeed().clear(),200===l.status){let t=l.headers,o=t["theme-status"],n=t["theme-develop-type"];if(void 0===o||void 0===n){i(new g.AbortError(s.ERRORS.THEME_ID_NOT_EXIST));return}this.onDownloadProgress(l,e).then(e=>r(e)).catch(i)}else i(new g.AbortError(s.ERRORS.DOWNLOAD_THEME_FAILED))})}onDownloadProgress(i,o){return new Promise((n,d)=>{var u,h;let c;let m=i.headers["theme-status"],f=i.headers["theme-develop-type"],w=i.headers["content-length"]||0,g=i.headers["content-disposition"],v=null!==(h=null===(u=/fileName=([^;]+)/.exec(g))||void 0===u?void 0:u[1])&&void 0!==h?h:s.DEFAULT_ZIP_NAME;v=decodeURIComponent(v);let E=t.default.basename(v,".zip"),y=e.default.createWriteStream(t.default.join(this.cwd,v)),T=(0,a.getKeyMessage)(`Pulling theme files from ${decodeURIComponent(E)} (#${o}) on ${l.default.currentStore}`);w?(c=new r.default((0,a.getKeyMessage)("[:bar] :rate/bps :percent :etas"),{complete:"=",incomplete:" ",total:+w,width:50}),console.log(T)):c=(0,p.createOra)({text:T,spinner:"bouncingBar"}),i.data.pipe(y),i.data.on("data",e=>{w?c.tick(e.length):c.start()}),i.data.on("error",e=>{w||c.fail(),d(e)}),i.data.on("end",()=>{w||c.succeed(),y.on("finish",()=>{let r=e.default.statSync(t.default.join(this.cwd,v)).size;this.log("fileSize: %O",r),0===r?(w||c.fail("Downloaded file is empty"),d(Error("Downloaded file is empty"))):n({themeStatus:m,themeType:f,fileName:v})})})})}async processDownloadTheme(e){let t=(0,p.createOra)("Fetching the theme package file...");try{t.start();let{fileName:r}=await this.downloadTheme(e,t);return await Promise.resolve({fileName:r,themeId:e})}catch(e){return t.isSpinning&&t.fail().clear(),Promise.reject(e.message||e)}}async prepareTheme(){if(this.themeId)return this.themeId;if(this.live){let e=await h.default.getLiveThemeId();if(!e)throw new g.AbortError('Theme "live" doesn\'t exist');return e}if(this.development){let e=await h.default.getDevelopmentId();if(!e)throw new g.AbortError('Theme "development" doesn\'t exist');return e}let{themeId:e}=await (0,d.default)("pull");return e}constructor(e,t=(0,w.cwd)()){var r,i,l,s;super("theme:pull"),y(this,"cwd",void 0),y(this,"themeId",void 0),y(this,"live",void 0),y(this,"development",void 0),y(this,"includeFilter",void 0),y(this,"ignoreFilter",void 0),y(this,"nodelete",void 0),this.cwd=t,this.themeId=e.theme||"",this.live=null!==(r=e.live)&&void 0!==r&&r,this.development=null!==(i=e.development)&&void 0!==i&&i,this.nodelete=e.nodelete;let o=null!==(l=e.only)&&void 0!==l?l:[],n=null!==(s=e.ignore)&&void 0!==s?s:[];this.log("includes: %O",o),this.log("ignores: %O",n),this.includeFilter=new c.default(o,this.cwd),this.ignoreFilter=new u.default(n,this.cwd)}}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"PullService",{enumerable:!0,get:()=>q});const e=T(require("fs-extra")),t=T(require("path")),r=T(require("progress")),i=T(require("adm-zip")),l=T(require("../../helpers/config")),s=require("./const"),o=T(require("../../utils/logger")),n=require("./api"),a=require("./utils"),d=T(require("./choose-theme-list")),u=T(require("../../utils/ignore-filter")),h=T(require("./index")),c=T(require("../../utils/include-filter")),m=T(require("../../utils/debug")),f=require("./inquirer"),p=require("../../utils/ora-manager"),w=require("../../utils/path"),g=require("../../utils/error"),v=T(require("../../utils/check-theme-type-version")),E=T(require("../../utils/winston"));function y(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function T(e){return e&&e.__esModule?e:{default:e}}class q extends m.default{get isEmptyDir(){return(0,a.isEmptyDir)(!0,this.cwd)}async pull(){let{themeId:e}=this;if(e){await this.beforePull(),E.default.log(`Downloading theme (${e})...`);let{fileName:t}=await this.processDownloadTheme(e);E.default.log(`Unzipping theme (${t})...`),this.unzipTheme(t),(0,v.default)(this.cwd),E.default.log(`Theme (${e}) pulled successfully`),o.default.success("Theme pulled successfully")}else throw new g.AbortError(s.ERRORS.THEME_ID_NOT_EXIST)}async beforePull(){if(this.isEmptyDir||this.nodelete)return Promise.resolve();let t=await (0,f.askForPull)();return"clear"===t&&(E.default.log("Clear local theme files..."),e.default.emptyDirSync(this.cwd)),Promise.resolve()}unzipTheme(r){let l=t.default.join(this.cwd,r);if(e.default.existsSync(l)){try{let e=new i.default(l),t=e.getEntries();t.forEach(t=>{let r=t.entryName,i=this.ignoreFilter.match(r),l=this.includeFilter.match(r);!i&&l&&e.extractEntryTo(r,this.cwd,!0,!0)})}catch(e){throw new g.AbortError(e.message,s.ERRORS.UNZIP_THEME_FAILED)}e.default.removeSync(l)}}downloadTheme(e,t){return new Promise(async(r,i)=>{let l=await (0,n.downloadThemePackage)(e);if(t.succeed().clear(),200===l.status){let t=l.headers,o=t["theme-status"],n=t["theme-develop-type"];if(void 0===o||void 0===n){i(new g.AbortError(s.ERRORS.THEME_ID_NOT_EXIST));return}this.onDownloadProgress(l,e).then(e=>r(e)).catch(i)}else i(new g.AbortError(s.ERRORS.DOWNLOAD_THEME_FAILED))})}onDownloadProgress(i,o){return new Promise((n,d)=>{var u,h;let c;let m=i.headers["theme-status"],f=i.headers["theme-develop-type"],w=i.headers["content-length"]||0,g=i.headers["content-disposition"],v=null!==(h=null===(u=/fileName=([^;]+)/.exec(g))||void 0===u?void 0:u[1])&&void 0!==h?h:s.DEFAULT_ZIP_NAME;v=decodeURIComponent(v);let E=t.default.basename(v,".zip"),y=e.default.createWriteStream(t.default.join(this.cwd,v)),T=(0,a.getKeyMessage)(`Pulling theme files from ${decodeURIComponent(E)} (#${o}) on ${l.default.currentStore}`);w?(c=new r.default((0,a.getKeyMessage)("[:bar] :rate/bps :percent :etas"),{complete:"=",incomplete:" ",total:+w,width:50}),console.log(T)):c=(0,p.createOra)({text:T,spinner:"bouncingBar"}),i.data.pipe(y),i.data.on("data",e=>{w?c.tick(e.length):c.start()}),i.data.on("error",e=>{w||c.fail(),d(e)}),i.data.on("end",()=>{w||c.succeed(),y.on("finish",()=>{let r=e.default.statSync(t.default.join(this.cwd,v)).size;this.log("fileSize: %O",r),0===r?(w||c.fail("Downloaded file is empty"),d(Error("Downloaded file is empty"))):n({themeStatus:m,themeType:f,fileName:v})})})})}async processDownloadTheme(e){let t=(0,p.createOra)("Fetching the theme package file...");try{t.start();let{fileName:r}=await this.downloadTheme(e,t);return await Promise.resolve({fileName:r,themeId:e})}catch(e){return t.isSpinning&&t.fail().clear(),Promise.reject(e.message||e)}}async prepareTheme(){if(this.themeId)return this.themeId;if(this.live){let e=await h.default.getLiveThemeId();if(!e)throw new g.AbortError('Theme "live" doesn\'t exist');return e}if(this.development){let e=await h.default.getDevelopmentId();if(!e)throw new g.AbortError('Theme "development" doesn\'t exist');return e}let{themeId:e}=await (0,d.default)("pull");return e}constructor(e,t=(0,w.cwd)()){var r,i,l,s;super("theme:pull"),y(this,"cwd",void 0),y(this,"themeId",void 0),y(this,"live",void 0),y(this,"development",void 0),y(this,"includeFilter",void 0),y(this,"ignoreFilter",void 0),y(this,"nodelete",void 0),this.cwd=t,this.themeId=e.theme||"",this.live=null!==(r=e.live)&&void 0!==r&&r,this.development=null!==(i=e.development)&&void 0!==i&&i,this.nodelete=e.nodelete;let o=null!==(l=e.only)&&void 0!==l?l:[],n=null!==(s=e.ignore)&&void 0!==s?s:[];this.log("includes: %O",o),this.log("ignores: %O",n),this.includeFilter=new c.default(o,this.cwd),this.ignoreFilter=new u.default(n,this.cwd)}}
2
+ //# sourceMappingURL=pull.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var i in t)Object.defineProperty(e,i,{enumerable:!0,get:t[i]})}(exports,{PushService:()=>T,pushAction:()=>q});const e=b(require("../../helpers/config")),t=require("./types"),i=require("./utils"),s=b(require("../../utils/print-preview")),r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var i=P(t);if(i&&i.has(e))return i.get(e);var s={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var l=r?Object.getOwnPropertyDescriptor(e,u):null;l&&(l.get||l.set)?Object.defineProperty(s,u,l):s[u]=e[u]}return s.default=e,i&&i.set(e,s),s}(require("./choose-theme-list")),u=b(require("./index")),l=b(require("../../utils/ignore-filter")),n=b(require("../../utils/include-filter")),a=require("../../utils/system"),o=b(require("../../utils/debug")),h=require("../../utils/output"),d=require("../../utils/ui/ui"),m=require("../../utils/parse-options"),c=b(require("./uploader")),f=require("../../utils/path"),p=require("../../utils/error"),v=b(require("../../utils/winston")),g=require("../../utils/check-theme-type-version"),w=b(require("./3.0/push"));function y(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function b(e){return e&&e.__esModule?e:{default:e}}function P(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,i=new WeakMap;return(P=function(e){return e?i:t})(e)}class T extends o.default{async confirmPushMode(){if(this.includes.length>0||this.ignores.length>0)return;let{mode:e}=await (0,r.prompt)([{type:"list",name:"mode",message:"Please choose an action (Use arrow keys)",default:"overwrite",choices:[{name:"Push all static files (safe mode)",value:"safe"},{name:"Push all files (overwrite existing ones)",value:"overwrite"}]}]);({safe:()=>{this.ignoreFilter=new l.default(["**/*.json"],this.cwd),this.uploader=new c.default({ignore:this.ignoreFilter,include:this.includeFilter},!this.nodelete,this.cwd)},overwrite:()=>{}})[e]()}async push(){v.default.log("Prepare push theme...");let e=await this.prepareTheme();e&&(await this.confirmPushMode(),v.default.log(`Current push theme info: ${JSON.stringify(e)}`),await this.pushThemePackage(e))}async prepareTheme(){if(this.themeId){let e=await u.default.getThemeInfo(this.themeId);return{id:this.themeId,name:e.name,status:e.status}}if(this.live){let e=await u.default.getLiveThemeId();if(!e)throw new p.AbortError('Theme "live" doesn\'t exist, please try again!');return{id:e,name:"",status:t.EThemeStatus.Published}}if(this.development){let e=await u.default.getValidDevelopmentInfo();return e}if(this.unpublished){let e=await T.getThemeNamePrompt();return{id:"",name:e,status:t.EThemeStatus.Unpublished}}let{themeId:e,isPublished:i,status:s}=await (0,r.default)("push");if(i){if(this.allowAlive)return{id:e,name:"",status:t.EThemeStatus.Published};let i=await T.confirmOverrideStoreTheme();return i?{id:e,name:"",status:t.EThemeStatus.Published}:null}return{id:e,name:"",status:s}}async pushThemePackage(t){v.default.log("Get theme info from local...");let r=(0,i.getThemeInfo)(this.cwd),u=t.id?{themeId:t.id,status:t.status}:{themeName:t.name,status:t.status};u.themeName&&(v.default.log(`Create a new theme base on ${u.themeName}...`),u.themeId=await c.default.createNewTheme(u.themeName));let l=u.themeId;console.log((0,i.getKeyMessage)(`Pushing theme files to ${decodeURIComponent(t.id?null==r?void 0:r.theme_name:t.name)} ${t.id?`(#${t.id}) `:""}on ${e.default.currentStore}`)),v.default.log(`Pushing theme (${l}) files...`),await this.uploader.upload(l,u.status),this.live?(v.default.log(`Publish theme (${l}) to live successfully`),(0,h.outputSuccess)(`Your theme is now live at ${e.default.currentStore}`)):(v.default.log(`Push theme (${l}) successfully`),(0,h.outputSuccess)("Your theme was pushed successfully"),(0,s.default)(l))}static async confirmOverrideStoreTheme(){let{isOverride:e}=await (0,r.prompt)([{type:"confirm",name:"isOverride",message:"Are you sure you want to push to your live theme?",default:!0}]);return e}static async getThemeNamePrompt(){return(0,d.renderTextPrompt)({message:"Please input the unpublished theme name",validate:e=>{if(!e.trim())return"Theme name cannot be empty"}})}constructor(e,t=(0,f.cwd)()){var i,s,r,u;super("theme:push"),y(this,"cwd",void 0),y(this,"themeId",void 0),y(this,"live",void 0),y(this,"development",void 0),y(this,"allowAlive",void 0),y(this,"publish",void 0),y(this,"unpublished",void 0),y(this,"includeFilter",void 0),y(this,"ignoreFilter",void 0),y(this,"uploader",void 0),y(this,"nodelete",void 0),y(this,"includes",void 0),y(this,"ignores",void 0),this.cwd=t,this.themeId=e.theme||"",this.live=null!==(i=e.live)&&void 0!==i&&i,this.development=null!==(s=e.development)&&void 0!==s&&s,this.allowAlive=e.allowLive,this.unpublished=e.unpublished,this.nodelete=e.nodelete,this.includes=null!==(r=e.only)&&void 0!==r?r:[],this.ignores=null!==(u=e.ignore)&&void 0!==u?u:[],this.log("includes: %O",this.includes),this.log("ignores: %O",this.ignores),this.includeFilter=new n.default(this.includes,this.cwd),this.ignoreFilter=new l.default(this.ignores,this.cwd),this.uploader=new c.default({ignore:this.ignoreFilter,include:this.includeFilter},!this.nodelete,t)}}async function q(t,s){try{let i=await (0,m.parseOptions)(t,s),r=i.path;v.default.log("Checking login..."),e.default.isLogin();let u=(0,g.getThemeTypeVersion)(r);(0,a.rmZipOnExit)(void 0,r),3===u?await new w.default(i,r).push():await new T(i,r).push()}catch(e){(0,i.handleError)(e)}}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var i in t)Object.defineProperty(e,i,{enumerable:!0,get:t[i]})}(exports,{PushService:()=>T,pushAction:()=>q});const e=b(require("../../helpers/config")),t=require("./types"),i=require("./utils"),s=b(require("../../utils/print-preview")),r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var i=P(t);if(i&&i.has(e))return i.get(e);var s={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var l=r?Object.getOwnPropertyDescriptor(e,u):null;l&&(l.get||l.set)?Object.defineProperty(s,u,l):s[u]=e[u]}return s.default=e,i&&i.set(e,s),s}(require("./choose-theme-list")),u=b(require("./index")),l=b(require("../../utils/ignore-filter")),n=b(require("../../utils/include-filter")),a=require("../../utils/system"),o=b(require("../../utils/debug")),h=require("../../utils/output"),d=require("../../utils/ui/ui"),m=require("../../utils/parse-options"),c=b(require("./uploader")),f=require("../../utils/path"),p=require("../../utils/error"),v=b(require("../../utils/winston")),g=require("../../utils/check-theme-type-version"),w=b(require("./3.0/push"));function y(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function b(e){return e&&e.__esModule?e:{default:e}}function P(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,i=new WeakMap;return(P=function(e){return e?i:t})(e)}class T extends o.default{async confirmPushMode(){if(this.includes.length>0||this.ignores.length>0)return;let{mode:e}=await (0,r.prompt)([{type:"list",name:"mode",message:"Please choose an action (Use arrow keys)",default:"overwrite",choices:[{name:"Push all static files (safe mode)",value:"safe"},{name:"Push all files (overwrite existing ones)",value:"overwrite"}]}]);({safe:()=>{this.ignoreFilter=new l.default(["**/*.json"],this.cwd),this.uploader=new c.default({ignore:this.ignoreFilter,include:this.includeFilter},!this.nodelete,this.cwd)},overwrite:()=>{}})[e]()}async push(){v.default.log("Prepare push theme...");let e=await this.prepareTheme();e&&(await this.confirmPushMode(),v.default.log(`Current push theme info: ${JSON.stringify(e)}`),await this.pushThemePackage(e))}async prepareTheme(){if(this.themeId){let e=await u.default.getThemeInfo(this.themeId);return{id:this.themeId,name:e.name,status:e.status}}if(this.live){let e=await u.default.getLiveThemeId();if(!e)throw new p.AbortError('Theme "live" doesn\'t exist, please try again!');return{id:e,name:"",status:t.EThemeStatus.Published}}if(this.development){let e=await u.default.getValidDevelopmentInfo();return e}if(this.unpublished){let e=await T.getThemeNamePrompt();return{id:"",name:e,status:t.EThemeStatus.Unpublished}}let{themeId:e,isPublished:i,status:s}=await (0,r.default)("push");if(i){if(this.allowAlive)return{id:e,name:"",status:t.EThemeStatus.Published};let i=await T.confirmOverrideStoreTheme();return i?{id:e,name:"",status:t.EThemeStatus.Published}:null}return{id:e,name:"",status:s}}async pushThemePackage(t){v.default.log("Get theme info from local...");let r=(0,i.getThemeInfo)(this.cwd),u=t.id?{themeId:t.id,status:t.status}:{themeName:t.name,status:t.status};u.themeName&&(v.default.log(`Create a new theme base on ${u.themeName}...`),u.themeId=await c.default.createNewTheme(u.themeName));let l=u.themeId;console.log((0,i.getKeyMessage)(`Pushing theme files to ${decodeURIComponent(t.id?null==r?void 0:r.theme_name:t.name)} ${t.id?`(#${t.id}) `:""}on ${e.default.currentStore}`)),v.default.log(`Pushing theme (${l}) files...`),await this.uploader.upload(l,u.status),this.live?(v.default.log(`Publish theme (${l}) to live successfully`),(0,h.outputSuccess)(`Your theme is now live at ${e.default.currentStore}`)):(v.default.log(`Push theme (${l}) successfully`),(0,h.outputSuccess)("Your theme was pushed successfully"),(0,s.default)(l))}static async confirmOverrideStoreTheme(){let{isOverride:e}=await (0,r.prompt)([{type:"confirm",name:"isOverride",message:"Are you sure you want to push to your live theme?",default:!0}]);return e}static async getThemeNamePrompt(){return(0,d.renderTextPrompt)({message:"Please input the unpublished theme name",validate:e=>{if(!e.trim())return"Theme name cannot be empty"}})}constructor(e,t=(0,f.cwd)()){var i,s,r,u;super("theme:push"),y(this,"cwd",void 0),y(this,"themeId",void 0),y(this,"live",void 0),y(this,"development",void 0),y(this,"allowAlive",void 0),y(this,"publish",void 0),y(this,"unpublished",void 0),y(this,"includeFilter",void 0),y(this,"ignoreFilter",void 0),y(this,"uploader",void 0),y(this,"nodelete",void 0),y(this,"includes",void 0),y(this,"ignores",void 0),this.cwd=t,this.themeId=e.theme||"",this.live=null!==(i=e.live)&&void 0!==i&&i,this.development=null!==(s=e.development)&&void 0!==s&&s,this.allowAlive=e.allowLive,this.unpublished=e.unpublished,this.nodelete=e.nodelete,this.includes=null!==(r=e.only)&&void 0!==r?r:[],this.ignores=null!==(u=e.ignore)&&void 0!==u?u:[],this.log("includes: %O",this.includes),this.log("ignores: %O",this.ignores),this.includeFilter=new n.default(this.includes,this.cwd),this.ignoreFilter=new l.default(this.ignores,this.cwd),this.uploader=new c.default({ignore:this.ignoreFilter,include:this.includeFilter},!this.nodelete,t)}}async function q(t,s){try{let i=await (0,m.parseOptions)(t,s),r=i.path;v.default.log("Checking login..."),e.default.isLogin();let u=(0,g.getThemeTypeVersion)(r);(0,a.rmZipOnExit)(void 0,r),3===u?await new w.default(i,r).push():await new T(i,r).push()}catch(e){(0,i.handleError)(e)}}
2
+ //# sourceMappingURL=push.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>s});const e=require("../../helpers/sentry"),t=require("../../utils/error"),r=function(e){return e&&e.__esModule?e:{default:e}}(require("./update"));function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}class s{start(){this.editorSync&&(this.timer=setInterval(this.startWork.bind(this),3e3))}stop(){this.timer&&clearInterval(this.timer)}async startWork(){try{await this.updateService.syncRemoteUpdate()}catch(i){this.stop(),(0,e.reportBug)(i);let r=new t.AbortError(i.message);throw r.stack=i.stack,r}}constructor(e,t,s,o,a){i(this,"editorSync",void 0),i(this,"updateService",void 0),i(this,"timer",void 0),i(this,"uploader",void 0),i(this,"cwd",void 0),this.editorSync=e,this.uploader=o,this.cwd=a,this.updateService=new r.default(e,t,o,a),this.updateService.setUpdateQueue(s),this.updateService.setUpdateMode("polling")}}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>s});const e=require("../../helpers/monitoring"),t=require("../../utils/error"),r=function(e){return e&&e.__esModule?e:{default:e}}(require("./update"));function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}class s{start(){this.editorSync&&(this.timer=setInterval(this.startWork.bind(this),3e3))}stop(){this.timer&&clearInterval(this.timer)}async startWork(){try{await this.updateService.syncRemoteUpdate()}catch(i){this.stop();let r=i instanceof Error&&Object.isExtensible(i)?i:new t.AbortError(i instanceof Error?i.message:String(null!=i?i:""));throw r!==i&&i instanceof Error&&(r.stack=i.stack),(0,e.reportBugOnce)(r),r}}constructor(e,t,s,o,n){i(this,"editorSync",void 0),i(this,"updateService",void 0),i(this,"timer",void 0),i(this,"uploader",void 0),i(this,"cwd",void 0),this.editorSync=e,this.uploader=o,this.cwd=n,this.updateService=new r.default(e,t,o,n),this.updateService.setUpdateQueue(s),this.updateService.setUpdateMode("polling")}}
2
+ //# sourceMappingURL=remote-watcher.js.map
@@ -1 +1,2 @@
1
- "use strict";var e,t;Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var l in t)Object.defineProperty(e,l,{enumerable:!0,get:t[l]})}(exports,{EThemeType:()=>e,EThemeStatus:()=>t}),function(e){e[e.Mall=0]="Mall",e[e.Private=1]="Private"}(e||(e={})),function(e){e[e.Uncompleted=-2]="Uncompleted",e[e.Delete=-1]="Delete",e[e.Unpublished=0]="Unpublished",e[e.Published=1]="Published",e[e.Development=2]="Development"}(t||(t={}));
1
+ "use strict";var e,t;Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var l in t)Object.defineProperty(e,l,{enumerable:!0,get:t[l]})}(exports,{EThemeType:()=>e,EThemeStatus:()=>t}),function(e){e[e.Mall=0]="Mall",e[e.Private=1]="Private"}(e||(e={})),function(e){e[e.Uncompleted=-2]="Uncompleted",e[e.Delete=-1]="Delete",e[e.Unpublished=0]="Unpublished",e[e.Published=1]="Published",e[e.Development=2]="Development"}(t||(t={}));
2
+ //# sourceMappingURL=types.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var u in t)Object.defineProperty(e,u,{enumerable:!0,get:t[u]})}(exports,{UpdateQueue:()=>e,default:()=>t});class e{push(e){this.queue.set(e.key,e)}find(e){if(this.queue.size>0){let t=this.queue.get(e);return t}return null}delete(e){this.queue.delete(e)}list(){let e=this.queue.entries(),t={};for(let[u,r]of e)t[u]=r;return t}clear(){this.queue.clear()}constructor(){!function(e,t,u){t in e?Object.defineProperty(e,t,{value:u,enumerable:!0,configurable:!0,writable:!0}):e[t]=u}(this,"queue",new Map)}}const t=new e;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var u in t)Object.defineProperty(e,u,{enumerable:!0,get:t[u]})}(exports,{UpdateQueue:()=>e,default:()=>t});class e{push(e){this.queue.set(e.key,e)}find(e){if(this.queue.size>0){let t=this.queue.get(e);return t}return null}delete(e){this.queue.delete(e)}list(){let e=this.queue.entries(),t={};for(let[u,r]of e)t[u]=r;return t}clear(){this.queue.clear()}constructor(){!function(e,t,u){t in e?Object.defineProperty(e,t,{value:u,enumerable:!0,configurable:!0,writable:!0}):e[t]=u}(this,"queue",new Map)}}const t=new e;
2
+ //# sourceMappingURL=update-queue.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>k});const e=F(require("fs-extra")),t=F(require("form-data")),l=F(require("../../helpers/config")),i=require("./api"),a=require("./utils"),s=require("./const"),r=F(require("../../utils/get-objects-diff")),o=require("./types"),u=F(require("../../utils/tiny-queue")),d=F(require("./index")),n=require("../../utils/messages"),f=require("./inquirer"),c=F(require("../../utils/debug")),h=F(require("./uploader")),m=require("../../utils/error"),p=F(require("./file")),g=F(require("./operation")),y=F(require("../../utils/winston"));function w(e,t,l){return t in e?Object.defineProperty(e,t,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[t]=l,e}function F(e){return e&&e.__esModule?e:{default:e}}class k extends c.default{setUpdateQueue(e){this.updateQueue=e}setUpdateMode(e){this.updateMode=e}async syncTheme(){y.default.log("Ensure development theme..."),await this.ensureDevelopmentTheme(),this.printSyncMessage(),y.default.log(`Check theme (${this.themeId}) is uncompleted dev theme...`);let e=await d.default.isUncompletedDevTheme(this.themeId);y.default.log(`The theme ${this.themeId}) is uncompleted dev theme: ${e}`),e?(y.default.log("Upload theme files..."),await this.uploadThemeFiles()):(y.default.log("Sync theme files..."),await this.syncUpdate())}printSyncMessage(){console.log(`✨ Syncing theme #${this.themeId} on ${l.default.currentStore}`)}getFilterFileChecksums(e){let t=Object.keys(e).reduce((t,l)=>{let i=this.ignoreFilter.match(l),a=this.includeFilter.match(l);return!i&&a&&(t[l]=e[l]),t},{});return t}async getFileChecksums(){let{localeFileChecksums:e}=this.uploader,t=await (0,i.getThemeFileList)(this.themeId),l=t.files.reduce((e,t)=>(t.fileName.endsWith(".preview")||(e[t.fileName]=t.fileContentChecksum||""),e),Object.create(null)),a=this.getFilterFileChecksums(e),s=this.getFilterFileChecksums(l);return{local:a,remote:s}}async syncRemoteUpdate(){let{local:e,remote:t}=await this.getFileChecksums();if(this.editorSync){y.default.log("[Remote Watch] Get remote and local diffs...");let l=await (0,r.default)(t,e);y.default.log("[Remote Watch] Run remote diffs..."),await this.updateStrategy(l,!0)}}async syncUpdate(){y.default.log("Get local and remote files checksum...");let{local:e,remote:t}=await this.getFileChecksums();if(this.editorSync){y.default.log("Get remote and local diffs...");let l=await (0,r.default)(t,e);await this.updateStrategy(l)}else{y.default.log("Get local and remote diffs...");let l=await (0,r.default)(e,t);l.length&&(y.default.log(`Run local diffs ${JSON.stringify(l)}...`),await this.runAllLocalDiff(l))}}async updateStrategy(e,t){let{local:l,remote:i}=await k.prepareUpdateDiffs(e,t);this.log("local diffs: %O",l),this.log("remote diffs: %O",i),l.length&&(y.default.log(`Run local diffs ${JSON.stringify(l)}...`),await this.runAllLocalDiff(l,!0)),i.length&&(y.default.log(`Run remote diffs ${JSON.stringify(i)}...`),await this.runAllRemoteDiff(i))}static async prepareUpdateDiffs(e,t){let l={local:[],remote:[]},i=e.length,a=e=>"create"===e?"delete":"delete"===e?"create":"update",s=(e,t)=>{let i=t.filter(e=>{let t=e.key;return(t.startsWith("config/")||t.startsWith("templates/"))&&t.endsWith(".json")});"remote"===e?l.remote=l.remote.concat(i):l.local=l.local.concat(i.map(e=>({...e,type:a(e.type)})))};if(!i)return l;if(t)return s("remote",e),l;y.default.log("Update conflicts files...");let[{key:r},...o]=e,u=await k.promptUpdateStrategy(r);if(s(u,[e[0]]),1===i)return l;let d=await (0,f.askForApplyToAll)(o.length);for await(let e of(console.log(),o))if(d)y.default.log("Apply to all files to solve conflict files..."),s(u,o);else{let t=await k.promptUpdateStrategy(e.key);y.default.log(`Apply ${e.key} strategy to solve conflict files...`),console.log(),s(t,[e])}return l}static async promptUpdateStrategy(e){let t=(0,n.getMessage)("theme.serve.syncer.update_strategy.title_content",{file_name:e});console.log(t);let l=await (0,f.askForUpdateStrategy)();return l}async processRemoteDiffFile(t,l,i){var a;let{fullPath:s}=l;if("create"===t||"update"===t){y.default.log(`Get file (${l.fileName}) information: ${l.fileName}`);let t=await this.getFileInfo(s);y.default.log("Writing file content"),e.default.ensureFileSync(s),e.default.writeFileSync(s,t)}else"delete"===t&&(y.default.log(`Delete file (${l.fileName})`),e.default.unlinkSync(s));null===(a=this.updateQueue)||void 0===a||a.push({key:l.fileName,checksums:[i],type:t})}runAllLocalDiff(e,t){return new Promise((l,i)=>{let a=!1,s=new m.ErrorStash,r=async e=>{if(a){e();return}y.default.log("Set theme upload completed"),await h.default.setUploadCompleted(this.themeId,o.EThemeStatus.Development),a=!0,e()};this.queue.on("all-done",async()=>{y.default.log("All task queue is all done!"),s.printAll(),await r(()=>l())}),this.queue.on("error",async e=>{y.default.logError(e),e instanceof m.ValidatorError?(y.default.log("Occurred validation error"),s.concat(e.errors)):(s.printAll(),await r(()=>{i(e)}))}),this.queue.all(e.map(({type:e,key:l})=>async()=>{let i=new p.default(l,this.cwd);if(await this.processLocalDiffFile(e,i),!t){let t=this.editorSync&&"update"===e?"get":e,l=new g.default(t,i).asSyncMessage();console.log(l)}}))})}runAllRemoteDiff(e){return new Promise((t,l)=>{this.queue.on("all-done",()=>t()),this.queue.on("error",e=>l(e)),this.queue.all(e.map(({type:e,key:t,checksums:l})=>async()=>{let i=new p.default(t,this.cwd);if(await this.processRemoteDiffFile(e,i,l[0]),"polling"===this.updateMode){let t=this.editorSync&&"update"===e?"get":e,l=new g.default(t,i).asSyncMessage();console.log(l)}}))})}async processLocalDiffFile(e,t){"create"===e?(y.default.log(`Create file: ${t.fileName}`),await this.createFile(t)):"update"===e?(y.default.log(`Update file: ${t.fileName}`),await this.updateFile(t)):"delete"===e&&(y.default.log(`Delete file: ${t.fileName}`),await this.deleteFile(t))}async getFileInfo(e){let t=(0,a.parseFileName)(e,this.cwd),l=await (0,i.getThemeFileDetail)({themeId:this.themeId,fileName:t});return null==l?void 0:l.fileContent}async deleteFile(e){y.default.log(`Delete file: ${e.fileName}`),await (0,i.deleteFile)(this.themeId,{fileName:e.fileName,cliFirstCreateFile:!0}),this.uploader.checksums.has(e)&&(y.default.log(`Delete file (${e.fileName}) checksum`),this.uploader.checksums.delete(e))}async updateFile(l){let{fileName:r}=l,o=r.startsWith("assets/");if((0,a.checkTemplateFileName)(r),o&&!s.TEXT_TYPE_EXTNAMES.includes(l.extName)){let a=new t.default;a.append("file",e.default.createReadStream(l.fullPath)),a.append("fileName",r),a.append("cliFirstCreateFile","true"),y.default.log(`Upload asset file: ${r}`);let s=await (0,i.uploadFile)(this.themeId,a,{headers:a.getHeaders()});y.default.log(`Update file (${r}) checksum: ${s.fileContentChecksum}`),this.uploader.checksums.set(r,null==s?void 0:s.fileContentChecksum)}else{if(!(0,a.checkLayoutFile)(r,l.fileContent))throw new m.AbortError(s.ERRORS.LAYOUT_FILE_NOT_MATCH_TEMPLATE);y.default.log(`Update file: ${r}`);let e=await (0,i.updateFile)(this.themeId,{fileName:r,fileContent:l.fileContent,cliFirstCreateFile:!0});y.default.log(`Update file (${r}) checksum: ${e.fileContentChecksum}`),this.uploader.checksums.set(r,null==e?void 0:e.fileContentChecksum)}}async createFile(l){let{fileName:r}=l,o=r.startsWith("assets/");if(!(0,a.checkLayoutFile)(r,l.fileContent))throw new m.AbortError(s.ERRORS.LAYOUT_FILE_NOT_MATCH_TEMPLATE);if((0,a.checkTemplateFileName)(r),o){let a=new t.default;a.append("file",e.default.createReadStream(l.fullPath)),a.append("fileName",r),a.append("cliFirstCreateFile","true"),y.default.log(`Upload asset file: ${r}`);let s=await (0,i.uploadFile)(this.themeId,a,{headers:a.getHeaders()});y.default.log(`Update file (${r}) checksum: ${s.fileContentChecksum}`),this.uploader.checksums.set(r,s.fileContentChecksum)}else{y.default.log(`Create file: ${r}`);let e=await (0,i.createFile)(this.themeId,{fileName:r,fileContent:l.fileContent,cliFirstCreateFile:!0});y.default.log(`Update file (${r}) checksum: ${e.fileContentChecksum}`),this.uploader.checksums.set(r,e.fileContentChecksum)}}async ensureDevelopmentTheme(){let{id:e,name:t}=await d.default.findOrCreate(this.themeId);if(e)this.themeId=e,l.default.developmentThemeId=e,l.default.developmentThemeName=t;else throw new m.AbortError(s.ERRORS.THEME_ID_NOT_EXIST)}async uploadThemeFiles(){await this.uploader.upload(this.themeId,o.EThemeStatus.Development)}constructor(e,t,i,a=process.cwd()){super("theme:serve:update"),w(this,"cwd",void 0),w(this,"themeId",void 0),w(this,"queue",void 0),w(this,"editorSync",void 0),w(this,"updateQueue",void 0),w(this,"updateMode","initialize"),w(this,"includeFilter",void 0),w(this,"ignoreFilter",void 0),w(this,"uploader",void 0),this.cwd=a,this.themeId=l.default.developmentThemeId,this.queue=new u.default({concurrency:4}),this.editorSync=e,this.updateQueue=null,this.includeFilter=t.include,this.ignoreFilter=t.ignore,this.uploader=i}}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>k});const e=F(require("fs-extra")),t=F(require("form-data")),l=F(require("../../helpers/config")),i=require("./api"),a=require("./utils"),s=require("./const"),r=F(require("../../utils/get-objects-diff")),o=require("./types"),u=F(require("../../utils/tiny-queue")),d=F(require("./index")),n=require("../../utils/messages"),f=require("./inquirer"),c=F(require("../../utils/debug")),h=F(require("./uploader")),m=require("../../utils/error"),p=F(require("./file")),g=F(require("./operation")),y=F(require("../../utils/winston"));function w(e,t,l){return t in e?Object.defineProperty(e,t,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[t]=l,e}function F(e){return e&&e.__esModule?e:{default:e}}class k extends c.default{setUpdateQueue(e){this.updateQueue=e}setUpdateMode(e){this.updateMode=e}async syncTheme(){y.default.log("Ensure development theme..."),await this.ensureDevelopmentTheme(),this.printSyncMessage(),y.default.log(`Check theme (${this.themeId}) is uncompleted dev theme...`);let e=await d.default.isUncompletedDevTheme(this.themeId);y.default.log(`The theme ${this.themeId}) is uncompleted dev theme: ${e}`),e?(y.default.log("Upload theme files..."),await this.uploadThemeFiles()):(y.default.log("Sync theme files..."),await this.syncUpdate())}printSyncMessage(){console.log(`✨ Syncing theme #${this.themeId} on ${l.default.currentStore}`)}getFilterFileChecksums(e){let t=Object.keys(e).reduce((t,l)=>{let i=this.ignoreFilter.match(l),a=this.includeFilter.match(l);return!i&&a&&(t[l]=e[l]),t},{});return t}async getFileChecksums(){let{localeFileChecksums:e}=this.uploader,t=await (0,i.getThemeFileList)(this.themeId),l=t.files.reduce((e,t)=>(t.fileName.endsWith(".preview")||(e[t.fileName]=t.fileContentChecksum||""),e),Object.create(null)),a=this.getFilterFileChecksums(e),s=this.getFilterFileChecksums(l);return{local:a,remote:s}}async syncRemoteUpdate(){let{local:e,remote:t}=await this.getFileChecksums();if(this.editorSync){y.default.log("[Remote Watch] Get remote and local diffs...");let l=await (0,r.default)(t,e);y.default.log("[Remote Watch] Run remote diffs..."),await this.updateStrategy(l,!0)}}async syncUpdate(){y.default.log("Get local and remote files checksum...");let{local:e,remote:t}=await this.getFileChecksums();if(this.editorSync){y.default.log("Get remote and local diffs...");let l=await (0,r.default)(t,e);await this.updateStrategy(l)}else{y.default.log("Get local and remote diffs...");let l=await (0,r.default)(e,t);l.length&&(y.default.log(`Run local diffs ${JSON.stringify(l)}...`),await this.runAllLocalDiff(l))}}async updateStrategy(e,t){let{local:l,remote:i}=await k.prepareUpdateDiffs(e,t);this.log("local diffs: %O",l),this.log("remote diffs: %O",i),l.length&&(y.default.log(`Run local diffs ${JSON.stringify(l)}...`),await this.runAllLocalDiff(l,!0)),i.length&&(y.default.log(`Run remote diffs ${JSON.stringify(i)}...`),await this.runAllRemoteDiff(i))}static async prepareUpdateDiffs(e,t){let l={local:[],remote:[]},i=e.length,a=e=>"create"===e?"delete":"delete"===e?"create":"update",s=(e,t)=>{let i=t.filter(e=>{let t=e.key;return(t.startsWith("config/")||t.startsWith("templates/"))&&t.endsWith(".json")});"remote"===e?l.remote=l.remote.concat(i):l.local=l.local.concat(i.map(e=>({...e,type:a(e.type)})))};if(!i)return l;if(t)return s("remote",e),l;y.default.log("Update conflicts files...");let[{key:r},...o]=e,u=await k.promptUpdateStrategy(r);if(s(u,[e[0]]),1===i)return l;let d=await (0,f.askForApplyToAll)(o.length);for await(let e of(console.log(),o))if(d)y.default.log("Apply to all files to solve conflict files..."),s(u,o);else{let t=await k.promptUpdateStrategy(e.key);y.default.log(`Apply ${e.key} strategy to solve conflict files...`),console.log(),s(t,[e])}return l}static async promptUpdateStrategy(e){let t=(0,n.getMessage)("theme.serve.syncer.update_strategy.title_content",{file_name:e});console.log(t);let l=await (0,f.askForUpdateStrategy)();return l}async processRemoteDiffFile(t,l,i){var a;let{fullPath:s}=l;if("create"===t||"update"===t){y.default.log(`Get file (${l.fileName}) information: ${l.fileName}`);let t=await this.getFileInfo(s);y.default.log("Writing file content"),e.default.ensureFileSync(s),e.default.writeFileSync(s,t)}else"delete"===t&&(y.default.log(`Delete file (${l.fileName})`),e.default.unlinkSync(s));null===(a=this.updateQueue)||void 0===a||a.push({key:l.fileName,checksums:[i],type:t})}runAllLocalDiff(e,t){return new Promise((l,i)=>{let a=!1,s=new m.ErrorStash,r=async e=>{if(a){e();return}y.default.log("Set theme upload completed"),await h.default.setUploadCompleted(this.themeId,o.EThemeStatus.Development),a=!0,e()};this.queue.on("all-done",async()=>{y.default.log("All task queue is all done!"),s.printAll(),await r(()=>l())}),this.queue.on("error",async e=>{y.default.logError(e),e instanceof m.ValidatorError?(y.default.log("Occurred validation error"),s.concat(e.errors)):(s.printAll(),await r(()=>{i(e)}))}),this.queue.all(e.map(({type:e,key:l})=>async()=>{let i=new p.default(l,this.cwd);if(await this.processLocalDiffFile(e,i),!t){let t=this.editorSync&&"update"===e?"get":e,l=new g.default(t,i).asSyncMessage();console.log(l)}}))})}runAllRemoteDiff(e){return new Promise((t,l)=>{this.queue.on("all-done",()=>t()),this.queue.on("error",e=>l(e)),this.queue.all(e.map(({type:e,key:t,checksums:l})=>async()=>{let i=new p.default(t,this.cwd);if(await this.processRemoteDiffFile(e,i,l[0]),"polling"===this.updateMode){let t=this.editorSync&&"update"===e?"get":e,l=new g.default(t,i).asSyncMessage();console.log(l)}}))})}async processLocalDiffFile(e,t){"create"===e?(y.default.log(`Create file: ${t.fileName}`),await this.createFile(t)):"update"===e?(y.default.log(`Update file: ${t.fileName}`),await this.updateFile(t)):"delete"===e&&(y.default.log(`Delete file: ${t.fileName}`),await this.deleteFile(t))}async getFileInfo(e){let t=(0,a.parseFileName)(e,this.cwd),l=await (0,i.getThemeFileDetail)({themeId:this.themeId,fileName:t});return null==l?void 0:l.fileContent}async deleteFile(e){y.default.log(`Delete file: ${e.fileName}`),await (0,i.deleteFile)(this.themeId,{fileName:e.fileName,cliFirstCreateFile:!0}),this.uploader.checksums.has(e)&&(y.default.log(`Delete file (${e.fileName}) checksum`),this.uploader.checksums.delete(e))}async updateFile(l){let{fileName:r}=l,o=r.startsWith("assets/");(0,a.checkTemplateFileName)(r);try{if(o&&!s.TEXT_TYPE_EXTNAMES.includes(l.extName)){let a=new t.default;a.append("file",e.default.createReadStream(l.fullPath)),a.append("fileName",r),a.append("cliFirstCreateFile","true"),y.default.log(`Upload asset file: ${r}`);let s=await (0,i.uploadFile)(this.themeId,a,{headers:a.getHeaders()});y.default.log(`Update file (${r}) checksum: ${s.fileContentChecksum}`),this.uploader.checksums.set(r,null==s?void 0:s.fileContentChecksum)}else{if(!(0,a.checkLayoutFile)(r,l.fileContent))throw new m.AbortError(s.ERRORS.LAYOUT_FILE_NOT_MATCH_TEMPLATE);y.default.log(`Update file: ${r}`);let e=await (0,i.updateFile)(this.themeId,{fileName:r,fileContent:l.fileContent,cliFirstCreateFile:!0});y.default.log(`Update file (${r}) checksum: ${e.fileContentChecksum}`),this.uploader.checksums.set(r,null==e?void 0:e.fileContentChecksum)}}catch(e){if(e instanceof m.AbortError&&e.message===s.ERRORS.LAYOUT_FILE_NOT_MATCH_TEMPLATE)throw e;throw(0,a.formatThemeFileUploadError)(e,{fileName:r,themeId:this.themeId})}}async createFile(l){let{fileName:r}=l,o=r.startsWith("assets/");if(!(0,a.checkLayoutFile)(r,l.fileContent))throw new m.AbortError(s.ERRORS.LAYOUT_FILE_NOT_MATCH_TEMPLATE);(0,a.checkTemplateFileName)(r);try{if(o){let a=new t.default;a.append("file",e.default.createReadStream(l.fullPath)),a.append("fileName",r),a.append("cliFirstCreateFile","true"),y.default.log(`Upload asset file: ${r}`);let s=await (0,i.uploadFile)(this.themeId,a,{headers:a.getHeaders()});y.default.log(`Update file (${r}) checksum: ${s.fileContentChecksum}`),this.uploader.checksums.set(r,s.fileContentChecksum)}else{y.default.log(`Create file: ${r}`);let e=await (0,i.createFile)(this.themeId,{fileName:r,fileContent:l.fileContent,cliFirstCreateFile:!0});y.default.log(`Update file (${r}) checksum: ${e.fileContentChecksum}`),this.uploader.checksums.set(r,e.fileContentChecksum)}}catch(e){throw(0,a.formatThemeFileUploadError)(e,{fileName:r,themeId:this.themeId})}}async ensureDevelopmentTheme(){let{id:e,name:t}=await d.default.findOrCreate(this.themeId);if(e)this.themeId=e,l.default.developmentThemeId=e,l.default.developmentThemeName=t;else throw new m.AbortError(s.ERRORS.THEME_ID_NOT_EXIST)}async uploadThemeFiles(){await this.uploader.upload(this.themeId,o.EThemeStatus.Development)}constructor(e,t,i,a=process.cwd()){super("theme:serve:update"),w(this,"cwd",void 0),w(this,"themeId",void 0),w(this,"queue",void 0),w(this,"editorSync",void 0),w(this,"updateQueue",void 0),w(this,"updateMode","initialize"),w(this,"includeFilter",void 0),w(this,"ignoreFilter",void 0),w(this,"uploader",void 0),this.cwd=a,this.themeId=l.default.developmentThemeId,this.queue=new u.default({concurrency:4}),this.editorSync=e,this.updateQueue=null,this.includeFilter=t.include,this.ignoreFilter=t.ignore,this.uploader=i}}
2
+ //# sourceMappingURL=update.js.map
@@ -1 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>p});const e=f(require("progress")),t=f(require("fast-glob")),i=f(require("fs-extra")),l=f(require("form-data")),s=require("./api"),a=require("../../utils/error"),r=f(require("../../utils/colors")),n=f(require("./file")),u=f(require("./checksum")),c=require("./types"),o=f(require("../../utils/tiny-queue")),h=require("./utils"),d=f(require("../../utils/winston"));function m(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function f(e){return e&&e.__esModule?e:{default:e}}class p{themeFiles(){let e=t.default.sync(["config/**/*","layout/**/*","locales/**/*","sections/**/*","snippets/**/*","templates/**/*","assets/**/*"],{cwd:this.cwd,onlyFiles:!0,unique:!0});return e.map(e=>new n.default(e,this.cwd))}staticAssetFiles(){let e=t.default.sync(["assets/**/*"],{cwd:this.cwd,onlyFiles:!0,unique:!0});return e.map(e=>new n.default(e,this.cwd))}diffThemeFiles(){return this.themeFiles().filter(e=>!this.checksums.has(e))}get localeFileChecksums(){return this.themeFiles().reduce((e,t)=>(e[t.fileName]=t.checksum,e),{})}upload(t,i=c.EThemeStatus.Development,l={progressFormat:r.default.cyan("[:bar] :percent")}){let s=new a.ErrorStash;return new Promise(async(n,u)=>{d.default.log("Fetching theme checksums..."),await this.fetchChecksums(t),await this.deleteFiles(t);let c=this.themeFiles(),o=!1,m=(()=>{if(l.silent)return;let t=l.progressFormat||r.default.cyan("[:bar] :percent");e.default.prototype.setTotal=function(e){this.total=e};let i=new e.default(t,{complete:"=",incomplete:" ",total:0,width:50,clear:!0,...l.progressBarOptions});return i})(),f=!1,F=async e=>{if(f||!o){e();return}d.default.log(`Set theme (${t}) upload completed...`),await p.setUploadCompleted(t,i),f=!0,e()};this.queue.on("all-done",async()=>{d.default.log("All task queue is all done!"),s.printAll(),await F(()=>n())}),this.queue.on("error",async e=>{if(d.default.logError(e),e instanceof a.ValidatorError)s.concat(e.errors);else{console.log(),null==m||m.terminate(),s.printAll();let t=e instanceof a.AbortError?e:new a.AbortError(e.message);await F(()=>{u(t),(0,h.handleError)(t)})}}),this.queue.on("success",()=>{o=!0,l.silent||null==m||m.tick()});let w=c.filter(e=>this.uploadable(e)).filter(e=>e.isConfigSchemaFile).map(e=>async()=>{await p.createFile(t,e)}),g=c.filter(e=>this.uploadable(e)).filter(e=>".html"===e.extName).map(e=>async()=>{await p.createFile(t,e)}),y=c.filter(e=>this.uploadable(e)).filter(e=>".json"===e.extName&&!e.isConfigFile).map(e=>async()=>{await p.createFile(t,e)}),q=c.filter(e=>this.uploadable(e)).filter(e=>e.isConfigFile&&!e.isConfigSchemaFile).map(e=>async()=>{await p.createFile(t,e)}),C=this.staticAssetFiles().filter(e=>this.uploadable(e)).map(e=>async()=>{await p.createFile(t,e)}),k=[...w,...g,...y,...q,...C];this.queue.addAll(k),0===k.length&&n(),null==m||m.setTotal(this.queue.size)})}uploadable(e){return!this.ignoreOperation(e.fileName)&&!!e.isExist&&this.checksums.fileHasChanged(e)}static async createFile(e,t){let a=t.fileName.startsWith("assets/");if((0,h.checkTemplateFileName)(t.fileName),a){let a=new l.default;a.append("file",i.default.createReadStream(t.fullPath)),a.append("fileName",t.fileName),a.append("cliFirstCreateFile","true"),await (0,s.uploadFile)(e,a,{headers:a.getHeaders()})}else await (0,s.createFile)(e,{fileName:t.fileName,fileContent:t.fileContent,cliFirstCreateFile:!0})}async fetchChecksums(e){try{let t=await (0,s.getThemeFileList)(e);t.files.forEach(e=>{e.fileContentChecksum&&this.checksums.set(e.fileName,e.fileContentChecksum)})}catch(e){}}async deleteFiles(e){if(!this.isDeleteFile)return;d.default.log("Deleting remote theme files...");let t=this.checksums.keys(),i=this.themeFiles().map(e=>e.fileName),l=t.map(e=>new n.default(e,this.cwd)).filter(e=>!i.includes(e.fileName)).filter(e=>!this.ignoreOperation(e.fileName));l.length>0&&await this.enqueueDeletes(l,e)}async enqueueDeletes(e,t){return new Promise((i,l)=>{this.queue.on("all-done",i),this.queue.on("error",l),this.queue.addAll(e.map(e=>async()=>{await this.del(e,t)}))})}ignoreOperation(e){return this.ignoreFilter.match(e)||!this.includeFilter.match(e)}async del(e,t){await (0,s.deleteFile)(t,{fileName:e.fileName,cliFirstCreateFile:!0}),this.checksums.has(e)&&this.checksums.delete(e)}static async createNewTheme(e){let t=await (0,s.createNewThemeOrCompleteUpload)({themeName:e});if(t.themeId)return t.themeId}static async setUploadCompleted(e,t){let i=await (0,s.createNewThemeOrCompleteUpload)({themeId:e,status:t,completed:!0});if(i.themeId)return i.themeId}constructor(e,t,i){m(this,"cwd",void 0),m(this,"queue",void 0),m(this,"checksums",void 0),m(this,"includeFilter",void 0),m(this,"ignoreFilter",void 0),m(this,"isDeleteFile",void 0),this.cwd=i,this.queue=new o.default({maxRetry:3,concurrency:4}),this.checksums=new u.default,this.includeFilter=e.include,this.ignoreFilter=e.ignore,this.isDeleteFile=t}}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>p});const e=f(require("progress")),t=f(require("fast-glob")),i=f(require("fs-extra")),l=f(require("form-data")),s=require("./api"),a=require("../../utils/error"),r=f(require("../../utils/colors")),n=f(require("./file")),u=f(require("./checksum")),c=require("./types"),o=f(require("../../utils/tiny-queue")),h=require("./utils"),d=f(require("../../utils/winston"));function m(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function f(e){return e&&e.__esModule?e:{default:e}}class p{themeFiles(){let e=t.default.sync(["config/**/*","layout/**/*","locales/**/*","sections/**/*","snippets/**/*","templates/**/*","assets/**/*"],{cwd:this.cwd,onlyFiles:!0,unique:!0});return e.map(e=>new n.default(e,this.cwd))}staticAssetFiles(){let e=t.default.sync(["assets/**/*"],{cwd:this.cwd,onlyFiles:!0,unique:!0});return e.map(e=>new n.default(e,this.cwd))}diffThemeFiles(){return this.themeFiles().filter(e=>!this.checksums.has(e))}get localeFileChecksums(){return this.themeFiles().reduce((e,t)=>(e[t.fileName]=t.checksum,e),{})}upload(t,i=c.EThemeStatus.Development,l={progressFormat:r.default.cyan("[:bar] :percent")}){let s=new a.ErrorStash;return new Promise(async(n,u)=>{d.default.log("Fetching theme checksums..."),await this.fetchChecksums(t),await this.deleteFiles(t);let c=this.themeFiles(),o=!1,m=(()=>{if(l.silent)return;let t=l.progressFormat||r.default.cyan("[:bar] :percent");e.default.prototype.setTotal=function(e){this.total=e};let i=new e.default(t,{complete:"=",incomplete:" ",total:0,width:50,clear:!0,...l.progressBarOptions});return i})(),f=!1,F=async e=>{if(f||!o){e();return}d.default.log(`Set theme (${t}) upload completed...`),await p.setUploadCompleted(t,i),f=!0,e()};this.queue.on("all-done",async()=>{d.default.log("All task queue is all done!"),s.printAll(),await F(()=>n())}),this.queue.on("error",async e=>{if(d.default.logError(e),e instanceof a.ValidatorError)s.concat(e.errors);else{console.log(),null==m||m.terminate(),s.printAll();let t=e instanceof a.AbortError?e:new a.AbortError(e.message);await F(()=>{u(t),(0,h.handleError)(t)})}}),this.queue.on("success",()=>{o=!0,l.silent||null==m||m.tick()});let w=c.filter(e=>this.uploadable(e)).filter(e=>e.isConfigSchemaFile).map(e=>async()=>{await p.createFile(t,e)}),y=c.filter(e=>this.uploadable(e)).filter(e=>".html"===e.extName).map(e=>async()=>{await p.createFile(t,e)}),g=c.filter(e=>this.uploadable(e)).filter(e=>".json"===e.extName&&!e.isConfigFile).map(e=>async()=>{await p.createFile(t,e)}),q=c.filter(e=>this.uploadable(e)).filter(e=>e.isConfigFile&&!e.isConfigSchemaFile).map(e=>async()=>{await p.createFile(t,e)}),N=this.staticAssetFiles().filter(e=>this.uploadable(e)).map(e=>async()=>{await p.createFile(t,e)}),C=[...w,...y,...g,...q,...N];this.queue.addAll(C),0===C.length&&n(),null==m||m.setTotal(this.queue.size)})}uploadable(e){return!this.ignoreOperation(e.fileName)&&!!e.isExist&&this.checksums.fileHasChanged(e)}static async createFile(e,t){let a=t.fileName.startsWith("assets/");(0,h.checkTemplateFileName)(t.fileName);try{if(a){let a=new l.default;a.append("file",i.default.createReadStream(t.fullPath)),a.append("fileName",t.fileName),a.append("cliFirstCreateFile","true"),await (0,s.uploadFile)(e,a,{headers:a.getHeaders()})}else await (0,s.createFile)(e,{fileName:t.fileName,fileContent:t.fileContent,cliFirstCreateFile:!0})}catch(i){throw(0,h.formatThemeFileUploadError)(i,{fileName:t.fileName,themeId:e})}}async fetchChecksums(e){try{let t=await (0,s.getThemeFileList)(e);t.files.forEach(e=>{e.fileContentChecksum&&this.checksums.set(e.fileName,e.fileContentChecksum)})}catch(e){}}async deleteFiles(e){if(!this.isDeleteFile)return;d.default.log("Deleting remote theme files...");let t=this.checksums.keys(),i=this.themeFiles().map(e=>e.fileName),l=t.map(e=>new n.default(e,this.cwd)).filter(e=>!i.includes(e.fileName)).filter(e=>!this.ignoreOperation(e.fileName));l.length>0&&await this.enqueueDeletes(l,e)}async enqueueDeletes(e,t){return new Promise((i,l)=>{this.queue.on("all-done",i),this.queue.on("error",l),this.queue.addAll(e.map(e=>async()=>{await this.del(e,t)}))})}ignoreOperation(e){return this.ignoreFilter.match(e)||!this.includeFilter.match(e)}async del(e,t){await (0,s.deleteFile)(t,{fileName:e.fileName,cliFirstCreateFile:!0}),this.checksums.has(e)&&this.checksums.delete(e)}static async createNewTheme(e){let t=await (0,s.createNewThemeOrCompleteUpload)({themeName:e});if(t.themeId)return t.themeId}static async setUploadCompleted(e,t){let i=await (0,s.createNewThemeOrCompleteUpload)({themeId:e,status:t,completed:!0});if(i.themeId)return i.themeId}constructor(e,t,i){m(this,"cwd",void 0),m(this,"queue",void 0),m(this,"checksums",void 0),m(this,"includeFilter",void 0),m(this,"ignoreFilter",void 0),m(this,"isDeleteFile",void 0),this.cwd=i,this.queue=new o.default({maxRetry:3,concurrency:4}),this.checksums=new u.default,this.includeFilter=e.include,this.ignoreFilter=e.ignore,this.isDeleteFile=t}}
2
+ //# sourceMappingURL=uploader.js.map
@@ -1 +1,3 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(exports,{standardThemeDirectories:()=>m,standardThemeDirectories3:()=>g,themeDirectoryGlobList3:()=>_,getThemeDirectory:()=>y,getThemeDirectory3:()=>E,getRelativePath:()=>S,parseFileName:()=>w,parseFile:()=>D,checkTemplateFileName:()=>T,checkLayoutFile:()=>R,checkSectionFile:()=>A,handleError:()=>q,getThemeInfo:()=>j,getThemeInfo3:()=>v,getKeyMessage:()=>b,getStringifyKey:()=>O,replaceVariable:()=>F,generateDevThemeName:()=>N,ignoreHiddenDir:()=>$,isEmptyDir:()=>x,getDirsWithoutDot:()=>I});const e=p(require("path")),t=p(require("fs-extra")),r=require("os"),n=require("nanoid"),o=p(require("../../utils/logger")),i=p(require("../../utils/replace-dot")),l=require("./const"),s=require("../../helpers/sentry"),a=p(require("../../utils/colors")),u=require("../../utils/ui/render"),c=require("../../utils/error"),f=require("../../utils/path"),d=require("../../utils/ora-manager"),h=p(require("../../utils/winston"));function p(e){return e&&e.__esModule?e:{default:e}}const m=["assets","config","layout","locales","sections","snippets","templates"],g=["blocks","public","layout","i18n","sections","components","templates","theme.config.json","theme.schema.json"],_=g.map(e=>e.endsWith(".json")?e:`${e}/**/*`);function y(t=(0,f.cwd)()){return m.map(r=>e.default.join(t,r))}function E(t=(0,f.cwd)()){return g.map(r=>e.default.join(t,r))}function S(t,r=process.cwd()){return e.default.relative(r,t)}function w(e,t=process.cwd()){e=e.replace(/\\/g,"/");let r=t.replace(/\\/g,"/");return e.split(r)[1].replace(/^\//,"")}function D(e,r=(0,f.cwd)()){let n=t.default.readFileSync(e,"utf-8"),o=w(e,r);return{fileName:o,fileContent:n}}function T(e){if(h.default.log(`Check template file name is valid or not: ${e}`),!e.startsWith("templates"))return;let t=e.split("/"),r=t[t.length-1];if(!/^[A-Za-z0-9._-]+$/.test(r))throw new c.AbortError(`${e} ${l.ERRORS.TEMPLATE_FILE_NAME_NOT_PASS}`)}function R(e,t){if(!e.startsWith("layout")||e.startsWith("layout")&&l.IGNORE_LAYOUT_FILES.some(t=>e.includes(t)))return!0;let r=[];return t.match(/{{\s*content_for_header\s*}}/)||r.push("content_for_header"),t.match(/{{\s*content_for_layout\s*}}/)||r.push("content_for_layout"),t.match(/{{\s*content_for_footer\s*}}/)||r.push("content_for_footer"),!r.length||(r.forEach(t=>{o.default.error(`[${e}]: Missing {{${t}}} in the head section of the template`)}),(0,d.clearAllOra)(),console.log(),!1)}function A(r,n,o){if(n.startsWith("sections")&&!o.trim()){let n=t.default.readFileSync(e.default.join(__dirname,"./section-default.html"),"utf-8");t.default.writeFileSync(r,n,"utf-8")}}function q(e){process.env.DEBUG&&console.log(e),e instanceof c.AbortError?(0,u.renderFatalError)(e):o.default.error(e.message||e),h.default.logError(e,()=>{(0,s.reportAndExit)(e)})}function j(e=process.cwd()){let r=(0,f.joinPath)(e,"config/settings_schema.json");if(!t.default.existsSync(r))throw new c.AbortError(l.ERRORS.NOT_STANDARD_DIRECTORY);let n=t.default.readJsonSync(r),o=null==n?void 0:n[0];return o}function v(e=process.cwd()){let r=(0,f.joinPath)(e,"theme.schema.json");if(!t.default.existsSync(r))throw new c.AbortError(l.ERRORS.NOT_STANDARD_DIRECTORY);let n=t.default.readJsonSync(r);return n}function b(e){return a.default.cyan(e)}function O(e){return e.map(e=>(0,i.default)(e)).filter(Boolean).join(".")}function F(e,t){let r=e.match(/\{(.*?)\}/g);return r&&r.forEach(r=>{let n=r.replace(/[{}]/g,""),o=n in t?t[n]:"";o&&(e=e.replace(r,o))}),e}function N(){var e;let t=(0,n.customAlphabet)("abcdefghijklmnopqrstuvwxyz0123456789",6),o=t(),i=null===(e=(0,r.hostname)().split("."))||void 0===e?void 0:e.shift(),l=36-o.length-1,s=`${o}-${null==i?void 0:i.slice(0,l)}`;return`Development (${s})`}function $(e){return!/(^|\/)\.[^/.]/g.test(e)}function x(e=!0,r=process.cwd()){let n=t.default.readdirSync(r);if(e){let e=n.filter($);return 0===e.length}return 0===n.length}function I(e=process.cwd()){let r=t.default.readdirSync(e);return r.filter($)}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(exports,{standardThemeDirectories:()=>p,standardThemeDirectories3:()=>g,themeDirectoryGlobList3:()=>E,getThemeDirectory:()=>_,getThemeDirectory3:()=>y,getRelativePath:()=>w,parseFileName:()=>A,parseFile:()=>S,checkTemplateFileName:()=>T,checkLayoutFile:()=>D,checkSectionFile:()=>$,handleError:()=>b,formatThemeFileUploadError:()=>j,formatThemeFileDeleteError:()=>q,getThemeInfo:()=>v,getThemeInfo3:()=>F,getKeyMessage:()=>O,getStringifyKey:()=>N,replaceVariable:()=>I,generateDevThemeName:()=>k,ignoreHiddenDir:()=>x,isEmptyDir:()=>M,getDirsWithoutDot:()=>P});const e=m(require("path")),t=m(require("fs-extra")),r=require("os"),n=require("nanoid"),o=m(require("../../utils/logger")),i=m(require("../../utils/replace-dot")),l=require("./const"),a=require("../../helpers/monitoring"),s=m(require("../../utils/colors")),c=require("../../utils/ui/render"),u=require("../../utils/error"),f=require("../../utils/path"),d=require("../../utils/ora-manager"),h=m(require("../../utils/winston"));function m(e){return e&&e.__esModule?e:{default:e}}const p=["assets","config","layout","locales","sections","snippets","templates"],g=["blocks","public","layout","i18n","sections","components","templates","theme.config.json","theme.schema.json"],E=g.map(e=>e.endsWith(".json")?e:`${e}/**/*`);function _(t=(0,f.cwd)()){return p.map(r=>e.default.join(t,r))}function y(t=(0,f.cwd)()){return g.map(r=>e.default.join(t,r))}function w(t,r=process.cwd()){return e.default.relative(r,t)}function A(e,t=process.cwd()){e=e.replace(/\\/g,"/");let r=t.replace(/\\/g,"/");return e.split(r)[1].replace(/^\//,"")}function S(e,r=(0,f.cwd)()){let n=t.default.readFileSync(e,"utf-8"),o=A(e,r);return{fileName:o,fileContent:n}}function T(e){if(h.default.log(`Check template file name is valid or not: ${e}`),!e.startsWith("templates"))return;let t=e.split("/"),r=t[t.length-1];if(!/^[A-Za-z0-9._-]+$/.test(r))throw new u.AbortError(`${e} ${l.ERRORS.TEMPLATE_FILE_NAME_NOT_PASS}`)}function D(e,t){if(!e.startsWith("layout")||e.startsWith("layout")&&l.IGNORE_LAYOUT_FILES.some(t=>e.includes(t)))return!0;let r=[];return t.match(/{{\s*content_for_header\s*}}/)||r.push("content_for_header"),t.match(/{{\s*content_for_layout\s*}}/)||r.push("content_for_layout"),t.match(/{{\s*content_for_footer\s*}}/)||r.push("content_for_footer"),!r.length||(r.forEach(t=>{o.default.error(`[${e}]: Missing {{${t}}} in the head section of the template`)}),(0,d.clearAllOra)(),console.log(),!1)}function $(r,n,o){if(n.startsWith("sections")&&!o.trim()){let n=t.default.readFileSync(e.default.join(__dirname,"./section-default.html"),"utf-8");t.default.writeFileSync(r,n,"utf-8")}}function b(e){process.env.DEBUG&&console.log(e),e instanceof u.AbortError?(0,c.renderFatalError)(e):o.default.error(e.message||e),h.default.logError(e,()=>{(0,a.reportAndExit)(e)})}function R(e,t){let r=`Failed to ${t.operation} file "`;if(e instanceof u.AbortError&&e.message.startsWith(r))return e;let n=e instanceof Error?e.message:String(null!=e?e:"Unknown error"),o=e instanceof u.AbortError?e.tryMessage:null,i=t.operation.charAt(0).toUpperCase()+t.operation.slice(1);h.default.log(`[${i}] failed file=${t.fileName} themeId=${t.themeId} detail=${n}`);let l=new u.AbortError(`${r}${t.fileName}" (themeId: ${t.themeId})
2
+ ${n}`,o);return e instanceof Error&&(l.stack=e.stack,l.cause=e),e&&"object"==typeof e&&"code"in e&&(l.code=e.code),l}function j(e,t){return R(e,{...t,operation:"upload"})}function q(e,t){return R(e,{...t,operation:"delete"})}function v(e=process.cwd()){let r=(0,f.joinPath)(e,"config/settings_schema.json");if(!t.default.existsSync(r))throw new u.AbortError(l.ERRORS.NOT_STANDARD_DIRECTORY);let n=t.default.readJsonSync(r),o=null==n?void 0:n[0];return o}function F(e=process.cwd()){let r=(0,f.joinPath)(e,"theme.schema.json");if(!t.default.existsSync(r))throw new u.AbortError(l.ERRORS.NOT_STANDARD_DIRECTORY);let n=t.default.readJsonSync(r);return n}function O(e){return s.default.cyan(e)}function N(e){return e.map(e=>(0,i.default)(e)).filter(Boolean).join(".")}function I(e,t){let r=e.match(/\{(.*?)\}/g);return r&&r.forEach(r=>{let n=r.replace(/[{}]/g,""),o=n in t?t[n]:"";o&&(e=e.replace(r,o))}),e}function k(){var e;let t=(0,n.customAlphabet)("abcdefghijklmnopqrstuvwxyz0123456789",6),o=t(),i=null===(e=(0,r.hostname)().split("."))||void 0===e?void 0:e.shift(),l=36-o.length-1,a=`${o}-${null==i?void 0:i.slice(0,l)}`;return`Development (${a})`}function x(e){return!/(^|\/)\.[^/.]/g.test(e)}function M(e=!0,r=process.cwd()){let n=t.default.readdirSync(r);if(e){let e=n.filter(x);return 0===e.length}return 0===n.length}function P(e=process.cwd()){let r=t.default.readdirSync(e);return r.filter(x)}
3
+ //# sourceMappingURL=utils.js.map