{"_id":"cg-utils","_rev":"38-d750ec5276909371701cb05c53762b7f","time":{"created":"2024-03-01T14:07:26.355Z","0.0.0":"2022-12-16T06:21:29.624Z","modified":"2024-03-01T14:40:22.948Z","0.0.1":"2022-12-16T07:24:32.016Z","0.0.2":"2022-12-16T08:27:26.408Z","0.0.3":"2022-12-16T09:23:07.053Z","0.0.4":"2022-12-16T11:07:45.401Z","0.0.5":"2022-12-16T11:19:09.667Z","0.0.6":"2022-12-16T11:46:20.397Z","0.0.7":"2022-12-17T05:16:06.819Z","0.0.8":"2022-12-17T10:06:50.987Z","0.0.9":"2022-12-17T11:13:02.092Z","0.0.10":"2022-12-17T12:15:39.994Z","0.0.11":"2022-12-17T12:22:17.671Z","0.0.12":"2022-12-17T12:52:08.642Z","0.0.13":"2022-12-17T13:03:35.639Z","0.0.14":"2022-12-19T05:11:38.606Z","0.0.20":"2023-01-12T11:50:29.856Z","0.0.21":"2023-01-12T12:01:09.294Z","0.0.22":"2023-01-12T12:05:18.552Z","0.0.30":"2023-01-12T12:09:58.642Z","0.0.31":"2023-02-11T09:40:46.624Z","0.0.32":"2023-02-11T10:24:52.027Z","0.0.33":"2023-03-16T06:20:33.909Z","0.0.34":"2023-03-16T06:34:13.122Z","0.0.35":"2023-04-10T11:19:17.268Z","0.0.36":"2023-04-12T08:04:01.825Z","0.0.37":"2023-04-12T08:07:03.072Z","0.0.38":"2023-04-12T08:10:44.698Z","0.0.39":"2023-04-12T09:09:50.395Z","0.0.40":"2023-04-12T09:15:44.820Z","0.0.41":"2023-04-12T09:23:20.847Z","0.0.42":"2023-04-12T09:31:26.146Z","0.0.43":"2023-06-23T08:03:23.085Z","0.0.44":"2023-06-23T08:07:38.253Z","0.0.45":"2024-03-01T14:07:26.491Z","0.0.46":"2024-03-01T14:32:50.153Z","0.0.47":"2024-03-01T14:40:22.491Z"},"name":"cg-utils","dist-tags":{"latest":"0.0.47"},"versions":{"0.0.45":{"name":"cg-utils","private":false,"version":"0.0.45","description":"This is a simple utility package","author":{"name":"less"},"license":"MIT","repository":{"type":"git","url":""},"keywords":["cg","utils"],"type":"module","main":"./dist/cg-utils.umd.cjs","module":"./dist/cg-utils.js","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/cg-utils.js","require":"./dist/cg-utils.umd.cjs"}},"scripts":{"dev":"vite","build":"tsc && vite build","preview":"vite preview","test":"jest","patchpublish":"npm version patch && npm publish"},"devDependencies":{"@babel/preset-env":"^7.20.2","@types/jest":"^29.2.4","@types/lodash":"^4.14.191","@types/node":"^18.11.15","@typescript-eslint/eslint-plugin":"^5.46.1","@typescript-eslint/parser":"^5.46.1","babel-jest":"^29.3.1","cbor-js":"^0.1.0","currency.js":"^2.0.4","dayjs":"^1.11.8","eslint":"^8.29.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","precompiled-mqtt":"4.3.14-beta","terser":"^5.16.1","ts-jest":"^29.0.3","typescript":"^4.9.4","vite":"^4.0.1","vite-plugin-dts":"^1.7.1"},"peerDependencies":{"cbor-js":"^0.1.0","currency.js":"^2.0.4","dayjs":"^1.11.8","precompiled-mqtt":"4.3.14-beta"},"_id":"cg-utils@0.0.45","_nodeVersion":"20.8.1","_npmVersion":"10.1.0","dist":{"integrity":"sha512-KpA8lY/GPmI0LeMHHoHBYgoL91FCdGkwwUkZu+a9e19YhrowK9wywE61YsD5cSqqBj8iCmHLJX3p5Y9J7o6hpQ==","shasum":"12f0f2dcb11ccb4fd48151037f8dea382cccd28e","tarball":"https://registry.npmjs.org/cg-utils/-/cg-utils-0.0.45.tgz","fileCount":24,"unpackedSize":109555,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAqKlbVg9UkiZDGGJtWudLAeICVMVukMVpawZrvBuJ1cAiEAhj6nDN50KbQwJqesE4JGXgIj3DtM9il1HsZg1GHeJOs="}]},"_npmUser":{"name":"routerz","email":"yz2632149@gmail.com"},"directories":{},"maintainers":[{"name":"routerz","email":"yz2632149@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cg-utils_0.0.45_1709302046356_0.8868651756103931"},"_hasShrinkwrap":false},"0.0.46":{"name":"cg-utils","private":false,"version":"0.0.46","description":"This is a simple utility package","author":{"name":"less"},"license":"MIT","repository":{"type":"git","url":""},"keywords":["cg","utils"],"type":"module","main":"./dist/cg-utils.umd.cjs","module":"./dist/cg-utils.js","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/cg-utils.js","require":"./dist/cg-utils.umd.cjs"}},"scripts":{"dev":"vite","build":"tsc && vite build","preview":"vite preview","test":"jest","patchpublish":"npm version patch && npm publish"},"devDependencies":{"@babel/preset-env":"^7.20.2","@types/jest":"^29.2.4","@types/lodash":"^4.14.191","@types/node":"^18.11.15","@typescript-eslint/eslint-plugin":"^5.46.1","@typescript-eslint/parser":"^5.46.1","babel-jest":"^29.3.1","cbor-js":"^0.1.0","currency.js":"^2.0.4","dayjs":"^1.11.8","eslint":"^8.29.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","precompiled-mqtt":"4.3.14-beta","terser":"^5.16.1","ts-jest":"^29.0.3","typescript":"^4.9.4","vite":"^4.0.1","vite-plugin-dts":"^1.7.1"},"peerDependencies":{"cbor-js":"^0.1.0","currency.js":"^2.0.4","dayjs":"^1.11.8","precompiled-mqtt":"4.3.14-beta"},"_id":"cg-utils@0.0.46","_nodeVersion":"20.8.1","_npmVersion":"10.1.0","dist":{"integrity":"sha512-0RsUO8XwrcppnTFDYD79uow6YZnwQXALnUgmNTmG82Wxtt2EeA5yoSrjo20SYOZErP8+HXoVPzH92LM55ORA7Q==","shasum":"a9d7a15ddfae48b3a8711880c63cac3c2f580681","tarball":"https://registry.npmjs.org/cg-utils/-/cg-utils-0.0.46.tgz","fileCount":24,"unpackedSize":109556,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGb9ZdrrqyK//u8VCxcJ6MaKu3M0bagusHwzGzH46mPNAiBiH8AN0+6aPOqTDbaYY8HfS0DIU+x77nQjNy2H3eMcFw=="}]},"_npmUser":{"name":"routerz","email":"yz2632149@gmail.com"},"directories":{},"maintainers":[{"name":"routerz","email":"yz2632149@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cg-utils_0.0.46_1709303569974_0.828566578925265"},"_hasShrinkwrap":false},"0.0.47":{"name":"cg-utils","private":false,"version":"0.0.47","description":"This is a simple utility package","author":{"name":"less"},"license":"MIT","repository":{"type":"git","url":""},"keywords":["cg","utils"],"type":"module","main":"./dist/cg-utils.umd.cjs","module":"./dist/cg-utils.js","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/cg-utils.js","require":"./dist/cg-utils.umd.cjs"}},"scripts":{"dev":"vite","build":"tsc && vite build","preview":"vite preview","test":"jest","patchpublish":"npm version patch && npm publish"},"devDependencies":{"@babel/preset-env":"^7.20.2","@types/jest":"^29.2.4","@types/lodash":"^4.14.191","@types/node":"^18.11.15","@typescript-eslint/eslint-plugin":"^5.46.1","@typescript-eslint/parser":"^5.46.1","babel-jest":"^29.3.1","cbor-js":"^0.1.0","currency.js":"^2.0.4","dayjs":"^1.11.8","eslint":"^8.29.0","jest":"^29.3.1","jest-environment-jsdom":"^29.3.1","precompiled-mqtt":"4.3.14-beta","terser":"^5.16.1","ts-jest":"^29.0.3","typescript":"^4.9.4","vite":"^4.0.1","vite-plugin-dts":"^1.7.1"},"peerDependencies":{"cbor-js":"^0.1.0","currency.js":"^2.0.4","dayjs":"^1.11.8","precompiled-mqtt":"4.3.14-beta"},"_id":"cg-utils@0.0.47","_nodeVersion":"20.8.1","_npmVersion":"10.1.0","dist":{"integrity":"sha512-s87CRmsGHmH4hEHv89U2IW6Eumgflv/0I+/ZmtEQzvCz79f69opxzDL3JuJiiJoeuIG80bIp5tHS/6bSiumgBg==","shasum":"9ba23ed066dc409d934a6b110cb5840b1025f377","tarball":"https://registry.npmjs.org/cg-utils/-/cg-utils-0.0.47.tgz","fileCount":24,"unpackedSize":109557,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCZJdjyRLCDnvOE2YRkE8zehaHXMqEfvWHUo7785Fs9dAIhANN+2BP+G4oiJWtW4FTewXTHpVqPbvPFBo2ur3u4ea0+"}]},"_npmUser":{"name":"routerz","email":"yz2632149@gmail.com"},"directories":{},"maintainers":[{"name":"routerz","email":"yz2632149@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cg-utils_0.0.47_1709304022306_0.12912660572208745"},"_hasShrinkwrap":false}},"maintainers":[{"name":"routerz","email":"yz2632149@gmail.com"}],"description":"This is a simple utility package","keywords":["cg","utils"],"repository":{"type":"git","url":""},"author":{"name":"less"},"license":"MIT","readme":"## Installation\n\nUsing npm:\n```shell\n$ npm i --save cg-utils\n$ pnpm i cg-utils\n$ yarn add cg-utils\n```\n\n## Usage\n\n### 全局配置\n```js\nimport { \n  setUtilsConfig\n} from 'cg-utils';\n\nsetUtilsConfig({\n  format: 'YYYY-MM-DD HH:mm:ss', // 设置时间格式\n  timezone: 'Asia/Shanghai' // 设置时区\n})\n```\n\n### Mqtt\n```js\n// 新建一个文件保存以下代码\nimport {\n  SocketSingleton\n} from 'cg-utils'\n\n/**\n * 默认会订阅所有topics\n */\nexport const connect = () => {\n  socket = SocketSingleton.getInstance({\n    servers: [\n      {\n        host: 'xxx',\n        port: 'xxx' as any,\n        protocol: 'wss'\n      },\n      {\n        host: 'yyy',\n        port: 'yyy' as any,\n        protocol: 'wss'\n      }\n    ],\n    username: 'username',\n    password: 'password',\n    clientId: 'xxxxxxx',\n    topics: ['topic1', 'topic2'],\n  })\n\n  /**\n   * 接受消息，不会有重复消息\n   */\n  socket.onMessage = (topic: any, message: any, packet: any) => {\n    console.log('我是OnMessage', topic, message.toString(), packet)\n  }\n}\n\n// 单独订阅\nexport const unsubscribe = () => {\n  socket.unsubscribe('xxx')\n}\n\n// 单独取消\nexport const subscribe = () => {\n  socket.subscribe('xxx/xxx')\n}\n\n// 关闭当前实例，如果需要重新连接，需要重新实例化(SocketSingleton.getInstance())\nexport const close = () => {\n  SocketSingleton.close()\n}\n```\n\n### 辅助函数，简化js\n```js\nextend({a: 1}, {b: 2}) //  {a: 1, b: 2}\nremove([1, 2, 3], 2) // [1, 3]\nisArray([1, 2, 3]) // true\nisMap(new Map()) // true\nisSet(new Set()) // true\nisDate(new Date()) // true\nisRegExp(/a/) // true\nisFunction(() => {}) // true\nisString('a') // true\nisNumber(1) // true\nisSymbol(Symbol('a')) // true\nisObject({a: 1}) // true\nisPromise(Promise.resolve()) // true\n```\n### 精度计算\n```js\nimport { \n  add, \n  subtract, \n  multiply, \n  divide \n} from 'cg-utils';\n```\n\n### 加密功能（xxtea）\n```js\nimport { \n  setXxetaConfig, \n  decryptQuery, \n  getServerTime, \n  setServerTime\n} from 'cg-utils';\n\n/**\n * 在axios request拦截器中使用\n * requestConfig 是 request拦截器的函数的回调，直接放入就好\n * config 配置详情见 cg-utils/index.d.ts\n */\nsetXxetaConfig(\n  requestConfig,\n  config\n)\n```\n\n### 图片兼容性处理\n```js\nimport { \n  setHtmlPictureCompatilble, // 给html设置class，用于获取支持哪些特殊图片\n  getPictureSuffix // 获取图片后缀，比如webp，avif，都不匹配返回png\n} from 'cg-utils';\n```\n\n### 获取当前设备信息\n```js\n/**\n * 获取当前设备信息\n * @returns {Object} 设备信息\n * @property {boolean} isAndroid 是否为安卓设备\n * @property {boolean} isIOS 是否为 IOS 设备\n * @property {boolean} isMobile 是否为移动设备\n * @property {boolean} isWechat 是否为微信浏览器\n * @property {boolean} isAlipay 是否为支付宝浏览器\n * @property {boolean} isQQ 是否为 QQ 浏览器\n * @property {boolean} isBaidu 是否为百度浏览器\n * @property {boolean} isSafari 是否为 Safari 浏览器\n * @property {boolean} isChrome 是否为 Chrome 浏览器\n * @property {boolean} isFirefox 是否为 Firefox 浏览器\n * @property {boolean} isEdge 是否为 Edge 浏览器\n * @property {boolean} isIE 是否为 IE 浏览器\n * @property {boolean} isPC 是否为 PC 设备\n * @example getDevice()\n */\nimport { \n  getDevice\n} from 'cg-utils';\n```\n\n### 处理html转义符(beta)\n```js\nescapeHtml('<div>123</div>') // &lt;div&gt;123&lt;/div&gt;\nunescapeHtml('&lt;div&gt;123&lt;/div&gt;') // <div>123</div>\n```\n\n### 处理加解密(CBOR)\n```js\ncborEncrypt()\ncborDecrypt()\n```\n\n\n### 时间戳转日期字符串\n```js\ntimestamp2Date(timestamp,format = utilsConfig.format, timezone = utilsConfig.timezone)\n```\n\n### 复制功能\n```js\ncopy('Hello World!!')\n```","readmeFilename":"README.md"}