@shoplineos/cli 1.5.6 → 1.5.7

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.
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"login",{enumerable:!0,get:()=>g});const e=require("commander"),r=require("../../utils/program"),t=c(require("../../utils/format-protocol")),o=c(require("../../services/identity-auth")),i=c(require("../../utils/get-url-handle")),u=c(require("../../utils/replace-top-level-com")),l=require("../../utils/messages"),s=require("../../utils/ui/render"),n=require("../../utils/error"),a=require("../../services/theme/utils"),d=c(require("../../utils/winston"));function c(e){return e&&e.__esModule?e:{default:e}}async function g(e){try{let r=new URL((0,t.default)(e.store)),a=(0,u.default)(r).origin;if("admin"===(0,i.default)(a)){d.default.log("your store is admin");let r=(0,l.getMessage)("core.login.invalid_store",{shop:e.store});throw d.default.log(r),new n.AbortError(r)}d.default.log(`authorizing ${a}...`),await (0,o.default)(a),d.default.log("login succeed!"),(0,s.renderSuccess)({body:(0,l.getMessage)("core.login.login_succeed")})}catch(e){(0,a.handleError)(e)}}r.program.command("login").addOption(new e.Option("--store <store>","Your store domain").makeOptionMandatory().env("SHOPLINE_FLAG_STORE")).action(g);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"login",{enumerable:!0,get:()=>m});const e=require("commander"),r=require("../../utils/program"),t=g(require("../../utils/format-protocol")),o=g(require("../../services/identity-auth")),i=g(require("../../utils/get-url-handle")),u=g(require("../../utils/replace-top-level-com")),l=require("../../utils/messages"),s=require("../../utils/ui/render"),n=require("../../utils/error"),a=require("../../services/theme/utils"),d=g(require("../../utils/winston")),c=g(require("../../helpers/command-usage"));function g(e){return e&&e.__esModule?e:{default:e}}async function m(e,r){try{let a=new URL((0,t.default)(e.store)),g=(0,u.default)(a).origin;if("admin"===(0,i.default)(g)){d.default.log("your store is admin");let r=(0,l.getMessage)("core.login.invalid_store",{shop:e.store});throw d.default.log(r),new n.AbortError(r)}d.default.log(`authorizing ${g}...`),await (0,o.default)(g),d.default.log("login succeed!"),(0,s.renderSuccess)({body:(0,l.getMessage)("core.login.login_succeed")}),r&&(0,c.default)(r)}catch(e){(0,a.handleError)(e)}}r.program.command("login").addOption(new e.Option("--store <store>","Your store domain").makeOptionMandatory().env("SHOPLINE_FLAG_STORE")).action(m);
2
2
  //# sourceMappingURL=login.js.map
@@ -0,0 +1,16 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:()=>i});const e=require("child_process"),t=s(require("./config")),r=s(require("../utils/get-url-handle")),o=s(require("../../package.json"));function s(e){return e&&e.__esModule?e:{default:e}}const n=`
2
+ const finish = () => process.exit(0);
3
+ setTimeout(finish, 5000);
4
+ const request = require('https').request(process.argv[1], {
5
+ method: 'POST',
6
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
7
+ agent: false,
8
+ }, response => {
9
+ response.on('error', finish);
10
+ response.on('end', finish);
11
+ response.resume();
12
+ });
13
+ request.on('error', finish);
14
+ request.end(process.argv[2]);
15
+ `;function i(s){try{let{currentStore:i,loginInfo:a}=t.default.all,l=null==a?void 0:a[i];if("string"!=typeof i||!l||"object"!=typeof l||Array.isArray(l))return;let u=new URL(i);if(!["http:","https:"].includes(u.protocol))return;let c=new URL(`https://${u.host}/eclytics/n.gif`),f=[],d=new Set;for(let e=s;e.parent;e=e.parent)for(let t of(f.unshift(e.name()),e.createHelp().visibleOptions(e))){let r=t.long||t.short;r&&"cli"===e.getOptionValueSource(t.attributeName())&&d.add(r)}let p=new URLSearchParams({act:"slthemecli",time:String(Math.floor(Date.now()/1e3)),version:o.default.version,command:[...f,...Array.from(d).sort()].join(" "),store_handle:(0,r.default)(c.href),store_id:"string"==typeof l.store_id||Number.isSafeInteger(l.store_id)?String(l.store_id):""}).toString(),h=(0,e.spawn)(process.execPath,["-e",n,c.href,p],{detached:!0,stdio:"ignore",windowsHide:!0});h.on("error",()=>{}),h.unref()}catch(e){}}
16
+ //# sourceMappingURL=command-usage.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,{getShopperType:()=>S,pushShopperExtension:()=>T});const e=P(require("fs")),t=P(require("archiver")),r=P(require("form-data")),n=P(require("fast-glob")),i=P(require("javascript-obfuscator")),o=require("../../../utils/error"),a=require("../api"),s=require("../../../utils/ui/ui"),u=require("../env"),p=require("../const"),l=require("../../../utils/path"),E=require("../zip"),d=require("../../../utils/ui/render"),c=require("../utils"),f=require("../../../utils/output"),g=P(require("../../../utils/winston"));function P(e){return e&&e.__esModule?e:{default:e}}function S(e){let t={1:a.ERegisterType.SHOPPER_CUSTOM_BLOCK,2:a.ERegisterType.SHOPPER_CUSTOM_WEB_PAGE},r=e.split("--")[1];return t[r]}async function T(r){var a;let s=r.readEnvContent(),d=S(r.type);g.default.log("Create web shopper extension instance...");let c=await h(s,d);(0,f.outputDebug)((0,f.outputContent)`Write ${f.outputToken.json(c)} content to ${f.outputToken.cyan(`.env.${r.env}`)} file to ${r.cwd}`),g.default.log(`Write .env.${r.env} file...`),(0,u.writeEnvFile)(r.env,c,r.cwd);let P=(0,l.joinPath)(r.cwd,`${s.EXTENSION_TITLE}.zip`);g.default.log("Compress shopper extension..."),await (a=r.cwd,new Promise((r,s)=>{(0,f.outputDebug)((0,f.outputContent)`Compressing to ${f.outputToken.path(P)}`);let u=(0,t.default)("zip",{zlib:{level:9}}),l=e.default.createWriteStream(P);l.on("close",()=>{}),l.on("finish",()=>{r({size:u.pointer()})}),u.on("error",()=>{s(new o.AbortError("Failed to compress!"))}),u.pipe(l),n.default.sync("assets/js/**/*.js",{cwd:a}).forEach(t=>{let r=e.default.readFileSync(t,"utf-8"),n=i.default.obfuscate(r,{compact:!0,controlFlowFlattening:!1,numbersToExpressions:!1,simplify:!0,stringArray:!0,stringArrayShuffle:!0,splitStrings:!1,stringArrayThreshold:.75,renameGlobals:!1});u.append(n.getObfuscatedCode(),{name:t})}),u.glob("previewImage.png",{cwd:a}).glob("index.html",{cwd:a}).glob("assets/css/**/*.css",{cwd:a}).glob("assets/images/**/*.{png,jpg,gif,svg,webp,lottie,apng}",{cwd:a}).glob(p.SHOPPER_CONFIG_FILE,{cwd:a}).finalize()})),g.default.log("Push shopper extension..."),await y(c,P,r,d),g.default.log("Push shopper extension success!"),(0,f.outputDebug)("Remove .zip file"),g.default.log("Remove .zip file..."),(0,E.removeZip)(P)}async function h(e,t){let r=e;return r.EXTENSION_ID&&r.EXTENSION_UUID?e:(await (0,s.renderTasks)([{title:"Registering with SHOPLINE",task:async()=>{let n=await (0,a.createExtensionInstance)({appKey:e.SHOPLINE_APP_KEY,appSecret:e.SHOPLINE_APP_SECRET,name:e.EXTENSION_TITLE,type:t,category:a.ECategory.SHOPPER}),{id:i,uuid:s}=n||{};if(!i||!s)throw new o.AbortError("Failed to register. Please retry again!");r.EXTENSION_ID=i,r.EXTENSION_UUID=s}}]),r)}async function y(e,t,r,n){(0,f.outputDebug)((0,f.outputContent)`Pushing ${f.outputToken.path(t)} file to remote`),await (0,s.renderTasks)([{title:"Pushing your extension to Shopline",task:async()=>{await I(e,t,r,n)}}])}async function I(t,n,i,s){let u=e.default.createReadStream(n),p=new r.default;p.append("extensionFile",u),p.append("appKey",t.SHOPLINE_APP_KEY),p.append("appSecret",t.SHOPLINE_APP_SECRET),p.append("extensionId",t.EXTENSION_ID),p.append("extensionUuid",t.EXTENSION_UUID),p.append("type",s),p.append("category",a.ECategory.SHOPPER);let l=await (0,a.pushExtension)(p);if(l){let e=(0,c.getAppVersionManageLink)({appKey:t.SHOPLINE_APP_KEY,env:i.env});(0,d.renderSuccess)({headline:["Pushed",{userInput:t.EXTENSION_TITLE},"to a draft on",(0,c.formatTime)(l.updateTime)],body:["Visit",{link:{label:e,url:e}},"to version and publish your extension",{char:"."}]})}else(0,d.renderFatalError)(new o.AbortError(`Pushed to SHOPLINE with errors on ${(0,c.formatTime)()}`))}
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,{getShopperType:()=>S,pushShopperExtension:()=>T});const e=P(require("fs")),t=P(require("archiver")),r=P(require("form-data")),n=P(require("fast-glob")),i=P(require("javascript-obfuscator")),o=require("../../../utils/error"),a=require("../api"),s=require("../../../utils/ui/ui"),u=require("../env"),p=require("../const"),l=require("../../../utils/path"),E=require("../zip"),d=require("../../../utils/ui/render"),c=require("../utils"),f=require("../../../utils/output"),g=P(require("../../../utils/winston"));function P(e){return e&&e.__esModule?e:{default:e}}function S(e){let t={1:a.ERegisterType.SHOPPER_CUSTOM_BLOCK,2:a.ERegisterType.SHOPPER_CUSTOM_WEB_PAGE},r=e.split("--")[1];return t[r]}async function T(r){var a;let s=r.readEnvContent(),d=S(r.type);g.default.log("Create web shopper extension instance...");let c=await h(s,d);(0,f.outputDebug)((0,f.outputContent)`Write ${f.outputToken.json(c)} content to ${f.outputToken.cyan(`.env.${r.env}`)} file to ${r.cwd}`),g.default.log(`Write .env.${r.env} file...`),(0,u.writeEnvFile)(r.env,c,r.cwd);let P=(0,l.joinPath)(r.cwd,`${s.EXTENSION_TITLE}.zip`);g.default.log("Compress shopper extension..."),await (a=r.cwd,new Promise((r,s)=>{(0,f.outputDebug)((0,f.outputContent)`Compressing to ${f.outputToken.path(P)}`);let u=(0,t.default)("zip",{zlib:{level:9}}),l=e.default.createWriteStream(P);l.on("close",()=>{}),l.on("finish",()=>{r({size:u.pointer()})}),u.on("error",()=>{s(new o.AbortError("Failed to compress!"))}),u.pipe(l),n.default.sync("assets/js/**/*.js",{cwd:a}).forEach(t=>{let r=e.default.readFileSync(t,"utf-8"),n=i.default.obfuscate(r,{compact:!0,controlFlowFlattening:!1,numbersToExpressions:!1,simplify:!0,stringArray:!0,stringArrayShuffle:!0,splitStrings:!1,stringArrayThreshold:.75,renameGlobals:!1});u.append(n.getObfuscatedCode(),{name:t})}),u.glob("previewImage.png",{cwd:a}).glob("*.html",{cwd:a,nodir:!0,skip:"**"}).glob("assets/css/**/*.css",{cwd:a}).glob("assets/images/**/*.{png,jpg,gif,svg,webp,lottie,apng}",{cwd:a}).glob(p.SHOPPER_CONFIG_FILE,{cwd:a}).finalize()})),g.default.log("Push shopper extension..."),await y(c,P,r,d),g.default.log("Push shopper extension success!"),(0,f.outputDebug)("Remove .zip file"),g.default.log("Remove .zip file..."),(0,E.removeZip)(P)}async function h(e,t){let r=e;return r.EXTENSION_ID&&r.EXTENSION_UUID?e:(await (0,s.renderTasks)([{title:"Registering with SHOPLINE",task:async()=>{let n=await (0,a.createExtensionInstance)({appKey:e.SHOPLINE_APP_KEY,appSecret:e.SHOPLINE_APP_SECRET,name:e.EXTENSION_TITLE,type:t,category:a.ECategory.SHOPPER}),{id:i,uuid:s}=n||{};if(!i||!s)throw new o.AbortError("Failed to register. Please retry again!");r.EXTENSION_ID=i,r.EXTENSION_UUID=s}}]),r)}async function y(e,t,r,n){(0,f.outputDebug)((0,f.outputContent)`Pushing ${f.outputToken.path(t)} file to remote`),await (0,s.renderTasks)([{title:"Pushing your extension to Shopline",task:async()=>{await I(e,t,r,n)}}])}async function I(t,n,i,s){let u=e.default.createReadStream(n),p=new r.default;p.append("extensionFile",u),p.append("appKey",t.SHOPLINE_APP_KEY),p.append("appSecret",t.SHOPLINE_APP_SECRET),p.append("extensionId",t.EXTENSION_ID),p.append("extensionUuid",t.EXTENSION_UUID),p.append("type",s),p.append("category",a.ECategory.SHOPPER);let l=await (0,a.pushExtension)(p);if(l){let e=(0,c.getAppVersionManageLink)({appKey:t.SHOPLINE_APP_KEY,env:i.env});(0,d.renderSuccess)({headline:["Pushed",{userInput:t.EXTENSION_TITLE},"to a draft on",(0,c.formatTime)(l.updateTime)],body:["Visit",{link:{label:e,url:e}},"to version and publish your extension",{char:"."}]})}else(0,d.renderFatalError)(new o.AbortError(`Pushed to SHOPLINE with errors on ${(0,c.formatTime)()}`))}
2
2
  //# sourceMappingURL=shopper.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"program",{enumerable:!0,get:()=>e.program});const e=require("commander"),r=u(require("./check-update")),t=u(require("../helpers/config")),o=u(require("../../package.json")),a=require("../helpers/monitoring"),n=u(require("./winston/index"));function u(e){return e&&e.__esModule?e:{default:e}}e.program.hook("preAction",async e=>{a.isProd&&await (0,r.default)(o.default).catch(console.error);let u=[e.name(),...e.args].join(" ");if(n.default.setCommand(u),n.default.log(`Current CLI version: ${o.default.version}`),await n.default.removeOldLogFiles(),(0,a.setTag)("command",u),(0,a.setTag)("cli_version",o.default.version),t.default.loginInfo){var i;n.default.log(`current store: ${t.default.currentStore}`),(0,a.setUser)({username:t.default.currentStore}),(0,a.setTags)({current_store:t.default.currentStore,store_id:null===(i=t.default.loginInfo)||void 0===i?void 0:i.store_id})}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"program",{enumerable:!0,get:()=>e.program});const e=require("commander"),r=i(require("./check-update")),t=i(require("../helpers/config")),o=i(require("../../package.json")),a=require("../helpers/monitoring"),n=i(require("./winston/index")),u=i(require("../helpers/command-usage"));function i(e){return e&&e.__esModule?e:{default:e}}e.program.hook("preAction",async(e,i)=>{a.isProd&&await (0,r.default)(o.default).catch(console.error);let l=[e.name(),...e.args].join(" ");if(n.default.setCommand(l),n.default.log(`Current CLI version: ${o.default.version}`),await n.default.removeOldLogFiles(),(0,a.setTag)("command",l),(0,a.setTag)("cli_version",o.default.version),t.default.loginInfo){var s;n.default.log(`current store: ${t.default.currentStore}`),(0,a.setUser)({username:t.default.currentStore}),(0,a.setTags)({current_store:t.default.currentStore,store_id:null===(s=t.default.loginInfo)||void 0===s?void 0:s.store_id})}"login"!==i.name()&&(0,u.default)(i)});
2
2
  //# sourceMappingURL=program.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shoplineos/cli",
3
- "version": "1.5.6",
3
+ "version": "1.5.7",
4
4
  "description": "A CLI tool to build for the Shopline platform",
5
5
  "packageManager": "pnpm@10.26.2",
6
6
  "bin": {