xshell 0.0.22 → 0.0.23

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/myfont.sass CHANGED
@@ -9,3 +9,6 @@
9
9
 
10
10
  html
11
11
  font-family: 'MyFont', sans-serif
12
+
13
+ body
14
+ font-family: 'MyFont', sans-serif
package/net.d.ts CHANGED
@@ -1,15 +1,15 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="cheerio" />
3
- import request_lib from 'request';
4
- import request_promise from 'request-promise-native';
3
+ import { default as request_lib } from 'request';
4
+ import { default as request_promise } from 'request-promise-native';
5
5
  import { Cookie, MemoryCookieStore } from 'tough-cookie';
6
6
  declare module 'tough-cookie' {
7
7
  interface MemoryCookieStore {
8
8
  idx: Record<string, any>;
9
9
  }
10
10
  }
11
- import './prototype';
12
- import type { Encoding } from './file';
11
+ import './prototype.js';
12
+ import type { Encoding } from './file.js';
13
13
  export declare enum MyProxy {
14
14
  socks5 = "http://localhost:10080",
15
15
  whistle = "http://localhost:8899"
package/net.js CHANGED
@@ -3,15 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.rpc_curl = exports.rpc = exports.to_curl = exports.request_page = exports.parse_html = exports.request_json = exports.request = exports.request_retry = exports._request = exports.Cookie = exports.cookies = exports.MyProxy = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const request_promise_native_1 = (0, tslib_1.__importDefault)(require("request-promise-native"));
6
- const errors_1 = require("request-promise-native/errors");
6
+ const errors_js_1 = require("request-promise-native/errors.js");
7
7
  const promise_retry_1 = (0, tslib_1.__importDefault)(require("promise-retry"));
8
8
  const iconv_lite_1 = (0, tslib_1.__importDefault)(require("iconv-lite"));
9
9
  const cheerio_1 = (0, tslib_1.__importDefault)(require("cheerio"));
10
10
  const qs_1 = (0, tslib_1.__importDefault)(require("qs"));
11
11
  const tough_cookie_1 = require("tough-cookie");
12
12
  Object.defineProperty(exports, "Cookie", { enumerable: true, get: function () { return tough_cookie_1.Cookie; } });
13
- require("./prototype");
14
- const utils_1 = require("./utils");
13
+ require("./prototype.js");
14
+ const utils_js_1 = require("./utils.js");
15
15
  var MyProxy;
16
16
  (function (MyProxy) {
17
17
  MyProxy["socks5"] = "http://localhost:10080";
@@ -124,36 +124,36 @@ async function request(url, { queries, body, type = 'application/json', proxy, m
124
124
  else
125
125
  resp = await (0, exports._request)(options);
126
126
  if (!(200 <= resp.statusCode && resp.statusCode <= 299))
127
- throw new errors_1.StatusCodeError(resp.statusCode, resp.body, options, resp);
127
+ throw new errors_js_1.StatusCodeError(resp.statusCode, resp.body, options, resp);
128
128
  }
129
129
  catch (error) {
130
130
  const { name, options: { method, url, uri, qs }, response, } = error;
131
- error[utils_1.inspect.custom] = () => {
132
- let s = '─'.repeat(utils_1.output_width / 2) + '\n' +
131
+ error[utils_js_1.inspect.custom] = () => {
132
+ let s = '─'.repeat(utils_js_1.output_width / 2) + '\n' +
133
133
  `${(method || 'get').toLowerCase().red} ${String(url || uri).blue.underline}\n`;
134
134
  if (qs)
135
135
  s += `\n${'request.query:'.blue}\n` +
136
- (0, utils_1.inspect)(qs) + '\n';
136
+ (0, utils_js_1.inspect)(qs) + '\n';
137
137
  if (_body)
138
138
  s += `\n${'request.body:'.blue}\n` +
139
- (0, utils_1.inspect)(body) + '\n';
139
+ (0, utils_js_1.inspect)(body) + '\n';
140
140
  if (name === 'StatusCodeError')
141
141
  s += `\n${'response.status:'.yellow} ${String(error.statusCode).red}\n`;
142
- else if (error instanceof errors_1.RequestError)
142
+ else if (error instanceof errors_js_1.RequestError)
143
143
  s += `\n${'response.cause:'.yellow}\n` +
144
- `${(0, utils_1.inspect)(error.cause)}\n`;
144
+ `${(0, utils_js_1.inspect)(error.cause)}\n`;
145
145
  else
146
- s += `\n${(0, utils_1.inspect)(error)}\n`;
146
+ s += `\n${(0, utils_js_1.inspect)(error)}\n`;
147
147
  if (response) {
148
148
  s += `\n${'response.headers:'.yellow}\n` +
149
- `${(0, utils_1.inspect)(response.headers)}\n`;
149
+ `${(0, utils_js_1.inspect)(response.headers)}\n`;
150
150
  if (response.body)
151
151
  s += `\n${'response.body:'.yellow}\n` +
152
- `${(0, utils_1.inspect)(response.body.toString())}\n`;
152
+ `${(0, utils_js_1.inspect)(response.body.toString())}\n`;
153
153
  }
154
154
  s += `\n${'stack:'.yellow}\n` +
155
155
  `${new Error().stack}\n` +
156
- '─'.repeat(utils_1.output_width / 2);
156
+ '─'.repeat(utils_js_1.output_width / 2);
157
157
  return s;
158
158
  };
159
159
  throw error;
@@ -188,14 +188,14 @@ exports.request_json = request_json;
188
188
  /** use $.html(cheerio_element) to get outer html */
189
189
  function parse_html(html) {
190
190
  let $ = cheerio_1.default.load(html, { decodeEntities: false });
191
- Object.defineProperty($, utils_1.inspect.custom, {
191
+ Object.defineProperty($, utils_js_1.inspect.custom, {
192
192
  configurable: true,
193
193
  enumerable: false,
194
194
  value() {
195
195
  return this.html();
196
196
  }
197
197
  });
198
- Object.defineProperty($.prototype, utils_1.inspect.custom, {
198
+ Object.defineProperty($.prototype, utils_js_1.inspect.custom, {
199
199
  configurable: true,
200
200
  enumerable: false,
201
201
  value() {
package/net.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"net.js","sourceRoot":"","sources":["net.ts"],"names":[],"mappings":"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","sourcesContent":["import request_lib from 'request'\nimport type { OptionsWithUri, OptionsWithUrl } from 'request'\n\nimport request_promise from 'request-promise-native'\nimport type { FullResponse } from 'request-promise-native'\nimport { RequestError, StatusCodeError } from 'request-promise-native/errors'\n\nimport promise_retry from 'promise-retry'\n\nimport iconv from 'iconv-lite'\nimport cheerio from 'cheerio'\nimport qs from 'qs'\nimport { Cookie, MemoryCookieStore } from 'tough-cookie'\n\ndeclare module 'tough-cookie' {\n interface MemoryCookieStore {\n idx: Record<string, any>\n }\n}\n\n\nimport './prototype'\nimport type { Encoding } from './file'\nimport { inspect, output_width } from './utils'\n\nexport enum MyProxy {\n socks5 = 'http://localhost:10080',\n whistle = 'http://localhost:8899',\n}\n\n\n// ------------------------------------ Fetch, Request\nconst cookie_store = new MemoryCookieStore()\n\nexport const cookies = {\n store: cookie_store,\n \n jar: request_promise.jar(cookie_store),\n \n get (domain_or_url: string, str = false) {\n if (domain_or_url.startsWith('http'))\n if (str)\n return this.jar.getCookieString(domain_or_url)\n else\n return this.jar.getCookies(domain_or_url)\n \n let cookies: Cookie[]\n this.store.findCookies(domain_or_url, null, true, (error, _cookies) => {\n if (error) throw error\n cookies = _cookies\n })\n return cookies\n },\n}\n\nexport { Cookie }\n\n\nexport const _request = request_promise.defaults({\n rejectUnauthorized: false,\n gzip: true,\n /** prevent 302 redirect cause error, which is a boolean to set whether status codes other than 2xx should also reject the promise */\n simple: false,\n \n jar: cookies.jar\n})\n\n\nexport async function request_retry (retries: number, request_options: request_promise.OptionsWithUrl) {\n return promise_retry<FullResponse>({\n retries,\n minTimeout: 1000,\n maxTimeout: Infinity,\n factor: 2\n }, async (retry, count) => {\n try {\n return await _request(request_options)\n } catch (error) {\n if (!['ECONNRESET', 'ETIMEDOUT', 'ESOCKETTIMEDOUT'].includes(error.cause?.code)) throw error\n if (count <= retries)\n console.log(`${`retry (${count}) …`.yellow} ${request_options.url.toString().blue.underline}`)\n return retry(error)\n }\n })\n}\n\n\nexport interface RequestOptions {\n method?: 'get' | 'post' | 'put' | 'head' | 'delete' | 'patch'\n \n queries?: Record<string, any>\n \n headers?: Record<string, string>\n \n body?: string | Record<string, any>\n \n type?: 'application/json' | 'application/x-www-form-urlencoded' | 'multipart/form-data'\n \n \n proxy?: boolean | MyProxy | string\n \n encoding?: Encoding\n \n retries?: true | number\n \n timeout?: number\n \n auth?: {\n username: string\n password: string\n }\n \n gzip?: boolean\n \n cookies?: Record<string, string>\n}\n\nexport interface RequestRawOptions extends RequestOptions {\n raw: true\n}\n\n/** \n - url: must be full url\n - options:\n - raw: `false` 传入后返回整个 response\n - encoding: `(response content-type: charset=gb18030) || 'utf-8'` when 'binary' then return buffer\n - type: `'application/json'` request content-type header (if has body)\n - proxy: `false` proxy === true then use MyProxy.whistle\n - retries: `false` could be true (default 3 times) or retry times\n - timeout: `20 * 1000`\n - gzip: `raw -> false; else -> true`\n*/\nexport async function request (url: string | URL): Promise<string>\nexport async function request (url: string | URL, options: RequestRawOptions): Promise<request_lib.Response>\nexport async function request (url: string | URL, options: RequestOptions & { encoding: 'binary' }): Promise<Buffer>\nexport async function request (url: string | URL, options: RequestOptions): Promise<string>\nexport async function request (url: string | URL, {\n queries,\n \n body,\n \n type = 'application/json',\n \n proxy,\n \n method,\n \n headers,\n \n encoding,\n \n raw = false,\n \n retries,\n \n timeout = 20 * 1000,\n \n auth,\n \n gzip,\n \n cookies,\n \n}: RequestOptions & { raw?: boolean } = { }) {\n url = url.toString()\n \n if (!url.startsWith('http'))\n url = 'http://' + url\n \n const _body = body // for error log\n \n if (body && !method)\n method = 'post'\n \n if (type === 'application/json' && typeof body !== 'undefined' && (typeof body !== 'string' && !Buffer.isBuffer(body)))\n body = JSON.stringify(body)\n \n // --- proxy\n if (proxy) {\n if (proxy === true)\n proxy = MyProxy.whistle\n } else\n proxy = false\n \n // --- gzip\n if (gzip === undefined)\n gzip = !raw\n \n \n const options: request_lib.Options & { resolveWithFullResponse: boolean } = {\n url,\n \n ... method ? { method: method.toUpperCase() } : { },\n \n proxy,\n \n gzip,\n \n encoding: null,\n \n resolveWithFullResponse: true,\n \n headers: {\n 'accept-language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,ja-JP;q=0.6,ja;q=0.5',\n 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36',\n ... body ? { 'content-type': type } : { }, \n ... cookies ? {\n cookie: Object.entries(cookies)\n .map(([key, value]) => \n `${encodeURIComponent(key)}=${encodeURIComponent(value)}`\n ).join('; ')\n } : { },\n ... headers\n },\n \n ... queries ? { qs: queries } : { },\n \n // --- body\n ... (() => {\n if (!body) return { }\n if (type === 'application/x-www-form-urlencoded') return { form: body }\n if (type === 'multipart/form-data') return { formData: body as Record<string, any> }\n return { body }\n })(),\n \n ... timeout ? { timeout } : { },\n \n ... auth ? { auth } : { },\n }\n \n let resp: request_lib.Response\n \n try {\n if (retries) {\n if (retries === true)\n retries = 3\n \n resp = await request_retry(retries, options)\n } else\n resp = await _request(options)\n \n if (!(200 <= resp.statusCode && resp.statusCode <= 299))\n throw new StatusCodeError(resp.statusCode, resp.body, options, resp)\n \n } catch (error) {\n const {\n name, \n options: { method, url, uri, qs }, \n response,\n }: {\n options: OptionsWithUri & OptionsWithUrl\n response: FullResponse\n } & Error = error\n \n error[inspect.custom] = () => {\n let s = '─'.repeat(output_width / 2) + '\\n' +\n `${(method || 'get').toLowerCase().red} ${String(url || uri).blue.underline}\\n`\n \n if (qs)\n s += `\\n${'request.query:'.blue}\\n` +\n inspect(qs) + '\\n'\n \n if (_body)\n s += `\\n${'request.body:'.blue}\\n` +\n inspect(body) + '\\n'\n \n if (name === 'StatusCodeError')\n s += `\\n${'response.status:'.yellow} ${String(error.statusCode).red}\\n`\n else if (error instanceof RequestError)\n s += `\\n${'response.cause:'.yellow}\\n` +\n `${inspect(error.cause)}\\n`\n else\n s += `\\n${inspect(error)}\\n`\n \n if (response) {\n s += `\\n${'response.headers:'.yellow}\\n` + \n `${inspect(response.headers)}\\n`\n \n if (response.body)\n s += `\\n${'response.body:'.yellow}\\n` +\n `${inspect(response.body.toString())}\\n`\n }\n \n s += `\\n${'stack:'.yellow}\\n` +\n `${new Error().stack}\\n` +\n '─'.repeat(output_width / 2)\n \n return s\n }\n \n throw error\n }\n \n if (raw)\n return resp\n \n if (!resp.body)\n return resp.body\n \n // --- decode body\n if (encoding === 'binary')\n return resp.body\n \n encoding ||= /charset=(.*)/.exec(resp.headers['content-type'])?.[1] as Encoding || 'utf-8'\n \n if (/utf-?8/i.test(encoding))\n return (resp.body as Buffer).toString('utf-8')\n \n return iconv.decode((resp.body as Buffer), encoding)\n}\n\n\n/** make http request and parse body as json */\nexport async function request_json <T = any> (url: string | URL, options?: RequestOptions): Promise<T> {\n const resp = await request(url, options)\n if (!resp) return\n try {\n return JSON.parse(resp)\n } catch (error) {\n console.log(resp)\n throw error\n }\n}\n\n\n/** use $.html(cheerio_element) to get outer html */\nexport function parse_html (html: string) {\n let $ = cheerio.load(html, { decodeEntities: false })\n \n Object.defineProperty($, inspect.custom, {\n configurable: true,\n enumerable: false,\n value () {\n return this.html()\n }\n })\n \n Object.defineProperty($.prototype, inspect.custom, {\n configurable: true,\n enumerable: false,\n value (this: cheerio.Cheerio) {\n if (this.length > 1)\n return this.map((index, element) => {\n if (typeof element === 'string') return element\n return $.html(element)\n }).get().join_lines()\n \n return this.toString()\n }\n })\n \n return $\n}\n\n\n/** use $.html(cheerio_element) to get outer html */\nexport async function request_page (url: string | URL, options?: RequestOptions) {\n return parse_html(\n await request(url, options)\n )\n}\n\n\nexport function to_curl (url: string | URL, { queries, headers, method, body, proxy, exe = true }: RequestOptions & { exe?: boolean } = { }) {\n if (proxy === true)\n proxy = process.env.http_proxy\n \n url = url.toString()\n \n if (!url.startsWith('http'))\n url = `http://${url}`\n \n return (exe ? 'curl.exe' : 'curl') + \n ' ' + ( url + (queries ? '?' : '') + qs.stringify(queries) ).quote() +\n // ( typeof proxy === 'undefined' ?\n // ''\n // :\n // ( proxy ? ' --proxy ' + proxy.quote() : ' --noproxy ' + '*'.quote())\n // ) +\n ( proxy ? ` --proxy ${proxy.quote()}` : '' ) +\n ( method && method !== 'get' ? ` -X ${method}` : '' ) +\n ( headers ? Object.entries(headers).map( ([key, value]) => ' -H ' + `${key}: ${value}`.quote() ).join('') : '' ) +\n ( body ? ' -H ' + 'content-type: application/json'.quote() : '') +\n ( body ? ' --data ' + JSON.stringify(body).quote() : '')\n}\n\n\n\n\n// ------------------------------------ rpc client\n/** post json to http://localhost:8421/api/rpc\n - func: function name\n - args?: argument array\n - options?:\n - ignore?: `false` wait for execution but do not serialize result to response\n - async?: `false` do not wait for exec\n*/\nexport async function rpc (\n func: string, \n args?: any[], \n { url = 'http://localhost:8421/api/rpc', async: _async = false, ignore = false }: { url?: string, async?: boolean, ignore?: boolean } = { }\n) {\n if (!func) throw new Error('rpc argument error: no func')\n \n return request_json(url, {\n body: {\n func,\n args,\n async: _async,\n ignore,\n }\n })\n}\n\n\nexport function rpc_curl (func: string, args: any[]) {\n const cmd = args.find( arg => typeof arg === 'object') ?\n to_curl('http://localhost:8421/api/rpc', { body: { func, args } })\n :\n to_curl('http://localhost:8421/api/rpc', { queries: { func, args } })\n return cmd\n}\n\n"]}
1
+ {"version":3,"file":"net.js","sourceRoot":"","sources":["net.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n default as request_lib,\n type OptionsWithUri,\n type OptionsWithUrl\n} from 'request'\n\nimport {\n default as request_promise,\n type FullResponse,\n} from 'request-promise-native'\nimport { RequestError, StatusCodeError } from 'request-promise-native/errors.js'\n\nimport promise_retry from 'promise-retry'\n\nimport iconv from 'iconv-lite'\nimport cheerio from 'cheerio'\nimport qs from 'qs'\nimport { Cookie, MemoryCookieStore } from 'tough-cookie'\n\ndeclare module 'tough-cookie' {\n interface MemoryCookieStore {\n idx: Record<string, any>\n }\n}\n\n\nimport './prototype.js'\nimport type { Encoding } from './file.js'\nimport { inspect, output_width } from './utils.js'\n\nexport enum MyProxy {\n socks5 = 'http://localhost:10080',\n whistle = 'http://localhost:8899',\n}\n\n\n// ------------------------------------ Fetch, Request\nconst cookie_store = new MemoryCookieStore()\n\nexport const cookies = {\n store: cookie_store,\n \n jar: request_promise.jar(cookie_store),\n \n get (domain_or_url: string, str = false) {\n if (domain_or_url.startsWith('http'))\n if (str)\n return this.jar.getCookieString(domain_or_url)\n else\n return this.jar.getCookies(domain_or_url)\n \n let cookies: Cookie[]\n this.store.findCookies(domain_or_url, null, true, (error, _cookies) => {\n if (error) throw error\n cookies = _cookies\n })\n return cookies\n },\n}\n\nexport { Cookie }\n\n\nexport const _request = request_promise.defaults({\n rejectUnauthorized: false,\n gzip: true,\n /** prevent 302 redirect cause error, which is a boolean to set whether status codes other than 2xx should also reject the promise */\n simple: false,\n \n jar: cookies.jar\n})\n\n\nexport async function request_retry (retries: number, request_options: request_promise.OptionsWithUrl) {\n return promise_retry<FullResponse>({\n retries,\n minTimeout: 1000,\n maxTimeout: Infinity,\n factor: 2\n }, async (retry, count) => {\n try {\n return await _request(request_options)\n } catch (error) {\n if (!['ECONNRESET', 'ETIMEDOUT', 'ESOCKETTIMEDOUT'].includes(error.cause?.code)) throw error\n if (count <= retries)\n console.log(`${`retry (${count}) …`.yellow} ${request_options.url.toString().blue.underline}`)\n return retry(error)\n }\n })\n}\n\n\nexport interface RequestOptions {\n method?: 'get' | 'post' | 'put' | 'head' | 'delete' | 'patch'\n \n queries?: Record<string, any>\n \n headers?: Record<string, string>\n \n body?: string | Record<string, any>\n \n type?: 'application/json' | 'application/x-www-form-urlencoded' | 'multipart/form-data'\n \n \n proxy?: boolean | MyProxy | string\n \n encoding?: Encoding\n \n retries?: true | number\n \n timeout?: number\n \n auth?: {\n username: string\n password: string\n }\n \n gzip?: boolean\n \n cookies?: Record<string, string>\n}\n\nexport interface RequestRawOptions extends RequestOptions {\n raw: true\n}\n\n/** \n - url: must be full url\n - options:\n - raw: `false` 传入后返回整个 response\n - encoding: `(response content-type: charset=gb18030) || 'utf-8'` when 'binary' then return buffer\n - type: `'application/json'` request content-type header (if has body)\n - proxy: `false` proxy === true then use MyProxy.whistle\n - retries: `false` could be true (default 3 times) or retry times\n - timeout: `20 * 1000`\n - gzip: `raw -> false; else -> true`\n*/\nexport async function request (url: string | URL): Promise<string>\nexport async function request (url: string | URL, options: RequestRawOptions): Promise<request_lib.Response>\nexport async function request (url: string | URL, options: RequestOptions & { encoding: 'binary' }): Promise<Buffer>\nexport async function request (url: string | URL, options: RequestOptions): Promise<string>\nexport async function request (url: string | URL, {\n queries,\n \n body,\n \n type = 'application/json',\n \n proxy,\n \n method,\n \n headers,\n \n encoding,\n \n raw = false,\n \n retries,\n \n timeout = 20 * 1000,\n \n auth,\n \n gzip,\n \n cookies,\n \n}: RequestOptions & { raw?: boolean } = { }) {\n url = url.toString()\n \n if (!url.startsWith('http'))\n url = 'http://' + url\n \n const _body = body // for error log\n \n if (body && !method)\n method = 'post'\n \n if (type === 'application/json' && typeof body !== 'undefined' && (typeof body !== 'string' && !Buffer.isBuffer(body)))\n body = JSON.stringify(body)\n \n // --- proxy\n if (proxy) {\n if (proxy === true)\n proxy = MyProxy.whistle\n } else\n proxy = false\n \n // --- gzip\n if (gzip === undefined)\n gzip = !raw\n \n \n const options: request_lib.Options & { resolveWithFullResponse: boolean } = {\n url,\n \n ... method ? { method: method.toUpperCase() } : { },\n \n proxy,\n \n gzip,\n \n encoding: null,\n \n resolveWithFullResponse: true,\n \n headers: {\n 'accept-language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,ja-JP;q=0.6,ja;q=0.5',\n 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36',\n ... body ? { 'content-type': type } : { }, \n ... cookies ? {\n cookie: Object.entries(cookies)\n .map(([key, value]) => \n `${encodeURIComponent(key)}=${encodeURIComponent(value)}`\n ).join('; ')\n } : { },\n ... headers\n },\n \n ... queries ? { qs: queries } : { },\n \n // --- body\n ... (() => {\n if (!body) return { }\n if (type === 'application/x-www-form-urlencoded') return { form: body }\n if (type === 'multipart/form-data') return { formData: body as Record<string, any> }\n return { body }\n })(),\n \n ... timeout ? { timeout } : { },\n \n ... auth ? { auth } : { },\n }\n \n let resp: request_lib.Response\n \n try {\n if (retries) {\n if (retries === true)\n retries = 3\n \n resp = await request_retry(retries, options)\n } else\n resp = await _request(options)\n \n if (!(200 <= resp.statusCode && resp.statusCode <= 299))\n throw new StatusCodeError(resp.statusCode, resp.body, options, resp)\n \n } catch (error) {\n const {\n name, \n options: { method, url, uri, qs }, \n response,\n }: {\n options: OptionsWithUri & OptionsWithUrl\n response: FullResponse\n } & Error = error\n \n error[inspect.custom] = () => {\n let s = '─'.repeat(output_width / 2) + '\\n' +\n `${(method || 'get').toLowerCase().red} ${String(url || uri).blue.underline}\\n`\n \n if (qs)\n s += `\\n${'request.query:'.blue}\\n` +\n inspect(qs) + '\\n'\n \n if (_body)\n s += `\\n${'request.body:'.blue}\\n` +\n inspect(body) + '\\n'\n \n if (name === 'StatusCodeError')\n s += `\\n${'response.status:'.yellow} ${String(error.statusCode).red}\\n`\n else if (error instanceof RequestError)\n s += `\\n${'response.cause:'.yellow}\\n` +\n `${inspect(error.cause)}\\n`\n else\n s += `\\n${inspect(error)}\\n`\n \n if (response) {\n s += `\\n${'response.headers:'.yellow}\\n` + \n `${inspect(response.headers)}\\n`\n \n if (response.body)\n s += `\\n${'response.body:'.yellow}\\n` +\n `${inspect(response.body.toString())}\\n`\n }\n \n s += `\\n${'stack:'.yellow}\\n` +\n `${new Error().stack}\\n` +\n '─'.repeat(output_width / 2)\n \n return s\n }\n \n throw error\n }\n \n if (raw)\n return resp\n \n if (!resp.body)\n return resp.body\n \n // --- decode body\n if (encoding === 'binary')\n return resp.body\n \n encoding ||= /charset=(.*)/.exec(resp.headers['content-type'])?.[1] as Encoding || 'utf-8'\n \n if (/utf-?8/i.test(encoding))\n return (resp.body as Buffer).toString('utf-8')\n \n return iconv.decode((resp.body as Buffer), encoding)\n}\n\n\n/** make http request and parse body as json */\nexport async function request_json <T = any> (url: string | URL, options?: RequestOptions): Promise<T> {\n const resp = await request(url, options)\n if (!resp) return\n try {\n return JSON.parse(resp)\n } catch (error) {\n console.log(resp)\n throw error\n }\n}\n\n\n/** use $.html(cheerio_element) to get outer html */\nexport function parse_html (html: string) {\n let $ = cheerio.load(html, { decodeEntities: false })\n \n Object.defineProperty($, inspect.custom, {\n configurable: true,\n enumerable: false,\n value () {\n return this.html()\n }\n })\n \n Object.defineProperty($.prototype, inspect.custom, {\n configurable: true,\n enumerable: false,\n value (this: cheerio.Cheerio) {\n if (this.length > 1)\n return this.map((index, element) => {\n if (typeof element === 'string') return element\n return $.html(element)\n }).get().join_lines()\n \n return this.toString()\n }\n })\n \n return $\n}\n\n\n/** use $.html(cheerio_element) to get outer html */\nexport async function request_page (url: string | URL, options?: RequestOptions) {\n return parse_html(\n await request(url, options)\n )\n}\n\n\nexport function to_curl (url: string | URL, { queries, headers, method, body, proxy, exe = true }: RequestOptions & { exe?: boolean } = { }) {\n if (proxy === true)\n proxy = process.env.http_proxy\n \n url = url.toString()\n \n if (!url.startsWith('http'))\n url = `http://${url}`\n \n return (exe ? 'curl.exe' : 'curl') + \n ' ' + ( url + (queries ? '?' : '') + qs.stringify(queries) ).quote() +\n // ( typeof proxy === 'undefined' ?\n // ''\n // :\n // ( proxy ? ' --proxy ' + proxy.quote() : ' --noproxy ' + '*'.quote())\n // ) +\n ( proxy ? ` --proxy ${proxy.quote()}` : '' ) +\n ( method && method !== 'get' ? ` -X ${method}` : '' ) +\n ( headers ? Object.entries(headers).map( ([key, value]) => ' -H ' + `${key}: ${value}`.quote() ).join('') : '' ) +\n ( body ? ' -H ' + 'content-type: application/json'.quote() : '') +\n ( body ? ' --data ' + JSON.stringify(body).quote() : '')\n}\n\n\n\n\n// ------------------------------------ rpc client\n/** post json to http://localhost:8421/api/rpc\n - func: function name\n - args?: argument array\n - options?:\n - ignore?: `false` wait for execution but do not serialize result to response\n - async?: `false` do not wait for exec\n*/\nexport async function rpc (\n func: string, \n args?: any[], \n { url = 'http://localhost:8421/api/rpc', async: _async = false, ignore = false }: { url?: string, async?: boolean, ignore?: boolean } = { }\n) {\n if (!func) throw new Error('rpc argument error: no func')\n \n return request_json(url, {\n body: {\n func,\n args,\n async: _async,\n ignore,\n }\n })\n}\n\n\nexport function rpc_curl (func: string, args: any[]) {\n const cmd = args.find( arg => typeof arg === 'object') ?\n to_curl('http://localhost:8421/api/rpc', { body: { func, args } })\n :\n to_curl('http://localhost:8421/api/rpc', { queries: { func, args } })\n return cmd\n}\n\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xshell",
3
- "version": "0.0.22",
3
+ "version": "0.0.23",
4
4
  "main": "./index.js",
5
5
  "bin": {
6
6
  "xshell": "./xshell.js",
@@ -65,9 +65,9 @@
65
65
  ]
66
66
  },
67
67
  "dependencies": {
68
- "@babel/core": "^7.15.0",
69
- "@babel/parser": "^7.15.3",
70
- "@babel/traverse": "^7.15.0",
68
+ "@babel/core": "^7.16.0",
69
+ "@babel/parser": "^7.16.4",
70
+ "@babel/traverse": "^7.16.3",
71
71
  "@koa/cors": "^3.1.0",
72
72
  "byte-size": "^8.1.0",
73
73
  "chalk": "^4.1.2",
@@ -76,17 +76,17 @@
76
76
  "cli-table3": "^0.6.0",
77
77
  "cli-truncate": "=2.1.0",
78
78
  "colors": "^1.4.0",
79
- "commander": "^8.1.0",
79
+ "commander": "^8.3.0",
80
80
  "ejs": "^3.1.6",
81
81
  "emoji-regex": "^10.0.0",
82
82
  "fs-extra": "^10.0.0",
83
83
  "fs-monkey": "^1.0.3",
84
84
  "gulp-sort": "^2.0.0",
85
85
  "hash-string": "^1.0.0",
86
- "i18next-scanner": "^3.0.0",
87
- "i18next": "^20.5.0",
86
+ "i18next-scanner": "^3.1.0",
87
+ "i18next": "^21.5.4",
88
88
  "iconv-lite": "^0.6.3",
89
- "js-cookie": "^3.0.0",
89
+ "js-cookie": "^3.0.1",
90
90
  "koa-compress": "^5.1.0",
91
91
  "koa-useragent": "^4.0.0",
92
92
  "koa": "^2.13.4",
@@ -96,7 +96,7 @@
96
96
  "ora": "=5.4.1",
97
97
  "promise-retry": "^2.0.1",
98
98
  "qs": "^6.10.1",
99
- "react-i18next": "^11.11.4",
99
+ "react-i18next": "^11.14.3",
100
100
  "react": "^17.0.2",
101
101
  "readdir-enhanced": "^6.0.4",
102
102
  "request-promise-native": "^1.0.9",
@@ -113,22 +113,22 @@
113
113
  "vinyl": "^2.2.1"
114
114
  },
115
115
  "devDependencies": {
116
- "@babel/types": "^7.15.0",
116
+ "@babel/types": "^7.16.0",
117
117
  "@types/babel__traverse": "^7.14.2",
118
118
  "@types/chardet": "^0.8.1",
119
119
  "@types/cheerio": "^0.22.30",
120
120
  "@types/ejs": "^3.1.0",
121
121
  "@types/express": "^4.17.13",
122
122
  "@types/fs-extra": "^9.0.13",
123
- "@types/gulp-sort": "0.0.33",
124
- "@types/js-cookie": "^2.2.7",
123
+ "@types/gulp-sort": "2.0.0",
124
+ "@types/js-cookie": "^3.0.1",
125
125
  "@types/koa-compress": "^4.0.3",
126
126
  "@types/koa": "^2.13.4",
127
127
  "@types/lodash": "^4.14.177",
128
- "@types/node": "^16.11.10",
128
+ "@types/node": "^16.11.11",
129
129
  "@types/promise-retry": "^1.1.3",
130
130
  "@types/qs": "^6.9.7",
131
- "@types/react": "^17.0.19",
131
+ "@types/react": "^17.0.37",
132
132
  "@types/request-promise-native": "^1.0.18",
133
133
  "@types/request": "^2.48.7",
134
134
  "@types/rimraf": "^3.0.2",
package/process.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  /// <reference types="node" />
2
- import type { ChildProcess } from 'child_process';
3
- import './prototype';
4
- import { Encoding } from './file';
5
- import { inspect } from './utils';
2
+ import { type ChildProcess } from 'child_process';
3
+ import './prototype.js';
4
+ import { Encoding } from './file.js';
5
+ import { inspect } from './utils.js';
6
6
  export declare const fp_root: string;
7
7
  export declare const exe_node: string;
8
8
  interface StartOptions {
package/process.js CHANGED
@@ -4,8 +4,8 @@ exports.call_node = exports.call = exports.start = exports.exe_node = exports.fp
4
4
  const tslib_1 = require("tslib");
5
5
  const child_process_1 = require("child_process");
6
6
  const iconv_lite_1 = (0, tslib_1.__importDefault)(require("iconv-lite"));
7
- require("./prototype");
8
- const utils_1 = require("./utils");
7
+ require("./prototype.js");
8
+ const utils_js_1 = require("./utils.js");
9
9
  exports.fp_root = `${__dirname}/`.to_slash();
10
10
  exports.exe_node = process.execPath.to_slash();
11
11
  /** start process
@@ -126,8 +126,8 @@ async function call(exe, args = [], options = {}) {
126
126
  code,
127
127
  signal,
128
128
  child,
129
- [utils_1.inspect.custom]() {
130
- return (0, utils_1.inspect)(this, { omit: ['child'] });
129
+ [utils_js_1.inspect.custom]() {
130
+ return (0, utils_js_1.inspect)(this, { omit: ['child'] });
131
131
  }
132
132
  };
133
133
  if (code && throw_code)
package/process.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"process.js","sourceRoot":"","sources":["process.ts"],"names":[],"mappings":"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","sourcesContent":["import { spawn } from 'child_process'\nimport type { SpawnOptions, ChildProcess } from 'child_process'\nimport { Readable, Writable } from 'stream'\n\nimport iconv from 'iconv-lite'\n\nimport './prototype'\nimport { Encoding } from './file'\nimport { inspect } from './utils'\n\nexport const fp_root = `${__dirname}/`.to_slash()\n\nexport const exe_node = process.execPath.to_slash()\n\n\n// ------------------------------------ start & call\ninterface StartOptions {\n /** `'d:/'` */\n cwd?: string\n \n /** `process.env` overwrite/add to process.env */\n env?: Record<string, string>\n \n /** `'utf-8'` child output encoding */\n encoding?: Encoding\n \n /** `true` print option (with details) */\n print?: boolean | {\n command?: boolean\n stdout?: boolean\n stderr?: boolean\n code?: boolean\n error?: boolean\n }\n \n /** `'pipe'` when 'ignore' then ignore stdio processing */\n stdio?: 'pipe' | 'ignore'\n \n /** `false` whether to break the connection with child (ignore stdio, unref) */\n detached?: boolean\n}\n\n/** start process \n - exe: .exe path or filename (full path is recommanded to skip path searching for better perf)\n - args: `[]` arguments list\n - options\n - cwd?: `fp_root`\n - env?: `process.env` overwrite/add to process.env\n - encoding?: `'utf-8'` child output encoding\n - print?: `true` print option (with details)\n - stdio?: `'pipe'` when 'ignore' then ignore stdio processing\n - detached?: `false` whether to break the connection with child (ignore stdio, unref)\n*/\nexport function start (exe: string, args: string[] = [], {\n cwd = fp_root,\n \n encoding = 'utf-8',\n \n print = true,\n \n stdio = 'pipe',\n \n detached = false,\n \n env,\n \n}: StartOptions = { }): ChildProcess {\n const options: SpawnOptions = {\n cwd,\n shell: false,\n windowsHide: !detached,\n stdio,\n ... env ? {\n env: { ...process.env, ...env }\n } : { },\n }\n \n if (print)\n console.log(`${exe} ${ args.map(arg => arg.includes(' ') ? arg.quote() : arg).join(' ') }`.blue)\n \n if (detached) {\n let child = spawn(exe, args, {\n ...options,\n stdio: 'ignore',\n detached: true,\n })\n \n child.unref()\n return child\n }\n \n let child = spawn(exe, args, options)\n \n if (stdio === 'pipe')\n child.stdin.setDefaultEncoding('utf8')\n \n // prevent child spawn error crashing nodejs process\n child.on('error', error => {\n console.error(error)\n })\n \n if (stdio === 'ignore') return child\n \n if (encoding !== 'binary') {\n if (encoding === 'utf-8') {\n child.stdout.setEncoding('utf-8')\n child.stderr.setEncoding('utf-8')\n } else {\n child.stdout = child.stdout.pipe(\n iconv.decodeStream(encoding)\n ) as any as Readable\n child.stderr = child.stderr.pipe(\n iconv.decodeStream(encoding)\n ) as any as Readable\n }\n \n if (print) {\n child.stdout.pipe(process.stdout, { end: false })\n child.stderr.pipe(process.stderr, { end: false })\n }\n }\n \n return child\n}\n\n\nexport interface CallOptions extends StartOptions {\n /** `true` whether to throw Error when code is not 0 */\n throw_code?: boolean\n}\n\nexport interface CallResult<T = string> {\n pid: number\n stdout: T\n stderr: T\n code: number | null\n signal: NodeJS.Signals | null\n child: ChildProcess\n [inspect.custom] (): string\n}\n\n\n/** call process for result\n - exe: .exe path or filename (full path is recommanded to skip path searching for better perf)\n - args: `[]` arguments list\n - options\n - cwd?: `'d:/'`\n - env?: `process.env` overwrite/add to process.env\n - encoding?: `'utf-8'` child output encoding\n - print?: `true` print option (with details)\n - stdio?: `'pipe'` when 'ignore' then ignore stdio processing\n - detached?: `false` whether to break the connection with child (ignore stdio, unref)\n - throw_code?: `true` whether to throw Error when code is not 0\n*/\nexport async function call (exe: string, args?: string[]): Promise<CallResult<string>>\nexport async function call (exe: string, args?: string[], options?: CallOptions & { encoding?: 'utf-8' | 'gb18030' }): Promise<CallResult<string>>\nexport async function call (exe: string, args?: string[], options?: CallOptions & { encoding: 'binary' }): Promise<CallResult<Buffer>>\nexport async function call (exe: string, args: string[] = [], options: CallOptions = { }): Promise<CallResult<string | Buffer>> {\n const {\n encoding = 'utf-8', \n print = true,\n throw_code = true,\n } = options\n \n const print_options = typeof print === 'boolean' ?\n {\n command: print,\n stdout: print,\n stderr: print,\n code: print,\n error: print\n }\n :\n print\n \n const cmd = `${exe} ${ args.map(arg => arg.includes(' ') ? arg.quote() : arg).join(' ') }`\n \n if (print_options.command)\n console.log(cmd.blue)\n \n options.print = false\n \n let child = start(exe, args, options)\n \n \n // --- collect output\n let stdouts: (string | Buffer)[] = [ ]\n let stderrs: (string | Buffer)[] = [ ]\n \n let code: number | null, \n signal: NodeJS.Signals\n \n await Promise.all([\n new Promise<void>(resolve => {\n child.on('exit', (_code, _signal) => {\n code = _code\n signal = _signal\n resolve()\n })\n }),\n (async () => {\n for await (const chunk of child.stdout as AsyncIterable<string | Buffer>) {\n if (encoding !== 'binary' && print_options.stdout)\n process.stdout.write(chunk)\n stdouts.push(chunk)\n }\n })(),\n (async () => {\n for await (const chunk of child.stderr as AsyncIterable<string | Buffer>) {\n if (encoding !== 'binary' && print_options.stderr)\n process.stderr.write(chunk)\n stderrs.push(chunk)\n }\n })()\n ])\n \n const message = `process(${ child.pid }) '${ cmd }' exited ${ code }${ signal ? `, by signal ${ signal }` : '' }.`\n \n if (print_options.code || code || signal)\n console.log(message[code || signal ? 'red' : 'blue'])\n \n const result = {\n pid: child.pid,\n \n stdout: encoding === 'binary' ?\n Buffer.concat(stdouts as Buffer[])\n :\n (stdouts as string[]).join(''),\n \n stderr: encoding === 'binary' ?\n Buffer.concat(stderrs as Buffer[])\n :\n (stderrs as string[]).join(''),\n \n code,\n \n signal,\n \n child,\n \n [inspect.custom] () {\n return inspect(this, { omit: ['child'] })\n }\n }\n \n if (code && throw_code)\n throw Object.assign(\n new Error(message), \n result\n )\n \n return result\n}\n\n\n/** call node <js> for result\n - js: .js path (relative path will resolve based on cwd)\n - args: `[]` arguments list\n - options\n - cwd?: `'d:/'`\n - env?: `process.env` overwrite/add to process.env\n - encoding?: `'utf-8'` child process output encoding\n - print?: `true` print option (with details)\n - stdio?: `'pipe'` when 'ignore' then ignore stdio processing\n - detached?: `false` whether to break the connection with child (ignore stdio, unref)\n - throw_code?: `true` whether to throw Error when code is not 0\n*/\nexport async function call_node (js: string, args: string[] = [], options?: CallOptions & { encoding?: 'utf-8' | 'gb18030' }) {\n return call(exe_node, [js, ...args], options)\n}\n\n"]}
1
+ {"version":3,"file":"process.js","sourceRoot":"","sources":["process.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n spawn,\n type SpawnOptions,\n type ChildProcess\n} from 'child_process'\nimport { Readable } from 'stream'\n\nimport iconv from 'iconv-lite'\n\nimport './prototype.js'\nimport { Encoding } from './file.js'\nimport { inspect } from './utils.js'\n\nexport const fp_root = `${__dirname}/`.to_slash()\n\nexport const exe_node = process.execPath.to_slash()\n\n\n// ------------------------------------ start & call\ninterface StartOptions {\n /** `'d:/'` */\n cwd?: string\n \n /** `process.env` overwrite/add to process.env */\n env?: Record<string, string>\n \n /** `'utf-8'` child output encoding */\n encoding?: Encoding\n \n /** `true` print option (with details) */\n print?: boolean | {\n command?: boolean\n stdout?: boolean\n stderr?: boolean\n code?: boolean\n error?: boolean\n }\n \n /** `'pipe'` when 'ignore' then ignore stdio processing */\n stdio?: 'pipe' | 'ignore'\n \n /** `false` whether to break the connection with child (ignore stdio, unref) */\n detached?: boolean\n}\n\n/** start process \n - exe: .exe path or filename (full path is recommanded to skip path searching for better perf)\n - args: `[]` arguments list\n - options\n - cwd?: `fp_root`\n - env?: `process.env` overwrite/add to process.env\n - encoding?: `'utf-8'` child output encoding\n - print?: `true` print option (with details)\n - stdio?: `'pipe'` when 'ignore' then ignore stdio processing\n - detached?: `false` whether to break the connection with child (ignore stdio, unref)\n*/\nexport function start (exe: string, args: string[] = [], {\n cwd = fp_root,\n \n encoding = 'utf-8',\n \n print = true,\n \n stdio = 'pipe',\n \n detached = false,\n \n env,\n \n}: StartOptions = { }): ChildProcess {\n const options: SpawnOptions = {\n cwd,\n shell: false,\n windowsHide: !detached,\n stdio,\n ... env ? {\n env: { ...process.env, ...env }\n } : { },\n }\n \n if (print)\n console.log(`${exe} ${ args.map(arg => arg.includes(' ') ? arg.quote() : arg).join(' ') }`.blue)\n \n if (detached) {\n let child = spawn(exe, args, {\n ...options,\n stdio: 'ignore',\n detached: true,\n })\n \n child.unref()\n return child\n }\n \n let child = spawn(exe, args, options)\n \n if (stdio === 'pipe')\n child.stdin.setDefaultEncoding('utf8')\n \n // prevent child spawn error crashing nodejs process\n child.on('error', error => {\n console.error(error)\n })\n \n if (stdio === 'ignore') return child\n \n if (encoding !== 'binary') {\n if (encoding === 'utf-8') {\n child.stdout.setEncoding('utf-8')\n child.stderr.setEncoding('utf-8')\n } else {\n child.stdout = child.stdout.pipe(\n iconv.decodeStream(encoding)\n ) as any as Readable\n child.stderr = child.stderr.pipe(\n iconv.decodeStream(encoding)\n ) as any as Readable\n }\n \n if (print) {\n child.stdout.pipe(process.stdout, { end: false })\n child.stderr.pipe(process.stderr, { end: false })\n }\n }\n \n return child\n}\n\n\nexport interface CallOptions extends StartOptions {\n /** `true` whether to throw Error when code is not 0 */\n throw_code?: boolean\n}\n\nexport interface CallResult<T = string> {\n pid: number\n stdout: T\n stderr: T\n code: number | null\n signal: NodeJS.Signals | null\n child: ChildProcess\n [inspect.custom] (): string\n}\n\n\n/** call process for result\n - exe: .exe path or filename (full path is recommanded to skip path searching for better perf)\n - args: `[]` arguments list\n - options\n - cwd?: `'d:/'`\n - env?: `process.env` overwrite/add to process.env\n - encoding?: `'utf-8'` child output encoding\n - print?: `true` print option (with details)\n - stdio?: `'pipe'` when 'ignore' then ignore stdio processing\n - detached?: `false` whether to break the connection with child (ignore stdio, unref)\n - throw_code?: `true` whether to throw Error when code is not 0\n*/\nexport async function call (exe: string, args?: string[]): Promise<CallResult<string>>\nexport async function call (exe: string, args?: string[], options?: CallOptions & { encoding?: 'utf-8' | 'gb18030' }): Promise<CallResult<string>>\nexport async function call (exe: string, args?: string[], options?: CallOptions & { encoding: 'binary' }): Promise<CallResult<Buffer>>\nexport async function call (exe: string, args: string[] = [], options: CallOptions = { }): Promise<CallResult<string | Buffer>> {\n const {\n encoding = 'utf-8', \n print = true,\n throw_code = true,\n } = options\n \n const print_options = typeof print === 'boolean' ?\n {\n command: print,\n stdout: print,\n stderr: print,\n code: print,\n error: print\n }\n :\n print\n \n const cmd = `${exe} ${ args.map(arg => arg.includes(' ') ? arg.quote() : arg).join(' ') }`\n \n if (print_options.command)\n console.log(cmd.blue)\n \n options.print = false\n \n let child = start(exe, args, options)\n \n \n // --- collect output\n let stdouts: (string | Buffer)[] = [ ]\n let stderrs: (string | Buffer)[] = [ ]\n \n let code: number | null, \n signal: NodeJS.Signals\n \n await Promise.all([\n new Promise<void>(resolve => {\n child.on('exit', (_code, _signal) => {\n code = _code\n signal = _signal\n resolve()\n })\n }),\n (async () => {\n for await (const chunk of child.stdout as AsyncIterable<string | Buffer>) {\n if (encoding !== 'binary' && print_options.stdout)\n process.stdout.write(chunk)\n stdouts.push(chunk)\n }\n })(),\n (async () => {\n for await (const chunk of child.stderr as AsyncIterable<string | Buffer>) {\n if (encoding !== 'binary' && print_options.stderr)\n process.stderr.write(chunk)\n stderrs.push(chunk)\n }\n })()\n ])\n \n const message = `process(${ child.pid }) '${ cmd }' exited ${ code }${ signal ? `, by signal ${ signal }` : '' }.`\n \n if (print_options.code || code || signal)\n console.log(message[code || signal ? 'red' : 'blue'])\n \n const result = {\n pid: child.pid,\n \n stdout: encoding === 'binary' ?\n Buffer.concat(stdouts as Buffer[])\n :\n (stdouts as string[]).join(''),\n \n stderr: encoding === 'binary' ?\n Buffer.concat(stderrs as Buffer[])\n :\n (stderrs as string[]).join(''),\n \n code,\n \n signal,\n \n child,\n \n [inspect.custom] () {\n return inspect(this, { omit: ['child'] })\n }\n }\n \n if (code && throw_code)\n throw Object.assign(\n new Error(message), \n result\n )\n \n return result\n}\n\n\n/** call node <js> for result\n - js: .js path (relative path will resolve based on cwd)\n - args: `[]` arguments list\n - options\n - cwd?: `'d:/'`\n - env?: `process.env` overwrite/add to process.env\n - encoding?: `'utf-8'` child process output encoding\n - print?: `true` print option (with details)\n - stdio?: `'pipe'` when 'ignore' then ignore stdio processing\n - detached?: `false` whether to break the connection with child (ignore stdio, unref)\n - throw_code?: `true` whether to throw Error when code is not 0\n*/\nexport async function call_node (js: string, args: string[] = [], options?: CallOptions & { encoding?: 'utf-8' | 'gb18030' }) {\n return call(exe_node, [js, ...args], options)\n}\n\n"]}
@@ -290,36 +290,37 @@ Object.defineProperties(String.prototype, {
290
290
  // ------------------------------------ Date.prototype
291
291
  Object.defineProperties(Date.prototype, to_method_property_descriptors({
292
292
  to_str() {
293
- return this.toLocaleString().replace(/(\d+)\/(\d+)\/(\d+) ?(上午|下午)(\d+):(\d{2}):(\d{2}).*/, (matches, year, month, day, ampm, hour, minute, second) => {
294
- hour = Number(hour);
295
- if (ampm === '上午' && hour === 12) {
296
- hour = 0;
297
- ampm = '凌晨';
298
- }
299
- else if (ampm === '上午' && hour <= 6)
300
- ampm = '凌晨';
301
- else if (ampm === '上午' && hour <= 8)
302
- ampm = '早上';
303
- else if (ampm === '上午' && hour <= 10)
304
- ampm = '上午';
305
- else if (ampm === '上午' && hour <= 11)
306
- ampm = '中午';
307
- else if (ampm === '下午' && hour === 12)
308
- ampm = '中午';
309
- else if (ampm === '下午' && hour <= 5)
310
- ampm = '下午';
311
- else
312
- ampm = '晚上';
313
- return year + '.' + month.pad(2, { character: '0', position: 'left' }) + '.' + day.pad(2, { character: '0', position: 'left' }) + ' ' +
314
- ampm + ' ' + hour.toString().pad(2, { character: '0', position: 'left' }) + ':' + minute + ':' + second;
315
- });
293
+ const [ampm, hour] = (() => {
294
+ let hour = this.getHours();
295
+ if (hour <= 6)
296
+ return ['凌晨', hour];
297
+ if (hour <= 8)
298
+ return ['清晨', hour];
299
+ if (hour <= 9)
300
+ return ['早上', hour];
301
+ if (hour <= 10)
302
+ return ['上午', hour];
303
+ if (hour <= 12)
304
+ return ['中午', hour];
305
+ hour -= 12;
306
+ if (hour <= 5)
307
+ return ['下午', hour];
308
+ if (hour <= 10)
309
+ return ['晚上', hour];
310
+ return ['深夜', hour];
311
+ })();
312
+ return '' +
313
+ // year.month.date
314
+ `${this.getFullYear()}.${String(this.getMonth() + 1).pad(2, { character: '0', position: 'left' })}.${String(this.getDate()).pad(2, { character: '0', position: 'left' })} ` +
315
+ // 上午 10:03:02
316
+ `${ampm} ${String(hour).pad(2, { character: '0', position: 'left' })}:${String(this.getMinutes()).pad(2, { character: '0', position: 'left' })}:${String(this.getSeconds()).pad(2, { character: '0', position: 'left' })}`;
316
317
  },
317
318
  to_date_str() {
318
319
  return this.to_str().split(' ')[0];
319
320
  },
320
321
  to_time_str() {
321
322
  const [, ampm, time] = this.to_str().split(' ');
322
- return ampm + ' ' + time;
323
+ return `${ampm} ${time}`;
323
324
  },
324
325
  }));
325
326
  // ------------------------------------ Number.prototype