diff --git a/.eslintrc.cjs b/.eslintrc.cjs index e2cb88c..eb1850b 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -4,4 +4,12 @@ module.exports = { 'no-bitwise': 'off', 'class-methods-use-this': 'off', }, + overrides: [ + { + files: ['test/**/*.ts'], + rules: { + 'import/no-extraneous-dependencies': 'off', + }, + }, + ], } diff --git a/package.json b/package.json index bd72070..8f7213a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "flac-tagger", - "version": "1.0.2", + "version": "1.0.3", "description": "Pure JavaScript FLAC Tag writer and reader.", "main": "dist/esm/index.js", "types": "dist/types/index.d.ts", @@ -17,7 +17,9 @@ "build": "npm-run-all -p build-esm build-cjs && tsconfig-to-dual-package", "type-check": "tsc --noEmit", "eslint-check": "eslint . --ext .cjs,.mjs,.ts", - "eslint-fix": "eslint . --ext .cjs,.mjs,.ts --fix" + "eslint-fix": "eslint . --ext .cjs,.mjs,.ts --fix", + "test-watch": "vitest", + "test": "vitest run" }, "keywords": [ "nodejs", @@ -41,7 +43,8 @@ "eslint-plugin-vue": "9.10.0", "npm-run-all": "^4.1.5", "tsconfig-to-dual-package": "^1.2.0", - "typescript": "5.0.4" + "typescript": "5.0.4", + "vitest": "^0.32.2" }, "dependencies": { "imageinfo": "^1.0.4" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 322d9bc..9d6b8bf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -49,9 +49,254 @@ devDependencies: typescript: specifier: 5.0.4 version: registry.npmmirror.com/typescript@5.0.4 + vitest: + specifier: ^0.32.2 + version: registry.npmmirror.com/vitest@0.32.2 packages: + registry.npmmirror.com/@esbuild/android-arm64@0.17.19: + resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz} + name: '@esbuild/android-arm64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/android-arm@0.17.19: + resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz} + name: '@esbuild/android-arm' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/android-x64@0.17.19: + resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz} + name: '@esbuild/android-x64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/darwin-arm64@0.17.19: + resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz} + name: '@esbuild/darwin-arm64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/darwin-x64@0.17.19: + resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz} + name: '@esbuild/darwin-x64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/freebsd-arm64@0.17.19: + resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz} + name: '@esbuild/freebsd-arm64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/freebsd-x64@0.17.19: + resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz} + name: '@esbuild/freebsd-x64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-arm64@0.17.19: + resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz} + name: '@esbuild/linux-arm64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-arm@0.17.19: + resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz} + name: '@esbuild/linux-arm' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-ia32@0.17.19: + resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz} + name: '@esbuild/linux-ia32' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-loong64@0.17.19: + resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz} + name: '@esbuild/linux-loong64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-mips64el@0.17.19: + resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz} + name: '@esbuild/linux-mips64el' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-ppc64@0.17.19: + resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz} + name: '@esbuild/linux-ppc64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-riscv64@0.17.19: + resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz} + name: '@esbuild/linux-riscv64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-s390x@0.17.19: + resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz} + name: '@esbuild/linux-s390x' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-x64@0.17.19: + resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz} + name: '@esbuild/linux-x64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/netbsd-x64@0.17.19: + resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz} + name: '@esbuild/netbsd-x64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/openbsd-x64@0.17.19: + resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz} + name: '@esbuild/openbsd-x64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/sunos-x64@0.17.19: + resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz} + name: '@esbuild/sunos-x64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/win32-arm64@0.17.19: + resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz} + name: '@esbuild/win32-arm64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/win32-ia32@0.17.19: + resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz} + name: '@esbuild/win32-ia32' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/win32-x64@0.17.19: + resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz} + name: '@esbuild/win32-x64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + registry.npmmirror.com/@eslint-community/eslint-utils@4.4.0(eslint@8.38.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz} id: registry.npmmirror.com/@eslint-community/eslint-utils/4.4.0 @@ -124,6 +369,12 @@ packages: version: 1.2.1 dev: true + registry.npmmirror.com/@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz} + name: '@jridgewell/sourcemap-codec' + version: 1.4.15 + dev: true + registry.npmmirror.com/@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz} name: '@nodelib/fs.scandir' @@ -176,6 +427,20 @@ packages: eslint-plugin-vue: registry.npmmirror.com/eslint-plugin-vue@9.10.0(eslint@8.38.0) dev: true + registry.npmmirror.com/@types/chai-subset@1.3.3: + resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/chai-subset/-/chai-subset-1.3.3.tgz} + name: '@types/chai-subset' + version: 1.3.3 + dependencies: + '@types/chai': registry.npmmirror.com/@types/chai@4.3.5 + dev: true + + registry.npmmirror.com/@types/chai@4.3.5: + resolution: {integrity: sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/chai/-/chai-4.3.5.tgz} + name: '@types/chai' + version: 4.3.5 + dev: true + registry.npmmirror.com/@types/json-schema@7.0.12: resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.12.tgz} name: '@types/json-schema' @@ -351,6 +616,55 @@ packages: eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys@3.4.1 dev: true + registry.npmmirror.com/@vitest/expect@0.32.2: + resolution: {integrity: sha512-6q5yzweLnyEv5Zz1fqK5u5E83LU+gOMVBDuxBl2d2Jfx1BAp5M+rZgc5mlyqdnxquyoiOXpXmFNkcGcfFnFH3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vitest/expect/-/expect-0.32.2.tgz} + name: '@vitest/expect' + version: 0.32.2 + dependencies: + '@vitest/spy': registry.npmmirror.com/@vitest/spy@0.32.2 + '@vitest/utils': registry.npmmirror.com/@vitest/utils@0.32.2 + chai: registry.npmmirror.com/chai@4.3.7 + dev: true + + registry.npmmirror.com/@vitest/runner@0.32.2: + resolution: {integrity: sha512-06vEL0C1pomOEktGoLjzZw+1Fb+7RBRhmw/06WkDrd1akkT9i12su0ku+R/0QM69dfkIL/rAIDTG+CSuQVDcKw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vitest/runner/-/runner-0.32.2.tgz} + name: '@vitest/runner' + version: 0.32.2 + dependencies: + '@vitest/utils': registry.npmmirror.com/@vitest/utils@0.32.2 + concordance: registry.npmmirror.com/concordance@5.0.4 + p-limit: registry.npmmirror.com/p-limit@4.0.0 + pathe: registry.npmmirror.com/pathe@1.1.1 + dev: true + + registry.npmmirror.com/@vitest/snapshot@0.32.2: + resolution: {integrity: sha512-JwhpeH/PPc7GJX38vEfCy9LtRzf9F4er7i4OsAJyV7sjPwjj+AIR8cUgpMTWK4S3TiamzopcTyLsZDMuldoi5A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vitest/snapshot/-/snapshot-0.32.2.tgz} + name: '@vitest/snapshot' + version: 0.32.2 + dependencies: + magic-string: registry.npmmirror.com/magic-string@0.30.0 + pathe: registry.npmmirror.com/pathe@1.1.1 + pretty-format: registry.npmmirror.com/pretty-format@27.5.1 + dev: true + + registry.npmmirror.com/@vitest/spy@0.32.2: + resolution: {integrity: sha512-Q/ZNILJ4ca/VzQbRM8ur3Si5Sardsh1HofatG9wsJY1RfEaw0XKP8IVax2lI1qnrk9YPuG9LA2LkZ0EI/3d4ug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vitest/spy/-/spy-0.32.2.tgz} + name: '@vitest/spy' + version: 0.32.2 + dependencies: + tinyspy: registry.npmmirror.com/tinyspy@2.1.1 + dev: true + + registry.npmmirror.com/@vitest/utils@0.32.2: + resolution: {integrity: sha512-lnJ0T5i03j0IJaeW73hxe2AuVnZ/y1BhhCOuIcl9LIzXnbpXJT9Lrt6brwKHXLOiA7MZ6N5hSJjt0xE1dGNCzQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vitest/utils/-/utils-0.32.2.tgz} + name: '@vitest/utils' + version: 0.32.2 + dependencies: + diff-sequences: registry.npmmirror.com/diff-sequences@29.4.3 + loupe: registry.npmmirror.com/loupe@2.3.6 + pretty-format: registry.npmmirror.com/pretty-format@27.5.1 + dev: true + registry.npmmirror.com/acorn-jsx@5.3.2(acorn@8.9.0): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz} id: registry.npmmirror.com/acorn-jsx/5.3.2 @@ -362,6 +676,13 @@ packages: acorn: registry.npmmirror.com/acorn@8.9.0 dev: true + registry.npmmirror.com/acorn-walk@8.2.0: + resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.2.0.tgz} + name: acorn-walk + version: 8.2.0 + engines: {node: '>=0.4.0'} + dev: true + registry.npmmirror.com/acorn@8.9.0: resolution: {integrity: sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/acorn/-/acorn-8.9.0.tgz} name: acorn @@ -406,6 +727,13 @@ packages: color-convert: registry.npmmirror.com/color-convert@2.0.1 dev: true + registry.npmmirror.com/ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-styles/-/ansi-styles-5.2.0.tgz} + name: ansi-styles + version: 5.2.0 + engines: {node: '>=10'} + dev: true + registry.npmmirror.com/argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz} name: argparse @@ -465,6 +793,12 @@ packages: es-shim-unscopables: registry.npmmirror.com/es-shim-unscopables@1.0.0 dev: true + registry.npmmirror.com/assertion-error@1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/assertion-error/-/assertion-error-1.1.0.tgz} + name: assertion-error + version: 1.1.0 + dev: true + registry.npmmirror.com/available-typed-arrays@1.0.5: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz} name: available-typed-arrays @@ -478,6 +812,12 @@ packages: version: 1.0.2 dev: true + registry.npmmirror.com/blueimp-md5@2.19.0: + resolution: {integrity: sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/blueimp-md5/-/blueimp-md5-2.19.0.tgz} + name: blueimp-md5 + version: 2.19.0 + dev: true + registry.npmmirror.com/boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz} name: boolbase @@ -502,6 +842,13 @@ packages: fill-range: registry.npmmirror.com/fill-range@7.0.1 dev: true + registry.npmmirror.com/cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cac/-/cac-6.7.14.tgz} + name: cac + version: 6.7.14 + engines: {node: '>=8'} + dev: true + registry.npmmirror.com/call-bind@1.0.2: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz} name: call-bind @@ -518,6 +865,21 @@ packages: engines: {node: '>=6'} dev: true + registry.npmmirror.com/chai@4.3.7: + resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chai/-/chai-4.3.7.tgz} + name: chai + version: 4.3.7 + engines: {node: '>=4'} + dependencies: + assertion-error: registry.npmmirror.com/assertion-error@1.1.0 + check-error: registry.npmmirror.com/check-error@1.0.2 + deep-eql: registry.npmmirror.com/deep-eql@4.1.3 + get-func-name: registry.npmmirror.com/get-func-name@2.0.0 + loupe: registry.npmmirror.com/loupe@2.3.6 + pathval: registry.npmmirror.com/pathval@1.1.1 + type-detect: registry.npmmirror.com/type-detect@4.0.8 + dev: true + registry.npmmirror.com/chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz} name: chalk @@ -539,6 +901,12 @@ packages: supports-color: registry.npmmirror.com/supports-color@7.2.0 dev: true + registry.npmmirror.com/check-error@1.0.2: + resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/check-error/-/check-error-1.0.2.tgz} + name: check-error + version: 1.0.2 + dev: true + registry.npmmirror.com/color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz} name: color-convert @@ -574,6 +942,22 @@ packages: version: 0.0.1 dev: true + registry.npmmirror.com/concordance@5.0.4: + resolution: {integrity: sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/concordance/-/concordance-5.0.4.tgz} + name: concordance + version: 5.0.4 + engines: {node: '>=10.18.0 <11 || >=12.14.0 <13 || >=14'} + dependencies: + date-time: registry.npmmirror.com/date-time@3.1.0 + esutils: registry.npmmirror.com/esutils@2.0.3 + fast-diff: registry.npmmirror.com/fast-diff@1.3.0 + js-string-escape: registry.npmmirror.com/js-string-escape@1.0.1 + lodash: registry.npmmirror.com/lodash@4.17.21 + md5-hex: registry.npmmirror.com/md5-hex@3.0.1 + semver: registry.npmmirror.com/semver@7.5.3 + well-known-symbols: registry.npmmirror.com/well-known-symbols@2.0.0 + dev: true + registry.npmmirror.com/confusing-browser-globals@1.0.11: resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz} name: confusing-browser-globals @@ -612,6 +996,15 @@ packages: hasBin: true dev: true + registry.npmmirror.com/date-time@3.1.0: + resolution: {integrity: sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/date-time/-/date-time-3.1.0.tgz} + name: date-time + version: 3.1.0 + engines: {node: '>=6'} + dependencies: + time-zone: registry.npmmirror.com/time-zone@1.0.0 + dev: true + registry.npmmirror.com/debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz} name: debug @@ -639,6 +1032,15 @@ packages: ms: registry.npmmirror.com/ms@2.1.2 dev: true + registry.npmmirror.com/deep-eql@4.1.3: + resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/deep-eql/-/deep-eql-4.1.3.tgz} + name: deep-eql + version: 4.1.3 + engines: {node: '>=6'} + dependencies: + type-detect: registry.npmmirror.com/type-detect@4.0.8 + dev: true + registry.npmmirror.com/deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz} name: deep-is @@ -655,6 +1057,13 @@ packages: object-keys: registry.npmmirror.com/object-keys@1.1.1 dev: true + registry.npmmirror.com/diff-sequences@29.4.3: + resolution: {integrity: sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/diff-sequences/-/diff-sequences-29.4.3.tgz} + name: diff-sequences + version: 29.4.3 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + registry.npmmirror.com/dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz} name: dir-glob @@ -762,6 +1171,38 @@ packages: is-symbol: registry.npmmirror.com/is-symbol@1.0.4 dev: true + registry.npmmirror.com/esbuild@0.17.19: + resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild/-/esbuild-0.17.19.tgz} + name: esbuild + version: 0.17.19 + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': registry.npmmirror.com/@esbuild/android-arm@0.17.19 + '@esbuild/android-arm64': registry.npmmirror.com/@esbuild/android-arm64@0.17.19 + '@esbuild/android-x64': registry.npmmirror.com/@esbuild/android-x64@0.17.19 + '@esbuild/darwin-arm64': registry.npmmirror.com/@esbuild/darwin-arm64@0.17.19 + '@esbuild/darwin-x64': registry.npmmirror.com/@esbuild/darwin-x64@0.17.19 + '@esbuild/freebsd-arm64': registry.npmmirror.com/@esbuild/freebsd-arm64@0.17.19 + '@esbuild/freebsd-x64': registry.npmmirror.com/@esbuild/freebsd-x64@0.17.19 + '@esbuild/linux-arm': registry.npmmirror.com/@esbuild/linux-arm@0.17.19 + '@esbuild/linux-arm64': registry.npmmirror.com/@esbuild/linux-arm64@0.17.19 + '@esbuild/linux-ia32': registry.npmmirror.com/@esbuild/linux-ia32@0.17.19 + '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64@0.17.19 + '@esbuild/linux-mips64el': registry.npmmirror.com/@esbuild/linux-mips64el@0.17.19 + '@esbuild/linux-ppc64': registry.npmmirror.com/@esbuild/linux-ppc64@0.17.19 + '@esbuild/linux-riscv64': registry.npmmirror.com/@esbuild/linux-riscv64@0.17.19 + '@esbuild/linux-s390x': registry.npmmirror.com/@esbuild/linux-s390x@0.17.19 + '@esbuild/linux-x64': registry.npmmirror.com/@esbuild/linux-x64@0.17.19 + '@esbuild/netbsd-x64': registry.npmmirror.com/@esbuild/netbsd-x64@0.17.19 + '@esbuild/openbsd-x64': registry.npmmirror.com/@esbuild/openbsd-x64@0.17.19 + '@esbuild/sunos-x64': registry.npmmirror.com/@esbuild/sunos-x64@0.17.19 + '@esbuild/win32-arm64': registry.npmmirror.com/@esbuild/win32-arm64@0.17.19 + '@esbuild/win32-ia32': registry.npmmirror.com/@esbuild/win32-ia32@0.17.19 + '@esbuild/win32-x64': registry.npmmirror.com/@esbuild/win32-x64@0.17.19 + dev: true + registry.npmmirror.com/escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz} name: escape-string-regexp @@ -1158,6 +1599,16 @@ packages: version: 1.0.0 dev: true + registry.npmmirror.com/fsevents@2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz} + name: fsevents + version: 2.3.2 + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + registry.npmmirror.com/function-bind@1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz} name: function-bind @@ -1182,6 +1633,12 @@ packages: version: 1.2.3 dev: true + registry.npmmirror.com/get-func-name@2.0.0: + resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-func-name/-/get-func-name-2.0.0.tgz} + name: get-func-name + version: 2.0.0 + dev: true + registry.npmmirror.com/get-intrinsic@1.2.1: resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz} name: get-intrinsic @@ -1582,6 +2039,13 @@ packages: version: 4.4.1 dev: true + registry.npmmirror.com/js-string-escape@1.0.1: + resolution: {integrity: sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/js-string-escape/-/js-string-escape-1.0.1.tgz} + name: js-string-escape + version: 1.0.1 + engines: {node: '>= 0.8'} + dev: true + registry.npmmirror.com/js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz} name: js-yaml @@ -1618,6 +2082,12 @@ packages: minimist: registry.npmmirror.com/minimist@1.2.8 dev: true + registry.npmmirror.com/jsonc-parser@3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz} + name: jsonc-parser + version: 3.2.0 + dev: true + registry.npmmirror.com/levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz} name: levn @@ -1640,6 +2110,13 @@ packages: strip-bom: registry.npmmirror.com/strip-bom@3.0.0 dev: true + registry.npmmirror.com/local-pkg@0.4.3: + resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/local-pkg/-/local-pkg-0.4.3.tgz} + name: local-pkg + version: 0.4.3 + engines: {node: '>=14'} + dev: true + registry.npmmirror.com/locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz} name: locate-path @@ -1661,6 +2138,14 @@ packages: version: 4.17.21 dev: true + registry.npmmirror.com/loupe@2.3.6: + resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/loupe/-/loupe-2.3.6.tgz} + name: loupe + version: 2.3.6 + dependencies: + get-func-name: registry.npmmirror.com/get-func-name@2.0.0 + dev: true + registry.npmmirror.com/lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz} name: lru-cache @@ -1670,6 +2155,24 @@ packages: yallist: registry.npmmirror.com/yallist@4.0.0 dev: true + registry.npmmirror.com/magic-string@0.30.0: + resolution: {integrity: sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/magic-string/-/magic-string-0.30.0.tgz} + name: magic-string + version: 0.30.0 + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec@1.4.15 + dev: true + + registry.npmmirror.com/md5-hex@3.0.1: + resolution: {integrity: sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/md5-hex/-/md5-hex-3.0.1.tgz} + name: md5-hex + version: 3.0.1 + engines: {node: '>=8'} + dependencies: + blueimp-md5: registry.npmmirror.com/blueimp-md5@2.19.0 + dev: true + registry.npmmirror.com/memorystream@0.3.1: resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/memorystream/-/memorystream-0.3.1.tgz} name: memorystream @@ -1708,6 +2211,17 @@ packages: version: 1.2.8 dev: true + registry.npmmirror.com/mlly@1.4.0: + resolution: {integrity: sha512-ua8PAThnTwpprIaU47EPeZ/bPUVp2QYBbWMphUQpVdBI3Lgqzm5KZQ45Agm3YJedHXaIHl6pBGabaLSUPPSptg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mlly/-/mlly-1.4.0.tgz} + name: mlly + version: 1.4.0 + dependencies: + acorn: registry.npmmirror.com/acorn@8.9.0 + pathe: registry.npmmirror.com/pathe@1.1.1 + pkg-types: registry.npmmirror.com/pkg-types@1.0.3 + ufo: registry.npmmirror.com/ufo@1.1.2 + dev: true + registry.npmmirror.com/ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz} name: ms @@ -1720,6 +2234,14 @@ packages: version: 2.1.3 dev: true + registry.npmmirror.com/nanoid@3.3.6: + resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nanoid/-/nanoid-3.3.6.tgz} + name: nanoid + version: 3.3.6 + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + registry.npmmirror.com/natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz} name: natural-compare-lite @@ -1853,6 +2375,15 @@ packages: yocto-queue: registry.npmmirror.com/yocto-queue@0.1.0 dev: true + registry.npmmirror.com/p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/p-limit/-/p-limit-4.0.0.tgz} + name: p-limit + version: 4.0.0 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + yocto-queue: registry.npmmirror.com/yocto-queue@1.0.0 + dev: true + registry.npmmirror.com/p-locate@5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz} name: p-locate @@ -1931,6 +2462,24 @@ packages: engines: {node: '>=8'} dev: true + registry.npmmirror.com/pathe@1.1.1: + resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pathe/-/pathe-1.1.1.tgz} + name: pathe + version: 1.1.1 + dev: true + + registry.npmmirror.com/pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pathval/-/pathval-1.1.1.tgz} + name: pathval + version: 1.1.1 + dev: true + + registry.npmmirror.com/picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz} + name: picocolors + version: 1.0.0 + dev: true + registry.npmmirror.com/picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz} name: picomatch @@ -1953,6 +2502,16 @@ packages: engines: {node: '>=4'} dev: true + registry.npmmirror.com/pkg-types@1.0.3: + resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pkg-types/-/pkg-types-1.0.3.tgz} + name: pkg-types + version: 1.0.3 + dependencies: + jsonc-parser: registry.npmmirror.com/jsonc-parser@3.2.0 + mlly: registry.npmmirror.com/mlly@1.4.0 + pathe: registry.npmmirror.com/pathe@1.1.1 + dev: true + registry.npmmirror.com/postcss-selector-parser@6.0.13: resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz} name: postcss-selector-parser @@ -1963,6 +2522,17 @@ packages: util-deprecate: registry.npmmirror.com/util-deprecate@1.0.2 dev: true + registry.npmmirror.com/postcss@8.4.24: + resolution: {integrity: sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss/-/postcss-8.4.24.tgz} + name: postcss + version: 8.4.24 + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: registry.npmmirror.com/nanoid@3.3.6 + picocolors: registry.npmmirror.com/picocolors@1.0.0 + source-map-js: registry.npmmirror.com/source-map-js@1.0.2 + dev: true + registry.npmmirror.com/prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz} name: prelude-ls @@ -1987,6 +2557,17 @@ packages: hasBin: true dev: true + registry.npmmirror.com/pretty-format@27.5.1: + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pretty-format/-/pretty-format-27.5.1.tgz} + name: pretty-format + version: 27.5.1 + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + ansi-regex: registry.npmmirror.com/ansi-regex@5.0.1 + ansi-styles: registry.npmmirror.com/ansi-styles@5.2.0 + react-is: registry.npmmirror.com/react-is@17.0.2 + dev: true + registry.npmmirror.com/punycode@2.3.0: resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/punycode/-/punycode-2.3.0.tgz} name: punycode @@ -2000,6 +2581,12 @@ packages: version: 1.2.3 dev: true + registry.npmmirror.com/react-is@17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-is/-/react-is-17.0.2.tgz} + name: react-is + version: 17.0.2 + dev: true + registry.npmmirror.com/read-pkg@3.0.0: resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/read-pkg/-/read-pkg-3.0.0.tgz} name: read-pkg @@ -2068,6 +2655,16 @@ packages: glob: registry.npmmirror.com/glob@7.2.3 dev: true + registry.npmmirror.com/rollup@3.26.0: + resolution: {integrity: sha512-YzJH0eunH2hr3knvF3i6IkLO/jTjAEwU4HoMUbQl4//Tnl3ou0e7P5SjxdDr8HQJdeUJShlbEHXrrnEHy1l7Yg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rollup/-/rollup-3.26.0.tgz} + name: rollup + version: 3.26.0 + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.2 + dev: true + registry.npmmirror.com/run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz} name: run-parallel @@ -2158,6 +2755,12 @@ packages: object-inspect: registry.npmmirror.com/object-inspect@1.12.3 dev: true + registry.npmmirror.com/siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/siginfo/-/siginfo-2.0.0.tgz} + name: siginfo + version: 2.0.0 + dev: true + registry.npmmirror.com/slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz} name: slash @@ -2165,6 +2768,13 @@ packages: engines: {node: '>=8'} dev: true + registry.npmmirror.com/source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz} + name: source-map-js + version: 1.0.2 + engines: {node: '>=0.10.0'} + dev: true + registry.npmmirror.com/spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/spdx-correct/-/spdx-correct-3.2.0.tgz} name: spdx-correct @@ -2195,6 +2805,18 @@ packages: version: 3.0.13 dev: true + registry.npmmirror.com/stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stackback/-/stackback-0.0.2.tgz} + name: stackback + version: 0.0.2 + dev: true + + registry.npmmirror.com/std-env@3.3.3: + resolution: {integrity: sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/std-env/-/std-env-3.3.3.tgz} + name: std-env + version: 3.3.3 + dev: true + registry.npmmirror.com/string.prototype.padend@3.1.4: resolution: {integrity: sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz} name: string.prototype.padend @@ -2260,6 +2882,14 @@ packages: engines: {node: '>=8'} dev: true + registry.npmmirror.com/strip-literal@1.0.1: + resolution: {integrity: sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-literal/-/strip-literal-1.0.1.tgz} + name: strip-literal + version: 1.0.1 + dependencies: + acorn: registry.npmmirror.com/acorn@8.9.0 + dev: true + registry.npmmirror.com/supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz} name: supports-color @@ -2291,6 +2921,33 @@ packages: version: 0.2.0 dev: true + registry.npmmirror.com/time-zone@1.0.0: + resolution: {integrity: sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/time-zone/-/time-zone-1.0.0.tgz} + name: time-zone + version: 1.0.0 + engines: {node: '>=4'} + dev: true + + registry.npmmirror.com/tinybench@2.5.0: + resolution: {integrity: sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tinybench/-/tinybench-2.5.0.tgz} + name: tinybench + version: 2.5.0 + dev: true + + registry.npmmirror.com/tinypool@0.5.0: + resolution: {integrity: sha512-paHQtnrlS1QZYKF/GnLoOM/DN9fqaGOFbCbxzAhwniySnzl9Ebk8w73/dd34DAhe/obUbPAOldTyYXQZxnPBPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tinypool/-/tinypool-0.5.0.tgz} + name: tinypool + version: 0.5.0 + engines: {node: '>=14.0.0'} + dev: true + + registry.npmmirror.com/tinyspy@2.1.1: + resolution: {integrity: sha512-XPJL2uSzcOyBMky6OFrusqWlzfFrXtE0hPuMgW8A2HmaqrPo4ZQHRN/V0QXN3FSjKxpsbRrFc5LI7KOwBsT1/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tinyspy/-/tinyspy-2.1.1.tgz} + name: tinyspy + version: 2.1.1 + engines: {node: '>=14.0.0'} + dev: true + registry.npmmirror.com/to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz} name: to-regex-range @@ -2353,6 +3010,13 @@ packages: prelude-ls: registry.npmmirror.com/prelude-ls@1.2.1 dev: true + registry.npmmirror.com/type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/type-detect/-/type-detect-4.0.8.tgz} + name: type-detect + version: 4.0.8 + engines: {node: '>=4'} + dev: true + registry.npmmirror.com/type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz} name: type-fest @@ -2378,6 +3042,12 @@ packages: hasBin: true dev: true + registry.npmmirror.com/ufo@1.1.2: + resolution: {integrity: sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ufo/-/ufo-1.1.2.tgz} + name: ufo + version: 1.1.2 + dev: true + registry.npmmirror.com/unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz} name: unbox-primitive @@ -2412,6 +3082,133 @@ packages: spdx-expression-parse: registry.npmmirror.com/spdx-expression-parse@3.0.1 dev: true + registry.npmmirror.com/vite-node@0.32.2(@types/node@20.3.2): + resolution: {integrity: sha512-dTQ1DCLwl2aEseov7cfQ+kDMNJpM1ebpyMMMwWzBvLbis8Nla/6c9WQcqpPssTwS6Rp/+U6KwlIj8Eapw4bLdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite-node/-/vite-node-0.32.2.tgz} + id: registry.npmmirror.com/vite-node/0.32.2 + name: vite-node + version: 0.32.2 + engines: {node: '>=v14.18.0'} + hasBin: true + dependencies: + cac: registry.npmmirror.com/cac@6.7.14 + debug: registry.npmmirror.com/debug@4.3.4 + mlly: registry.npmmirror.com/mlly@1.4.0 + pathe: registry.npmmirror.com/pathe@1.1.1 + picocolors: registry.npmmirror.com/picocolors@1.0.0 + vite: registry.npmmirror.com/vite@4.3.9(@types/node@20.3.2) + transitivePeerDependencies: + - '@types/node' + - less + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + registry.npmmirror.com/vite@4.3.9(@types/node@20.3.2): + resolution: {integrity: sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite/-/vite-4.3.9.tgz} + id: registry.npmmirror.com/vite/4.3.9 + name: vite + version: 4.3.9 + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': registry.npmmirror.com/@types/node@20.3.2 + esbuild: registry.npmmirror.com/esbuild@0.17.19 + postcss: registry.npmmirror.com/postcss@8.4.24 + rollup: registry.npmmirror.com/rollup@3.26.0 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.2 + dev: true + + registry.npmmirror.com/vitest@0.32.2: + resolution: {integrity: sha512-hU8GNNuQfwuQmqTLfiKcqEhZY72Zxb7nnN07koCUNmntNxbKQnVbeIS6sqUgR3eXSlbOpit8+/gr1KpqoMgWCQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vitest/-/vitest-0.32.2.tgz} + name: vitest + version: 0.32.2 + engines: {node: '>=v14.18.0'} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@vitest/browser': '*' + '@vitest/ui': '*' + happy-dom: '*' + jsdom: '*' + playwright: '*' + safaridriver: '*' + webdriverio: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + playwright: + optional: true + safaridriver: + optional: true + webdriverio: + optional: true + dependencies: + '@types/chai': registry.npmmirror.com/@types/chai@4.3.5 + '@types/chai-subset': registry.npmmirror.com/@types/chai-subset@1.3.3 + '@types/node': registry.npmmirror.com/@types/node@20.3.2 + '@vitest/expect': registry.npmmirror.com/@vitest/expect@0.32.2 + '@vitest/runner': registry.npmmirror.com/@vitest/runner@0.32.2 + '@vitest/snapshot': registry.npmmirror.com/@vitest/snapshot@0.32.2 + '@vitest/spy': registry.npmmirror.com/@vitest/spy@0.32.2 + '@vitest/utils': registry.npmmirror.com/@vitest/utils@0.32.2 + acorn: registry.npmmirror.com/acorn@8.9.0 + acorn-walk: registry.npmmirror.com/acorn-walk@8.2.0 + cac: registry.npmmirror.com/cac@6.7.14 + chai: registry.npmmirror.com/chai@4.3.7 + concordance: registry.npmmirror.com/concordance@5.0.4 + debug: registry.npmmirror.com/debug@4.3.4 + local-pkg: registry.npmmirror.com/local-pkg@0.4.3 + magic-string: registry.npmmirror.com/magic-string@0.30.0 + pathe: registry.npmmirror.com/pathe@1.1.1 + picocolors: registry.npmmirror.com/picocolors@1.0.0 + std-env: registry.npmmirror.com/std-env@3.3.3 + strip-literal: registry.npmmirror.com/strip-literal@1.0.1 + tinybench: registry.npmmirror.com/tinybench@2.5.0 + tinypool: registry.npmmirror.com/tinypool@0.5.0 + vite: registry.npmmirror.com/vite@4.3.9(@types/node@20.3.2) + vite-node: registry.npmmirror.com/vite-node@0.32.2(@types/node@20.3.2) + why-is-node-running: registry.npmmirror.com/why-is-node-running@2.2.2 + transitivePeerDependencies: + - less + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + registry.npmmirror.com/vue-eslint-parser@9.3.1(eslint@8.38.0): resolution: {integrity: sha512-Clr85iD2XFZ3lJ52/ppmUDG/spxQu6+MAeHXjjyI4I1NUYZ9xmenQp4N0oaHJhrA8OOxltCVxMRfANGa70vU0g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-9.3.1.tgz} id: registry.npmmirror.com/vue-eslint-parser/9.3.1 @@ -2433,6 +3230,13 @@ packages: - supports-color dev: true + registry.npmmirror.com/well-known-symbols@2.0.0: + resolution: {integrity: sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/well-known-symbols/-/well-known-symbols-2.0.0.tgz} + name: well-known-symbols + version: 2.0.0 + engines: {node: '>=6'} + dev: true + registry.npmmirror.com/which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz} name: which-boxed-primitive @@ -2478,6 +3282,17 @@ packages: isexe: registry.npmmirror.com/isexe@2.0.0 dev: true + registry.npmmirror.com/why-is-node-running@2.2.2: + resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/why-is-node-running/-/why-is-node-running-2.2.2.tgz} + name: why-is-node-running + version: 2.2.2 + engines: {node: '>=8'} + hasBin: true + dependencies: + siginfo: registry.npmmirror.com/siginfo@2.0.0 + stackback: registry.npmmirror.com/stackback@0.0.2 + dev: true + registry.npmmirror.com/word-wrap@1.2.3: resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.3.tgz} name: word-wrap @@ -2510,3 +3325,10 @@ packages: version: 0.1.0 engines: {node: '>=10'} dev: true + + registry.npmmirror.com/yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yocto-queue/-/yocto-queue-1.0.0.tgz} + name: yocto-queue + version: 1.0.0 + engines: {node: '>=12.20'} + dev: true diff --git a/test/audio-blank.flac b/test/audio-blank.flac new file mode 100644 index 0000000..332e99c Binary files /dev/null and b/test/audio-blank.flac differ diff --git a/test/audio-read.flac b/test/audio-read.flac new file mode 100644 index 0000000..4f4ba9d Binary files /dev/null and b/test/audio-read.flac differ diff --git a/test/common.ts b/test/common.ts new file mode 100644 index 0000000..cd71714 --- /dev/null +++ b/test/common.ts @@ -0,0 +1,23 @@ +import { assert } from 'vitest' +import { readFile } from 'fs/promises' +import { FlacTags } from '../src/index' + +export const coverBuffer = await readFile('./test/cover.jpg') +export const tags: FlacTags = { + tagMap: { + title: 'test-title', + artist: ['artist 1', 'artist 2'], + album: 'test-album', + albumSortOrder: 'TEST001', + }, + picture: { + buffer: coverBuffer, + }, +} +export const assertTags = (actualTags: FlacTags) => { + assert.equal(actualTags.tagMap.title, tags.tagMap.title) + assert.deepEqual(actualTags.tagMap.artist, tags.tagMap.artist) + assert.equal(actualTags.tagMap.album, tags.tagMap.album) + assert.equal(actualTags.tagMap.albumSortOrder, tags.tagMap.albumSortOrder) + assert.isTrue(coverBuffer.equals(actualTags.picture?.buffer)) +} diff --git a/test/cover.jpg b/test/cover.jpg new file mode 100644 index 0000000..35ce0d3 Binary files /dev/null and b/test/cover.jpg differ diff --git a/test/read.test.ts b/test/read.test.ts new file mode 100644 index 0000000..99cbbe5 --- /dev/null +++ b/test/read.test.ts @@ -0,0 +1,15 @@ +import { describe, test } from 'vitest' +import { readFlacTags, readFlacTagsSync } from '../src/index' +import { assertTags } from './common' + +const readPath = './test/audio-read.flac' +describe('read FLAC tags', () => { + test('read async', async () => { + const actualTags = await readFlacTags(readPath) + assertTags(actualTags) + }) + test('read sync', () => { + const actualTags = readFlacTagsSync(readPath) + assertTags(actualTags) + }) +}) diff --git a/test/write.test.ts b/test/write.test.ts new file mode 100644 index 0000000..bbc342a --- /dev/null +++ b/test/write.test.ts @@ -0,0 +1,25 @@ +import { describe, test, beforeEach, afterEach } from 'vitest' +import { copyFile, unlink } from 'fs/promises' +import { writeFlacTags, readFlacTags, writeFlacTagsSync, readFlacTagsSync } from '../src/index' +import { assertTags, tags } from './common' + +const sourcePath = './test/audio-blank.flac' +const writePath = './test/audio-write.flac' +beforeEach(async () => { + await copyFile(sourcePath, writePath) +}) +afterEach(async () => { + await unlink(writePath) +}) +describe('write FLAC tags', () => { + test('write async', async () => { + await writeFlacTags(tags, writePath) + const actualTags = await readFlacTags(writePath) + assertTags(actualTags) + }) + test('write sync', () => { + writeFlacTagsSync(tags, writePath) + const actualTags = readFlacTagsSync(writePath) + assertTags(actualTags) + }) +})