├── .editorconfig ├── .github └── workflows │ └── main.yml ├── .gitignore ├── .idea ├── .gitignore ├── misc.xml ├── modules.xml ├── netease-sync.iml └── vcs.xml ├── .pnp.cjs ├── .pnp.loader.mjs ├── .vscode ├── extensions.json └── settings.json ├── .yarn ├── cache │ ├── @cspotcode-source-map-consumer-npm-0.8.0-1f37e9e72b-c0c16ca3d2.zip │ ├── @cspotcode-source-map-support-npm-0.7.0-456c3ea2ce-9faddda775.zip │ ├── @gar-promisify-npm-1.1.3-ac1a325862-4059f790e2.zip │ ├── @npmcli-fs-npm-2.1.2-08d434e77b-405074965e.zip │ ├── @npmcli-move-file-npm-2.0.1-b593d8f741-52dc02259d.zip │ ├── @tokenizer-token-npm-0.3.0-4441352cc5-1d575d02d2.zip │ ├── @tootallnate-once-npm-2.0.0-e36cf4f140-ad87447820.zip │ ├── @tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb-c350a2947f.zip │ ├── @tsconfig-node10-npm-1.0.8-90a8cce25d-b8d5fffbc6.zip │ ├── @tsconfig-node12-npm-1.0.9-780563856d-a01b2400ab.zip │ ├── @tsconfig-node14-npm-1.0.1-3ecac58e68-976345e896.zip │ ├── @tsconfig-node16-npm-1.0.2-1f43ab567a-ca94d36397.zip │ ├── @types-caseless-npm-0.12.2-fc711e5d73-430d159111.zip │ ├── @types-node-npm-17.0.31-d8d26aa013-704618350f.zip │ ├── @types-node-npm-18.15.3-d092b0c75c-31b1d92475.zip │ ├── @types-node-telegram-bot-api-npm-0.61.3-ab48ead340-316bc6d0c9.zip │ ├── @types-prompts-npm-2.4.0-5b5caba459-ec75655f07.zip │ ├── @types-request-npm-2.48.8-fcce514e82-0b7754941e.zip │ ├── @types-tough-cookie-npm-4.0.2-9e61f877e6-e055556ffd.zip │ ├── NeteaseCloudMusicApi-npm-4.9.0-e61a671d03-60427b0a5b.zip │ ├── abbrev-npm-1.1.1-3659247eab-a4a97ec07d.zip │ ├── abstract-level-npm-1.0.3-7a868db447-70d61a3924.zip │ ├── accepts-npm-1.3.8-9a812371c9-50c43d32e7.zip │ ├── acorn-npm-8.7.1-7c7a019990-aca0aabf98.zip │ ├── acorn-walk-npm-8.2.0-2f2cac3177-1715e76c01.zip │ ├── agent-base-npm-6.0.2-428f325a93-f52b6872cc.zip │ ├── agent-base-npm-7.1.0-4b12ba5111-f7828f9914.zip │ ├── agentkeepalive-npm-4.3.0-ac3d8e6807-982453aa44.zip │ ├── aggregate-error-npm-3.1.0-415a406f4e-1101a33f21.zip │ ├── ajv-npm-6.12.6-4b5105e2b2-874972efe5.zip │ ├── ansi-regex-npm-5.0.1-c963a48615-2aa4bb54ca.zip │ ├── ansi-styles-npm-4.3.0-245c7d42c7-513b44c3b2.zip │ ├── aproba-npm-2.0.0-8716bcfde6-5615cadcfb.zip │ ├── are-we-there-yet-npm-3.0.1-3395b1512f-52590c2486.zip │ ├── arg-npm-4.1.3-1748b966a8-544af8dd3f.zip │ ├── array-buffer-byte-length-npm-1.0.0-331671f28a-044e101ce1.zip │ ├── array-flatten-npm-1.1.1-9d94ad5f1d-a9925bf351.zip │ ├── array.prototype.findindex-npm-2.2.1-6b54cc8266-62ad1bd722.zip │ ├── asn1-npm-0.2.6-bdd07356c4-39f2ae343b.zip │ ├── assert-plus-npm-1.0.0-cac95ef098-19b4340cb8.zip │ ├── ast-types-npm-0.13.4-69f7e68df8-5a51f7b705.zip │ ├── asynckit-npm-0.4.0-c718858525-7b78c451df.zip │ ├── available-typed-arrays-npm-1.0.5-88f321e4d3-20eb47b3ce.zip │ ├── aws-sign2-npm-0.7.0-656c6cb84d-b148b0bb07.zip │ ├── aws4-npm-1.12.0-af8e48a2ab-68f79708ac.zip │ ├── axios-npm-1.4.0-4d7ce8ca3e-7fb6a4313b.zip │ ├── balanced-match-npm-1.0.2-a53c126459-9706c088a2.zip │ ├── base64-js-npm-1.5.1-b2f7275641-669632eb37.zip │ ├── basic-ftp-npm-5.0.3-95a5b33162-8b04e88eb8.zip │ ├── bcrypt-pbkdf-npm-1.0.2-80db8b16ed-4edfc9fe7d.zip │ ├── bl-npm-1.2.3-49c4213ca5-123f097989.zip │ ├── bluebird-npm-3.7.2-6a54136ee3-869417503c.zip │ ├── body-parser-npm-1.20.0-1820eff49a-12fffdeac8.zip │ ├── brace-expansion-npm-1.1.11-fb95eb05ad-faf34a7bb0.zip │ ├── brace-expansion-npm-2.0.1-17aa2616f9-a61e7cd2e8.zip │ ├── browser-level-npm-1.0.1-f0600225ae-67fbc77ce8.zip │ ├── buffer-npm-6.0.3-cd90dfedfe-5ad23293d9.zip │ ├── busboy-npm-0.3.1-87ec0dae5a-d2bcb788c4.zip │ ├── bytes-npm-3.1.2-28b8643004-e4bcd3948d.zip │ ├── cacache-npm-16.1.3-4e2088ed0d-d91409e6e5.zip │ ├── call-bind-npm-1.0.2-c957124861-f8e31de9d1.zip │ ├── camelcase-npm-5.3.1-5db8af62c5-e6effce26b.zip │ ├── caseless-npm-0.12.0-e83bc5df83-b43bd4c440.zip │ ├── catering-npm-2.1.1-b116dcdfef-205daefa69.zip │ ├── charenc-npm-0.0.2-aca0c2f207-81dcadbe57.zip │ ├── chownr-npm-2.0.0-638f1c9c61-c57cf9dd07.zip │ ├── classic-level-npm-1.2.0-399f00877c-88ddd12f21.zip │ ├── clean-stack-npm-2.2.0-a8ce435a5c-2ac8cd2b2f.zip │ ├── cliui-npm-6.0.0-488b2414c6-4fcfd26d29.zip │ ├── cliui-npm-7.0.4-d6b8a9edb6-ce2e8f578a.zip │ ├── color-convert-npm-2.0.1-79730e935b-79e6bdb9fd.zip │ ├── color-name-npm-1.1.4-025792b0ea-b044585952.zip │ ├── color-support-npm-1.1.3-3be5c53455-9b73568176.zip │ ├── combined-stream-npm-1.0.8-dc14d4a63a-49fa4aeb49.zip │ ├── commander-npm-8.3.0-c0d18c66d5-0f82321821.zip │ ├── concat-map-npm-0.0.1-85a921b7ee-902a9f5d89.zip │ ├── console-control-strings-npm-1.1.0-e3160e5275-8755d76787.zip │ ├── content-disposition-npm-0.5.4-2d93678616-afb9d545e2.zip │ ├── content-type-npm-1.0.4-3b1a5ca16b-3d93585fda.zip │ ├── cookie-npm-0.5.0-e2d58a161a-1f4bd2ca57.zip │ ├── cookie-signature-npm-1.0.6-93f325f7f0-f4e1b0a98a.zip │ ├── core-util-is-npm-1.0.2-9fc2b94dc3-7a4c925b49.zip │ ├── core-util-is-npm-1.0.3-ca74b76c90-9de8597363.zip │ ├── create-require-npm-1.1.1-839884ca2e-a9a1503d43.zip │ ├── crypt-npm-0.0.2-033627d94f-baf4c7bbe0.zip │ ├── dashdash-npm-1.14.1-be8f10a286-3634c24957.zip │ ├── data-uri-to-buffer-npm-5.0.1-a40e5ac026-10958f89c0.zip │ ├── debug-npm-2.6.9-7d4cb597dc-d2f51589ca.zip │ ├── debug-npm-3.2.7-754e818c7a-b3d8c59407.zip │ ├── debug-npm-4.3.4-4513954577-3dbad3f94e.zip │ ├── decamelize-npm-1.2.0-c5a2fdc622-ad8c51a7e7.zip │ ├── define-properties-npm-1.2.0-3547cd0fd2-e60aee6a19.zip │ ├── degenerator-npm-5.0.1-97c678cdaf-a64fa39cdf.zip │ ├── delayed-stream-npm-1.0.0-c5a4c4cc02-46fe6e83e2.zip │ ├── delegates-npm-1.0.0-9b1942d75f-a51744d9b5.zip │ ├── depd-npm-2.0.0-b6c51a4b43-abbe19c768.zip │ ├── destroy-npm-1.2.0-6a511802e2-0acb300b74.zip │ ├── dicer-npm-0.3.0-ef4dcd1bb9-9f61aea61f.zip │ ├── diff-npm-4.0.2-73133c7102-f2c09b0ce4.zip │ ├── dijkstrajs-npm-1.0.2-c58f4835d6-8cd822441a.zip │ ├── dotenv-npm-16.0.0-ef4a5ccded-664cebb51f.zip │ ├── ecc-jsbn-npm-0.1.2-85b7a7be89-22fef4b620.zip │ ├── ee-first-npm-1.1.1-33f8535b39-1b4cac778d.zip │ ├── emoji-regex-npm-8.0.0-213764015c-d4c5c39d5a.zip │ ├── encode-utf8-npm-1.0.3-8f92a23782-550224bf2a.zip │ ├── encodeurl-npm-1.0.2-f8c8454c41-e50e3d508c.zip │ ├── encoding-npm-0.1.13-82a1837d30-bb98632f8f.zip │ ├── end-of-stream-npm-1.4.4-497fc6dee1-530a5a5a1e.zip │ ├── env-paths-npm-2.2.1-7c7577428c-65b5df55a8.zip │ ├── err-code-npm-2.0.3-082e0ff9a7-8b7b1be20d.zip │ ├── es-abstract-npm-1.21.2-f4ebace1ab-037f55ee5e.zip │ ├── es-set-tostringtag-npm-2.0.1-c87b5de872-ec416a1294.zip │ ├── es-shim-unscopables-npm-1.0.0-06186593f1-83e95cadbb.zip │ ├── es-to-primitive-npm-1.2.1-b7a7eac6c5-4ead6671a2.zip │ ├── escalade-npm-3.1.1-e02da076aa-a3e2a99f07.zip │ ├── escape-html-npm-1.0.3-376c22ee74-6213ca9ae0.zip │ ├── escodegen-npm-2.1.0-e0bf940745-096696407e.zip │ ├── esprima-npm-4.0.1-1084e98778-b45bc805a6.zip │ ├── estraverse-npm-5.3.0-03284f8f63-072780882d.zip │ ├── esutils-npm-2.0.3-f865beafd5-22b5b08f74.zip │ ├── etag-npm-1.8.1-54a3b989d9-571aeb3dbe.zip │ ├── eventemitter3-npm-3.1.2-a68b03e1ea-81e4e82b84.zip │ ├── express-fileupload-npm-1.3.1-5fb95eb44c-ebe810b4b1.zip │ ├── express-npm-4.18.1-842e583ae1-c3d44c92e4.zip │ ├── extend-npm-3.0.2-e1ca07ac54-a50a8309ca.zip │ ├── extsprintf-npm-1.3.0-61a92b324c-cee7a4a1e3.zip │ ├── extsprintf-npm-1.4.1-140b2f27ab-a2f29b2419.zip │ ├── fast-deep-equal-npm-3.1.3-790edcfcf5-e21a9d8d84.zip │ ├── fast-json-stable-stringify-npm-2.1.0-02e8905fda-b191531e36.zip │ ├── file-type-npm-16.5.3-9e176829d5-38a4443d0f.zip │ ├── file-type-npm-3.9.0-fec2c20533-1db70b2485.zip │ ├── finalhandler-npm-1.2.0-593d001463-92effbfd32.zip │ ├── find-up-npm-4.1.0-c3ccf8d855-4c172680e8.zip │ ├── follow-redirects-npm-1.15.2-1ec1dd82be-faa66059b6.zip │ ├── for-each-npm-0.3.3-0010ca8cdd-6c48ff2bc6.zip │ ├── forever-agent-npm-0.6.1-01dae53bf9-766ae6e220.zip │ ├── form-data-npm-2.3.3-c016cc11c0-10c1780fa1.zip │ ├── form-data-npm-2.5.1-47256351b5-5134ada56c.zip │ ├── form-data-npm-4.0.0-916facec2d-01135bf867.zip │ ├── forwarded-npm-0.2.0-6473dabe35-fd27e2394d.zip │ ├── fresh-npm-0.5.2-ad2bb4c0a2-13ea8b08f9.zip │ ├── fs-extra-npm-8.1.0-197473387f-bf44f0e6ce.zip │ ├── fs-minipass-npm-2.1.0-501ef87306-1b8d128dae.zip │ ├── fs.realpath-npm-1.0.0-c8f05d8126-99ddea01a7.zip │ ├── function-bind-npm-1.1.1-b56b322ae9-b32fbaebb3.zip │ ├── function.prototype.name-npm-1.1.5-e776a642bb-acd21d733a.zip │ ├── functions-have-names-npm-1.2.3-e5cf1e2208-c3f1f5ba20.zip │ ├── gauge-npm-4.0.4-8f878385e9-788b6bfe52.zip │ ├── get-caller-file-npm-2.0.5-80e8a86305-b9769a836d.zip │ ├── get-intrinsic-npm-1.1.1-7e868745da-a9fe2ca8fa.zip │ ├── get-intrinsic-npm-1.2.0-eb08ea9b1d-78fc0487b7.zip │ ├── get-symbol-description-npm-1.0.0-9c95a4bc1f-9ceff8fe96.zip │ ├── get-uri-npm-6.0.1-d4f0bb7365-a8aec70e1c.zip │ ├── getpass-npm-0.1.7-519164a3be-ab18d55661.zip │ ├── glob-npm-7.2.3-2d866d17a5-29452e97b3.zip │ ├── glob-npm-8.1.0-65f64af8b1-92fbea3221.zip │ ├── globalthis-npm-1.0.3-96cd56020d-fbd7d760dc.zip │ ├── gopd-npm-1.0.1-10c1d0b534-a5ccfb8806.zip │ ├── graceful-fs-npm-4.2.10-79c70989ca-3f109d70ae.zip │ ├── graceful-fs-npm-4.2.11-24bb648a68-ac85f94da9.zip │ ├── har-schema-npm-2.0.0-3a318c0ca5-d8946348f3.zip │ ├── har-validator-npm-5.1.5-bd9ac162f5-b998a7269c.zip │ ├── has-bigints-npm-1.0.2-52732e614d-390e31e7be.zip │ ├── has-npm-1.0.3-b7f00631c1-b9ad53d53b.zip │ ├── has-property-descriptors-npm-1.0.0-56289b918d-a6d3f0a266.zip │ ├── has-proto-npm-1.0.1-631ea9d820-febc5b5b53.zip │ ├── has-symbols-npm-1.0.3-1986bff2c4-a054c40c63.zip │ ├── has-tostringtag-npm-1.0.0-b1fcf3ab55-cc12eb28cb.zip │ ├── has-unicode-npm-2.0.1-893adb4747-1eab07a743.zip │ ├── http-cache-semantics-npm-4.1.1-1120131375-83ac0bc60b.zip │ ├── http-errors-npm-2.0.0-3f1c503428-9b0a378266.zip │ ├── http-proxy-agent-npm-5.0.0-7f1f121b83-e2ee1ff165.zip │ ├── http-proxy-agent-npm-7.0.0-106a57cc8c-48d4fac997.zip │ ├── http-signature-npm-1.2.0-ee92426f34-3324598712.zip │ ├── https-proxy-agent-npm-5.0.1-42d65f358e-571fccdf38.zip │ ├── https-proxy-agent-npm-7.0.1-a2d5d93ee0-2d765c3186.zip │ ├── humanize-ms-npm-1.2.1-e942bd7329-9c7a74a282.zip │ ├── iconv-lite-npm-0.4.24-c5c4ac6695-bd9f120f5a.zip │ ├── iconv-lite-npm-0.6.2-13e85ec7dc-03e03eb9fc.zip │ ├── iconv-lite-npm-0.6.3-24b8aae27e-3f60d47a5c.zip │ ├── ieee754-npm-1.2.1-fb63b3caeb-5144c0c981.zip │ ├── imurmurhash-npm-0.1.4-610c5068a0-7cae75c8cd.zip │ ├── indent-string-npm-4.0.0-7b717435b2-824cfb9929.zip │ ├── infer-owner-npm-1.0.4-685ac3d2af-181e732764.zip │ ├── inflight-npm-1.0.6-ccedb4b908-f4f76aa072.zip │ ├── inherits-npm-2.0.4-c66b3957a0-4a48a73384.zip │ ├── internal-slot-npm-1.0.5-a2241f3e66-97e84046bf.zip │ ├── ip-npm-1.1.8-abea558b72-a2ade53eb3.zip │ ├── ip-npm-2.0.0-204facb3cc-cfcfac6b87.zip │ ├── ipaddr.js-npm-1.9.1-19ae7878b4-f88d382598.zip │ ├── is-array-buffer-npm-3.0.2-0dec897785-dcac9dda66.zip │ ├── is-bigint-npm-1.0.4-31c2eecbc9-c56edfe09b.zip │ ├── is-boolean-object-npm-1.1.2-ecbd575e6a-c03b23dbaa.zip │ ├── is-buffer-npm-1.1.6-08199d9ccc-4a186d995d.zip │ ├── is-buffer-npm-2.0.5-17e563f277-764c9ad8b5.zip │ ├── is-callable-npm-1.2.7-808a303e61-61fd57d03b.zip │ ├── is-date-object-npm-1.0.5-88f3d08b5e-baa9077cdf.zip │ ├── is-fullwidth-code-point-npm-3.0.0-1ecf4ebee5-44a30c2945.zip │ ├── is-lambda-npm-1.0.1-7ab55bc8a8-93a32f0194.zip │ ├── is-negative-zero-npm-2.0.2-0adac91f15-f3232194c4.zip │ ├── is-number-object-npm-1.0.7-539d0e274d-d1e8d01bb0.zip │ ├── is-regex-npm-1.1.4-cca193ef11-362399b335.zip │ ├── is-shared-array-buffer-npm-1.0.2-32e4181fcd-9508929cf1.zip │ ├── is-string-npm-1.0.7-9f7066daed-323b3d0462.zip │ ├── is-symbol-npm-1.0.4-eb9baac703-92805812ef.zip │ ├── is-typed-array-npm-1.1.10-fe4ef83cdc-aac6ecb59d.zip │ ├── is-typedarray-npm-1.0.0-bbd99de5b6-3508c6cd0a.zip │ ├── is-weakref-npm-1.0.2-ff80e8c314-95bd9a57cd.zip │ ├── isarray-npm-1.0.0-db4f547720-f032df8e02.zip │ ├── isexe-npm-2.0.0-b58870bd2e-26bf6c5480.zip │ ├── isstream-npm-0.1.2-8581c75385-1eb2fe63a7.zip │ ├── jsbn-npm-0.1.1-0eb7132404-e5ff29c1b8.zip │ ├── json-schema-npm-0.4.0-e776313070-66389434c3.zip │ ├── json-schema-traverse-npm-0.4.1-4759091693-7486074d3b.zip │ ├── json-stringify-safe-npm-5.0.1-064ddd6ab4-48ec0adad5.zip │ ├── jsonfile-npm-4.0.0-10ce3aea15-6447d6224f.zip │ ├── jsprim-npm-1.4.2-1ae6cade9a-2ad1b9fdcc.zip │ ├── kleur-npm-3.0.3-f6f53649a4-df82cd1e17.zip │ ├── level-npm-8.0.0-c35f5fe17a-13eb25bd71.zip │ ├── level-supports-npm-4.0.1-78eaf0b919-d4552b42bb.zip │ ├── level-transcoder-npm-1.0.1-8821d7bed1-304f08d802.zip │ ├── locate-path-npm-5.0.0-46580c43e4-83e51725e6.zip │ ├── lodash-npm-4.17.21-6382451519-eb835a2e51.zip │ ├── lodash.merge-npm-4.6.2-77cb4416bf-ad580b4bdb.zip │ ├── lru-cache-npm-6.0.0-b4c8668fe1-f97f499f89.zip │ ├── lru-cache-npm-7.18.3-e68be5b11c-e550d77238.zip │ ├── make-error-npm-1.3.6-ccb85d9458-b86e5e0e25.zip │ ├── make-fetch-happen-npm-10.2.1-f1cc7cd2df-2332eb9a8e.zip │ ├── md5-npm-2.3.0-86c49d3915-a63cacf401.zip │ ├── media-typer-npm-0.3.0-8674f8f0f5-af1b38516c.zip │ ├── media-typer-npm-1.1.0-eccc8b846d-a58dd60804.zip │ ├── merge-descriptors-npm-1.0.1-615287aaa8-5abc259d2a.zip │ ├── metaflac-js2-npm-1.0.8-4f08399053-3aafe4490c.zip │ ├── methods-npm-1.1.2-92f6fdb39b-0917ff4041.zip │ ├── mime-db-npm-1.52.0-b5371d6fd2-0d99a03585.zip │ ├── mime-npm-1.6.0-60ae95038a-fef25e3926.zip │ ├── mime-types-npm-2.1.35-dd9ea9f3e2-89a5b7f1de.zip │ ├── minimatch-npm-3.1.2-9405269906-c154e56640.zip │ ├── minimatch-npm-5.1.6-1e71429f4c-7564208ef8.zip │ ├── minipass-collect-npm-1.0.2-3b4676eab5-14df761028.zip │ ├── minipass-fetch-npm-2.1.2-9b21a5c930-3f216be791.zip │ ├── minipass-flush-npm-1.0.5-efe79d9826-56269a0b22.zip │ ├── minipass-npm-3.3.6-b8d93a945b-a30d083c80.zip │ ├── minipass-npm-4.2.5-25860eb433-4f9c19af23.zip │ ├── minipass-pipeline-npm-1.2.4-5924cb077f-b14240dac0.zip │ ├── minipass-sized-npm-1.0.3-306d86f432-79076749fc.zip │ ├── minizlib-npm-2.1.2-ea89cd0cfb-f1fdeac0b0.zip │ ├── mkdirp-npm-1.0.4-37f6ef56b9-a96865108c.zip │ ├── module-error-npm-1.0.2-4f8221ee3c-5d653e35bd.zip │ ├── ms-npm-2.0.0-9e1101a471-0e6a22b8b7.zip │ ├── ms-npm-2.1.2-ec0c1512ff-673cdb2c31.zip │ ├── ms-npm-2.1.3-81ff3cfac1-aa92de6080.zip │ ├── music-metadata-npm-7.12.3-6f16defdb6-027667791a.zip │ ├── napi-macros-npm-2.0.0-f996ef3cad-3038481938.zip │ ├── needle-npm-2.9.1-f40e591726-746ae3a378.zip │ ├── negotiator-npm-0.6.3-9d50e36171-b8ffeb1e26.zip │ ├── netmask-npm-2.0.2-2299510a4d-c65cb8d3f7.zip │ ├── node-gyp-build-npm-4.6.0-5434aac3e5-25d78c5ef1.zip │ ├── node-gyp-npm-9.3.1-43540bab9c-b860e9976f.zip │ ├── node-id3-npm-0.2.3-a83fba2d11-457e5daf11.zip │ ├── node-telegram-bot-api-npm-0.61.0-57fe1be059-f3939a3411.zip │ ├── nopt-npm-6.0.0-5ea8050815-82149371f8.zip │ ├── npmlog-npm-6.0.2-e0e69455c7-ae238cd264.zip │ ├── oauth-sign-npm-0.9.0-7aa9422221-8f5497a127.zip │ ├── object-inspect-npm-1.12.0-d064fa559a-2b36d4001a.zip │ ├── object-inspect-npm-1.12.3-1e7d20f5ff-dabfd824d9.zip │ ├── object-keys-npm-1.1.1-1bf2f1be93-b363c5e764.zip │ ├── object.assign-npm-4.1.4-fb3deb1c3a-76cab513a5.zip │ ├── on-finished-npm-2.4.1-907af70f88-d20929a25e.zip │ ├── once-npm-1.4.0-ccf03ef07a-cd0a885013.zip │ ├── p-limit-npm-2.3.0-94a0310039-84ff17f1a3.zip │ ├── p-locate-npm-4.1.0-eec6872537-513bd14a45.zip │ ├── p-map-npm-4.0.0-4677ae07c7-cb0ab21ec0.zip │ ├── p-try-npm-2.2.0-e0390dbaf8-f8a8e9a769.zip │ ├── pac-proxy-agent-npm-7.0.0-da163d166e-45fe10ae58.zip │ ├── pac-resolver-npm-7.0.0-904b294260-fa3a898c09.zip │ ├── parseurl-npm-1.3.3-1542397e00-407cee8e0a.zip │ ├── path-exists-npm-4.0.0-e9e4f63eb0-505807199d.zip │ ├── path-is-absolute-npm-1.0.1-31bc695ffd-060840f92c.zip │ ├── path-to-regexp-npm-0.1.7-2605347373-69a14ea24d.zip │ ├── peek-readable-npm-4.1.0-26439d9ff8-02c673f9bc.zip │ ├── performance-now-npm-2.1.0-45e3ce7e49-534e641aa8.zip │ ├── pngjs-npm-5.0.0-e8ba79f838-04e912cc45.zip │ ├── probe-image-size-npm-7.2.3-2b6ee36e6f-1a5eeb8f5c.zip │ ├── process-nextick-args-npm-2.0.1-b8d7971609-1d38588e52.zip │ ├── promise-inflight-npm-1.0.1-5bb925afac-2274948309.zip │ ├── promise-retry-npm-2.0.1-871f0b01b7-f96a3f6d90.zip │ ├── prompts-npm-2.4.2-f5d25d5eea-d8fd1fe638.zip │ ├── proxy-addr-npm-2.0.7-dae6552872-29c6990ce9.zip │ ├── proxy-from-env-npm-1.1.0-c13d07f26b-ed7fcc2ba0.zip │ ├── psl-npm-1.9.0-a546edad1a-20c4277f64.zip │ ├── pump-npm-2.0.1-05afac7fc4-e9f26a17be.zip │ ├── punycode-npm-2.3.0-df4bdce06b-39f760e09a.zip │ ├── qrcode-npm-1.5.0-0f02dca802-a0857713d4.zip │ ├── qs-npm-6.10.3-172e1a3fb7-0fac5e6c71.zip │ ├── qs-npm-6.5.3-90b2635484-6f20bf08ca.zip │ ├── queue-microtask-npm-1.2.3-fcc98e4e2d-b676f8c040.zip │ ├── range-parser-npm-1.2.1-1a470fa390-0a268d4fea.zip │ ├── raw-body-npm-2.5.1-9dd1d9fff9-5362adff15.zip │ ├── readable-stream-npm-2.3.8-67a94c2cb1-6564546703.zip │ ├── readable-stream-npm-3.6.0-23a4a5eb56-d4ea81502d.zip │ ├── readable-web-to-node-stream-npm-3.0.2-682f5de297-8c56cc62c6.zip │ ├── regexp.prototype.flags-npm-1.4.3-df1c08b65d-51228bae73.zip │ ├── request-npm-2.88.2-f4a57c72c4-4e112c087f.zip │ ├── request-promise-core-npm-1.1.4-cb9fff6c90-c798bafd55.zip │ ├── request-promise-npm-4.2.6-37010e90c3-1856c718cb.zip │ ├── require-directory-npm-2.1.1-8608aee50b-fb47e70bf0.zip │ ├── require-main-filename-npm-2.0.0-03eef65c84-e9e294695f.zip │ ├── retry-npm-0.12.0-72ac7fb4cc-623bd7d2e5.zip │ ├── rimraf-npm-3.0.2-2cb7dac69a-87f4164e39.zip │ ├── run-parallel-limit-npm-1.1.0-ac1dfd4d1f-672c3b87e7.zip │ ├── safe-buffer-npm-5.1.2-c27fedf6c4-f2f1f7943c.zip │ ├── safe-buffer-npm-5.2.1-3481c8aa9b-b99c4b41fd.zip │ ├── safe-decode-uri-component-npm-1.2.1-3363fa1a8b-60e8d780a3.zip │ ├── safe-regex-test-npm-1.0.0-e94a09b84e-bc566d8beb.zip │ ├── safer-buffer-npm-2.1.2-8d5c0b705e-cab8f25ae6.zip │ ├── sax-npm-1.2.4-178f05f12f-d3df7d32b8.zip │ ├── semver-npm-7.3.8-25a996cb4f-ba9c7cbbf2.zip │ ├── send-npm-0.18.0-faadf6353f-74fc07ebb5.zip │ ├── serve-static-npm-1.15.0-86c81879f5-af57fc13be.zip │ ├── set-blocking-npm-2.0.0-49e2cffa24-6e65a05f7c.zip │ ├── setprototypeof-npm-1.2.0-0fedbdcd3a-be18cbbf70.zip │ ├── side-channel-npm-1.0.4-e1f38b9e06-351e41b947.zip │ ├── signal-exit-npm-3.0.7-bd270458a3-a2f098f247.zip │ ├── sisteransi-npm-1.0.5-af60cc0cfa-aba6438f46.zip │ ├── sleep-promise-npm-9.1.0-d83e95aee1-a93359c18d.zip │ ├── smart-buffer-npm-4.2.0-5ac3f668bb-b5167a7142.zip │ ├── socks-npm-2.7.1-17f2b53052-259d9e3e8e.zip │ ├── socks-proxy-agent-npm-7.0.0-7aacf32ea0-7205543701.zip │ ├── socks-proxy-agent-npm-8.0.1-646f00d0a1-f6538fd16c.zip │ ├── source-map-npm-0.6.1-1a3621db16-59ce8640cf.zip │ ├── sshpk-npm-1.17.0-95f17f597f-ba109f65c8.zip │ ├── ssri-npm-9.0.1-33ce27f4f8-fb58f5e46b.zip │ ├── statuses-npm-2.0.1-81d2b97fee-18c7623fdb.zip │ ├── stealthy-require-npm-1.1.1-0105ec8207-6805b857a9.zip │ ├── stream-parser-npm-0.3.1-0b70187c85-4d86ff8cff.zip │ ├── streamsearch-npm-0.1.2-813180eb1c-d2db57cbfb.zip │ ├── string-width-npm-4.2.3-2c27177bae-e52c10dc3f.zip │ ├── string.prototype.trim-npm-1.2.7-3fbaf3b9d2-05b7b2d6af.zip │ ├── string.prototype.trimend-npm-1.0.6-304246ecc1-0fdc34645a.zip │ ├── string.prototype.trimstart-npm-1.0.6-0926caea6c-89080feef4.zip │ ├── string_decoder-npm-1.1.1-e46a6c1353-9ab7e56f9d.zip │ ├── string_decoder-npm-1.3.0-2422117fd0-8417646695.zip │ ├── strip-ansi-npm-6.0.1-caddc7cb40-f3cd25890a.zip │ ├── strtok3-npm-6.3.0-73598951ca-90732cff3f.zip │ ├── tar-npm-6.1.13-3234e72781-8a278bed12.zip │ ├── toidentifier-npm-1.0.1-f759712599-952c29e2a8.zip │ ├── token-types-npm-4.2.0-b58a529493-7163e3bfab.zip │ ├── tough-cookie-npm-2.5.0-79a2fe43fe-16a8cd0902.zip │ ├── ts-node-npm-10.7.0-ef39b1d45e-2a379e43f7.zip │ ├── tsc-npm-2.0.4-e331b066cb-50b1024088.zip │ ├── tslib-npm-2.4.0-9cb6dc5030-8c4aa6a3c5.zip │ ├── tunnel-agent-npm-0.6.0-64345ab7eb-05f6510358.zip │ ├── tunnel-npm-0.0.6-b1c0830ea4-c362948df9.zip │ ├── tweetnacl-npm-0.14.5-a3f766c0d1-6061daba17.zip │ ├── type-is-npm-1.6.18-6dee4d4961-2c8e47675d.zip │ ├── typed-array-length-npm-1.0.4-92771b81fc-2228febc93.zip │ ├── typescript-npm-4.6.4-114dfa5f7e-e7bfcc39cd.zip │ ├── typescript-patch-9d18892098-1cb434fbc6.zip │ ├── unbox-primitive-npm-1.0.2-cb56a05066-b7a1cf5862.zip │ ├── unique-filename-npm-2.0.1-183c6c7c2b-807acf3381.zip │ ├── unique-slug-npm-3.0.0-0b82e51577-49f8d915ba.zip │ ├── universalify-npm-0.1.2-9b22d31d2d-40cdc60f6e.zip │ ├── unpipe-npm-1.0.0-2ed2a3c2bf-4fa18d8d8d.zip │ ├── uri-js-npm-4.4.1-66d11cbcaf-7167432de6.zip │ ├── util-deprecate-npm-1.0.2-e3fe1a219c-474acf1146.zip │ ├── utils-merge-npm-1.0.1-363bbdfbca-c810954932.zip │ ├── uuid-npm-3.4.0-4fd8ef88ad-58de2feed6.zip │ ├── v8-compile-cache-lib-npm-3.0.1-4886071ece-78089ad549.zip │ ├── vary-npm-1.1.2-b49f70ae63-ae0123222c.zip │ ├── verror-npm-1.10.0-c3f839c579-c431df0bed.zip │ ├── which-boxed-primitive-npm-1.0.2-e214f9ae5a-53ce774c73.zip │ ├── which-module-npm-2.0.0-daf3daa08d-809f7fd3df.zip │ ├── which-npm-2.0.2-320ddf72f7-1a5c563d3c.zip │ ├── which-typed-array-npm-1.1.9-9559c95dfc-fe0178ca44.zip │ ├── wide-align-npm-1.1.5-889d77e592-d5fc37cd56.zip │ ├── wrap-ansi-npm-6.2.0-439a7246d8-6cd96a4101.zip │ ├── wrap-ansi-npm-7.0.0-ad6e1a0554-a790b846fd.zip │ ├── wrappy-npm-1.0.2-916de4d4b3-159da4805f.zip │ ├── y18n-npm-4.0.3-ced95acdbc-014dfcd9b5.zip │ ├── y18n-npm-5.0.8-5f3a0a7e62-54f0fb9562.zip │ ├── yallist-npm-4.0.0-b493d9e907-343617202a.zip │ ├── yargs-npm-15.4.1-ca1c444de1-40b974f508.zip │ ├── yargs-npm-17.4.1-f5d309f85f-e901232287.zip │ ├── yargs-parser-npm-18.1.3-0ba9c4f088-60e8c7d1b8.zip │ ├── yargs-parser-npm-21.0.1-b778fd3462-c3ea2ed12c.zip │ └── yn-npm-3.1.1-8ad4259784-2c487b0e14.zip ├── plugins │ ├── @yarnpkg │ │ ├── plugin-typescript.cjs │ │ └── plugin-workspace-tools.cjs │ └── yarn-plugin-nixify.cjs ├── releases │ └── yarn-3.3.0.cjs └── sdks │ ├── integrations.yml │ └── typescript │ ├── lib │ ├── tsc.js │ ├── tsserver.js │ ├── tsserverlibrary.js │ └── typescript.js │ └── package.json ├── .yarnrc.yml ├── Dockerfile ├── README.md ├── archpkg ├── PKGBUILD ├── netease-login ├── netease-music-sync.conf └── netease-music-sync.service ├── default.nix ├── flake.nix ├── nixos ├── module.nix └── service.nix ├── package.json ├── shell.nix ├── src ├── index.ts ├── login.ts ├── models │ ├── PlayList.ts │ └── Pool.ts └── providers │ └── bot.ts ├── tsconfig.json ├── yarn-project.nix └── yarn.lock /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: Build and publish docker container 2 | 3 | on: 4 | push: 5 | 6 | jobs: 7 | publish: 8 | name: Publish container image 9 | runs-on: ubuntu-latest 10 | 11 | steps: 12 | - name: Checkout 13 | uses: actions/checkout@v2 14 | 15 | - name: OCI meta 16 | id: meta 17 | uses: docker/metadata-action@v3 18 | with: 19 | images: ghcr.io/${{ github.repository }} 20 | tags: | 21 | type=edge,branch=main 22 | type=ref,event=branch 23 | type=semver,pattern={{version}} 24 | type=semver,pattern={{major}}.{{minor}} 25 | type=semver,pattern={{major}} 26 | type=sha 27 | type=raw,value=latest 28 | 29 | - name: Set up Docker Buildx 30 | uses: docker/setup-buildx-action@v1 31 | 32 | - name: Set up QEMU 33 | uses: docker/setup-qemu-action@v2 34 | 35 | - name: Login to GHCR 36 | uses: docker/login-action@v1 37 | with: 38 | registry: ghcr.io 39 | username: ${{ github.repository_owner }} 40 | password: ${{ secrets.GITHUB_TOKEN }} 41 | 42 | - name: Build and push 43 | uses: docker/build-push-action@v4 44 | with: 45 | context: . 46 | push: true 47 | tags: ${{ steps.meta.outputs.tags }} 48 | labels: ${{ steps.meta.outputs.labels }} 49 | platforms: linux/amd64,linux/arm64/v8,linux/arm/v7,linux/arm/v6 50 | cache-from: type=gha 51 | cache-to: type=gha,mode=max 52 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ### Vue template 2 | # gitignore template for Vue.js projects 3 | # 4 | # Recommended template: Node.gitignore 5 | 6 | docs/_book 7 | 8 | test/ 9 | 10 | ### ArchLinuxPackages template 11 | *.tar 12 | *.tar.* 13 | *.jar 14 | *.exe 15 | *.msi 16 | *.tgz 17 | *.log 18 | *.log.* 19 | *.sig 20 | 21 | ### VisualStudio template 22 | ## Ignore Visual Studio temporary files, build results, and 23 | ## files generated by popular Visual Studio add-ons. 24 | ## 25 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore 26 | 27 | # User-specific files 28 | *.rsuser 29 | *.suo 30 | *.user 31 | *.userosscache 32 | *.sln.docstates 33 | 34 | # User-specific files (MonoDevelop/Xamarin Studio) 35 | *.userprefs 36 | 37 | # Mono auto generated files 38 | mono_crash.* 39 | 40 | # Build results 41 | [Dd]ebug/ 42 | [Dd]ebugPublic/ 43 | [Rr]elease/ 44 | [Rr]eleases/ 45 | x64/ 46 | x86/ 47 | [Ww][Ii][Nn]32/ 48 | [Aa][Rr][Mm]/ 49 | [Aa][Rr][Mm]64/ 50 | bld/ 51 | [Bb]in/ 52 | [Oo]bj/ 53 | [Ll]og/ 54 | [Ll]ogs/ 55 | 56 | # Visual Studio 2015/2017 cache/options directory 57 | .vs/ 58 | # Uncomment if you have tasks that create the project's static files in wwwroot 59 | #wwwroot/ 60 | 61 | # Visual Studio 2017 auto generated files 62 | Generated\ Files/ 63 | 64 | # MSTest test Results 65 | [Tt]est[Rr]esult*/ 66 | [Bb]uild[Ll]og.* 67 | 68 | # NUnit 69 | *.VisualState.xml 70 | TestResult.xml 71 | nunit-*.xml 72 | 73 | # Build Results of an ATL Project 74 | [Dd]ebugPS/ 75 | [Rr]eleasePS/ 76 | dlldata.c 77 | 78 | # Benchmark Results 79 | BenchmarkDotNet.Artifacts/ 80 | 81 | # .NET Core 82 | project.lock.json 83 | project.fragment.lock.json 84 | artifacts/ 85 | 86 | # ASP.NET Scaffolding 87 | ScaffoldingReadMe.txt 88 | 89 | # StyleCop 90 | StyleCopReport.xml 91 | 92 | # Files built by Visual Studio 93 | *_i.c 94 | *_p.c 95 | *_h.h 96 | *.ilk 97 | *.meta 98 | *.obj 99 | *.iobj 100 | *.pch 101 | *.pdb 102 | *.ipdb 103 | *.pgc 104 | *.pgd 105 | *.rsp 106 | *.sbr 107 | *.tlb 108 | *.tli 109 | *.tlh 110 | *.tmp 111 | *.tmp_proj 112 | *_wpftmp.csproj 113 | *.log 114 | *.vspscc 115 | *.vssscc 116 | .builds 117 | *.pidb 118 | *.svclog 119 | *.scc 120 | 121 | # Chutzpah Test files 122 | _Chutzpah* 123 | 124 | # Visual C++ cache files 125 | ipch/ 126 | *.aps 127 | *.ncb 128 | *.opendb 129 | *.opensdf 130 | *.sdf 131 | *.cachefile 132 | *.VC.db 133 | *.VC.VC.opendb 134 | 135 | # Visual Studio profiler 136 | *.psess 137 | *.vsp 138 | *.vspx 139 | *.sap 140 | 141 | # Visual Studio Trace Files 142 | *.e2e 143 | 144 | # TFS 2012 Local Workspace 145 | $tf/ 146 | 147 | # Guidance Automation Toolkit 148 | *.gpState 149 | 150 | # ReSharper is a .NET coding add-in 151 | _ReSharper*/ 152 | *.[Rr]e[Ss]harper 153 | *.DotSettings.user 154 | 155 | # TeamCity is a build add-in 156 | _TeamCity* 157 | 158 | # DotCover is a Code Coverage Tool 159 | *.dotCover 160 | 161 | # AxoCover is a Code Coverage Tool 162 | .axoCover/* 163 | !.axoCover/settings.json 164 | 165 | # Coverlet is a free, cross platform Code Coverage Tool 166 | coverage*.json 167 | coverage*.xml 168 | coverage*.info 169 | 170 | # Visual Studio code coverage results 171 | *.coverage 172 | *.coveragexml 173 | 174 | # NCrunch 175 | _NCrunch_* 176 | .*crunch*.local.xml 177 | nCrunchTemp_* 178 | 179 | # MightyMoose 180 | *.mm.* 181 | AutoTest.Net/ 182 | 183 | # Web workbench (sass) 184 | .sass-cache/ 185 | 186 | # Installshield output folder 187 | [Ee]xpress/ 188 | 189 | # DocProject is a documentation generator add-in 190 | DocProject/buildhelp/ 191 | DocProject/Help/*.HxT 192 | DocProject/Help/*.HxC 193 | DocProject/Help/*.hhc 194 | DocProject/Help/*.hhk 195 | DocProject/Help/*.hhp 196 | DocProject/Help/Html2 197 | DocProject/Help/html 198 | 199 | # Click-Once directory 200 | publish/ 201 | 202 | # Publish Web Output 203 | *.[Pp]ublish.xml 204 | *.azurePubxml 205 | # Note: Comment the next line if you want to checkin your web deploy settings, 206 | # but database connection strings (with potential passwords) will be unencrypted 207 | *.pubxml 208 | *.publishproj 209 | 210 | # Microsoft Azure Web App publish settings. Comment the next line if you want to 211 | # checkin your Azure Web App publish settings, but sensitive information contained 212 | # in these scripts will be unencrypted 213 | PublishScripts/ 214 | 215 | # NuGet Packages 216 | *.nupkg 217 | # NuGet Symbol Packages 218 | *.snupkg 219 | # The packages folder can be ignored because of Package Restore 220 | **/[Pp]ackages/* 221 | # except build/, which is used as an MSBuild target. 222 | !**/[Pp]ackages/build/ 223 | # Uncomment if necessary however generally it will be regenerated when needed 224 | #!**/[Pp]ackages/repositories.config 225 | # NuGet v3's project.json files produces more ignorable files 226 | *.nuget.props 227 | *.nuget.targets 228 | 229 | # Microsoft Azure Build Output 230 | csx/ 231 | *.build.csdef 232 | 233 | # Microsoft Azure Emulator 234 | ecf/ 235 | rcf/ 236 | 237 | # Windows Store app package directories and files 238 | AppPackages/ 239 | BundleArtifacts/ 240 | Package.StoreAssociation.xml 241 | _pkginfo.txt 242 | *.appx 243 | *.appxbundle 244 | *.appxupload 245 | 246 | # Others 247 | ClientBin/ 248 | ~$* 249 | *~ 250 | *.dbmdl 251 | *.dbproj.schemaview 252 | *.jfm 253 | *.pfx 254 | *.publishsettings 255 | orleans.codegen.cs 256 | 257 | # Including strong name files can present a security risk 258 | # (https://github.com/github/gitignore/pull/2483#issue-259490424) 259 | #*.snk 260 | 261 | # Since there are multiple workflows, uncomment next line to ignore bower_components 262 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 263 | #bower_components/ 264 | 265 | # RIA/Silverlight projects 266 | Generated_Code/ 267 | 268 | # Backup & report files from converting an old project file 269 | # to a newer Visual Studio version. Backup files are not needed, 270 | # because we have git ;-) 271 | _UpgradeReport_Files/ 272 | Backup*/ 273 | UpgradeLog*.XML 274 | UpgradeLog*.htm 275 | ServiceFabricBackup/ 276 | *.rptproj.bak 277 | 278 | # SQL Server files 279 | *.mdf 280 | *.ldf 281 | *.ndf 282 | 283 | # Business Intelligence projects 284 | *.rdl.data 285 | *.bim.layout 286 | *.bim_*.settings 287 | *.rptproj.rsuser 288 | *- [Bb]ackup.rdl 289 | *- [Bb]ackup ([0-9]).rdl 290 | *- [Bb]ackup ([0-9][0-9]).rdl 291 | 292 | # Microsoft Fakes 293 | FakesAssemblies/ 294 | 295 | # GhostDoc plugin setting file 296 | *.GhostDoc.xml 297 | 298 | # Node.js Tools for Visual Studio 299 | .ntvs_analysis.dat 300 | node_modules/ 301 | 302 | # Visual Studio 6 build log 303 | *.plg 304 | 305 | # Visual Studio 6 workspace options file 306 | *.opt 307 | 308 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) 309 | *.vbw 310 | 311 | # Visual Studio LightSwitch build output 312 | **/*.HTMLClient/GeneratedArtifacts 313 | **/*.DesktopClient/GeneratedArtifacts 314 | **/*.DesktopClient/ModelManifest.xml 315 | **/*.Server/GeneratedArtifacts 316 | **/*.Server/ModelManifest.xml 317 | _Pvt_Extensions 318 | 319 | # Paket dependency manager 320 | .paket/paket.exe 321 | paket-files/ 322 | 323 | # FAKE - F# Make 324 | .fake/ 325 | 326 | # CodeRush personal settings 327 | .cr/personal 328 | 329 | # Python Tools for Visual Studio (PTVS) 330 | __pycache__/ 331 | *.pyc 332 | 333 | # Cake - Uncomment if you are using it 334 | # tools/** 335 | # !tools/packages.config 336 | 337 | # Tabs Studio 338 | *.tss 339 | 340 | # Telerik's JustMock configuration file 341 | *.jmconfig 342 | 343 | # BizTalk build output 344 | *.btp.cs 345 | *.btm.cs 346 | *.odx.cs 347 | *.xsd.cs 348 | 349 | # OpenCover UI analysis results 350 | OpenCover/ 351 | 352 | # Azure Stream Analytics local run output 353 | ASALocalRun/ 354 | 355 | # MSBuild Binary and Structured Log 356 | *.binlog 357 | 358 | # NVidia Nsight GPU debugger configuration file 359 | *.nvuser 360 | 361 | # MFractors (Xamarin productivity tool) working folder 362 | .mfractor/ 363 | 364 | # Local History for Visual Studio 365 | .localhistory/ 366 | 367 | # BeatPulse healthcheck temp database 368 | healthchecksdb 369 | 370 | # Backup folder for Package Reference Convert tool in Visual Studio 2017 371 | MigrationBackup/ 372 | 373 | # Ionide (cross platform F# VS Code tools) working folder 374 | .ionide/ 375 | 376 | # Fody - auto-generated XML schema 377 | FodyWeavers.xsd 378 | 379 | ### Vim template 380 | # Swap 381 | [._]*.s[a-v][a-z] 382 | !*.svg # comment out if you don't need vector files 383 | [._]*.sw[a-p] 384 | [._]s[a-rt-v][a-z] 385 | [._]ss[a-gi-z] 386 | [._]sw[a-p] 387 | 388 | # Session 389 | Session.vim 390 | Sessionx.vim 391 | 392 | # Temporary 393 | .netrwhist 394 | *~ 395 | # Auto-generated tag files 396 | tags 397 | # Persistent undo 398 | [._]*.un~ 399 | 400 | ### VisualStudioCode template 401 | .vscode/* 402 | !.vscode/settings.json 403 | !.vscode/tasks.json 404 | !.vscode/launch.json 405 | !.vscode/extensions.json 406 | *.code-workspace 407 | 408 | # Local History for Visual Studio Code 409 | .history/ 410 | 411 | ### Windows template 412 | # Windows thumbnail cache files 413 | Thumbs.db 414 | Thumbs.db:encryptable 415 | ehthumbs.db 416 | ehthumbs_vista.db 417 | 418 | # Dump file 419 | *.stackdump 420 | 421 | # Folder config file 422 | [Dd]esktop.ini 423 | 424 | # Recycle Bin used on file shares 425 | $RECYCLE.BIN/ 426 | 427 | # Windows Installer files 428 | *.cab 429 | *.msi 430 | *.msix 431 | *.msm 432 | *.msp 433 | 434 | # Windows shortcuts 435 | *.lnk 436 | 437 | ### LibreOffice template 438 | # LibreOffice locks 439 | .~lock.*# 440 | 441 | ### SublimeText template 442 | # Cache files for Sublime Text 443 | *.tmlanguage.cache 444 | *.tmPreferences.cache 445 | *.stTheme.cache 446 | 447 | # Workspace files are user-specific 448 | *.sublime-workspace 449 | 450 | # Project files should be checked into the repository, unless a significant 451 | # proportion of contributors will probably not be using Sublime Text 452 | # *.sublime-project 453 | 454 | # SFTP configuration file 455 | sftp-config.json 456 | sftp-config-alt*.json 457 | 458 | # Package control specific files 459 | Package Control.last-run 460 | Package Control.ca-list 461 | Package Control.ca-bundle 462 | Package Control.system-ca-bundle 463 | Package Control.cache/ 464 | Package Control.ca-certs/ 465 | Package Control.merged-ca-bundle 466 | Package Control.user-ca-bundle 467 | oscrypto-ca-bundle.crt 468 | bh_unicode_properties.cache 469 | 470 | # Sublime-github package stores a github token in this file 471 | # https://packagecontrol.io/packages/sublime-github 472 | GitHub.sublime-settings 473 | 474 | ### JetBrains template 475 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider 476 | # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 477 | 478 | # User-specific stuff 479 | .idea/**/workspace.xml 480 | .idea/**/tasks.xml 481 | .idea/**/usage.statistics.xml 482 | .idea/**/dictionaries 483 | .idea/**/shelf 484 | 485 | # Generated files 486 | .idea/**/contentModel.xml 487 | 488 | # Sensitive or high-churn files 489 | .idea/**/dataSources/ 490 | .idea/**/dataSources.ids 491 | .idea/**/dataSources.local.xml 492 | .idea/**/sqlDataSources.xml 493 | .idea/**/dynamic.xml 494 | .idea/**/uiDesigner.xml 495 | .idea/**/dbnavigator.xml 496 | 497 | # Gradle 498 | .idea/**/gradle.xml 499 | .idea/**/libraries 500 | 501 | # Gradle and Maven with auto-import 502 | # When using Gradle or Maven with auto-import, you should exclude module files, 503 | # since they will be recreated, and may cause churn. Uncomment if using 504 | # auto-import. 505 | # .idea/artifacts 506 | # .idea/compiler.xml 507 | # .idea/jarRepositories.xml 508 | # .idea/modules.xml 509 | # .idea/*.iml 510 | # .idea/modules 511 | # *.iml 512 | # *.ipr 513 | 514 | # CMake 515 | cmake-build-*/ 516 | 517 | # Mongo Explorer plugin 518 | .idea/**/mongoSettings.xml 519 | 520 | # File-based project format 521 | *.iws 522 | 523 | # IntelliJ 524 | out/ 525 | 526 | # mpeltonen/sbt-idea plugin 527 | .idea_modules/ 528 | 529 | # JIRA plugin 530 | atlassian-ide-plugin.xml 531 | 532 | # Cursive Clojure plugin 533 | .idea/replstate.xml 534 | 535 | # Crashlytics plugin (for Android Studio and IntelliJ) 536 | com_crashlytics_export_strings.xml 537 | crashlytics.properties 538 | crashlytics-build.properties 539 | fabric.properties 540 | 541 | # Editor-based Rest Client 542 | .idea/httpRequests 543 | 544 | # Android studio 3.1+ serialized cache file 545 | .idea/caches/build_file_checksums.ser 546 | 547 | ### Kate template 548 | # Swap Files # 549 | .*.kate-swp 550 | .swp.* 551 | 552 | ### Backup template 553 | *.bak 554 | *.gho 555 | *.ori 556 | *.orig 557 | *.tmp 558 | 559 | ### Node template 560 | # Logs 561 | logs 562 | *.log 563 | npm-debug.log* 564 | yarn-debug.log* 565 | yarn-error.log* 566 | lerna-debug.log* 567 | 568 | # Diagnostic reports (https://nodejs.org/api/report.html) 569 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 570 | 571 | # Runtime data 572 | pids 573 | *.pid 574 | *.seed 575 | *.pid.lock 576 | 577 | # Directory for instrumented libs generated by jscoverage/JSCover 578 | lib-cov 579 | 580 | # Coverage directory used by tools like istanbul 581 | coverage 582 | *.lcov 583 | 584 | # nyc test coverage 585 | .nyc_output 586 | 587 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 588 | .grunt 589 | 590 | # Bower dependency directory (https://bower.io/) 591 | bower_components 592 | 593 | # node-waf configuration 594 | .lock-wscript 595 | 596 | # Compiled binary addons (https://nodejs.org/api/addons.html) 597 | build/Release 598 | 599 | # Dependency directories 600 | node_modules/ 601 | jspm_packages/ 602 | 603 | # Snowpack dependency directory (https://snowpack.dev/) 604 | web_modules/ 605 | 606 | # TypeScript cache 607 | *.tsbuildinfo 608 | 609 | # Optional npm cache directory 610 | .npm 611 | 612 | # Optional eslint cache 613 | .eslintcache 614 | 615 | # Microbundle cache 616 | .rpt2_cache/ 617 | .rts2_cache_cjs/ 618 | .rts2_cache_es/ 619 | .rts2_cache_umd/ 620 | 621 | # Optional REPL history 622 | .node_repl_history 623 | 624 | # Output of 'npm pack' 625 | *.tgz 626 | 627 | # Yarn Integrity file 628 | .yarn-integrity 629 | 630 | # dotenv environment variables file 631 | .env 632 | .env.test 633 | 634 | # parcel-bundler cache (https://parceljs.org/) 635 | .cache 636 | .parcel-cache 637 | 638 | # Next.js build output 639 | .next 640 | out 641 | 642 | # Nuxt.js build / generate output 643 | .nuxt 644 | dist 645 | 646 | # Gatsby files 647 | .cache/ 648 | # Comment in the public line in if your project uses Gatsby and not Next.js 649 | # https://nextjs.org/blog/next-9-1#public-directory-support 650 | # public 651 | 652 | # vuepress build output 653 | .vuepress/dist 654 | 655 | # Serverless directories 656 | .serverless/ 657 | 658 | # FuseBox cache 659 | .fusebox/ 660 | 661 | # DynamoDB Local files 662 | .dynamodb/ 663 | 664 | # TernJS port file 665 | .tern-port 666 | 667 | # Stores VSCode versions used for testing VSCode extensions 668 | .vscode-test 669 | 670 | 671 | ### KDevelop4 template 672 | *.kdev4 673 | .kdev4/ 674 | 675 | ### Linux template 676 | *~ 677 | 678 | # temporary files which can be created if a process still has a handle open of a deleted file 679 | .fuse_hidden* 680 | 681 | # KDE directory preferences 682 | .directory 683 | 684 | # Linux trash folder which might appear on any partition or disk 685 | .Trash-* 686 | 687 | # .nfs files are created when an open file is removed but is still being accessed 688 | .nfs* 689 | 690 | ### macOS template 691 | # General 692 | .DS_Store 693 | .AppleDouble 694 | .LSOverride 695 | 696 | # Icon must end with two \r 697 | Icon 698 | 699 | # Thumbnails 700 | ._* 701 | 702 | # Files that might appear in the root of a volume 703 | .DocumentRevisions-V100 704 | .fseventsd 705 | .Spotlight-V100 706 | .TemporaryItems 707 | .Trashes 708 | .VolumeIcon.icns 709 | .com.apple.timemachine.donotpresent 710 | 711 | # Directories potentially created on remote AFP share 712 | .AppleDB 713 | .AppleDesktop 714 | Network Trash Folder 715 | Temporary Items 716 | .apdisk 717 | 718 | config.yaml 719 | build 720 | .yarn/* 721 | !.yarn/cache 722 | !.yarn/patches 723 | !.yarn/plugins 724 | !.yarn/releases 725 | !.yarn/sdks 726 | !.yarn/versions 727 | -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # 默认忽略的文件 2 | /shelf/ 3 | /workspace.xml 4 | # 基于编辑器的 HTTP 客户端请求 5 | /httpRequests/ 6 | # Datasource local storage ignored files 7 | /dataSources/ 8 | /dataSources.local.xml 9 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/netease-sync.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "arcanis.vscode-zipfs" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "search.exclude": { 3 | "**/.yarn": true, 4 | "**/.pnp.*": true 5 | }, 6 | "typescript.tsdk": ".yarn/sdks/typescript/lib", 7 | "typescript.enablePromptUseWorkspaceTsdk": true 8 | } 9 | -------------------------------------------------------------------------------- /.yarn/cache/@cspotcode-source-map-consumer-npm-0.8.0-1f37e9e72b-c0c16ca3d2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/@cspotcode-source-map-consumer-npm-0.8.0-1f37e9e72b-c0c16ca3d2.zip -------------------------------------------------------------------------------- /.yarn/cache/@cspotcode-source-map-support-npm-0.7.0-456c3ea2ce-9faddda775.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/@cspotcode-source-map-support-npm-0.7.0-456c3ea2ce-9faddda775.zip -------------------------------------------------------------------------------- /.yarn/cache/@gar-promisify-npm-1.1.3-ac1a325862-4059f790e2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/@gar-promisify-npm-1.1.3-ac1a325862-4059f790e2.zip -------------------------------------------------------------------------------- /.yarn/cache/@npmcli-fs-npm-2.1.2-08d434e77b-405074965e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/@npmcli-fs-npm-2.1.2-08d434e77b-405074965e.zip -------------------------------------------------------------------------------- /.yarn/cache/@npmcli-move-file-npm-2.0.1-b593d8f741-52dc02259d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/@npmcli-move-file-npm-2.0.1-b593d8f741-52dc02259d.zip -------------------------------------------------------------------------------- /.yarn/cache/@tokenizer-token-npm-0.3.0-4441352cc5-1d575d02d2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/@tokenizer-token-npm-0.3.0-4441352cc5-1d575d02d2.zip -------------------------------------------------------------------------------- /.yarn/cache/@tootallnate-once-npm-2.0.0-e36cf4f140-ad87447820.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/@tootallnate-once-npm-2.0.0-e36cf4f140-ad87447820.zip -------------------------------------------------------------------------------- /.yarn/cache/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb-c350a2947f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb-c350a2947f.zip -------------------------------------------------------------------------------- /.yarn/cache/@tsconfig-node10-npm-1.0.8-90a8cce25d-b8d5fffbc6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/@tsconfig-node10-npm-1.0.8-90a8cce25d-b8d5fffbc6.zip -------------------------------------------------------------------------------- /.yarn/cache/@tsconfig-node12-npm-1.0.9-780563856d-a01b2400ab.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/@tsconfig-node12-npm-1.0.9-780563856d-a01b2400ab.zip -------------------------------------------------------------------------------- /.yarn/cache/@tsconfig-node14-npm-1.0.1-3ecac58e68-976345e896.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/@tsconfig-node14-npm-1.0.1-3ecac58e68-976345e896.zip -------------------------------------------------------------------------------- /.yarn/cache/@tsconfig-node16-npm-1.0.2-1f43ab567a-ca94d36397.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/@tsconfig-node16-npm-1.0.2-1f43ab567a-ca94d36397.zip -------------------------------------------------------------------------------- /.yarn/cache/@types-caseless-npm-0.12.2-fc711e5d73-430d159111.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/@types-caseless-npm-0.12.2-fc711e5d73-430d159111.zip -------------------------------------------------------------------------------- /.yarn/cache/@types-node-npm-17.0.31-d8d26aa013-704618350f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/@types-node-npm-17.0.31-d8d26aa013-704618350f.zip -------------------------------------------------------------------------------- /.yarn/cache/@types-node-npm-18.15.3-d092b0c75c-31b1d92475.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/@types-node-npm-18.15.3-d092b0c75c-31b1d92475.zip -------------------------------------------------------------------------------- /.yarn/cache/@types-node-telegram-bot-api-npm-0.61.3-ab48ead340-316bc6d0c9.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/@types-node-telegram-bot-api-npm-0.61.3-ab48ead340-316bc6d0c9.zip -------------------------------------------------------------------------------- /.yarn/cache/@types-prompts-npm-2.4.0-5b5caba459-ec75655f07.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/@types-prompts-npm-2.4.0-5b5caba459-ec75655f07.zip -------------------------------------------------------------------------------- /.yarn/cache/@types-request-npm-2.48.8-fcce514e82-0b7754941e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/@types-request-npm-2.48.8-fcce514e82-0b7754941e.zip -------------------------------------------------------------------------------- /.yarn/cache/@types-tough-cookie-npm-4.0.2-9e61f877e6-e055556ffd.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/@types-tough-cookie-npm-4.0.2-9e61f877e6-e055556ffd.zip -------------------------------------------------------------------------------- /.yarn/cache/NeteaseCloudMusicApi-npm-4.9.0-e61a671d03-60427b0a5b.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/NeteaseCloudMusicApi-npm-4.9.0-e61a671d03-60427b0a5b.zip -------------------------------------------------------------------------------- /.yarn/cache/abbrev-npm-1.1.1-3659247eab-a4a97ec07d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/abbrev-npm-1.1.1-3659247eab-a4a97ec07d.zip -------------------------------------------------------------------------------- /.yarn/cache/abstract-level-npm-1.0.3-7a868db447-70d61a3924.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/abstract-level-npm-1.0.3-7a868db447-70d61a3924.zip -------------------------------------------------------------------------------- /.yarn/cache/accepts-npm-1.3.8-9a812371c9-50c43d32e7.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/accepts-npm-1.3.8-9a812371c9-50c43d32e7.zip -------------------------------------------------------------------------------- /.yarn/cache/acorn-npm-8.7.1-7c7a019990-aca0aabf98.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/acorn-npm-8.7.1-7c7a019990-aca0aabf98.zip -------------------------------------------------------------------------------- /.yarn/cache/acorn-walk-npm-8.2.0-2f2cac3177-1715e76c01.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/acorn-walk-npm-8.2.0-2f2cac3177-1715e76c01.zip -------------------------------------------------------------------------------- /.yarn/cache/agent-base-npm-6.0.2-428f325a93-f52b6872cc.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/agent-base-npm-6.0.2-428f325a93-f52b6872cc.zip -------------------------------------------------------------------------------- /.yarn/cache/agent-base-npm-7.1.0-4b12ba5111-f7828f9914.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/agent-base-npm-7.1.0-4b12ba5111-f7828f9914.zip -------------------------------------------------------------------------------- /.yarn/cache/agentkeepalive-npm-4.3.0-ac3d8e6807-982453aa44.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/agentkeepalive-npm-4.3.0-ac3d8e6807-982453aa44.zip -------------------------------------------------------------------------------- /.yarn/cache/aggregate-error-npm-3.1.0-415a406f4e-1101a33f21.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/aggregate-error-npm-3.1.0-415a406f4e-1101a33f21.zip -------------------------------------------------------------------------------- /.yarn/cache/ajv-npm-6.12.6-4b5105e2b2-874972efe5.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/ajv-npm-6.12.6-4b5105e2b2-874972efe5.zip -------------------------------------------------------------------------------- /.yarn/cache/ansi-regex-npm-5.0.1-c963a48615-2aa4bb54ca.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/ansi-regex-npm-5.0.1-c963a48615-2aa4bb54ca.zip -------------------------------------------------------------------------------- /.yarn/cache/ansi-styles-npm-4.3.0-245c7d42c7-513b44c3b2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/ansi-styles-npm-4.3.0-245c7d42c7-513b44c3b2.zip -------------------------------------------------------------------------------- /.yarn/cache/aproba-npm-2.0.0-8716bcfde6-5615cadcfb.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/aproba-npm-2.0.0-8716bcfde6-5615cadcfb.zip -------------------------------------------------------------------------------- /.yarn/cache/are-we-there-yet-npm-3.0.1-3395b1512f-52590c2486.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/are-we-there-yet-npm-3.0.1-3395b1512f-52590c2486.zip -------------------------------------------------------------------------------- /.yarn/cache/arg-npm-4.1.3-1748b966a8-544af8dd3f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/arg-npm-4.1.3-1748b966a8-544af8dd3f.zip -------------------------------------------------------------------------------- /.yarn/cache/array-buffer-byte-length-npm-1.0.0-331671f28a-044e101ce1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/array-buffer-byte-length-npm-1.0.0-331671f28a-044e101ce1.zip -------------------------------------------------------------------------------- /.yarn/cache/array-flatten-npm-1.1.1-9d94ad5f1d-a9925bf351.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/array-flatten-npm-1.1.1-9d94ad5f1d-a9925bf351.zip -------------------------------------------------------------------------------- /.yarn/cache/array.prototype.findindex-npm-2.2.1-6b54cc8266-62ad1bd722.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/array.prototype.findindex-npm-2.2.1-6b54cc8266-62ad1bd722.zip -------------------------------------------------------------------------------- /.yarn/cache/asn1-npm-0.2.6-bdd07356c4-39f2ae343b.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/asn1-npm-0.2.6-bdd07356c4-39f2ae343b.zip -------------------------------------------------------------------------------- /.yarn/cache/assert-plus-npm-1.0.0-cac95ef098-19b4340cb8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/assert-plus-npm-1.0.0-cac95ef098-19b4340cb8.zip -------------------------------------------------------------------------------- /.yarn/cache/ast-types-npm-0.13.4-69f7e68df8-5a51f7b705.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/ast-types-npm-0.13.4-69f7e68df8-5a51f7b705.zip -------------------------------------------------------------------------------- /.yarn/cache/asynckit-npm-0.4.0-c718858525-7b78c451df.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/asynckit-npm-0.4.0-c718858525-7b78c451df.zip -------------------------------------------------------------------------------- /.yarn/cache/available-typed-arrays-npm-1.0.5-88f321e4d3-20eb47b3ce.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/available-typed-arrays-npm-1.0.5-88f321e4d3-20eb47b3ce.zip -------------------------------------------------------------------------------- /.yarn/cache/aws-sign2-npm-0.7.0-656c6cb84d-b148b0bb07.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/aws-sign2-npm-0.7.0-656c6cb84d-b148b0bb07.zip -------------------------------------------------------------------------------- /.yarn/cache/aws4-npm-1.12.0-af8e48a2ab-68f79708ac.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/aws4-npm-1.12.0-af8e48a2ab-68f79708ac.zip -------------------------------------------------------------------------------- /.yarn/cache/axios-npm-1.4.0-4d7ce8ca3e-7fb6a4313b.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/axios-npm-1.4.0-4d7ce8ca3e-7fb6a4313b.zip -------------------------------------------------------------------------------- /.yarn/cache/balanced-match-npm-1.0.2-a53c126459-9706c088a2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/balanced-match-npm-1.0.2-a53c126459-9706c088a2.zip -------------------------------------------------------------------------------- /.yarn/cache/base64-js-npm-1.5.1-b2f7275641-669632eb37.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/base64-js-npm-1.5.1-b2f7275641-669632eb37.zip -------------------------------------------------------------------------------- /.yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-8b04e88eb8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-8b04e88eb8.zip -------------------------------------------------------------------------------- /.yarn/cache/bcrypt-pbkdf-npm-1.0.2-80db8b16ed-4edfc9fe7d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/bcrypt-pbkdf-npm-1.0.2-80db8b16ed-4edfc9fe7d.zip -------------------------------------------------------------------------------- /.yarn/cache/bl-npm-1.2.3-49c4213ca5-123f097989.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/bl-npm-1.2.3-49c4213ca5-123f097989.zip -------------------------------------------------------------------------------- /.yarn/cache/bluebird-npm-3.7.2-6a54136ee3-869417503c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/bluebird-npm-3.7.2-6a54136ee3-869417503c.zip -------------------------------------------------------------------------------- /.yarn/cache/body-parser-npm-1.20.0-1820eff49a-12fffdeac8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/body-parser-npm-1.20.0-1820eff49a-12fffdeac8.zip -------------------------------------------------------------------------------- /.yarn/cache/brace-expansion-npm-1.1.11-fb95eb05ad-faf34a7bb0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/brace-expansion-npm-1.1.11-fb95eb05ad-faf34a7bb0.zip -------------------------------------------------------------------------------- /.yarn/cache/brace-expansion-npm-2.0.1-17aa2616f9-a61e7cd2e8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/brace-expansion-npm-2.0.1-17aa2616f9-a61e7cd2e8.zip -------------------------------------------------------------------------------- /.yarn/cache/browser-level-npm-1.0.1-f0600225ae-67fbc77ce8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/browser-level-npm-1.0.1-f0600225ae-67fbc77ce8.zip -------------------------------------------------------------------------------- /.yarn/cache/buffer-npm-6.0.3-cd90dfedfe-5ad23293d9.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/buffer-npm-6.0.3-cd90dfedfe-5ad23293d9.zip -------------------------------------------------------------------------------- /.yarn/cache/busboy-npm-0.3.1-87ec0dae5a-d2bcb788c4.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/busboy-npm-0.3.1-87ec0dae5a-d2bcb788c4.zip -------------------------------------------------------------------------------- /.yarn/cache/bytes-npm-3.1.2-28b8643004-e4bcd3948d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/bytes-npm-3.1.2-28b8643004-e4bcd3948d.zip -------------------------------------------------------------------------------- /.yarn/cache/cacache-npm-16.1.3-4e2088ed0d-d91409e6e5.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/cacache-npm-16.1.3-4e2088ed0d-d91409e6e5.zip -------------------------------------------------------------------------------- /.yarn/cache/call-bind-npm-1.0.2-c957124861-f8e31de9d1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/call-bind-npm-1.0.2-c957124861-f8e31de9d1.zip -------------------------------------------------------------------------------- /.yarn/cache/camelcase-npm-5.3.1-5db8af62c5-e6effce26b.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/camelcase-npm-5.3.1-5db8af62c5-e6effce26b.zip -------------------------------------------------------------------------------- /.yarn/cache/caseless-npm-0.12.0-e83bc5df83-b43bd4c440.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/caseless-npm-0.12.0-e83bc5df83-b43bd4c440.zip -------------------------------------------------------------------------------- /.yarn/cache/catering-npm-2.1.1-b116dcdfef-205daefa69.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/catering-npm-2.1.1-b116dcdfef-205daefa69.zip -------------------------------------------------------------------------------- /.yarn/cache/charenc-npm-0.0.2-aca0c2f207-81dcadbe57.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/charenc-npm-0.0.2-aca0c2f207-81dcadbe57.zip -------------------------------------------------------------------------------- /.yarn/cache/chownr-npm-2.0.0-638f1c9c61-c57cf9dd07.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/chownr-npm-2.0.0-638f1c9c61-c57cf9dd07.zip -------------------------------------------------------------------------------- /.yarn/cache/classic-level-npm-1.2.0-399f00877c-88ddd12f21.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/classic-level-npm-1.2.0-399f00877c-88ddd12f21.zip -------------------------------------------------------------------------------- /.yarn/cache/clean-stack-npm-2.2.0-a8ce435a5c-2ac8cd2b2f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/clean-stack-npm-2.2.0-a8ce435a5c-2ac8cd2b2f.zip -------------------------------------------------------------------------------- /.yarn/cache/cliui-npm-6.0.0-488b2414c6-4fcfd26d29.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/cliui-npm-6.0.0-488b2414c6-4fcfd26d29.zip -------------------------------------------------------------------------------- /.yarn/cache/cliui-npm-7.0.4-d6b8a9edb6-ce2e8f578a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/cliui-npm-7.0.4-d6b8a9edb6-ce2e8f578a.zip -------------------------------------------------------------------------------- /.yarn/cache/color-convert-npm-2.0.1-79730e935b-79e6bdb9fd.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/color-convert-npm-2.0.1-79730e935b-79e6bdb9fd.zip -------------------------------------------------------------------------------- /.yarn/cache/color-name-npm-1.1.4-025792b0ea-b044585952.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/color-name-npm-1.1.4-025792b0ea-b044585952.zip -------------------------------------------------------------------------------- /.yarn/cache/color-support-npm-1.1.3-3be5c53455-9b73568176.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/color-support-npm-1.1.3-3be5c53455-9b73568176.zip -------------------------------------------------------------------------------- /.yarn/cache/combined-stream-npm-1.0.8-dc14d4a63a-49fa4aeb49.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/combined-stream-npm-1.0.8-dc14d4a63a-49fa4aeb49.zip -------------------------------------------------------------------------------- /.yarn/cache/commander-npm-8.3.0-c0d18c66d5-0f82321821.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/commander-npm-8.3.0-c0d18c66d5-0f82321821.zip -------------------------------------------------------------------------------- /.yarn/cache/concat-map-npm-0.0.1-85a921b7ee-902a9f5d89.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/concat-map-npm-0.0.1-85a921b7ee-902a9f5d89.zip -------------------------------------------------------------------------------- /.yarn/cache/console-control-strings-npm-1.1.0-e3160e5275-8755d76787.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/console-control-strings-npm-1.1.0-e3160e5275-8755d76787.zip -------------------------------------------------------------------------------- /.yarn/cache/content-disposition-npm-0.5.4-2d93678616-afb9d545e2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/content-disposition-npm-0.5.4-2d93678616-afb9d545e2.zip -------------------------------------------------------------------------------- /.yarn/cache/content-type-npm-1.0.4-3b1a5ca16b-3d93585fda.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/content-type-npm-1.0.4-3b1a5ca16b-3d93585fda.zip -------------------------------------------------------------------------------- /.yarn/cache/cookie-npm-0.5.0-e2d58a161a-1f4bd2ca57.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/cookie-npm-0.5.0-e2d58a161a-1f4bd2ca57.zip -------------------------------------------------------------------------------- /.yarn/cache/cookie-signature-npm-1.0.6-93f325f7f0-f4e1b0a98a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/cookie-signature-npm-1.0.6-93f325f7f0-f4e1b0a98a.zip -------------------------------------------------------------------------------- /.yarn/cache/core-util-is-npm-1.0.2-9fc2b94dc3-7a4c925b49.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/core-util-is-npm-1.0.2-9fc2b94dc3-7a4c925b49.zip -------------------------------------------------------------------------------- /.yarn/cache/core-util-is-npm-1.0.3-ca74b76c90-9de8597363.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/core-util-is-npm-1.0.3-ca74b76c90-9de8597363.zip -------------------------------------------------------------------------------- /.yarn/cache/create-require-npm-1.1.1-839884ca2e-a9a1503d43.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/create-require-npm-1.1.1-839884ca2e-a9a1503d43.zip -------------------------------------------------------------------------------- /.yarn/cache/crypt-npm-0.0.2-033627d94f-baf4c7bbe0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/crypt-npm-0.0.2-033627d94f-baf4c7bbe0.zip -------------------------------------------------------------------------------- /.yarn/cache/dashdash-npm-1.14.1-be8f10a286-3634c24957.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/dashdash-npm-1.14.1-be8f10a286-3634c24957.zip -------------------------------------------------------------------------------- /.yarn/cache/data-uri-to-buffer-npm-5.0.1-a40e5ac026-10958f89c0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/data-uri-to-buffer-npm-5.0.1-a40e5ac026-10958f89c0.zip -------------------------------------------------------------------------------- /.yarn/cache/debug-npm-2.6.9-7d4cb597dc-d2f51589ca.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/debug-npm-2.6.9-7d4cb597dc-d2f51589ca.zip -------------------------------------------------------------------------------- /.yarn/cache/debug-npm-3.2.7-754e818c7a-b3d8c59407.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/debug-npm-3.2.7-754e818c7a-b3d8c59407.zip -------------------------------------------------------------------------------- /.yarn/cache/debug-npm-4.3.4-4513954577-3dbad3f94e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/debug-npm-4.3.4-4513954577-3dbad3f94e.zip -------------------------------------------------------------------------------- /.yarn/cache/decamelize-npm-1.2.0-c5a2fdc622-ad8c51a7e7.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/decamelize-npm-1.2.0-c5a2fdc622-ad8c51a7e7.zip -------------------------------------------------------------------------------- /.yarn/cache/define-properties-npm-1.2.0-3547cd0fd2-e60aee6a19.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/define-properties-npm-1.2.0-3547cd0fd2-e60aee6a19.zip -------------------------------------------------------------------------------- /.yarn/cache/degenerator-npm-5.0.1-97c678cdaf-a64fa39cdf.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/degenerator-npm-5.0.1-97c678cdaf-a64fa39cdf.zip -------------------------------------------------------------------------------- /.yarn/cache/delayed-stream-npm-1.0.0-c5a4c4cc02-46fe6e83e2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/delayed-stream-npm-1.0.0-c5a4c4cc02-46fe6e83e2.zip -------------------------------------------------------------------------------- /.yarn/cache/delegates-npm-1.0.0-9b1942d75f-a51744d9b5.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/delegates-npm-1.0.0-9b1942d75f-a51744d9b5.zip -------------------------------------------------------------------------------- /.yarn/cache/depd-npm-2.0.0-b6c51a4b43-abbe19c768.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/depd-npm-2.0.0-b6c51a4b43-abbe19c768.zip -------------------------------------------------------------------------------- /.yarn/cache/destroy-npm-1.2.0-6a511802e2-0acb300b74.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/destroy-npm-1.2.0-6a511802e2-0acb300b74.zip -------------------------------------------------------------------------------- /.yarn/cache/dicer-npm-0.3.0-ef4dcd1bb9-9f61aea61f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/dicer-npm-0.3.0-ef4dcd1bb9-9f61aea61f.zip -------------------------------------------------------------------------------- /.yarn/cache/diff-npm-4.0.2-73133c7102-f2c09b0ce4.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/diff-npm-4.0.2-73133c7102-f2c09b0ce4.zip -------------------------------------------------------------------------------- /.yarn/cache/dijkstrajs-npm-1.0.2-c58f4835d6-8cd822441a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/dijkstrajs-npm-1.0.2-c58f4835d6-8cd822441a.zip -------------------------------------------------------------------------------- /.yarn/cache/dotenv-npm-16.0.0-ef4a5ccded-664cebb51f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/dotenv-npm-16.0.0-ef4a5ccded-664cebb51f.zip -------------------------------------------------------------------------------- /.yarn/cache/ecc-jsbn-npm-0.1.2-85b7a7be89-22fef4b620.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/ecc-jsbn-npm-0.1.2-85b7a7be89-22fef4b620.zip -------------------------------------------------------------------------------- /.yarn/cache/ee-first-npm-1.1.1-33f8535b39-1b4cac778d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/ee-first-npm-1.1.1-33f8535b39-1b4cac778d.zip -------------------------------------------------------------------------------- /.yarn/cache/emoji-regex-npm-8.0.0-213764015c-d4c5c39d5a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/emoji-regex-npm-8.0.0-213764015c-d4c5c39d5a.zip -------------------------------------------------------------------------------- /.yarn/cache/encode-utf8-npm-1.0.3-8f92a23782-550224bf2a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/encode-utf8-npm-1.0.3-8f92a23782-550224bf2a.zip -------------------------------------------------------------------------------- /.yarn/cache/encodeurl-npm-1.0.2-f8c8454c41-e50e3d508c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/encodeurl-npm-1.0.2-f8c8454c41-e50e3d508c.zip -------------------------------------------------------------------------------- /.yarn/cache/encoding-npm-0.1.13-82a1837d30-bb98632f8f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/encoding-npm-0.1.13-82a1837d30-bb98632f8f.zip -------------------------------------------------------------------------------- /.yarn/cache/end-of-stream-npm-1.4.4-497fc6dee1-530a5a5a1e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/end-of-stream-npm-1.4.4-497fc6dee1-530a5a5a1e.zip -------------------------------------------------------------------------------- /.yarn/cache/env-paths-npm-2.2.1-7c7577428c-65b5df55a8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/env-paths-npm-2.2.1-7c7577428c-65b5df55a8.zip -------------------------------------------------------------------------------- /.yarn/cache/err-code-npm-2.0.3-082e0ff9a7-8b7b1be20d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/err-code-npm-2.0.3-082e0ff9a7-8b7b1be20d.zip -------------------------------------------------------------------------------- /.yarn/cache/es-abstract-npm-1.21.2-f4ebace1ab-037f55ee5e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/es-abstract-npm-1.21.2-f4ebace1ab-037f55ee5e.zip -------------------------------------------------------------------------------- /.yarn/cache/es-set-tostringtag-npm-2.0.1-c87b5de872-ec416a1294.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/es-set-tostringtag-npm-2.0.1-c87b5de872-ec416a1294.zip -------------------------------------------------------------------------------- /.yarn/cache/es-shim-unscopables-npm-1.0.0-06186593f1-83e95cadbb.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/es-shim-unscopables-npm-1.0.0-06186593f1-83e95cadbb.zip -------------------------------------------------------------------------------- /.yarn/cache/es-to-primitive-npm-1.2.1-b7a7eac6c5-4ead6671a2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/es-to-primitive-npm-1.2.1-b7a7eac6c5-4ead6671a2.zip -------------------------------------------------------------------------------- /.yarn/cache/escalade-npm-3.1.1-e02da076aa-a3e2a99f07.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/escalade-npm-3.1.1-e02da076aa-a3e2a99f07.zip -------------------------------------------------------------------------------- /.yarn/cache/escape-html-npm-1.0.3-376c22ee74-6213ca9ae0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/escape-html-npm-1.0.3-376c22ee74-6213ca9ae0.zip -------------------------------------------------------------------------------- /.yarn/cache/escodegen-npm-2.1.0-e0bf940745-096696407e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/escodegen-npm-2.1.0-e0bf940745-096696407e.zip -------------------------------------------------------------------------------- /.yarn/cache/esprima-npm-4.0.1-1084e98778-b45bc805a6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/esprima-npm-4.0.1-1084e98778-b45bc805a6.zip -------------------------------------------------------------------------------- /.yarn/cache/estraverse-npm-5.3.0-03284f8f63-072780882d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/estraverse-npm-5.3.0-03284f8f63-072780882d.zip -------------------------------------------------------------------------------- /.yarn/cache/esutils-npm-2.0.3-f865beafd5-22b5b08f74.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/esutils-npm-2.0.3-f865beafd5-22b5b08f74.zip -------------------------------------------------------------------------------- /.yarn/cache/etag-npm-1.8.1-54a3b989d9-571aeb3dbe.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/etag-npm-1.8.1-54a3b989d9-571aeb3dbe.zip -------------------------------------------------------------------------------- /.yarn/cache/eventemitter3-npm-3.1.2-a68b03e1ea-81e4e82b84.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/eventemitter3-npm-3.1.2-a68b03e1ea-81e4e82b84.zip -------------------------------------------------------------------------------- /.yarn/cache/express-fileupload-npm-1.3.1-5fb95eb44c-ebe810b4b1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/express-fileupload-npm-1.3.1-5fb95eb44c-ebe810b4b1.zip -------------------------------------------------------------------------------- /.yarn/cache/express-npm-4.18.1-842e583ae1-c3d44c92e4.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/express-npm-4.18.1-842e583ae1-c3d44c92e4.zip -------------------------------------------------------------------------------- /.yarn/cache/extend-npm-3.0.2-e1ca07ac54-a50a8309ca.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/extend-npm-3.0.2-e1ca07ac54-a50a8309ca.zip -------------------------------------------------------------------------------- /.yarn/cache/extsprintf-npm-1.3.0-61a92b324c-cee7a4a1e3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/extsprintf-npm-1.3.0-61a92b324c-cee7a4a1e3.zip -------------------------------------------------------------------------------- /.yarn/cache/extsprintf-npm-1.4.1-140b2f27ab-a2f29b2419.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/extsprintf-npm-1.4.1-140b2f27ab-a2f29b2419.zip -------------------------------------------------------------------------------- /.yarn/cache/fast-deep-equal-npm-3.1.3-790edcfcf5-e21a9d8d84.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/fast-deep-equal-npm-3.1.3-790edcfcf5-e21a9d8d84.zip -------------------------------------------------------------------------------- /.yarn/cache/fast-json-stable-stringify-npm-2.1.0-02e8905fda-b191531e36.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/fast-json-stable-stringify-npm-2.1.0-02e8905fda-b191531e36.zip -------------------------------------------------------------------------------- /.yarn/cache/file-type-npm-16.5.3-9e176829d5-38a4443d0f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/file-type-npm-16.5.3-9e176829d5-38a4443d0f.zip -------------------------------------------------------------------------------- /.yarn/cache/file-type-npm-3.9.0-fec2c20533-1db70b2485.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/file-type-npm-3.9.0-fec2c20533-1db70b2485.zip -------------------------------------------------------------------------------- /.yarn/cache/finalhandler-npm-1.2.0-593d001463-92effbfd32.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/finalhandler-npm-1.2.0-593d001463-92effbfd32.zip -------------------------------------------------------------------------------- /.yarn/cache/find-up-npm-4.1.0-c3ccf8d855-4c172680e8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/find-up-npm-4.1.0-c3ccf8d855-4c172680e8.zip -------------------------------------------------------------------------------- /.yarn/cache/follow-redirects-npm-1.15.2-1ec1dd82be-faa66059b6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/follow-redirects-npm-1.15.2-1ec1dd82be-faa66059b6.zip -------------------------------------------------------------------------------- /.yarn/cache/for-each-npm-0.3.3-0010ca8cdd-6c48ff2bc6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/for-each-npm-0.3.3-0010ca8cdd-6c48ff2bc6.zip -------------------------------------------------------------------------------- /.yarn/cache/forever-agent-npm-0.6.1-01dae53bf9-766ae6e220.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/forever-agent-npm-0.6.1-01dae53bf9-766ae6e220.zip -------------------------------------------------------------------------------- /.yarn/cache/form-data-npm-2.3.3-c016cc11c0-10c1780fa1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/form-data-npm-2.3.3-c016cc11c0-10c1780fa1.zip -------------------------------------------------------------------------------- /.yarn/cache/form-data-npm-2.5.1-47256351b5-5134ada56c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/form-data-npm-2.5.1-47256351b5-5134ada56c.zip -------------------------------------------------------------------------------- /.yarn/cache/form-data-npm-4.0.0-916facec2d-01135bf867.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/form-data-npm-4.0.0-916facec2d-01135bf867.zip -------------------------------------------------------------------------------- /.yarn/cache/forwarded-npm-0.2.0-6473dabe35-fd27e2394d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/forwarded-npm-0.2.0-6473dabe35-fd27e2394d.zip -------------------------------------------------------------------------------- /.yarn/cache/fresh-npm-0.5.2-ad2bb4c0a2-13ea8b08f9.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/fresh-npm-0.5.2-ad2bb4c0a2-13ea8b08f9.zip -------------------------------------------------------------------------------- /.yarn/cache/fs-extra-npm-8.1.0-197473387f-bf44f0e6ce.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/fs-extra-npm-8.1.0-197473387f-bf44f0e6ce.zip -------------------------------------------------------------------------------- /.yarn/cache/fs-minipass-npm-2.1.0-501ef87306-1b8d128dae.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/fs-minipass-npm-2.1.0-501ef87306-1b8d128dae.zip -------------------------------------------------------------------------------- /.yarn/cache/fs.realpath-npm-1.0.0-c8f05d8126-99ddea01a7.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/fs.realpath-npm-1.0.0-c8f05d8126-99ddea01a7.zip -------------------------------------------------------------------------------- /.yarn/cache/function-bind-npm-1.1.1-b56b322ae9-b32fbaebb3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/function-bind-npm-1.1.1-b56b322ae9-b32fbaebb3.zip -------------------------------------------------------------------------------- /.yarn/cache/function.prototype.name-npm-1.1.5-e776a642bb-acd21d733a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/function.prototype.name-npm-1.1.5-e776a642bb-acd21d733a.zip -------------------------------------------------------------------------------- /.yarn/cache/functions-have-names-npm-1.2.3-e5cf1e2208-c3f1f5ba20.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/functions-have-names-npm-1.2.3-e5cf1e2208-c3f1f5ba20.zip -------------------------------------------------------------------------------- /.yarn/cache/gauge-npm-4.0.4-8f878385e9-788b6bfe52.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/gauge-npm-4.0.4-8f878385e9-788b6bfe52.zip -------------------------------------------------------------------------------- /.yarn/cache/get-caller-file-npm-2.0.5-80e8a86305-b9769a836d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/get-caller-file-npm-2.0.5-80e8a86305-b9769a836d.zip -------------------------------------------------------------------------------- /.yarn/cache/get-intrinsic-npm-1.1.1-7e868745da-a9fe2ca8fa.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/get-intrinsic-npm-1.1.1-7e868745da-a9fe2ca8fa.zip -------------------------------------------------------------------------------- /.yarn/cache/get-intrinsic-npm-1.2.0-eb08ea9b1d-78fc0487b7.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/get-intrinsic-npm-1.2.0-eb08ea9b1d-78fc0487b7.zip -------------------------------------------------------------------------------- /.yarn/cache/get-symbol-description-npm-1.0.0-9c95a4bc1f-9ceff8fe96.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/get-symbol-description-npm-1.0.0-9c95a4bc1f-9ceff8fe96.zip -------------------------------------------------------------------------------- /.yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-a8aec70e1c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-a8aec70e1c.zip -------------------------------------------------------------------------------- /.yarn/cache/getpass-npm-0.1.7-519164a3be-ab18d55661.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/getpass-npm-0.1.7-519164a3be-ab18d55661.zip -------------------------------------------------------------------------------- /.yarn/cache/glob-npm-7.2.3-2d866d17a5-29452e97b3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/glob-npm-7.2.3-2d866d17a5-29452e97b3.zip -------------------------------------------------------------------------------- /.yarn/cache/glob-npm-8.1.0-65f64af8b1-92fbea3221.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/glob-npm-8.1.0-65f64af8b1-92fbea3221.zip -------------------------------------------------------------------------------- /.yarn/cache/globalthis-npm-1.0.3-96cd56020d-fbd7d760dc.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/globalthis-npm-1.0.3-96cd56020d-fbd7d760dc.zip -------------------------------------------------------------------------------- /.yarn/cache/gopd-npm-1.0.1-10c1d0b534-a5ccfb8806.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/gopd-npm-1.0.1-10c1d0b534-a5ccfb8806.zip -------------------------------------------------------------------------------- /.yarn/cache/graceful-fs-npm-4.2.10-79c70989ca-3f109d70ae.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/graceful-fs-npm-4.2.10-79c70989ca-3f109d70ae.zip -------------------------------------------------------------------------------- /.yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-ac85f94da9.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-ac85f94da9.zip -------------------------------------------------------------------------------- /.yarn/cache/har-schema-npm-2.0.0-3a318c0ca5-d8946348f3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/har-schema-npm-2.0.0-3a318c0ca5-d8946348f3.zip -------------------------------------------------------------------------------- /.yarn/cache/har-validator-npm-5.1.5-bd9ac162f5-b998a7269c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/har-validator-npm-5.1.5-bd9ac162f5-b998a7269c.zip -------------------------------------------------------------------------------- /.yarn/cache/has-bigints-npm-1.0.2-52732e614d-390e31e7be.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/has-bigints-npm-1.0.2-52732e614d-390e31e7be.zip -------------------------------------------------------------------------------- /.yarn/cache/has-npm-1.0.3-b7f00631c1-b9ad53d53b.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/has-npm-1.0.3-b7f00631c1-b9ad53d53b.zip -------------------------------------------------------------------------------- /.yarn/cache/has-property-descriptors-npm-1.0.0-56289b918d-a6d3f0a266.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/has-property-descriptors-npm-1.0.0-56289b918d-a6d3f0a266.zip -------------------------------------------------------------------------------- /.yarn/cache/has-proto-npm-1.0.1-631ea9d820-febc5b5b53.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/has-proto-npm-1.0.1-631ea9d820-febc5b5b53.zip -------------------------------------------------------------------------------- /.yarn/cache/has-symbols-npm-1.0.3-1986bff2c4-a054c40c63.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/has-symbols-npm-1.0.3-1986bff2c4-a054c40c63.zip -------------------------------------------------------------------------------- /.yarn/cache/has-tostringtag-npm-1.0.0-b1fcf3ab55-cc12eb28cb.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/has-tostringtag-npm-1.0.0-b1fcf3ab55-cc12eb28cb.zip -------------------------------------------------------------------------------- /.yarn/cache/has-unicode-npm-2.0.1-893adb4747-1eab07a743.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/has-unicode-npm-2.0.1-893adb4747-1eab07a743.zip -------------------------------------------------------------------------------- /.yarn/cache/http-cache-semantics-npm-4.1.1-1120131375-83ac0bc60b.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/http-cache-semantics-npm-4.1.1-1120131375-83ac0bc60b.zip -------------------------------------------------------------------------------- /.yarn/cache/http-errors-npm-2.0.0-3f1c503428-9b0a378266.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/http-errors-npm-2.0.0-3f1c503428-9b0a378266.zip -------------------------------------------------------------------------------- /.yarn/cache/http-proxy-agent-npm-5.0.0-7f1f121b83-e2ee1ff165.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/http-proxy-agent-npm-5.0.0-7f1f121b83-e2ee1ff165.zip -------------------------------------------------------------------------------- /.yarn/cache/http-proxy-agent-npm-7.0.0-106a57cc8c-48d4fac997.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/http-proxy-agent-npm-7.0.0-106a57cc8c-48d4fac997.zip -------------------------------------------------------------------------------- /.yarn/cache/http-signature-npm-1.2.0-ee92426f34-3324598712.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/http-signature-npm-1.2.0-ee92426f34-3324598712.zip -------------------------------------------------------------------------------- /.yarn/cache/https-proxy-agent-npm-5.0.1-42d65f358e-571fccdf38.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/https-proxy-agent-npm-5.0.1-42d65f358e-571fccdf38.zip -------------------------------------------------------------------------------- /.yarn/cache/https-proxy-agent-npm-7.0.1-a2d5d93ee0-2d765c3186.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/https-proxy-agent-npm-7.0.1-a2d5d93ee0-2d765c3186.zip -------------------------------------------------------------------------------- /.yarn/cache/humanize-ms-npm-1.2.1-e942bd7329-9c7a74a282.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/humanize-ms-npm-1.2.1-e942bd7329-9c7a74a282.zip -------------------------------------------------------------------------------- /.yarn/cache/iconv-lite-npm-0.4.24-c5c4ac6695-bd9f120f5a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/iconv-lite-npm-0.4.24-c5c4ac6695-bd9f120f5a.zip -------------------------------------------------------------------------------- /.yarn/cache/iconv-lite-npm-0.6.2-13e85ec7dc-03e03eb9fc.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/iconv-lite-npm-0.6.2-13e85ec7dc-03e03eb9fc.zip -------------------------------------------------------------------------------- /.yarn/cache/iconv-lite-npm-0.6.3-24b8aae27e-3f60d47a5c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/iconv-lite-npm-0.6.3-24b8aae27e-3f60d47a5c.zip -------------------------------------------------------------------------------- /.yarn/cache/ieee754-npm-1.2.1-fb63b3caeb-5144c0c981.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/ieee754-npm-1.2.1-fb63b3caeb-5144c0c981.zip -------------------------------------------------------------------------------- /.yarn/cache/imurmurhash-npm-0.1.4-610c5068a0-7cae75c8cd.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/imurmurhash-npm-0.1.4-610c5068a0-7cae75c8cd.zip -------------------------------------------------------------------------------- /.yarn/cache/indent-string-npm-4.0.0-7b717435b2-824cfb9929.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/indent-string-npm-4.0.0-7b717435b2-824cfb9929.zip -------------------------------------------------------------------------------- /.yarn/cache/infer-owner-npm-1.0.4-685ac3d2af-181e732764.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/infer-owner-npm-1.0.4-685ac3d2af-181e732764.zip -------------------------------------------------------------------------------- /.yarn/cache/inflight-npm-1.0.6-ccedb4b908-f4f76aa072.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/inflight-npm-1.0.6-ccedb4b908-f4f76aa072.zip -------------------------------------------------------------------------------- /.yarn/cache/inherits-npm-2.0.4-c66b3957a0-4a48a73384.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/inherits-npm-2.0.4-c66b3957a0-4a48a73384.zip -------------------------------------------------------------------------------- /.yarn/cache/internal-slot-npm-1.0.5-a2241f3e66-97e84046bf.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/internal-slot-npm-1.0.5-a2241f3e66-97e84046bf.zip -------------------------------------------------------------------------------- /.yarn/cache/ip-npm-1.1.8-abea558b72-a2ade53eb3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/ip-npm-1.1.8-abea558b72-a2ade53eb3.zip -------------------------------------------------------------------------------- /.yarn/cache/ip-npm-2.0.0-204facb3cc-cfcfac6b87.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/ip-npm-2.0.0-204facb3cc-cfcfac6b87.zip -------------------------------------------------------------------------------- /.yarn/cache/ipaddr.js-npm-1.9.1-19ae7878b4-f88d382598.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/ipaddr.js-npm-1.9.1-19ae7878b4-f88d382598.zip -------------------------------------------------------------------------------- /.yarn/cache/is-array-buffer-npm-3.0.2-0dec897785-dcac9dda66.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/is-array-buffer-npm-3.0.2-0dec897785-dcac9dda66.zip -------------------------------------------------------------------------------- /.yarn/cache/is-bigint-npm-1.0.4-31c2eecbc9-c56edfe09b.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/is-bigint-npm-1.0.4-31c2eecbc9-c56edfe09b.zip -------------------------------------------------------------------------------- /.yarn/cache/is-boolean-object-npm-1.1.2-ecbd575e6a-c03b23dbaa.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/is-boolean-object-npm-1.1.2-ecbd575e6a-c03b23dbaa.zip -------------------------------------------------------------------------------- /.yarn/cache/is-buffer-npm-1.1.6-08199d9ccc-4a186d995d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/is-buffer-npm-1.1.6-08199d9ccc-4a186d995d.zip -------------------------------------------------------------------------------- /.yarn/cache/is-buffer-npm-2.0.5-17e563f277-764c9ad8b5.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/is-buffer-npm-2.0.5-17e563f277-764c9ad8b5.zip -------------------------------------------------------------------------------- /.yarn/cache/is-callable-npm-1.2.7-808a303e61-61fd57d03b.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/is-callable-npm-1.2.7-808a303e61-61fd57d03b.zip -------------------------------------------------------------------------------- /.yarn/cache/is-date-object-npm-1.0.5-88f3d08b5e-baa9077cdf.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/is-date-object-npm-1.0.5-88f3d08b5e-baa9077cdf.zip -------------------------------------------------------------------------------- /.yarn/cache/is-fullwidth-code-point-npm-3.0.0-1ecf4ebee5-44a30c2945.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/is-fullwidth-code-point-npm-3.0.0-1ecf4ebee5-44a30c2945.zip -------------------------------------------------------------------------------- /.yarn/cache/is-lambda-npm-1.0.1-7ab55bc8a8-93a32f0194.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/is-lambda-npm-1.0.1-7ab55bc8a8-93a32f0194.zip -------------------------------------------------------------------------------- /.yarn/cache/is-negative-zero-npm-2.0.2-0adac91f15-f3232194c4.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/is-negative-zero-npm-2.0.2-0adac91f15-f3232194c4.zip -------------------------------------------------------------------------------- /.yarn/cache/is-number-object-npm-1.0.7-539d0e274d-d1e8d01bb0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/is-number-object-npm-1.0.7-539d0e274d-d1e8d01bb0.zip -------------------------------------------------------------------------------- /.yarn/cache/is-regex-npm-1.1.4-cca193ef11-362399b335.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/is-regex-npm-1.1.4-cca193ef11-362399b335.zip -------------------------------------------------------------------------------- /.yarn/cache/is-shared-array-buffer-npm-1.0.2-32e4181fcd-9508929cf1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/is-shared-array-buffer-npm-1.0.2-32e4181fcd-9508929cf1.zip -------------------------------------------------------------------------------- /.yarn/cache/is-string-npm-1.0.7-9f7066daed-323b3d0462.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/is-string-npm-1.0.7-9f7066daed-323b3d0462.zip -------------------------------------------------------------------------------- /.yarn/cache/is-symbol-npm-1.0.4-eb9baac703-92805812ef.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/is-symbol-npm-1.0.4-eb9baac703-92805812ef.zip -------------------------------------------------------------------------------- /.yarn/cache/is-typed-array-npm-1.1.10-fe4ef83cdc-aac6ecb59d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/is-typed-array-npm-1.1.10-fe4ef83cdc-aac6ecb59d.zip -------------------------------------------------------------------------------- /.yarn/cache/is-typedarray-npm-1.0.0-bbd99de5b6-3508c6cd0a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/is-typedarray-npm-1.0.0-bbd99de5b6-3508c6cd0a.zip -------------------------------------------------------------------------------- /.yarn/cache/is-weakref-npm-1.0.2-ff80e8c314-95bd9a57cd.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/is-weakref-npm-1.0.2-ff80e8c314-95bd9a57cd.zip -------------------------------------------------------------------------------- /.yarn/cache/isarray-npm-1.0.0-db4f547720-f032df8e02.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/isarray-npm-1.0.0-db4f547720-f032df8e02.zip -------------------------------------------------------------------------------- /.yarn/cache/isexe-npm-2.0.0-b58870bd2e-26bf6c5480.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/isexe-npm-2.0.0-b58870bd2e-26bf6c5480.zip -------------------------------------------------------------------------------- /.yarn/cache/isstream-npm-0.1.2-8581c75385-1eb2fe63a7.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/isstream-npm-0.1.2-8581c75385-1eb2fe63a7.zip -------------------------------------------------------------------------------- /.yarn/cache/jsbn-npm-0.1.1-0eb7132404-e5ff29c1b8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/jsbn-npm-0.1.1-0eb7132404-e5ff29c1b8.zip -------------------------------------------------------------------------------- /.yarn/cache/json-schema-npm-0.4.0-e776313070-66389434c3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/json-schema-npm-0.4.0-e776313070-66389434c3.zip -------------------------------------------------------------------------------- /.yarn/cache/json-schema-traverse-npm-0.4.1-4759091693-7486074d3b.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/json-schema-traverse-npm-0.4.1-4759091693-7486074d3b.zip -------------------------------------------------------------------------------- /.yarn/cache/json-stringify-safe-npm-5.0.1-064ddd6ab4-48ec0adad5.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/json-stringify-safe-npm-5.0.1-064ddd6ab4-48ec0adad5.zip -------------------------------------------------------------------------------- /.yarn/cache/jsonfile-npm-4.0.0-10ce3aea15-6447d6224f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/jsonfile-npm-4.0.0-10ce3aea15-6447d6224f.zip -------------------------------------------------------------------------------- /.yarn/cache/jsprim-npm-1.4.2-1ae6cade9a-2ad1b9fdcc.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/jsprim-npm-1.4.2-1ae6cade9a-2ad1b9fdcc.zip -------------------------------------------------------------------------------- /.yarn/cache/kleur-npm-3.0.3-f6f53649a4-df82cd1e17.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/kleur-npm-3.0.3-f6f53649a4-df82cd1e17.zip -------------------------------------------------------------------------------- /.yarn/cache/level-npm-8.0.0-c35f5fe17a-13eb25bd71.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/level-npm-8.0.0-c35f5fe17a-13eb25bd71.zip -------------------------------------------------------------------------------- /.yarn/cache/level-supports-npm-4.0.1-78eaf0b919-d4552b42bb.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/level-supports-npm-4.0.1-78eaf0b919-d4552b42bb.zip -------------------------------------------------------------------------------- /.yarn/cache/level-transcoder-npm-1.0.1-8821d7bed1-304f08d802.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/level-transcoder-npm-1.0.1-8821d7bed1-304f08d802.zip -------------------------------------------------------------------------------- /.yarn/cache/locate-path-npm-5.0.0-46580c43e4-83e51725e6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/locate-path-npm-5.0.0-46580c43e4-83e51725e6.zip -------------------------------------------------------------------------------- /.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip -------------------------------------------------------------------------------- /.yarn/cache/lodash.merge-npm-4.6.2-77cb4416bf-ad580b4bdb.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/lodash.merge-npm-4.6.2-77cb4416bf-ad580b4bdb.zip -------------------------------------------------------------------------------- /.yarn/cache/lru-cache-npm-6.0.0-b4c8668fe1-f97f499f89.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/lru-cache-npm-6.0.0-b4c8668fe1-f97f499f89.zip -------------------------------------------------------------------------------- /.yarn/cache/lru-cache-npm-7.18.3-e68be5b11c-e550d77238.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/lru-cache-npm-7.18.3-e68be5b11c-e550d77238.zip -------------------------------------------------------------------------------- /.yarn/cache/make-error-npm-1.3.6-ccb85d9458-b86e5e0e25.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/make-error-npm-1.3.6-ccb85d9458-b86e5e0e25.zip -------------------------------------------------------------------------------- /.yarn/cache/make-fetch-happen-npm-10.2.1-f1cc7cd2df-2332eb9a8e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/make-fetch-happen-npm-10.2.1-f1cc7cd2df-2332eb9a8e.zip -------------------------------------------------------------------------------- /.yarn/cache/md5-npm-2.3.0-86c49d3915-a63cacf401.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/md5-npm-2.3.0-86c49d3915-a63cacf401.zip -------------------------------------------------------------------------------- /.yarn/cache/media-typer-npm-0.3.0-8674f8f0f5-af1b38516c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/media-typer-npm-0.3.0-8674f8f0f5-af1b38516c.zip -------------------------------------------------------------------------------- /.yarn/cache/media-typer-npm-1.1.0-eccc8b846d-a58dd60804.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/media-typer-npm-1.1.0-eccc8b846d-a58dd60804.zip -------------------------------------------------------------------------------- /.yarn/cache/merge-descriptors-npm-1.0.1-615287aaa8-5abc259d2a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/merge-descriptors-npm-1.0.1-615287aaa8-5abc259d2a.zip -------------------------------------------------------------------------------- /.yarn/cache/metaflac-js2-npm-1.0.8-4f08399053-3aafe4490c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/metaflac-js2-npm-1.0.8-4f08399053-3aafe4490c.zip -------------------------------------------------------------------------------- /.yarn/cache/methods-npm-1.1.2-92f6fdb39b-0917ff4041.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/methods-npm-1.1.2-92f6fdb39b-0917ff4041.zip -------------------------------------------------------------------------------- /.yarn/cache/mime-db-npm-1.52.0-b5371d6fd2-0d99a03585.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/mime-db-npm-1.52.0-b5371d6fd2-0d99a03585.zip -------------------------------------------------------------------------------- /.yarn/cache/mime-npm-1.6.0-60ae95038a-fef25e3926.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/mime-npm-1.6.0-60ae95038a-fef25e3926.zip -------------------------------------------------------------------------------- /.yarn/cache/mime-types-npm-2.1.35-dd9ea9f3e2-89a5b7f1de.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/mime-types-npm-2.1.35-dd9ea9f3e2-89a5b7f1de.zip -------------------------------------------------------------------------------- /.yarn/cache/minimatch-npm-3.1.2-9405269906-c154e56640.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/minimatch-npm-3.1.2-9405269906-c154e56640.zip -------------------------------------------------------------------------------- /.yarn/cache/minimatch-npm-5.1.6-1e71429f4c-7564208ef8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/minimatch-npm-5.1.6-1e71429f4c-7564208ef8.zip -------------------------------------------------------------------------------- /.yarn/cache/minipass-collect-npm-1.0.2-3b4676eab5-14df761028.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/minipass-collect-npm-1.0.2-3b4676eab5-14df761028.zip -------------------------------------------------------------------------------- /.yarn/cache/minipass-fetch-npm-2.1.2-9b21a5c930-3f216be791.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/minipass-fetch-npm-2.1.2-9b21a5c930-3f216be791.zip -------------------------------------------------------------------------------- /.yarn/cache/minipass-flush-npm-1.0.5-efe79d9826-56269a0b22.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/minipass-flush-npm-1.0.5-efe79d9826-56269a0b22.zip -------------------------------------------------------------------------------- /.yarn/cache/minipass-npm-3.3.6-b8d93a945b-a30d083c80.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/minipass-npm-3.3.6-b8d93a945b-a30d083c80.zip -------------------------------------------------------------------------------- /.yarn/cache/minipass-npm-4.2.5-25860eb433-4f9c19af23.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/minipass-npm-4.2.5-25860eb433-4f9c19af23.zip -------------------------------------------------------------------------------- /.yarn/cache/minipass-pipeline-npm-1.2.4-5924cb077f-b14240dac0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/minipass-pipeline-npm-1.2.4-5924cb077f-b14240dac0.zip -------------------------------------------------------------------------------- /.yarn/cache/minipass-sized-npm-1.0.3-306d86f432-79076749fc.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/minipass-sized-npm-1.0.3-306d86f432-79076749fc.zip -------------------------------------------------------------------------------- /.yarn/cache/minizlib-npm-2.1.2-ea89cd0cfb-f1fdeac0b0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/minizlib-npm-2.1.2-ea89cd0cfb-f1fdeac0b0.zip -------------------------------------------------------------------------------- /.yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-a96865108c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-a96865108c.zip -------------------------------------------------------------------------------- /.yarn/cache/module-error-npm-1.0.2-4f8221ee3c-5d653e35bd.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/module-error-npm-1.0.2-4f8221ee3c-5d653e35bd.zip -------------------------------------------------------------------------------- /.yarn/cache/ms-npm-2.0.0-9e1101a471-0e6a22b8b7.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/ms-npm-2.0.0-9e1101a471-0e6a22b8b7.zip -------------------------------------------------------------------------------- /.yarn/cache/ms-npm-2.1.2-ec0c1512ff-673cdb2c31.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/ms-npm-2.1.2-ec0c1512ff-673cdb2c31.zip -------------------------------------------------------------------------------- /.yarn/cache/ms-npm-2.1.3-81ff3cfac1-aa92de6080.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/ms-npm-2.1.3-81ff3cfac1-aa92de6080.zip -------------------------------------------------------------------------------- /.yarn/cache/music-metadata-npm-7.12.3-6f16defdb6-027667791a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/music-metadata-npm-7.12.3-6f16defdb6-027667791a.zip -------------------------------------------------------------------------------- /.yarn/cache/napi-macros-npm-2.0.0-f996ef3cad-3038481938.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/napi-macros-npm-2.0.0-f996ef3cad-3038481938.zip -------------------------------------------------------------------------------- /.yarn/cache/needle-npm-2.9.1-f40e591726-746ae3a378.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/needle-npm-2.9.1-f40e591726-746ae3a378.zip -------------------------------------------------------------------------------- /.yarn/cache/negotiator-npm-0.6.3-9d50e36171-b8ffeb1e26.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/negotiator-npm-0.6.3-9d50e36171-b8ffeb1e26.zip -------------------------------------------------------------------------------- /.yarn/cache/netmask-npm-2.0.2-2299510a4d-c65cb8d3f7.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/netmask-npm-2.0.2-2299510a4d-c65cb8d3f7.zip -------------------------------------------------------------------------------- /.yarn/cache/node-gyp-build-npm-4.6.0-5434aac3e5-25d78c5ef1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/node-gyp-build-npm-4.6.0-5434aac3e5-25d78c5ef1.zip -------------------------------------------------------------------------------- /.yarn/cache/node-gyp-npm-9.3.1-43540bab9c-b860e9976f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/node-gyp-npm-9.3.1-43540bab9c-b860e9976f.zip -------------------------------------------------------------------------------- /.yarn/cache/node-id3-npm-0.2.3-a83fba2d11-457e5daf11.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/node-id3-npm-0.2.3-a83fba2d11-457e5daf11.zip -------------------------------------------------------------------------------- /.yarn/cache/node-telegram-bot-api-npm-0.61.0-57fe1be059-f3939a3411.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/node-telegram-bot-api-npm-0.61.0-57fe1be059-f3939a3411.zip -------------------------------------------------------------------------------- /.yarn/cache/nopt-npm-6.0.0-5ea8050815-82149371f8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/nopt-npm-6.0.0-5ea8050815-82149371f8.zip -------------------------------------------------------------------------------- /.yarn/cache/npmlog-npm-6.0.2-e0e69455c7-ae238cd264.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/npmlog-npm-6.0.2-e0e69455c7-ae238cd264.zip -------------------------------------------------------------------------------- /.yarn/cache/oauth-sign-npm-0.9.0-7aa9422221-8f5497a127.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/oauth-sign-npm-0.9.0-7aa9422221-8f5497a127.zip -------------------------------------------------------------------------------- /.yarn/cache/object-inspect-npm-1.12.0-d064fa559a-2b36d4001a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/object-inspect-npm-1.12.0-d064fa559a-2b36d4001a.zip -------------------------------------------------------------------------------- /.yarn/cache/object-inspect-npm-1.12.3-1e7d20f5ff-dabfd824d9.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/object-inspect-npm-1.12.3-1e7d20f5ff-dabfd824d9.zip -------------------------------------------------------------------------------- /.yarn/cache/object-keys-npm-1.1.1-1bf2f1be93-b363c5e764.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/object-keys-npm-1.1.1-1bf2f1be93-b363c5e764.zip -------------------------------------------------------------------------------- /.yarn/cache/object.assign-npm-4.1.4-fb3deb1c3a-76cab513a5.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/object.assign-npm-4.1.4-fb3deb1c3a-76cab513a5.zip -------------------------------------------------------------------------------- /.yarn/cache/on-finished-npm-2.4.1-907af70f88-d20929a25e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/on-finished-npm-2.4.1-907af70f88-d20929a25e.zip -------------------------------------------------------------------------------- /.yarn/cache/once-npm-1.4.0-ccf03ef07a-cd0a885013.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/once-npm-1.4.0-ccf03ef07a-cd0a885013.zip -------------------------------------------------------------------------------- /.yarn/cache/p-limit-npm-2.3.0-94a0310039-84ff17f1a3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/p-limit-npm-2.3.0-94a0310039-84ff17f1a3.zip -------------------------------------------------------------------------------- /.yarn/cache/p-locate-npm-4.1.0-eec6872537-513bd14a45.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/p-locate-npm-4.1.0-eec6872537-513bd14a45.zip -------------------------------------------------------------------------------- /.yarn/cache/p-map-npm-4.0.0-4677ae07c7-cb0ab21ec0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/p-map-npm-4.0.0-4677ae07c7-cb0ab21ec0.zip -------------------------------------------------------------------------------- /.yarn/cache/p-try-npm-2.2.0-e0390dbaf8-f8a8e9a769.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/p-try-npm-2.2.0-e0390dbaf8-f8a8e9a769.zip -------------------------------------------------------------------------------- /.yarn/cache/pac-proxy-agent-npm-7.0.0-da163d166e-45fe10ae58.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/pac-proxy-agent-npm-7.0.0-da163d166e-45fe10ae58.zip -------------------------------------------------------------------------------- /.yarn/cache/pac-resolver-npm-7.0.0-904b294260-fa3a898c09.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/pac-resolver-npm-7.0.0-904b294260-fa3a898c09.zip -------------------------------------------------------------------------------- /.yarn/cache/parseurl-npm-1.3.3-1542397e00-407cee8e0a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/parseurl-npm-1.3.3-1542397e00-407cee8e0a.zip -------------------------------------------------------------------------------- /.yarn/cache/path-exists-npm-4.0.0-e9e4f63eb0-505807199d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/path-exists-npm-4.0.0-e9e4f63eb0-505807199d.zip -------------------------------------------------------------------------------- /.yarn/cache/path-is-absolute-npm-1.0.1-31bc695ffd-060840f92c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/path-is-absolute-npm-1.0.1-31bc695ffd-060840f92c.zip -------------------------------------------------------------------------------- /.yarn/cache/path-to-regexp-npm-0.1.7-2605347373-69a14ea24d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/path-to-regexp-npm-0.1.7-2605347373-69a14ea24d.zip -------------------------------------------------------------------------------- /.yarn/cache/peek-readable-npm-4.1.0-26439d9ff8-02c673f9bc.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/peek-readable-npm-4.1.0-26439d9ff8-02c673f9bc.zip -------------------------------------------------------------------------------- /.yarn/cache/performance-now-npm-2.1.0-45e3ce7e49-534e641aa8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/performance-now-npm-2.1.0-45e3ce7e49-534e641aa8.zip -------------------------------------------------------------------------------- /.yarn/cache/pngjs-npm-5.0.0-e8ba79f838-04e912cc45.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/pngjs-npm-5.0.0-e8ba79f838-04e912cc45.zip -------------------------------------------------------------------------------- /.yarn/cache/probe-image-size-npm-7.2.3-2b6ee36e6f-1a5eeb8f5c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/probe-image-size-npm-7.2.3-2b6ee36e6f-1a5eeb8f5c.zip -------------------------------------------------------------------------------- /.yarn/cache/process-nextick-args-npm-2.0.1-b8d7971609-1d38588e52.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/process-nextick-args-npm-2.0.1-b8d7971609-1d38588e52.zip -------------------------------------------------------------------------------- /.yarn/cache/promise-inflight-npm-1.0.1-5bb925afac-2274948309.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/promise-inflight-npm-1.0.1-5bb925afac-2274948309.zip -------------------------------------------------------------------------------- /.yarn/cache/promise-retry-npm-2.0.1-871f0b01b7-f96a3f6d90.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/promise-retry-npm-2.0.1-871f0b01b7-f96a3f6d90.zip -------------------------------------------------------------------------------- /.yarn/cache/prompts-npm-2.4.2-f5d25d5eea-d8fd1fe638.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/prompts-npm-2.4.2-f5d25d5eea-d8fd1fe638.zip -------------------------------------------------------------------------------- /.yarn/cache/proxy-addr-npm-2.0.7-dae6552872-29c6990ce9.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/proxy-addr-npm-2.0.7-dae6552872-29c6990ce9.zip -------------------------------------------------------------------------------- /.yarn/cache/proxy-from-env-npm-1.1.0-c13d07f26b-ed7fcc2ba0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/proxy-from-env-npm-1.1.0-c13d07f26b-ed7fcc2ba0.zip -------------------------------------------------------------------------------- /.yarn/cache/psl-npm-1.9.0-a546edad1a-20c4277f64.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/psl-npm-1.9.0-a546edad1a-20c4277f64.zip -------------------------------------------------------------------------------- /.yarn/cache/pump-npm-2.0.1-05afac7fc4-e9f26a17be.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/pump-npm-2.0.1-05afac7fc4-e9f26a17be.zip -------------------------------------------------------------------------------- /.yarn/cache/punycode-npm-2.3.0-df4bdce06b-39f760e09a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/punycode-npm-2.3.0-df4bdce06b-39f760e09a.zip -------------------------------------------------------------------------------- /.yarn/cache/qrcode-npm-1.5.0-0f02dca802-a0857713d4.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/qrcode-npm-1.5.0-0f02dca802-a0857713d4.zip -------------------------------------------------------------------------------- /.yarn/cache/qs-npm-6.10.3-172e1a3fb7-0fac5e6c71.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/qs-npm-6.10.3-172e1a3fb7-0fac5e6c71.zip -------------------------------------------------------------------------------- /.yarn/cache/qs-npm-6.5.3-90b2635484-6f20bf08ca.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/qs-npm-6.5.3-90b2635484-6f20bf08ca.zip -------------------------------------------------------------------------------- /.yarn/cache/queue-microtask-npm-1.2.3-fcc98e4e2d-b676f8c040.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/queue-microtask-npm-1.2.3-fcc98e4e2d-b676f8c040.zip -------------------------------------------------------------------------------- /.yarn/cache/range-parser-npm-1.2.1-1a470fa390-0a268d4fea.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/range-parser-npm-1.2.1-1a470fa390-0a268d4fea.zip -------------------------------------------------------------------------------- /.yarn/cache/raw-body-npm-2.5.1-9dd1d9fff9-5362adff15.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/raw-body-npm-2.5.1-9dd1d9fff9-5362adff15.zip -------------------------------------------------------------------------------- /.yarn/cache/readable-stream-npm-2.3.8-67a94c2cb1-6564546703.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/readable-stream-npm-2.3.8-67a94c2cb1-6564546703.zip -------------------------------------------------------------------------------- /.yarn/cache/readable-stream-npm-3.6.0-23a4a5eb56-d4ea81502d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/readable-stream-npm-3.6.0-23a4a5eb56-d4ea81502d.zip -------------------------------------------------------------------------------- /.yarn/cache/readable-web-to-node-stream-npm-3.0.2-682f5de297-8c56cc62c6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/readable-web-to-node-stream-npm-3.0.2-682f5de297-8c56cc62c6.zip -------------------------------------------------------------------------------- /.yarn/cache/regexp.prototype.flags-npm-1.4.3-df1c08b65d-51228bae73.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/regexp.prototype.flags-npm-1.4.3-df1c08b65d-51228bae73.zip -------------------------------------------------------------------------------- /.yarn/cache/request-npm-2.88.2-f4a57c72c4-4e112c087f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/request-npm-2.88.2-f4a57c72c4-4e112c087f.zip -------------------------------------------------------------------------------- /.yarn/cache/request-promise-core-npm-1.1.4-cb9fff6c90-c798bafd55.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/request-promise-core-npm-1.1.4-cb9fff6c90-c798bafd55.zip -------------------------------------------------------------------------------- /.yarn/cache/request-promise-npm-4.2.6-37010e90c3-1856c718cb.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/request-promise-npm-4.2.6-37010e90c3-1856c718cb.zip -------------------------------------------------------------------------------- /.yarn/cache/require-directory-npm-2.1.1-8608aee50b-fb47e70bf0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/require-directory-npm-2.1.1-8608aee50b-fb47e70bf0.zip -------------------------------------------------------------------------------- /.yarn/cache/require-main-filename-npm-2.0.0-03eef65c84-e9e294695f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/require-main-filename-npm-2.0.0-03eef65c84-e9e294695f.zip -------------------------------------------------------------------------------- /.yarn/cache/retry-npm-0.12.0-72ac7fb4cc-623bd7d2e5.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/retry-npm-0.12.0-72ac7fb4cc-623bd7d2e5.zip -------------------------------------------------------------------------------- /.yarn/cache/rimraf-npm-3.0.2-2cb7dac69a-87f4164e39.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/rimraf-npm-3.0.2-2cb7dac69a-87f4164e39.zip -------------------------------------------------------------------------------- /.yarn/cache/run-parallel-limit-npm-1.1.0-ac1dfd4d1f-672c3b87e7.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/run-parallel-limit-npm-1.1.0-ac1dfd4d1f-672c3b87e7.zip -------------------------------------------------------------------------------- /.yarn/cache/safe-buffer-npm-5.1.2-c27fedf6c4-f2f1f7943c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/safe-buffer-npm-5.1.2-c27fedf6c4-f2f1f7943c.zip -------------------------------------------------------------------------------- /.yarn/cache/safe-buffer-npm-5.2.1-3481c8aa9b-b99c4b41fd.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/safe-buffer-npm-5.2.1-3481c8aa9b-b99c4b41fd.zip -------------------------------------------------------------------------------- /.yarn/cache/safe-decode-uri-component-npm-1.2.1-3363fa1a8b-60e8d780a3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/safe-decode-uri-component-npm-1.2.1-3363fa1a8b-60e8d780a3.zip -------------------------------------------------------------------------------- /.yarn/cache/safe-regex-test-npm-1.0.0-e94a09b84e-bc566d8beb.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/safe-regex-test-npm-1.0.0-e94a09b84e-bc566d8beb.zip -------------------------------------------------------------------------------- /.yarn/cache/safer-buffer-npm-2.1.2-8d5c0b705e-cab8f25ae6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/safer-buffer-npm-2.1.2-8d5c0b705e-cab8f25ae6.zip -------------------------------------------------------------------------------- /.yarn/cache/sax-npm-1.2.4-178f05f12f-d3df7d32b8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/sax-npm-1.2.4-178f05f12f-d3df7d32b8.zip -------------------------------------------------------------------------------- /.yarn/cache/semver-npm-7.3.8-25a996cb4f-ba9c7cbbf2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/semver-npm-7.3.8-25a996cb4f-ba9c7cbbf2.zip -------------------------------------------------------------------------------- /.yarn/cache/send-npm-0.18.0-faadf6353f-74fc07ebb5.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/send-npm-0.18.0-faadf6353f-74fc07ebb5.zip -------------------------------------------------------------------------------- /.yarn/cache/serve-static-npm-1.15.0-86c81879f5-af57fc13be.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/serve-static-npm-1.15.0-86c81879f5-af57fc13be.zip -------------------------------------------------------------------------------- /.yarn/cache/set-blocking-npm-2.0.0-49e2cffa24-6e65a05f7c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/set-blocking-npm-2.0.0-49e2cffa24-6e65a05f7c.zip -------------------------------------------------------------------------------- /.yarn/cache/setprototypeof-npm-1.2.0-0fedbdcd3a-be18cbbf70.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/setprototypeof-npm-1.2.0-0fedbdcd3a-be18cbbf70.zip -------------------------------------------------------------------------------- /.yarn/cache/side-channel-npm-1.0.4-e1f38b9e06-351e41b947.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/side-channel-npm-1.0.4-e1f38b9e06-351e41b947.zip -------------------------------------------------------------------------------- /.yarn/cache/signal-exit-npm-3.0.7-bd270458a3-a2f098f247.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/signal-exit-npm-3.0.7-bd270458a3-a2f098f247.zip -------------------------------------------------------------------------------- /.yarn/cache/sisteransi-npm-1.0.5-af60cc0cfa-aba6438f46.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/sisteransi-npm-1.0.5-af60cc0cfa-aba6438f46.zip -------------------------------------------------------------------------------- /.yarn/cache/sleep-promise-npm-9.1.0-d83e95aee1-a93359c18d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/sleep-promise-npm-9.1.0-d83e95aee1-a93359c18d.zip -------------------------------------------------------------------------------- /.yarn/cache/smart-buffer-npm-4.2.0-5ac3f668bb-b5167a7142.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/smart-buffer-npm-4.2.0-5ac3f668bb-b5167a7142.zip -------------------------------------------------------------------------------- /.yarn/cache/socks-npm-2.7.1-17f2b53052-259d9e3e8e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/socks-npm-2.7.1-17f2b53052-259d9e3e8e.zip -------------------------------------------------------------------------------- /.yarn/cache/socks-proxy-agent-npm-7.0.0-7aacf32ea0-7205543701.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/socks-proxy-agent-npm-7.0.0-7aacf32ea0-7205543701.zip -------------------------------------------------------------------------------- /.yarn/cache/socks-proxy-agent-npm-8.0.1-646f00d0a1-f6538fd16c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/socks-proxy-agent-npm-8.0.1-646f00d0a1-f6538fd16c.zip -------------------------------------------------------------------------------- /.yarn/cache/source-map-npm-0.6.1-1a3621db16-59ce8640cf.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/source-map-npm-0.6.1-1a3621db16-59ce8640cf.zip -------------------------------------------------------------------------------- /.yarn/cache/sshpk-npm-1.17.0-95f17f597f-ba109f65c8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/sshpk-npm-1.17.0-95f17f597f-ba109f65c8.zip -------------------------------------------------------------------------------- /.yarn/cache/ssri-npm-9.0.1-33ce27f4f8-fb58f5e46b.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/ssri-npm-9.0.1-33ce27f4f8-fb58f5e46b.zip -------------------------------------------------------------------------------- /.yarn/cache/statuses-npm-2.0.1-81d2b97fee-18c7623fdb.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/statuses-npm-2.0.1-81d2b97fee-18c7623fdb.zip -------------------------------------------------------------------------------- /.yarn/cache/stealthy-require-npm-1.1.1-0105ec8207-6805b857a9.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/stealthy-require-npm-1.1.1-0105ec8207-6805b857a9.zip -------------------------------------------------------------------------------- /.yarn/cache/stream-parser-npm-0.3.1-0b70187c85-4d86ff8cff.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/stream-parser-npm-0.3.1-0b70187c85-4d86ff8cff.zip -------------------------------------------------------------------------------- /.yarn/cache/streamsearch-npm-0.1.2-813180eb1c-d2db57cbfb.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/streamsearch-npm-0.1.2-813180eb1c-d2db57cbfb.zip -------------------------------------------------------------------------------- /.yarn/cache/string-width-npm-4.2.3-2c27177bae-e52c10dc3f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/string-width-npm-4.2.3-2c27177bae-e52c10dc3f.zip -------------------------------------------------------------------------------- /.yarn/cache/string.prototype.trim-npm-1.2.7-3fbaf3b9d2-05b7b2d6af.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/string.prototype.trim-npm-1.2.7-3fbaf3b9d2-05b7b2d6af.zip -------------------------------------------------------------------------------- /.yarn/cache/string.prototype.trimend-npm-1.0.6-304246ecc1-0fdc34645a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/string.prototype.trimend-npm-1.0.6-304246ecc1-0fdc34645a.zip -------------------------------------------------------------------------------- /.yarn/cache/string.prototype.trimstart-npm-1.0.6-0926caea6c-89080feef4.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/string.prototype.trimstart-npm-1.0.6-0926caea6c-89080feef4.zip -------------------------------------------------------------------------------- /.yarn/cache/string_decoder-npm-1.1.1-e46a6c1353-9ab7e56f9d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/string_decoder-npm-1.1.1-e46a6c1353-9ab7e56f9d.zip -------------------------------------------------------------------------------- /.yarn/cache/string_decoder-npm-1.3.0-2422117fd0-8417646695.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/string_decoder-npm-1.3.0-2422117fd0-8417646695.zip -------------------------------------------------------------------------------- /.yarn/cache/strip-ansi-npm-6.0.1-caddc7cb40-f3cd25890a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/strip-ansi-npm-6.0.1-caddc7cb40-f3cd25890a.zip -------------------------------------------------------------------------------- /.yarn/cache/strtok3-npm-6.3.0-73598951ca-90732cff3f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/strtok3-npm-6.3.0-73598951ca-90732cff3f.zip -------------------------------------------------------------------------------- /.yarn/cache/tar-npm-6.1.13-3234e72781-8a278bed12.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/tar-npm-6.1.13-3234e72781-8a278bed12.zip -------------------------------------------------------------------------------- /.yarn/cache/toidentifier-npm-1.0.1-f759712599-952c29e2a8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/toidentifier-npm-1.0.1-f759712599-952c29e2a8.zip -------------------------------------------------------------------------------- /.yarn/cache/token-types-npm-4.2.0-b58a529493-7163e3bfab.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/token-types-npm-4.2.0-b58a529493-7163e3bfab.zip -------------------------------------------------------------------------------- /.yarn/cache/tough-cookie-npm-2.5.0-79a2fe43fe-16a8cd0902.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/tough-cookie-npm-2.5.0-79a2fe43fe-16a8cd0902.zip -------------------------------------------------------------------------------- /.yarn/cache/ts-node-npm-10.7.0-ef39b1d45e-2a379e43f7.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/ts-node-npm-10.7.0-ef39b1d45e-2a379e43f7.zip -------------------------------------------------------------------------------- /.yarn/cache/tsc-npm-2.0.4-e331b066cb-50b1024088.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/tsc-npm-2.0.4-e331b066cb-50b1024088.zip -------------------------------------------------------------------------------- /.yarn/cache/tslib-npm-2.4.0-9cb6dc5030-8c4aa6a3c5.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/tslib-npm-2.4.0-9cb6dc5030-8c4aa6a3c5.zip -------------------------------------------------------------------------------- /.yarn/cache/tunnel-agent-npm-0.6.0-64345ab7eb-05f6510358.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/tunnel-agent-npm-0.6.0-64345ab7eb-05f6510358.zip -------------------------------------------------------------------------------- /.yarn/cache/tunnel-npm-0.0.6-b1c0830ea4-c362948df9.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/tunnel-npm-0.0.6-b1c0830ea4-c362948df9.zip -------------------------------------------------------------------------------- /.yarn/cache/tweetnacl-npm-0.14.5-a3f766c0d1-6061daba17.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/tweetnacl-npm-0.14.5-a3f766c0d1-6061daba17.zip -------------------------------------------------------------------------------- /.yarn/cache/type-is-npm-1.6.18-6dee4d4961-2c8e47675d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/type-is-npm-1.6.18-6dee4d4961-2c8e47675d.zip -------------------------------------------------------------------------------- /.yarn/cache/typed-array-length-npm-1.0.4-92771b81fc-2228febc93.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/typed-array-length-npm-1.0.4-92771b81fc-2228febc93.zip -------------------------------------------------------------------------------- /.yarn/cache/typescript-npm-4.6.4-114dfa5f7e-e7bfcc39cd.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/typescript-npm-4.6.4-114dfa5f7e-e7bfcc39cd.zip -------------------------------------------------------------------------------- /.yarn/cache/typescript-patch-9d18892098-1cb434fbc6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/typescript-patch-9d18892098-1cb434fbc6.zip -------------------------------------------------------------------------------- /.yarn/cache/unbox-primitive-npm-1.0.2-cb56a05066-b7a1cf5862.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/unbox-primitive-npm-1.0.2-cb56a05066-b7a1cf5862.zip -------------------------------------------------------------------------------- /.yarn/cache/unique-filename-npm-2.0.1-183c6c7c2b-807acf3381.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/unique-filename-npm-2.0.1-183c6c7c2b-807acf3381.zip -------------------------------------------------------------------------------- /.yarn/cache/unique-slug-npm-3.0.0-0b82e51577-49f8d915ba.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/unique-slug-npm-3.0.0-0b82e51577-49f8d915ba.zip -------------------------------------------------------------------------------- /.yarn/cache/universalify-npm-0.1.2-9b22d31d2d-40cdc60f6e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/universalify-npm-0.1.2-9b22d31d2d-40cdc60f6e.zip -------------------------------------------------------------------------------- /.yarn/cache/unpipe-npm-1.0.0-2ed2a3c2bf-4fa18d8d8d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/unpipe-npm-1.0.0-2ed2a3c2bf-4fa18d8d8d.zip -------------------------------------------------------------------------------- /.yarn/cache/uri-js-npm-4.4.1-66d11cbcaf-7167432de6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/uri-js-npm-4.4.1-66d11cbcaf-7167432de6.zip -------------------------------------------------------------------------------- /.yarn/cache/util-deprecate-npm-1.0.2-e3fe1a219c-474acf1146.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/util-deprecate-npm-1.0.2-e3fe1a219c-474acf1146.zip -------------------------------------------------------------------------------- /.yarn/cache/utils-merge-npm-1.0.1-363bbdfbca-c810954932.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/utils-merge-npm-1.0.1-363bbdfbca-c810954932.zip -------------------------------------------------------------------------------- /.yarn/cache/uuid-npm-3.4.0-4fd8ef88ad-58de2feed6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/uuid-npm-3.4.0-4fd8ef88ad-58de2feed6.zip -------------------------------------------------------------------------------- /.yarn/cache/v8-compile-cache-lib-npm-3.0.1-4886071ece-78089ad549.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/v8-compile-cache-lib-npm-3.0.1-4886071ece-78089ad549.zip -------------------------------------------------------------------------------- /.yarn/cache/vary-npm-1.1.2-b49f70ae63-ae0123222c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/vary-npm-1.1.2-b49f70ae63-ae0123222c.zip -------------------------------------------------------------------------------- /.yarn/cache/verror-npm-1.10.0-c3f839c579-c431df0bed.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/verror-npm-1.10.0-c3f839c579-c431df0bed.zip -------------------------------------------------------------------------------- /.yarn/cache/which-boxed-primitive-npm-1.0.2-e214f9ae5a-53ce774c73.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/which-boxed-primitive-npm-1.0.2-e214f9ae5a-53ce774c73.zip -------------------------------------------------------------------------------- /.yarn/cache/which-module-npm-2.0.0-daf3daa08d-809f7fd3df.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/which-module-npm-2.0.0-daf3daa08d-809f7fd3df.zip -------------------------------------------------------------------------------- /.yarn/cache/which-npm-2.0.2-320ddf72f7-1a5c563d3c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/which-npm-2.0.2-320ddf72f7-1a5c563d3c.zip -------------------------------------------------------------------------------- /.yarn/cache/which-typed-array-npm-1.1.9-9559c95dfc-fe0178ca44.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/which-typed-array-npm-1.1.9-9559c95dfc-fe0178ca44.zip -------------------------------------------------------------------------------- /.yarn/cache/wide-align-npm-1.1.5-889d77e592-d5fc37cd56.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/wide-align-npm-1.1.5-889d77e592-d5fc37cd56.zip -------------------------------------------------------------------------------- /.yarn/cache/wrap-ansi-npm-6.2.0-439a7246d8-6cd96a4101.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/wrap-ansi-npm-6.2.0-439a7246d8-6cd96a4101.zip -------------------------------------------------------------------------------- /.yarn/cache/wrap-ansi-npm-7.0.0-ad6e1a0554-a790b846fd.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/wrap-ansi-npm-7.0.0-ad6e1a0554-a790b846fd.zip -------------------------------------------------------------------------------- /.yarn/cache/wrappy-npm-1.0.2-916de4d4b3-159da4805f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/wrappy-npm-1.0.2-916de4d4b3-159da4805f.zip -------------------------------------------------------------------------------- /.yarn/cache/y18n-npm-4.0.3-ced95acdbc-014dfcd9b5.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/y18n-npm-4.0.3-ced95acdbc-014dfcd9b5.zip -------------------------------------------------------------------------------- /.yarn/cache/y18n-npm-5.0.8-5f3a0a7e62-54f0fb9562.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/y18n-npm-5.0.8-5f3a0a7e62-54f0fb9562.zip -------------------------------------------------------------------------------- /.yarn/cache/yallist-npm-4.0.0-b493d9e907-343617202a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/yallist-npm-4.0.0-b493d9e907-343617202a.zip -------------------------------------------------------------------------------- /.yarn/cache/yargs-npm-15.4.1-ca1c444de1-40b974f508.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/yargs-npm-15.4.1-ca1c444de1-40b974f508.zip -------------------------------------------------------------------------------- /.yarn/cache/yargs-npm-17.4.1-f5d309f85f-e901232287.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/yargs-npm-17.4.1-f5d309f85f-e901232287.zip -------------------------------------------------------------------------------- /.yarn/cache/yargs-parser-npm-18.1.3-0ba9c4f088-60e8c7d1b8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/yargs-parser-npm-18.1.3-0ba9c4f088-60e8c7d1b8.zip -------------------------------------------------------------------------------- /.yarn/cache/yargs-parser-npm-21.0.1-b778fd3462-c3ea2ed12c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/yargs-parser-npm-21.0.1-b778fd3462-c3ea2ed12c.zip -------------------------------------------------------------------------------- /.yarn/cache/yn-npm-3.1.1-8ad4259784-2c487b0e14.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clansty/netease-music-sync/5911a238404433edbb18aa7070284a28c4a788a8/.yarn/cache/yn-npm-3.1.1-8ad4259784-2c487b0e14.zip -------------------------------------------------------------------------------- /.yarn/plugins/yarn-plugin-nixify.cjs: -------------------------------------------------------------------------------- 1 | module.exports={name:"yarn-plugin-nixify",factory:function(e){var t;return(()=>{"use strict";var n={d:(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},o={};n.r(o),n.d(o,{default:()=>P});const r=e("@yarnpkg/core"),i=e("clipanion");class a extends i.Command{constructor(...e){super(...e),this.locator=i.Option.String()}async execute(){const e=await r.Configuration.find(this.context.cwd,this.context.plugins),{project:t}=await r.Project.find(e,this.context.cwd),n=await r.Cache.find(e),o=e.makeFetcher();return(await r.StreamReport.start({configuration:e,stdout:this.context.stdout},(async e=>{const{locatorHash:i}=r.structUtils.parseLocator(this.locator,!0),a=t.originalPackages.get(i);a?await o.fetch(a,{checksums:t.storedChecksums,project:t,cache:n,fetcher:o,report:e}):e.reportError(0,"Invalid locator")}))).exitCode()}}a.paths=[["nixify","fetch-one"]];const s=e("@yarnpkg/fslib"),c=e("crypto");class l extends i.Command{constructor(...e){super(...e),this.locator=i.Option.String(),this.source=i.Option.String(),this.installLocation=i.Option.String()}async execute(){const e=await r.Configuration.find(this.context.cwd,this.context.plugins),{project:t}=await r.Project.find(e,this.context.cwd);return await t.restoreInstallState({restoreResolutions:!1}),(await r.StreamReport.start({configuration:e,stdout:this.context.stdout},(async n=>{await t.resolveEverything({report:n,lockfileOnly:!0});const o=r.structUtils.parseLocator(this.locator,!0),i=t.storedPackages.get(o.locatorHash);if(!i)return void n.reportError(0,"Invalid locator");const a=s.ppath.join(t.cwd,this.installLocation);await s.xfs.mkdirpPromise(s.ppath.dirname(a)),await r.execUtils.execvp("cp",["-R",this.source,a],{cwd:t.cwd,strict:!0}),await r.execUtils.execvp("chmod",["-R","u+w",a],{cwd:t.cwd,strict:!0});const l=(0,c.createHash)("sha512");l.update(process.versions.node),e.triggerHook((e=>e.globalHashGeneration),t,(e=>{l.update("\0"),l.update(e)}));const d=l.digest("hex"),p=new Map,h=e=>{let n=p.get(e.locatorHash);if(void 0!==n)return n;const o=t.storedPackages.get(e.locatorHash);if(void 0===o)throw new Error("Assertion failed: The package should have been registered");const i=(0,c.createHash)("sha512");i.update(e.locatorHash),p.set(e.locatorHash,"");for(const e of o.dependencies.values()){const n=t.storedResolutions.get(e.descriptorHash);if(void 0===n)throw new Error(`Assertion failed: The resolution (${r.structUtils.prettyDescriptor(t.configuration,e)}) should have been registered`);const o=t.storedPackages.get(n);if(void 0===o)throw new Error("Assertion failed: The package should have been registered");i.update(h(o))}return n=i.digest("hex"),p.set(e.locatorHash,n),n},u=(0,c.createHash)("sha512").update(d).update(h(i)).update(a).digest("hex");t.storedBuildState.set(i.locatorHash,u),await t.persistInstallStateFile()}))).exitCode()}}l.paths=[["nixify","inject-build"]];const d=e("@yarnpkg/plugin-pnp"),p=JSON.stringify,h=(e,t,n=!1)=>t.split("\n").map((t=>t||n?e+t:t)).join("\n"),u=(e,t)=>{let n=e;for(const[e,o]of Object.entries(t))if("string"==typeof o&&(n=n.replace(new RegExp(`@@${e}@@`,"g"),o)),"boolean"==typeof o)for(;;){const t=n.split("\n"),r=t.indexOf(`#@@ IF ${e}`),i=t.indexOf(`#@@ ENDIF ${e}`);if(-1===r||i{if(!n)return;const i=s.npath.toPortablePath(this.binDir);for(const[o,r]of n.manifest.bin){const n=s.ppath.join(i,o),a=s.ppath.join(t.cwd,s.npath.toPortablePath(r));await this.writeWrapper(n,a,{configuration:e,project:t})}if(e.get("installNixBinariesForDependencies")){await t.resolveEverything({report:o,lockfileOnly:!0});const n=await r.scriptUtils.getPackageAccessibleBinaries(t.topLevelWorkspace.anchoredLocator,{project:t});for(const[o,[r,a]]of n.entries()){const n=s.ppath.join(i,o);await this.writeWrapper(n,s.npath.toPortablePath(a),{configuration:e,project:t})}}}))).exitCode()}async writeWrapper(e,t,{configuration:n,project:o}){let r;switch(n.get("nodeLinker")){case"pnp":{const e=(0,d.getPnpPath)(o),n=[];await s.xfs.existsPromise(e.cjs)&&n.push(`--require "${s.npath.fromPortablePath(e.cjs)}"`),await s.xfs.existsPromise(e.esmLoader)&&n.push(`--experimental-loader "${(0,f.pathToFileURL)(s.npath.fromPortablePath(e.esmLoader)).href}"`),r=u("#!/bin/sh\nexport NODE_OPTIONS='@@NODE_OPTIONS@@'\nexec '@@NODE_PATH@@' '@@BINARY_PATH@@' \"$@\"\n",{NODE_PATH:process.execPath,NODE_OPTIONS:n.join(" "),BINARY_PATH:t});break}case"node-modules":r=u("#!/bin/sh\nexec '@@NODE_PATH@@' '@@BINARY_PATH@@' \"$@\"\n",{NODE_PATH:process.execPath,BINARY_PATH:t});break;default:throw Error("Assertion failed: Invalid nodeLinker")}await s.xfs.writeFilePromise(e,r),await s.xfs.chmodPromise(e,493)}}g.paths=[["nixify","install-bin"]];const m=e("@yarnpkg/plugin-patch"),y=(e,t)=>(0,c.createHash)(e).update(t).digest(),x=(e,t,n,o="/nix/store")=>{const r=n.toString("hex"),i=y("sha256",`fixed:out:${t}:${r}:`).toString("hex"),a=(e=>{let t="",n=[...e].reverse().map((e=>e.toString(2).padStart(8,"0"))).join("");for(;n;)t+="0123456789abcdfghijklmnpqrsvwxyz"[parseInt(n.slice(0,5),2)],n=n.slice(5);return t})(((e,t)=>{const n=Buffer.alloc(20);for(let t=0;te.replace(/^\.+/,"").replace(/[^a-zA-Z0-9+._?=-]+/g,"-").slice(0,207)||"unknown",v=e("os"),w={commands:[a,l,g],hooks:{afterAllInstalled:async(e,t)=>{!1!==t.persistProject&&e.configuration.get("enableNixify")&&await(async(e,t)=>{const{configuration:n,cwd:o}=e,{cache:i,report:a}=t,c=await s.xfs.realpathPromise(s.npath.toPortablePath((0,v.tmpdir)()));if(e.cwd.startsWith(c))return void a.reportInfo(0,`Skipping Nixify, because ${e.cwd} appears to be a temporary directory`);const l=n.get("yarnPath");let d=s.ppath.relative(o,l);d.startsWith("../")&&(d=l,a.reportWarning(0,`The Yarn path ${l} is outside the project - it may not be reachable by the Nix build`));const f=n.get("cacheFolder");let g=s.ppath.relative(o,f);g.startsWith("../")&&(g=f,a.reportWarning(0,`The cache folder ${f} is outside the project - it may not be reachable by the Nix build`));for(const e of n.sources.values())e.startsWith("<")||s.ppath.relative(o,e).startsWith("../")&&a.reportWarning(0,`The config file ${e} is outside the project - it may not be reachable by the Nix build`);n.get("nixExprPath");const y=n.get("lockfileFilename"),w=new Map,P=new Set(await s.xfs.readdirPromise(i.cwd)),$={unstablePackages:e.conditionalLocators};for(const t of e.storedPackages.values()){const{locatorHash:n}=t,o=e.storedChecksums.get(n),a=i.getLocatorPath(t,o||null,$);if(!a)continue;const c=s.ppath.basename(a);if(!P.has(c))continue;const l=r.structUtils.stringifyLocator(t),d=o?o.split("/").pop():await r.hashUtils.checksumFile(a);w.set(l,{filename:c,sha512:d})}let k="cacheEntries = {\n";for(const e of[...w.keys()].sort()){const t=w.get(e);k+=`${p(e)} = { ${[`filename = ${p(t.filename)};`,`sha512 = ${p(t.sha512)};`].join(" ")} };\n`}k+="};";const E=n.get("isolatedNixBuilds");let S=new Set,T=[],N=[];const O=n.get("nodeLinker"),j=n.get("pnpUnpluggedFolder"),A=(t,n=new Set)=>{const o=r.structUtils.stringifyLocator(t);if(w.has(o)&&n.add(o),r.structUtils.isVirtualLocator(t)){const o=e.storedPackages.get(r.structUtils.devirtualizeLocator(t).locatorHash);if(!o)throw Error("Assertion failed: The locator should have been registered");A(o,n)}if(t.reference.startsWith("patch:")){const o=e.storedPackages.get(m.patchUtils.parseLocator(t).sourceLocator.locatorHash);if(!o)throw Error("Assertion failed: The locator should have been registered");A(o,n)}for(const o of t.dependencies.values()){const t=e.storedResolutions.get(o.descriptorHash);if(!t)throw Error("Assertion failed: The descriptor should have been registered");const r=e.storedPackages.get(t);if(!r)throw Error("Assertion failed: The locator should have been registered");A(r,n)}return n};for(const t of e.storedBuildState.keys()){const n=e.storedPackages.get(t);if(!n)throw Error("Assertion failed: The locator should have been registered");if(!E.includes(n.name))continue;let o;if("pnp"!==O)throw Error(`The nodeLinker ${O} is not supported for isolated Nix builds`);o=s.ppath.relative(e.cwd,s.ppath.join(j,r.structUtils.slugifyLocator(n),r.structUtils.getIdentVendorPath(n)));let i=n;if(r.structUtils.isVirtualLocator(i)){const{locatorHash:t}=r.structUtils.devirtualizeLocator(i),n=e.storedPackages.get(t);if(!n)throw Error("Assertion failed: The locator should have been registered");i=n}const a=r.structUtils.stringifyLocator(i),c=r.structUtils.stringifyLocator(n),l=`isolated.${p(a)}`;if(!S.has(i)){S.add(i);const e=[...A(n)].sort().map((e=>`${p(e)}\n`)).join(""),t=`override${I=n.name,I.split(/[^a-zA-Z0-9]+/g).filter((e=>e)).map((e=>{return(t=e).slice(0,1).toUpperCase()+t.slice(1);var t})).join("")}Attrs`;N.push(`${l} = optionalOverride (args.${t} or null) (mkIsolatedBuild { ${[`pname = ${p(n.name)};`,`version = ${p(n.version)};`,`reference = ${p(i.reference)};`,`locators = [\n${e}];`].join(" ")} });`)}0===T.length&&T.push("# Copy in isolated builds."),T.push(`echo 'injecting build for ${n.name}'`,"yarn nixify inject-build \\",` ${p(c)} \\`,` \${${l}} \\`,` ${p(o)}`)}var I;if(T.length>0&&T.push("echo 'running yarn install'"),null==t.mode||0===E.length){const t=e.topLevelWorkspace.manifest.name,i=t?r.structUtils.stringifyIdent(t):"workspace",c=u("# This file is generated by running \"yarn install\" inside your project.\n# Manual changes might be lost - proceed with caution!\n\n{ lib, stdenv, nodejs, git, cacert, fetchurl, writeShellScript, writeShellScriptBin }:\n{ src, overrideAttrs ? null, ... } @ args:\n\nlet\n\n cacheFolder = @@CACHE_FOLDER@@;\n#@@ IF NEED_ISOLATED_BUILD_SUPPRORT\n lockfile = ./@@LOCKFILE@@;\n#@@ ENDIF NEED_ISOLATED_BUILD_SUPPRORT\n\n # Call overrideAttrs on a derivation if a function is provided.\n optionalOverride = fn: drv:\n if fn == null then drv else drv.overrideAttrs fn;\n\n # Simple stub that provides the global yarn command.\n yarn = writeShellScriptBin \"yarn\" ''\n exec '${nodejs}/bin/node' '${./@@YARN_PATH@@}' \"$@\"\n '';\n\n # Common attributes between Yarn derivations.\n drvCommon = {\n # Make sure the build uses the right Node.js version everywhere.\n buildInputs = [ nodejs yarn ];\n # Tell node-gyp to use the provided Node.js headers for native code builds.\n npm_config_nodedir = nodejs;\n };\n\n # Comman variables that we set in a Nix build, but not in a Nix shell.\n buildVars = ''\n # Make Yarn produce friendlier logging for automated builds.\n export CI=1\n # Tell node-pre-gyp to never fetch binaries / always build from source.\n export npm_config_build_from_source=true\n # Disable Nixify plugin to save on some unnecessary processing.\n export yarn_enable_nixify=false\n '';\n\n # Create derivations for fetching dependencies.\n cacheDrvs = let\n builder = writeShellScript \"yarn-cache-builder\" ''\n source $stdenv/setup\n cd \"$src\"\n ${buildVars}\n HOME=\"$TMP\" yarn_cache_folder=\"$TMP\" \\\n yarn nixify fetch-one $locator\n # Because we change the cache dir, Yarn may generate a different name.\n mv \"$TMP/$(sed 's/-[^-]*\\.[^-]*$//' <<< \"$outputFilename\")\"-* $out\n '';\n in lib.mapAttrs (locator: { filename, sha512 }: stdenv.mkDerivation {\n inherit src builder locator;\n name = lib.strings.sanitizeDerivationName locator;\n buildInputs = [ yarn git cacert ];\n outputFilename = filename;\n outputHashMode = \"flat\";\n outputHashAlgo = \"sha512\";\n outputHash = sha512;\n }) cacheEntries;\n\n # Create a shell snippet to copy dependencies from a list of derivations.\n mkCacheBuilderForDrvs = drvs:\n writeShellScript \"collect-yarn-cache\" (lib.concatMapStrings (drv: ''\n cp ${drv} '${drv.outputFilename}'\n '') drvs);\n\n#@@ IF NEED_ISOLATED_BUILD_SUPPRORT\n # Create a shell snippet to copy dependencies from a list of locators.\n mkCacheBuilderForLocators = let\n pickCacheDrvs = map (locator: cacheDrvs.${locator});\n in locators:\n mkCacheBuilderForDrvs (pickCacheDrvs locators);\n\n # Create a derivation that builds a node-pre-gyp module in isolation.\n mkIsolatedBuild = { pname, version, reference, locators }: stdenv.mkDerivation (drvCommon // {\n inherit pname version;\n dontUnpack = true;\n\n configurePhase = ''\n ${buildVars}\n unset yarn_enable_nixify # plugin is not present\n '';\n\n buildPhase = ''\n mkdir -p .yarn/cache\n pushd .yarn/cache > /dev/null\n source ${mkCacheBuilderForLocators locators}\n popd > /dev/null\n\n echo '{ \"dependencies\": { \"${pname}\": \"${reference}\" } }' > package.json\n install -m 0600 ${lockfile} ./yarn.lock\n export yarn_global_folder=\"$TMP\"\n export YARN_ENABLE_IMMUTABLE_INSTALLS=false\n yarn --immutable-cache\n '';\n\n installPhase = ''\n unplugged=( .yarn/unplugged/${pname}-*/node_modules/* )\n if [[ ! -e \"''${unplugged[@]}\" ]]; then\n echo >&2 \"Could not find the unplugged path for ${pname}\"\n exit 1\n fi\n\n mv \"$unplugged\" $out\n '';\n });\n#@@ ENDIF NEED_ISOLATED_BUILD_SUPPRORT\n\n # Main project derivation.\n project = stdenv.mkDerivation (drvCommon // {\n inherit src;\n name = @@PROJECT_NAME@@;\n\n configurePhase = ''\n ${buildVars}\n\n # Copy over the Yarn cache.\n rm -fr '${cacheFolder}'\n mkdir -p '${cacheFolder}'\n pushd '${cacheFolder}' > /dev/null\n source ${mkCacheBuilderForDrvs (lib.attrValues cacheDrvs)}\n popd > /dev/null\n\n # Yarn may need a writable home directory.\n export yarn_global_folder=\"$TMP\"\n\n # Some node-gyp calls may call out to npm, which could fail due to an\n # read-only home dir.\n export HOME=\"$TMP\"\n\n # running preConfigure after the cache is populated allows for\n # preConfigure to contain substituteInPlace for dependencies as well as the\n # main project. This is necessary for native bindings that maybe have\n # hardcoded values.\n runHook preConfigure\n\n@@ISOLATED_INTEGRATION@@\n\n # Run normal Yarn install to complete dependency installation.\n yarn install --immutable --immutable-cache\n\n runHook postConfigure\n '';\n\n buildPhase = ''\n runHook preBuild\n runHook postBuild\n '';\n\n installPhase = ''\n runHook preInstall\n\n mkdir -p \"$out/libexec/$name\" \"$out/bin\"\n\n # Move the package contents to the output directory.\n # - If the package.json has a `files` field, only files matching those patterns are copied\n # - Otherwise all files are copied\n yarn pack --out package.tgz\n tar xzvf package.tgz --directory \"$out/libexec/$name\" --strip-components=1\n\n cp .yarnrc* '@@LOCKFILE@@' \"$out/libexec/$name\"\n cp --recursive .yarn \"$out/libexec/$name\"\n\n # If the project uses the node-modules linker, then\n # include the node_modules folder in the package.\n if [ -d node_modules ]; then\n cp --recursive node_modules \"$out/libexec/$name\"\n else\n # Otherwise, assume PnP. Copy the loader into the package.\n cp .pnp.* \"$out/libexec/$name\"\n fi\n\n cd \"$out/libexec/$name\"\n\n # Invoke a plugin internal command to setup binaries.\n yarn nixify install-bin $out/bin\n\n # A package with node_modules doesn't need the cache\n if [ -d node_modules ]; then\n yarn cache clean\n fi\n\n runHook postInstall\n '';\n\n passthru = {\n inherit nodejs;\n yarn-freestanding = yarn;\n yarn = writeShellScriptBin \"yarn\" ''\n exec '${yarn}/bin/yarn' --cwd '${project}/libexec/${project.name}' \"$@\"\n '';\n };\n });\n\n@@CACHE_ENTRIES@@\n@@ISOLATED@@\nin optionalOverride overrideAttrs project\n",{PROJECT_NAME:p(i),YARN_PATH:d,LOCKFILE:y,CACHE_FOLDER:p(g),CACHE_ENTRIES:k,ISOLATED:N.join("\n"),ISOLATED_INTEGRATION:h(" ",T.join("\n")),NEED_ISOLATED_BUILD_SUPPRORT:T.length>0});if(await s.xfs.writeFilePromise(n.get("nixExprPath"),c),n.get("generateDefaultNix")){const e=s.ppath.join(o,"default.nix"),t=s.ppath.join(o,"flake.nix");s.xfs.existsSync(e)||s.xfs.existsSync(t)||(await s.xfs.writeFilePromise(e,"# This is a minimal `default.nix` by yarn-plugin-nixify. You can customize it\n# as needed, it will not be overwritten by the plugin.\n\n{ pkgs ? import { } }:\n\npkgs.callPackage ./yarn-project.nix { } { src = ./.; }\n"),a.reportInfo(0,"A minimal default.nix was created. You may want to customize it."))}}n.get("enableNixPreload")&&s.xfs.existsSync(s.npath.toPortablePath("/nix/store"))&&await s.xfs.mktempPromise((async t=>{const n=[];for(const[e,{filename:o,sha512:r}]of w.entries()){const a=b(e),c=Buffer.from(r,"hex"),l=x(a,"sha512",c);if(!s.xfs.existsSync(l)){const e=s.ppath.join(t,r.slice(0,7));await s.xfs.mkdirPromise(e);const c=s.ppath.join(i.cwd,o),l=s.ppath.join(e,a);await s.xfs.copyFilePromise(c,l),n.push(l)}}try{const t=n.length;for(;0!==n.length;){const t=n.splice(0,100);await r.execUtils.execvp("nix-store",["--add-fixed","sha512",...t],{cwd:e.cwd,strict:!0})}0!==t&&a.reportInfo(0,`Preloaded ${t} packages into the Nix store`)}catch(e){if("ENOENT"!==e.code)throw e}}))})(e,t)}},configuration:{enableNixify:{description:"If false, disables the Nixify plugin hook that generates Nix expressions",type:r.SettingsType.BOOLEAN,default:!0},nixExprPath:{description:"Path of the file where the project Nix expression will be written to",type:r.SettingsType.ABSOLUTE_PATH,default:"./yarn-project.nix"},generateDefaultNix:{description:"If true, a default.nix will be generated if it does not exist",type:r.SettingsType.BOOLEAN,default:!0},enableNixPreload:{description:"If true, cached packages will be preloaded into the Nix store",type:r.SettingsType.BOOLEAN,default:!0},isolatedNixBuilds:{description:"Dependencies with a build step that can be built in an isolated derivation",type:r.SettingsType.STRING,default:[],isArray:!0},installNixBinariesForDependencies:{description:"If true, the Nix output 'bin' directory will also contain executables for binaries defined by dependencies",type:r.SettingsType.BOOLEAN,default:!1}}},P=w;t=o})(),t}}; -------------------------------------------------------------------------------- /.yarn/sdks/integrations.yml: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by @yarnpkg/sdks. 2 | # Manual changes might be lost! 3 | 4 | integrations: 5 | - vscode 6 | -------------------------------------------------------------------------------- /.yarn/sdks/typescript/lib/tsc.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | const {existsSync} = require(`fs`); 4 | const {createRequire} = require(`module`); 5 | const {resolve} = require(`path`); 6 | 7 | const relPnpApiPath = "../../../../.pnp.cjs"; 8 | 9 | const absPnpApiPath = resolve(__dirname, relPnpApiPath); 10 | const absRequire = createRequire(absPnpApiPath); 11 | 12 | if (existsSync(absPnpApiPath)) { 13 | if (!process.versions.pnp) { 14 | // Setup the environment to be able to require typescript/lib/tsc.js 15 | require(absPnpApiPath).setup(); 16 | } 17 | } 18 | 19 | // Defer to the real typescript/lib/tsc.js your application uses 20 | module.exports = absRequire(`typescript/lib/tsc.js`); 21 | -------------------------------------------------------------------------------- /.yarn/sdks/typescript/lib/tsserver.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | const {existsSync} = require(`fs`); 4 | const {createRequire} = require(`module`); 5 | const {resolve} = require(`path`); 6 | 7 | const relPnpApiPath = "../../../../.pnp.cjs"; 8 | 9 | const absPnpApiPath = resolve(__dirname, relPnpApiPath); 10 | const absRequire = createRequire(absPnpApiPath); 11 | 12 | const moduleWrapper = tsserver => { 13 | if (!process.versions.pnp) { 14 | return tsserver; 15 | } 16 | 17 | const {isAbsolute} = require(`path`); 18 | const pnpApi = require(`pnpapi`); 19 | 20 | const isVirtual = str => str.match(/\/(\$\$virtual|__virtual__)\//); 21 | const isPortal = str => str.startsWith("portal:/"); 22 | const normalize = str => str.replace(/\\/g, `/`).replace(/^\/?/, `/`); 23 | 24 | const dependencyTreeRoots = new Set(pnpApi.getDependencyTreeRoots().map(locator => { 25 | return `${locator.name}@${locator.reference}`; 26 | })); 27 | 28 | // VSCode sends the zip paths to TS using the "zip://" prefix, that TS 29 | // doesn't understand. This layer makes sure to remove the protocol 30 | // before forwarding it to TS, and to add it back on all returned paths. 31 | 32 | function toEditorPath(str) { 33 | // We add the `zip:` prefix to both `.zip/` paths and virtual paths 34 | if (isAbsolute(str) && !str.match(/^\^?(zip:|\/zip\/)/) && (str.match(/\.zip\//) || isVirtual(str))) { 35 | // We also take the opportunity to turn virtual paths into physical ones; 36 | // this makes it much easier to work with workspaces that list peer 37 | // dependencies, since otherwise Ctrl+Click would bring us to the virtual 38 | // file instances instead of the real ones. 39 | // 40 | // We only do this to modules owned by the the dependency tree roots. 41 | // This avoids breaking the resolution when jumping inside a vendor 42 | // with peer dep (otherwise jumping into react-dom would show resolution 43 | // errors on react). 44 | // 45 | const resolved = isVirtual(str) ? pnpApi.resolveVirtual(str) : str; 46 | if (resolved) { 47 | const locator = pnpApi.findPackageLocator(resolved); 48 | if (locator && (dependencyTreeRoots.has(`${locator.name}@${locator.reference}`) || isPortal(locator.reference))) { 49 | str = resolved; 50 | } 51 | } 52 | 53 | str = normalize(str); 54 | 55 | if (str.match(/\.zip\//)) { 56 | switch (hostInfo) { 57 | // Absolute VSCode `Uri.fsPath`s need to start with a slash. 58 | // VSCode only adds it automatically for supported schemes, 59 | // so we have to do it manually for the `zip` scheme. 60 | // The path needs to start with a caret otherwise VSCode doesn't handle the protocol 61 | // 62 | // Ref: https://github.com/microsoft/vscode/issues/105014#issuecomment-686760910 63 | // 64 | // 2021-10-08: VSCode changed the format in 1.61. 65 | // Before | ^zip:/c:/foo/bar.zip/package.json 66 | // After | ^/zip//c:/foo/bar.zip/package.json 67 | // 68 | // 2022-04-06: VSCode changed the format in 1.66. 69 | // Before | ^/zip//c:/foo/bar.zip/package.json 70 | // After | ^/zip/c:/foo/bar.zip/package.json 71 | // 72 | // 2022-05-06: VSCode changed the format in 1.68 73 | // Before | ^/zip/c:/foo/bar.zip/package.json 74 | // After | ^/zip//c:/foo/bar.zip/package.json 75 | // 76 | case `vscode <1.61`: { 77 | str = `^zip:${str}`; 78 | } break; 79 | 80 | case `vscode <1.66`: { 81 | str = `^/zip/${str}`; 82 | } break; 83 | 84 | case `vscode <1.68`: { 85 | str = `^/zip${str}`; 86 | } break; 87 | 88 | case `vscode`: { 89 | str = `^/zip/${str}`; 90 | } break; 91 | 92 | // To make "go to definition" work, 93 | // We have to resolve the actual file system path from virtual path 94 | // and convert scheme to supported by [vim-rzip](https://github.com/lbrayner/vim-rzip) 95 | case `coc-nvim`: { 96 | str = normalize(resolved).replace(/\.zip\//, `.zip::`); 97 | str = resolve(`zipfile:${str}`); 98 | } break; 99 | 100 | // Support neovim native LSP and [typescript-language-server](https://github.com/theia-ide/typescript-language-server) 101 | // We have to resolve the actual file system path from virtual path, 102 | // everything else is up to neovim 103 | case `neovim`: { 104 | str = normalize(resolved).replace(/\.zip\//, `.zip::`); 105 | str = `zipfile://${str}`; 106 | } break; 107 | 108 | default: { 109 | str = `zip:${str}`; 110 | } break; 111 | } 112 | } 113 | } 114 | 115 | return str; 116 | } 117 | 118 | function fromEditorPath(str) { 119 | switch (hostInfo) { 120 | case `coc-nvim`: { 121 | str = str.replace(/\.zip::/, `.zip/`); 122 | // The path for coc-nvim is in format of //zipfile://.yarn/... 123 | // So in order to convert it back, we use .* to match all the thing 124 | // before `zipfile:` 125 | return process.platform === `win32` 126 | ? str.replace(/^.*zipfile:\//, ``) 127 | : str.replace(/^.*zipfile:/, ``); 128 | } break; 129 | 130 | case `neovim`: { 131 | str = str.replace(/\.zip::/, `.zip/`); 132 | // The path for neovim is in format of zipfile:////.yarn/... 133 | return str.replace(/^zipfile:\/\//, ``); 134 | } break; 135 | 136 | case `vscode`: 137 | default: { 138 | return str.replace(/^\^?(zip:|\/zip(\/ts-nul-authority)?)\/+/, process.platform === `win32` ? `` : `/`) 139 | } break; 140 | } 141 | } 142 | 143 | // Force enable 'allowLocalPluginLoads' 144 | // TypeScript tries to resolve plugins using a path relative to itself 145 | // which doesn't work when using the global cache 146 | // https://github.com/microsoft/TypeScript/blob/1b57a0395e0bff191581c9606aab92832001de62/src/server/project.ts#L2238 147 | // VSCode doesn't want to enable 'allowLocalPluginLoads' due to security concerns but 148 | // TypeScript already does local loads and if this code is running the user trusts the workspace 149 | // https://github.com/microsoft/vscode/issues/45856 150 | const ConfiguredProject = tsserver.server.ConfiguredProject; 151 | const {enablePluginsWithOptions: originalEnablePluginsWithOptions} = ConfiguredProject.prototype; 152 | ConfiguredProject.prototype.enablePluginsWithOptions = function() { 153 | this.projectService.allowLocalPluginLoads = true; 154 | return originalEnablePluginsWithOptions.apply(this, arguments); 155 | }; 156 | 157 | // And here is the point where we hijack the VSCode <-> TS communications 158 | // by adding ourselves in the middle. We locate everything that looks 159 | // like an absolute path of ours and normalize it. 160 | 161 | const Session = tsserver.server.Session; 162 | const {onMessage: originalOnMessage, send: originalSend} = Session.prototype; 163 | let hostInfo = `unknown`; 164 | 165 | Object.assign(Session.prototype, { 166 | onMessage(/** @type {string | object} */ message) { 167 | const isStringMessage = typeof message === 'string'; 168 | const parsedMessage = isStringMessage ? JSON.parse(message) : message; 169 | 170 | if ( 171 | parsedMessage != null && 172 | typeof parsedMessage === `object` && 173 | parsedMessage.arguments && 174 | typeof parsedMessage.arguments.hostInfo === `string` 175 | ) { 176 | hostInfo = parsedMessage.arguments.hostInfo; 177 | if (hostInfo === `vscode` && process.env.VSCODE_IPC_HOOK) { 178 | const [, major, minor] = (process.env.VSCODE_IPC_HOOK.match( 179 | // The RegExp from https://semver.org/ but without the caret at the start 180 | /(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/ 181 | ) ?? []).map(Number) 182 | 183 | if (major === 1) { 184 | if (minor < 61) { 185 | hostInfo += ` <1.61`; 186 | } else if (minor < 66) { 187 | hostInfo += ` <1.66`; 188 | } else if (minor < 68) { 189 | hostInfo += ` <1.68`; 190 | } 191 | } 192 | } 193 | } 194 | 195 | const processedMessageJSON = JSON.stringify(parsedMessage, (key, value) => { 196 | return typeof value === 'string' ? fromEditorPath(value) : value; 197 | }); 198 | 199 | return originalOnMessage.call( 200 | this, 201 | isStringMessage ? processedMessageJSON : JSON.parse(processedMessageJSON) 202 | ); 203 | }, 204 | 205 | send(/** @type {any} */ msg) { 206 | return originalSend.call(this, JSON.parse(JSON.stringify(msg, (key, value) => { 207 | return typeof value === `string` ? toEditorPath(value) : value; 208 | }))); 209 | } 210 | }); 211 | 212 | return tsserver; 213 | }; 214 | 215 | if (existsSync(absPnpApiPath)) { 216 | if (!process.versions.pnp) { 217 | // Setup the environment to be able to require typescript/lib/tsserver.js 218 | require(absPnpApiPath).setup(); 219 | } 220 | } 221 | 222 | // Defer to the real typescript/lib/tsserver.js your application uses 223 | module.exports = moduleWrapper(absRequire(`typescript/lib/tsserver.js`)); 224 | -------------------------------------------------------------------------------- /.yarn/sdks/typescript/lib/tsserverlibrary.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | const {existsSync} = require(`fs`); 4 | const {createRequire} = require(`module`); 5 | const {resolve} = require(`path`); 6 | 7 | const relPnpApiPath = "../../../../.pnp.cjs"; 8 | 9 | const absPnpApiPath = resolve(__dirname, relPnpApiPath); 10 | const absRequire = createRequire(absPnpApiPath); 11 | 12 | const moduleWrapper = tsserver => { 13 | if (!process.versions.pnp) { 14 | return tsserver; 15 | } 16 | 17 | const {isAbsolute} = require(`path`); 18 | const pnpApi = require(`pnpapi`); 19 | 20 | const isVirtual = str => str.match(/\/(\$\$virtual|__virtual__)\//); 21 | const isPortal = str => str.startsWith("portal:/"); 22 | const normalize = str => str.replace(/\\/g, `/`).replace(/^\/?/, `/`); 23 | 24 | const dependencyTreeRoots = new Set(pnpApi.getDependencyTreeRoots().map(locator => { 25 | return `${locator.name}@${locator.reference}`; 26 | })); 27 | 28 | // VSCode sends the zip paths to TS using the "zip://" prefix, that TS 29 | // doesn't understand. This layer makes sure to remove the protocol 30 | // before forwarding it to TS, and to add it back on all returned paths. 31 | 32 | function toEditorPath(str) { 33 | // We add the `zip:` prefix to both `.zip/` paths and virtual paths 34 | if (isAbsolute(str) && !str.match(/^\^?(zip:|\/zip\/)/) && (str.match(/\.zip\//) || isVirtual(str))) { 35 | // We also take the opportunity to turn virtual paths into physical ones; 36 | // this makes it much easier to work with workspaces that list peer 37 | // dependencies, since otherwise Ctrl+Click would bring us to the virtual 38 | // file instances instead of the real ones. 39 | // 40 | // We only do this to modules owned by the the dependency tree roots. 41 | // This avoids breaking the resolution when jumping inside a vendor 42 | // with peer dep (otherwise jumping into react-dom would show resolution 43 | // errors on react). 44 | // 45 | const resolved = isVirtual(str) ? pnpApi.resolveVirtual(str) : str; 46 | if (resolved) { 47 | const locator = pnpApi.findPackageLocator(resolved); 48 | if (locator && (dependencyTreeRoots.has(`${locator.name}@${locator.reference}`) || isPortal(locator.reference))) { 49 | str = resolved; 50 | } 51 | } 52 | 53 | str = normalize(str); 54 | 55 | if (str.match(/\.zip\//)) { 56 | switch (hostInfo) { 57 | // Absolute VSCode `Uri.fsPath`s need to start with a slash. 58 | // VSCode only adds it automatically for supported schemes, 59 | // so we have to do it manually for the `zip` scheme. 60 | // The path needs to start with a caret otherwise VSCode doesn't handle the protocol 61 | // 62 | // Ref: https://github.com/microsoft/vscode/issues/105014#issuecomment-686760910 63 | // 64 | // 2021-10-08: VSCode changed the format in 1.61. 65 | // Before | ^zip:/c:/foo/bar.zip/package.json 66 | // After | ^/zip//c:/foo/bar.zip/package.json 67 | // 68 | // 2022-04-06: VSCode changed the format in 1.66. 69 | // Before | ^/zip//c:/foo/bar.zip/package.json 70 | // After | ^/zip/c:/foo/bar.zip/package.json 71 | // 72 | // 2022-05-06: VSCode changed the format in 1.68 73 | // Before | ^/zip/c:/foo/bar.zip/package.json 74 | // After | ^/zip//c:/foo/bar.zip/package.json 75 | // 76 | case `vscode <1.61`: { 77 | str = `^zip:${str}`; 78 | } break; 79 | 80 | case `vscode <1.66`: { 81 | str = `^/zip/${str}`; 82 | } break; 83 | 84 | case `vscode <1.68`: { 85 | str = `^/zip${str}`; 86 | } break; 87 | 88 | case `vscode`: { 89 | str = `^/zip/${str}`; 90 | } break; 91 | 92 | // To make "go to definition" work, 93 | // We have to resolve the actual file system path from virtual path 94 | // and convert scheme to supported by [vim-rzip](https://github.com/lbrayner/vim-rzip) 95 | case `coc-nvim`: { 96 | str = normalize(resolved).replace(/\.zip\//, `.zip::`); 97 | str = resolve(`zipfile:${str}`); 98 | } break; 99 | 100 | // Support neovim native LSP and [typescript-language-server](https://github.com/theia-ide/typescript-language-server) 101 | // We have to resolve the actual file system path from virtual path, 102 | // everything else is up to neovim 103 | case `neovim`: { 104 | str = normalize(resolved).replace(/\.zip\//, `.zip::`); 105 | str = `zipfile://${str}`; 106 | } break; 107 | 108 | default: { 109 | str = `zip:${str}`; 110 | } break; 111 | } 112 | } 113 | } 114 | 115 | return str; 116 | } 117 | 118 | function fromEditorPath(str) { 119 | switch (hostInfo) { 120 | case `coc-nvim`: { 121 | str = str.replace(/\.zip::/, `.zip/`); 122 | // The path for coc-nvim is in format of //zipfile://.yarn/... 123 | // So in order to convert it back, we use .* to match all the thing 124 | // before `zipfile:` 125 | return process.platform === `win32` 126 | ? str.replace(/^.*zipfile:\//, ``) 127 | : str.replace(/^.*zipfile:/, ``); 128 | } break; 129 | 130 | case `neovim`: { 131 | str = str.replace(/\.zip::/, `.zip/`); 132 | // The path for neovim is in format of zipfile:////.yarn/... 133 | return str.replace(/^zipfile:\/\//, ``); 134 | } break; 135 | 136 | case `vscode`: 137 | default: { 138 | return str.replace(/^\^?(zip:|\/zip(\/ts-nul-authority)?)\/+/, process.platform === `win32` ? `` : `/`) 139 | } break; 140 | } 141 | } 142 | 143 | // Force enable 'allowLocalPluginLoads' 144 | // TypeScript tries to resolve plugins using a path relative to itself 145 | // which doesn't work when using the global cache 146 | // https://github.com/microsoft/TypeScript/blob/1b57a0395e0bff191581c9606aab92832001de62/src/server/project.ts#L2238 147 | // VSCode doesn't want to enable 'allowLocalPluginLoads' due to security concerns but 148 | // TypeScript already does local loads and if this code is running the user trusts the workspace 149 | // https://github.com/microsoft/vscode/issues/45856 150 | const ConfiguredProject = tsserver.server.ConfiguredProject; 151 | const {enablePluginsWithOptions: originalEnablePluginsWithOptions} = ConfiguredProject.prototype; 152 | ConfiguredProject.prototype.enablePluginsWithOptions = function() { 153 | this.projectService.allowLocalPluginLoads = true; 154 | return originalEnablePluginsWithOptions.apply(this, arguments); 155 | }; 156 | 157 | // And here is the point where we hijack the VSCode <-> TS communications 158 | // by adding ourselves in the middle. We locate everything that looks 159 | // like an absolute path of ours and normalize it. 160 | 161 | const Session = tsserver.server.Session; 162 | const {onMessage: originalOnMessage, send: originalSend} = Session.prototype; 163 | let hostInfo = `unknown`; 164 | 165 | Object.assign(Session.prototype, { 166 | onMessage(/** @type {string | object} */ message) { 167 | const isStringMessage = typeof message === 'string'; 168 | const parsedMessage = isStringMessage ? JSON.parse(message) : message; 169 | 170 | if ( 171 | parsedMessage != null && 172 | typeof parsedMessage === `object` && 173 | parsedMessage.arguments && 174 | typeof parsedMessage.arguments.hostInfo === `string` 175 | ) { 176 | hostInfo = parsedMessage.arguments.hostInfo; 177 | if (hostInfo === `vscode` && process.env.VSCODE_IPC_HOOK) { 178 | const [, major, minor] = (process.env.VSCODE_IPC_HOOK.match( 179 | // The RegExp from https://semver.org/ but without the caret at the start 180 | /(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/ 181 | ) ?? []).map(Number) 182 | 183 | if (major === 1) { 184 | if (minor < 61) { 185 | hostInfo += ` <1.61`; 186 | } else if (minor < 66) { 187 | hostInfo += ` <1.66`; 188 | } else if (minor < 68) { 189 | hostInfo += ` <1.68`; 190 | } 191 | } 192 | } 193 | } 194 | 195 | const processedMessageJSON = JSON.stringify(parsedMessage, (key, value) => { 196 | return typeof value === 'string' ? fromEditorPath(value) : value; 197 | }); 198 | 199 | return originalOnMessage.call( 200 | this, 201 | isStringMessage ? processedMessageJSON : JSON.parse(processedMessageJSON) 202 | ); 203 | }, 204 | 205 | send(/** @type {any} */ msg) { 206 | return originalSend.call(this, JSON.parse(JSON.stringify(msg, (key, value) => { 207 | return typeof value === `string` ? toEditorPath(value) : value; 208 | }))); 209 | } 210 | }); 211 | 212 | return tsserver; 213 | }; 214 | 215 | if (existsSync(absPnpApiPath)) { 216 | if (!process.versions.pnp) { 217 | // Setup the environment to be able to require typescript/lib/tsserverlibrary.js 218 | require(absPnpApiPath).setup(); 219 | } 220 | } 221 | 222 | // Defer to the real typescript/lib/tsserverlibrary.js your application uses 223 | module.exports = moduleWrapper(absRequire(`typescript/lib/tsserverlibrary.js`)); 224 | -------------------------------------------------------------------------------- /.yarn/sdks/typescript/lib/typescript.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | const {existsSync} = require(`fs`); 4 | const {createRequire} = require(`module`); 5 | const {resolve} = require(`path`); 6 | 7 | const relPnpApiPath = "../../../../.pnp.cjs"; 8 | 9 | const absPnpApiPath = resolve(__dirname, relPnpApiPath); 10 | const absRequire = createRequire(absPnpApiPath); 11 | 12 | if (existsSync(absPnpApiPath)) { 13 | if (!process.versions.pnp) { 14 | // Setup the environment to be able to require typescript/lib/typescript.js 15 | require(absPnpApiPath).setup(); 16 | } 17 | } 18 | 19 | // Defer to the real typescript/lib/typescript.js your application uses 20 | module.exports = absRequire(`typescript/lib/typescript.js`); 21 | -------------------------------------------------------------------------------- /.yarn/sdks/typescript/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "typescript", 3 | "version": "4.6.4-sdk", 4 | "main": "./lib/typescript.js", 5 | "type": "commonjs" 6 | } 7 | -------------------------------------------------------------------------------- /.yarnrc.yml: -------------------------------------------------------------------------------- 1 | plugins: 2 | - path: .yarn/plugins/@yarnpkg/plugin-typescript.cjs 3 | spec: "@yarnpkg/plugin-typescript" 4 | - path: .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs 5 | spec: "@yarnpkg/plugin-workspace-tools" 6 | - path: .yarn/plugins/yarn-plugin-nixify.cjs 7 | spec: "https://raw.githubusercontent.com/stephank/yarn-plugin-nixify/main/dist/yarn-plugin-nixify.js" 8 | 9 | yarnPath: .yarn/releases/yarn-3.3.0.cjs 10 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:20-alpine as build 2 | RUN corepack enable 3 | 4 | RUN apk add alpine-sdk python3 5 | 6 | WORKDIR /app 7 | COPY .yarn .yarn 8 | COPY .yarnrc.yml . 9 | COPY package.json . 10 | COPY yarn.lock . 11 | RUN yarn install --inline-builds 12 | 13 | COPY tsconfig.json . 14 | COPY src src 15 | RUN yarn build 16 | 17 | FROM node:20-alpine 18 | RUN corepack enable 19 | 20 | WORKDIR /app 21 | COPY --from=build /app/package.json ./ 22 | COPY --from=build /app/.pnp.cjs ./ 23 | COPY --from=build /app/.pnp.loader.mjs ./ 24 | COPY --from=build /app/.yarn ./.yarn 25 | COPY --from=build /app/build ./build 26 | 27 | ENV DIR=/music 28 | ENV STORE=/store 29 | ENV TELEGRAM_API_BASE=https://api.telegram.org 30 | 31 | CMD node -r ./.pnp.cjs build/index.js 32 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Netease Sync 2 | 3 | 自动将网易云的歌单同步到本地 4 | 5 | ## 存储方式 6 | 7 | 所有本地有的音乐以 ID 为名称保存在 `pool` 文件夹中,并在歌单文件夹中维护以 `歌手 - 歌名.{mp3,flac}` 为名,到 `pool` 中文件的软链接 8 | 9 | ## 咕咕 10 | 11 | - [x] 下载新增音乐 12 | - [x] 删除已删除的音乐 13 | - [x] 支持多个歌单 14 | - [ ] 歌灰了自动将本地有的文件(如果有)上传到音乐云盘 15 | - [x] Arch Linux 包部署 16 | - [x] NixOS Flake 部署 17 | - [X] Docker 部署 18 | - [ ] 自带一个 [NeteaseCloudMusicApi](https://github.com/Binaryify/NeteaseCloudMusicApi) 或者 [YesPlayMusic](https://github.com/qier222/YesPlayMusic),用本地文件作为缓存 19 | - [ ] 内置 [UnblockNeteaseMusic](https://github.com/UnblockNeteaseMusic/server) 下载灰掉的音乐 20 | - [x] 支持使用另一个 Cookie 来下载音乐 21 | - [x] 自动将音乐上传到 Telegram Channel 22 | 23 | ## 使用方法 24 | 25 | ### Arch Linux 26 | 27 | 1. 首先安装 `netease-music-sync` [AUR](https://aur.archlinux.org/packages/netease-music-sync) [凌莞源](https://pacman.ltd/x86_64/netease-music-sync) 28 | 29 | ```bash 30 | yay -S netease-music-sync 31 | ``` 32 | 33 | 2. 运行 `netease-login` 获取 cookies 34 | 35 | 3. 编辑 `/etc/netease-music-sync.conf`,填入相关信息 36 | 37 | ```bash 38 | sudo vi /etc/netease-music-sync.conf 39 | ``` 40 | 41 | 歌单 ID 获取方法:在手机上分享歌单,URL 里就有 ID。或者在网页上打开,地址栏也有 42 | 43 | 4. 启用服务 44 | 45 | ```bash 46 | sudo systemctl enable --now netease-music-sync.service 47 | ``` 48 | 49 | #### 以指定用户身份运行 50 | 51 | 如果你想要以指定用户身份运行同步程序,比如说写入文件要以特定的用户/组身份,可以在启用服务之前这样操作 52 | 53 | ```bash 54 | sudo systemctl edit netease-music-sync.service 55 | ``` 56 | 57 | 在编辑区域增加以下内容 58 | 59 | ```ini 60 | [Service] 61 | User=你需要的用户名 62 | ``` 63 | -------------------------------------------------------------------------------- /archpkg/PKGBUILD: -------------------------------------------------------------------------------- 1 | pkgname='netease-music-sync' 2 | pkgver=1.0.1.r0.0000000 3 | pkgrel=1 4 | pkgdesc='自动将网易云的歌单同步到本地' 5 | license=('MIT') 6 | depends=('nodejs>=17.5') 7 | makedepends=('yarn' 'git') 8 | arch=('any') 9 | url="https://github.com/Clansty/${pkgname}" 10 | source=("${pkgname}::git+${url}" 11 | netease-login 12 | ${pkgname}.{conf,service}) 13 | sha256sums=('SKIP' 'SKIP' 'SKIP' 'SKIP') 14 | backup=("etc/${pkgname}.conf") 15 | 16 | pkgver(){ 17 | cd "${srcdir}/${pkgname}" 18 | git describe --long --tags | sed 's/^v//;s/-/.r/;s/-/./g' 19 | } 20 | 21 | prepare(){ 22 | cd "${srcdir}/${pkgname}" 23 | yarn install 24 | } 25 | 26 | build(){ 27 | cd "${srcdir}/${pkgname}" 28 | yarn run build 29 | } 30 | 31 | package(){ 32 | install -d "${pkgdir}/usr/share/${pkgname}" 33 | install -Dm755 netease-login "${pkgdir}/usr/bin/netease-login" 34 | install -Dm644 "${pkgname}.service" "${pkgdir}/usr/lib/systemd/system/${pkgname}.service" 35 | install -Dm644 "${pkgname}.conf" "${pkgdir}/etc/${pkgname}.conf" 36 | cd "${srcdir}/${pkgname}" 37 | cp -a build .yarn .yarnrc.yml yarn.lock package.json "${pkgdir}/usr/share/${pkgname}" 38 | rm -rf "${pkgdir}/usr/share/${pkgname}/.yarn/cache" 39 | cd "${pkgdir}/usr/share/${pkgname}" 40 | yarn workspaces focus --production 41 | } 42 | -------------------------------------------------------------------------------- /archpkg/netease-login: -------------------------------------------------------------------------------- 1 | #!/usr/bin/bash 2 | 3 | cd /usr/share/netease-music-sync 4 | /usr/bin/node -r ./.pnp.cjs build/login.js 5 | -------------------------------------------------------------------------------- /archpkg/netease-music-sync.conf: -------------------------------------------------------------------------------- 1 | COOKIE="通过 netease-login 获取到 cookie" 2 | DOWNLOAD_COOKIE="" # 如果填了这个,将使用这个 Cookie 来下载除了音乐云盘以外的音乐 3 | DIR="/mnt/music" 4 | PLAYLISTS="逗号风格的歌单 ID" 5 | TELEGRAM_CHANNELS="歌单 ID:Channel ID" 6 | TELEGRAM_TOKEN="" 7 | TELEGRAM_API_BASE="https://api.telegram.org" 8 | -------------------------------------------------------------------------------- /archpkg/netease-music-sync.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=自动将网易云的歌单同步到本地 3 | Documentation=https://github.com/Clansty/netease-music-sync 4 | After=network-online.target 5 | 6 | [Service] 7 | Type=simple 8 | EnvironmentFile=/etc/netease-music-sync.conf 9 | WorkingDirectory=/usr/share/netease-music-sync 10 | ExecStart=/usr/bin/node --experimental-fetch -r ./.pnp.cjs build/index.js 11 | Restart=on-failure 12 | RestartSec=120 13 | 14 | [Install] 15 | WantedBy=multi-user.target 16 | -------------------------------------------------------------------------------- /default.nix: -------------------------------------------------------------------------------- 1 | # This is a minimal `default.nix` by yarn-plugin-nixify. You can customize it 2 | # as needed, it will not be overwritten by the plugin. 3 | 4 | { pkgs ? import { } }: 5 | 6 | (pkgs.callPackage ./yarn-project.nix { } { src = ./.; }).overrideAttrs (attrs: { 7 | buildPhase = with pkgs; '' 8 | yarn build 9 | ''; 10 | 11 | nativeBuildInputs = attrs.buildInputs ++ (with pkgs; [ 12 | python3 13 | ]); 14 | }) 15 | -------------------------------------------------------------------------------- /flake.nix: -------------------------------------------------------------------------------- 1 | { 2 | description = "Flake that configures Netease Music Sync"; 3 | 4 | inputs = { 5 | nixpkgs.url = "github:NixOS/nixpkgs/nixos-22.11"; 6 | flake-utils.url = "github:numtide/flake-utils"; 7 | }; 8 | outputs = { self, nixpkgs, flake-utils }: 9 | { 10 | packages = nixpkgs.lib.mapAttrs 11 | (system: pkgs: { 12 | default = import ./default.nix { inherit pkgs; }; 13 | }) 14 | nixpkgs.legacyPackages; 15 | nixosModules.default = import ./nixos/module.nix { inherit self; }; 16 | } // flake-utils.lib.eachDefaultSystem 17 | (system: 18 | let 19 | pkgs = nixpkgs.legacyPackages.${system}; 20 | flakePkgs = self.packages.${system}; 21 | in 22 | { 23 | devShells.default = import ./shell.nix { inherit pkgs flakePkgs; }; 24 | } 25 | ); 26 | } 27 | -------------------------------------------------------------------------------- /nixos/module.nix: -------------------------------------------------------------------------------- 1 | { self }: 2 | { pkgs, config, ... }: 3 | 4 | with pkgs.lib; 5 | { 6 | imports = [ 7 | ./service.nix 8 | ]; 9 | options.services.netease-music-sync = { 10 | enable = mkEnableOption "Enables Netease Music Sync service"; 11 | package = mkOption { 12 | type = types.package; 13 | default = self.packages.${pkgs.system}.default; 14 | }; 15 | cookie = mkOption { 16 | type = types.str; 17 | }; 18 | download-cookie = mkOption { 19 | type = types.str; 20 | default = ""; 21 | }; 22 | download-dir = mkOption { 23 | type = types.str; 24 | }; 25 | playlists = mkOption { 26 | type = types.str; 27 | }; 28 | telegram-token = mkOption { 29 | type = types.str; 30 | }; 31 | telegram-channels = mkOption { 32 | type = types.str; 33 | }; 34 | telegram-api-base = mkOption { 35 | type = types.str; 36 | default = "https://api.telegram.org"; 37 | }; 38 | }; 39 | } 40 | -------------------------------------------------------------------------------- /nixos/service.nix: -------------------------------------------------------------------------------- 1 | { pkgs, lib, config, ... }: 2 | 3 | let 4 | cfg = config.services.netease-music-sync; 5 | in 6 | { 7 | config = lib.mkIf cfg.enable { 8 | users = { 9 | users.netease-music-sync = { 10 | isSystemUser = true; 11 | createHome = true; 12 | home = "/var/lib/netease-music-sync"; 13 | group = "netease-music-sync"; 14 | description = "netease-music-sync service"; 15 | }; 16 | 17 | groups.netease-music-sync = { }; 18 | }; 19 | 20 | systemd.services.netease-music-sync = { 21 | description = "自动将网易云的歌单同步到本地"; 22 | path = [ cfg.package ]; 23 | wantedBy = [ "multi-user.target" ]; 24 | after = [ "network-online.target" ]; 25 | environment = { 26 | COOKIE = cfg.cookie; 27 | DOWNLOAD_COOKIE = cfg.download-cookie; 28 | DIR = cfg.download-dir; 29 | PLAYLISTS = cfg.playlists; 30 | TELEGRAM_CHANNELS = cfg.telegram-channels; 31 | TELEGRAM_TOKEN = cfg.telegram-token; 32 | TELEGRAM_API_BASE = cfg.telegram-api-base; 33 | }; 34 | serviceConfig = { 35 | User = "netease-music-sync"; 36 | Group = "netease-music-sync"; 37 | Restart = "on-failure"; 38 | ExecStart = "${cfg.package}/bin/netease-music-sync --experimental-fetch"; 39 | WorkingDirectory = "${cfg.package}/libexec/netease-music-sync"; 40 | }; 41 | }; 42 | }; 43 | } 44 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "netease-music-sync", 3 | "version": "1.1.0", 4 | "private": true, 5 | "keywords": [], 6 | "bin": "build/index.js", 7 | "files": [ 8 | "build" 9 | ], 10 | "scripts": { 11 | "build": "tsc", 12 | "dev": "ts-node src/index.ts", 13 | "login": "ts-node src/login.ts" 14 | }, 15 | "engines": { 16 | "node": ">=17.5" 17 | }, 18 | "devDependencies": { 19 | "@types/node": "^17.0.31", 20 | "@types/node-telegram-bot-api": "^0", 21 | "@types/prompts": "^2", 22 | "ts-node": "^10.7.0", 23 | "tsc": "^2.0.4", 24 | "typescript": "^4.6.4" 25 | }, 26 | "packageManager": "yarn@3.3.0", 27 | "dependencies": { 28 | "NeteaseCloudMusicApi": "^4.9.0", 29 | "abstract-level": "^1.0.3", 30 | "dotenv": "^16.0.0", 31 | "level": "^8.0.0", 32 | "metaflac-js2": "^1.0.8", 33 | "node-id3": "^0.2.3", 34 | "node-telegram-bot-api": "^0.61.0", 35 | "prompts": "^2.4.2", 36 | "sleep-promise": "^9.1.0" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /shell.nix: -------------------------------------------------------------------------------- 1 | { pkgs, flakePkgs }: 2 | pkgs.mkShell { 3 | buildInputs = with pkgs; with flakePkgs; [ 4 | yarn 5 | nodejs-18_x 6 | ]; 7 | } 8 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import 'dotenv/config'; 2 | import nease from 'NeteaseCloudMusicApi'; 3 | import Pool from './models/Pool'; 4 | import path from 'path'; 5 | import PlayList from './models/PlayList'; 6 | import sleep from 'sleep-promise'; 7 | 8 | const cookie = process.env.COOKIE; 9 | const baseDir = process.env.DIR; 10 | const playlistIds = process.env.PLAYLISTS.split(','); 11 | 12 | (async () => { 13 | // 坏诶,是 anyScript 14 | const pool = new Pool(path.join(baseDir, 'pool')); 15 | const playlists: PlayList[] = []; 16 | for (const playlistId of playlistIds) { 17 | const playlist = new PlayList( 18 | (await nease.playlist_detail({ id: playlistId, cookie })).body.playlist, baseDir, pool); 19 | playlists.push(playlist); 20 | } 21 | console.log('初始化成功'); 22 | while (true) { 23 | for (const playlist of playlists) { 24 | await playlist.syncSongs(); 25 | } 26 | await sleep(1000 * 60 * 60); 27 | } 28 | })(); 29 | -------------------------------------------------------------------------------- /src/login.ts: -------------------------------------------------------------------------------- 1 | import nease from 'NeteaseCloudMusicApi'; 2 | import prompts from 'prompts'; 3 | 4 | (async () => { 5 | const { loginMethod } = await prompts({ 6 | type: 'select', name: 'loginMethod', message: '选择登录方式', 7 | choices: [ 8 | { title: '手机号密码', value: 'phone' }, 9 | { title: '手机验证码', value: 'code' }, 10 | { title: '邮箱', value: 'mail' }, 11 | ], 12 | }); 13 | let cookie: string; 14 | switch (loginMethod) { 15 | case 'phone': { 16 | const phonePassword = await prompts([ 17 | { type: 'text', name: 'phone', message: '手机号' }, 18 | { type: 'text', name: 'password', message: '密码' }, 19 | ]); 20 | const result = await nease.login_cellphone(phonePassword); 21 | cookie = result.body.cookie; 22 | break; 23 | } 24 | case 'code': { 25 | const { phone } = await prompts([ 26 | { type: 'text', name: 'phone', message: '手机号' }, 27 | ]); 28 | await nease.captcha_sent({ cellphone: phone }); 29 | const { captcha } = await prompts([ 30 | { type: 'text', name: 'captcha', message: '短信验证码' }, 31 | ]); 32 | const result = await nease.login_cellphone({ phone, captcha }); 33 | cookie = result.body.cookie; 34 | break; 35 | } 36 | case 'mail': { 37 | const emailPassword = await prompts([ 38 | { type: 'text', name: 'email', message: '网易邮箱' }, 39 | { type: 'text', name: 'password', message: '密码' }, 40 | ]); 41 | const result = await nease.login(emailPassword); 42 | cookie = result.body.cookie; 43 | break; 44 | } 45 | } 46 | console.log('你的 Cookie:\n' + cookie); 47 | })(); 48 | -------------------------------------------------------------------------------- /src/models/PlayList.ts: -------------------------------------------------------------------------------- 1 | import path from "path"; 2 | import fs from "fs"; 3 | import nease from "NeteaseCloudMusicApi"; 4 | import Pool from "./Pool"; 5 | import { Level } from "level"; 6 | import bot from "../providers/bot"; 7 | 8 | const cookie = process.env.COOKIE; 9 | const downloadCookie = process.env.DOWNLOAD_COOKIE || cookie; 10 | const storePath = process.env.STORE || path.join(process.env.HOME, ".netease-music-sync"); 11 | 12 | export default class PlayList { 13 | public readonly id: number; 14 | public readonly name: string; 15 | public readonly dir: string; 16 | private readonly telegramMessageIdMap: Level; 17 | private readonly telegramChannelId: number; 18 | 19 | constructor(info: any, baseDir: string, private readonly pool: Pool) { 20 | this.name = info.name; 21 | this.id = info.id; 22 | this.dir = path.join(baseDir, this.name); 23 | if (!fs.existsSync(this.dir)) { 24 | fs.mkdirSync(this.dir, { recursive: true }); 25 | } 26 | if (!fs.existsSync(storePath)) { 27 | fs.mkdirSync(storePath, { recursive: true }); 28 | } 29 | this.telegramMessageIdMap = new Level(path.join(storePath, this.id.toString())); 30 | if (process.env.TELEGRAM_CHANNELS) { 31 | const configs = process.env.TELEGRAM_CHANNELS.split(","); 32 | const configForThisPlayList = configs.find((it) => it.startsWith(`${this.id}:`)); 33 | if (configForThisPlayList) { 34 | this.telegramChannelId = Number(configForThisPlayList.split(":")[1]); 35 | } 36 | } 37 | } 38 | 39 | private async getAllSongs() { 40 | const res = await nease.playlist_track_all({ id: this.id, cookie }); 41 | return res.body.songs as any[]; 42 | } 43 | 44 | private linkSong(fileName: string, poolFile: string) { 45 | return fs.symlinkSync(`../pool/${poolFile}`, path.join(this.dir, fileName)); 46 | } 47 | 48 | private unlinkSong(fileName: string) { 49 | return fs.unlinkSync(path.join(this.dir, fileName)); 50 | } 51 | 52 | private localExists(fileName: string) { 53 | return fs.existsSync(path.join(this.dir, fileName)); 54 | } 55 | 56 | private async uploadToChannel(fileName: string, title: string, performer: string, thumb: string, duration: number) { 57 | try { 58 | await this.telegramMessageIdMap.get(fileName); 59 | return; 60 | } catch { } 61 | try { 62 | console.log("上传到 Telegram:", fileName); 63 | const result = await bot.sendAudio(this.telegramChannelId, path.join(this.dir, fileName), { 64 | title, 65 | performer, 66 | // @ts-ignore 67 | thumb, 68 | duration, 69 | }); 70 | await this.telegramMessageIdMap.put(fileName, result.message_id); 71 | } catch (error) { 72 | console.error("无法上传:", fileName, error.message); 73 | } 74 | } 75 | 76 | private async deleteFromChannel(fileName: string) { 77 | let messageId: number; 78 | try { 79 | messageId = await this.telegramMessageIdMap.get(fileName); 80 | } catch { } 81 | try { 82 | await bot.deleteMessage(this.telegramChannelId, messageId); 83 | await this.telegramMessageIdMap.del(fileName); 84 | } catch (error) { 85 | console.error("无法从 Telegram 删除:", fileName, error.message); 86 | } 87 | } 88 | 89 | public async syncSongs() { 90 | console.log("同步歌单:", this.name); 91 | await this.telegramMessageIdMap.open(); 92 | const songs = await this.getAllSongs(); 93 | // 这个用来在最后对比删除已经删除了的歌的链接 94 | const fileNamesInPlaylist: string[] = []; 95 | for (const song of songs) { 96 | const title = song.name; 97 | const id = song.id; 98 | // pc 那个适配云盘项目 99 | const artists: string[] = song.pc?.ar ? [song.pc.ar] : song.ar.map((ar) => ar.name); 100 | const album = song.pc?.alb || song.al.name; 101 | const picUrl = song.al.picUrl; 102 | const durationMs = song.dt; 103 | let fileNameBeforeExt = `${artists.join(" ")} - ${title}`.replace(/[\/\\]/g, "_"); 104 | if (fileNameBeforeExt.length > 100) { 105 | fileNameBeforeExt = `${artists[0]} 等${artists.length}只 - ${title}`.replace(/[\/\\]/g, "_"); 106 | } 107 | 108 | try { 109 | const type = this.pool.exists(id); 110 | let fileName: string; 111 | if (type) { 112 | fileName = `${fileNameBeforeExt}.${type}`; 113 | fileNamesInPlaylist.push(fileName); 114 | if (!this.localExists(fileName)) { 115 | console.log("链接:", fileName); 116 | this.linkSong(fileName, `${id}.${type}`); 117 | } 118 | } else { 119 | const download = ( 120 | await nease.song_download_url({ 121 | cookie: song.pc ? cookie : downloadCookie, 122 | id: song.id, 123 | }) 124 | ).body.data as any; 125 | if (!download.type) { 126 | console.log("灰了或者需要会员,无法下载:", fileNameBeforeExt); 127 | continue; 128 | } 129 | const url = download.url; 130 | const type = download.type.toLowerCase(); 131 | fileName = `${fileNameBeforeExt}.${type}`; 132 | fileNamesInPlaylist.push(fileName); 133 | console.log("下载:", fileName); 134 | await this.pool.download(id, url, type, title, artists, album, picUrl); 135 | this.linkSong(fileName, `${id}.${type}`); 136 | } 137 | if (this.telegramChannelId) { 138 | await this.uploadToChannel(fileName, title, artists.join(" "), picUrl, Math.floor(durationMs / 1000)); 139 | } 140 | } catch (e) { 141 | console.log("处理失败", fileNameBeforeExt, e.message); 142 | } 143 | } 144 | const filesInDir = fs.readdirSync(this.dir); 145 | for (const i of filesInDir) { 146 | if (i === '@eaDir') continue; 147 | if (fileNamesInPlaylist.includes(i)) continue; 148 | console.log("删除:", i); 149 | this.unlinkSong(i); 150 | if (this.telegramChannelId) { 151 | await this.deleteFromChannel(i); 152 | } 153 | } 154 | console.log("同步完成:", this.name); 155 | } 156 | } 157 | -------------------------------------------------------------------------------- /src/models/Pool.ts: -------------------------------------------------------------------------------- 1 | // 所有的歌曲本地文件放在 pool 里面,文件名为 id。然后从 pool 软链接到歌单文件夹 2 | import fs from 'fs'; 3 | import path from 'path'; 4 | import { Writable } from 'stream'; 5 | import id3 from 'node-id3'; 6 | import MetaFlac from 'metaflac-js2'; 7 | 8 | export default class Pool { 9 | public constructor(public readonly dir: string) { 10 | if (!fs.existsSync(dir)) { 11 | fs.mkdirSync(dir, { recursive: true }); 12 | } 13 | } 14 | 15 | public exists(id: string | number, type?: string) { 16 | if (!type) { 17 | const TYPES = ['flac', 'mp3', 'wav', 'wma', 'm4a', 'aac', 'ogg', 'ape', 'opus', 'aiff']; 18 | for (const possibleType of TYPES) { 19 | if (!fs.existsSync(path.join(this.dir, `${id}.${possibleType}`))) continue; 20 | type = possibleType; 21 | break; 22 | } 23 | } 24 | if (!type) return null; 25 | const fileAbsPath = path.join(this.dir, `${id}.${type.toLowerCase()}`); 26 | if (!fs.existsSync(fileAbsPath)) return null; 27 | if (!fs.statSync(fileAbsPath).size) { 28 | console.log('删除空文件', fileAbsPath); 29 | fs.unlinkSync(fileAbsPath); 30 | return null; 31 | } 32 | return type; 33 | } 34 | 35 | public async download(id: string | number, url: string, type: string, 36 | title: string, artists: string[], album: string, picUrl: string) { 37 | const fileAbsPath = path.join(this.dir, `${id}.${type.toLowerCase()}`); 38 | if (this.exists(id, type)) 39 | return; 40 | try { 41 | const fileStream = fs.createWriteStream(fileAbsPath); 42 | const file = await fetch(url); 43 | // @ts-ignore @types/node 该 18 了 44 | await file.body.pipeTo(Writable.toWeb(fileStream)); 45 | } 46 | catch (e) { 47 | console.error('下载失败', e.message); 48 | // 删除下载失败的文件 49 | fs.unlinkSync(fileAbsPath); 50 | // 同步的模块还需要处理下载失败,跳过链接 51 | throw e; 52 | } 53 | 54 | // 写入元数据 55 | try { 56 | switch (type.toLowerCase()) { 57 | case 'mp3': { 58 | const orig = id3.read(fileAbsPath); 59 | const tags: id3.Tags = {}; 60 | // 优先使用原先的 61 | if (!orig.title) { 62 | tags.title = title; 63 | } 64 | if (!orig.artist) { 65 | tags.artist = artists.join('/'); 66 | } 67 | if (!orig.album) { 68 | tags.album = album; 69 | } 70 | if (!orig.image) { 71 | const image = await fetch(picUrl); 72 | tags.image = { 73 | mime: image.headers.get('content-type'), 74 | type: { id: 3, name: 'front cover' }, 75 | description: undefined, 76 | imageBuffer: Buffer.from(await image.arrayBuffer()), 77 | }; 78 | } 79 | id3.update(tags, fileAbsPath); 80 | break; 81 | } 82 | case 'flac': { 83 | // AnyScript 坏,没别的库好用了😭 84 | const flac = new MetaFlac(fileAbsPath); 85 | if (!flac.getTag('TITLE')) { 86 | flac.setTag('TITLE=' + title); 87 | } 88 | if (!flac.getTag('ARTIST')) { 89 | flac.setTag('ARTIST=' + artists.join('/')); 90 | } 91 | if (!flac.getTag('ALBUM')) { 92 | flac.setTag('ALBUM=' + album); 93 | } 94 | const image = await fetch(picUrl); 95 | // macOS 显示不了 flac 的封面,是 macOS 的问题 96 | flac.importPicture(Buffer.from(await image.arrayBuffer())); 97 | flac.save(); 98 | break; 99 | } 100 | } 101 | } 102 | catch (e) { 103 | console.error('写入元数据失败', e.message); 104 | } 105 | } 106 | } 107 | -------------------------------------------------------------------------------- /src/providers/bot.ts: -------------------------------------------------------------------------------- 1 | import TelegramBot from "node-telegram-bot-api"; 2 | 3 | export default new TelegramBot(process.env.TELEGRAM_TOKEN!, { 4 | polling: false, 5 | baseApiUrl: process.env.TELEGRAM_API_BASE, 6 | }); 7 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "incremental": true, 4 | "target": "ESNext", 5 | "outDir": "build", 6 | "rootDir": "src", 7 | "moduleResolution": "node", 8 | "module": "CommonJS", 9 | "esModuleInterop": true, 10 | "resolveJsonModule": true 11 | }, 12 | "exclude": [ 13 | "node_modules" 14 | ] 15 | } 16 | --------------------------------------------------------------------------------