@mediaput/cli 1.0.1 → 1.0.2
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/cli.js +2 -2
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";var B=Object.create;var k=Object.defineProperty;var O=Object.getOwnPropertyDescriptor;var
|
|
2
|
+
"use strict";var B=Object.create;var k=Object.defineProperty;var O=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var U=Object.getPrototypeOf,J=Object.prototype.hasOwnProperty;var Y=(o,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of R(e))!J.call(o,i)&&i!==t&&k(o,i,{get:()=>e[i],enumerable:!(r=O(e,i))||r.enumerable});return o};var d=(o,e,t)=>(t=o!=null?B(U(o)):{},Y(e||!o||!o.__esModule?k(t,"default",{value:o,enumerable:!0}):t,o));var V=require("commander");var E=require("commander"),b=d(require("path")),D=d(require("open"));var l=require("vite"),C=d(require("path")),q=d(require("net"));async function $(o){let e=(0,l.createLogger)(),t=await(0,l.loadConfigFromFile)({command:"build",mode:"production"}),r=t?.config.build?.lib,i=C.default.resolve(o,"main.ts");r&&typeof r.entry=="string"&&(console.log("libConfig.entry",r.entry),i=r.entry);let a={root:o,logLevel:"info",build:{minify:!1,outDir:"public/dist",emptyOutDir:!0,lib:{name:"MPExtension",formats:["iife"],fileName:m=>m=="iife"?"index.js":`index.${m}.js`,entry:i},sourcemap:!1}},c=(0,l.mergeConfig)(t?.config||{},a);await(0,l.build)(c);let n=await(0,l.createServer)({configFile:!1,mode:"development",root:o,server:{hmr:!1}});return await n.listen(),n.watcher.on("change",async m=>{e.info(`\u{1F4C4} file changed: ${m}`),await(0,l.build)(c)}),n}var P=require("ws");function I(){let o="abcdefghijklmnopqrstuvwxyz0123456789",e="";for(let t=0;t<6;t++)e+=o[Math.floor(Math.random()*o.length)];return e+Date.now().toString()}var u=d(require("chalk")),v=class{constructor(e=5178){this.wsPort=e;this.token=I()}async start(){try{this.wss=await this.createWsServer(this.wsPort)}catch(e){console.error("WebSoket service build fail:",e)}}close(){this.wss?.close(),this.wss=void 0,this.client=void 0}getInfo(){return{token:this.token,port:this.wsPort}}send(e){this.client?.send(e)}createWsServer(e,t=10){return new Promise((r,i)=>{try{let a=new P.WebSocketServer({port:e});a.addListener("listening",()=>{this.wsPort=e,r(a)}),a.addListener("connection",(c,n)=>{let f=new URL(`${n.url||""}`,"http://localhost").searchParams.get("token");f&&this.isValidToken(f)?(this.client=c,console.log(u.default.gray("[@mediaput/cli] "),u.default.green("\u2713 MediaPut connected!")),c.on("close",()=>{console.log(u.default.gray("[@mediaput/cli] "),u.default.yellow("\u26A0 MediaPut disconnected!"))}),c.on("error",p=>{console.error(u.default.gray("[@mediaput/cli] "),"\u2717 WebSocket of MediaPut error:",p)})):c.close()}),a.addListener("error",c=>{c.message.includes("EADDRINUSE")&&t>0?this.createWsServer(e+1,t-1).then(r).catch(i):i(c)})}catch(a){i(a)}})}isValidToken(e){return this.token==e}};var s=d(require("chalk")),L=require("vite");var x="1.0.1";var W=require("fs"),h=require("@mediaput/manifest"),M=(0,L.createLogger)("info"),j=new E.Command("dev").description("Start a MediaPut plugin in dev mode").option("-c, --cwd <dir>","Library root",process.cwd()).action(async o=>{let e=b.default.resolve(o.cwd),t,r;process.on("SIGINT",async()=>{r?.send(JSON.stringify({type:"close",msg:"\u670D\u52A1\u5DF2\u5173\u95ED"})),r?.close(),t?.close(),process.exit(0)});try{let{valid:i,errors:a}=(0,h.validateManifestJson)((0,W.readFileSync)((0,b.resolve)(o.cwd,"manifest.json"),"utf-8"));if(!i)throw new h.ManifestValidationError(a);t=await $(e);let n=t.httpServer.address().port;r=new v(n),await r.start();let m=`http://localhost:${n}/manifest.json`,f=r.getInfo(),p=new URL("/market/self","https://localhost:5174");p.searchParams.set("token",f.token),p.searchParams.set("ws_url",`ws://localhost:${f.port}`),p.searchParams.set("manifest_url",m),G({service_port:n,websocket_port:f.port,token:f.token}),await(0,D.default)(p.toString())}catch(i){console.error(s.default.red("Service run fail:"),i),r?.close(),t?.close(),process.exit(0)}});function G(o){M.clearScreen("info"),M.info(`
|
|
3
3
|
|
|
4
4
|
${s.default.yellow(s.default.bold("@mediaput/cli"))} ${s.default.yellow(`v${x}`)} ${s.default.gray("ready")}
|
|
5
5
|
|
|
@@ -7,4 +7,4 @@
|
|
|
7
7
|
${s.default.yellow("\u279C")} ${s.default.bold("WebSoket Bridge:")} ${s.default.underlineYellow(`ws://localhost:${o.service_port}/`)}
|
|
8
8
|
${s.default.yellow("\u279C")} ${s.default.bold("WebSoket Token:")} ${s.default.underlineYellow(o.token)}
|
|
9
9
|
${s.default.yellow("\u279C")} ${s.default.bold("MediaPut Manifest:")} Set ${s.default.cyan(`http://localhost:${o.service_port}/manifest.json`)} as plugin to install.
|
|
10
|
-
`)}var N=require("commander"),S=d(require("fs/promises")),
|
|
10
|
+
`)}var N=require("commander"),S=d(require("fs/promises")),y=d(require("path")),g=require("vite"),_=new N.Command("build").description("Build TS lib for production").option("-c, --cwd <path>","TS lib root",process.cwd()).action(async o=>{let e=y.default.resolve(o.cwd),t=await(0,g.loadConfigFromFile)({command:"build",mode:"production"}),r=t?.config.build?.lib,i=y.default.resolve(e,"main.ts");r&&typeof r.entry=="string"&&(console.log("libConfig.entry",r.entry),i=r.entry);let a={mode:"production",root:e,esbuild:{charset:"ascii"},logLevel:"info",build:{minify:!0,outDir:"dist",emptyOutDir:!0,lib:{name:"MPExtension",formats:["iife"],fileName:n=>n=="iife"?"index.js":`index.${n}.js`,entry:i},sourcemap:!1}},c=(0,g.mergeConfig)(t?.config||{},a);try{let n=y.default.resolve(e,"public","dist");await S.default.access(n),await S.default.rm(n,{recursive:!0,force:!0}),console.log("\u2705 public/dist clean")}catch(n){if(n?.code==="ENOENT")console.log("\u6587\u4EF6\u5939\u4E0D\u5B58\u5728");else throw n}await(0,g.build)(c),console.log("\u2705 Build complete")});var F=require("commander"),T=require("child_process"),A=new F.Command("doctor").description("Check environment").action(()=>{console.log("Node:",process.version);try{console.log("Vite:",(0,T.execSync)("npx vite --version").toString().trim())}catch{}});var w=new V.Command().name("mediaput").description("MediaPut universal lib dev toolkit").version("0.1.0");w.addCommand(j);w.addCommand(_);w.addCommand(A);w.parse();
|