@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.
- package/dist/commands/index.js +1 -1
- package/dist/helpers/config.js +1 -1
- package/dist/helpers/monitoring-bootstrap.js +1 -1
- package/dist/helpers/monitoring.js +2 -0
- package/dist/helpers/process-errors.js +1 -1
- package/dist/services/auth/logout.js +1 -1
- package/dist/services/dev-server/index.js +2 -2
- package/dist/services/dev-server-3/index.js +1 -1
- package/dist/services/dev-server-3/server.js +2 -2
- package/dist/services/extension/api.js +2 -2
- package/dist/services/extension/openapi.js +1 -1
- package/dist/services/identity-auth/api.js +1 -1
- package/dist/services/identity-auth/index.js +1 -1
- package/dist/services/theme/3.0/api.js +3 -3
- package/dist/services/theme/3.0/package.js +1 -1
- package/dist/services/theme/3.0/remote-watcher.js +1 -1
- package/dist/services/theme/3.0/theme.js +3 -3
- package/dist/services/theme/api.js +1 -1
- package/dist/services/theme/console/api.js +1 -1
- package/dist/services/theme/console/console.js +1 -1
- package/dist/services/theme/dev-server-monitoring.js +1 -1
- package/dist/services/theme/index.js +2 -2
- package/dist/services/theme/no-second-check.js +1 -1
- package/dist/services/theme/preview-http-client.js +2 -0
- package/dist/services/theme/proxy-error.js +1 -1
- package/dist/services/theme/remote-watcher.js +1 -1
- package/dist/services/theme/utils.js +1 -1
- package/dist/services/theme/watcher-monitoring.js +1 -1
- package/dist/utils/program.js +1 -1
- package/dist/utils/winston/index.js +1 -1
- package/dist/vendor/logger-apm-node/index.js +3 -3
- package/package.json +9 -7
- package/dist/helpers/sentry.js +0 -2
package/dist/commands/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>s}),require("../helpers/monitoring-bootstrap");const e=require("../utils/program"),r=require("../helpers/monitoring"),o=require("../helpers/process-errors"),t=function(e){return e&&e.__esModule?e:{default:e}}(require("../../package.json"));if(require("./auth/index"),require("./theme/index"),require("./extension/index"),require("./report"),(0,o.registerProcessErrorHandlers)(),e.program.version(t.default.version),"test"!==process.env.NODE_ENV)try{e.program.parse(process.argv)}catch(e){(0,r.reportBug)(e)}const s=e.program;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/helpers/config.js
CHANGED
|
@@ -1,2 +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,{APP_CONFIG_NAME:()=>
|
|
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,{APP_CONFIG_NAME:()=>o,default:()=>T});const e=h(require("configstore")),t=h(require("../utils/replace-dot")),s=require("../services/theme/utils"),i=require("../utils/messages"),r=require("../utils/error"),n=require("../utils/output");function E(e,t,s){return t in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}function h(e){return e&&e.__esModule?e:{default:e}}const o="shopline",_={};class N extends e.default{isLogin(){if(!this.loginInfo)throw new r.AbortError((0,i.getMessage)("core.config.not_logged_in"),(0,n.outputContent)`If trying to log into a store account, please use ${n.outputToken.cyan("sl login --store=STORE")} to log in.`);return!0}parseKey(e){return`${this.LOGIN_INFO_KEY}.${(0,t.default)(this.currentStore)}.${e}`}getLoginInfo(e){return this.getConf([this.LOGIN_INFO_KEY,e])}saveLoginInfo(e,s){this.set(`${this.LOGIN_INFO_KEY}.${(0,t.default)(s)}`,e),this.set(this.CURRENT_STORE,s)}replaceLoginInfo(e,t){let s=this.all;delete s[this.FILE_CHECKSUMS],delete s[this.CURRENT_PARTNER],this.all={...s,[this.LOGIN_INFO_KEY]:{[t]:e},[this.CURRENT_STORE]:t}}removeLoginInfo(){let e=this.all;delete e[this.LOGIN_INFO_KEY],delete e[this.CURRENT_STORE],delete e[this.FILE_CHECKSUMS],delete e[this.CURRENT_PARTNER],this.all=e}deleteStoreKey(e,t){this.delConf([this.LOGIN_INFO_KEY,e,t])}setFileCheckSums(e){this.set(this.FILE_CHECKSUMS,e)}setFileCheckSumsWithKey(e,t){this.setConf([this.FILE_CHECKSUMS,e],t)}deleteFileCheckSumsWithKey(e){this.delConf([this.FILE_CHECKSUMS,e])}setConf(e,t){this.set((0,s.getStringifyKey)(e),t)}getConf(e){return this.get((0,s.getStringifyKey)(e))}delConf(e){this.delete((0,s.getStringifyKey)(e))}get fileCheckSums(){return this.get(this.FILE_CHECKSUMS)}set developmentThemeId(e){this.set(this.parseKey(this.DEVELOPMENT_THEME_ID_KEY),e)}get developmentThemeId(){return this.get(this.parseKey(this.DEVELOPMENT_THEME_ID_KEY))}get dfpToken(){return this.get(this.parseKey(this.DFP_TOKEN))}get currentStoreId(){return this.get(this.parseKey(this.STORE_ID))}get loginInfo(){var e;return this.get(`${this.LOGIN_INFO_KEY}.${(0,t.default)(null!==(e=this.currentStore)&&void 0!==e?e:"")}`)}get allStoreInfos(){return this.getConf([this.LOGIN_INFO_KEY])}get currentStore(){return this.get(this.CURRENT_STORE)}set developmentThemeName(e){this.setConf([this.LOGIN_INFO_KEY,this.currentStore,this.DEVELOPMENT_THEME_NAME_KEY],e)}get developmentThemeName(){return this.getConf([this.LOGIN_INFO_KEY,this.currentStore,this.DEVELOPMENT_THEME_NAME_KEY])}replaceDevelopmentTheme(e,t){this.set({[this.parseKey(this.DEVELOPMENT_THEME_ID_KEY)]:e,[this.parseKey(this.DEVELOPMENT_THEME_NAME_KEY)]:t})}set currentPartner(e){this.setConf([this.CURRENT_PARTNER],e)}get currentPartner(){return this.getConf([this.CURRENT_PARTNER])}deleteCurrentPartner(){this.delConf([this.CURRENT_PARTNER])}get ngrokToken(){return this.getConf([this.NGROK_TOKEN])}set ngrokToken(e){this.setConf([this.NGROK_TOKEN],e)}deleteNgrokToken(){this.delConf([this.NGROK_TOKEN])}get extensionCache(){return this.getConf([this.EXTENSION_CACHE])}set extensionCache(e){this.setConf([this.EXTENSION_CACHE],e)}deleteExtensionCache(){this.delConf([this.EXTENSION_CACHE])}get isShownNot2o1ThemeTips(){return this.getConf([this.IS_SHOWN_NOT_2o1_THEME_TIPS])}set isShownNot2o1ThemeTips(e){this.setConf([this.IS_SHOWN_NOT_2o1_THEME_TIPS],e)}constructor(){super(o,_),E(this,"LOGIN_INFO_KEY","loginInfo"),E(this,"CURRENT_STORE","currentStore"),E(this,"FILE_CHECKSUMS","fileCheckSums"),E(this,"DEVELOPMENT_THEME_ID_KEY","developmentThemeId"),E(this,"DEVELOPMENT_THEME_NAME_KEY","developmentThemeName"),E(this,"DFP_TOKEN","dfptoken"),E(this,"CURRENT_PARTNER","currentPartner"),E(this,"NGROK_TOKEN","ngrokToken"),E(this,"EXTENSION_CACHE","extensionCache"),E(this,"STORE_ID","store_id"),E(this,"IS_SHOWN_NOT_2o1_THEME_TIPS","isShownNot2o1ThemeTips")}}const T=new N;
|
|
2
2
|
//# sourceMappingURL=config.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e;Object.defineProperty(exports,"__esModule",{value:!0});const n=require("./
|
|
1
|
+
"use strict";var e;Object.defineProperty(exports,"__esModule",{value:!0});const n=require("./monitoring"),i=require("./monitoring-environment"),o=u(require("./config")),r=u(require("../utils/winston")),t=u(require("../../package.json"));function u(e){return e&&e.__esModule?e:{default:e}}const s=(0,i.resolveMonitoringRelease)({isNpmJs:!0,version:t.default.version});(0,n.initMonitoring)({environment:(0,i.resolveApmEnvironment)({buildEnvironment:"production",packageName:t.default.name,version:t.default.version}),projectId:"6a509805e25f758572012157",release:s,uid:null===(e=o.default.loginInfo)||void 0===e?void 0:e.a_osudb_uid,distribution:"npmjs",traceId:r.default.getTraceId()});
|
|
2
2
|
//# sourceMappingURL=monitoring-bootstrap.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(exports,{isProd:()=>a,initMonitoring:()=>l,setTag:()=>c,setTags:()=>d,setUser:()=>f,reportBug:()=>_,isMonitoringReported:()=>j,reportBugOnce:()=>S,reportFatalAndExit:()=>w,reportAndExit:()=>O,reportHttpError:()=>C,reportHttpRes:()=>W});const e=require("light-date"),t=require("../vendor/logger-apm-node"),n=Symbol.for("@shopline/cli/monitoring-reported"),r=new WeakSet,o="[REDACTED]",i="[Truncated]",s=new Set(["authorization","cookie","setcookie","token","accesstoken","refreshtoken","dfptoken","password","secret","clientsecret"]),a=!0;let u=!1;function l({environment:e,projectId:n="6a509805e25f758572012157",release:r,uid:o,distribution:i="npmjs",traceId:s}={}){if(!e||u)return;let a=new Set(process.listeners("uncaughtException"));t.init({projectId:n,release:r,environment:e,normalizeDepth:20,...o?{uid:o}:{}}),process.listeners("uncaughtException").forEach(e=>{a.has(e)||!0!==Reflect.get(e,"_errorHandler")||process.removeListener("uncaughtException",e)}),u=!0;let l="npmjs"===i;d({"shopline-cli":l?"external":"internal",cli_distribution:l?"npmjs":"inshopline",package_name:l?"@shoplineos/cli":"@slos/cli",...s?{"cli-trace-id":s}:{}})}function c(...e){u&&t.setTag(...e)}function d(e){u&&t.setTags(e)}function f(e){u&&t.setUser(e)}function p(...e){u&&t.setExtra(...e)}function g(){c("date_time",Date.now()),c("date_human",(0,e.format)(new Date,"{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}")),c("time_zone",new Date().getTimezoneOffset())}function h(e){let t=e.toLowerCase().replace(/[-_\s]/g,"");return s.has(t)||t.endsWith("token")||t.endsWith("password")||t.endsWith("secret")||t.endsWith("cookie")}function v(e){return!(e.remainingNodes<=0)&&(e.remainingNodes-=1,!0)}function m(e,t={remainingNodes:1e4,seen:new WeakSet},n=0){if(!v(t)||n>=20)return i;if(null===e||"object"!=typeof e)return e;if(t.seen.has(e))return"[Circular]";if(t.seen.add(e),!Array.isArray(e)&&!function(e){let t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}(e))return function(e){var t;let n=(null===(t=e.constructor)||void 0===t?void 0:t.name)||"Object";return Buffer.isBuffer(e)?{kind:"buffer",type:n,byteLength:e.byteLength}:"pipe"in e&&"function"==typeof e.pipe&&"on"in e&&"function"==typeof e.on?{kind:"stream",type:n}:e instanceof Date?e.toISOString():{kind:"non-json",type:n}}(e);if(Array.isArray(e)){let r=[];for(let o of e){if(t.remainingNodes<=0){r.push(i);break}r.push(m(o,t,n+1))}return r}let r={};for(let s in e)if(Object.prototype.hasOwnProperty.call(e,s)){if(t.remainingNodes<=0){r.truncated=i;break}h(s)?(v(t),r[s]=o):r[s]=m(e[s],t,n+1)}return r}function y(e){return e?e.replace(/([?&])([^=&#]+)=([^&#]*)/g,(e,t,n)=>{let r=n;try{r=decodeURIComponent(n.replace(/\+/g," "))}catch(e){}return h(r)?`${t}${n}=${o}`:e}):e}function b(e,t){let n=null==e?void 0:e.headers;if(!n)return;let r=Object.entries(n).find(([e])=>e.toLowerCase()===t.toLowerCase());return null==r?void 0:r[1]}function x(e){var t,n;let r=[null==e?void 0:null===(t=e.data)||void 0===t?void 0:t.trace_id,null==e?void 0:null===(n=e.data)||void 0===n?void 0:n.traceid,b(e,"traceid"),b(e,"x-request-id"),b(e,"x-response-id")];return r.map(function e(t){return Array.isArray(t)?e(t[0]):"string"==typeof t||"number"==typeof t?String(t):""}).find(Boolean)||""}function _(e,n){if(!u)return;g();let r="string"==typeof e||n&&"object"==typeof n&&"warning"===Reflect.get(n,"level");if(r){let r=e instanceof Error?e.message:String(e);n?t.captureMessage(r,n):t.captureMessage(r)}else n?t.captureException(e,n):t.captureException(e)}function j(e){let t=new Set,o=e;for(;o&&"object"==typeof o&&!t.has(o);){if(t.add(o),r.has(o)||!0===Reflect.get(o,n))return!0;o=Reflect.get(o,"cause")}return!1}function E(e){if(e&&"object"==typeof e){r.add(e);try{Object.defineProperty(e,n,{configurable:!0,enumerable:!1,value:!0})}catch(e){}}}function S(e,t){return!(!u||j(e))&&(_(e,t),E(e),!0)}function k(){return Promise.allSettled([t.close(2e3)])}function w(e){if(!u){process.exit(1);return}if(j(e)){k().then(()=>process.exit(1));return}g(),t.captureException(e,{originalException:e,captureContext:{level:"fatal"},mechanism:{handled:!1,type:"onuncaughtexception"}}),E(e),k().then(()=>process.exit(1))}function O(e){u?(S(e),k().then(()=>process.exit(1))):process.exit(1)}function C(e,{response:t,requestConfig:n,source:r,level:o}){var i,s,a,u;let l=null!==(a=null==t?void 0:t.config)&&void 0!==a?a:n,c=null==t?void 0:null===(i=t.data)||void 0===i?void 0:i.code,d=t?x(t):"",f={api_source:r};null!=c&&(f.error_code=String(c)),d&&(f.trace_id=d),(null==t?void 0:t.status)!==void 0&&(f.http_status=String(t.status));let p={http_request:{method:null==l?void 0:null===(s=l.method)||void 0===s?void 0:s.toUpperCase(),url:function(e){var t,n;if(!e)return;let r=null!==(t=e.baseURL)&&void 0!==t?t:"",o=null!==(n=e.url)&&void 0!==n?n:"",i="",s=o;return r.endsWith("/")&&o.startsWith("/")?s=o.slice(1):r&&!r.endsWith("/")&&o&&!o.startsWith("/")&&(i="/"),y(`${r}${i}${s}`)}(l)}};t?p.http_response={status:t.status,data:m(t.data),traceId:d}:e instanceof Error&&(p.http_error={name:e.name,message:e.message,code:e&&"object"==typeof e&&"code"in e?String(null!==(u=e.code)&&void 0!==u?u:""):""});let g={tags:f,extra:p,...o?{level:o}:{}};return S(e,g)}function W(e){var t,n,r,o,i;let s=(null==e?void 0:null===(t=e.data)||void 0===t?void 0:t.success)||(null==e?void 0:null===(n=e.data)||void 0===n?void 0:n.code)==="SUCCESS",a=null==e?void 0:null===(r=e.data)||void 0===r?void 0:r.code,u=x(e);("boolean"==typeof s&&!1===s||200!==e.status)&&(d({error_code:a,trace_id:u}),p("http_request",{method:null===(o=e.config)||void 0===o?void 0:o.method,url:y(null===(i=e.config)||void 0===i?void 0:i.url)}),p("http_response",{status:e.status,data:m(e.data),traceId:u}))}
|
|
2
|
+
//# sourceMappingURL=monitoring.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,r){for(var n in r)Object.defineProperty(e,n,{enumerable:!0,get:r[n]})}(exports,{normalizeProcessError:()=>n,handleUnhandledRejection:()=>o,handleUncaughtException:()=>t,registerProcessErrorHandlers:()=>
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,r){for(var n in r)Object.defineProperty(e,n,{enumerable:!0,get:r[n]})}(exports,{normalizeProcessError:()=>n,handleUnhandledRejection:()=>o,handleUncaughtException:()=>t,registerProcessErrorHandlers:()=>i});const e=require("./monitoring"),r=require("../utils/error");function n(e){if(e instanceof Error)return e;let r=typeof e;null===e?r="null":Array.isArray(e)&&(r="array");let n=Error(`Unhandled promise rejection with non-Error value (${r})`);return n.name="NonErrorPromiseRejection",n}function o(o){let t=n(o);null!==o&&"object"==typeof o&&Object.isExtensible(o)&&(0,e.reportBugOnce)(o);let i=new r.AbortError(t.message);i.stack=t.stack,console.log(i)}function t(r){console.error(r),(0,e.reportFatalAndExit)(r)}function i(){process.prependListener("unhandledRejection",o),process.prependListener("uncaughtException",t)}
|
|
2
2
|
//# sourceMappingURL=process-errors.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>l});const e=s(require("../../helpers/config")),t=s(require("../../utils/winston")),r=require("../../utils/messages"),u=require("../theme/utils"),o=s(require("../../utils/logger"));function s(e){return e&&e.__esModule?e:{default:e}}async function l(){try{t.default.log("removing login info..."),e.default.removeLoginInfo(),o.default.success((0,r.getMessage)("core.logout.logout_succeed")),t.default.log("logout succeed!")}catch(e){(0,u.handleError)(e)}}
|
|
2
2
|
//# sourceMappingURL=logout.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>N});const e=
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>N});const e=Q(require("qs")),t=Q(require("koa")),r=Q(require("http")),i=Q(require("path")),o=Q(require("@koa/router")),s=Q(require("koa-send")),l=Q(require("form-data")),d=Q(require("koa-body")),a=Q(require("../theme/update")),n=Q(require("../../helpers/config")),u=require("../theme"),h=require("../../utils/messages"),c=require("../../utils/const"),p=require("./sse"),v=Q(require("../../utils/debug")),m=Q(require("../theme/remote-watcher")),g=require("../theme/update-queue"),f=Q(require("../../utils/get-real-referer")),w=Q(require("../../utils/include-filter")),y=Q(require("../../utils/ignore-filter")),q=Q(require("../theme/uploader")),_=require("../../utils/path"),$=require("../theme/utils"),b=Q(require("../../utils/check-theme-type-version")),k=Q(require("../../utils/winston")),S=require("../theme/proxy-error"),x=require("../theme/dev-server-monitoring"),E=require("../theme/preview-http-client");function U(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Q(e){return e&&e.__esModule?e:{default:e}}const C=["multipart/form-data","application/x-www-form-urlencoded"];class P extends v.default{static getRequestBody(t,r){if(t.includes("multipart/form-data")){let e=new l.default;for(let t in r)Object.prototype.hasOwnProperty.call(r,t)&&e.append(t,r[t]);return{body:e,headers:e.getHeaders()}}if(t.includes("application/x-www-form-urlencoded")){let t=e.default.stringify(r);return{body:t,headers:{"Content-Type":"application/x-www-form-urlencoded"}}}return{body:r,headers:{}}}start(){let e=new t.default;(0,x.registerThemeDevServerErrorReporting)(e,{themeOs:"2"});let l=new o.default,a=r.default.createServer(e.callback()),n=(0,E.createPreviewHttpClient)(this.storeUrl);return l.get("/socket-client.js",async e=>{await (0,s.default)(e,e.path,{root:i.default.join(__dirname,"./web")})}),l.get("/hot-reload",e=>{e.req.socket.setKeepAlive(!0),e.req.socket.setNoDelay(!0),e.req.socket.setTimeout(0),e.set({"Content-Type":"text/event-stream; charset=utf-8","Cache-Control":"no-cache",Connection:"keep-alive"});let t=this.streams.create();e.status=200,e.body=t,t.write(":ok\n"),t.on("close",()=>{this.log("SSE lost connection")})}),l.get("/assets/(.*)",async e=>{(0,x.markExpectedStaticNotFound)(e),await (0,s.default)(e,e.path,{root:this.cwd})}),l.all("/(.*)",(0,d.default)({multipart:!0}),async e=>{var t,r,i,o,s,l,d,a,u,h,p;let{method:v,query:m,path:g,request:w}=e,{body:y,headers:q}=P.getRequestBody((null===(t=e.request.headers)||void 0===t?void 0:t["content-type"])||"",e.request.body),_="l_spwd=1";try{let t={cookie:`${w.headers.cookie}; ${_}`||_,"user-agent":`${w.headers["user-agent"]} ${c.CLI_USER_AGENT}`,...q,referer:(0,f.default)(this.storeUrl,(null===(r=w.headers)||void 0===r?void 0:r.referer)||"/",this.previewQuery),Accept:(null===(i=e.request.headers)||void 0===i?void 0:i.accept)||"*/*"},s=await n({method:v,url:`${this.storeUrl}${g}`,maxRedirects:0,headers:t,params:{...m,...this.previewQuery,ignoreRedirect:!0,dev_mode:1},data:"get"===v.toLowerCase()?null:y});if(e.set(s.headers),g.endsWith(".ico")||["application/json",...C].some(e=>s.headers["content-type"].includes(e))){e.status=200,e.body=s.data;return}let l=`<script>
|
|
2
2
|
(() => {
|
|
3
3
|
window.__SHOPLINE_CLI_ENV__ = {
|
|
4
4
|
mode: '${this.mode}',
|
|
@@ -6,5 +6,5 @@
|
|
|
6
6
|
}
|
|
7
7
|
})();
|
|
8
8
|
</script>
|
|
9
|
-
<script src="/socket-client.js"></script>`,d=null==s?void 0:null===(o=s.data)||void 0===o?void 0:o.replace(/(<\/body>)/,`${l}$1`);e.status=200,e.body=d}catch(r){let t=null==r?void 0:null===(s=r.response)||void 0===s?void 0:s.status;if(!t){(0,
|
|
9
|
+
<script src="/socket-client.js"></script>`,d=null==s?void 0:null===(o=s.data)||void 0===o?void 0:o.replace(/(<\/body>)/,`${l}$1`);e.status=200,e.body=d}catch(r){let t=null==r?void 0:null===(s=r.response)||void 0===s?void 0:s.status;if(!t){let t=(0,S.formatNetworkProxyError)(r);(0,S.reportNetworkProxyError)({error:r,requestUrl:`${this.storeUrl}${g}`,method:v}),k.default.log(`request proxy error: ${t}`),console.log(t),e.status=502,e.body=t;return}if(t.toString().startsWith(30)){e.status=t;let i=null==r?void 0:null===(l=r.response)||void 0===l?void 0:null===(d=l.headers)||void 0===d?void 0:d["set-cookie"];i&&e.set("set-cookie",i);let o=null==r?void 0:null===(a=r.response)||void 0===a?void 0:null===(u=a.headers)||void 0===u?void 0:u.location;if(k.default.log(`request proxy redirect: ${o}`),o){let t=o.replace(this.storeUrl,this.localUrl);e.redirect(t);return}e.body="";return}if(!t.toString().startsWith(20)){let e=`${this.storeUrl}${g}`,i={...m,...this.previewQuery,ignoreRedirect:!0,dev_mode:1},o=null==r?void 0:null===(h=r.response)||void 0===h?void 0:h.headers,s=(0,S.getXResponseId)(o);k.default.log(`request proxy error: ${t} ${e} responseId=${s} ${JSON.stringify(i)}`);let l=(0,S.shouldSuppressThemeProxyWarning)(g,t);(!l||process.env.DEBUG)&&console.log((0,S.formatNonStart20ProxyError)({errorCode:t,requestUrl:e,requestQuery:i,headers:o})),(0,S.reportNonStart20ProxyError)({errorCode:t,requestUrl:e,requestQuery:i,headers:o,method:v,responseData:null==r?void 0:null===(p=r.response)||void 0===p?void 0:p.data,level:(400===t||404===t)&&l?"warning":void 0})}e.body=r.response.data}}),e.use(l.routes()).use(l.allowedMethods()),a.listen(this.port,async()=>{k.default.log(`dev server listening on port ${this.port}, start theme watcher...`);let e=await (0,u.startThemeService)(this.mode,this.editorSync,this.streams,this.updateQueue,this.includeFilter,this.ignoreFilter,this.uploader,this.cwd);this.previewQuery.themeId=null==e?void 0:e.themeId,this.listen()}),e}listen(){let{storeUrl:t}=this,{themeId:r}=this.previewQuery,i=`${t}/admin/theme/editor/editing/Home?themeId=${r}&dev_mode=1`,o=`${t}/?${e.default.stringify({...this.previewQuery,dev_mode:1})}`,{localUrl:s}=this,l=(0,$.getRelativePath)(this.cwd);console.log((0,h.getMessage)("theme.serve.serving",{path:l||"."})),console.log(),console.log((0,h.getMessage)("theme.serve.print_theme_id",{theme_id:r})),console.log(),console.log((0,h.getMessage)("core.context.open_url",{url:s})),console.log(),console.log((0,h.getMessage)("theme.serve.customize_or_preview",{editor_url:i,preview_url:o}))}get localUrl(){return`http://127.0.0.1:${this.port}`}constructor({port:e,liveReload:t,themeEditorSync:r,path:i},o,s,l){super("theme:serve"),U(this,"cwd",void 0),U(this,"port",void 0),U(this,"previewQuery",void 0),U(this,"storeUrl",void 0),U(this,"streams",void 0),U(this,"mode",void 0),U(this,"editorSync",void 0),U(this,"updateQueue",void 0),U(this,"includeFilter",void 0),U(this,"ignoreFilter",void 0),U(this,"uploader",void 0),this.cwd=i,this.port=e,this.storeUrl=n.default.currentStore,this.mode=t,this.streams=new p.SSEQueue,this.editorSync=r,this.updateQueue=s,this.ignoreFilter=o.ignore,this.includeFilter=o.include,this.uploader=l,this.previewQuery={preview:1,themeId:""},this.start()}}const N=async e=>{let t=e.path||(0,_.cwd)(),r=e.themeEditorSync,i=function(e,t){var r,i;let o=null!==(r=e.only)&&void 0!==r?r:[],s=null!==(i=e.ignore)&&void 0!==i?i:[],l=new w.default(o,t),d=new y.default(s,t);return{include:l,ignore:d}}(e,t);k.default.log("Checking login..."),n.default.isLogin(),(0,b.default)(t);let o=new g.UpdateQueue,s=new q.default(i,!0,t),l=new a.default(r,i,s,t);await l.syncTheme(),new P({...e,path:t},i,o,s),new m.default(r,i,o,s,t).start()};
|
|
10
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>d});const e=u(require("../../helpers/config")),t=require("../../utils/path"),l=u(require("./server")),r=u(require("../theme/3.0/theme")),i=u(require("../../utils/include-filter")),n=u(require("../../utils/ignore-filter"));function u(e){return e&&e.__esModule?e:{default:e}}const d=async u=>{let d=u.path||(0,t.cwd)();e.default.isLogin();let o=function(e,t){var l,r;let u=null!==(l=e.only)&&void 0!==l?l:[],d=null!==(r=e.ignore)&&void 0!==r?r:[],o=new i.default(u,t),a=new n.default(d,t);return{include:o,ignore:a}}(u,d),a=new r.default({mode:u.liveReload,themeId:e.default.developmentThemeId,includeFilter:o.include,ignoreFilter:o.ignore,cwd:d,zipLifecycle:"development"});await a.syncTheme(),new l.default({...u,path:d},o,a.themeId)};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>b});const e=q(require("qs")),t=q(require("koa")),r=q(require("pathe")),o=q(require("koa-send")),i=q(require("koa-body")),s=q(require("@koa/router")),l=q(require("form-data")),d=require("./sse"),n=q(require("../../utils/debug")),a=q(require("../../helpers/config")),u=require("../../utils/messages"),h=require("../../utils/const"),c=require("../theme/utils"),p=q(require("../../utils/get-real-referer")),v=require("../theme/3.0/theme"),m=q(require("../../utils/winston")),g=require("../theme/proxy-error"),y=require("../theme/dev-server-monitoring"),w=require("../theme/preview-http-client");function f(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function q(e){return e&&e.__esModule?e:{default:e}}const _=["multipart/form-data","application/x-www-form-urlencoded"];class b extends n.default{start(){let e=new t.default;(0,y.registerThemeDevServerErrorReporting)(e,{themeOs:"3"});let l=new s.default,d=(0,w.createPreviewHttpClient)(this.storeUrl);return l.get("/(.*).css",async e=>{(0,y.markExpectedStaticNotFound)(e),await (0,o.default)(e,e.path,{root:this.cwd})}),l.get("/socket-client.js",async e=>{await (0,o.default)(e,e.path,{root:r.default.join(__dirname,"./web")})}),l.get("/hot-reload",e=>{e.req.socket.setKeepAlive(!0),e.req.socket.setNoDelay(!0),e.req.socket.setTimeout(0),e.set({"Content-Type":"text/event-stream; charset=utf-8","Cache-Control":"no-cache",Connection:"keep-alive"});let t=this.streams.create();e.status=200,e.body=t,t.write(":ok\n"),t.on("close",()=>{this.log("SSE lost connection")})}),l.all("/(.*)",(0,i.default)({multipart:!0}),async e=>{var t,r,o,i,s,l,n,a,u,c,v,y;let{method:w,query:f,path:q,request:$}=e,{body:S,headers:k}=b.getRequestBody((null===(t=e.request.headers)||void 0===t?void 0:t["content-type"])||"",e.request.body),x="l_spwd=1";try{let t={cookie:`${$.headers.cookie}; ${x}`||x,"user-agent":`${$.headers["user-agent"]} ${h.CLI_USER_AGENT}`,...k,referer:(0,p.default)(this.storeUrl,(null===(r=$.headers)||void 0===r?void 0:r.referer)||"/",this.previewQuery),Accept:(null===(o=e.request.headers)||void 0===o?void 0:o.accept)||"*/*"},s=await d({method:w,url:`${this.storeUrl}${q}`,maxRedirects:0,headers:t,params:{...f,...this.previewQuery,ignoreRedirect:!0,dev_mode:1},data:"get"===w.toLowerCase()?null:S});if(e.set(s.headers),q.endsWith(".ico")||["application/json",..._].some(e=>s.headers["content-type"].includes(e))){e.status=200,e.body=s.data;return}let l=`<script>
|
|
2
2
|
(() => {
|
|
3
3
|
window.__SHOPLINE_CLI_ENV__ = {
|
|
4
4
|
mode: '${this.mode}',
|
|
@@ -6,5 +6,5 @@
|
|
|
6
6
|
}
|
|
7
7
|
})();
|
|
8
8
|
</script>
|
|
9
|
-
<script src="/socket-client.js"></script>`,
|
|
9
|
+
<script src="/socket-client.js"></script>`,n=null==s?void 0:null===(i=s.data)||void 0===i?void 0:i.replace(/(<\/body>)/,`${l}$1`);e.status=200,e.body=n}catch(r){let t=null==r?void 0:null===(s=r.response)||void 0===s?void 0:s.status;if(!t){let t=(0,g.formatNetworkProxyError)(r);(0,g.reportNetworkProxyError)({error:r,requestUrl:`${this.storeUrl}${q}`,method:w}),m.default.log(`request proxy error: ${t}`),console.log(t),e.status=502,e.body=t;return}if(e.status=t,t.toString().startsWith(30)){let t=null==r?void 0:null===(n=r.response)||void 0===n?void 0:null===(a=n.headers)||void 0===a?void 0:a["set-cookie"];t&&e.set("set-cookie",t);let o=null==r?void 0:null===(u=r.response)||void 0===u?void 0:null===(c=u.headers)||void 0===c?void 0:c.location;if(o){let t=o.replace(this.storeUrl,this.localUrl);e.redirect(t);return}e.body="";return}if(!t.toString().startsWith(20)){let e=`${this.storeUrl}${q}`,o={...f,...this.previewQuery,ignoreRedirect:!0,dev_mode:1},i=null==r?void 0:null===(v=r.response)||void 0===v?void 0:v.headers,s=(0,g.getXResponseId)(i);m.default.log(`request proxy error: ${t} ${e} responseId=${s} ${JSON.stringify(o)}`);let l=(0,g.shouldSuppressThemeProxyWarning)(q,t);(!l||process.env.DEBUG)&&console.log((0,g.formatNonStart20ProxyError)({errorCode:t,requestUrl:e,requestQuery:o,headers:i})),(0,g.reportNonStart20ProxyError)({errorCode:t,requestUrl:e,requestQuery:o,headers:i,method:w,responseData:null==r?void 0:null===(y=r.response)||void 0===y?void 0:y.data,level:(400===t||404===t)&&l?"warning":void 0})}e.body=null==r?void 0:null===(l=r.response)||void 0===l?void 0:l.data}}),e.use(l.routes()).use(l.allowedMethods()),e.listen(this.port,async()=>{let e=await (0,v.startThemeService)({themeId:this.themeId,mode:this.mode,cwd:this.cwd,sse:this.streams,includeFilter:this.includeFilter,ignoreFilter:this.ignoreFilter,editorSync:this.editorSync});this.previewQuery.themeId=null==e?void 0:e.themeId,this.printInfo()}),e}printInfo(){let{storeUrl:t}=this,{themeId:r}=this.previewQuery,o=`${t}/admin/theme-editor/editing/Home?themeId=${r}&dev_mode=1`,i=`${t}/?${e.default.stringify({...this.previewQuery,dev_mode:1})}`,{localUrl:s}=this,l=(0,c.getRelativePath)(this.cwd);console.log((0,u.getMessage)("theme.serve.serving",{path:l||"."})),console.log(),console.log((0,u.getMessage)("theme.serve.print_theme_id",{theme_id:r})),console.log(),console.log((0,u.getMessage)("core.context.open_url",{url:s})),console.log(),console.log((0,u.getMessage)("theme.serve.customize_or_preview",{editor_url:o,preview_url:i}))}static getRequestBody(t,r){if(t.includes("multipart/form-data")){let e=new l.default;for(let t in r)Object.prototype.hasOwnProperty.call(r,t)&&e.append(t,r[t]);return{body:e,headers:e.getHeaders()}}if(t.includes("application/x-www-form-urlencoded")){let t=e.default.stringify(r);return{body:t,headers:{"Content-Type":"application/x-www-form-urlencoded"}}}return{body:r,headers:{}}}get localUrl(){return`http://127.0.0.1:${this.port}`}constructor({port:e,liveReload:t,path:r,themeEditorSync:o},i,s){super("theme:serve"),f(this,"cwd",void 0),f(this,"port",void 0),f(this,"previewQuery",void 0),f(this,"storeUrl",void 0),f(this,"mode",void 0),f(this,"streams",void 0),f(this,"includeFilter",void 0),f(this,"ignoreFilter",void 0),f(this,"editorSync",void 0),f(this,"themeId",void 0),this.cwd=r,this.port=e,this.storeUrl=a.default.currentStore,this.mode=t,this.streams=new d.SSEQueue,this.ignoreFilter=i.ignore,this.includeFilter=i.include,this.editorSync=o,this.themeId=s,this.previewQuery={preview:1,themeId:""},this.start()}}
|
|
10
10
|
//# sourceMappingURL=server.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
"use strict";var e,t,r;Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(exports,{ECategory:()=>e,ERegisterType:()=>t,EExtensionState:()=>r,http:()=>R,authHttp:()=>L,changeBaseURL:()=>
|
|
1
|
+
"use strict";var e,t,r;Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(exports,{ECategory:()=>e,ERegisterType:()=>t,EExtensionState:()=>r,http:()=>R,authHttp:()=>L,changeBaseURL:()=>m,createExtensionInstance:()=>U,pushExtension:()=>C,getAppList:()=>A,getAppExtList:()=>N,getPartnerList:()=>y,getStoreList:()=>I,getAccessToken:()=>H,getAppInfo:()=>b,getStoreInfo:()=>x,getFunctionTemplates:()=>q,registerFunction:()=>B,pushFunction:()=>M});const n=g(require("form-data")),o=g(require("axios")),a=g(require("../../helpers/config")),s=require("./const"),i=g(require("../../utils/debug")),u=require("../../utils/error"),l=require("../../utils/ui/render"),d=require("../../utils/messages"),c=require("../../utils/misc"),p=require("../../helpers/monitoring"),E=require("../../utils/const"),f=g(require("../../utils/winston"));function g(e){return e&&e.__esModule?e:{default:e}}function _(e){return`${e}/api/v1/cli/app/ext`}function T(e){return`${e}/api/v3/cli/app/ext`}function O(e){return`${e}/api/v1/cli`}function h(e){return`${e}/api/v3/cli`}function v(e,t={}){let r=e=>{let{loginInfo:t,dfpToken:r,currentPartner:n}=a.default;if(t){n&&(t.a_dc_partnerid=n.id,Object.assign(e.headers,{dc_partner_f:"1"}));let o=Object.keys(t).map(e=>`${e}=${t[e]}`).join(";");Object.assign(e.headers,{cookie:o,"dfp-token":r||""})}};e.interceptors.request.use(e=>(i.default.printRequest(e),t.useThemeAuth&&r(e),e.data instanceof n.default&&Object.assign(e.headers,e.data.getHeaders()),f.default.logHttp({type:"request",method:e.method,url:e.baseURL+e.url,params:e.params}),e),e=>Promise.reject(e)),e.interceptors.response.use(e=>{var t,r,n,o,l,E,g,_;let T=(null==e?void 0:null===(t=e.data)||void 0===t?void 0:t.success)||(null==e?void 0:null===(r=e.data)||void 0===r?void 0:r.code)==="SUCCESS",O=null==e?void 0:null===(n=e.data)||void 0===n?void 0:n.code,{config:h}=e,v=(0,c.getUrlOrigin)(h.baseURL);i.default.printResponse(h,e),(0,p.reportHttpRes)(e);let R=(null==e?void 0:null===(o=e.headers)||void 0===o?void 0:o.traceid)||(null==e?void 0:null===(l=e.data)||void 0===l?void 0:l.trace_id)||(null==e?void 0:null===(E=e.data)||void 0===E?void 0:E.traceId)||"";if(f.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:R}),O===s.ERRORS.PARTNER_INFO_NOT_COMPLETE)throw a.default.deleteCurrentPartner(),new u.ApiError({code:O,message:e.data.message,tryMessage:v?(0,d.getMessage)("extension.create.connect.try_partner_info_not_complete_message",{link:`${v}/info/fill`}):void 0});if(O===s.ERRORS.USER_NOT_LOGIN)throw new u.ApiError({code:O,message:e.data.message,tryMessage:(0,d.getMessage)("core.whoami.not_logged_in")});if("boolean"==typeof T&&!1===T){let t="";try{t=JSON.stringify(e.data,null,2)}catch(r){t=`error code: ${O}
|
|
2
2
|
error message: ${null==e?void 0:null===(_=e.data)||void 0===_?void 0:_.message}
|
|
3
3
|
trace id: ${R}`}throw new u.AbortError(`url: ${e.config.baseURL+e.config.url}`,t)}return null===(g=e.data)||void 0===g?void 0:g.data},e=>{if((0,p.reportBug)(e),e.response){var t,r,n,o;(0,p.reportHttpRes)(e.response);let{response:a}=e,s=a.config.url,i=(null==a?void 0:null===(t=a.data)||void 0===t?void 0:t.trace_id)||(null==a?void 0:null===(r=a.data)||void 0===r?void 0:r.traceid)||(null==a?void 0:null===(n=a.data)||void 0===n?void 0:n.traceId)||(null==a?void 0:null===(o=a.headers)||void 0===o?void 0:o["x-request-id"])||"";(0,l.renderFatalError)(Error(`url: ${s}
|
|
4
4
|
status: ${a.status}
|
|
5
5
|
traceId: ${i}
|
|
6
|
-
${e}`))}return Promise.reject(e)})}const R=o.default.create({baseURL:_(s.DEFAULT_EXTENSION_ENDPOINT),maxBodyLength:1/0,maxContentLength:1/0,headers:{"Content-Type":"application/json","User-Agent":E.CLI_USER_AGENT}}),P=o.default.create({baseURL:T(s.DEFAULT_EXTENSION_ENDPOINT),maxBodyLength:1/0,maxContentLength:1/0,headers:{"Content-Type":"application/json","User-Agent":E.CLI_USER_AGENT}});v(R),v(P);const L=o.default.create({baseURL:O(s.DEFAULT_EXTENSION_ENDPOINT),maxBodyLength:1/0,maxContentLength:1/0,headers:{"Content-Type":"application/json"}}),S=o.default.create({baseURL:h(s.DEFAULT_EXTENSION_ENDPOINT),maxBodyLength:1/0,maxContentLength:1/0,headers:{"Content-Type":"application/json"}});function
|
|
6
|
+
${e}`))}return Promise.reject(e)})}const R=o.default.create({baseURL:_(s.DEFAULT_EXTENSION_ENDPOINT),maxBodyLength:1/0,maxContentLength:1/0,headers:{"Content-Type":"application/json","User-Agent":E.CLI_USER_AGENT}}),P=o.default.create({baseURL:T(s.DEFAULT_EXTENSION_ENDPOINT),maxBodyLength:1/0,maxContentLength:1/0,headers:{"Content-Type":"application/json","User-Agent":E.CLI_USER_AGENT}});v(R),v(P);const L=o.default.create({baseURL:O(s.DEFAULT_EXTENSION_ENDPOINT),maxBodyLength:1/0,maxContentLength:1/0,headers:{"Content-Type":"application/json"}}),S=o.default.create({baseURL:h(s.DEFAULT_EXTENSION_ENDPOINT),maxBodyLength:1/0,maxContentLength:1/0,headers:{"Content-Type":"application/json"}});function m(e){let t=s.EXTENSION_ENDPOINTS[e];R.defaults.baseURL=_(t),L.defaults.baseURL=O(t),P.defaults.baseURL=T(t),S.defaults.baseURL=h(t)}v(L,{useThemeAuth:!0}),v(S,{useThemeAuth:!0}),function(e){e.CHECKOUT="CHECKOUT",e.THEME="THEME",e.PIXELS="WEB_PIXEL",e.SHOPPER="SHOPPER",e.POST_PURCHASE="POST_PURCHASE"}(e||(e={})),function(e){e.THEME_APP_BLOCK="THEME_APP_BLOCK",e.CHECKOUT_UI="CHECKOUT_UI",e.PIXELS="WEB_PIXEL_EXT",e.SHOPPER_CUSTOM_BLOCK="SHOPPER_CUSTOM_BLOCK",e.SHOPPER_CUSTOM_WEB_PAGE="SHOPPER_CUSTOM_WEB_PAGE",e.POST_PURCHASE="POST_PURCHASE_EXT"}(t||(t={})),function(e){e.DRAFT="DRAFT",e.WORKING_DRAFT="WORKING_DRAFT"}(r||(r={}));const U=e=>P.post("/register",JSON.stringify({...e})),C=e=>P.post("/push",e),A=e=>S.post("/auth/app/list",e),N=e=>S.post("/auth/app/ext/list",e),y=()=>S.post("/auth/partner/list");function I(e){return S.post("/auth/store/list",{partnerId:e})}function H(e){return S.post("/auth/generate/accessToken",e)}function b(e,t){return S.post("/auth/app/queryByAppKey",{partnerId:e,appKey:t})}function x(e,t){return S.post("/auth/store/queryByHandle",{partnerId:e,handle:t})}function q(){return S.post("/function/template/list")}function B(e){return S.post("/function/register",e)}function M(e){return S.post("/function/deploy",e)}
|
|
7
7
|
//# sourceMappingURL=api.js.map
|
|
@@ -1,2 +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,{getBaseEndPoint:()=>
|
|
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,{getBaseEndPoint:()=>i,getOpenApiHttp:()=>a});const e=s(require("axios")),t=s(require("form-data")),r=s(require("../../utils/debug")),o=require("../../helpers/monitoring"),n=s(require("../../utils/format-protocol"));function s(e){return e&&e.__esModule?e:{default:e}}function i(e){return(0,n.default)(e)+"/admin/openapi/v20230301"}function a(n,s){let a=e.default.create({baseURL:i(s),maxBodyLength:1/0,maxContentLength:1/0,headers:{"Content-Type":"application/json",Authorization:`Bearer ${n}`}});return a.interceptors.request.use(e=>(r.default.printRequest(e),e.data instanceof t.default&&Object.assign(e.headers,e.data.getHeaders()),e),e=>Promise.reject(e)),a.interceptors.response.use(e=>{let{config:t}=e;return r.default.printResponse(t,e),(0,o.reportHttpRes)(e),e.data},e=>{var t,r;e.response&&(0,o.reportHttpRes)(e.response),(0,o.reportBug)(e);let n=null===(t=e.response)||void 0===t?void 0:null===(r=t.data)||void 0===r?void 0:r.errors;if(n)throw Error(n);return Promise.reject(e)}),a}
|
|
2
2
|
//# sourceMappingURL=openapi.js.map
|
|
@@ -1,2 +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,{enterStore:()=>c,fetchUdbCookie:()=>p,verifyLogin:()=>m,default:()=>g});const 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,{enterStore:()=>c,fetchUdbCookie:()=>p,verifyLogin:()=>m,default:()=>g});const e=u(require("axios")),t=require("../../helpers/monitoring"),r=u(require("../../helpers/config")),o=require("./const"),s=u(require("../../utils/debug")),i=require("../../helpers/open-admin-url"),a=u(require("../../utils/winston")),n=require("../../utils/const");function u(e){return e&&e.__esModule?e:{default:e}}const d="/udb/lgn/login/check.do";let l=e.default.create({timeout:5e3,withCredentials:!0});const c=(e,t)=>l.get(`/admin/api/website/admin/merchant/stores/${e}/token`,t),p=(t,r)=>{let s=(0,o.getAppId)(r);return e.default.create({timeout:1e4}).get(`${(0,i.replaceAdminHandle)(r)}/udb/lgn/cas/callback.do?ticket=${t}&appid=${s}&subappid=${o.SUB_APP_ID}`)},m=e=>{let t=(0,o.getAppId)(e),s=`${d}?appid=${t}&subappid=${o.SUB_APP_ID}`,{loginInfo:i}=r.default,a="";return i&&(a=Object.keys(i).map(e=>`${e}=${i[e]}`).join(";")),l.get(s,{headers:{cookie:a}})},f=r=>{let o=new URL(r);o.pathname="/",(l=e.default.create({baseURL:o.href,timeout:5e3,withCredentials:!0,headers:{"User-Agent":n.CLI_USER_AGENT}})).interceptors.request.use(e=>(s.default.printRequest(e),a.default.logHttp({type:"request",method:e.method,url:e.baseURL+e.url,params:e.params}),e),e=>Promise.reject(e)),l.interceptors.response.use(e=>{var o,i,n,u;if(s.default.printResponse(e.config,e),(0,t.reportHttpRes)(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===(o=e.data)||void 0===o?void 0:o.traceId)||(null==e?void 0:null===(i=e.data)||void 0===i?void 0:i.trace_id)||(null==e?void 0:null===(n=e.headers)||void 0===n?void 0:n["x-request-id"])||""}),null===(u=e.config.url)||void 0===u?void 0:u.includes(d))return e;if(302===e.status)return Promise.reject(Error("Your store domain does not exist, please check your store domain!"));if(!e.data.success){if("SMS0804"===e.data.code)return Promise.reject(Error(`No permission to access this store domain: ${r}`));let o=Error(e.data.msg?`Request Error:: code: ${e.data.code}; msg: ${e.data.msg}`:"Request Error:: Please retry again!");return(0,t.reportBug)(o),Promise.reject(o)}return e},e=>(e.response&&(0,t.reportHttpRes)(e.response),(0,t.reportBug)(e),Promise.reject(e)))},g=f;
|
|
2
2
|
//# sourceMappingURL=api.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(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,{authority:()=>l,default:()=>o});const e=n(require("../../helpers/config")),r=n(require("../../helpers/open-admin-url")),t=n(require("../../utils/get-url-handle")),u=n(require("./api")),a=n(require("./create-server")),i=n(require("./store-enter"));function n(e){return e&&e.__esModule?e:{default:e}}const l=async r=>{(0,u.default)(r);let n=await (0,a.default)(r),l=await (0,i.default)((0,t.default)(r),n),o={...n,...l};return e.default.replaceLoginInfo(o,r),o},o=async e=>{await (0,r.default)(e);let t=await l(e);return t};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,o){for(var r in o)Object.defineProperty(e,r,{enumerable:!0,get:o[r]})}(exports,{createNewTheme:()=>
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,o){for(var r in o)Object.defineProperty(e,r,{enumerable:!0,get:o[r]})}(exports,{createNewTheme:()=>h,getThemes:()=>R,getThemeInfo:()=>_,uploadTheme:()=>O,getThemeFileList:()=>T,deleteFiles:()=>b,updateFile:()=>S,createFile:()=>$,downloadTheme:()=>I,getThemeFileDetail:()=>C,themeCheck:()=>q});const e=f(require("axios")),o=f(require("form-data")),r=f(require("chalk")),t=f(require("../../../helpers/config")),i=require("../../../utils/const"),l=require("../../../utils/error"),n=require("../const"),s=f(require("../../../utils/debug")),d=f(require("../../../utils/winston")),u=require("../../../helpers/monitoring"),a=f(require("../no-second-check")),c=require("../../../utils/ui/render");function f(e){return e&&e.__esModule?e:{default:e}}const{loginInfo:v,currentStore:g}=t.default;function E(e){var o,r;let{monitoring:t}=e.config,i=null==e?void 0:null===(o=e.data)||void 0===o?void 0:o.code;return!(null==t?void 0:null===(r=t.ignoreBusinessCodes)||void 0===r?void 0:r.some(e=>String(e)===String(i)))}function p(e,o){E(o)&&(0,u.reportHttpError)(e,{response:o,source:"theme-3"})}const m=e.default.create({baseURL:`${g}/api/website/admin/theme/cli`,maxContentLength:1/0,maxBodyLength:1/0});m.interceptors.request.use(e=>{if(v){let o=Object.keys(v).map(e=>`${e}=${v[e]}`).join(";"),r=t.default.dfpToken||"";Object.assign(e.headers,{cookie:o,"dfp-token":r,"User-Agent":i.CLI_USER_AGENT})}return(null==e?void 0:e.data)instanceof o.default&&Object.assign(e.headers,null==e?void 0:e.data.getHeaders()),e}),m.interceptors.response.use(async e=>{var o,t,i,u,f,v,g,E,m,h;if("stream"===e.config.responseType)return e;let R=null==e?void 0:null===(o=e.data)||void 0===o?void 0:o.success,_=null==e?void 0:null===(t=e.data)||void 0===t?void 0:t.code,{config:O}=e;if(s.default.printResponse(O,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===(i=e.data)||void 0===i?void 0:i.trace_id)||(null==e?void 0:null===(u=e.headers)||void 0===u?void 0:u["x-request-id"])||""}),n.ERROR_CODES.THEME_COUNT_LIMIT.includes(_)){let o=Error(n.ERRORS.THEME_COUNT_LIMIT);throw p(o,e),o}if(n.ERROR_CODES.DEVELOPMENT_THEME_NOT_EXIST.includes(_)){let o=Object.assign(Error(n.ERRORS.THEME_IS_INVALID),{code:String(_)});throw p(o,e),o}if(n.ERROR_CODES.FEATURE_KEY_NOT_EXIST.includes(_)){let o=Error(n.ERRORS.FEATURE_KEY_NOT_EXIST);throw p(o,e),o}if(n.ERROR_CODES.NO_SECOND_CHECK.includes(_))await a.default.run();else if(n.ERROR_CODES.INVALID_FILE.includes(_)){console.log();let{errors:o}=e.data.data;o.forEach(({filename:e,message:o})=>{(0,c.renderInfo)({headline:e,body:`${r.default.red("[error]: ")}${o}`})});let t=new l.AbortError(`Theme Check Summary.
|
|
2
2
|
|
|
3
|
-
${o.length} error${1===o.length?"":"s"} found.`);throw
|
|
4
|
-
${JSON.stringify(null!==(
|
|
3
|
+
${o.length} error${1===o.length?"":"s"} found.`);throw p(t,e),t}if(!R){let o=new l.AbortError(`${null!==(E=null==e?void 0:null===(v=e.config)||void 0===v?void 0:v.baseURL)&&void 0!==E?E:""}${null!==(m=null==e?void 0:null===(g=e.config)||void 0===g?void 0:g.url)&&void 0!==m?m:""}
|
|
4
|
+
${JSON.stringify(null!==(h=null==e?void 0:e.data)&&void 0!==h?h:{},null,2)}`);throw p(o,e),o}return null==e?void 0:null===(f=e.data)||void 0===f?void 0:f.data},e=>{var o,r,t,i,n,s,a;let c;let f=null===(o=e.response)||void 0===o?void 0:o.status,v=null===(r=e.response)||void 0===r?void 0:r.data,g=(null===(t=e.config)||void 0===t?void 0:t.baseURL)?`${e.config.baseURL}${null!==(n=e.config.url)&&void 0!==n?n:""}`:"",p=(null!==(s=null===(i=e.config)||void 0===i?void 0:i.method)&&void 0!==s?s:"").toUpperCase();if(e.response){let o=(null==v?void 0:v.message)||(null==v?void 0:v.msg)||e.message||"Unknown error";c=`Request failed (${f}): ${o}`}else c=`Network error: ${e.message||"Unable to connect to server"}`;d.default.log(`[API Error] ${p} ${g} - ${c}`),d.default.logError(e);let m=null!==(a=null==v?void 0:v.code)&&void 0!==a?a:e.code,h=Object.assign(new l.AbortError(c),{...void 0===f?{}:{status:f},...void 0===m?{}:{code:String(m)}});return h.stack=e.stack,(!e.response||E(e.response))&&(0,u.reportHttpError)(h,{response:e.response,requestConfig:e.config,source:"theme-3"}),Promise.reject(h)});const h=e=>m.post("/theme/upload",e),R=async()=>m.get("/themes"),_=(e,o)=>m.get(`/theme/${e}`,{monitoring:o}),O=e=>m.post("/files/upload",e),T=e=>m.get("/files",{params:{themeId:e}}),b=(e,o)=>m.delete("/files",{data:{themeId:e,fileNames:o}}),S=e=>m.put("/file",e),$=e=>m.post("/file",e),I=e=>m.get(`/theme/${e}/download`,{responseType:"stream"}),C=(e,o)=>m.get("/files",{params:{themeId:e,fileNames:o.join(",")}}),q=e=>m.post("/theme/check",e);
|
|
5
5
|
//# sourceMappingURL=api.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(
|
|
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,{default:()=>w,formatDevelopmentZipCleanupError:()=>g});const e=h(require("pathe")),t=h(require("fs-extra")),i=h(require("fast-glob")),r=h(require("adm-zip")),l=require("../../../utils/fs"),n=h(require("../../../utils/debug")),a=require("../../../utils/path"),o=h(require("../../../utils/colors")),u=require("../utils"),c=h(require("../../../utils/winston")),d=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 n in e)if("default"!==n&&Object.prototype.hasOwnProperty.call(e,n)){var a=l?Object.getOwnPropertyDescriptor(e,n):null;a&&(a.get||a.set)?Object.defineProperty(r,n,a):r[n]=e[n]}return r.default=e,i&&i.set(e,r),r}(require("../../../utils/logger")),f=require("../../../utils/error");function s(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)}function y(e,i,r=!0){let l=t.default.lstatSync(e);if(l.isSymbolicLink())t.default.symlinkSync(t.default.readlinkSync(e),i),r&&t.default.unlinkSync(e);else if(l.isDirectory()){if(t.default.existsSync(i))throw Object.assign(Error("Development ZIP path changed"),{code:"EEXIST"});t.default.renameSync(e,i)}else t.default.linkSync(e,i),r&&t.default.unlinkSync(e)}function m(i,r){let l,n;try{l=t.default.lstatSync(i)}catch(e){if("ENOENT"===e.code)return;throw e}if(l.dev!==r.dev||l.ino!==r.ino)return;let a=t.default.mkdtempSync(e.default.join(e.default.dirname(i),".shopline-dev-cleanup-")),o=e.default.join(a,e.default.basename(i));try{t.default.renameSync(i,o)}catch(r){let e;try{t.default.rmdirSync(a)}catch(t){e=t}if("ENOENT"===r.code){if(e)throw e;return}throw e&&c.default.log(g(e,"unlink",i).message),r}try{let e=t.default.lstatSync(o);e.dev===r.dev&&e.ino===r.ino?t.default.unlinkSync(o):y(o,i)}catch(e){n=e}if(n&&t.default.existsSync(o))try{y(o,i,!1)}catch(e){c.default.log(g(e,"unlink",i).message)}try{t.default.rmdirSync(a)}catch(e){n||(n=e)}if(n)throw n}function g(t,i,r){let l="object"==typeof t&&t&&"code"in t?String(t.code):"UNKNOWN";return new f.AbortError(`Development ZIP cleanup failed: stage=${i} file=${e.default.basename(r)} code=${l}`)}function v(e){return"string"!=typeof e||"."===e||".."===e||Array.from(e).some(e=>32>e.charCodeAt(0)||'<>:"/\\|?*'.includes(e))}class w extends n.default{pack(e){let i=this.targetZipFilePath,r=this.createZip(e);return(0,l.pathExists)(i)&&t.default.unlinkSync(i),c.default.log(`Write zip file to ${i}...`),r.writeZip(i,e=>{if(e)throw e}),c.default.log(`Write zip file to ${i} success`),i}createZip(t){let l=new r.default,n=i.default.sync(t||u.themeDirectoryGlobList3,{cwd:this.cwd});return c.default.log("Pack theme..."),n.forEach(t=>{let i=e.default.dirname(t),r=e.default.join(this.cwd,t);if(this.includeFilter&&this.ignoreFilter){let e=this.ignoreFilter.match(t),n=this.includeFilter.match(t);!e&&n&&(this.silent||d.info(`adding ${o.default.magenta(t)}`,!0),this.log(`adding ${o.default.magenta(t)}`),l.addLocalFile(r,i))}else this.silent||d.info(`adding ${o.default.magenta(t)}`,!0),this.log(`adding ${o.default.magenta(t)}`),l.addLocalFile(r,i)}),l}packDevelopment(e){let i,r;let l=this.developmentZipFilePath,n=this.createZip(e);c.default.log(`Write zip file to ${l}...`);try{try{i=t.default.openSync(l,"wx",384)}catch(e){throw g(e,"package",l)}let e=t.default.fstatSync(i);r={dev:e.dev,ino:e.ino},t.default.writeFileSync(i,n.toBuffer())}catch(e){if(r)try{m(l,r)}catch(e){c.default.log(g(e,"package",l).message)}if(void 0!==i)try{t.default.closeSync(i)}catch(e){c.default.log(g(e,"package",l).message)}throw e}c.default.log(`Write zip file to ${l} success`);let a=!0,o=i;return{path:l,cleanup:async()=>{let e;if(a){a=!1;try{m(l,r)}catch(t){e=t}try{t.default.closeSync(o)}catch(t){e||(e=t)}if(e)throw e}}}}removeStaleDevelopmentZip(){let e;let i=this.developmentZipFilePath;try{e=t.default.lstatSync(i)}catch(e){if("ENOENT"===e.code)return;throw g(e,"startup-cleanup",i)}if(!e.isFile()&&!e.isSymbolicLink())throw new f.AbortError("The development ZIP path is not a regular file or symbolic link");try{t.default.unlinkSync(i)}catch(e){throw g(e,"startup-cleanup",i)}}get targetZipFilePath(){let t=(0,u.getThemeInfo3)(this.cwd),i=`${t.theme_name}-${t.theme_version}.zip`;return e.default.join(this.cwd,i)}get developmentZipFilePath(){let t=(0,u.getThemeInfo3)(this.cwd),i=`${t.theme_name}-${t.theme_version}-dev.zip`,r=e.default.resolve(this.cwd),l=e.default.resolve(r,i);if(v(t.theme_name)||v(t.theme_version)||e.default.dirname(l)!==r)throw new f.AbortError("Invalid theme name or version for development ZIP");return l}constructor({cwd:e,includeFilter:t,ignoreFilter:i,silent:r=!1}){super("theme:package"),s(this,"cwd",(0,a.cwd)()),s(this,"includeFilter",void 0),s(this,"ignoreFilter",void 0),s(this,"silent",void 0),e&&(this.cwd=e),this.silent=r,this.includeFilter=t,this.ignoreFilter=i}}
|
|
2
2
|
//# sourceMappingURL=package.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>h});const e=p(require("fs-extra")),t=require("../../../helpers/monitoring"),i=require("../../../utils/error"),l=p(require("../../../utils/winston")),a=p(require("../../../utils/get-objects-diff")),r=require("../inquirer"),s=require("../../../utils/messages"),o=p(require("./file")),n=require("./api"),f=p(require("../operation")),u=p(require("../../../utils/debug")),c=require("../../../utils/ui/render");function d(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}}class h extends u.default{async syncRemoteUpdate(){let{local:e,remote:t}=await this.themeService.getFileChecksums();l.default.log("[Remote Watch] Get remote and local diffs...");let i=await (0,a.default)(t,e);this.log("remote diffs: %O",i),l.default.log(`[Remote Watch] Found ${i.length} remote diffs, applying...`),await this.updateStrategy(i,!0)}async updateStrategy(e,t){let{local:i,remote:a}=await h.prepareUpdateDiffs(e,t);if(this.log("local diffs: %O",i),this.log("remote diffs: %O",a),i.length&&l.default.log(`Run local diffs ${JSON.stringify(i)}...`),a.length)for(let{type:e,key:t}of(l.default.log(`Run remote diffs ${JSON.stringify(a)}...`),a)){let i=new o.default(t,this.themeService.cwd);await this.processRemoteDiffFile(e,i);let l="update"===e?"get":e,a=new f.default(l,i).asSyncMessage();console.log(a)}}removeUpdateToLocalFiles(e){let t=this.updateToLocalFiles.findIndex(t=>t.fileName===e);-1!==t&&this.updateToLocalFiles.splice(t,1)}shouldUpdateToLocal(e){return this.updateToLocalFiles.find(t=>t.fileName===e)}appendUpdateToLocalFiles(e){this.updateToLocalFiles.find(t=>t.fileName===e.fileName)||this.updateToLocalFiles.push(e)}async processRemoteDiffFile(t,i){let{fullPath:a}=i;if("create"===t||"update"===t){l.default.log(`Get file (${i.fileName}) information: ${i.fileName}`);let t=await this.getFileInfo(i.fileName);l.default.log("Writing file content"),e.default.ensureFileSync(a),this.appendUpdateToLocalFiles(i),e.default.writeFileSync(a,t)}else"delete"===t&&(l.default.log(`Delete file (${i.fileName})`),this.appendUpdateToLocalFiles(i),e.default.unlinkSync(a))}async getFileInfo(e){let t=await (0,n.getThemeFileDetail)(this.themeService.themeId,[e]);return t[0].content}static async prepareUpdateDiffs(e,t){let i={local:[],remote:[]},a=e.length,s=e=>"create"===e?"delete":"delete"===e?"create":"update",o=(e,t)=>{let l=t.filter(e=>{let t=e.key;return(t.startsWith("theme.config")||t.startsWith("templates/")||/^sections\/[^/]+$/.test(t))&&t.endsWith(".json")});"remote"===e?i.remote=i.remote.concat(l):i.local=i.local.concat(l.map(e=>({...e,type:s(e.type)})))};if(!a)return i;if(t)return o("remote",e),i;l.default.log("Update conflicts files...");let[{key:n},...f]=e,u=await h.promptUpdateStrategy(n);if(o(u,[e[0]]),1===a)return i;let c=await (0,r.askForApplyToAll)(f.length);for await(let e of(console.log(),f))if(c)l.default.log("Apply to all files to solve conflict files..."),o(u,f);else{let t=await this.promptUpdateStrategy(e.key);l.default.log(`Apply ${e.key} strategy to solve conflict files...`),console.log(),o(t,[e])}return i}static async promptUpdateStrategy(e){let t=(0,s.getMessage)("theme.serve.syncer.update_strategy.title_content",{file_name:e});console.log(t);let i=await (0,r.askForUpdateStrategy)();return i}start(){this.stopped=!1,this.timer=setTimeout(async()=>{try{await this.syncRemoteUpdate(),this.stopped||this.start()}catch(l){if((0,t.reportBugOnce)(l),(null==l?void 0:l.code)==="ECONNRESET"){this.stopped||this.start();return}this.stop();let e=l instanceof i.AbortError?l:new i.AbortError(l instanceof Error?l.message:String(null!=l?l:""));e!==l&&l instanceof Error&&(e.stack=l.stack,e.cause=l),(0,c.renderFatalError)(e)}},3e3)}stop(){this.stopped=!0,this.timer&&(clearTimeout(this.timer),this.timer=null)}constructor(e){super("theme:serve:update"),d(this,"themeService",void 0),d(this,"timer",void 0),d(this,"stopped",void 0),d(this,"updateToLocalFiles",void 0),this.themeService=e,this.timer=null,this.stopped=!0,this.updateToLocalFiles=[]}}
|
|
2
2
|
//# sourceMappingURL=remote-watcher.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
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,{default:()=>_,startThemeService:()=>R,themePresenter:()=>C});const e=k(require("fast-glob")),t=k(require("form-data")),r=k(require("fs")),a=k(require("inquirer")),i=k(require("chokidar")),s=k(require("ora")),l=require("lodash"),n=k(require("../../../utils/debug")),h=k(require("../../../helpers/config")),o=require("../../../utils/messages"),d=require("../../../helpers/sentry"),u=require("../../../utils/path"),c=k(require("../../../utils/winston")),m=require("./api"),f=require("../types"),p=require("../utils"),g=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=O(t);if(r&&r.has(e))return r.get(e);var a={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&Object.prototype.hasOwnProperty.call(e,s)){var l=i?Object.getOwnPropertyDescriptor(e,s):null;l&&(l.get||l.set)?Object.defineProperty(a,s,l):a[s]=e[s]}return a.default=e,r&&r.set(e,a),a}(require("../../../utils/logger")),T=k(require("../../../utils/get-objects-diff")),y=k(require("./file")),v=k(require("./package")),w=require("../../../utils/error"),E=require("../const"),S=k(require("../../../utils/colors")),F=k(require("./remote-watcher")),D=require("../../../utils/ui/render"),I=require("../watcher-monitoring");function b(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function k(e){return e&&e.__esModule?e:{default:e}}function O(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(O=function(e){return e?r:t})(e)}const q=a.default.createPromptModule();function N(e,t){let r=e instanceof w.AbortError?e:new w.AbortError(e instanceof Error?e.message:`Theme file ${t} failed with a non-Error value`);e instanceof Error&&r!==e&&(r.stack=e.stack,r.cause=e),(0,I.reportThemeWatcherError)(r,{themeOs:"3",operation:t}),(0,D.renderFatalError)(r)}class _ extends n.default{async watchRemote(){this.editorSync&&(this.remoteWatcher=new F.default(this),this.remoteWatcher.start())}watch(){this.watchRemote();let e=i.default.watch((0,p.getThemeDirectory3)(this.cwd),{ignored:/(^|[/\\])\../,ignoreInitial:!0});e.on("ready",()=>{e.on("add",(...e)=>{let t=e[0];c.default.log(`Add theme file: ${t}`),this.shouldWatchFile(t)&&this.onAdd(t).catch(e=>{N(e,"create")})}),e.on("change",(...e)=>{let t=e[0];c.default.log(`Change theme file: ${t}`),this.shouldWatchFile(t)&&this.onChange(t).catch(e=>{N(e,"update")})}),e.on("unlink",(...e)=>{let t=e[0];c.default.log(`Unlink theme file: ${t}`),this.shouldWatchFile(t)&&this.onUnlink(t).catch(e=>{N(e,"delete")})})})}shouldWatchFile(e){var t;let r=(0,p.parseFileName)(e,this.cwd);if(null===(t=this.remoteWatcher)||void 0===t?void 0:t.shouldUpdateToLocal(r)){this.remoteWatcher.removeUpdateToLocalFiles(r);return}let a=this.ignoreFilter.match(r),i=this.includeFilter.match(r);return!a&&i}async onAdd(e){var a,i;let l=(0,p.parseFileName)(e,this.cwd),n=(0,s.default)((0,o.getMessage)("theme.serve.syncer.create_strategy.success",{file_name:l})).start();try{let i=new t.default;i.append("file",r.default.createReadStream(e)),i.append("themeId",this.themeId),i.append("fileName",l),await (0,m.createFile)(i),null===(a=this.sse)||void 0===a||a.broadcast(this.getSseData(e,"add")),n.succeed()}catch(t){let e=(0,p.formatThemeFileUploadError)(t,{fileName:l,themeId:String(null!==(i=this.themeId)&&void 0!==i?i:"")});(0,I.reportThemeWatcherError)(e,{themeOs:"3",operation:"create"}),(0,D.renderFatalError)(e),n.fail()}}async onChange(e){var a,i;let l=(0,p.parseFileName)(e,this.cwd),n=(0,s.default)((0,o.getMessage)("theme.serve.syncer.update_strategy.success",{file_name:l})).start();try{let i=new t.default;i.append("file",r.default.createReadStream(e)),i.append("themeId",this.themeId),i.append("fileName",l),await (0,m.updateFile)(i),null===(a=this.sse)||void 0===a||a.broadcast(this.getSseData(e)),n.succeed()}catch(t){let e=(0,p.formatThemeFileUploadError)(t,{fileName:l,themeId:String(null!==(i=this.themeId)&&void 0!==i?i:"")});(0,I.reportThemeWatcherError)(e,{themeOs:"3",operation:"update"}),(0,D.renderFatalError)(e),n.fail()}}async onUnlink(e){var t,r;let a=(0,p.parseFileName)(e,this.cwd),i=(0,s.default)((0,o.getMessage)("theme.serve.syncer.delete_strategy.success",{file_name:a})).start();try{await (0,m.deleteFiles)(this.themeId,[a]),null===(t=this.sse)||void 0===t||t.broadcast(this.getSseData(e,"unlink")),i.succeed()}catch(t){let e=(0,p.formatThemeFileDeleteError)(t,{fileName:a,themeId:String(null!==(r=this.themeId)&&void 0!==r?r:"")});(0,I.reportThemeWatcherError)(e,{themeOs:"3",operation:"delete"}),(0,D.renderFatalError)(e),i.fail()}}getSseData(e,t){return"full-page"===this.mode||t&&["add","unlink"].includes(t)?{data:{reload_page:!0}}:{data:{modified:[(0,p.getRelativePath)(e,this.cwd)]}}}async syncTheme({nodelete:e}={nodelete:!1}){let t=(0,s.default)(`✨ Syncing theme #${this.themeId} on ${h.default.currentStore}`).start();c.default.log(`[Sync] Starting sync for theme #${this.themeId}...`);let{name:r,status:a}=await this.findOrCreateTheme(),{local:i,remote:l}=await this.getFileChecksums(),n=await (0,T.default)(i,l);if(c.default.log(`[Sync] Found ${n.length} diffs`),n.length){let t=[],i=[];if(n.forEach(e=>{switch(e.type){case"create":case"update":t.push(e);break;case"delete":i.push(e)}}),!e&&i.length){let e=i.map(e=>e.key);c.default.log(`[Sync] Deleting ${e.length} remote files...`),await (0,m.deleteFiles)(this.themeId,e)}if(t.length){let e=t.map(e=>e.key);c.default.log(`[Sync] Uploading ${e.length} files...`);let i=this.getThemeZipFormData({fileList:e,name:r,status:a});await (0,m.uploadTheme)(i)}}c.default.log(`[Sync] Theme #${this.themeId} synced successfully`),t.succeed()}getThemeZipFormData({fileList:e,status:a,name:i}){let s=new v.default({cwd:this.cwd}).pack(e),l=new t.default;return l.append("file",r.default.createReadStream(s)),l.append("themeId",this.themeId||""),l.append("status",a),l.append("name",i),l}async getFileChecksums(){let{localeFileChecksums:e}=this,t=await (0,m.getThemeFileList)(this.themeId),r=t.reduce((e,t)=>(e[t.name]=t.checksum||"",e),Object.create(null)),a=this.getFilterFileChecksums(e),i=this.getFilterFileChecksums(r);return{local:a,remote:i}}getFilterFileChecksums(e){let t=Object.keys(e).reduce((t,r)=>{let a=this.ignoreFilter.match(r),i=this.includeFilter.match(r);return!a&&i&&(t[r]=e[r]),t},{});return t}get localeFileChecksums(){return this.themeFiles().reduce((e,t)=>(e[t.fileName]=t.checksum,e),{})}themeFiles(){let t=e.default.sync(p.themeDirectoryGlobList3,{cwd:this.cwd,onlyFiles:!0,unique:!0});return t.map(e=>new y.default(e,this.cwd))}static async getThemeInfo(e,t){let{id:r,name:a,status:i,themeTypeVersion:s}=await (0,m.getThemeInfo)(e,t);return{id:r,name:a,status:i,themeTypeVersion:s}}async findOrCreateTheme(){try{let{id:e,name:t,status:r}=await _.getThemeInfo(this.themeId,{ignoreBusinessCodes:E.ERROR_CODES.DEVELOPMENT_THEME_NOT_EXIST});return{id:e,name:t,status:r}}catch(a){c.default.log(`[Sync] Theme #${this.themeId} not found (${a.message}), creating new development theme...`);let{id:e,name:t,status:r}=await this.createNewDevelopmentTheme();return{id:e,name:t,status:r}}}async createNewTheme({name:e,status:t}){let r=this.getThemeZipFormData({status:t,name:e}),{themeId:a}=await (0,m.createNewTheme)(r);return{id:a,name:e,status:t}}async createNewDevelopmentTheme(){let e=(0,p.generateDevThemeName)(),t=this.getThemeZipFormData({name:e,status:f.EThemeStatus.Development}),{themeId:r}=await (0,m.createNewTheme)(t);return this.themeId=r,h.default.developmentThemeId=r,h.default.developmentThemeName=e,{id:r,name:e,status:f.EThemeStatus.Development}}static async getValidDevelopmentInfo(){let e=h.default.developmentThemeId;return await _.isValidDevTheme(e)?{id:e,name:"",status:f.EThemeStatus.Development}:{id:"",name:(0,p.generateDevThemeName)(),status:f.EThemeStatus.Development}}static async isValidDevTheme(e){try{let t=await (0,m.getThemeInfo)(e,{ignoreBusinessCodes:E.ERROR_CODES.DEVELOPMENT_THEME_NOT_EXIST});if((null==t?void 0:t.status)===f.EThemeStatus.Development)return{id:t.id,name:t.name,status:t.status,themeTypeVersion:t.themeTypeVersion};return null}catch(e){return null}}static async chooseThemeList(e){let t=_.addDevelopmentTheme(await (0,m.getThemes)()),r=t.map(e=>({name:C(e,"short"),value:e.id})).filter(e=>e.value),{themeId:a}=await q([{type:"list",name:"themeId",message:{pull:"Select a theme to pull from",push:"Select theme to push to"}[e],pageSize:r.length,default:r[0].value,loop:!1,choices:r}]),{status:i,name:s,themeTypeVersion:l}=t.find(e=>e.id===a);return{id:a,name:s,status:i,themeTypeVersion:l}}static addDevelopmentTheme(e){let t=h.default.developmentThemeId,r=h.default.developmentThemeName;return t?e.concat({name:r,status:f.EThemeStatus.Development,id:t,themeTypeVersion:""}):e}static async package(e,t=(0,u.cwd)()){try{let e=new v.default({cwd:t});await e.pack()}catch(e){(0,p.handleError)(e)}}static async list(){try{c.default.log("Checking login..."),h.default.isLogin(),console.log((0,o.getMessage)("theme.list.title",{store:h.default.currentStore})),c.default.log("Printing theme list...");let e=await (0,m.getThemes)();e.forEach(e=>{console.log(C(e))}),c.default.log("Print theme list succeed!")}catch(e){(0,p.handleError)(e)}}static async getLiveThemeInfo(){let e=await (0,m.getThemes)(),{id:t,name:r,status:a,themeTypeVersion:i}=e.find(e=>e.status===f.EThemeStatus.Published);return{id:t,name:r,status:a,themeTypeVersion:i}}static async getDevelopmentThemeInfo(){let e=h.default.developmentThemeId,t=h.default.developmentThemeName,r=await _.isValidDevTheme(e);return r?{id:e,name:t,status:r.status,themeTypeVersion:r.themeTypeVersion}:{id:"",name:"",status:"",themeTypeVersion:""}}static checkThemeStandardStructure(e){if(0===e.length)throw new w.AbortError(E.ERRORS.NOT_STANDARD_DIRECTORY);let t=(0,l.difference)(p.standardThemeDirectories3,e);t.length>0&&Error(`
|
|
2
|
-
The presence of ${
|
|
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,{default:()=>P,startThemeService:()=>U,themePresenter:()=>W});const e=k(require("fast-glob")),t=k(require("form-data")),i=k(require("fs")),a=k(require("inquirer")),r=k(require("chokidar")),s=k(require("ora")),l=require("lodash"),n=k(require("../../../utils/debug")),o=k(require("../../../helpers/config")),h=require("../../../utils/messages"),d=require("../../../helpers/monitoring"),u=require("../../../utils/path"),c=k(require("../../../utils/winston")),m=require("./api"),p=require("../types"),f=require("../utils"),g=_(require("../../../utils/logger")),T=k(require("../../../utils/get-objects-diff")),y=k(require("./file")),w=_(require("./package")),v=require("../../../utils/error"),E=require("../const"),F=k(require("../../../utils/colors")),S=k(require("./remote-watcher")),D=require("../../../utils/ui/render"),I=require("../watcher-monitoring"),b=require("../../../utils/check-theme-type-version"),q=k(require("../../../utils/tiny-queue"));function O(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function k(e){return e&&e.__esModule?e:{default:e}}function R(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,i=new WeakMap;return(R=function(e){return e?i:t})(e)}function _(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var i=R(t);if(i&&i.has(e))return i.get(e);var a={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&Object.prototype.hasOwnProperty.call(e,s)){var l=r?Object.getOwnPropertyDescriptor(e,s):null;l&&(l.get||l.set)?Object.defineProperty(a,s,l):a[s]=e[s]}return a.default=e,i&&i.set(e,a),a}const N=a.default.createPromptModule();function M(e,t){let i=e instanceof v.AbortError?e:new v.AbortError(e instanceof Error?e.message:`Theme file ${t} failed with a non-Error value`);e instanceof Error&&i!==e&&(i.stack=e.stack,i.cause=e),(0,I.reportThemeWatcherError)(i,{themeOs:"3",operation:t}),(0,D.renderFatalError)(i)}class P extends n.default{async watchRemote(){this.editorSync&&(this.remoteWatcher=new S.default(this),this.remoteWatcher.start())}watch(){this.watchRemote();let e=r.default.watch((0,f.getThemeDirectory3)(this.cwd),{ignored:/(^|[/\\])\../,ignoreInitial:!0});e.on("ready",()=>{e.on("add",(...e)=>{let t=e[0];if(c.default.log(`Add theme file: ${t}`),this.shouldWatchFile(t)){if(this.consumeRemoteUpdate(t)){var i;null===(i=this.sse)||void 0===i||i.broadcast(this.getSseData(t,"add"))}else this.enqueueFileOperation("create",()=>this.onAdd(t))}}),e.on("change",(...e)=>{let t=e[0];if(c.default.log(`Change theme file: ${t}`),this.shouldWatchFile(t)){if(this.consumeRemoteUpdate(t)){var i;null===(i=this.sse)||void 0===i||i.broadcast(this.getSseData(t))}else this.enqueueFileOperation("update",()=>this.onChange(t))}}),e.on("unlink",(...e)=>{let t=e[0];if(c.default.log(`Unlink theme file: ${t}`),this.shouldWatchFile(t)){if(this.consumeRemoteUpdate(t)){var i;null===(i=this.sse)||void 0===i||i.broadcast(this.getSseData(t,"unlink"))}else this.enqueueFileOperation("delete",()=>this.onUnlink(t))}})})}shouldWatchFile(e){let t=(0,f.parseFileName)(e,this.cwd),i=this.ignoreFilter.match(t),a=this.includeFilter.match(t);return!i&&a}enqueueFileOperation(e,t){this.bufferBrowserUpdates=!0,this.queue.push(()=>t().catch(t=>{M(t,e)}))}notifyBrowser(e,t){let i=this.getSseData(e,t);if(!this.bufferBrowserUpdates){var a;null===(a=this.sse)||void 0===a||a.broadcast(i);return}"reload_page"in i.data?(this.pendingReloadPage=!0,this.pendingModifiedFiles.clear()):this.pendingReloadPage||i.data.modified.forEach(e=>this.pendingModifiedFiles.add(e))}flushBrowserUpdates(){this.bufferBrowserUpdates=!1;try{var e,t;this.pendingReloadPage?null===(e=this.sse)||void 0===e||e.broadcast({data:{reload_page:!0}}):this.pendingModifiedFiles.size&&(null===(t=this.sse)||void 0===t||t.broadcast({data:{modified:[...this.pendingModifiedFiles]}}))}catch(e){M(e,"sync")}finally{this.pendingReloadPage=!1,this.pendingModifiedFiles.clear()}}consumeRemoteUpdate(e){var t;let i=(0,f.parseFileName)(e,this.cwd);return null!==(t=this.remoteWatcher)&&void 0!==t&&!!t.shouldUpdateToLocal(i)&&(this.remoteWatcher.removeUpdateToLocalFiles(i),!0)}async onAdd(e){let a=(0,f.parseFileName)(e,this.cwd),r=(0,s.default)((0,h.getMessage)("theme.serve.syncer.create_strategy.success",{file_name:a})).start();try{let s=new t.default;s.append("file",i.default.createReadStream(e)),s.append("themeId",this.themeId),s.append("fileName",a),await (0,m.createFile)(s),this.notifyBrowser(e,"add"),r.succeed()}catch(t){var l;let e=(0,f.formatThemeFileUploadError)(t,{fileName:a,themeId:String(null!==(l=this.themeId)&&void 0!==l?l:"")});(0,I.reportThemeWatcherError)(e,{themeOs:"3",operation:"create"}),(0,D.renderFatalError)(e),r.fail()}}async onChange(e){let a=(0,f.parseFileName)(e,this.cwd),r=(0,s.default)((0,h.getMessage)("theme.serve.syncer.update_strategy.success",{file_name:a})).start();try{let s=new t.default;s.append("file",i.default.createReadStream(e)),s.append("themeId",this.themeId),s.append("fileName",a),await (0,m.updateFile)(s),this.notifyBrowser(e),r.succeed()}catch(t){var l;let e=(0,f.formatThemeFileUploadError)(t,{fileName:a,themeId:String(null!==(l=this.themeId)&&void 0!==l?l:"")});(0,I.reportThemeWatcherError)(e,{themeOs:"3",operation:"update"}),(0,D.renderFatalError)(e),r.fail()}}async onUnlink(e){let t=(0,f.parseFileName)(e,this.cwd),i=(0,s.default)((0,h.getMessage)("theme.serve.syncer.delete_strategy.success",{file_name:t})).start();try{await (0,m.deleteFiles)(this.themeId,[t]),this.notifyBrowser(e,"unlink"),i.succeed()}catch(r){var a;let e=(0,f.formatThemeFileDeleteError)(r,{fileName:t,themeId:String(null!==(a=this.themeId)&&void 0!==a?a:"")});(0,I.reportThemeWatcherError)(e,{themeOs:"3",operation:"delete"}),(0,D.renderFatalError)(e),i.fail()}}getSseData(e,t){return"full-page"===this.mode||t&&["add","unlink"].includes(t)?{data:{reload_page:!0}}:{data:{modified:[(0,f.getRelativePath)(e,this.cwd)]}}}async syncTheme({nodelete:e}={nodelete:!1}){"development"===this.zipLifecycle&&new w.default({cwd:this.cwd}).removeStaleDevelopmentZip();let t=(0,s.default)(`✨ Syncing theme #${this.themeId} on ${o.default.currentStore}`).start();c.default.log(`[Sync] Starting sync for theme #${this.themeId}...`);let{name:i,status:a}=await this.findOrCreateTheme(),{local:r,remote:l}=await this.getFileChecksums(),n=await (0,T.default)(r,l);if(c.default.log(`[Sync] Found ${n.length} diffs`),n.length){let r=[],s=[];if(n.forEach(e=>{switch(e.type){case"create":case"update":r.push(e);break;case"delete":s.push(e)}}),!e&&s.length){let e=s.map(e=>e.key);c.default.log(`[Sync] Deleting ${e.length} remote files...`),await (0,m.deleteFiles)(this.themeId,e)}if(r.length){let e=r.map(e=>e.key);if(c.default.log(`[Sync] Uploading ${e.length} files...`),t.clear(),"development"===this.zipLifecycle)await this.uploadDevelopmentTheme({fileList:e,name:i,status:a,upload:m.uploadTheme});else{let t=this.getThemeZipFormData({fileList:e,name:i,status:a});await (0,m.uploadTheme)(t)}}}c.default.log(`[Sync] Theme #${this.themeId} synced successfully`),t.succeed()}getThemeZipFormData({fileList:e,status:t,name:a}){let r=new w.default({cwd:this.cwd}).pack(e);return this.createThemeUploadForm(i.default.createReadStream(r),t,a)}createThemeUploadForm(e,i,a){let r=new t.default;return r.append("file",e),r.append("themeId",this.themeId||""),r.append("status",i),r.append("name",a),r}async uploadDevelopmentTheme({fileList:e,status:t,name:a,upload:r}){let s,l,n,o,h;let d=!1,u=!1,m="stream-close";try{s=new w.default({cwd:this.cwd}).packDevelopment(e),(l=i.default.createReadStream(s.path)).once("close",()=>{d=!0});let n=this.createThemeUploadForm(l,t,a);o=await r(n)}catch(e){n=e,u=!0}finally{if(l&&!d)try{await new Promise((e,t)=>{let i;l.once("error",e=>{i=e}),l.once("close",()=>{i?t(i):e()});try{l.destroy()}catch(e){t(e)}})}catch(e){h=e}if(s&&(!l||d))try{await s.cleanup()}catch(e){h||(h=e,m="unlink")}}if(h&&s){let e=(0,w.formatDevelopmentZipCleanupError)(h,m,s.path);if(u)c.default.log(e.message);else throw e}if(u)throw n;return o}async getFileChecksums(){let{localeFileChecksums:e}=this,t=await (0,m.getThemeFileList)(this.themeId),i=t.reduce((e,t)=>(e[t.name]=t.checksum||"",e),Object.create(null)),a=this.getFilterFileChecksums(e),r=this.getFilterFileChecksums(i);return{local:a,remote:r}}getFilterFileChecksums(e){let t=Object.keys(e).reduce((t,i)=>{let a=this.ignoreFilter.match(i),r=this.includeFilter.match(i);return!a&&r&&(t[i]=e[i]),t},{});return t}get localeFileChecksums(){return this.themeFiles().reduce((e,t)=>(e[t.fileName]=t.checksum,e),{})}themeFiles(){let t=e.default.sync(f.themeDirectoryGlobList3,{cwd:this.cwd,onlyFiles:!0,unique:!0});return t.map(e=>new y.default(e,this.cwd))}static async getThemeInfo(e,t){let{id:i,name:a,status:r,themeTypeVersion:s}=await (0,m.getThemeInfo)(e,t);return{id:i,name:a,status:r,themeTypeVersion:s}}async findOrCreateTheme(){let e;if("development"!==this.zipLifecycle)try{let{id:e,name:t,status:i}=await P.getThemeInfo(this.themeId,{ignoreBusinessCodes:E.ERROR_CODES.DEVELOPMENT_THEME_NOT_EXIST});return{id:e,name:t,status:i}}catch(a){c.default.log(`[Sync] Theme #${this.themeId} not found (${a.message}), creating new development theme...`);let{id:e,name:t,status:i}=await this.createNewDevelopmentTheme();return{id:e,name:t,status:i}}if(!this.themeId)return this.createNewDevelopmentTheme();try{e=await P.getThemeInfo(this.themeId,{ignoreBusinessCodes:E.ERROR_CODES.DEVELOPMENT_THEME_NOT_EXIST})}catch(e){c.default.log(`[Sync] Theme #${this.themeId} detail query failed (${e.message}), creating new development theme...`)}if(!e)return this.createNewDevelopmentTheme();let{id:t,name:i,status:a,themeTypeVersion:r}=e,s=(0,b.getThemeTypeVersion)(this.cwd,!0);return r!==s||a!==p.EThemeStatus.Development?this.createNewDevelopmentTheme():(this.themeId=t,o.default.replaceDevelopmentTheme(t,i),{id:t,name:i,status:a})}async createNewTheme({name:e,status:t}){let i=this.getThemeZipFormData({status:t,name:e}),{themeId:a}=await (0,m.createNewTheme)(i);return{id:a,name:e,status:t}}async createNewDevelopmentTheme(){let e;let t=(0,f.generateDevThemeName)();if("development"===this.zipLifecycle){let i=Object.keys(this.getFilterFileChecksums(this.localeFileChecksums));({themeId:e}=await this.uploadDevelopmentTheme({fileList:i,name:t,status:p.EThemeStatus.Development,upload:m.createNewTheme}))}else{let i=this.getThemeZipFormData({name:t,status:p.EThemeStatus.Development});({themeId:e}=await (0,m.createNewTheme)(i))}if(!e)throw new v.AbortError(E.ERRORS.THEME_ID_NOT_EXIST);return this.themeId=e,o.default.replaceDevelopmentTheme(e,t),{id:e,name:t,status:p.EThemeStatus.Development}}static async getValidDevelopmentInfo(){let e=o.default.developmentThemeId;return await P.isValidDevTheme(e)?{id:e,name:"",status:p.EThemeStatus.Development}:{id:"",name:(0,f.generateDevThemeName)(),status:p.EThemeStatus.Development}}static async isValidDevTheme(e){try{let t=await (0,m.getThemeInfo)(e,{ignoreBusinessCodes:E.ERROR_CODES.DEVELOPMENT_THEME_NOT_EXIST});if((null==t?void 0:t.status)===p.EThemeStatus.Development)return{id:t.id,name:t.name,status:t.status,themeTypeVersion:t.themeTypeVersion};return null}catch(e){return null}}static async chooseThemeList(e){let t=P.addDevelopmentTheme(await (0,m.getThemes)()),i=t.map(e=>({name:W(e,"short"),value:e.id})).filter(e=>e.value),{themeId:a}=await N([{type:"list",name:"themeId",message:{pull:"Select a theme to pull from",push:"Select theme to push to"}[e],pageSize:i.length,default:i[0].value,loop:!1,choices:i}]),{status:r,name:s,themeTypeVersion:l}=t.find(e=>e.id===a);return{id:a,name:s,status:r,themeTypeVersion:l}}static addDevelopmentTheme(e){let t=o.default.developmentThemeId,i=o.default.developmentThemeName;return t?e.concat({name:i,status:p.EThemeStatus.Development,id:t,themeTypeVersion:""}):e}static async package(e,t=(0,u.cwd)()){try{let e=new w.default({cwd:t});await e.pack()}catch(e){(0,f.handleError)(e)}}static async list(){try{c.default.log("Checking login..."),o.default.isLogin(),console.log((0,h.getMessage)("theme.list.title",{store:o.default.currentStore})),c.default.log("Printing theme list...");let e=await (0,m.getThemes)();e.forEach(e=>{console.log(W(e))}),c.default.log("Print theme list succeed!")}catch(e){(0,f.handleError)(e)}}static async getLiveThemeInfo(){let e=await (0,m.getThemes)(),{id:t,name:i,status:a,themeTypeVersion:r}=e.find(e=>e.status===p.EThemeStatus.Published);return{id:t,name:i,status:a,themeTypeVersion:r}}static async getDevelopmentThemeInfo(){let e=o.default.developmentThemeId,t=o.default.developmentThemeName,i=await P.isValidDevTheme(e);return i?{id:e,name:t,status:i.status,themeTypeVersion:i.themeTypeVersion}:{id:"",name:"",status:"",themeTypeVersion:""}}static checkThemeStandardStructure(e){if(0===e.length)throw new v.AbortError(E.ERRORS.NOT_STANDARD_DIRECTORY);let t=(0,l.difference)(f.standardThemeDirectories3,e);t.length>0&&Error(`
|
|
2
|
+
The presence of ${F.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
|
-
`)}constructor({themeId:e,mode:t,cwd:
|
|
7
|
+
`)}constructor({themeId:e,mode:t,cwd:i,sse:a,includeFilter:r,ignoreFilter:s,editorSync:l,zipLifecycle:n="persistent"}){super("theme:theme"),O(this,"cwd",""),O(this,"themeId",""),O(this,"sse",void 0),O(this,"includeFilter",void 0),O(this,"ignoreFilter",void 0),O(this,"editorSync",void 0),O(this,"remoteWatcher",void 0),O(this,"mode",void 0),O(this,"zipLifecycle",void 0),O(this,"queue",void 0),O(this,"bufferBrowserUpdates",!1),O(this,"pendingReloadPage",!1),O(this,"pendingModifiedFiles",new Set),this.themeId=e||"",this.sse=a,this.cwd=i,this.mode=t||"hot-reload",this.includeFilter=r,this.ignoreFilter=s,this.editorSync=l,this.remoteWatcher=null,this.zipLifecycle=n,this.queue=new q.default,this.queue.on("all-done",()=>this.flushBrowserUpdates())}}async function U({themeId:e,mode:t,cwd:i,sse:a,includeFilter:r,ignoreFilter:s,editorSync:l}){try{let n=new P({themeId:e,mode:t,cwd:i,sse:a,includeFilter:r,ignoreFilter:s,editorSync:l}).watch();return{themeId:e,themeInstance:n}}catch(e){var n,o;return g.error((null==e?void 0:null===(n=e.response)||void 0===n?void 0:null===(o=n.data)||void 0===o?void 0:o.msg)||(null==e?void 0:e.stack)),(0,d.reportAndExit)(e)}}const C={[p.EThemeStatus.Published]:"green",[p.EThemeStatus.Unpublished]:"yellow",[p.EThemeStatus.Development]:"magenta"},$={[p.EThemeStatus.Published]:"live",[p.EThemeStatus.Unpublished]:"unpublished",[p.EThemeStatus.Development]:"development"};function W(e,t="long"){let i=C[e.status],a=[`${F.default[i](`[${$[e.status]}]`)}`];if(e.id===o.default.developmentThemeId&&a.push(F.default.cyan("[yours]")),e.themeTypeVersion&&a.push(F.default.bold.italic.cyan(e.themeTypeVersion)),"long"===t){let t=(0,h.getMessage)("theme.list.long",{id:e.id,name:e.name,tags:a.join(" ")});return t}let r=(0,h.getMessage)("theme.list.short",{name:e.name,tags:a.join(" ")});return r}
|
|
8
8
|
//# sourceMappingURL=theme.js.map
|
|
@@ -1,2 +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:()=>T,createFile:()=>_,uploadFile:()=>v,deleteFile:()=>O,uploadThemePackageFile:()=>I,getThemeFileDetail:()=>S,getThemeListWithPagination:()=>
|
|
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
2
|
//# sourceMappingURL=api.js.map
|
|
@@ -1,2 +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/
|
|
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
2
|
//# sourceMappingURL=api.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
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/
|
|
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
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(`
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,r){for(var
|
|
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
2
|
//# sourceMappingURL=dev-server-monitoring.js.map
|