├── .gitignore ├── README.md ├── go.mod ├── go.sum ├── macres └── synk.icns ├── main.go ├── scripts ├── build_for_mac.sh └── build_for_win.sh ├── server ├── config │ └── path.go ├── controllers │ ├── addresses_controller.go │ ├── files_controller.go │ ├── qrcodes_controller.go │ ├── texts_controller.go │ └── uploads_controller.go ├── frontend │ ├── .eslintrc.js │ ├── .gitignore │ ├── index.html │ ├── package.json │ ├── src │ │ ├── components │ │ │ ├── center.jsx │ │ │ ├── dialog.jsx │ │ │ ├── loading.jsx │ │ │ ├── qrcode.jsx │ │ │ └── space.jsx │ │ ├── hooks │ │ │ └── use_query.js │ │ ├── images │ │ │ ├── synk.ico │ │ │ ├── synk.png │ │ │ └── synk.svg │ │ ├── initializers │ │ │ ├── client_id.js │ │ │ └── index.js │ │ ├── main.jsx │ │ ├── pages │ │ │ ├── downloads.jsx │ │ │ ├── home.jsx │ │ │ └── home │ │ │ │ ├── components.jsx │ │ │ │ ├── nav.jsx │ │ │ │ ├── upload_file_form.jsx │ │ │ │ ├── upload_screenshot_form.jsx │ │ │ │ └── upload_text_form.jsx │ │ ├── shared │ │ │ ├── app_context.js │ │ │ ├── global_style.jsx │ │ │ ├── history.js │ │ │ ├── http.js │ │ │ ├── prefetch.js │ │ │ └── ws_client.js │ │ └── vite-env.d.ts │ ├── tsconfig.json │ ├── vite.config.ts │ └── yarn.lock ├── initializers │ └── cors.go ├── server.go └── ws │ ├── client.go │ ├── http_controller.go │ └── hub.go ├── tmp └── .keep ├── version ├── winres ├── synk.png └── winres.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | /uploads 2 | /main 3 | /*.exe 4 | *.log 5 | /go-demo-* 6 | /synk* 7 | node_modules 8 | /build 9 | *.syso -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 最近在学习 Go 语言,语法看得差不多了,想着找点什么项目做做,正好我一直想做一个「局域网PC与手机互传文件,且不想借助微信/QQ等骚扰软件」的软件,于是就用 Go 来做了,最终截图如下: 2 | 3 | ![image.png](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5ec2a8750433465db9460456857996f5~tplv-k3u1fbpfcp-watermark.image?) 4 | 5 | ![image.png](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/d24db9c27f164183b04ee4ffa98617db~tplv-k3u1fbpfcp-watermark.image?) 6 | 7 | ![image.png](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/bbddd6a250004740901527cb3b5d10d7~tplv-k3u1fbpfcp-watermark.image?) 8 | 9 | 功能很简单: 10 | 1. PC 上传文字或文件后创建二维码,提供给手机浏览器扫码下载 11 | 2. 手机在浏览器上传文字或文件后自动用 websocket 通知给 PC 端,弹出下载提示 12 | 13 | 这里主要说一下实现思路。 14 | 15 | # 实现思路 16 | 17 | ## 用 Loca 创建窗口 18 | 19 | 我了解到 Go 的如下库可以实现窗口: 20 | 21 | 1. [lorca](https://github.com/zserge/lorca) - 调用系统现有的 Chrome/Edge 实现简单的窗口,UI 通过 HTML/CSS/JS 实现 22 | 2. [webview](https://github.com/webview/webview) - 比 lorca 功能更强,实现 UI 的思路差不多 23 | 3. [fyne](https://github.com/fyne-io/fyne) - 使用 Canvas 绘制的 UI 框架,性能不错 24 | 4. [qt](https://github.com/therecipe/qt) - 更复杂更强大的 UI 框架 25 | 26 | 我随便挑了个最简单的 Lorca 就开始了。 27 | 28 | ## 用 HTML/CSS/JS 制作 UI 29 | 30 | 我用 React + ReactRouter 来实现页面结构,文件上传和对话框是自己用原生 JS 写的,UI 细节用 CSS3 来做,没有依赖其他 UI 组件库。 31 | 32 | Lorca 的主要功能就是展示我写的 index.html。 33 | 34 | ## 用 [gin](https://github.com/gin-gonic/gin) 实现后台接口 35 | 36 | index.html 中的 JS 用到了五个接口,我使用 gin 来实现: 37 | 38 | ``` 39 | router.GET("/uploads/:path", controllers.UploadsController) 40 | router.GET("/api/v1/addresses", controllers.AddressesController) 41 | router.GET("/api/v1/qrcodes", controllers.QrcodesController) 42 | router.POST("/api/v1/files", controllers.FilesController) 43 | router.POST("/api/v1/texts", controllers.TextsController) 44 | ``` 45 | 46 | 其中的二维码生成我用的是 [go-qrcode](https://github.com/skip2/go-qrcode)。 47 | 48 | ## 用 [gorilla/websocket](https://github.com/gorilla/websocket) 实现手机通知 PC 49 | 50 | 这个库提供了一个聊天室的例子,稍微改一下就能为我所用了。 51 | 52 | ## 整体思路 53 | 54 | 总得来说: 55 | 56 | 1. 用 Lorca 搞出一个窗口 57 | 2. 用 HTML 制作界面,用 JS 调用后台接口 58 | 3. 用 Gin 实现后台接口 59 | 4. 上传的文件都放到 uploads 文件夹中 60 | 61 | 共 400 行 Go 代码,700 行 JS 代码。 62 | 63 | # 如何使用 64 | 65 | 目前我只测试了 Windows 系统,能正常运行。理论上 macOS 和 Linux 也能运行,但我并没有测试。 66 | 67 | 你可以在 [releases 页面](https://github.com/FrankFang/synk/releases) 下载可执行文件,也可以自行编译源代码得到可执行文件。 68 | 69 | ## Windows 用户须知 70 | 71 | Windows 用户需要在防火墙的入站规则中运行 27149 端口的连接,否则此软件无法被手机访问。 72 | 73 | ## 自行编译 74 | 75 | ``` 76 | git clone git@github.com:FrankFang/synk.git 77 | cd synk 78 | cd server/frontend; yarn; yarn build; cd - 79 | ./scripts/build_for_mac.sh 80 | ./scripts/build_for_win.sh 81 | ``` 82 | 83 | # 我的收获 84 | 85 | 1. 知道如何用 Go 写一个发布订阅(使用 websocket 的时候看到别人的源码了) 86 | 2. 知道 `ch2 <- ch1` 与 `ch2 <- (<-ch1)` 的区别了,前者一般是写错了 87 | 3. 知道了 Go 应用代码引入本地包的方法 88 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | module synk 2 | 3 | go 1.16 4 | 5 | require ( 6 | github.com/gin-contrib/cors v1.3.1 7 | github.com/gin-gonic/gin v1.7.4 8 | github.com/go-playground/validator/v10 v10.9.0 // indirect 9 | github.com/golang/protobuf v1.5.2 // indirect 10 | github.com/google/uuid v1.3.0 11 | github.com/gorilla/websocket v1.4.2 12 | github.com/json-iterator/go v1.1.12 // indirect 13 | github.com/mattn/go-isatty v0.0.14 // indirect 14 | github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect 15 | github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e 16 | github.com/ugorji/go v1.2.6 // indirect 17 | github.com/zserge/lorca v0.1.10 18 | golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 // indirect 19 | golang.org/x/sys v0.0.0-20210921065528-437939a70204 // indirect 20 | golang.org/x/text v0.3.7 // indirect 21 | golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect 22 | google.golang.org/protobuf v1.27.1 // indirect 23 | gopkg.in/yaml.v2 v2.4.0 // indirect 24 | ) 25 | -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- 1 | github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= 2 | github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 3 | github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= 4 | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 5 | github.com/gin-contrib/cors v1.3.1 h1:doAsuITavI4IOcd0Y19U4B+O0dNWihRyX//nn4sEmgA= 6 | github.com/gin-contrib/cors v1.3.1/go.mod h1:jjEJ4268OPZUcU7k9Pm653S7lXUGcqMADzFA61xsmDk= 7 | github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= 8 | github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= 9 | github.com/gin-gonic/gin v1.5.0/go.mod h1:Nd6IXA8m5kNZdNEHMBd93KT+mdY3+bewLgRvmCsR2Do= 10 | github.com/gin-gonic/gin v1.7.4 h1:QmUZXrvJ9qZ3GfWvQ+2wnW/1ePrTEJqPKMYEU3lD/DM= 11 | github.com/gin-gonic/gin v1.7.4/go.mod h1:jD2toBW3GZUr5UMcdrwQA10I7RuaFOl/SGeDjXkfUtY= 12 | github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A= 13 | github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= 14 | github.com/go-playground/locales v0.12.1/go.mod h1:IUMDtCfWo/w/mtMfIE/IG2K+Ey3ygWanZIBtBW0W2TM= 15 | github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= 16 | github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU= 17 | github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs= 18 | github.com/go-playground/universal-translator v0.16.0/go.mod h1:1AnU7NaIRDWWzGEKwgtJRd2xk99HeFyHw3yid4rvQIY= 19 | github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= 20 | github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/jYrnRPArHwAcmLoJZxyho= 21 | github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA= 22 | github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4= 23 | github.com/go-playground/validator/v10 v10.9.0 h1:NgTtmN58D0m8+UuxtYmGztBJB7VnPgjj221I1QHci2A= 24 | github.com/go-playground/validator/v10 v10.9.0/go.mod h1:74x4gJWsvQexRdW8Pn3dXSGrTK4nAUsbPlLADvpJkos= 25 | github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= 26 | github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= 27 | github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= 28 | github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= 29 | github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= 30 | github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= 31 | github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 32 | github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= 33 | github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= 34 | github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= 35 | github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= 36 | github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= 37 | github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= 38 | github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= 39 | github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= 40 | github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= 41 | github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= 42 | github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= 43 | github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= 44 | github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= 45 | github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= 46 | github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= 47 | github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= 48 | github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= 49 | github.com/leodido/go-urn v1.1.0/go.mod h1:+cyI34gQWZcE1eQU7NVgKkkzdXDQHr1dBMtdAPozLkw= 50 | github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= 51 | github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= 52 | github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= 53 | github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= 54 | github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= 55 | github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= 56 | github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= 57 | github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= 58 | github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= 59 | github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= 60 | github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= 61 | github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= 62 | github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= 63 | github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= 64 | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= 65 | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= 66 | github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= 67 | github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8= 68 | github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= 69 | github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e h1:MRM5ITcdelLK2j1vwZ3Je0FKVCfqOLp5zO6trqMLYs0= 70 | github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e/go.mod h1:XV66xRDqSt+GTGFMVlhk3ULuV0y9ZmzeVGR4mloJI3M= 71 | github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= 72 | github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= 73 | github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= 74 | github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= 75 | github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= 76 | github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= 77 | github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= 78 | github.com/ugorji/go v1.2.6 h1:tGiWC9HENWE2tqYycIqFTNorMmFRVhNwCpDOpWqnk8E= 79 | github.com/ugorji/go v1.2.6/go.mod h1:anCg0y61KIhDlPZmnH+so+RQbysYVyDko0IMgJv0Nn0= 80 | github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= 81 | github.com/ugorji/go/codec v1.2.6 h1:7kbGefxLoDBuYXOms4yD7223OpNMMPNPZxXk5TvFcyQ= 82 | github.com/ugorji/go/codec v1.2.6/go.mod h1:V6TCNZ4PHqoHGFZuSG1W8nrCzzdgA2DozYxWFFpvxTw= 83 | github.com/zserge/lorca v0.1.10 h1:f/xBJ3D3ipcVRCcvN8XqZnpoKcOXV8I4vwqlFyw7ruc= 84 | github.com/zserge/lorca v0.1.10/go.mod h1:bVmnIbIRlOcoV285KIRSe4bUABKi7R7384Ycuum6e4A= 85 | golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= 86 | golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= 87 | golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= 88 | golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 h1:7I4JAnoQBe7ZtJcBaYHi5UtiO8tQHbUSXxL+pnGRANg= 89 | golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= 90 | golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= 91 | golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 92 | golang.org/x/net v0.0.0-20210226172049-e18ecbb05110 h1:qWPm9rbaAMKs8Bq/9LRpbMqxWRVUAQwMI9fVrssnTfw= 93 | golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= 94 | golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 95 | golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 96 | golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 97 | golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 98 | golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 99 | golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 100 | golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 101 | golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 102 | golang.org/x/sys v0.0.0-20210921065528-437939a70204 h1:JJhkWtBuTQKyz2bd5WG9H8iUsJRU3En/KRfN8B2RnDs= 103 | golang.org/x/sys v0.0.0-20210921065528-437939a70204/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 104 | golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= 105 | golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= 106 | golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= 107 | golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= 108 | golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= 109 | golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= 110 | golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= 111 | golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= 112 | golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 113 | golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= 114 | golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 115 | google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= 116 | google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= 117 | google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ= 118 | google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= 119 | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 120 | gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 121 | gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= 122 | gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= 123 | gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= 124 | gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= 125 | gopkg.in/go-playground/validator.v9 v9.29.1/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ= 126 | gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= 127 | gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= 128 | gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= 129 | gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= 130 | gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= 131 | gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= 132 | gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= 133 | -------------------------------------------------------------------------------- /macres/synk.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FrankFang/synk/9a69de156f30fbe1d113d754f30b53e2d902c8ea/macres/synk.icns -------------------------------------------------------------------------------- /main.go: -------------------------------------------------------------------------------- 1 | //go:generate go-winres make --product-version=git-tag 2 | package main 3 | 4 | import ( 5 | "embed" 6 | "fmt" 7 | "os" 8 | "os/signal" 9 | "sync" 10 | 11 | server "synk/server" 12 | 13 | "github.com/zserge/lorca" 14 | ) 15 | 16 | //go:embed server/frontend/dist/* 17 | var FS embed.FS 18 | 19 | func recoverFromError() { 20 | if r := recover(); r != nil { 21 | fmt.Println("Recovering from panic:", r) 22 | } 23 | } 24 | func main() { 25 | var endWaiter sync.WaitGroup 26 | endWaiter.Add(1) 27 | start := make(chan int) 28 | end := make(chan interface{}) 29 | go server.Run(start, end) 30 | go func(start chan int, quit chan interface{}) { 31 | port := <-start 32 | defer recoverFromError() 33 | ui, _ := lorca.New(fmt.Sprintf("http://127.0.0.1:%d/static/index.html", port), "", 800, 600, "--disable-sync", " --disable-translate") 34 | defer ui.Close() 35 | quit <- (<-ui.Done()) 36 | }(start, end) 37 | signalChannel := make(chan os.Signal, 1) 38 | signal.Notify(signalChannel, os.Interrupt) 39 | select { 40 | case <-signalChannel: 41 | endWaiter.Done() 42 | case <-end: 43 | endWaiter.Done() 44 | } 45 | endWaiter.Wait() 46 | } 47 | -------------------------------------------------------------------------------- /scripts/build_for_mac.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | version=$(git describe --tags $(git rev-list --tags='v[0-9].[0-9]*' --max-count=1)) 3 | 4 | APP="Synk-${version}.app" 5 | mkdir -p build/$APP/Contents/MacOS 6 | mkdir -p build/$APP/Contents/Resources 7 | GOOS=darwin GOARCH=amd64 go build -o build/$APP/Contents/MacOS/synk 8 | cat > build/$APP/Contents/Info.plist << EOF 9 | 10 | 11 | 12 | 13 | CFBundleExecutable 14 | synk 15 | CFBundleIconFile 16 | icon.icns 17 | CFBundleIdentifier 18 | com.fangyinghang.synk 19 | 20 | 21 | EOF 22 | cp macres/synk.icns build/$APP/Contents/Resources/icon.icns 23 | find build/$APP -------------------------------------------------------------------------------- /scripts/build_for_win.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | version=$(git describe --tags $(git rev-list --tags='v[0-9].[0-9]*' --max-count=1)) 3 | 4 | go generate 5 | GOOS=windows GOARCH=amd64 go build -ldflags "-H windowsgui" -o build/synk-${version}.exe 6 | -------------------------------------------------------------------------------- /server/config/path.go: -------------------------------------------------------------------------------- 1 | package config 2 | 3 | import ( 4 | "log" 5 | "os" 6 | "path/filepath" 7 | ) 8 | 9 | func DefaultPathes() (uploads string) { 10 | exe, err := os.Executable() 11 | if err != nil { 12 | log.Fatal(err) 13 | } 14 | dir := filepath.Dir(exe) 15 | uploads = filepath.Join(dir, "uploads") 16 | return 17 | } 18 | 19 | var UploadsDir = DefaultPathes() 20 | -------------------------------------------------------------------------------- /server/controllers/addresses_controller.go: -------------------------------------------------------------------------------- 1 | package controllers 2 | 3 | import ( 4 | "net" 5 | "net/http" 6 | 7 | "github.com/gin-gonic/gin" 8 | ) 9 | 10 | func AddressesController(c *gin.Context) { 11 | addrs, _ := net.InterfaceAddrs() 12 | var result []string 13 | for _, address := range addrs { 14 | // check the address type and if it is not a loopback the display it 15 | if ipnet, ok := address.(*net.IPNet); ok && !ipnet.IP.IsLoopback() { 16 | if ipnet.IP.To4() != nil { 17 | result = append(result, ipnet.IP.String()) 18 | } 19 | } 20 | } 21 | c.JSON(http.StatusOK, gin.H{"addresses": result}) 22 | } 23 | -------------------------------------------------------------------------------- /server/controllers/files_controller.go: -------------------------------------------------------------------------------- 1 | package controllers 2 | 3 | import ( 4 | "log" 5 | "net/http" 6 | "os" 7 | "path" 8 | "path/filepath" 9 | 10 | "github.com/gin-gonic/gin" 11 | "github.com/google/uuid" 12 | ) 13 | 14 | func FilesController(c *gin.Context) { 15 | file, err := c.FormFile("raw") 16 | if err != nil { 17 | log.Fatal(err) 18 | } 19 | exe, err := os.Executable() 20 | if err != nil { 21 | log.Fatal(err) 22 | } 23 | dir := filepath.Dir(exe) 24 | if err != nil { 25 | log.Fatal(err) 26 | } 27 | filename := uuid.New().String() 28 | uploads := filepath.Join(dir, "uploads") 29 | err = os.MkdirAll(uploads, os.ModePerm) 30 | if err != nil { 31 | log.Fatal(err) 32 | } 33 | fullpath := path.Join("uploads", filename+filepath.Ext(file.Filename)) 34 | fileErr := c.SaveUploadedFile(file, filepath.Join(dir, fullpath)) 35 | if fileErr != nil { 36 | log.Fatal(fileErr) 37 | } 38 | c.JSON(http.StatusOK, gin.H{"url": "/" + fullpath}) 39 | } 40 | -------------------------------------------------------------------------------- /server/controllers/qrcodes_controller.go: -------------------------------------------------------------------------------- 1 | package controllers 2 | 3 | import ( 4 | "log" 5 | "net/http" 6 | 7 | "github.com/gin-gonic/gin" 8 | "github.com/skip2/go-qrcode" 9 | ) 10 | 11 | func QrcodesController(c *gin.Context) { 12 | if content := c.Query("content"); content != "" { 13 | png, err := qrcode.Encode(content, qrcode.Medium, 256) 14 | if err != nil { 15 | log.Fatal(err) 16 | } 17 | c.Data(http.StatusOK, "image/png", png) 18 | } else { 19 | c.Status(http.StatusPreconditionRequired) 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /server/controllers/texts_controller.go: -------------------------------------------------------------------------------- 1 | package controllers 2 | 3 | import ( 4 | "io/ioutil" 5 | "log" 6 | "net/http" 7 | "os" 8 | "path" 9 | "path/filepath" 10 | 11 | "github.com/gin-gonic/gin" 12 | "github.com/google/uuid" 13 | ) 14 | 15 | func TextsController(c *gin.Context) { 16 | var json struct { 17 | Raw string 18 | } 19 | if err := c.ShouldBindJSON(&json); err != nil { 20 | c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) 21 | } else { 22 | exe, err := os.Executable() 23 | if err != nil { 24 | log.Fatal(err) 25 | } 26 | dir := filepath.Dir(exe) 27 | if err != nil { 28 | log.Fatal(err) 29 | } 30 | filename := uuid.New().String() 31 | uploads := filepath.Join(dir, "uploads") 32 | err = os.MkdirAll(uploads, os.ModePerm) 33 | if err != nil { 34 | log.Fatal(err) 35 | } 36 | fullpath := path.Join("uploads", filename+".txt") 37 | err = ioutil.WriteFile(filepath.Join(dir, fullpath), []byte(json.Raw), 0644) 38 | if err != nil { 39 | log.Fatal(err) 40 | } 41 | c.JSON(http.StatusOK, gin.H{"url": "/" + fullpath}) 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /server/controllers/uploads_controller.go: -------------------------------------------------------------------------------- 1 | package controllers 2 | 3 | import ( 4 | "net/http" 5 | 6 | "path/filepath" 7 | config "synk/server/config" 8 | 9 | "github.com/gin-gonic/gin" 10 | ) 11 | 12 | func UploadsController(c *gin.Context) { 13 | if path := c.Param("path"); path != "" { 14 | target := filepath.Join(config.UploadsDir, path) 15 | c.Header("Content-Description", "File Transfer") 16 | c.Header("Content-Transfer-Encoding", "binary") 17 | c.Header("Content-Disposition", "attachment; filename="+path) 18 | c.Header("Content-Type", "application/octet-stream") 19 | c.File(target) 20 | } else { 21 | c.Status(http.StatusNotFound) 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /server/frontend/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "env": { 3 | "browser": true, 4 | "es2021": true, 5 | "node": true 6 | }, 7 | "extends": [ 8 | "eslint:recommended", 9 | "plugin:react/recommended", 10 | "plugin:react/jsx-runtime" 11 | ], 12 | "parserOptions": { 13 | "ecmaFeatures": { 14 | "jsx": true 15 | }, 16 | "ecmaVersion": 12, 17 | "sourceType": "module" 18 | }, 19 | "plugins": [ 20 | "react" 21 | ], 22 | "settings": { 23 | "react": { 24 | "version": "detect" 25 | }, 26 | }, 27 | "rules": { 28 | "no-unused-vars": ["error", { "vars": "local", "args": "none", "ignoreRestSiblings": true }], 29 | "react/jsx-uses-react": "error", 30 | "react/jsx-uses-vars": "error", 31 | "react/prop-types": "off" 32 | }, 33 | "overrides": [ 34 | { 35 | "files": ["*.{ts,tsx}"], 36 | "rules": { 37 | }, 38 | "parser": "@typescript-eslint/parser", 39 | } 40 | ], 41 | }; 42 | -------------------------------------------------------------------------------- /server/frontend/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist 4 | dist-ssr 5 | *.local 6 | -------------------------------------------------------------------------------- /server/frontend/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 同步传 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /server/frontend/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "frontend", 3 | "version": "0.0.0", 4 | "private": true, 5 | "scripts": { 6 | "dev": "vite", 7 | "build": "tsc && vite build --base ./", 8 | "lint": "eslint --ext .jsx --ext .js --ext .ts --ext .tsx ./src", 9 | "serve": "vite preview" 10 | }, 11 | "dependencies": { 12 | "axios": "0.22.0", 13 | "classnames": "2.3.1", 14 | "history": "4.10.1", 15 | "lodash": "4.17.21", 16 | "query-string": "^7.0.1", 17 | "react": "17.0.2", 18 | "react-dom": "17.0.2", 19 | "react-is": "17.0.2", 20 | "react-router": "5.2.1", 21 | "react-router-dom": "5.3.0", 22 | "styled-components": "5.3.1", 23 | "swr": "1.0.1", 24 | "uuid": "^8.3.2" 25 | }, 26 | "devDependencies": { 27 | "@types/react": "17.0.24", 28 | "@types/react-dom": "17.0.9", 29 | "@types/styled-components": "^5.1.14", 30 | "@typescript-eslint/eslint-plugin": "^4.33.0", 31 | "@typescript-eslint/parser": "^4.33.0", 32 | "@vitejs/plugin-react": "^1.0.2", 33 | "@vitejs/plugin-react-refresh": "1.3.6", 34 | "eslint": "^7.32.0", 35 | "eslint-plugin-react": "^7.26.1", 36 | "typescript": "^4.4.3", 37 | "vite": "2.6.3" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /server/frontend/src/components/center.jsx: -------------------------------------------------------------------------------- 1 | import styled from "styled-components"; 2 | export const Center = styled.div` 3 | display: flex; 4 | flex-direction: ${({ virtical }) => virtical ? 'column' : 'row'}; 5 | justify-content: center; 6 | align-items: center; 7 | `; 8 | -------------------------------------------------------------------------------- /server/frontend/src/components/dialog.jsx: -------------------------------------------------------------------------------- 1 | import { createContext } from "react"; 2 | import { unmountComponentAtNode, render, createPortal } from "react-dom"; 3 | import styled from "styled-components"; 4 | import { AppContext } from "../shared/app_context"; 5 | 6 | const DialogOverlay = styled.div` 7 | position: fixed; z-index: 10; background: rgba(0,0,0,0.5); width: 100%; 8 | height: 100%; left: 0; top: 0; 9 | `; 10 | const DialogContent = styled.div` 11 | position: fixed; z-index: 11; min-width: 120px; min-height: 40px; 12 | max-width: 100%; max-height: 100%; background: white; top: 50%; left: 50%; 13 | transform: translate(-50%, -50%); 14 | border-radius: 8px; 15 | `; 16 | 17 | export const Dialog = ({ container, onClickOverlay, children }) => { 18 | return createPortal( 19 | <> 20 | 21 | {children} 22 | , 23 | container ?? document.body 24 | ); 25 | }; 26 | 27 | let lastDiv = null 28 | 29 | const close = (div) => { 30 | if (!div) return 31 | unmountComponentAtNode(div); 32 | div.remove(); 33 | lastDiv = null 34 | }; 35 | export const createDialog = (content, options = {}) => { 36 | close(lastDiv) 37 | const { closeOnClickOverlay, context } = options; 38 | const div = lastDiv = document.createElement("div"); 39 | div.className = "tempApp"; 40 | document.body.append(div); 41 | const onClickOverlay = () => { 42 | if (closeOnClickOverlay) { 43 | close(div); 44 | } 45 | }; 46 | render( 47 | 48 | 49 | {content} 50 | 51 | , 52 | div 53 | ); 54 | return () => close(div); 55 | }; 56 | -------------------------------------------------------------------------------- /server/frontend/src/components/loading.jsx: -------------------------------------------------------------------------------- 1 | import { Center } from "./center"; 2 | import styled from "styled-components"; 3 | 4 | const _Loading = styled(Center)` 5 | flex-direction: column; 6 | padding: 8px; 7 | > svg { 8 | width: 40px; 9 | height: 40px; 10 | margin: 16px; 11 | } 12 | `; 13 | 14 | export const Loading = ({ children, className }) => { 15 | return ( 16 | <_Loading className={className}> 17 | 18 | 19 | 20 |

{children}

21 | 22 | ); 23 | }; 24 | -------------------------------------------------------------------------------- /server/frontend/src/components/qrcode.jsx: -------------------------------------------------------------------------------- 1 | import React, { useEffect, useState } from "react"; 2 | import { Loading } from "./loading"; 3 | import styled from "styled-components"; 4 | import { prefetch } from "../shared/prefetch"; 5 | const MyLoading = styled(Loading)` 6 | width: 256px; 7 | height: 256px; 8 | `; 9 | export const Qrcode = ({ content }) => { 10 | const [image, setImage] = useState(null); 11 | content = encodeURIComponent(content); 12 | const [loading, setLoading] = useState(false); 13 | const [error, setError] = useState(null); 14 | useEffect(() => { 15 | if (!content) return; 16 | const url = `/api/v1/qrcodes?content=${content}`; 17 | setLoading(true); 18 | prefetch(url) 19 | .then( 20 | () => setImage(), 21 | (e) => setError(e) 22 | ) 23 | .finally(() => setLoading(false)); 24 | }, [content]); 25 | return loading ? ( 26 | 加载中 27 | ) : error ? ( 28 |
加载二维码出错:{JSON.stringify(error)}
29 | ) : ( 30 | image 31 | ); 32 | }; 33 | -------------------------------------------------------------------------------- /server/frontend/src/components/space.jsx: -------------------------------------------------------------------------------- 1 | import styled from "styled-components" 2 | export const Space = styled.div` 3 | height: ${({ x2, x3 }) => x2 ? 16 * 2 : x3 ? 16 * 3 : 16}px; 4 | ` -------------------------------------------------------------------------------- /server/frontend/src/hooks/use_query.js: -------------------------------------------------------------------------------- 1 | import { useLocation } from "react-router"; 2 | import qs from 'query-string' 3 | export const useQuery = () => { 4 | const location = useLocation(); 5 | const parsed = qs.parse(location.search) 6 | return parsed 7 | } -------------------------------------------------------------------------------- /server/frontend/src/images/synk.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FrankFang/synk/9a69de156f30fbe1d113d754f30b53e2d902c8ea/server/frontend/src/images/synk.ico -------------------------------------------------------------------------------- /server/frontend/src/images/synk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FrankFang/synk/9a69de156f30fbe1d113d754f30b53e2d902c8ea/server/frontend/src/images/synk.png -------------------------------------------------------------------------------- /server/frontend/src/images/synk.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /server/frontend/src/initializers/client_id.js: -------------------------------------------------------------------------------- 1 | import { v4 as uuidv4 } from 'uuid'; 2 | 3 | let clientId = localStorage.getItem('clientId') 4 | if (clientId?.length !== 36) { 5 | clientId = uuidv4(); 6 | localStorage.setItem('clientId', clientId) 7 | } 8 | 9 | export { clientId } 10 | -------------------------------------------------------------------------------- /server/frontend/src/initializers/index.js: -------------------------------------------------------------------------------- 1 | import './client_id' 2 | export const init = () => { 3 | 4 | } -------------------------------------------------------------------------------- /server/frontend/src/main.jsx: -------------------------------------------------------------------------------- 1 | import React, { useContext, useEffect, useRef, useState } from "react"; 2 | import ReactDOM from "react-dom"; 3 | import { Router, Route, Switch, Redirect } from "react-router"; 4 | import { Home } from "./pages/home"; 5 | import { Downloads } from "./pages/downloads"; 6 | import { ThemeProvider } from "styled-components"; 7 | import { GlobalStyle } from './shared/global_style' 8 | import { history } from "./shared/history"; 9 | import { init } from "./initializers"; 10 | import { getWsClient } from "./shared/ws_client"; 11 | import { clientId } from "./initializers/client_id"; 12 | import { createDialog } from "./components/dialog"; 13 | import { showUploadFileSuccessDialog, showUploadTextSuccessDialog } from "./pages/home/components"; 14 | import { http } from "./shared/http"; 15 | import _ from "lodash"; 16 | import { AppContext } from "./shared/app_context"; 17 | 18 | 19 | const theme = { 20 | borderColor: "#333", 21 | highlightColor: "#f5b70d", 22 | }; 23 | 24 | const Main = () => { 25 | init() 26 | const addressesRef = useRef(null); 27 | const context = { addressesRef } 28 | useEffect(async () => { 29 | const { 30 | data: { addresses }, 31 | } = await http 32 | .get("/api/v1/addresses") 33 | .catch((e) => Promise.reject(e)); 34 | addressesRef.current = _.uniq(addresses.concat("127.0.0.1")); 35 | }, []); 36 | 37 | useEffect(() => { 38 | getWsClient().then(c => { 39 | c.onMessage(data => { 40 | const { url, type } = data 41 | if (data.clientId !== clientId) { 42 | const content = (addr) => addr && `http://${addr}:27149/static/downloads?type=${type}&url=${encodeURIComponent(`http://${addr}:27149${url}`)}` 43 | if (type === 'text') { 44 | showUploadTextSuccessDialog({ context, content }); 45 | } else { 46 | showUploadFileSuccessDialog({ context, content }); 47 | } 48 | } 49 | }) 50 | }) 51 | }, []) 52 | return 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 |
404
66 |
67 |
68 |
69 |
70 |
71 | } 72 | 73 | ReactDOM.render( 74 | 75 |
76 | , 77 | document.getElementById("root") 78 | ); 79 | -------------------------------------------------------------------------------- /server/frontend/src/pages/downloads.jsx: -------------------------------------------------------------------------------- 1 | import { useQuery } from "../hooks/use_query"; 2 | import { BigTextarea, Button, Header, Layout } from "./home/components"; 3 | import styled from "styled-components"; 4 | import { Center } from "../components/center"; 5 | import { Space } from "../components/space"; 6 | import { useState } from "react"; 7 | import { useRef } from "react"; 8 | import { useEffect } from "react"; 9 | import { http } from "../shared/http"; 10 | import { history } from "../shared/history"; 11 | 12 | export const Downloads = () => { 13 | const query = useQuery() 14 | const type = normalizeType(query.type) 15 | const [text, setText] = useState("") 16 | useEffect(() => { 17 | if (type === "text") { 18 | http.get(query.url).then(({ data }) => { 19 | setText(data) 20 | }) 21 | } 22 | }, [type]) 23 | 24 | let node = null 25 | switch (type) { 26 | case 'text': 27 | node = ( 28 |
29 | 30 | 31 |
32 | 33 |
34 |
35 | ) 36 | break; 37 | case 'file': 38 | node = ( 39 |
40 | 41 | 42 | 43 |
44 | 45 |
46 |
47 |
48 | ) 49 | break; 50 | case 'image': 51 | node = ( 52 |
53 | 54 | 55 |
56 | 57 |
58 |
59 |
60 | ) 61 | break; 62 | } 63 | const onClickUpload = () => { 64 | history.push("/") 65 | } 66 | return ( 67 | 68 |
同步传
69 | {node} 70 | 71 |
72 | 73 |
74 |
75 | ) 76 | }; 77 | const Picture = styled.img` 78 | border: 2px solid ${({ theme }) => theme.borderColor}; 79 | margin: 16px; 80 | ` 81 | const P = styled.p` 82 | margin: 8px 0; 83 | ` 84 | 85 | const normalizeType = type => { 86 | if (/^image\/.*$/.test(type)) { 87 | return 'image' 88 | } else if (/^text(\/.*)?$/.test(type)) { 89 | return 'text' 90 | } else { 91 | return 'file' 92 | } 93 | } -------------------------------------------------------------------------------- /server/frontend/src/pages/home.jsx: -------------------------------------------------------------------------------- 1 | import { Switch, Route } from "react-router"; 2 | import { Header, Layout } from "./home/components"; 3 | import { UploadTextForm } from "./home/upload_text_form"; 4 | import { UploadFileForm } from "./home/upload_file_form"; 5 | import { nav } from "./home/nav"; 6 | import { UploadScreenshotForm } from "./home/upload_screenshot_form"; 7 | 8 | export function Home() { 9 | return ( 10 | 11 |
同步传
12 | {nav} 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | ); 26 | } 27 | -------------------------------------------------------------------------------- /server/frontend/src/pages/home/components.jsx: -------------------------------------------------------------------------------- 1 | import { createDialog } from "../../components/dialog"; 2 | import styled from "styled-components"; 3 | import React, { useContext, useState } from "react"; 4 | import { Qrcode } from "../../components/qrcode"; 5 | import { Loading } from "../../components/loading"; 6 | import { AppContext } from "../../shared/app_context"; 7 | import { Center } from "../../components/center"; 8 | import { http } from "../../shared/http"; 9 | import { getWsClient } from "../../shared/ws_client"; 10 | import { clientId } from "../../initializers/client_id"; 11 | import { Space } from "../../components/space"; 12 | 13 | export const Layout = styled.div` 14 | min-height: 100vh; display: flex; align-items: stretch; flex-direction: column; 15 | padding: 0 16px; margin: 0 auto; 16 | @media (min-width: 414px) { 17 | max-width: 600px; 18 | } 19 | `; 20 | export const Header = styled.h1` 21 | margin-top: 48px; 22 | margin-bottom: 32px; 23 | text-align: center; 24 | `; 25 | export const BigTextarea = styled.textarea` 26 | width: 100%; 27 | min-height: 160px; 28 | line-height: 20px; 29 | &.draging { 30 | border-color: red; 31 | } 32 | `; 33 | export const Button = styled.button` 34 | min-height: 40px; 35 | padding: 0 60px; 36 | border: 2px solid #666; 37 | background: #f5b70d; 38 | border-radius: 8px; 39 | cursor: pointer; 40 | `; 41 | export const Form = styled.form` 42 | &> .row { 43 | margin: 16px 0; 44 | } 45 | `; 46 | 47 | const Span = styled.span` 48 | margin-right: 8px; 49 | `; 50 | const Label = styled.label` 51 | display: flex; padding: 4px 0; 52 | justify-content: flex-start; align-items: center; 53 | min-height: 40px; white-space: nowrap; 54 | `; 55 | const H2 = styled.h2` 56 | font-weight: bold; font-size: 24px; 57 | margin-bottom: 16px; 58 | ` 59 | const P = styled.p` 60 | a {text-decoration: underline;} 61 | ` 62 | const UploadSuccessDialog = ({ content, onClose }) => { 63 | const [address, setAddress] = useState(localStorage.getItem("address") || ""); 64 | const context = useContext(AppContext); 65 | const addressesRef = context?.addressesRef ?? null 66 | const onChange = (e) => { 67 | setAddress(e.target.value); 68 | localStorage.setItem("address", e.target.value); 69 | }; 70 | content = typeof content === "string" ? content : content(address) 71 | return ( 72 | 73 |

上传成功

74 | {addressesRef.current ? 75 |
76 |

77 | 请 Windows 用户在防火墙入站规则中开通 27149 端口(教程) 78 |

79 |

80 | 91 |

92 |
93 | : null 94 | } 95 |
96 | {content ? : null} 97 |
98 |
99 | {content ? 请 手机扫码 或 点击下载 : null} 100 |
101 | 102 |
103 | 104 |
105 |
106 | ); 107 | }; 108 | export const showUploadTextSuccessDialog = ({ context, content }) => { 109 | const close = createDialog( 110 | close()} />, 111 | { context } 112 | ); 113 | }; 114 | export const showUploadFileSuccessDialog = ({ context, content }) => { 115 | const close = createDialog( 116 | close()} />, 117 | { context } 118 | ); 119 | }; 120 | export const showUploadFailDialog = () => { 121 | return createDialog( 122 | 123 |
上传失败
124 | 125 |
126 | ); 127 | }; 128 | export const showUploadingDialog = () => { 129 | return createDialog(上传中); 130 | }; 131 | const Pop = styled.div` 132 | padding: 16px; 133 | `; 134 | 135 | const notifyPc = (response, type) => { 136 | getWsClient().then(c => { 137 | c.send({ clientId, type, url: response.data.url }) 138 | }) 139 | return response 140 | } 141 | export const uploadText = (text) => { 142 | return http.post("/api/v1/texts", { 143 | raw: text 144 | }).then(r => notifyPc(r, 'text')) 145 | } 146 | export const uploadFile = (blob) => { 147 | const formData = new FormData(); 148 | formData.append("raw", blob); 149 | return http({ 150 | method: "post", 151 | url: "/api/v1/files", 152 | data: formData, 153 | headers: { 154 | "Content-Type": "multipart/form-data", 155 | }, 156 | }).then(r => notifyPc(r, 'file')) 157 | }; 158 | -------------------------------------------------------------------------------- /server/frontend/src/pages/home/nav.jsx: -------------------------------------------------------------------------------- 1 | import { NavLink } from "react-router-dom"; 2 | import styled from "styled-components"; 3 | const Nav = styled.nav` 4 | text-align: center; 5 | > ul { 6 | display: flex; border-top: 1px solid ${({ theme }) => theme.borderColor}; 7 | border-left: 1px solid ${({ theme }) => theme.borderColor}; 8 | > li { flex-grow: 1; border-bottom: 1px solid #333; 9 | border-right: 1px solid ${({ theme }) => theme.borderColor}; 10 | > a { display: block; padding: 8px 0; 11 | &.selected{ background: ${({ theme }) => theme.highlightColor} } 12 | } 13 | } 14 | } 15 | `; 16 | export const nav = ( 17 | 36 | ); 37 | -------------------------------------------------------------------------------- /server/frontend/src/pages/home/upload_file_form.jsx: -------------------------------------------------------------------------------- 1 | import React, { useContext, useState } from "react"; 2 | import styled from "styled-components"; 3 | import { 4 | Form, 5 | showUploadingDialog, 6 | showUploadFileSuccessDialog, 7 | uploadFile, 8 | } from "../../pages/home/components"; 9 | import { AppContext } from "../../shared/app_context"; 10 | 11 | export const UploadFileForm = () => { 12 | const context = useContext(AppContext); 13 | const [boxClass, setBoxClass] = useState("default"); 14 | const onDragOver = (e) => { 15 | e.preventDefault(); 16 | setBoxClass("dragging"); 17 | }; 18 | const onDragLeave = (e) => { 19 | setBoxClass("default"); 20 | }; 21 | const onDrop = async (e) => { 22 | e.preventDefault(); 23 | const file = e.dataTransfer?.items?.[0]?.getAsFile(); 24 | if (!file) return; 25 | const type = file.type || "unknown"; 26 | showUploadingDialog(); 27 | const { data: { url } } = await uploadFile(file); 28 | showUploadFileSuccessDialog({ 29 | context, 30 | content: (addr) => 31 | addr && 32 | `http://${addr}:27149/static/downloads?type=${type}&url=${encodeURIComponent( 33 | `http://${addr}:27149${url}` 34 | )}`, 35 | }); 36 | }; 37 | const onChange = async (e) => { 38 | const file = e.target?.files?.[0]; 39 | if (!file) return; 40 | const type = file.type || "unknown"; 41 | showUploadingDialog(); 42 | const { data: { url } } = await uploadFile(file); 43 | showUploadFileSuccessDialog({ 44 | context, 45 | content: (addr) => 46 | addr && 47 | `http://${addr}:27149/static/downloads?type=${type}&url=${encodeURIComponent( 48 | `http://${addr}:27149${url}` 49 | )}`, 50 | }); 51 | }; 52 | return ( 53 |
54 |
55 | 61 | 62 |

点击打开文件 或 拖拽文件至此

63 |
64 |
65 |
66 | ); 67 | }; 68 | const Box = styled.div` 69 | &.dragging { 70 | border-color: ${({ theme }) => theme.highlightColor}; 71 | color: ${({ theme }) => theme.highlightColor}; 72 | } 73 | min-height: 160px; border: 2px dashed ${({ theme }) => theme.borderColor}; 74 | position: relative; overflow: hidden; display: flex; justify-content: center; align-items: center; border-radius: 8px; 75 | `; 76 | const FileInput = styled.input` 77 | position: absolute; right: 0; top: 0; width: 100%; height: 100%; 78 | opacity: 0; cursor: pointer; 79 | `; 80 | -------------------------------------------------------------------------------- /server/frontend/src/pages/home/upload_screenshot_form.jsx: -------------------------------------------------------------------------------- 1 | import React, { useContext, useEffect } from "react"; 2 | import styled from "styled-components"; 3 | import { 4 | Form, 5 | showUploadingDialog, 6 | showUploadFileSuccessDialog, 7 | uploadFile, 8 | } from "../../pages/home/components"; 9 | import { AppContext } from "../../shared/app_context"; 10 | export const UploadScreenshotForm = () => { 11 | const context = useContext(AppContext); 12 | const _uploadFile = async (file) => { 13 | if (!file) return; 14 | const type = file.type || "unknown"; 15 | showUploadingDialog(); 16 | const { data: { url } } = await uploadFile(file); 17 | showUploadFileSuccessDialog({ 18 | context, 19 | content: (addr) => 20 | addr && 21 | `http://${addr}:27149/static/downloads?type=${type}&url=${encodeURIComponent( 22 | `http://${addr}:27149${url}` 23 | )}`, 24 | }); 25 | } 26 | const onPaste = (e) => { 27 | const { items: [item] } = e.clipboardData; 28 | _uploadFile(item?.getAsFile()) 29 | }; 30 | useEffect(() => { 31 | window.addEventListener("paste", onPaste); 32 | return () => { 33 | window.removeEventListener("paste", onPaste); 34 | }; 35 | }, []); 36 | const onChange = async (e) => { 37 | _uploadFile(e.target?.files?.[0]) 38 | }; 39 | return ( 40 |
41 |
42 | 43 | 49 |

点击选择图片 或 直接粘贴图片

50 |
51 |
52 |
53 | ); 54 | }; 55 | const Box = styled.div` 56 | &.dragging { 57 | border-color: ${({ theme }) => theme.highlightColor}; 58 | color: ${({ theme }) => theme.highlightColor}; 59 | } 60 | min-height: 160px; border: 2px dashed ${({ theme }) => theme.borderColor}; 61 | position: relative; overflow: hidden; display: flex; justify-content: center; align-items: center; border-radius: 8px; 62 | `; 63 | const FileInput = styled.input` 64 | position: absolute; right: 0; top: 0; width: 100%; height: 100%; 65 | opacity: 0; cursor: pointer; 66 | `; 67 | -------------------------------------------------------------------------------- /server/frontend/src/pages/home/upload_text_form.jsx: -------------------------------------------------------------------------------- 1 | import React, { useContext, useState } from "react"; 2 | import { 3 | BigTextarea, 4 | Button, 5 | Form, 6 | showUploadingDialog, 7 | showUploadTextSuccessDialog, 8 | uploadText, 9 | } from "../../pages/home/components"; 10 | import { AppContext } from "../../shared/app_context"; 11 | import { Center } from "../../components/center"; 12 | 13 | export const UploadTextForm = () => { 14 | const context = useContext(AppContext); 15 | const [text, setText] = useState(""); 16 | const onSubmit = async (e) => { 17 | e.preventDefault(); 18 | showUploadingDialog(); 19 | const { data: { url } } = await uploadText(text) 20 | showUploadTextSuccessDialog({ 21 | context, content: (addr) => addr && `http://${addr}:27149/static/downloads?type=text&url=http://${addr + ":27149" + encodeURIComponent(url)}` 22 | }); 23 | }; 24 | return ( 25 |
26 |
27 | setText(e.target.value)} 30 | /> 31 |
32 |
33 | 34 |
35 |
36 | ); 37 | }; 38 | -------------------------------------------------------------------------------- /server/frontend/src/shared/app_context.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | export const AppContext = React.createContext({ addressesRef: null }) 3 | 4 | -------------------------------------------------------------------------------- /server/frontend/src/shared/global_style.jsx: -------------------------------------------------------------------------------- 1 | import { createGlobalStyle, keyframes } from "styled-components"; 2 | const spin = keyframes` 3 | 0% { 4 | transform: rotate(0deg); 5 | } 6 | 100%{ 7 | transform: rotate(360deg); 8 | } 9 | `; 10 | export const GlobalStyle = createGlobalStyle` 11 | * { box-sizing: border-box; padding: 0; margin: 0; } 12 | *::before, *::after {box-sizing: border-box;} 13 | body { 14 | font-size: 16px; 15 | font-family: -apple-system, "Noto Sans", "Helvetica Neue", Helvetica, "Nimbus Sans L", Arial, "Liberation Sans", "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", "Source Han Sans SC", "Source Han Sans CN", "Microsoft YaHei", "Wenquanyi Micro Hei", "WenQuanYi Zen Hei", "ST Heiti", SimHei, "WenQuanYi Zen Hei Sharp", sans-serif; 16 | } 17 | a {text-decoration: none; color: inherit;} 18 | img {max-width: 100%; max-height: 100%; } 19 | input, button {font: inherit;} 20 | ul, ol {list-style: none; } 21 | img{vertical-align: middle;} 22 | :focus{ outline: none; } 23 | 24 | // helpers 25 | .spin { 26 | animation: ${spin} 2s linear infinite; 27 | } 28 | `; 29 | -------------------------------------------------------------------------------- /server/frontend/src/shared/history.js: -------------------------------------------------------------------------------- 1 | import { createBrowserHistory } from "history"; 2 | export const history = createBrowserHistory({ basename: "/static/" }); -------------------------------------------------------------------------------- /server/frontend/src/shared/http.js: -------------------------------------------------------------------------------- 1 | import axios from "axios"; 2 | export const http = axios.create({ 3 | timeout: 5000 4 | }); 5 | -------------------------------------------------------------------------------- /server/frontend/src/shared/prefetch.js: -------------------------------------------------------------------------------- 1 | export const prefetch = (src) => { 2 | return new Promise((resolve, reject) => { 3 | const picture = new Image() 4 | picture.onload = () => { 5 | resolve(picture) 6 | } 7 | picture.onerror = (error) => { 8 | reject(error) 9 | } 10 | picture.src = src 11 | }) 12 | } -------------------------------------------------------------------------------- /server/frontend/src/shared/ws_client.js: -------------------------------------------------------------------------------- 1 | const url = `ws://${window.location.hostname}:27149/ws`; 2 | const wsClient = new WebSocket(url); 3 | 4 | class WsClient { 5 | constructor(client) { 6 | this.client = client 7 | } 8 | send(data) { 9 | this.client.send(JSON.stringify(data)) 10 | } 11 | onMessage(fn) { 12 | this.client.onmessage = ({ data }) => { 13 | fn(JSON.parse(data)) 14 | } 15 | } 16 | } 17 | 18 | 19 | const promise = new Promise((resolve, reject) => { 20 | wsClient.onopen = () => { 21 | resolve(new WsClient(wsClient)) 22 | } 23 | setTimeout(() => { 24 | reject(new Error('get ws connection timeout')) 25 | }, 10000) 26 | }) 27 | 28 | export const getWsClient = () => promise -------------------------------------------------------------------------------- /server/frontend/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /server/frontend/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "useDefineForClassFields": true, 5 | "lib": ["DOM", "DOM.Iterable", "ESNext"], 6 | "allowJs": false, 7 | "skipLibCheck": false, 8 | "esModuleInterop": false, 9 | "allowSyntheticDefaultImports": true, 10 | "strict": true, 11 | "forceConsistentCasingInFileNames": true, 12 | "module": "ESNext", 13 | "moduleResolution": "Node", 14 | "resolveJsonModule": true, 15 | "isolatedModules": true, 16 | "noEmit": true, 17 | "jsx": "react" 18 | }, 19 | "include": ["./src"] 20 | } 21 | -------------------------------------------------------------------------------- /server/frontend/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [react()], 7 | server: { 8 | proxy: { 9 | '/api': { 10 | target: 'http://127.0.0.1:27149/', 11 | changeOrigin: true, 12 | }, 13 | } 14 | } 15 | }) 16 | -------------------------------------------------------------------------------- /server/frontend/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" 8 | integrity sha1-9K1DWqJj25NbjxDyxVLSP7cWpj8= 9 | dependencies: 10 | "@babel/highlight" "^7.10.4" 11 | 12 | "@babel/code-frame@^7.14.5": 13 | version "7.14.5" 14 | resolved "https://registry.nlark.com/@babel/code-frame/download/@babel/code-frame-7.14.5.tgz" 15 | integrity sha1-I7CNdA6D9JxeWZRfvxtD6Au/Tts= 16 | dependencies: 17 | "@babel/highlight" "^7.14.5" 18 | 19 | "@babel/code-frame@^7.15.8": 20 | version "7.15.8" 21 | resolved "https://registry.npmmirror.com/@babel/code-frame/download/@babel/code-frame-7.15.8.tgz#45990c47adadb00c03677baa89221f7cc23d2503" 22 | integrity sha1-RZkMR62tsAwDZ3uqiSIffMI9JQM= 23 | dependencies: 24 | "@babel/highlight" "^7.14.5" 25 | 26 | "@babel/compat-data@^7.15.0": 27 | version "7.15.0" 28 | resolved "https://registry.nlark.com/@babel/compat-data/download/@babel/compat-data-7.15.0.tgz" 29 | integrity sha1-Lbr4uFM0eWyvuw9Xk6kKL8AQsXY= 30 | 31 | "@babel/core@^7.14.8": 32 | version "7.15.5" 33 | resolved "https://registry.nlark.com/@babel/core/download/@babel/core-7.15.5.tgz" 34 | integrity sha1-+O2aznMHIlRGCfkMm7SRYtw79bk= 35 | dependencies: 36 | "@babel/code-frame" "^7.14.5" 37 | "@babel/generator" "^7.15.4" 38 | "@babel/helper-compilation-targets" "^7.15.4" 39 | "@babel/helper-module-transforms" "^7.15.4" 40 | "@babel/helpers" "^7.15.4" 41 | "@babel/parser" "^7.15.5" 42 | "@babel/template" "^7.15.4" 43 | "@babel/traverse" "^7.15.4" 44 | "@babel/types" "^7.15.4" 45 | convert-source-map "^1.7.0" 46 | debug "^4.1.0" 47 | gensync "^1.0.0-beta.2" 48 | json5 "^2.1.2" 49 | semver "^6.3.0" 50 | source-map "^0.5.0" 51 | 52 | "@babel/core@^7.15.5": 53 | version "7.15.8" 54 | resolved "https://registry.npmmirror.com/@babel/core/download/@babel/core-7.15.8.tgz#195b9f2bffe995d2c6c159e72fe525b4114e8c10" 55 | integrity sha1-GVufK//pldLGwVnnL+UltBFOjBA= 56 | dependencies: 57 | "@babel/code-frame" "^7.15.8" 58 | "@babel/generator" "^7.15.8" 59 | "@babel/helper-compilation-targets" "^7.15.4" 60 | "@babel/helper-module-transforms" "^7.15.8" 61 | "@babel/helpers" "^7.15.4" 62 | "@babel/parser" "^7.15.8" 63 | "@babel/template" "^7.15.4" 64 | "@babel/traverse" "^7.15.4" 65 | "@babel/types" "^7.15.6" 66 | convert-source-map "^1.7.0" 67 | debug "^4.1.0" 68 | gensync "^1.0.0-beta.2" 69 | json5 "^2.1.2" 70 | semver "^6.3.0" 71 | source-map "^0.5.0" 72 | 73 | "@babel/generator@^7.15.4": 74 | version "7.15.4" 75 | resolved "https://registry.nlark.com/@babel/generator/download/@babel/generator-7.15.4.tgz" 76 | integrity sha1-hayxWaJnymMk+Xk5hpke4gIqBbA= 77 | dependencies: 78 | "@babel/types" "^7.15.4" 79 | jsesc "^2.5.1" 80 | source-map "^0.5.0" 81 | 82 | "@babel/generator@^7.15.8": 83 | version "7.15.8" 84 | resolved "https://registry.npmmirror.com/@babel/generator/download/@babel/generator-7.15.8.tgz#fa56be6b596952ceb231048cf84ee499a19c0cd1" 85 | integrity sha1-+la+a1lpUs6yMQSM+E7kmaGcDNE= 86 | dependencies: 87 | "@babel/types" "^7.15.6" 88 | jsesc "^2.5.1" 89 | source-map "^0.5.0" 90 | 91 | "@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.14.5": 92 | version "7.15.4" 93 | resolved "https://registry.nlark.com/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.15.4.tgz" 94 | integrity sha1-PQ5DsAxeSf22xX5CFgGnpljV+DU= 95 | dependencies: 96 | "@babel/types" "^7.15.4" 97 | 98 | "@babel/helper-compilation-targets@^7.15.4": 99 | version "7.15.4" 100 | resolved "https://registry.nlark.com/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.15.4.tgz" 101 | integrity sha1-z22U8w++/BORI+J91rAvZa7tt7k= 102 | dependencies: 103 | "@babel/compat-data" "^7.15.0" 104 | "@babel/helper-validator-option" "^7.14.5" 105 | browserslist "^4.16.6" 106 | semver "^6.3.0" 107 | 108 | "@babel/helper-function-name@^7.15.4": 109 | version "7.15.4" 110 | resolved "https://registry.nlark.com/@babel/helper-function-name/download/@babel/helper-function-name-7.15.4.tgz" 111 | integrity sha1-hFdE2vxDgaSl+2r6bD02+Yp4frw= 112 | dependencies: 113 | "@babel/helper-get-function-arity" "^7.15.4" 114 | "@babel/template" "^7.15.4" 115 | "@babel/types" "^7.15.4" 116 | 117 | "@babel/helper-get-function-arity@^7.15.4": 118 | version "7.15.4" 119 | resolved "https://registry.nlark.com/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.15.4.tgz" 120 | integrity sha1-CYgYk0oTf854tTaj4BWGS+Hih5s= 121 | dependencies: 122 | "@babel/types" "^7.15.4" 123 | 124 | "@babel/helper-hoist-variables@^7.15.4": 125 | version "7.15.4" 126 | resolved "https://registry.nlark.com/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.15.4.tgz" 127 | integrity sha1-CZk6MlnA6Rj5nRBCYd/fwDPxeN8= 128 | dependencies: 129 | "@babel/types" "^7.15.4" 130 | 131 | "@babel/helper-member-expression-to-functions@^7.15.4": 132 | version "7.15.4" 133 | resolved "https://registry.nlark.com/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.15.4.tgz" 134 | integrity sha1-v9NNybupgkpGWLAxfsL9VxpR5u8= 135 | dependencies: 136 | "@babel/types" "^7.15.4" 137 | 138 | "@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.14.5", "@babel/helper-module-imports@^7.15.4": 139 | version "7.15.4" 140 | resolved "https://registry.nlark.com/@babel/helper-module-imports/download/@babel/helper-module-imports-7.15.4.tgz" 141 | integrity sha1-4YAH0jBjLeoZtHhTuYRHbntOED8= 142 | dependencies: 143 | "@babel/types" "^7.15.4" 144 | 145 | "@babel/helper-module-transforms@^7.15.4": 146 | version "7.15.7" 147 | resolved "https://registry.nlark.com/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.15.7.tgz" 148 | integrity sha1-fagMjLwfAmVdg/i3nSWGav5Q0iY= 149 | dependencies: 150 | "@babel/helper-module-imports" "^7.15.4" 151 | "@babel/helper-replace-supers" "^7.15.4" 152 | "@babel/helper-simple-access" "^7.15.4" 153 | "@babel/helper-split-export-declaration" "^7.15.4" 154 | "@babel/helper-validator-identifier" "^7.15.7" 155 | "@babel/template" "^7.15.4" 156 | "@babel/traverse" "^7.15.4" 157 | "@babel/types" "^7.15.6" 158 | 159 | "@babel/helper-module-transforms@^7.15.8": 160 | version "7.15.8" 161 | resolved "https://registry.npmmirror.com/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.15.8.tgz#d8c0e75a87a52e374a8f25f855174786a09498b2" 162 | integrity sha1-2MDnWoelLjdKjyX4VRdHhqCUmLI= 163 | dependencies: 164 | "@babel/helper-module-imports" "^7.15.4" 165 | "@babel/helper-replace-supers" "^7.15.4" 166 | "@babel/helper-simple-access" "^7.15.4" 167 | "@babel/helper-split-export-declaration" "^7.15.4" 168 | "@babel/helper-validator-identifier" "^7.15.7" 169 | "@babel/template" "^7.15.4" 170 | "@babel/traverse" "^7.15.4" 171 | "@babel/types" "^7.15.6" 172 | 173 | "@babel/helper-optimise-call-expression@^7.15.4": 174 | version "7.15.4" 175 | resolved "https://registry.nlark.com/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.15.4.tgz" 176 | integrity sha1-8xClEho7nMUtmrGRIr1ymCLe4XE= 177 | dependencies: 178 | "@babel/types" "^7.15.4" 179 | 180 | "@babel/helper-plugin-utils@^7.14.5": 181 | version "7.14.5" 182 | resolved "https://registry.nlark.com/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.14.5.tgz" 183 | integrity sha1-WsgizpfuxGdBq3ClF5ceRDpwxak= 184 | 185 | "@babel/helper-replace-supers@^7.15.4": 186 | version "7.15.4" 187 | resolved "https://registry.nlark.com/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.15.4.tgz" 188 | integrity sha1-UqirJrqRjH9t7ihiiwcHGse3NHo= 189 | dependencies: 190 | "@babel/helper-member-expression-to-functions" "^7.15.4" 191 | "@babel/helper-optimise-call-expression" "^7.15.4" 192 | "@babel/traverse" "^7.15.4" 193 | "@babel/types" "^7.15.4" 194 | 195 | "@babel/helper-simple-access@^7.15.4": 196 | version "7.15.4" 197 | resolved "https://registry.nlark.com/@babel/helper-simple-access/download/@babel/helper-simple-access-7.15.4.tgz" 198 | integrity sha1-rDaJBavx3o6XgUNLY12PhnS8wTs= 199 | dependencies: 200 | "@babel/types" "^7.15.4" 201 | 202 | "@babel/helper-split-export-declaration@^7.15.4": 203 | version "7.15.4" 204 | resolved "https://registry.nlark.com/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.15.4.tgz" 205 | integrity sha1-rsq5Lc2+9qEKo7YqsgSwhfd24lc= 206 | dependencies: 207 | "@babel/types" "^7.15.4" 208 | 209 | "@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9", "@babel/helper-validator-identifier@^7.15.7": 210 | version "7.15.7" 211 | resolved "https://registry.nlark.com/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.15.7.tgz?cache=0&sync_timestamp=1631921299259&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.15.7.tgz" 212 | integrity sha1-Ig35k7/pBKSmsCq08zhaXr9uI4k= 213 | 214 | "@babel/helper-validator-option@^7.14.5": 215 | version "7.14.5" 216 | resolved "https://registry.nlark.com/@babel/helper-validator-option/download/@babel/helper-validator-option-7.14.5.tgz" 217 | integrity sha1-bnKh//GNXfy4eOHmLxoCHEty1aM= 218 | 219 | "@babel/helpers@^7.15.4": 220 | version "7.15.4" 221 | resolved "https://registry.nlark.com/@babel/helpers/download/@babel/helpers-7.15.4.tgz" 222 | integrity sha1-X0DwIFCjAnEho89I1JfAXFVer0M= 223 | dependencies: 224 | "@babel/template" "^7.15.4" 225 | "@babel/traverse" "^7.15.4" 226 | "@babel/types" "^7.15.4" 227 | 228 | "@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5": 229 | version "7.14.5" 230 | resolved "https://registry.nlark.com/@babel/highlight/download/@babel/highlight-7.14.5.tgz" 231 | integrity sha1-aGGlLwOWZAUAH2qlNKAaJNmejNk= 232 | dependencies: 233 | "@babel/helper-validator-identifier" "^7.14.5" 234 | chalk "^2.0.0" 235 | js-tokens "^4.0.0" 236 | 237 | "@babel/parser@^7.15.4", "@babel/parser@^7.15.5": 238 | version "7.15.7" 239 | resolved "https://registry.nlark.com/@babel/parser/download/@babel/parser-7.15.7.tgz?cache=0&sync_timestamp=1631921300140&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.15.7.tgz" 240 | integrity sha1-DD7UousHsWXfqFs8xFxyczTE7a4= 241 | 242 | "@babel/parser@^7.15.8": 243 | version "7.15.8" 244 | resolved "https://registry.npmmirror.com/@babel/parser/download/@babel/parser-7.15.8.tgz#7bacdcbe71bdc3ff936d510c15dcea7cf0b99016" 245 | integrity sha1-e6zcvnG9w/+TbVEMFdzqfPC5kBY= 246 | 247 | "@babel/plugin-syntax-jsx@^7.14.5": 248 | version "7.14.5" 249 | resolved "https://registry.nlark.com/@babel/plugin-syntax-jsx/download/@babel/plugin-syntax-jsx-7.14.5.tgz#000e2e25d8673cce49300517a3eda44c263e4201" 250 | integrity sha1-AA4uJdhnPM5JMAUXo+2kTCY+QgE= 251 | dependencies: 252 | "@babel/helper-plugin-utils" "^7.14.5" 253 | 254 | "@babel/plugin-transform-react-jsx-development@^7.14.5": 255 | version "7.14.5" 256 | resolved "https://registry.nlark.com/@babel/plugin-transform-react-jsx-development/download/@babel/plugin-transform-react-jsx-development-7.14.5.tgz#1a6c73e2f7ed2c42eebc3d2ad60b0c7494fcb9af" 257 | integrity sha1-Gmxz4vftLELuvD0q1gsMdJT8ua8= 258 | dependencies: 259 | "@babel/plugin-transform-react-jsx" "^7.14.5" 260 | 261 | "@babel/plugin-transform-react-jsx-self@^7.14.5", "@babel/plugin-transform-react-jsx-self@^7.14.9": 262 | version "7.14.9" 263 | resolved "https://registry.nlark.com/@babel/plugin-transform-react-jsx-self/download/@babel/plugin-transform-react-jsx-self-7.14.9.tgz?cache=0&sync_timestamp=1627804577561&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-react-jsx-self%2Fdownload%2F%40babel%2Fplugin-transform-react-jsx-self-7.14.9.tgz" 264 | integrity sha1-MwQeZlRTOR627lSi7PO6HUa9MPQ= 265 | dependencies: 266 | "@babel/helper-plugin-utils" "^7.14.5" 267 | 268 | "@babel/plugin-transform-react-jsx-source@^7.14.5": 269 | version "7.14.5" 270 | resolved "https://registry.nlark.com/@babel/plugin-transform-react-jsx-source/download/@babel/plugin-transform-react-jsx-source-7.14.5.tgz" 271 | integrity sha1-efco5g5tvTGiuGCwv2yXZZGKzx0= 272 | dependencies: 273 | "@babel/helper-plugin-utils" "^7.14.5" 274 | 275 | "@babel/plugin-transform-react-jsx@^7.14.5", "@babel/plugin-transform-react-jsx@^7.14.9": 276 | version "7.14.9" 277 | resolved "https://registry.nlark.com/@babel/plugin-transform-react-jsx/download/@babel/plugin-transform-react-jsx-7.14.9.tgz?cache=0&sync_timestamp=1627875065052&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-react-jsx%2Fdownload%2F%40babel%2Fplugin-transform-react-jsx-7.14.9.tgz#3314b2163033abac5200a869c4de242cd50a914c" 278 | integrity sha1-MxSyFjAzq6xSAKhpxN4kLNUKkUw= 279 | dependencies: 280 | "@babel/helper-annotate-as-pure" "^7.14.5" 281 | "@babel/helper-module-imports" "^7.14.5" 282 | "@babel/helper-plugin-utils" "^7.14.5" 283 | "@babel/plugin-syntax-jsx" "^7.14.5" 284 | "@babel/types" "^7.14.9" 285 | 286 | "@babel/runtime@^7.1.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13": 287 | version "7.15.4" 288 | resolved "https://registry.nlark.com/@babel/runtime/download/@babel/runtime-7.15.4.tgz" 289 | integrity sha1-/RfRa/34eObdAtGXU6OfqKjZyEo= 290 | dependencies: 291 | regenerator-runtime "^0.13.4" 292 | 293 | "@babel/template@^7.15.4": 294 | version "7.15.4" 295 | resolved "https://registry.nlark.com/@babel/template/download/@babel/template-7.15.4.tgz" 296 | integrity sha1-UYmNNdzz+qZwxO5q/P1RfuE58ZQ= 297 | dependencies: 298 | "@babel/code-frame" "^7.14.5" 299 | "@babel/parser" "^7.15.4" 300 | "@babel/types" "^7.15.4" 301 | 302 | "@babel/traverse@^7.15.4", "@babel/traverse@^7.4.5": 303 | version "7.15.4" 304 | resolved "https://registry.nlark.com/@babel/traverse/download/@babel/traverse-7.15.4.tgz" 305 | integrity sha1-/4UQNnoUS/v/VS2eGOKPPiiJwi0= 306 | dependencies: 307 | "@babel/code-frame" "^7.14.5" 308 | "@babel/generator" "^7.15.4" 309 | "@babel/helper-function-name" "^7.15.4" 310 | "@babel/helper-hoist-variables" "^7.15.4" 311 | "@babel/helper-split-export-declaration" "^7.15.4" 312 | "@babel/parser" "^7.15.4" 313 | "@babel/types" "^7.15.4" 314 | debug "^4.1.0" 315 | globals "^11.1.0" 316 | 317 | "@babel/types@^7.14.9", "@babel/types@^7.15.4", "@babel/types@^7.15.6": 318 | version "7.15.6" 319 | resolved "https://registry.nlark.com/@babel/types/download/@babel/types-7.15.6.tgz" 320 | integrity sha1-mavcSCGLKIHAWN0KerBbmcm+dY8= 321 | dependencies: 322 | "@babel/helper-validator-identifier" "^7.14.9" 323 | to-fast-properties "^2.0.0" 324 | 325 | "@emotion/is-prop-valid@^0.8.8": 326 | version "0.8.8" 327 | resolved "https://registry.npm.taobao.org/@emotion/is-prop-valid/download/@emotion/is-prop-valid-0.8.8.tgz" 328 | integrity sha1-2yixxDaKJZtgqXMR1qlS1P0BrBo= 329 | dependencies: 330 | "@emotion/memoize" "0.7.4" 331 | 332 | "@emotion/memoize@0.7.4": 333 | version "0.7.4" 334 | resolved "https://registry.npm.taobao.org/@emotion/memoize/download/@emotion/memoize-0.7.4.tgz" 335 | integrity sha1-Gb8PWvGRSREcQNmLsM+CEZ9dnus= 336 | 337 | "@emotion/stylis@^0.8.4": 338 | version "0.8.5" 339 | resolved "https://registry.npm.taobao.org/@emotion/stylis/download/@emotion/stylis-0.8.5.tgz" 340 | integrity sha1-3qyzib1u530ef8rMzp4WxcfnjgQ= 341 | 342 | "@emotion/unitless@^0.7.4": 343 | version "0.7.5" 344 | resolved "https://registry.npm.taobao.org/@emotion/unitless/download/@emotion/unitless-0.7.5.tgz" 345 | integrity sha1-dyESkcGQCnALinjPr9oxYNdpSe0= 346 | 347 | "@eslint/eslintrc@^0.4.3": 348 | version "0.4.3" 349 | resolved "https://registry.nlark.com/@eslint/eslintrc/download/@eslint/eslintrc-0.4.3.tgz" 350 | integrity sha1-nkKYHvA1vrPdSa3ResuW6P9vOUw= 351 | dependencies: 352 | ajv "^6.12.4" 353 | debug "^4.1.1" 354 | espree "^7.3.0" 355 | globals "^13.9.0" 356 | ignore "^4.0.6" 357 | import-fresh "^3.2.1" 358 | js-yaml "^3.13.1" 359 | minimatch "^3.0.4" 360 | strip-json-comments "^3.1.1" 361 | 362 | "@humanwhocodes/config-array@^0.5.0": 363 | version "0.5.0" 364 | resolved "https://registry.npmmirror.com/@humanwhocodes/config-array/download/@humanwhocodes/config-array-0.5.0.tgz" 365 | integrity sha1-FAeWfUxu7Nc4j4Os8er00Mbljvk= 366 | dependencies: 367 | "@humanwhocodes/object-schema" "^1.2.0" 368 | debug "^4.1.1" 369 | minimatch "^3.0.4" 370 | 371 | "@humanwhocodes/object-schema@^1.2.0": 372 | version "1.2.0" 373 | resolved "https://registry.nlark.com/@humanwhocodes/object-schema/download/@humanwhocodes/object-schema-1.2.0.tgz" 374 | integrity sha1-h956+cIxgm/daKxyWPd8Qp4OX88= 375 | 376 | "@nodelib/fs.scandir@2.1.5": 377 | version "2.1.5" 378 | resolved "https://registry.nlark.com/@nodelib/fs.scandir/download/@nodelib/fs.scandir-2.1.5.tgz" 379 | integrity sha1-dhnC6yGyVIP20WdUi0z9WnSIw9U= 380 | dependencies: 381 | "@nodelib/fs.stat" "2.0.5" 382 | run-parallel "^1.1.9" 383 | 384 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": 385 | version "2.0.5" 386 | resolved "https://registry.nlark.com/@nodelib/fs.stat/download/@nodelib/fs.stat-2.0.5.tgz" 387 | integrity sha1-W9Jir5Tp0lvR5xsF3u1Eh2oiLos= 388 | 389 | "@nodelib/fs.walk@^1.2.3": 390 | version "1.2.8" 391 | resolved "https://registry.nlark.com/@nodelib/fs.walk/download/@nodelib/fs.walk-1.2.8.tgz" 392 | integrity sha1-6Vc36LtnRt3t9pxVaVNJTxlv5po= 393 | dependencies: 394 | "@nodelib/fs.scandir" "2.1.5" 395 | fastq "^1.6.0" 396 | 397 | "@rollup/pluginutils@^4.1.1": 398 | version "4.1.1" 399 | resolved "https://registry.nlark.com/@rollup/pluginutils/download/@rollup/pluginutils-4.1.1.tgz" 400 | integrity sha1-HU2obdTt7RVlalfZM/2iuaCNR+w= 401 | dependencies: 402 | estree-walker "^2.0.1" 403 | picomatch "^2.2.2" 404 | 405 | "@types/hoist-non-react-statics@*": 406 | version "3.3.1" 407 | resolved "https://registry.nlark.com/@types/hoist-non-react-statics/download/@types/hoist-non-react-statics-3.3.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fhoist-non-react-statics%2Fdownload%2F%40types%2Fhoist-non-react-statics-3.3.1.tgz" 408 | integrity sha1-ESSq/lEYy1kZd66xzqrtEHDrA58= 409 | dependencies: 410 | "@types/react" "*" 411 | hoist-non-react-statics "^3.3.0" 412 | 413 | "@types/json-schema@^7.0.7": 414 | version "7.0.9" 415 | resolved "https://registry.nlark.com/@types/json-schema/download/@types/json-schema-7.0.9.tgz" 416 | integrity sha1-l+3JA36gw4WFMgsolk3eOznkZg0= 417 | 418 | "@types/prop-types@*": 419 | version "15.7.4" 420 | resolved "https://registry.nlark.com/@types/prop-types/download/@types/prop-types-15.7.4.tgz?cache=0&sync_timestamp=1629708829833&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fprop-types%2Fdownload%2F%40types%2Fprop-types-15.7.4.tgz" 421 | integrity sha1-/PcgXCXf95Xuea8eMNosl5CAjxE= 422 | 423 | "@types/react-dom@17.0.9": 424 | version "17.0.9" 425 | resolved "https://registry.nlark.com/@types/react-dom/download/@types/react-dom-17.0.9.tgz?cache=0&sync_timestamp=1629708976357&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Freact-dom%2Fdownload%2F%40types%2Freact-dom-17.0.9.tgz" 426 | integrity sha1-RBqYHanXvhFwQuGm/T2sSzD1Wt0= 427 | dependencies: 428 | "@types/react" "*" 429 | 430 | "@types/react@*", "@types/react@17.0.24": 431 | version "17.0.24" 432 | resolved "https://registry.nlark.com/@types/react/download/@types/react-17.0.24.tgz" 433 | integrity sha1-fhs/eND8U3glQ/m85tlJlZpYgL0= 434 | dependencies: 435 | "@types/prop-types" "*" 436 | "@types/scheduler" "*" 437 | csstype "^3.0.2" 438 | 439 | "@types/scheduler@*": 440 | version "0.16.2" 441 | resolved "https://registry.nlark.com/@types/scheduler/download/@types/scheduler-0.16.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fscheduler%2Fdownload%2F%40types%2Fscheduler-0.16.2.tgz" 442 | integrity sha1-GmL4lSVyPd4kuhsBsJK/XfitTTk= 443 | 444 | "@types/styled-components@^5.1.14": 445 | version "5.1.14" 446 | resolved "https://registry.nlark.com/@types/styled-components/download/@types/styled-components-5.1.14.tgz?cache=0&sync_timestamp=1630748522443&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fstyled-components%2Fdownload%2F%40types%2Fstyled-components-5.1.14.tgz" 447 | integrity sha1-6c+M217vnROWKBg6hMCD9jBjXWc= 448 | dependencies: 449 | "@types/hoist-non-react-statics" "*" 450 | "@types/react" "*" 451 | csstype "^3.0.2" 452 | 453 | "@typescript-eslint/eslint-plugin@^4.33.0": 454 | version "4.33.0" 455 | resolved "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/download/@typescript-eslint/eslint-plugin-4.33.0.tgz?cache=0&sync_timestamp=1633599729411&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40typescript-eslint%2Feslint-plugin%2Fdownload%2F%40typescript-eslint%2Feslint-plugin-4.33.0.tgz#c24dc7c8069c7706bc40d99f6fa87edcb2005276" 456 | integrity sha1-wk3HyAacdwa8QNmfb6h+3LIAUnY= 457 | dependencies: 458 | "@typescript-eslint/experimental-utils" "4.33.0" 459 | "@typescript-eslint/scope-manager" "4.33.0" 460 | debug "^4.3.1" 461 | functional-red-black-tree "^1.0.1" 462 | ignore "^5.1.8" 463 | regexpp "^3.1.0" 464 | semver "^7.3.5" 465 | tsutils "^3.21.0" 466 | 467 | "@typescript-eslint/experimental-utils@4.33.0": 468 | version "4.33.0" 469 | resolved "https://registry.npmmirror.com/@typescript-eslint/experimental-utils/download/@typescript-eslint/experimental-utils-4.33.0.tgz?cache=0&sync_timestamp=1633599744822&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40typescript-eslint%2Fexperimental-utils%2Fdownload%2F%40typescript-eslint%2Fexperimental-utils-4.33.0.tgz" 470 | integrity sha1-byp4akIJ+iIimJ6TgLUzGygQ9/0= 471 | dependencies: 472 | "@types/json-schema" "^7.0.7" 473 | "@typescript-eslint/scope-manager" "4.33.0" 474 | "@typescript-eslint/types" "4.33.0" 475 | "@typescript-eslint/typescript-estree" "4.33.0" 476 | eslint-scope "^5.1.1" 477 | eslint-utils "^3.0.0" 478 | 479 | "@typescript-eslint/parser@^4.33.0": 480 | version "4.33.0" 481 | resolved "https://registry.npmmirror.com/@typescript-eslint/parser/download/@typescript-eslint/parser-4.33.0.tgz?cache=0&sync_timestamp=1633599730942&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40typescript-eslint%2Fparser%2Fdownload%2F%40typescript-eslint%2Fparser-4.33.0.tgz#dfe797570d9694e560528d18eecad86c8c744899" 482 | integrity sha1-3+eXVw2WlOVgUo0Y7srYbIx0SJk= 483 | dependencies: 484 | "@typescript-eslint/scope-manager" "4.33.0" 485 | "@typescript-eslint/types" "4.33.0" 486 | "@typescript-eslint/typescript-estree" "4.33.0" 487 | debug "^4.3.1" 488 | 489 | "@typescript-eslint/scope-manager@4.33.0": 490 | version "4.33.0" 491 | resolved "https://registry.npmmirror.com/@typescript-eslint/scope-manager/download/@typescript-eslint/scope-manager-4.33.0.tgz" 492 | integrity sha1-045JKA2YPody4pEhz4xukiHygKM= 493 | dependencies: 494 | "@typescript-eslint/types" "4.33.0" 495 | "@typescript-eslint/visitor-keys" "4.33.0" 496 | 497 | "@typescript-eslint/types@4.33.0": 498 | version "4.33.0" 499 | resolved "https://registry.npmmirror.com/@typescript-eslint/types/download/@typescript-eslint/types-4.33.0.tgz" 500 | integrity sha1-oeWQNqO1OuhDDO6/KpGdx/mvbXI= 501 | 502 | "@typescript-eslint/typescript-estree@4.33.0": 503 | version "4.33.0" 504 | resolved "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/download/@typescript-eslint/typescript-estree-4.33.0.tgz?cache=0&sync_timestamp=1633599748128&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40typescript-eslint%2Ftypescript-estree%2Fdownload%2F%40typescript-eslint%2Ftypescript-estree-4.33.0.tgz" 505 | integrity sha1-DftRwpCPaMXAjYKu/q8WahfCRgk= 506 | dependencies: 507 | "@typescript-eslint/types" "4.33.0" 508 | "@typescript-eslint/visitor-keys" "4.33.0" 509 | debug "^4.3.1" 510 | globby "^11.0.3" 511 | is-glob "^4.0.1" 512 | semver "^7.3.5" 513 | tsutils "^3.21.0" 514 | 515 | "@typescript-eslint/visitor-keys@4.33.0": 516 | version "4.33.0" 517 | resolved "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/download/@typescript-eslint/visitor-keys-4.33.0.tgz" 518 | integrity sha1-KiL3ekFgQom3oYZYbp7EjKku8d0= 519 | dependencies: 520 | "@typescript-eslint/types" "4.33.0" 521 | eslint-visitor-keys "^2.0.0" 522 | 523 | "@vitejs/plugin-react-refresh@1.3.6": 524 | version "1.3.6" 525 | resolved "https://registry.nlark.com/@vitejs/plugin-react-refresh/download/@vitejs/plugin-react-refresh-1.3.6.tgz" 526 | integrity sha1-GYGDktsB6BdGz+sE4JarMBDnn+M= 527 | dependencies: 528 | "@babel/core" "^7.14.8" 529 | "@babel/plugin-transform-react-jsx-self" "^7.14.5" 530 | "@babel/plugin-transform-react-jsx-source" "^7.14.5" 531 | "@rollup/pluginutils" "^4.1.1" 532 | react-refresh "^0.10.0" 533 | 534 | "@vitejs/plugin-react@^1.0.2": 535 | version "1.0.2" 536 | resolved "https://registry.npmmirror.com/@vitejs/plugin-react/download/@vitejs/plugin-react-1.0.2.tgz#08147baff5bcc0c66740209823169103d73437b3" 537 | integrity sha1-CBR7r/W8wMZnQCCYIxaRA9c0N7M= 538 | dependencies: 539 | "@babel/core" "^7.15.5" 540 | "@babel/plugin-transform-react-jsx" "^7.14.9" 541 | "@babel/plugin-transform-react-jsx-development" "^7.14.5" 542 | "@babel/plugin-transform-react-jsx-self" "^7.14.9" 543 | "@babel/plugin-transform-react-jsx-source" "^7.14.5" 544 | "@rollup/pluginutils" "^4.1.1" 545 | react-refresh "^0.10.0" 546 | resolve "^1.20.0" 547 | 548 | acorn-jsx@^5.3.1: 549 | version "5.3.2" 550 | resolved "https://registry.nlark.com/acorn-jsx/download/acorn-jsx-5.3.2.tgz" 551 | integrity sha1-ftW7VZCLOy8bxVxq8WU7rafweTc= 552 | 553 | acorn@^7.4.0: 554 | version "7.4.1" 555 | resolved "https://registry.nlark.com/acorn/download/acorn-7.4.1.tgz?cache=0&sync_timestamp=1630916517167&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-7.4.1.tgz" 556 | integrity sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo= 557 | 558 | ajv@^6.10.0, ajv@^6.12.4: 559 | version "6.12.6" 560 | resolved "https://registry.nlark.com/ajv/download/ajv-6.12.6.tgz" 561 | integrity sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ= 562 | dependencies: 563 | fast-deep-equal "^3.1.1" 564 | fast-json-stable-stringify "^2.0.0" 565 | json-schema-traverse "^0.4.1" 566 | uri-js "^4.2.2" 567 | 568 | ajv@^8.0.1: 569 | version "8.6.3" 570 | resolved "https://registry.nlark.com/ajv/download/ajv-8.6.3.tgz" 571 | integrity sha1-EaZlJ3Ydw+mjhF6nddLTwEFOh2Q= 572 | dependencies: 573 | fast-deep-equal "^3.1.1" 574 | json-schema-traverse "^1.0.0" 575 | require-from-string "^2.0.2" 576 | uri-js "^4.2.2" 577 | 578 | ansi-colors@^4.1.1: 579 | version "4.1.1" 580 | resolved "https://registry.nlark.com/ansi-colors/download/ansi-colors-4.1.1.tgz" 581 | integrity sha1-y7muJWv3UK8eqzRPIpqif+lLo0g= 582 | 583 | ansi-regex@^5.0.1: 584 | version "5.0.1" 585 | resolved "https://registry.nlark.com/ansi-regex/download/ansi-regex-5.0.1.tgz" 586 | integrity sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ= 587 | 588 | ansi-styles@^3.2.1: 589 | version "3.2.1" 590 | resolved "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz" 591 | integrity sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0= 592 | dependencies: 593 | color-convert "^1.9.0" 594 | 595 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 596 | version "4.3.0" 597 | resolved "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz" 598 | integrity sha1-7dgDYornHATIWuegkG7a00tkiTc= 599 | dependencies: 600 | color-convert "^2.0.1" 601 | 602 | argparse@^1.0.7: 603 | version "1.0.10" 604 | resolved "https://registry.nlark.com/argparse/download/argparse-1.0.10.tgz" 605 | integrity sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE= 606 | dependencies: 607 | sprintf-js "~1.0.2" 608 | 609 | array-includes@^3.1.3: 610 | version "3.1.4" 611 | resolved "https://registry.npmmirror.com/array-includes/download/array-includes-3.1.4.tgz" 612 | integrity sha1-9bSTFix2DzU5Yx8AW6K7Rqy0W6k= 613 | dependencies: 614 | call-bind "^1.0.2" 615 | define-properties "^1.1.3" 616 | es-abstract "^1.19.1" 617 | get-intrinsic "^1.1.1" 618 | is-string "^1.0.7" 619 | 620 | array-union@^2.1.0: 621 | version "2.1.0" 622 | resolved "https://registry.nlark.com/array-union/download/array-union-2.1.0.tgz" 623 | integrity sha1-t5hCCtvrHego2ErNii4j0+/oXo0= 624 | 625 | array.prototype.flatmap@^1.2.4: 626 | version "1.2.5" 627 | resolved "https://registry.npmmirror.com/array.prototype.flatmap/download/array.prototype.flatmap-1.2.5.tgz" 628 | integrity sha1-kI3ILYpAaTD984WY1R50EdGNREY= 629 | dependencies: 630 | call-bind "^1.0.0" 631 | define-properties "^1.1.3" 632 | es-abstract "^1.19.0" 633 | 634 | astral-regex@^2.0.0: 635 | version "2.0.0" 636 | resolved "https://registry.nlark.com/astral-regex/download/astral-regex-2.0.0.tgz" 637 | integrity sha1-SDFDxWeu7UeFdZwIZXhtx319LjE= 638 | 639 | axios@0.22.0: 640 | version "0.22.0" 641 | resolved "https://registry.npmmirror.com/axios/download/axios-0.22.0.tgz" 642 | integrity sha1-v3AsQftQ+8pFOVidg5oHcRe3myU= 643 | dependencies: 644 | follow-redirects "^1.14.4" 645 | 646 | "babel-plugin-styled-components@>= 1.12.0": 647 | version "1.13.2" 648 | resolved "https://registry.nlark.com/babel-plugin-styled-components/download/babel-plugin-styled-components-1.13.2.tgz" 649 | integrity sha1-6+Dm3v9R1/k/ztoYGem5auuIJ40= 650 | dependencies: 651 | "@babel/helper-annotate-as-pure" "^7.0.0" 652 | "@babel/helper-module-imports" "^7.0.0" 653 | babel-plugin-syntax-jsx "^6.18.0" 654 | lodash "^4.17.11" 655 | 656 | babel-plugin-syntax-jsx@^6.18.0: 657 | version "6.18.0" 658 | resolved "https://registry.npm.taobao.org/babel-plugin-syntax-jsx/download/babel-plugin-syntax-jsx-6.18.0.tgz" 659 | integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY= 660 | 661 | balanced-match@^1.0.0: 662 | version "1.0.2" 663 | resolved "https://registry.nlark.com/balanced-match/download/balanced-match-1.0.2.tgz" 664 | integrity sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4= 665 | 666 | brace-expansion@^1.1.7: 667 | version "1.1.11" 668 | resolved "https://registry.nlark.com/brace-expansion/download/brace-expansion-1.1.11.tgz" 669 | integrity sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0= 670 | dependencies: 671 | balanced-match "^1.0.0" 672 | concat-map "0.0.1" 673 | 674 | braces@^3.0.1: 675 | version "3.0.2" 676 | resolved "https://registry.nlark.com/braces/download/braces-3.0.2.tgz" 677 | integrity sha1-NFThpGLujVmeI23zNs2epPiv4Qc= 678 | dependencies: 679 | fill-range "^7.0.1" 680 | 681 | browserslist@^4.16.6: 682 | version "4.17.1" 683 | resolved "https://registry.nlark.com/browserslist/download/browserslist-4.17.1.tgz?cache=0&sync_timestamp=1632288345505&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.17.1.tgz" 684 | integrity sha1-qY0QT1SvRBKQt9WSYm3VQfpkLrk= 685 | dependencies: 686 | caniuse-lite "^1.0.30001259" 687 | electron-to-chromium "^1.3.846" 688 | escalade "^3.1.1" 689 | nanocolors "^0.1.5" 690 | node-releases "^1.1.76" 691 | 692 | call-bind@^1.0.0, call-bind@^1.0.2: 693 | version "1.0.2" 694 | resolved "https://registry.nlark.com/call-bind/download/call-bind-1.0.2.tgz" 695 | integrity sha1-sdTonmiBGcPJqQOtMKuy9qkZvjw= 696 | dependencies: 697 | function-bind "^1.1.1" 698 | get-intrinsic "^1.0.2" 699 | 700 | callsites@^3.0.0: 701 | version "3.1.0" 702 | resolved "https://registry.nlark.com/callsites/download/callsites-3.1.0.tgz" 703 | integrity sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M= 704 | 705 | camelize@^1.0.0: 706 | version "1.0.0" 707 | resolved "https://registry.npm.taobao.org/camelize/download/camelize-1.0.0.tgz" 708 | integrity sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs= 709 | 710 | caniuse-lite@^1.0.30001259: 711 | version "1.0.30001259" 712 | resolved "https://registry.nlark.com/caniuse-lite/download/caniuse-lite-1.0.30001259.tgz" 713 | integrity sha1-riFpHT2pxL5hREA6xA9x2fbv15A= 714 | 715 | chalk@^2.0.0: 716 | version "2.4.2" 717 | resolved "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz?cache=0&sync_timestamp=1627646614989&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz" 718 | integrity sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ= 719 | dependencies: 720 | ansi-styles "^3.2.1" 721 | escape-string-regexp "^1.0.5" 722 | supports-color "^5.3.0" 723 | 724 | chalk@^4.0.0: 725 | version "4.1.2" 726 | resolved "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646850823&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz" 727 | integrity sha1-qsTit3NKdAhnrrFr8CqtVWoeegE= 728 | dependencies: 729 | ansi-styles "^4.1.0" 730 | supports-color "^7.1.0" 731 | 732 | classnames@2.3.1: 733 | version "2.3.1" 734 | resolved "https://registry.nlark.com/classnames/download/classnames-2.3.1.tgz" 735 | integrity sha1-38+jiR4wbsHa0QXQ6I9EF7hTXo4= 736 | 737 | color-convert@^1.9.0: 738 | version "1.9.3" 739 | resolved "https://registry.nlark.com/color-convert/download/color-convert-1.9.3.tgz?cache=0&sync_timestamp=1624607968569&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcolor-convert%2Fdownload%2Fcolor-convert-1.9.3.tgz" 740 | integrity sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg= 741 | dependencies: 742 | color-name "1.1.3" 743 | 744 | color-convert@^2.0.1: 745 | version "2.0.1" 746 | resolved "https://registry.nlark.com/color-convert/download/color-convert-2.0.1.tgz" 747 | integrity sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM= 748 | dependencies: 749 | color-name "~1.1.4" 750 | 751 | color-name@1.1.3: 752 | version "1.1.3" 753 | resolved "https://registry.nlark.com/color-name/download/color-name-1.1.3.tgz" 754 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 755 | 756 | color-name@~1.1.4: 757 | version "1.1.4" 758 | resolved "https://registry.nlark.com/color-name/download/color-name-1.1.4.tgz" 759 | integrity sha1-wqCah6y95pVD3m9j+jmVyCbFNqI= 760 | 761 | concat-map@0.0.1: 762 | version "0.0.1" 763 | resolved "https://registry.nlark.com/concat-map/download/concat-map-0.0.1.tgz" 764 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 765 | 766 | convert-source-map@^1.7.0: 767 | version "1.8.0" 768 | resolved "https://registry.nlark.com/convert-source-map/download/convert-source-map-1.8.0.tgz" 769 | integrity sha1-8zc8MtIbTXgN2ABFFGhPt5HKQ2k= 770 | dependencies: 771 | safe-buffer "~5.1.1" 772 | 773 | cross-spawn@^7.0.2: 774 | version "7.0.3" 775 | resolved "https://registry.nlark.com/cross-spawn/download/cross-spawn-7.0.3.tgz" 776 | integrity sha1-9zqFudXUHQRVUcF34ogtSshXKKY= 777 | dependencies: 778 | path-key "^3.1.0" 779 | shebang-command "^2.0.0" 780 | which "^2.0.1" 781 | 782 | css-color-keywords@^1.0.0: 783 | version "1.0.0" 784 | resolved "https://registry.npm.taobao.org/css-color-keywords/download/css-color-keywords-1.0.0.tgz" 785 | integrity sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU= 786 | 787 | css-to-react-native@^3.0.0: 788 | version "3.0.0" 789 | resolved "https://registry.npm.taobao.org/css-to-react-native/download/css-to-react-native-3.0.0.tgz" 790 | integrity sha1-YtvmeAcqgkpom8/uAR/JbgKn11Y= 791 | dependencies: 792 | camelize "^1.0.0" 793 | css-color-keywords "^1.0.0" 794 | postcss-value-parser "^4.0.2" 795 | 796 | csstype@^3.0.2: 797 | version "3.0.9" 798 | resolved "https://registry.nlark.com/csstype/download/csstype-3.0.9.tgz?cache=0&sync_timestamp=1631540708034&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcsstype%2Fdownload%2Fcsstype-3.0.9.tgz" 799 | integrity sha1-ZBCvMbJr0FIJM9AsvGT86c4/vws= 800 | 801 | debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: 802 | version "4.3.2" 803 | resolved "https://registry.nlark.com/debug/download/debug-4.3.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdebug%2Fdownload%2Fdebug-4.3.2.tgz" 804 | integrity sha1-8KScGKyHeeMdSgxgKd+3aHPHQos= 805 | dependencies: 806 | ms "2.1.2" 807 | 808 | decode-uri-component@^0.2.0: 809 | version "0.2.0" 810 | resolved "https://registry.nlark.com/decode-uri-component/download/decode-uri-component-0.2.0.tgz" 811 | integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= 812 | 813 | deep-is@^0.1.3: 814 | version "0.1.4" 815 | resolved "https://registry.nlark.com/deep-is/download/deep-is-0.1.4.tgz?cache=0&sync_timestamp=1630774990168&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdeep-is%2Fdownload%2Fdeep-is-0.1.4.tgz" 816 | integrity sha1-pvLc5hL63S7x9Rm3NVHxfoUZmDE= 817 | 818 | define-properties@^1.1.3: 819 | version "1.1.3" 820 | resolved "https://registry.nlark.com/define-properties/download/define-properties-1.1.3.tgz" 821 | integrity sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE= 822 | dependencies: 823 | object-keys "^1.0.12" 824 | 825 | dequal@2.0.2: 826 | version "2.0.2" 827 | resolved "https://registry.npm.taobao.org/dequal/download/dequal-2.0.2.tgz" 828 | integrity sha1-hcoiAl46h+Ze91p6Q3s1KEp+MZ0= 829 | 830 | dir-glob@^3.0.1: 831 | version "3.0.1" 832 | resolved "https://registry.nlark.com/dir-glob/download/dir-glob-3.0.1.tgz" 833 | integrity sha1-Vtv3PZkqSpO6FYT0U0Bj/S5BcX8= 834 | dependencies: 835 | path-type "^4.0.0" 836 | 837 | doctrine@^2.1.0: 838 | version "2.1.0" 839 | resolved "https://registry.nlark.com/doctrine/download/doctrine-2.1.0.tgz" 840 | integrity sha1-XNAfwQFiG0LEzX9dGmYkNxbT850= 841 | dependencies: 842 | esutils "^2.0.2" 843 | 844 | doctrine@^3.0.0: 845 | version "3.0.0" 846 | resolved "https://registry.nlark.com/doctrine/download/doctrine-3.0.0.tgz" 847 | integrity sha1-rd6+rXKmV023g2OdyHoSF3OXOWE= 848 | dependencies: 849 | esutils "^2.0.2" 850 | 851 | electron-to-chromium@^1.3.846: 852 | version "1.3.846" 853 | resolved "https://registry.nlark.com/electron-to-chromium/download/electron-to-chromium-1.3.846.tgz" 854 | integrity sha1-pV/VlhPbyu1gnpZePoj0KwjEAdM= 855 | 856 | emoji-regex@^8.0.0: 857 | version "8.0.0" 858 | resolved "https://registry.npmmirror.com/emoji-regex/download/emoji-regex-8.0.0.tgz?cache=0&sync_timestamp=1632751313004&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Femoji-regex%2Fdownload%2Femoji-regex-8.0.0.tgz" 859 | integrity sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc= 860 | 861 | enquirer@^2.3.5: 862 | version "2.3.6" 863 | resolved "https://registry.nlark.com/enquirer/download/enquirer-2.3.6.tgz" 864 | integrity sha1-Kn/l3WNKHkElqXXsmU/1RW3Dc00= 865 | dependencies: 866 | ansi-colors "^4.1.1" 867 | 868 | es-abstract@^1.19.0, es-abstract@^1.19.1: 869 | version "1.19.1" 870 | resolved "https://registry.npmmirror.com/es-abstract/download/es-abstract-1.19.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fes-abstract%2Fdownload%2Fes-abstract-1.19.1.tgz" 871 | integrity sha1-1IhXlodpFpWd547aoN9FZicRXsM= 872 | dependencies: 873 | call-bind "^1.0.2" 874 | es-to-primitive "^1.2.1" 875 | function-bind "^1.1.1" 876 | get-intrinsic "^1.1.1" 877 | get-symbol-description "^1.0.0" 878 | has "^1.0.3" 879 | has-symbols "^1.0.2" 880 | internal-slot "^1.0.3" 881 | is-callable "^1.2.4" 882 | is-negative-zero "^2.0.1" 883 | is-regex "^1.1.4" 884 | is-shared-array-buffer "^1.0.1" 885 | is-string "^1.0.7" 886 | is-weakref "^1.0.1" 887 | object-inspect "^1.11.0" 888 | object-keys "^1.1.1" 889 | object.assign "^4.1.2" 890 | string.prototype.trimend "^1.0.4" 891 | string.prototype.trimstart "^1.0.4" 892 | unbox-primitive "^1.0.1" 893 | 894 | es-to-primitive@^1.2.1: 895 | version "1.2.1" 896 | resolved "https://registry.nlark.com/es-to-primitive/download/es-to-primitive-1.2.1.tgz" 897 | integrity sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo= 898 | dependencies: 899 | is-callable "^1.1.4" 900 | is-date-object "^1.0.1" 901 | is-symbol "^1.0.2" 902 | 903 | esbuild-android-arm64@0.13.4: 904 | version "0.13.4" 905 | resolved "https://registry.npmmirror.com/esbuild-android-arm64/download/esbuild-android-arm64-0.13.4.tgz#5178a20d2b7aba741a31c19609f9e67b346996b9" 906 | integrity sha1-UXiiDSt6unQaMcGWCfnmezRplrk= 907 | 908 | esbuild-darwin-64@0.13.4: 909 | version "0.13.4" 910 | resolved "https://registry.npmmirror.com/esbuild-darwin-64/download/esbuild-darwin-64-0.13.4.tgz#7a3e66c8e1271b650541b25eed65c84f3564a69d" 911 | integrity sha1-ej5myOEnG2UFQbJe7WXITzVkpp0= 912 | 913 | esbuild-darwin-arm64@0.13.4: 914 | version "0.13.4" 915 | resolved "https://registry.npmmirror.com/esbuild-darwin-arm64/download/esbuild-darwin-arm64-0.13.4.tgz#793feca6032b2a57ef291eb9b2d33768d60a49d6" 916 | integrity sha1-eT/spgMrKlfvKR65stM3aNYKSdY= 917 | 918 | esbuild-freebsd-64@0.13.4: 919 | version "0.13.4" 920 | resolved "https://registry.npmmirror.com/esbuild-freebsd-64/download/esbuild-freebsd-64-0.13.4.tgz#294aec3c2cf4b41fb6900212fc9c33dd8fbbb4a2" 921 | integrity sha1-KUrsPCz0tB+2kAIS/Jwz3Y+7tKI= 922 | 923 | esbuild-freebsd-arm64@0.13.4: 924 | version "0.13.4" 925 | resolved "https://registry.npmmirror.com/esbuild-freebsd-arm64/download/esbuild-freebsd-arm64-0.13.4.tgz#09fe66c751c12f9b976976b1d83f3de594cb2787" 926 | integrity sha1-Cf5mx1HBL5uXaXax2D895ZTLJ4c= 927 | 928 | esbuild-linux-32@0.13.4: 929 | version "0.13.4" 930 | resolved "https://registry.npmmirror.com/esbuild-linux-32/download/esbuild-linux-32-0.13.4.tgz#a9f0793d7bcc9cef4f4ffa4398c525877fba5839" 931 | integrity sha1-qfB5PXvMnO9PT/pDmMUlh3+6WDk= 932 | 933 | esbuild-linux-64@0.13.4: 934 | version "0.13.4" 935 | resolved "https://registry.npmmirror.com/esbuild-linux-64/download/esbuild-linux-64-0.13.4.tgz" 936 | integrity sha1-wNC0ydYuO7+L3yzs43QDqm1g/C4= 937 | 938 | esbuild-linux-arm64@0.13.4: 939 | version "0.13.4" 940 | resolved "https://registry.npmmirror.com/esbuild-linux-arm64/download/esbuild-linux-arm64-0.13.4.tgz#1292d97bfa64a08d12728f8a7837bf92776c779b" 941 | integrity sha1-EpLZe/pkoI0Sco+KeDe/kndsd5s= 942 | 943 | esbuild-linux-arm@0.13.4: 944 | version "0.13.4" 945 | resolved "https://registry.npmmirror.com/esbuild-linux-arm/download/esbuild-linux-arm-0.13.4.tgz#186cd9b8885ac132b9953a4a0afe668168debd10" 946 | integrity sha1-GGzZuIhawTK5lTpKCv5mgWjevRA= 947 | 948 | esbuild-linux-mips64le@0.13.4: 949 | version "0.13.4" 950 | resolved "https://registry.npmmirror.com/esbuild-linux-mips64le/download/esbuild-linux-mips64le-0.13.4.tgz#42049bf72bc586817b4a51cc9e32148d13e5e807" 951 | integrity sha1-QgSb9yvFhoF7SlHMnjIUjRPl6Ac= 952 | 953 | esbuild-linux-ppc64le@0.13.4: 954 | version "0.13.4" 955 | resolved "https://registry.npmmirror.com/esbuild-linux-ppc64le/download/esbuild-linux-ppc64le-0.13.4.tgz#adf1ce2ef2302757c4383887da6ac4dd25be9d4f" 956 | integrity sha1-rfHOLvIwJ1fEODiH2mrE3SW+nU8= 957 | 958 | esbuild-openbsd-64@0.13.4: 959 | version "0.13.4" 960 | resolved "https://registry.npmmirror.com/esbuild-openbsd-64/download/esbuild-openbsd-64-0.13.4.tgz#1c8122101898c52a20c8786935cf3eb7a19b83b4" 961 | integrity sha1-HIEiEBiYxSogyHhpNc8+t6Gbg7Q= 962 | 963 | esbuild-sunos-64@0.13.4: 964 | version "0.13.4" 965 | resolved "https://registry.npmmirror.com/esbuild-sunos-64/download/esbuild-sunos-64-0.13.4.tgz#4ec95faa14a60f295fe485bebffefff408739337" 966 | integrity sha1-TslfqhSmDylf5IW+v/7/9Ahzkzc= 967 | 968 | esbuild-windows-32@0.13.4: 969 | version "0.13.4" 970 | resolved "https://registry.npmmirror.com/esbuild-windows-32/download/esbuild-windows-32-0.13.4.tgz#3182c380487b797b04d0ec2c80c2945666869080" 971 | integrity sha1-MYLDgEh7eXsE0OwsgMKUVmaGkIA= 972 | 973 | esbuild-windows-64@0.13.4: 974 | version "0.13.4" 975 | resolved "https://registry.npmmirror.com/esbuild-windows-64/download/esbuild-windows-64-0.13.4.tgz#b9e995f92d81f433a04f33611e603e82f9232e69" 976 | integrity sha1-uemV+S2B9DOgTzNhHmA+gvkjLmk= 977 | 978 | esbuild-windows-arm64@0.13.4: 979 | version "0.13.4" 980 | resolved "https://registry.npmmirror.com/esbuild-windows-arm64/download/esbuild-windows-arm64-0.13.4.tgz#fb239532f07b764d158f4cc787178ef4c6fadb5c" 981 | integrity sha1-+yOVMvB7dk0Vj0zHhxeO9Mb621w= 982 | 983 | esbuild@^0.13.2: 984 | version "0.13.4" 985 | resolved "https://registry.npmmirror.com/esbuild/download/esbuild-0.13.4.tgz" 986 | integrity sha1-zi3rVsT7Ngk4MRy/xn+ORnu2hBs= 987 | optionalDependencies: 988 | esbuild-android-arm64 "0.13.4" 989 | esbuild-darwin-64 "0.13.4" 990 | esbuild-darwin-arm64 "0.13.4" 991 | esbuild-freebsd-64 "0.13.4" 992 | esbuild-freebsd-arm64 "0.13.4" 993 | esbuild-linux-32 "0.13.4" 994 | esbuild-linux-64 "0.13.4" 995 | esbuild-linux-arm "0.13.4" 996 | esbuild-linux-arm64 "0.13.4" 997 | esbuild-linux-mips64le "0.13.4" 998 | esbuild-linux-ppc64le "0.13.4" 999 | esbuild-openbsd-64 "0.13.4" 1000 | esbuild-sunos-64 "0.13.4" 1001 | esbuild-windows-32 "0.13.4" 1002 | esbuild-windows-64 "0.13.4" 1003 | esbuild-windows-arm64 "0.13.4" 1004 | 1005 | escalade@^3.1.1: 1006 | version "3.1.1" 1007 | resolved "https://registry.npm.taobao.org/escalade/download/escalade-3.1.1.tgz" 1008 | integrity sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA= 1009 | 1010 | escape-string-regexp@^1.0.5: 1011 | version "1.0.5" 1012 | resolved "https://registry.nlark.com/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz" 1013 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 1014 | 1015 | escape-string-regexp@^4.0.0: 1016 | version "4.0.0" 1017 | resolved "https://registry.nlark.com/escape-string-regexp/download/escape-string-regexp-4.0.0.tgz" 1018 | integrity sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ= 1019 | 1020 | eslint-plugin-react@^7.26.1: 1021 | version "7.26.1" 1022 | resolved "https://registry.npmmirror.com/eslint-plugin-react/download/eslint-plugin-react-7.26.1.tgz#41bcfe3e39e6a5ac040971c1af94437c80daa40e" 1023 | integrity sha1-Qbz+PjnmpawECXHBr5RDfIDapA4= 1024 | dependencies: 1025 | array-includes "^3.1.3" 1026 | array.prototype.flatmap "^1.2.4" 1027 | doctrine "^2.1.0" 1028 | estraverse "^5.2.0" 1029 | jsx-ast-utils "^2.4.1 || ^3.0.0" 1030 | minimatch "^3.0.4" 1031 | object.entries "^1.1.4" 1032 | object.fromentries "^2.0.4" 1033 | object.hasown "^1.0.0" 1034 | object.values "^1.1.4" 1035 | prop-types "^15.7.2" 1036 | resolve "^2.0.0-next.3" 1037 | semver "^6.3.0" 1038 | string.prototype.matchall "^4.0.5" 1039 | 1040 | eslint-scope@^5.1.1: 1041 | version "5.1.1" 1042 | resolved "https://registry.nlark.com/eslint-scope/download/eslint-scope-5.1.1.tgz" 1043 | integrity sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw= 1044 | dependencies: 1045 | esrecurse "^4.3.0" 1046 | estraverse "^4.1.1" 1047 | 1048 | eslint-utils@^2.1.0: 1049 | version "2.1.0" 1050 | resolved "https://registry.nlark.com/eslint-utils/download/eslint-utils-2.1.0.tgz" 1051 | integrity sha1-0t5eA0JOcH3BDHQGjd7a5wh0Gyc= 1052 | dependencies: 1053 | eslint-visitor-keys "^1.1.0" 1054 | 1055 | eslint-utils@^3.0.0: 1056 | version "3.0.0" 1057 | resolved "https://registry.nlark.com/eslint-utils/download/eslint-utils-3.0.0.tgz" 1058 | integrity sha1-iuuvrOc0W7M1WdsKHxOh0tSMNnI= 1059 | dependencies: 1060 | eslint-visitor-keys "^2.0.0" 1061 | 1062 | eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: 1063 | version "1.3.0" 1064 | resolved "https://registry.nlark.com/eslint-visitor-keys/download/eslint-visitor-keys-1.3.0.tgz" 1065 | integrity sha1-MOvR73wv3/AcOk8VEESvJfqwUj4= 1066 | 1067 | eslint-visitor-keys@^2.0.0: 1068 | version "2.1.0" 1069 | resolved "https://registry.nlark.com/eslint-visitor-keys/download/eslint-visitor-keys-2.1.0.tgz" 1070 | integrity sha1-9lMoJZMFknOSyTjtROsKXJsr0wM= 1071 | 1072 | eslint@^7.32.0: 1073 | version "7.32.0" 1074 | resolved "https://registry.npmmirror.com/eslint/download/eslint-7.32.0.tgz?cache=0&sync_timestamp=1632525386220&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint%2Fdownload%2Feslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" 1075 | integrity sha1-xtMooUvj+wjI0dIeEsAv23oqgS0= 1076 | dependencies: 1077 | "@babel/code-frame" "7.12.11" 1078 | "@eslint/eslintrc" "^0.4.3" 1079 | "@humanwhocodes/config-array" "^0.5.0" 1080 | ajv "^6.10.0" 1081 | chalk "^4.0.0" 1082 | cross-spawn "^7.0.2" 1083 | debug "^4.0.1" 1084 | doctrine "^3.0.0" 1085 | enquirer "^2.3.5" 1086 | escape-string-regexp "^4.0.0" 1087 | eslint-scope "^5.1.1" 1088 | eslint-utils "^2.1.0" 1089 | eslint-visitor-keys "^2.0.0" 1090 | espree "^7.3.1" 1091 | esquery "^1.4.0" 1092 | esutils "^2.0.2" 1093 | fast-deep-equal "^3.1.3" 1094 | file-entry-cache "^6.0.1" 1095 | functional-red-black-tree "^1.0.1" 1096 | glob-parent "^5.1.2" 1097 | globals "^13.6.0" 1098 | ignore "^4.0.6" 1099 | import-fresh "^3.0.0" 1100 | imurmurhash "^0.1.4" 1101 | is-glob "^4.0.0" 1102 | js-yaml "^3.13.1" 1103 | json-stable-stringify-without-jsonify "^1.0.1" 1104 | levn "^0.4.1" 1105 | lodash.merge "^4.6.2" 1106 | minimatch "^3.0.4" 1107 | natural-compare "^1.4.0" 1108 | optionator "^0.9.1" 1109 | progress "^2.0.0" 1110 | regexpp "^3.1.0" 1111 | semver "^7.2.1" 1112 | strip-ansi "^6.0.0" 1113 | strip-json-comments "^3.1.0" 1114 | table "^6.0.9" 1115 | text-table "^0.2.0" 1116 | v8-compile-cache "^2.0.3" 1117 | 1118 | espree@^7.3.0, espree@^7.3.1: 1119 | version "7.3.1" 1120 | resolved "https://registry.nlark.com/espree/download/espree-7.3.1.tgz" 1121 | integrity sha1-8t8zC3Usb1UBn4vYm3ZgA5wbu7Y= 1122 | dependencies: 1123 | acorn "^7.4.0" 1124 | acorn-jsx "^5.3.1" 1125 | eslint-visitor-keys "^1.3.0" 1126 | 1127 | esprima@^4.0.0: 1128 | version "4.0.1" 1129 | resolved "https://registry.nlark.com/esprima/download/esprima-4.0.1.tgz" 1130 | integrity sha1-E7BM2z5sXRnfkatph6hpVhmwqnE= 1131 | 1132 | esquery@^1.4.0: 1133 | version "1.4.0" 1134 | resolved "https://registry.nlark.com/esquery/download/esquery-1.4.0.tgz" 1135 | integrity sha1-IUj/w4uC6McFff7UhCWz5h8PJKU= 1136 | dependencies: 1137 | estraverse "^5.1.0" 1138 | 1139 | esrecurse@^4.3.0: 1140 | version "4.3.0" 1141 | resolved "https://registry.nlark.com/esrecurse/download/esrecurse-4.3.0.tgz" 1142 | integrity sha1-eteWTWeauyi+5yzsY3WLHF0smSE= 1143 | dependencies: 1144 | estraverse "^5.2.0" 1145 | 1146 | estraverse@^4.1.1: 1147 | version "4.3.0" 1148 | resolved "https://registry.nlark.com/estraverse/download/estraverse-4.3.0.tgz" 1149 | integrity sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0= 1150 | 1151 | estraverse@^5.1.0, estraverse@^5.2.0: 1152 | version "5.2.0" 1153 | resolved "https://registry.nlark.com/estraverse/download/estraverse-5.2.0.tgz" 1154 | integrity sha1-MH30JUfmzHMk088DwVXVzbjFOIA= 1155 | 1156 | estree-walker@^2.0.1: 1157 | version "2.0.2" 1158 | resolved "https://registry.npm.taobao.org/estree-walker/download/estree-walker-2.0.2.tgz" 1159 | integrity sha1-UvAQF4wqTBF6d1fP6UKtt9LaTKw= 1160 | 1161 | esutils@^2.0.2: 1162 | version "2.0.3" 1163 | resolved "https://registry.nlark.com/esutils/download/esutils-2.0.3.tgz" 1164 | integrity sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q= 1165 | 1166 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: 1167 | version "3.1.3" 1168 | resolved "https://registry.nlark.com/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz" 1169 | integrity sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU= 1170 | 1171 | fast-glob@^3.1.1: 1172 | version "3.2.7" 1173 | resolved "https://registry.nlark.com/fast-glob/download/fast-glob-3.2.7.tgz?cache=0&sync_timestamp=1625772524389&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffast-glob%2Fdownload%2Ffast-glob-3.2.7.tgz" 1174 | integrity sha1-/Wy3otfpqnp4RhEehaGW1rL3ZqE= 1175 | dependencies: 1176 | "@nodelib/fs.stat" "^2.0.2" 1177 | "@nodelib/fs.walk" "^1.2.3" 1178 | glob-parent "^5.1.2" 1179 | merge2 "^1.3.0" 1180 | micromatch "^4.0.4" 1181 | 1182 | fast-json-stable-stringify@^2.0.0: 1183 | version "2.1.0" 1184 | resolved "https://registry.nlark.com/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz" 1185 | integrity sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM= 1186 | 1187 | fast-levenshtein@^2.0.6: 1188 | version "2.0.6" 1189 | resolved "https://registry.nlark.com/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz" 1190 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= 1191 | 1192 | fastq@^1.6.0: 1193 | version "1.13.0" 1194 | resolved "https://registry.nlark.com/fastq/download/fastq-1.13.0.tgz?cache=0&sync_timestamp=1631609750055&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffastq%2Fdownload%2Ffastq-1.13.0.tgz" 1195 | integrity sha1-YWdg+Ip1Jr38WWt8q4wYk4w2uYw= 1196 | dependencies: 1197 | reusify "^1.0.4" 1198 | 1199 | file-entry-cache@^6.0.1: 1200 | version "6.0.1" 1201 | resolved "https://registry.nlark.com/file-entry-cache/download/file-entry-cache-6.0.1.tgz" 1202 | integrity sha1-IRst2WWcsDlLBz5zI6w8kz1SICc= 1203 | dependencies: 1204 | flat-cache "^3.0.4" 1205 | 1206 | fill-range@^7.0.1: 1207 | version "7.0.1" 1208 | resolved "https://registry.nlark.com/fill-range/download/fill-range-7.0.1.tgz" 1209 | integrity sha1-GRmmp8df44ssfHflGYU12prN2kA= 1210 | dependencies: 1211 | to-regex-range "^5.0.1" 1212 | 1213 | filter-obj@^1.1.0: 1214 | version "1.1.0" 1215 | resolved "https://registry.nlark.com/filter-obj/download/filter-obj-1.1.0.tgz" 1216 | integrity sha1-mzERErxsYSehbgFsbF1/GeCAXFs= 1217 | 1218 | flat-cache@^3.0.4: 1219 | version "3.0.4" 1220 | resolved "https://registry.nlark.com/flat-cache/download/flat-cache-3.0.4.tgz" 1221 | integrity sha1-YbAzgwKy/p+Vfcwy/CqH8cMEixE= 1222 | dependencies: 1223 | flatted "^3.1.0" 1224 | rimraf "^3.0.2" 1225 | 1226 | flatted@^3.1.0: 1227 | version "3.2.2" 1228 | resolved "https://registry.nlark.com/flatted/download/flatted-3.2.2.tgz?cache=0&sync_timestamp=1627541049935&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fflatted%2Fdownload%2Fflatted-3.2.2.tgz" 1229 | integrity sha1-ZL/tXLaP48p4s+shStl7Y77c5WE= 1230 | 1231 | follow-redirects@^1.14.4: 1232 | version "1.14.4" 1233 | resolved "https://registry.nlark.com/follow-redirects/download/follow-redirects-1.14.4.tgz?cache=0&sync_timestamp=1631622112426&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.14.4.tgz" 1234 | integrity sha1-g4/fSKi73XnlLuUfsclOPtmLk3k= 1235 | 1236 | fs.realpath@^1.0.0: 1237 | version "1.0.0" 1238 | resolved "https://registry.nlark.com/fs.realpath/download/fs.realpath-1.0.0.tgz" 1239 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 1240 | 1241 | fsevents@~2.3.2: 1242 | version "2.3.2" 1243 | resolved "https://registry.nlark.com/fsevents/download/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 1244 | integrity sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro= 1245 | 1246 | function-bind@^1.1.1: 1247 | version "1.1.1" 1248 | resolved "https://registry.nlark.com/function-bind/download/function-bind-1.1.1.tgz" 1249 | integrity sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0= 1250 | 1251 | functional-red-black-tree@^1.0.1: 1252 | version "1.0.1" 1253 | resolved "https://registry.nlark.com/functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz" 1254 | integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= 1255 | 1256 | gensync@^1.0.0-beta.2: 1257 | version "1.0.0-beta.2" 1258 | resolved "https://registry.nlark.com/gensync/download/gensync-1.0.0-beta.2.tgz" 1259 | integrity sha1-MqbudsPX9S1GsrGuXZP+qFgKJeA= 1260 | 1261 | get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: 1262 | version "1.1.1" 1263 | resolved "https://registry.nlark.com/get-intrinsic/download/get-intrinsic-1.1.1.tgz" 1264 | integrity sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y= 1265 | dependencies: 1266 | function-bind "^1.1.1" 1267 | has "^1.0.3" 1268 | has-symbols "^1.0.1" 1269 | 1270 | get-symbol-description@^1.0.0: 1271 | version "1.0.0" 1272 | resolved "https://registry.nlark.com/get-symbol-description/download/get-symbol-description-1.0.0.tgz" 1273 | integrity sha1-f9uByQAQH71WTdXxowr1qtweWNY= 1274 | dependencies: 1275 | call-bind "^1.0.2" 1276 | get-intrinsic "^1.1.1" 1277 | 1278 | glob-parent@^5.1.2: 1279 | version "5.1.2" 1280 | resolved "https://registry.npmmirror.com/glob-parent/download/glob-parent-5.1.2.tgz" 1281 | integrity sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ= 1282 | dependencies: 1283 | is-glob "^4.0.1" 1284 | 1285 | glob@^7.1.3: 1286 | version "7.2.0" 1287 | resolved "https://registry.npmmirror.com/glob/download/glob-7.2.0.tgz" 1288 | integrity sha1-0VU1r3cy4C6Uj0xBYovZECk/YCM= 1289 | dependencies: 1290 | fs.realpath "^1.0.0" 1291 | inflight "^1.0.4" 1292 | inherits "2" 1293 | minimatch "^3.0.4" 1294 | once "^1.3.0" 1295 | path-is-absolute "^1.0.0" 1296 | 1297 | globals@^11.1.0: 1298 | version "11.12.0" 1299 | resolved "https://registry.nlark.com/globals/download/globals-11.12.0.tgz" 1300 | integrity sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4= 1301 | 1302 | globals@^13.6.0, globals@^13.9.0: 1303 | version "13.11.0" 1304 | resolved "https://registry.nlark.com/globals/download/globals-13.11.0.tgz" 1305 | integrity sha1-QO9njaEX/nvS4o8fqySVG9AlW+c= 1306 | dependencies: 1307 | type-fest "^0.20.2" 1308 | 1309 | globby@^11.0.3: 1310 | version "11.0.4" 1311 | resolved "https://registry.nlark.com/globby/download/globby-11.0.4.tgz" 1312 | integrity sha1-LLr/d8Lypi5x6bKBOme5ejowAaU= 1313 | dependencies: 1314 | array-union "^2.1.0" 1315 | dir-glob "^3.0.1" 1316 | fast-glob "^3.1.1" 1317 | ignore "^5.1.4" 1318 | merge2 "^1.3.0" 1319 | slash "^3.0.0" 1320 | 1321 | has-bigints@^1.0.1: 1322 | version "1.0.1" 1323 | resolved "https://registry.nlark.com/has-bigints/download/has-bigints-1.0.1.tgz" 1324 | integrity sha1-ZP5qywIGc+O3jbA1pa9pqp0HsRM= 1325 | 1326 | has-flag@^3.0.0: 1327 | version "3.0.0" 1328 | resolved "https://registry.nlark.com/has-flag/download/has-flag-3.0.0.tgz" 1329 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 1330 | 1331 | has-flag@^4.0.0: 1332 | version "4.0.0" 1333 | resolved "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz" 1334 | integrity sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s= 1335 | 1336 | has-symbols@^1.0.1, has-symbols@^1.0.2: 1337 | version "1.0.2" 1338 | resolved "https://registry.nlark.com/has-symbols/download/has-symbols-1.0.2.tgz" 1339 | integrity sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM= 1340 | 1341 | has-tostringtag@^1.0.0: 1342 | version "1.0.0" 1343 | resolved "https://registry.nlark.com/has-tostringtag/download/has-tostringtag-1.0.0.tgz" 1344 | integrity sha1-fhM4GKfTlHNPlB5zw9P5KR5liyU= 1345 | dependencies: 1346 | has-symbols "^1.0.2" 1347 | 1348 | has@^1.0.3: 1349 | version "1.0.3" 1350 | resolved "https://registry.nlark.com/has/download/has-1.0.3.tgz" 1351 | integrity sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y= 1352 | dependencies: 1353 | function-bind "^1.1.1" 1354 | 1355 | history@4.10.1, history@^4.9.0: 1356 | version "4.10.1" 1357 | resolved "https://registry.nlark.com/history/download/history-4.10.1.tgz" 1358 | integrity sha1-MzcaZeOoOyZ0NOKz87G0xYqtTPM= 1359 | dependencies: 1360 | "@babel/runtime" "^7.1.2" 1361 | loose-envify "^1.2.0" 1362 | resolve-pathname "^3.0.0" 1363 | tiny-invariant "^1.0.2" 1364 | tiny-warning "^1.0.0" 1365 | value-equal "^1.0.1" 1366 | 1367 | hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0: 1368 | version "3.3.2" 1369 | resolved "https://registry.npm.taobao.org/hoist-non-react-statics/download/hoist-non-react-statics-3.3.2.tgz" 1370 | integrity sha1-7OCsr3HWLClpwuxZ/v9CpLGoW0U= 1371 | dependencies: 1372 | react-is "^16.7.0" 1373 | 1374 | ignore@^4.0.6: 1375 | version "4.0.6" 1376 | resolved "https://registry.nlark.com/ignore/download/ignore-4.0.6.tgz" 1377 | integrity sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw= 1378 | 1379 | ignore@^5.1.4, ignore@^5.1.8: 1380 | version "5.1.8" 1381 | resolved "https://registry.nlark.com/ignore/download/ignore-5.1.8.tgz" 1382 | integrity sha1-8VCotQo0KJsz4i9YiavU2AFvDlc= 1383 | 1384 | import-fresh@^3.0.0, import-fresh@^3.2.1: 1385 | version "3.3.0" 1386 | resolved "https://registry.nlark.com/import-fresh/download/import-fresh-3.3.0.tgz" 1387 | integrity sha1-NxYsJfy566oublPVtNiM4X2eDCs= 1388 | dependencies: 1389 | parent-module "^1.0.0" 1390 | resolve-from "^4.0.0" 1391 | 1392 | imurmurhash@^0.1.4: 1393 | version "0.1.4" 1394 | resolved "https://registry.nlark.com/imurmurhash/download/imurmurhash-0.1.4.tgz" 1395 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= 1396 | 1397 | inflight@^1.0.4: 1398 | version "1.0.6" 1399 | resolved "https://registry.nlark.com/inflight/download/inflight-1.0.6.tgz" 1400 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 1401 | dependencies: 1402 | once "^1.3.0" 1403 | wrappy "1" 1404 | 1405 | inherits@2: 1406 | version "2.0.4" 1407 | resolved "https://registry.nlark.com/inherits/download/inherits-2.0.4.tgz" 1408 | integrity sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w= 1409 | 1410 | internal-slot@^1.0.3: 1411 | version "1.0.3" 1412 | resolved "https://registry.nlark.com/internal-slot/download/internal-slot-1.0.3.tgz" 1413 | integrity sha1-c0fjB97uovqsKsYgXUvH00ln9Zw= 1414 | dependencies: 1415 | get-intrinsic "^1.1.0" 1416 | has "^1.0.3" 1417 | side-channel "^1.0.4" 1418 | 1419 | is-bigint@^1.0.1: 1420 | version "1.0.4" 1421 | resolved "https://registry.nlark.com/is-bigint/download/is-bigint-1.0.4.tgz" 1422 | integrity sha1-CBR6GHW8KzIAXUHM2Ckd/8ZpHfM= 1423 | dependencies: 1424 | has-bigints "^1.0.1" 1425 | 1426 | is-boolean-object@^1.1.0: 1427 | version "1.1.2" 1428 | resolved "https://registry.nlark.com/is-boolean-object/download/is-boolean-object-1.1.2.tgz" 1429 | integrity sha1-XG3CACRt2TIa5LiFoRS7H3X2Nxk= 1430 | dependencies: 1431 | call-bind "^1.0.2" 1432 | has-tostringtag "^1.0.0" 1433 | 1434 | is-callable@^1.1.4, is-callable@^1.2.4: 1435 | version "1.2.4" 1436 | resolved "https://registry.nlark.com/is-callable/download/is-callable-1.2.4.tgz?cache=0&sync_timestamp=1628259899162&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-callable%2Fdownload%2Fis-callable-1.2.4.tgz" 1437 | integrity sha1-RzAdWN0CWUB4ZVR4U99tYf5HGUU= 1438 | 1439 | is-core-module@^2.2.0: 1440 | version "2.6.0" 1441 | resolved "https://registry.nlark.com/is-core-module/download/is-core-module-2.6.0.tgz" 1442 | integrity sha1-11U7JSb+Wbkro+QMjfdX7Ipwnhk= 1443 | dependencies: 1444 | has "^1.0.3" 1445 | 1446 | is-date-object@^1.0.1: 1447 | version "1.0.5" 1448 | resolved "https://registry.nlark.com/is-date-object/download/is-date-object-1.0.5.tgz" 1449 | integrity sha1-CEHVU25yTCVZe/bqYuG9OCmN8x8= 1450 | dependencies: 1451 | has-tostringtag "^1.0.0" 1452 | 1453 | is-extglob@^2.1.1: 1454 | version "2.1.1" 1455 | resolved "https://registry.nlark.com/is-extglob/download/is-extglob-2.1.1.tgz" 1456 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 1457 | 1458 | is-fullwidth-code-point@^3.0.0: 1459 | version "3.0.0" 1460 | resolved "https://registry.nlark.com/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz" 1461 | integrity sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0= 1462 | 1463 | is-glob@^4.0.0, is-glob@^4.0.1: 1464 | version "4.0.3" 1465 | resolved "https://registry.npmmirror.com/is-glob/download/is-glob-4.0.3.tgz" 1466 | integrity sha1-ZPYeQsu7LuwgcanawLKLoeZdUIQ= 1467 | dependencies: 1468 | is-extglob "^2.1.1" 1469 | 1470 | is-negative-zero@^2.0.1: 1471 | version "2.0.1" 1472 | resolved "https://registry.nlark.com/is-negative-zero/download/is-negative-zero-2.0.1.tgz" 1473 | integrity sha1-PedGwY3aIxkkGlNnWQjY92bxHCQ= 1474 | 1475 | is-number-object@^1.0.4: 1476 | version "1.0.6" 1477 | resolved "https://registry.nlark.com/is-number-object/download/is-number-object-1.0.6.tgz" 1478 | integrity sha1-anqvg4x/BoalC0VT9+VKlklOifA= 1479 | dependencies: 1480 | has-tostringtag "^1.0.0" 1481 | 1482 | is-number@^7.0.0: 1483 | version "7.0.0" 1484 | resolved "https://registry.nlark.com/is-number/download/is-number-7.0.0.tgz" 1485 | integrity sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss= 1486 | 1487 | is-regex@^1.1.4: 1488 | version "1.1.4" 1489 | resolved "https://registry.nlark.com/is-regex/download/is-regex-1.1.4.tgz?cache=0&sync_timestamp=1628222029198&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-regex%2Fdownload%2Fis-regex-1.1.4.tgz" 1490 | integrity sha1-7vVmPNWfpMCuM5UFMj32hUuxWVg= 1491 | dependencies: 1492 | call-bind "^1.0.2" 1493 | has-tostringtag "^1.0.0" 1494 | 1495 | is-shared-array-buffer@^1.0.1: 1496 | version "1.0.1" 1497 | resolved "https://registry.npmmirror.com/is-shared-array-buffer/download/is-shared-array-buffer-1.0.1.tgz?cache=0&sync_timestamp=1633062013521&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fis-shared-array-buffer%2Fdownload%2Fis-shared-array-buffer-1.0.1.tgz" 1498 | integrity sha1-l7DIX72stZycRG/mU7gs8rW3z+Y= 1499 | 1500 | is-string@^1.0.5, is-string@^1.0.7: 1501 | version "1.0.7" 1502 | resolved "https://registry.nlark.com/is-string/download/is-string-1.0.7.tgz?cache=0&sync_timestamp=1628213504076&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-string%2Fdownload%2Fis-string-1.0.7.tgz" 1503 | integrity sha1-DdEr8gBvJVu1j2lREO/3SR7rwP0= 1504 | dependencies: 1505 | has-tostringtag "^1.0.0" 1506 | 1507 | is-symbol@^1.0.2, is-symbol@^1.0.3: 1508 | version "1.0.4" 1509 | resolved "https://registry.nlark.com/is-symbol/download/is-symbol-1.0.4.tgz" 1510 | integrity sha1-ptrJO2NbBjymhyI23oiRClevE5w= 1511 | dependencies: 1512 | has-symbols "^1.0.2" 1513 | 1514 | is-weakref@^1.0.1: 1515 | version "1.0.1" 1516 | resolved "https://registry.nlark.com/is-weakref/download/is-weakref-1.0.1.tgz" 1517 | integrity sha1-hC26TsF/qayYUN8tbvvBc3J08qI= 1518 | dependencies: 1519 | call-bind "^1.0.0" 1520 | 1521 | isarray@0.0.1: 1522 | version "0.0.1" 1523 | resolved "https://registry.nlark.com/isarray/download/isarray-0.0.1.tgz" 1524 | integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= 1525 | 1526 | isexe@^2.0.0: 1527 | version "2.0.0" 1528 | resolved "https://registry.nlark.com/isexe/download/isexe-2.0.0.tgz" 1529 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 1530 | 1531 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: 1532 | version "4.0.0" 1533 | resolved "https://registry.nlark.com/js-tokens/download/js-tokens-4.0.0.tgz" 1534 | integrity sha1-GSA/tZmR35jjoocFDUZHzerzJJk= 1535 | 1536 | js-yaml@^3.13.1: 1537 | version "3.14.1" 1538 | resolved "https://registry.nlark.com/js-yaml/download/js-yaml-3.14.1.tgz" 1539 | integrity sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc= 1540 | dependencies: 1541 | argparse "^1.0.7" 1542 | esprima "^4.0.0" 1543 | 1544 | jsesc@^2.5.1: 1545 | version "2.5.2" 1546 | resolved "https://registry.nlark.com/jsesc/download/jsesc-2.5.2.tgz" 1547 | integrity sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q= 1548 | 1549 | json-schema-traverse@^0.4.1: 1550 | version "0.4.1" 1551 | resolved "https://registry.nlark.com/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz" 1552 | integrity sha1-afaofZUTq4u4/mO9sJecRI5oRmA= 1553 | 1554 | json-schema-traverse@^1.0.0: 1555 | version "1.0.0" 1556 | resolved "https://registry.nlark.com/json-schema-traverse/download/json-schema-traverse-1.0.0.tgz" 1557 | integrity sha1-rnvLNlard6c7pcSb9lTzjmtoYOI= 1558 | 1559 | json-stable-stringify-without-jsonify@^1.0.1: 1560 | version "1.0.1" 1561 | resolved "https://registry.nlark.com/json-stable-stringify-without-jsonify/download/json-stable-stringify-without-jsonify-1.0.1.tgz" 1562 | integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= 1563 | 1564 | json5@^2.1.2: 1565 | version "2.2.0" 1566 | resolved "https://registry.nlark.com/json5/download/json5-2.2.0.tgz" 1567 | integrity sha1-Lf7+cgxrpSXZ69kJlQ8FFTFsiaM= 1568 | dependencies: 1569 | minimist "^1.2.5" 1570 | 1571 | "jsx-ast-utils@^2.4.1 || ^3.0.0": 1572 | version "3.2.1" 1573 | resolved "https://registry.nlark.com/jsx-ast-utils/download/jsx-ast-utils-3.2.1.tgz" 1574 | integrity sha1-cguXv+fZAbkn2Hw3c2N66OpIeBs= 1575 | dependencies: 1576 | array-includes "^3.1.3" 1577 | object.assign "^4.1.2" 1578 | 1579 | levn@^0.4.1: 1580 | version "0.4.1" 1581 | resolved "https://registry.nlark.com/levn/download/levn-0.4.1.tgz" 1582 | integrity sha1-rkViwAdHO5MqYgDUAyaN0v/8at4= 1583 | dependencies: 1584 | prelude-ls "^1.2.1" 1585 | type-check "~0.4.0" 1586 | 1587 | lodash.clonedeep@^4.5.0: 1588 | version "4.5.0" 1589 | resolved "https://registry.nlark.com/lodash.clonedeep/download/lodash.clonedeep-4.5.0.tgz" 1590 | integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= 1591 | 1592 | lodash.merge@^4.6.2: 1593 | version "4.6.2" 1594 | resolved "https://registry.nlark.com/lodash.merge/download/lodash.merge-4.6.2.tgz" 1595 | integrity sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo= 1596 | 1597 | lodash.truncate@^4.4.2: 1598 | version "4.4.2" 1599 | resolved "https://registry.nlark.com/lodash.truncate/download/lodash.truncate-4.4.2.tgz" 1600 | integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= 1601 | 1602 | lodash@4.17.21, lodash@^4.17.11: 1603 | version "4.17.21" 1604 | resolved "https://registry.nlark.com/lodash/download/lodash-4.17.21.tgz" 1605 | integrity sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw= 1606 | 1607 | loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: 1608 | version "1.4.0" 1609 | resolved "https://registry.nlark.com/loose-envify/download/loose-envify-1.4.0.tgz" 1610 | integrity sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8= 1611 | dependencies: 1612 | js-tokens "^3.0.0 || ^4.0.0" 1613 | 1614 | lru-cache@^6.0.0: 1615 | version "6.0.0" 1616 | resolved "https://registry.nlark.com/lru-cache/download/lru-cache-6.0.0.tgz" 1617 | integrity sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ= 1618 | dependencies: 1619 | yallist "^4.0.0" 1620 | 1621 | merge2@^1.3.0: 1622 | version "1.4.1" 1623 | resolved "https://registry.nlark.com/merge2/download/merge2-1.4.1.tgz" 1624 | integrity sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4= 1625 | 1626 | micromatch@^4.0.4: 1627 | version "4.0.4" 1628 | resolved "https://registry.nlark.com/micromatch/download/micromatch-4.0.4.tgz" 1629 | integrity sha1-iW1Rnf6dsl/OlM63pQCRm/iB6/k= 1630 | dependencies: 1631 | braces "^3.0.1" 1632 | picomatch "^2.2.3" 1633 | 1634 | mini-create-react-context@^0.4.0: 1635 | version "0.4.1" 1636 | resolved "https://registry.nlark.com/mini-create-react-context/download/mini-create-react-context-0.4.1.tgz" 1637 | integrity sha1-ByFxVhv9ySLaCKYMIZekl8wtHV4= 1638 | dependencies: 1639 | "@babel/runtime" "^7.12.1" 1640 | tiny-warning "^1.0.3" 1641 | 1642 | minimatch@^3.0.4: 1643 | version "3.0.4" 1644 | resolved "https://registry.nlark.com/minimatch/download/minimatch-3.0.4.tgz" 1645 | integrity sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM= 1646 | dependencies: 1647 | brace-expansion "^1.1.7" 1648 | 1649 | minimist@^1.2.5: 1650 | version "1.2.5" 1651 | resolved "https://registry.nlark.com/minimist/download/minimist-1.2.5.tgz?cache=0&sync_timestamp=1624607886507&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fminimist%2Fdownload%2Fminimist-1.2.5.tgz" 1652 | integrity sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI= 1653 | 1654 | ms@2.1.2: 1655 | version "2.1.2" 1656 | resolved "https://registry.nlark.com/ms/download/ms-2.1.2.tgz?cache=0&sync_timestamp=1631949869663&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fms%2Fdownload%2Fms-2.1.2.tgz" 1657 | integrity sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk= 1658 | 1659 | nanocolors@^0.1.5: 1660 | version "0.1.6" 1661 | resolved "https://registry.nlark.com/nanocolors/download/nanocolors-0.1.6.tgz?cache=0&sync_timestamp=1632297859314&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnanocolors%2Fdownload%2Fnanocolors-0.1.6.tgz" 1662 | integrity sha1-vCNQ0+39v63XrAGMhVrnwTkFpq0= 1663 | 1664 | nanoid@^3.1.28: 1665 | version "3.1.29" 1666 | resolved "https://registry.npmmirror.com/nanoid/download/nanoid-3.1.29.tgz" 1667 | integrity sha1-IU+y16M+GlvvR1e3ed+utqTlrrQ= 1668 | 1669 | natural-compare@^1.4.0: 1670 | version "1.4.0" 1671 | resolved "https://registry.nlark.com/natural-compare/download/natural-compare-1.4.0.tgz" 1672 | integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= 1673 | 1674 | node-releases@^1.1.76: 1675 | version "1.1.76" 1676 | resolved "https://registry.nlark.com/node-releases/download/node-releases-1.1.76.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.76.tgz" 1677 | integrity sha1-3yRbBisMr71SgqtnkvfczC2X824= 1678 | 1679 | object-assign@^4.1.1: 1680 | version "4.1.1" 1681 | resolved "https://registry.nlark.com/object-assign/download/object-assign-4.1.1.tgz" 1682 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 1683 | 1684 | object-inspect@^1.11.0, object-inspect@^1.9.0: 1685 | version "1.11.0" 1686 | resolved "https://registry.nlark.com/object-inspect/download/object-inspect-1.11.0.tgz" 1687 | integrity sha1-nc6xRs7dQUig2eUauI00z1CZIrE= 1688 | 1689 | object-keys@^1.0.12, object-keys@^1.1.1: 1690 | version "1.1.1" 1691 | resolved "https://registry.nlark.com/object-keys/download/object-keys-1.1.1.tgz" 1692 | integrity sha1-HEfyct8nfzsdrwYWd9nILiMixg4= 1693 | 1694 | object.assign@^4.1.2: 1695 | version "4.1.2" 1696 | resolved "https://registry.nlark.com/object.assign/download/object.assign-4.1.2.tgz" 1697 | integrity sha1-DtVKNC7Os3s4/3brgxoOeIy2OUA= 1698 | dependencies: 1699 | call-bind "^1.0.0" 1700 | define-properties "^1.1.3" 1701 | has-symbols "^1.0.1" 1702 | object-keys "^1.1.1" 1703 | 1704 | object.entries@^1.1.4: 1705 | version "1.1.5" 1706 | resolved "https://registry.npmmirror.com/object.entries/download/object.entries-1.1.5.tgz" 1707 | integrity sha1-4azdF8TeLNltWghIfPuduE2IGGE= 1708 | dependencies: 1709 | call-bind "^1.0.2" 1710 | define-properties "^1.1.3" 1711 | es-abstract "^1.19.1" 1712 | 1713 | object.fromentries@^2.0.4: 1714 | version "2.0.5" 1715 | resolved "https://registry.npmmirror.com/object.fromentries/download/object.fromentries-2.0.5.tgz" 1716 | integrity sha1-ezeyBRCcIedB5gVyf+iwrV+gglE= 1717 | dependencies: 1718 | call-bind "^1.0.2" 1719 | define-properties "^1.1.3" 1720 | es-abstract "^1.19.1" 1721 | 1722 | object.hasown@^1.0.0: 1723 | version "1.1.0" 1724 | resolved "https://registry.npmmirror.com/object.hasown/download/object.hasown-1.1.0.tgz" 1725 | integrity sha1-cjLtJm800ZfRXKxYgCMvekeQr+U= 1726 | dependencies: 1727 | define-properties "^1.1.3" 1728 | es-abstract "^1.19.1" 1729 | 1730 | object.values@^1.1.4: 1731 | version "1.1.5" 1732 | resolved "https://registry.npmmirror.com/object.values/download/object.values-1.1.5.tgz" 1733 | integrity sha1-lZ9j486e8QhyAzMIITHkpFm3Fqw= 1734 | dependencies: 1735 | call-bind "^1.0.2" 1736 | define-properties "^1.1.3" 1737 | es-abstract "^1.19.1" 1738 | 1739 | once@^1.3.0: 1740 | version "1.4.0" 1741 | resolved "https://registry.nlark.com/once/download/once-1.4.0.tgz" 1742 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 1743 | dependencies: 1744 | wrappy "1" 1745 | 1746 | optionator@^0.9.1: 1747 | version "0.9.1" 1748 | resolved "https://registry.nlark.com/optionator/download/optionator-0.9.1.tgz" 1749 | integrity sha1-TyNqY3Pa4FZqbUPhMmZ09QwpFJk= 1750 | dependencies: 1751 | deep-is "^0.1.3" 1752 | fast-levenshtein "^2.0.6" 1753 | levn "^0.4.1" 1754 | prelude-ls "^1.2.1" 1755 | type-check "^0.4.0" 1756 | word-wrap "^1.2.3" 1757 | 1758 | parent-module@^1.0.0: 1759 | version "1.0.1" 1760 | resolved "https://registry.npmmirror.com/parent-module/download/parent-module-1.0.1.tgz?cache=0&sync_timestamp=1633338673294&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fparent-module%2Fdownload%2Fparent-module-1.0.1.tgz" 1761 | integrity sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI= 1762 | dependencies: 1763 | callsites "^3.0.0" 1764 | 1765 | path-is-absolute@^1.0.0: 1766 | version "1.0.1" 1767 | resolved "https://registry.nlark.com/path-is-absolute/download/path-is-absolute-1.0.1.tgz" 1768 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 1769 | 1770 | path-key@^3.1.0: 1771 | version "3.1.1" 1772 | resolved "https://registry.nlark.com/path-key/download/path-key-3.1.1.tgz" 1773 | integrity sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U= 1774 | 1775 | path-parse@^1.0.6: 1776 | version "1.0.7" 1777 | resolved "https://registry.nlark.com/path-parse/download/path-parse-1.0.7.tgz" 1778 | integrity sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU= 1779 | 1780 | path-to-regexp@^1.7.0: 1781 | version "1.8.0" 1782 | resolved "https://registry.nlark.com/path-to-regexp/download/path-to-regexp-1.8.0.tgz" 1783 | integrity sha1-iHs7qdhDk+h6CgufTLdWGYtTVIo= 1784 | dependencies: 1785 | isarray "0.0.1" 1786 | 1787 | path-type@^4.0.0: 1788 | version "4.0.0" 1789 | resolved "https://registry.nlark.com/path-type/download/path-type-4.0.0.tgz" 1790 | integrity sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs= 1791 | 1792 | picocolors@^0.2.1: 1793 | version "0.2.1" 1794 | resolved "https://registry.npmmirror.com/picocolors/download/picocolors-0.2.1.tgz" 1795 | integrity sha1-VwZw95NkaFHRuhNZlpYqutWHhZ8= 1796 | 1797 | picomatch@^2.2.2, picomatch@^2.2.3: 1798 | version "2.3.0" 1799 | resolved "https://registry.nlark.com/picomatch/download/picomatch-2.3.0.tgz?cache=0&sync_timestamp=1621648305056&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpicomatch%2Fdownload%2Fpicomatch-2.3.0.tgz" 1800 | integrity sha1-8fBh3o9qS/AiiS4tEoI0+5gwKXI= 1801 | 1802 | postcss-value-parser@^4.0.2: 1803 | version "4.1.0" 1804 | resolved "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.1.0.tgz" 1805 | integrity sha1-RD9qIM7WSBor2k+oUypuVdeJoss= 1806 | 1807 | postcss@^8.3.8: 1808 | version "8.3.9" 1809 | resolved "https://registry.npmmirror.com/postcss/download/postcss-8.3.9.tgz?cache=0&sync_timestamp=1633378564902&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpostcss%2Fdownload%2Fpostcss-8.3.9.tgz" 1810 | integrity sha1-mHVMqgbE7p61nMSL0HO7a9NDfDE= 1811 | dependencies: 1812 | nanoid "^3.1.28" 1813 | picocolors "^0.2.1" 1814 | source-map-js "^0.6.2" 1815 | 1816 | prelude-ls@^1.2.1: 1817 | version "1.2.1" 1818 | resolved "https://registry.nlark.com/prelude-ls/download/prelude-ls-1.2.1.tgz" 1819 | integrity sha1-3rxkidem5rDnYRiIzsiAM30xY5Y= 1820 | 1821 | progress@^2.0.0: 1822 | version "2.0.3" 1823 | resolved "https://registry.nlark.com/progress/download/progress-2.0.3.tgz" 1824 | integrity sha1-foz42PW48jnBvGi+tOt4Vn1XLvg= 1825 | 1826 | prop-types@^15.6.2, prop-types@^15.7.2: 1827 | version "15.7.2" 1828 | resolved "https://registry.nlark.com/prop-types/download/prop-types-15.7.2.tgz?cache=0&sync_timestamp=1618760877401&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fprop-types%2Fdownload%2Fprop-types-15.7.2.tgz" 1829 | integrity sha1-UsQedbjIfnK52TYOAga5ncv/psU= 1830 | dependencies: 1831 | loose-envify "^1.4.0" 1832 | object-assign "^4.1.1" 1833 | react-is "^16.8.1" 1834 | 1835 | punycode@^2.1.0: 1836 | version "2.1.1" 1837 | resolved "https://registry.nlark.com/punycode/download/punycode-2.1.1.tgz" 1838 | integrity sha1-tYsBCsQMIsVldhbI0sLALHv0eew= 1839 | 1840 | query-string@^7.0.1: 1841 | version "7.0.1" 1842 | resolved "https://registry.nlark.com/query-string/download/query-string-7.0.1.tgz?cache=0&sync_timestamp=1627011329938&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fquery-string%2Fdownload%2Fquery-string-7.0.1.tgz" 1843 | integrity sha1-Rb0UnPWGqqWC3/x+x6itl90C910= 1844 | dependencies: 1845 | decode-uri-component "^0.2.0" 1846 | filter-obj "^1.1.0" 1847 | split-on-first "^1.0.0" 1848 | strict-uri-encode "^2.0.0" 1849 | 1850 | queue-microtask@^1.2.2: 1851 | version "1.2.3" 1852 | resolved "https://registry.nlark.com/queue-microtask/download/queue-microtask-1.2.3.tgz" 1853 | integrity sha1-SSkii7xyTfrEPg77BYyve2z7YkM= 1854 | 1855 | react-dom@17.0.2: 1856 | version "17.0.2" 1857 | resolved "https://registry.nlark.com/react-dom/download/react-dom-17.0.2.tgz?cache=0&sync_timestamp=1632263699971&other_urls=https%3A%2F%2Fregistry.nlark.com%2Freact-dom%2Fdownload%2Freact-dom-17.0.2.tgz" 1858 | integrity sha1-7P+2hF462Nv83EmPDQqTlzZQLCM= 1859 | dependencies: 1860 | loose-envify "^1.1.0" 1861 | object-assign "^4.1.1" 1862 | scheduler "^0.20.2" 1863 | 1864 | react-is@17.0.2: 1865 | version "17.0.2" 1866 | resolved "https://registry.nlark.com/react-is/download/react-is-17.0.2.tgz" 1867 | integrity sha1-5pHUqOnHiTZWVVOas3J2Kw77VPA= 1868 | 1869 | react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1: 1870 | version "16.13.1" 1871 | resolved "https://registry.nlark.com/react-is/download/react-is-16.13.1.tgz?cache=0&sync_timestamp=1632264340694&other_urls=https%3A%2F%2Fregistry.nlark.com%2Freact-is%2Fdownload%2Freact-is-16.13.1.tgz" 1872 | integrity sha1-eJcppNw23imZ3BVt1sHZwYzqVqQ= 1873 | 1874 | react-refresh@^0.10.0: 1875 | version "0.10.0" 1876 | resolved "https://registry.nlark.com/react-refresh/download/react-refresh-0.10.0.tgz?cache=0&sync_timestamp=1632265895877&other_urls=https%3A%2F%2Fregistry.nlark.com%2Freact-refresh%2Fdownload%2Freact-refresh-0.10.0.tgz" 1877 | integrity sha1-L1NslmDAubHVAGhNnlKmXnQE9+M= 1878 | 1879 | react-router-dom@5.3.0: 1880 | version "5.3.0" 1881 | resolved "https://registry.npmmirror.com/react-router-dom/download/react-router-dom-5.3.0.tgz#da1bfb535a0e89a712a93b97dd76f47ad1f32363" 1882 | integrity sha1-2hv7U1oOiacSqTuX3Xb0etHzI2M= 1883 | dependencies: 1884 | "@babel/runtime" "^7.12.13" 1885 | history "^4.9.0" 1886 | loose-envify "^1.3.1" 1887 | prop-types "^15.6.2" 1888 | react-router "5.2.1" 1889 | tiny-invariant "^1.0.2" 1890 | tiny-warning "^1.0.0" 1891 | 1892 | react-router@5.2.1: 1893 | version "5.2.1" 1894 | resolved "https://registry.npmmirror.com/react-router/download/react-router-5.2.1.tgz" 1895 | integrity sha1-TS5OnVrpQlCRhFuNvG2dJ2I5d00= 1896 | dependencies: 1897 | "@babel/runtime" "^7.12.13" 1898 | history "^4.9.0" 1899 | hoist-non-react-statics "^3.1.0" 1900 | loose-envify "^1.3.1" 1901 | mini-create-react-context "^0.4.0" 1902 | path-to-regexp "^1.7.0" 1903 | prop-types "^15.6.2" 1904 | react-is "^16.6.0" 1905 | tiny-invariant "^1.0.2" 1906 | tiny-warning "^1.0.0" 1907 | 1908 | react@17.0.2: 1909 | version "17.0.2" 1910 | resolved "https://registry.nlark.com/react/download/react-17.0.2.tgz?cache=0&sync_timestamp=1632263700464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Freact%2Fdownload%2Freact-17.0.2.tgz" 1911 | integrity sha1-0LXMUW0p6z7uOD91tihkz7aAADc= 1912 | dependencies: 1913 | loose-envify "^1.1.0" 1914 | object-assign "^4.1.1" 1915 | 1916 | regenerator-runtime@^0.13.4: 1917 | version "0.13.9" 1918 | resolved "https://registry.nlark.com/regenerator-runtime/download/regenerator-runtime-0.13.9.tgz?cache=0&sync_timestamp=1626994846308&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.9.tgz" 1919 | integrity sha1-iSV0Kpj/2QgUmI11Zq0wyjsmO1I= 1920 | 1921 | regexp.prototype.flags@^1.3.1: 1922 | version "1.3.1" 1923 | resolved "https://registry.nlark.com/regexp.prototype.flags/download/regexp.prototype.flags-1.3.1.tgz" 1924 | integrity sha1-fvNSro0VnnWMDq3Kb4/LTu8HviY= 1925 | dependencies: 1926 | call-bind "^1.0.2" 1927 | define-properties "^1.1.3" 1928 | 1929 | regexpp@^3.1.0: 1930 | version "3.2.0" 1931 | resolved "https://registry.nlark.com/regexpp/download/regexpp-3.2.0.tgz?cache=0&sync_timestamp=1623669303572&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregexpp%2Fdownload%2Fregexpp-3.2.0.tgz" 1932 | integrity sha1-BCWido2PI7rXDKS5BGH6LxIT4bI= 1933 | 1934 | require-from-string@^2.0.2: 1935 | version "2.0.2" 1936 | resolved "https://registry.nlark.com/require-from-string/download/require-from-string-2.0.2.tgz" 1937 | integrity sha1-iaf92TgmEmcxjq/hT5wy5ZjDaQk= 1938 | 1939 | resolve-from@^4.0.0: 1940 | version "4.0.0" 1941 | resolved "https://registry.nlark.com/resolve-from/download/resolve-from-4.0.0.tgz" 1942 | integrity sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY= 1943 | 1944 | resolve-pathname@^3.0.0: 1945 | version "3.0.0" 1946 | resolved "https://registry.nlark.com/resolve-pathname/download/resolve-pathname-3.0.0.tgz" 1947 | integrity sha1-mdAiJNPPJjaJvsuzk7xWAxMCXc0= 1948 | 1949 | resolve@^1.20.0: 1950 | version "1.20.0" 1951 | resolved "https://registry.npm.taobao.org/resolve/download/resolve-1.20.0.tgz?cache=0&sync_timestamp=1613054862388&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve%2Fdownload%2Fresolve-1.20.0.tgz" 1952 | integrity sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU= 1953 | dependencies: 1954 | is-core-module "^2.2.0" 1955 | path-parse "^1.0.6" 1956 | 1957 | resolve@^2.0.0-next.3: 1958 | version "2.0.0-next.3" 1959 | resolved "https://registry.nlark.com/resolve/download/resolve-2.0.0-next.3.tgz" 1960 | integrity sha1-1BAWKT1KhYajnKXZtfFcvqH1XkY= 1961 | dependencies: 1962 | is-core-module "^2.2.0" 1963 | path-parse "^1.0.6" 1964 | 1965 | reusify@^1.0.4: 1966 | version "1.0.4" 1967 | resolved "https://registry.nlark.com/reusify/download/reusify-1.0.4.tgz" 1968 | integrity sha1-kNo4Kx4SbvwCFG6QhFqI2xKSXXY= 1969 | 1970 | rimraf@^3.0.2: 1971 | version "3.0.2" 1972 | resolved "https://registry.nlark.com/rimraf/download/rimraf-3.0.2.tgz" 1973 | integrity sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho= 1974 | dependencies: 1975 | glob "^7.1.3" 1976 | 1977 | rollup@^2.57.0: 1978 | version "2.58.0" 1979 | resolved "https://registry.npmmirror.com/rollup/download/rollup-2.58.0.tgz?cache=0&sync_timestamp=1633071502975&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Frollup%2Fdownload%2Frollup-2.58.0.tgz" 1980 | integrity sha1-pkOYM2Xnv39bfGKoMxuYO3xMZ/s= 1981 | optionalDependencies: 1982 | fsevents "~2.3.2" 1983 | 1984 | run-parallel@^1.1.9: 1985 | version "1.2.0" 1986 | resolved "https://registry.nlark.com/run-parallel/download/run-parallel-1.2.0.tgz" 1987 | integrity sha1-ZtE2jae9+SHrnZW9GpIp5/IaQ+4= 1988 | dependencies: 1989 | queue-microtask "^1.2.2" 1990 | 1991 | safe-buffer@~5.1.1: 1992 | version "5.1.2" 1993 | resolved "https://registry.nlark.com/safe-buffer/download/safe-buffer-5.1.2.tgz" 1994 | integrity sha1-mR7GnSluAxN0fVm9/St0XDX4go0= 1995 | 1996 | scheduler@^0.20.2: 1997 | version "0.20.2" 1998 | resolved "https://registry.nlark.com/scheduler/download/scheduler-0.20.2.tgz?cache=0&sync_timestamp=1632265923129&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fscheduler%2Fdownload%2Fscheduler-0.20.2.tgz" 1999 | integrity sha1-S67jlDbjSqk7SHS93L8P6Li1DpE= 2000 | dependencies: 2001 | loose-envify "^1.1.0" 2002 | object-assign "^4.1.1" 2003 | 2004 | semver@^6.3.0: 2005 | version "6.3.0" 2006 | resolved "https://registry.nlark.com/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1624607961409&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz" 2007 | integrity sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0= 2008 | 2009 | semver@^7.2.1, semver@^7.3.5: 2010 | version "7.3.5" 2011 | resolved "https://registry.nlark.com/semver/download/semver-7.3.5.tgz" 2012 | integrity sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc= 2013 | dependencies: 2014 | lru-cache "^6.0.0" 2015 | 2016 | shallowequal@^1.1.0: 2017 | version "1.1.0" 2018 | resolved "https://registry.npm.taobao.org/shallowequal/download/shallowequal-1.1.0.tgz" 2019 | integrity sha1-GI1SHelbkIdAT9TctosT3wrk5/g= 2020 | 2021 | shebang-command@^2.0.0: 2022 | version "2.0.0" 2023 | resolved "https://registry.nlark.com/shebang-command/download/shebang-command-2.0.0.tgz" 2024 | integrity sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo= 2025 | dependencies: 2026 | shebang-regex "^3.0.0" 2027 | 2028 | shebang-regex@^3.0.0: 2029 | version "3.0.0" 2030 | resolved "https://registry.nlark.com/shebang-regex/download/shebang-regex-3.0.0.tgz" 2031 | integrity sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI= 2032 | 2033 | side-channel@^1.0.4: 2034 | version "1.0.4" 2035 | resolved "https://registry.nlark.com/side-channel/download/side-channel-1.0.4.tgz" 2036 | integrity sha1-785cj9wQTudRslxY1CkAEfpeos8= 2037 | dependencies: 2038 | call-bind "^1.0.0" 2039 | get-intrinsic "^1.0.2" 2040 | object-inspect "^1.9.0" 2041 | 2042 | slash@^3.0.0: 2043 | version "3.0.0" 2044 | resolved "https://registry.nlark.com/slash/download/slash-3.0.0.tgz" 2045 | integrity sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ= 2046 | 2047 | slice-ansi@^4.0.0: 2048 | version "4.0.0" 2049 | resolved "https://registry.nlark.com/slice-ansi/download/slice-ansi-4.0.0.tgz" 2050 | integrity sha1-UA6N0P1VsFgVCGJVsxla3ypF/ms= 2051 | dependencies: 2052 | ansi-styles "^4.0.0" 2053 | astral-regex "^2.0.0" 2054 | is-fullwidth-code-point "^3.0.0" 2055 | 2056 | source-map-js@^0.6.2: 2057 | version "0.6.2" 2058 | resolved "https://registry.npm.taobao.org/source-map-js/download/source-map-js-0.6.2.tgz" 2059 | integrity sha1-C7XeYxtBz72mz7qL0FqA79/SOF4= 2060 | 2061 | source-map@^0.5.0: 2062 | version "0.5.7" 2063 | resolved "https://registry.nlark.com/source-map/download/source-map-0.5.7.tgz?cache=0&sync_timestamp=1624608014898&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsource-map%2Fdownload%2Fsource-map-0.5.7.tgz" 2064 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= 2065 | 2066 | split-on-first@^1.0.0: 2067 | version "1.1.0" 2068 | resolved "https://registry.nlark.com/split-on-first/download/split-on-first-1.1.0.tgz" 2069 | integrity sha1-9hCv7uOxK84dDDBCXnY5i3gkml8= 2070 | 2071 | sprintf-js@~1.0.2: 2072 | version "1.0.3" 2073 | resolved "https://registry.nlark.com/sprintf-js/download/sprintf-js-1.0.3.tgz" 2074 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= 2075 | 2076 | strict-uri-encode@^2.0.0: 2077 | version "2.0.0" 2078 | resolved "https://registry.nlark.com/strict-uri-encode/download/strict-uri-encode-2.0.0.tgz" 2079 | integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= 2080 | 2081 | string-width@^4.2.3: 2082 | version "4.2.3" 2083 | resolved "https://registry.npmmirror.com/string-width/download/string-width-4.2.3.tgz" 2084 | integrity sha1-JpxxF9J7Ba0uU2gwqOyJXvnG0BA= 2085 | dependencies: 2086 | emoji-regex "^8.0.0" 2087 | is-fullwidth-code-point "^3.0.0" 2088 | strip-ansi "^6.0.1" 2089 | 2090 | string.prototype.matchall@^4.0.5: 2091 | version "4.0.6" 2092 | resolved "https://registry.npmmirror.com/string.prototype.matchall/download/string.prototype.matchall-4.0.6.tgz?cache=0&sync_timestamp=1633405729396&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstring.prototype.matchall%2Fdownload%2Fstring.prototype.matchall-4.0.6.tgz" 2093 | integrity sha1-Wrtdq8lMew6iOA9lumELOlRLFfo= 2094 | dependencies: 2095 | call-bind "^1.0.2" 2096 | define-properties "^1.1.3" 2097 | es-abstract "^1.19.1" 2098 | get-intrinsic "^1.1.1" 2099 | has-symbols "^1.0.2" 2100 | internal-slot "^1.0.3" 2101 | regexp.prototype.flags "^1.3.1" 2102 | side-channel "^1.0.4" 2103 | 2104 | string.prototype.trimend@^1.0.4: 2105 | version "1.0.4" 2106 | resolved "https://registry.nlark.com/string.prototype.trimend/download/string.prototype.trimend-1.0.4.tgz" 2107 | integrity sha1-51rpDClCxjUEaGwYsoe0oLGkX4A= 2108 | dependencies: 2109 | call-bind "^1.0.2" 2110 | define-properties "^1.1.3" 2111 | 2112 | string.prototype.trimstart@^1.0.4: 2113 | version "1.0.4" 2114 | resolved "https://registry.nlark.com/string.prototype.trimstart/download/string.prototype.trimstart-1.0.4.tgz" 2115 | integrity sha1-s2OZr0qymZtMnGSL16P7K7Jv7u0= 2116 | dependencies: 2117 | call-bind "^1.0.2" 2118 | define-properties "^1.1.3" 2119 | 2120 | strip-ansi@^6.0.0, strip-ansi@^6.0.1: 2121 | version "6.0.1" 2122 | resolved "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-6.0.1.tgz?cache=0&sync_timestamp=1632420562057&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.1.tgz" 2123 | integrity sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk= 2124 | dependencies: 2125 | ansi-regex "^5.0.1" 2126 | 2127 | strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: 2128 | version "3.1.1" 2129 | resolved "https://registry.nlark.com/strip-json-comments/download/strip-json-comments-3.1.1.tgz" 2130 | integrity sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY= 2131 | 2132 | styled-components@5.3.1: 2133 | version "5.3.1" 2134 | resolved "https://registry.nlark.com/styled-components/download/styled-components-5.3.1.tgz?cache=0&sync_timestamp=1629798356811&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstyled-components%2Fdownload%2Fstyled-components-5.3.1.tgz" 2135 | integrity sha1-iobc0xv/cEnC7UCLrjb6I/A/Bxo= 2136 | dependencies: 2137 | "@babel/helper-module-imports" "^7.0.0" 2138 | "@babel/traverse" "^7.4.5" 2139 | "@emotion/is-prop-valid" "^0.8.8" 2140 | "@emotion/stylis" "^0.8.4" 2141 | "@emotion/unitless" "^0.7.4" 2142 | babel-plugin-styled-components ">= 1.12.0" 2143 | css-to-react-native "^3.0.0" 2144 | hoist-non-react-statics "^3.0.0" 2145 | shallowequal "^1.1.0" 2146 | supports-color "^5.5.0" 2147 | 2148 | supports-color@^5.3.0, supports-color@^5.5.0: 2149 | version "5.5.0" 2150 | resolved "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1626703455199&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz" 2151 | integrity sha1-4uaaRKyHcveKHsCzW2id9lMO/I8= 2152 | dependencies: 2153 | has-flag "^3.0.0" 2154 | 2155 | supports-color@^7.1.0: 2156 | version "7.2.0" 2157 | resolved "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703414084&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz" 2158 | integrity sha1-G33NyzK4E4gBs+R4umpRyqiWSNo= 2159 | dependencies: 2160 | has-flag "^4.0.0" 2161 | 2162 | swr@1.0.1: 2163 | version "1.0.1" 2164 | resolved "https://registry.nlark.com/swr/download/swr-1.0.1.tgz" 2165 | integrity sha1-FfYoRrh+4ADlL6B4Ertl62LXlIM= 2166 | dependencies: 2167 | dequal "2.0.2" 2168 | 2169 | table@^6.0.9: 2170 | version "6.7.2" 2171 | resolved "https://registry.npmmirror.com/table/download/table-6.7.2.tgz" 2172 | integrity sha1-qNObn1lmaTyosP66Jwp4ciy687A= 2173 | dependencies: 2174 | ajv "^8.0.1" 2175 | lodash.clonedeep "^4.5.0" 2176 | lodash.truncate "^4.4.2" 2177 | slice-ansi "^4.0.0" 2178 | string-width "^4.2.3" 2179 | strip-ansi "^6.0.1" 2180 | 2181 | text-table@^0.2.0: 2182 | version "0.2.0" 2183 | resolved "https://registry.nlark.com/text-table/download/text-table-0.2.0.tgz" 2184 | integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= 2185 | 2186 | tiny-invariant@^1.0.2: 2187 | version "1.1.0" 2188 | resolved "https://registry.nlark.com/tiny-invariant/download/tiny-invariant-1.1.0.tgz" 2189 | integrity sha1-Y0xfjv3CdxS384bDXmdgmR0jCHU= 2190 | 2191 | tiny-warning@^1.0.0, tiny-warning@^1.0.3: 2192 | version "1.0.3" 2193 | resolved "https://registry.nlark.com/tiny-warning/download/tiny-warning-1.0.3.tgz" 2194 | integrity sha1-lKMNtFPfTGQ9D9VmBg1gqHXYR1Q= 2195 | 2196 | to-fast-properties@^2.0.0: 2197 | version "2.0.0" 2198 | resolved "https://registry.nlark.com/to-fast-properties/download/to-fast-properties-2.0.0.tgz?cache=0&sync_timestamp=1628418893613&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-2.0.0.tgz" 2199 | integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= 2200 | 2201 | to-regex-range@^5.0.1: 2202 | version "5.0.1" 2203 | resolved "https://registry.nlark.com/to-regex-range/download/to-regex-range-5.0.1.tgz" 2204 | integrity sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ= 2205 | dependencies: 2206 | is-number "^7.0.0" 2207 | 2208 | tslib@^1.8.1: 2209 | version "1.14.1" 2210 | resolved "https://registry.nlark.com/tslib/download/tslib-1.14.1.tgz" 2211 | integrity sha1-zy04vcNKE0vK8QkcQfZhni9nLQA= 2212 | 2213 | tsutils@^3.21.0: 2214 | version "3.21.0" 2215 | resolved "https://registry.nlark.com/tsutils/download/tsutils-3.21.0.tgz" 2216 | integrity sha1-tIcX05TOpsHglpg+7Vjp1hcVtiM= 2217 | dependencies: 2218 | tslib "^1.8.1" 2219 | 2220 | type-check@^0.4.0, type-check@~0.4.0: 2221 | version "0.4.0" 2222 | resolved "https://registry.nlark.com/type-check/download/type-check-0.4.0.tgz" 2223 | integrity sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE= 2224 | dependencies: 2225 | prelude-ls "^1.2.1" 2226 | 2227 | type-fest@^0.20.2: 2228 | version "0.20.2" 2229 | resolved "https://registry.nlark.com/type-fest/download/type-fest-0.20.2.tgz" 2230 | integrity sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ= 2231 | 2232 | typescript@^4.4.3: 2233 | version "4.4.3" 2234 | resolved "https://registry.npmmirror.com/typescript/download/typescript-4.4.3.tgz?cache=0&sync_timestamp=1633597517900&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftypescript%2Fdownload%2Ftypescript-4.4.3.tgz" 2235 | integrity sha1-vcVAfKorEJ79T4L+EwZW+XeikyQ= 2236 | 2237 | unbox-primitive@^1.0.1: 2238 | version "1.0.1" 2239 | resolved "https://registry.nlark.com/unbox-primitive/download/unbox-primitive-1.0.1.tgz" 2240 | integrity sha1-CF4hViXsMWJXTciFmr7nilmxRHE= 2241 | dependencies: 2242 | function-bind "^1.1.1" 2243 | has-bigints "^1.0.1" 2244 | has-symbols "^1.0.2" 2245 | which-boxed-primitive "^1.0.2" 2246 | 2247 | uri-js@^4.2.2: 2248 | version "4.4.1" 2249 | resolved "https://registry.nlark.com/uri-js/download/uri-js-4.4.1.tgz" 2250 | integrity sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34= 2251 | dependencies: 2252 | punycode "^2.1.0" 2253 | 2254 | uuid@^8.3.2: 2255 | version "8.3.2" 2256 | resolved "https://registry.nlark.com/uuid/download/uuid-8.3.2.tgz?cache=0&sync_timestamp=1622213185460&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fuuid%2Fdownload%2Fuuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" 2257 | integrity sha1-gNW1ztJxu5r2xEXyGhoExgbO++I= 2258 | 2259 | v8-compile-cache@^2.0.3: 2260 | version "2.3.0" 2261 | resolved "https://registry.nlark.com/v8-compile-cache/download/v8-compile-cache-2.3.0.tgz" 2262 | integrity sha1-LeGWGMZtwkfc+2+ZM4A12CRaLO4= 2263 | 2264 | value-equal@^1.0.1: 2265 | version "1.0.1" 2266 | resolved "https://registry.nlark.com/value-equal/download/value-equal-1.0.1.tgz" 2267 | integrity sha1-Hgt5THNMXAyt4XnEN9NW2TGjTWw= 2268 | 2269 | vite@2.6.3: 2270 | version "2.6.3" 2271 | resolved "https://registry.npmmirror.com/vite/download/vite-2.6.3.tgz" 2272 | integrity sha1-W7wdP8/2v+6cXjwNCmibGOWXSzg= 2273 | dependencies: 2274 | esbuild "^0.13.2" 2275 | postcss "^8.3.8" 2276 | resolve "^1.20.0" 2277 | rollup "^2.57.0" 2278 | optionalDependencies: 2279 | fsevents "~2.3.2" 2280 | 2281 | which-boxed-primitive@^1.0.2: 2282 | version "1.0.2" 2283 | resolved "https://registry.nlark.com/which-boxed-primitive/download/which-boxed-primitive-1.0.2.tgz" 2284 | integrity sha1-E3V7yJsgmwSf5dhkMOIc9AqJqOY= 2285 | dependencies: 2286 | is-bigint "^1.0.1" 2287 | is-boolean-object "^1.1.0" 2288 | is-number-object "^1.0.4" 2289 | is-string "^1.0.5" 2290 | is-symbol "^1.0.3" 2291 | 2292 | which@^2.0.1: 2293 | version "2.0.2" 2294 | resolved "https://registry.nlark.com/which/download/which-2.0.2.tgz" 2295 | integrity sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE= 2296 | dependencies: 2297 | isexe "^2.0.0" 2298 | 2299 | word-wrap@^1.2.3: 2300 | version "1.2.3" 2301 | resolved "https://registry.nlark.com/word-wrap/download/word-wrap-1.2.3.tgz" 2302 | integrity sha1-YQY29rH3A4kb00dxzLF/uTtHB5w= 2303 | 2304 | wrappy@1: 2305 | version "1.0.2" 2306 | resolved "https://registry.nlark.com/wrappy/download/wrappy-1.0.2.tgz" 2307 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 2308 | 2309 | yallist@^4.0.0: 2310 | version "4.0.0" 2311 | resolved "https://registry.nlark.com/yallist/download/yallist-4.0.0.tgz" 2312 | integrity sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI= 2313 | -------------------------------------------------------------------------------- /server/initializers/cors.go: -------------------------------------------------------------------------------- 1 | package initializers 2 | 3 | import ( 4 | "log" 5 | "time" 6 | 7 | "github.com/gin-contrib/cors" 8 | "github.com/gin-gonic/gin" 9 | ) 10 | 11 | func InitCors(router *gin.Engine) { 12 | router.Use(cors.New(cors.Config{ 13 | AllowMethods: []string{"PUT", "PATCH", "POST"}, 14 | AllowHeaders: []string{"Origin", "Content-Type"}, 15 | ExposeHeaders: []string{"Content-Length"}, 16 | AllowCredentials: true, 17 | AllowOriginFunc: func(origin string) bool { 18 | if origin == "http://127.0.0.1:3000" || origin == "http://localhost:3000" { 19 | return true 20 | } else { 21 | log.Printf("%v is now allowed", origin) 22 | return false 23 | } 24 | }, 25 | MaxAge: 12 * time.Hour, 26 | })) 27 | } 28 | -------------------------------------------------------------------------------- /server/server.go: -------------------------------------------------------------------------------- 1 | package server 2 | 3 | import ( 4 | "embed" 5 | "fmt" 6 | "io/fs" 7 | "log" 8 | "net/http" 9 | "strings" 10 | 11 | "synk/server/controllers" 12 | "synk/server/initializers" 13 | "synk/server/ws" 14 | 15 | "github.com/gin-gonic/gin" 16 | ) 17 | 18 | //go:embed frontend/dist/* 19 | var FS embed.FS 20 | 21 | func Run(start chan int, end chan interface{}) { 22 | gin.SetMode(gin.ReleaseMode) 23 | gin.DisableConsoleColor() 24 | router := gin.Default() 25 | initializers.InitCors(router) 26 | hub := ws.NewHub() 27 | go hub.Run() 28 | router.GET("/ws", func(c *gin.Context) { 29 | ws.HttpController(c, hub) 30 | }) 31 | router.GET("/uploads/:path", controllers.UploadsController) 32 | router.GET("/api/v1/addresses", controllers.AddressesController) 33 | router.GET("/api/v1/qrcodes", controllers.QrcodesController) 34 | router.POST("/api/v1/files", controllers.FilesController) 35 | router.POST("/api/v1/texts", controllers.TextsController) 36 | staticFiles, _ := fs.Sub(FS, "frontend/dist") 37 | router.StaticFS("/static", http.FS(staticFiles)) 38 | router.NoRoute(func(c *gin.Context) { 39 | path := c.Request.URL.Path 40 | if strings.HasPrefix(path, "/static/") { 41 | reader, err := staticFiles.Open("index.html") 42 | if err != nil { 43 | log.Fatal(err) 44 | } 45 | defer reader.Close() 46 | stat, err := reader.Stat() 47 | if err != nil { 48 | log.Fatal(err) 49 | } 50 | c.DataFromReader(http.StatusOK, stat.Size(), "text/html", reader, nil) 51 | } else { 52 | c.Status(http.StatusNotFound) 53 | } 54 | }) 55 | port := 27149 56 | start <- port 57 | runErr := router.Run(fmt.Sprintf(":%d", port)) 58 | if runErr != nil { 59 | end <- runErr 60 | log.Fatal(runErr) 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /server/ws/client.go: -------------------------------------------------------------------------------- 1 | package ws 2 | 3 | import ( 4 | "bytes" 5 | "log" 6 | "net/http" 7 | "time" 8 | 9 | "github.com/gorilla/websocket" 10 | ) 11 | 12 | const ( 13 | // Time allowed to write a message to the peer. 14 | writeWait = 10 * time.Second 15 | 16 | // Time allowed to read the next pong message from the peer. 17 | pongWait = 60 * time.Second 18 | 19 | // Send pings to peer with this period. Must be less than pongWait. 20 | pingPeriod = (pongWait * 9) / 10 21 | 22 | // Maximum message size allowed from peer. 23 | maxMessageSize = 512 24 | ) 25 | 26 | var ( 27 | newline = []byte{'\n'} 28 | space = []byte{' '} 29 | ) 30 | 31 | var upgrader = websocket.Upgrader{ 32 | ReadBufferSize: 1024, 33 | WriteBufferSize: 1024, 34 | } 35 | 36 | // Client is a middleman between the websocket connection and the hub. 37 | type Client struct { 38 | hub *Hub 39 | 40 | // The websocket connection. 41 | conn *websocket.Conn 42 | 43 | // Buffered channel of outbound messages. 44 | send chan []byte 45 | } 46 | 47 | // readPump pumps messages from the websocket connection to the hub. 48 | // 49 | // The application runs readPump in a per-connection goroutine. The application 50 | // ensures that there is at most one reader on a connection by executing all 51 | // reads from this goroutine. 52 | func (c *Client) readPump() { 53 | defer func() { 54 | c.hub.unregister <- c 55 | c.conn.Close() 56 | }() 57 | c.conn.SetReadLimit(maxMessageSize) 58 | c.conn.SetReadDeadline(time.Now().Add(pongWait)) 59 | c.conn.SetPongHandler(func(string) error { c.conn.SetReadDeadline(time.Now().Add(pongWait)); return nil }) 60 | for { 61 | _, message, err := c.conn.ReadMessage() 62 | if err != nil { 63 | if websocket.IsUnexpectedCloseError(err, websocket.CloseGoingAway, websocket.CloseAbnormalClosure) { 64 | log.Printf("error: %v", err) 65 | } 66 | break 67 | } 68 | message = bytes.TrimSpace(bytes.Replace(message, newline, space, -1)) 69 | c.hub.broadcast <- message 70 | } 71 | } 72 | 73 | // writePump pumps messages from the hub to the websocket connection. 74 | // 75 | // A goroutine running writePump is started for each connection. The 76 | // application ensures that there is at most one writer to a connection by 77 | // executing all writes from this goroutine. 78 | func (c *Client) writePump() { 79 | ticker := time.NewTicker(pingPeriod) 80 | defer func() { 81 | ticker.Stop() 82 | c.conn.Close() 83 | }() 84 | for { 85 | select { 86 | case message, ok := <-c.send: 87 | c.conn.SetWriteDeadline(time.Now().Add(writeWait)) 88 | if !ok { 89 | c.conn.WriteMessage(websocket.CloseMessage, []byte{}) 90 | return 91 | } 92 | 93 | w, err := c.conn.NextWriter(websocket.TextMessage) 94 | if err != nil { 95 | return 96 | } 97 | w.Write(message) 98 | 99 | // Add queued chat messages to the current websocket message. 100 | n := len(c.send) 101 | for i := 0; i < n; i++ { 102 | w.Write(newline) 103 | w.Write(<-c.send) 104 | } 105 | 106 | if err := w.Close(); err != nil { 107 | return 108 | } 109 | case <-ticker.C: 110 | c.conn.SetWriteDeadline(time.Now().Add(writeWait)) 111 | if err := c.conn.WriteMessage(websocket.PingMessage, nil); err != nil { 112 | return 113 | } 114 | } 115 | } 116 | } 117 | 118 | // serveWs handles websocket requests from the peer. 119 | func serveWs(hub *Hub, w http.ResponseWriter, r *http.Request) { 120 | conn, err := upgrader.Upgrade(w, r, nil) 121 | if err != nil { 122 | log.Println(err) 123 | return 124 | } 125 | client := &Client{hub: hub, conn: conn, send: make(chan []byte, 256)} 126 | client.hub.register <- client 127 | 128 | // Allow collection of memory referenced by the caller by doing all work in 129 | // new goroutines. 130 | go client.writePump() 131 | go client.readPump() 132 | } 133 | -------------------------------------------------------------------------------- /server/ws/http_controller.go: -------------------------------------------------------------------------------- 1 | package ws 2 | 3 | import ( 4 | "log" 5 | "net/http" 6 | 7 | "github.com/gin-gonic/gin" 8 | "github.com/gorilla/websocket" 9 | ) 10 | 11 | var wsupgrader = websocket.Upgrader{ 12 | ReadBufferSize: 1024, 13 | WriteBufferSize: 1024, 14 | CheckOrigin: func(r *http.Request) bool { 15 | return true 16 | }, 17 | } 18 | 19 | func wshandler(hub *Hub, w http.ResponseWriter, r *http.Request) { 20 | conn, err := wsupgrader.Upgrade(w, r, nil) 21 | if err != nil { 22 | log.Println(err) 23 | return 24 | } 25 | client := &Client{hub: hub, conn: conn, send: make(chan []byte, 256)} 26 | client.hub.register <- client 27 | 28 | // Allow collection of memory referenced by the caller by doing all work in 29 | // new goroutines. 30 | go client.writePump() 31 | go client.readPump() 32 | } 33 | func HttpController(c *gin.Context, hub *Hub) { 34 | wshandler(hub, c.Writer, c.Request) 35 | } 36 | -------------------------------------------------------------------------------- /server/ws/hub.go: -------------------------------------------------------------------------------- 1 | package ws 2 | 3 | import ( 4 | "sync" 5 | ) 6 | 7 | // Hub maintains the set of active clients and broadcasts messages to the 8 | // clients. 9 | type Hub struct { 10 | // Registered clients. 11 | clients map[*Client]bool 12 | 13 | // Inbound messages from the clients. 14 | broadcast chan []byte 15 | 16 | // Register requests from the clients. 17 | register chan *Client 18 | 19 | // Unregister requests from clients. 20 | unregister chan *Client 21 | } 22 | 23 | func NewHub() *Hub { 24 | return &Hub{ 25 | broadcast: make(chan []byte), 26 | register: make(chan *Client), 27 | unregister: make(chan *Client), 28 | clients: make(map[*Client]bool), 29 | } 30 | } 31 | 32 | var once sync.Once 33 | var singleton *Hub 34 | 35 | func (h *Hub) Run() { 36 | for { 37 | select { 38 | case client := <-h.register: 39 | h.clients[client] = true 40 | case client := <-h.unregister: 41 | if _, ok := h.clients[client]; ok { 42 | delete(h.clients, client) 43 | close(client.send) 44 | } 45 | case message := <-h.broadcast: 46 | for client := range h.clients { 47 | select { 48 | case client.send <- message: 49 | default: 50 | close(client.send) 51 | delete(h.clients, client) 52 | } 53 | } 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /tmp/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FrankFang/synk/9a69de156f30fbe1d113d754f30b53e2d902c8ea/tmp/.keep -------------------------------------------------------------------------------- /version: -------------------------------------------------------------------------------- 1 | 0.1.0 -------------------------------------------------------------------------------- /winres/synk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FrankFang/synk/9a69de156f30fbe1d113d754f30b53e2d902c8ea/winres/synk.png -------------------------------------------------------------------------------- /winres/winres.json: -------------------------------------------------------------------------------- 1 | { 2 | "RT_GROUP_ICON": { 3 | "APP": { 4 | "0000": [ 5 | "synk.png" 6 | ] 7 | } 8 | }, 9 | "RT_MANIFEST": { 10 | "#1": { 11 | "0409": { 12 | "identity": { 13 | "name": "synk" 14 | }, 15 | "description": "局域网同步传", 16 | "minimum-os": "win7", 17 | "execution-level": "as invoker", 18 | "ui-access": false, 19 | "auto-elevate": false, 20 | "dpi-awareness": "system", 21 | "disable-theming": false, 22 | "disable-window-filtering": false, 23 | "high-resolution-scrolling-aware": false, 24 | "ultra-high-resolution-scrolling-aware": false, 25 | "long-path-aware": false, 26 | "printer-driver-isolation": false, 27 | "gdi-scaling": false, 28 | "segment-heap": false, 29 | "use-common-controls-v6": false 30 | } 31 | } 32 | }, 33 | "RT_VERSION": { 34 | "#1": { 35 | "0000": { 36 | "fixed": { 37 | "file_version": "0.1.0.0", 38 | "product_version": "0.1.0.0" 39 | }, 40 | "info": { 41 | "0409": { 42 | "Comments": "", 43 | "CompanyName": "方应杭", 44 | "FileDescription": "", 45 | "FileVersion": "", 46 | "InternalName": "synk", 47 | "LegalCopyright": "", 48 | "LegalTrademarks": "", 49 | "OriginalFilename": "", 50 | "PrivateBuild": "", 51 | "ProductName": "同步传", 52 | "ProductVersion": "0.1.0", 53 | "SpecialBuild": "" 54 | } 55 | } 56 | } 57 | } 58 | } 59 | } -------------------------------------------------------------------------------- /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/helper-validator-identifier@^7.14.5": 13 | version "7.15.7" 14 | resolved "https://registry.nlark.com/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389" 15 | integrity sha1-Ig35k7/pBKSmsCq08zhaXr9uI4k= 16 | 17 | "@babel/highlight@^7.10.4": 18 | version "7.14.5" 19 | resolved "https://registry.nlark.com/@babel/highlight/download/@babel/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" 20 | integrity sha1-aGGlLwOWZAUAH2qlNKAaJNmejNk= 21 | dependencies: 22 | "@babel/helper-validator-identifier" "^7.14.5" 23 | chalk "^2.0.0" 24 | js-tokens "^4.0.0" 25 | 26 | "@eslint/eslintrc@^0.4.3": 27 | version "0.4.3" 28 | resolved "https://registry.nlark.com/@eslint/eslintrc/download/@eslint/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" 29 | integrity sha1-nkKYHvA1vrPdSa3ResuW6P9vOUw= 30 | dependencies: 31 | ajv "^6.12.4" 32 | debug "^4.1.1" 33 | espree "^7.3.0" 34 | globals "^13.9.0" 35 | ignore "^4.0.6" 36 | import-fresh "^3.2.1" 37 | js-yaml "^3.13.1" 38 | minimatch "^3.0.4" 39 | strip-json-comments "^3.1.1" 40 | 41 | "@humanwhocodes/config-array@^0.5.0": 42 | version "0.5.0" 43 | resolved "https://registry.npmmirror.com/@humanwhocodes/config-array/download/@humanwhocodes/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" 44 | integrity sha1-FAeWfUxu7Nc4j4Os8er00Mbljvk= 45 | dependencies: 46 | "@humanwhocodes/object-schema" "^1.2.0" 47 | debug "^4.1.1" 48 | minimatch "^3.0.4" 49 | 50 | "@humanwhocodes/object-schema@^1.2.0": 51 | version "1.2.0" 52 | resolved "https://registry.nlark.com/@humanwhocodes/object-schema/download/@humanwhocodes/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf" 53 | integrity sha1-h956+cIxgm/daKxyWPd8Qp4OX88= 54 | 55 | "@nodelib/fs.scandir@2.1.5": 56 | version "2.1.5" 57 | resolved "https://registry.nlark.com/@nodelib/fs.scandir/download/@nodelib/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" 58 | integrity sha1-dhnC6yGyVIP20WdUi0z9WnSIw9U= 59 | dependencies: 60 | "@nodelib/fs.stat" "2.0.5" 61 | run-parallel "^1.1.9" 62 | 63 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": 64 | version "2.0.5" 65 | resolved "https://registry.nlark.com/@nodelib/fs.stat/download/@nodelib/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" 66 | integrity sha1-W9Jir5Tp0lvR5xsF3u1Eh2oiLos= 67 | 68 | "@nodelib/fs.walk@^1.2.3": 69 | version "1.2.8" 70 | resolved "https://registry.nlark.com/@nodelib/fs.walk/download/@nodelib/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" 71 | integrity sha1-6Vc36LtnRt3t9pxVaVNJTxlv5po= 72 | dependencies: 73 | "@nodelib/fs.scandir" "2.1.5" 74 | fastq "^1.6.0" 75 | 76 | "@types/json-schema@^7.0.7": 77 | version "7.0.9" 78 | resolved "https://registry.nlark.com/@types/json-schema/download/@types/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" 79 | integrity sha1-l+3JA36gw4WFMgsolk3eOznkZg0= 80 | 81 | "@typescript-eslint/eslint-plugin@^4.33.0": 82 | version "4.33.0" 83 | resolved "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/download/@typescript-eslint/eslint-plugin-4.33.0.tgz?cache=0&sync_timestamp=1633599729411&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40typescript-eslint%2Feslint-plugin%2Fdownload%2F%40typescript-eslint%2Feslint-plugin-4.33.0.tgz#c24dc7c8069c7706bc40d99f6fa87edcb2005276" 84 | integrity sha1-wk3HyAacdwa8QNmfb6h+3LIAUnY= 85 | dependencies: 86 | "@typescript-eslint/experimental-utils" "4.33.0" 87 | "@typescript-eslint/scope-manager" "4.33.0" 88 | debug "^4.3.1" 89 | functional-red-black-tree "^1.0.1" 90 | ignore "^5.1.8" 91 | regexpp "^3.1.0" 92 | semver "^7.3.5" 93 | tsutils "^3.21.0" 94 | 95 | "@typescript-eslint/experimental-utils@4.33.0": 96 | version "4.33.0" 97 | resolved "https://registry.npmmirror.com/@typescript-eslint/experimental-utils/download/@typescript-eslint/experimental-utils-4.33.0.tgz?cache=0&sync_timestamp=1633599744822&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40typescript-eslint%2Fexperimental-utils%2Fdownload%2F%40typescript-eslint%2Fexperimental-utils-4.33.0.tgz#6f2a786a4209fa2222989e9380b5331b2810f7fd" 98 | integrity sha1-byp4akIJ+iIimJ6TgLUzGygQ9/0= 99 | dependencies: 100 | "@types/json-schema" "^7.0.7" 101 | "@typescript-eslint/scope-manager" "4.33.0" 102 | "@typescript-eslint/types" "4.33.0" 103 | "@typescript-eslint/typescript-estree" "4.33.0" 104 | eslint-scope "^5.1.1" 105 | eslint-utils "^3.0.0" 106 | 107 | "@typescript-eslint/parser@^4.33.0": 108 | version "4.33.0" 109 | resolved "https://registry.npmmirror.com/@typescript-eslint/parser/download/@typescript-eslint/parser-4.33.0.tgz?cache=0&sync_timestamp=1633599730942&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40typescript-eslint%2Fparser%2Fdownload%2F%40typescript-eslint%2Fparser-4.33.0.tgz#dfe797570d9694e560528d18eecad86c8c744899" 110 | integrity sha1-3+eXVw2WlOVgUo0Y7srYbIx0SJk= 111 | dependencies: 112 | "@typescript-eslint/scope-manager" "4.33.0" 113 | "@typescript-eslint/types" "4.33.0" 114 | "@typescript-eslint/typescript-estree" "4.33.0" 115 | debug "^4.3.1" 116 | 117 | "@typescript-eslint/scope-manager@4.33.0": 118 | version "4.33.0" 119 | resolved "https://registry.npmmirror.com/@typescript-eslint/scope-manager/download/@typescript-eslint/scope-manager-4.33.0.tgz#d38e49280d983e8772e29121cf8c6e9221f280a3" 120 | integrity sha1-045JKA2YPody4pEhz4xukiHygKM= 121 | dependencies: 122 | "@typescript-eslint/types" "4.33.0" 123 | "@typescript-eslint/visitor-keys" "4.33.0" 124 | 125 | "@typescript-eslint/types@4.33.0": 126 | version "4.33.0" 127 | resolved "https://registry.npmmirror.com/@typescript-eslint/types/download/@typescript-eslint/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" 128 | integrity sha1-oeWQNqO1OuhDDO6/KpGdx/mvbXI= 129 | 130 | "@typescript-eslint/typescript-estree@4.33.0": 131 | version "4.33.0" 132 | resolved "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/download/@typescript-eslint/typescript-estree-4.33.0.tgz?cache=0&sync_timestamp=1633599748128&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40typescript-eslint%2Ftypescript-estree%2Fdownload%2F%40typescript-eslint%2Ftypescript-estree-4.33.0.tgz#0dfb51c2908f68c5c08d82aefeaf166a17c24609" 133 | integrity sha1-DftRwpCPaMXAjYKu/q8WahfCRgk= 134 | dependencies: 135 | "@typescript-eslint/types" "4.33.0" 136 | "@typescript-eslint/visitor-keys" "4.33.0" 137 | debug "^4.3.1" 138 | globby "^11.0.3" 139 | is-glob "^4.0.1" 140 | semver "^7.3.5" 141 | tsutils "^3.21.0" 142 | 143 | "@typescript-eslint/visitor-keys@4.33.0": 144 | version "4.33.0" 145 | resolved "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/download/@typescript-eslint/visitor-keys-4.33.0.tgz#2a22f77a41604289b7a186586e9ec48ca92ef1dd" 146 | integrity sha1-KiL3ekFgQom3oYZYbp7EjKku8d0= 147 | dependencies: 148 | "@typescript-eslint/types" "4.33.0" 149 | eslint-visitor-keys "^2.0.0" 150 | 151 | acorn-jsx@^5.3.1: 152 | version "5.3.2" 153 | resolved "https://registry.nlark.com/acorn-jsx/download/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" 154 | integrity sha1-ftW7VZCLOy8bxVxq8WU7rafweTc= 155 | 156 | acorn@^7.4.0: 157 | version "7.4.1" 158 | resolved "https://registry.nlark.com/acorn/download/acorn-7.4.1.tgz?cache=0&sync_timestamp=1630916517167&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" 159 | integrity sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo= 160 | 161 | ajv@^6.10.0, ajv@^6.12.4: 162 | version "6.12.6" 163 | resolved "https://registry.nlark.com/ajv/download/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" 164 | integrity sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ= 165 | dependencies: 166 | fast-deep-equal "^3.1.1" 167 | fast-json-stable-stringify "^2.0.0" 168 | json-schema-traverse "^0.4.1" 169 | uri-js "^4.2.2" 170 | 171 | ajv@^8.0.1: 172 | version "8.6.3" 173 | resolved "https://registry.nlark.com/ajv/download/ajv-8.6.3.tgz#11a66527761dc3e9a3845ea775d2d3c0414e8764" 174 | integrity sha1-EaZlJ3Ydw+mjhF6nddLTwEFOh2Q= 175 | dependencies: 176 | fast-deep-equal "^3.1.1" 177 | json-schema-traverse "^1.0.0" 178 | require-from-string "^2.0.2" 179 | uri-js "^4.2.2" 180 | 181 | ansi-colors@^4.1.1: 182 | version "4.1.1" 183 | resolved "https://registry.nlark.com/ansi-colors/download/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" 184 | integrity sha1-y7muJWv3UK8eqzRPIpqif+lLo0g= 185 | 186 | ansi-regex@^5.0.1: 187 | version "5.0.1" 188 | resolved "https://registry.nlark.com/ansi-regex/download/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" 189 | integrity sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ= 190 | 191 | ansi-styles@^3.2.1: 192 | version "3.2.1" 193 | resolved "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 194 | integrity sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0= 195 | dependencies: 196 | color-convert "^1.9.0" 197 | 198 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 199 | version "4.3.0" 200 | resolved "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 201 | integrity sha1-7dgDYornHATIWuegkG7a00tkiTc= 202 | dependencies: 203 | color-convert "^2.0.1" 204 | 205 | argparse@^1.0.7: 206 | version "1.0.10" 207 | resolved "https://registry.nlark.com/argparse/download/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 208 | integrity sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE= 209 | dependencies: 210 | sprintf-js "~1.0.2" 211 | 212 | array-includes@^3.1.3: 213 | version "3.1.4" 214 | resolved "https://registry.npmmirror.com/array-includes/download/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9" 215 | integrity sha1-9bSTFix2DzU5Yx8AW6K7Rqy0W6k= 216 | dependencies: 217 | call-bind "^1.0.2" 218 | define-properties "^1.1.3" 219 | es-abstract "^1.19.1" 220 | get-intrinsic "^1.1.1" 221 | is-string "^1.0.7" 222 | 223 | array-union@^2.1.0: 224 | version "2.1.0" 225 | resolved "https://registry.nlark.com/array-union/download/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" 226 | integrity sha1-t5hCCtvrHego2ErNii4j0+/oXo0= 227 | 228 | array.prototype.flatmap@^1.2.4: 229 | version "1.2.5" 230 | resolved "https://registry.npmmirror.com/array.prototype.flatmap/download/array.prototype.flatmap-1.2.5.tgz#908dc82d8a406930fdf38598d51e7411d18d4446" 231 | integrity sha1-kI3ILYpAaTD984WY1R50EdGNREY= 232 | dependencies: 233 | call-bind "^1.0.0" 234 | define-properties "^1.1.3" 235 | es-abstract "^1.19.0" 236 | 237 | astral-regex@^2.0.0: 238 | version "2.0.0" 239 | resolved "https://registry.nlark.com/astral-regex/download/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" 240 | integrity sha1-SDFDxWeu7UeFdZwIZXhtx319LjE= 241 | 242 | balanced-match@^1.0.0: 243 | version "1.0.2" 244 | resolved "https://registry.nlark.com/balanced-match/download/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 245 | integrity sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4= 246 | 247 | brace-expansion@^1.1.7: 248 | version "1.1.11" 249 | resolved "https://registry.nlark.com/brace-expansion/download/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 250 | integrity sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0= 251 | dependencies: 252 | balanced-match "^1.0.0" 253 | concat-map "0.0.1" 254 | 255 | braces@^3.0.1: 256 | version "3.0.2" 257 | resolved "https://registry.nlark.com/braces/download/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 258 | integrity sha1-NFThpGLujVmeI23zNs2epPiv4Qc= 259 | dependencies: 260 | fill-range "^7.0.1" 261 | 262 | call-bind@^1.0.0, call-bind@^1.0.2: 263 | version "1.0.2" 264 | resolved "https://registry.nlark.com/call-bind/download/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" 265 | integrity sha1-sdTonmiBGcPJqQOtMKuy9qkZvjw= 266 | dependencies: 267 | function-bind "^1.1.1" 268 | get-intrinsic "^1.0.2" 269 | 270 | callsites@^3.0.0: 271 | version "3.1.0" 272 | resolved "https://registry.nlark.com/callsites/download/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" 273 | integrity sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M= 274 | 275 | chalk@^2.0.0: 276 | version "2.4.2" 277 | resolved "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz?cache=0&sync_timestamp=1627646850823&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 278 | integrity sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ= 279 | dependencies: 280 | ansi-styles "^3.2.1" 281 | escape-string-regexp "^1.0.5" 282 | supports-color "^5.3.0" 283 | 284 | chalk@^4.0.0: 285 | version "4.1.2" 286 | resolved "https://registry.nlark.com/chalk/download/chalk-4.1.2.tgz?cache=0&sync_timestamp=1627646850823&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" 287 | integrity sha1-qsTit3NKdAhnrrFr8CqtVWoeegE= 288 | dependencies: 289 | ansi-styles "^4.1.0" 290 | supports-color "^7.1.0" 291 | 292 | color-convert@^1.9.0: 293 | version "1.9.3" 294 | resolved "https://registry.nlark.com/color-convert/download/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 295 | integrity sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg= 296 | dependencies: 297 | color-name "1.1.3" 298 | 299 | color-convert@^2.0.1: 300 | version "2.0.1" 301 | resolved "https://registry.nlark.com/color-convert/download/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 302 | integrity sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM= 303 | dependencies: 304 | color-name "~1.1.4" 305 | 306 | color-name@1.1.3: 307 | version "1.1.3" 308 | resolved "https://registry.nlark.com/color-name/download/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 309 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 310 | 311 | color-name@~1.1.4: 312 | version "1.1.4" 313 | resolved "https://registry.nlark.com/color-name/download/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 314 | integrity sha1-wqCah6y95pVD3m9j+jmVyCbFNqI= 315 | 316 | concat-map@0.0.1: 317 | version "0.0.1" 318 | resolved "https://registry.nlark.com/concat-map/download/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 319 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 320 | 321 | cross-spawn@^7.0.2: 322 | version "7.0.3" 323 | resolved "https://registry.nlark.com/cross-spawn/download/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" 324 | integrity sha1-9zqFudXUHQRVUcF34ogtSshXKKY= 325 | dependencies: 326 | path-key "^3.1.0" 327 | shebang-command "^2.0.0" 328 | which "^2.0.1" 329 | 330 | debug@^4.0.1, debug@^4.1.1, debug@^4.3.1: 331 | version "4.3.2" 332 | resolved "https://registry.nlark.com/debug/download/debug-4.3.2.tgz?cache=0&sync_timestamp=1625374735764&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdebug%2Fdownload%2Fdebug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" 333 | integrity sha1-8KScGKyHeeMdSgxgKd+3aHPHQos= 334 | dependencies: 335 | ms "2.1.2" 336 | 337 | deep-is@^0.1.3: 338 | version "0.1.4" 339 | resolved "https://registry.nlark.com/deep-is/download/deep-is-0.1.4.tgz?cache=0&sync_timestamp=1630774990168&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdeep-is%2Fdownload%2Fdeep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" 340 | integrity sha1-pvLc5hL63S7x9Rm3NVHxfoUZmDE= 341 | 342 | define-properties@^1.1.3: 343 | version "1.1.3" 344 | resolved "https://registry.nlark.com/define-properties/download/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" 345 | integrity sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE= 346 | dependencies: 347 | object-keys "^1.0.12" 348 | 349 | dir-glob@^3.0.1: 350 | version "3.0.1" 351 | resolved "https://registry.nlark.com/dir-glob/download/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" 352 | integrity sha1-Vtv3PZkqSpO6FYT0U0Bj/S5BcX8= 353 | dependencies: 354 | path-type "^4.0.0" 355 | 356 | doctrine@^2.1.0: 357 | version "2.1.0" 358 | resolved "https://registry.nlark.com/doctrine/download/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" 359 | integrity sha1-XNAfwQFiG0LEzX9dGmYkNxbT850= 360 | dependencies: 361 | esutils "^2.0.2" 362 | 363 | doctrine@^3.0.0: 364 | version "3.0.0" 365 | resolved "https://registry.nlark.com/doctrine/download/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" 366 | integrity sha1-rd6+rXKmV023g2OdyHoSF3OXOWE= 367 | dependencies: 368 | esutils "^2.0.2" 369 | 370 | emoji-regex@^8.0.0: 371 | version "8.0.0" 372 | resolved "https://registry.npmmirror.com/emoji-regex/download/emoji-regex-8.0.0.tgz?cache=0&sync_timestamp=1632751313004&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Femoji-regex%2Fdownload%2Femoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 373 | integrity sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc= 374 | 375 | enquirer@^2.3.5: 376 | version "2.3.6" 377 | resolved "https://registry.nlark.com/enquirer/download/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" 378 | integrity sha1-Kn/l3WNKHkElqXXsmU/1RW3Dc00= 379 | dependencies: 380 | ansi-colors "^4.1.1" 381 | 382 | es-abstract@^1.19.0, es-abstract@^1.19.1: 383 | version "1.19.1" 384 | resolved "https://registry.npmmirror.com/es-abstract/download/es-abstract-1.19.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fes-abstract%2Fdownload%2Fes-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" 385 | integrity sha1-1IhXlodpFpWd547aoN9FZicRXsM= 386 | dependencies: 387 | call-bind "^1.0.2" 388 | es-to-primitive "^1.2.1" 389 | function-bind "^1.1.1" 390 | get-intrinsic "^1.1.1" 391 | get-symbol-description "^1.0.0" 392 | has "^1.0.3" 393 | has-symbols "^1.0.2" 394 | internal-slot "^1.0.3" 395 | is-callable "^1.2.4" 396 | is-negative-zero "^2.0.1" 397 | is-regex "^1.1.4" 398 | is-shared-array-buffer "^1.0.1" 399 | is-string "^1.0.7" 400 | is-weakref "^1.0.1" 401 | object-inspect "^1.11.0" 402 | object-keys "^1.1.1" 403 | object.assign "^4.1.2" 404 | string.prototype.trimend "^1.0.4" 405 | string.prototype.trimstart "^1.0.4" 406 | unbox-primitive "^1.0.1" 407 | 408 | es-to-primitive@^1.2.1: 409 | version "1.2.1" 410 | resolved "https://registry.nlark.com/es-to-primitive/download/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" 411 | integrity sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo= 412 | dependencies: 413 | is-callable "^1.1.4" 414 | is-date-object "^1.0.1" 415 | is-symbol "^1.0.2" 416 | 417 | escape-string-regexp@^1.0.5: 418 | version "1.0.5" 419 | resolved "https://registry.nlark.com/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 420 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 421 | 422 | escape-string-regexp@^4.0.0: 423 | version "4.0.0" 424 | resolved "https://registry.nlark.com/escape-string-regexp/download/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" 425 | integrity sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ= 426 | 427 | eslint-plugin-react@^7.26.1: 428 | version "7.26.1" 429 | resolved "https://registry.npmmirror.com/eslint-plugin-react/download/eslint-plugin-react-7.26.1.tgz#41bcfe3e39e6a5ac040971c1af94437c80daa40e" 430 | integrity sha1-Qbz+PjnmpawECXHBr5RDfIDapA4= 431 | dependencies: 432 | array-includes "^3.1.3" 433 | array.prototype.flatmap "^1.2.4" 434 | doctrine "^2.1.0" 435 | estraverse "^5.2.0" 436 | jsx-ast-utils "^2.4.1 || ^3.0.0" 437 | minimatch "^3.0.4" 438 | object.entries "^1.1.4" 439 | object.fromentries "^2.0.4" 440 | object.hasown "^1.0.0" 441 | object.values "^1.1.4" 442 | prop-types "^15.7.2" 443 | resolve "^2.0.0-next.3" 444 | semver "^6.3.0" 445 | string.prototype.matchall "^4.0.5" 446 | 447 | eslint-scope@^5.1.1: 448 | version "5.1.1" 449 | resolved "https://registry.nlark.com/eslint-scope/download/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" 450 | integrity sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw= 451 | dependencies: 452 | esrecurse "^4.3.0" 453 | estraverse "^4.1.1" 454 | 455 | eslint-utils@^2.1.0: 456 | version "2.1.0" 457 | resolved "https://registry.nlark.com/eslint-utils/download/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" 458 | integrity sha1-0t5eA0JOcH3BDHQGjd7a5wh0Gyc= 459 | dependencies: 460 | eslint-visitor-keys "^1.1.0" 461 | 462 | eslint-utils@^3.0.0: 463 | version "3.0.0" 464 | resolved "https://registry.nlark.com/eslint-utils/download/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" 465 | integrity sha1-iuuvrOc0W7M1WdsKHxOh0tSMNnI= 466 | dependencies: 467 | eslint-visitor-keys "^2.0.0" 468 | 469 | eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: 470 | version "1.3.0" 471 | resolved "https://registry.nlark.com/eslint-visitor-keys/download/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" 472 | integrity sha1-MOvR73wv3/AcOk8VEESvJfqwUj4= 473 | 474 | eslint-visitor-keys@^2.0.0: 475 | version "2.1.0" 476 | resolved "https://registry.nlark.com/eslint-visitor-keys/download/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" 477 | integrity sha1-9lMoJZMFknOSyTjtROsKXJsr0wM= 478 | 479 | eslint@^7.32.0: 480 | version "7.32.0" 481 | resolved "https://registry.npmmirror.com/eslint/download/eslint-7.32.0.tgz?cache=0&sync_timestamp=1632525386220&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint%2Fdownload%2Feslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" 482 | integrity sha1-xtMooUvj+wjI0dIeEsAv23oqgS0= 483 | dependencies: 484 | "@babel/code-frame" "7.12.11" 485 | "@eslint/eslintrc" "^0.4.3" 486 | "@humanwhocodes/config-array" "^0.5.0" 487 | ajv "^6.10.0" 488 | chalk "^4.0.0" 489 | cross-spawn "^7.0.2" 490 | debug "^4.0.1" 491 | doctrine "^3.0.0" 492 | enquirer "^2.3.5" 493 | escape-string-regexp "^4.0.0" 494 | eslint-scope "^5.1.1" 495 | eslint-utils "^2.1.0" 496 | eslint-visitor-keys "^2.0.0" 497 | espree "^7.3.1" 498 | esquery "^1.4.0" 499 | esutils "^2.0.2" 500 | fast-deep-equal "^3.1.3" 501 | file-entry-cache "^6.0.1" 502 | functional-red-black-tree "^1.0.1" 503 | glob-parent "^5.1.2" 504 | globals "^13.6.0" 505 | ignore "^4.0.6" 506 | import-fresh "^3.0.0" 507 | imurmurhash "^0.1.4" 508 | is-glob "^4.0.0" 509 | js-yaml "^3.13.1" 510 | json-stable-stringify-without-jsonify "^1.0.1" 511 | levn "^0.4.1" 512 | lodash.merge "^4.6.2" 513 | minimatch "^3.0.4" 514 | natural-compare "^1.4.0" 515 | optionator "^0.9.1" 516 | progress "^2.0.0" 517 | regexpp "^3.1.0" 518 | semver "^7.2.1" 519 | strip-ansi "^6.0.0" 520 | strip-json-comments "^3.1.0" 521 | table "^6.0.9" 522 | text-table "^0.2.0" 523 | v8-compile-cache "^2.0.3" 524 | 525 | espree@^7.3.0, espree@^7.3.1: 526 | version "7.3.1" 527 | resolved "https://registry.nlark.com/espree/download/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" 528 | integrity sha1-8t8zC3Usb1UBn4vYm3ZgA5wbu7Y= 529 | dependencies: 530 | acorn "^7.4.0" 531 | acorn-jsx "^5.3.1" 532 | eslint-visitor-keys "^1.3.0" 533 | 534 | esprima@^4.0.0: 535 | version "4.0.1" 536 | resolved "https://registry.nlark.com/esprima/download/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 537 | integrity sha1-E7BM2z5sXRnfkatph6hpVhmwqnE= 538 | 539 | esquery@^1.4.0: 540 | version "1.4.0" 541 | resolved "https://registry.nlark.com/esquery/download/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" 542 | integrity sha1-IUj/w4uC6McFff7UhCWz5h8PJKU= 543 | dependencies: 544 | estraverse "^5.1.0" 545 | 546 | esrecurse@^4.3.0: 547 | version "4.3.0" 548 | resolved "https://registry.nlark.com/esrecurse/download/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" 549 | integrity sha1-eteWTWeauyi+5yzsY3WLHF0smSE= 550 | dependencies: 551 | estraverse "^5.2.0" 552 | 553 | estraverse@^4.1.1: 554 | version "4.3.0" 555 | resolved "https://registry.nlark.com/estraverse/download/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" 556 | integrity sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0= 557 | 558 | estraverse@^5.1.0, estraverse@^5.2.0: 559 | version "5.2.0" 560 | resolved "https://registry.nlark.com/estraverse/download/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" 561 | integrity sha1-MH30JUfmzHMk088DwVXVzbjFOIA= 562 | 563 | esutils@^2.0.2: 564 | version "2.0.3" 565 | resolved "https://registry.nlark.com/esutils/download/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 566 | integrity sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q= 567 | 568 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: 569 | version "3.1.3" 570 | resolved "https://registry.nlark.com/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 571 | integrity sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU= 572 | 573 | fast-glob@^3.1.1: 574 | version "3.2.7" 575 | resolved "https://registry.nlark.com/fast-glob/download/fast-glob-3.2.7.tgz?cache=0&sync_timestamp=1625772524389&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffast-glob%2Fdownload%2Ffast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" 576 | integrity sha1-/Wy3otfpqnp4RhEehaGW1rL3ZqE= 577 | dependencies: 578 | "@nodelib/fs.stat" "^2.0.2" 579 | "@nodelib/fs.walk" "^1.2.3" 580 | glob-parent "^5.1.2" 581 | merge2 "^1.3.0" 582 | micromatch "^4.0.4" 583 | 584 | fast-json-stable-stringify@^2.0.0: 585 | version "2.1.0" 586 | resolved "https://registry.nlark.com/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 587 | integrity sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM= 588 | 589 | fast-levenshtein@^2.0.6: 590 | version "2.0.6" 591 | resolved "https://registry.nlark.com/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 592 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= 593 | 594 | fastq@^1.6.0: 595 | version "1.13.0" 596 | resolved "https://registry.nlark.com/fastq/download/fastq-1.13.0.tgz?cache=0&sync_timestamp=1631609750055&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffastq%2Fdownload%2Ffastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" 597 | integrity sha1-YWdg+Ip1Jr38WWt8q4wYk4w2uYw= 598 | dependencies: 599 | reusify "^1.0.4" 600 | 601 | file-entry-cache@^6.0.1: 602 | version "6.0.1" 603 | resolved "https://registry.nlark.com/file-entry-cache/download/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" 604 | integrity sha1-IRst2WWcsDlLBz5zI6w8kz1SICc= 605 | dependencies: 606 | flat-cache "^3.0.4" 607 | 608 | fill-range@^7.0.1: 609 | version "7.0.1" 610 | resolved "https://registry.nlark.com/fill-range/download/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 611 | integrity sha1-GRmmp8df44ssfHflGYU12prN2kA= 612 | dependencies: 613 | to-regex-range "^5.0.1" 614 | 615 | flat-cache@^3.0.4: 616 | version "3.0.4" 617 | resolved "https://registry.nlark.com/flat-cache/download/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" 618 | integrity sha1-YbAzgwKy/p+Vfcwy/CqH8cMEixE= 619 | dependencies: 620 | flatted "^3.1.0" 621 | rimraf "^3.0.2" 622 | 623 | flatted@^3.1.0: 624 | version "3.2.2" 625 | resolved "https://registry.nlark.com/flatted/download/flatted-3.2.2.tgz?cache=0&sync_timestamp=1627541049935&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fflatted%2Fdownload%2Fflatted-3.2.2.tgz#64bfed5cb68fe3ca78b3eb214ad97b63bedce561" 626 | integrity sha1-ZL/tXLaP48p4s+shStl7Y77c5WE= 627 | 628 | fs.realpath@^1.0.0: 629 | version "1.0.0" 630 | resolved "https://registry.nlark.com/fs.realpath/download/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 631 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 632 | 633 | function-bind@^1.1.1: 634 | version "1.1.1" 635 | resolved "https://registry.nlark.com/function-bind/download/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 636 | integrity sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0= 637 | 638 | functional-red-black-tree@^1.0.1: 639 | version "1.0.1" 640 | resolved "https://registry.nlark.com/functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" 641 | integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= 642 | 643 | get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: 644 | version "1.1.1" 645 | resolved "https://registry.nlark.com/get-intrinsic/download/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" 646 | integrity sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y= 647 | dependencies: 648 | function-bind "^1.1.1" 649 | has "^1.0.3" 650 | has-symbols "^1.0.1" 651 | 652 | get-symbol-description@^1.0.0: 653 | version "1.0.0" 654 | resolved "https://registry.nlark.com/get-symbol-description/download/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" 655 | integrity sha1-f9uByQAQH71WTdXxowr1qtweWNY= 656 | dependencies: 657 | call-bind "^1.0.2" 658 | get-intrinsic "^1.1.1" 659 | 660 | glob-parent@^5.1.2: 661 | version "5.1.2" 662 | resolved "https://registry.npmmirror.com/glob-parent/download/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 663 | integrity sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ= 664 | dependencies: 665 | is-glob "^4.0.1" 666 | 667 | glob@^7.1.3: 668 | version "7.2.0" 669 | resolved "https://registry.npmmirror.com/glob/download/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" 670 | integrity sha1-0VU1r3cy4C6Uj0xBYovZECk/YCM= 671 | dependencies: 672 | fs.realpath "^1.0.0" 673 | inflight "^1.0.4" 674 | inherits "2" 675 | minimatch "^3.0.4" 676 | once "^1.3.0" 677 | path-is-absolute "^1.0.0" 678 | 679 | globals@^13.6.0, globals@^13.9.0: 680 | version "13.11.0" 681 | resolved "https://registry.nlark.com/globals/download/globals-13.11.0.tgz#40ef678da117fe7bd2e28f1fab24951bd0255be7" 682 | integrity sha1-QO9njaEX/nvS4o8fqySVG9AlW+c= 683 | dependencies: 684 | type-fest "^0.20.2" 685 | 686 | globby@^11.0.3: 687 | version "11.0.4" 688 | resolved "https://registry.nlark.com/globby/download/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" 689 | integrity sha1-LLr/d8Lypi5x6bKBOme5ejowAaU= 690 | dependencies: 691 | array-union "^2.1.0" 692 | dir-glob "^3.0.1" 693 | fast-glob "^3.1.1" 694 | ignore "^5.1.4" 695 | merge2 "^1.3.0" 696 | slash "^3.0.0" 697 | 698 | has-bigints@^1.0.1: 699 | version "1.0.1" 700 | resolved "https://registry.nlark.com/has-bigints/download/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" 701 | integrity sha1-ZP5qywIGc+O3jbA1pa9pqp0HsRM= 702 | 703 | has-flag@^3.0.0: 704 | version "3.0.0" 705 | resolved "https://registry.nlark.com/has-flag/download/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 706 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 707 | 708 | has-flag@^4.0.0: 709 | version "4.0.0" 710 | resolved "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 711 | integrity sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s= 712 | 713 | has-symbols@^1.0.1, has-symbols@^1.0.2: 714 | version "1.0.2" 715 | resolved "https://registry.nlark.com/has-symbols/download/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" 716 | integrity sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM= 717 | 718 | has-tostringtag@^1.0.0: 719 | version "1.0.0" 720 | resolved "https://registry.nlark.com/has-tostringtag/download/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" 721 | integrity sha1-fhM4GKfTlHNPlB5zw9P5KR5liyU= 722 | dependencies: 723 | has-symbols "^1.0.2" 724 | 725 | has@^1.0.3: 726 | version "1.0.3" 727 | resolved "https://registry.nlark.com/has/download/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 728 | integrity sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y= 729 | dependencies: 730 | function-bind "^1.1.1" 731 | 732 | ignore@^4.0.6: 733 | version "4.0.6" 734 | resolved "https://registry.nlark.com/ignore/download/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" 735 | integrity sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw= 736 | 737 | ignore@^5.1.4, ignore@^5.1.8: 738 | version "5.1.8" 739 | resolved "https://registry.nlark.com/ignore/download/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" 740 | integrity sha1-8VCotQo0KJsz4i9YiavU2AFvDlc= 741 | 742 | import-fresh@^3.0.0, import-fresh@^3.2.1: 743 | version "3.3.0" 744 | resolved "https://registry.nlark.com/import-fresh/download/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" 745 | integrity sha1-NxYsJfy566oublPVtNiM4X2eDCs= 746 | dependencies: 747 | parent-module "^1.0.0" 748 | resolve-from "^4.0.0" 749 | 750 | imurmurhash@^0.1.4: 751 | version "0.1.4" 752 | resolved "https://registry.nlark.com/imurmurhash/download/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 753 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= 754 | 755 | inflight@^1.0.4: 756 | version "1.0.6" 757 | resolved "https://registry.nlark.com/inflight/download/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 758 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 759 | dependencies: 760 | once "^1.3.0" 761 | wrappy "1" 762 | 763 | inherits@2: 764 | version "2.0.4" 765 | resolved "https://registry.nlark.com/inherits/download/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 766 | integrity sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w= 767 | 768 | internal-slot@^1.0.3: 769 | version "1.0.3" 770 | resolved "https://registry.nlark.com/internal-slot/download/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" 771 | integrity sha1-c0fjB97uovqsKsYgXUvH00ln9Zw= 772 | dependencies: 773 | get-intrinsic "^1.1.0" 774 | has "^1.0.3" 775 | side-channel "^1.0.4" 776 | 777 | is-bigint@^1.0.1: 778 | version "1.0.4" 779 | resolved "https://registry.nlark.com/is-bigint/download/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" 780 | integrity sha1-CBR6GHW8KzIAXUHM2Ckd/8ZpHfM= 781 | dependencies: 782 | has-bigints "^1.0.1" 783 | 784 | is-boolean-object@^1.1.0: 785 | version "1.1.2" 786 | resolved "https://registry.nlark.com/is-boolean-object/download/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" 787 | integrity sha1-XG3CACRt2TIa5LiFoRS7H3X2Nxk= 788 | dependencies: 789 | call-bind "^1.0.2" 790 | has-tostringtag "^1.0.0" 791 | 792 | is-callable@^1.1.4, is-callable@^1.2.4: 793 | version "1.2.4" 794 | resolved "https://registry.nlark.com/is-callable/download/is-callable-1.2.4.tgz?cache=0&sync_timestamp=1628259899162&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-callable%2Fdownload%2Fis-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" 795 | integrity sha1-RzAdWN0CWUB4ZVR4U99tYf5HGUU= 796 | 797 | is-core-module@^2.2.0: 798 | version "2.7.0" 799 | resolved "https://registry.npmmirror.com/is-core-module/download/is-core-module-2.7.0.tgz#3c0ef7d31b4acfc574f80c58409d568a836848e3" 800 | integrity sha1-PA730xtKz8V0+AxYQJ1WioNoSOM= 801 | dependencies: 802 | has "^1.0.3" 803 | 804 | is-date-object@^1.0.1: 805 | version "1.0.5" 806 | resolved "https://registry.nlark.com/is-date-object/download/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" 807 | integrity sha1-CEHVU25yTCVZe/bqYuG9OCmN8x8= 808 | dependencies: 809 | has-tostringtag "^1.0.0" 810 | 811 | is-extglob@^2.1.1: 812 | version "2.1.1" 813 | resolved "https://registry.nlark.com/is-extglob/download/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 814 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 815 | 816 | is-fullwidth-code-point@^3.0.0: 817 | version "3.0.0" 818 | resolved "https://registry.nlark.com/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 819 | integrity sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0= 820 | 821 | is-glob@^4.0.0, is-glob@^4.0.1: 822 | version "4.0.3" 823 | resolved "https://registry.npmmirror.com/is-glob/download/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" 824 | integrity sha1-ZPYeQsu7LuwgcanawLKLoeZdUIQ= 825 | dependencies: 826 | is-extglob "^2.1.1" 827 | 828 | is-negative-zero@^2.0.1: 829 | version "2.0.1" 830 | resolved "https://registry.nlark.com/is-negative-zero/download/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" 831 | integrity sha1-PedGwY3aIxkkGlNnWQjY92bxHCQ= 832 | 833 | is-number-object@^1.0.4: 834 | version "1.0.6" 835 | resolved "https://registry.nlark.com/is-number-object/download/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" 836 | integrity sha1-anqvg4x/BoalC0VT9+VKlklOifA= 837 | dependencies: 838 | has-tostringtag "^1.0.0" 839 | 840 | is-number@^7.0.0: 841 | version "7.0.0" 842 | resolved "https://registry.nlark.com/is-number/download/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 843 | integrity sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss= 844 | 845 | is-regex@^1.1.4: 846 | version "1.1.4" 847 | resolved "https://registry.nlark.com/is-regex/download/is-regex-1.1.4.tgz?cache=0&sync_timestamp=1628222029198&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-regex%2Fdownload%2Fis-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" 848 | integrity sha1-7vVmPNWfpMCuM5UFMj32hUuxWVg= 849 | dependencies: 850 | call-bind "^1.0.2" 851 | has-tostringtag "^1.0.0" 852 | 853 | is-shared-array-buffer@^1.0.1: 854 | version "1.0.1" 855 | resolved "https://registry.npmmirror.com/is-shared-array-buffer/download/is-shared-array-buffer-1.0.1.tgz?cache=0&sync_timestamp=1633062013521&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fis-shared-array-buffer%2Fdownload%2Fis-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" 856 | integrity sha1-l7DIX72stZycRG/mU7gs8rW3z+Y= 857 | 858 | is-string@^1.0.5, is-string@^1.0.7: 859 | version "1.0.7" 860 | resolved "https://registry.nlark.com/is-string/download/is-string-1.0.7.tgz?cache=0&sync_timestamp=1628213504076&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-string%2Fdownload%2Fis-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" 861 | integrity sha1-DdEr8gBvJVu1j2lREO/3SR7rwP0= 862 | dependencies: 863 | has-tostringtag "^1.0.0" 864 | 865 | is-symbol@^1.0.2, is-symbol@^1.0.3: 866 | version "1.0.4" 867 | resolved "https://registry.nlark.com/is-symbol/download/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" 868 | integrity sha1-ptrJO2NbBjymhyI23oiRClevE5w= 869 | dependencies: 870 | has-symbols "^1.0.2" 871 | 872 | is-weakref@^1.0.1: 873 | version "1.0.1" 874 | resolved "https://registry.nlark.com/is-weakref/download/is-weakref-1.0.1.tgz#842dba4ec17fa9ac9850df2d6efbc1737274f2a2" 875 | integrity sha1-hC26TsF/qayYUN8tbvvBc3J08qI= 876 | dependencies: 877 | call-bind "^1.0.0" 878 | 879 | isexe@^2.0.0: 880 | version "2.0.0" 881 | resolved "https://registry.nlark.com/isexe/download/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 882 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 883 | 884 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: 885 | version "4.0.0" 886 | resolved "https://registry.nlark.com/js-tokens/download/js-tokens-4.0.0.tgz?cache=0&sync_timestamp=1619345016391&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fjs-tokens%2Fdownload%2Fjs-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 887 | integrity sha1-GSA/tZmR35jjoocFDUZHzerzJJk= 888 | 889 | js-yaml@^3.13.1: 890 | version "3.14.1" 891 | resolved "https://registry.nlark.com/js-yaml/download/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" 892 | integrity sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc= 893 | dependencies: 894 | argparse "^1.0.7" 895 | esprima "^4.0.0" 896 | 897 | json-schema-traverse@^0.4.1: 898 | version "0.4.1" 899 | resolved "https://registry.nlark.com/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 900 | integrity sha1-afaofZUTq4u4/mO9sJecRI5oRmA= 901 | 902 | json-schema-traverse@^1.0.0: 903 | version "1.0.0" 904 | resolved "https://registry.nlark.com/json-schema-traverse/download/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" 905 | integrity sha1-rnvLNlard6c7pcSb9lTzjmtoYOI= 906 | 907 | json-stable-stringify-without-jsonify@^1.0.1: 908 | version "1.0.1" 909 | resolved "https://registry.nlark.com/json-stable-stringify-without-jsonify/download/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 910 | integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= 911 | 912 | "jsx-ast-utils@^2.4.1 || ^3.0.0": 913 | version "3.2.1" 914 | resolved "https://registry.nlark.com/jsx-ast-utils/download/jsx-ast-utils-3.2.1.tgz#720b97bfe7d901b927d87c3773637ae8ea48781b" 915 | integrity sha1-cguXv+fZAbkn2Hw3c2N66OpIeBs= 916 | dependencies: 917 | array-includes "^3.1.3" 918 | object.assign "^4.1.2" 919 | 920 | levn@^0.4.1: 921 | version "0.4.1" 922 | resolved "https://registry.nlark.com/levn/download/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" 923 | integrity sha1-rkViwAdHO5MqYgDUAyaN0v/8at4= 924 | dependencies: 925 | prelude-ls "^1.2.1" 926 | type-check "~0.4.0" 927 | 928 | lodash.clonedeep@^4.5.0: 929 | version "4.5.0" 930 | resolved "https://registry.nlark.com/lodash.clonedeep/download/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" 931 | integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= 932 | 933 | lodash.merge@^4.6.2: 934 | version "4.6.2" 935 | resolved "https://registry.nlark.com/lodash.merge/download/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" 936 | integrity sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo= 937 | 938 | lodash.truncate@^4.4.2: 939 | version "4.4.2" 940 | resolved "https://registry.nlark.com/lodash.truncate/download/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" 941 | integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= 942 | 943 | loose-envify@^1.4.0: 944 | version "1.4.0" 945 | resolved "https://registry.nlark.com/loose-envify/download/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" 946 | integrity sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8= 947 | dependencies: 948 | js-tokens "^3.0.0 || ^4.0.0" 949 | 950 | lru-cache@^6.0.0: 951 | version "6.0.0" 952 | resolved "https://registry.nlark.com/lru-cache/download/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 953 | integrity sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ= 954 | dependencies: 955 | yallist "^4.0.0" 956 | 957 | merge2@^1.3.0: 958 | version "1.4.1" 959 | resolved "https://registry.nlark.com/merge2/download/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" 960 | integrity sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4= 961 | 962 | micromatch@^4.0.4: 963 | version "4.0.4" 964 | resolved "https://registry.nlark.com/micromatch/download/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" 965 | integrity sha1-iW1Rnf6dsl/OlM63pQCRm/iB6/k= 966 | dependencies: 967 | braces "^3.0.1" 968 | picomatch "^2.2.3" 969 | 970 | minimatch@^3.0.4: 971 | version "3.0.4" 972 | resolved "https://registry.nlark.com/minimatch/download/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 973 | integrity sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM= 974 | dependencies: 975 | brace-expansion "^1.1.7" 976 | 977 | ms@2.1.2: 978 | version "2.1.2" 979 | resolved "https://registry.npmmirror.com/ms/download/ms-2.1.2.tgz?cache=0&sync_timestamp=1632788099051&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fms%2Fdownload%2Fms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 980 | integrity sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk= 981 | 982 | natural-compare@^1.4.0: 983 | version "1.4.0" 984 | resolved "https://registry.nlark.com/natural-compare/download/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 985 | integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= 986 | 987 | object-assign@^4.1.1: 988 | version "4.1.1" 989 | resolved "https://registry.nlark.com/object-assign/download/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 990 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 991 | 992 | object-inspect@^1.11.0, object-inspect@^1.9.0: 993 | version "1.11.0" 994 | resolved "https://registry.nlark.com/object-inspect/download/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" 995 | integrity sha1-nc6xRs7dQUig2eUauI00z1CZIrE= 996 | 997 | object-keys@^1.0.12, object-keys@^1.1.1: 998 | version "1.1.1" 999 | resolved "https://registry.nlark.com/object-keys/download/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" 1000 | integrity sha1-HEfyct8nfzsdrwYWd9nILiMixg4= 1001 | 1002 | object.assign@^4.1.2: 1003 | version "4.1.2" 1004 | resolved "https://registry.nlark.com/object.assign/download/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" 1005 | integrity sha1-DtVKNC7Os3s4/3brgxoOeIy2OUA= 1006 | dependencies: 1007 | call-bind "^1.0.0" 1008 | define-properties "^1.1.3" 1009 | has-symbols "^1.0.1" 1010 | object-keys "^1.1.1" 1011 | 1012 | object.entries@^1.1.4: 1013 | version "1.1.5" 1014 | resolved "https://registry.npmmirror.com/object.entries/download/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861" 1015 | integrity sha1-4azdF8TeLNltWghIfPuduE2IGGE= 1016 | dependencies: 1017 | call-bind "^1.0.2" 1018 | define-properties "^1.1.3" 1019 | es-abstract "^1.19.1" 1020 | 1021 | object.fromentries@^2.0.4: 1022 | version "2.0.5" 1023 | resolved "https://registry.npmmirror.com/object.fromentries/download/object.fromentries-2.0.5.tgz#7b37b205109c21e741e605727fe8b0ad5fa08251" 1024 | integrity sha1-ezeyBRCcIedB5gVyf+iwrV+gglE= 1025 | dependencies: 1026 | call-bind "^1.0.2" 1027 | define-properties "^1.1.3" 1028 | es-abstract "^1.19.1" 1029 | 1030 | object.hasown@^1.0.0: 1031 | version "1.1.0" 1032 | resolved "https://registry.npmmirror.com/object.hasown/download/object.hasown-1.1.0.tgz#7232ed266f34d197d15cac5880232f7a4790afe5" 1033 | integrity sha1-cjLtJm800ZfRXKxYgCMvekeQr+U= 1034 | dependencies: 1035 | define-properties "^1.1.3" 1036 | es-abstract "^1.19.1" 1037 | 1038 | object.values@^1.1.4: 1039 | version "1.1.5" 1040 | resolved "https://registry.npmmirror.com/object.values/download/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" 1041 | integrity sha1-lZ9j486e8QhyAzMIITHkpFm3Fqw= 1042 | dependencies: 1043 | call-bind "^1.0.2" 1044 | define-properties "^1.1.3" 1045 | es-abstract "^1.19.1" 1046 | 1047 | once@^1.3.0: 1048 | version "1.4.0" 1049 | resolved "https://registry.nlark.com/once/download/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1050 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 1051 | dependencies: 1052 | wrappy "1" 1053 | 1054 | optionator@^0.9.1: 1055 | version "0.9.1" 1056 | resolved "https://registry.nlark.com/optionator/download/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" 1057 | integrity sha1-TyNqY3Pa4FZqbUPhMmZ09QwpFJk= 1058 | dependencies: 1059 | deep-is "^0.1.3" 1060 | fast-levenshtein "^2.0.6" 1061 | levn "^0.4.1" 1062 | prelude-ls "^1.2.1" 1063 | type-check "^0.4.0" 1064 | word-wrap "^1.2.3" 1065 | 1066 | parent-module@^1.0.0: 1067 | version "1.0.1" 1068 | resolved "https://registry.npmmirror.com/parent-module/download/parent-module-1.0.1.tgz?cache=0&sync_timestamp=1633338673294&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fparent-module%2Fdownload%2Fparent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" 1069 | integrity sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI= 1070 | dependencies: 1071 | callsites "^3.0.0" 1072 | 1073 | path-is-absolute@^1.0.0: 1074 | version "1.0.1" 1075 | resolved "https://registry.nlark.com/path-is-absolute/download/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1076 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 1077 | 1078 | path-key@^3.1.0: 1079 | version "3.1.1" 1080 | resolved "https://registry.nlark.com/path-key/download/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 1081 | integrity sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U= 1082 | 1083 | path-parse@^1.0.6: 1084 | version "1.0.7" 1085 | resolved "https://registry.nlark.com/path-parse/download/path-parse-1.0.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpath-parse%2Fdownload%2Fpath-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 1086 | integrity sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU= 1087 | 1088 | path-type@^4.0.0: 1089 | version "4.0.0" 1090 | resolved "https://registry.nlark.com/path-type/download/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" 1091 | integrity sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs= 1092 | 1093 | picomatch@^2.2.3: 1094 | version "2.3.0" 1095 | resolved "https://registry.nlark.com/picomatch/download/picomatch-2.3.0.tgz?cache=0&sync_timestamp=1621648305056&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpicomatch%2Fdownload%2Fpicomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" 1096 | integrity sha1-8fBh3o9qS/AiiS4tEoI0+5gwKXI= 1097 | 1098 | prelude-ls@^1.2.1: 1099 | version "1.2.1" 1100 | resolved "https://registry.nlark.com/prelude-ls/download/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" 1101 | integrity sha1-3rxkidem5rDnYRiIzsiAM30xY5Y= 1102 | 1103 | progress@^2.0.0: 1104 | version "2.0.3" 1105 | resolved "https://registry.nlark.com/progress/download/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" 1106 | integrity sha1-foz42PW48jnBvGi+tOt4Vn1XLvg= 1107 | 1108 | prop-types@^15.7.2: 1109 | version "15.7.2" 1110 | resolved "https://registry.nlark.com/prop-types/download/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" 1111 | integrity sha1-UsQedbjIfnK52TYOAga5ncv/psU= 1112 | dependencies: 1113 | loose-envify "^1.4.0" 1114 | object-assign "^4.1.1" 1115 | react-is "^16.8.1" 1116 | 1117 | punycode@^2.1.0: 1118 | version "2.1.1" 1119 | resolved "https://registry.nlark.com/punycode/download/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 1120 | integrity sha1-tYsBCsQMIsVldhbI0sLALHv0eew= 1121 | 1122 | queue-microtask@^1.2.2: 1123 | version "1.2.3" 1124 | resolved "https://registry.nlark.com/queue-microtask/download/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" 1125 | integrity sha1-SSkii7xyTfrEPg77BYyve2z7YkM= 1126 | 1127 | react-is@^16.8.1: 1128 | version "16.13.1" 1129 | resolved "https://registry.npmmirror.com/react-is/download/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" 1130 | integrity sha1-eJcppNw23imZ3BVt1sHZwYzqVqQ= 1131 | 1132 | regexp.prototype.flags@^1.3.1: 1133 | version "1.3.1" 1134 | resolved "https://registry.nlark.com/regexp.prototype.flags/download/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" 1135 | integrity sha1-fvNSro0VnnWMDq3Kb4/LTu8HviY= 1136 | dependencies: 1137 | call-bind "^1.0.2" 1138 | define-properties "^1.1.3" 1139 | 1140 | regexpp@^3.1.0: 1141 | version "3.2.0" 1142 | resolved "https://registry.nlark.com/regexpp/download/regexpp-3.2.0.tgz?cache=0&sync_timestamp=1623669303572&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregexpp%2Fdownload%2Fregexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" 1143 | integrity sha1-BCWido2PI7rXDKS5BGH6LxIT4bI= 1144 | 1145 | require-from-string@^2.0.2: 1146 | version "2.0.2" 1147 | resolved "https://registry.nlark.com/require-from-string/download/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" 1148 | integrity sha1-iaf92TgmEmcxjq/hT5wy5ZjDaQk= 1149 | 1150 | resolve-from@^4.0.0: 1151 | version "4.0.0" 1152 | resolved "https://registry.nlark.com/resolve-from/download/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" 1153 | integrity sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY= 1154 | 1155 | resolve@^2.0.0-next.3: 1156 | version "2.0.0-next.3" 1157 | resolved "https://registry.nlark.com/resolve/download/resolve-2.0.0-next.3.tgz#d41016293d4a8586a39ca5d9b5f15cbea1f55e46" 1158 | integrity sha1-1BAWKT1KhYajnKXZtfFcvqH1XkY= 1159 | dependencies: 1160 | is-core-module "^2.2.0" 1161 | path-parse "^1.0.6" 1162 | 1163 | reusify@^1.0.4: 1164 | version "1.0.4" 1165 | resolved "https://registry.nlark.com/reusify/download/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" 1166 | integrity sha1-kNo4Kx4SbvwCFG6QhFqI2xKSXXY= 1167 | 1168 | rimraf@^3.0.2: 1169 | version "3.0.2" 1170 | resolved "https://registry.nlark.com/rimraf/download/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" 1171 | integrity sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho= 1172 | dependencies: 1173 | glob "^7.1.3" 1174 | 1175 | run-parallel@^1.1.9: 1176 | version "1.2.0" 1177 | resolved "https://registry.nlark.com/run-parallel/download/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" 1178 | integrity sha1-ZtE2jae9+SHrnZW9GpIp5/IaQ+4= 1179 | dependencies: 1180 | queue-microtask "^1.2.2" 1181 | 1182 | semver@^6.3.0: 1183 | version "6.3.0" 1184 | resolved "https://registry.nlark.com/semver/download/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 1185 | integrity sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0= 1186 | 1187 | semver@^7.2.1, semver@^7.3.5: 1188 | version "7.3.5" 1189 | resolved "https://registry.nlark.com/semver/download/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" 1190 | integrity sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc= 1191 | dependencies: 1192 | lru-cache "^6.0.0" 1193 | 1194 | shebang-command@^2.0.0: 1195 | version "2.0.0" 1196 | resolved "https://registry.nlark.com/shebang-command/download/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 1197 | integrity sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo= 1198 | dependencies: 1199 | shebang-regex "^3.0.0" 1200 | 1201 | shebang-regex@^3.0.0: 1202 | version "3.0.0" 1203 | resolved "https://registry.nlark.com/shebang-regex/download/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 1204 | integrity sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI= 1205 | 1206 | side-channel@^1.0.4: 1207 | version "1.0.4" 1208 | resolved "https://registry.nlark.com/side-channel/download/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" 1209 | integrity sha1-785cj9wQTudRslxY1CkAEfpeos8= 1210 | dependencies: 1211 | call-bind "^1.0.0" 1212 | get-intrinsic "^1.0.2" 1213 | object-inspect "^1.9.0" 1214 | 1215 | slash@^3.0.0: 1216 | version "3.0.0" 1217 | resolved "https://registry.nlark.com/slash/download/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" 1218 | integrity sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ= 1219 | 1220 | slice-ansi@^4.0.0: 1221 | version "4.0.0" 1222 | resolved "https://registry.nlark.com/slice-ansi/download/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" 1223 | integrity sha1-UA6N0P1VsFgVCGJVsxla3ypF/ms= 1224 | dependencies: 1225 | ansi-styles "^4.0.0" 1226 | astral-regex "^2.0.0" 1227 | is-fullwidth-code-point "^3.0.0" 1228 | 1229 | sprintf-js@~1.0.2: 1230 | version "1.0.3" 1231 | resolved "https://registry.nlark.com/sprintf-js/download/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 1232 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= 1233 | 1234 | string-width@^4.2.3: 1235 | version "4.2.3" 1236 | resolved "https://registry.npmmirror.com/string-width/download/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" 1237 | integrity sha1-JpxxF9J7Ba0uU2gwqOyJXvnG0BA= 1238 | dependencies: 1239 | emoji-regex "^8.0.0" 1240 | is-fullwidth-code-point "^3.0.0" 1241 | strip-ansi "^6.0.1" 1242 | 1243 | string.prototype.matchall@^4.0.5: 1244 | version "4.0.6" 1245 | resolved "https://registry.npmmirror.com/string.prototype.matchall/download/string.prototype.matchall-4.0.6.tgz?cache=0&sync_timestamp=1633405729396&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstring.prototype.matchall%2Fdownload%2Fstring.prototype.matchall-4.0.6.tgz#5abb5dabc94c7b0ea2380f65ba610b3a544b15fa" 1246 | integrity sha1-Wrtdq8lMew6iOA9lumELOlRLFfo= 1247 | dependencies: 1248 | call-bind "^1.0.2" 1249 | define-properties "^1.1.3" 1250 | es-abstract "^1.19.1" 1251 | get-intrinsic "^1.1.1" 1252 | has-symbols "^1.0.2" 1253 | internal-slot "^1.0.3" 1254 | regexp.prototype.flags "^1.3.1" 1255 | side-channel "^1.0.4" 1256 | 1257 | string.prototype.trimend@^1.0.4: 1258 | version "1.0.4" 1259 | resolved "https://registry.nlark.com/string.prototype.trimend/download/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" 1260 | integrity sha1-51rpDClCxjUEaGwYsoe0oLGkX4A= 1261 | dependencies: 1262 | call-bind "^1.0.2" 1263 | define-properties "^1.1.3" 1264 | 1265 | string.prototype.trimstart@^1.0.4: 1266 | version "1.0.4" 1267 | resolved "https://registry.nlark.com/string.prototype.trimstart/download/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" 1268 | integrity sha1-s2OZr0qymZtMnGSL16P7K7Jv7u0= 1269 | dependencies: 1270 | call-bind "^1.0.2" 1271 | define-properties "^1.1.3" 1272 | 1273 | strip-ansi@^6.0.0, strip-ansi@^6.0.1: 1274 | version "6.0.1" 1275 | resolved "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-6.0.1.tgz?cache=0&sync_timestamp=1632420562057&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" 1276 | integrity sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk= 1277 | dependencies: 1278 | ansi-regex "^5.0.1" 1279 | 1280 | strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: 1281 | version "3.1.1" 1282 | resolved "https://registry.nlark.com/strip-json-comments/download/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" 1283 | integrity sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY= 1284 | 1285 | supports-color@^5.3.0: 1286 | version "5.5.0" 1287 | resolved "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1626703414084&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1288 | integrity sha1-4uaaRKyHcveKHsCzW2id9lMO/I8= 1289 | dependencies: 1290 | has-flag "^3.0.0" 1291 | 1292 | supports-color@^7.1.0: 1293 | version "7.2.0" 1294 | resolved "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1626703414084&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 1295 | integrity sha1-G33NyzK4E4gBs+R4umpRyqiWSNo= 1296 | dependencies: 1297 | has-flag "^4.0.0" 1298 | 1299 | table@^6.0.9: 1300 | version "6.7.2" 1301 | resolved "https://registry.npmmirror.com/table/download/table-6.7.2.tgz#a8d39b9f5966693ca8b0feba270a78722cbaf3b0" 1302 | integrity sha1-qNObn1lmaTyosP66Jwp4ciy687A= 1303 | dependencies: 1304 | ajv "^8.0.1" 1305 | lodash.clonedeep "^4.5.0" 1306 | lodash.truncate "^4.4.2" 1307 | slice-ansi "^4.0.0" 1308 | string-width "^4.2.3" 1309 | strip-ansi "^6.0.1" 1310 | 1311 | text-table@^0.2.0: 1312 | version "0.2.0" 1313 | resolved "https://registry.nlark.com/text-table/download/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 1314 | integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= 1315 | 1316 | to-regex-range@^5.0.1: 1317 | version "5.0.1" 1318 | resolved "https://registry.nlark.com/to-regex-range/download/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 1319 | integrity sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ= 1320 | dependencies: 1321 | is-number "^7.0.0" 1322 | 1323 | tslib@^1.8.1: 1324 | version "1.14.1" 1325 | resolved "https://registry.nlark.com/tslib/download/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" 1326 | integrity sha1-zy04vcNKE0vK8QkcQfZhni9nLQA= 1327 | 1328 | tsutils@^3.21.0: 1329 | version "3.21.0" 1330 | resolved "https://registry.nlark.com/tsutils/download/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" 1331 | integrity sha1-tIcX05TOpsHglpg+7Vjp1hcVtiM= 1332 | dependencies: 1333 | tslib "^1.8.1" 1334 | 1335 | type-check@^0.4.0, type-check@~0.4.0: 1336 | version "0.4.0" 1337 | resolved "https://registry.nlark.com/type-check/download/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" 1338 | integrity sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE= 1339 | dependencies: 1340 | prelude-ls "^1.2.1" 1341 | 1342 | type-fest@^0.20.2: 1343 | version "0.20.2" 1344 | resolved "https://registry.nlark.com/type-fest/download/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" 1345 | integrity sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ= 1346 | 1347 | unbox-primitive@^1.0.1: 1348 | version "1.0.1" 1349 | resolved "https://registry.nlark.com/unbox-primitive/download/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" 1350 | integrity sha1-CF4hViXsMWJXTciFmr7nilmxRHE= 1351 | dependencies: 1352 | function-bind "^1.1.1" 1353 | has-bigints "^1.0.1" 1354 | has-symbols "^1.0.2" 1355 | which-boxed-primitive "^1.0.2" 1356 | 1357 | uri-js@^4.2.2: 1358 | version "4.4.1" 1359 | resolved "https://registry.nlark.com/uri-js/download/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" 1360 | integrity sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34= 1361 | dependencies: 1362 | punycode "^2.1.0" 1363 | 1364 | v8-compile-cache@^2.0.3: 1365 | version "2.3.0" 1366 | resolved "https://registry.nlark.com/v8-compile-cache/download/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" 1367 | integrity sha1-LeGWGMZtwkfc+2+ZM4A12CRaLO4= 1368 | 1369 | which-boxed-primitive@^1.0.2: 1370 | version "1.0.2" 1371 | resolved "https://registry.nlark.com/which-boxed-primitive/download/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" 1372 | integrity sha1-E3V7yJsgmwSf5dhkMOIc9AqJqOY= 1373 | dependencies: 1374 | is-bigint "^1.0.1" 1375 | is-boolean-object "^1.1.0" 1376 | is-number-object "^1.0.4" 1377 | is-string "^1.0.5" 1378 | is-symbol "^1.0.3" 1379 | 1380 | which@^2.0.1: 1381 | version "2.0.2" 1382 | resolved "https://registry.nlark.com/which/download/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 1383 | integrity sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE= 1384 | dependencies: 1385 | isexe "^2.0.0" 1386 | 1387 | word-wrap@^1.2.3: 1388 | version "1.2.3" 1389 | resolved "https://registry.nlark.com/word-wrap/download/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" 1390 | integrity sha1-YQY29rH3A4kb00dxzLF/uTtHB5w= 1391 | 1392 | wrappy@1: 1393 | version "1.0.2" 1394 | resolved "https://registry.nlark.com/wrappy/download/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1395 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 1396 | 1397 | yallist@^4.0.0: 1398 | version "4.0.0" 1399 | resolved "https://registry.nlark.com/yallist/download/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 1400 | integrity sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI= 1401 | --------------------------------------------------------------------------------