├── .eslintignore ├── .eslintrc.js ├── .gitignore ├── .prettierrc ├── CorePlugins.md ├── LICENSE ├── README.md ├── examples ├── .gitignore ├── native │ ├── .editorconfig │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .prettierrc │ ├── README.md │ ├── package.json │ ├── postcss.config.js │ ├── project.config.json │ ├── scripts │ │ ├── assets │ │ │ ├── copy.ts │ │ │ ├── index.ts │ │ │ ├── scss.ts │ │ │ └── ts.ts │ │ ├── build.ts │ │ ├── clear.ts │ │ ├── common.ts │ │ └── preflight.ts │ ├── src │ │ ├── .gitignore │ │ ├── app.json │ │ ├── app.scss │ │ ├── app.ts │ │ ├── pages │ │ │ ├── index │ │ │ │ ├── index.json │ │ │ │ ├── index.scss │ │ │ │ ├── index.ts │ │ │ │ └── index.wxml │ │ │ └── logs │ │ │ │ ├── logs.json │ │ │ │ ├── logs.scss │ │ │ │ ├── logs.ts │ │ │ │ └── logs.wxml │ │ ├── sitemap.json │ │ └── utils │ │ │ └── util.ts │ ├── tailwind.config.js │ ├── tsconfig.json │ ├── vscode-tailwindcss-intellisense.png │ └── yarn.lock └── uni-app │ └── README.md ├── jest.config.ts ├── jest.setup.ts ├── package.json ├── rollup.config.js ├── scripts ├── allCorePlugins.ts ├── gen-readme.ts ├── raw.js └── template.md ├── src ├── config.ts ├── constant.ts ├── corePlugins.ts ├── defaultConfig.ts ├── index.ts ├── rem2rpx.ts ├── types.ts └── util.ts ├── test ├── config.test.ts ├── rem2rpx.test.ts └── util.test.ts ├── tsconfig.build.json ├── tsconfig.json ├── types └── tailwindcss.defaultConfig.d.ts └── yarn.lock /.eslintignore: -------------------------------------------------------------------------------- 1 | dist/** -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | function getJestGlobals (flag = true) { 2 | return { 3 | afterAll: flag, 4 | afterEach: flag, 5 | beforeAll: flag, 6 | beforeEach: flag, 7 | describe: flag, 8 | expect: flag, 9 | fit: flag, 10 | it: flag, 11 | jest: flag, 12 | test: flag, 13 | xdescribe: flag, 14 | xit: flag, 15 | xtest: flag 16 | } 17 | } 18 | 19 | module.exports = { 20 | root: false, 21 | env: { 22 | es2021: true, 23 | node: true 24 | }, 25 | extends: [ 26 | 'standard' 27 | ], 28 | parser: '@typescript-eslint/parser', 29 | parserOptions: { 30 | ecmaVersion: 12, 31 | sourceType: 'module' 32 | }, 33 | plugins: [ 34 | '@typescript-eslint' 35 | ], 36 | rules: { 37 | }, 38 | globals: { 39 | ...getJestGlobals() 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | dist 3 | coverage -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "tabWidth": 2, 3 | "useTabs": false, 4 | "semi": false, 5 | "singleQuote": true, 6 | "trailingComma": "none" 7 | } 8 | -------------------------------------------------------------------------------- /CorePlugins.md: -------------------------------------------------------------------------------- 1 | # tailwindcss corePlugins 启用状况 2 | 3 | |插件|是否启用| 4 | |---|---| 5 | |**preflight**|| 6 | |**container**|| 7 | |**space**|| 8 | |**divideWidth**|| 9 | |**divideColor**|| 10 | |**divideStyle**|| 11 | |**divideOpacity**|| 12 | |**accessibility**|| 13 | |**appearance**|| 14 | |**backgroundAttachment**|| 15 | |**backgroundClip**|| 16 | |**backgroundColor**|| 17 | |**backgroundImage**|| 18 | |**gradientColorStops**|| 19 | |**backgroundOpacity**|| 20 | |**backgroundPosition**|| 21 | |**backgroundRepeat**|| 22 | |**backgroundSize**|| 23 | |**borderCollapse**|| 24 | |**borderColor**|| 25 | |**borderOpacity**|| 26 | |**borderRadius**|| 27 | |**borderStyle**|| 28 | |**borderWidth**|| 29 | |**boxSizing**|| 30 | |**cursor**|| 31 | |**display**|| 32 | |**flexDirection**|| 33 | |**flexWrap**|| 34 | |**placeItems**|| 35 | |**placeContent**|| 36 | |**placeSelf**|| 37 | |**alignItems**|| 38 | |**alignContent**|| 39 | |**alignSelf**|| 40 | |**justifyItems**|| 41 | |**justifyContent**|| 42 | |**justifySelf**|| 43 | |**flex**|| 44 | |**flexGrow**|| 45 | |**flexShrink**|| 46 | |**order**|| 47 | |**float**|| 48 | |**clear**|| 49 | |**fontFamily**|| 50 | |**fontWeight**|| 51 | |**height**|| 52 | |**fontSize**|| 53 | |**lineHeight**|| 54 | |**listStylePosition**|| 55 | |**listStyleType**|| 56 | |**margin**|| 57 | |**maxHeight**|| 58 | |**maxWidth**|| 59 | |**minHeight**|| 60 | |**minWidth**|| 61 | |**objectFit**|| 62 | |**objectPosition**|| 63 | |**opacity**|| 64 | |**outline**|| 65 | |**overflow**|| 66 | |**overscrollBehavior**|| 67 | |**padding**|| 68 | |**placeholderColor**|| 69 | |**placeholderOpacity**|| 70 | |**pointerEvents**|| 71 | |**position**|| 72 | |**inset**|| 73 | |**resize**|| 74 | |**boxShadow**|| 75 | |**ringWidth**|| 76 | |**ringOffsetColor**|| 77 | |**ringOffsetWidth**|| 78 | |**ringColor**|| 79 | |**ringOpacity**|| 80 | |**fill**|| 81 | |**stroke**|| 82 | |**strokeWidth**|| 83 | |**tableLayout**|| 84 | |**textAlign**|| 85 | |**textColor**|| 86 | |**textOpacity**|| 87 | |**textOverflow**|| 88 | |**fontStyle**|| 89 | |**textTransform**|| 90 | |**textDecoration**|| 91 | |**fontSmoothing**|| 92 | |**fontVariantNumeric**|| 93 | |**letterSpacing**|| 94 | |**userSelect**|| 95 | |**verticalAlign**|| 96 | |**visibility**|| 97 | |**whitespace**|| 98 | |**wordBreak**|| 99 | |**width**|| 100 | |**zIndex**|| 101 | |**gap**|| 102 | |**gridAutoFlow**|| 103 | |**gridTemplateColumns**|| 104 | |**gridAutoColumns**|| 105 | |**gridColumn**|| 106 | |**gridColumnStart**|| 107 | |**gridColumnEnd**|| 108 | |**gridTemplateRows**|| 109 | |**gridAutoRows**|| 110 | |**gridRow**|| 111 | |**gridRowStart**|| 112 | |**gridRowEnd**|| 113 | |**transform**|| 114 | |**transformOrigin**|| 115 | |**scale**|| 116 | |**rotate**|| 117 | |**translate**|| 118 | |**skew**|| 119 | |**transitionProperty**|| 120 | |**transitionTimingFunction**|| 121 | |**transitionDuration**|| 122 | |**transitionDelay**|| 123 | |**animation**|| 124 | 125 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 ice breaker 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 👉👉👉 支持 `tailwindcss jit` 引擎的 [`weapp-tailwindcss-webpack-plugin`](https://github.com/sonofmagic/weapp-tailwindcss-webpack-plugin) 已经发布了,赶紧过来看看吧。 2 | 3 | 它能带给开发者最原汁原味的 `jit` 模式开发体验,无需抛弃 `[`,`]`,`/`,`#`,`.` 等特殊符号,都在代码编译打包时统一处理。相比 `tailwindcss-miniprogram-preset` 方案来说开发体验更好,也兼容更多的工具类。 4 | 5 | # tailwindcss-miniprogram-preset 6 | 7 | > tailwindcss-preset for miniprogram 8 | > tailwindcss 小程序版本预设 9 | 10 | 用 `tailwindcss` 来改善你的小程序开发体验吧 11 | 12 | ## 功能 13 | 14 | 大部分有用的 tailwindcss utilities 兼容小程序 + rem 转 rpx (默认 1rem = 32rpx) 15 | 16 | ## migration(From v1 -> v2) 17 | 18 | ```js 19 | // # v1 20 | // tailwind.config.js 21 | module.exports = { 22 | presets: [require('tailwindcss-miniprogram-preset')] 23 | // ... 24 | } 25 | // # v2 26 | // tailwind.config.js 27 | const { 28 | defaultPreset, 29 | createPreset 30 | } = require('tailwindcss-miniprogram-preset') 31 | module.exports = { 32 | presets: [defaultPreset] 33 | // ... 34 | } 35 | ``` 36 | 37 | ## How to use it 38 | 39 | Installation 40 | 41 | ```sh 42 | npm i -D tailwindcss-miniprogram-preset 43 | # or 44 | yarn add -D tailwindcss-miniprogram-preset 45 | ``` 46 | 47 | Then 48 | 49 | [Installing Tailwind CSS as a PostCSS plugin](https://tailwindcss.com/docs/installation) 50 | 51 | and `npx tailwindcss init` 52 | 53 | then add `tailwindcss-miniprogram-preset` into your `presets`: 54 | 55 | ```js 56 | // tailwind.config.js 57 | const { 58 | defaultPreset, 59 | createPreset 60 | } = require('tailwindcss-miniprogram-preset') 61 | module.exports = { 62 | presets: [defaultPreset] 63 | // ... 64 | } 65 | ``` 66 | 67 | > createPreset 这个方法,可以根据配置创建自定义的预设,以及是否启用 rem2rpx,可配合其他 `postcss` 插件使用,如[postcss-rem-to-responsive-pixel](https://www.npmjs.com/package/postcss-rem-to-responsive-pixel) 68 | 69 | Then import tailwindcss 70 | 71 | ```css 72 | /* @tailwind base; 73 | @tailwind components; */ 74 | @tailwind utilities; 75 | ``` 76 | 77 | or Using with Preprocessors 78 | 79 | ```scss 80 | // uni-app App.vue 公共部分 81 | // 小程序不需要 'base' 'components' 82 | // @import 'tailwindcss/base'; 83 | // @import 'tailwindcss/components'; 84 | // 只需引入工具类 85 | @import 'tailwindcss/utilities'; 86 | ``` 87 | 88 | ## 最佳实践 89 | 90 | 建议配合 vscode 插件 [Tailwind CSS IntelliSense](https://marketplace.visualstudio.com/items?itemName=bradlc.vscode-tailwindcss) 使用 91 | 92 | 可以根据配置自动生成智能提示,可有效提升开发体验 93 | 94 | 使用 `uni-app` 的朋友可以直接使用提供的模板 95 | 96 | - [vue2](https://github.com/sonofmagic/uni-app-vue2-tailwind-vscode-template) 97 | 98 | - [vue3](https://github.com/sonofmagic/uni-app-vue3-tailwind-vscode-template) 99 | 100 | ## 默认配置 101 | 102 | > 默认配置都可通过 tailwind 自带的 merge 策略开启, 其中 103 | 104 | - `darkMode` 默认 `false` 105 | - `theme.screens` 默认 `false` , 英文它不需要 pc 那种自适应边界 106 | - `important` 默认 `true` , 需要用它去覆盖原生的样式 107 | - `purge.enabled` 默认 `process.env.NODE_ENV === 'production'` ,可通过 `NODE_ENV` 环境变量,避免打包出来的 `wxss` 过大的问题, 开发环境默认关闭. 108 | - 一些 `class` 的 `rename` 见下表 109 | 110 | ## 如何关闭 rem2rpx 转化? 111 | 112 | 将 `createPreset` 的 `rem2rpx` 设置为 `false` 即可 113 | 114 | ```js 115 | // tailwind.config.js 116 | presets: [ 117 | createPreset({ 118 | rem2rpx: false 119 | }) 120 | ] 121 | ``` 122 | 123 | 此时需要转化为 `rpx` ,可以使用 [`postcss-rem-to-responsive-pixel`](https://www.npmjs.com/package/postcss-rem-to-responsive-pixel) 124 | 125 | 可以达到同样效果的 `postcss` 配置 `demo`: 126 | 127 | ```js 128 | // postcss.config.js 129 | module.exports = { 130 | plugins: [ 131 | require('autoprefixer'), 132 | require('tailwindcss'), 133 | require('postcss-rem-to-responsive-pixel')({ 134 | rootValue: 32, 135 | propList: ['*'], 136 | transformUnit: 'rpx' 137 | }) 138 | ] 139 | } 140 | ``` 141 | 142 | ## 定制化兼容小程序的牺牲 143 | 144 | ### 小程序的 class 不支持除'-'和'\_'外的特殊符号 145 | 146 | 解决方案: 做 class rename 处理 147 | 148 | | form | to | sample | 149 | | ---- | ------- | ---------------------- | 150 | | `\/` | `-div-` | `w-1/4` -> `w-1-div-4` | 151 | | `\.` | `-dot-` | `w-1.5` -> `w-1-dot-5` | 152 | 153 | ### 小程序 wxss 只支持少量选择器 154 | 155 | [官方文档链接](https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxss.html) 156 | 157 | 解决方案: 158 | 159 | - 去除基于 `:not` 选择器的 `corePlugins` 160 | - 去除不支持 `*` 选择器的 `corePlugins` , 例如默认添加 `'*, ::before, ::after'` 的插件 161 | - 清空 variants (`hover:` `focus:` 这些) 162 | - 不启用 `mode: 'jit'` 即时编译模式,因为 `wxml` 里写 `w-[762px]` ,`[` 和 `]`,会被默认转义为空格,导致即时编译无效。(小程序特殊符号只支持 '-' 和 '\_') 163 | 164 | ### 去除自适应和无用插件 165 | 166 | 解决方案: 167 | 168 | - 只使用 `utilities` , 不导入 `base` 和 `components` 169 | 170 | ## 如何覆盖此预设配置? 171 | 172 | 核心插件: 173 | 174 | `corePlugins` 选项根据您是将其配置为对象还是数组而表现不同。 175 | 176 | 如果您把 `corePlugins` 配置为一个对象,那么它就会被跨配置合并。 177 | 178 | 如果您把 `corePlugins` 配置为一个数组,它就会取代您配置的预设所提供的任何 `corePlugins` 配置。 179 | 180 | [官方参考文档](https://www.tailwindcss.cn/docs/presets) 181 | 182 | ## 注意事项 183 | 184 | 如果开发时,HMR 热更新不起作用,可以更改 `purge` 选项 185 | 186 | 也可以直接用自定义的 `purge` 选项, 覆盖当前 `preset` 187 | 188 | ```js 189 | // tailwind.config.js 190 | const { defaultPreset } = require('tailwindcss-miniprogram-preset') 191 | /** @type {import('@types/tailwindcss/tailwind-config').TailwindConfig} */ 192 | module.exports = { 193 | purge: defaultPreset.purge.content, 194 | presets: [defaultPreset] 195 | } 196 | ``` 197 | 198 | ## [corePlugins 启用状况](./CorePlugins.md) 199 | -------------------------------------------------------------------------------- /examples/.gitignore: -------------------------------------------------------------------------------- 1 | native2/**/* -------------------------------------------------------------------------------- /examples/native/.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig is awesome: https://EditorConfig.org 2 | 3 | # top-most EditorConfig file 4 | root = true 5 | 6 | [*] 7 | indent_style = space 8 | indent_size = 2 9 | end_of_line = lf 10 | charset = utf-8 11 | trim_trailing_whitespace = false 12 | insert_final_newline = false -------------------------------------------------------------------------------- /examples/native/.eslintignore: -------------------------------------------------------------------------------- 1 | dist/**/* -------------------------------------------------------------------------------- /examples/native/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | browser: true, 5 | es2021: true 6 | }, 7 | extends: ['standard'], 8 | parser: '@typescript-eslint/parser', 9 | parserOptions: { 10 | ecmaVersion: 13, 11 | sourceType: 'module' 12 | }, 13 | plugins: ['@typescript-eslint'], 14 | rules: { 15 | 'space-before-function-paren': 0 16 | }, 17 | globals: { 18 | App: true, 19 | wx: true, 20 | getApp: true, 21 | Page: true 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /examples/native/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "tabWidth": 2, 3 | "useTabs": false, 4 | "singleQuote": true, 5 | "trailingComma": "none", 6 | "semi": false 7 | } 8 | -------------------------------------------------------------------------------- /examples/native/README.md: -------------------------------------------------------------------------------- 1 | # 原生小程序 postcss tailwind 方案 2 | 3 | ## 直接实现的 scss + postcss 机制 4 | 5 | - 文件监控 + 实时编译 6 | 7 | ## 智能提示兼容 wxml 方案 8 | 9 | ![方案](./vscode-tailwindcss-intellisense.png) -------------------------------------------------------------------------------- /examples/native/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "miniprogram-ts-quickstart", 3 | "version": "1.0.0", 4 | "description": "", 5 | "scripts": { 6 | "dev": "node -r ts-node/register scripts/build.ts", 7 | "raw:ts": "tsc -w", 8 | "build": "cross-env NODE_ENV=production node scripts/build.ts", 9 | "clear": "node -r ts-node/register scripts/clear.ts" 10 | }, 11 | "keywords": [], 12 | "author": "", 13 | "license": "", 14 | "devDependencies": { 15 | "@types/sass": "^1.43.1", 16 | "@types/tailwindcss": "^2.2.4", 17 | "@types/wechat-miniprogram": "^3.4.0", 18 | "@typescript-eslint/eslint-plugin": "^5.5.0", 19 | "@typescript-eslint/parser": "^5.5.0", 20 | "anymatch": "^3.1.2", 21 | "autoprefixer": "^10.4.0", 22 | "chokidar": "^3.5.2", 23 | "cross-env": "^7.0.3", 24 | "del": "^6.0.0", 25 | "esbuild": "^0.14.1", 26 | "eslint": "^7.12.1", 27 | "eslint-config-standard": "^16.0.3", 28 | "eslint-plugin-import": "^2.22.1", 29 | "eslint-plugin-node": "^11.1.0", 30 | "eslint-plugin-promise": "^5.2.0", 31 | "fibers": "^5.0.0", 32 | "miniprogram-api-typings": "^3.4.4", 33 | "postcss": "^8.4.4", 34 | "postcss-rem-to-responsive-pixel": "^5.0.2", 35 | "sass": "^1.44.0", 36 | "tailwindcss": "^2.2.19", 37 | "tailwindcss-miniprogram-preset": "^2.1.1", 38 | "ts-node": "^10.4.0", 39 | "typescript": "^4.5.2" 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /examples/native/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: [ 3 | require('autoprefixer'), 4 | require('tailwindcss'), 5 | require('postcss-rem-to-responsive-pixel')({ 6 | rootValue: 32, 7 | propList: ['*'], 8 | transformUnit: 'rpx' 9 | }) 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /examples/native/project.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "项目配置文件", 3 | "packOptions": { 4 | "ignore": [] 5 | }, 6 | "miniprogramRoot": "dist/", 7 | "compileType": "miniprogram", 8 | "libVersion": "2.15.0", 9 | "projectname": "native", 10 | "setting": { 11 | "urlCheck": true, 12 | "es6": true, 13 | "enhance": true, 14 | "postcss": false, 15 | "preloadBackgroundData": false, 16 | "minified": true, 17 | "newFeature": false, 18 | "coverView": true, 19 | "nodeModules": false, 20 | "autoAudits": false, 21 | "showShadowRootInWxmlPanel": true, 22 | "scopeDataCheck": false, 23 | "uglifyFileName": false, 24 | "checkInvalidKey": true, 25 | "checkSiteMap": true, 26 | "uploadWithSourceMap": true, 27 | "compileHotReLoad": false, 28 | "lazyloadPlaceholderEnable": false, 29 | "useMultiFrameRuntime": true, 30 | "useApiHook": true, 31 | "useApiHostProcess": true, 32 | "babelSetting": { 33 | "ignore": [], 34 | "disablePlugins": [], 35 | "outputPath": "" 36 | }, 37 | "enableEngineNative": false, 38 | "useIsolateContext": true, 39 | "userConfirmedBundleSwitch": false, 40 | "packNpmManually": false, 41 | "packNpmRelationList": [], 42 | "minifyWXSS": true, 43 | "disableUseStrict": false, 44 | "minifyWXML": true, 45 | "showES6CompileOption": false, 46 | "useCompilerPlugins": false 47 | }, 48 | "simulatorType": "wechat", 49 | "simulatorPluginLibVersion": {}, 50 | "appid": "wxb3d842a4a7e3440d", 51 | "condition": {} 52 | } -------------------------------------------------------------------------------- /examples/native/scripts/assets/copy.ts: -------------------------------------------------------------------------------- 1 | import { promises as fsp } from 'fs' 2 | import { join } from 'path' 3 | import { removePrefix } from '../common' 4 | 5 | export async function copy(src: string, dir: string) { 6 | const dest = join(dir, removePrefix(src)) 7 | await fsp.copyFile(src, dest) 8 | } 9 | -------------------------------------------------------------------------------- /examples/native/scripts/assets/index.ts: -------------------------------------------------------------------------------- 1 | export * from './scss' 2 | export * from './ts' 3 | export * from './copy' 4 | -------------------------------------------------------------------------------- /examples/native/scripts/assets/scss.ts: -------------------------------------------------------------------------------- 1 | import postcss from 'postcss' 2 | import sass from 'sass' 3 | import fs from 'fs' 4 | import path from 'path' 5 | import { plugins } from '../../postcss.config' 6 | import { removePrefix } from '../common' 7 | 8 | export function handleScss( 9 | sourcePath: string, 10 | { cwd, dir }: { cwd: string; dir: string } 11 | ) { 12 | return new Promise((resolve, reject) => { 13 | sass.render( 14 | { 15 | file: sourcePath 16 | // fiber: Fiber 17 | }, 18 | (err, result) => { 19 | if (err) { 20 | console.error(err) 21 | } 22 | const destPath = path.resolve( 23 | cwd, 24 | dir, 25 | removePrefix(sourcePath).replace(/\.scss$/, '.wxss') 26 | ) 27 | postcss(plugins) 28 | .process(result.css, { 29 | from: sourcePath, 30 | to: destPath 31 | }) 32 | .then((result) => { 33 | fs.writeFile(destPath, result.css, () => true) 34 | if (result.map) { 35 | fs.writeFile(destPath + '.map', result.map.toString(), () => true) 36 | } 37 | resolve(result) 38 | }) 39 | .catch((err) => { 40 | reject(err) 41 | }) 42 | } 43 | ) 44 | }) 45 | } 46 | -------------------------------------------------------------------------------- /examples/native/scripts/assets/ts.ts: -------------------------------------------------------------------------------- 1 | import * as esbuild from 'esbuild' 2 | import path from 'path' 3 | import { removePrefix } from '../common' 4 | 5 | export async function handleTs(entryPoint: string, dir: string) { 6 | const outfile = path.join( 7 | dir, 8 | removePrefix(entryPoint).replace(/\.ts$/, '.js') 9 | ) 10 | 11 | // const entrydir = path.dirname(entryPoint) 12 | // const outdir = path.resolve(entrydir, '..', dir) // sourcePath.replace(/\.scss$/, '.wxss') 13 | const res = await esbuild.build({ 14 | entryPoints: [entryPoint], 15 | outfile, 16 | // entryNames: [], 17 | bundle: false, 18 | watch: false, 19 | absWorkingDir: process.cwd(), 20 | // outdir, 21 | tsconfig: './tsconfig.json', 22 | target: ['es2015'] 23 | }) 24 | return res 25 | } 26 | -------------------------------------------------------------------------------- /examples/native/scripts/build.ts: -------------------------------------------------------------------------------- 1 | import fs from 'fs' 2 | import chokidar from 'chokidar' 3 | import internalPath from 'path' 4 | import { handleScss, handleTs, copy } from './assets' 5 | const log = console.log 6 | 7 | const { preflight } = require('./preflight') 8 | // purgecss 9 | 10 | const suffixArray = [ 11 | // 'wxss' 12 | 'scss', 13 | // wxml 更改触发 css purge 14 | 'wxml', 15 | 'ts', 16 | 'json', 17 | 'wxs' 18 | // 'less' 19 | ] 20 | 21 | function getHolder(arr: string[]) { 22 | if (arr.length === 1) { 23 | return arr[0] 24 | } else if (arr.length > 1) { 25 | return `{${arr.join(',')}}` 26 | } 27 | return '' 28 | } 29 | const watcher = chokidar.watch(`./src/**/*.${getHolder(suffixArray)}`, { 30 | // eslint-disable-next-line no-useless-escape 31 | ignored: /(^|[\/\\])\../, // ignore dotfiles 32 | persistent: true 33 | }) 34 | const cwd = process.cwd() 35 | const scssOptions = { 36 | dir: 'dist', 37 | cwd 38 | } 39 | 40 | function handleFile(path: string, isChange = false) { 41 | const extname = internalPath.extname(path) 42 | if (extname === '.scss') { 43 | handleScss(path, scssOptions) 44 | } else if (extname === '.ts') { 45 | handleTs(path, scssOptions.dir) 46 | } else if (isChange && extname === '.wxml') { 47 | const guessScssPath = path.replace('.wxml', '.scss') 48 | const exists = fs.existsSync(guessScssPath) 49 | if (exists) { 50 | handleScss(guessScssPath, scssOptions) 51 | } 52 | copy(path, scssOptions.dir) 53 | } else { 54 | // copy 55 | copy(path, scssOptions.dir) 56 | } 57 | } 58 | 59 | watcher 60 | .on('add', (path) => { 61 | log(`File ${path} has been added`) 62 | preflight(path).then(() => { 63 | handleFile(path) 64 | }) 65 | }) 66 | .on('change', (path) => { 67 | log(`File ${path} has been change`) 68 | handleFile(path, true) 69 | }) 70 | .on('unlink', (path) => log(`File ${path} has been removed`)) 71 | .on('error', (error) => log(`Watcher error: ${error}`)) 72 | .on('ready', () => { 73 | log('Initial scan complete. Ready for changes') 74 | }) 75 | -------------------------------------------------------------------------------- /examples/native/scripts/clear.ts: -------------------------------------------------------------------------------- 1 | import del from 'del' 2 | ;(async () => { 3 | const deletedFilePaths = await del(['dist']) 4 | console.log(deletedFilePaths) 5 | })() 6 | -------------------------------------------------------------------------------- /examples/native/scripts/common.ts: -------------------------------------------------------------------------------- 1 | export function removePrefix(p: string) { 2 | return p.replace(/src[\\/]/, '') 3 | } 4 | -------------------------------------------------------------------------------- /examples/native/scripts/preflight.ts: -------------------------------------------------------------------------------- 1 | import { promises as fsp } from 'fs' 2 | import { removePrefix } from './common' 3 | import { resolve, dirname } from 'path' 4 | 5 | export async function mkdir(outdir: string) { 6 | await fsp.mkdir(outdir, { 7 | recursive: true 8 | }) 9 | return true 10 | } 11 | 12 | export function createDefaults() { 13 | return { 14 | cwd: process.cwd(), 15 | outdir: 'dist' 16 | } 17 | } 18 | 19 | export function getDestFileStat( 20 | entryPoint: string, 21 | options = createDefaults() 22 | ) { 23 | const { cwd, outdir } = options 24 | const destPath = resolve(cwd, outdir, removePrefix(entryPoint)) 25 | const destDir = dirname(destPath) 26 | return { 27 | path: destPath, 28 | dir: destDir 29 | } 30 | } 31 | 32 | export async function preflight(entryPoint: string) { 33 | const { dir } = getDestFileStat(entryPoint) 34 | return await mkdir(dir) 35 | } 36 | -------------------------------------------------------------------------------- /examples/native/src/.gitignore: -------------------------------------------------------------------------------- 1 | *.js 2 | *.wxss -------------------------------------------------------------------------------- /examples/native/src/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "pages": [ 3 | "pages/index/index", 4 | "pages/logs/logs" 5 | ], 6 | "window": { 7 | "backgroundTextStyle": "light", 8 | "navigationBarBackgroundColor": "#fff", 9 | "navigationBarTitleText": "Weixin", 10 | "navigationBarTextStyle": "black" 11 | }, 12 | "style": "v2", 13 | "sitemapLocation": "sitemap.json" 14 | } -------------------------------------------------------------------------------- /examples/native/src/app.scss: -------------------------------------------------------------------------------- 1 | @tailwind utilities; -------------------------------------------------------------------------------- /examples/native/src/app.ts: -------------------------------------------------------------------------------- 1 | // app.ts 2 | 3 | App({ 4 | globalData: {}, 5 | onLaunch() { 6 | console.log('----------------------') 7 | // 展示本地存储能力 8 | const logs = wx.getStorageSync('logs') || [] 9 | logs.unshift(Date.now()) 10 | wx.setStorageSync('logs', logs) 11 | 12 | // 登录 13 | wx.login({ 14 | success: res => { 15 | console.log(res.code) 16 | // 发送 res.code 到后台换取 openId, sessionKey, unionId 17 | } 18 | }) 19 | } 20 | }) 21 | -------------------------------------------------------------------------------- /examples/native/src/pages/index/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "usingComponents": {} 3 | } -------------------------------------------------------------------------------- /examples/native/src/pages/index/index.scss: -------------------------------------------------------------------------------- 1 | ::placeholder { 2 | color: gray; 3 | } 4 | 5 | .image { 6 | background-image: url(image@1x.png); 7 | } 8 | @media (min-resolution: 2dppx) { 9 | .image { 10 | background-image: url(image@2x.png); 11 | } 12 | } 13 | 14 | .usermotto { 15 | .user-motto { 16 | margin-top: 10rem; 17 | font-size: 2rem; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /examples/native/src/pages/index/index.ts: -------------------------------------------------------------------------------- 1 | // index.ts 2 | // 获取应用实例 3 | const app = getApp() 4 | 5 | Page({ 6 | data: { 7 | motto: 'icebreaker 9', 8 | userInfo: {}, 9 | hasUserInfo: false, 10 | canIUse: wx.canIUse('button.open-type.getUserInfo'), 11 | canIUseGetUserProfile: false, 12 | canIUseOpenData: 13 | wx.canIUse('open-data.type.userAvatarUrl') && 14 | wx.canIUse('open-data.type.userNickName') // 如需尝试获取用户信息可改为false 15 | }, 16 | // 事件处理函数 17 | bindViewTap() { 18 | wx.navigateTo({ 19 | url: '../logs/logs' 20 | }) 21 | }, 22 | onLoad() { 23 | // @ts-ignore 24 | if (wx.getUserProfile) { 25 | this.setData({ 26 | canIUseGetUserProfile: true 27 | }) 28 | } 29 | }, 30 | async getUserProfile() { 31 | // 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认,开发者妥善保管用户快速填写的头像昵称,避免重复弹窗 32 | const res = await wx.getUserProfile({ 33 | desc: '展示用户信息' // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写 34 | }) 35 | console.log(res) 36 | this.setData({ 37 | userInfo: res.userInfo, 38 | hasUserInfo: true 39 | }) 40 | }, 41 | getUserInfo(e: any) { 42 | // 不推荐使用getUserInfo获取用户信息,预计自2021年4月13日起,getUserInfo将不再弹出弹窗,并直接返回匿名的用户个人信息 43 | console.log(e) 44 | this.setData({ 45 | userInfo: e.detail.userInfo, 46 | hasUserInfo: true 47 | }) 48 | } 49 | }) 50 | -------------------------------------------------------------------------------- /examples/native/src/pages/index/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 15 | 请使用1.4.4及以上版本基础库 16 | 17 | 18 | 19 | {{userInfo.nickName}} 20 | 21 | 22 | 23 | {{motto}} 24 | 25 | 26 | 27 | 28 | 29 | zxcvbnm,./asdfghjkl;'qwertyuiop[]\1234567890-=?:{}|`~!@#$%^&*()_+> 30 | 31 | zxcvbnm asdfghjkl qwertyuiop 1234567890- _ 32 | 33 | -------------------------------------------------------------------------------- /examples/native/src/pages/logs/logs.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "查看启动日志", 3 | "usingComponents": {} 4 | } -------------------------------------------------------------------------------- /examples/native/src/pages/logs/logs.scss: -------------------------------------------------------------------------------- 1 | .log-list { 2 | display: flex; 3 | flex-direction: column; 4 | padding: 40rpx; 5 | .log-item { 6 | margin: 10rpx; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /examples/native/src/pages/logs/logs.ts: -------------------------------------------------------------------------------- 1 | // logs.ts 2 | // const util = require('../../utils/util.js') 3 | import { formatTime } from '../../utils/util.js' 4 | 5 | Page({ 6 | data: { 7 | logs: [] 8 | }, 9 | onLoad() { 10 | this.setData({ 11 | logs: (wx.getStorageSync('logs') || []).map((log: string) => { 12 | return { 13 | date: formatTime(new Date(log)), 14 | timeStamp: log 15 | } 16 | }) 17 | }) 18 | } 19 | }) 20 | -------------------------------------------------------------------------------- /examples/native/src/pages/logs/logs.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {{index + 1}}. {{log.date}} 5 | 6 | 7 | -------------------------------------------------------------------------------- /examples/native/src/sitemap.json: -------------------------------------------------------------------------------- 1 | { 2 | "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html", 3 | "rules": [{ 4 | "action": "allow", 5 | "page": "*" 6 | }] 7 | } -------------------------------------------------------------------------------- /examples/native/src/utils/util.ts: -------------------------------------------------------------------------------- 1 | export const formatTime = (date: Date) => { 2 | const year = date.getFullYear() 3 | const month = date.getMonth() + 1 4 | const day = date.getDate() 5 | const hour = date.getHours() 6 | const minute = date.getMinutes() 7 | const second = date.getSeconds() 8 | 9 | return ( 10 | [year, month, day].map(formatNumber).join('/') + 11 | ' ' + 12 | [hour, minute, second].map(formatNumber).join(':') 13 | ) 14 | } 15 | 16 | const formatNumber = (n: number) => { 17 | const s = n.toString() 18 | return s[1] ? s : '0' + s 19 | } 20 | -------------------------------------------------------------------------------- /examples/native/tailwind.config.js: -------------------------------------------------------------------------------- 1 | const { createPreset } = require('tailwindcss-miniprogram-preset') 2 | 3 | /** @type {import('@types/tailwindcss/tailwind-config').TailwindConfig} */ 4 | module.exports = { 5 | // purge: [], 6 | // darkMode: false, // or 'media' or 'class' 7 | // theme: { 8 | // extend: {}, 9 | // }, 10 | // variants: { 11 | // extend: {}, 12 | // }, 13 | // plugins: [], 14 | purge: { 15 | // enabled: true, 16 | content: ['**/*.wxml'] 17 | // css: ['**/*.wxss'] 18 | }, 19 | presets: [ 20 | createPreset({ 21 | rem2rpx: false 22 | }) 23 | // defaultPreset 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /examples/native/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "strictNullChecks": true, 4 | "noImplicitAny": true, 5 | "module": "CommonJS", 6 | "target": "ES5", 7 | "allowJs": true, 8 | "experimentalDecorators": true, 9 | "noImplicitThis": true, 10 | "noImplicitReturns": true, 11 | "alwaysStrict": true, 12 | "inlineSourceMap": true, 13 | "inlineSources": true, 14 | "noFallthroughCasesInSwitch": true, 15 | "esModuleInterop": true, 16 | "moduleResolution": "Node", 17 | "noUnusedLocals": true, 18 | "noUnusedParameters": true, 19 | "strict": true, 20 | "removeComments": true, 21 | "pretty": true, 22 | "strictPropertyInitialization": true, 23 | "lib": ["es6"], 24 | "allowSyntheticDefaultImports": true, 25 | "baseUrl": ".", 26 | "paths": { 27 | "@/*": ["src/*"] 28 | } 29 | }, 30 | "include": ["./**/*.ts", "scripts/**/*"], 31 | "exclude": ["node_modules"] 32 | } 33 | -------------------------------------------------------------------------------- /examples/native/vscode-tailwindcss-intellisense.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofmagic/tailwindcss-miniprogram-preset/f4af2ace2ebf98dc3863190850a6fb89d4340d9c/examples/native/vscode-tailwindcss-intellisense.png -------------------------------------------------------------------------------- /examples/native/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/code-frame@7.12.11": 6 | version "7.12.11" 7 | resolved "https://registry.npmmirror.com/@babel/code-frame/download/@babel/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" 8 | integrity sha1-9K1DWqJj25NbjxDyxVLSP7cWpj8= 9 | dependencies: 10 | "@babel/highlight" "^7.10.4" 11 | 12 | "@babel/code-frame@^7.0.0": 13 | version "7.16.0" 14 | resolved "https://registry.npmmirror.com/@babel/code-frame/download/@babel/code-frame-7.16.0.tgz#0dfc80309beec8411e65e706461c408b0bb9b431" 15 | integrity sha1-DfyAMJvuyEEeZecGRhxAiwu5tDE= 16 | dependencies: 17 | "@babel/highlight" "^7.16.0" 18 | 19 | "@babel/helper-validator-identifier@^7.15.7": 20 | version "7.15.7" 21 | resolved "https://registry.nlark.com/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.15.7.tgz?cache=0&sync_timestamp=1631920110587&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389" 22 | integrity sha1-Ig35k7/pBKSmsCq08zhaXr9uI4k= 23 | 24 | "@babel/highlight@^7.10.4", "@babel/highlight@^7.16.0": 25 | version "7.16.0" 26 | resolved "https://registry.npmmirror.com/@babel/highlight/download/@babel/highlight-7.16.0.tgz#6ceb32b2ca4b8f5f361fb7fd821e3fddf4a1725a" 27 | integrity sha1-bOsysspLj182H7f9gh4/3fShclo= 28 | dependencies: 29 | "@babel/helper-validator-identifier" "^7.15.7" 30 | chalk "^2.0.0" 31 | js-tokens "^4.0.0" 32 | 33 | "@cspotcode/source-map-consumer@0.8.0": 34 | version "0.8.0" 35 | resolved "https://registry.npmmirror.com/@cspotcode/source-map-consumer/download/@cspotcode/source-map-consumer-0.8.0.tgz#33bf4b7b39c178821606f669bbc447a6a629786b" 36 | integrity sha1-M79LeznBeIIWBvZpu8RHpqYpeGs= 37 | 38 | "@cspotcode/source-map-support@0.7.0": 39 | version "0.7.0" 40 | resolved "https://registry.npmmirror.com/@cspotcode/source-map-support/download/@cspotcode/source-map-support-0.7.0.tgz#4789840aa859e46d2f3173727ab707c66bf344f5" 41 | integrity sha1-R4mECqhZ5G0vMXNyercHxmvzRPU= 42 | dependencies: 43 | "@cspotcode/source-map-consumer" "0.8.0" 44 | 45 | "@eslint/eslintrc@^0.4.3": 46 | version "0.4.3" 47 | resolved "https://registry.npmmirror.com/@eslint/eslintrc/download/@eslint/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" 48 | integrity sha1-nkKYHvA1vrPdSa3ResuW6P9vOUw= 49 | dependencies: 50 | ajv "^6.12.4" 51 | debug "^4.1.1" 52 | espree "^7.3.0" 53 | globals "^13.9.0" 54 | ignore "^4.0.6" 55 | import-fresh "^3.2.1" 56 | js-yaml "^3.13.1" 57 | minimatch "^3.0.4" 58 | strip-json-comments "^3.1.1" 59 | 60 | "@humanwhocodes/config-array@^0.5.0": 61 | version "0.5.0" 62 | resolved "https://registry.npmmirror.com/@humanwhocodes/config-array/download/@humanwhocodes/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" 63 | integrity sha1-FAeWfUxu7Nc4j4Os8er00Mbljvk= 64 | dependencies: 65 | "@humanwhocodes/object-schema" "^1.2.0" 66 | debug "^4.1.1" 67 | minimatch "^3.0.4" 68 | 69 | "@humanwhocodes/object-schema@^1.2.0": 70 | version "1.2.1" 71 | resolved "https://registry.npmmirror.com/@humanwhocodes/object-schema/download/@humanwhocodes/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" 72 | integrity sha1-tSBSnsIdjllFoYUd/Rwy6U45/0U= 73 | 74 | "@nodelib/fs.scandir@2.1.5": 75 | version "2.1.5" 76 | resolved "https://registry.nlark.com/@nodelib/fs.scandir/download/@nodelib/fs.scandir-2.1.5.tgz?cache=0&sync_timestamp=1622792718463&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40nodelib%2Ffs.scandir%2Fdownload%2F%40nodelib%2Ffs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" 77 | integrity sha1-dhnC6yGyVIP20WdUi0z9WnSIw9U= 78 | dependencies: 79 | "@nodelib/fs.stat" "2.0.5" 80 | run-parallel "^1.1.9" 81 | 82 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": 83 | version "2.0.5" 84 | resolved "https://registry.nlark.com/@nodelib/fs.stat/download/@nodelib/fs.stat-2.0.5.tgz?cache=0&sync_timestamp=1622792655362&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40nodelib%2Ffs.stat%2Fdownload%2F%40nodelib%2Ffs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" 85 | integrity sha1-W9Jir5Tp0lvR5xsF3u1Eh2oiLos= 86 | 87 | "@nodelib/fs.walk@^1.2.3": 88 | version "1.2.8" 89 | resolved "https://registry.nlark.com/@nodelib/fs.walk/download/@nodelib/fs.walk-1.2.8.tgz?cache=0&sync_timestamp=1625770050780&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40nodelib%2Ffs.walk%2Fdownload%2F%40nodelib%2Ffs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" 90 | integrity sha1-6Vc36LtnRt3t9pxVaVNJTxlv5po= 91 | dependencies: 92 | "@nodelib/fs.scandir" "2.1.5" 93 | fastq "^1.6.0" 94 | 95 | "@tsconfig/node10@^1.0.7": 96 | version "1.0.8" 97 | resolved "https://registry.npmmirror.com/@tsconfig/node10/download/@tsconfig/node10-1.0.8.tgz#c1e4e80d6f964fbecb3359c43bd48b40f7cadad9" 98 | integrity sha1-weToDW+WT77LM1nEO9SLQPfK2tk= 99 | 100 | "@tsconfig/node12@^1.0.7": 101 | version "1.0.9" 102 | resolved "https://registry.nlark.com/@tsconfig/node12/download/@tsconfig/node12-1.0.9.tgz#62c1f6dee2ebd9aead80dc3afa56810e58e1a04c" 103 | integrity sha1-YsH23uLr2a6tgNw6+laBDljhoEw= 104 | 105 | "@tsconfig/node14@^1.0.0": 106 | version "1.0.1" 107 | resolved "https://registry.nlark.com/@tsconfig/node14/download/@tsconfig/node14-1.0.1.tgz?cache=0&sync_timestamp=1623230113946&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40tsconfig%2Fnode14%2Fdownload%2F%40tsconfig%2Fnode14-1.0.1.tgz#95f2d167ffb9b8d2068b0b235302fafd4df711f2" 108 | integrity sha1-lfLRZ/+5uNIGiwsjUwL6/U33EfI= 109 | 110 | "@tsconfig/node16@^1.0.2": 111 | version "1.0.2" 112 | resolved "https://registry.nlark.com/@tsconfig/node16/download/@tsconfig/node16-1.0.2.tgz?cache=0&sync_timestamp=1626840702633&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40tsconfig%2Fnode16%2Fdownload%2F%40tsconfig%2Fnode16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e" 113 | integrity sha1-Qjx3h30Fadsg4fyAiFrEEYMUAQ4= 114 | 115 | "@types/json-schema@^7.0.9": 116 | version "7.0.9" 117 | resolved "https://registry.npmmirror.com/@types/json-schema/download/@types/json-schema-7.0.9.tgz?cache=0&sync_timestamp=1637265456183&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" 118 | integrity sha1-l+3JA36gw4WFMgsolk3eOznkZg0= 119 | 120 | "@types/json5@^0.0.29": 121 | version "0.0.29" 122 | resolved "https://registry.nlark.com/@types/json5/download/@types/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" 123 | integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= 124 | 125 | "@types/node@*": 126 | version "16.11.11" 127 | resolved "https://registry.npmmirror.com/@types/node/download/@types/node-16.11.11.tgz#6ea7342dfb379ea1210835bada87b3c512120234" 128 | integrity sha512-KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw== 129 | 130 | "@types/parse-json@^4.0.0": 131 | version "4.0.0" 132 | resolved "https://registry.npmmirror.com/@types/parse-json/download/@types/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" 133 | integrity sha1-L4u0QUNNFjs1+4/9zNcTiSf/uMA= 134 | 135 | "@types/sass@^1.43.1": 136 | version "1.43.1" 137 | resolved "https://registry.npmmirror.com/@types/sass/download/@types/sass-1.43.1.tgz#86bb0168e9e881d7dade6eba16c9ed6d25dc2f68" 138 | integrity sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g== 139 | dependencies: 140 | "@types/node" "*" 141 | 142 | "@types/tailwindcss@^2.2.4": 143 | version "2.2.4" 144 | resolved "https://registry.npmmirror.com/@types/tailwindcss/download/@types/tailwindcss-2.2.4.tgz#c3bca7d265e608ffc50a6d1a4932b5b53be14553" 145 | integrity sha1-w7yn0mXmCP/FCm0aSTK1tTvhRVM= 146 | 147 | "@types/wechat-miniprogram@^3.4.0": 148 | version "3.4.0" 149 | resolved "https://registry.npmmirror.com/@types/wechat-miniprogram/download/@types/wechat-miniprogram-3.4.0.tgz#d743d5b3c17bd531c2c178ea1fe9d92a0b23bcd0" 150 | integrity sha1-10PVs8F71THCwXjqH+nZKgsjvNA= 151 | 152 | "@typescript-eslint/eslint-plugin@^5.5.0": 153 | version "5.5.0" 154 | resolved "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/download/@typescript-eslint/eslint-plugin-5.5.0.tgz#12d5f47f127af089b985f3a205c0e34a812f8fce" 155 | integrity sha512-4bV6fulqbuaO9UMXU0Ia0o6z6if+kmMRW8rMRyfqXj/eGrZZRGedS4n0adeGNnjr8LKAM495hrQ7Tea52UWmQA== 156 | dependencies: 157 | "@typescript-eslint/experimental-utils" "5.5.0" 158 | "@typescript-eslint/scope-manager" "5.5.0" 159 | debug "^4.3.2" 160 | functional-red-black-tree "^1.0.1" 161 | ignore "^5.1.8" 162 | regexpp "^3.2.0" 163 | semver "^7.3.5" 164 | tsutils "^3.21.0" 165 | 166 | "@typescript-eslint/experimental-utils@5.5.0": 167 | version "5.5.0" 168 | resolved "https://registry.npmmirror.com/@typescript-eslint/experimental-utils/download/@typescript-eslint/experimental-utils-5.5.0.tgz#3fe2514dc2f3cd95562206e4058435ea51df609e" 169 | integrity sha512-kjWeeVU+4lQ1SLYErRKV5yDXbWDPkpbzTUUlfAUifPYvpX0qZlrcCZ96/6oWxt3QxtK5WVhXz+KsnwW9cIW+3A== 170 | dependencies: 171 | "@types/json-schema" "^7.0.9" 172 | "@typescript-eslint/scope-manager" "5.5.0" 173 | "@typescript-eslint/types" "5.5.0" 174 | "@typescript-eslint/typescript-estree" "5.5.0" 175 | eslint-scope "^5.1.1" 176 | eslint-utils "^3.0.0" 177 | 178 | "@typescript-eslint/parser@^5.5.0": 179 | version "5.5.0" 180 | resolved "https://registry.npmmirror.com/@typescript-eslint/parser/download/@typescript-eslint/parser-5.5.0.tgz#a38070e225330b771074daa659118238793f7fcd" 181 | integrity sha512-JsXBU+kgQOAgzUn2jPrLA+Rd0Y1dswOlX3hp8MuRO1hQDs6xgHtbCXEiAu7bz5hyVURxbXcA2draasMbNqrhmg== 182 | dependencies: 183 | "@typescript-eslint/scope-manager" "5.5.0" 184 | "@typescript-eslint/types" "5.5.0" 185 | "@typescript-eslint/typescript-estree" "5.5.0" 186 | debug "^4.3.2" 187 | 188 | "@typescript-eslint/scope-manager@5.5.0": 189 | version "5.5.0" 190 | resolved "https://registry.npmmirror.com/@typescript-eslint/scope-manager/download/@typescript-eslint/scope-manager-5.5.0.tgz#2b9f3672fa6cddcb4160e7e8b49ef1fd00f83c09" 191 | integrity sha512-0/r656RmRLo7CbN4Mdd+xZyPJ/fPCKhYdU6mnZx+8msAD8nJSP8EyCFkzbd6vNVZzZvWlMYrSNekqGrCBqFQhg== 192 | dependencies: 193 | "@typescript-eslint/types" "5.5.0" 194 | "@typescript-eslint/visitor-keys" "5.5.0" 195 | 196 | "@typescript-eslint/types@5.5.0": 197 | version "5.5.0" 198 | resolved "https://registry.npmmirror.com/@typescript-eslint/types/download/@typescript-eslint/types-5.5.0.tgz#fee61ae510e84ed950a53937a2b443e078107003" 199 | integrity sha512-OaYTqkW3GnuHxqsxxJ6KypIKd5Uw7bFiQJZRyNi1jbMJnK3Hc/DR4KwB6KJj6PBRkJJoaNwzMNv9vtTk87JhOg== 200 | 201 | "@typescript-eslint/typescript-estree@5.5.0": 202 | version "5.5.0" 203 | resolved "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/download/@typescript-eslint/typescript-estree-5.5.0.tgz#12f422698c1636bd0206086bbec9844c54625ebc" 204 | integrity sha512-pVn8btYUiYrjonhMAO0yG8lm7RApzy2L4RC7Td/mC/qFkyf6vRbGyZozoA94+w6D2Y2GRqpMoCWcwx/EUOzyoQ== 205 | dependencies: 206 | "@typescript-eslint/types" "5.5.0" 207 | "@typescript-eslint/visitor-keys" "5.5.0" 208 | debug "^4.3.2" 209 | globby "^11.0.4" 210 | is-glob "^4.0.3" 211 | semver "^7.3.5" 212 | tsutils "^3.21.0" 213 | 214 | "@typescript-eslint/visitor-keys@5.5.0": 215 | version "5.5.0" 216 | resolved "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/download/@typescript-eslint/visitor-keys-5.5.0.tgz#4787586897b61f26068a3db5c50b3f5d254f9083" 217 | integrity sha512-4GzJ1kRtsWzHhdM40tv0ZKHNSbkDhF0Woi/TDwVJX6UICwJItvP7ZTXbjTkCdrors7ww0sYe0t+cIKDAJwZ7Kw== 218 | dependencies: 219 | "@typescript-eslint/types" "5.5.0" 220 | eslint-visitor-keys "^3.0.0" 221 | 222 | acorn-jsx@^5.3.1: 223 | version "5.3.2" 224 | resolved "https://registry.nlark.com/acorn-jsx/download/acorn-jsx-5.3.2.tgz?cache=0&sync_timestamp=1625793240297&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn-jsx%2Fdownload%2Facorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" 225 | integrity sha1-ftW7VZCLOy8bxVxq8WU7rafweTc= 226 | 227 | acorn-node@^1.6.1: 228 | version "1.8.2" 229 | resolved "https://registry.npm.taobao.org/acorn-node/download/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" 230 | integrity sha1-EUyV1kU55T3t4j3oudlt98euKvg= 231 | dependencies: 232 | acorn "^7.0.0" 233 | acorn-walk "^7.0.0" 234 | xtend "^4.0.2" 235 | 236 | acorn-walk@^7.0.0: 237 | version "7.2.0" 238 | resolved "https://registry.nlark.com/acorn-walk/download/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" 239 | integrity sha1-DeiJpgEgOQmw++B7iTjcIdLpZ7w= 240 | 241 | acorn-walk@^8.1.1: 242 | version "8.2.0" 243 | resolved "https://registry.nlark.com/acorn-walk/download/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" 244 | integrity sha1-dBIQ8uJCZFRQiFOi9E0KuDt/acE= 245 | 246 | acorn@^7.0.0, acorn@^7.4.0: 247 | version "7.4.1" 248 | resolved "https://registry.npmmirror.com/acorn/download/acorn-7.4.1.tgz?cache=0&sync_timestamp=1637225522161&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Facorn%2Fdownload%2Facorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" 249 | integrity sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo= 250 | 251 | acorn@^8.4.1: 252 | version "8.6.0" 253 | resolved "https://registry.npmmirror.com/acorn/download/acorn-8.6.0.tgz?cache=0&sync_timestamp=1637225522161&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Facorn%2Fdownload%2Facorn-8.6.0.tgz#e3692ba0eb1a0c83eaa4f37f5fa7368dd7142895" 254 | integrity sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw== 255 | 256 | aggregate-error@^3.0.0: 257 | version "3.1.0" 258 | resolved "https://registry.nlark.com/aggregate-error/download/aggregate-error-3.1.0.tgz?cache=0&sync_timestamp=1622604530325&other_urls=https%3A%2F%2Fregistry.nlark.com%2Faggregate-error%2Fdownload%2Faggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" 259 | integrity sha1-kmcP9Q9TWb23o+DUDQ7DDFc3aHo= 260 | dependencies: 261 | clean-stack "^2.0.0" 262 | indent-string "^4.0.0" 263 | 264 | ajv@^6.10.0, ajv@^6.12.4: 265 | version "6.12.6" 266 | resolved "https://registry.npmmirror.com/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1637523362507&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fajv%2Fdownload%2Fajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" 267 | integrity sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ= 268 | dependencies: 269 | fast-deep-equal "^3.1.1" 270 | fast-json-stable-stringify "^2.0.0" 271 | json-schema-traverse "^0.4.1" 272 | uri-js "^4.2.2" 273 | 274 | ajv@^8.0.1: 275 | version "8.8.2" 276 | resolved "https://registry.npmmirror.com/ajv/download/ajv-8.8.2.tgz?cache=0&sync_timestamp=1637523362507&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fajv%2Fdownload%2Fajv-8.8.2.tgz#01b4fef2007a28bf75f0b7fc009f62679de4abbb" 277 | integrity sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw== 278 | dependencies: 279 | fast-deep-equal "^3.1.1" 280 | json-schema-traverse "^1.0.0" 281 | require-from-string "^2.0.2" 282 | uri-js "^4.2.2" 283 | 284 | ansi-colors@^4.1.1: 285 | version "4.1.1" 286 | resolved "https://registry.nlark.com/ansi-colors/download/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" 287 | integrity sha1-y7muJWv3UK8eqzRPIpqif+lLo0g= 288 | 289 | ansi-regex@^5.0.1: 290 | version "5.0.1" 291 | resolved "https://registry.nlark.com/ansi-regex/download/ansi-regex-5.0.1.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" 292 | integrity sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ= 293 | 294 | ansi-styles@^3.2.1: 295 | version "3.2.1" 296 | resolved "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995547052&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 297 | integrity sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0= 298 | dependencies: 299 | color-convert "^1.9.0" 300 | 301 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 302 | version "4.3.0" 303 | resolved "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1618995547052&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 304 | integrity sha1-7dgDYornHATIWuegkG7a00tkiTc= 305 | dependencies: 306 | color-convert "^2.0.1" 307 | 308 | anymatch@^3.1.2, anymatch@~3.1.2: 309 | version "3.1.2" 310 | resolved "https://registry.nlark.com/anymatch/download/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" 311 | integrity sha1-wFV8CWrzLxBhmPT04qODU343hxY= 312 | dependencies: 313 | normalize-path "^3.0.0" 314 | picomatch "^2.0.4" 315 | 316 | arg@^4.1.0: 317 | version "4.1.3" 318 | resolved "https://registry.nlark.com/arg/download/arg-4.1.3.tgz?cache=0&sync_timestamp=1629166537485&other_urls=https%3A%2F%2Fregistry.nlark.com%2Farg%2Fdownload%2Farg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" 319 | integrity sha1-Jp/HrVuOQstjyJbVZmAXJhwUQIk= 320 | 321 | arg@^5.0.1: 322 | version "5.0.1" 323 | resolved "https://registry.nlark.com/arg/download/arg-5.0.1.tgz?cache=0&sync_timestamp=1629166537485&other_urls=https%3A%2F%2Fregistry.nlark.com%2Farg%2Fdownload%2Farg-5.0.1.tgz#eb0c9a8f77786cad2af8ff2b862899842d7b6adb" 324 | integrity sha1-6wyaj3d4bK0q+P8rhiiZhC17ats= 325 | 326 | argparse@^1.0.7: 327 | version "1.0.10" 328 | resolved "https://registry.nlark.com/argparse/download/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 329 | integrity sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE= 330 | dependencies: 331 | sprintf-js "~1.0.2" 332 | 333 | array-includes@^3.1.4: 334 | version "3.1.4" 335 | resolved "https://registry.npmmirror.com/array-includes/download/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9" 336 | integrity sha1-9bSTFix2DzU5Yx8AW6K7Rqy0W6k= 337 | dependencies: 338 | call-bind "^1.0.2" 339 | define-properties "^1.1.3" 340 | es-abstract "^1.19.1" 341 | get-intrinsic "^1.1.1" 342 | is-string "^1.0.7" 343 | 344 | array-union@^2.1.0: 345 | version "2.1.0" 346 | resolved "https://registry.nlark.com/array-union/download/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" 347 | integrity sha1-t5hCCtvrHego2ErNii4j0+/oXo0= 348 | 349 | array.prototype.flat@^1.2.5: 350 | version "1.2.5" 351 | resolved "https://registry.npmmirror.com/array.prototype.flat/download/array.prototype.flat-1.2.5.tgz?cache=0&sync_timestamp=1633109609894&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Farray.prototype.flat%2Fdownload%2Farray.prototype.flat-1.2.5.tgz#07e0975d84bbc7c48cd1879d609e682598d33e13" 352 | integrity sha1-B+CXXYS7x8SM0YedYJ5oJZjTPhM= 353 | dependencies: 354 | call-bind "^1.0.2" 355 | define-properties "^1.1.3" 356 | es-abstract "^1.19.0" 357 | 358 | astral-regex@^2.0.0: 359 | version "2.0.0" 360 | resolved "https://registry.nlark.com/astral-regex/download/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" 361 | integrity sha1-SDFDxWeu7UeFdZwIZXhtx319LjE= 362 | 363 | autoprefixer@^10.4.0: 364 | version "10.4.0" 365 | resolved "https://registry.npmmirror.com/autoprefixer/download/autoprefixer-10.4.0.tgz?cache=0&sync_timestamp=1635421245353&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fautoprefixer%2Fdownload%2Fautoprefixer-10.4.0.tgz#c3577eb32a1079a440ec253e404eaf1eb21388c8" 366 | integrity sha1-w1d+syoQeaRA7CU+QE6vHrITiMg= 367 | dependencies: 368 | browserslist "^4.17.5" 369 | caniuse-lite "^1.0.30001272" 370 | fraction.js "^4.1.1" 371 | normalize-range "^0.1.2" 372 | picocolors "^1.0.0" 373 | postcss-value-parser "^4.1.0" 374 | 375 | balanced-match@^1.0.0: 376 | version "1.0.2" 377 | resolved "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 378 | integrity sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4= 379 | 380 | binary-extensions@^2.0.0: 381 | version "2.2.0" 382 | resolved "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.2.0.tgz?cache=0&sync_timestamp=1610299293319&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" 383 | integrity sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0= 384 | 385 | brace-expansion@^1.1.7: 386 | version "1.1.11" 387 | resolved "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 388 | integrity sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0= 389 | dependencies: 390 | balanced-match "^1.0.0" 391 | concat-map "0.0.1" 392 | 393 | braces@^3.0.1, braces@~3.0.2: 394 | version "3.0.2" 395 | resolved "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 396 | integrity sha1-NFThpGLujVmeI23zNs2epPiv4Qc= 397 | dependencies: 398 | fill-range "^7.0.1" 399 | 400 | browserslist@^4.17.5: 401 | version "4.18.1" 402 | resolved "https://registry.npmmirror.com/browserslist/download/browserslist-4.18.1.tgz?cache=0&sync_timestamp=1636994462878&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.18.1.tgz#60d3920f25b6860eb917c6c7b185576f4d8b017f" 403 | integrity sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ== 404 | dependencies: 405 | caniuse-lite "^1.0.30001280" 406 | electron-to-chromium "^1.3.896" 407 | escalade "^3.1.1" 408 | node-releases "^2.0.1" 409 | picocolors "^1.0.0" 410 | 411 | bytes@^3.0.0: 412 | version "3.1.1" 413 | resolved "https://registry.npmmirror.com/bytes/download/bytes-3.1.1.tgz?cache=0&sync_timestamp=1637015259458&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fbytes%2Fdownload%2Fbytes-3.1.1.tgz#3f018291cb4cbad9accb6e6970bca9c8889e879a" 414 | integrity sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg== 415 | 416 | call-bind@^1.0.0, call-bind@^1.0.2: 417 | version "1.0.2" 418 | resolved "https://registry.nlark.com/call-bind/download/call-bind-1.0.2.tgz?cache=0&sync_timestamp=1622604538146&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcall-bind%2Fdownload%2Fcall-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" 419 | integrity sha1-sdTonmiBGcPJqQOtMKuy9qkZvjw= 420 | dependencies: 421 | function-bind "^1.1.1" 422 | get-intrinsic "^1.0.2" 423 | 424 | callsites@^3.0.0: 425 | version "3.1.0" 426 | resolved "https://registry.nlark.com/callsites/download/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" 427 | integrity sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M= 428 | 429 | camelcase-css@^2.0.1: 430 | version "2.0.1" 431 | resolved "https://registry.npm.taobao.org/camelcase-css/download/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" 432 | integrity sha1-7pePaUeRTMMMa0R0G27R338EP9U= 433 | 434 | caniuse-lite@^1.0.30001272, caniuse-lite@^1.0.30001280: 435 | version "1.0.30001282" 436 | resolved "https://registry.npmmirror.com/caniuse-lite/download/caniuse-lite-1.0.30001282.tgz?cache=0&sync_timestamp=1637135357719&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001282.tgz#38c781ee0a90ccfe1fe7fefd00e43f5ffdcb96fd" 437 | integrity sha512-YhF/hG6nqBEllymSIjLtR2iWDDnChvhnVJqp+vloyt2tEHFG1yBR+ac2B/rOw0qOK0m0lEXU2dv4E/sMk5P9Kg== 438 | 439 | chalk@^2.0.0: 440 | version "2.4.2" 441 | resolved "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 442 | integrity sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ= 443 | dependencies: 444 | ansi-styles "^3.2.1" 445 | escape-string-regexp "^1.0.5" 446 | supports-color "^5.3.0" 447 | 448 | chalk@^4.0.0, chalk@^4.1.2: 449 | version "4.1.2" 450 | resolved "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646697260&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" 451 | integrity sha1-qsTit3NKdAhnrrFr8CqtVWoeegE= 452 | dependencies: 453 | ansi-styles "^4.1.0" 454 | supports-color "^7.1.0" 455 | 456 | "chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.2: 457 | version "3.5.2" 458 | resolved "https://registry.npmmirror.com/chokidar/download/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" 459 | integrity sha1-26OXb8rbAW9m/TZQIdkWANAcHnU= 460 | dependencies: 461 | anymatch "~3.1.2" 462 | braces "~3.0.2" 463 | glob-parent "~5.1.2" 464 | is-binary-path "~2.1.0" 465 | is-glob "~4.0.1" 466 | normalize-path "~3.0.0" 467 | readdirp "~3.6.0" 468 | optionalDependencies: 469 | fsevents "~2.3.2" 470 | 471 | clean-stack@^2.0.0: 472 | version "2.2.0" 473 | resolved "https://registry.nlark.com/clean-stack/download/clean-stack-2.2.0.tgz?cache=0&sync_timestamp=1622605328444&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fclean-stack%2Fdownload%2Fclean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" 474 | integrity sha1-7oRy27Ep5yezHooQpCfe6d/kAIs= 475 | 476 | color-convert@^1.9.0: 477 | version "1.9.3" 478 | resolved "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 479 | integrity sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg= 480 | dependencies: 481 | color-name "1.1.3" 482 | 483 | color-convert@^2.0.1: 484 | version "2.0.1" 485 | resolved "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 486 | integrity sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM= 487 | dependencies: 488 | color-name "~1.1.4" 489 | 490 | color-name@1.1.3: 491 | version "1.1.3" 492 | resolved "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 493 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 494 | 495 | color-name@^1.0.0, color-name@~1.1.4: 496 | version "1.1.4" 497 | resolved "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 498 | integrity sha1-wqCah6y95pVD3m9j+jmVyCbFNqI= 499 | 500 | color-string@^1.6.0: 501 | version "1.6.0" 502 | resolved "https://registry.nlark.com/color-string/download/color-string-1.6.0.tgz#c3915f61fe267672cb7e1e064c9d692219f6c312" 503 | integrity sha1-w5FfYf4mdnLLfh4GTJ1pIhn2wxI= 504 | dependencies: 505 | color-name "^1.0.0" 506 | simple-swizzle "^0.2.2" 507 | 508 | color@^4.0.1: 509 | version "4.0.1" 510 | resolved "https://registry.nlark.com/color/download/color-4.0.1.tgz#21df44cd10245a91b1ccf5ba031609b0e10e7d67" 511 | integrity sha1-Id9EzRAkWpGxzPW6AxYJsOEOfWc= 512 | dependencies: 513 | color-convert "^2.0.1" 514 | color-string "^1.6.0" 515 | 516 | commander@^6.0.0: 517 | version "6.2.1" 518 | resolved "https://registry.npmmirror.com/commander/download/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" 519 | integrity sha1-B5LraC37wyWZm7K4T93duhEKxzw= 520 | 521 | concat-map@0.0.1: 522 | version "0.0.1" 523 | resolved "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 524 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 525 | 526 | cosmiconfig@^7.0.1: 527 | version "7.0.1" 528 | resolved "https://registry.nlark.com/cosmiconfig/download/cosmiconfig-7.0.1.tgz?cache=0&sync_timestamp=1629586699851&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcosmiconfig%2Fdownload%2Fcosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" 529 | integrity sha1-cU11ZSLKzoZ4Z8y0R0xdAbuuXW0= 530 | dependencies: 531 | "@types/parse-json" "^4.0.0" 532 | import-fresh "^3.2.1" 533 | parse-json "^5.0.0" 534 | path-type "^4.0.0" 535 | yaml "^1.10.0" 536 | 537 | create-require@^1.1.0: 538 | version "1.1.1" 539 | resolved "https://registry.nlark.com/create-require/download/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" 540 | integrity sha1-wdfo8eX2z8n/ZfnNNS03NIdWwzM= 541 | 542 | cross-env@^7.0.3: 543 | version "7.0.3" 544 | resolved "https://registry.npm.taobao.org/cross-env/download/cross-env-7.0.3.tgz?cache=0&sync_timestamp=1606854449763&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-env%2Fdownload%2Fcross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" 545 | integrity sha1-hlJkspZ33AFbqEGJGJZd0jL8VM8= 546 | dependencies: 547 | cross-spawn "^7.0.1" 548 | 549 | cross-spawn@^7.0.1, cross-spawn@^7.0.2: 550 | version "7.0.3" 551 | resolved "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" 552 | integrity sha1-9zqFudXUHQRVUcF34ogtSshXKKY= 553 | dependencies: 554 | path-key "^3.1.0" 555 | shebang-command "^2.0.0" 556 | which "^2.0.1" 557 | 558 | css-color-names@^0.0.4: 559 | version "0.0.4" 560 | resolved "https://registry.npm.taobao.org/css-color-names/download/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" 561 | integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= 562 | 563 | css-unit-converter@^1.1.1: 564 | version "1.1.2" 565 | resolved "https://registry.npm.taobao.org/css-unit-converter/download/css-unit-converter-1.1.2.tgz#4c77f5a1954e6dbff60695ecb214e3270436ab21" 566 | integrity sha1-THf1oZVObb/2BpXsshTjJwQ2qyE= 567 | 568 | cssesc@^3.0.0: 569 | version "3.0.0" 570 | resolved "https://registry.npm.taobao.org/cssesc/download/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" 571 | integrity sha1-N3QZGZA7hoVl4cCep0dEXNGJg+4= 572 | 573 | debug@^2.6.9: 574 | version "2.6.9" 575 | resolved "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 576 | integrity sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8= 577 | dependencies: 578 | ms "2.0.0" 579 | 580 | debug@^3.2.7: 581 | version "3.2.7" 582 | resolved "https://registry.npmmirror.com/debug/download/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" 583 | integrity sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o= 584 | dependencies: 585 | ms "^2.1.1" 586 | 587 | debug@^4.0.1, debug@^4.1.1, debug@^4.3.2: 588 | version "4.3.3" 589 | resolved "https://registry.npmmirror.com/debug/download/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" 590 | integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== 591 | dependencies: 592 | ms "2.1.2" 593 | 594 | deep-is@^0.1.3: 595 | version "0.1.4" 596 | resolved "https://registry.nlark.com/deep-is/download/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" 597 | integrity sha1-pvLc5hL63S7x9Rm3NVHxfoUZmDE= 598 | 599 | define-properties@^1.1.3: 600 | version "1.1.3" 601 | resolved "https://registry.nlark.com/define-properties/download/define-properties-1.1.3.tgz?cache=0&sync_timestamp=1622604538602&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdefine-properties%2Fdownload%2Fdefine-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" 602 | integrity sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE= 603 | dependencies: 604 | object-keys "^1.0.12" 605 | 606 | defined@^1.0.0: 607 | version "1.0.0" 608 | resolved "https://registry.nlark.com/defined/download/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" 609 | integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= 610 | 611 | del@^6.0.0: 612 | version "6.0.0" 613 | resolved "https://registry.nlark.com/del/download/del-6.0.0.tgz?cache=0&sync_timestamp=1622605333317&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdel%2Fdownload%2Fdel-6.0.0.tgz#0b40d0332cea743f1614f818be4feb717714c952" 614 | integrity sha1-C0DQMyzqdD8WFPgYvk/rcXcUyVI= 615 | dependencies: 616 | globby "^11.0.1" 617 | graceful-fs "^4.2.4" 618 | is-glob "^4.0.1" 619 | is-path-cwd "^2.2.0" 620 | is-path-inside "^3.0.2" 621 | p-map "^4.0.0" 622 | rimraf "^3.0.2" 623 | slash "^3.0.0" 624 | 625 | detect-libc@^1.0.3: 626 | version "1.0.3" 627 | resolved "https://registry.nlark.com/detect-libc/download/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" 628 | integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= 629 | 630 | detective@^5.2.0: 631 | version "5.2.0" 632 | resolved "https://registry.npm.taobao.org/detective/download/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b" 633 | integrity sha1-/rKnfoW5BOzepFmtiXzJCpm9Kns= 634 | dependencies: 635 | acorn-node "^1.6.1" 636 | defined "^1.0.0" 637 | minimist "^1.1.1" 638 | 639 | didyoumean@^1.2.2: 640 | version "1.2.2" 641 | resolved "https://registry.nlark.com/didyoumean/download/didyoumean-1.2.2.tgz?cache=0&sync_timestamp=1624544640276&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdidyoumean%2Fdownload%2Fdidyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" 642 | integrity sha1-mJNG/+noObRVXs9WZu3qDT6K0Dc= 643 | 644 | diff@^4.0.1: 645 | version "4.0.2" 646 | resolved "https://registry.nlark.com/diff/download/diff-4.0.2.tgz?cache=0&sync_timestamp=1622605328812&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdiff%2Fdownload%2Fdiff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" 647 | integrity sha1-YPOuy4nV+uUgwRqhnvwruYKq3n0= 648 | 649 | dir-glob@^3.0.1: 650 | version "3.0.1" 651 | resolved "https://registry.nlark.com/dir-glob/download/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" 652 | integrity sha1-Vtv3PZkqSpO6FYT0U0Bj/S5BcX8= 653 | dependencies: 654 | path-type "^4.0.0" 655 | 656 | dlv@^1.1.3: 657 | version "1.1.3" 658 | resolved "https://registry.nlark.com/dlv/download/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" 659 | integrity sha1-XBmKihFFNZbnUUlNSYdLx3MvLnk= 660 | 661 | doctrine@^2.1.0: 662 | version "2.1.0" 663 | resolved "https://registry.nlark.com/doctrine/download/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" 664 | integrity sha1-XNAfwQFiG0LEzX9dGmYkNxbT850= 665 | dependencies: 666 | esutils "^2.0.2" 667 | 668 | doctrine@^3.0.0: 669 | version "3.0.0" 670 | resolved "https://registry.nlark.com/doctrine/download/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" 671 | integrity sha1-rd6+rXKmV023g2OdyHoSF3OXOWE= 672 | dependencies: 673 | esutils "^2.0.2" 674 | 675 | electron-to-chromium@^1.3.896: 676 | version "1.3.907" 677 | resolved "https://registry.npmmirror.com/electron-to-chromium/download/electron-to-chromium-1.3.907.tgz#c8e155a17cb642a1023481c601aa3ad9ee61f402" 678 | integrity sha512-xoUPSkjimw51d9ryeH38XUwmR3HmCA+eky4hk0YEgsWeBWGyhb35OCvT3lWAdmvIkcGYCRNOB8LvtO00dJQpOA== 679 | 680 | emoji-regex@^8.0.0: 681 | version "8.0.0" 682 | resolved "https://registry.npmmirror.com/emoji-regex/download/emoji-regex-8.0.0.tgz?cache=0&sync_timestamp=1632811716250&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Femoji-regex%2Fdownload%2Femoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 683 | integrity sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc= 684 | 685 | enquirer@^2.3.5: 686 | version "2.3.6" 687 | resolved "https://registry.nlark.com/enquirer/download/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" 688 | integrity sha1-Kn/l3WNKHkElqXXsmU/1RW3Dc00= 689 | dependencies: 690 | ansi-colors "^4.1.1" 691 | 692 | error-ex@^1.3.1: 693 | version "1.3.2" 694 | resolved "https://registry.npm.taobao.org/error-ex/download/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 695 | integrity sha1-tKxAZIEH/c3PriQvQovqihTU8b8= 696 | dependencies: 697 | is-arrayish "^0.2.1" 698 | 699 | es-abstract@^1.19.0, es-abstract@^1.19.1: 700 | version "1.19.1" 701 | resolved "https://registry.npmmirror.com/es-abstract/download/es-abstract-1.19.1.tgz?cache=0&sync_timestamp=1633234313248&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fes-abstract%2Fdownload%2Fes-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" 702 | integrity sha1-1IhXlodpFpWd547aoN9FZicRXsM= 703 | dependencies: 704 | call-bind "^1.0.2" 705 | es-to-primitive "^1.2.1" 706 | function-bind "^1.1.1" 707 | get-intrinsic "^1.1.1" 708 | get-symbol-description "^1.0.0" 709 | has "^1.0.3" 710 | has-symbols "^1.0.2" 711 | internal-slot "^1.0.3" 712 | is-callable "^1.2.4" 713 | is-negative-zero "^2.0.1" 714 | is-regex "^1.1.4" 715 | is-shared-array-buffer "^1.0.1" 716 | is-string "^1.0.7" 717 | is-weakref "^1.0.1" 718 | object-inspect "^1.11.0" 719 | object-keys "^1.1.1" 720 | object.assign "^4.1.2" 721 | string.prototype.trimend "^1.0.4" 722 | string.prototype.trimstart "^1.0.4" 723 | unbox-primitive "^1.0.1" 724 | 725 | es-to-primitive@^1.2.1: 726 | version "1.2.1" 727 | resolved "https://registry.nlark.com/es-to-primitive/download/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" 728 | integrity sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo= 729 | dependencies: 730 | is-callable "^1.1.4" 731 | is-date-object "^1.0.1" 732 | is-symbol "^1.0.2" 733 | 734 | esbuild-android-arm64@0.14.1: 735 | version "0.14.1" 736 | resolved "https://registry.npmmirror.com/esbuild-android-arm64/download/esbuild-android-arm64-0.14.1.tgz#470b99c1c4b49f33fd0a20ed153b15008173fd63" 737 | integrity sha512-elQd3hTg93nU2GQ5PPCDAFe5+utxZX96RG8RixqIPxf8pzmyIzcpKG76L/9FabPf3LT1z+nLF1sajCU8eVRDyg== 738 | 739 | esbuild-darwin-64@0.14.1: 740 | version "0.14.1" 741 | resolved "https://registry.npmmirror.com/esbuild-darwin-64/download/esbuild-darwin-64-0.14.1.tgz#135f48f299f2ce3eb3ca1b1f3ec03d81108ab79e" 742 | integrity sha512-PR3HZgbPRwsQbbOR1fJrfkt/Cs0JDyI3yzOKg2PPWk0H1AseZDBqPUY9b/0+BIjFwA5Jz/aAiq832hppsuJtNw== 743 | 744 | esbuild-darwin-arm64@0.14.1: 745 | version "0.14.1" 746 | resolved "https://registry.npmmirror.com/esbuild-darwin-arm64/download/esbuild-darwin-arm64-0.14.1.tgz#7117a857bac99ece28ebba859a47dce47f565f9f" 747 | integrity sha512-/fiSSOkOEa3co6yYtwgXouz8jZrG0qnXPEKiktFf2BQE8NON3ARTw43ZegaH+xMRFNgYBJEOOZIdzI3sIFEAxw== 748 | 749 | esbuild-freebsd-64@0.14.1: 750 | version "0.14.1" 751 | resolved "https://registry.npmmirror.com/esbuild-freebsd-64/download/esbuild-freebsd-64-0.14.1.tgz#2b7ca5ec572f2800b1ec88988affc4482c5ac4b7" 752 | integrity sha512-ZJV+nfa8E8PdXnRc05PO3YMfgSj7Ko+kdHyGDE6OaNo1cO8ZyfacqLaWkY35shDDaeacklhD8ZR4qq5nbJKX1A== 753 | 754 | esbuild-freebsd-arm64@0.14.1: 755 | version "0.14.1" 756 | resolved "https://registry.npmmirror.com/esbuild-freebsd-arm64/download/esbuild-freebsd-arm64-0.14.1.tgz#63e8b77643ea8270d878cfab7dd9201a114f20fb" 757 | integrity sha512-6N9zTD+SecJr2g9Ohl9C10WIk5FpQ+52bNamRy0sJoHwP31G5ObzKzq8jAtg1Jeggpu6P8auz3P/UL+3YioSwQ== 758 | 759 | esbuild-linux-32@0.14.1: 760 | version "0.14.1" 761 | resolved "https://registry.npmmirror.com/esbuild-linux-32/download/esbuild-linux-32-0.14.1.tgz#f00ae7f12d2abc0dc37e2a7e7c7c29764da87093" 762 | integrity sha512-RtPgE6e7WefbAxRjVryisKFJ0nUwR2DMjwmYW/a1a0F1+Ge6FR+RqvgiY0DrM9TtxSUU0eryDXNF4n3UfxX3mg== 763 | 764 | esbuild-linux-64@0.14.1: 765 | version "0.14.1" 766 | resolved "https://registry.npmmirror.com/esbuild-linux-64/download/esbuild-linux-64-0.14.1.tgz#2ee9dd76be1185abb1e967052e3b6ab16a1d3da4" 767 | integrity sha512-JpxM0ar6Z+2v3vfFrxP7bFb8Wzb6gcGL9MxRqAJplDfGnee8HbfPge6svaazXeX9XJceeEqwxwWGB0qyCcxo7A== 768 | 769 | esbuild-linux-arm64@0.14.1: 770 | version "0.14.1" 771 | resolved "https://registry.npmmirror.com/esbuild-linux-arm64/download/esbuild-linux-arm64-0.14.1.tgz#601e855b78e0636e120771296b43eb4f7d68a314" 772 | integrity sha512-cFbeZf171bIf+PPLlQDBzagK85lCCxxVdMV1IVUA96Y3kvEgqcy2n9mha+QE1M/T+lIOPDsmLRgH1XqMFwLTSg== 773 | 774 | esbuild-linux-arm@0.14.1: 775 | version "0.14.1" 776 | resolved "https://registry.npmmirror.com/esbuild-linux-arm/download/esbuild-linux-arm-0.14.1.tgz#c0d364a20f12a653bdd2f41436788b99502dc287" 777 | integrity sha512-eBRHexCijAYWzcvQLGHxyxIlYOkYhXvcb/O7HvzJfCAVWCnTx9TxxYJ3UppBC6dDFbAq4HwKhskvmesQdKMeBg== 778 | 779 | esbuild-linux-mips64le@0.14.1: 780 | version "0.14.1" 781 | resolved "https://registry.npmmirror.com/esbuild-linux-mips64le/download/esbuild-linux-mips64le-0.14.1.tgz#a5f6e9c6e7950a3fad08bb3653bc3f5d71b4e249" 782 | integrity sha512-UGb+sqHkL7wOQFLH0RoFhcRAlJNqbqs6GtJd1It5jJ2juOGqAkCv8V12aGDX9oRB6a+Om7cdHcH+6AMZ+qlaww== 783 | 784 | esbuild-linux-ppc64le@0.14.1: 785 | version "0.14.1" 786 | resolved "https://registry.npmmirror.com/esbuild-linux-ppc64le/download/esbuild-linux-ppc64le-0.14.1.tgz#762cec24cf5afeee3f805a4679a3f5e29702173a" 787 | integrity sha512-LIHGkGdy9wYlmkkoVHm6feWhkoi4VBXDiEVyNjXEhlzsBcP/CaRy+B8IJulzaU1ALLiGcsCQ2MC5UbFn/iTvmA== 788 | 789 | esbuild-netbsd-64@0.14.1: 790 | version "0.14.1" 791 | resolved "https://registry.npmmirror.com/esbuild-netbsd-64/download/esbuild-netbsd-64-0.14.1.tgz#66ec7ac0b3eeb84f8c1ac27eecf16f59d93706a8" 792 | integrity sha512-TWc1QIgtPwaK5nC1GT2ASTuy/CJhNKHN4h5PJRP1186VfI+k2uvXakS7bqO/M26F6jAMy8jDeCtilacqpwsvfA== 793 | 794 | esbuild-openbsd-64@0.14.1: 795 | version "0.14.1" 796 | resolved "https://registry.npmmirror.com/esbuild-openbsd-64/download/esbuild-openbsd-64-0.14.1.tgz#7515049bc7032ca2fb6811dc260f5ec9e1d9fe65" 797 | integrity sha512-Z9/Zb77K+pK9s7mAsvwS56K8tCbLvNZ9UI4QVJSYqDgOmmDJOBT4owWnCqZ5cJI+2y4/F9KwCpFFTNUdPglPKA== 798 | 799 | esbuild-sunos-64@0.14.1: 800 | version "0.14.1" 801 | resolved "https://registry.npmmirror.com/esbuild-sunos-64/download/esbuild-sunos-64-0.14.1.tgz#795f6bc7ce8c5177afb65f8d6c161a02f0c3e125" 802 | integrity sha512-c4sF8146kNW8529wfkB6vO0ZqPgokyS2hORqKa4p/QKZdp+xrF2NPmvX5aN+Zt14oe6wVZuhYo6LGv7V4Gg04g== 803 | 804 | esbuild-windows-32@0.14.1: 805 | version "0.14.1" 806 | resolved "https://registry.npmmirror.com/esbuild-windows-32/download/esbuild-windows-32-0.14.1.tgz#ffffa6378733eeaa23ed5cfe539e2fbe1e635ef6" 807 | integrity sha512-XP8yElaJtLGGjH7D72t5IWtP0jmc1Jqm4IjQARB17l0LTJO/n+N2X64rDWePJv6qimYxa5p2vTjkZc5v+YZTSQ== 808 | 809 | esbuild-windows-64@0.14.1: 810 | version "0.14.1" 811 | resolved "https://registry.npmmirror.com/esbuild-windows-64/download/esbuild-windows-64-0.14.1.tgz#46f3b4a90f937a8ad6456cd70478ebfc6771814f" 812 | integrity sha512-fe+ShdyfiuGcCEdVKW//6MaM4MwikiWBWSBn8mebNAbjRqicH0injDOFVI7aUovAfrEt7+FGkf402s//hi0BVg== 813 | 814 | esbuild-windows-arm64@0.14.1: 815 | version "0.14.1" 816 | resolved "https://registry.npmmirror.com/esbuild-windows-arm64/download/esbuild-windows-arm64-0.14.1.tgz#c7067389d28139e6a18db1996178c3a3e07a22b3" 817 | integrity sha512-wBVakhcIzQ3NZ33DFM6TjIObXPHaXOsqzvPwefXHvwBSC/N/e/g6fBeM7N/Moj3AmxLjKaB+vePvTGdxk6RPCg== 818 | 819 | esbuild@^0.14.1: 820 | version "0.14.1" 821 | resolved "https://registry.npmmirror.com/esbuild/download/esbuild-0.14.1.tgz#b834da3aa5858073205a6d4f948ffde0d650e4e3" 822 | integrity sha512-J/LhUwELcmz0+CJfiaKzu7Rnj9ffWFLvMx+dKvdOfg+fQmoP6q9glla26LCm9BxpnPUjXChHeubLiMlKab/PYg== 823 | optionalDependencies: 824 | esbuild-android-arm64 "0.14.1" 825 | esbuild-darwin-64 "0.14.1" 826 | esbuild-darwin-arm64 "0.14.1" 827 | esbuild-freebsd-64 "0.14.1" 828 | esbuild-freebsd-arm64 "0.14.1" 829 | esbuild-linux-32 "0.14.1" 830 | esbuild-linux-64 "0.14.1" 831 | esbuild-linux-arm "0.14.1" 832 | esbuild-linux-arm64 "0.14.1" 833 | esbuild-linux-mips64le "0.14.1" 834 | esbuild-linux-ppc64le "0.14.1" 835 | esbuild-netbsd-64 "0.14.1" 836 | esbuild-openbsd-64 "0.14.1" 837 | esbuild-sunos-64 "0.14.1" 838 | esbuild-windows-32 "0.14.1" 839 | esbuild-windows-64 "0.14.1" 840 | esbuild-windows-arm64 "0.14.1" 841 | 842 | escalade@^3.1.1: 843 | version "3.1.1" 844 | resolved "https://registry.npm.taobao.org/escalade/download/escalade-3.1.1.tgz?cache=0&sync_timestamp=1602567230854&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 845 | integrity sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA= 846 | 847 | escape-string-regexp@^1.0.5: 848 | version "1.0.5" 849 | resolved "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz?cache=0&sync_timestamp=1618677243201&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 850 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 851 | 852 | escape-string-regexp@^4.0.0: 853 | version "4.0.0" 854 | resolved "https://registry.nlark.com/escape-string-regexp/download/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" 855 | integrity sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ= 856 | 857 | eslint-config-standard@^16.0.3: 858 | version "16.0.3" 859 | resolved "https://registry.nlark.com/eslint-config-standard/download/eslint-config-standard-16.0.3.tgz#6c8761e544e96c531ff92642eeb87842b8488516" 860 | integrity sha1-bIdh5UTpbFMf+SZC7rh4QrhIhRY= 861 | 862 | eslint-import-resolver-node@^0.3.6: 863 | version "0.3.6" 864 | resolved "https://registry.nlark.com/eslint-import-resolver-node/download/eslint-import-resolver-node-0.3.6.tgz?cache=0&sync_timestamp=1629046536777&other_urls=https%3A%2F%2Fregistry.nlark.com%2Feslint-import-resolver-node%2Fdownload%2Feslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" 865 | integrity sha1-QEi5WDldqJZoJSAB29nsprg7rL0= 866 | dependencies: 867 | debug "^3.2.7" 868 | resolve "^1.20.0" 869 | 870 | eslint-module-utils@^2.7.1: 871 | version "2.7.1" 872 | resolved "https://registry.npmmirror.com/eslint-module-utils/download/eslint-module-utils-2.7.1.tgz?cache=0&sync_timestamp=1634151608499&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-module-utils%2Fdownload%2Feslint-module-utils-2.7.1.tgz#b435001c9f8dd4ab7f6d0efcae4b9696d4c24b7c" 873 | integrity sha1-tDUAHJ+N1Kt/bQ78rkuWltTCS3w= 874 | dependencies: 875 | debug "^3.2.7" 876 | find-up "^2.1.0" 877 | pkg-dir "^2.0.0" 878 | 879 | eslint-plugin-es@^3.0.0: 880 | version "3.0.1" 881 | resolved "https://registry.nlark.com/eslint-plugin-es/download/eslint-plugin-es-3.0.1.tgz#75a7cdfdccddc0589934aeeb384175f221c57893" 882 | integrity sha1-dafN/czdwFiZNK7rOEF18iHFeJM= 883 | dependencies: 884 | eslint-utils "^2.0.0" 885 | regexpp "^3.0.0" 886 | 887 | eslint-plugin-import@^2.22.1: 888 | version "2.25.3" 889 | resolved "https://registry.npmmirror.com/eslint-plugin-import/download/eslint-plugin-import-2.25.3.tgz?cache=0&sync_timestamp=1636529251650&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-plugin-import%2Fdownload%2Feslint-plugin-import-2.25.3.tgz#a554b5f66e08fb4f6dc99221866e57cfff824766" 890 | integrity sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg== 891 | dependencies: 892 | array-includes "^3.1.4" 893 | array.prototype.flat "^1.2.5" 894 | debug "^2.6.9" 895 | doctrine "^2.1.0" 896 | eslint-import-resolver-node "^0.3.6" 897 | eslint-module-utils "^2.7.1" 898 | has "^1.0.3" 899 | is-core-module "^2.8.0" 900 | is-glob "^4.0.3" 901 | minimatch "^3.0.4" 902 | object.values "^1.1.5" 903 | resolve "^1.20.0" 904 | tsconfig-paths "^3.11.0" 905 | 906 | eslint-plugin-node@^11.1.0: 907 | version "11.1.0" 908 | resolved "https://registry.nlark.com/eslint-plugin-node/download/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d" 909 | integrity sha1-yVVEQW7kraJnQKMEdO78VALcZx0= 910 | dependencies: 911 | eslint-plugin-es "^3.0.0" 912 | eslint-utils "^2.0.0" 913 | ignore "^5.1.1" 914 | minimatch "^3.0.4" 915 | resolve "^1.10.1" 916 | semver "^6.1.0" 917 | 918 | eslint-plugin-promise@^5.2.0: 919 | version "5.2.0" 920 | resolved "https://registry.npmmirror.com/eslint-plugin-promise/download/eslint-plugin-promise-5.2.0.tgz#a596acc32981627eb36d9d75f9666ac1a4564971" 921 | integrity sha512-SftLb1pUG01QYq2A/hGAWfDRXqYD82zE7j7TopDOyNdU+7SvvoXREls/+PRTY17vUXzXnZA/zfnyKgRH6x4JJw== 922 | 923 | eslint-scope@^5.1.1: 924 | version "5.1.1" 925 | resolved "https://registry.npmmirror.com/eslint-scope/download/eslint-scope-5.1.1.tgz?cache=0&sync_timestamp=1637466831846&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-scope%2Fdownload%2Feslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" 926 | integrity sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw= 927 | dependencies: 928 | esrecurse "^4.3.0" 929 | estraverse "^4.1.1" 930 | 931 | eslint-utils@^2.0.0, eslint-utils@^2.1.0: 932 | version "2.1.0" 933 | resolved "https://registry.nlark.com/eslint-utils/download/eslint-utils-2.1.0.tgz?cache=0&sync_timestamp=1622605293603&other_urls=https%3A%2F%2Fregistry.nlark.com%2Feslint-utils%2Fdownload%2Feslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" 934 | integrity sha1-0t5eA0JOcH3BDHQGjd7a5wh0Gyc= 935 | dependencies: 936 | eslint-visitor-keys "^1.1.0" 937 | 938 | eslint-utils@^3.0.0: 939 | version "3.0.0" 940 | resolved "https://registry.nlark.com/eslint-utils/download/eslint-utils-3.0.0.tgz?cache=0&sync_timestamp=1622605293603&other_urls=https%3A%2F%2Fregistry.nlark.com%2Feslint-utils%2Fdownload%2Feslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" 941 | integrity sha1-iuuvrOc0W7M1WdsKHxOh0tSMNnI= 942 | dependencies: 943 | eslint-visitor-keys "^2.0.0" 944 | 945 | eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: 946 | version "1.3.0" 947 | resolved "https://registry.npmmirror.com/eslint-visitor-keys/download/eslint-visitor-keys-1.3.0.tgz?cache=0&sync_timestamp=1636378395014&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" 948 | integrity sha1-MOvR73wv3/AcOk8VEESvJfqwUj4= 949 | 950 | eslint-visitor-keys@^2.0.0: 951 | version "2.1.0" 952 | resolved "https://registry.npmmirror.com/eslint-visitor-keys/download/eslint-visitor-keys-2.1.0.tgz?cache=0&sync_timestamp=1636378395014&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" 953 | integrity sha1-9lMoJZMFknOSyTjtROsKXJsr0wM= 954 | 955 | eslint-visitor-keys@^3.0.0: 956 | version "3.1.0" 957 | resolved "https://registry.npmmirror.com/eslint-visitor-keys/download/eslint-visitor-keys-3.1.0.tgz?cache=0&sync_timestamp=1636378395014&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-3.1.0.tgz#eee4acea891814cda67a7d8812d9647dd0179af2" 958 | integrity sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA== 959 | 960 | eslint@^7.12.1: 961 | version "7.32.0" 962 | resolved "https://registry.npmmirror.com/eslint/download/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" 963 | integrity sha1-xtMooUvj+wjI0dIeEsAv23oqgS0= 964 | dependencies: 965 | "@babel/code-frame" "7.12.11" 966 | "@eslint/eslintrc" "^0.4.3" 967 | "@humanwhocodes/config-array" "^0.5.0" 968 | ajv "^6.10.0" 969 | chalk "^4.0.0" 970 | cross-spawn "^7.0.2" 971 | debug "^4.0.1" 972 | doctrine "^3.0.0" 973 | enquirer "^2.3.5" 974 | escape-string-regexp "^4.0.0" 975 | eslint-scope "^5.1.1" 976 | eslint-utils "^2.1.0" 977 | eslint-visitor-keys "^2.0.0" 978 | espree "^7.3.1" 979 | esquery "^1.4.0" 980 | esutils "^2.0.2" 981 | fast-deep-equal "^3.1.3" 982 | file-entry-cache "^6.0.1" 983 | functional-red-black-tree "^1.0.1" 984 | glob-parent "^5.1.2" 985 | globals "^13.6.0" 986 | ignore "^4.0.6" 987 | import-fresh "^3.0.0" 988 | imurmurhash "^0.1.4" 989 | is-glob "^4.0.0" 990 | js-yaml "^3.13.1" 991 | json-stable-stringify-without-jsonify "^1.0.1" 992 | levn "^0.4.1" 993 | lodash.merge "^4.6.2" 994 | minimatch "^3.0.4" 995 | natural-compare "^1.4.0" 996 | optionator "^0.9.1" 997 | progress "^2.0.0" 998 | regexpp "^3.1.0" 999 | semver "^7.2.1" 1000 | strip-ansi "^6.0.0" 1001 | strip-json-comments "^3.1.0" 1002 | table "^6.0.9" 1003 | text-table "^0.2.0" 1004 | v8-compile-cache "^2.0.3" 1005 | 1006 | espree@^7.3.0, espree@^7.3.1: 1007 | version "7.3.1" 1008 | resolved "https://registry.npmmirror.com/espree/download/espree-7.3.1.tgz?cache=0&sync_timestamp=1637466526998&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fespree%2Fdownload%2Fespree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" 1009 | integrity sha1-8t8zC3Usb1UBn4vYm3ZgA5wbu7Y= 1010 | dependencies: 1011 | acorn "^7.4.0" 1012 | acorn-jsx "^5.3.1" 1013 | eslint-visitor-keys "^1.3.0" 1014 | 1015 | esprima@^4.0.0: 1016 | version "4.0.1" 1017 | resolved "https://registry.nlark.com/esprima/download/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 1018 | integrity sha1-E7BM2z5sXRnfkatph6hpVhmwqnE= 1019 | 1020 | esquery@^1.4.0: 1021 | version "1.4.0" 1022 | resolved "https://registry.nlark.com/esquery/download/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" 1023 | integrity sha1-IUj/w4uC6McFff7UhCWz5h8PJKU= 1024 | dependencies: 1025 | estraverse "^5.1.0" 1026 | 1027 | esrecurse@^4.3.0: 1028 | version "4.3.0" 1029 | resolved "https://registry.nlark.com/esrecurse/download/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" 1030 | integrity sha1-eteWTWeauyi+5yzsY3WLHF0smSE= 1031 | dependencies: 1032 | estraverse "^5.2.0" 1033 | 1034 | estraverse@^4.1.1: 1035 | version "4.3.0" 1036 | resolved "https://registry.npmmirror.com/estraverse/download/estraverse-4.3.0.tgz?cache=0&sync_timestamp=1635237716974&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" 1037 | integrity sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0= 1038 | 1039 | estraverse@^5.1.0, estraverse@^5.2.0: 1040 | version "5.3.0" 1041 | resolved "https://registry.npmmirror.com/estraverse/download/estraverse-5.3.0.tgz?cache=0&sync_timestamp=1635237716974&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Festraverse%2Fdownload%2Festraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" 1042 | integrity sha1-LupSkHAvJquP5TcDcP+GyWXSESM= 1043 | 1044 | esutils@^2.0.2: 1045 | version "2.0.3" 1046 | resolved "https://registry.nlark.com/esutils/download/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 1047 | integrity sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q= 1048 | 1049 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: 1050 | version "3.1.3" 1051 | resolved "https://registry.nlark.com/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 1052 | integrity sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU= 1053 | 1054 | fast-glob@^3.1.1, fast-glob@^3.2.7: 1055 | version "3.2.7" 1056 | resolved "https://registry.nlark.com/fast-glob/download/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" 1057 | integrity sha1-/Wy3otfpqnp4RhEehaGW1rL3ZqE= 1058 | dependencies: 1059 | "@nodelib/fs.stat" "^2.0.2" 1060 | "@nodelib/fs.walk" "^1.2.3" 1061 | glob-parent "^5.1.2" 1062 | merge2 "^1.3.0" 1063 | micromatch "^4.0.4" 1064 | 1065 | fast-json-stable-stringify@^2.0.0: 1066 | version "2.1.0" 1067 | resolved "https://registry.nlark.com/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 1068 | integrity sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM= 1069 | 1070 | fast-levenshtein@^2.0.6: 1071 | version "2.0.6" 1072 | resolved "https://registry.nlark.com/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 1073 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= 1074 | 1075 | fastq@^1.6.0: 1076 | version "1.13.0" 1077 | resolved "https://registry.nlark.com/fastq/download/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" 1078 | integrity sha1-YWdg+Ip1Jr38WWt8q4wYk4w2uYw= 1079 | dependencies: 1080 | reusify "^1.0.4" 1081 | 1082 | fibers@^5.0.0: 1083 | version "5.0.0" 1084 | resolved "https://registry.npmmirror.com/fibers/download/fibers-5.0.0.tgz#3a60e0695b3ee5f6db94e62726716fa7a59acc41" 1085 | integrity sha1-OmDgaVs+5fbblOYnJnFvp6WazEE= 1086 | dependencies: 1087 | detect-libc "^1.0.3" 1088 | 1089 | file-entry-cache@^6.0.1: 1090 | version "6.0.1" 1091 | resolved "https://registry.nlark.com/file-entry-cache/download/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" 1092 | integrity sha1-IRst2WWcsDlLBz5zI6w8kz1SICc= 1093 | dependencies: 1094 | flat-cache "^3.0.4" 1095 | 1096 | fill-range@^7.0.1: 1097 | version "7.0.1" 1098 | resolved "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 1099 | integrity sha1-GRmmp8df44ssfHflGYU12prN2kA= 1100 | dependencies: 1101 | to-regex-range "^5.0.1" 1102 | 1103 | find-up@^2.1.0: 1104 | version "2.1.0" 1105 | resolved "https://registry.npmmirror.com/find-up/download/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" 1106 | integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= 1107 | dependencies: 1108 | locate-path "^2.0.0" 1109 | 1110 | flat-cache@^3.0.4: 1111 | version "3.0.4" 1112 | resolved "https://registry.nlark.com/flat-cache/download/flat-cache-3.0.4.tgz?cache=0&sync_timestamp=1622604531509&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fflat-cache%2Fdownload%2Fflat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" 1113 | integrity sha1-YbAzgwKy/p+Vfcwy/CqH8cMEixE= 1114 | dependencies: 1115 | flatted "^3.1.0" 1116 | rimraf "^3.0.2" 1117 | 1118 | flatted@^3.1.0: 1119 | version "3.2.4" 1120 | resolved "https://registry.npmmirror.com/flatted/download/flatted-3.2.4.tgz?cache=0&sync_timestamp=1636473813364&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fflatted%2Fdownload%2Fflatted-3.2.4.tgz#28d9969ea90661b5134259f312ab6aa7929ac5e2" 1121 | integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw== 1122 | 1123 | fraction.js@^4.1.1: 1124 | version "4.1.2" 1125 | resolved "https://registry.npmmirror.com/fraction.js/download/fraction.js-4.1.2.tgz#13e420a92422b6cf244dff8690ed89401029fbe8" 1126 | integrity sha512-o2RiJQ6DZaR/5+Si0qJUIy637QMRudSi9kU/FFzx9EZazrIdnBgpU+3sEWCxAVhH2RtxW2Oz+T4p2o8uOPVcgA== 1127 | 1128 | fs-extra@^10.0.0: 1129 | version "10.0.0" 1130 | resolved "https://registry.nlark.com/fs-extra/download/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" 1131 | integrity sha1-n/YbZV3eU/s0qC34S7IUzoAuF8E= 1132 | dependencies: 1133 | graceful-fs "^4.2.0" 1134 | jsonfile "^6.0.1" 1135 | universalify "^2.0.0" 1136 | 1137 | fs.realpath@^1.0.0: 1138 | version "1.0.0" 1139 | resolved "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 1140 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 1141 | 1142 | fsevents@~2.3.2: 1143 | version "2.3.2" 1144 | resolved "https://registry.npmmirror.com/fsevents/download/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 1145 | integrity sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro= 1146 | 1147 | function-bind@^1.1.1: 1148 | version "1.1.1" 1149 | resolved "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 1150 | integrity sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0= 1151 | 1152 | functional-red-black-tree@^1.0.1: 1153 | version "1.0.1" 1154 | resolved "https://registry.nlark.com/functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz?cache=0&sync_timestamp=1622605293770&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffunctional-red-black-tree%2Fdownload%2Ffunctional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" 1155 | integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= 1156 | 1157 | get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: 1158 | version "1.1.1" 1159 | resolved "https://registry.nlark.com/get-intrinsic/download/get-intrinsic-1.1.1.tgz?cache=0&sync_timestamp=1622604540833&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fget-intrinsic%2Fdownload%2Fget-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" 1160 | integrity sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y= 1161 | dependencies: 1162 | function-bind "^1.1.1" 1163 | has "^1.0.3" 1164 | has-symbols "^1.0.1" 1165 | 1166 | get-symbol-description@^1.0.0: 1167 | version "1.0.0" 1168 | resolved "https://registry.nlark.com/get-symbol-description/download/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" 1169 | integrity sha1-f9uByQAQH71WTdXxowr1qtweWNY= 1170 | dependencies: 1171 | call-bind "^1.0.2" 1172 | get-intrinsic "^1.1.1" 1173 | 1174 | glob-parent@^5.1.2, glob-parent@~5.1.2: 1175 | version "5.1.2" 1176 | resolved "https://registry.npmmirror.com/glob-parent/download/glob-parent-5.1.2.tgz?cache=0&sync_timestamp=1632953697891&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglob-parent%2Fdownload%2Fglob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 1177 | integrity sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ= 1178 | dependencies: 1179 | is-glob "^4.0.1" 1180 | 1181 | glob-parent@^6.0.1: 1182 | version "6.0.2" 1183 | resolved "https://registry.npmmirror.com/glob-parent/download/glob-parent-6.0.2.tgz?cache=0&sync_timestamp=1632953697891&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglob-parent%2Fdownload%2Fglob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" 1184 | integrity sha1-bSN9mQg5UMeSkPJMdkKj3poo+eM= 1185 | dependencies: 1186 | is-glob "^4.0.3" 1187 | 1188 | glob@^7.0.0, glob@^7.1.3: 1189 | version "7.2.0" 1190 | resolved "https://registry.npmmirror.com/glob/download/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" 1191 | integrity sha1-0VU1r3cy4C6Uj0xBYovZECk/YCM= 1192 | dependencies: 1193 | fs.realpath "^1.0.0" 1194 | inflight "^1.0.4" 1195 | inherits "2" 1196 | minimatch "^3.0.4" 1197 | once "^1.3.0" 1198 | path-is-absolute "^1.0.0" 1199 | 1200 | globals@^13.6.0, globals@^13.9.0: 1201 | version "13.12.0" 1202 | resolved "https://registry.npmmirror.com/globals/download/globals-13.12.0.tgz?cache=0&sync_timestamp=1635390798667&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglobals%2Fdownload%2Fglobals-13.12.0.tgz#4d733760304230a0082ed96e21e5c565f898089e" 1203 | integrity sha1-TXM3YDBCMKAILtluIeXFZfiYCJ4= 1204 | dependencies: 1205 | type-fest "^0.20.2" 1206 | 1207 | globby@^11.0.1, globby@^11.0.4: 1208 | version "11.0.4" 1209 | resolved "https://registry.nlark.com/globby/download/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" 1210 | integrity sha1-LLr/d8Lypi5x6bKBOme5ejowAaU= 1211 | dependencies: 1212 | array-union "^2.1.0" 1213 | dir-glob "^3.0.1" 1214 | fast-glob "^3.1.1" 1215 | ignore "^5.1.4" 1216 | merge2 "^1.3.0" 1217 | slash "^3.0.0" 1218 | 1219 | graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: 1220 | version "4.2.8" 1221 | resolved "https://registry.npmmirror.com/graceful-fs/download/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" 1222 | integrity sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo= 1223 | 1224 | has-bigints@^1.0.1: 1225 | version "1.0.1" 1226 | resolved "https://registry.nlark.com/has-bigints/download/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" 1227 | integrity sha1-ZP5qywIGc+O3jbA1pa9pqp0HsRM= 1228 | 1229 | has-flag@^3.0.0: 1230 | version "3.0.0" 1231 | resolved "https://registry.nlark.com/has-flag/download/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 1232 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 1233 | 1234 | has-flag@^4.0.0: 1235 | version "4.0.0" 1236 | resolved "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 1237 | integrity sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s= 1238 | 1239 | has-symbols@^1.0.1, has-symbols@^1.0.2: 1240 | version "1.0.2" 1241 | resolved "https://registry.nlark.com/has-symbols/download/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" 1242 | integrity sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM= 1243 | 1244 | has-tostringtag@^1.0.0: 1245 | version "1.0.0" 1246 | resolved "https://registry.nlark.com/has-tostringtag/download/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" 1247 | integrity sha1-fhM4GKfTlHNPlB5zw9P5KR5liyU= 1248 | dependencies: 1249 | has-symbols "^1.0.2" 1250 | 1251 | has@^1.0.3: 1252 | version "1.0.3" 1253 | resolved "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 1254 | integrity sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y= 1255 | dependencies: 1256 | function-bind "^1.1.1" 1257 | 1258 | hex-color-regex@^1.1.0: 1259 | version "1.1.0" 1260 | resolved "https://registry.npm.taobao.org/hex-color-regex/download/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" 1261 | integrity sha1-TAb8y0YC/iYCs8k9+C1+fb8aio4= 1262 | 1263 | hsl-regex@^1.0.0: 1264 | version "1.0.0" 1265 | resolved "https://registry.npm.taobao.org/hsl-regex/download/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" 1266 | integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= 1267 | 1268 | hsla-regex@^1.0.0: 1269 | version "1.0.0" 1270 | resolved "https://registry.npm.taobao.org/hsla-regex/download/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" 1271 | integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= 1272 | 1273 | html-tags@^3.1.0: 1274 | version "3.1.0" 1275 | resolved "https://registry.npm.taobao.org/html-tags/download/html-tags-3.1.0.tgz#7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140" 1276 | integrity sha1-e15vfmZen7QfMAB+2eDUHpf7IUA= 1277 | 1278 | ignore@^4.0.6: 1279 | version "4.0.6" 1280 | resolved "https://registry.npmmirror.com/ignore/download/ignore-4.0.6.tgz?cache=0&sync_timestamp=1635926632542&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fignore%2Fdownload%2Fignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" 1281 | integrity sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw= 1282 | 1283 | ignore@^5.1.1, ignore@^5.1.4, ignore@^5.1.8: 1284 | version "5.1.9" 1285 | resolved "https://registry.npmmirror.com/ignore/download/ignore-5.1.9.tgz?cache=0&sync_timestamp=1635926632542&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fignore%2Fdownload%2Fignore-5.1.9.tgz#9ec1a5cbe8e1446ec60d4420060d43aa6e7382fb" 1286 | integrity sha1-nsGly+jhRG7GDUQgBg1Dqm5zgvs= 1287 | 1288 | immutable@^4.0.0: 1289 | version "4.0.0" 1290 | resolved "https://registry.npmmirror.com/immutable/download/immutable-4.0.0.tgz?cache=0&sync_timestamp=1633650938783&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fimmutable%2Fdownload%2Fimmutable-4.0.0.tgz#b86f78de6adef3608395efb269a91462797e2c23" 1291 | integrity sha1-uG943mre82CDle+yaakUYnl+LCM= 1292 | 1293 | import-cwd@^3.0.0: 1294 | version "3.0.0" 1295 | resolved "https://registry.npm.taobao.org/import-cwd/download/import-cwd-3.0.0.tgz#20845547718015126ea9b3676b7592fb8bd4cf92" 1296 | integrity sha1-IIRVR3GAFRJuqbNna3WS+4vUz5I= 1297 | dependencies: 1298 | import-from "^3.0.0" 1299 | 1300 | import-fresh@^3.0.0, import-fresh@^3.2.1: 1301 | version "3.3.0" 1302 | resolved "https://registry.npm.taobao.org/import-fresh/download/import-fresh-3.3.0.tgz?cache=0&sync_timestamp=1608469485280&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" 1303 | integrity sha1-NxYsJfy566oublPVtNiM4X2eDCs= 1304 | dependencies: 1305 | parent-module "^1.0.0" 1306 | resolve-from "^4.0.0" 1307 | 1308 | import-from@^3.0.0: 1309 | version "3.0.0" 1310 | resolved "https://registry.nlark.com/import-from/download/import-from-3.0.0.tgz#055cfec38cd5a27d8057ca51376d7d3bf0891966" 1311 | integrity sha1-BVz+w4zVon2AV8pRN219O/CJGWY= 1312 | dependencies: 1313 | resolve-from "^5.0.0" 1314 | 1315 | imurmurhash@^0.1.4: 1316 | version "0.1.4" 1317 | resolved "https://registry.nlark.com/imurmurhash/download/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 1318 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= 1319 | 1320 | indent-string@^4.0.0: 1321 | version "4.0.0" 1322 | resolved "https://registry.nlark.com/indent-string/download/indent-string-4.0.0.tgz?cache=0&sync_timestamp=1622604582006&other_urls=https%3A%2F%2Fregistry.nlark.com%2Findent-string%2Fdownload%2Findent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" 1323 | integrity sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE= 1324 | 1325 | inflight@^1.0.4: 1326 | version "1.0.6" 1327 | resolved "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1328 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 1329 | dependencies: 1330 | once "^1.3.0" 1331 | wrappy "1" 1332 | 1333 | inherits@2: 1334 | version "2.0.4" 1335 | resolved "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 1336 | integrity sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w= 1337 | 1338 | internal-slot@^1.0.3: 1339 | version "1.0.3" 1340 | resolved "https://registry.nlark.com/internal-slot/download/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" 1341 | integrity sha1-c0fjB97uovqsKsYgXUvH00ln9Zw= 1342 | dependencies: 1343 | get-intrinsic "^1.1.0" 1344 | has "^1.0.3" 1345 | side-channel "^1.0.4" 1346 | 1347 | is-arrayish@^0.2.1: 1348 | version "0.2.1" 1349 | resolved "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 1350 | integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= 1351 | 1352 | is-arrayish@^0.3.1: 1353 | version "0.3.2" 1354 | resolved "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" 1355 | integrity sha1-RXSirlb3qyBolvtDHq7tBm/fjwM= 1356 | 1357 | is-bigint@^1.0.1: 1358 | version "1.0.4" 1359 | resolved "https://registry.nlark.com/is-bigint/download/is-bigint-1.0.4.tgz?cache=0&sync_timestamp=1628747504782&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-bigint%2Fdownload%2Fis-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" 1360 | integrity sha1-CBR6GHW8KzIAXUHM2Ckd/8ZpHfM= 1361 | dependencies: 1362 | has-bigints "^1.0.1" 1363 | 1364 | is-binary-path@~2.1.0: 1365 | version "2.1.0" 1366 | resolved "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 1367 | integrity sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk= 1368 | dependencies: 1369 | binary-extensions "^2.0.0" 1370 | 1371 | is-boolean-object@^1.1.0: 1372 | version "1.1.2" 1373 | resolved "https://registry.nlark.com/is-boolean-object/download/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" 1374 | integrity sha1-XG3CACRt2TIa5LiFoRS7H3X2Nxk= 1375 | dependencies: 1376 | call-bind "^1.0.2" 1377 | has-tostringtag "^1.0.0" 1378 | 1379 | is-callable@^1.1.4, is-callable@^1.2.4: 1380 | version "1.2.4" 1381 | resolved "https://registry.nlark.com/is-callable/download/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" 1382 | integrity sha1-RzAdWN0CWUB4ZVR4U99tYf5HGUU= 1383 | 1384 | is-color-stop@^1.1.0: 1385 | version "1.1.0" 1386 | resolved "https://registry.npm.taobao.org/is-color-stop/download/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" 1387 | integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= 1388 | dependencies: 1389 | css-color-names "^0.0.4" 1390 | hex-color-regex "^1.1.0" 1391 | hsl-regex "^1.0.0" 1392 | hsla-regex "^1.0.0" 1393 | rgb-regex "^1.0.1" 1394 | rgba-regex "^1.0.0" 1395 | 1396 | is-core-module@^2.2.0, is-core-module@^2.8.0: 1397 | version "2.8.0" 1398 | resolved "https://registry.npmmirror.com/is-core-module/download/is-core-module-2.8.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fis-core-module%2Fdownload%2Fis-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" 1399 | integrity sha1-AyEzbD0JJeSX/Zf12VyxFKXM1Ug= 1400 | dependencies: 1401 | has "^1.0.3" 1402 | 1403 | is-date-object@^1.0.1: 1404 | version "1.0.5" 1405 | resolved "https://registry.nlark.com/is-date-object/download/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" 1406 | integrity sha1-CEHVU25yTCVZe/bqYuG9OCmN8x8= 1407 | dependencies: 1408 | has-tostringtag "^1.0.0" 1409 | 1410 | is-extglob@^2.1.1: 1411 | version "2.1.1" 1412 | resolved "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 1413 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 1414 | 1415 | is-fullwidth-code-point@^3.0.0: 1416 | version "3.0.0" 1417 | resolved "https://registry.nlark.com/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 1418 | integrity sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0= 1419 | 1420 | is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: 1421 | version "4.0.3" 1422 | resolved "https://registry.npmmirror.com/is-glob/download/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" 1423 | integrity sha1-ZPYeQsu7LuwgcanawLKLoeZdUIQ= 1424 | dependencies: 1425 | is-extglob "^2.1.1" 1426 | 1427 | is-negative-zero@^2.0.1: 1428 | version "2.0.1" 1429 | resolved "https://registry.nlark.com/is-negative-zero/download/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" 1430 | integrity sha1-PedGwY3aIxkkGlNnWQjY92bxHCQ= 1431 | 1432 | is-number-object@^1.0.4: 1433 | version "1.0.6" 1434 | resolved "https://registry.nlark.com/is-number-object/download/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" 1435 | integrity sha1-anqvg4x/BoalC0VT9+VKlklOifA= 1436 | dependencies: 1437 | has-tostringtag "^1.0.0" 1438 | 1439 | is-number@^7.0.0: 1440 | version "7.0.0" 1441 | resolved "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 1442 | integrity sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss= 1443 | 1444 | is-path-cwd@^2.2.0: 1445 | version "2.2.0" 1446 | resolved "https://registry.nlark.com/is-path-cwd/download/is-path-cwd-2.2.0.tgz?cache=0&sync_timestamp=1628686555851&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-path-cwd%2Fdownload%2Fis-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" 1447 | integrity sha1-Z9Q7gmZKe1GR/ZEZEn6zAASKn9s= 1448 | 1449 | is-path-inside@^3.0.2: 1450 | version "3.0.3" 1451 | resolved "https://registry.nlark.com/is-path-inside/download/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" 1452 | integrity sha1-0jE2LlOgf/Kw4Op/7QSRYf/RYoM= 1453 | 1454 | is-regex@^1.1.4: 1455 | version "1.1.4" 1456 | resolved "https://registry.nlark.com/is-regex/download/is-regex-1.1.4.tgz?cache=0&sync_timestamp=1628221905423&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-regex%2Fdownload%2Fis-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" 1457 | integrity sha1-7vVmPNWfpMCuM5UFMj32hUuxWVg= 1458 | dependencies: 1459 | call-bind "^1.0.2" 1460 | has-tostringtag "^1.0.0" 1461 | 1462 | is-shared-array-buffer@^1.0.1: 1463 | version "1.0.1" 1464 | resolved "https://registry.npmmirror.com/is-shared-array-buffer/download/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" 1465 | integrity sha1-l7DIX72stZycRG/mU7gs8rW3z+Y= 1466 | 1467 | is-string@^1.0.5, is-string@^1.0.7: 1468 | version "1.0.7" 1469 | resolved "https://registry.nlark.com/is-string/download/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" 1470 | integrity sha1-DdEr8gBvJVu1j2lREO/3SR7rwP0= 1471 | dependencies: 1472 | has-tostringtag "^1.0.0" 1473 | 1474 | is-symbol@^1.0.2, is-symbol@^1.0.3: 1475 | version "1.0.4" 1476 | resolved "https://registry.nlark.com/is-symbol/download/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" 1477 | integrity sha1-ptrJO2NbBjymhyI23oiRClevE5w= 1478 | dependencies: 1479 | has-symbols "^1.0.2" 1480 | 1481 | is-weakref@^1.0.1: 1482 | version "1.0.1" 1483 | resolved "https://registry.nlark.com/is-weakref/download/is-weakref-1.0.1.tgz#842dba4ec17fa9ac9850df2d6efbc1737274f2a2" 1484 | integrity sha1-hC26TsF/qayYUN8tbvvBc3J08qI= 1485 | dependencies: 1486 | call-bind "^1.0.0" 1487 | 1488 | isexe@^2.0.0: 1489 | version "2.0.0" 1490 | resolved "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1491 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 1492 | 1493 | js-tokens@^4.0.0: 1494 | version "4.0.0" 1495 | resolved "https://registry.nlark.com/js-tokens/download/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 1496 | integrity sha1-GSA/tZmR35jjoocFDUZHzerzJJk= 1497 | 1498 | js-yaml@^3.13.1: 1499 | version "3.14.1" 1500 | resolved "https://registry.nlark.com/js-yaml/download/js-yaml-3.14.1.tgz?cache=0&sync_timestamp=1622604474266&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" 1501 | integrity sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc= 1502 | dependencies: 1503 | argparse "^1.0.7" 1504 | esprima "^4.0.0" 1505 | 1506 | json-parse-even-better-errors@^2.3.0: 1507 | version "2.3.1" 1508 | resolved "https://registry.npm.taobao.org/json-parse-even-better-errors/download/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" 1509 | integrity sha1-fEeAWpQxmSjgV3dAXcEuH3pO4C0= 1510 | 1511 | json-schema-traverse@^0.4.1: 1512 | version "0.4.1" 1513 | resolved "https://registry.nlark.com/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 1514 | integrity sha1-afaofZUTq4u4/mO9sJecRI5oRmA= 1515 | 1516 | json-schema-traverse@^1.0.0: 1517 | version "1.0.0" 1518 | resolved "https://registry.nlark.com/json-schema-traverse/download/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" 1519 | integrity sha1-rnvLNlard6c7pcSb9lTzjmtoYOI= 1520 | 1521 | json-stable-stringify-without-jsonify@^1.0.1: 1522 | version "1.0.1" 1523 | resolved "https://registry.nlark.com/json-stable-stringify-without-jsonify/download/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 1524 | integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= 1525 | 1526 | json5@^1.0.1: 1527 | version "1.0.1" 1528 | resolved "https://registry.nlark.com/json5/download/json5-1.0.1.tgz?cache=0&sync_timestamp=1622604475200&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" 1529 | integrity sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4= 1530 | dependencies: 1531 | minimist "^1.2.0" 1532 | 1533 | jsonfile@^6.0.1: 1534 | version "6.1.0" 1535 | resolved "https://registry.npm.taobao.org/jsonfile/download/jsonfile-6.1.0.tgz?cache=0&sync_timestamp=1604161917513&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsonfile%2Fdownload%2Fjsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" 1536 | integrity sha1-vFWyY0eTxnnsZAMJTrE2mKbsCq4= 1537 | dependencies: 1538 | universalify "^2.0.0" 1539 | optionalDependencies: 1540 | graceful-fs "^4.1.6" 1541 | 1542 | levn@^0.4.1: 1543 | version "0.4.1" 1544 | resolved "https://registry.nlark.com/levn/download/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" 1545 | integrity sha1-rkViwAdHO5MqYgDUAyaN0v/8at4= 1546 | dependencies: 1547 | prelude-ls "^1.2.1" 1548 | type-check "~0.4.0" 1549 | 1550 | lilconfig@^2.0.3: 1551 | version "2.0.4" 1552 | resolved "https://registry.npmmirror.com/lilconfig/download/lilconfig-2.0.4.tgz#f4507d043d7058b380b6a8f5cb7bcd4b34cee082" 1553 | integrity sha1-9FB9BD1wWLOAtqj1y3vNSzTO4II= 1554 | 1555 | lines-and-columns@^1.1.6: 1556 | version "1.2.4" 1557 | resolved "https://registry.npmmirror.com/lines-and-columns/download/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" 1558 | integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== 1559 | 1560 | locate-path@^2.0.0: 1561 | version "2.0.0" 1562 | resolved "https://registry.nlark.com/locate-path/download/locate-path-2.0.0.tgz?cache=0&sync_timestamp=1629895724478&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flocate-path%2Fdownload%2Flocate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" 1563 | integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= 1564 | dependencies: 1565 | p-locate "^2.0.0" 1566 | path-exists "^3.0.0" 1567 | 1568 | lodash.merge@^4.6.2: 1569 | version "4.6.2" 1570 | resolved "https://registry.nlark.com/lodash.merge/download/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" 1571 | integrity sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo= 1572 | 1573 | lodash.topath@^4.5.2: 1574 | version "4.5.2" 1575 | resolved "https://registry.nlark.com/lodash.topath/download/lodash.topath-4.5.2.tgz#3616351f3bba61994a0931989660bd03254fd009" 1576 | integrity sha1-NhY1Hzu6YZlKCTGYlmC9AyVP0Ak= 1577 | 1578 | lodash.truncate@^4.4.2: 1579 | version "4.4.2" 1580 | resolved "https://registry.nlark.com/lodash.truncate/download/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" 1581 | integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= 1582 | 1583 | lodash@^4.17.21: 1584 | version "4.17.21" 1585 | resolved "https://registry.npm.taobao.org/lodash/download/lodash-4.17.21.tgz?cache=0&sync_timestamp=1613835860585&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" 1586 | integrity sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw= 1587 | 1588 | lru-cache@^6.0.0: 1589 | version "6.0.0" 1590 | resolved "https://registry.nlark.com/lru-cache/download/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 1591 | integrity sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ= 1592 | dependencies: 1593 | yallist "^4.0.0" 1594 | 1595 | make-error@^1.1.1: 1596 | version "1.3.6" 1597 | resolved "https://registry.nlark.com/make-error/download/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" 1598 | integrity sha1-LrLjfqm2fEiR9oShOUeZr0hM96I= 1599 | 1600 | merge2@^1.3.0: 1601 | version "1.4.1" 1602 | resolved "https://registry.npm.taobao.org/merge2/download/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" 1603 | integrity sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4= 1604 | 1605 | micromatch@^4.0.4: 1606 | version "4.0.4" 1607 | resolved "https://registry.npm.taobao.org/micromatch/download/micromatch-4.0.4.tgz?cache=0&sync_timestamp=1618054842871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" 1608 | integrity sha1-iW1Rnf6dsl/OlM63pQCRm/iB6/k= 1609 | dependencies: 1610 | braces "^3.0.1" 1611 | picomatch "^2.2.3" 1612 | 1613 | minimatch@^3.0.4: 1614 | version "3.0.4" 1615 | resolved "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 1616 | integrity sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM= 1617 | dependencies: 1618 | brace-expansion "^1.1.7" 1619 | 1620 | minimist@^1.1.1, minimist@^1.2.0: 1621 | version "1.2.5" 1622 | resolved "https://registry.npm.taobao.org/minimist/download/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" 1623 | integrity sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI= 1624 | 1625 | miniprogram-api-typings@^3.4.4: 1626 | version "3.4.4" 1627 | resolved "https://registry.npmmirror.com/miniprogram-api-typings/download/miniprogram-api-typings-3.4.4.tgz#a68ce1f10ff2479b521cd4af276a23041b90f2f6" 1628 | integrity sha1-pozh8Q/yR5tSHNSvJ2ojBBuQ8vY= 1629 | 1630 | modern-normalize@^1.1.0: 1631 | version "1.1.0" 1632 | resolved "https://registry.nlark.com/modern-normalize/download/modern-normalize-1.1.0.tgz#da8e80140d9221426bd4f725c6e11283d34f90b7" 1633 | integrity sha1-2o6AFA2SIUJr1PclxuESg9NPkLc= 1634 | 1635 | ms@2.0.0: 1636 | version "2.0.0" 1637 | resolved "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1638 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 1639 | 1640 | ms@2.1.2: 1641 | version "2.1.2" 1642 | resolved "https://registry.npmmirror.com/ms/download/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 1643 | integrity sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk= 1644 | 1645 | ms@^2.1.1: 1646 | version "2.1.3" 1647 | resolved "https://registry.npmmirror.com/ms/download/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 1648 | integrity sha1-V0yBOM4dK1hh8LRFedut1gxmFbI= 1649 | 1650 | nanoid@^3.1.30: 1651 | version "3.1.30" 1652 | resolved "https://registry.npmmirror.com/nanoid/download/nanoid-3.1.30.tgz?cache=0&sync_timestamp=1634166192601&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fnanoid%2Fdownload%2Fnanoid-3.1.30.tgz#63f93cc548d2a113dc5dfbc63bfa09e2b9b64362" 1653 | integrity sha1-Y/k8xUjSoRPcXfvGO/oJ4rm2Q2I= 1654 | 1655 | natural-compare@^1.4.0: 1656 | version "1.4.0" 1657 | resolved "https://registry.nlark.com/natural-compare/download/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 1658 | integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= 1659 | 1660 | node-emoji@^1.11.0: 1661 | version "1.11.0" 1662 | resolved "https://registry.nlark.com/node-emoji/download/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" 1663 | integrity sha1-aaAVDmlG4vEV6dfqTfeXHiYoMBw= 1664 | dependencies: 1665 | lodash "^4.17.21" 1666 | 1667 | node-releases@^2.0.1: 1668 | version "2.0.1" 1669 | resolved "https://registry.npmmirror.com/node-releases/download/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" 1670 | integrity sha1-PR05XyBPHy8ppUNYuftnh2WtL8U= 1671 | 1672 | normalize-path@^3.0.0, normalize-path@~3.0.0: 1673 | version "3.0.0" 1674 | resolved "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 1675 | integrity sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU= 1676 | 1677 | normalize-range@^0.1.2: 1678 | version "0.1.2" 1679 | resolved "https://registry.npm.taobao.org/normalize-range/download/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" 1680 | integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= 1681 | 1682 | object-hash@^2.2.0: 1683 | version "2.2.0" 1684 | resolved "https://registry.nlark.com/object-hash/download/object-hash-2.2.0.tgz#5ad518581eefc443bd763472b8ff2e9c2c0d54a5" 1685 | integrity sha1-WtUYWB7vxEO9djRyuP8unCwNVKU= 1686 | 1687 | object-inspect@^1.11.0, object-inspect@^1.9.0: 1688 | version "1.11.0" 1689 | resolved "https://registry.nlark.com/object-inspect/download/object-inspect-1.11.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" 1690 | integrity sha1-nc6xRs7dQUig2eUauI00z1CZIrE= 1691 | 1692 | object-keys@^1.0.12, object-keys@^1.1.1: 1693 | version "1.1.1" 1694 | resolved "https://registry.nlark.com/object-keys/download/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" 1695 | integrity sha1-HEfyct8nfzsdrwYWd9nILiMixg4= 1696 | 1697 | object.assign@^4.1.2: 1698 | version "4.1.2" 1699 | resolved "https://registry.nlark.com/object.assign/download/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" 1700 | integrity sha1-DtVKNC7Os3s4/3brgxoOeIy2OUA= 1701 | dependencies: 1702 | call-bind "^1.0.0" 1703 | define-properties "^1.1.3" 1704 | has-symbols "^1.0.1" 1705 | object-keys "^1.1.1" 1706 | 1707 | object.values@^1.1.5: 1708 | version "1.1.5" 1709 | resolved "https://registry.npmmirror.com/object.values/download/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" 1710 | integrity sha1-lZ9j486e8QhyAzMIITHkpFm3Fqw= 1711 | dependencies: 1712 | call-bind "^1.0.2" 1713 | define-properties "^1.1.3" 1714 | es-abstract "^1.19.1" 1715 | 1716 | once@^1.3.0: 1717 | version "1.4.0" 1718 | resolved "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1719 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 1720 | dependencies: 1721 | wrappy "1" 1722 | 1723 | optionator@^0.9.1: 1724 | version "0.9.1" 1725 | resolved "https://registry.nlark.com/optionator/download/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" 1726 | integrity sha1-TyNqY3Pa4FZqbUPhMmZ09QwpFJk= 1727 | dependencies: 1728 | deep-is "^0.1.3" 1729 | fast-levenshtein "^2.0.6" 1730 | levn "^0.4.1" 1731 | prelude-ls "^1.2.1" 1732 | type-check "^0.4.0" 1733 | word-wrap "^1.2.3" 1734 | 1735 | p-limit@^1.1.0: 1736 | version "1.3.0" 1737 | resolved "https://registry.nlark.com/p-limit/download/p-limit-1.3.0.tgz?cache=0&sync_timestamp=1628812766275&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" 1738 | integrity sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg= 1739 | dependencies: 1740 | p-try "^1.0.0" 1741 | 1742 | p-locate@^2.0.0: 1743 | version "2.0.0" 1744 | resolved "https://registry.nlark.com/p-locate/download/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" 1745 | integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= 1746 | dependencies: 1747 | p-limit "^1.1.0" 1748 | 1749 | p-map@^4.0.0: 1750 | version "4.0.0" 1751 | resolved "https://registry.npmmirror.com/p-map/download/p-map-4.0.0.tgz?cache=0&sync_timestamp=1635931916150&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fp-map%2Fdownload%2Fp-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" 1752 | integrity sha1-uy+Vpe2i7BaOySdOBqdHw+KQTSs= 1753 | dependencies: 1754 | aggregate-error "^3.0.0" 1755 | 1756 | p-try@^1.0.0: 1757 | version "1.0.0" 1758 | resolved "https://registry.npmmirror.com/p-try/download/p-try-1.0.0.tgz?cache=0&sync_timestamp=1633364462890&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fp-try%2Fdownload%2Fp-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" 1759 | integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= 1760 | 1761 | parent-module@^1.0.0: 1762 | version "1.0.1" 1763 | resolved "https://registry.npmmirror.com/parent-module/download/parent-module-1.0.1.tgz?cache=0&sync_timestamp=1633337513286&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fparent-module%2Fdownload%2Fparent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" 1764 | integrity sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI= 1765 | dependencies: 1766 | callsites "^3.0.0" 1767 | 1768 | parse-json@^5.0.0: 1769 | version "5.2.0" 1770 | resolved "https://registry.npmmirror.com/parse-json/download/parse-json-5.2.0.tgz?cache=0&sync_timestamp=1637475717072&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fparse-json%2Fdownload%2Fparse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" 1771 | integrity sha1-x2/Gbe5UIxyWKyK8yKcs8vmXU80= 1772 | dependencies: 1773 | "@babel/code-frame" "^7.0.0" 1774 | error-ex "^1.3.1" 1775 | json-parse-even-better-errors "^2.3.0" 1776 | lines-and-columns "^1.1.6" 1777 | 1778 | path-exists@^3.0.0: 1779 | version "3.0.0" 1780 | resolved "https://registry.nlark.com/path-exists/download/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 1781 | integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= 1782 | 1783 | path-is-absolute@^1.0.0: 1784 | version "1.0.1" 1785 | resolved "https://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1786 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 1787 | 1788 | path-key@^3.1.0: 1789 | version "3.1.1" 1790 | resolved "https://registry.npm.taobao.org/path-key/download/path-key-3.1.1.tgz?cache=0&sync_timestamp=1617971675964&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 1791 | integrity sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U= 1792 | 1793 | path-parse@^1.0.6: 1794 | version "1.0.7" 1795 | resolved "https://registry.nlark.com/path-parse/download/path-parse-1.0.7.tgz?cache=0&sync_timestamp=1622604541821&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpath-parse%2Fdownload%2Fpath-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 1796 | integrity sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU= 1797 | 1798 | path-type@^4.0.0: 1799 | version "4.0.0" 1800 | resolved "https://registry.npm.taobao.org/path-type/download/path-type-4.0.0.tgz?cache=0&sync_timestamp=1611752107592&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" 1801 | integrity sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs= 1802 | 1803 | picocolors@^1.0.0: 1804 | version "1.0.0" 1805 | resolved "https://registry.npmmirror.com/picocolors/download/picocolors-1.0.0.tgz?cache=0&sync_timestamp=1634093442271&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpicocolors%2Fdownload%2Fpicocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 1806 | integrity sha1-y1vcdP8/UYkiNur3nWi8RFZKuBw= 1807 | 1808 | picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: 1809 | version "2.3.0" 1810 | resolved "https://registry.nlark.com/picomatch/download/picomatch-2.3.0.tgz?cache=0&sync_timestamp=1621648246651&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpicomatch%2Fdownload%2Fpicomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" 1811 | integrity sha1-8fBh3o9qS/AiiS4tEoI0+5gwKXI= 1812 | 1813 | pkg-dir@^2.0.0: 1814 | version "2.0.0" 1815 | resolved "https://registry.npmmirror.com/pkg-dir/download/pkg-dir-2.0.0.tgz?cache=0&sync_timestamp=1633498133295&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpkg-dir%2Fdownload%2Fpkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" 1816 | integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= 1817 | dependencies: 1818 | find-up "^2.1.0" 1819 | 1820 | postcss-js@^3.0.3: 1821 | version "3.0.3" 1822 | resolved "https://registry.npm.taobao.org/postcss-js/download/postcss-js-3.0.3.tgz#2f0bd370a2e8599d45439f6970403b5873abda33" 1823 | integrity sha1-LwvTcKLoWZ1FQ59pcEA7WHOr2jM= 1824 | dependencies: 1825 | camelcase-css "^2.0.1" 1826 | postcss "^8.1.6" 1827 | 1828 | postcss-load-config@^3.1.0: 1829 | version "3.1.0" 1830 | resolved "https://registry.npmmirror.com/postcss-load-config/download/postcss-load-config-3.1.0.tgz#d39c47091c4aec37f50272373a6a648ef5e97829" 1831 | integrity sha1-05xHCRxK7Df1AnI3OmpkjvXpeCk= 1832 | dependencies: 1833 | import-cwd "^3.0.0" 1834 | lilconfig "^2.0.3" 1835 | yaml "^1.10.2" 1836 | 1837 | postcss-nested@5.0.6: 1838 | version "5.0.6" 1839 | resolved "https://registry.nlark.com/postcss-nested/download/postcss-nested-5.0.6.tgz?cache=0&sync_timestamp=1627468102377&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-nested%2Fdownload%2Fpostcss-nested-5.0.6.tgz#466343f7fc8d3d46af3e7dba3fcd47d052a945bc" 1840 | integrity sha1-RmND9/yNPUavPn26P81H0FKpRbw= 1841 | dependencies: 1842 | postcss-selector-parser "^6.0.6" 1843 | 1844 | postcss-rem-to-responsive-pixel@^5.0.2: 1845 | version "5.0.2" 1846 | resolved "https://registry.npmmirror.com/postcss-rem-to-responsive-pixel/download/postcss-rem-to-responsive-pixel-5.0.2.tgz#8146110d1a94b6ea47c62606bb9187072ed6099c" 1847 | integrity sha512-+HKRI3Fwd/av9CUdsBjWFVivHvN4TDdWG8Tx1NIAF3bDAAug8k0LnGFMqkAbaHDbE6hknd2ogEh9kH69sN9++Q== 1848 | 1849 | postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.6: 1850 | version "6.0.6" 1851 | resolved "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-6.0.6.tgz?cache=0&sync_timestamp=1620752924836&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea" 1852 | integrity sha1-LFu6gXSsL2mBq2MaQqsO5UrzMuo= 1853 | dependencies: 1854 | cssesc "^3.0.0" 1855 | util-deprecate "^1.0.2" 1856 | 1857 | postcss-value-parser@^3.3.0: 1858 | version "3.3.1" 1859 | resolved "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" 1860 | integrity sha1-n/giVH4okyE88cMO+lGsX9G6goE= 1861 | 1862 | postcss-value-parser@^4.1.0: 1863 | version "4.1.0" 1864 | resolved "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.1.0.tgz?cache=0&sync_timestamp=1588083303810&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" 1865 | integrity sha1-RD9qIM7WSBor2k+oUypuVdeJoss= 1866 | 1867 | postcss@^8.1.6, postcss@^8.2.1: 1868 | version "8.3.11" 1869 | resolved "https://registry.npmmirror.com/postcss/download/postcss-8.3.11.tgz#c3beca7ea811cd5e1c4a3ec6d2e7599ef1f8f858" 1870 | integrity sha1-w77KfqgRzV4cSj7G0udZnvH4+Fg= 1871 | dependencies: 1872 | nanoid "^3.1.30" 1873 | picocolors "^1.0.0" 1874 | source-map-js "^0.6.2" 1875 | 1876 | postcss@^8.4.4: 1877 | version "8.4.4" 1878 | resolved "https://registry.npmmirror.com/postcss/download/postcss-8.4.4.tgz#d53d4ec6a75fd62557a66bb41978bf47ff0c2869" 1879 | integrity sha512-joU6fBsN6EIer28Lj6GDFoC/5yOZzLCfn0zHAn/MYXI7aPt4m4hK5KC5ovEZXy+lnCjmYIbQWngvju2ddyEr8Q== 1880 | dependencies: 1881 | nanoid "^3.1.30" 1882 | picocolors "^1.0.0" 1883 | source-map-js "^1.0.1" 1884 | 1885 | prelude-ls@^1.2.1: 1886 | version "1.2.1" 1887 | resolved "https://registry.nlark.com/prelude-ls/download/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" 1888 | integrity sha1-3rxkidem5rDnYRiIzsiAM30xY5Y= 1889 | 1890 | pretty-hrtime@^1.0.3: 1891 | version "1.0.3" 1892 | resolved "https://registry.npm.taobao.org/pretty-hrtime/download/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" 1893 | integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= 1894 | 1895 | progress@^2.0.0: 1896 | version "2.0.3" 1897 | resolved "https://registry.nlark.com/progress/download/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" 1898 | integrity sha1-foz42PW48jnBvGi+tOt4Vn1XLvg= 1899 | 1900 | punycode@^2.1.0: 1901 | version "2.1.1" 1902 | resolved "https://registry.nlark.com/punycode/download/punycode-2.1.1.tgz?cache=0&sync_timestamp=1622604519710&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpunycode%2Fdownload%2Fpunycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 1903 | integrity sha1-tYsBCsQMIsVldhbI0sLALHv0eew= 1904 | 1905 | purgecss@^4.0.3: 1906 | version "4.0.3" 1907 | resolved "https://registry.npm.taobao.org/purgecss/download/purgecss-4.0.3.tgz#8147b429f9c09db719e05d64908ea8b672913742" 1908 | integrity sha1-gUe0KfnAnbcZ4F1kkI6otnKRN0I= 1909 | dependencies: 1910 | commander "^6.0.0" 1911 | glob "^7.0.0" 1912 | postcss "^8.2.1" 1913 | postcss-selector-parser "^6.0.2" 1914 | 1915 | queue-microtask@^1.2.2: 1916 | version "1.2.3" 1917 | resolved "https://registry.npm.taobao.org/queue-microtask/download/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" 1918 | integrity sha1-SSkii7xyTfrEPg77BYyve2z7YkM= 1919 | 1920 | quick-lru@^5.1.1: 1921 | version "5.1.1" 1922 | resolved "https://registry.npmmirror.com/quick-lru/download/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" 1923 | integrity sha1-NmST5rPkKjpoheLpnRj4D7eoyTI= 1924 | 1925 | readdirp@~3.6.0: 1926 | version "3.6.0" 1927 | resolved "https://registry.npm.taobao.org/readdirp/download/readdirp-3.6.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" 1928 | integrity sha1-dKNwvYVxFuJFspzJc0DNQxoCpsc= 1929 | dependencies: 1930 | picomatch "^2.2.1" 1931 | 1932 | reduce-css-calc@^2.1.8: 1933 | version "2.1.8" 1934 | resolved "https://registry.npm.taobao.org/reduce-css-calc/download/reduce-css-calc-2.1.8.tgz#7ef8761a28d614980dc0c982f772c93f7a99de03" 1935 | integrity sha1-fvh2GijWFJgNwMmC93LJP3qZ3gM= 1936 | dependencies: 1937 | css-unit-converter "^1.1.1" 1938 | postcss-value-parser "^3.3.0" 1939 | 1940 | regexpp@^3.0.0, regexpp@^3.1.0, regexpp@^3.2.0: 1941 | version "3.2.0" 1942 | resolved "https://registry.nlark.com/regexpp/download/regexpp-3.2.0.tgz?cache=0&sync_timestamp=1623669331185&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregexpp%2Fdownload%2Fregexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" 1943 | integrity sha1-BCWido2PI7rXDKS5BGH6LxIT4bI= 1944 | 1945 | require-from-string@^2.0.2: 1946 | version "2.0.2" 1947 | resolved "https://registry.nlark.com/require-from-string/download/require-from-string-2.0.2.tgz?cache=0&sync_timestamp=1622605305570&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frequire-from-string%2Fdownload%2Frequire-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" 1948 | integrity sha1-iaf92TgmEmcxjq/hT5wy5ZjDaQk= 1949 | 1950 | resolve-from@^4.0.0: 1951 | version "4.0.0" 1952 | resolved "https://registry.npm.taobao.org/resolve-from/download/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" 1953 | integrity sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY= 1954 | 1955 | resolve-from@^5.0.0: 1956 | version "5.0.0" 1957 | resolved "https://registry.npm.taobao.org/resolve-from/download/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" 1958 | integrity sha1-w1IlhD3493bfIcV1V7wIfp39/Gk= 1959 | 1960 | resolve@^1.10.1, resolve@^1.20.0: 1961 | version "1.20.0" 1962 | resolved "https://registry.npm.taobao.org/resolve/download/resolve-1.20.0.tgz?cache=0&sync_timestamp=1613055280179&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve%2Fdownload%2Fresolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" 1963 | integrity sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU= 1964 | dependencies: 1965 | is-core-module "^2.2.0" 1966 | path-parse "^1.0.6" 1967 | 1968 | reusify@^1.0.4: 1969 | version "1.0.4" 1970 | resolved "https://registry.npm.taobao.org/reusify/download/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" 1971 | integrity sha1-kNo4Kx4SbvwCFG6QhFqI2xKSXXY= 1972 | 1973 | rgb-regex@^1.0.1: 1974 | version "1.0.1" 1975 | resolved "https://registry.npm.taobao.org/rgb-regex/download/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" 1976 | integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= 1977 | 1978 | rgba-regex@^1.0.0: 1979 | version "1.0.0" 1980 | resolved "https://registry.npm.taobao.org/rgba-regex/download/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" 1981 | integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= 1982 | 1983 | rimraf@^3.0.0, rimraf@^3.0.2: 1984 | version "3.0.2" 1985 | resolved "https://registry.npm.taobao.org/rimraf/download/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" 1986 | integrity sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho= 1987 | dependencies: 1988 | glob "^7.1.3" 1989 | 1990 | run-parallel@^1.1.9: 1991 | version "1.2.0" 1992 | resolved "https://registry.npm.taobao.org/run-parallel/download/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" 1993 | integrity sha1-ZtE2jae9+SHrnZW9GpIp5/IaQ+4= 1994 | dependencies: 1995 | queue-microtask "^1.2.2" 1996 | 1997 | sass@^1.44.0: 1998 | version "1.44.0" 1999 | resolved "https://registry.npmmirror.com/sass/download/sass-1.44.0.tgz#619aa0a2275c097f9af5e6b8fe8a95e3056430fb" 2000 | integrity sha512-0hLREbHFXGQqls/K8X+koeP+ogFRPF4ZqetVB19b7Cst9Er8cOR0rc6RU7MaI4W1JmUShd1BPgPoeqmmgMMYFw== 2001 | dependencies: 2002 | chokidar ">=3.0.0 <4.0.0" 2003 | immutable "^4.0.0" 2004 | 2005 | semver@^6.1.0: 2006 | version "6.3.0" 2007 | resolved "https://registry.nlark.com/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1622604551741&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 2008 | integrity sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0= 2009 | 2010 | semver@^7.2.1, semver@^7.3.5: 2011 | version "7.3.5" 2012 | resolved "https://registry.nlark.com/semver/download/semver-7.3.5.tgz?cache=0&sync_timestamp=1622604551741&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsemver%2Fdownload%2Fsemver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" 2013 | integrity sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc= 2014 | dependencies: 2015 | lru-cache "^6.0.0" 2016 | 2017 | shebang-command@^2.0.0: 2018 | version "2.0.0" 2019 | resolved "https://registry.npm.taobao.org/shebang-command/download/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 2020 | integrity sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo= 2021 | dependencies: 2022 | shebang-regex "^3.0.0" 2023 | 2024 | shebang-regex@^3.0.0: 2025 | version "3.0.0" 2026 | resolved "https://registry.nlark.com/shebang-regex/download/shebang-regex-3.0.0.tgz?cache=0&sync_timestamp=1628896405033&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fshebang-regex%2Fdownload%2Fshebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 2027 | integrity sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI= 2028 | 2029 | side-channel@^1.0.4: 2030 | version "1.0.4" 2031 | resolved "https://registry.nlark.com/side-channel/download/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" 2032 | integrity sha1-785cj9wQTudRslxY1CkAEfpeos8= 2033 | dependencies: 2034 | call-bind "^1.0.0" 2035 | get-intrinsic "^1.0.2" 2036 | object-inspect "^1.9.0" 2037 | 2038 | simple-swizzle@^0.2.2: 2039 | version "0.2.2" 2040 | resolved "https://registry.npmmirror.com/simple-swizzle/download/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" 2041 | integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= 2042 | dependencies: 2043 | is-arrayish "^0.3.1" 2044 | 2045 | slash@^3.0.0: 2046 | version "3.0.0" 2047 | resolved "https://registry.nlark.com/slash/download/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" 2048 | integrity sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ= 2049 | 2050 | slice-ansi@^4.0.0: 2051 | version "4.0.0" 2052 | resolved "https://registry.nlark.com/slice-ansi/download/slice-ansi-4.0.0.tgz?cache=0&sync_timestamp=1622604533654&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fslice-ansi%2Fdownload%2Fslice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" 2053 | integrity sha1-UA6N0P1VsFgVCGJVsxla3ypF/ms= 2054 | dependencies: 2055 | ansi-styles "^4.0.0" 2056 | astral-regex "^2.0.0" 2057 | is-fullwidth-code-point "^3.0.0" 2058 | 2059 | source-map-js@^0.6.2: 2060 | version "0.6.2" 2061 | resolved "https://registry.npmmirror.com/source-map-js/download/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" 2062 | integrity sha1-C7XeYxtBz72mz7qL0FqA79/SOF4= 2063 | 2064 | source-map-js@^1.0.1: 2065 | version "1.0.1" 2066 | resolved "https://registry.npmmirror.com/source-map-js/download/source-map-js-1.0.1.tgz#a1741c131e3c77d048252adfa24e23b908670caf" 2067 | integrity sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA== 2068 | 2069 | sprintf-js@~1.0.2: 2070 | version "1.0.3" 2071 | resolved "https://registry.nlark.com/sprintf-js/download/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 2072 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= 2073 | 2074 | string-width@^4.2.3: 2075 | version "4.2.3" 2076 | resolved "https://registry.npmmirror.com/string-width/download/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" 2077 | integrity sha1-JpxxF9J7Ba0uU2gwqOyJXvnG0BA= 2078 | dependencies: 2079 | emoji-regex "^8.0.0" 2080 | is-fullwidth-code-point "^3.0.0" 2081 | strip-ansi "^6.0.1" 2082 | 2083 | string.prototype.trimend@^1.0.4: 2084 | version "1.0.4" 2085 | resolved "https://registry.nlark.com/string.prototype.trimend/download/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" 2086 | integrity sha1-51rpDClCxjUEaGwYsoe0oLGkX4A= 2087 | dependencies: 2088 | call-bind "^1.0.2" 2089 | define-properties "^1.1.3" 2090 | 2091 | string.prototype.trimstart@^1.0.4: 2092 | version "1.0.4" 2093 | resolved "https://registry.nlark.com/string.prototype.trimstart/download/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" 2094 | integrity sha1-s2OZr0qymZtMnGSL16P7K7Jv7u0= 2095 | dependencies: 2096 | call-bind "^1.0.2" 2097 | define-properties "^1.1.3" 2098 | 2099 | strip-ansi@^6.0.0, strip-ansi@^6.0.1: 2100 | version "6.0.1" 2101 | resolved "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" 2102 | integrity sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk= 2103 | dependencies: 2104 | ansi-regex "^5.0.1" 2105 | 2106 | strip-bom@^3.0.0: 2107 | version "3.0.0" 2108 | resolved "https://registry.nlark.com/strip-bom/download/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 2109 | integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= 2110 | 2111 | strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: 2112 | version "3.1.1" 2113 | resolved "https://registry.nlark.com/strip-json-comments/download/strip-json-comments-3.1.1.tgz?cache=0&sync_timestamp=1629397119136&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-json-comments%2Fdownload%2Fstrip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" 2114 | integrity sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY= 2115 | 2116 | supports-color@^5.3.0: 2117 | version "5.5.0" 2118 | resolved "https://registry.npmmirror.com/supports-color/download/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 2119 | integrity sha1-4uaaRKyHcveKHsCzW2id9lMO/I8= 2120 | dependencies: 2121 | has-flag "^3.0.0" 2122 | 2123 | supports-color@^7.1.0: 2124 | version "7.2.0" 2125 | resolved "https://registry.npmmirror.com/supports-color/download/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 2126 | integrity sha1-G33NyzK4E4gBs+R4umpRyqiWSNo= 2127 | dependencies: 2128 | has-flag "^4.0.0" 2129 | 2130 | table@^6.0.9: 2131 | version "6.7.3" 2132 | resolved "https://registry.npmmirror.com/table/download/table-6.7.3.tgz?cache=0&sync_timestamp=1636037112686&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftable%2Fdownload%2Ftable-6.7.3.tgz#255388439715a738391bd2ee4cbca89a4d05a9b7" 2133 | integrity sha1-JVOIQ5cVpzg5G9LuTLyomk0Fqbc= 2134 | dependencies: 2135 | ajv "^8.0.1" 2136 | lodash.truncate "^4.4.2" 2137 | slice-ansi "^4.0.0" 2138 | string-width "^4.2.3" 2139 | strip-ansi "^6.0.1" 2140 | 2141 | tailwindcss-miniprogram-preset@^2.1.1: 2142 | version "2.1.1" 2143 | resolved "https://registry.npmmirror.com/tailwindcss-miniprogram-preset/download/tailwindcss-miniprogram-preset-2.1.1.tgz#0bad5f2668a9f9ffcf10b8643f0d7a9e8161a4bd" 2144 | integrity sha512-VxON6UFM5ixNa0BISQLsMCBFFkrf2Vu9/K9suuejufz+eEpCoRy1aFHLUlysCdgvCmg2qQkWPhUCt13nbSfMLQ== 2145 | dependencies: 2146 | "@types/tailwindcss" "^2.2.4" 2147 | 2148 | tailwindcss@^2.2.19: 2149 | version "2.2.19" 2150 | resolved "https://registry.npmmirror.com/tailwindcss/download/tailwindcss-2.2.19.tgz#540e464832cd462bb9649c1484b0a38315c2653c" 2151 | integrity sha1-VA5GSDLNRiu5ZJwUhLCjgxXCZTw= 2152 | dependencies: 2153 | arg "^5.0.1" 2154 | bytes "^3.0.0" 2155 | chalk "^4.1.2" 2156 | chokidar "^3.5.2" 2157 | color "^4.0.1" 2158 | cosmiconfig "^7.0.1" 2159 | detective "^5.2.0" 2160 | didyoumean "^1.2.2" 2161 | dlv "^1.1.3" 2162 | fast-glob "^3.2.7" 2163 | fs-extra "^10.0.0" 2164 | glob-parent "^6.0.1" 2165 | html-tags "^3.1.0" 2166 | is-color-stop "^1.1.0" 2167 | is-glob "^4.0.1" 2168 | lodash "^4.17.21" 2169 | lodash.topath "^4.5.2" 2170 | modern-normalize "^1.1.0" 2171 | node-emoji "^1.11.0" 2172 | normalize-path "^3.0.0" 2173 | object-hash "^2.2.0" 2174 | postcss-js "^3.0.3" 2175 | postcss-load-config "^3.1.0" 2176 | postcss-nested "5.0.6" 2177 | postcss-selector-parser "^6.0.6" 2178 | postcss-value-parser "^4.1.0" 2179 | pretty-hrtime "^1.0.3" 2180 | purgecss "^4.0.3" 2181 | quick-lru "^5.1.1" 2182 | reduce-css-calc "^2.1.8" 2183 | resolve "^1.20.0" 2184 | tmp "^0.2.1" 2185 | 2186 | text-table@^0.2.0: 2187 | version "0.2.0" 2188 | resolved "https://registry.nlark.com/text-table/download/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 2189 | integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= 2190 | 2191 | tmp@^0.2.1: 2192 | version "0.2.1" 2193 | resolved "https://registry.nlark.com/tmp/download/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" 2194 | integrity sha1-hFf8MDfc9HGcJRNnoa9lAO4czxQ= 2195 | dependencies: 2196 | rimraf "^3.0.0" 2197 | 2198 | to-regex-range@^5.0.1: 2199 | version "5.0.1" 2200 | resolved "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 2201 | integrity sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ= 2202 | dependencies: 2203 | is-number "^7.0.0" 2204 | 2205 | ts-node@^10.4.0: 2206 | version "10.4.0" 2207 | resolved "https://registry.npmmirror.com/ts-node/download/ts-node-10.4.0.tgz#680f88945885f4e6cf450e7f0d6223dd404895f7" 2208 | integrity sha1-aA+IlFiF9ObPRQ5/DWIj3UBIlfc= 2209 | dependencies: 2210 | "@cspotcode/source-map-support" "0.7.0" 2211 | "@tsconfig/node10" "^1.0.7" 2212 | "@tsconfig/node12" "^1.0.7" 2213 | "@tsconfig/node14" "^1.0.0" 2214 | "@tsconfig/node16" "^1.0.2" 2215 | acorn "^8.4.1" 2216 | acorn-walk "^8.1.1" 2217 | arg "^4.1.0" 2218 | create-require "^1.1.0" 2219 | diff "^4.0.1" 2220 | make-error "^1.1.1" 2221 | yn "3.1.1" 2222 | 2223 | tsconfig-paths@^3.11.0: 2224 | version "3.12.0" 2225 | resolved "https://registry.npmmirror.com/tsconfig-paths/download/tsconfig-paths-3.12.0.tgz#19769aca6ee8f6a1a341e38c8fa45dd9fb18899b" 2226 | integrity sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg== 2227 | dependencies: 2228 | "@types/json5" "^0.0.29" 2229 | json5 "^1.0.1" 2230 | minimist "^1.2.0" 2231 | strip-bom "^3.0.0" 2232 | 2233 | tslib@^1.8.1: 2234 | version "1.14.1" 2235 | resolved "https://registry.nlark.com/tslib/download/tslib-1.14.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" 2236 | integrity sha1-zy04vcNKE0vK8QkcQfZhni9nLQA= 2237 | 2238 | tsutils@^3.21.0: 2239 | version "3.21.0" 2240 | resolved "https://registry.nlark.com/tsutils/download/tsutils-3.21.0.tgz?cache=0&sync_timestamp=1622604538827&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftsutils%2Fdownload%2Ftsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" 2241 | integrity sha1-tIcX05TOpsHglpg+7Vjp1hcVtiM= 2242 | dependencies: 2243 | tslib "^1.8.1" 2244 | 2245 | type-check@^0.4.0, type-check@~0.4.0: 2246 | version "0.4.0" 2247 | resolved "https://registry.nlark.com/type-check/download/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" 2248 | integrity sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE= 2249 | dependencies: 2250 | prelude-ls "^1.2.1" 2251 | 2252 | type-fest@^0.20.2: 2253 | version "0.20.2" 2254 | resolved "https://registry.npmmirror.com/type-fest/download/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" 2255 | integrity sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ= 2256 | 2257 | typescript@^4.5.2: 2258 | version "4.5.2" 2259 | resolved "https://registry.npmmirror.com/typescript/download/typescript-4.5.2.tgz#8ac1fba9f52256fdb06fb89e4122fa6a346c2998" 2260 | integrity sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw== 2261 | 2262 | unbox-primitive@^1.0.1: 2263 | version "1.0.1" 2264 | resolved "https://registry.nlark.com/unbox-primitive/download/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" 2265 | integrity sha1-CF4hViXsMWJXTciFmr7nilmxRHE= 2266 | dependencies: 2267 | function-bind "^1.1.1" 2268 | has-bigints "^1.0.1" 2269 | has-symbols "^1.0.2" 2270 | which-boxed-primitive "^1.0.2" 2271 | 2272 | universalify@^2.0.0: 2273 | version "2.0.0" 2274 | resolved "https://registry.npm.taobao.org/universalify/download/universalify-2.0.0.tgz?cache=0&sync_timestamp=1603180080276&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" 2275 | integrity sha1-daSYTv7cSwiXXFrrc/Uw0C3yVxc= 2276 | 2277 | uri-js@^4.2.2: 2278 | version "4.4.1" 2279 | resolved "https://registry.nlark.com/uri-js/download/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" 2280 | integrity sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34= 2281 | dependencies: 2282 | punycode "^2.1.0" 2283 | 2284 | util-deprecate@^1.0.2: 2285 | version "1.0.2" 2286 | resolved "https://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 2287 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= 2288 | 2289 | v8-compile-cache@^2.0.3: 2290 | version "2.3.0" 2291 | resolved "https://registry.nlark.com/v8-compile-cache/download/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" 2292 | integrity sha1-LeGWGMZtwkfc+2+ZM4A12CRaLO4= 2293 | 2294 | which-boxed-primitive@^1.0.2: 2295 | version "1.0.2" 2296 | resolved "https://registry.nlark.com/which-boxed-primitive/download/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" 2297 | integrity sha1-E3V7yJsgmwSf5dhkMOIc9AqJqOY= 2298 | dependencies: 2299 | is-bigint "^1.0.1" 2300 | is-boolean-object "^1.1.0" 2301 | is-number-object "^1.0.4" 2302 | is-string "^1.0.5" 2303 | is-symbol "^1.0.3" 2304 | 2305 | which@^2.0.1: 2306 | version "2.0.2" 2307 | resolved "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 2308 | integrity sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE= 2309 | dependencies: 2310 | isexe "^2.0.0" 2311 | 2312 | word-wrap@^1.2.3: 2313 | version "1.2.3" 2314 | resolved "https://registry.nlark.com/word-wrap/download/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" 2315 | integrity sha1-YQY29rH3A4kb00dxzLF/uTtHB5w= 2316 | 2317 | wrappy@1: 2318 | version "1.0.2" 2319 | resolved "https://registry.nlark.com/wrappy/download/wrappy-1.0.2.tgz?cache=0&sync_timestamp=1619133505879&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrappy%2Fdownload%2Fwrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 2320 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 2321 | 2322 | xtend@^4.0.2: 2323 | version "4.0.2" 2324 | resolved "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" 2325 | integrity sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q= 2326 | 2327 | yallist@^4.0.0: 2328 | version "4.0.0" 2329 | resolved "https://registry.nlark.com/yallist/download/yallist-4.0.0.tgz?cache=0&sync_timestamp=1622604530774&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fyallist%2Fdownload%2Fyallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 2330 | integrity sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI= 2331 | 2332 | yaml@^1.10.0, yaml@^1.10.2: 2333 | version "1.10.2" 2334 | resolved "https://registry.npmmirror.com/yaml/download/yaml-1.10.2.tgz?cache=0&sync_timestamp=1636797257089&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fyaml%2Fdownload%2Fyaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" 2335 | integrity sha1-IwHF/78StGfejaIzOkWeKeeSDks= 2336 | 2337 | yn@3.1.1: 2338 | version "3.1.1" 2339 | resolved "https://registry.nlark.com/yn/download/yn-3.1.1.tgz?cache=0&sync_timestamp=1628974846240&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fyn%2Fdownload%2Fyn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" 2340 | integrity sha1-HodAGgnXZ8HV6rJqbkwYUYLS61A= 2341 | -------------------------------------------------------------------------------- /examples/uni-app/README.md: -------------------------------------------------------------------------------- 1 | ## Demo 地址: 2 | 3 | [uni-app-vue3-tailwind-vscode-template](https://github.com/sonofmagic/uni-app-vue3-tailwind-vscode-template) -------------------------------------------------------------------------------- /jest.config.ts: -------------------------------------------------------------------------------- 1 | import type { InitialOptionsTsJest } from 'ts-jest/dist/types' 2 | 3 | const config: InitialOptionsTsJest = { 4 | preset: 'ts-jest', 5 | testEnvironment: 'node', 6 | clearMocks: true, 7 | collectCoverage: true, 8 | coverageDirectory: 'coverage', 9 | coverageProvider: 'v8', 10 | moduleNameMapper: { 11 | '^@/(.*)$': '/src/$1' 12 | }, 13 | setupFilesAfterEnv: ['./jest.setup.ts'] 14 | } 15 | 16 | export default config 17 | -------------------------------------------------------------------------------- /jest.setup.ts: -------------------------------------------------------------------------------- 1 | jest.setTimeout(60000) 2 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tailwindcss-miniprogram-preset", 3 | "version": "2.1.2", 4 | "description": "tailwindcss-miniprogram-preset 助力微信小程序开发者!", 5 | "main": "dist/index.js", 6 | "module": "dist/index.esm.js", 7 | "types": "dist/types/index.d.ts", 8 | "files": [ 9 | "dist" 10 | ], 11 | "scripts": { 12 | "build": "rollup -c", 13 | "gen": "node --require ts-node/register scripts/gen-readme.ts", 14 | "test": "jest" 15 | }, 16 | "repository": { 17 | "type": "git", 18 | "url": "git+https://github.com/sonofmagic/tailwindcss-miniprogram-preset.git" 19 | }, 20 | "keywords": [ 21 | "tailwindcss", 22 | "miniprogram", 23 | "preset", 24 | "tailwindcss-preset", 25 | "wechat", 26 | "uniapp", 27 | "uni-app", 28 | "HBuilderX", 29 | "微信", 30 | "支付宝", 31 | "小程序", 32 | "wxss" 33 | ], 34 | "author": "ice breaker <1324318532@qq.com>", 35 | "license": "MIT", 36 | "bugs": { 37 | "url": "https://github.com/sonofmagic/tailwindcss-miniprogram-preset/issues" 38 | }, 39 | "publishConfig": { 40 | "access": "public", 41 | "registry": "https://registry.npmjs.org" 42 | }, 43 | "homepage": "https://github.com/sonofmagic/tailwindcss-miniprogram-preset#readme", 44 | "devDependencies": { 45 | "@rollup/plugin-alias": "^3.1.9", 46 | "@rollup/plugin-commonjs": "^21.0.2", 47 | "@rollup/plugin-json": "^4.1.0", 48 | "@rollup/plugin-node-resolve": "^13.1.3", 49 | "@rollup/plugin-typescript": "^8.3.1", 50 | "@tsconfig/recommended": "^1.0.1", 51 | "@types/jest": "^27.4.1", 52 | "@types/node": "^17.0.21", 53 | "@typescript-eslint/eslint-plugin": "^5.14.0", 54 | "@typescript-eslint/parser": "^5.14.0", 55 | "eslint": "^8.10.0", 56 | "eslint-config-standard": "^16.0.3", 57 | "eslint-plugin-import": "^2.25.4", 58 | "eslint-plugin-node": "^11.1.0", 59 | "eslint-plugin-promise": "^6.0.0", 60 | "jest": "^27.5.1", 61 | "postcss": "^8.4.8", 62 | "postcss-rem-to-responsive-pixel": "^5.1.1", 63 | "rollup": "^2.70.0", 64 | "tailwindcss": "^2.2.19", 65 | "ts-jest": "^27.1.3", 66 | "ts-node": "^10.7.0", 67 | "tslib": "^2.3.1", 68 | "typescript": "^4.6.2" 69 | }, 70 | "dependencies": { 71 | "@types/tailwindcss": "^2.2.4" 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /rollup.config.js: -------------------------------------------------------------------------------- 1 | import typescript from '@rollup/plugin-typescript' 2 | import { nodeResolve } from '@rollup/plugin-node-resolve' 3 | import commonjs from '@rollup/plugin-commonjs' 4 | import pkg from './package.json' 5 | 6 | /** @type {import('rollup').RollupOptions} */ 7 | const config = { 8 | input: 'src/index.ts', 9 | output: [ 10 | { 11 | file: pkg.main, 12 | format: 'cjs', 13 | exports: 'auto' 14 | }, 15 | { format: 'esm', file: pkg.module } 16 | ], 17 | 18 | plugins: [ 19 | nodeResolve({ 20 | preferBuiltins: true 21 | }), 22 | commonjs(), 23 | typescript({ tsconfig: './tsconfig.build.json' }) 24 | ] 25 | } 26 | 27 | export default config 28 | -------------------------------------------------------------------------------- /scripts/allCorePlugins.ts: -------------------------------------------------------------------------------- 1 | import type { TailwindCorePlugin } from 'tailwindcss/tailwind-config' 2 | 3 | const AllCorePlugin: TailwindCorePlugin[] = [ 4 | 'preflight', 5 | 'container', 6 | 'space', 7 | 'divideWidth', 8 | 'divideColor', 9 | 'divideStyle', 10 | 'divideOpacity', 11 | 'accessibility', 12 | 'appearance', 13 | 'backgroundAttachment', 14 | 'backgroundClip', 15 | 'backgroundColor', 16 | 'backgroundImage', 17 | 'gradientColorStops', 18 | 'backgroundOpacity', 19 | 'backgroundPosition', 20 | 'backgroundRepeat', 21 | 'backgroundSize', 22 | 'borderCollapse', 23 | 'borderColor', 24 | 'borderOpacity', 25 | 'borderRadius', 26 | 'borderStyle', 27 | 'borderWidth', 28 | 'boxSizing', 29 | 'cursor', 30 | 'display', 31 | 'flexDirection', 32 | 'flexWrap', 33 | 'placeItems', 34 | 'placeContent', 35 | 'placeSelf', 36 | 'alignItems', 37 | 'alignContent', 38 | 'alignSelf', 39 | 'justifyItems', 40 | 'justifyContent', 41 | 'justifySelf', 42 | 'flex', 43 | 'flexGrow', 44 | 'flexShrink', 45 | 'order', 46 | 'float', 47 | 'clear', 48 | 'fontFamily', 49 | 'fontWeight', 50 | 'height', 51 | 'fontSize', 52 | 'lineHeight', 53 | 'listStylePosition', 54 | 'listStyleType', 55 | 'margin', 56 | 'maxHeight', 57 | 'maxWidth', 58 | 'minHeight', 59 | 'minWidth', 60 | 'objectFit', 61 | 'objectPosition', 62 | 'opacity', 63 | 'outline', 64 | 'overflow', 65 | 'overscrollBehavior', 66 | 'padding', 67 | 'placeholderColor', 68 | 'placeholderOpacity', 69 | 'pointerEvents', 70 | 'position', 71 | 'inset', 72 | 'resize', 73 | 'boxShadow', 74 | 'ringWidth', 75 | 'ringOffsetColor', 76 | 'ringOffsetWidth', 77 | 'ringColor', 78 | 'ringOpacity', 79 | 'fill', 80 | 'stroke', 81 | 'strokeWidth', 82 | 'tableLayout', 83 | 'textAlign', 84 | 'textColor', 85 | 'textOpacity', 86 | 'textOverflow', 87 | 'fontStyle', 88 | 'textTransform', 89 | 'textDecoration', 90 | 'fontSmoothing', 91 | 'fontVariantNumeric', 92 | 'letterSpacing', 93 | 'userSelect', 94 | 'verticalAlign', 95 | 'visibility', 96 | 'whitespace', 97 | 'wordBreak', 98 | 'width', 99 | 'zIndex', 100 | 'gap', 101 | 'gridAutoFlow', 102 | 'gridTemplateColumns', 103 | 'gridAutoColumns', 104 | 'gridColumn', 105 | 'gridColumnStart', 106 | 'gridColumnEnd', 107 | 'gridTemplateRows', 108 | 'gridAutoRows', 109 | 'gridRow', 110 | 'gridRowStart', 111 | 'gridRowEnd', 112 | 'transform', 113 | 'transformOrigin', 114 | 'scale', 115 | 'rotate', 116 | 'translate', 117 | 'skew', 118 | 'transitionProperty', 119 | 'transitionTimingFunction', 120 | 'transitionDuration', 121 | 'transitionDelay', 122 | 'animation' 123 | ] 124 | 125 | export default AllCorePlugin 126 | -------------------------------------------------------------------------------- /scripts/gen-readme.ts: -------------------------------------------------------------------------------- 1 | import * as fs from 'fs' 2 | import path from 'path' 3 | import allCorePlugins from './allCorePlugins' 4 | import selectedCorePlugins from '../src/corePlugins' 5 | 6 | const resolve = (p: string) => { 7 | return path.resolve(__dirname, p) 8 | } 9 | const mdTemplate = fs.readFileSync(resolve('./template.md'), { 10 | encoding: 'utf-8' 11 | }) 12 | const pluginsTableHeader = '|插件|是否启用|\n|---|---|\n' 13 | 14 | const createSpan = (enable: boolean) => { 15 | return `${enable ? '是' : '否'}` 18 | } 19 | const pluginsTable = allCorePlugins.reduce((acc, cur) => { 20 | const enableFlag = selectedCorePlugins.includes(cur) 21 | acc += '|**' + cur + '**|' + createSpan(enableFlag) + '|\n' 22 | return acc 23 | }, pluginsTableHeader) 24 | 25 | fs.writeFileSync( 26 | resolve('../CorePlugins.md'), 27 | mdTemplate.replace('{{id:corePlugins}}', pluginsTable) 28 | ) 29 | // ; (async () => { 30 | 31 | // })() 32 | -------------------------------------------------------------------------------- /scripts/raw.js: -------------------------------------------------------------------------------- 1 | const { createPreset, defaultPreset } = require('../dist/index') 2 | 3 | // const { } = require('../dist/index') 4 | -------------------------------------------------------------------------------- /scripts/template.md: -------------------------------------------------------------------------------- 1 | # tailwindcss corePlugins 启用状况 2 | 3 | {{id:corePlugins}} 4 | -------------------------------------------------------------------------------- /src/config.ts: -------------------------------------------------------------------------------- 1 | import plugin from 'tailwindcss/plugin' 2 | import corePlugins from './corePlugins' 3 | import { escape } from './util' 4 | import { createExpandThemeConfig } from './defaultConfig' 5 | import type { TailwindConfig } from 'tailwindcss/tailwind-config' 6 | import type { IPresetOption } from './types' 7 | const emptyVariants = corePlugins.reduce>((acc, cur) => { 8 | acc[cur] = [] 9 | return acc 10 | }, {}) 11 | 12 | export function createPreset (option?: IPresetOption): TailwindConfig { 13 | const expandThemeConfig = createExpandThemeConfig(option) 14 | 15 | return { 16 | // 由于微信小程序会把 w-[750rpx] 中的中括号强制去除,所以不推荐开启此模式 17 | // mode: 'jit', 18 | purge: { 19 | // 如果 development 下,wxss过大,可以一直开启 enabled 20 | // 默认在 NODE_ENV=production 下开启 21 | // enabled: process.env.NODE_ENV === 'production', 22 | content: ['./public/index.html', './src/**/*.{vue,js,ts,jsx,tsx,wxml}'] 23 | }, 24 | darkMode: false, // 'class', // or 'media' or 'class' 25 | important: true, 26 | corePlugins, 27 | theme: { 28 | screens: {}, // false, 29 | ...expandThemeConfig, 30 | extend: {} 31 | }, 32 | variants: { 33 | ...emptyVariants, 34 | extend: {} 35 | }, 36 | plugins: [ 37 | plugin(function ({ addUtilities, e, config }) { 38 | // delve(object, keypath, [default]) 类似于get,找不到 'theme.height' 会从 defaultConfig里面找 39 | function escapeUtilities ( 40 | path: string, 41 | prefix: string, 42 | attrKey: string | ((value: string) => any) 43 | ) { 44 | const utilities = Object.entries(config(path)).reduce< 45 | Record[] 46 | >((acc, [key, value]) => { 47 | if (path === 'theme.margin' && key[0] === '-') { 48 | // do continue 49 | // ignore -m-x 50 | return acc 51 | } 52 | const str = escape(`${prefix}${key}`) 53 | if (typeof attrKey === 'function') { 54 | const fn = attrKey 55 | acc.push({ 56 | [`.${e(str)}`]: fn(value as string) 57 | }) 58 | } else { 59 | acc.push({ 60 | [`.${e(str)}`]: { 61 | [attrKey]: `${value}` 62 | } 63 | }) 64 | } 65 | return acc 66 | }, []) 67 | 68 | addUtilities(utilities) 69 | } 70 | escapeUtilities('theme.height', 'h-', 'height') 71 | escapeUtilities('theme.margin', 'm-', 'margin') 72 | escapeUtilities('theme.margin', 'my-', (value: string) => { 73 | return { 74 | 'margin-top': `${value}`, 75 | 'margin-bottom': `${value}` 76 | } 77 | }) 78 | escapeUtilities('theme.margin', 'mx-', (value: string) => { 79 | return { 80 | 'margin-left': `${value}`, 81 | 'margin-right': `${value}` 82 | } 83 | }) 84 | escapeUtilities('theme.margin', 'mt-', 'margin-top') 85 | escapeUtilities('theme.margin', 'mr-', 'margin-right') 86 | escapeUtilities('theme.margin', 'mb-', 'margin-bottom') 87 | escapeUtilities('theme.margin', 'ml-', 'margin-left') 88 | escapeUtilities('theme.maxHeight', 'max-h-', 'max-height') 89 | escapeUtilities('theme.padding', 'p-', 'padding') 90 | 91 | escapeUtilities('theme.padding', 'py-', (value: string) => { 92 | return { 93 | 'padding-top': `${value}`, 94 | 'padding-bottom': `${value}` 95 | } 96 | }) 97 | escapeUtilities('theme.padding', 'px-', (value: string) => { 98 | return { 99 | 'padding-left': `${value}`, 100 | 'padding-right': `${value}` 101 | } 102 | }) 103 | escapeUtilities('theme.padding', 'pt-', 'padding-top') 104 | escapeUtilities('theme.padding', 'pr-', 'padding-right') 105 | escapeUtilities('theme.padding', 'pb-', 'padding-bottom') 106 | escapeUtilities('theme.padding', 'pl-', 'padding-left') 107 | 108 | escapeUtilities('theme.width', 'w-', 'width') 109 | }) 110 | ] 111 | } 112 | } 113 | 114 | // const config: TailwindConfig & { createPreset?: typeof createPreset } = 115 | 116 | // config.createPreset = createPreset 117 | 118 | export default createPreset() 119 | -------------------------------------------------------------------------------- /src/constant.ts: -------------------------------------------------------------------------------- 1 | import type { IPresetOption } from './types' 2 | 3 | export const defaultOptions: IPresetOption = { 4 | rootValue: 32, 5 | unitPrecision: 5, 6 | minRemValue: 0, 7 | rem2rpx: true 8 | } 9 | -------------------------------------------------------------------------------- /src/corePlugins.ts: -------------------------------------------------------------------------------- 1 | import type { TailwindCorePlugin } from 'tailwindcss/tailwind-config' 2 | 3 | const corePlugins: TailwindCorePlugin[] = [ 4 | // #endregion 基础样式 5 | // 'preflight', 6 | // #endregion 7 | // #region 布局/容器 8 | // 'container', 9 | // #endregion 10 | 11 | // #region 不支持 :not 选择器 12 | // 参考 https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxss.html 13 | // 'space', 14 | // 'divideWidth', 15 | // 'divideColor', 16 | // 'divideStyle', 17 | // 'divideOpacity', 18 | // #endregion 19 | 20 | // #region 可访问性 :屏幕阅读器 21 | // 'accessibility', 22 | // #endregion 23 | 'appearance', 24 | 'backgroundAttachment', 25 | 'backgroundClip', 26 | 'backgroundColor', 27 | 'backgroundImage', 28 | 'gradientColorStops', 29 | 'backgroundOpacity', 30 | 'backgroundPosition', 31 | 'backgroundRepeat', 32 | 'backgroundSize', 33 | 'borderCollapse', 34 | 'borderColor', 35 | 'borderOpacity', 36 | 'borderRadius', 37 | 'borderStyle', 38 | 'borderWidth', 39 | 'boxSizing', 40 | 'cursor', 41 | 'display', 42 | 'flexDirection', 43 | 'flexWrap', 44 | // #region 盒对齐/Grid相关 45 | // 'placeItems', 46 | // 'placeContent', 47 | // 'placeSelf', 48 | // #endregion 49 | 'alignItems', 50 | 'alignContent', 51 | 'alignSelf', 52 | 'justifyItems', 53 | 'justifyContent', 54 | 'justifySelf', 55 | 'flex', 56 | 'flexGrow', 57 | 'flexShrink', 58 | 'order', 59 | 'float', 60 | 'clear', 61 | // #region 小程序字体需要js额外加载,这里先不用 fontFamily 62 | // 'fontFamily', 63 | // #endregion 64 | 'fontWeight', 65 | // 'height', 66 | 'fontSize', 67 | 'lineHeight', 68 | 'listStylePosition', 69 | 'listStyleType', 70 | // 'margin', 71 | // 'maxHeight', 72 | 'maxWidth', 73 | 'minHeight', 74 | 'minWidth', 75 | 'objectFit', 76 | 'objectPosition', 77 | 'opacity', 78 | 'outline', 79 | 'overflow', 80 | 'overscrollBehavior', 81 | // 'padding', 82 | 'placeholderColor', 83 | 'placeholderOpacity', 84 | 'pointerEvents', 85 | 'position', 86 | 87 | // 'inset', // 用不着 88 | 'resize', 89 | // 'boxShadow', // *,::before,::after 限制 90 | // 'ringWidth', // *,::before,::after 限制 91 | // 'ringOffsetColor', 92 | // 'ringOffsetWidth', 93 | // 'ringColor', 94 | // 'ringOpacity', 95 | // #region SVG 相关 96 | // 'fill', 97 | // 'stroke', 98 | // 'strokeWidth', 99 | // #endregion 100 | 'tableLayout', 101 | 'textAlign', 102 | 'textColor', 103 | 'textOpacity', 104 | 'textOverflow', 105 | 'fontStyle', 106 | 'textTransform', 107 | 'textDecoration', 108 | 'fontSmoothing', 109 | 'fontVariantNumeric', 110 | 'letterSpacing', 111 | 'userSelect', 112 | 'verticalAlign', 113 | 'visibility', 114 | 'whitespace', 115 | 'wordBreak', 116 | // 'width', 117 | 'zIndex', 118 | // #region 网格布局(小程序自己的兼容问题还没搞定) 119 | // 'gap', 120 | // 'gridAutoFlow', 121 | // 'gridTemplateColumns', 122 | // 'gridAutoColumns', 123 | // 'gridColumn', 124 | // 'gridColumnStart', 125 | // 'gridColumnEnd', 126 | // 'gridTemplateRows', 127 | // 'gridAutoRows', 128 | // 'gridRow', 129 | // 'gridRowStart', 130 | // 'gridRowEnd', 131 | // #endregion 132 | 'transform', 133 | 'transformOrigin', 134 | 'scale', 135 | 'rotate', 136 | // 'translate', 没啥用 137 | 'skew', 138 | 'transitionProperty', 139 | 'transitionTimingFunction', 140 | 'transitionDuration', 141 | 'transitionDelay', 142 | 'animation' 143 | ] 144 | 145 | export default corePlugins 146 | -------------------------------------------------------------------------------- /src/defaultConfig.ts: -------------------------------------------------------------------------------- 1 | // this is a deep clone object 2 | 3 | import deepCloneConfig from 'tailwindcss/defaultConfig' 4 | import { createRem2rpx } from './rem2rpx' 5 | import type { 6 | IPresetOption, 7 | TransformFunc, 8 | ConfigValue, 9 | ConfigArray 10 | } from './types' 11 | import type { 12 | TailwindThemeValue, 13 | TailwindTheme, 14 | TailwindThemeFontSizes 15 | } from 'tailwindcss/tailwind-config' 16 | import { defaultOptions } from './constant' 17 | 18 | export function ObjectValueMap ( 19 | obj: T, 20 | fn: TransformFunc 21 | ) { 22 | return Object.entries(obj).reduce((acc, [key, value], idx) => { 23 | // @ts-ignore 24 | acc[key] = fn(value as string, idx) 25 | return acc 26 | }, {} as T) 27 | } 28 | 29 | export function createExpandThemeConfig (option?: IPresetOption): TailwindTheme { 30 | const opts = Object.assign({}, defaultOptions, option) 31 | if (opts.rem2rpx) { 32 | const rem2rpx = createRem2rpx(opts) 33 | const replacer = (value: ConfigValue) => { 34 | return rem2rpx(value as string) 35 | } 36 | return { 37 | // spacing 38 | spacing: ObjectValueMap(deepCloneConfig.theme.spacing, replacer), 39 | // borderRadius 40 | borderRadius: ObjectValueMap(deepCloneConfig.theme.borderRadius, replacer), 41 | // fontSize // xs: ['0.75rem', { lineHeight: '1rem' }], 42 | fontSize: ObjectValueMap( 43 | deepCloneConfig.theme.fontSize, 44 | (value) => { 45 | const [fontSize, { lineHeight }] = value as ConfigArray 46 | return [rem2rpx(fontSize), { lineHeight: rem2rpx(lineHeight) }] 47 | } 48 | ), 49 | // lineHeight 50 | lineHeight: ObjectValueMap(deepCloneConfig.theme.lineHeight, replacer), 51 | // maxWidth 52 | maxWidth: { 53 | none: 'none', 54 | 0: '0', 55 | full: '100%', 56 | min: 'min-content', 57 | max: 'max-content' 58 | } 59 | } 60 | } else { 61 | return { 62 | // spacing 63 | spacing: deepCloneConfig.theme.spacing, 64 | // borderRadius 65 | borderRadius: deepCloneConfig.theme.borderRadius, 66 | // fontSize // xs: ['0.75rem', { lineHeight: '1rem' }], 67 | fontSize: deepCloneConfig.theme.fontSize, 68 | // lineHeight 69 | lineHeight: deepCloneConfig.theme.lineHeight, 70 | // maxWidth 71 | maxWidth: { 72 | none: 'none', 73 | 0: '0', 74 | full: '100%', 75 | min: 'min-content', 76 | max: 'max-content' 77 | } 78 | } 79 | } 80 | } 81 | 82 | export const expandThemeConfig = createExpandThemeConfig() 83 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | export { default as defaultPreset, createPreset } from './config' 2 | -------------------------------------------------------------------------------- /src/rem2rpx.ts: -------------------------------------------------------------------------------- 1 | import type { IPresetOption } from './types' 2 | import { defaultOptions } from './constant' 3 | export const remUnitRegex = /(\d*\.?\d+) *rem/g 4 | 5 | export function toFixed (number: number, precision: number) { 6 | const multiplier = Math.pow(10, precision + 1) 7 | const wholeNumber = Math.floor(number * multiplier) 8 | return (Math.round(wholeNumber / 10) * 10) / multiplier 9 | } 10 | 11 | export function createRemReplace ( 12 | rootValue: number, 13 | unitPrecision: number, 14 | minRemValue: number 15 | ) { 16 | return (m: string, $1?: string) => { 17 | if (!$1) return m 18 | const rem = parseFloat($1) 19 | if (rem < minRemValue) return m 20 | const fixedVal = toFixed(rem * rootValue, unitPrecision) 21 | return fixedVal === 0 ? '0' : fixedVal + 'rpx' 22 | } 23 | } 24 | 25 | export function createRem2rpx (option: IPresetOption) { 26 | const remReplace = createRemReplace( 27 | option.rootValue, 28 | option.unitPrecision, 29 | option.minRemValue 30 | ) 31 | return (str: string) => { 32 | const execArr = /(\d*\.?\d+) *rem/g.exec(str) 33 | return execArr ? remReplace(str, execArr[1]) : str 34 | } 35 | } 36 | export const rem2rpx = createRem2rpx(defaultOptions) 37 | -------------------------------------------------------------------------------- /src/types.ts: -------------------------------------------------------------------------------- 1 | export interface IPresetOption { 2 | /** 3 | * @default '1rem=32rpx' 4 | */ 5 | rootValue: number 6 | /** 7 | * @default 5(Number) 8 | */ 9 | unitPrecision: number 10 | /** 11 | * 'Set the minimum pixel value to replace' 12 | * @default 2(Number) 13 | */ 14 | minRemValue: number 15 | /** 16 | * default open rem -> rpx setting 17 | * @default true 18 | */ 19 | rem2rpx: boolean 20 | } 21 | 22 | export type ConfigArray = [ 23 | string, 24 | { 25 | lineHeight: string 26 | [key: string]: string 27 | } 28 | ] 29 | export type ConfigValue = string | ConfigArray 30 | 31 | // type Config = Record 32 | 33 | export type TransformFunc = (value: ConfigValue, ...args: any[]) => ConfigValue 34 | -------------------------------------------------------------------------------- /src/util.ts: -------------------------------------------------------------------------------- 1 | 2 | const escapeMap = { 3 | '/': '-div-', 4 | '.': '-dot-' 5 | } 6 | /** 7 | * 转义工作 8 | */ 9 | export function escape (str: string) { 10 | return Object.entries(escapeMap).reduce((acc, [key, value]) => { 11 | return acc.replace(key, value) 12 | }, str) 13 | } 14 | -------------------------------------------------------------------------------- /test/config.test.ts: -------------------------------------------------------------------------------- 1 | import config from '@/config' 2 | 3 | describe('[Config]', () => { 4 | test('default config', () => { 5 | expect(config.important).toBe(true) 6 | }) 7 | }) 8 | -------------------------------------------------------------------------------- /test/rem2rpx.test.ts: -------------------------------------------------------------------------------- 1 | import { 2 | // createRemReplace, 3 | // defaultOptions, 4 | rem2rpx 5 | // createRem2rpx 6 | // remReplace, 7 | // remUnitRegex, 8 | // toFixed 9 | } from '@/rem2rpx' 10 | import { ObjectValueMap } from '@/defaultConfig' 11 | import type { ConfigValue } from '@/types' 12 | 13 | describe('[rem2rpx]', () => { 14 | test('rem2rpx', () => { 15 | expect(rem2rpx('padding-bottom: 1px !important')).toBe( 16 | 'padding-bottom: 1px !important' 17 | ) 18 | expect(rem2rpx('margin-top: 1rem !important')).toBe('32rpx') 19 | expect(rem2rpx('margin-top: 1 rem;')).toBe('32rpx') 20 | }) 21 | 22 | test('create rem2rpx with default option', () => { 23 | const replacer = (value: ConfigValue) => { 24 | return rem2rpx(value as string) 25 | } 26 | 27 | const styleObj = { 28 | none: 'none', 29 | 0: '0', 30 | full: '100%', 31 | min: 'min-content', 32 | max: 'max-content' 33 | } 34 | 35 | expect(ObjectValueMap(styleObj, replacer)).toEqual(styleObj) 36 | }) 37 | }) 38 | -------------------------------------------------------------------------------- /test/util.test.ts: -------------------------------------------------------------------------------- 1 | import { escape } from '@/util' 2 | describe('[util] test', () => { 3 | test('escape test ', () => { 4 | expect(escape('w-1.5')).toBe('w-1-dot-5') 5 | expect(escape('pb-3.5')).toBe('pb-3-dot-5') 6 | expect(escape('w-1/2')).toBe('w-1-div-2') 7 | }) 8 | }) 9 | -------------------------------------------------------------------------------- /tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "rootDir": "src", 5 | "rootDirs": ["src"] 6 | }, 7 | "include": ["src/**/*", "types/**/*"] 8 | } 9 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsconfig/recommended/tsconfig.json", 3 | "compilerOptions": { 4 | "rootDirs": ["src", "scripts"], 5 | "outDir": "dist", 6 | "declaration": true, 7 | "declarationDir": "types", 8 | "declarationMap": false, 9 | "allowSyntheticDefaultImports": true, 10 | "noEmit": true, 11 | "noEmitOnError": false, 12 | "noUnusedLocals": true, 13 | "noUnusedParameters": true, 14 | "pretty": true, 15 | "sourceMap": false, 16 | "importHelpers": false, 17 | "moduleResolution": "Node", 18 | "baseUrl": ".", 19 | "paths": { 20 | "@/*": ["src/*"] 21 | } 22 | }, 23 | "exclude": ["dist", "node_modules", "test/types"], 24 | "include": ["src/**/*", "types/**/*", "test", "scripts"], 25 | "ts-node": { 26 | "compilerOptions": { 27 | "module": "CommonJS" 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /types/tailwindcss.defaultConfig.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'tailwindcss/defaultConfig' { 2 | import type { TailwindConfigDefault } from 'tailwindcss/tailwind-config-default' 3 | const _default: TailwindConfigDefault 4 | export default _default 5 | } 6 | --------------------------------------------------------------------------------