@shoplineos/cli 1.5.5 → 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 (33) hide show
  1. package/dist/commands/index.js +1 -1
  2. package/dist/helpers/config.js +1 -1
  3. package/dist/helpers/monitoring-bootstrap.js +1 -1
  4. package/dist/helpers/monitoring.js +2 -0
  5. package/dist/helpers/process-errors.js +1 -1
  6. package/dist/services/auth/logout.js +1 -1
  7. package/dist/services/dev-server/index.js +2 -2
  8. package/dist/services/dev-server-3/index.js +1 -1
  9. package/dist/services/dev-server-3/server.js +2 -2
  10. package/dist/services/extension/api.js +2 -2
  11. package/dist/services/extension/openapi.js +1 -1
  12. package/dist/services/identity-auth/api.js +1 -1
  13. package/dist/services/identity-auth/index.js +1 -1
  14. package/dist/services/theme/3.0/api.js +3 -3
  15. package/dist/services/theme/3.0/package.js +1 -1
  16. package/dist/services/theme/3.0/remote-watcher.js +1 -1
  17. package/dist/services/theme/3.0/theme.js +3 -3
  18. package/dist/services/theme/api.js +1 -1
  19. package/dist/services/theme/console/api.js +1 -1
  20. package/dist/services/theme/console/console.js +1 -1
  21. package/dist/services/theme/dev-server-monitoring.js +1 -1
  22. package/dist/services/theme/index.js +2 -2
  23. package/dist/services/theme/no-second-check.js +1 -1
  24. package/dist/services/theme/preview-http-client.js +2 -0
  25. package/dist/services/theme/proxy-error.js +1 -1
  26. package/dist/services/theme/remote-watcher.js +1 -1
  27. package/dist/services/theme/utils.js +1 -1
  28. package/dist/services/theme/watcher-monitoring.js +1 -1
  29. package/dist/utils/program.js +1 -1
  30. package/dist/utils/winston/index.js +1 -1
  31. package/dist/vendor/logger-apm-node/index.js +3 -3
  32. package/package.json +9 -7
  33. package/dist/helpers/sentry.js +0 -2
@@ -1,8 +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:()=>$,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/sentry"),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(`
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
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,{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(t){let e=await N.createNewTheme();return e}}(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;
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
8
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
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/sentry"),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){}}))},p=r=>{c||(c=!0,f(),e(r))},y=(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),y(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),p(s)):(e.status=403,a.successful=200===e.status,a.message="Verification failed. Please retry again.",await e.render("index",a),y(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),y(r,{shouldReport:!0})})}catch(r){let e=h(r);u.onerror(e),y(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);
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
2
  //# sourceMappingURL=no-second-check.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
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(r,e){for(var t in e)Object.defineProperty(r,t,{enumerable:!0,get:e[t]})}(exports,{getXResponseId:()=>t,formatNonStart20ProxyError:()=>o,reportNonStart20ProxyError:()=>s,reportNetworkProxyError:()=>n});const r=require("../../helpers/sentry"),e=require("../../utils/messages");function t(r){return r&&(r["x-response-id"]||r["X-Response-Id"])||""}function o(r){let o=t(r.headers)||"-",s="string"==typeof r.requestQuery?r.requestQuery:JSON.stringify(r.requestQuery,null,2);return(0,e.getMessage)("theme.serve.error.non_start_20_error",{errorCode:r.errorCode,requestUrl:r.requestUrl,requestQuery:s,responseId:o})}function s(e){try{var o;let s=t(e.headers)||"-",n=Error(`theme serve proxy non-2xx: status=${e.errorCode} url=${e.requestUrl} x-response-id=${s}`),u={status:Number(e.errorCode),data:e.responseData,headers:null!==(o=e.headers)&&void 0!==o?o:{},config:{method:e.method,url:e.requestUrl}};(0,r.reportHttpError)(n,{response:u,source:"theme-proxy"})}catch(r){}}function n({error:e,requestUrl:t,method:o}){try{let s=Error(e instanceof Error?e.message:String(e));e instanceof Error&&(s.stack=e.stack),e&&"object"==typeof e&&"code"in e&&("string"==typeof e.code||"number"==typeof e.code)&&(s.code=e.code),(0,r.reportHttpError)(s,{requestConfig:{method:o,url:t},source:"theme-proxy"})}catch(r){}}
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
2
  //# sourceMappingURL=proxy-error.js.map
@@ -1,2 +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();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,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
2
  //# sourceMappingURL=remote-watcher.js.map
@@ -1,3 +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:()=>y,getThemeDirectory:()=>E,getThemeDirectory3:()=>_,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=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"),a=require("../../helpers/sentry"),s=p(require("../../utils/colors")),c=require("../../utils/ui/render"),u=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"],y=g.map(e=>e.endsWith(".json")?e:`${e}/**/*`);function E(t=(0,f.cwd)()){return m.map(r=>e.default.join(t,r))}function _(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})
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
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
3
  //# sourceMappingURL=utils.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"reportThemeWatcherError",{enumerable:!0,get:()=>r});const e=require("../../helpers/sentry");function r(r,{themeOs:t,operation:o}){return(0,e.reportBugOnce)(r,{tags:{error_source:"theme-file-watcher",theme_os:t,file_operation:o}})}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"reportThemeWatcherError",{enumerable:!0,get:()=>r});const e=require("../../helpers/monitoring");function r(r,{themeOs:t,operation:o}){return(0,e.reportBugOnce)(r,{tags:{error_source:"theme-file-watcher",theme_os:t,file_operation:o}})}
2
2
  //# sourceMappingURL=watcher-monitoring.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"program",{enumerable:!0,get:()=>e.program});const e=require("commander"),r=u(require("./check-update")),t=u(require("../helpers/config")),o=u(require("../../package.json")),a=require("../helpers/sentry"),n=u(require("./winston/index"));function u(e){return e&&e.__esModule?e:{default:e}}e.program.hook("preAction",async e=>{a.isProd&&await (0,r.default)(o.default).catch(console.error);let u=[e.name(),...e.args].join(" ");if(n.default.setCommand(u),n.default.log(`Current CLI version: ${o.default.version}`),await n.default.removeOldLogFiles(),(0,a.setTag)("command",u),(0,a.setTag)("cli_version",o.default.version),t.default.loginInfo){var s;n.default.log(`current store: ${t.default.currentStore}`),(0,a.setUser)({username:t.default.currentStore}),(0,a.setTags)({current_store:t.default.currentStore,store_id:null===(s=t.default.loginInfo)||void 0===s?void 0:s.store_id})}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"program",{enumerable:!0,get:()=>e.program});const e=require("commander"),r=u(require("./check-update")),t=u(require("../helpers/config")),o=u(require("../../package.json")),a=require("../helpers/monitoring"),n=u(require("./winston/index"));function u(e){return e&&e.__esModule?e:{default:e}}e.program.hook("preAction",async e=>{a.isProd&&await (0,r.default)(o.default).catch(console.error);let u=[e.name(),...e.args].join(" ");if(n.default.setCommand(u),n.default.log(`Current CLI version: ${o.default.version}`),await n.default.removeOldLogFiles(),(0,a.setTag)("command",u),(0,a.setTag)("cli_version",o.default.version),t.default.loginInfo){var i;n.default.log(`current store: ${t.default.currentStore}`),(0,a.setUser)({username:t.default.currentStore}),(0,a.setTags)({current_store:t.default.currentStore,store_id:null===(i=t.default.loginInfo)||void 0===i?void 0:i.store_id})}});
2
2
  //# sourceMappingURL=program.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>y});const e=require("nanoid"),t=p(require("dayjs")),i=require("fs/promises"),a=p(require("archiver")),o=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var i=h(t);if(i&&i.has(e))return i.get(e);var a={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in e)if("default"!==r&&Object.prototype.hasOwnProperty.call(e,r)){var l=o?Object.getOwnPropertyDescriptor(e,r):null;l&&(l.get||l.set)?Object.defineProperty(a,r,l):a[r]=e[r]}return a.default=e,i&&i.set(e,a),a}(require("@sentry/node")),r=require("ci-info"),l=require("../../services/extension/utils"),n=require("../path"),s=require("./log-file"),u=require("../fs"),c=require("../error"),d=p(require("../exit-hook")),f=require("../output"),g=require("../local");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 p(e){return e&&e.__esModule?e:{default:e}}function h(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,i=new WeakMap;return(h=function(e){return e?i:t})(e)}class y{static getTraceId(){return y.traceId}static generateRandomId(t=10){let i=(0,e.customAlphabet)("1234567890abcdef",t);return i()}static setCommand(e){y.fullCommand=e}static getInstance(){if(y.fileLoggerInstance)return y.fileLoggerInstance;let e=new y;return y.fileLoggerInstance=e,e}static logHttp(e){var t,i;let a=`[${e.type}:${null===(t=e.method)||void 0===t?void 0:t.toUpperCase()}:`;if("request"===e.type){if(a+=`${e.url}]: `,e.params){let t=JSON.stringify(e.params);t.length<y.maxHttpRequestParamsLength&&(a+=t)}y.log(a)}else a+=`${e.status}:${e.url}]: `,e.traceId?a+=`trace_id: ${e.traceId}`:(null===(i=e.status)||void 0===i?void 0:i.toString().startsWith("30"))&&(a+=""),y.log(a)}static logError(e,t){try{let t="error: ";if(e instanceof c.AbortError)t+=`${e.message} tryMessage: ${e.tryMessage}`;else if("string"==typeof e)t+=e;else{var i;t+=null!==(i=null==e?void 0:e.message)&&void 0!==i?i:"Unknown error"}y.log((0,f.unstyled)(t))}finally{"function"==typeof t&&y.getInstance().close(t)}}static log(e){try{let t=y.getInstance();t.log(e)}catch(e){}}static close(e){try{let t=y.getInstance();t.close(e)}catch(e){}}static async removeOldLogFiles(){try{await y.deleteOldLogFiles()}catch(e){}}static async deleteOldLogFiles(){if(!(0,u.pathExists)(s.LogFile.logRootPath))return;let e=(0,t.default)().subtract(y.maxLogRetentionDays,"day"),a=await (0,i.readdir)(s.LogFile.logRootPath);for await(let i of a){let a=(0,n.joinPath)(s.LogFile.logRootPath,i),o=await (0,u.isDirectory)(a);o&&(0,t.default)(i).isValid()&&(0,t.default)(i).isBefore(e)&&await (0,u.rmdir)(a,{force:!0})}}static async getLogFileByPath(e,a){let o=await (0,i.readdir)(s.LogFile.logRootPath);if(0===o.length){(0,f.outputWarn)((0,f.outputContent)`No log files found in ${f.outputToken.path(s.LogFile.logRootPath)}`);return}let r=s.LogFile.getPathHash(e),l=`${r}.zip`,c=[],d=o.filter(e=>(0,t.default)(e).isValid()&&(0,t.default)().diff((0,t.default)(e),"day")<a);for await(let e of d)if(await (0,u.isDirectory)((0,n.joinPath)(s.LogFile.logRootPath,e))){let t=(0,n.joinPath)(s.LogFile.logRootPath,e),a=await (0,i.readdir)(t),o=a.filter(e=>e.includes(r));if(o.length>0){let t=o.map(t=>(0,n.joinPath)(e,t));c.push(...t)}}if(0===c.length){(0,f.outputWarn)((0,f.outputContent)`No matched log files found in ${f.outputToken.path(s.LogFile.logRootPath)}`);return}let g=await (0,u.mkTmpDir)(),m=(0,n.joinPath)(g,l),p=c.map(e=>(0,n.joinPath)(s.LogFile.logRootPath,e)).filter(e=>(0,u.fileExistsSync)(e));return await y.reportLogFiles(p),await y.zipFiles(p,m),m}static async reportLogFiles(e){await o.withScope(async t=>{for await(let i of e){let e=(0,n.basename)((0,n.dirname)(i)),a=await (0,u.readFile)(i);t.addAttachment({filename:`${e}.log`,data:a})}t.setTag("date_time",Date.now()),t.setTag("date_human",(0,l.formatTime)()),t.setTag("time_zone",new Date().getTimezoneOffset()),t.captureMessage("User reports log files manually")})}static async zipFiles(e,t){return new Promise((i,o)=>{let r=(0,a.default)("zip"),l=(0,u.createFileWriteStream)(t);for(let t of(l.on("close",()=>i()),r.on("error",e=>o(e)),r.pipe(l),e)){let e=(0,n.relativePath)(s.LogFile.logRootPath,t);r.file(t,{name:e})}r.finalize()})}bindExitHook(){(0,d.default)(()=>{this.logFile.close()})}log(e){if(r.isCI||(0,g.isUnitTest)())return;let t=this.formatMessage(e);this.logFile.write(t)}close(e){this.logFile.close(e)}formatMessage(e){let t=new Date,i=`[${(0,l.formatTime)(t.getTime())} UTC ${t.getTimezoneOffset()}]`,a=`[PID:${process.pid}]`,o=`[traceId:${y.traceId}]`,r=`[${this.command}]`;return[i,a,o,r," ",e].join("")}constructor(e){var t,i;m(this,"cwd",void 0),m(this,"command",void 0),m(this,"maxFileSize",2097152),m(this,"logFile",void 0),this.cwd=null!==(t=null==e?void 0:e.cwd)&&void 0!==t?t:(0,n.cwd)(),this.command=null!==(i=null==e?void 0:e.command)&&void 0!==i?i:y.fullCommand,this.logFile=new s.LogFile({cwd:this.cwd,maxFileSize:this.maxFileSize}),this.bindExitHook()}}m(y,"maxHttpRequestParamsLength",100),m(y,"maxLogRetentionDays",15),m(y,"traceId",y.generateRandomId()),m(y,"fullCommand",void 0),m(y,"fileLoggerInstance",null);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>m});const e=require("nanoid"),t=h(require("dayjs")),i=require("fs/promises"),o=h(require("archiver")),a=require("ci-info"),l=require("../../services/extension/utils"),r=require("../path"),s=require("./log-file"),n=require("../fs"),u=require("../error"),d=h(require("../exit-hook")),c=require("../output"),g=require("../local");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}}class m{static getTraceId(){return m.traceId}static generateRandomId(t=10){let i=(0,e.customAlphabet)("1234567890abcdef",t);return i()}static setCommand(e){m.fullCommand=e}static getInstance(){if(m.fileLoggerInstance)return m.fileLoggerInstance;let e=new m;return m.fileLoggerInstance=e,e}static logHttp(e){var t,i;let o=`[${e.type}:${null===(t=e.method)||void 0===t?void 0:t.toUpperCase()}:`;if("request"===e.type){if(o+=`${e.url}]: `,e.params){let t=JSON.stringify(e.params);t.length<m.maxHttpRequestParamsLength&&(o+=t)}m.log(o)}else o+=`${e.status}:${e.url}]: `,e.traceId?o+=`trace_id: ${e.traceId}`:(null===(i=e.status)||void 0===i?void 0:i.toString().startsWith("30"))&&(o+=""),m.log(o)}static logError(e,t){try{let t="error: ";if(e instanceof u.AbortError)t+=`${e.message} tryMessage: ${e.tryMessage}`;else if("string"==typeof e)t+=e;else{var i;t+=null!==(i=null==e?void 0:e.message)&&void 0!==i?i:"Unknown error"}m.log((0,c.unstyled)(t))}finally{"function"==typeof t&&m.getInstance().close(t)}}static log(e){try{let t=m.getInstance();t.log(e)}catch(e){}}static close(e){try{let t=m.getInstance();t.close(e)}catch(e){}}static async removeOldLogFiles(){try{await m.deleteOldLogFiles()}catch(e){}}static async deleteOldLogFiles(){if(!(0,n.pathExists)(s.LogFile.logRootPath))return;let e=(0,t.default)().subtract(m.maxLogRetentionDays,"day"),o=await (0,i.readdir)(s.LogFile.logRootPath);for await(let i of o){let o=(0,r.joinPath)(s.LogFile.logRootPath,i),a=await (0,n.isDirectory)(o);a&&(0,t.default)(i).isValid()&&(0,t.default)(i).isBefore(e)&&await (0,n.rmdir)(o,{force:!0})}}static async getLogFileByPath(e,o){let a=await (0,i.readdir)(s.LogFile.logRootPath);if(0===a.length){(0,c.outputWarn)((0,c.outputContent)`No log files found in ${c.outputToken.path(s.LogFile.logRootPath)}`);return}let l=s.LogFile.getPathHash(e),u=`${l}.zip`,d=[],g=a.filter(e=>(0,t.default)(e).isValid()&&(0,t.default)().diff((0,t.default)(e),"day")<o);for await(let e of g)if(await (0,n.isDirectory)((0,r.joinPath)(s.LogFile.logRootPath,e))){let t=(0,r.joinPath)(s.LogFile.logRootPath,e),o=await (0,i.readdir)(t),a=o.filter(e=>e.includes(l));if(a.length>0){let t=a.map(t=>(0,r.joinPath)(e,t));d.push(...t)}}if(0===d.length){(0,c.outputWarn)((0,c.outputContent)`No matched log files found in ${c.outputToken.path(s.LogFile.logRootPath)}`);return}let f=await (0,n.mkTmpDir)(),h=(0,r.joinPath)(f,u),p=d.map(e=>(0,r.joinPath)(s.LogFile.logRootPath,e)).filter(e=>(0,n.fileExistsSync)(e));return await m.zipFiles(p,h),h}static async zipFiles(e,t){return new Promise((i,a)=>{let l=(0,o.default)("zip"),u=(0,n.createFileWriteStream)(t);for(let t of(u.on("close",()=>i()),l.on("error",e=>a(e)),l.pipe(u),e)){let e=(0,r.relativePath)(s.LogFile.logRootPath,t);l.file(t,{name:e})}l.finalize()})}bindExitHook(){(0,d.default)(()=>{this.logFile.close()})}log(e){if(a.isCI||(0,g.isUnitTest)())return;let t=this.formatMessage(e);this.logFile.write(t)}close(e){this.logFile.close(e)}formatMessage(e){let t=new Date,i=`[${(0,l.formatTime)(t.getTime())} UTC ${t.getTimezoneOffset()}]`,o=`[PID:${process.pid}]`,a=`[traceId:${m.traceId}]`,r=`[${this.command}]`;return[i,o,a,r," ",e].join("")}constructor(e){var t,i;f(this,"cwd",void 0),f(this,"command",void 0),f(this,"maxFileSize",2097152),f(this,"logFile",void 0),this.cwd=null!==(t=null==e?void 0:e.cwd)&&void 0!==t?t:(0,r.cwd)(),this.command=null!==(i=null==e?void 0:e.command)&&void 0!==i?i:m.fullCommand,this.logFile=new s.LogFile({cwd:this.cwd,maxFileSize:this.maxFileSize}),this.bindExitHook()}}f(m,"maxHttpRequestParamsLength",100),f(m,"maxLogRetentionDays",15),f(m,"traceId",m.generateRandomId()),f(m,"fullCommand",void 0),f(m,"fileLoggerInstance",null);
2
2
  //# sourceMappingURL=index.js.map