├── .DS_Store ├── nodejs ├── .DS_Store ├── .eslintrc.cjs ├── .gitignore ├── .prettierrc.json ├── babel.config.cjs ├── esbuild-config.js ├── esbuild.js ├── nodemon.json ├── package-lock.json ├── package.json ├── readme.md ├── rollup-config.js ├── rollup.js └── src │ ├── dev.js │ ├── index.config.js │ ├── index.js │ ├── router.js │ ├── spider │ ├── book │ │ ├── 13bqg.js │ │ └── copymanga.js │ ├── pan │ │ └── alist.js │ └── video │ │ ├── collect_live.js │ │ ├── douban.js │ │ ├── ffm3u8.js │ │ ├── kkys.js │ │ ├── kunyu77.js │ │ ├── maiyoux_node.js │ │ ├── push.js │ │ ├── saohuo.js │ │ ├── tiantian.js │ │ └── wogg.js │ └── util │ ├── ali.js │ ├── misc.js │ └── req.js ├── open ├── .DS_Store ├── 13bqg_open.js ├── 23yun_open.js ├── 360ba_open.js ├── 360kan_open.js ├── 4kav_open.js ├── 4kvm_open.js ├── 4kysxz_open.js ├── 77ys_open.js ├── 91_open.js ├── README.md ├── adult.json ├── alist_open.js ├── app.js ├── bdys10_open.js ├── bili_open.js ├── bookan_open.js ├── build.js ├── caiji.js ├── changzhang_open.js ├── config_open.json ├── config_public.json ├── copymanga_open.js ├── czzy_open.js ├── danmu.php ├── douban_open.js ├── duboku.js ├── fangpi_music_open.js ├── ffm3u8_open.js ├── freeMusic_open.js ├── freeok_open.js ├── ggys_open.js ├── guazi_open.js ├── hdmoli_open.js ├── heiliao_open.js ├── hscangku_open.js ├── huadu_open.js ├── huya_open.js ├── ikan6_open.js ├── ikanbot_open.js ├── jiohub_open.js ├── kanqiu_open.js ├── kkys_open.js ├── ktv_open.js ├── kunyu77.js ├── kunyu77_open.js ├── lib │ ├── ali.js │ ├── ali_api.js │ ├── alivc.js │ ├── cat.js │ ├── ddys_open.js │ ├── gua64.js │ ├── hls.js │ ├── ikanbot_open.js │ ├── jiexi.js │ ├── kkys_open.js │ ├── lsq.jar │ ├── lsq_private.jar │ ├── lz_string.js │ ├── nkvod_open.js │ ├── quark.js │ ├── quark_api.js │ ├── rrys_open.js │ ├── similarity.js │ ├── test.py │ ├── tutu_open.js │ ├── utils.js │ └── zjm_open.js ├── libhd_open.js ├── littleApple_open.js ├── liumingye_music_open.js ├── local │ ├── js_ali │ ├── js_kkys │ ├── js_kunyu77 │ └── js_kuyun77 ├── lsq_0112.jar ├── lsq_open.js ├── maiyoux_open.js ├── manhuagui_open.js ├── mmcl_open.js ├── nangua_open.js ├── netease_music_open.js ├── netflixgc_open.js ├── nkvod_open.js ├── node_modules │ ├── .bin │ │ └── uglifyjs │ ├── .package-lock.json │ ├── @types │ │ └── node │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── assert.d.ts │ │ │ ├── assert │ │ │ └── strict.d.ts │ │ │ ├── async_hooks.d.ts │ │ │ ├── buffer.d.ts │ │ │ ├── child_process.d.ts │ │ │ ├── cluster.d.ts │ │ │ ├── console.d.ts │ │ │ ├── constants.d.ts │ │ │ ├── crypto.d.ts │ │ │ ├── dgram.d.ts │ │ │ ├── diagnostics_channel.d.ts │ │ │ ├── dns.d.ts │ │ │ ├── dns │ │ │ └── promises.d.ts │ │ │ ├── dom-events.d.ts │ │ │ ├── domain.d.ts │ │ │ ├── events.d.ts │ │ │ ├── fs.d.ts │ │ │ ├── fs │ │ │ └── promises.d.ts │ │ │ ├── globals.d.ts │ │ │ ├── globals.global.d.ts │ │ │ ├── http.d.ts │ │ │ ├── http2.d.ts │ │ │ ├── https.d.ts │ │ │ ├── index.d.ts │ │ │ ├── inspector.d.ts │ │ │ ├── module.d.ts │ │ │ ├── net.d.ts │ │ │ ├── os.d.ts │ │ │ ├── package.json │ │ │ ├── path.d.ts │ │ │ ├── perf_hooks.d.ts │ │ │ ├── process.d.ts │ │ │ ├── punycode.d.ts │ │ │ ├── querystring.d.ts │ │ │ ├── readline.d.ts │ │ │ ├── readline │ │ │ └── promises.d.ts │ │ │ ├── repl.d.ts │ │ │ ├── stream.d.ts │ │ │ ├── stream │ │ │ ├── consumers.d.ts │ │ │ ├── promises.d.ts │ │ │ └── web.d.ts │ │ │ ├── string_decoder.d.ts │ │ │ ├── test.d.ts │ │ │ ├── timers.d.ts │ │ │ ├── timers │ │ │ └── promises.d.ts │ │ │ ├── tls.d.ts │ │ │ ├── trace_events.d.ts │ │ │ ├── ts4.8 │ │ │ ├── assert.d.ts │ │ │ ├── assert │ │ │ │ └── strict.d.ts │ │ │ ├── async_hooks.d.ts │ │ │ ├── buffer.d.ts │ │ │ ├── child_process.d.ts │ │ │ ├── cluster.d.ts │ │ │ ├── console.d.ts │ │ │ ├── constants.d.ts │ │ │ ├── crypto.d.ts │ │ │ ├── dgram.d.ts │ │ │ ├── diagnostics_channel.d.ts │ │ │ ├── dns.d.ts │ │ │ ├── dns │ │ │ │ └── promises.d.ts │ │ │ ├── dom-events.d.ts │ │ │ ├── domain.d.ts │ │ │ ├── events.d.ts │ │ │ ├── fs.d.ts │ │ │ ├── fs │ │ │ │ └── promises.d.ts │ │ │ ├── globals.d.ts │ │ │ ├── globals.global.d.ts │ │ │ ├── http.d.ts │ │ │ ├── http2.d.ts │ │ │ ├── https.d.ts │ │ │ ├── index.d.ts │ │ │ ├── inspector.d.ts │ │ │ ├── module.d.ts │ │ │ ├── net.d.ts │ │ │ ├── os.d.ts │ │ │ ├── path.d.ts │ │ │ ├── perf_hooks.d.ts │ │ │ ├── process.d.ts │ │ │ ├── punycode.d.ts │ │ │ ├── querystring.d.ts │ │ │ ├── readline.d.ts │ │ │ ├── readline │ │ │ │ └── promises.d.ts │ │ │ ├── repl.d.ts │ │ │ ├── stream.d.ts │ │ │ ├── stream │ │ │ │ ├── consumers.d.ts │ │ │ │ ├── promises.d.ts │ │ │ │ └── web.d.ts │ │ │ ├── string_decoder.d.ts │ │ │ ├── test.d.ts │ │ │ ├── timers.d.ts │ │ │ ├── timers │ │ │ │ └── promises.d.ts │ │ │ ├── tls.d.ts │ │ │ ├── trace_events.d.ts │ │ │ ├── tty.d.ts │ │ │ ├── url.d.ts │ │ │ ├── util.d.ts │ │ │ ├── v8.d.ts │ │ │ ├── vm.d.ts │ │ │ ├── wasi.d.ts │ │ │ ├── worker_threads.d.ts │ │ │ └── zlib.d.ts │ │ │ ├── tty.d.ts │ │ │ ├── url.d.ts │ │ │ ├── util.d.ts │ │ │ ├── v8.d.ts │ │ │ ├── vm.d.ts │ │ │ ├── wasi.d.ts │ │ │ ├── worker_threads.d.ts │ │ │ └── zlib.d.ts │ ├── asynckit │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bench.js │ │ ├── index.js │ │ ├── lib │ │ │ ├── abort.js │ │ │ ├── async.js │ │ │ ├── defer.js │ │ │ ├── iterate.js │ │ │ ├── readable_asynckit.js │ │ │ ├── readable_parallel.js │ │ │ ├── readable_serial.js │ │ │ ├── readable_serial_ordered.js │ │ │ ├── state.js │ │ │ ├── streamify.js │ │ │ └── terminator.js │ │ ├── package.json │ │ ├── parallel.js │ │ ├── serial.js │ │ ├── serialOrdered.js │ │ └── stream.js │ ├── axios │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── MIGRATION_GUIDE.md │ │ ├── README.md │ │ ├── SECURITY.md │ │ ├── dist │ │ │ ├── axios.js │ │ │ ├── axios.js.map │ │ │ ├── axios.min.js │ │ │ ├── axios.min.js.map │ │ │ ├── browser │ │ │ │ ├── axios.cjs │ │ │ │ └── axios.cjs.map │ │ │ ├── esm │ │ │ │ ├── axios.js │ │ │ │ ├── axios.js.map │ │ │ │ ├── axios.min.js │ │ │ │ └── axios.min.js.map │ │ │ └── node │ │ │ │ ├── axios.cjs │ │ │ │ └── axios.cjs.map │ │ ├── index.d.cts │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── lib │ │ │ ├── adapters │ │ │ │ ├── README.md │ │ │ │ ├── adapters.js │ │ │ │ ├── http.js │ │ │ │ └── xhr.js │ │ │ ├── axios.js │ │ │ ├── cancel │ │ │ │ ├── CancelToken.js │ │ │ │ ├── CanceledError.js │ │ │ │ └── isCancel.js │ │ │ ├── core │ │ │ │ ├── Axios.js │ │ │ │ ├── AxiosError.js │ │ │ │ ├── AxiosHeaders.js │ │ │ │ ├── InterceptorManager.js │ │ │ │ ├── README.md │ │ │ │ ├── buildFullPath.js │ │ │ │ ├── dispatchRequest.js │ │ │ │ ├── mergeConfig.js │ │ │ │ ├── settle.js │ │ │ │ └── transformData.js │ │ │ ├── defaults │ │ │ │ ├── index.js │ │ │ │ └── transitional.js │ │ │ ├── env │ │ │ │ ├── README.md │ │ │ │ ├── classes │ │ │ │ │ └── FormData.js │ │ │ │ └── data.js │ │ │ ├── helpers │ │ │ │ ├── AxiosTransformStream.js │ │ │ │ ├── AxiosURLSearchParams.js │ │ │ │ ├── HttpStatusCode.js │ │ │ │ ├── README.md │ │ │ │ ├── ZlibHeaderTransformStream.js │ │ │ │ ├── bind.js │ │ │ │ ├── buildURL.js │ │ │ │ ├── callbackify.js │ │ │ │ ├── combineURLs.js │ │ │ │ ├── cookies.js │ │ │ │ ├── deprecatedMethod.js │ │ │ │ ├── formDataToJSON.js │ │ │ │ ├── formDataToStream.js │ │ │ │ ├── fromDataURI.js │ │ │ │ ├── isAbsoluteURL.js │ │ │ │ ├── isAxiosError.js │ │ │ │ ├── isURLSameOrigin.js │ │ │ │ ├── null.js │ │ │ │ ├── parseHeaders.js │ │ │ │ ├── parseProtocol.js │ │ │ │ ├── readBlob.js │ │ │ │ ├── speedometer.js │ │ │ │ ├── spread.js │ │ │ │ ├── throttle.js │ │ │ │ ├── toFormData.js │ │ │ │ ├── toURLEncodedForm.js │ │ │ │ └── validator.js │ │ │ ├── platform │ │ │ │ ├── browser │ │ │ │ │ ├── classes │ │ │ │ │ │ ├── Blob.js │ │ │ │ │ │ ├── FormData.js │ │ │ │ │ │ └── URLSearchParams.js │ │ │ │ │ └── index.js │ │ │ │ ├── index.js │ │ │ │ └── node │ │ │ │ │ ├── classes │ │ │ │ │ ├── FormData.js │ │ │ │ │ └── URLSearchParams.js │ │ │ │ │ └── index.js │ │ │ └── utils.js │ │ └── package.json │ ├── call-bind │ │ ├── .eslintignore │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── callBound.js │ │ ├── index.js │ │ ├── package.json │ │ └── test │ │ │ ├── callBound.js │ │ │ └── index.js │ ├── combined-stream │ │ ├── License │ │ ├── Readme.md │ │ ├── lib │ │ │ └── combined_stream.js │ │ ├── package.json │ │ └── yarn.lock │ ├── delayed-stream │ │ ├── .npmignore │ │ ├── License │ │ ├── Makefile │ │ ├── Readme.md │ │ ├── lib │ │ │ └── delayed_stream.js │ │ └── package.json │ ├── follow-redirects │ │ ├── LICENSE │ │ ├── README.md │ │ ├── debug.js │ │ ├── http.js │ │ ├── https.js │ │ ├── index.js │ │ └── package.json │ ├── form-data │ │ ├── License │ │ ├── README.md.bak │ │ ├── Readme.md │ │ ├── index.d.ts │ │ ├── lib │ │ │ ├── browser.js │ │ │ ├── form_data.js │ │ │ └── populate.js │ │ └── package.json │ ├── function-bind │ │ ├── .editorconfig │ │ ├── .eslintrc │ │ ├── .jscs.json │ │ ├── .npmignore │ │ ├── .travis.yml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── implementation.js │ │ ├── index.js │ │ ├── package.json │ │ └── test │ │ │ ├── .eslintrc │ │ │ └── index.js │ ├── get-intrinsic │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── test │ │ │ └── GetIntrinsic.js │ ├── has-proto │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── test │ │ │ └── index.js │ ├── has-symbols │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ ├── shams.js │ │ └── test │ │ │ ├── index.js │ │ │ ├── shams │ │ │ ├── core-js.js │ │ │ └── get-own-property-symbols.js │ │ │ └── tests.js │ ├── has │ │ ├── LICENSE-MIT │ │ ├── README.md │ │ ├── package.json │ │ ├── src │ │ │ └── index.js │ │ └── test │ │ │ └── index.js │ ├── mime-db │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── db.json │ │ ├── index.js │ │ └── package.json │ ├── mime-types │ │ ├── HISTORY.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── object-inspect │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── example │ │ │ ├── all.js │ │ │ ├── circular.js │ │ │ ├── fn.js │ │ │ └── inspect.js │ │ ├── index.js │ │ ├── package-support.json │ │ ├── package.json │ │ ├── readme.markdown │ │ ├── test-core-js.js │ │ ├── test │ │ │ ├── bigint.js │ │ │ ├── browser │ │ │ │ └── dom.js │ │ │ ├── circular.js │ │ │ ├── deep.js │ │ │ ├── element.js │ │ │ ├── err.js │ │ │ ├── fakes.js │ │ │ ├── fn.js │ │ │ ├── has.js │ │ │ ├── holes.js │ │ │ ├── indent-option.js │ │ │ ├── inspect.js │ │ │ ├── lowbyte.js │ │ │ ├── number.js │ │ │ ├── quoteStyle.js │ │ │ ├── toStringTag.js │ │ │ ├── undef.js │ │ │ └── values.js │ │ └── util.inspect.js │ ├── proxy-from-env │ │ ├── .eslintrc │ │ ├── .travis.yml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── test.js │ ├── qs │ │ ├── .editorconfig │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── dist │ │ │ └── qs.js │ │ ├── lib │ │ │ ├── formats.js │ │ │ ├── index.js │ │ │ ├── parse.js │ │ │ ├── stringify.js │ │ │ └── utils.js │ │ ├── package.json │ │ └── test │ │ │ ├── empty-keys-cases.js │ │ │ ├── parse.js │ │ │ ├── stringify.js │ │ │ └── utils.js │ ├── side-channel │ │ ├── .eslintignore │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── test │ │ │ └── index.js │ └── uglify-js │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bin │ │ └── uglifyjs │ │ ├── lib │ │ ├── ast.js │ │ ├── compress.js │ │ ├── minify.js │ │ ├── mozilla-ast.js │ │ ├── output.js │ │ ├── parse.js │ │ ├── propmangle.js │ │ ├── scope.js │ │ ├── sourcemap.js │ │ ├── transform.js │ │ └── utils.js │ │ ├── package.json │ │ └── tools │ │ ├── domprops.html │ │ ├── domprops.json │ │ ├── exports.js │ │ ├── node.js │ │ └── tty.js ├── nongmin_open.js ├── package-lock.json ├── package.json ├── qjsc │ ├── README.md │ ├── bytecode │ │ └── kunyu77_open.js │ ├── qjsc.bat │ └── qjsc_open.exe ├── saohuo_open.js ├── sc1080_open.js ├── search_open.js ├── star_open.js ├── subaibai_open.js ├── taozi_open.js ├── test.jar ├── test.js ├── testAlist.js ├── testKanqiu.js ├── testVideo.js ├── testYs996.js ├── testZzmusic.js ├── tiantian_open.js ├── ttt.json ├── tvbox.json ├── vcinema_open.js ├── voflix_open.js ├── warp-yxip-mac.sh ├── wrapper │ └── index.js ├── xdys_open.js ├── xinshijue_open.js ├── xinshijue_open2.js ├── xvideos_open.js ├── yangtu_open.js ├── ydpan.js ├── yinyuetai_open.js ├── ys996_open.js ├── ysc_open.js ├── zhaixing_open.js ├── zxzj_open.js ├── zzmusic_book_open.js └── zzmusic_open.js └── rule └── wzznl.rule /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LuckySe7ens/tvbox_config/ebc7ffd367d3e8cdc438270d2407de05f998b5d6/.DS_Store -------------------------------------------------------------------------------- /nodejs/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LuckySe7ens/tvbox_config/ebc7ffd367d3e8cdc438270d2407de05f998b5d6/nodejs/.DS_Store -------------------------------------------------------------------------------- /nodejs/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | // { 2 | // "rules": { 3 | // "no-unused-vars": 1 4 | // }, 5 | // "parserOptions": { 6 | // "ecmaVersion": 2020, 7 | // "sourceType": "module" 8 | // } 9 | // } 10 | module.exports = { 11 | rules: { 12 | 'no-unused-vars': ['warn', { argsIgnorePattern: '^_', varsIgnorePattern: '^_', caughtErrorsIgnorePattern: '^_' }], 13 | }, 14 | parserOptions: { 15 | ecmaVersion: 2020, 16 | sourceType: 'module', 17 | }, 18 | }; 19 | -------------------------------------------------------------------------------- /nodejs/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | generated 3 | node_modules 4 | db.json 5 | -------------------------------------------------------------------------------- /nodejs/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/prettierrc", 3 | "semi": true, 4 | "tabWidth": 4, 5 | "singleQuote": true, 6 | "printWidth": 10000 7 | } -------------------------------------------------------------------------------- /nodejs/babel.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | [ 4 | '@babel/preset-env', 5 | { 6 | modules: false, 7 | }, 8 | ], 9 | ], 10 | plugins: [['@babel/plugin-transform-runtime']], 11 | }; 12 | -------------------------------------------------------------------------------- /nodejs/esbuild-config.js: -------------------------------------------------------------------------------- 1 | import * as esbuild from 'esbuild'; 2 | import fs from 'fs'; 3 | import { createHash } from 'crypto'; 4 | 5 | esbuild.build({ 6 | entryPoints: ['src/index.config.js'], 7 | outfile: 'dist/index.config.js', 8 | bundle: true, 9 | minify: false, 10 | write: true, 11 | charset: 'utf8', 12 | format: 'cjs', 13 | platform: 'node', 14 | target: 'node18', 15 | plugins: [genMd5()], 16 | }); 17 | 18 | function genMd5() { 19 | return { 20 | name: 'gen-output-file-md5', 21 | setup(build) { 22 | build.onEnd(async (_) => { 23 | const md5 = createHash('md5').update(fs.readFileSync('dist/index.config.js')).digest('hex'); 24 | fs.writeFileSync('dist/index.config.js.md5', md5); 25 | }); 26 | }, 27 | }; 28 | } 29 | -------------------------------------------------------------------------------- /nodejs/esbuild.js: -------------------------------------------------------------------------------- 1 | import * as esbuild from 'esbuild'; 2 | import fs from 'fs'; 3 | import { createHash } from 'crypto'; 4 | 5 | esbuild.build({ 6 | entryPoints: ['src/index.js'], 7 | outfile: 'dist/index.js', 8 | bundle: true, 9 | minify: true, 10 | write: true, 11 | format: 'cjs', 12 | platform: 'node', 13 | target: 'node18', 14 | plugins: [genMd5()], 15 | }); 16 | 17 | function genMd5() { 18 | return { 19 | name: 'gen-output-file-md5', 20 | setup(build) { 21 | build.onEnd(async (_) => { 22 | const md5 = createHash('md5').update(fs.readFileSync('dist/index.js')).digest('hex'); 23 | fs.writeFileSync('dist/index.js.md5', md5); 24 | }); 25 | }, 26 | }; 27 | } 28 | -------------------------------------------------------------------------------- /nodejs/nodemon.json: -------------------------------------------------------------------------------- 1 | { 2 | "restartable": "rs", 3 | "ignore": [".git", "node_modules/", "dist/"], 4 | "watch": ["src/"], 5 | "execMap": { 6 | "js": "node" 7 | }, 8 | "env": { 9 | "NODE_ENV": "development" 10 | }, 11 | "ext": "js,json" 12 | } 13 | -------------------------------------------------------------------------------- /nodejs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cat_vod_nodejs_fastify", 3 | "version": "1.0.0", 4 | "description": "CatVodOpen nodejs config api server demo.", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "cross-env DEV_HTTP_PORT=3006 nodemon --config nodemon.json src/dev.js", 8 | "build": "rimraf dist && cross-env NODE_ENV=production node esbuild.js && cross-env NODE_ENV=production node esbuild-config.js", 9 | "build:config": "cross-env NODE_ENV=production node esbuild-config.js", 10 | "build:rollup": "rimraf dist && cross-env NODE_ENV=production node rollup.js && cross-env NODE_ENV=production node rollup-config.js", 11 | "build:rollup:config": "cross-env NODE_ENV=production node rollup-config.js" 12 | }, 13 | "author": "", 14 | "devDependencies": { 15 | "@babel/plugin-transform-runtime": "^7.23.9", 16 | "@babel/preset-env": "^7.23.9", 17 | "@rollup/plugin-babel": "^6.0.4", 18 | "@rollup/plugin-commonjs": "^25.0.7", 19 | "@rollup/plugin-json": "^6.1.0", 20 | "@rollup/plugin-node-resolve": "^15.2.3", 21 | "@rollup/plugin-terser": "^0.4.4", 22 | "@types/node": "^20.11.14", 23 | "cross-env": "^7.0.3", 24 | "esbuild": "0.20.1", 25 | "eslint": "^8.57.0", 26 | "nodemon": "^3.0.3", 27 | "rimraf": "^5.0.5", 28 | "rollup": "^2.79.1" 29 | }, 30 | "dependencies": { 31 | "axios": "^1.6.7", 32 | "cheerio": "^1.0.0-rc.12", 33 | "crypto-js": "^4.2.0", 34 | "dayjs": "^1.11.10", 35 | "fastify": "^4.26.0", 36 | "hls-parser": "^0.10.8", 37 | "iconv-lite": "^0.6.3", 38 | "node-json-db": "^2.3.0", 39 | "node-rsa": "^1.1.1" 40 | } 41 | } -------------------------------------------------------------------------------- /nodejs/readme.md: -------------------------------------------------------------------------------- 1 | ## WIP 2 | 3 | We are currently working on embedding a Node.js runtime environment into the app and have made progress with the initial coding. This is a simple Node.js project, and the build artifacts of this project can be utilized within CatVodApp. 4 | 5 | Due to the differences across platforms, there are certain functionalities within the Node.js runtime that not available, including but not limited to 6 | - `wasm` 7 | - `jit` on macos & ios 8 | 9 | 10 | 11 | Dev `npm run dev` 12 | 13 | Build `npm run build` -------------------------------------------------------------------------------- /nodejs/rollup-config.js: -------------------------------------------------------------------------------- 1 | import * as rollup from 'rollup'; 2 | import json from '@rollup/plugin-json'; 3 | import commonjs from '@rollup/plugin-commonjs'; 4 | import fs from 'fs'; 5 | import { createHash } from 'crypto'; 6 | 7 | rollup 8 | .rollup({ 9 | input: ['./src/index.config.js'], 10 | plugins: [commonjs(), json()], 11 | onwarn: function (message) { 12 | console.log(message.toString()); 13 | }, 14 | }) 15 | .then((build) => { 16 | build 17 | .write({ 18 | dir: './dist', 19 | format: 'cjs', 20 | entryFileNames: '[name].js', 21 | strict: false, 22 | plugins: [genMd5()], 23 | }) 24 | .then((output) => { 25 | console.log(output.output.map((o) => o.fileName)); 26 | }); 27 | }); 28 | 29 | function genMd5() { 30 | return { 31 | name: 'gen-output-file-md5', 32 | writeBundle() { 33 | const md5 = createHash('md5').update(fs.readFileSync('./dist/index.config.js')).digest('hex'); 34 | fs.writeFileSync('./dist/index.config.js.md5', md5); 35 | }, 36 | }; 37 | } 38 | -------------------------------------------------------------------------------- /nodejs/rollup.js: -------------------------------------------------------------------------------- 1 | import * as rollup from 'rollup'; 2 | import resolve from '@rollup/plugin-node-resolve'; 3 | import json from '@rollup/plugin-json'; 4 | import commonjs from '@rollup/plugin-commonjs'; 5 | import babel from '@rollup/plugin-babel'; 6 | import terser from '@rollup/plugin-terser'; 7 | import fs from 'fs'; 8 | import { createHash } from 'crypto'; 9 | 10 | rollup 11 | .rollup({ 12 | input: ['./src/index.js'], 13 | plugins: [ 14 | resolve(), 15 | commonjs(), 16 | json(), 17 | babel({ 18 | babelHelpers: 'runtime', 19 | exclude: 'node_modules/**', 20 | }), 21 | terser({ 22 | compress: { 23 | pure_getters: true, 24 | unsafe: true, 25 | unsafe_comps: true, 26 | warnings: false, 27 | }, 28 | }), 29 | ], 30 | onwarn: function (message) { 31 | console.log(message.toString()); 32 | }, 33 | }) 34 | .then((build) => { 35 | build 36 | .write({ 37 | dir: './dist', 38 | format: 'cjs', 39 | entryFileNames: '[name].js', 40 | plugins: [genMd5()], 41 | }) 42 | .then((output) => { 43 | console.log(output.output.map((o) => o.fileName)); 44 | }); 45 | }); 46 | 47 | function genMd5() { 48 | return { 49 | name: 'gen-output-file-md5', 50 | writeBundle() { 51 | const md5 = createHash('md5').update(fs.readFileSync('dist/index.js')).digest('hex'); 52 | fs.writeFileSync('dist/index.js.md5', md5); 53 | }, 54 | }; 55 | } 56 | -------------------------------------------------------------------------------- /nodejs/src/dev.js: -------------------------------------------------------------------------------- 1 | import { createServer } from 'http'; 2 | 3 | globalThis.catServerFactory = (handle) => { 4 | let port = 0; 5 | const server = createServer((req, res) => { 6 | handle(req, res); 7 | }); 8 | server.on('listening', () => { 9 | port = server.address().port; 10 | console.log('Run on ' + port); 11 | }); 12 | server.on('close', () => { 13 | console.log('Close on ' + port); 14 | }); 15 | return server; 16 | }; 17 | 18 | globalThis.catDartServerPort = () => { 19 | return 0; 20 | }; 21 | 22 | import { start } from './index.js'; 23 | 24 | import * as config from './index.config.js'; 25 | 26 | start(config.default); 27 | -------------------------------------------------------------------------------- /nodejs/src/index.js: -------------------------------------------------------------------------------- 1 | import fastify from 'fastify'; 2 | import router from './router.js'; 3 | import { JsonDB, Config } from 'node-json-db'; 4 | import axios from 'axios'; 5 | 6 | let server = null; 7 | 8 | /** 9 | * Start the server with the given configuration. 10 | * 11 | * Be careful that start will be called multiple times when 12 | * work with catvodapp. If the server is already running, 13 | * the stop will be called by engine before start, make sure 14 | * to return new server every time. 15 | * 16 | * @param {Map} config - the config of the server 17 | * @return {void} 18 | */ 19 | export async function start(config) { 20 | /** 21 | * @type {import('fastify').FastifyInstance} 22 | */ 23 | server = fastify({ 24 | serverFactory: catServerFactory, 25 | forceCloseConnections: true, 26 | logger: !!(process.env.NODE_ENV !== 'development'), 27 | maxParamLength: 10240, 28 | }); 29 | server.messageToDart = async (data, inReq) => { 30 | try { 31 | if (!data.prefix) { 32 | data.prefix = inReq ? inReq.server.prefix : ''; 33 | } 34 | console.log(data); 35 | const port = catDartServerPort(); 36 | if (port == 0) { 37 | return null; 38 | } 39 | const resp = await axios.post(`http://127.0.0.1:${port}/msg`, data); 40 | return resp.data; 41 | } catch (error) { 42 | return null; 43 | } 44 | }; 45 | server.address = function () { 46 | const result = this.server.address(); 47 | result.url = `http://${result.address}:${result.port}`; 48 | result.dynamic = 'js2p://_WEB_'; 49 | return result; 50 | }; 51 | server.addHook('onError', async (_request, _reply, error) => { 52 | console.error(error); 53 | if (!error.statusCode) error.statusCode = 500; 54 | return error; 55 | }); 56 | server.stop = false; 57 | server.config = config; 58 | // 推荐使用NODE_PATH做db存储的更目录,这个目录在应用中清除缓存时会被清空 59 | server.db = new JsonDB(new Config((process.env['NODE_PATH'] || '.') + '/db.json', true, true, '/', true)); 60 | server.register(router); 61 | // 注意 一定要监听ipv4地址 build后 app中使用时 端口使用0让系统自动分配可用端口 62 | server.listen({ port: process.env['DEV_HTTP_PORT'] || 0, host: '127.0.0.1' }); 63 | } 64 | 65 | /** 66 | * Stop the server if it exists. 67 | * 68 | */ 69 | export async function stop() { 70 | if (server) { 71 | server.close(); 72 | server.stop = true; 73 | } 74 | server = null; 75 | } 76 | -------------------------------------------------------------------------------- /nodejs/src/util/req.js: -------------------------------------------------------------------------------- 1 | import _axios from 'axios'; 2 | import https from 'https'; 3 | import http from 'http'; 4 | 5 | const req = _axios.create({ 6 | httpsAgent: new https.Agent({ keepAlive: true, rejectUnauthorized: false }), 7 | httpAgent: new http.Agent({ keepAlive: true }), 8 | }); 9 | 10 | export default req; 11 | -------------------------------------------------------------------------------- /open/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LuckySe7ens/tvbox_config/ebc7ffd367d3e8cdc438270d2407de05f998b5d6/open/.DS_Store -------------------------------------------------------------------------------- /open/README.md: -------------------------------------------------------------------------------- 1 | ## Debug with any js debugger. 2 | 3 | `npm install` 4 | 5 | `node test.js` 6 | 7 | `node build.js` 8 | 9 | **Don't import `wrapper\index.js` direct.** 10 | -------------------------------------------------------------------------------- /open/app.js: -------------------------------------------------------------------------------- 1 | function __jsEvalReturn() { 2 | return { 3 | isVideoFormat: function (url) { 4 | return !0; 5 | }, 6 | }; 7 | } 8 | export { __jsEvalReturn }; 9 | -------------------------------------------------------------------------------- /open/build.js: -------------------------------------------------------------------------------- 1 | import fs from 'node:fs'; 2 | import path from 'path'; 3 | import uglifyjs from 'uglify-js'; 4 | 5 | const copySpider = ['app', 'kunyu77_open', 'alist_open']; 6 | 7 | const root = process.cwd(); 8 | 9 | const src = path.join(root); 10 | const out = path.join(root, 'dist'); 11 | 12 | function minify(s, d) { 13 | var jsContent = fs.readFileSync(s).toString(); 14 | jsContent = jsContent.replace('./lib/cat.js', 'assets://js/lib/cat.js'); 15 | jsContent = jsContent.replace('./cat.js', 'assets://js/lib/cat.js'); 16 | jsContent = uglifyjs.minify(jsContent, { 17 | mangle: false, 18 | }); 19 | fs.writeFileSync(d, jsContent.code); 20 | } 21 | 22 | function listAllFiles(dirPath, arrayOfFiles) { 23 | var files = fs.readdirSync(dirPath); 24 | 25 | arrayOfFiles = arrayOfFiles || []; 26 | 27 | files.forEach(function (file) { 28 | if (fs.statSync(dirPath + '/' + file).isDirectory()) { 29 | arrayOfFiles = listAllFiles(dirPath + '/' + file, arrayOfFiles); 30 | } else { 31 | arrayOfFiles.push(path.join(dirPath, '/', file)); 32 | } 33 | }); 34 | 35 | return arrayOfFiles; 36 | } 37 | 38 | function src2Out() { 39 | if (fs.existsSync(out)) fs.rmSync(out, { recursive: true, force: true }); 40 | 41 | fs.mkdirSync(out, { recursive: true }); 42 | const libSrc = path.join(src, 'lib'); 43 | const libOut = path.join(out, 'lib'); 44 | fs.mkdirSync(libOut, { recursive: true }); 45 | const libs = listAllFiles(libSrc); 46 | for (let index = 0; index < libs.length; index++) { 47 | const element = libs[index]; 48 | const relative = path.relative(libSrc, element); 49 | minify(element, path.join(libOut, relative)); 50 | } 51 | 52 | for (const sp of copySpider) { 53 | minify(path.join(src, sp + '.js'), path.join(out, sp + '.js')); 54 | } 55 | } 56 | 57 | src2Out(); 58 | 59 | fs.copyFileSync(path.join(src, 'config_open.json'), path.join(out, 'config_open.json')); 60 | 61 | console.log('done'); 62 | -------------------------------------------------------------------------------- /open/danmu.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LuckySe7ens/tvbox_config/ebc7ffd367d3e8cdc438270d2407de05f998b5d6/open/danmu.php -------------------------------------------------------------------------------- /open/duboku.js: -------------------------------------------------------------------------------- 1 | rule = { 2 | name: '独播库', 3 | host: 'https://tv.gboku.com', 4 | class_name: '电视剧&电影&综艺&动漫&港剧', 5 | class_url: '2&1&3&4&20', 6 | url: '/vodtype/fyclass-fypage.html', 7 | proxyHeader: {'Referer':'https://tv.gboku.com/'}, 8 | categoryVod: '.myui-vodlist__box > a;&&title;&&href;&&data-original;span.text-right&&Text', 9 | detailVodJS: ` 10 | request('https://duboku.xoxoys.eu.org/vod?ids=' + input.split('/')[2].split('.')[0]);||| 11 | videos = JSON.parse(html).list; 12 | `, 13 | lazy: ` 14 | request('https://duboku.xoxoys.eu.org/vod?play=' + input);||| 15 | playUrl = JSON.parse(html).url; 16 | `, 17 | searchUrl: '/vodsearch/-------------.html?wd=**&submit=', 18 | searchVod: '#searchList > li > div > a;&&title;&&href;&&data-original;span.text-right&&Text' 19 | } 20 | -------------------------------------------------------------------------------- /open/lib/ali.js: -------------------------------------------------------------------------------- 1 | //bbQ0FUT1AtFGxpYi9hbGkuanMsYXNzZXRzOi8vanMvbGliL2NhdC5qcxguL2FsaV9hcGkuanMOaW5pdEFsaRpkZXRhaWxDb250ZW50FnBsYXlDb250ZW50MGRldGFpbENvbnRlbnRWb2RQbGF5RnJvbS5kZXRhaWxDb250ZW50Vm9kUGxheVVybAJfEGluaXRTb21lEHNldFRva2VuDGdldFZvZBpwbGF5ZXJDb250ZW50JnBsYXllckNvbnRlbnRCeUZsYWcUYWxpUGF0dGVybhBwYXJzZVZvZAZleHQEaWQObWF0Y2hlcwZ2b2QSZGV0YWlsU3RyCm1hdGNoEnN0cmluZ2lmeQhsaXN0DmNvbnNvbGUKZGVidWcOc2hhcmVJZAxmaWxlSWQOaXNFbXB0eQhmbGFnBmlkcwxyZXN1bHQCKwIjBZ9TO3UuLS0tLS1wbGF5Q29udGVudC0tLS0tLS0QcGxheUZyb20CaQWFjQVuBiQkJAhwdXNoB59TO3UjAAeFjQVuIwAOcGxheVVybBh2b2RfcGxheV91cmwPpAMCpgOoAwUAB6oDAAisAwAKrgMAC7ADAAyyAwAGALQDAAG2AwECuAMBA7oDAQS8AwEFvgMBDgAGAaABAAAAAg0IKwC0AwAMtgMBDLgDAgy6AwMMvAMEDL4DBQzAAwANqgMBAawDAgHCAwMBrgMEAbADBQGyAwYBCOggvgJfBwC+A18IAL4EXwkAvgVfCgC+Bl8LAL4HXwwAKb0AvQEzXwYAKaQDAQcBACIIAAh2B2p3d3cuYWxpeXVuZHJpdmUuY29tXC9zXC8oW15cL10rKShcL2ZvbGRlclwvKFteXC9dKykpPwf2AgAEALQAAAAIBgAAAAQH9f///wsAAXcAAXcAAXcAAwFhAAFsAAFpAAF5AAF1AAFuAAFkAAFyAAFpAAF2AAFlAAMBYwABbwABbQABLwABcwABLwALARwMAAAAAQAAAP///38BAAAAFQIAAAAuADAA//8KDAENAgMJPQAAAAsCAS8AAWYAAW8AAWwAAWQAAWUAAXIAAS8ACwMcDAAAAAEAAAD///9/AQAAABUCAAAALgAwAP//CgwDDAIMAAoOYgYBqgMBAAECAgAOAcQDAAEAtgMBDLgDAgxlAADsiw5lAQDP7Q4GLqQDBgMDISEOYgYBrAMBAwEEAgBNBMYDAAEAyAMBACDKAwEBIMwDAQIgwAMGDMIDCQBhAgBhAQBhAADPQucAAABlAAAkAQDH3GIAAM/ui8g4mAAAAELoAAAAC2IBACYBAEzpAAAAJAEAyTjqAAAAQusAAABiAgAkAQAOYgIALqQDCwcwRCs6OhdYDmIGAcIDAgICBAIANATIAwABAMYDAAEA2AMBACDaAwEBILQDAAy6AwMMYQEAYQAAZQAAQu4AAADPJAEA6AMLLs+0R8fP57ap6AbPtkfqAr/IZQEAYgAA0GIBAO+LLqQDFQQhUxdEDmIGAa4DAwIDAwIAagXeAwABAMYDAAEA2gEAAQDgAwEAIOIDAQEgvAMEDL4DBQxhAQBhAADQQl0AAAAE8gAAACQBAMfPQl0AAAAE8wAAACQBALNH1wT0AAAAqegLZQAAYgAA7YvqCmUBAGIAAM/ui8g46gAAAELrAAAABPUAAAAkAQAOOOoAAABC6wAAAGIBACQBAA5iAQAupAMcBiFOWI9iWA5DBgGwAwECAQQAAHgD4AMAAQDsAwEAIO4DBAEgYQAAJgAAx8/ntaPoGwT0AAAABPgAAAAmAgBCWwAAAAT5AAAAJQEAYQEAtMhiAQDP56ToNWIAAEL6AAAABPsAAABiAQCdJAEADmIAAEL6AAAABPwAAABiAQCdJAEADmIBAJFjAQAO6sViAABCWwAAAAT5AAAAJQEApAMlCBIXIYZEbGw1DmIGAbIDAQQBBgMAgwEF4AMAAQD6AwEAIMYDAAAAyAMDASDKAwUDIMADBgy0AwAMwgMJAGEAADjqAAAAQusAAADPJAEADiYAAMfPfepTyGECAMRC5wAAAGUAACQBAMk46gAAAELrAAAAYgIAJAEADmUBAELuAAAAYgIAJAEAluggYQMA3WICAMTui8piAABC+gAAAGIDAEH+AAAAJAEADoAA6KsOg2IAAEJbAAAABPkAAAAkAQAupAMxChJOFytEWGcraCE= 2 | -------------------------------------------------------------------------------- /open/lib/gua64.js: -------------------------------------------------------------------------------- 1 | const gua = '䷁䷖䷇䷓䷏䷢䷬䷋' + 2 | '䷎䷳䷦䷴䷽䷷䷞䷠' + 3 | '䷆䷃䷜䷺䷧䷿䷮䷅' + 4 | '䷭䷑䷯䷸䷟䷱䷛䷫' + 5 | '䷗䷚䷂䷩䷲䷔䷐䷘' + 6 | '䷣䷕䷾䷤䷶䷝䷰䷌' + 7 | '䷒䷨䷻䷼䷵䷥䷹䷉' + 8 | '䷊䷙䷄䷈䷡䷍䷪䷀'; 9 | 10 | const encode = (str) => { 11 | const bytes = new TextEncoder().encode(str); 12 | const encoded = []; 13 | const len = bytes.length; 14 | for (let i = 0; i < len; i = i + 3) { 15 | if (i + 3 <= len) { 16 | encoded.push(gua[bytes[i] >> 2]); 17 | encoded.push(gua[(bytes[i] & 0x3) << 4 | (bytes[i + 1] >> 4)]); 18 | encoded.push(gua[(bytes[i + 1] & 0xf) << 2 | (bytes[i + 2] >> 6)]); 19 | encoded.push(gua[bytes[i + 2] & 0x3f]); 20 | continue; 21 | } 22 | if (i + 3 === len + 1) { 23 | encoded.push(gua[bytes[i] >> 2]); 24 | encoded.push(gua[(bytes[i] & 0x3) << 4 | (bytes[i + 1] >> 4)]); 25 | encoded.push(gua[(bytes[i + 1] & 0xf) << 2]); 26 | encoded.push('〇'); 27 | continue; 28 | } 29 | if (i + 3 === len + 2) { 30 | encoded.push(gua[bytes[i] >> 2]); 31 | encoded.push(gua[(bytes[i] & 0x3) << 4]); 32 | encoded.push('〇'); 33 | encoded.push('〇'); 34 | } 35 | } 36 | return encoded.join(''); 37 | }; 38 | 39 | 40 | const decode = (str) => { 41 | const gua64dict = {}; 42 | for (let i = 0; i < gua.length; i++) { 43 | gua64dict[gua[i]] = i; 44 | } 45 | const b = []; 46 | for (let i = 0; i < str.length; i++) { 47 | b.push(gua64dict[str[i]] !== undefined ? gua64dict[str[i]] : 255); 48 | } 49 | const encoded = []; 50 | for (let i = 0; i < b.length; i = i + 4) { 51 | encoded.push((b[i] & 0x3f) << 2 | (b[i + 1] >> 4 & 0x3)); 52 | if (b[i + 2] !== 255) { 53 | encoded.push((b[i + 1] & 0xf) << 4 | (b[i + 2] >> 2 & 0xf)); 54 | } 55 | if (b[i + 3] !== 255) { 56 | encoded.push((b[i + 2] & 0x3) << 6 | (b[i + 3] & 0x3f)); 57 | } 58 | } 59 | return new TextDecoder('utf-8').decode(new Uint8Array(encoded)); 60 | }; 61 | 62 | const verify = (str) => { 63 | const array = gua.split(''); 64 | array.push('〇'); 65 | return [...str].every(char => array.includes(char)); 66 | }; 67 | 68 | console.log(encode('hello world!!䷯䷬䷿䷶䷸')); 69 | 70 | console.log(decode('䷯䷬䷿䷶䷸䷬䷡䷗䷱䷹䷍䷻䷸䷬䷆䷚䷎䷛䷜䷉䷤䷪䷜䷉䷤䷞䷜䷉䷌䷪䷜䷉䷝䷰䷜䷉䷰䷁〇〇')); 71 | //export {encode, decode, verify}; 72 | -------------------------------------------------------------------------------- /open/lib/jiexi.js: -------------------------------------------------------------------------------- 1 | import { Crypto, _ } from './cat.js'; 2 | const headers = { 3 | "Origin": 'https://jx.xmflv.com', 4 | 'User_Agent': 'Mozilla/5.0 (Linux; Android 12; Redmi K30 Build/SKQ1.210908.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/96.0.4664.104 Mobile Safari/537.36', 5 | }; 6 | async function xmjiexi(url) { 7 | let t=new Date().getTime(); 8 | let encData = sign(Crypto.MD5(t+url).toString().toLowerCase()); 9 | //console.log(encData); 10 | let res = JSON.parse((await req('https://122.228.8.29:4433/xmflv.js', { 11 | method: 'post', 12 | headers: headers, 13 | data: { 14 | wap: 1, 15 | time: t, 16 | url: encodeURIComponent(url), 17 | key: encodeURIComponent(encData), 18 | }, 19 | postType: 'form' 20 | })).content); 21 | let playUrl = aesDecode(res.url, res.aes_key, res.aes_iv); 22 | //console.log(playUrl); 23 | return { 24 | parse: 0, 25 | url: playUrl, 26 | header: { 27 | "Origin": 'https://jx.xmflv.com', 28 | 'User_Agent': 'Mozilla/5.0 (Linux; Android 12; Redmi K30 Build/SKQ1.210908.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/96.0.4664.104 Mobile Safari/537.36', 29 | }, 30 | } 31 | } 32 | //aes解密 33 | function aesDecode(str, keyStr, ivStr) { 34 | const key = Crypto.enc.Utf8.parse(keyStr); 35 | var bytes = Crypto.AES.decrypt(str, key, { 36 | iv: Crypto.enc.Utf8.parse(ivStr), 37 | mode: Crypto.mode.CBC, 38 | padding: Crypto.pad.Pkcs7 39 | }); 40 | return bytes.toString(Crypto.enc.Utf8); 41 | } 42 | function sign(a) { 43 | var b = Crypto.MD5(a); 44 | var c = Crypto.enc.Utf8.parse(b); 45 | var d = Crypto.enc.Utf8.parse('3cccf88181408f19'); 46 | var e = Crypto.AES.encrypt(a, c, { 47 | iv: d, 48 | mode: Crypto.mode.CBC, 49 | padding: Crypto.pad.ZeroPadding 50 | }); 51 | return e.toString() 52 | } 53 | 54 | export { 55 | xmjiexi 56 | }; -------------------------------------------------------------------------------- /open/lib/lsq.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LuckySe7ens/tvbox_config/ebc7ffd367d3e8cdc438270d2407de05f998b5d6/open/lib/lsq.jar -------------------------------------------------------------------------------- /open/lib/lsq_private.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LuckySe7ens/tvbox_config/ebc7ffd367d3e8cdc438270d2407de05f998b5d6/open/lib/lsq_private.jar -------------------------------------------------------------------------------- /open/lib/similarity.js: -------------------------------------------------------------------------------- 1 | function compareTwoStrings(first,second){if((first=first.replace(/\s+/g,""))===(second=second.replace(/\s+/g,"")))return 1;if(first.length<2||second.length<2)return 0;var firstBigrams=new Map;for(let i=0;iratings[bestMatchIndex].rating&&(bestMatchIndex=i)}return{ratings:ratings,bestMatch:ratings[bestMatchIndex],bestMatchIndex:bestMatchIndex}}function lcs(str1,str2){if(!str1||!str2)return{length:0,sequence:"",offset:0};for(var sequence="",str1Length=str1.length,str2Length=str2.length,num=new Array(str1Length),maxlen=0,lastSubsBegin=0,i=0;imaxlen&&(maxlen=num[i][j],lastSubsBegin===(thisSubsBegin=i-num[i][j]+1)?sequence+=str1[i]:(lastSubsBegin=thisSubsBegin,sequence="",sequence+=str1.substr(lastSubsBegin,i+1-lastSubsBegin))));return{length:maxlen,sequence:sequence,offset:thisSubsBegin}}function findBestLCS(mainString,targetStrings){var results=[];let bestMatchIndex=0;for(let i=0;iresults[bestMatchIndex].lcs.length&&(bestMatchIndex=i)}return{allLCS:results,bestMatch:results[bestMatchIndex],bestMatchIndex:bestMatchIndex}}export{compareTwoStrings,findBestMatch,findBestLCS}; 2 | -------------------------------------------------------------------------------- /open/lib/test.py: -------------------------------------------------------------------------------- 1 | print('hello world') -------------------------------------------------------------------------------- /open/local/js_ali: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /open/local/js_kkys: -------------------------------------------------------------------------------- 1 | {"device":"{\"brand\":\"Huawei\",\"model\":\"HUAWEI Mate 20\",\"release\":\"10\",\"buildId\":\"UTL92Q\",\"id\":\"xa42ogb5dvtabdgpxgj7lxlhdbqkhv4q7\",\"ua\":\"okhttp/3.14.9\"}"} -------------------------------------------------------------------------------- /open/local/js_kunyu77: -------------------------------------------------------------------------------- 1 | {"device":"{\"brand\":\"Huawei\",\"model\":\"HUAWEI Mate 20\",\"release\":\"10\",\"buildId\":\"OJJ24R\",\"id\":\"1q1wlt40bydnuazvlvcfc5jrvnkmt7hj\",\"ua\":\"Dalvik/2.1.0 (Linux; U; Android 10; HUAWEI Mate 20 Build/OJJ24R)\"}"} -------------------------------------------------------------------------------- /open/local/js_kuyun77: -------------------------------------------------------------------------------- 1 | {"device":"{\"brand\":\"vivo\",\"model\":\"V2025\",\"release\":\"13\",\"buildId\":\"DPY33S\",\"id\":\"a0sezvdcu5zbu5v1txxv0drtcszerp72\",\"ua\":\"Dalvik/2.1.0 (Linux; U; Android 13; V2025 Build/DPY33S)\"}"} -------------------------------------------------------------------------------- /open/lsq_0112.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LuckySe7ens/tvbox_config/ebc7ffd367d3e8cdc438270d2407de05f998b5d6/open/lsq_0112.jar -------------------------------------------------------------------------------- /open/node_modules/.bin/uglifyjs: -------------------------------------------------------------------------------- 1 | ../uglify-js/bin/uglifyjs -------------------------------------------------------------------------------- /open/node_modules/@types/node/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Microsoft Corporation. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE 22 | -------------------------------------------------------------------------------- /open/node_modules/@types/node/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | > `npm install --save @types/node` 3 | 4 | # Summary 5 | This package contains type definitions for Node.js (https://nodejs.org/). 6 | 7 | # Details 8 | Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node. 9 | 10 | ### Additional Details 11 | * Last updated: Wed, 12 Jul 2023 23:02:41 GMT 12 | * Dependencies: none 13 | * Global values: `AbortController`, `AbortSignal`, `__dirname`, `__filename`, `console`, `exports`, `gc`, `global`, `module`, `process`, `require`, `structuredClone` 14 | 15 | # Credits 16 | These definitions were written by [Microsoft TypeScript](https://github.com/Microsoft), [DefinitelyTyped](https://github.com/DefinitelyTyped), [Alberto Schiabel](https://github.com/jkomyno), [Alvis HT Tang](https://github.com/alvis), [Andrew Makarov](https://github.com/r3nya), [Benjamin Toueg](https://github.com/btoueg), [Chigozirim C.](https://github.com/smac89), [David Junger](https://github.com/touffy), [Deividas Bakanas](https://github.com/DeividasBakanas), [Eugene Y. Q. Shen](https://github.com/eyqs), [Hannes Magnusson](https://github.com/Hannes-Magnusson-CK), [Huw](https://github.com/hoo29), [Kelvin Jin](https://github.com/kjin), [Klaus Meinhardt](https://github.com/ajafff), [Lishude](https://github.com/islishude), [Mariusz Wiktorczyk](https://github.com/mwiktorczyk), [Mohsen Azimi](https://github.com/mohsen1), [Nicolas Even](https://github.com/n-e), [Nikita Galkin](https://github.com/galkin), [Parambir Singh](https://github.com/parambirs), [Sebastian Silbermann](https://github.com/eps1lon), [Simon Schick](https://github.com/SimonSchick), [Thomas den Hollander](https://github.com/ThomasdenH), [Wilco Bakker](https://github.com/WilcoBakker), [wwwy3y3](https://github.com/wwwy3y3), [Samuel Ainsworth](https://github.com/samuela), [Kyle Uehlein](https://github.com/kuehlein), [Thanik Bhongbhibhat](https://github.com/bhongy), [Marcin Kopacz](https://github.com/chyzwar), [Trivikram Kamat](https://github.com/trivikr), [Junxiao Shi](https://github.com/yoursunny), [Ilia Baryshnikov](https://github.com/qwelias), [ExE Boss](https://github.com/ExE-Boss), [Piotr Błażejewicz](https://github.com/peterblazejewicz), [Anna Henningsen](https://github.com/addaleax), [Victor Perin](https://github.com/victorperin), [Yongsheng Zhang](https://github.com/ZYSzys), [NodeJS Contributors](https://github.com/NodeJS), [Linus Unnebäck](https://github.com/LinusU), [wafuwafu13](https://github.com/wafuwafu13), [Matteo Collina](https://github.com/mcollina), and [Dmitry Semigradsky](https://github.com/Semigradsky). 17 | -------------------------------------------------------------------------------- /open/node_modules/@types/node/assert/strict.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'assert/strict' { 2 | import { strict } from 'node:assert'; 3 | export = strict; 4 | } 5 | declare module 'node:assert/strict' { 6 | import { strict } from 'node:assert'; 7 | export = strict; 8 | } 9 | -------------------------------------------------------------------------------- /open/node_modules/@types/node/constants.d.ts: -------------------------------------------------------------------------------- 1 | /** @deprecated since v6.3.0 - use constants property exposed by the relevant module instead. */ 2 | declare module 'constants' { 3 | import { constants as osConstants, SignalConstants } from 'node:os'; 4 | import { constants as cryptoConstants } from 'node:crypto'; 5 | import { constants as fsConstants } from 'node:fs'; 6 | 7 | const exp: typeof osConstants.errno & 8 | typeof osConstants.priority & 9 | SignalConstants & 10 | typeof cryptoConstants & 11 | typeof fsConstants; 12 | export = exp; 13 | } 14 | 15 | declare module 'node:constants' { 16 | import constants = require('constants'); 17 | export = constants; 18 | } 19 | -------------------------------------------------------------------------------- /open/node_modules/@types/node/globals.global.d.ts: -------------------------------------------------------------------------------- 1 | declare var global: typeof globalThis; 2 | -------------------------------------------------------------------------------- /open/node_modules/@types/node/stream/consumers.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'stream/consumers' { 2 | import { Blob as NodeBlob } from 'node:buffer'; 3 | import { Readable } from 'node:stream'; 4 | function buffer(stream: NodeJS.ReadableStream | Readable | AsyncIterator): Promise; 5 | function text(stream: NodeJS.ReadableStream | Readable | AsyncIterator): Promise; 6 | function arrayBuffer(stream: NodeJS.ReadableStream | Readable | AsyncIterator): Promise; 7 | function blob(stream: NodeJS.ReadableStream | Readable | AsyncIterator): Promise; 8 | function json(stream: NodeJS.ReadableStream | Readable | AsyncIterator): Promise; 9 | } 10 | declare module 'node:stream/consumers' { 11 | export * from 'stream/consumers'; 12 | } 13 | -------------------------------------------------------------------------------- /open/node_modules/@types/node/stream/promises.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'stream/promises' { 2 | import { FinishedOptions, PipelineSource, PipelineTransform, PipelineDestination, PipelinePromise, PipelineOptions } from 'node:stream'; 3 | function finished(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, options?: FinishedOptions): Promise; 4 | function pipeline, B extends PipelineDestination>(source: A, destination: B, options?: PipelineOptions): PipelinePromise; 5 | function pipeline, T1 extends PipelineTransform, B extends PipelineDestination>( 6 | source: A, 7 | transform1: T1, 8 | destination: B, 9 | options?: PipelineOptions 10 | ): PipelinePromise; 11 | function pipeline, T1 extends PipelineTransform, T2 extends PipelineTransform, B extends PipelineDestination>( 12 | source: A, 13 | transform1: T1, 14 | transform2: T2, 15 | destination: B, 16 | options?: PipelineOptions 17 | ): PipelinePromise; 18 | function pipeline< 19 | A extends PipelineSource, 20 | T1 extends PipelineTransform, 21 | T2 extends PipelineTransform, 22 | T3 extends PipelineTransform, 23 | B extends PipelineDestination 24 | >(source: A, transform1: T1, transform2: T2, transform3: T3, destination: B, options?: PipelineOptions): PipelinePromise; 25 | function pipeline< 26 | A extends PipelineSource, 27 | T1 extends PipelineTransform, 28 | T2 extends PipelineTransform, 29 | T3 extends PipelineTransform, 30 | T4 extends PipelineTransform, 31 | B extends PipelineDestination 32 | >(source: A, transform1: T1, transform2: T2, transform3: T3, transform4: T4, destination: B, options?: PipelineOptions): PipelinePromise; 33 | function pipeline(streams: ReadonlyArray, options?: PipelineOptions): Promise; 34 | function pipeline( 35 | stream1: NodeJS.ReadableStream, 36 | stream2: NodeJS.ReadWriteStream | NodeJS.WritableStream, 37 | ...streams: Array 38 | ): Promise; 39 | } 40 | declare module 'node:stream/promises' { 41 | export * from 'stream/promises'; 42 | } 43 | -------------------------------------------------------------------------------- /open/node_modules/@types/node/ts4.8/assert/strict.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'assert/strict' { 2 | import { strict } from 'node:assert'; 3 | export = strict; 4 | } 5 | declare module 'node:assert/strict' { 6 | import { strict } from 'node:assert'; 7 | export = strict; 8 | } 9 | -------------------------------------------------------------------------------- /open/node_modules/@types/node/ts4.8/constants.d.ts: -------------------------------------------------------------------------------- 1 | /** @deprecated since v6.3.0 - use constants property exposed by the relevant module instead. */ 2 | declare module 'constants' { 3 | import { constants as osConstants, SignalConstants } from 'node:os'; 4 | import { constants as cryptoConstants } from 'node:crypto'; 5 | import { constants as fsConstants } from 'node:fs'; 6 | 7 | const exp: typeof osConstants.errno & 8 | typeof osConstants.priority & 9 | SignalConstants & 10 | typeof cryptoConstants & 11 | typeof fsConstants; 12 | export = exp; 13 | } 14 | 15 | declare module 'node:constants' { 16 | import constants = require('constants'); 17 | export = constants; 18 | } 19 | -------------------------------------------------------------------------------- /open/node_modules/@types/node/ts4.8/globals.global.d.ts: -------------------------------------------------------------------------------- 1 | declare var global: typeof globalThis; 2 | -------------------------------------------------------------------------------- /open/node_modules/@types/node/ts4.8/stream/consumers.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'stream/consumers' { 2 | import { Blob as NodeBlob } from 'node:buffer'; 3 | import { Readable } from 'node:stream'; 4 | function buffer(stream: NodeJS.ReadableStream | Readable | AsyncIterator): Promise; 5 | function text(stream: NodeJS.ReadableStream | Readable | AsyncIterator): Promise; 6 | function arrayBuffer(stream: NodeJS.ReadableStream | Readable | AsyncIterator): Promise; 7 | function blob(stream: NodeJS.ReadableStream | Readable | AsyncIterator): Promise; 8 | function json(stream: NodeJS.ReadableStream | Readable | AsyncIterator): Promise; 9 | } 10 | declare module 'node:stream/consumers' { 11 | export * from 'stream/consumers'; 12 | } 13 | -------------------------------------------------------------------------------- /open/node_modules/@types/node/ts4.8/stream/promises.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'stream/promises' { 2 | import { FinishedOptions, PipelineSource, PipelineTransform, PipelineDestination, PipelinePromise, PipelineOptions } from 'node:stream'; 3 | function finished(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, options?: FinishedOptions): Promise; 4 | function pipeline, B extends PipelineDestination>(source: A, destination: B, options?: PipelineOptions): PipelinePromise; 5 | function pipeline, T1 extends PipelineTransform, B extends PipelineDestination>( 6 | source: A, 7 | transform1: T1, 8 | destination: B, 9 | options?: PipelineOptions 10 | ): PipelinePromise; 11 | function pipeline, T1 extends PipelineTransform, T2 extends PipelineTransform, B extends PipelineDestination>( 12 | source: A, 13 | transform1: T1, 14 | transform2: T2, 15 | destination: B, 16 | options?: PipelineOptions 17 | ): PipelinePromise; 18 | function pipeline< 19 | A extends PipelineSource, 20 | T1 extends PipelineTransform, 21 | T2 extends PipelineTransform, 22 | T3 extends PipelineTransform, 23 | B extends PipelineDestination 24 | >(source: A, transform1: T1, transform2: T2, transform3: T3, destination: B, options?: PipelineOptions): PipelinePromise; 25 | function pipeline< 26 | A extends PipelineSource, 27 | T1 extends PipelineTransform, 28 | T2 extends PipelineTransform, 29 | T3 extends PipelineTransform, 30 | T4 extends PipelineTransform, 31 | B extends PipelineDestination 32 | >(source: A, transform1: T1, transform2: T2, transform3: T3, transform4: T4, destination: B, options?: PipelineOptions): PipelinePromise; 33 | function pipeline(streams: ReadonlyArray, options?: PipelineOptions): Promise; 34 | function pipeline( 35 | stream1: NodeJS.ReadableStream, 36 | stream2: NodeJS.ReadWriteStream | NodeJS.WritableStream, 37 | ...streams: Array 38 | ): Promise; 39 | } 40 | declare module 'node:stream/promises' { 41 | export * from 'stream/promises'; 42 | } 43 | -------------------------------------------------------------------------------- /open/node_modules/asynckit/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Alex Indigo 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /open/node_modules/asynckit/bench.js: -------------------------------------------------------------------------------- 1 | /* eslint no-console: "off" */ 2 | 3 | var asynckit = require('./') 4 | , async = require('async') 5 | , assert = require('assert') 6 | , expected = 0 7 | ; 8 | 9 | var Benchmark = require('benchmark'); 10 | var suite = new Benchmark.Suite; 11 | 12 | var source = []; 13 | for (var z = 1; z < 100; z++) 14 | { 15 | source.push(z); 16 | expected += z; 17 | } 18 | 19 | suite 20 | // add tests 21 | 22 | .add('async.map', function(deferred) 23 | { 24 | var total = 0; 25 | 26 | async.map(source, 27 | function(i, cb) 28 | { 29 | setImmediate(function() 30 | { 31 | total += i; 32 | cb(null, total); 33 | }); 34 | }, 35 | function(err, result) 36 | { 37 | assert.ifError(err); 38 | assert.equal(result[result.length - 1], expected); 39 | deferred.resolve(); 40 | }); 41 | }, {'defer': true}) 42 | 43 | 44 | .add('asynckit.parallel', function(deferred) 45 | { 46 | var total = 0; 47 | 48 | asynckit.parallel(source, 49 | function(i, cb) 50 | { 51 | setImmediate(function() 52 | { 53 | total += i; 54 | cb(null, total); 55 | }); 56 | }, 57 | function(err, result) 58 | { 59 | assert.ifError(err); 60 | assert.equal(result[result.length - 1], expected); 61 | deferred.resolve(); 62 | }); 63 | }, {'defer': true}) 64 | 65 | 66 | // add listeners 67 | .on('cycle', function(ev) 68 | { 69 | console.log(String(ev.target)); 70 | }) 71 | .on('complete', function() 72 | { 73 | console.log('Fastest is ' + this.filter('fastest').map('name')); 74 | }) 75 | // run async 76 | .run({ 'async': true }); 77 | -------------------------------------------------------------------------------- /open/node_modules/asynckit/index.js: -------------------------------------------------------------------------------- 1 | module.exports = 2 | { 3 | parallel : require('./parallel.js'), 4 | serial : require('./serial.js'), 5 | serialOrdered : require('./serialOrdered.js') 6 | }; 7 | -------------------------------------------------------------------------------- /open/node_modules/asynckit/lib/abort.js: -------------------------------------------------------------------------------- 1 | // API 2 | module.exports = abort; 3 | 4 | /** 5 | * Aborts leftover active jobs 6 | * 7 | * @param {object} state - current state object 8 | */ 9 | function abort(state) 10 | { 11 | Object.keys(state.jobs).forEach(clean.bind(state)); 12 | 13 | // reset leftover jobs 14 | state.jobs = {}; 15 | } 16 | 17 | /** 18 | * Cleans up leftover job by invoking abort function for the provided job id 19 | * 20 | * @this state 21 | * @param {string|number} key - job id to abort 22 | */ 23 | function clean(key) 24 | { 25 | if (typeof this.jobs[key] == 'function') 26 | { 27 | this.jobs[key](); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /open/node_modules/asynckit/lib/async.js: -------------------------------------------------------------------------------- 1 | var defer = require('./defer.js'); 2 | 3 | // API 4 | module.exports = async; 5 | 6 | /** 7 | * Runs provided callback asynchronously 8 | * even if callback itself is not 9 | * 10 | * @param {function} callback - callback to invoke 11 | * @returns {function} - augmented callback 12 | */ 13 | function async(callback) 14 | { 15 | var isAsync = false; 16 | 17 | // check if async happened 18 | defer(function() { isAsync = true; }); 19 | 20 | return function async_callback(err, result) 21 | { 22 | if (isAsync) 23 | { 24 | callback(err, result); 25 | } 26 | else 27 | { 28 | defer(function nextTick_callback() 29 | { 30 | callback(err, result); 31 | }); 32 | } 33 | }; 34 | } 35 | -------------------------------------------------------------------------------- /open/node_modules/asynckit/lib/defer.js: -------------------------------------------------------------------------------- 1 | module.exports = defer; 2 | 3 | /** 4 | * Runs provided function on next iteration of the event loop 5 | * 6 | * @param {function} fn - function to run 7 | */ 8 | function defer(fn) 9 | { 10 | var nextTick = typeof setImmediate == 'function' 11 | ? setImmediate 12 | : ( 13 | typeof process == 'object' && typeof process.nextTick == 'function' 14 | ? process.nextTick 15 | : null 16 | ); 17 | 18 | if (nextTick) 19 | { 20 | nextTick(fn); 21 | } 22 | else 23 | { 24 | setTimeout(fn, 0); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /open/node_modules/asynckit/lib/iterate.js: -------------------------------------------------------------------------------- 1 | var async = require('./async.js') 2 | , abort = require('./abort.js') 3 | ; 4 | 5 | // API 6 | module.exports = iterate; 7 | 8 | /** 9 | * Iterates over each job object 10 | * 11 | * @param {array|object} list - array or object (named list) to iterate over 12 | * @param {function} iterator - iterator to run 13 | * @param {object} state - current job status 14 | * @param {function} callback - invoked when all elements processed 15 | */ 16 | function iterate(list, iterator, state, callback) 17 | { 18 | // store current index 19 | var key = state['keyedList'] ? state['keyedList'][state.index] : state.index; 20 | 21 | state.jobs[key] = runJob(iterator, key, list[key], function(error, output) 22 | { 23 | // don't repeat yourself 24 | // skip secondary callbacks 25 | if (!(key in state.jobs)) 26 | { 27 | return; 28 | } 29 | 30 | // clean up jobs 31 | delete state.jobs[key]; 32 | 33 | if (error) 34 | { 35 | // don't process rest of the results 36 | // stop still active jobs 37 | // and reset the list 38 | abort(state); 39 | } 40 | else 41 | { 42 | state.results[key] = output; 43 | } 44 | 45 | // return salvaged results 46 | callback(error, state.results); 47 | }); 48 | } 49 | 50 | /** 51 | * Runs iterator over provided job element 52 | * 53 | * @param {function} iterator - iterator to invoke 54 | * @param {string|number} key - key/index of the element in the list of jobs 55 | * @param {mixed} item - job description 56 | * @param {function} callback - invoked after iterator is done with the job 57 | * @returns {function|mixed} - job abort function or something else 58 | */ 59 | function runJob(iterator, key, item, callback) 60 | { 61 | var aborter; 62 | 63 | // allow shortcut if iterator expects only two arguments 64 | if (iterator.length == 2) 65 | { 66 | aborter = iterator(item, async(callback)); 67 | } 68 | // otherwise go with full three arguments 69 | else 70 | { 71 | aborter = iterator(item, key, async(callback)); 72 | } 73 | 74 | return aborter; 75 | } 76 | -------------------------------------------------------------------------------- /open/node_modules/asynckit/lib/readable_asynckit.js: -------------------------------------------------------------------------------- 1 | var streamify = require('./streamify.js') 2 | , defer = require('./defer.js') 3 | ; 4 | 5 | // API 6 | module.exports = ReadableAsyncKit; 7 | 8 | /** 9 | * Base constructor for all streams 10 | * used to hold properties/methods 11 | */ 12 | function ReadableAsyncKit() 13 | { 14 | ReadableAsyncKit.super_.apply(this, arguments); 15 | 16 | // list of active jobs 17 | this.jobs = {}; 18 | 19 | // add stream methods 20 | this.destroy = destroy; 21 | this._start = _start; 22 | this._read = _read; 23 | } 24 | 25 | /** 26 | * Destroys readable stream, 27 | * by aborting outstanding jobs 28 | * 29 | * @returns {void} 30 | */ 31 | function destroy() 32 | { 33 | if (this.destroyed) 34 | { 35 | return; 36 | } 37 | 38 | this.destroyed = true; 39 | 40 | if (typeof this.terminator == 'function') 41 | { 42 | this.terminator(); 43 | } 44 | } 45 | 46 | /** 47 | * Starts provided jobs in async manner 48 | * 49 | * @private 50 | */ 51 | function _start() 52 | { 53 | // first argument – runner function 54 | var runner = arguments[0] 55 | // take away first argument 56 | , args = Array.prototype.slice.call(arguments, 1) 57 | // second argument - input data 58 | , input = args[0] 59 | // last argument - result callback 60 | , endCb = streamify.callback.call(this, args[args.length - 1]) 61 | ; 62 | 63 | args[args.length - 1] = endCb; 64 | // third argument - iterator 65 | args[1] = streamify.iterator.call(this, args[1]); 66 | 67 | // allow time for proper setup 68 | defer(function() 69 | { 70 | if (!this.destroyed) 71 | { 72 | this.terminator = runner.apply(null, args); 73 | } 74 | else 75 | { 76 | endCb(null, Array.isArray(input) ? [] : {}); 77 | } 78 | }.bind(this)); 79 | } 80 | 81 | 82 | /** 83 | * Implement _read to comply with Readable streams 84 | * Doesn't really make sense for flowing object mode 85 | * 86 | * @private 87 | */ 88 | function _read() 89 | { 90 | 91 | } 92 | -------------------------------------------------------------------------------- /open/node_modules/asynckit/lib/readable_parallel.js: -------------------------------------------------------------------------------- 1 | var parallel = require('../parallel.js'); 2 | 3 | // API 4 | module.exports = ReadableParallel; 5 | 6 | /** 7 | * Streaming wrapper to `asynckit.parallel` 8 | * 9 | * @param {array|object} list - array or object (named list) to iterate over 10 | * @param {function} iterator - iterator to run 11 | * @param {function} callback - invoked when all elements processed 12 | * @returns {stream.Readable#} 13 | */ 14 | function ReadableParallel(list, iterator, callback) 15 | { 16 | if (!(this instanceof ReadableParallel)) 17 | { 18 | return new ReadableParallel(list, iterator, callback); 19 | } 20 | 21 | // turn on object mode 22 | ReadableParallel.super_.call(this, {objectMode: true}); 23 | 24 | this._start(parallel, list, iterator, callback); 25 | } 26 | -------------------------------------------------------------------------------- /open/node_modules/asynckit/lib/readable_serial.js: -------------------------------------------------------------------------------- 1 | var serial = require('../serial.js'); 2 | 3 | // API 4 | module.exports = ReadableSerial; 5 | 6 | /** 7 | * Streaming wrapper to `asynckit.serial` 8 | * 9 | * @param {array|object} list - array or object (named list) to iterate over 10 | * @param {function} iterator - iterator to run 11 | * @param {function} callback - invoked when all elements processed 12 | * @returns {stream.Readable#} 13 | */ 14 | function ReadableSerial(list, iterator, callback) 15 | { 16 | if (!(this instanceof ReadableSerial)) 17 | { 18 | return new ReadableSerial(list, iterator, callback); 19 | } 20 | 21 | // turn on object mode 22 | ReadableSerial.super_.call(this, {objectMode: true}); 23 | 24 | this._start(serial, list, iterator, callback); 25 | } 26 | -------------------------------------------------------------------------------- /open/node_modules/asynckit/lib/readable_serial_ordered.js: -------------------------------------------------------------------------------- 1 | var serialOrdered = require('../serialOrdered.js'); 2 | 3 | // API 4 | module.exports = ReadableSerialOrdered; 5 | // expose sort helpers 6 | module.exports.ascending = serialOrdered.ascending; 7 | module.exports.descending = serialOrdered.descending; 8 | 9 | /** 10 | * Streaming wrapper to `asynckit.serialOrdered` 11 | * 12 | * @param {array|object} list - array or object (named list) to iterate over 13 | * @param {function} iterator - iterator to run 14 | * @param {function} sortMethod - custom sort function 15 | * @param {function} callback - invoked when all elements processed 16 | * @returns {stream.Readable#} 17 | */ 18 | function ReadableSerialOrdered(list, iterator, sortMethod, callback) 19 | { 20 | if (!(this instanceof ReadableSerialOrdered)) 21 | { 22 | return new ReadableSerialOrdered(list, iterator, sortMethod, callback); 23 | } 24 | 25 | // turn on object mode 26 | ReadableSerialOrdered.super_.call(this, {objectMode: true}); 27 | 28 | this._start(serialOrdered, list, iterator, sortMethod, callback); 29 | } 30 | -------------------------------------------------------------------------------- /open/node_modules/asynckit/lib/state.js: -------------------------------------------------------------------------------- 1 | // API 2 | module.exports = state; 3 | 4 | /** 5 | * Creates initial state object 6 | * for iteration over list 7 | * 8 | * @param {array|object} list - list to iterate over 9 | * @param {function|null} sortMethod - function to use for keys sort, 10 | * or `null` to keep them as is 11 | * @returns {object} - initial state object 12 | */ 13 | function state(list, sortMethod) 14 | { 15 | var isNamedList = !Array.isArray(list) 16 | , initState = 17 | { 18 | index : 0, 19 | keyedList: isNamedList || sortMethod ? Object.keys(list) : null, 20 | jobs : {}, 21 | results : isNamedList ? {} : [], 22 | size : isNamedList ? Object.keys(list).length : list.length 23 | } 24 | ; 25 | 26 | if (sortMethod) 27 | { 28 | // sort array keys based on it's values 29 | // sort object's keys just on own merit 30 | initState.keyedList.sort(isNamedList ? sortMethod : function(a, b) 31 | { 32 | return sortMethod(list[a], list[b]); 33 | }); 34 | } 35 | 36 | return initState; 37 | } 38 | -------------------------------------------------------------------------------- /open/node_modules/asynckit/lib/terminator.js: -------------------------------------------------------------------------------- 1 | var abort = require('./abort.js') 2 | , async = require('./async.js') 3 | ; 4 | 5 | // API 6 | module.exports = terminator; 7 | 8 | /** 9 | * Terminates jobs in the attached state context 10 | * 11 | * @this AsyncKitState# 12 | * @param {function} callback - final callback to invoke after termination 13 | */ 14 | function terminator(callback) 15 | { 16 | if (!Object.keys(this.jobs).length) 17 | { 18 | return; 19 | } 20 | 21 | // fast forward iteration index 22 | this.index = this.size; 23 | 24 | // abort jobs 25 | abort(this); 26 | 27 | // send back results we have so far 28 | async(callback)(null, this.results); 29 | } 30 | -------------------------------------------------------------------------------- /open/node_modules/asynckit/parallel.js: -------------------------------------------------------------------------------- 1 | var iterate = require('./lib/iterate.js') 2 | , initState = require('./lib/state.js') 3 | , terminator = require('./lib/terminator.js') 4 | ; 5 | 6 | // Public API 7 | module.exports = parallel; 8 | 9 | /** 10 | * Runs iterator over provided array elements in parallel 11 | * 12 | * @param {array|object} list - array or object (named list) to iterate over 13 | * @param {function} iterator - iterator to run 14 | * @param {function} callback - invoked when all elements processed 15 | * @returns {function} - jobs terminator 16 | */ 17 | function parallel(list, iterator, callback) 18 | { 19 | var state = initState(list); 20 | 21 | while (state.index < (state['keyedList'] || list).length) 22 | { 23 | iterate(list, iterator, state, function(error, result) 24 | { 25 | if (error) 26 | { 27 | callback(error, result); 28 | return; 29 | } 30 | 31 | // looks like it's the last one 32 | if (Object.keys(state.jobs).length === 0) 33 | { 34 | callback(null, state.results); 35 | return; 36 | } 37 | }); 38 | 39 | state.index++; 40 | } 41 | 42 | return terminator.bind(state, callback); 43 | } 44 | -------------------------------------------------------------------------------- /open/node_modules/asynckit/serial.js: -------------------------------------------------------------------------------- 1 | var serialOrdered = require('./serialOrdered.js'); 2 | 3 | // Public API 4 | module.exports = serial; 5 | 6 | /** 7 | * Runs iterator over provided array elements in series 8 | * 9 | * @param {array|object} list - array or object (named list) to iterate over 10 | * @param {function} iterator - iterator to run 11 | * @param {function} callback - invoked when all elements processed 12 | * @returns {function} - jobs terminator 13 | */ 14 | function serial(list, iterator, callback) 15 | { 16 | return serialOrdered(list, iterator, null, callback); 17 | } 18 | -------------------------------------------------------------------------------- /open/node_modules/asynckit/serialOrdered.js: -------------------------------------------------------------------------------- 1 | var iterate = require('./lib/iterate.js') 2 | , initState = require('./lib/state.js') 3 | , terminator = require('./lib/terminator.js') 4 | ; 5 | 6 | // Public API 7 | module.exports = serialOrdered; 8 | // sorting helpers 9 | module.exports.ascending = ascending; 10 | module.exports.descending = descending; 11 | 12 | /** 13 | * Runs iterator over provided sorted array elements in series 14 | * 15 | * @param {array|object} list - array or object (named list) to iterate over 16 | * @param {function} iterator - iterator to run 17 | * @param {function} sortMethod - custom sort function 18 | * @param {function} callback - invoked when all elements processed 19 | * @returns {function} - jobs terminator 20 | */ 21 | function serialOrdered(list, iterator, sortMethod, callback) 22 | { 23 | var state = initState(list, sortMethod); 24 | 25 | iterate(list, iterator, state, function iteratorHandler(error, result) 26 | { 27 | if (error) 28 | { 29 | callback(error, result); 30 | return; 31 | } 32 | 33 | state.index++; 34 | 35 | // are we there yet? 36 | if (state.index < (state['keyedList'] || list).length) 37 | { 38 | iterate(list, iterator, state, iteratorHandler); 39 | return; 40 | } 41 | 42 | // done here 43 | callback(null, state.results); 44 | }); 45 | 46 | return terminator.bind(state, callback); 47 | } 48 | 49 | /* 50 | * -- Sort methods 51 | */ 52 | 53 | /** 54 | * sort helper to sort array elements in ascending order 55 | * 56 | * @param {mixed} a - an item to compare 57 | * @param {mixed} b - an item to compare 58 | * @returns {number} - comparison result 59 | */ 60 | function ascending(a, b) 61 | { 62 | return a < b ? -1 : a > b ? 1 : 0; 63 | } 64 | 65 | /** 66 | * sort helper to sort array elements in descending order 67 | * 68 | * @param {mixed} a - an item to compare 69 | * @param {mixed} b - an item to compare 70 | * @returns {number} - comparison result 71 | */ 72 | function descending(a, b) 73 | { 74 | return -1 * ascending(a, b); 75 | } 76 | -------------------------------------------------------------------------------- /open/node_modules/asynckit/stream.js: -------------------------------------------------------------------------------- 1 | var inherits = require('util').inherits 2 | , Readable = require('stream').Readable 3 | , ReadableAsyncKit = require('./lib/readable_asynckit.js') 4 | , ReadableParallel = require('./lib/readable_parallel.js') 5 | , ReadableSerial = require('./lib/readable_serial.js') 6 | , ReadableSerialOrdered = require('./lib/readable_serial_ordered.js') 7 | ; 8 | 9 | // API 10 | module.exports = 11 | { 12 | parallel : ReadableParallel, 13 | serial : ReadableSerial, 14 | serialOrdered : ReadableSerialOrdered, 15 | }; 16 | 17 | inherits(ReadableAsyncKit, Readable); 18 | 19 | inherits(ReadableParallel, ReadableAsyncKit); 20 | inherits(ReadableSerial, ReadableAsyncKit); 21 | inherits(ReadableSerialOrdered, ReadableAsyncKit); 22 | -------------------------------------------------------------------------------- /open/node_modules/axios/LICENSE: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2014-present Matt Zabriskie & Collaborators 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 8 | -------------------------------------------------------------------------------- /open/node_modules/axios/MIGRATION_GUIDE.md: -------------------------------------------------------------------------------- 1 | # Migration Guide 2 | 3 | ## 0.x.x -> 1.1.0 4 | -------------------------------------------------------------------------------- /open/node_modules/axios/SECURITY.md: -------------------------------------------------------------------------------- 1 | # Reporting a Vulnerability 2 | 3 | If you discover a security vulnerability in axios please disclose it via [our huntr page](https://huntr.dev/repos/axios/axios/). Bounty eligibility, CVE assignment, response times and past reports are all there. 4 | 5 | 6 | Thank you for improving the security of axios. 7 | -------------------------------------------------------------------------------- /open/node_modules/axios/index.js: -------------------------------------------------------------------------------- 1 | import axios from './lib/axios.js'; 2 | 3 | // This module is intended to unwrap Axios default export as named. 4 | // Keep top-level export same with static properties 5 | // so that it can keep same with es module or cjs 6 | const { 7 | Axios, 8 | AxiosError, 9 | CanceledError, 10 | isCancel, 11 | CancelToken, 12 | VERSION, 13 | all, 14 | Cancel, 15 | isAxiosError, 16 | spread, 17 | toFormData, 18 | AxiosHeaders, 19 | HttpStatusCode, 20 | formToJSON, 21 | mergeConfig 22 | } = axios; 23 | 24 | export { 25 | axios as default, 26 | Axios, 27 | AxiosError, 28 | CanceledError, 29 | isCancel, 30 | CancelToken, 31 | VERSION, 32 | all, 33 | Cancel, 34 | isAxiosError, 35 | spread, 36 | toFormData, 37 | AxiosHeaders, 38 | HttpStatusCode, 39 | formToJSON, 40 | mergeConfig 41 | } 42 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/adapters/README.md: -------------------------------------------------------------------------------- 1 | # axios // adapters 2 | 3 | The modules under `adapters/` are modules that handle dispatching a request and settling a returned `Promise` once a response is received. 4 | 5 | ## Example 6 | 7 | ```js 8 | var settle = require('./../core/settle'); 9 | 10 | module.exports = function myAdapter(config) { 11 | // At this point: 12 | // - config has been merged with defaults 13 | // - request transformers have already run 14 | // - request interceptors have already run 15 | 16 | // Make the request using config provided 17 | // Upon response settle the Promise 18 | 19 | return new Promise(function(resolve, reject) { 20 | 21 | var response = { 22 | data: responseData, 23 | status: request.status, 24 | statusText: request.statusText, 25 | headers: responseHeaders, 26 | config: config, 27 | request: request 28 | }; 29 | 30 | settle(resolve, reject, response); 31 | 32 | // From here: 33 | // - response transformers will run 34 | // - response interceptors will run 35 | }); 36 | } 37 | ``` 38 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/adapters/adapters.js: -------------------------------------------------------------------------------- 1 | import utils from '../utils.js'; 2 | import httpAdapter from './http.js'; 3 | import xhrAdapter from './xhr.js'; 4 | import AxiosError from "../core/AxiosError.js"; 5 | 6 | const knownAdapters = { 7 | http: httpAdapter, 8 | xhr: xhrAdapter 9 | } 10 | 11 | utils.forEach(knownAdapters, (fn, value) => { 12 | if(fn) { 13 | try { 14 | Object.defineProperty(fn, 'name', {value}); 15 | } catch (e) { 16 | // eslint-disable-next-line no-empty 17 | } 18 | Object.defineProperty(fn, 'adapterName', {value}); 19 | } 20 | }); 21 | 22 | export default { 23 | getAdapter: (adapters) => { 24 | adapters = utils.isArray(adapters) ? adapters : [adapters]; 25 | 26 | const {length} = adapters; 27 | let nameOrAdapter; 28 | let adapter; 29 | 30 | for (let i = 0; i < length; i++) { 31 | nameOrAdapter = adapters[i]; 32 | if((adapter = utils.isString(nameOrAdapter) ? knownAdapters[nameOrAdapter.toLowerCase()] : nameOrAdapter)) { 33 | break; 34 | } 35 | } 36 | 37 | if (!adapter) { 38 | if (adapter === false) { 39 | throw new AxiosError( 40 | `Adapter ${nameOrAdapter} is not supported by the environment`, 41 | 'ERR_NOT_SUPPORT' 42 | ); 43 | } 44 | 45 | throw new Error( 46 | utils.hasOwnProp(knownAdapters, nameOrAdapter) ? 47 | `Adapter '${nameOrAdapter}' is not available in the build` : 48 | `Unknown adapter '${nameOrAdapter}'` 49 | ); 50 | } 51 | 52 | if (!utils.isFunction(adapter)) { 53 | throw new TypeError('adapter is not a function'); 54 | } 55 | 56 | return adapter; 57 | }, 58 | adapters: knownAdapters 59 | } 60 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/cancel/CanceledError.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | import AxiosError from '../core/AxiosError.js'; 4 | import utils from '../utils.js'; 5 | 6 | /** 7 | * A `CanceledError` is an object that is thrown when an operation is canceled. 8 | * 9 | * @param {string=} message The message. 10 | * @param {Object=} config The config. 11 | * @param {Object=} request The request. 12 | * 13 | * @returns {CanceledError} The created error. 14 | */ 15 | function CanceledError(message, config, request) { 16 | // eslint-disable-next-line no-eq-null,eqeqeq 17 | AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request); 18 | this.name = 'CanceledError'; 19 | } 20 | 21 | utils.inherits(CanceledError, AxiosError, { 22 | __CANCEL__: true 23 | }); 24 | 25 | export default CanceledError; 26 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/cancel/isCancel.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | export default function isCancel(value) { 4 | return !!(value && value.__CANCEL__); 5 | } 6 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/core/InterceptorManager.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | import utils from './../utils.js'; 4 | 5 | class InterceptorManager { 6 | constructor() { 7 | this.handlers = []; 8 | } 9 | 10 | /** 11 | * Add a new interceptor to the stack 12 | * 13 | * @param {Function} fulfilled The function to handle `then` for a `Promise` 14 | * @param {Function} rejected The function to handle `reject` for a `Promise` 15 | * 16 | * @return {Number} An ID used to remove interceptor later 17 | */ 18 | use(fulfilled, rejected, options) { 19 | this.handlers.push({ 20 | fulfilled, 21 | rejected, 22 | synchronous: options ? options.synchronous : false, 23 | runWhen: options ? options.runWhen : null 24 | }); 25 | return this.handlers.length - 1; 26 | } 27 | 28 | /** 29 | * Remove an interceptor from the stack 30 | * 31 | * @param {Number} id The ID that was returned by `use` 32 | * 33 | * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise 34 | */ 35 | eject(id) { 36 | if (this.handlers[id]) { 37 | this.handlers[id] = null; 38 | } 39 | } 40 | 41 | /** 42 | * Clear all interceptors from the stack 43 | * 44 | * @returns {void} 45 | */ 46 | clear() { 47 | if (this.handlers) { 48 | this.handlers = []; 49 | } 50 | } 51 | 52 | /** 53 | * Iterate over all the registered interceptors 54 | * 55 | * This method is particularly useful for skipping over any 56 | * interceptors that may have become `null` calling `eject`. 57 | * 58 | * @param {Function} fn The function to call for each interceptor 59 | * 60 | * @returns {void} 61 | */ 62 | forEach(fn) { 63 | utils.forEach(this.handlers, function forEachHandler(h) { 64 | if (h !== null) { 65 | fn(h); 66 | } 67 | }); 68 | } 69 | } 70 | 71 | export default InterceptorManager; 72 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/core/README.md: -------------------------------------------------------------------------------- 1 | # axios // core 2 | 3 | The modules found in `core/` should be modules that are specific to the domain logic of axios. These modules would most likely not make sense to be consumed outside of the axios module, as their logic is too specific. Some examples of core modules are: 4 | 5 | - Dispatching requests 6 | - Requests sent via `adapters/` (see lib/adapters/README.md) 7 | - Managing interceptors 8 | - Handling config 9 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/core/buildFullPath.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | import isAbsoluteURL from '../helpers/isAbsoluteURL.js'; 4 | import combineURLs from '../helpers/combineURLs.js'; 5 | 6 | /** 7 | * Creates a new URL by combining the baseURL with the requestedURL, 8 | * only when the requestedURL is not already an absolute URL. 9 | * If the requestURL is absolute, this function returns the requestedURL untouched. 10 | * 11 | * @param {string} baseURL The base URL 12 | * @param {string} requestedURL Absolute or relative URL to combine 13 | * 14 | * @returns {string} The combined full path 15 | */ 16 | export default function buildFullPath(baseURL, requestedURL) { 17 | if (baseURL && !isAbsoluteURL(requestedURL)) { 18 | return combineURLs(baseURL, requestedURL); 19 | } 20 | return requestedURL; 21 | } 22 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/core/dispatchRequest.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | import transformData from './transformData.js'; 4 | import isCancel from '../cancel/isCancel.js'; 5 | import defaults from '../defaults/index.js'; 6 | import CanceledError from '../cancel/CanceledError.js'; 7 | import AxiosHeaders from '../core/AxiosHeaders.js'; 8 | import adapters from "../adapters/adapters.js"; 9 | 10 | /** 11 | * Throws a `CanceledError` if cancellation has been requested. 12 | * 13 | * @param {Object} config The config that is to be used for the request 14 | * 15 | * @returns {void} 16 | */ 17 | function throwIfCancellationRequested(config) { 18 | if (config.cancelToken) { 19 | config.cancelToken.throwIfRequested(); 20 | } 21 | 22 | if (config.signal && config.signal.aborted) { 23 | throw new CanceledError(null, config); 24 | } 25 | } 26 | 27 | /** 28 | * Dispatch a request to the server using the configured adapter. 29 | * 30 | * @param {object} config The config that is to be used for the request 31 | * 32 | * @returns {Promise} The Promise to be fulfilled 33 | */ 34 | export default function dispatchRequest(config) { 35 | throwIfCancellationRequested(config); 36 | 37 | config.headers = AxiosHeaders.from(config.headers); 38 | 39 | // Transform request data 40 | config.data = transformData.call( 41 | config, 42 | config.transformRequest 43 | ); 44 | 45 | if (['post', 'put', 'patch'].indexOf(config.method) !== -1) { 46 | config.headers.setContentType('application/x-www-form-urlencoded', false); 47 | } 48 | 49 | const adapter = adapters.getAdapter(config.adapter || defaults.adapter); 50 | 51 | return adapter(config).then(function onAdapterResolution(response) { 52 | throwIfCancellationRequested(config); 53 | 54 | // Transform response data 55 | response.data = transformData.call( 56 | config, 57 | config.transformResponse, 58 | response 59 | ); 60 | 61 | response.headers = AxiosHeaders.from(response.headers); 62 | 63 | return response; 64 | }, function onAdapterRejection(reason) { 65 | if (!isCancel(reason)) { 66 | throwIfCancellationRequested(config); 67 | 68 | // Transform response data 69 | if (reason && reason.response) { 70 | reason.response.data = transformData.call( 71 | config, 72 | config.transformResponse, 73 | reason.response 74 | ); 75 | reason.response.headers = AxiosHeaders.from(reason.response.headers); 76 | } 77 | } 78 | 79 | return Promise.reject(reason); 80 | }); 81 | } 82 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/core/settle.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | import AxiosError from './AxiosError.js'; 4 | 5 | /** 6 | * Resolve or reject a Promise based on response status. 7 | * 8 | * @param {Function} resolve A function that resolves the promise. 9 | * @param {Function} reject A function that rejects the promise. 10 | * @param {object} response The response. 11 | * 12 | * @returns {object} The response. 13 | */ 14 | export default function settle(resolve, reject, response) { 15 | const validateStatus = response.config.validateStatus; 16 | if (!response.status || !validateStatus || validateStatus(response.status)) { 17 | resolve(response); 18 | } else { 19 | reject(new AxiosError( 20 | 'Request failed with status code ' + response.status, 21 | [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4], 22 | response.config, 23 | response.request, 24 | response 25 | )); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/core/transformData.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | import utils from './../utils.js'; 4 | import defaults from '../defaults/index.js'; 5 | import AxiosHeaders from '../core/AxiosHeaders.js'; 6 | 7 | /** 8 | * Transform the data for a request or a response 9 | * 10 | * @param {Array|Function} fns A single function or Array of functions 11 | * @param {?Object} response The response object 12 | * 13 | * @returns {*} The resulting transformed data 14 | */ 15 | export default function transformData(fns, response) { 16 | const config = this || defaults; 17 | const context = response || config; 18 | const headers = AxiosHeaders.from(context.headers); 19 | let data = context.data; 20 | 21 | utils.forEach(fns, function transform(fn) { 22 | data = fn.call(config, data, headers.normalize(), response ? response.status : undefined); 23 | }); 24 | 25 | headers.normalize(); 26 | 27 | return data; 28 | } 29 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/defaults/transitional.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | export default { 4 | silentJSONParsing: true, 5 | forcedJSONParsing: true, 6 | clarifyTimeoutError: false 7 | }; 8 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/env/README.md: -------------------------------------------------------------------------------- 1 | # axios // env 2 | 3 | The `data.js` file is updated automatically when the package version is upgrading. Please do not edit it manually. 4 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/env/classes/FormData.js: -------------------------------------------------------------------------------- 1 | import _FormData from 'form-data'; 2 | export default typeof FormData !== 'undefined' ? FormData : _FormData; 3 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/env/data.js: -------------------------------------------------------------------------------- 1 | export const VERSION = "1.4.0"; -------------------------------------------------------------------------------- /open/node_modules/axios/lib/helpers/AxiosURLSearchParams.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | import toFormData from './toFormData.js'; 4 | 5 | /** 6 | * It encodes a string by replacing all characters that are not in the unreserved set with 7 | * their percent-encoded equivalents 8 | * 9 | * @param {string} str - The string to encode. 10 | * 11 | * @returns {string} The encoded string. 12 | */ 13 | function encode(str) { 14 | const charMap = { 15 | '!': '%21', 16 | "'": '%27', 17 | '(': '%28', 18 | ')': '%29', 19 | '~': '%7E', 20 | '%20': '+', 21 | '%00': '\x00' 22 | }; 23 | return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) { 24 | return charMap[match]; 25 | }); 26 | } 27 | 28 | /** 29 | * It takes a params object and converts it to a FormData object 30 | * 31 | * @param {Object} params - The parameters to be converted to a FormData object. 32 | * @param {Object} options - The options object passed to the Axios constructor. 33 | * 34 | * @returns {void} 35 | */ 36 | function AxiosURLSearchParams(params, options) { 37 | this._pairs = []; 38 | 39 | params && toFormData(params, this, options); 40 | } 41 | 42 | const prototype = AxiosURLSearchParams.prototype; 43 | 44 | prototype.append = function append(name, value) { 45 | this._pairs.push([name, value]); 46 | }; 47 | 48 | prototype.toString = function toString(encoder) { 49 | const _encode = encoder ? function(value) { 50 | return encoder.call(this, value, encode); 51 | } : encode; 52 | 53 | return this._pairs.map(function each(pair) { 54 | return _encode(pair[0]) + '=' + _encode(pair[1]); 55 | }, '').join('&'); 56 | }; 57 | 58 | export default AxiosURLSearchParams; 59 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/helpers/HttpStatusCode.js: -------------------------------------------------------------------------------- 1 | const HttpStatusCode = { 2 | Continue: 100, 3 | SwitchingProtocols: 101, 4 | Processing: 102, 5 | EarlyHints: 103, 6 | Ok: 200, 7 | Created: 201, 8 | Accepted: 202, 9 | NonAuthoritativeInformation: 203, 10 | NoContent: 204, 11 | ResetContent: 205, 12 | PartialContent: 206, 13 | MultiStatus: 207, 14 | AlreadyReported: 208, 15 | ImUsed: 226, 16 | MultipleChoices: 300, 17 | MovedPermanently: 301, 18 | Found: 302, 19 | SeeOther: 303, 20 | NotModified: 304, 21 | UseProxy: 305, 22 | Unused: 306, 23 | TemporaryRedirect: 307, 24 | PermanentRedirect: 308, 25 | BadRequest: 400, 26 | Unauthorized: 401, 27 | PaymentRequired: 402, 28 | Forbidden: 403, 29 | NotFound: 404, 30 | MethodNotAllowed: 405, 31 | NotAcceptable: 406, 32 | ProxyAuthenticationRequired: 407, 33 | RequestTimeout: 408, 34 | Conflict: 409, 35 | Gone: 410, 36 | LengthRequired: 411, 37 | PreconditionFailed: 412, 38 | PayloadTooLarge: 413, 39 | UriTooLong: 414, 40 | UnsupportedMediaType: 415, 41 | RangeNotSatisfiable: 416, 42 | ExpectationFailed: 417, 43 | ImATeapot: 418, 44 | MisdirectedRequest: 421, 45 | UnprocessableEntity: 422, 46 | Locked: 423, 47 | FailedDependency: 424, 48 | TooEarly: 425, 49 | UpgradeRequired: 426, 50 | PreconditionRequired: 428, 51 | TooManyRequests: 429, 52 | RequestHeaderFieldsTooLarge: 431, 53 | UnavailableForLegalReasons: 451, 54 | InternalServerError: 500, 55 | NotImplemented: 501, 56 | BadGateway: 502, 57 | ServiceUnavailable: 503, 58 | GatewayTimeout: 504, 59 | HttpVersionNotSupported: 505, 60 | VariantAlsoNegotiates: 506, 61 | InsufficientStorage: 507, 62 | LoopDetected: 508, 63 | NotExtended: 510, 64 | NetworkAuthenticationRequired: 511, 65 | }; 66 | 67 | Object.entries(HttpStatusCode).forEach(([key, value]) => { 68 | HttpStatusCode[value] = key; 69 | }); 70 | 71 | export default HttpStatusCode; 72 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/helpers/README.md: -------------------------------------------------------------------------------- 1 | # axios // helpers 2 | 3 | The modules found in `helpers/` should be generic modules that are _not_ specific to the domain logic of axios. These modules could theoretically be published to npm on their own and consumed by other modules or apps. Some examples of generic modules are things like: 4 | 5 | - Browser polyfills 6 | - Managing cookies 7 | - Parsing HTTP headers 8 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | import stream from "stream"; 4 | 5 | class ZlibHeaderTransformStream extends stream.Transform { 6 | __transform(chunk, encoding, callback) { 7 | this.push(chunk); 8 | callback(); 9 | } 10 | 11 | _transform(chunk, encoding, callback) { 12 | if (chunk.length !== 0) { 13 | this._transform = this.__transform; 14 | 15 | // Add Default Compression headers if no zlib headers are present 16 | if (chunk[0] !== 120) { // Hex: 78 17 | const header = Buffer.alloc(2); 18 | header[0] = 120; // Hex: 78 19 | header[1] = 156; // Hex: 9C 20 | this.push(header, encoding); 21 | } 22 | } 23 | 24 | this.__transform(chunk, encoding, callback); 25 | } 26 | } 27 | 28 | export default ZlibHeaderTransformStream; 29 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/helpers/bind.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | export default function bind(fn, thisArg) { 4 | return function wrap() { 5 | return fn.apply(thisArg, arguments); 6 | }; 7 | } 8 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/helpers/buildURL.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | import utils from '../utils.js'; 4 | import AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js'; 5 | 6 | /** 7 | * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their 8 | * URI encoded counterparts 9 | * 10 | * @param {string} val The value to be encoded. 11 | * 12 | * @returns {string} The encoded value. 13 | */ 14 | function encode(val) { 15 | return encodeURIComponent(val). 16 | replace(/%3A/gi, ':'). 17 | replace(/%24/g, '$'). 18 | replace(/%2C/gi, ','). 19 | replace(/%20/g, '+'). 20 | replace(/%5B/gi, '['). 21 | replace(/%5D/gi, ']'); 22 | } 23 | 24 | /** 25 | * Build a URL by appending params to the end 26 | * 27 | * @param {string} url The base of the url (e.g., http://www.google.com) 28 | * @param {object} [params] The params to be appended 29 | * @param {?object} options 30 | * 31 | * @returns {string} The formatted url 32 | */ 33 | export default function buildURL(url, params, options) { 34 | /*eslint no-param-reassign:0*/ 35 | if (!params) { 36 | return url; 37 | } 38 | 39 | const _encode = options && options.encode || encode; 40 | 41 | const serializeFn = options && options.serialize; 42 | 43 | let serializedParams; 44 | 45 | if (serializeFn) { 46 | serializedParams = serializeFn(params, options); 47 | } else { 48 | serializedParams = utils.isURLSearchParams(params) ? 49 | params.toString() : 50 | new AxiosURLSearchParams(params, options).toString(_encode); 51 | } 52 | 53 | if (serializedParams) { 54 | const hashmarkIndex = url.indexOf("#"); 55 | 56 | if (hashmarkIndex !== -1) { 57 | url = url.slice(0, hashmarkIndex); 58 | } 59 | url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; 60 | } 61 | 62 | return url; 63 | } 64 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/helpers/callbackify.js: -------------------------------------------------------------------------------- 1 | import utils from "../utils.js"; 2 | 3 | const callbackify = (fn, reducer) => { 4 | return utils.isAsyncFn(fn) ? function (...args) { 5 | const cb = args.pop(); 6 | fn.apply(this, args).then((value) => { 7 | try { 8 | reducer ? cb(null, ...reducer(value)) : cb(null, value); 9 | } catch (err) { 10 | cb(err); 11 | } 12 | }, cb); 13 | } : fn; 14 | } 15 | 16 | export default callbackify; 17 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/helpers/combineURLs.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** 4 | * Creates a new URL by combining the specified URLs 5 | * 6 | * @param {string} baseURL The base URL 7 | * @param {string} relativeURL The relative URL 8 | * 9 | * @returns {string} The combined URL 10 | */ 11 | export default function combineURLs(baseURL, relativeURL) { 12 | return relativeURL 13 | ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '') 14 | : baseURL; 15 | } 16 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/helpers/cookies.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | import utils from './../utils.js'; 4 | import platform from '../platform/index.js'; 5 | 6 | export default platform.isStandardBrowserEnv ? 7 | 8 | // Standard browser envs support document.cookie 9 | (function standardBrowserEnv() { 10 | return { 11 | write: function write(name, value, expires, path, domain, secure) { 12 | const cookie = []; 13 | cookie.push(name + '=' + encodeURIComponent(value)); 14 | 15 | if (utils.isNumber(expires)) { 16 | cookie.push('expires=' + new Date(expires).toGMTString()); 17 | } 18 | 19 | if (utils.isString(path)) { 20 | cookie.push('path=' + path); 21 | } 22 | 23 | if (utils.isString(domain)) { 24 | cookie.push('domain=' + domain); 25 | } 26 | 27 | if (secure === true) { 28 | cookie.push('secure'); 29 | } 30 | 31 | document.cookie = cookie.join('; '); 32 | }, 33 | 34 | read: function read(name) { 35 | const match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')); 36 | return (match ? decodeURIComponent(match[3]) : null); 37 | }, 38 | 39 | remove: function remove(name) { 40 | this.write(name, '', Date.now() - 86400000); 41 | } 42 | }; 43 | })() : 44 | 45 | // Non standard browser env (web workers, react-native) lack needed support. 46 | (function nonStandardBrowserEnv() { 47 | return { 48 | write: function write() {}, 49 | read: function read() { return null; }, 50 | remove: function remove() {} 51 | }; 52 | })(); 53 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/helpers/deprecatedMethod.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /*eslint no-console:0*/ 4 | 5 | /** 6 | * Supply a warning to the developer that a method they are using 7 | * has been deprecated. 8 | * 9 | * @param {string} method The name of the deprecated method 10 | * @param {string} [instead] The alternate method to use if applicable 11 | * @param {string} [docs] The documentation URL to get further details 12 | * 13 | * @returns {void} 14 | */ 15 | export default function deprecatedMethod(method, instead, docs) { 16 | try { 17 | console.warn( 18 | 'DEPRECATED method `' + method + '`.' + 19 | (instead ? ' Use `' + instead + '` instead.' : '') + 20 | ' This method will be removed in a future release.'); 21 | 22 | if (docs) { 23 | console.warn('For more information about usage see ' + docs); 24 | } 25 | } catch (e) { /* Ignore */ } 26 | } 27 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/helpers/formDataToJSON.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | import utils from '../utils.js'; 4 | 5 | /** 6 | * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z'] 7 | * 8 | * @param {string} name - The name of the property to get. 9 | * 10 | * @returns An array of strings. 11 | */ 12 | function parsePropPath(name) { 13 | // foo[x][y][z] 14 | // foo.x.y.z 15 | // foo-x-y-z 16 | // foo x y z 17 | return utils.matchAll(/\w+|\[(\w*)]/g, name).map(match => { 18 | return match[0] === '[]' ? '' : match[1] || match[0]; 19 | }); 20 | } 21 | 22 | /** 23 | * Convert an array to an object. 24 | * 25 | * @param {Array} arr - The array to convert to an object. 26 | * 27 | * @returns An object with the same keys and values as the array. 28 | */ 29 | function arrayToObject(arr) { 30 | const obj = {}; 31 | const keys = Object.keys(arr); 32 | let i; 33 | const len = keys.length; 34 | let key; 35 | for (i = 0; i < len; i++) { 36 | key = keys[i]; 37 | obj[key] = arr[key]; 38 | } 39 | return obj; 40 | } 41 | 42 | /** 43 | * It takes a FormData object and returns a JavaScript object 44 | * 45 | * @param {string} formData The FormData object to convert to JSON. 46 | * 47 | * @returns {Object | null} The converted object. 48 | */ 49 | function formDataToJSON(formData) { 50 | function buildPath(path, value, target, index) { 51 | let name = path[index++]; 52 | const isNumericKey = Number.isFinite(+name); 53 | const isLast = index >= path.length; 54 | name = !name && utils.isArray(target) ? target.length : name; 55 | 56 | if (isLast) { 57 | if (utils.hasOwnProp(target, name)) { 58 | target[name] = [target[name], value]; 59 | } else { 60 | target[name] = value; 61 | } 62 | 63 | return !isNumericKey; 64 | } 65 | 66 | if (!target[name] || !utils.isObject(target[name])) { 67 | target[name] = []; 68 | } 69 | 70 | const result = buildPath(path, value, target[name], index); 71 | 72 | if (result && utils.isArray(target[name])) { 73 | target[name] = arrayToObject(target[name]); 74 | } 75 | 76 | return !isNumericKey; 77 | } 78 | 79 | if (utils.isFormData(formData) && utils.isFunction(formData.entries)) { 80 | const obj = {}; 81 | 82 | utils.forEachEntry(formData, (name, value) => { 83 | buildPath(parsePropPath(name), value, obj, 0); 84 | }); 85 | 86 | return obj; 87 | } 88 | 89 | return null; 90 | } 91 | 92 | export default formDataToJSON; 93 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/helpers/fromDataURI.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | import AxiosError from '../core/AxiosError.js'; 4 | import parseProtocol from './parseProtocol.js'; 5 | import platform from '../platform/index.js'; 6 | 7 | const DATA_URL_PATTERN = /^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\s\S]*)$/; 8 | 9 | /** 10 | * Parse data uri to a Buffer or Blob 11 | * 12 | * @param {String} uri 13 | * @param {?Boolean} asBlob 14 | * @param {?Object} options 15 | * @param {?Function} options.Blob 16 | * 17 | * @returns {Buffer|Blob} 18 | */ 19 | export default function fromDataURI(uri, asBlob, options) { 20 | const _Blob = options && options.Blob || platform.classes.Blob; 21 | const protocol = parseProtocol(uri); 22 | 23 | if (asBlob === undefined && _Blob) { 24 | asBlob = true; 25 | } 26 | 27 | if (protocol === 'data') { 28 | uri = protocol.length ? uri.slice(protocol.length + 1) : uri; 29 | 30 | const match = DATA_URL_PATTERN.exec(uri); 31 | 32 | if (!match) { 33 | throw new AxiosError('Invalid URL', AxiosError.ERR_INVALID_URL); 34 | } 35 | 36 | const mime = match[1]; 37 | const isBase64 = match[2]; 38 | const body = match[3]; 39 | const buffer = Buffer.from(decodeURIComponent(body), isBase64 ? 'base64' : 'utf8'); 40 | 41 | if (asBlob) { 42 | if (!_Blob) { 43 | throw new AxiosError('Blob is not supported', AxiosError.ERR_NOT_SUPPORT); 44 | } 45 | 46 | return new _Blob([buffer], {type: mime}); 47 | } 48 | 49 | return buffer; 50 | } 51 | 52 | throw new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_NOT_SUPPORT); 53 | } 54 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/helpers/isAbsoluteURL.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** 4 | * Determines whether the specified URL is absolute 5 | * 6 | * @param {string} url The URL to test 7 | * 8 | * @returns {boolean} True if the specified URL is absolute, otherwise false 9 | */ 10 | export default function isAbsoluteURL(url) { 11 | // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). 12 | // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed 13 | // by any combination of letters, digits, plus, period, or hyphen. 14 | return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url); 15 | } 16 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/helpers/isAxiosError.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | import utils from './../utils.js'; 4 | 5 | /** 6 | * Determines whether the payload is an error thrown by Axios 7 | * 8 | * @param {*} payload The value to test 9 | * 10 | * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false 11 | */ 12 | export default function isAxiosError(payload) { 13 | return utils.isObject(payload) && (payload.isAxiosError === true); 14 | } 15 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/helpers/isURLSameOrigin.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | import utils from './../utils.js'; 4 | import platform from '../platform/index.js'; 5 | 6 | export default platform.isStandardBrowserEnv ? 7 | 8 | // Standard browser envs have full support of the APIs needed to test 9 | // whether the request URL is of the same origin as current location. 10 | (function standardBrowserEnv() { 11 | const msie = /(msie|trident)/i.test(navigator.userAgent); 12 | const urlParsingNode = document.createElement('a'); 13 | let originURL; 14 | 15 | /** 16 | * Parse a URL to discover it's components 17 | * 18 | * @param {String} url The URL to be parsed 19 | * @returns {Object} 20 | */ 21 | function resolveURL(url) { 22 | let href = url; 23 | 24 | if (msie) { 25 | // IE needs attribute set twice to normalize properties 26 | urlParsingNode.setAttribute('href', href); 27 | href = urlParsingNode.href; 28 | } 29 | 30 | urlParsingNode.setAttribute('href', href); 31 | 32 | // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils 33 | return { 34 | href: urlParsingNode.href, 35 | protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '', 36 | host: urlParsingNode.host, 37 | search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '', 38 | hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '', 39 | hostname: urlParsingNode.hostname, 40 | port: urlParsingNode.port, 41 | pathname: (urlParsingNode.pathname.charAt(0) === '/') ? 42 | urlParsingNode.pathname : 43 | '/' + urlParsingNode.pathname 44 | }; 45 | } 46 | 47 | originURL = resolveURL(window.location.href); 48 | 49 | /** 50 | * Determine if a URL shares the same origin as the current location 51 | * 52 | * @param {String} requestURL The URL to test 53 | * @returns {boolean} True if URL shares the same origin, otherwise false 54 | */ 55 | return function isURLSameOrigin(requestURL) { 56 | const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL; 57 | return (parsed.protocol === originURL.protocol && 58 | parsed.host === originURL.host); 59 | }; 60 | })() : 61 | 62 | // Non standard browser envs (web workers, react-native) lack needed support. 63 | (function nonStandardBrowserEnv() { 64 | return function isURLSameOrigin() { 65 | return true; 66 | }; 67 | })(); 68 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/helpers/null.js: -------------------------------------------------------------------------------- 1 | // eslint-disable-next-line strict 2 | export default null; 3 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/helpers/parseHeaders.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | import utils from './../utils.js'; 4 | 5 | // RawAxiosHeaders whose duplicates are ignored by node 6 | // c.f. https://nodejs.org/api/http.html#http_message_headers 7 | const ignoreDuplicateOf = utils.toObjectSet([ 8 | 'age', 'authorization', 'content-length', 'content-type', 'etag', 9 | 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 10 | 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 11 | 'referer', 'retry-after', 'user-agent' 12 | ]); 13 | 14 | /** 15 | * Parse headers into an object 16 | * 17 | * ``` 18 | * Date: Wed, 27 Aug 2014 08:58:49 GMT 19 | * Content-Type: application/json 20 | * Connection: keep-alive 21 | * Transfer-Encoding: chunked 22 | * ``` 23 | * 24 | * @param {String} rawHeaders Headers needing to be parsed 25 | * 26 | * @returns {Object} Headers parsed into an object 27 | */ 28 | export default rawHeaders => { 29 | const parsed = {}; 30 | let key; 31 | let val; 32 | let i; 33 | 34 | rawHeaders && rawHeaders.split('\n').forEach(function parser(line) { 35 | i = line.indexOf(':'); 36 | key = line.substring(0, i).trim().toLowerCase(); 37 | val = line.substring(i + 1).trim(); 38 | 39 | if (!key || (parsed[key] && ignoreDuplicateOf[key])) { 40 | return; 41 | } 42 | 43 | if (key === 'set-cookie') { 44 | if (parsed[key]) { 45 | parsed[key].push(val); 46 | } else { 47 | parsed[key] = [val]; 48 | } 49 | } else { 50 | parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; 51 | } 52 | }); 53 | 54 | return parsed; 55 | }; 56 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/helpers/parseProtocol.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | export default function parseProtocol(url) { 4 | const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url); 5 | return match && match[1] || ''; 6 | } 7 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/helpers/readBlob.js: -------------------------------------------------------------------------------- 1 | const {asyncIterator} = Symbol; 2 | 3 | const readBlob = async function* (blob) { 4 | if (blob.stream) { 5 | yield* blob.stream() 6 | } else if (blob.arrayBuffer) { 7 | yield await blob.arrayBuffer() 8 | } else if (blob[asyncIterator]) { 9 | yield* blob[asyncIterator](); 10 | } else { 11 | yield blob; 12 | } 13 | } 14 | 15 | export default readBlob; 16 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/helpers/speedometer.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** 4 | * Calculate data maxRate 5 | * @param {Number} [samplesCount= 10] 6 | * @param {Number} [min= 1000] 7 | * @returns {Function} 8 | */ 9 | function speedometer(samplesCount, min) { 10 | samplesCount = samplesCount || 10; 11 | const bytes = new Array(samplesCount); 12 | const timestamps = new Array(samplesCount); 13 | let head = 0; 14 | let tail = 0; 15 | let firstSampleTS; 16 | 17 | min = min !== undefined ? min : 1000; 18 | 19 | return function push(chunkLength) { 20 | const now = Date.now(); 21 | 22 | const startedAt = timestamps[tail]; 23 | 24 | if (!firstSampleTS) { 25 | firstSampleTS = now; 26 | } 27 | 28 | bytes[head] = chunkLength; 29 | timestamps[head] = now; 30 | 31 | let i = tail; 32 | let bytesCount = 0; 33 | 34 | while (i !== head) { 35 | bytesCount += bytes[i++]; 36 | i = i % samplesCount; 37 | } 38 | 39 | head = (head + 1) % samplesCount; 40 | 41 | if (head === tail) { 42 | tail = (tail + 1) % samplesCount; 43 | } 44 | 45 | if (now - firstSampleTS < min) { 46 | return; 47 | } 48 | 49 | const passed = startedAt && now - startedAt; 50 | 51 | return passed ? Math.round(bytesCount * 1000 / passed) : undefined; 52 | }; 53 | } 54 | 55 | export default speedometer; 56 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/helpers/spread.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** 4 | * Syntactic sugar for invoking a function and expanding an array for arguments. 5 | * 6 | * Common use case would be to use `Function.prototype.apply`. 7 | * 8 | * ```js 9 | * function f(x, y, z) {} 10 | * var args = [1, 2, 3]; 11 | * f.apply(null, args); 12 | * ``` 13 | * 14 | * With `spread` this example can be re-written. 15 | * 16 | * ```js 17 | * spread(function(x, y, z) {})([1, 2, 3]); 18 | * ``` 19 | * 20 | * @param {Function} callback 21 | * 22 | * @returns {Function} 23 | */ 24 | export default function spread(callback) { 25 | return function wrap(arr) { 26 | return callback.apply(null, arr); 27 | }; 28 | } 29 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/helpers/throttle.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** 4 | * Throttle decorator 5 | * @param {Function} fn 6 | * @param {Number} freq 7 | * @return {Function} 8 | */ 9 | function throttle(fn, freq) { 10 | let timestamp = 0; 11 | const threshold = 1000 / freq; 12 | let timer = null; 13 | return function throttled(force, args) { 14 | const now = Date.now(); 15 | if (force || now - timestamp > threshold) { 16 | if (timer) { 17 | clearTimeout(timer); 18 | timer = null; 19 | } 20 | timestamp = now; 21 | return fn.apply(null, args); 22 | } 23 | if (!timer) { 24 | timer = setTimeout(() => { 25 | timer = null; 26 | timestamp = Date.now(); 27 | return fn.apply(null, args); 28 | }, threshold - (now - timestamp)); 29 | } 30 | }; 31 | } 32 | 33 | export default throttle; 34 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/helpers/toURLEncodedForm.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | import utils from '../utils.js'; 4 | import toFormData from './toFormData.js'; 5 | import platform from '../platform/index.js'; 6 | 7 | export default function toURLEncodedForm(data, options) { 8 | return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({ 9 | visitor: function(value, key, path, helpers) { 10 | if (platform.isNode && utils.isBuffer(value)) { 11 | this.append(key, value.toString('base64')); 12 | return false; 13 | } 14 | 15 | return helpers.defaultVisitor.apply(this, arguments); 16 | } 17 | }, options)); 18 | } 19 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/platform/browser/classes/Blob.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | export default typeof Blob !== 'undefined' ? Blob : null 4 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/platform/browser/classes/FormData.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | export default typeof FormData !== 'undefined' ? FormData : null; 4 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | import AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js'; 4 | export default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams; 5 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/platform/browser/index.js: -------------------------------------------------------------------------------- 1 | import URLSearchParams from './classes/URLSearchParams.js' 2 | import FormData from './classes/FormData.js' 3 | import Blob from './classes/Blob.js' 4 | 5 | /** 6 | * Determine if we're running in a standard browser environment 7 | * 8 | * This allows axios to run in a web worker, and react-native. 9 | * Both environments support XMLHttpRequest, but not fully standard globals. 10 | * 11 | * web workers: 12 | * typeof window -> undefined 13 | * typeof document -> undefined 14 | * 15 | * react-native: 16 | * navigator.product -> 'ReactNative' 17 | * nativescript 18 | * navigator.product -> 'NativeScript' or 'NS' 19 | * 20 | * @returns {boolean} 21 | */ 22 | const isStandardBrowserEnv = (() => { 23 | let product; 24 | if (typeof navigator !== 'undefined' && ( 25 | (product = navigator.product) === 'ReactNative' || 26 | product === 'NativeScript' || 27 | product === 'NS') 28 | ) { 29 | return false; 30 | } 31 | 32 | return typeof window !== 'undefined' && typeof document !== 'undefined'; 33 | })(); 34 | 35 | /** 36 | * Determine if we're running in a standard browser webWorker environment 37 | * 38 | * Although the `isStandardBrowserEnv` method indicates that 39 | * `allows axios to run in a web worker`, the WebWorker will still be 40 | * filtered out due to its judgment standard 41 | * `typeof window !== 'undefined' && typeof document !== 'undefined'`. 42 | * This leads to a problem when axios post `FormData` in webWorker 43 | */ 44 | const isStandardBrowserWebWorkerEnv = (() => { 45 | return ( 46 | typeof WorkerGlobalScope !== 'undefined' && 47 | // eslint-disable-next-line no-undef 48 | self instanceof WorkerGlobalScope && 49 | typeof self.importScripts === 'function' 50 | ); 51 | })(); 52 | 53 | 54 | export default { 55 | isBrowser: true, 56 | classes: { 57 | URLSearchParams, 58 | FormData, 59 | Blob 60 | }, 61 | isStandardBrowserEnv, 62 | isStandardBrowserWebWorkerEnv, 63 | protocols: ['http', 'https', 'file', 'blob', 'url', 'data'] 64 | }; 65 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/platform/index.js: -------------------------------------------------------------------------------- 1 | import platform from './node/index.js'; 2 | 3 | export {platform as default} 4 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/platform/node/classes/FormData.js: -------------------------------------------------------------------------------- 1 | import FormData from 'form-data'; 2 | 3 | export default FormData; 4 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/platform/node/classes/URLSearchParams.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | import url from 'url'; 4 | export default url.URLSearchParams; 5 | -------------------------------------------------------------------------------- /open/node_modules/axios/lib/platform/node/index.js: -------------------------------------------------------------------------------- 1 | import URLSearchParams from './classes/URLSearchParams.js' 2 | import FormData from './classes/FormData.js' 3 | 4 | export default { 5 | isNode: true, 6 | classes: { 7 | URLSearchParams, 8 | FormData, 9 | Blob: typeof Blob !== 'undefined' && Blob || null 10 | }, 11 | protocols: [ 'http', 'https', 'file', 'data' ] 12 | }; 13 | -------------------------------------------------------------------------------- /open/node_modules/call-bind/.eslintignore: -------------------------------------------------------------------------------- 1 | coverage/ 2 | -------------------------------------------------------------------------------- /open/node_modules/call-bind/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "func-name-matching": 0, 8 | "id-length": 0, 9 | "new-cap": [2, { 10 | "capIsNewExceptions": [ 11 | "GetIntrinsic", 12 | ], 13 | }], 14 | "no-magic-numbers": 0, 15 | "operator-linebreak": [2, "before"], 16 | }, 17 | } 18 | -------------------------------------------------------------------------------- /open/node_modules/call-bind/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/call-bind 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /open/node_modules/call-bind/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "lines": 86, 6 | "statements": 85.93, 7 | "functions": 82.43, 8 | "branches": 76.06, 9 | "exclude": [ 10 | "coverage", 11 | "test" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /open/node_modules/call-bind/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Jordan Harband 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /open/node_modules/call-bind/README.md: -------------------------------------------------------------------------------- 1 | # call-bind 2 | Robustly `.call.bind()` a function. 3 | -------------------------------------------------------------------------------- /open/node_modules/call-bind/callBound.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var GetIntrinsic = require('get-intrinsic'); 4 | 5 | var callBind = require('./'); 6 | 7 | var $indexOf = callBind(GetIntrinsic('String.prototype.indexOf')); 8 | 9 | module.exports = function callBoundIntrinsic(name, allowMissing) { 10 | var intrinsic = GetIntrinsic(name, !!allowMissing); 11 | if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) { 12 | return callBind(intrinsic); 13 | } 14 | return intrinsic; 15 | }; 16 | -------------------------------------------------------------------------------- /open/node_modules/call-bind/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var bind = require('function-bind'); 4 | var GetIntrinsic = require('get-intrinsic'); 5 | 6 | var $apply = GetIntrinsic('%Function.prototype.apply%'); 7 | var $call = GetIntrinsic('%Function.prototype.call%'); 8 | var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply); 9 | 10 | var $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true); 11 | var $defineProperty = GetIntrinsic('%Object.defineProperty%', true); 12 | var $max = GetIntrinsic('%Math.max%'); 13 | 14 | if ($defineProperty) { 15 | try { 16 | $defineProperty({}, 'a', { value: 1 }); 17 | } catch (e) { 18 | // IE 8 has a broken defineProperty 19 | $defineProperty = null; 20 | } 21 | } 22 | 23 | module.exports = function callBind(originalFunction) { 24 | var func = $reflectApply(bind, $call, arguments); 25 | if ($gOPD && $defineProperty) { 26 | var desc = $gOPD(func, 'length'); 27 | if (desc.configurable) { 28 | // original length, plus the receiver, minus any additional arguments (after the receiver) 29 | $defineProperty( 30 | func, 31 | 'length', 32 | { value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) } 33 | ); 34 | } 35 | } 36 | return func; 37 | }; 38 | 39 | var applyBind = function applyBind() { 40 | return $reflectApply(bind, $apply, arguments); 41 | }; 42 | 43 | if ($defineProperty) { 44 | $defineProperty(module.exports, 'apply', { value: applyBind }); 45 | } else { 46 | module.exports.apply = applyBind; 47 | } 48 | -------------------------------------------------------------------------------- /open/node_modules/combined-stream/License: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011 Debuggable Limited 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /open/node_modules/combined-stream/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "_args": [ 3 | [ 4 | "combined-stream@1.0.8", 5 | "/Users/liushiquan/learn_code/android/CatVodOpen/open" 6 | ] 7 | ], 8 | "_from": "combined-stream@1.0.8", 9 | "_id": "combined-stream@1.0.8", 10 | "_inBundle": false, 11 | "_integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 12 | "_location": "/combined-stream", 13 | "_phantomChildren": {}, 14 | "_requested": { 15 | "type": "version", 16 | "registry": true, 17 | "raw": "combined-stream@1.0.8", 18 | "name": "combined-stream", 19 | "escapedName": "combined-stream", 20 | "rawSpec": "1.0.8", 21 | "saveSpec": null, 22 | "fetchSpec": "1.0.8" 23 | }, 24 | "_requiredBy": [ 25 | "/form-data" 26 | ], 27 | "_resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", 28 | "_spec": "1.0.8", 29 | "_where": "/Users/liushiquan/learn_code/android/CatVodOpen/open", 30 | "author": { 31 | "name": "Felix Geisendörfer", 32 | "email": "felix@debuggable.com", 33 | "url": "http://debuggable.com/" 34 | }, 35 | "bugs": { 36 | "url": "https://github.com/felixge/node-combined-stream/issues" 37 | }, 38 | "dependencies": { 39 | "delayed-stream": "~1.0.0" 40 | }, 41 | "description": "A stream that emits multiple other streams one after another.", 42 | "devDependencies": { 43 | "far": "~0.0.7" 44 | }, 45 | "engines": { 46 | "node": ">= 0.8" 47 | }, 48 | "homepage": "https://github.com/felixge/node-combined-stream", 49 | "license": "MIT", 50 | "main": "./lib/combined_stream", 51 | "name": "combined-stream", 52 | "repository": { 53 | "type": "git", 54 | "url": "git://github.com/felixge/node-combined-stream.git" 55 | }, 56 | "scripts": { 57 | "test": "node test/run.js" 58 | }, 59 | "version": "1.0.8" 60 | } 61 | -------------------------------------------------------------------------------- /open/node_modules/combined-stream/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | delayed-stream@~1.0.0: 6 | version "1.0.0" 7 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 8 | 9 | far@~0.0.7: 10 | version "0.0.7" 11 | resolved "https://registry.yarnpkg.com/far/-/far-0.0.7.tgz#01c1fd362bcd26ce9cf161af3938aa34619f79a7" 12 | dependencies: 13 | oop "0.0.3" 14 | 15 | oop@0.0.3: 16 | version "0.0.3" 17 | resolved "https://registry.yarnpkg.com/oop/-/oop-0.0.3.tgz#70fa405a5650891a194fdc82ca68dad6dabf4401" 18 | -------------------------------------------------------------------------------- /open/node_modules/delayed-stream/.npmignore: -------------------------------------------------------------------------------- 1 | test 2 | -------------------------------------------------------------------------------- /open/node_modules/delayed-stream/License: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011 Debuggable Limited 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /open/node_modules/delayed-stream/Makefile: -------------------------------------------------------------------------------- 1 | SHELL := /bin/bash 2 | 3 | test: 4 | @./test/run.js 5 | 6 | .PHONY: test 7 | 8 | -------------------------------------------------------------------------------- /open/node_modules/delayed-stream/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "_args": [ 3 | [ 4 | "delayed-stream@1.0.0", 5 | "/Users/liushiquan/learn_code/android/CatVodOpen/open" 6 | ] 7 | ], 8 | "_from": "delayed-stream@1.0.0", 9 | "_id": "delayed-stream@1.0.0", 10 | "_inBundle": false, 11 | "_integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", 12 | "_location": "/delayed-stream", 13 | "_phantomChildren": {}, 14 | "_requested": { 15 | "type": "version", 16 | "registry": true, 17 | "raw": "delayed-stream@1.0.0", 18 | "name": "delayed-stream", 19 | "escapedName": "delayed-stream", 20 | "rawSpec": "1.0.0", 21 | "saveSpec": null, 22 | "fetchSpec": "1.0.0" 23 | }, 24 | "_requiredBy": [ 25 | "/combined-stream" 26 | ], 27 | "_resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", 28 | "_spec": "1.0.0", 29 | "_where": "/Users/liushiquan/learn_code/android/CatVodOpen/open", 30 | "author": { 31 | "name": "Felix Geisendörfer", 32 | "email": "felix@debuggable.com", 33 | "url": "http://debuggable.com/" 34 | }, 35 | "bugs": { 36 | "url": "https://github.com/felixge/node-delayed-stream/issues" 37 | }, 38 | "contributors": [ 39 | { 40 | "name": "Mike Atkins", 41 | "email": "apeherder@gmail.com" 42 | } 43 | ], 44 | "dependencies": {}, 45 | "description": "Buffers events from a stream until you are ready to handle them.", 46 | "devDependencies": { 47 | "fake": "0.2.0", 48 | "far": "0.0.1" 49 | }, 50 | "engines": { 51 | "node": ">=0.4.0" 52 | }, 53 | "homepage": "https://github.com/felixge/node-delayed-stream", 54 | "license": "MIT", 55 | "main": "./lib/delayed_stream", 56 | "name": "delayed-stream", 57 | "repository": { 58 | "type": "git", 59 | "url": "git://github.com/felixge/node-delayed-stream.git" 60 | }, 61 | "scripts": { 62 | "test": "make test" 63 | }, 64 | "version": "1.0.0" 65 | } 66 | -------------------------------------------------------------------------------- /open/node_modules/follow-redirects/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2014–present Olivier Lalonde , James Talmage , Ruben Verborgh 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of 4 | this software and associated documentation files (the "Software"), to deal in 5 | the Software without restriction, including without limitation the rights to 6 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 7 | of the Software, and to permit persons to whom the Software is furnished to do 8 | so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 17 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 18 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 19 | -------------------------------------------------------------------------------- /open/node_modules/follow-redirects/debug.js: -------------------------------------------------------------------------------- 1 | var debug; 2 | 3 | module.exports = function () { 4 | if (!debug) { 5 | try { 6 | /* eslint global-require: off */ 7 | debug = require("debug")("follow-redirects"); 8 | } 9 | catch (error) { /* */ } 10 | if (typeof debug !== "function") { 11 | debug = function () { /* */ }; 12 | } 13 | } 14 | debug.apply(null, arguments); 15 | }; 16 | -------------------------------------------------------------------------------- /open/node_modules/follow-redirects/http.js: -------------------------------------------------------------------------------- 1 | module.exports = require("./").http; 2 | -------------------------------------------------------------------------------- /open/node_modules/follow-redirects/https.js: -------------------------------------------------------------------------------- 1 | module.exports = require("./").https; 2 | -------------------------------------------------------------------------------- /open/node_modules/form-data/License: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012 Felix Geisendörfer (felix@debuggable.com) and contributors 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /open/node_modules/form-data/index.d.ts: -------------------------------------------------------------------------------- 1 | // Definitions by: Carlos Ballesteros Velasco 2 | // Leon Yu 3 | // BendingBender 4 | // Maple Miao 5 | 6 | /// 7 | import * as stream from 'stream'; 8 | import * as http from 'http'; 9 | 10 | export = FormData; 11 | 12 | // Extracted because @types/node doesn't export interfaces. 13 | interface ReadableOptions { 14 | highWaterMark?: number; 15 | encoding?: string; 16 | objectMode?: boolean; 17 | read?(this: stream.Readable, size: number): void; 18 | destroy?(this: stream.Readable, error: Error | null, callback: (error: Error | null) => void): void; 19 | autoDestroy?: boolean; 20 | } 21 | 22 | interface Options extends ReadableOptions { 23 | writable?: boolean; 24 | readable?: boolean; 25 | dataSize?: number; 26 | maxDataSize?: number; 27 | pauseStreams?: boolean; 28 | } 29 | 30 | declare class FormData extends stream.Readable { 31 | constructor(options?: Options); 32 | append(key: string, value: any, options?: FormData.AppendOptions | string): void; 33 | getHeaders(userHeaders?: FormData.Headers): FormData.Headers; 34 | submit( 35 | params: string | FormData.SubmitOptions, 36 | callback?: (error: Error | null, response: http.IncomingMessage) => void 37 | ): http.ClientRequest; 38 | getBuffer(): Buffer; 39 | setBoundary(boundary: string): void; 40 | getBoundary(): string; 41 | getLength(callback: (err: Error | null, length: number) => void): void; 42 | getLengthSync(): number; 43 | hasKnownLength(): boolean; 44 | } 45 | 46 | declare namespace FormData { 47 | interface Headers { 48 | [key: string]: any; 49 | } 50 | 51 | interface AppendOptions { 52 | header?: string | Headers; 53 | knownLength?: number; 54 | filename?: string; 55 | filepath?: string; 56 | contentType?: string; 57 | } 58 | 59 | interface SubmitOptions extends http.RequestOptions { 60 | protocol?: 'https:' | 'http:'; 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /open/node_modules/form-data/lib/browser.js: -------------------------------------------------------------------------------- 1 | /* eslint-env browser */ 2 | module.exports = typeof self == 'object' ? self.FormData : window.FormData; 3 | -------------------------------------------------------------------------------- /open/node_modules/form-data/lib/populate.js: -------------------------------------------------------------------------------- 1 | // populates missing values 2 | module.exports = function(dst, src) { 3 | 4 | Object.keys(src).forEach(function(prop) 5 | { 6 | dst[prop] = dst[prop] || src[prop]; 7 | }); 8 | 9 | return dst; 10 | }; 11 | -------------------------------------------------------------------------------- /open/node_modules/function-bind/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = tab 5 | indent_size = 4 6 | end_of_line = lf 7 | charset = utf-8 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true 10 | max_line_length = 120 11 | 12 | [CHANGELOG.md] 13 | indent_style = space 14 | indent_size = 2 15 | 16 | [*.json] 17 | max_line_length = off 18 | 19 | [Makefile] 20 | max_line_length = off 21 | -------------------------------------------------------------------------------- /open/node_modules/function-bind/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "func-name-matching": 0, 8 | "indent": [2, 4], 9 | "max-nested-callbacks": [2, 3], 10 | "max-params": [2, 3], 11 | "max-statements": [2, 20], 12 | "no-new-func": [1], 13 | "strict": [0] 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /open/node_modules/function-bind/.npmignore: -------------------------------------------------------------------------------- 1 | # gitignore 2 | .DS_Store 3 | .monitor 4 | .*.swp 5 | .nodemonignore 6 | releases 7 | *.log 8 | *.err 9 | fleet.json 10 | public/browserify 11 | bin/*.json 12 | .bin 13 | build 14 | compile 15 | .lock-wscript 16 | coverage 17 | node_modules 18 | 19 | # Only apps should have lockfiles 20 | npm-shrinkwrap.json 21 | package-lock.json 22 | yarn.lock 23 | -------------------------------------------------------------------------------- /open/node_modules/function-bind/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013 Raynos. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | 21 | -------------------------------------------------------------------------------- /open/node_modules/function-bind/README.md: -------------------------------------------------------------------------------- 1 | # function-bind 2 | 3 | 11 | 12 | 13 | 14 | Implementation of function.prototype.bind 15 | 16 | ## Example 17 | 18 | I mainly do this for unit tests I run on phantomjs. 19 | PhantomJS does not have Function.prototype.bind :( 20 | 21 | ```js 22 | Function.prototype.bind = require("function-bind") 23 | ``` 24 | 25 | ## Installation 26 | 27 | `npm install function-bind` 28 | 29 | ## Contributors 30 | 31 | - Raynos 32 | 33 | ## MIT Licenced 34 | 35 | [travis-svg]: https://travis-ci.org/Raynos/function-bind.svg 36 | [travis-url]: https://travis-ci.org/Raynos/function-bind 37 | [npm-badge-svg]: https://badge.fury.io/js/function-bind.svg 38 | [npm-url]: https://npmjs.org/package/function-bind 39 | [5]: https://coveralls.io/repos/Raynos/function-bind/badge.png 40 | [6]: https://coveralls.io/r/Raynos/function-bind 41 | [7]: https://gemnasium.com/Raynos/function-bind.png 42 | [8]: https://gemnasium.com/Raynos/function-bind 43 | [deps-svg]: https://david-dm.org/Raynos/function-bind.svg 44 | [deps-url]: https://david-dm.org/Raynos/function-bind 45 | [dev-deps-svg]: https://david-dm.org/Raynos/function-bind/dev-status.svg 46 | [dev-deps-url]: https://david-dm.org/Raynos/function-bind#info=devDependencies 47 | [11]: https://ci.testling.com/Raynos/function-bind.png 48 | [12]: https://ci.testling.com/Raynos/function-bind 49 | -------------------------------------------------------------------------------- /open/node_modules/function-bind/implementation.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /* eslint no-invalid-this: 1 */ 4 | 5 | var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible '; 6 | var slice = Array.prototype.slice; 7 | var toStr = Object.prototype.toString; 8 | var funcType = '[object Function]'; 9 | 10 | module.exports = function bind(that) { 11 | var target = this; 12 | if (typeof target !== 'function' || toStr.call(target) !== funcType) { 13 | throw new TypeError(ERROR_MESSAGE + target); 14 | } 15 | var args = slice.call(arguments, 1); 16 | 17 | var bound; 18 | var binder = function () { 19 | if (this instanceof bound) { 20 | var result = target.apply( 21 | this, 22 | args.concat(slice.call(arguments)) 23 | ); 24 | if (Object(result) === result) { 25 | return result; 26 | } 27 | return this; 28 | } else { 29 | return target.apply( 30 | that, 31 | args.concat(slice.call(arguments)) 32 | ); 33 | } 34 | }; 35 | 36 | var boundLength = Math.max(0, target.length - args.length); 37 | var boundArgs = []; 38 | for (var i = 0; i < boundLength; i++) { 39 | boundArgs.push('$' + i); 40 | } 41 | 42 | bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder); 43 | 44 | if (target.prototype) { 45 | var Empty = function Empty() {}; 46 | Empty.prototype = target.prototype; 47 | bound.prototype = new Empty(); 48 | Empty.prototype = null; 49 | } 50 | 51 | return bound; 52 | }; 53 | -------------------------------------------------------------------------------- /open/node_modules/function-bind/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var implementation = require('./implementation'); 4 | 5 | module.exports = Function.prototype.bind || implementation; 6 | -------------------------------------------------------------------------------- /open/node_modules/function-bind/test/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "array-bracket-newline": 0, 4 | "array-element-newline": 0, 5 | "max-statements-per-line": [2, { "max": 2 }], 6 | "no-invalid-this": 0, 7 | "no-magic-numbers": 0, 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /open/node_modules/get-intrinsic/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "env": { 7 | "es6": true, 8 | "es2017": true, 9 | "es2020": true, 10 | "es2021": true, 11 | "es2022": true, 12 | }, 13 | 14 | "rules": { 15 | "array-bracket-newline": 0, 16 | "complexity": 0, 17 | "eqeqeq": [2, "allow-null"], 18 | "func-name-matching": 0, 19 | "id-length": 0, 20 | "max-lines": 0, 21 | "max-lines-per-function": [2, 90], 22 | "max-params": [2, 4], 23 | "max-statements": 0, 24 | "max-statements-per-line": [2, { "max": 2 }], 25 | "multiline-comment-style": 0, 26 | "no-magic-numbers": 0, 27 | "sort-keys": 0, 28 | }, 29 | 30 | "overrides": [ 31 | { 32 | "files": "test/**", 33 | "rules": { 34 | "new-cap": 0, 35 | }, 36 | }, 37 | ], 38 | } 39 | -------------------------------------------------------------------------------- /open/node_modules/get-intrinsic/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/get-intrinsic 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /open/node_modules/get-intrinsic/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "exclude": [ 6 | "coverage", 7 | "test" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /open/node_modules/get-intrinsic/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Jordan Harband 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /open/node_modules/has-proto/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | } 6 | -------------------------------------------------------------------------------- /open/node_modules/has-proto/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/has-proto 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /open/node_modules/has-proto/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | All notable changes to this project will be documented in this file. 4 | 5 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) 6 | and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). 7 | 8 | ## [v1.0.1](https://github.com/inspect-js/has-proto/compare/v1.0.0...v1.0.1) - 2022-12-21 9 | 10 | ### Commits 11 | 12 | - [meta] correct URLs and description [`ef34483`](https://github.com/inspect-js/has-proto/commit/ef34483ca0d35680f271b6b96e35526151b25dfc) 13 | - [patch] add an additional criteria [`e81959e`](https://github.com/inspect-js/has-proto/commit/e81959ed7c7a77fbf459f00cb4ef824f1099497f) 14 | - [Dev Deps] update `aud` [`2bec2c4`](https://github.com/inspect-js/has-proto/commit/2bec2c47b072b122ff5443fba0263f6dc649531f) 15 | 16 | ## v1.0.0 - 2022-12-12 17 | 18 | ### Commits 19 | 20 | - Initial implementation, tests, readme [`6886fea`](https://github.com/inspect-js/has-proto/commit/6886fea578f67daf69a7920b2eb7637ea6ebb0bc) 21 | - Initial commit [`99129c8`](https://github.com/inspect-js/has-proto/commit/99129c8f42471ac89cb681ba9cb9d52a583eb94f) 22 | - npm init [`2844ad8`](https://github.com/inspect-js/has-proto/commit/2844ad8e75b84d66a46765b3bab9d2e8ea692e10) 23 | - Only apps should have lockfiles [`c65bc5e`](https://github.com/inspect-js/has-proto/commit/c65bc5e40b9004463f7336d47c67245fb139a36a) 24 | -------------------------------------------------------------------------------- /open/node_modules/has-proto/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Inspect JS 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /open/node_modules/has-proto/README.md: -------------------------------------------------------------------------------- 1 | # has-proto [![Version Badge][npm-version-svg]][package-url] 2 | 3 | [![github actions][actions-image]][actions-url] 4 | [![coverage][codecov-image]][codecov-url] 5 | [![License][license-image]][license-url] 6 | [![Downloads][downloads-image]][downloads-url] 7 | 8 | [![npm badge][npm-badge-png]][package-url] 9 | 10 | Does this environment have the ability to set the [[Prototype]] of an object on creation with `__proto__`? 11 | 12 | ## Example 13 | 14 | ```js 15 | var hasProto = require('has-proto'); 16 | var assert = require('assert'); 17 | 18 | assert.equal(typeof hasProto(), 'boolean'); 19 | ``` 20 | 21 | ## Tests 22 | Simply clone the repo, `npm install`, and run `npm test` 23 | 24 | [package-url]: https://npmjs.org/package/has-proto 25 | [npm-version-svg]: https://versionbadg.es/inspect-js/has-proto.svg 26 | [deps-svg]: https://david-dm.org/inspect-js/has-proto.svg 27 | [deps-url]: https://david-dm.org/inspect-js/has-proto 28 | [dev-deps-svg]: https://david-dm.org/inspect-js/has-proto/dev-status.svg 29 | [dev-deps-url]: https://david-dm.org/inspect-js/has-proto#info=devDependencies 30 | [npm-badge-png]: https://nodei.co/npm/has-proto.png?downloads=true&stars=true 31 | [license-image]: https://img.shields.io/npm/l/has-proto.svg 32 | [license-url]: LICENSE 33 | [downloads-image]: https://img.shields.io/npm/dm/has-proto.svg 34 | [downloads-url]: https://npm-stat.com/charts.html?package=has-proto 35 | [codecov-image]: https://codecov.io/gh/inspect-js/has-proto/branch/main/graphs/badge.svg 36 | [codecov-url]: https://app.codecov.io/gh/inspect-js/has-proto/ 37 | [actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/has-proto 38 | [actions-url]: https://github.com/inspect-js/has-proto/actions 39 | -------------------------------------------------------------------------------- /open/node_modules/has-proto/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var test = { 4 | foo: {} 5 | }; 6 | 7 | var $Object = Object; 8 | 9 | module.exports = function hasProto() { 10 | return { __proto__: test }.foo === test.foo && !({ __proto__: null } instanceof $Object); 11 | }; 12 | -------------------------------------------------------------------------------- /open/node_modules/has-proto/test/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var test = require('tape'); 4 | var hasProto = require('../'); 5 | 6 | test('hasProto', function (t) { 7 | var result = hasProto(); 8 | t.equal(typeof result, 'boolean', 'returns a boolean (' + result + ')'); 9 | 10 | var obj = { __proto__: null }; 11 | if (result) { 12 | t.notOk('toString' in obj, 'null object lacks toString'); 13 | } else { 14 | t.ok('toString' in obj, 'without proto, null object has toString'); 15 | t.equal(obj.__proto__, null); // eslint-disable-line no-proto 16 | } 17 | 18 | t.end(); 19 | }); 20 | -------------------------------------------------------------------------------- /open/node_modules/has-symbols/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "max-statements-per-line": [2, { "max": 2 }], 8 | "no-magic-numbers": 0, 9 | "multiline-comment-style": 0, 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /open/node_modules/has-symbols/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/has-symbols 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /open/node_modules/has-symbols/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "exclude": [ 6 | "coverage", 7 | "test" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /open/node_modules/has-symbols/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Jordan Harband 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /open/node_modules/has-symbols/README.md: -------------------------------------------------------------------------------- 1 | # has-symbols [![Version Badge][2]][1] 2 | 3 | [![github actions][actions-image]][actions-url] 4 | [![coverage][codecov-image]][codecov-url] 5 | [![dependency status][5]][6] 6 | [![dev dependency status][7]][8] 7 | [![License][license-image]][license-url] 8 | [![Downloads][downloads-image]][downloads-url] 9 | 10 | [![npm badge][11]][1] 11 | 12 | Determine if the JS environment has Symbol support. Supports spec, or shams. 13 | 14 | ## Example 15 | 16 | ```js 17 | var hasSymbols = require('has-symbols'); 18 | 19 | hasSymbols() === true; // if the environment has native Symbol support. Not polyfillable, not forgeable. 20 | 21 | var hasSymbolsKinda = require('has-symbols/shams'); 22 | hasSymbolsKinda() === true; // if the environment has a Symbol sham that mostly follows the spec. 23 | ``` 24 | 25 | ## Supported Symbol shams 26 | - get-own-property-symbols [npm](https://www.npmjs.com/package/get-own-property-symbols) | [github](https://github.com/WebReflection/get-own-property-symbols) 27 | - core-js [npm](https://www.npmjs.com/package/core-js) | [github](https://github.com/zloirock/core-js) 28 | 29 | ## Tests 30 | Simply clone the repo, `npm install`, and run `npm test` 31 | 32 | [1]: https://npmjs.org/package/has-symbols 33 | [2]: https://versionbadg.es/inspect-js/has-symbols.svg 34 | [5]: https://david-dm.org/inspect-js/has-symbols.svg 35 | [6]: https://david-dm.org/inspect-js/has-symbols 36 | [7]: https://david-dm.org/inspect-js/has-symbols/dev-status.svg 37 | [8]: https://david-dm.org/inspect-js/has-symbols#info=devDependencies 38 | [11]: https://nodei.co/npm/has-symbols.png?downloads=true&stars=true 39 | [license-image]: https://img.shields.io/npm/l/has-symbols.svg 40 | [license-url]: LICENSE 41 | [downloads-image]: https://img.shields.io/npm/dm/has-symbols.svg 42 | [downloads-url]: https://npm-stat.com/charts.html?package=has-symbols 43 | [codecov-image]: https://codecov.io/gh/inspect-js/has-symbols/branch/main/graphs/badge.svg 44 | [codecov-url]: https://app.codecov.io/gh/inspect-js/has-symbols/ 45 | [actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/has-symbols 46 | [actions-url]: https://github.com/inspect-js/has-symbols/actions 47 | -------------------------------------------------------------------------------- /open/node_modules/has-symbols/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var origSymbol = typeof Symbol !== 'undefined' && Symbol; 4 | var hasSymbolSham = require('./shams'); 5 | 6 | module.exports = function hasNativeSymbols() { 7 | if (typeof origSymbol !== 'function') { return false; } 8 | if (typeof Symbol !== 'function') { return false; } 9 | if (typeof origSymbol('foo') !== 'symbol') { return false; } 10 | if (typeof Symbol('bar') !== 'symbol') { return false; } 11 | 12 | return hasSymbolSham(); 13 | }; 14 | -------------------------------------------------------------------------------- /open/node_modules/has-symbols/shams.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /* eslint complexity: [2, 18], max-statements: [2, 33] */ 4 | module.exports = function hasSymbols() { 5 | if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; } 6 | if (typeof Symbol.iterator === 'symbol') { return true; } 7 | 8 | var obj = {}; 9 | var sym = Symbol('test'); 10 | var symObj = Object(sym); 11 | if (typeof sym === 'string') { return false; } 12 | 13 | if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; } 14 | if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; } 15 | 16 | // temp disabled per https://github.com/ljharb/object.assign/issues/17 17 | // if (sym instanceof Symbol) { return false; } 18 | // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4 19 | // if (!(symObj instanceof Symbol)) { return false; } 20 | 21 | // if (typeof Symbol.prototype.toString !== 'function') { return false; } 22 | // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; } 23 | 24 | var symVal = 42; 25 | obj[sym] = symVal; 26 | for (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop 27 | if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; } 28 | 29 | if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; } 30 | 31 | var syms = Object.getOwnPropertySymbols(obj); 32 | if (syms.length !== 1 || syms[0] !== sym) { return false; } 33 | 34 | if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; } 35 | 36 | if (typeof Object.getOwnPropertyDescriptor === 'function') { 37 | var descriptor = Object.getOwnPropertyDescriptor(obj, sym); 38 | if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; } 39 | } 40 | 41 | return true; 42 | }; 43 | -------------------------------------------------------------------------------- /open/node_modules/has-symbols/test/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var test = require('tape'); 4 | var hasSymbols = require('../'); 5 | var runSymbolTests = require('./tests'); 6 | 7 | test('interface', function (t) { 8 | t.equal(typeof hasSymbols, 'function', 'is a function'); 9 | t.equal(typeof hasSymbols(), 'boolean', 'returns a boolean'); 10 | t.end(); 11 | }); 12 | 13 | test('Symbols are supported', { skip: !hasSymbols() }, function (t) { 14 | runSymbolTests(t); 15 | t.end(); 16 | }); 17 | 18 | test('Symbols are not supported', { skip: hasSymbols() }, function (t) { 19 | t.equal(typeof Symbol, 'undefined', 'global Symbol is undefined'); 20 | t.equal(typeof Object.getOwnPropertySymbols, 'undefined', 'Object.getOwnPropertySymbols does not exist'); 21 | t.end(); 22 | }); 23 | -------------------------------------------------------------------------------- /open/node_modules/has-symbols/test/shams/core-js.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var test = require('tape'); 4 | 5 | if (typeof Symbol === 'function' && typeof Symbol() === 'symbol') { 6 | test('has native Symbol support', function (t) { 7 | t.equal(typeof Symbol, 'function'); 8 | t.equal(typeof Symbol(), 'symbol'); 9 | t.end(); 10 | }); 11 | return; 12 | } 13 | 14 | var hasSymbols = require('../../shams'); 15 | 16 | test('polyfilled Symbols', function (t) { 17 | /* eslint-disable global-require */ 18 | t.equal(hasSymbols(), false, 'hasSymbols is false before polyfilling'); 19 | require('core-js/fn/symbol'); 20 | require('core-js/fn/symbol/to-string-tag'); 21 | 22 | require('../tests')(t); 23 | 24 | var hasSymbolsAfter = hasSymbols(); 25 | t.equal(hasSymbolsAfter, true, 'hasSymbols is true after polyfilling'); 26 | /* eslint-enable global-require */ 27 | t.end(); 28 | }); 29 | -------------------------------------------------------------------------------- /open/node_modules/has-symbols/test/shams/get-own-property-symbols.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var test = require('tape'); 4 | 5 | if (typeof Symbol === 'function' && typeof Symbol() === 'symbol') { 6 | test('has native Symbol support', function (t) { 7 | t.equal(typeof Symbol, 'function'); 8 | t.equal(typeof Symbol(), 'symbol'); 9 | t.end(); 10 | }); 11 | return; 12 | } 13 | 14 | var hasSymbols = require('../../shams'); 15 | 16 | test('polyfilled Symbols', function (t) { 17 | /* eslint-disable global-require */ 18 | t.equal(hasSymbols(), false, 'hasSymbols is false before polyfilling'); 19 | 20 | require('get-own-property-symbols'); 21 | 22 | require('../tests')(t); 23 | 24 | var hasSymbolsAfter = hasSymbols(); 25 | t.equal(hasSymbolsAfter, true, 'hasSymbols is true after polyfilling'); 26 | /* eslint-enable global-require */ 27 | t.end(); 28 | }); 29 | -------------------------------------------------------------------------------- /open/node_modules/has-symbols/test/tests.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | // eslint-disable-next-line consistent-return 4 | module.exports = function runSymbolTests(t) { 5 | t.equal(typeof Symbol, 'function', 'global Symbol is a function'); 6 | 7 | if (typeof Symbol !== 'function') { return false; } 8 | 9 | t.notEqual(Symbol(), Symbol(), 'two symbols are not equal'); 10 | 11 | /* 12 | t.equal( 13 | Symbol.prototype.toString.call(Symbol('foo')), 14 | Symbol.prototype.toString.call(Symbol('foo')), 15 | 'two symbols with the same description stringify the same' 16 | ); 17 | */ 18 | 19 | /* 20 | var foo = Symbol('foo'); 21 | 22 | t.notEqual( 23 | String(foo), 24 | String(Symbol('bar')), 25 | 'two symbols with different descriptions do not stringify the same' 26 | ); 27 | */ 28 | 29 | t.equal(typeof Symbol.prototype.toString, 'function', 'Symbol#toString is a function'); 30 | // t.equal(String(foo), Symbol.prototype.toString.call(foo), 'Symbol#toString equals String of the same symbol'); 31 | 32 | t.equal(typeof Object.getOwnPropertySymbols, 'function', 'Object.getOwnPropertySymbols is a function'); 33 | 34 | var obj = {}; 35 | var sym = Symbol('test'); 36 | var symObj = Object(sym); 37 | t.notEqual(typeof sym, 'string', 'Symbol is not a string'); 38 | t.equal(Object.prototype.toString.call(sym), '[object Symbol]', 'symbol primitive Object#toStrings properly'); 39 | t.equal(Object.prototype.toString.call(symObj), '[object Symbol]', 'symbol primitive Object#toStrings properly'); 40 | 41 | var symVal = 42; 42 | obj[sym] = symVal; 43 | // eslint-disable-next-line no-restricted-syntax 44 | for (sym in obj) { t.fail('symbol property key was found in for..in of object'); } 45 | 46 | t.deepEqual(Object.keys(obj), [], 'no enumerable own keys on symbol-valued object'); 47 | t.deepEqual(Object.getOwnPropertyNames(obj), [], 'no own names on symbol-valued object'); 48 | t.deepEqual(Object.getOwnPropertySymbols(obj), [sym], 'one own symbol on symbol-valued object'); 49 | t.equal(Object.prototype.propertyIsEnumerable.call(obj, sym), true, 'symbol is enumerable'); 50 | t.deepEqual(Object.getOwnPropertyDescriptor(obj, sym), { 51 | configurable: true, 52 | enumerable: true, 53 | value: 42, 54 | writable: true 55 | }, 'property descriptor is correct'); 56 | }; 57 | -------------------------------------------------------------------------------- /open/node_modules/has/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013 Thiago de Arruda 2 | 3 | Permission is hereby granted, free of charge, to any person 4 | obtaining a copy of this software and associated documentation 5 | files (the "Software"), to deal in the Software without 6 | restriction, including without limitation the rights to use, 7 | copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the 9 | Software is furnished to do so, subject to the following 10 | conditions: 11 | 12 | The above copyright notice and this permission notice shall be 13 | included in all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 17 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 19 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 20 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /open/node_modules/has/README.md: -------------------------------------------------------------------------------- 1 | # has 2 | 3 | > Object.prototype.hasOwnProperty.call shortcut 4 | 5 | ## Installation 6 | 7 | ```sh 8 | npm install --save has 9 | ``` 10 | 11 | ## Usage 12 | 13 | ```js 14 | var has = require('has'); 15 | 16 | has({}, 'hasOwnProperty'); // false 17 | has(Object.prototype, 'hasOwnProperty'); // true 18 | ``` 19 | -------------------------------------------------------------------------------- /open/node_modules/has/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "_args": [ 3 | [ 4 | "has@1.0.3", 5 | "/Users/liushiquan/learn_code/android/CatVodOpen/open" 6 | ] 7 | ], 8 | "_from": "has@1.0.3", 9 | "_id": "has@1.0.3", 10 | "_inBundle": false, 11 | "_integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 12 | "_location": "/has", 13 | "_phantomChildren": {}, 14 | "_requested": { 15 | "type": "version", 16 | "registry": true, 17 | "raw": "has@1.0.3", 18 | "name": "has", 19 | "escapedName": "has", 20 | "rawSpec": "1.0.3", 21 | "saveSpec": null, 22 | "fetchSpec": "1.0.3" 23 | }, 24 | "_requiredBy": [ 25 | "/get-intrinsic" 26 | ], 27 | "_resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz", 28 | "_spec": "1.0.3", 29 | "_where": "/Users/liushiquan/learn_code/android/CatVodOpen/open", 30 | "author": { 31 | "name": "Thiago de Arruda", 32 | "email": "tpadilha84@gmail.com" 33 | }, 34 | "bugs": { 35 | "url": "https://github.com/tarruda/has/issues" 36 | }, 37 | "contributors": [ 38 | { 39 | "name": "Jordan Harband", 40 | "email": "ljharb@gmail.com", 41 | "url": "http://ljharb.codes" 42 | } 43 | ], 44 | "dependencies": { 45 | "function-bind": "^1.1.1" 46 | }, 47 | "description": "Object.prototype.hasOwnProperty.call shortcut", 48 | "devDependencies": { 49 | "@ljharb/eslint-config": "^12.2.1", 50 | "eslint": "^4.19.1", 51 | "tape": "^4.9.0" 52 | }, 53 | "engines": { 54 | "node": ">= 0.4.0" 55 | }, 56 | "homepage": "https://github.com/tarruda/has", 57 | "license": "MIT", 58 | "licenses": [ 59 | { 60 | "type": "MIT", 61 | "url": "https://github.com/tarruda/has/blob/master/LICENSE-MIT" 62 | } 63 | ], 64 | "main": "./src", 65 | "name": "has", 66 | "repository": { 67 | "type": "git", 68 | "url": "git://github.com/tarruda/has.git" 69 | }, 70 | "scripts": { 71 | "lint": "eslint .", 72 | "pretest": "npm run lint", 73 | "test": "tape test" 74 | }, 75 | "version": "1.0.3" 76 | } 77 | -------------------------------------------------------------------------------- /open/node_modules/has/src/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var bind = require('function-bind'); 4 | 5 | module.exports = bind.call(Function.call, Object.prototype.hasOwnProperty); 6 | -------------------------------------------------------------------------------- /open/node_modules/has/test/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var test = require('tape'); 4 | var has = require('../'); 5 | 6 | test('has', function (t) { 7 | t.equal(has({}, 'hasOwnProperty'), false, 'object literal does not have own property "hasOwnProperty"'); 8 | t.equal(has(Object.prototype, 'hasOwnProperty'), true, 'Object.prototype has own property "hasOwnProperty"'); 9 | t.end(); 10 | }); 11 | -------------------------------------------------------------------------------- /open/node_modules/mime-db/LICENSE: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2014 Jonathan Ong 4 | Copyright (c) 2015-2022 Douglas Christopher Wilson 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining 7 | a copy of this software and associated documentation files (the 8 | 'Software'), to deal in the Software without restriction, including 9 | without limitation the rights to use, copy, modify, merge, publish, 10 | distribute, sublicense, and/or sell copies of the Software, and to 11 | permit persons to whom the Software is furnished to do so, subject to 12 | the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be 15 | included in all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 18 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 19 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 21 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 22 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 23 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 24 | -------------------------------------------------------------------------------- /open/node_modules/mime-db/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * mime-db 3 | * Copyright(c) 2014 Jonathan Ong 4 | * Copyright(c) 2015-2022 Douglas Christopher Wilson 5 | * MIT Licensed 6 | */ 7 | 8 | /** 9 | * Module exports. 10 | */ 11 | 12 | module.exports = require('./db.json') 13 | -------------------------------------------------------------------------------- /open/node_modules/mime-types/LICENSE: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2014 Jonathan Ong 4 | Copyright (c) 2015 Douglas Christopher Wilson 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining 7 | a copy of this software and associated documentation files (the 8 | 'Software'), to deal in the Software without restriction, including 9 | without limitation the rights to use, copy, modify, merge, publish, 10 | distribute, sublicense, and/or sell copies of the Software, and to 11 | permit persons to whom the Software is furnished to do so, subject to 12 | the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be 15 | included in all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 18 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 19 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 21 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 22 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 23 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 24 | -------------------------------------------------------------------------------- /open/node_modules/object-inspect/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "extends": "@ljharb", 4 | "rules": { 5 | "complexity": 0, 6 | "func-style": [2, "declaration"], 7 | "indent": [2, 4], 8 | "max-lines": 1, 9 | "max-lines-per-function": 1, 10 | "max-params": [2, 4], 11 | "max-statements": 0, 12 | "max-statements-per-line": [2, { "max": 2 }], 13 | "no-magic-numbers": 0, 14 | "no-param-reassign": 1, 15 | "strict": 0, // TODO 16 | }, 17 | "overrides": [ 18 | { 19 | "files": ["test/**", "test-*", "example/**"], 20 | "extends": "@ljharb/eslint-config/tests", 21 | "rules": { 22 | "id-length": 0, 23 | }, 24 | }, 25 | { 26 | "files": ["example/**"], 27 | "rules": { 28 | "no-console": 0, 29 | }, 30 | }, 31 | { 32 | "files": ["test/browser/**"], 33 | "env": { 34 | "browser": true, 35 | }, 36 | }, 37 | { 38 | "files": ["test/bigint*"], 39 | "rules": { 40 | "new-cap": [2, { "capIsNewExceptions": ["BigInt"] }], 41 | }, 42 | }, 43 | { 44 | "files": "index.js", 45 | "globals": { 46 | "HTMLElement": false, 47 | }, 48 | "rules": { 49 | "no-use-before-define": 1, 50 | }, 51 | }, 52 | ], 53 | } 54 | -------------------------------------------------------------------------------- /open/node_modules/object-inspect/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/object-inspect 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /open/node_modules/object-inspect/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "instrumentation": false, 5 | "sourceMap": false, 6 | "reporter": ["text-summary", "text", "html", "json"], 7 | "exclude": [ 8 | "coverage", 9 | "example", 10 | "test", 11 | "test-core-js.js" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /open/node_modules/object-inspect/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2013 James Halliday 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /open/node_modules/object-inspect/example/all.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var inspect = require('../'); 4 | var Buffer = require('safer-buffer').Buffer; 5 | 6 | var holes = ['a', 'b']; 7 | holes[4] = 'e'; 8 | holes[6] = 'g'; 9 | 10 | var obj = { 11 | a: 1, 12 | b: [3, 4, undefined, null], 13 | c: undefined, 14 | d: null, 15 | e: { 16 | regex: /^x/i, 17 | buf: Buffer.from('abc'), 18 | holes: holes 19 | }, 20 | now: new Date() 21 | }; 22 | obj.self = obj; 23 | console.log(inspect(obj)); 24 | -------------------------------------------------------------------------------- /open/node_modules/object-inspect/example/circular.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var inspect = require('../'); 4 | var obj = { a: 1, b: [3, 4] }; 5 | obj.c = obj; 6 | console.log(inspect(obj)); 7 | -------------------------------------------------------------------------------- /open/node_modules/object-inspect/example/fn.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var inspect = require('../'); 4 | var obj = [1, 2, function f(n) { return n + 5; }, 4]; 5 | console.log(inspect(obj)); 6 | -------------------------------------------------------------------------------- /open/node_modules/object-inspect/example/inspect.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /* eslint-env browser */ 4 | var inspect = require('../'); 5 | 6 | var d = document.createElement('div'); 7 | d.setAttribute('id', 'beep'); 8 | d.innerHTML = 'woooiiiii'; 9 | 10 | console.log(inspect([d, { a: 3, b: 4, c: [5, 6, [7, [8, [9]]]] }])); 11 | -------------------------------------------------------------------------------- /open/node_modules/object-inspect/package-support.json: -------------------------------------------------------------------------------- 1 | { 2 | "versions": [ 3 | { 4 | "version": "*", 5 | "target": { 6 | "node": "all" 7 | }, 8 | "response": { 9 | "type": "time-permitting" 10 | }, 11 | "backing": { 12 | "npm-funding": true, 13 | "donations": [ 14 | "https://github.com/ljharb", 15 | "https://tidelift.com/funding/github/npm/object-inspect" 16 | ] 17 | } 18 | } 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /open/node_modules/object-inspect/test-core-js.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | require('core-js'); 4 | 5 | var inspect = require('./'); 6 | var test = require('tape'); 7 | 8 | test('Maps', function (t) { 9 | t.equal(inspect(new Map([[1, 2]])), 'Map (1) {1 => 2}'); 10 | t.end(); 11 | }); 12 | 13 | test('WeakMaps', function (t) { 14 | t.equal(inspect(new WeakMap([[{}, 2]])), 'WeakMap { ? }'); 15 | t.end(); 16 | }); 17 | 18 | test('Sets', function (t) { 19 | t.equal(inspect(new Set([[1, 2]])), 'Set (1) {[ 1, 2 ]}'); 20 | t.end(); 21 | }); 22 | 23 | test('WeakSets', function (t) { 24 | t.equal(inspect(new WeakSet([[1, 2]])), 'WeakSet { ? }'); 25 | t.end(); 26 | }); 27 | -------------------------------------------------------------------------------- /open/node_modules/object-inspect/test/bigint.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var inspect = require('../'); 4 | var test = require('tape'); 5 | var hasToStringTag = require('has-tostringtag/shams')(); 6 | 7 | test('bigint', { skip: typeof BigInt === 'undefined' }, function (t) { 8 | t.test('primitives', function (st) { 9 | st.plan(3); 10 | 11 | st.equal(inspect(BigInt(-256)), '-256n'); 12 | st.equal(inspect(BigInt(0)), '0n'); 13 | st.equal(inspect(BigInt(256)), '256n'); 14 | }); 15 | 16 | t.test('objects', function (st) { 17 | st.plan(3); 18 | 19 | st.equal(inspect(Object(BigInt(-256))), 'Object(-256n)'); 20 | st.equal(inspect(Object(BigInt(0))), 'Object(0n)'); 21 | st.equal(inspect(Object(BigInt(256))), 'Object(256n)'); 22 | }); 23 | 24 | t.test('syntactic primitives', function (st) { 25 | st.plan(3); 26 | 27 | /* eslint-disable no-new-func */ 28 | st.equal(inspect(Function('return -256n')()), '-256n'); 29 | st.equal(inspect(Function('return 0n')()), '0n'); 30 | st.equal(inspect(Function('return 256n')()), '256n'); 31 | }); 32 | 33 | t.test('toStringTag', { skip: !hasToStringTag }, function (st) { 34 | st.plan(1); 35 | 36 | var faker = {}; 37 | faker[Symbol.toStringTag] = 'BigInt'; 38 | st.equal( 39 | inspect(faker), 40 | '{ [Symbol(Symbol.toStringTag)]: \'BigInt\' }', 41 | 'object lying about being a BigInt inspects as an object' 42 | ); 43 | }); 44 | 45 | t.test('numericSeparator', function (st) { 46 | st.equal(inspect(BigInt(0), { numericSeparator: false }), '0n', '0n, numericSeparator false'); 47 | st.equal(inspect(BigInt(0), { numericSeparator: true }), '0n', '0n, numericSeparator true'); 48 | 49 | st.equal(inspect(BigInt(1234), { numericSeparator: false }), '1234n', '1234n, numericSeparator false'); 50 | st.equal(inspect(BigInt(1234), { numericSeparator: true }), '1_234n', '1234n, numericSeparator true'); 51 | st.equal(inspect(BigInt(-1234), { numericSeparator: false }), '-1234n', '1234n, numericSeparator false'); 52 | st.equal(inspect(BigInt(-1234), { numericSeparator: true }), '-1_234n', '1234n, numericSeparator true'); 53 | 54 | st.end(); 55 | }); 56 | 57 | t.end(); 58 | }); 59 | -------------------------------------------------------------------------------- /open/node_modules/object-inspect/test/browser/dom.js: -------------------------------------------------------------------------------- 1 | var inspect = require('../../'); 2 | var test = require('tape'); 3 | 4 | test('dom element', function (t) { 5 | t.plan(1); 6 | 7 | var d = document.createElement('div'); 8 | d.setAttribute('id', 'beep'); 9 | d.innerHTML = 'woooiiiii'; 10 | 11 | t.equal( 12 | inspect([d, { a: 3, b: 4, c: [5, 6, [7, [8, [9]]]] }]), 13 | '[
...
, { a: 3, b: 4, c: [ 5, 6, [ 7, [ 8, [Object] ] ] ] } ]' 14 | ); 15 | }); 16 | -------------------------------------------------------------------------------- /open/node_modules/object-inspect/test/circular.js: -------------------------------------------------------------------------------- 1 | var inspect = require('../'); 2 | var test = require('tape'); 3 | 4 | test('circular', function (t) { 5 | t.plan(2); 6 | var obj = { a: 1, b: [3, 4] }; 7 | obj.c = obj; 8 | t.equal(inspect(obj), '{ a: 1, b: [ 3, 4 ], c: [Circular] }'); 9 | 10 | var double = {}; 11 | double.a = [double]; 12 | double.b = {}; 13 | double.b.inner = double.b; 14 | double.b.obj = double; 15 | t.equal(inspect(double), '{ a: [ [Circular] ], b: { inner: [Circular], obj: [Circular] } }'); 16 | }); 17 | -------------------------------------------------------------------------------- /open/node_modules/object-inspect/test/deep.js: -------------------------------------------------------------------------------- 1 | var inspect = require('../'); 2 | var test = require('tape'); 3 | 4 | test('deep', function (t) { 5 | t.plan(4); 6 | var obj = [[[[[[500]]]]]]; 7 | t.equal(inspect(obj), '[ [ [ [ [ [Array] ] ] ] ] ]'); 8 | t.equal(inspect(obj, { depth: 4 }), '[ [ [ [ [Array] ] ] ] ]'); 9 | t.equal(inspect(obj, { depth: 2 }), '[ [ [Array] ] ]'); 10 | 11 | t.equal(inspect([[[{ a: 1 }]]], { depth: 3 }), '[ [ [ [Object] ] ] ]'); 12 | }); 13 | -------------------------------------------------------------------------------- /open/node_modules/object-inspect/test/element.js: -------------------------------------------------------------------------------- 1 | var inspect = require('../'); 2 | var test = require('tape'); 3 | 4 | test('element', function (t) { 5 | t.plan(3); 6 | var elem = { 7 | nodeName: 'div', 8 | attributes: [{ name: 'class', value: 'row' }], 9 | getAttribute: function (key) { return key; }, 10 | childNodes: [] 11 | }; 12 | var obj = [1, elem, 3]; 13 | t.deepEqual(inspect(obj), '[ 1,
, 3 ]'); 14 | t.deepEqual(inspect(obj, { quoteStyle: 'single' }), "[ 1,
, 3 ]"); 15 | t.deepEqual(inspect(obj, { quoteStyle: 'double' }), '[ 1,
, 3 ]'); 16 | }); 17 | 18 | test('element no attr', function (t) { 19 | t.plan(1); 20 | var elem = { 21 | nodeName: 'div', 22 | getAttribute: function (key) { return key; }, 23 | childNodes: [] 24 | }; 25 | var obj = [1, elem, 3]; 26 | t.deepEqual(inspect(obj), '[ 1,
, 3 ]'); 27 | }); 28 | 29 | test('element with contents', function (t) { 30 | t.plan(1); 31 | var elem = { 32 | nodeName: 'div', 33 | getAttribute: function (key) { return key; }, 34 | childNodes: [{ nodeName: 'b' }] 35 | }; 36 | var obj = [1, elem, 3]; 37 | t.deepEqual(inspect(obj), '[ 1,
...
, 3 ]'); 38 | }); 39 | 40 | test('element instance', function (t) { 41 | t.plan(1); 42 | var h = global.HTMLElement; 43 | global.HTMLElement = function (name, attr) { 44 | this.nodeName = name; 45 | this.attributes = attr; 46 | }; 47 | global.HTMLElement.prototype.getAttribute = function () {}; 48 | 49 | var elem = new global.HTMLElement('div', []); 50 | var obj = [1, elem, 3]; 51 | t.deepEqual(inspect(obj), '[ 1,
, 3 ]'); 52 | global.HTMLElement = h; 53 | }); 54 | -------------------------------------------------------------------------------- /open/node_modules/object-inspect/test/err.js: -------------------------------------------------------------------------------- 1 | var test = require('tape'); 2 | var ErrorWithCause = require('error-cause/Error'); 3 | 4 | var inspect = require('../'); 5 | 6 | test('type error', function (t) { 7 | t.plan(1); 8 | var aerr = new TypeError(); 9 | aerr.foo = 555; 10 | aerr.bar = [1, 2, 3]; 11 | 12 | var berr = new TypeError('tuv'); 13 | berr.baz = 555; 14 | 15 | var cerr = new SyntaxError(); 16 | cerr.message = 'whoa'; 17 | cerr['a-b'] = 5; 18 | 19 | var withCause = new ErrorWithCause('foo', { cause: 'bar' }); 20 | var withCausePlus = new ErrorWithCause('foo', { cause: 'bar' }); 21 | withCausePlus.foo = 'bar'; 22 | var withUndefinedCause = new ErrorWithCause('foo', { cause: undefined }); 23 | var withEnumerableCause = new Error('foo'); 24 | withEnumerableCause.cause = 'bar'; 25 | 26 | var obj = [ 27 | new TypeError(), 28 | new TypeError('xxx'), 29 | aerr, 30 | berr, 31 | cerr, 32 | withCause, 33 | withCausePlus, 34 | withUndefinedCause, 35 | withEnumerableCause 36 | ]; 37 | t.equal(inspect(obj), '[ ' + [ 38 | '[TypeError]', 39 | '[TypeError: xxx]', 40 | '{ [TypeError] foo: 555, bar: [ 1, 2, 3 ] }', 41 | '{ [TypeError: tuv] baz: 555 }', 42 | '{ [SyntaxError: whoa] message: \'whoa\', \'a-b\': 5 }', 43 | 'cause' in Error.prototype ? '[Error: foo]' : '{ [Error: foo] [cause]: \'bar\' }', 44 | '{ [Error: foo] ' + ('cause' in Error.prototype ? '' : '[cause]: \'bar\', ') + 'foo: \'bar\' }', 45 | 'cause' in Error.prototype ? '[Error: foo]' : '{ [Error: foo] [cause]: undefined }', 46 | '{ [Error: foo] cause: \'bar\' }' 47 | ].join(', ') + ' ]'); 48 | }); 49 | -------------------------------------------------------------------------------- /open/node_modules/object-inspect/test/fakes.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var inspect = require('../'); 4 | var test = require('tape'); 5 | var hasToStringTag = require('has-tostringtag/shams')(); 6 | var forEach = require('for-each'); 7 | 8 | test('fakes', { skip: !hasToStringTag }, function (t) { 9 | forEach([ 10 | 'Array', 11 | 'Boolean', 12 | 'Date', 13 | 'Error', 14 | 'Number', 15 | 'RegExp', 16 | 'String' 17 | ], function (expected) { 18 | var faker = {}; 19 | faker[Symbol.toStringTag] = expected; 20 | 21 | t.equal( 22 | inspect(faker), 23 | '{ [Symbol(Symbol.toStringTag)]: \'' + expected + '\' }', 24 | 'faker masquerading as ' + expected + ' is not shown as one' 25 | ); 26 | }); 27 | 28 | t.end(); 29 | }); 30 | -------------------------------------------------------------------------------- /open/node_modules/object-inspect/test/fn.js: -------------------------------------------------------------------------------- 1 | var inspect = require('../'); 2 | var test = require('tape'); 3 | var arrow = require('make-arrow-function')(); 4 | var functionsHaveConfigurableNames = require('functions-have-names').functionsHaveConfigurableNames(); 5 | 6 | test('function', function (t) { 7 | t.plan(1); 8 | var obj = [1, 2, function f(n) { return n; }, 4]; 9 | t.equal(inspect(obj), '[ 1, 2, [Function: f], 4 ]'); 10 | }); 11 | 12 | test('function name', function (t) { 13 | t.plan(1); 14 | var f = (function () { 15 | return function () {}; 16 | }()); 17 | f.toString = function toStr() { return 'function xxx () {}'; }; 18 | var obj = [1, 2, f, 4]; 19 | t.equal(inspect(obj), '[ 1, 2, [Function (anonymous)] { toString: [Function: toStr] }, 4 ]'); 20 | }); 21 | 22 | test('anon function', function (t) { 23 | var f = (function () { 24 | return function () {}; 25 | }()); 26 | var obj = [1, 2, f, 4]; 27 | t.equal(inspect(obj), '[ 1, 2, [Function (anonymous)], 4 ]'); 28 | 29 | t.end(); 30 | }); 31 | 32 | test('arrow function', { skip: !arrow }, function (t) { 33 | t.equal(inspect(arrow), '[Function (anonymous)]'); 34 | 35 | t.end(); 36 | }); 37 | 38 | test('truly nameless function', { skip: !arrow || !functionsHaveConfigurableNames }, function (t) { 39 | function f() {} 40 | Object.defineProperty(f, 'name', { value: false }); 41 | t.equal(f.name, false); 42 | t.equal( 43 | inspect(f), 44 | '[Function: f]', 45 | 'named function with falsy `.name` does not hide its original name' 46 | ); 47 | 48 | function g() {} 49 | Object.defineProperty(g, 'name', { value: true }); 50 | t.equal(g.name, true); 51 | t.equal( 52 | inspect(g), 53 | '[Function: true]', 54 | 'named function with truthy `.name` hides its original name' 55 | ); 56 | 57 | var anon = function () {}; // eslint-disable-line func-style 58 | Object.defineProperty(anon, 'name', { value: null }); 59 | t.equal(anon.name, null); 60 | t.equal( 61 | inspect(anon), 62 | '[Function (anonymous)]', 63 | 'anon function with falsy `.name` does not hide its anonymity' 64 | ); 65 | 66 | var anon2 = function () {}; // eslint-disable-line func-style 67 | Object.defineProperty(anon2, 'name', { value: 1 }); 68 | t.equal(anon2.name, 1); 69 | t.equal( 70 | inspect(anon2), 71 | '[Function: 1]', 72 | 'anon function with truthy `.name` hides its anonymity' 73 | ); 74 | 75 | t.end(); 76 | }); 77 | -------------------------------------------------------------------------------- /open/node_modules/object-inspect/test/has.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var inspect = require('../'); 4 | var test = require('tape'); 5 | var mockProperty = require('mock-property'); 6 | 7 | test('when Object#hasOwnProperty is deleted', function (t) { 8 | t.plan(1); 9 | var arr = [1, , 3]; // eslint-disable-line no-sparse-arrays 10 | 11 | t.teardown(mockProperty(Array.prototype, 1, { value: 2 })); // this is needed to account for "in" vs "hasOwnProperty" 12 | t.teardown(mockProperty(Object.prototype, 'hasOwnProperty', { 'delete': true })); 13 | 14 | t.equal(inspect(arr), '[ 1, , 3 ]'); 15 | }); 16 | -------------------------------------------------------------------------------- /open/node_modules/object-inspect/test/holes.js: -------------------------------------------------------------------------------- 1 | var test = require('tape'); 2 | var inspect = require('../'); 3 | 4 | var xs = ['a', 'b']; 5 | xs[5] = 'f'; 6 | xs[7] = 'j'; 7 | xs[8] = 'k'; 8 | 9 | test('holes', function (t) { 10 | t.plan(1); 11 | t.equal( 12 | inspect(xs), 13 | "[ 'a', 'b', , , , 'f', , 'j', 'k' ]" 14 | ); 15 | }); 16 | -------------------------------------------------------------------------------- /open/node_modules/object-inspect/test/lowbyte.js: -------------------------------------------------------------------------------- 1 | var test = require('tape'); 2 | var inspect = require('../'); 3 | 4 | var obj = { x: 'a\r\nb', y: '\x05! \x1f \x12' }; 5 | 6 | test('interpolate low bytes', function (t) { 7 | t.plan(1); 8 | t.equal( 9 | inspect(obj), 10 | "{ x: 'a\\r\\nb', y: '\\x05! \\x1F \\x12' }" 11 | ); 12 | }); 13 | -------------------------------------------------------------------------------- /open/node_modules/object-inspect/test/number.js: -------------------------------------------------------------------------------- 1 | var test = require('tape'); 2 | var v = require('es-value-fixtures'); 3 | var forEach = require('for-each'); 4 | 5 | var inspect = require('../'); 6 | 7 | test('negative zero', function (t) { 8 | t.equal(inspect(0), '0', 'inspect(0) === "0"'); 9 | t.equal(inspect(Object(0)), 'Object(0)', 'inspect(Object(0)) === "Object(0)"'); 10 | 11 | t.equal(inspect(-0), '-0', 'inspect(-0) === "-0"'); 12 | t.equal(inspect(Object(-0)), 'Object(-0)', 'inspect(Object(-0)) === "Object(-0)"'); 13 | 14 | t.end(); 15 | }); 16 | 17 | test('numericSeparator', function (t) { 18 | forEach(v.nonBooleans, function (nonBoolean) { 19 | t['throws']( 20 | function () { inspect(true, { numericSeparator: nonBoolean }); }, 21 | TypeError, 22 | inspect(nonBoolean) + ' is not a boolean' 23 | ); 24 | }); 25 | 26 | t.test('3 digit numbers', function (st) { 27 | var failed = false; 28 | for (var i = -999; i < 1000; i += 1) { 29 | var actual = inspect(i); 30 | var actualSepNo = inspect(i, { numericSeparator: false }); 31 | var actualSepYes = inspect(i, { numericSeparator: true }); 32 | var expected = String(i); 33 | if (actual !== expected || actualSepNo !== expected || actualSepYes !== expected) { 34 | failed = true; 35 | t.equal(actual, expected); 36 | t.equal(actualSepNo, expected); 37 | t.equal(actualSepYes, expected); 38 | } 39 | } 40 | 41 | st.notOk(failed, 'all 3 digit numbers passed'); 42 | 43 | st.end(); 44 | }); 45 | 46 | t.equal(inspect(1e3), '1000', '1000'); 47 | t.equal(inspect(1e3, { numericSeparator: false }), '1000', '1000, numericSeparator false'); 48 | t.equal(inspect(1e3, { numericSeparator: true }), '1_000', '1000, numericSeparator true'); 49 | t.equal(inspect(-1e3), '-1000', '-1000'); 50 | t.equal(inspect(-1e3, { numericSeparator: false }), '-1000', '-1000, numericSeparator false'); 51 | t.equal(inspect(-1e3, { numericSeparator: true }), '-1_000', '-1000, numericSeparator true'); 52 | 53 | t.equal(inspect(1234.5678, { numericSeparator: true }), '1_234.567_8', 'fractional numbers get separators'); 54 | t.equal(inspect(1234.56789, { numericSeparator: true }), '1_234.567_89', 'fractional numbers get separators'); 55 | t.equal(inspect(1234.567891, { numericSeparator: true }), '1_234.567_891', 'fractional numbers get separators'); 56 | 57 | t.end(); 58 | }); 59 | -------------------------------------------------------------------------------- /open/node_modules/object-inspect/test/quoteStyle.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var inspect = require('../'); 4 | var test = require('tape'); 5 | 6 | test('quoteStyle option', function (t) { 7 | t['throws'](function () { inspect(null, { quoteStyle: false }); }, 'false is not a valid value'); 8 | t['throws'](function () { inspect(null, { quoteStyle: true }); }, 'true is not a valid value'); 9 | t['throws'](function () { inspect(null, { quoteStyle: '' }); }, '"" is not a valid value'); 10 | t['throws'](function () { inspect(null, { quoteStyle: {} }); }, '{} is not a valid value'); 11 | t['throws'](function () { inspect(null, { quoteStyle: [] }); }, '[] is not a valid value'); 12 | t['throws'](function () { inspect(null, { quoteStyle: 42 }); }, '42 is not a valid value'); 13 | t['throws'](function () { inspect(null, { quoteStyle: NaN }); }, 'NaN is not a valid value'); 14 | t['throws'](function () { inspect(null, { quoteStyle: function () {} }); }, 'a function is not a valid value'); 15 | 16 | t.end(); 17 | }); 18 | -------------------------------------------------------------------------------- /open/node_modules/object-inspect/test/toStringTag.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var test = require('tape'); 4 | var hasToStringTag = require('has-tostringtag/shams')(); 5 | 6 | var inspect = require('../'); 7 | 8 | test('Symbol.toStringTag', { skip: !hasToStringTag }, function (t) { 9 | t.plan(4); 10 | 11 | var obj = { a: 1 }; 12 | t.equal(inspect(obj), '{ a: 1 }', 'object, no Symbol.toStringTag'); 13 | 14 | obj[Symbol.toStringTag] = 'foo'; 15 | t.equal(inspect(obj), '{ a: 1, [Symbol(Symbol.toStringTag)]: \'foo\' }', 'object with Symbol.toStringTag'); 16 | 17 | t.test('null objects', { skip: 'toString' in { __proto__: null } }, function (st) { 18 | st.plan(2); 19 | 20 | var dict = { __proto__: null, a: 1 }; 21 | st.equal(inspect(dict), '[Object: null prototype] { a: 1 }', 'null object with Symbol.toStringTag'); 22 | 23 | dict[Symbol.toStringTag] = 'Dict'; 24 | st.equal(inspect(dict), '[Dict: null prototype] { a: 1, [Symbol(Symbol.toStringTag)]: \'Dict\' }', 'null object with Symbol.toStringTag'); 25 | }); 26 | 27 | t.test('instances', function (st) { 28 | st.plan(4); 29 | 30 | function C() { 31 | this.a = 1; 32 | } 33 | st.equal(Object.prototype.toString.call(new C()), '[object Object]', 'instance, no toStringTag, Object.prototype.toString'); 34 | st.equal(inspect(new C()), 'C { a: 1 }', 'instance, no toStringTag'); 35 | 36 | C.prototype[Symbol.toStringTag] = 'Class!'; 37 | st.equal(Object.prototype.toString.call(new C()), '[object Class!]', 'instance, with toStringTag, Object.prototype.toString'); 38 | st.equal(inspect(new C()), 'C [Class!] { a: 1 }', 'instance, with toStringTag'); 39 | }); 40 | }); 41 | -------------------------------------------------------------------------------- /open/node_modules/object-inspect/test/undef.js: -------------------------------------------------------------------------------- 1 | var test = require('tape'); 2 | var inspect = require('../'); 3 | 4 | var obj = { a: 1, b: [3, 4, undefined, null], c: undefined, d: null }; 5 | 6 | test('undef and null', function (t) { 7 | t.plan(1); 8 | t.equal( 9 | inspect(obj), 10 | '{ a: 1, b: [ 3, 4, undefined, null ], c: undefined, d: null }' 11 | ); 12 | }); 13 | -------------------------------------------------------------------------------- /open/node_modules/object-inspect/util.inspect.js: -------------------------------------------------------------------------------- 1 | module.exports = require('util').inspect; 2 | -------------------------------------------------------------------------------- /open/node_modules/proxy-from-env/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "node": true 4 | }, 5 | "rules": { 6 | "array-bracket-spacing": [2, "never"], 7 | "block-scoped-var": 2, 8 | "brace-style": [2, "1tbs"], 9 | "camelcase": 1, 10 | "computed-property-spacing": [2, "never"], 11 | "curly": 2, 12 | "eol-last": 2, 13 | "eqeqeq": [2, "smart"], 14 | "max-depth": [1, 3], 15 | "max-len": [1, 80], 16 | "max-statements": [1, 15], 17 | "new-cap": 1, 18 | "no-extend-native": 2, 19 | "no-mixed-spaces-and-tabs": 2, 20 | "no-trailing-spaces": 2, 21 | "no-unused-vars": 1, 22 | "no-use-before-define": [2, "nofunc"], 23 | "object-curly-spacing": [2, "never"], 24 | "quotes": [2, "single", "avoid-escape"], 25 | "semi": [2, "always"], 26 | "keyword-spacing": [2, {"before": true, "after": true}], 27 | "space-unary-ops": 2 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /open/node_modules/proxy-from-env/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - node 4 | - lts/* 5 | script: 6 | - npm run lint 7 | # test-coverage will also run the tests, but does not print helpful output upon test failure. 8 | # So we also run the tests separately. 9 | - npm run test 10 | - npm run test-coverage && cat coverage/lcov.info | ./node_modules/.bin/coveralls && rm -rf coverage 11 | -------------------------------------------------------------------------------- /open/node_modules/proxy-from-env/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License 2 | 3 | Copyright (C) 2016-2018 Rob Wu 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 9 | of the Software, and to permit persons to whom the Software is furnished to do 10 | so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /open/node_modules/proxy-from-env/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "_args": [ 3 | [ 4 | "proxy-from-env@1.1.0", 5 | "/Users/liushiquan/learn_code/android/CatVodOpen/open" 6 | ] 7 | ], 8 | "_from": "proxy-from-env@1.1.0", 9 | "_id": "proxy-from-env@1.1.0", 10 | "_inBundle": false, 11 | "_integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", 12 | "_location": "/proxy-from-env", 13 | "_phantomChildren": {}, 14 | "_requested": { 15 | "type": "version", 16 | "registry": true, 17 | "raw": "proxy-from-env@1.1.0", 18 | "name": "proxy-from-env", 19 | "escapedName": "proxy-from-env", 20 | "rawSpec": "1.1.0", 21 | "saveSpec": null, 22 | "fetchSpec": "1.1.0" 23 | }, 24 | "_requiredBy": [ 25 | "/axios" 26 | ], 27 | "_resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", 28 | "_spec": "1.1.0", 29 | "_where": "/Users/liushiquan/learn_code/android/CatVodOpen/open", 30 | "author": { 31 | "name": "Rob Wu", 32 | "email": "rob@robwu.nl", 33 | "url": "https://robwu.nl/" 34 | }, 35 | "bugs": { 36 | "url": "https://github.com/Rob--W/proxy-from-env/issues" 37 | }, 38 | "description": "Offers getProxyForUrl to get the proxy URL for a URL, respecting the *_PROXY (e.g. HTTP_PROXY) and NO_PROXY environment variables.", 39 | "devDependencies": { 40 | "coveralls": "^3.0.9", 41 | "eslint": "^6.8.0", 42 | "istanbul": "^0.4.5", 43 | "mocha": "^7.1.0" 44 | }, 45 | "homepage": "https://github.com/Rob--W/proxy-from-env#readme", 46 | "keywords": [ 47 | "proxy", 48 | "http_proxy", 49 | "https_proxy", 50 | "no_proxy", 51 | "environment" 52 | ], 53 | "license": "MIT", 54 | "main": "index.js", 55 | "name": "proxy-from-env", 56 | "repository": { 57 | "type": "git", 58 | "url": "git+https://github.com/Rob--W/proxy-from-env.git" 59 | }, 60 | "scripts": { 61 | "lint": "eslint *.js", 62 | "test": "mocha ./test.js --reporter spec", 63 | "test-coverage": "istanbul cover ./node_modules/.bin/_mocha -- --reporter spec" 64 | }, 65 | "version": "1.1.0" 66 | } 67 | -------------------------------------------------------------------------------- /open/node_modules/qs/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 4 6 | end_of_line = lf 7 | charset = utf-8 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true 10 | max_line_length = 160 11 | quote_type = single 12 | 13 | [test/*] 14 | max_line_length = off 15 | 16 | [LICENSE.md] 17 | indent_size = off 18 | 19 | [*.md] 20 | max_line_length = off 21 | 22 | [*.json] 23 | max_line_length = off 24 | 25 | [Makefile] 26 | max_line_length = off 27 | 28 | [CHANGELOG.md] 29 | indent_style = space 30 | indent_size = 2 31 | 32 | [LICENSE] 33 | indent_size = 2 34 | max_line_length = off 35 | 36 | [coverage/**/*] 37 | indent_size = off 38 | indent_style = off 39 | indent = off 40 | max_line_length = off 41 | 42 | [.nycrc] 43 | indent_style = tab 44 | -------------------------------------------------------------------------------- /open/node_modules/qs/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "ignorePatterns": [ 7 | "dist/", 8 | ], 9 | 10 | "rules": { 11 | "complexity": 0, 12 | "consistent-return": 1, 13 | "func-name-matching": 0, 14 | "id-length": [2, { "min": 1, "max": 25, "properties": "never" }], 15 | "indent": [2, 4], 16 | "max-lines-per-function": [2, { "max": 150 }], 17 | "max-params": [2, 16], 18 | "max-statements": [2, 100], 19 | "multiline-comment-style": 0, 20 | "no-continue": 1, 21 | "no-magic-numbers": 0, 22 | "no-restricted-syntax": [2, "BreakStatement", "DebuggerStatement", "ForInStatement", "LabeledStatement", "WithStatement"], 23 | }, 24 | 25 | "overrides": [ 26 | { 27 | "files": "test/**", 28 | "rules": { 29 | "function-paren-newline": 0, 30 | "max-lines-per-function": 0, 31 | "max-statements": 0, 32 | "no-buffer-constructor": 0, 33 | "no-extend-native": 0, 34 | "no-throw-literal": 0, 35 | }, 36 | }, 37 | ], 38 | } 39 | -------------------------------------------------------------------------------- /open/node_modules/qs/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/qs 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with a single custom sponsorship URL 13 | -------------------------------------------------------------------------------- /open/node_modules/qs/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "lines": 86, 6 | "statements": 85.93, 7 | "functions": 82.43, 8 | "branches": 76.06, 9 | "exclude": [ 10 | "coverage", 11 | "dist" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /open/node_modules/qs/LICENSE.md: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2014, Nathan LaFreniere and other [contributors](https://github.com/ljharb/qs/graphs/contributors) 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | 1. Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | 2. Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | 3. Neither the name of the copyright holder nor the names of its 17 | contributors may be used to endorse or promote products derived from 18 | this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | -------------------------------------------------------------------------------- /open/node_modules/qs/lib/formats.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var replace = String.prototype.replace; 4 | var percentTwenties = /%20/g; 5 | 6 | var Format = { 7 | RFC1738: 'RFC1738', 8 | RFC3986: 'RFC3986' 9 | }; 10 | 11 | module.exports = { 12 | 'default': Format.RFC3986, 13 | formatters: { 14 | RFC1738: function (value) { 15 | return replace.call(value, percentTwenties, '+'); 16 | }, 17 | RFC3986: function (value) { 18 | return String(value); 19 | } 20 | }, 21 | RFC1738: Format.RFC1738, 22 | RFC3986: Format.RFC3986 23 | }; 24 | -------------------------------------------------------------------------------- /open/node_modules/qs/lib/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var stringify = require('./stringify'); 4 | var parse = require('./parse'); 5 | var formats = require('./formats'); 6 | 7 | module.exports = { 8 | formats: formats, 9 | parse: parse, 10 | stringify: stringify 11 | }; 12 | -------------------------------------------------------------------------------- /open/node_modules/side-channel/.eslintignore: -------------------------------------------------------------------------------- 1 | coverage/ 2 | -------------------------------------------------------------------------------- /open/node_modules/side-channel/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "@ljharb", 5 | 6 | "rules": { 7 | "max-lines-per-function": 0, 8 | "max-params": 0, 9 | "new-cap": [2, { "capIsNewExceptions": ["GetIntrinsic"] }], 10 | }, 11 | } 12 | -------------------------------------------------------------------------------- /open/node_modules/side-channel/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [ljharb] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: npm/side-channel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /open/node_modules/side-channel/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "all": true, 3 | "check-coverage": false, 4 | "reporter": ["text-summary", "text", "html", "json"], 5 | "lines": 86, 6 | "statements": 85.93, 7 | "functions": 82.43, 8 | "branches": 76.06, 9 | "exclude": [ 10 | "coverage", 11 | "test" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /open/node_modules/side-channel/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Jordan Harband 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /open/node_modules/side-channel/README.md: -------------------------------------------------------------------------------- 1 | # side-channel 2 | Store information about any JS value in a side channel. Uses WeakMap if available. 3 | -------------------------------------------------------------------------------- /open/node_modules/side-channel/test/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var test = require('tape'); 4 | 5 | var getSideChannel = require('../'); 6 | 7 | test('export', function (t) { 8 | t.equal(typeof getSideChannel, 'function', 'is a function'); 9 | t.equal(getSideChannel.length, 0, 'takes no arguments'); 10 | 11 | var channel = getSideChannel(); 12 | t.ok(channel, 'is truthy'); 13 | t.equal(typeof channel, 'object', 'is an object'); 14 | 15 | t.end(); 16 | }); 17 | 18 | test('assert', function (t) { 19 | var channel = getSideChannel(); 20 | t['throws']( 21 | function () { channel.assert({}); }, 22 | TypeError, 23 | 'nonexistent value throws' 24 | ); 25 | 26 | var o = {}; 27 | channel.set(o, 'data'); 28 | t.doesNotThrow(function () { channel.assert(o); }, 'existent value noops'); 29 | 30 | t.end(); 31 | }); 32 | 33 | test('has', function (t) { 34 | var channel = getSideChannel(); 35 | var o = []; 36 | 37 | t.equal(channel.has(o), false, 'nonexistent value yields false'); 38 | 39 | channel.set(o, 'foo'); 40 | t.equal(channel.has(o), true, 'existent value yields true'); 41 | 42 | t.end(); 43 | }); 44 | 45 | test('get', function (t) { 46 | var channel = getSideChannel(); 47 | var o = {}; 48 | t.equal(channel.get(o), undefined, 'nonexistent value yields undefined'); 49 | 50 | var data = {}; 51 | channel.set(o, data); 52 | t.equal(channel.get(o), data, '"get" yields data set by "set"'); 53 | 54 | t.end(); 55 | }); 56 | 57 | test('set', function (t) { 58 | var channel = getSideChannel(); 59 | var o = function () {}; 60 | t.equal(channel.get(o), undefined, 'value not set'); 61 | 62 | channel.set(o, 42); 63 | t.equal(channel.get(o), 42, 'value was set'); 64 | 65 | channel.set(o, Infinity); 66 | t.equal(channel.get(o), Infinity, 'value was set again'); 67 | 68 | var o2 = {}; 69 | channel.set(o2, 17); 70 | t.equal(channel.get(o), Infinity, 'o is not modified'); 71 | t.equal(channel.get(o2), 17, 'o2 is set'); 72 | 73 | channel.set(o, 14); 74 | t.equal(channel.get(o), 14, 'o is modified'); 75 | t.equal(channel.get(o2), 17, 'o2 is not modified'); 76 | 77 | t.end(); 78 | }); 79 | -------------------------------------------------------------------------------- /open/node_modules/uglify-js/LICENSE: -------------------------------------------------------------------------------- 1 | UglifyJS is released under the BSD license: 2 | 3 | Copyright 2012-2019 (c) Mihai Bazon 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions 7 | are met: 8 | 9 | * Redistributions of source code must retain the above 10 | copyright notice, this list of conditions and the following 11 | disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above 14 | copyright notice, this list of conditions and the following 15 | disclaimer in the documentation and/or other materials 16 | provided with the distribution. 17 | 18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY 19 | EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 21 | PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE 22 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, 23 | OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 24 | PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 25 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 27 | TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF 28 | THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 29 | SUCH DAMAGE. 30 | -------------------------------------------------------------------------------- /open/node_modules/uglify-js/tools/exports.js: -------------------------------------------------------------------------------- 1 | exports["Dictionary"] = Dictionary; 2 | exports["is_statement"] = is_statement; 3 | exports["List"] = List; 4 | exports["minify"] = minify; 5 | exports["parse"] = parse; 6 | exports["push_uniq"] = push_uniq; 7 | exports["TreeTransformer"] = TreeTransformer; 8 | exports["TreeWalker"] = TreeWalker; 9 | -------------------------------------------------------------------------------- /open/node_modules/uglify-js/tools/tty.js: -------------------------------------------------------------------------------- 1 | // workaround for tty output truncation on Node.js 2 | try { 3 | // prevent buffer overflow and other asynchronous bugs 4 | process.stdout._handle.setBlocking(true); 5 | process.stderr._handle.setBlocking(true); 6 | } catch (e) { 7 | // ensure output buffers are flushed before process termination 8 | var exit = process.exit; 9 | process.exit = function() { 10 | var args = [].slice.call(arguments); 11 | process.once("uncaughtException", function() { 12 | (function callback() { 13 | if (process.stdout.bufferSize || process.stderr.bufferSize) { 14 | setTimeout(callback, 1); 15 | } else { 16 | exit.apply(process, args); 17 | } 18 | })(); 19 | }); 20 | throw exit; 21 | }; 22 | } 23 | -------------------------------------------------------------------------------- /open/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CatVodOpenJSSpider", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "app.js", 6 | "type": "module", 7 | "directories": { 8 | "lib": "lib" 9 | }, 10 | "scripts": {}, 11 | "author": "", 12 | "license": "ISC", 13 | "dependencies": { 14 | "axios": "^1.4.0", 15 | "qs": "^6.11.2" 16 | }, 17 | "devDependencies": { 18 | "@types/node": "^20.1.5", 19 | "uglify-js": "^3.17.4" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /open/qjsc/README.md: -------------------------------------------------------------------------------- 1 | Mixed loading JavaScript code and bytecode is supported. 2 | 3 | 4 | `qjsc_open.exe -I INPUTDIR -O OUTPUTDIR -m -c jsfile` 5 | -------------------------------------------------------------------------------- /open/qjsc/qjsc.bat: -------------------------------------------------------------------------------- 1 | %~dp0\qjsc_open.exe -I %~dp0\..\ -O %~dp0\bytecode -m -c kunyu77_open.js -------------------------------------------------------------------------------- /open/qjsc/qjsc_open.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LuckySe7ens/tvbox_config/ebc7ffd367d3e8cdc438270d2407de05f998b5d6/open/qjsc/qjsc_open.exe -------------------------------------------------------------------------------- /open/test.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LuckySe7ens/tvbox_config/ebc7ffd367d3e8cdc438270d2407de05f998b5d6/open/test.jar -------------------------------------------------------------------------------- /open/test.js: -------------------------------------------------------------------------------- 1 | import {} from './wrapper/index.js'; 2 | 3 | //import { test } from './testVideo.js'; 4 | //import { test } from './testAlist.js'; 5 | // import { test } from './testYs996.js'; 6 | import { test } from './testKanqiu.js'; 7 | 8 | (async function () { 9 | await test(); 10 | debugger; 11 | })(); 12 | -------------------------------------------------------------------------------- /open/testAlist.js: -------------------------------------------------------------------------------- 1 | import { __jsEvalReturn } from './alist_open.js'; 2 | 3 | var spider = __jsEvalReturn(); 4 | 5 | async function test() { 6 | await spider.init({ 7 | skey: 'siteKey', 8 | ext: [ 9 | { 10 | name: '🙋丫仙女', 11 | server: 'http://v.elizen.me/', 12 | startPage: '/', 13 | showAll: false, 14 | search: true, 15 | headers: { 16 | Authorization: '', 17 | }, 18 | params: { 19 | '/abc': { 20 | password: '123', 21 | }, 22 | '/abc/abc': { 23 | password: '123', 24 | }, 25 | }, 26 | }, 27 | { 28 | name: '🐋一只鱼', 29 | server: 'https://alist.youte.ml', 30 | }, 31 | { 32 | name: '🌊七米蓝', 33 | server: 'https://al.chirmyram.com', 34 | }, 35 | { 36 | name: '🐉神族九帝', 37 | server: 'https://alist.shenzjd.com', 38 | }, 39 | { 40 | name: '☃️姬路白雪', 41 | server: 'https://pan.jlbx.xyz', 42 | }, 43 | { 44 | name: '✨星梦', 45 | server: 'https://pan.bashroot.top', 46 | }, 47 | { 48 | name: '💢repl', 49 | server: 'https://ali.liucn.repl.co', 50 | }, 51 | { 52 | name: '💦讯维云盘', 53 | server: 'https://pan.xwbeta.com', 54 | }, 55 | ], 56 | }); 57 | 58 | var files = JSON.parse(await spider.dir('/')); 59 | console.log(files); 60 | 61 | files = JSON.parse(await spider.dir(files.list[0].path)); 62 | console.log(files); 63 | 64 | // files = JSON.parse(await spider.dir('/🙋丫仙女/电视剧/欧美/4K/00 漫威衍生美剧/L 猎鹰与冬兵4K(2021)【美剧】豆瓣评分:7.5/')); 65 | // console.log(files); 66 | 67 | var fileInfo = JSON.parse(await spider.file('/💦讯维云盘/热播短剧/傲世神尊/01.mp4')); 68 | console.log(fileInfo); 69 | 70 | } 71 | 72 | export { test }; 73 | -------------------------------------------------------------------------------- /open/testVideo.js: -------------------------------------------------------------------------------- 1 | import { __jsEvalReturn } from './kunyu77_open.js'; 2 | 3 | var spider = __jsEvalReturn(); 4 | 5 | function jsonParse(obj) { 6 | if (typeof obj === 'string') { 7 | return JSON.parse(obj); 8 | } 9 | return obj; 10 | } 11 | 12 | async function test() { 13 | var spType = null; 14 | var spVid = null; 15 | spType = '2'; 16 | // spVid = '95873'; 17 | 18 | await spider.init({ skey: 'siteKey', ext: '' }); 19 | var classes = jsonParse(await spider.home(true)); 20 | console.log(classes); 21 | var homeVod = jsonParse(await spider.homeVod()); 22 | console.log(homeVod); 23 | if (classes.class && classes.class.length > 0) { 24 | var page = jsonParse(await spider.category(spType || classes.class[0].type_id, 0, undefined, {})); 25 | console.log(page); 26 | if (page.list && page.list.length > 0) { 27 | for (const k in page.list) { 28 | if (k >= 5) break; 29 | var detail = jsonParse(await spider.detail(spVid || page.list[k].vod_id)); 30 | console.log(detail); 31 | if (detail.list && detail.list.length > 0) { 32 | var pFlag = detail.list[0].vod_play_from.split('$$$'); 33 | var pUrls = detail.list[0].vod_play_url.split('$$$'); 34 | if (pFlag.length > 0 && pUrls.length > 0) { 35 | for (const i in pFlag) { 36 | var flag = pFlag[i]; 37 | var urls = pUrls[i].split('#'); 38 | if (urls.length > 0) { 39 | var url = urls[0].split('$')[1]; 40 | console.log(flag, url); 41 | var playUrl = await spider.play(flag, url, []); 42 | console.log(playUrl); 43 | } 44 | } 45 | } 46 | } 47 | if (spVid) break; 48 | } 49 | } 50 | } 51 | var search = jsonParse(await spider.search('奥特曼')); 52 | console.log(search); 53 | 54 | search = jsonParse(await spider.search('喜欢')); 55 | console.log(search); 56 | } 57 | 58 | export { test }; 59 | -------------------------------------------------------------------------------- /open/testYs996.js: -------------------------------------------------------------------------------- 1 | import { __jsEvalReturn } from './ys996_open.js'; 2 | 3 | var spider = __jsEvalReturn(); 4 | 5 | async function test() { 6 | var spType = null; 7 | var spVid = null; 8 | spType = '2'; 9 | await spider.init({ skey: 'siteKey', ext: undefined }); 10 | 11 | // var search = JSON.parse(await spider.search('一念关山', true,1)); 12 | // console.log(search); 13 | 14 | // var home = JSON.parse(await spider.home(true)); 15 | // console.log(home); 16 | 17 | // var homeVod = JSON.parse(await spider.homeVod()); 18 | // console.log(homeVod); 19 | 20 | // var cate = JSON.parse(await spider.category('1', 1, true, {year: '2023'})); 21 | // console.log(cate); 22 | 23 | // var detail = JSON.parse(await spider.detail('/detail/228.html')); 24 | // console.log(detail); 25 | 26 | var detail = JSON.parse(await spider.play('','/play/228-1-1.html', [])); 27 | console.log(detail); 28 | 29 | // spVid = '95873'; 30 | /** 31 | 32 | 33 | var page = JSON.parse(await spider.category('azz', 3, undefined, {})); 34 | console.log(page); 35 | var page = JSON.parse(await spider.detail('97008')); 36 | console.log(page); 37 | var page = JSON.parse(await spider.search('周杰伦')); 38 | console.log(page); 39 | **/ 40 | 41 | 42 | 43 | 44 | } 45 | 46 | export { test }; 47 | 48 | -------------------------------------------------------------------------------- /open/testZzmusic.js: -------------------------------------------------------------------------------- 1 | import { __jsEvalReturn } from './star_open.js'; 2 | 3 | var spider = __jsEvalReturn(); 4 | 5 | async function test() { 6 | var spType = null; 7 | var spVid = null; 8 | spType = '2'; 9 | await spider.init({ skey: 'siteKey', ext: 'https://proxy.leospring.eu.org/url=https://www.histar.tv/' }); 10 | 11 | var page = JSON.parse(await spider.search('与卿书')); 12 | console.log(page); 13 | var classes = JSON.parse(await spider.home(true)); 14 | console.log(classes); 15 | 16 | var homeVod = JSON.parse(await spider.homeVod()); 17 | console.log(homeVod); 18 | 19 | var page = JSON.parse(await spider.category('movie', 1, true, {year: '2023'})); 20 | console.log(page); 21 | 22 | var page = JSON.parse(await spider.detail('363131')); 23 | console.log(page); 24 | 25 | // spVid = '95873'; 26 | /** 27 | 28 | 29 | var page = JSON.parse(await spider.category('azz', 3, undefined, {})); 30 | console.log(page); 31 | var page = JSON.parse(await spider.detail('97008')); 32 | console.log(page); 33 | var page = JSON.parse(await spider.search('周杰伦')); 34 | console.log(page); 35 | **/ 36 | 37 | 38 | 39 | 40 | } 41 | 42 | export { test }; 43 | 44 | -------------------------------------------------------------------------------- /rule/wzznl.rule: -------------------------------------------------------------------------------- 1 | rule = { 2 | host: 'https://wzznl.buzz', 3 | class_name: '电影&电视&综艺&动漫', 4 | class_url: '1&2&3&4', 5 | homeVod: '.myui-vodlist__box;a&&title;a&&href;a&&style||data-original&&\\((.*?)\\);span.text-right&&Text', 6 | url: '/list/?fyclass-fypage.html', 7 | categoryVod: '.myui-vodlist__box;a&&title;a&&href;a&&style||data-original&&\\((.*?)\\);span.text-right&&Text', 8 | detailVod: { 9 | content: '#jq div div.tab-content.myui-panel_bd&&Text', 10 | playFrom: '.bottom-line:has(h3:contains(播放地址)) > ul > li > a&&Text', 11 | playUrl: '.tab-pane .myui-content__list;li a;&&Text;&&href', 12 | }, 13 | lazy: 'let match = html.match(/var now="(.*?)";/);if(match) playUrl = match[1];', 14 | searchUrl: '/search.php?page=fypage&searchword=**&searchtype=', 15 | searchParse: 'a.myui-vodlist__thumb;&&title;&&href;&&data-original;span.text-right&&Text' 16 | } 17 | --------------------------------------------------------------------------------