@hap-toolkit/shared-utils
Advanced tools
Comparing version
@@ -1,2 +0,2 @@ | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.logWarn=logWarn,exports.mkdirsSync=mkdirsSync,exports.getIPv4IPAddress=getIPv4IPAddress,exports.getServerIPAndPort=getServerIPAndPort,exports.getClientIPAddress=getClientIPAddress,exports.stripPrefixForIPV4MappedIPV6Address=stripPrefixForIPV4MappedIPV6Address,exports.outputQRCodeOnTerminal=outputQRCodeOnTerminal,exports.relateCwd=relateCwd,exports.equals=equals,exports.extend=extend,exports.renderString=renderString,exports.KnownError=KnownError,exports.debounce=debounce,exports.setCustomConfig=setCustomConfig,exports.getProjectDslName=getProjectDslName,exports.getDeviceInfo=getDeviceInfo,exports.colorconsole=void 0;var _os=_interopRequireDefault(require("os")),_fs=_interopRequireDefault(require("fs")),_path=_interopRequireDefault(require("path")),_http=_interopRequireDefault(require("http")),_console=require("console"),_chalk=_interopRequireDefault(require("chalk")),_qrcodeTerminal=_interopRequireDefault(require("qrcode-terminal")),_config=_interopRequireDefault(require("../config"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const logLevelMap={};function prependLevel(e,o){if(!logLevelMap[e]){const o=e.toUpperCase().substr(0,4);logLevelMap[e]=o}"string"==typeof o[0]&&o[0].length>1&&"["!==o[0][0]&&(o[0]=`[${logLevelMap[e]}] ${o[0]}`)}let originConsole=global.console,console=_console.Console?new _console.Console(process.stdout,process.stderr):originConsole;const colorconsole={init(e){e&&_console.Console&&(console=new _console.Console(e,e))},trace(...e){prependLevel("trace",e),console.trace(...e)},log(...e){prependLevel("log",e),console.log(_chalk.default.green(...e))},info(...e){prependLevel("info",e),console.info(_chalk.default.green(...e))},warn(...e){prependLevel("warn",e),console.warn(_chalk.default.yellow.bold(...e))},error(...e){prependLevel("error",e),console.error(_chalk.default.red.bold(...e))},throw(...e){throw new Error(_chalk.default.red.bold(...e))}};function logWarn(e,o,t){o&&o.length&&o.forEach(o=>{const r=o.line&&o.column?"\t@"+o.line+":"+o.column:"";t||(o.reason.startsWith("ERROR")?colorconsole.error(e.context,o.reason+r):colorconsole.warn(e.context,o.reason+r))})}function mkdirsSync(e){return!!_fs.default.existsSync(e)||(mkdirsSync(_path.default.dirname(e))?(_fs.default.mkdirSync(e),!0):void 0)}function getIPv4IPAddress(){const e=_os.default.networkInterfaces();let o;for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t)){if(e[t].every(e=>!("IPv4"===e.family&&!e.internal&&"127.0.0.1"!==e.address)||(o=e,!1)),void 0!==o)break}return o&&o.address}function getServerIPAndPort(e){return(getIPv4IPAddress()||"127.0.0.1")+`${80===e?"":":"+e}`}function getClientIPAddress(e){return stripPrefixForIPV4MappedIPV6Address(e.headers["x-forwarded-for"]||e.connection&&e.connection.remoteAddress||e.socket&&e.socket.remoteAddress||e.connection&&e.connection.socket&&e.connection.socket.remoteAddress)}function stripPrefixForIPV4MappedIPV6Address(e){return/^::1$/.test(e)&&(e="127.0.0.1"),/^::.{0,4}:(\d{1,3}\.){3}\d{1,3}/.test(e)&&(e=e.replace(/^.*:/,"")),e}function outputQRCodeOnTerminal(e){console.info(`\n生成HTTP服务器的二维码: ${e}`),_qrcodeTerminal.default.generate(e,{small:!0})}function relateCwd(e){const o=_config.default.projectPath;return _path.default.relative(o,e)}function equals(e,o,t,...r){if(t){if(t(e,o,...r))return!0}const n=Object.prototype.toString.call(e);if(n!==Object.prototype.toString.call(o))return!1;if("[object Null]"===n||"[object Undefined]"===n)return!0;if("[object Object]"!==n&&"[object Array]"!==n)return Object(e).toString()===Object(o).toString();const s={};Object.keys(e).forEach(e=>s[e]=!0),Object.keys(o).forEach(e=>s[e]=!0);const l=Object.keys(s);for(let r=0;r<l.length;r++){const n=l[r];if(!equals(e[n],o[n],t,n))return!1}return!0}function extend(e,...o){if("function"==typeof Object.assign)Object.assign(e,...o);else{const t=o.shift();for(const o in t)e[o]=t[o];o.length&&extend(e,...o)}return e}function renderString(e,o){return e.replace(/{{(.*?)}}/gm,(e,t)=>(t=t.trim(),void 0!==o[t]?o[t]:t))}function KnownError(e){const o=new Error(e);return o.name="KnownError",o.__KNOWN=!0,o}function debounce(e,o){let t=null;return function(){const r=this,n=arguments;t&&(clearTimeout(t),t=null),t=setTimeout((function(){e.apply(r,n)}),o)}}function setCustomConfig(e,o){e=_config.default.projectPath=e||_config.default.projectPath;const t=_path.default.join(e,"quickapp.config.js");if(_fs.default.existsSync(t)){let e={};try{e=require(t)}catch(e){colorconsole.error(`读取项目自定义配置文件出错: ${e.message}`)}const o=Object.assign(_config.default.server,e.server);Object.assign(_config.default,e,{server:o})}o&&(_config.default.server.port=o)}exports.colorconsole=colorconsole;const illegalExtsList=[".css",".less",".scss",".styl",".sass",".log",".json",".js"].map(e=>"app"+e);function getProjectDslName(e){const o=_fs.default.readdirSync(_path.default.join(e,_config.default.sourceRoot)).filter(e=>/^app\..*/.test(e)&&!illegalExtsList.includes(e));let t;return o&&o[0]?(t=_path.default.extname(o[0]).slice(1),colorconsole.info(`获取到app文件后缀: ${t}`)):colorconsole.error("无法获取正确的app文件后缀"),"ux"===t?"xvm":t}function getDeviceInfo(e,o){const t=_http.default.request({path:"/deviceinfo",host:e.ip,port:e.port,timeout:3e3},e=>{e.on("data",e=>{o(null,JSON.parse(e))})}).on("error",e=>{o(e)}).on("timeout",(function(){t.abort()}));t.end()} | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.logWarn=logWarn,exports.mkdirsSync=mkdirsSync,exports.getIPv4IPAddress=getIPv4IPAddress,exports.getServerIPAndPort=getServerIPAndPort,exports.getClientIPAddress=getClientIPAddress,exports.stripPrefixForIPV4MappedIPV6Address=stripPrefixForIPV4MappedIPV6Address,exports.outputQRCodeOnTerminal=outputQRCodeOnTerminal,exports.relateCwd=relateCwd,exports.equals=equals,exports.extend=extend,exports.renderString=renderString,exports.KnownError=KnownError,exports.debounce=debounce,exports.setCustomConfig=setCustomConfig,exports.getProjectDslName=getProjectDslName,exports.getDeviceInfo=getDeviceInfo,Object.defineProperty(exports,"getLaunchPage",{enumerable:!0,get:function(){return _util.getLaunchPage}}),exports.colorconsole=void 0;var _os=_interopRequireDefault(require("os")),_fs=_interopRequireDefault(require("fs")),_path=_interopRequireDefault(require("path")),_http=_interopRequireDefault(require("http")),_console=require("console"),_chalk=_interopRequireDefault(require("chalk")),_qrcodeTerminal=_interopRequireDefault(require("qrcode-terminal")),_config=_interopRequireDefault(require("../config")),_util=require("./buildMode/util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const logLevelMap={};function prependLevel(e,t){if(!logLevelMap[e]){const t=e.toUpperCase().substr(0,4);logLevelMap[e]=t}"string"==typeof t[0]&&t[0].length>1&&"["!==t[0][0]&&(t[0]=`[${logLevelMap[e]}] ${t[0]}`)}let originConsole=global.console,console=_console.Console?new _console.Console(process.stdout,process.stderr):originConsole;const colorconsole={init(e){e&&_console.Console&&(console=new _console.Console(e,e))},trace(...e){prependLevel("trace",e),console.trace(...e)},log(...e){prependLevel("log",e),console.log(_chalk.default.green(...e))},info(...e){prependLevel("info",e),console.info(_chalk.default.green(...e))},warn(...e){prependLevel("warn",e),console.warn(_chalk.default.yellow.bold(...e))},error(...e){prependLevel("error",e),console.error(_chalk.default.red.bold(...e))},throw(...e){throw new Error(_chalk.default.red.bold(...e))}};function logWarn(e,t,o){t&&t.length&&t.forEach(t=>{const r=t.line&&t.column?"\t@"+t.line+":"+t.column:"";o||(t.reason.startsWith("ERROR")?colorconsole.error(e.context,t.reason+r):colorconsole.warn(e.context,t.reason+r))})}function mkdirsSync(e){return!!_fs.default.existsSync(e)||(mkdirsSync(_path.default.dirname(e))?(_fs.default.mkdirSync(e),!0):void 0)}function getIPv4IPAddress(){const e=_os.default.networkInterfaces();let t;for(const o in e)if(Object.prototype.hasOwnProperty.call(e,o)){if(e[o].every(e=>!("IPv4"===e.family&&!e.internal&&"127.0.0.1"!==e.address)||(t=e,!1)),void 0!==t)break}return t&&t.address}function getServerIPAndPort(e){return(getIPv4IPAddress()||"127.0.0.1")+`${80===e?"":":"+e}`}function getClientIPAddress(e){return stripPrefixForIPV4MappedIPV6Address(e.headers["x-forwarded-for"]||e.connection&&e.connection.remoteAddress||e.socket&&e.socket.remoteAddress||e.connection&&e.connection.socket&&e.connection.socket.remoteAddress)}function stripPrefixForIPV4MappedIPV6Address(e){return/^::1$/.test(e)&&(e="127.0.0.1"),/^::.{0,4}:(\d{1,3}\.){3}\d{1,3}/.test(e)&&(e=e.replace(/^.*:/,"")),e}function outputQRCodeOnTerminal(e){console.info(`\n生成HTTP服务器的二维码: ${e}`),_qrcodeTerminal.default.generate(e,{small:!0})}function relateCwd(e){const t=_config.default.projectPath;return _path.default.relative(t,e)}function equals(e,t,o,...r){if(o){if(o(e,t,...r))return!0}const n=Object.prototype.toString.call(e);if(n!==Object.prototype.toString.call(t))return!1;if("[object Null]"===n||"[object Undefined]"===n)return!0;if("[object Object]"!==n&&"[object Array]"!==n)return Object(e).toString()===Object(t).toString();const s={};Object.keys(e).forEach(e=>s[e]=!0),Object.keys(t).forEach(e=>s[e]=!0);const l=Object.keys(s);for(let r=0;r<l.length;r++){const n=l[r];if(!equals(e[n],t[n],o,n))return!1}return!0}function extend(e,...t){if("function"==typeof Object.assign)Object.assign(e,...t);else{const o=t.shift();for(const t in o)e[t]=o[t];t.length&&extend(e,...t)}return e}function renderString(e,t){return e.replace(/{{(.*?)}}/gm,(e,o)=>(o=o.trim(),void 0!==t[o]?t[o]:o))}function KnownError(e){const t=new Error(e);return t.name="KnownError",t.__KNOWN=!0,t}function debounce(e,t){let o=null;return function(){const r=this,n=arguments;o&&(clearTimeout(o),o=null),o=setTimeout((function(){e.apply(r,n)}),t)}}function setCustomConfig(e,t){e=_config.default.projectPath=e||_config.default.projectPath;const o=_path.default.join(e,"quickapp.config.js");if(_fs.default.existsSync(o)){let e={};try{e=require(o)}catch(e){colorconsole.error(`读取项目自定义配置文件出错: ${e.message}`)}const t=Object.assign(_config.default.server,e.server);Object.assign(_config.default,e,{server:t})}t&&(_config.default.server.port=t)}exports.colorconsole=colorconsole;const illegalExtsList=[".css",".less",".scss",".styl",".sass",".log",".json",".js"].map(e=>"app"+e);function getProjectDslName(e){const t=_fs.default.readdirSync(_path.default.join(e,_config.default.sourceRoot)).filter(e=>/^app\..*/.test(e)&&!illegalExtsList.includes(e));let o;return t&&t[0]?(o=_path.default.extname(t[0]).slice(1),colorconsole.info(`获取到app文件后缀: ${o}`)):colorconsole.error("无法获取正确的app文件后缀"),"ux"===o?"xvm":o}function getDeviceInfo(e,t){const o=_http.default.request({path:"/deviceinfo",host:e.ip,port:e.port,timeout:3e3},e=>{e.on("data",e=>{t(null,JSON.parse(e))})}).on("error",e=>{t(e)}).on("timeout",(function(){o.abort()}));o.end()} | ||
//# sourceMappingURL=index.js.map |
{ | ||
"name": "@hap-toolkit/shared-utils", | ||
"version": "0.6.10", | ||
"version": "0.6.11-beta.0", | ||
"description": "hap shared utils", | ||
@@ -33,3 +33,3 @@ "engines": { | ||
}, | ||
"gitHead": "e5a81e00b1feca7cca966c3acd0da0d3ba6eab21" | ||
"gitHead": "4f5a8ad7352c151e51842eca71fc1b8e9a7e7682" | ||
} |
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 2 instances in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
14833
39.85%9
28.57%121
17.48%6
50%6
50%