-
-
-
\ No newline at end of file
diff --git a/WechatBot/.idea/misc.xml b/WechatBot/.idea/misc.xml
deleted file mode 100644
index d1c70236c..000000000
--- a/WechatBot/.idea/misc.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/WechatBot/.idea/modules.xml b/WechatBot/.idea/modules.xml
deleted file mode 100644
index 78dc38853..000000000
--- a/WechatBot/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/WechatBot/.idea/vcs.xml b/WechatBot/.idea/vcs.xml
deleted file mode 100644
index 188eaef54..000000000
--- a/WechatBot/.idea/vcs.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/WechatBot/.idea/wechaty.iml b/WechatBot/.idea/wechaty.iml
deleted file mode 100644
index 0365a06b5..000000000
--- a/WechatBot/.idea/wechaty.iml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/WechatBot/chatflow/.eslintrc.cjs b/WechatBot/chatflow/.eslintrc.cjs
deleted file mode 100644
index b961a14eb..000000000
--- a/WechatBot/chatflow/.eslintrc.cjs
+++ /dev/null
@@ -1,8 +0,0 @@
-
-const rules = {
-}
-
-module.exports = {
- extends: '@chatie',
- rules,
-}
diff --git a/WechatBot/chatflow/.github/workflows/docker-image.yml b/WechatBot/chatflow/.github/workflows/docker-image.yml
deleted file mode 100644
index 26fc7215c..000000000
--- a/WechatBot/chatflow/.github/workflows/docker-image.yml
+++ /dev/null
@@ -1,37 +0,0 @@
-# docker-image.yml
-name: Publish Docker image # workflow名称,可以在Github项目主页的【Actions】中看到所有的workflow
-
-on: # 配置触发workflow的事件
- push:
- tags: # tag更新时触发此workflow
- - '*'
-
-jobs: # workflow中的job
-
- push_to_registry: # job的名字
- name: Push Docker image to Docker Hub
- runs-on: ubuntu-latest # job运行的基础环境
-
- steps: # 一个job由一个或多个step组成
- - name: Check out the repo
- uses: actions/checkout@v2 # 官方的action,获取代码
-
- - name: Log in to Docker Hub
- uses: docker/login-action@v1 # 三方的action操作, 执行docker login
- with:
- username: ${{ secrets.DOCKERHUB_USERNAME }} # 配置dockerhub的认证,在Github项目主页 【Settings】 -> 【Secrets】 添加对应变量
- password: ${{ secrets.DOCKERHUB_TOKEN }}
-
- - name: Extract metadata (tags, labels) for Docker
- id: meta
- uses: docker/metadata-action@v3 # 抽取项目信息,主要是镜像的tag
- with:
- images: atorber/wechat-openai-qa-bot
-
- - name: Build and push Docker image
- uses: docker/build-push-action@v2 # docker build & push
- with:
- context: .
- push: true
- tags: ${{ steps.meta.outputs.tags }}
- labels: ${{ steps.meta.outputs.labels }}
diff --git a/WechatBot/chatflow/.gitignore b/WechatBot/chatflow/.gitignore
deleted file mode 100644
index 154584257..000000000
--- a/WechatBot/chatflow/.gitignore
+++ /dev/null
@@ -1,126 +0,0 @@
-# Logs
-logs
-*.log
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-lerna-debug.log*
-dev.ts*
-
-# config.js*
-
-.DS_Store
-
-# Diagnostic reports (https://nodejs.org/api/report.html)
-report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
-
-# Runtime data
-pids
-*.pid
-*.seed
-*.pid.lock
-
-# Directory for instrumented libs generated by jscoverage/JSCover
-lib-cov
-
-# Coverage directory used by tools like istanbul
-coverage
-*.lcov
-
-# nyc test coverage
-.nyc_output
-
-# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
-.grunt
-
-# Bower dependency directory (https://bower.io/)
-bower_components
-
-# node-waf configuration
-.lock-wscript
-
-# Compiled binary addons (https://nodejs.org/api/addons.html)
-build/Release
-
-# Dependency directories
-node_modules/
-jspm_packages/
-
-# TypeScript v1 declaration files
-typings/
-
-# TypeScript cache
-*.tsbuildinfo
-
-# Optional npm cache directory
-.npm
-
-# Optional eslint cache
-.eslintcache
-
-# Microbundle cache
-.rpt2_cache/
-.rts2_cache_cjs/
-.rts2_cache_es/
-.rts2_cache_umd/
-
-# Optional REPL history
-.node_repl_history
-
-# Output of 'npm pack'
-*.tgz
-
-# Yarn Integrity file
-.yarn-integrity
-
-# dotenv environment variables file
-.env
-.env.test
-
-# parcel-bundler cache (https://parceljs.org/)
-.cache
-
-# Next.js build output
-.next
-
-# Nuxt.js build / generate output
-.nuxt
-dist
-
-# Gatsby files
-.cache/
-# Comment in the public line in if your project uses Gatsby and *not* Next.js
-# https://nextjs.org/blog/next-9-1#public-directory-support
-# public
-
-# vuepress build output
-.vuepress/dist
-
-# Serverless directories
-.serverless/
-
-# FuseBox cache
-.fusebox/
-
-# DynamoDB Local files
-.dynamodb/
-
-# TernJS port file
-.tern-port
-
-dev-config.js
-dev-index.js
-WechatEveryDay.memory-card.json
-dev-index.ts
-index-dev.ts
-config-dev.js
-package-lock.json
-.gitpod.yml
-openai-qa-bot.memory-card.json
-quick.bat
-src/config.js
-src/config.ts
-tester.js
-db/*.db
-db/*.csv
-db/*.xlsx
diff --git a/WechatBot/chatflow/.vscode/settings.json b/WechatBot/chatflow/.vscode/settings.json
deleted file mode 100644
index fec3f1270..000000000
--- a/WechatBot/chatflow/.vscode/settings.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "cSpell.words": [
- "Aibot"
- ]
-}
\ No newline at end of file
diff --git a/WechatBot/chatflow/Dockerfile b/WechatBot/chatflow/Dockerfile
deleted file mode 100644
index 65e8343a1..000000000
--- a/WechatBot/chatflow/Dockerfile
+++ /dev/null
@@ -1,8 +0,0 @@
-FROM node:16
-WORKDIR /usr/src/app
-COPY package.json ./
-
-RUN npm install
-COPY . .
-CMD [ "npm","run", "init" ]
-CMD [ "npm","run", "start" ]
diff --git a/WechatBot/chatflow/LICENSE b/WechatBot/chatflow/LICENSE
deleted file mode 100644
index 261eeb9e9..000000000
--- a/WechatBot/chatflow/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/WechatBot/chatflow/README.md b/WechatBot/chatflow/README.md
deleted file mode 100644
index 9765fd9c8..000000000
--- a/WechatBot/chatflow/README.md
+++ /dev/null
@@ -1,216 +0,0 @@
-# wechat-qa-bot
-
-[访问项目语雀文档了解更多信息](https://www.yuque.com/atorber/oegota)
-
-## 简介
-
-本项目使用wechat机器人快速实现一个免费的QA问答系统,如果你是一个社群工作者、拼团团长、业务群运营经理,使用这个项目可以帮助你解决一些重复性问答。
-
-同时,本项目也具备微信消息收集、定时通知等常用场景功能。
-
-已适配网页版微信,linux、mac、Windows均可运行。
-
-### 功能列表
-
-[详细功能查看](https://www.yuque.com/atorber/oegota/aialc7sbyb4ldmg4/edit)
-
-|功能|描述|
-|--|--|
-|消息存档|群聊天消息存档到表格(基于vika维格表,免费)|
-|定时消息|定时消息发送,支持单次定时和周期消息发送给指定好友或群|
-|智能问答|可以自定义问答内容,智能匹配答案,支持相似问题匹配,例如“什么时候到货?”“亲,几时到货”“亲,什么时候到货”均能匹配(基于微信对话开放平台,免费)|
-|千群千面|多个群相同问题不同回答内容,例如“何时到货?”,A群中回答“今天到”,B群中回答“明天到货”|
-|群白名单|支持配置群白名单,白名单内群开启机器人问答,未配置问题答案的群不会受到机器人干扰|
-|客服后台|简单客服后台,可以把群内消息按发言人列表区分|
-|MQTT消息推送|支持配置一个MQTTQ消息队列,将消息推送到队列当中|
-|远程控制发消息|支持通过MQTT控制机器人向指定好友或群发消息|
-|非群主链接检测|支持非群主小程序卡片、网页链接分享检测,自动提醒、警告发送者撤回|
-|团购订单转换|支持快团团订货单转换,原始表发送到群即可自动转换为按楼栋统计表|
-
-## 快速开始
-
-[手把手教程](https://www.yuque.com/atorber/oegota/zm4ulnwnqp9whmd6)
-
-1.下载源码并安装依赖
-
-```Shell
-git clone
-cd ./wechat-openai-qa-bot
-npm install
-```
-
-2.分别登陆[微信对话开放平台](https://openai.weixin.qq.com/)和[vika维格表](https://spcp52tvpjhxm.com.vika.cn/?inviteCode=55152973)官网注册账号并获取token
-
-3.在电脑上登陆微信,微信版本必须为[WeChatSetup-v3.6.0.18.exe](https://github.com/tom-snow/wechat-windows-versions/releases/download/v3.6.0.18/WeChatSetup-3.6.0.18.exe)
-
-4.修改./config.js配置文件
-
-快速开始仅需要修改VIKA_TOKEN、VIKA_SPACENAME配置项,其他配置项暂时无需修改
-
-```javascript
-/* eslint-disable sort-keys */
-// 配置文件,所有配置必须齐全,补充空白配置项,其他配置项可按需要修改
-const configs = {
- VIKA_TOKEN: '替换成自己的维格表token', // VIKA维格表token
- VIKA_SPACENAME: '替换成你的维格表空间名称', // VIKA维格表空间名称,修改为自己的空间名称
-}
-
-export default configs
-```
-
-> 只有加入到roomWhiteList里的群才会开启只能问答机器人
-
-5.初始化系统表,先运行,系统会自动在维格表中创建好初始化表格
-
-```Shell
-npm run sys-init
-```
-
-在维格表查看系统表是否创建成功
-
-6.程序默认使用wechaty-puppet-wechat,三大系统均可使用
-
-7.启动程序
-
-```Shell
-npm start
-```
-
-出现二维码之后,扫码二维码登陆微信
-
-8.开启智能问答功能
-
-8.1 设置微信对话平台token,填写"环境变量"表中的 【对话平台token】、【对话平台EncodingAESKey】并在"功能开关"表中开启智能问答
-
-添加一个简单问题到微信对话开放平台,测试对应群内智能问答内容
-
-8.2 如果不希望每个群都开启智能问答,需设置群白名单,首先需要将上图中的群白名单开关设置为开启
-
-然后将群加入到问答白名单,在“群白名单”表中,加入需要开启的群ID(roomid),群ID在消息中查看(在群里发一条消息,然后控制台查看或在维格表中查找)
-
-详细操作参考 [手把手教程](https://www.yuque.com/atorber/oegota/zm4ulnwnqp9whmd6)
-
-8.4 重启程序,在指定群测试问答
-
-## 使用环境变量启动
-
-> 也可以不使用配置文件,通过配置环境变量启动
-
-Mac、Linux操作系统下运行(仅支持使用wechaty-puppet-wechat和wechaty-puppet-padlocal)
-
-```Shell
-export VIKA_TOKEN="替换成自己的维格表token"
-export VIKA_SPACENAME="替换成你的维格表空间名称"
-npm run sys-init
-npm start
-```
-
-Windows操作系统下运行(支持使用wechaty-puppet-xp、wechaty-puppet-wechat、wechaty-puppet-padlocal)
-
-推荐使用 wechaty-puppet-xp
-
-```Shell
-set VIKA_TOKEN="替换成自己的维格表token"
-set VIKA_SPACENAME="替换成你的维格表空间名称"
-npm run sys-init
-npm run start
-```
-
-## 在Docker中部署运行
-
-注意,因为wechaty-puppet-xp必须依赖Windows微信客户端,所以不能使用Docker,但使用wechaty-puppet-padlocal、wechaty-puppet-service则可以用Doker来部署,
-
-最新代码已经默认wechaty-puppet-wehcat为初始化puppet,mac、linux系统直接拉取镜像即可运行(mac M1需要自行打包镜像)
-
-### Wechaty-Puppet支持
-
-|puppet名称|支持平台 |需要token |付费| 备注|
-|--|--|--|--|--|
-|wechaty-puppet-wechat| Windows、Linux、macOS |否| 否 |网页版wechat,无法获取真实的微信ID和群ID,重启之后ID可能会变|
-|wechaty-puppet-xp|Windows| 否| 否 |仅支持windows|
-|wechaty-puppet-padlocal👍| Windows、Linux、macOS| 是 |是 |
-|wechaty-puppet-service👍| Windows、Linux、macOS| 是 |是 |企业微信|
-
-> 特别注意,Wechaty-Puppet是wechaty的概念,本项目不涉及机器人开发,只是使用wechaty项目进行业务功能实现,什么是[Wechaty](https://wechaty.js.org/)请点击链接进行了解学习
-
-### 拉取和运行
-
-- 稳定版本
-
-```Shell
-docker run -d
---restart=always
---env VIKA_TOKEN="维格表token"
---env VIKA_SPACENAME="维格表空间名称"
-atorber/wechat-openai-qa-bot:v1.8.2
-```
-
-- 最新版本
-
-```Shell
-docker run -d
---restart=always
---env VIKA_TOKEN="维格表token"
---env VIKA_SPACENAME="维格表空间名称"
-atorber/wechat-openai-qa-bot:latest
-```
-
-## 视频演示及使用教程
-
-到项目官网 [查看视频教程](https://qabot.vlist.cc/)
-
-## 常见问题及解决方案
-
-1. 加入QQ群 583830241 在线交流,添加 ledongmao 微信
-
-2. 到 [项目语雀知识库](https://www.yuque.com/atorber/oegota/ibnui5v8mob11d70) 查看常用问题
-
-3. 提交一个issues
-
-## 效果展示
-
-去 [效果展示图文](https://www.yuque.com/atorber/oegota/tbsokg3pqu5vk50y) 查看
-
-## 二次开发
-
-此项目只是提供了一个简单的使用微信机器人和智能对话平台实现的QA系统。如果有兴趣,可以继续学习微信对话开放平台的高级技能,实现诸如连续问答等高级功能,欢迎贡献你的创意。
-
-此外要说明的是,项目中使用puppet-xp完全是出于免费的考虑,如果不考虑这一点的话,wechaty还有更好用的puppet,对于有能力的开发者来说可以根据实际情况替换。
-
-### TODO LIST
-
-- 消息群发,通知消息同时发布到多个群
-
-- 消息转发,按设定规则转发消息
-
-- 使用VIKA托管配置文件
-
-### 相关依赖
-
-项目用到了一些免费且好用的开源项目和平台
-
-> 如果你是团长可忽略此段内容,开发者可进一步了解
-
-- [Wechaty](https://wechaty.js.org/)
-
- 只需几行代码,您就可以拥有一个功能齐全的聊天机器人
-
-- [wechaty-puppet-xp](https://github.com/wechaty/puppet-xp)
-
- 可能是目前最好用的免费wechat机器人
-
-- [wechaty-puppet-wechat](https://github.com/wechaty/puppet-wechat)
-
- 目前最简单的免费wechat机器人
-
-- [微信对话开放平台](https://openai.weixin.qq.com/)
-
- 5分钟零基础免费一键搭建智能对话机器人,并应用于微信公众号、小程序、企业网站、APP等
-
-- [vika维格表](https://spcp52tvpjhxm.com.vika.cn/?inviteCode=55152973)
-
- 将过去复杂的IT数据库技术,做得像表格一样简单(如果要注册,通过这个链接,或者使用邀请码 55152973 )
-
-- [vue-im](https://github.com/polk6/vue-im)
-
- 由@polk6开源的客服web项目,实现客服后台回复咨询消息
diff --git a/WechatBot/chatflow/auto-linux.sh b/WechatBot/chatflow/auto-linux.sh
deleted file mode 100644
index e69de29bb..000000000
diff --git a/WechatBot/chatflow/auto-macos.command b/WechatBot/chatflow/auto-macos.command
deleted file mode 100644
index e69de29bb..000000000
diff --git a/WechatBot/chatflow/auto-windowns.bat b/WechatBot/chatflow/auto-windowns.bat
deleted file mode 100755
index c33e8ec78..000000000
--- a/WechatBot/chatflow/auto-windowns.bat
+++ /dev/null
@@ -1,19 +0,0 @@
-@echo off
-
-echo "killing node.exe ..."
-
-taskkill /f /im node.exe
-
-echo "node.exe was killed successfully."
-
-echo "it will continue to start node.exe in 3 sec ..."
-
-@ping 127.0.0.1 -n 3 >nul
-
-cd /d %~dp0
-
-npm run start
-
-echo "node.exe was started successfully."
-
-exit /b
diff --git a/WechatBot/chatflow/cache/a.md b/WechatBot/chatflow/cache/a.md
deleted file mode 100644
index e69de29bb..000000000
diff --git a/WechatBot/chatflow/docs/.nojekyll b/WechatBot/chatflow/docs/.nojekyll
deleted file mode 100644
index e69de29bb..000000000
diff --git a/WechatBot/chatflow/docs/CNAME b/WechatBot/chatflow/docs/CNAME
deleted file mode 100644
index c45373646..000000000
--- a/WechatBot/chatflow/docs/CNAME
+++ /dev/null
@@ -1 +0,0 @@
-qabot.vlist.cc
\ No newline at end of file
diff --git a/WechatBot/chatflow/docs/README.md b/WechatBot/chatflow/docs/README.md
deleted file mode 100644
index 2c544ddff..000000000
--- a/WechatBot/chatflow/docs/README.md
+++ /dev/null
@@ -1,429 +0,0 @@
-## 简介
-
-> 最新文档已迁移至语雀,请移步 https://www.yuque.com/atorber/oegota
-
-本项目使用wechat机器人快速实现一个免费的QA问答系统,如果你是一个社群工作者、拼团团长、业务群运营经理,使用这个项目可以帮助你解决一些重复性问答。
-
-乐大喜奔,已适配网页版微信,linux、mac、Windows均可运行。
-
-### 功能列表
-
-|功能|描述|
-|--|--|
-| 智能问答|可以自定义问答内容,智能匹配答案,支持相似问题匹配,例如“什么时候到货?”“亲,几时到货”“亲,什么时候到货”均能匹配(基于微信对话开放平台,免费)|
-|千群千面|多个群相同问题不同回答内容,例如“何时到货?”,A群中回答“今天到”,B群中回答“明天到货”|
-|免打扰|使用“QA+群ID+回答内容”匹配群,未配置问题答案的群不会受到机器人干扰|
-|非群主链接检测|支持非群主小程序卡片、网页链接分享检测,自动提醒、警告发送者撤回|
-|团购订单转换|支持快团团订货单转换,原始表发送到群即可自动转换为按楼栋统计表|
-|消息存档|群聊天消息存档到表格(基于vika维格表,免费)|
-|客服后台|简单客服后台,可以把群内消息按发言人列表区分|
-
-### TODO LIST
-
-- 消息群发,通知消息同时发布到多个群
-
-- 消息转发,按设定规则转发消息
-
-- 使用VIKA托管配置文件
-
-### 相关依赖
-
-项目用到了一些免费且好用的开源项目和平台
-
-> 如果你是团长可忽略此段内容,开发者可进一步了解
-
-- [Wechaty](https://wechaty.js.org/) —— 只需几行代码,您就可以拥有一个功能齐全的聊天机器人
-
-- [wechaty-puppet-xp](https://github.com/wechaty/puppet-xp) —— 可能是目前最好用的免费wechat机器人
-
-- [wechaty-puppet-wechat](https://github.com/wechaty/puppet-wechat) —— 目前最简单的免费wechat机器人
-
-- [微信对话开放平台](https://openai.weixin.qq.com/) —— 5分钟零基础免费一键搭建智能对话机器人,并应用于微信公众号、小程序、企业网站、APP等
-
-- [vika维格表](https://spcp52tvpjhxm.com.vika.cn/?inviteCode=55152973) —— 将过去复杂的IT数据库技术,做得像表格一样简单(如果要注册,通过这个链接,或者使用邀请码 55152973 )
-
-- [vue-im](https://github.com/polk6/vue-im) —— 由@polk6开源的客服web项目,实现客服后台回复咨询消息
-
-### 视频演示
-
-#### 部署运行
-
-
diff --git a/WechatBot/node_modules/@babel/runtime/LICENSE b/WechatBot/node_modules/@babel/runtime/LICENSE
deleted file mode 100644
index f31575ec7..000000000
--- a/WechatBot/node_modules/@babel/runtime/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-MIT License
-
-Copyright (c) 2014-present Sebastian McKenzie and other contributors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/WechatBot/node_modules/@babel/runtime/README.md b/WechatBot/node_modules/@babel/runtime/README.md
deleted file mode 100644
index 2f3368ef5..000000000
--- a/WechatBot/node_modules/@babel/runtime/README.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# @babel/runtime
-
-> babel's modular runtime helpers
-
-See our website [@babel/runtime](https://babeljs.io/docs/babel-runtime) for more information.
-
-## Install
-
-Using npm:
-
-```sh
-npm install --save @babel/runtime
-```
-
-or using yarn:
-
-```sh
-yarn add @babel/runtime
-```
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/AsyncGenerator.js b/WechatBot/node_modules/@babel/runtime/helpers/AsyncGenerator.js
deleted file mode 100755
index c3379a9cc..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/AsyncGenerator.js
+++ /dev/null
@@ -1,64 +0,0 @@
-var OverloadYield = require("./OverloadYield.js");
-function AsyncGenerator(gen) {
- var front, back;
- function resume(key, arg) {
- try {
- var result = gen[key](arg),
- value = result.value,
- overloaded = value instanceof OverloadYield;
- Promise.resolve(overloaded ? value.v : value).then(function (arg) {
- if (overloaded) {
- var nextKey = "return" === key ? "return" : "next";
- if (!value.k || arg.done) return resume(nextKey, arg);
- arg = gen[nextKey](arg).value;
- }
- settle(result.done ? "return" : "normal", arg);
- }, function (err) {
- resume("throw", err);
- });
- } catch (err) {
- settle("throw", err);
- }
- }
- function settle(type, value) {
- switch (type) {
- case "return":
- front.resolve({
- value: value,
- done: !0
- });
- break;
- case "throw":
- front.reject(value);
- break;
- default:
- front.resolve({
- value: value,
- done: !1
- });
- }
- (front = front.next) ? resume(front.key, front.arg) : back = null;
- }
- this._invoke = function (key, arg) {
- return new Promise(function (resolve, reject) {
- var request = {
- key: key,
- arg: arg,
- resolve: resolve,
- reject: reject,
- next: null
- };
- back ? back = back.next = request : (front = back = request, resume(key, arg));
- });
- }, "function" != typeof gen["return"] && (this["return"] = void 0);
-}
-AsyncGenerator.prototype["function" == typeof Symbol && Symbol.asyncIterator || "@@asyncIterator"] = function () {
- return this;
-}, AsyncGenerator.prototype.next = function (arg) {
- return this._invoke("next", arg);
-}, AsyncGenerator.prototype["throw"] = function (arg) {
- return this._invoke("throw", arg);
-}, AsyncGenerator.prototype["return"] = function (arg) {
- return this._invoke("return", arg);
-};
-module.exports = AsyncGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/AwaitValue.js b/WechatBot/node_modules/@babel/runtime/helpers/AwaitValue.js
deleted file mode 100755
index 7681c2dfd..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/AwaitValue.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function _AwaitValue(value) {
- this.wrapped = value;
-}
-module.exports = _AwaitValue, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/OverloadYield.js b/WechatBot/node_modules/@babel/runtime/helpers/OverloadYield.js
deleted file mode 100755
index b1331134e..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/OverloadYield.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function _OverloadYield(value, kind) {
- this.v = value, this.k = kind;
-}
-module.exports = _OverloadYield, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/applyDecoratedDescriptor.js b/WechatBot/node_modules/@babel/runtime/helpers/applyDecoratedDescriptor.js
deleted file mode 100755
index 98810d617..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/applyDecoratedDescriptor.js
+++ /dev/null
@@ -1,24 +0,0 @@
-function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {
- var desc = {};
- Object.keys(descriptor).forEach(function (key) {
- desc[key] = descriptor[key];
- });
- desc.enumerable = !!desc.enumerable;
- desc.configurable = !!desc.configurable;
- if ('value' in desc || desc.initializer) {
- desc.writable = true;
- }
- desc = decorators.slice().reverse().reduce(function (desc, decorator) {
- return decorator(target, property, desc) || desc;
- }, desc);
- if (context && desc.initializer !== void 0) {
- desc.value = desc.initializer ? desc.initializer.call(context) : void 0;
- desc.initializer = undefined;
- }
- if (desc.initializer === void 0) {
- Object.defineProperty(target, property, desc);
- desc = null;
- }
- return desc;
-}
-module.exports = _applyDecoratedDescriptor, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/applyDecs.js b/WechatBot/node_modules/@babel/runtime/helpers/applyDecs.js
deleted file mode 100755
index 68a08c26b..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/applyDecs.js
+++ /dev/null
@@ -1,236 +0,0 @@
-var _typeof = require("./typeof.js")["default"];
-function old_createMetadataMethodsForProperty(metadataMap, kind, property, decoratorFinishedRef) {
- return {
- getMetadata: function getMetadata(key) {
- old_assertNotFinished(decoratorFinishedRef, "getMetadata"), old_assertMetadataKey(key);
- var metadataForKey = metadataMap[key];
- if (void 0 !== metadataForKey) if (1 === kind) {
- var pub = metadataForKey["public"];
- if (void 0 !== pub) return pub[property];
- } else if (2 === kind) {
- var priv = metadataForKey["private"];
- if (void 0 !== priv) return priv.get(property);
- } else if (Object.hasOwnProperty.call(metadataForKey, "constructor")) return metadataForKey.constructor;
- },
- setMetadata: function setMetadata(key, value) {
- old_assertNotFinished(decoratorFinishedRef, "setMetadata"), old_assertMetadataKey(key);
- var metadataForKey = metadataMap[key];
- if (void 0 === metadataForKey && (metadataForKey = metadataMap[key] = {}), 1 === kind) {
- var pub = metadataForKey["public"];
- void 0 === pub && (pub = metadataForKey["public"] = {}), pub[property] = value;
- } else if (2 === kind) {
- var priv = metadataForKey.priv;
- void 0 === priv && (priv = metadataForKey["private"] = new Map()), priv.set(property, value);
- } else metadataForKey.constructor = value;
- }
- };
-}
-function old_convertMetadataMapToFinal(obj, metadataMap) {
- var parentMetadataMap = obj[Symbol.metadata || Symbol["for"]("Symbol.metadata")],
- metadataKeys = Object.getOwnPropertySymbols(metadataMap);
- if (0 !== metadataKeys.length) {
- for (var i = 0; i < metadataKeys.length; i++) {
- var key = metadataKeys[i],
- metaForKey = metadataMap[key],
- parentMetaForKey = parentMetadataMap ? parentMetadataMap[key] : null,
- pub = metaForKey["public"],
- parentPub = parentMetaForKey ? parentMetaForKey["public"] : null;
- pub && parentPub && Object.setPrototypeOf(pub, parentPub);
- var priv = metaForKey["private"];
- if (priv) {
- var privArr = Array.from(priv.values()),
- parentPriv = parentMetaForKey ? parentMetaForKey["private"] : null;
- parentPriv && (privArr = privArr.concat(parentPriv)), metaForKey["private"] = privArr;
- }
- parentMetaForKey && Object.setPrototypeOf(metaForKey, parentMetaForKey);
- }
- parentMetadataMap && Object.setPrototypeOf(metadataMap, parentMetadataMap), obj[Symbol.metadata || Symbol["for"]("Symbol.metadata")] = metadataMap;
- }
-}
-function old_createAddInitializerMethod(initializers, decoratorFinishedRef) {
- return function (initializer) {
- old_assertNotFinished(decoratorFinishedRef, "addInitializer"), old_assertCallable(initializer, "An initializer"), initializers.push(initializer);
- };
-}
-function old_memberDec(dec, name, desc, metadataMap, initializers, kind, isStatic, isPrivate, value) {
- var kindStr;
- switch (kind) {
- case 1:
- kindStr = "accessor";
- break;
- case 2:
- kindStr = "method";
- break;
- case 3:
- kindStr = "getter";
- break;
- case 4:
- kindStr = "setter";
- break;
- default:
- kindStr = "field";
- }
- var metadataKind,
- metadataName,
- ctx = {
- kind: kindStr,
- name: isPrivate ? "#" + name : name,
- isStatic: isStatic,
- isPrivate: isPrivate
- },
- decoratorFinishedRef = {
- v: !1
- };
- if (0 !== kind && (ctx.addInitializer = old_createAddInitializerMethod(initializers, decoratorFinishedRef)), isPrivate) {
- metadataKind = 2, metadataName = Symbol(name);
- var access = {};
- 0 === kind ? (access.get = desc.get, access.set = desc.set) : 2 === kind ? access.get = function () {
- return desc.value;
- } : (1 !== kind && 3 !== kind || (access.get = function () {
- return desc.get.call(this);
- }), 1 !== kind && 4 !== kind || (access.set = function (v) {
- desc.set.call(this, v);
- })), ctx.access = access;
- } else metadataKind = 1, metadataName = name;
- try {
- return dec(value, Object.assign(ctx, old_createMetadataMethodsForProperty(metadataMap, metadataKind, metadataName, decoratorFinishedRef)));
- } finally {
- decoratorFinishedRef.v = !0;
- }
-}
-function old_assertNotFinished(decoratorFinishedRef, fnName) {
- if (decoratorFinishedRef.v) throw new Error("attempted to call " + fnName + " after decoration was finished");
-}
-function old_assertMetadataKey(key) {
- if ("symbol" != _typeof(key)) throw new TypeError("Metadata keys must be symbols, received: " + key);
-}
-function old_assertCallable(fn, hint) {
- if ("function" != typeof fn) throw new TypeError(hint + " must be a function");
-}
-function old_assertValidReturnValue(kind, value) {
- var type = _typeof(value);
- if (1 === kind) {
- if ("object" !== type || null === value) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
- void 0 !== value.get && old_assertCallable(value.get, "accessor.get"), void 0 !== value.set && old_assertCallable(value.set, "accessor.set"), void 0 !== value.init && old_assertCallable(value.init, "accessor.init"), void 0 !== value.initializer && old_assertCallable(value.initializer, "accessor.initializer");
- } else if ("function" !== type) {
- var hint;
- throw hint = 0 === kind ? "field" : 10 === kind ? "class" : "method", new TypeError(hint + " decorators must return a function or void 0");
- }
-}
-function old_getInit(desc) {
- var initializer;
- return null == (initializer = desc.init) && (initializer = desc.initializer) && "undefined" != typeof console && console.warn(".initializer has been renamed to .init as of March 2022"), initializer;
-}
-function old_applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, metadataMap, initializers) {
- var desc,
- initializer,
- value,
- newValue,
- get,
- set,
- decs = decInfo[0];
- if (isPrivate ? desc = 0 === kind || 1 === kind ? {
- get: decInfo[3],
- set: decInfo[4]
- } : 3 === kind ? {
- get: decInfo[3]
- } : 4 === kind ? {
- set: decInfo[3]
- } : {
- value: decInfo[3]
- } : 0 !== kind && (desc = Object.getOwnPropertyDescriptor(base, name)), 1 === kind ? value = {
- get: desc.get,
- set: desc.set
- } : 2 === kind ? value = desc.value : 3 === kind ? value = desc.get : 4 === kind && (value = desc.set), "function" == typeof decs) void 0 !== (newValue = old_memberDec(decs, name, desc, metadataMap, initializers, kind, isStatic, isPrivate, value)) && (old_assertValidReturnValue(kind, newValue), 0 === kind ? initializer = newValue : 1 === kind ? (initializer = old_getInit(newValue), get = newValue.get || value.get, set = newValue.set || value.set, value = {
- get: get,
- set: set
- }) : value = newValue);else for (var i = decs.length - 1; i >= 0; i--) {
- var newInit;
- if (void 0 !== (newValue = old_memberDec(decs[i], name, desc, metadataMap, initializers, kind, isStatic, isPrivate, value))) old_assertValidReturnValue(kind, newValue), 0 === kind ? newInit = newValue : 1 === kind ? (newInit = old_getInit(newValue), get = newValue.get || value.get, set = newValue.set || value.set, value = {
- get: get,
- set: set
- }) : value = newValue, void 0 !== newInit && (void 0 === initializer ? initializer = newInit : "function" == typeof initializer ? initializer = [initializer, newInit] : initializer.push(newInit));
- }
- if (0 === kind || 1 === kind) {
- if (void 0 === initializer) initializer = function initializer(instance, init) {
- return init;
- };else if ("function" != typeof initializer) {
- var ownInitializers = initializer;
- initializer = function initializer(instance, init) {
- for (var value = init, i = 0; i < ownInitializers.length; i++) value = ownInitializers[i].call(instance, value);
- return value;
- };
- } else {
- var originalInitializer = initializer;
- initializer = function initializer(instance, init) {
- return originalInitializer.call(instance, init);
- };
- }
- ret.push(initializer);
- }
- 0 !== kind && (1 === kind ? (desc.get = value.get, desc.set = value.set) : 2 === kind ? desc.value = value : 3 === kind ? desc.get = value : 4 === kind && (desc.set = value), isPrivate ? 1 === kind ? (ret.push(function (instance, args) {
- return value.get.call(instance, args);
- }), ret.push(function (instance, args) {
- return value.set.call(instance, args);
- })) : 2 === kind ? ret.push(value) : ret.push(function (instance, args) {
- return value.call(instance, args);
- }) : Object.defineProperty(base, name, desc));
-}
-function old_applyMemberDecs(ret, Class, protoMetadataMap, staticMetadataMap, decInfos) {
- for (var protoInitializers, staticInitializers, existingProtoNonFields = new Map(), existingStaticNonFields = new Map(), i = 0; i < decInfos.length; i++) {
- var decInfo = decInfos[i];
- if (Array.isArray(decInfo)) {
- var base,
- metadataMap,
- initializers,
- kind = decInfo[1],
- name = decInfo[2],
- isPrivate = decInfo.length > 3,
- isStatic = kind >= 5;
- if (isStatic ? (base = Class, metadataMap = staticMetadataMap, 0 !== (kind -= 5) && (initializers = staticInitializers = staticInitializers || [])) : (base = Class.prototype, metadataMap = protoMetadataMap, 0 !== kind && (initializers = protoInitializers = protoInitializers || [])), 0 !== kind && !isPrivate) {
- var existingNonFields = isStatic ? existingStaticNonFields : existingProtoNonFields,
- existingKind = existingNonFields.get(name) || 0;
- if (!0 === existingKind || 3 === existingKind && 4 !== kind || 4 === existingKind && 3 !== kind) throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + name);
- !existingKind && kind > 2 ? existingNonFields.set(name, kind) : existingNonFields.set(name, !0);
- }
- old_applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, metadataMap, initializers);
- }
- }
- old_pushInitializers(ret, protoInitializers), old_pushInitializers(ret, staticInitializers);
-}
-function old_pushInitializers(ret, initializers) {
- initializers && ret.push(function (instance) {
- for (var i = 0; i < initializers.length; i++) initializers[i].call(instance);
- return instance;
- });
-}
-function old_applyClassDecs(ret, targetClass, metadataMap, classDecs) {
- if (classDecs.length > 0) {
- for (var initializers = [], newClass = targetClass, name = targetClass.name, i = classDecs.length - 1; i >= 0; i--) {
- var decoratorFinishedRef = {
- v: !1
- };
- try {
- var ctx = Object.assign({
- kind: "class",
- name: name,
- addInitializer: old_createAddInitializerMethod(initializers, decoratorFinishedRef)
- }, old_createMetadataMethodsForProperty(metadataMap, 0, name, decoratorFinishedRef)),
- nextNewClass = classDecs[i](newClass, ctx);
- } finally {
- decoratorFinishedRef.v = !0;
- }
- void 0 !== nextNewClass && (old_assertValidReturnValue(10, nextNewClass), newClass = nextNewClass);
- }
- ret.push(newClass, function () {
- for (var i = 0; i < initializers.length; i++) initializers[i].call(newClass);
- });
- }
-}
-function applyDecs(targetClass, memberDecs, classDecs) {
- var ret = [],
- staticMetadataMap = {},
- protoMetadataMap = {};
- return old_applyMemberDecs(ret, targetClass, protoMetadataMap, staticMetadataMap, memberDecs), old_convertMetadataMapToFinal(targetClass.prototype, protoMetadataMap), old_applyClassDecs(ret, targetClass, staticMetadataMap, classDecs), old_convertMetadataMapToFinal(targetClass, staticMetadataMap), ret;
-}
-module.exports = applyDecs, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/applyDecs2203.js b/WechatBot/node_modules/@babel/runtime/helpers/applyDecs2203.js
deleted file mode 100755
index b15c00197..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/applyDecs2203.js
+++ /dev/null
@@ -1,187 +0,0 @@
-var _typeof = require("./typeof.js")["default"];
-function applyDecs2203Factory() {
- function createAddInitializerMethod(initializers, decoratorFinishedRef) {
- return function (initializer) {
- !function (decoratorFinishedRef, fnName) {
- if (decoratorFinishedRef.v) throw new Error("attempted to call " + fnName + " after decoration was finished");
- }(decoratorFinishedRef, "addInitializer"), assertCallable(initializer, "An initializer"), initializers.push(initializer);
- };
- }
- function memberDec(dec, name, desc, initializers, kind, isStatic, isPrivate, value) {
- var kindStr;
- switch (kind) {
- case 1:
- kindStr = "accessor";
- break;
- case 2:
- kindStr = "method";
- break;
- case 3:
- kindStr = "getter";
- break;
- case 4:
- kindStr = "setter";
- break;
- default:
- kindStr = "field";
- }
- var get,
- set,
- ctx = {
- kind: kindStr,
- name: isPrivate ? "#" + name : name,
- "static": isStatic,
- "private": isPrivate
- },
- decoratorFinishedRef = {
- v: !1
- };
- 0 !== kind && (ctx.addInitializer = createAddInitializerMethod(initializers, decoratorFinishedRef)), 0 === kind ? isPrivate ? (get = desc.get, set = desc.set) : (get = function get() {
- return this[name];
- }, set = function set(v) {
- this[name] = v;
- }) : 2 === kind ? get = function get() {
- return desc.value;
- } : (1 !== kind && 3 !== kind || (get = function get() {
- return desc.get.call(this);
- }), 1 !== kind && 4 !== kind || (set = function set(v) {
- desc.set.call(this, v);
- })), ctx.access = get && set ? {
- get: get,
- set: set
- } : get ? {
- get: get
- } : {
- set: set
- };
- try {
- return dec(value, ctx);
- } finally {
- decoratorFinishedRef.v = !0;
- }
- }
- function assertCallable(fn, hint) {
- if ("function" != typeof fn) throw new TypeError(hint + " must be a function");
- }
- function assertValidReturnValue(kind, value) {
- var type = _typeof(value);
- if (1 === kind) {
- if ("object" !== type || null === value) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
- void 0 !== value.get && assertCallable(value.get, "accessor.get"), void 0 !== value.set && assertCallable(value.set, "accessor.set"), void 0 !== value.init && assertCallable(value.init, "accessor.init");
- } else if ("function" !== type) {
- var hint;
- throw hint = 0 === kind ? "field" : 10 === kind ? "class" : "method", new TypeError(hint + " decorators must return a function or void 0");
- }
- }
- function applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, initializers) {
- var desc,
- init,
- value,
- newValue,
- get,
- set,
- decs = decInfo[0];
- if (isPrivate ? desc = 0 === kind || 1 === kind ? {
- get: decInfo[3],
- set: decInfo[4]
- } : 3 === kind ? {
- get: decInfo[3]
- } : 4 === kind ? {
- set: decInfo[3]
- } : {
- value: decInfo[3]
- } : 0 !== kind && (desc = Object.getOwnPropertyDescriptor(base, name)), 1 === kind ? value = {
- get: desc.get,
- set: desc.set
- } : 2 === kind ? value = desc.value : 3 === kind ? value = desc.get : 4 === kind && (value = desc.set), "function" == typeof decs) void 0 !== (newValue = memberDec(decs, name, desc, initializers, kind, isStatic, isPrivate, value)) && (assertValidReturnValue(kind, newValue), 0 === kind ? init = newValue : 1 === kind ? (init = newValue.init, get = newValue.get || value.get, set = newValue.set || value.set, value = {
- get: get,
- set: set
- }) : value = newValue);else for (var i = decs.length - 1; i >= 0; i--) {
- var newInit;
- if (void 0 !== (newValue = memberDec(decs[i], name, desc, initializers, kind, isStatic, isPrivate, value))) assertValidReturnValue(kind, newValue), 0 === kind ? newInit = newValue : 1 === kind ? (newInit = newValue.init, get = newValue.get || value.get, set = newValue.set || value.set, value = {
- get: get,
- set: set
- }) : value = newValue, void 0 !== newInit && (void 0 === init ? init = newInit : "function" == typeof init ? init = [init, newInit] : init.push(newInit));
- }
- if (0 === kind || 1 === kind) {
- if (void 0 === init) init = function init(instance, _init) {
- return _init;
- };else if ("function" != typeof init) {
- var ownInitializers = init;
- init = function init(instance, _init2) {
- for (var value = _init2, i = 0; i < ownInitializers.length; i++) value = ownInitializers[i].call(instance, value);
- return value;
- };
- } else {
- var originalInitializer = init;
- init = function init(instance, _init3) {
- return originalInitializer.call(instance, _init3);
- };
- }
- ret.push(init);
- }
- 0 !== kind && (1 === kind ? (desc.get = value.get, desc.set = value.set) : 2 === kind ? desc.value = value : 3 === kind ? desc.get = value : 4 === kind && (desc.set = value), isPrivate ? 1 === kind ? (ret.push(function (instance, args) {
- return value.get.call(instance, args);
- }), ret.push(function (instance, args) {
- return value.set.call(instance, args);
- })) : 2 === kind ? ret.push(value) : ret.push(function (instance, args) {
- return value.call(instance, args);
- }) : Object.defineProperty(base, name, desc));
- }
- function pushInitializers(ret, initializers) {
- initializers && ret.push(function (instance) {
- for (var i = 0; i < initializers.length; i++) initializers[i].call(instance);
- return instance;
- });
- }
- return function (targetClass, memberDecs, classDecs) {
- var ret = [];
- return function (ret, Class, decInfos) {
- for (var protoInitializers, staticInitializers, existingProtoNonFields = new Map(), existingStaticNonFields = new Map(), i = 0; i < decInfos.length; i++) {
- var decInfo = decInfos[i];
- if (Array.isArray(decInfo)) {
- var base,
- initializers,
- kind = decInfo[1],
- name = decInfo[2],
- isPrivate = decInfo.length > 3,
- isStatic = kind >= 5;
- if (isStatic ? (base = Class, 0 != (kind -= 5) && (initializers = staticInitializers = staticInitializers || [])) : (base = Class.prototype, 0 !== kind && (initializers = protoInitializers = protoInitializers || [])), 0 !== kind && !isPrivate) {
- var existingNonFields = isStatic ? existingStaticNonFields : existingProtoNonFields,
- existingKind = existingNonFields.get(name) || 0;
- if (!0 === existingKind || 3 === existingKind && 4 !== kind || 4 === existingKind && 3 !== kind) throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + name);
- !existingKind && kind > 2 ? existingNonFields.set(name, kind) : existingNonFields.set(name, !0);
- }
- applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, initializers);
- }
- }
- pushInitializers(ret, protoInitializers), pushInitializers(ret, staticInitializers);
- }(ret, targetClass, memberDecs), function (ret, targetClass, classDecs) {
- if (classDecs.length > 0) {
- for (var initializers = [], newClass = targetClass, name = targetClass.name, i = classDecs.length - 1; i >= 0; i--) {
- var decoratorFinishedRef = {
- v: !1
- };
- try {
- var nextNewClass = classDecs[i](newClass, {
- kind: "class",
- name: name,
- addInitializer: createAddInitializerMethod(initializers, decoratorFinishedRef)
- });
- } finally {
- decoratorFinishedRef.v = !0;
- }
- void 0 !== nextNewClass && (assertValidReturnValue(10, nextNewClass), newClass = nextNewClass);
- }
- ret.push(newClass, function () {
- for (var i = 0; i < initializers.length; i++) initializers[i].call(newClass);
- });
- }
- }(ret, targetClass, classDecs), ret;
- };
-}
-var applyDecs2203Impl;
-function applyDecs2203(targetClass, memberDecs, classDecs) {
- return (applyDecs2203Impl = applyDecs2203Impl || applyDecs2203Factory())(targetClass, memberDecs, classDecs);
-}
-module.exports = applyDecs2203, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/applyDecs2203R.js b/WechatBot/node_modules/@babel/runtime/helpers/applyDecs2203R.js
deleted file mode 100755
index ef0ece5f3..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/applyDecs2203R.js
+++ /dev/null
@@ -1,191 +0,0 @@
-var _typeof = require("./typeof.js")["default"];
-function applyDecs2203RFactory() {
- function createAddInitializerMethod(initializers, decoratorFinishedRef) {
- return function (initializer) {
- !function (decoratorFinishedRef, fnName) {
- if (decoratorFinishedRef.v) throw new Error("attempted to call " + fnName + " after decoration was finished");
- }(decoratorFinishedRef, "addInitializer"), assertCallable(initializer, "An initializer"), initializers.push(initializer);
- };
- }
- function memberDec(dec, name, desc, initializers, kind, isStatic, isPrivate, value) {
- var kindStr;
- switch (kind) {
- case 1:
- kindStr = "accessor";
- break;
- case 2:
- kindStr = "method";
- break;
- case 3:
- kindStr = "getter";
- break;
- case 4:
- kindStr = "setter";
- break;
- default:
- kindStr = "field";
- }
- var get,
- set,
- ctx = {
- kind: kindStr,
- name: isPrivate ? "#" + name : name,
- "static": isStatic,
- "private": isPrivate
- },
- decoratorFinishedRef = {
- v: !1
- };
- 0 !== kind && (ctx.addInitializer = createAddInitializerMethod(initializers, decoratorFinishedRef)), 0 === kind ? isPrivate ? (get = desc.get, set = desc.set) : (get = function get() {
- return this[name];
- }, set = function set(v) {
- this[name] = v;
- }) : 2 === kind ? get = function get() {
- return desc.value;
- } : (1 !== kind && 3 !== kind || (get = function get() {
- return desc.get.call(this);
- }), 1 !== kind && 4 !== kind || (set = function set(v) {
- desc.set.call(this, v);
- })), ctx.access = get && set ? {
- get: get,
- set: set
- } : get ? {
- get: get
- } : {
- set: set
- };
- try {
- return dec(value, ctx);
- } finally {
- decoratorFinishedRef.v = !0;
- }
- }
- function assertCallable(fn, hint) {
- if ("function" != typeof fn) throw new TypeError(hint + " must be a function");
- }
- function assertValidReturnValue(kind, value) {
- var type = _typeof(value);
- if (1 === kind) {
- if ("object" !== type || null === value) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
- void 0 !== value.get && assertCallable(value.get, "accessor.get"), void 0 !== value.set && assertCallable(value.set, "accessor.set"), void 0 !== value.init && assertCallable(value.init, "accessor.init");
- } else if ("function" !== type) {
- var hint;
- throw hint = 0 === kind ? "field" : 10 === kind ? "class" : "method", new TypeError(hint + " decorators must return a function or void 0");
- }
- }
- function applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, initializers) {
- var desc,
- init,
- value,
- newValue,
- get,
- set,
- decs = decInfo[0];
- if (isPrivate ? desc = 0 === kind || 1 === kind ? {
- get: decInfo[3],
- set: decInfo[4]
- } : 3 === kind ? {
- get: decInfo[3]
- } : 4 === kind ? {
- set: decInfo[3]
- } : {
- value: decInfo[3]
- } : 0 !== kind && (desc = Object.getOwnPropertyDescriptor(base, name)), 1 === kind ? value = {
- get: desc.get,
- set: desc.set
- } : 2 === kind ? value = desc.value : 3 === kind ? value = desc.get : 4 === kind && (value = desc.set), "function" == typeof decs) void 0 !== (newValue = memberDec(decs, name, desc, initializers, kind, isStatic, isPrivate, value)) && (assertValidReturnValue(kind, newValue), 0 === kind ? init = newValue : 1 === kind ? (init = newValue.init, get = newValue.get || value.get, set = newValue.set || value.set, value = {
- get: get,
- set: set
- }) : value = newValue);else for (var i = decs.length - 1; i >= 0; i--) {
- var newInit;
- if (void 0 !== (newValue = memberDec(decs[i], name, desc, initializers, kind, isStatic, isPrivate, value))) assertValidReturnValue(kind, newValue), 0 === kind ? newInit = newValue : 1 === kind ? (newInit = newValue.init, get = newValue.get || value.get, set = newValue.set || value.set, value = {
- get: get,
- set: set
- }) : value = newValue, void 0 !== newInit && (void 0 === init ? init = newInit : "function" == typeof init ? init = [init, newInit] : init.push(newInit));
- }
- if (0 === kind || 1 === kind) {
- if (void 0 === init) init = function init(instance, _init) {
- return _init;
- };else if ("function" != typeof init) {
- var ownInitializers = init;
- init = function init(instance, _init2) {
- for (var value = _init2, i = 0; i < ownInitializers.length; i++) value = ownInitializers[i].call(instance, value);
- return value;
- };
- } else {
- var originalInitializer = init;
- init = function init(instance, _init3) {
- return originalInitializer.call(instance, _init3);
- };
- }
- ret.push(init);
- }
- 0 !== kind && (1 === kind ? (desc.get = value.get, desc.set = value.set) : 2 === kind ? desc.value = value : 3 === kind ? desc.get = value : 4 === kind && (desc.set = value), isPrivate ? 1 === kind ? (ret.push(function (instance, args) {
- return value.get.call(instance, args);
- }), ret.push(function (instance, args) {
- return value.set.call(instance, args);
- })) : 2 === kind ? ret.push(value) : ret.push(function (instance, args) {
- return value.call(instance, args);
- }) : Object.defineProperty(base, name, desc));
- }
- function applyMemberDecs(Class, decInfos) {
- for (var protoInitializers, staticInitializers, ret = [], existingProtoNonFields = new Map(), existingStaticNonFields = new Map(), i = 0; i < decInfos.length; i++) {
- var decInfo = decInfos[i];
- if (Array.isArray(decInfo)) {
- var base,
- initializers,
- kind = decInfo[1],
- name = decInfo[2],
- isPrivate = decInfo.length > 3,
- isStatic = kind >= 5;
- if (isStatic ? (base = Class, 0 !== (kind -= 5) && (initializers = staticInitializers = staticInitializers || [])) : (base = Class.prototype, 0 !== kind && (initializers = protoInitializers = protoInitializers || [])), 0 !== kind && !isPrivate) {
- var existingNonFields = isStatic ? existingStaticNonFields : existingProtoNonFields,
- existingKind = existingNonFields.get(name) || 0;
- if (!0 === existingKind || 3 === existingKind && 4 !== kind || 4 === existingKind && 3 !== kind) throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + name);
- !existingKind && kind > 2 ? existingNonFields.set(name, kind) : existingNonFields.set(name, !0);
- }
- applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, initializers);
- }
- }
- return pushInitializers(ret, protoInitializers), pushInitializers(ret, staticInitializers), ret;
- }
- function pushInitializers(ret, initializers) {
- initializers && ret.push(function (instance) {
- for (var i = 0; i < initializers.length; i++) initializers[i].call(instance);
- return instance;
- });
- }
- return function (targetClass, memberDecs, classDecs) {
- return {
- e: applyMemberDecs(targetClass, memberDecs),
- get c() {
- return function (targetClass, classDecs) {
- if (classDecs.length > 0) {
- for (var initializers = [], newClass = targetClass, name = targetClass.name, i = classDecs.length - 1; i >= 0; i--) {
- var decoratorFinishedRef = {
- v: !1
- };
- try {
- var nextNewClass = classDecs[i](newClass, {
- kind: "class",
- name: name,
- addInitializer: createAddInitializerMethod(initializers, decoratorFinishedRef)
- });
- } finally {
- decoratorFinishedRef.v = !0;
- }
- void 0 !== nextNewClass && (assertValidReturnValue(10, nextNewClass), newClass = nextNewClass);
- }
- return [newClass, function () {
- for (var i = 0; i < initializers.length; i++) initializers[i].call(newClass);
- }];
- }
- }(targetClass, classDecs);
- }
- };
- };
-}
-function applyDecs2203R(targetClass, memberDecs, classDecs) {
- return (module.exports = applyDecs2203R = applyDecs2203RFactory(), module.exports.__esModule = true, module.exports["default"] = module.exports)(targetClass, memberDecs, classDecs);
-}
-module.exports = applyDecs2203R, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/applyDecs2301.js b/WechatBot/node_modules/@babel/runtime/helpers/applyDecs2301.js
deleted file mode 100755
index bcec93e4b..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/applyDecs2301.js
+++ /dev/null
@@ -1,222 +0,0 @@
-var _typeof = require("./typeof.js")["default"];
-var checkInRHS = require("./checkInRHS.js");
-function applyDecs2301Factory() {
- function createAddInitializerMethod(initializers, decoratorFinishedRef) {
- return function (initializer) {
- !function (decoratorFinishedRef, fnName) {
- if (decoratorFinishedRef.v) throw new Error("attempted to call " + fnName + " after decoration was finished");
- }(decoratorFinishedRef, "addInitializer"), assertCallable(initializer, "An initializer"), initializers.push(initializer);
- };
- }
- function assertInstanceIfPrivate(has, target) {
- if (!has(target)) throw new TypeError("Attempted to access private element on non-instance");
- }
- function memberDec(dec, name, desc, initializers, kind, isStatic, isPrivate, value, hasPrivateBrand) {
- var kindStr;
- switch (kind) {
- case 1:
- kindStr = "accessor";
- break;
- case 2:
- kindStr = "method";
- break;
- case 3:
- kindStr = "getter";
- break;
- case 4:
- kindStr = "setter";
- break;
- default:
- kindStr = "field";
- }
- var get,
- set,
- ctx = {
- kind: kindStr,
- name: isPrivate ? "#" + name : name,
- "static": isStatic,
- "private": isPrivate
- },
- decoratorFinishedRef = {
- v: !1
- };
- if (0 !== kind && (ctx.addInitializer = createAddInitializerMethod(initializers, decoratorFinishedRef)), isPrivate || 0 !== kind && 2 !== kind) {
- if (2 === kind) get = function get(target) {
- return assertInstanceIfPrivate(hasPrivateBrand, target), desc.value;
- };else {
- var t = 0 === kind || 1 === kind;
- (t || 3 === kind) && (get = isPrivate ? function (target) {
- return assertInstanceIfPrivate(hasPrivateBrand, target), desc.get.call(target);
- } : function (target) {
- return desc.get.call(target);
- }), (t || 4 === kind) && (set = isPrivate ? function (target, value) {
- assertInstanceIfPrivate(hasPrivateBrand, target), desc.set.call(target, value);
- } : function (target, value) {
- desc.set.call(target, value);
- });
- }
- } else get = function get(target) {
- return target[name];
- }, 0 === kind && (set = function set(target, v) {
- target[name] = v;
- });
- var has = isPrivate ? hasPrivateBrand.bind() : function (target) {
- return name in target;
- };
- ctx.access = get && set ? {
- get: get,
- set: set,
- has: has
- } : get ? {
- get: get,
- has: has
- } : {
- set: set,
- has: has
- };
- try {
- return dec(value, ctx);
- } finally {
- decoratorFinishedRef.v = !0;
- }
- }
- function assertCallable(fn, hint) {
- if ("function" != typeof fn) throw new TypeError(hint + " must be a function");
- }
- function assertValidReturnValue(kind, value) {
- var type = _typeof(value);
- if (1 === kind) {
- if ("object" !== type || null === value) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
- void 0 !== value.get && assertCallable(value.get, "accessor.get"), void 0 !== value.set && assertCallable(value.set, "accessor.set"), void 0 !== value.init && assertCallable(value.init, "accessor.init");
- } else if ("function" !== type) {
- var hint;
- throw hint = 0 === kind ? "field" : 10 === kind ? "class" : "method", new TypeError(hint + " decorators must return a function or void 0");
- }
- }
- function curryThis2(fn) {
- return function (value) {
- fn(this, value);
- };
- }
- function applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, initializers, hasPrivateBrand) {
- var desc,
- init,
- value,
- fn,
- newValue,
- get,
- set,
- decs = decInfo[0];
- if (isPrivate ? desc = 0 === kind || 1 === kind ? {
- get: (fn = decInfo[3], function () {
- return fn(this);
- }),
- set: curryThis2(decInfo[4])
- } : 3 === kind ? {
- get: decInfo[3]
- } : 4 === kind ? {
- set: decInfo[3]
- } : {
- value: decInfo[3]
- } : 0 !== kind && (desc = Object.getOwnPropertyDescriptor(base, name)), 1 === kind ? value = {
- get: desc.get,
- set: desc.set
- } : 2 === kind ? value = desc.value : 3 === kind ? value = desc.get : 4 === kind && (value = desc.set), "function" == typeof decs) void 0 !== (newValue = memberDec(decs, name, desc, initializers, kind, isStatic, isPrivate, value, hasPrivateBrand)) && (assertValidReturnValue(kind, newValue), 0 === kind ? init = newValue : 1 === kind ? (init = newValue.init, get = newValue.get || value.get, set = newValue.set || value.set, value = {
- get: get,
- set: set
- }) : value = newValue);else for (var i = decs.length - 1; i >= 0; i--) {
- var newInit;
- if (void 0 !== (newValue = memberDec(decs[i], name, desc, initializers, kind, isStatic, isPrivate, value, hasPrivateBrand))) assertValidReturnValue(kind, newValue), 0 === kind ? newInit = newValue : 1 === kind ? (newInit = newValue.init, get = newValue.get || value.get, set = newValue.set || value.set, value = {
- get: get,
- set: set
- }) : value = newValue, void 0 !== newInit && (void 0 === init ? init = newInit : "function" == typeof init ? init = [init, newInit] : init.push(newInit));
- }
- if (0 === kind || 1 === kind) {
- if (void 0 === init) init = function init(instance, _init) {
- return _init;
- };else if ("function" != typeof init) {
- var ownInitializers = init;
- init = function init(instance, _init2) {
- for (var value = _init2, i = 0; i < ownInitializers.length; i++) value = ownInitializers[i].call(instance, value);
- return value;
- };
- } else {
- var originalInitializer = init;
- init = function init(instance, _init3) {
- return originalInitializer.call(instance, _init3);
- };
- }
- ret.push(init);
- }
- 0 !== kind && (1 === kind ? (desc.get = value.get, desc.set = value.set) : 2 === kind ? desc.value = value : 3 === kind ? desc.get = value : 4 === kind && (desc.set = value), isPrivate ? 1 === kind ? (ret.push(function (instance, args) {
- return value.get.call(instance, args);
- }), ret.push(function (instance, args) {
- return value.set.call(instance, args);
- })) : 2 === kind ? ret.push(value) : ret.push(function (instance, args) {
- return value.call(instance, args);
- }) : Object.defineProperty(base, name, desc));
- }
- function applyMemberDecs(Class, decInfos, instanceBrand) {
- for (var protoInitializers, staticInitializers, staticBrand, ret = [], existingProtoNonFields = new Map(), existingStaticNonFields = new Map(), i = 0; i < decInfos.length; i++) {
- var decInfo = decInfos[i];
- if (Array.isArray(decInfo)) {
- var base,
- initializers,
- kind = decInfo[1],
- name = decInfo[2],
- isPrivate = decInfo.length > 3,
- isStatic = kind >= 5,
- hasPrivateBrand = instanceBrand;
- if (isStatic ? (base = Class, 0 !== (kind -= 5) && (initializers = staticInitializers = staticInitializers || []), isPrivate && !staticBrand && (staticBrand = function staticBrand(_) {
- return checkInRHS(_) === Class;
- }), hasPrivateBrand = staticBrand) : (base = Class.prototype, 0 !== kind && (initializers = protoInitializers = protoInitializers || [])), 0 !== kind && !isPrivate) {
- var existingNonFields = isStatic ? existingStaticNonFields : existingProtoNonFields,
- existingKind = existingNonFields.get(name) || 0;
- if (!0 === existingKind || 3 === existingKind && 4 !== kind || 4 === existingKind && 3 !== kind) throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + name);
- !existingKind && kind > 2 ? existingNonFields.set(name, kind) : existingNonFields.set(name, !0);
- }
- applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, initializers, hasPrivateBrand);
- }
- }
- return pushInitializers(ret, protoInitializers), pushInitializers(ret, staticInitializers), ret;
- }
- function pushInitializers(ret, initializers) {
- initializers && ret.push(function (instance) {
- for (var i = 0; i < initializers.length; i++) initializers[i].call(instance);
- return instance;
- });
- }
- return function (targetClass, memberDecs, classDecs, instanceBrand) {
- return {
- e: applyMemberDecs(targetClass, memberDecs, instanceBrand),
- get c() {
- return function (targetClass, classDecs) {
- if (classDecs.length > 0) {
- for (var initializers = [], newClass = targetClass, name = targetClass.name, i = classDecs.length - 1; i >= 0; i--) {
- var decoratorFinishedRef = {
- v: !1
- };
- try {
- var nextNewClass = classDecs[i](newClass, {
- kind: "class",
- name: name,
- addInitializer: createAddInitializerMethod(initializers, decoratorFinishedRef)
- });
- } finally {
- decoratorFinishedRef.v = !0;
- }
- void 0 !== nextNewClass && (assertValidReturnValue(10, nextNewClass), newClass = nextNewClass);
- }
- return [newClass, function () {
- for (var i = 0; i < initializers.length; i++) initializers[i].call(newClass);
- }];
- }
- }(targetClass, classDecs);
- }
- };
- };
-}
-function applyDecs2301(targetClass, memberDecs, classDecs, instanceBrand) {
- return (module.exports = applyDecs2301 = applyDecs2301Factory(), module.exports.__esModule = true, module.exports["default"] = module.exports)(targetClass, memberDecs, classDecs, instanceBrand);
-}
-module.exports = applyDecs2301, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/applyDecs2305.js b/WechatBot/node_modules/@babel/runtime/helpers/applyDecs2305.js
deleted file mode 100755
index 2da2c80a9..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/applyDecs2305.js
+++ /dev/null
@@ -1,220 +0,0 @@
-var _typeof = require("./typeof.js")["default"];
-var checkInRHS = require("./checkInRHS.js");
-function createAddInitializerMethod(initializers, decoratorFinishedRef) {
- return function (initializer) {
- assertNotFinished(decoratorFinishedRef, "addInitializer"), assertCallable(initializer, "An initializer"), initializers.push(initializer);
- };
-}
-function assertInstanceIfPrivate(has, target) {
- if (!has(target)) throw new TypeError("Attempted to access private element on non-instance");
-}
-function memberDec(dec, thisArg, name, desc, initializers, kind, isStatic, isPrivate, value, hasPrivateBrand) {
- var kindStr;
- switch (kind) {
- case 1:
- kindStr = "accessor";
- break;
- case 2:
- kindStr = "method";
- break;
- case 3:
- kindStr = "getter";
- break;
- case 4:
- kindStr = "setter";
- break;
- default:
- kindStr = "field";
- }
- var get,
- set,
- ctx = {
- kind: kindStr,
- name: isPrivate ? "#" + name : name,
- "static": isStatic,
- "private": isPrivate
- },
- decoratorFinishedRef = {
- v: !1
- };
- if (0 !== kind && (ctx.addInitializer = createAddInitializerMethod(initializers, decoratorFinishedRef)), isPrivate || 0 !== kind && 2 !== kind) {
- if (2 === kind) get = function get(target) {
- return assertInstanceIfPrivate(hasPrivateBrand, target), desc.value;
- };else {
- var t = 0 === kind || 1 === kind;
- (t || 3 === kind) && (get = isPrivate ? function (target) {
- return assertInstanceIfPrivate(hasPrivateBrand, target), desc.get.call(target);
- } : function (target) {
- return desc.get.call(target);
- }), (t || 4 === kind) && (set = isPrivate ? function (target, value) {
- assertInstanceIfPrivate(hasPrivateBrand, target), desc.set.call(target, value);
- } : function (target, value) {
- desc.set.call(target, value);
- });
- }
- } else get = function get(target) {
- return target[name];
- }, 0 === kind && (set = function set(target, v) {
- target[name] = v;
- });
- var has = isPrivate ? hasPrivateBrand.bind() : function (target) {
- return name in target;
- };
- ctx.access = get && set ? {
- get: get,
- set: set,
- has: has
- } : get ? {
- get: get,
- has: has
- } : {
- set: set,
- has: has
- };
- try {
- return dec.call(thisArg, value, ctx);
- } finally {
- decoratorFinishedRef.v = !0;
- }
-}
-function assertNotFinished(decoratorFinishedRef, fnName) {
- if (decoratorFinishedRef.v) throw new Error("attempted to call " + fnName + " after decoration was finished");
-}
-function assertCallable(fn, hint) {
- if ("function" != typeof fn) throw new TypeError(hint + " must be a function");
-}
-function assertValidReturnValue(kind, value) {
- var type = _typeof(value);
- if (1 === kind) {
- if ("object" !== type || null === value) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
- void 0 !== value.get && assertCallable(value.get, "accessor.get"), void 0 !== value.set && assertCallable(value.set, "accessor.set"), void 0 !== value.init && assertCallable(value.init, "accessor.init");
- } else if ("function" !== type) {
- var hint;
- throw hint = 0 === kind ? "field" : 5 === kind ? "class" : "method", new TypeError(hint + " decorators must return a function or void 0");
- }
-}
-function curryThis1(fn) {
- return function () {
- return fn(this);
- };
-}
-function curryThis2(fn) {
- return function (value) {
- fn(this, value);
- };
-}
-function applyMemberDec(ret, base, decInfo, decoratorsHaveThis, name, kind, isStatic, isPrivate, initializers, hasPrivateBrand) {
- var desc,
- init,
- value,
- newValue,
- get,
- set,
- decs = decInfo[0];
- decoratorsHaveThis || Array.isArray(decs) || (decs = [decs]), isPrivate ? desc = 0 === kind || 1 === kind ? {
- get: curryThis1(decInfo[3]),
- set: curryThis2(decInfo[4])
- } : 3 === kind ? {
- get: decInfo[3]
- } : 4 === kind ? {
- set: decInfo[3]
- } : {
- value: decInfo[3]
- } : 0 !== kind && (desc = Object.getOwnPropertyDescriptor(base, name)), 1 === kind ? value = {
- get: desc.get,
- set: desc.set
- } : 2 === kind ? value = desc.value : 3 === kind ? value = desc.get : 4 === kind && (value = desc.set);
- for (var inc = decoratorsHaveThis ? 2 : 1, i = decs.length - 1; i >= 0; i -= inc) {
- var newInit;
- if (void 0 !== (newValue = memberDec(decs[i], decoratorsHaveThis ? decs[i - 1] : void 0, name, desc, initializers, kind, isStatic, isPrivate, value, hasPrivateBrand))) assertValidReturnValue(kind, newValue), 0 === kind ? newInit = newValue : 1 === kind ? (newInit = newValue.init, get = newValue.get || value.get, set = newValue.set || value.set, value = {
- get: get,
- set: set
- }) : value = newValue, void 0 !== newInit && (void 0 === init ? init = newInit : "function" == typeof init ? init = [init, newInit] : init.push(newInit));
- }
- if (0 === kind || 1 === kind) {
- if (void 0 === init) init = function init(instance, _init) {
- return _init;
- };else if ("function" != typeof init) {
- var ownInitializers = init;
- init = function init(instance, _init2) {
- for (var value = _init2, i = ownInitializers.length - 1; i >= 0; i--) value = ownInitializers[i].call(instance, value);
- return value;
- };
- } else {
- var originalInitializer = init;
- init = function init(instance, _init3) {
- return originalInitializer.call(instance, _init3);
- };
- }
- ret.push(init);
- }
- 0 !== kind && (1 === kind ? (desc.get = value.get, desc.set = value.set) : 2 === kind ? desc.value = value : 3 === kind ? desc.get = value : 4 === kind && (desc.set = value), isPrivate ? 1 === kind ? (ret.push(function (instance, args) {
- return value.get.call(instance, args);
- }), ret.push(function (instance, args) {
- return value.set.call(instance, args);
- })) : 2 === kind ? ret.push(value) : ret.push(function (instance, args) {
- return value.call(instance, args);
- }) : Object.defineProperty(base, name, desc));
-}
-function applyMemberDecs(Class, decInfos, instanceBrand) {
- for (var protoInitializers, staticInitializers, staticBrand, ret = [], existingProtoNonFields = new Map(), existingStaticNonFields = new Map(), i = 0; i < decInfos.length; i++) {
- var decInfo = decInfos[i];
- if (Array.isArray(decInfo)) {
- var base,
- initializers,
- kind = decInfo[1],
- name = decInfo[2],
- isPrivate = decInfo.length > 3,
- decoratorsHaveThis = 16 & kind,
- isStatic = !!(8 & kind),
- hasPrivateBrand = instanceBrand;
- if (kind &= 7, isStatic ? (base = Class, 0 !== kind && (initializers = staticInitializers = staticInitializers || []), isPrivate && !staticBrand && (staticBrand = function staticBrand(_) {
- return checkInRHS(_) === Class;
- }), hasPrivateBrand = staticBrand) : (base = Class.prototype, 0 !== kind && (initializers = protoInitializers = protoInitializers || [])), 0 !== kind && !isPrivate) {
- var existingNonFields = isStatic ? existingStaticNonFields : existingProtoNonFields,
- existingKind = existingNonFields.get(name) || 0;
- if (!0 === existingKind || 3 === existingKind && 4 !== kind || 4 === existingKind && 3 !== kind) throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + name);
- existingNonFields.set(name, !(!existingKind && kind > 2) || kind);
- }
- applyMemberDec(ret, base, decInfo, decoratorsHaveThis, name, kind, isStatic, isPrivate, initializers, hasPrivateBrand);
- }
- }
- return pushInitializers(ret, protoInitializers), pushInitializers(ret, staticInitializers), ret;
-}
-function pushInitializers(ret, initializers) {
- initializers && ret.push(function (instance) {
- for (var i = 0; i < initializers.length; i++) initializers[i].call(instance);
- return instance;
- });
-}
-function applyClassDecs(targetClass, classDecs, decoratorsHaveThis) {
- if (classDecs.length) {
- for (var initializers = [], newClass = targetClass, name = targetClass.name, inc = decoratorsHaveThis ? 2 : 1, i = classDecs.length - 1; i >= 0; i -= inc) {
- var decoratorFinishedRef = {
- v: !1
- };
- try {
- var nextNewClass = classDecs[i].call(decoratorsHaveThis ? classDecs[i - 1] : void 0, newClass, {
- kind: "class",
- name: name,
- addInitializer: createAddInitializerMethod(initializers, decoratorFinishedRef)
- });
- } finally {
- decoratorFinishedRef.v = !0;
- }
- void 0 !== nextNewClass && (assertValidReturnValue(5, nextNewClass), newClass = nextNewClass);
- }
- return [newClass, function () {
- for (var i = 0; i < initializers.length; i++) initializers[i].call(newClass);
- }];
- }
-}
-function applyDecs2305(targetClass, memberDecs, classDecs, classDecsHaveThis, instanceBrand) {
- return {
- e: applyMemberDecs(targetClass, memberDecs, instanceBrand),
- get c() {
- return applyClassDecs(targetClass, classDecs, classDecsHaveThis);
- }
- };
-}
-module.exports = applyDecs2305, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/arrayLikeToArray.js b/WechatBot/node_modules/@babel/runtime/helpers/arrayLikeToArray.js
deleted file mode 100755
index 368654019..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/arrayLikeToArray.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function _arrayLikeToArray(arr, len) {
- if (len == null || len > arr.length) len = arr.length;
- for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
- return arr2;
-}
-module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/arrayWithHoles.js b/WechatBot/node_modules/@babel/runtime/helpers/arrayWithHoles.js
deleted file mode 100755
index ad0cc6b94..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/arrayWithHoles.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function _arrayWithHoles(arr) {
- if (Array.isArray(arr)) return arr;
-}
-module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js b/WechatBot/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js
deleted file mode 100755
index 6d4b76deb..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var arrayLikeToArray = require("./arrayLikeToArray.js");
-function _arrayWithoutHoles(arr) {
- if (Array.isArray(arr)) return arrayLikeToArray(arr);
-}
-module.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/assertThisInitialized.js b/WechatBot/node_modules/@babel/runtime/helpers/assertThisInitialized.js
deleted file mode 100755
index 71487e574..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/assertThisInitialized.js
+++ /dev/null
@@ -1,7 +0,0 @@
-function _assertThisInitialized(self) {
- if (self === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self;
-}
-module.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/asyncGeneratorDelegate.js b/WechatBot/node_modules/@babel/runtime/helpers/asyncGeneratorDelegate.js
deleted file mode 100755
index c272bcdee..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/asyncGeneratorDelegate.js
+++ /dev/null
@@ -1,24 +0,0 @@
-var OverloadYield = require("./OverloadYield.js");
-function _asyncGeneratorDelegate(inner) {
- var iter = {},
- waiting = !1;
- function pump(key, value) {
- return waiting = !0, value = new Promise(function (resolve) {
- resolve(inner[key](value));
- }), {
- done: !1,
- value: new OverloadYield(value, 1)
- };
- }
- return iter["undefined" != typeof Symbol && Symbol.iterator || "@@iterator"] = function () {
- return this;
- }, iter.next = function (value) {
- return waiting ? (waiting = !1, value) : pump("next", value);
- }, "function" == typeof inner["throw"] && (iter["throw"] = function (value) {
- if (waiting) throw waiting = !1, value;
- return pump("throw", value);
- }), "function" == typeof inner["return"] && (iter["return"] = function (value) {
- return waiting ? (waiting = !1, value) : pump("return", value);
- }), iter;
-}
-module.exports = _asyncGeneratorDelegate, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/asyncIterator.js b/WechatBot/node_modules/@babel/runtime/helpers/asyncIterator.js
deleted file mode 100755
index 420ef0807..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/asyncIterator.js
+++ /dev/null
@@ -1,45 +0,0 @@
-function _asyncIterator(iterable) {
- var method,
- async,
- sync,
- retry = 2;
- for ("undefined" != typeof Symbol && (async = Symbol.asyncIterator, sync = Symbol.iterator); retry--;) {
- if (async && null != (method = iterable[async])) return method.call(iterable);
- if (sync && null != (method = iterable[sync])) return new AsyncFromSyncIterator(method.call(iterable));
- async = "@@asyncIterator", sync = "@@iterator";
- }
- throw new TypeError("Object is not async iterable");
-}
-function AsyncFromSyncIterator(s) {
- function AsyncFromSyncIteratorContinuation(r) {
- if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object."));
- var done = r.done;
- return Promise.resolve(r.value).then(function (value) {
- return {
- value: value,
- done: done
- };
- });
- }
- return AsyncFromSyncIterator = function AsyncFromSyncIterator(s) {
- this.s = s, this.n = s.next;
- }, AsyncFromSyncIterator.prototype = {
- s: null,
- n: null,
- next: function next() {
- return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments));
- },
- "return": function _return(value) {
- var ret = this.s["return"];
- return void 0 === ret ? Promise.resolve({
- value: value,
- done: !0
- }) : AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments));
- },
- "throw": function _throw(value) {
- var thr = this.s["return"];
- return void 0 === thr ? Promise.reject(value) : AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments));
- }
- }, new AsyncFromSyncIterator(s);
-}
-module.exports = _asyncIterator, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/asyncToGenerator.js b/WechatBot/node_modules/@babel/runtime/helpers/asyncToGenerator.js
deleted file mode 100755
index 6b9697af1..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/asyncToGenerator.js
+++ /dev/null
@@ -1,31 +0,0 @@
-function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
- try {
- var info = gen[key](arg);
- var value = info.value;
- } catch (error) {
- reject(error);
- return;
- }
- if (info.done) {
- resolve(value);
- } else {
- Promise.resolve(value).then(_next, _throw);
- }
-}
-function _asyncToGenerator(fn) {
- return function () {
- var self = this,
- args = arguments;
- return new Promise(function (resolve, reject) {
- var gen = fn.apply(self, args);
- function _next(value) {
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
- }
- function _throw(err) {
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
- }
- _next(undefined);
- });
- };
-}
-module.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/awaitAsyncGenerator.js b/WechatBot/node_modules/@babel/runtime/helpers/awaitAsyncGenerator.js
deleted file mode 100755
index 7d4e95118..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/awaitAsyncGenerator.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var OverloadYield = require("./OverloadYield.js");
-function _awaitAsyncGenerator(value) {
- return new OverloadYield(value, 0);
-}
-module.exports = _awaitAsyncGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/checkInRHS.js b/WechatBot/node_modules/@babel/runtime/helpers/checkInRHS.js
deleted file mode 100755
index e6ba63894..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/checkInRHS.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var _typeof = require("./typeof.js")["default"];
-function _checkInRHS(value) {
- if (Object(value) !== value) throw TypeError("right-hand side of 'in' should be an object, got " + (null !== value ? _typeof(value) : "null"));
- return value;
-}
-module.exports = _checkInRHS, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/checkPrivateRedeclaration.js b/WechatBot/node_modules/@babel/runtime/helpers/checkPrivateRedeclaration.js
deleted file mode 100755
index 1bbfd3465..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/checkPrivateRedeclaration.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function _checkPrivateRedeclaration(obj, privateCollection) {
- if (privateCollection.has(obj)) {
- throw new TypeError("Cannot initialize the same private elements twice on an object");
- }
-}
-module.exports = _checkPrivateRedeclaration, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/classApplyDescriptorDestructureSet.js b/WechatBot/node_modules/@babel/runtime/helpers/classApplyDescriptorDestructureSet.js
deleted file mode 100755
index 3ebfed87c..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/classApplyDescriptorDestructureSet.js
+++ /dev/null
@@ -1,18 +0,0 @@
-function _classApplyDescriptorDestructureSet(receiver, descriptor) {
- if (descriptor.set) {
- if (!("__destrObj" in descriptor)) {
- descriptor.__destrObj = {
- set value(v) {
- descriptor.set.call(receiver, v);
- }
- };
- }
- return descriptor.__destrObj;
- } else {
- if (!descriptor.writable) {
- throw new TypeError("attempted to set read only private field");
- }
- return descriptor;
- }
-}
-module.exports = _classApplyDescriptorDestructureSet, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/classApplyDescriptorGet.js b/WechatBot/node_modules/@babel/runtime/helpers/classApplyDescriptorGet.js
deleted file mode 100755
index af3555da4..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/classApplyDescriptorGet.js
+++ /dev/null
@@ -1,7 +0,0 @@
-function _classApplyDescriptorGet(receiver, descriptor) {
- if (descriptor.get) {
- return descriptor.get.call(receiver);
- }
- return descriptor.value;
-}
-module.exports = _classApplyDescriptorGet, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/classApplyDescriptorSet.js b/WechatBot/node_modules/@babel/runtime/helpers/classApplyDescriptorSet.js
deleted file mode 100755
index 71bbf1df4..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/classApplyDescriptorSet.js
+++ /dev/null
@@ -1,11 +0,0 @@
-function _classApplyDescriptorSet(receiver, descriptor, value) {
- if (descriptor.set) {
- descriptor.set.call(receiver, value);
- } else {
- if (!descriptor.writable) {
- throw new TypeError("attempted to set read only private field");
- }
- descriptor.value = value;
- }
-}
-module.exports = _classApplyDescriptorSet, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/classCallCheck.js b/WechatBot/node_modules/@babel/runtime/helpers/classCallCheck.js
deleted file mode 100755
index eab7e5203..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/classCallCheck.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function _classCallCheck(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
-module.exports = _classCallCheck, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/classCheckPrivateStaticAccess.js b/WechatBot/node_modules/@babel/runtime/helpers/classCheckPrivateStaticAccess.js
deleted file mode 100755
index 348768432..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/classCheckPrivateStaticAccess.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function _classCheckPrivateStaticAccess(receiver, classConstructor) {
- if (receiver !== classConstructor) {
- throw new TypeError("Private static access of wrong provenance");
- }
-}
-module.exports = _classCheckPrivateStaticAccess, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/classCheckPrivateStaticFieldDescriptor.js b/WechatBot/node_modules/@babel/runtime/helpers/classCheckPrivateStaticFieldDescriptor.js
deleted file mode 100755
index b937d15e6..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/classCheckPrivateStaticFieldDescriptor.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function _classCheckPrivateStaticFieldDescriptor(descriptor, action) {
- if (descriptor === undefined) {
- throw new TypeError("attempted to " + action + " private static field before its declaration");
- }
-}
-module.exports = _classCheckPrivateStaticFieldDescriptor, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/classExtractFieldDescriptor.js b/WechatBot/node_modules/@babel/runtime/helpers/classExtractFieldDescriptor.js
deleted file mode 100755
index e6f4725a2..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/classExtractFieldDescriptor.js
+++ /dev/null
@@ -1,7 +0,0 @@
-function _classExtractFieldDescriptor(receiver, privateMap, action) {
- if (!privateMap.has(receiver)) {
- throw new TypeError("attempted to " + action + " private field on non-instance");
- }
- return privateMap.get(receiver);
-}
-module.exports = _classExtractFieldDescriptor, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/classNameTDZError.js b/WechatBot/node_modules/@babel/runtime/helpers/classNameTDZError.js
deleted file mode 100755
index 9f84697a8..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/classNameTDZError.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function _classNameTDZError(name) {
- throw new ReferenceError("Class \"" + name + "\" cannot be referenced in computed property keys.");
-}
-module.exports = _classNameTDZError, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/classPrivateFieldDestructureSet.js b/WechatBot/node_modules/@babel/runtime/helpers/classPrivateFieldDestructureSet.js
deleted file mode 100755
index 07f777df6..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/classPrivateFieldDestructureSet.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var classApplyDescriptorDestructureSet = require("./classApplyDescriptorDestructureSet.js");
-var classExtractFieldDescriptor = require("./classExtractFieldDescriptor.js");
-function _classPrivateFieldDestructureSet(receiver, privateMap) {
- var descriptor = classExtractFieldDescriptor(receiver, privateMap, "set");
- return classApplyDescriptorDestructureSet(receiver, descriptor);
-}
-module.exports = _classPrivateFieldDestructureSet, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/classPrivateFieldGet.js b/WechatBot/node_modules/@babel/runtime/helpers/classPrivateFieldGet.js
deleted file mode 100755
index a67951e1a..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/classPrivateFieldGet.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var classApplyDescriptorGet = require("./classApplyDescriptorGet.js");
-var classExtractFieldDescriptor = require("./classExtractFieldDescriptor.js");
-function _classPrivateFieldGet(receiver, privateMap) {
- var descriptor = classExtractFieldDescriptor(receiver, privateMap, "get");
- return classApplyDescriptorGet(receiver, descriptor);
-}
-module.exports = _classPrivateFieldGet, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/classPrivateFieldInitSpec.js b/WechatBot/node_modules/@babel/runtime/helpers/classPrivateFieldInitSpec.js
deleted file mode 100755
index e55873a12..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/classPrivateFieldInitSpec.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var checkPrivateRedeclaration = require("./checkPrivateRedeclaration.js");
-function _classPrivateFieldInitSpec(obj, privateMap, value) {
- checkPrivateRedeclaration(obj, privateMap);
- privateMap.set(obj, value);
-}
-module.exports = _classPrivateFieldInitSpec, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/classPrivateFieldLooseBase.js b/WechatBot/node_modules/@babel/runtime/helpers/classPrivateFieldLooseBase.js
deleted file mode 100755
index bb16c0bce..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/classPrivateFieldLooseBase.js
+++ /dev/null
@@ -1,7 +0,0 @@
-function _classPrivateFieldBase(receiver, privateKey) {
- if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) {
- throw new TypeError("attempted to use private field on non-instance");
- }
- return receiver;
-}
-module.exports = _classPrivateFieldBase, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/classPrivateFieldLooseKey.js b/WechatBot/node_modules/@babel/runtime/helpers/classPrivateFieldLooseKey.js
deleted file mode 100755
index b3d546f1c..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/classPrivateFieldLooseKey.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var id = 0;
-function _classPrivateFieldKey(name) {
- return "__private_" + id++ + "_" + name;
-}
-module.exports = _classPrivateFieldKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/classPrivateFieldSet.js b/WechatBot/node_modules/@babel/runtime/helpers/classPrivateFieldSet.js
deleted file mode 100755
index ffb73a107..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/classPrivateFieldSet.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var classApplyDescriptorSet = require("./classApplyDescriptorSet.js");
-var classExtractFieldDescriptor = require("./classExtractFieldDescriptor.js");
-function _classPrivateFieldSet(receiver, privateMap, value) {
- var descriptor = classExtractFieldDescriptor(receiver, privateMap, "set");
- classApplyDescriptorSet(receiver, descriptor, value);
- return value;
-}
-module.exports = _classPrivateFieldSet, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/classPrivateMethodGet.js b/WechatBot/node_modules/@babel/runtime/helpers/classPrivateMethodGet.js
deleted file mode 100755
index 6a8436dab..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/classPrivateMethodGet.js
+++ /dev/null
@@ -1,7 +0,0 @@
-function _classPrivateMethodGet(receiver, privateSet, fn) {
- if (!privateSet.has(receiver)) {
- throw new TypeError("attempted to get private field on non-instance");
- }
- return fn;
-}
-module.exports = _classPrivateMethodGet, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/classPrivateMethodInitSpec.js b/WechatBot/node_modules/@babel/runtime/helpers/classPrivateMethodInitSpec.js
deleted file mode 100755
index 31064767b..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/classPrivateMethodInitSpec.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var checkPrivateRedeclaration = require("./checkPrivateRedeclaration.js");
-function _classPrivateMethodInitSpec(obj, privateSet) {
- checkPrivateRedeclaration(obj, privateSet);
- privateSet.add(obj);
-}
-module.exports = _classPrivateMethodInitSpec, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/classPrivateMethodSet.js b/WechatBot/node_modules/@babel/runtime/helpers/classPrivateMethodSet.js
deleted file mode 100755
index a44fd7853..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/classPrivateMethodSet.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function _classPrivateMethodSet() {
- throw new TypeError("attempted to reassign private method");
-}
-module.exports = _classPrivateMethodSet, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/classStaticPrivateFieldDestructureSet.js b/WechatBot/node_modules/@babel/runtime/helpers/classStaticPrivateFieldDestructureSet.js
deleted file mode 100755
index 734aaafa0..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/classStaticPrivateFieldDestructureSet.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var classApplyDescriptorDestructureSet = require("./classApplyDescriptorDestructureSet.js");
-var classCheckPrivateStaticAccess = require("./classCheckPrivateStaticAccess.js");
-var classCheckPrivateStaticFieldDescriptor = require("./classCheckPrivateStaticFieldDescriptor.js");
-function _classStaticPrivateFieldDestructureSet(receiver, classConstructor, descriptor) {
- classCheckPrivateStaticAccess(receiver, classConstructor);
- classCheckPrivateStaticFieldDescriptor(descriptor, "set");
- return classApplyDescriptorDestructureSet(receiver, descriptor);
-}
-module.exports = _classStaticPrivateFieldDestructureSet, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecGet.js b/WechatBot/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecGet.js
deleted file mode 100755
index e8e295f43..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecGet.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var classApplyDescriptorGet = require("./classApplyDescriptorGet.js");
-var classCheckPrivateStaticAccess = require("./classCheckPrivateStaticAccess.js");
-var classCheckPrivateStaticFieldDescriptor = require("./classCheckPrivateStaticFieldDescriptor.js");
-function _classStaticPrivateFieldSpecGet(receiver, classConstructor, descriptor) {
- classCheckPrivateStaticAccess(receiver, classConstructor);
- classCheckPrivateStaticFieldDescriptor(descriptor, "get");
- return classApplyDescriptorGet(receiver, descriptor);
-}
-module.exports = _classStaticPrivateFieldSpecGet, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecSet.js b/WechatBot/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecSet.js
deleted file mode 100755
index b02e4c018..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecSet.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var classApplyDescriptorSet = require("./classApplyDescriptorSet.js");
-var classCheckPrivateStaticAccess = require("./classCheckPrivateStaticAccess.js");
-var classCheckPrivateStaticFieldDescriptor = require("./classCheckPrivateStaticFieldDescriptor.js");
-function _classStaticPrivateFieldSpecSet(receiver, classConstructor, descriptor, value) {
- classCheckPrivateStaticAccess(receiver, classConstructor);
- classCheckPrivateStaticFieldDescriptor(descriptor, "set");
- classApplyDescriptorSet(receiver, descriptor, value);
- return value;
-}
-module.exports = _classStaticPrivateFieldSpecSet, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/classStaticPrivateMethodGet.js b/WechatBot/node_modules/@babel/runtime/helpers/classStaticPrivateMethodGet.js
deleted file mode 100755
index d3bb9968e..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/classStaticPrivateMethodGet.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var classCheckPrivateStaticAccess = require("./classCheckPrivateStaticAccess.js");
-function _classStaticPrivateMethodGet(receiver, classConstructor, method) {
- classCheckPrivateStaticAccess(receiver, classConstructor);
- return method;
-}
-module.exports = _classStaticPrivateMethodGet, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/classStaticPrivateMethodSet.js b/WechatBot/node_modules/@babel/runtime/helpers/classStaticPrivateMethodSet.js
deleted file mode 100755
index 72560e660..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/classStaticPrivateMethodSet.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function _classStaticPrivateMethodSet() {
- throw new TypeError("attempted to set read only static private field");
-}
-module.exports = _classStaticPrivateMethodSet, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/construct.js b/WechatBot/node_modules/@babel/runtime/helpers/construct.js
deleted file mode 100755
index 3d3c232dc..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/construct.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var setPrototypeOf = require("./setPrototypeOf.js");
-var isNativeReflectConstruct = require("./isNativeReflectConstruct.js");
-function _construct(Parent, args, Class) {
- if (isNativeReflectConstruct()) {
- module.exports = _construct = Reflect.construct.bind(), module.exports.__esModule = true, module.exports["default"] = module.exports;
- } else {
- module.exports = _construct = function _construct(Parent, args, Class) {
- var a = [null];
- a.push.apply(a, args);
- var Constructor = Function.bind.apply(Parent, a);
- var instance = new Constructor();
- if (Class) setPrototypeOf(instance, Class.prototype);
- return instance;
- }, module.exports.__esModule = true, module.exports["default"] = module.exports;
- }
- return _construct.apply(null, arguments);
-}
-module.exports = _construct, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/createClass.js b/WechatBot/node_modules/@babel/runtime/helpers/createClass.js
deleted file mode 100755
index 201dcdf4f..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/createClass.js
+++ /dev/null
@@ -1,19 +0,0 @@
-var toPropertyKey = require("./toPropertyKey.js");
-function _defineProperties(target, props) {
- for (var i = 0; i < props.length; i++) {
- var descriptor = props[i];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor) descriptor.writable = true;
- Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);
- }
-}
-function _createClass(Constructor, protoProps, staticProps) {
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
- if (staticProps) _defineProperties(Constructor, staticProps);
- Object.defineProperty(Constructor, "prototype", {
- writable: false
- });
- return Constructor;
-}
-module.exports = _createClass, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js b/WechatBot/node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js
deleted file mode 100755
index 19b6f141b..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js
+++ /dev/null
@@ -1,53 +0,0 @@
-var unsupportedIterableToArray = require("./unsupportedIterableToArray.js");
-function _createForOfIteratorHelper(o, allowArrayLike) {
- var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
- if (!it) {
- if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
- if (it) o = it;
- var i = 0;
- var F = function F() {};
- return {
- s: F,
- n: function n() {
- if (i >= o.length) return {
- done: true
- };
- return {
- done: false,
- value: o[i++]
- };
- },
- e: function e(_e) {
- throw _e;
- },
- f: F
- };
- }
- throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
- }
- var normalCompletion = true,
- didErr = false,
- err;
- return {
- s: function s() {
- it = it.call(o);
- },
- n: function n() {
- var step = it.next();
- normalCompletion = step.done;
- return step;
- },
- e: function e(_e2) {
- didErr = true;
- err = _e2;
- },
- f: function f() {
- try {
- if (!normalCompletion && it["return"] != null) it["return"]();
- } finally {
- if (didErr) throw err;
- }
- }
- };
-}
-module.exports = _createForOfIteratorHelper, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/createForOfIteratorHelperLoose.js b/WechatBot/node_modules/@babel/runtime/helpers/createForOfIteratorHelperLoose.js
deleted file mode 100755
index b8eb55077..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/createForOfIteratorHelperLoose.js
+++ /dev/null
@@ -1,20 +0,0 @@
-var unsupportedIterableToArray = require("./unsupportedIterableToArray.js");
-function _createForOfIteratorHelperLoose(o, allowArrayLike) {
- var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
- if (it) return (it = it.call(o)).next.bind(it);
- if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
- if (it) o = it;
- var i = 0;
- return function () {
- if (i >= o.length) return {
- done: true
- };
- return {
- done: false,
- value: o[i++]
- };
- };
- }
- throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
-}
-module.exports = _createForOfIteratorHelperLoose, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/createSuper.js b/WechatBot/node_modules/@babel/runtime/helpers/createSuper.js
deleted file mode 100755
index bd72679c4..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/createSuper.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var getPrototypeOf = require("./getPrototypeOf.js");
-var isNativeReflectConstruct = require("./isNativeReflectConstruct.js");
-var possibleConstructorReturn = require("./possibleConstructorReturn.js");
-function _createSuper(Derived) {
- var hasNativeReflectConstruct = isNativeReflectConstruct();
- return function _createSuperInternal() {
- var Super = getPrototypeOf(Derived),
- result;
- if (hasNativeReflectConstruct) {
- var NewTarget = getPrototypeOf(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return possibleConstructorReturn(this, result);
- };
-}
-module.exports = _createSuper, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/decorate.js b/WechatBot/node_modules/@babel/runtime/helpers/decorate.js
deleted file mode 100755
index 457741fba..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/decorate.js
+++ /dev/null
@@ -1,343 +0,0 @@
-var toArray = require("./toArray.js");
-var toPropertyKey = require("./toPropertyKey.js");
-function _decorate(decorators, factory, superClass, mixins) {
- var api = _getDecoratorsApi();
- if (mixins) {
- for (var i = 0; i < mixins.length; i++) {
- api = mixins[i](api);
- }
- }
- var r = factory(function initialize(O) {
- api.initializeInstanceElements(O, decorated.elements);
- }, superClass);
- var decorated = api.decorateClass(_coalesceClassElements(r.d.map(_createElementDescriptor)), decorators);
- api.initializeClassElements(r.F, decorated.elements);
- return api.runClassFinishers(r.F, decorated.finishers);
-}
-function _getDecoratorsApi() {
- _getDecoratorsApi = function _getDecoratorsApi() {
- return api;
- };
- var api = {
- elementsDefinitionOrder: [["method"], ["field"]],
- initializeInstanceElements: function initializeInstanceElements(O, elements) {
- ["method", "field"].forEach(function (kind) {
- elements.forEach(function (element) {
- if (element.kind === kind && element.placement === "own") {
- this.defineClassElement(O, element);
- }
- }, this);
- }, this);
- },
- initializeClassElements: function initializeClassElements(F, elements) {
- var proto = F.prototype;
- ["method", "field"].forEach(function (kind) {
- elements.forEach(function (element) {
- var placement = element.placement;
- if (element.kind === kind && (placement === "static" || placement === "prototype")) {
- var receiver = placement === "static" ? F : proto;
- this.defineClassElement(receiver, element);
- }
- }, this);
- }, this);
- },
- defineClassElement: function defineClassElement(receiver, element) {
- var descriptor = element.descriptor;
- if (element.kind === "field") {
- var initializer = element.initializer;
- descriptor = {
- enumerable: descriptor.enumerable,
- writable: descriptor.writable,
- configurable: descriptor.configurable,
- value: initializer === void 0 ? void 0 : initializer.call(receiver)
- };
- }
- Object.defineProperty(receiver, element.key, descriptor);
- },
- decorateClass: function decorateClass(elements, decorators) {
- var newElements = [];
- var finishers = [];
- var placements = {
- "static": [],
- prototype: [],
- own: []
- };
- elements.forEach(function (element) {
- this.addElementPlacement(element, placements);
- }, this);
- elements.forEach(function (element) {
- if (!_hasDecorators(element)) return newElements.push(element);
- var elementFinishersExtras = this.decorateElement(element, placements);
- newElements.push(elementFinishersExtras.element);
- newElements.push.apply(newElements, elementFinishersExtras.extras);
- finishers.push.apply(finishers, elementFinishersExtras.finishers);
- }, this);
- if (!decorators) {
- return {
- elements: newElements,
- finishers: finishers
- };
- }
- var result = this.decorateConstructor(newElements, decorators);
- finishers.push.apply(finishers, result.finishers);
- result.finishers = finishers;
- return result;
- },
- addElementPlacement: function addElementPlacement(element, placements, silent) {
- var keys = placements[element.placement];
- if (!silent && keys.indexOf(element.key) !== -1) {
- throw new TypeError("Duplicated element (" + element.key + ")");
- }
- keys.push(element.key);
- },
- decorateElement: function decorateElement(element, placements) {
- var extras = [];
- var finishers = [];
- for (var decorators = element.decorators, i = decorators.length - 1; i >= 0; i--) {
- var keys = placements[element.placement];
- keys.splice(keys.indexOf(element.key), 1);
- var elementObject = this.fromElementDescriptor(element);
- var elementFinisherExtras = this.toElementFinisherExtras((0, decorators[i])(elementObject) || elementObject);
- element = elementFinisherExtras.element;
- this.addElementPlacement(element, placements);
- if (elementFinisherExtras.finisher) {
- finishers.push(elementFinisherExtras.finisher);
- }
- var newExtras = elementFinisherExtras.extras;
- if (newExtras) {
- for (var j = 0; j < newExtras.length; j++) {
- this.addElementPlacement(newExtras[j], placements);
- }
- extras.push.apply(extras, newExtras);
- }
- }
- return {
- element: element,
- finishers: finishers,
- extras: extras
- };
- },
- decorateConstructor: function decorateConstructor(elements, decorators) {
- var finishers = [];
- for (var i = decorators.length - 1; i >= 0; i--) {
- var obj = this.fromClassDescriptor(elements);
- var elementsAndFinisher = this.toClassDescriptor((0, decorators[i])(obj) || obj);
- if (elementsAndFinisher.finisher !== undefined) {
- finishers.push(elementsAndFinisher.finisher);
- }
- if (elementsAndFinisher.elements !== undefined) {
- elements = elementsAndFinisher.elements;
- for (var j = 0; j < elements.length - 1; j++) {
- for (var k = j + 1; k < elements.length; k++) {
- if (elements[j].key === elements[k].key && elements[j].placement === elements[k].placement) {
- throw new TypeError("Duplicated element (" + elements[j].key + ")");
- }
- }
- }
- }
- }
- return {
- elements: elements,
- finishers: finishers
- };
- },
- fromElementDescriptor: function fromElementDescriptor(element) {
- var obj = {
- kind: element.kind,
- key: element.key,
- placement: element.placement,
- descriptor: element.descriptor
- };
- var desc = {
- value: "Descriptor",
- configurable: true
- };
- Object.defineProperty(obj, Symbol.toStringTag, desc);
- if (element.kind === "field") obj.initializer = element.initializer;
- return obj;
- },
- toElementDescriptors: function toElementDescriptors(elementObjects) {
- if (elementObjects === undefined) return;
- return toArray(elementObjects).map(function (elementObject) {
- var element = this.toElementDescriptor(elementObject);
- this.disallowProperty(elementObject, "finisher", "An element descriptor");
- this.disallowProperty(elementObject, "extras", "An element descriptor");
- return element;
- }, this);
- },
- toElementDescriptor: function toElementDescriptor(elementObject) {
- var kind = String(elementObject.kind);
- if (kind !== "method" && kind !== "field") {
- throw new TypeError('An element descriptor\'s .kind property must be either "method" or' + ' "field", but a decorator created an element descriptor with' + ' .kind "' + kind + '"');
- }
- var key = toPropertyKey(elementObject.key);
- var placement = String(elementObject.placement);
- if (placement !== "static" && placement !== "prototype" && placement !== "own") {
- throw new TypeError('An element descriptor\'s .placement property must be one of "static",' + ' "prototype" or "own", but a decorator created an element descriptor' + ' with .placement "' + placement + '"');
- }
- var descriptor = elementObject.descriptor;
- this.disallowProperty(elementObject, "elements", "An element descriptor");
- var element = {
- kind: kind,
- key: key,
- placement: placement,
- descriptor: Object.assign({}, descriptor)
- };
- if (kind !== "field") {
- this.disallowProperty(elementObject, "initializer", "A method descriptor");
- } else {
- this.disallowProperty(descriptor, "get", "The property descriptor of a field descriptor");
- this.disallowProperty(descriptor, "set", "The property descriptor of a field descriptor");
- this.disallowProperty(descriptor, "value", "The property descriptor of a field descriptor");
- element.initializer = elementObject.initializer;
- }
- return element;
- },
- toElementFinisherExtras: function toElementFinisherExtras(elementObject) {
- var element = this.toElementDescriptor(elementObject);
- var finisher = _optionalCallableProperty(elementObject, "finisher");
- var extras = this.toElementDescriptors(elementObject.extras);
- return {
- element: element,
- finisher: finisher,
- extras: extras
- };
- },
- fromClassDescriptor: function fromClassDescriptor(elements) {
- var obj = {
- kind: "class",
- elements: elements.map(this.fromElementDescriptor, this)
- };
- var desc = {
- value: "Descriptor",
- configurable: true
- };
- Object.defineProperty(obj, Symbol.toStringTag, desc);
- return obj;
- },
- toClassDescriptor: function toClassDescriptor(obj) {
- var kind = String(obj.kind);
- if (kind !== "class") {
- throw new TypeError('A class descriptor\'s .kind property must be "class", but a decorator' + ' created a class descriptor with .kind "' + kind + '"');
- }
- this.disallowProperty(obj, "key", "A class descriptor");
- this.disallowProperty(obj, "placement", "A class descriptor");
- this.disallowProperty(obj, "descriptor", "A class descriptor");
- this.disallowProperty(obj, "initializer", "A class descriptor");
- this.disallowProperty(obj, "extras", "A class descriptor");
- var finisher = _optionalCallableProperty(obj, "finisher");
- var elements = this.toElementDescriptors(obj.elements);
- return {
- elements: elements,
- finisher: finisher
- };
- },
- runClassFinishers: function runClassFinishers(constructor, finishers) {
- for (var i = 0; i < finishers.length; i++) {
- var newConstructor = (0, finishers[i])(constructor);
- if (newConstructor !== undefined) {
- if (typeof newConstructor !== "function") {
- throw new TypeError("Finishers must return a constructor.");
- }
- constructor = newConstructor;
- }
- }
- return constructor;
- },
- disallowProperty: function disallowProperty(obj, name, objectType) {
- if (obj[name] !== undefined) {
- throw new TypeError(objectType + " can't have a ." + name + " property.");
- }
- }
- };
- return api;
-}
-function _createElementDescriptor(def) {
- var key = toPropertyKey(def.key);
- var descriptor;
- if (def.kind === "method") {
- descriptor = {
- value: def.value,
- writable: true,
- configurable: true,
- enumerable: false
- };
- } else if (def.kind === "get") {
- descriptor = {
- get: def.value,
- configurable: true,
- enumerable: false
- };
- } else if (def.kind === "set") {
- descriptor = {
- set: def.value,
- configurable: true,
- enumerable: false
- };
- } else if (def.kind === "field") {
- descriptor = {
- configurable: true,
- writable: true,
- enumerable: true
- };
- }
- var element = {
- kind: def.kind === "field" ? "field" : "method",
- key: key,
- placement: def["static"] ? "static" : def.kind === "field" ? "own" : "prototype",
- descriptor: descriptor
- };
- if (def.decorators) element.decorators = def.decorators;
- if (def.kind === "field") element.initializer = def.value;
- return element;
-}
-function _coalesceGetterSetter(element, other) {
- if (element.descriptor.get !== undefined) {
- other.descriptor.get = element.descriptor.get;
- } else {
- other.descriptor.set = element.descriptor.set;
- }
-}
-function _coalesceClassElements(elements) {
- var newElements = [];
- var isSameElement = function isSameElement(other) {
- return other.kind === "method" && other.key === element.key && other.placement === element.placement;
- };
- for (var i = 0; i < elements.length; i++) {
- var element = elements[i];
- var other;
- if (element.kind === "method" && (other = newElements.find(isSameElement))) {
- if (_isDataDescriptor(element.descriptor) || _isDataDescriptor(other.descriptor)) {
- if (_hasDecorators(element) || _hasDecorators(other)) {
- throw new ReferenceError("Duplicated methods (" + element.key + ") can't be decorated.");
- }
- other.descriptor = element.descriptor;
- } else {
- if (_hasDecorators(element)) {
- if (_hasDecorators(other)) {
- throw new ReferenceError("Decorators can't be placed on different accessors with for " + "the same property (" + element.key + ").");
- }
- other.decorators = element.decorators;
- }
- _coalesceGetterSetter(element, other);
- }
- } else {
- newElements.push(element);
- }
- }
- return newElements;
-}
-function _hasDecorators(element) {
- return element.decorators && element.decorators.length;
-}
-function _isDataDescriptor(desc) {
- return desc !== undefined && !(desc.value === undefined && desc.writable === undefined);
-}
-function _optionalCallableProperty(obj, name) {
- var value = obj[name];
- if (value !== undefined && typeof value !== "function") {
- throw new TypeError("Expected '" + name + "' to be a function");
- }
- return value;
-}
-module.exports = _decorate, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/defaults.js b/WechatBot/node_modules/@babel/runtime/helpers/defaults.js
deleted file mode 100755
index 86641e9c0..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/defaults.js
+++ /dev/null
@@ -1,12 +0,0 @@
-function _defaults(obj, defaults) {
- var keys = Object.getOwnPropertyNames(defaults);
- for (var i = 0; i < keys.length; i++) {
- var key = keys[i];
- var value = Object.getOwnPropertyDescriptor(defaults, key);
- if (value && value.configurable && obj[key] === undefined) {
- Object.defineProperty(obj, key, value);
- }
- }
- return obj;
-}
-module.exports = _defaults, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/defineAccessor.js b/WechatBot/node_modules/@babel/runtime/helpers/defineAccessor.js
deleted file mode 100755
index c72242710..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/defineAccessor.js
+++ /dev/null
@@ -1,8 +0,0 @@
-function _defineAccessor(type, obj, key, fn) {
- var desc = {
- configurable: !0,
- enumerable: !0
- };
- return desc[type] = fn, Object.defineProperty(obj, key, desc);
-}
-module.exports = _defineAccessor, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/defineEnumerableProperties.js b/WechatBot/node_modules/@babel/runtime/helpers/defineEnumerableProperties.js
deleted file mode 100755
index a04e60287..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/defineEnumerableProperties.js
+++ /dev/null
@@ -1,20 +0,0 @@
-function _defineEnumerableProperties(obj, descs) {
- for (var key in descs) {
- var desc = descs[key];
- desc.configurable = desc.enumerable = true;
- if ("value" in desc) desc.writable = true;
- Object.defineProperty(obj, key, desc);
- }
- if (Object.getOwnPropertySymbols) {
- var objectSymbols = Object.getOwnPropertySymbols(descs);
- for (var i = 0; i < objectSymbols.length; i++) {
- var sym = objectSymbols[i];
- var desc = descs[sym];
- desc.configurable = desc.enumerable = true;
- if ("value" in desc) desc.writable = true;
- Object.defineProperty(obj, sym, desc);
- }
- }
- return obj;
-}
-module.exports = _defineEnumerableProperties, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/defineProperty.js b/WechatBot/node_modules/@babel/runtime/helpers/defineProperty.js
deleted file mode 100755
index 8762046da..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/defineProperty.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var toPropertyKey = require("./toPropertyKey.js");
-function _defineProperty(obj, key, value) {
- key = toPropertyKey(key);
- if (key in obj) {
- Object.defineProperty(obj, key, {
- value: value,
- enumerable: true,
- configurable: true,
- writable: true
- });
- } else {
- obj[key] = value;
- }
- return obj;
-}
-module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/dispose.js b/WechatBot/node_modules/@babel/runtime/helpers/dispose.js
deleted file mode 100755
index 45ffbfd2f..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/dispose.js
+++ /dev/null
@@ -1,28 +0,0 @@
-function dispose_SuppressedError(suppressed, error) {
- return "undefined" != typeof SuppressedError ? dispose_SuppressedError = SuppressedError : (dispose_SuppressedError = function dispose_SuppressedError(suppressed, error) {
- this.suppressed = suppressed, this.error = error, this.stack = new Error().stack;
- }, dispose_SuppressedError.prototype = Object.create(Error.prototype, {
- constructor: {
- value: dispose_SuppressedError,
- writable: !0,
- configurable: !0
- }
- })), new dispose_SuppressedError(suppressed, error);
-}
-function _dispose(stack, error, hasError) {
- function next() {
- for (; stack.length > 0;) try {
- var r = stack.pop(),
- p = r.d.call(r.v);
- if (r.a) return Promise.resolve(p).then(next, err);
- } catch (e) {
- return err(e);
- }
- if (hasError) throw error;
- }
- function err(e) {
- return error = hasError ? new dispose_SuppressedError(e, error) : e, hasError = !0, next();
- }
- return next();
-}
-module.exports = _dispose, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/AsyncGenerator.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/AsyncGenerator.js
deleted file mode 100755
index 5df93d443..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/AsyncGenerator.js
+++ /dev/null
@@ -1,63 +0,0 @@
-import OverloadYield from "./OverloadYield.js";
-export default function AsyncGenerator(gen) {
- var front, back;
- function resume(key, arg) {
- try {
- var result = gen[key](arg),
- value = result.value,
- overloaded = value instanceof OverloadYield;
- Promise.resolve(overloaded ? value.v : value).then(function (arg) {
- if (overloaded) {
- var nextKey = "return" === key ? "return" : "next";
- if (!value.k || arg.done) return resume(nextKey, arg);
- arg = gen[nextKey](arg).value;
- }
- settle(result.done ? "return" : "normal", arg);
- }, function (err) {
- resume("throw", err);
- });
- } catch (err) {
- settle("throw", err);
- }
- }
- function settle(type, value) {
- switch (type) {
- case "return":
- front.resolve({
- value: value,
- done: !0
- });
- break;
- case "throw":
- front.reject(value);
- break;
- default:
- front.resolve({
- value: value,
- done: !1
- });
- }
- (front = front.next) ? resume(front.key, front.arg) : back = null;
- }
- this._invoke = function (key, arg) {
- return new Promise(function (resolve, reject) {
- var request = {
- key: key,
- arg: arg,
- resolve: resolve,
- reject: reject,
- next: null
- };
- back ? back = back.next = request : (front = back = request, resume(key, arg));
- });
- }, "function" != typeof gen["return"] && (this["return"] = void 0);
-}
-AsyncGenerator.prototype["function" == typeof Symbol && Symbol.asyncIterator || "@@asyncIterator"] = function () {
- return this;
-}, AsyncGenerator.prototype.next = function (arg) {
- return this._invoke("next", arg);
-}, AsyncGenerator.prototype["throw"] = function (arg) {
- return this._invoke("throw", arg);
-}, AsyncGenerator.prototype["return"] = function (arg) {
- return this._invoke("return", arg);
-};
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/AwaitValue.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/AwaitValue.js
deleted file mode 100755
index 5237e18fd..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/AwaitValue.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _AwaitValue(value) {
- this.wrapped = value;
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/OverloadYield.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/OverloadYield.js
deleted file mode 100755
index 0dd12e012..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/OverloadYield.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _OverloadYield(value, kind) {
- this.v = value, this.k = kind;
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/applyDecoratedDescriptor.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/applyDecoratedDescriptor.js
deleted file mode 100755
index 5137e85f2..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/applyDecoratedDescriptor.js
+++ /dev/null
@@ -1,23 +0,0 @@
-export default function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {
- var desc = {};
- Object.keys(descriptor).forEach(function (key) {
- desc[key] = descriptor[key];
- });
- desc.enumerable = !!desc.enumerable;
- desc.configurable = !!desc.configurable;
- if ('value' in desc || desc.initializer) {
- desc.writable = true;
- }
- desc = decorators.slice().reverse().reduce(function (desc, decorator) {
- return decorator(target, property, desc) || desc;
- }, desc);
- if (context && desc.initializer !== void 0) {
- desc.value = desc.initializer ? desc.initializer.call(context) : void 0;
- desc.initializer = undefined;
- }
- if (desc.initializer === void 0) {
- Object.defineProperty(target, property, desc);
- desc = null;
- }
- return desc;
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/applyDecs.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/applyDecs.js
deleted file mode 100755
index 84988df35..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/applyDecs.js
+++ /dev/null
@@ -1,235 +0,0 @@
-import _typeof from "./typeof.js";
-function old_createMetadataMethodsForProperty(metadataMap, kind, property, decoratorFinishedRef) {
- return {
- getMetadata: function getMetadata(key) {
- old_assertNotFinished(decoratorFinishedRef, "getMetadata"), old_assertMetadataKey(key);
- var metadataForKey = metadataMap[key];
- if (void 0 !== metadataForKey) if (1 === kind) {
- var pub = metadataForKey["public"];
- if (void 0 !== pub) return pub[property];
- } else if (2 === kind) {
- var priv = metadataForKey["private"];
- if (void 0 !== priv) return priv.get(property);
- } else if (Object.hasOwnProperty.call(metadataForKey, "constructor")) return metadataForKey.constructor;
- },
- setMetadata: function setMetadata(key, value) {
- old_assertNotFinished(decoratorFinishedRef, "setMetadata"), old_assertMetadataKey(key);
- var metadataForKey = metadataMap[key];
- if (void 0 === metadataForKey && (metadataForKey = metadataMap[key] = {}), 1 === kind) {
- var pub = metadataForKey["public"];
- void 0 === pub && (pub = metadataForKey["public"] = {}), pub[property] = value;
- } else if (2 === kind) {
- var priv = metadataForKey.priv;
- void 0 === priv && (priv = metadataForKey["private"] = new Map()), priv.set(property, value);
- } else metadataForKey.constructor = value;
- }
- };
-}
-function old_convertMetadataMapToFinal(obj, metadataMap) {
- var parentMetadataMap = obj[Symbol.metadata || Symbol["for"]("Symbol.metadata")],
- metadataKeys = Object.getOwnPropertySymbols(metadataMap);
- if (0 !== metadataKeys.length) {
- for (var i = 0; i < metadataKeys.length; i++) {
- var key = metadataKeys[i],
- metaForKey = metadataMap[key],
- parentMetaForKey = parentMetadataMap ? parentMetadataMap[key] : null,
- pub = metaForKey["public"],
- parentPub = parentMetaForKey ? parentMetaForKey["public"] : null;
- pub && parentPub && Object.setPrototypeOf(pub, parentPub);
- var priv = metaForKey["private"];
- if (priv) {
- var privArr = Array.from(priv.values()),
- parentPriv = parentMetaForKey ? parentMetaForKey["private"] : null;
- parentPriv && (privArr = privArr.concat(parentPriv)), metaForKey["private"] = privArr;
- }
- parentMetaForKey && Object.setPrototypeOf(metaForKey, parentMetaForKey);
- }
- parentMetadataMap && Object.setPrototypeOf(metadataMap, parentMetadataMap), obj[Symbol.metadata || Symbol["for"]("Symbol.metadata")] = metadataMap;
- }
-}
-function old_createAddInitializerMethod(initializers, decoratorFinishedRef) {
- return function (initializer) {
- old_assertNotFinished(decoratorFinishedRef, "addInitializer"), old_assertCallable(initializer, "An initializer"), initializers.push(initializer);
- };
-}
-function old_memberDec(dec, name, desc, metadataMap, initializers, kind, isStatic, isPrivate, value) {
- var kindStr;
- switch (kind) {
- case 1:
- kindStr = "accessor";
- break;
- case 2:
- kindStr = "method";
- break;
- case 3:
- kindStr = "getter";
- break;
- case 4:
- kindStr = "setter";
- break;
- default:
- kindStr = "field";
- }
- var metadataKind,
- metadataName,
- ctx = {
- kind: kindStr,
- name: isPrivate ? "#" + name : name,
- isStatic: isStatic,
- isPrivate: isPrivate
- },
- decoratorFinishedRef = {
- v: !1
- };
- if (0 !== kind && (ctx.addInitializer = old_createAddInitializerMethod(initializers, decoratorFinishedRef)), isPrivate) {
- metadataKind = 2, metadataName = Symbol(name);
- var access = {};
- 0 === kind ? (access.get = desc.get, access.set = desc.set) : 2 === kind ? access.get = function () {
- return desc.value;
- } : (1 !== kind && 3 !== kind || (access.get = function () {
- return desc.get.call(this);
- }), 1 !== kind && 4 !== kind || (access.set = function (v) {
- desc.set.call(this, v);
- })), ctx.access = access;
- } else metadataKind = 1, metadataName = name;
- try {
- return dec(value, Object.assign(ctx, old_createMetadataMethodsForProperty(metadataMap, metadataKind, metadataName, decoratorFinishedRef)));
- } finally {
- decoratorFinishedRef.v = !0;
- }
-}
-function old_assertNotFinished(decoratorFinishedRef, fnName) {
- if (decoratorFinishedRef.v) throw new Error("attempted to call " + fnName + " after decoration was finished");
-}
-function old_assertMetadataKey(key) {
- if ("symbol" != _typeof(key)) throw new TypeError("Metadata keys must be symbols, received: " + key);
-}
-function old_assertCallable(fn, hint) {
- if ("function" != typeof fn) throw new TypeError(hint + " must be a function");
-}
-function old_assertValidReturnValue(kind, value) {
- var type = _typeof(value);
- if (1 === kind) {
- if ("object" !== type || null === value) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
- void 0 !== value.get && old_assertCallable(value.get, "accessor.get"), void 0 !== value.set && old_assertCallable(value.set, "accessor.set"), void 0 !== value.init && old_assertCallable(value.init, "accessor.init"), void 0 !== value.initializer && old_assertCallable(value.initializer, "accessor.initializer");
- } else if ("function" !== type) {
- var hint;
- throw hint = 0 === kind ? "field" : 10 === kind ? "class" : "method", new TypeError(hint + " decorators must return a function or void 0");
- }
-}
-function old_getInit(desc) {
- var initializer;
- return null == (initializer = desc.init) && (initializer = desc.initializer) && "undefined" != typeof console && console.warn(".initializer has been renamed to .init as of March 2022"), initializer;
-}
-function old_applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, metadataMap, initializers) {
- var desc,
- initializer,
- value,
- newValue,
- get,
- set,
- decs = decInfo[0];
- if (isPrivate ? desc = 0 === kind || 1 === kind ? {
- get: decInfo[3],
- set: decInfo[4]
- } : 3 === kind ? {
- get: decInfo[3]
- } : 4 === kind ? {
- set: decInfo[3]
- } : {
- value: decInfo[3]
- } : 0 !== kind && (desc = Object.getOwnPropertyDescriptor(base, name)), 1 === kind ? value = {
- get: desc.get,
- set: desc.set
- } : 2 === kind ? value = desc.value : 3 === kind ? value = desc.get : 4 === kind && (value = desc.set), "function" == typeof decs) void 0 !== (newValue = old_memberDec(decs, name, desc, metadataMap, initializers, kind, isStatic, isPrivate, value)) && (old_assertValidReturnValue(kind, newValue), 0 === kind ? initializer = newValue : 1 === kind ? (initializer = old_getInit(newValue), get = newValue.get || value.get, set = newValue.set || value.set, value = {
- get: get,
- set: set
- }) : value = newValue);else for (var i = decs.length - 1; i >= 0; i--) {
- var newInit;
- if (void 0 !== (newValue = old_memberDec(decs[i], name, desc, metadataMap, initializers, kind, isStatic, isPrivate, value))) old_assertValidReturnValue(kind, newValue), 0 === kind ? newInit = newValue : 1 === kind ? (newInit = old_getInit(newValue), get = newValue.get || value.get, set = newValue.set || value.set, value = {
- get: get,
- set: set
- }) : value = newValue, void 0 !== newInit && (void 0 === initializer ? initializer = newInit : "function" == typeof initializer ? initializer = [initializer, newInit] : initializer.push(newInit));
- }
- if (0 === kind || 1 === kind) {
- if (void 0 === initializer) initializer = function initializer(instance, init) {
- return init;
- };else if ("function" != typeof initializer) {
- var ownInitializers = initializer;
- initializer = function initializer(instance, init) {
- for (var value = init, i = 0; i < ownInitializers.length; i++) value = ownInitializers[i].call(instance, value);
- return value;
- };
- } else {
- var originalInitializer = initializer;
- initializer = function initializer(instance, init) {
- return originalInitializer.call(instance, init);
- };
- }
- ret.push(initializer);
- }
- 0 !== kind && (1 === kind ? (desc.get = value.get, desc.set = value.set) : 2 === kind ? desc.value = value : 3 === kind ? desc.get = value : 4 === kind && (desc.set = value), isPrivate ? 1 === kind ? (ret.push(function (instance, args) {
- return value.get.call(instance, args);
- }), ret.push(function (instance, args) {
- return value.set.call(instance, args);
- })) : 2 === kind ? ret.push(value) : ret.push(function (instance, args) {
- return value.call(instance, args);
- }) : Object.defineProperty(base, name, desc));
-}
-function old_applyMemberDecs(ret, Class, protoMetadataMap, staticMetadataMap, decInfos) {
- for (var protoInitializers, staticInitializers, existingProtoNonFields = new Map(), existingStaticNonFields = new Map(), i = 0; i < decInfos.length; i++) {
- var decInfo = decInfos[i];
- if (Array.isArray(decInfo)) {
- var base,
- metadataMap,
- initializers,
- kind = decInfo[1],
- name = decInfo[2],
- isPrivate = decInfo.length > 3,
- isStatic = kind >= 5;
- if (isStatic ? (base = Class, metadataMap = staticMetadataMap, 0 !== (kind -= 5) && (initializers = staticInitializers = staticInitializers || [])) : (base = Class.prototype, metadataMap = protoMetadataMap, 0 !== kind && (initializers = protoInitializers = protoInitializers || [])), 0 !== kind && !isPrivate) {
- var existingNonFields = isStatic ? existingStaticNonFields : existingProtoNonFields,
- existingKind = existingNonFields.get(name) || 0;
- if (!0 === existingKind || 3 === existingKind && 4 !== kind || 4 === existingKind && 3 !== kind) throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + name);
- !existingKind && kind > 2 ? existingNonFields.set(name, kind) : existingNonFields.set(name, !0);
- }
- old_applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, metadataMap, initializers);
- }
- }
- old_pushInitializers(ret, protoInitializers), old_pushInitializers(ret, staticInitializers);
-}
-function old_pushInitializers(ret, initializers) {
- initializers && ret.push(function (instance) {
- for (var i = 0; i < initializers.length; i++) initializers[i].call(instance);
- return instance;
- });
-}
-function old_applyClassDecs(ret, targetClass, metadataMap, classDecs) {
- if (classDecs.length > 0) {
- for (var initializers = [], newClass = targetClass, name = targetClass.name, i = classDecs.length - 1; i >= 0; i--) {
- var decoratorFinishedRef = {
- v: !1
- };
- try {
- var ctx = Object.assign({
- kind: "class",
- name: name,
- addInitializer: old_createAddInitializerMethod(initializers, decoratorFinishedRef)
- }, old_createMetadataMethodsForProperty(metadataMap, 0, name, decoratorFinishedRef)),
- nextNewClass = classDecs[i](newClass, ctx);
- } finally {
- decoratorFinishedRef.v = !0;
- }
- void 0 !== nextNewClass && (old_assertValidReturnValue(10, nextNewClass), newClass = nextNewClass);
- }
- ret.push(newClass, function () {
- for (var i = 0; i < initializers.length; i++) initializers[i].call(newClass);
- });
- }
-}
-export default function applyDecs(targetClass, memberDecs, classDecs) {
- var ret = [],
- staticMetadataMap = {},
- protoMetadataMap = {};
- return old_applyMemberDecs(ret, targetClass, protoMetadataMap, staticMetadataMap, memberDecs), old_convertMetadataMapToFinal(targetClass.prototype, protoMetadataMap), old_applyClassDecs(ret, targetClass, staticMetadataMap, classDecs), old_convertMetadataMapToFinal(targetClass, staticMetadataMap), ret;
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/applyDecs2203.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/applyDecs2203.js
deleted file mode 100755
index 3f2f8b8c2..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/applyDecs2203.js
+++ /dev/null
@@ -1,186 +0,0 @@
-import _typeof from "./typeof.js";
-function applyDecs2203Factory() {
- function createAddInitializerMethod(initializers, decoratorFinishedRef) {
- return function (initializer) {
- !function (decoratorFinishedRef, fnName) {
- if (decoratorFinishedRef.v) throw new Error("attempted to call " + fnName + " after decoration was finished");
- }(decoratorFinishedRef, "addInitializer"), assertCallable(initializer, "An initializer"), initializers.push(initializer);
- };
- }
- function memberDec(dec, name, desc, initializers, kind, isStatic, isPrivate, value) {
- var kindStr;
- switch (kind) {
- case 1:
- kindStr = "accessor";
- break;
- case 2:
- kindStr = "method";
- break;
- case 3:
- kindStr = "getter";
- break;
- case 4:
- kindStr = "setter";
- break;
- default:
- kindStr = "field";
- }
- var get,
- set,
- ctx = {
- kind: kindStr,
- name: isPrivate ? "#" + name : name,
- "static": isStatic,
- "private": isPrivate
- },
- decoratorFinishedRef = {
- v: !1
- };
- 0 !== kind && (ctx.addInitializer = createAddInitializerMethod(initializers, decoratorFinishedRef)), 0 === kind ? isPrivate ? (get = desc.get, set = desc.set) : (get = function get() {
- return this[name];
- }, set = function set(v) {
- this[name] = v;
- }) : 2 === kind ? get = function get() {
- return desc.value;
- } : (1 !== kind && 3 !== kind || (get = function get() {
- return desc.get.call(this);
- }), 1 !== kind && 4 !== kind || (set = function set(v) {
- desc.set.call(this, v);
- })), ctx.access = get && set ? {
- get: get,
- set: set
- } : get ? {
- get: get
- } : {
- set: set
- };
- try {
- return dec(value, ctx);
- } finally {
- decoratorFinishedRef.v = !0;
- }
- }
- function assertCallable(fn, hint) {
- if ("function" != typeof fn) throw new TypeError(hint + " must be a function");
- }
- function assertValidReturnValue(kind, value) {
- var type = _typeof(value);
- if (1 === kind) {
- if ("object" !== type || null === value) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
- void 0 !== value.get && assertCallable(value.get, "accessor.get"), void 0 !== value.set && assertCallable(value.set, "accessor.set"), void 0 !== value.init && assertCallable(value.init, "accessor.init");
- } else if ("function" !== type) {
- var hint;
- throw hint = 0 === kind ? "field" : 10 === kind ? "class" : "method", new TypeError(hint + " decorators must return a function or void 0");
- }
- }
- function applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, initializers) {
- var desc,
- init,
- value,
- newValue,
- get,
- set,
- decs = decInfo[0];
- if (isPrivate ? desc = 0 === kind || 1 === kind ? {
- get: decInfo[3],
- set: decInfo[4]
- } : 3 === kind ? {
- get: decInfo[3]
- } : 4 === kind ? {
- set: decInfo[3]
- } : {
- value: decInfo[3]
- } : 0 !== kind && (desc = Object.getOwnPropertyDescriptor(base, name)), 1 === kind ? value = {
- get: desc.get,
- set: desc.set
- } : 2 === kind ? value = desc.value : 3 === kind ? value = desc.get : 4 === kind && (value = desc.set), "function" == typeof decs) void 0 !== (newValue = memberDec(decs, name, desc, initializers, kind, isStatic, isPrivate, value)) && (assertValidReturnValue(kind, newValue), 0 === kind ? init = newValue : 1 === kind ? (init = newValue.init, get = newValue.get || value.get, set = newValue.set || value.set, value = {
- get: get,
- set: set
- }) : value = newValue);else for (var i = decs.length - 1; i >= 0; i--) {
- var newInit;
- if (void 0 !== (newValue = memberDec(decs[i], name, desc, initializers, kind, isStatic, isPrivate, value))) assertValidReturnValue(kind, newValue), 0 === kind ? newInit = newValue : 1 === kind ? (newInit = newValue.init, get = newValue.get || value.get, set = newValue.set || value.set, value = {
- get: get,
- set: set
- }) : value = newValue, void 0 !== newInit && (void 0 === init ? init = newInit : "function" == typeof init ? init = [init, newInit] : init.push(newInit));
- }
- if (0 === kind || 1 === kind) {
- if (void 0 === init) init = function init(instance, _init) {
- return _init;
- };else if ("function" != typeof init) {
- var ownInitializers = init;
- init = function init(instance, _init2) {
- for (var value = _init2, i = 0; i < ownInitializers.length; i++) value = ownInitializers[i].call(instance, value);
- return value;
- };
- } else {
- var originalInitializer = init;
- init = function init(instance, _init3) {
- return originalInitializer.call(instance, _init3);
- };
- }
- ret.push(init);
- }
- 0 !== kind && (1 === kind ? (desc.get = value.get, desc.set = value.set) : 2 === kind ? desc.value = value : 3 === kind ? desc.get = value : 4 === kind && (desc.set = value), isPrivate ? 1 === kind ? (ret.push(function (instance, args) {
- return value.get.call(instance, args);
- }), ret.push(function (instance, args) {
- return value.set.call(instance, args);
- })) : 2 === kind ? ret.push(value) : ret.push(function (instance, args) {
- return value.call(instance, args);
- }) : Object.defineProperty(base, name, desc));
- }
- function pushInitializers(ret, initializers) {
- initializers && ret.push(function (instance) {
- for (var i = 0; i < initializers.length; i++) initializers[i].call(instance);
- return instance;
- });
- }
- return function (targetClass, memberDecs, classDecs) {
- var ret = [];
- return function (ret, Class, decInfos) {
- for (var protoInitializers, staticInitializers, existingProtoNonFields = new Map(), existingStaticNonFields = new Map(), i = 0; i < decInfos.length; i++) {
- var decInfo = decInfos[i];
- if (Array.isArray(decInfo)) {
- var base,
- initializers,
- kind = decInfo[1],
- name = decInfo[2],
- isPrivate = decInfo.length > 3,
- isStatic = kind >= 5;
- if (isStatic ? (base = Class, 0 != (kind -= 5) && (initializers = staticInitializers = staticInitializers || [])) : (base = Class.prototype, 0 !== kind && (initializers = protoInitializers = protoInitializers || [])), 0 !== kind && !isPrivate) {
- var existingNonFields = isStatic ? existingStaticNonFields : existingProtoNonFields,
- existingKind = existingNonFields.get(name) || 0;
- if (!0 === existingKind || 3 === existingKind && 4 !== kind || 4 === existingKind && 3 !== kind) throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + name);
- !existingKind && kind > 2 ? existingNonFields.set(name, kind) : existingNonFields.set(name, !0);
- }
- applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, initializers);
- }
- }
- pushInitializers(ret, protoInitializers), pushInitializers(ret, staticInitializers);
- }(ret, targetClass, memberDecs), function (ret, targetClass, classDecs) {
- if (classDecs.length > 0) {
- for (var initializers = [], newClass = targetClass, name = targetClass.name, i = classDecs.length - 1; i >= 0; i--) {
- var decoratorFinishedRef = {
- v: !1
- };
- try {
- var nextNewClass = classDecs[i](newClass, {
- kind: "class",
- name: name,
- addInitializer: createAddInitializerMethod(initializers, decoratorFinishedRef)
- });
- } finally {
- decoratorFinishedRef.v = !0;
- }
- void 0 !== nextNewClass && (assertValidReturnValue(10, nextNewClass), newClass = nextNewClass);
- }
- ret.push(newClass, function () {
- for (var i = 0; i < initializers.length; i++) initializers[i].call(newClass);
- });
- }
- }(ret, targetClass, classDecs), ret;
- };
-}
-var applyDecs2203Impl;
-export default function applyDecs2203(targetClass, memberDecs, classDecs) {
- return (applyDecs2203Impl = applyDecs2203Impl || applyDecs2203Factory())(targetClass, memberDecs, classDecs);
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/applyDecs2203R.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/applyDecs2203R.js
deleted file mode 100755
index ed1bc2034..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/applyDecs2203R.js
+++ /dev/null
@@ -1,190 +0,0 @@
-import _typeof from "./typeof.js";
-function applyDecs2203RFactory() {
- function createAddInitializerMethod(initializers, decoratorFinishedRef) {
- return function (initializer) {
- !function (decoratorFinishedRef, fnName) {
- if (decoratorFinishedRef.v) throw new Error("attempted to call " + fnName + " after decoration was finished");
- }(decoratorFinishedRef, "addInitializer"), assertCallable(initializer, "An initializer"), initializers.push(initializer);
- };
- }
- function memberDec(dec, name, desc, initializers, kind, isStatic, isPrivate, value) {
- var kindStr;
- switch (kind) {
- case 1:
- kindStr = "accessor";
- break;
- case 2:
- kindStr = "method";
- break;
- case 3:
- kindStr = "getter";
- break;
- case 4:
- kindStr = "setter";
- break;
- default:
- kindStr = "field";
- }
- var get,
- set,
- ctx = {
- kind: kindStr,
- name: isPrivate ? "#" + name : name,
- "static": isStatic,
- "private": isPrivate
- },
- decoratorFinishedRef = {
- v: !1
- };
- 0 !== kind && (ctx.addInitializer = createAddInitializerMethod(initializers, decoratorFinishedRef)), 0 === kind ? isPrivate ? (get = desc.get, set = desc.set) : (get = function get() {
- return this[name];
- }, set = function set(v) {
- this[name] = v;
- }) : 2 === kind ? get = function get() {
- return desc.value;
- } : (1 !== kind && 3 !== kind || (get = function get() {
- return desc.get.call(this);
- }), 1 !== kind && 4 !== kind || (set = function set(v) {
- desc.set.call(this, v);
- })), ctx.access = get && set ? {
- get: get,
- set: set
- } : get ? {
- get: get
- } : {
- set: set
- };
- try {
- return dec(value, ctx);
- } finally {
- decoratorFinishedRef.v = !0;
- }
- }
- function assertCallable(fn, hint) {
- if ("function" != typeof fn) throw new TypeError(hint + " must be a function");
- }
- function assertValidReturnValue(kind, value) {
- var type = _typeof(value);
- if (1 === kind) {
- if ("object" !== type || null === value) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
- void 0 !== value.get && assertCallable(value.get, "accessor.get"), void 0 !== value.set && assertCallable(value.set, "accessor.set"), void 0 !== value.init && assertCallable(value.init, "accessor.init");
- } else if ("function" !== type) {
- var hint;
- throw hint = 0 === kind ? "field" : 10 === kind ? "class" : "method", new TypeError(hint + " decorators must return a function or void 0");
- }
- }
- function applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, initializers) {
- var desc,
- init,
- value,
- newValue,
- get,
- set,
- decs = decInfo[0];
- if (isPrivate ? desc = 0 === kind || 1 === kind ? {
- get: decInfo[3],
- set: decInfo[4]
- } : 3 === kind ? {
- get: decInfo[3]
- } : 4 === kind ? {
- set: decInfo[3]
- } : {
- value: decInfo[3]
- } : 0 !== kind && (desc = Object.getOwnPropertyDescriptor(base, name)), 1 === kind ? value = {
- get: desc.get,
- set: desc.set
- } : 2 === kind ? value = desc.value : 3 === kind ? value = desc.get : 4 === kind && (value = desc.set), "function" == typeof decs) void 0 !== (newValue = memberDec(decs, name, desc, initializers, kind, isStatic, isPrivate, value)) && (assertValidReturnValue(kind, newValue), 0 === kind ? init = newValue : 1 === kind ? (init = newValue.init, get = newValue.get || value.get, set = newValue.set || value.set, value = {
- get: get,
- set: set
- }) : value = newValue);else for (var i = decs.length - 1; i >= 0; i--) {
- var newInit;
- if (void 0 !== (newValue = memberDec(decs[i], name, desc, initializers, kind, isStatic, isPrivate, value))) assertValidReturnValue(kind, newValue), 0 === kind ? newInit = newValue : 1 === kind ? (newInit = newValue.init, get = newValue.get || value.get, set = newValue.set || value.set, value = {
- get: get,
- set: set
- }) : value = newValue, void 0 !== newInit && (void 0 === init ? init = newInit : "function" == typeof init ? init = [init, newInit] : init.push(newInit));
- }
- if (0 === kind || 1 === kind) {
- if (void 0 === init) init = function init(instance, _init) {
- return _init;
- };else if ("function" != typeof init) {
- var ownInitializers = init;
- init = function init(instance, _init2) {
- for (var value = _init2, i = 0; i < ownInitializers.length; i++) value = ownInitializers[i].call(instance, value);
- return value;
- };
- } else {
- var originalInitializer = init;
- init = function init(instance, _init3) {
- return originalInitializer.call(instance, _init3);
- };
- }
- ret.push(init);
- }
- 0 !== kind && (1 === kind ? (desc.get = value.get, desc.set = value.set) : 2 === kind ? desc.value = value : 3 === kind ? desc.get = value : 4 === kind && (desc.set = value), isPrivate ? 1 === kind ? (ret.push(function (instance, args) {
- return value.get.call(instance, args);
- }), ret.push(function (instance, args) {
- return value.set.call(instance, args);
- })) : 2 === kind ? ret.push(value) : ret.push(function (instance, args) {
- return value.call(instance, args);
- }) : Object.defineProperty(base, name, desc));
- }
- function applyMemberDecs(Class, decInfos) {
- for (var protoInitializers, staticInitializers, ret = [], existingProtoNonFields = new Map(), existingStaticNonFields = new Map(), i = 0; i < decInfos.length; i++) {
- var decInfo = decInfos[i];
- if (Array.isArray(decInfo)) {
- var base,
- initializers,
- kind = decInfo[1],
- name = decInfo[2],
- isPrivate = decInfo.length > 3,
- isStatic = kind >= 5;
- if (isStatic ? (base = Class, 0 !== (kind -= 5) && (initializers = staticInitializers = staticInitializers || [])) : (base = Class.prototype, 0 !== kind && (initializers = protoInitializers = protoInitializers || [])), 0 !== kind && !isPrivate) {
- var existingNonFields = isStatic ? existingStaticNonFields : existingProtoNonFields,
- existingKind = existingNonFields.get(name) || 0;
- if (!0 === existingKind || 3 === existingKind && 4 !== kind || 4 === existingKind && 3 !== kind) throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + name);
- !existingKind && kind > 2 ? existingNonFields.set(name, kind) : existingNonFields.set(name, !0);
- }
- applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, initializers);
- }
- }
- return pushInitializers(ret, protoInitializers), pushInitializers(ret, staticInitializers), ret;
- }
- function pushInitializers(ret, initializers) {
- initializers && ret.push(function (instance) {
- for (var i = 0; i < initializers.length; i++) initializers[i].call(instance);
- return instance;
- });
- }
- return function (targetClass, memberDecs, classDecs) {
- return {
- e: applyMemberDecs(targetClass, memberDecs),
- get c() {
- return function (targetClass, classDecs) {
- if (classDecs.length > 0) {
- for (var initializers = [], newClass = targetClass, name = targetClass.name, i = classDecs.length - 1; i >= 0; i--) {
- var decoratorFinishedRef = {
- v: !1
- };
- try {
- var nextNewClass = classDecs[i](newClass, {
- kind: "class",
- name: name,
- addInitializer: createAddInitializerMethod(initializers, decoratorFinishedRef)
- });
- } finally {
- decoratorFinishedRef.v = !0;
- }
- void 0 !== nextNewClass && (assertValidReturnValue(10, nextNewClass), newClass = nextNewClass);
- }
- return [newClass, function () {
- for (var i = 0; i < initializers.length; i++) initializers[i].call(newClass);
- }];
- }
- }(targetClass, classDecs);
- }
- };
- };
-}
-export default function applyDecs2203R(targetClass, memberDecs, classDecs) {
- return (applyDecs2203R = applyDecs2203RFactory())(targetClass, memberDecs, classDecs);
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/applyDecs2301.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/applyDecs2301.js
deleted file mode 100755
index c0e612bb1..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/applyDecs2301.js
+++ /dev/null
@@ -1,221 +0,0 @@
-import _typeof from "./typeof.js";
-import checkInRHS from "./checkInRHS.js";
-function applyDecs2301Factory() {
- function createAddInitializerMethod(initializers, decoratorFinishedRef) {
- return function (initializer) {
- !function (decoratorFinishedRef, fnName) {
- if (decoratorFinishedRef.v) throw new Error("attempted to call " + fnName + " after decoration was finished");
- }(decoratorFinishedRef, "addInitializer"), assertCallable(initializer, "An initializer"), initializers.push(initializer);
- };
- }
- function assertInstanceIfPrivate(has, target) {
- if (!has(target)) throw new TypeError("Attempted to access private element on non-instance");
- }
- function memberDec(dec, name, desc, initializers, kind, isStatic, isPrivate, value, hasPrivateBrand) {
- var kindStr;
- switch (kind) {
- case 1:
- kindStr = "accessor";
- break;
- case 2:
- kindStr = "method";
- break;
- case 3:
- kindStr = "getter";
- break;
- case 4:
- kindStr = "setter";
- break;
- default:
- kindStr = "field";
- }
- var get,
- set,
- ctx = {
- kind: kindStr,
- name: isPrivate ? "#" + name : name,
- "static": isStatic,
- "private": isPrivate
- },
- decoratorFinishedRef = {
- v: !1
- };
- if (0 !== kind && (ctx.addInitializer = createAddInitializerMethod(initializers, decoratorFinishedRef)), isPrivate || 0 !== kind && 2 !== kind) {
- if (2 === kind) get = function get(target) {
- return assertInstanceIfPrivate(hasPrivateBrand, target), desc.value;
- };else {
- var t = 0 === kind || 1 === kind;
- (t || 3 === kind) && (get = isPrivate ? function (target) {
- return assertInstanceIfPrivate(hasPrivateBrand, target), desc.get.call(target);
- } : function (target) {
- return desc.get.call(target);
- }), (t || 4 === kind) && (set = isPrivate ? function (target, value) {
- assertInstanceIfPrivate(hasPrivateBrand, target), desc.set.call(target, value);
- } : function (target, value) {
- desc.set.call(target, value);
- });
- }
- } else get = function get(target) {
- return target[name];
- }, 0 === kind && (set = function set(target, v) {
- target[name] = v;
- });
- var has = isPrivate ? hasPrivateBrand.bind() : function (target) {
- return name in target;
- };
- ctx.access = get && set ? {
- get: get,
- set: set,
- has: has
- } : get ? {
- get: get,
- has: has
- } : {
- set: set,
- has: has
- };
- try {
- return dec(value, ctx);
- } finally {
- decoratorFinishedRef.v = !0;
- }
- }
- function assertCallable(fn, hint) {
- if ("function" != typeof fn) throw new TypeError(hint + " must be a function");
- }
- function assertValidReturnValue(kind, value) {
- var type = _typeof(value);
- if (1 === kind) {
- if ("object" !== type || null === value) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
- void 0 !== value.get && assertCallable(value.get, "accessor.get"), void 0 !== value.set && assertCallable(value.set, "accessor.set"), void 0 !== value.init && assertCallable(value.init, "accessor.init");
- } else if ("function" !== type) {
- var hint;
- throw hint = 0 === kind ? "field" : 10 === kind ? "class" : "method", new TypeError(hint + " decorators must return a function or void 0");
- }
- }
- function curryThis2(fn) {
- return function (value) {
- fn(this, value);
- };
- }
- function applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, initializers, hasPrivateBrand) {
- var desc,
- init,
- value,
- fn,
- newValue,
- get,
- set,
- decs = decInfo[0];
- if (isPrivate ? desc = 0 === kind || 1 === kind ? {
- get: (fn = decInfo[3], function () {
- return fn(this);
- }),
- set: curryThis2(decInfo[4])
- } : 3 === kind ? {
- get: decInfo[3]
- } : 4 === kind ? {
- set: decInfo[3]
- } : {
- value: decInfo[3]
- } : 0 !== kind && (desc = Object.getOwnPropertyDescriptor(base, name)), 1 === kind ? value = {
- get: desc.get,
- set: desc.set
- } : 2 === kind ? value = desc.value : 3 === kind ? value = desc.get : 4 === kind && (value = desc.set), "function" == typeof decs) void 0 !== (newValue = memberDec(decs, name, desc, initializers, kind, isStatic, isPrivate, value, hasPrivateBrand)) && (assertValidReturnValue(kind, newValue), 0 === kind ? init = newValue : 1 === kind ? (init = newValue.init, get = newValue.get || value.get, set = newValue.set || value.set, value = {
- get: get,
- set: set
- }) : value = newValue);else for (var i = decs.length - 1; i >= 0; i--) {
- var newInit;
- if (void 0 !== (newValue = memberDec(decs[i], name, desc, initializers, kind, isStatic, isPrivate, value, hasPrivateBrand))) assertValidReturnValue(kind, newValue), 0 === kind ? newInit = newValue : 1 === kind ? (newInit = newValue.init, get = newValue.get || value.get, set = newValue.set || value.set, value = {
- get: get,
- set: set
- }) : value = newValue, void 0 !== newInit && (void 0 === init ? init = newInit : "function" == typeof init ? init = [init, newInit] : init.push(newInit));
- }
- if (0 === kind || 1 === kind) {
- if (void 0 === init) init = function init(instance, _init) {
- return _init;
- };else if ("function" != typeof init) {
- var ownInitializers = init;
- init = function init(instance, _init2) {
- for (var value = _init2, i = 0; i < ownInitializers.length; i++) value = ownInitializers[i].call(instance, value);
- return value;
- };
- } else {
- var originalInitializer = init;
- init = function init(instance, _init3) {
- return originalInitializer.call(instance, _init3);
- };
- }
- ret.push(init);
- }
- 0 !== kind && (1 === kind ? (desc.get = value.get, desc.set = value.set) : 2 === kind ? desc.value = value : 3 === kind ? desc.get = value : 4 === kind && (desc.set = value), isPrivate ? 1 === kind ? (ret.push(function (instance, args) {
- return value.get.call(instance, args);
- }), ret.push(function (instance, args) {
- return value.set.call(instance, args);
- })) : 2 === kind ? ret.push(value) : ret.push(function (instance, args) {
- return value.call(instance, args);
- }) : Object.defineProperty(base, name, desc));
- }
- function applyMemberDecs(Class, decInfos, instanceBrand) {
- for (var protoInitializers, staticInitializers, staticBrand, ret = [], existingProtoNonFields = new Map(), existingStaticNonFields = new Map(), i = 0; i < decInfos.length; i++) {
- var decInfo = decInfos[i];
- if (Array.isArray(decInfo)) {
- var base,
- initializers,
- kind = decInfo[1],
- name = decInfo[2],
- isPrivate = decInfo.length > 3,
- isStatic = kind >= 5,
- hasPrivateBrand = instanceBrand;
- if (isStatic ? (base = Class, 0 !== (kind -= 5) && (initializers = staticInitializers = staticInitializers || []), isPrivate && !staticBrand && (staticBrand = function staticBrand(_) {
- return checkInRHS(_) === Class;
- }), hasPrivateBrand = staticBrand) : (base = Class.prototype, 0 !== kind && (initializers = protoInitializers = protoInitializers || [])), 0 !== kind && !isPrivate) {
- var existingNonFields = isStatic ? existingStaticNonFields : existingProtoNonFields,
- existingKind = existingNonFields.get(name) || 0;
- if (!0 === existingKind || 3 === existingKind && 4 !== kind || 4 === existingKind && 3 !== kind) throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + name);
- !existingKind && kind > 2 ? existingNonFields.set(name, kind) : existingNonFields.set(name, !0);
- }
- applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, initializers, hasPrivateBrand);
- }
- }
- return pushInitializers(ret, protoInitializers), pushInitializers(ret, staticInitializers), ret;
- }
- function pushInitializers(ret, initializers) {
- initializers && ret.push(function (instance) {
- for (var i = 0; i < initializers.length; i++) initializers[i].call(instance);
- return instance;
- });
- }
- return function (targetClass, memberDecs, classDecs, instanceBrand) {
- return {
- e: applyMemberDecs(targetClass, memberDecs, instanceBrand),
- get c() {
- return function (targetClass, classDecs) {
- if (classDecs.length > 0) {
- for (var initializers = [], newClass = targetClass, name = targetClass.name, i = classDecs.length - 1; i >= 0; i--) {
- var decoratorFinishedRef = {
- v: !1
- };
- try {
- var nextNewClass = classDecs[i](newClass, {
- kind: "class",
- name: name,
- addInitializer: createAddInitializerMethod(initializers, decoratorFinishedRef)
- });
- } finally {
- decoratorFinishedRef.v = !0;
- }
- void 0 !== nextNewClass && (assertValidReturnValue(10, nextNewClass), newClass = nextNewClass);
- }
- return [newClass, function () {
- for (var i = 0; i < initializers.length; i++) initializers[i].call(newClass);
- }];
- }
- }(targetClass, classDecs);
- }
- };
- };
-}
-export default function applyDecs2301(targetClass, memberDecs, classDecs, instanceBrand) {
- return (applyDecs2301 = applyDecs2301Factory())(targetClass, memberDecs, classDecs, instanceBrand);
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/applyDecs2305.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/applyDecs2305.js
deleted file mode 100755
index 95e8b23ce..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/applyDecs2305.js
+++ /dev/null
@@ -1,219 +0,0 @@
-import _typeof from "./typeof.js";
-import checkInRHS from "./checkInRHS.js";
-function createAddInitializerMethod(initializers, decoratorFinishedRef) {
- return function (initializer) {
- assertNotFinished(decoratorFinishedRef, "addInitializer"), assertCallable(initializer, "An initializer"), initializers.push(initializer);
- };
-}
-function assertInstanceIfPrivate(has, target) {
- if (!has(target)) throw new TypeError("Attempted to access private element on non-instance");
-}
-function memberDec(dec, thisArg, name, desc, initializers, kind, isStatic, isPrivate, value, hasPrivateBrand) {
- var kindStr;
- switch (kind) {
- case 1:
- kindStr = "accessor";
- break;
- case 2:
- kindStr = "method";
- break;
- case 3:
- kindStr = "getter";
- break;
- case 4:
- kindStr = "setter";
- break;
- default:
- kindStr = "field";
- }
- var get,
- set,
- ctx = {
- kind: kindStr,
- name: isPrivate ? "#" + name : name,
- "static": isStatic,
- "private": isPrivate
- },
- decoratorFinishedRef = {
- v: !1
- };
- if (0 !== kind && (ctx.addInitializer = createAddInitializerMethod(initializers, decoratorFinishedRef)), isPrivate || 0 !== kind && 2 !== kind) {
- if (2 === kind) get = function get(target) {
- return assertInstanceIfPrivate(hasPrivateBrand, target), desc.value;
- };else {
- var t = 0 === kind || 1 === kind;
- (t || 3 === kind) && (get = isPrivate ? function (target) {
- return assertInstanceIfPrivate(hasPrivateBrand, target), desc.get.call(target);
- } : function (target) {
- return desc.get.call(target);
- }), (t || 4 === kind) && (set = isPrivate ? function (target, value) {
- assertInstanceIfPrivate(hasPrivateBrand, target), desc.set.call(target, value);
- } : function (target, value) {
- desc.set.call(target, value);
- });
- }
- } else get = function get(target) {
- return target[name];
- }, 0 === kind && (set = function set(target, v) {
- target[name] = v;
- });
- var has = isPrivate ? hasPrivateBrand.bind() : function (target) {
- return name in target;
- };
- ctx.access = get && set ? {
- get: get,
- set: set,
- has: has
- } : get ? {
- get: get,
- has: has
- } : {
- set: set,
- has: has
- };
- try {
- return dec.call(thisArg, value, ctx);
- } finally {
- decoratorFinishedRef.v = !0;
- }
-}
-function assertNotFinished(decoratorFinishedRef, fnName) {
- if (decoratorFinishedRef.v) throw new Error("attempted to call " + fnName + " after decoration was finished");
-}
-function assertCallable(fn, hint) {
- if ("function" != typeof fn) throw new TypeError(hint + " must be a function");
-}
-function assertValidReturnValue(kind, value) {
- var type = _typeof(value);
- if (1 === kind) {
- if ("object" !== type || null === value) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
- void 0 !== value.get && assertCallable(value.get, "accessor.get"), void 0 !== value.set && assertCallable(value.set, "accessor.set"), void 0 !== value.init && assertCallable(value.init, "accessor.init");
- } else if ("function" !== type) {
- var hint;
- throw hint = 0 === kind ? "field" : 5 === kind ? "class" : "method", new TypeError(hint + " decorators must return a function or void 0");
- }
-}
-function curryThis1(fn) {
- return function () {
- return fn(this);
- };
-}
-function curryThis2(fn) {
- return function (value) {
- fn(this, value);
- };
-}
-function applyMemberDec(ret, base, decInfo, decoratorsHaveThis, name, kind, isStatic, isPrivate, initializers, hasPrivateBrand) {
- var desc,
- init,
- value,
- newValue,
- get,
- set,
- decs = decInfo[0];
- decoratorsHaveThis || Array.isArray(decs) || (decs = [decs]), isPrivate ? desc = 0 === kind || 1 === kind ? {
- get: curryThis1(decInfo[3]),
- set: curryThis2(decInfo[4])
- } : 3 === kind ? {
- get: decInfo[3]
- } : 4 === kind ? {
- set: decInfo[3]
- } : {
- value: decInfo[3]
- } : 0 !== kind && (desc = Object.getOwnPropertyDescriptor(base, name)), 1 === kind ? value = {
- get: desc.get,
- set: desc.set
- } : 2 === kind ? value = desc.value : 3 === kind ? value = desc.get : 4 === kind && (value = desc.set);
- for (var inc = decoratorsHaveThis ? 2 : 1, i = decs.length - 1; i >= 0; i -= inc) {
- var newInit;
- if (void 0 !== (newValue = memberDec(decs[i], decoratorsHaveThis ? decs[i - 1] : void 0, name, desc, initializers, kind, isStatic, isPrivate, value, hasPrivateBrand))) assertValidReturnValue(kind, newValue), 0 === kind ? newInit = newValue : 1 === kind ? (newInit = newValue.init, get = newValue.get || value.get, set = newValue.set || value.set, value = {
- get: get,
- set: set
- }) : value = newValue, void 0 !== newInit && (void 0 === init ? init = newInit : "function" == typeof init ? init = [init, newInit] : init.push(newInit));
- }
- if (0 === kind || 1 === kind) {
- if (void 0 === init) init = function init(instance, _init) {
- return _init;
- };else if ("function" != typeof init) {
- var ownInitializers = init;
- init = function init(instance, _init2) {
- for (var value = _init2, i = ownInitializers.length - 1; i >= 0; i--) value = ownInitializers[i].call(instance, value);
- return value;
- };
- } else {
- var originalInitializer = init;
- init = function init(instance, _init3) {
- return originalInitializer.call(instance, _init3);
- };
- }
- ret.push(init);
- }
- 0 !== kind && (1 === kind ? (desc.get = value.get, desc.set = value.set) : 2 === kind ? desc.value = value : 3 === kind ? desc.get = value : 4 === kind && (desc.set = value), isPrivate ? 1 === kind ? (ret.push(function (instance, args) {
- return value.get.call(instance, args);
- }), ret.push(function (instance, args) {
- return value.set.call(instance, args);
- })) : 2 === kind ? ret.push(value) : ret.push(function (instance, args) {
- return value.call(instance, args);
- }) : Object.defineProperty(base, name, desc));
-}
-function applyMemberDecs(Class, decInfos, instanceBrand) {
- for (var protoInitializers, staticInitializers, staticBrand, ret = [], existingProtoNonFields = new Map(), existingStaticNonFields = new Map(), i = 0; i < decInfos.length; i++) {
- var decInfo = decInfos[i];
- if (Array.isArray(decInfo)) {
- var base,
- initializers,
- kind = decInfo[1],
- name = decInfo[2],
- isPrivate = decInfo.length > 3,
- decoratorsHaveThis = 16 & kind,
- isStatic = !!(8 & kind),
- hasPrivateBrand = instanceBrand;
- if (kind &= 7, isStatic ? (base = Class, 0 !== kind && (initializers = staticInitializers = staticInitializers || []), isPrivate && !staticBrand && (staticBrand = function staticBrand(_) {
- return checkInRHS(_) === Class;
- }), hasPrivateBrand = staticBrand) : (base = Class.prototype, 0 !== kind && (initializers = protoInitializers = protoInitializers || [])), 0 !== kind && !isPrivate) {
- var existingNonFields = isStatic ? existingStaticNonFields : existingProtoNonFields,
- existingKind = existingNonFields.get(name) || 0;
- if (!0 === existingKind || 3 === existingKind && 4 !== kind || 4 === existingKind && 3 !== kind) throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + name);
- existingNonFields.set(name, !(!existingKind && kind > 2) || kind);
- }
- applyMemberDec(ret, base, decInfo, decoratorsHaveThis, name, kind, isStatic, isPrivate, initializers, hasPrivateBrand);
- }
- }
- return pushInitializers(ret, protoInitializers), pushInitializers(ret, staticInitializers), ret;
-}
-function pushInitializers(ret, initializers) {
- initializers && ret.push(function (instance) {
- for (var i = 0; i < initializers.length; i++) initializers[i].call(instance);
- return instance;
- });
-}
-function applyClassDecs(targetClass, classDecs, decoratorsHaveThis) {
- if (classDecs.length) {
- for (var initializers = [], newClass = targetClass, name = targetClass.name, inc = decoratorsHaveThis ? 2 : 1, i = classDecs.length - 1; i >= 0; i -= inc) {
- var decoratorFinishedRef = {
- v: !1
- };
- try {
- var nextNewClass = classDecs[i].call(decoratorsHaveThis ? classDecs[i - 1] : void 0, newClass, {
- kind: "class",
- name: name,
- addInitializer: createAddInitializerMethod(initializers, decoratorFinishedRef)
- });
- } finally {
- decoratorFinishedRef.v = !0;
- }
- void 0 !== nextNewClass && (assertValidReturnValue(5, nextNewClass), newClass = nextNewClass);
- }
- return [newClass, function () {
- for (var i = 0; i < initializers.length; i++) initializers[i].call(newClass);
- }];
- }
-}
-export default function applyDecs2305(targetClass, memberDecs, classDecs, classDecsHaveThis, instanceBrand) {
- return {
- e: applyMemberDecs(targetClass, memberDecs, instanceBrand),
- get c() {
- return applyClassDecs(targetClass, classDecs, classDecsHaveThis);
- }
- };
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
deleted file mode 100755
index 8a9fad8ab..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export default function _arrayLikeToArray(arr, len) {
- if (len == null || len > arr.length) len = arr.length;
- for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
- return arr2;
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js
deleted file mode 100755
index be734fc38..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _arrayWithHoles(arr) {
- if (Array.isArray(arr)) return arr;
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js
deleted file mode 100755
index f7d8dc781..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import arrayLikeToArray from "./arrayLikeToArray.js";
-export default function _arrayWithoutHoles(arr) {
- if (Array.isArray(arr)) return arrayLikeToArray(arr);
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js
deleted file mode 100755
index 1f8fcf4b5..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js
+++ /dev/null
@@ -1,6 +0,0 @@
-export default function _assertThisInitialized(self) {
- if (self === void 0) {
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
- }
- return self;
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/asyncGeneratorDelegate.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/asyncGeneratorDelegate.js
deleted file mode 100755
index d393d55bb..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/asyncGeneratorDelegate.js
+++ /dev/null
@@ -1,23 +0,0 @@
-import OverloadYield from "./OverloadYield.js";
-export default function _asyncGeneratorDelegate(inner) {
- var iter = {},
- waiting = !1;
- function pump(key, value) {
- return waiting = !0, value = new Promise(function (resolve) {
- resolve(inner[key](value));
- }), {
- done: !1,
- value: new OverloadYield(value, 1)
- };
- }
- return iter["undefined" != typeof Symbol && Symbol.iterator || "@@iterator"] = function () {
- return this;
- }, iter.next = function (value) {
- return waiting ? (waiting = !1, value) : pump("next", value);
- }, "function" == typeof inner["throw"] && (iter["throw"] = function (value) {
- if (waiting) throw waiting = !1, value;
- return pump("throw", value);
- }), "function" == typeof inner["return"] && (iter["return"] = function (value) {
- return waiting ? (waiting = !1, value) : pump("return", value);
- }), iter;
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/asyncIterator.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/asyncIterator.js
deleted file mode 100755
index ae8aa397e..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/asyncIterator.js
+++ /dev/null
@@ -1,44 +0,0 @@
-export default function _asyncIterator(iterable) {
- var method,
- async,
- sync,
- retry = 2;
- for ("undefined" != typeof Symbol && (async = Symbol.asyncIterator, sync = Symbol.iterator); retry--;) {
- if (async && null != (method = iterable[async])) return method.call(iterable);
- if (sync && null != (method = iterable[sync])) return new AsyncFromSyncIterator(method.call(iterable));
- async = "@@asyncIterator", sync = "@@iterator";
- }
- throw new TypeError("Object is not async iterable");
-}
-function AsyncFromSyncIterator(s) {
- function AsyncFromSyncIteratorContinuation(r) {
- if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object."));
- var done = r.done;
- return Promise.resolve(r.value).then(function (value) {
- return {
- value: value,
- done: done
- };
- });
- }
- return AsyncFromSyncIterator = function AsyncFromSyncIterator(s) {
- this.s = s, this.n = s.next;
- }, AsyncFromSyncIterator.prototype = {
- s: null,
- n: null,
- next: function next() {
- return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments));
- },
- "return": function _return(value) {
- var ret = this.s["return"];
- return void 0 === ret ? Promise.resolve({
- value: value,
- done: !0
- }) : AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments));
- },
- "throw": function _throw(value) {
- var thr = this.s["return"];
- return void 0 === thr ? Promise.reject(value) : AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments));
- }
- }, new AsyncFromSyncIterator(s);
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js
deleted file mode 100755
index c37aa2c7a..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js
+++ /dev/null
@@ -1,30 +0,0 @@
-function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
- try {
- var info = gen[key](arg);
- var value = info.value;
- } catch (error) {
- reject(error);
- return;
- }
- if (info.done) {
- resolve(value);
- } else {
- Promise.resolve(value).then(_next, _throw);
- }
-}
-export default function _asyncToGenerator(fn) {
- return function () {
- var self = this,
- args = arguments;
- return new Promise(function (resolve, reject) {
- var gen = fn.apply(self, args);
- function _next(value) {
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
- }
- function _throw(err) {
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
- }
- _next(undefined);
- });
- };
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js
deleted file mode 100755
index cfa05220f..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import OverloadYield from "./OverloadYield.js";
-export default function _awaitAsyncGenerator(value) {
- return new OverloadYield(value, 0);
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/checkInRHS.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/checkInRHS.js
deleted file mode 100755
index 928d53d28..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/checkInRHS.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import _typeof from "./typeof.js";
-export default function _checkInRHS(value) {
- if (Object(value) !== value) throw TypeError("right-hand side of 'in' should be an object, got " + (null !== value ? _typeof(value) : "null"));
- return value;
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/checkPrivateRedeclaration.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/checkPrivateRedeclaration.js
deleted file mode 100755
index 990140366..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/checkPrivateRedeclaration.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export default function _checkPrivateRedeclaration(obj, privateCollection) {
- if (privateCollection.has(obj)) {
- throw new TypeError("Cannot initialize the same private elements twice on an object");
- }
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorDestructureSet.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorDestructureSet.js
deleted file mode 100755
index 68684f238..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorDestructureSet.js
+++ /dev/null
@@ -1,17 +0,0 @@
-export default function _classApplyDescriptorDestructureSet(receiver, descriptor) {
- if (descriptor.set) {
- if (!("__destrObj" in descriptor)) {
- descriptor.__destrObj = {
- set value(v) {
- descriptor.set.call(receiver, v);
- }
- };
- }
- return descriptor.__destrObj;
- } else {
- if (!descriptor.writable) {
- throw new TypeError("attempted to set read only private field");
- }
- return descriptor;
- }
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js
deleted file mode 100755
index 727e9e9b8..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js
+++ /dev/null
@@ -1,6 +0,0 @@
-export default function _classApplyDescriptorGet(receiver, descriptor) {
- if (descriptor.get) {
- return descriptor.get.call(receiver);
- }
- return descriptor.value;
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js
deleted file mode 100755
index b4df6d302..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js
+++ /dev/null
@@ -1,10 +0,0 @@
-export default function _classApplyDescriptorSet(receiver, descriptor, value) {
- if (descriptor.set) {
- descriptor.set.call(receiver, value);
- } else {
- if (!descriptor.writable) {
- throw new TypeError("attempted to set read only private field");
- }
- descriptor.value = value;
- }
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/classCallCheck.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/classCallCheck.js
deleted file mode 100755
index 2f1738a3d..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/classCallCheck.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export default function _classCallCheck(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticAccess.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticAccess.js
deleted file mode 100755
index 098ed3090..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticAccess.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export default function _classCheckPrivateStaticAccess(receiver, classConstructor) {
- if (receiver !== classConstructor) {
- throw new TypeError("Private static access of wrong provenance");
- }
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticFieldDescriptor.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticFieldDescriptor.js
deleted file mode 100755
index 0ef34b8d7..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticFieldDescriptor.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export default function _classCheckPrivateStaticFieldDescriptor(descriptor, action) {
- if (descriptor === undefined) {
- throw new TypeError("attempted to " + action + " private static field before its declaration");
- }
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/classExtractFieldDescriptor.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/classExtractFieldDescriptor.js
deleted file mode 100755
index 1a8d71bad..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/classExtractFieldDescriptor.js
+++ /dev/null
@@ -1,6 +0,0 @@
-export default function _classExtractFieldDescriptor(receiver, privateMap, action) {
- if (!privateMap.has(receiver)) {
- throw new TypeError("attempted to " + action + " private field on non-instance");
- }
- return privateMap.get(receiver);
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/classNameTDZError.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/classNameTDZError.js
deleted file mode 100755
index 46eea93ac..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/classNameTDZError.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _classNameTDZError(name) {
- throw new ReferenceError("Class \"" + name + "\" cannot be referenced in computed property keys.");
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/classPrivateFieldDestructureSet.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/classPrivateFieldDestructureSet.js
deleted file mode 100755
index fb5883369..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/classPrivateFieldDestructureSet.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import classApplyDescriptorDestructureSet from "./classApplyDescriptorDestructureSet.js";
-import classExtractFieldDescriptor from "./classExtractFieldDescriptor.js";
-export default function _classPrivateFieldDestructureSet(receiver, privateMap) {
- var descriptor = classExtractFieldDescriptor(receiver, privateMap, "set");
- return classApplyDescriptorDestructureSet(receiver, descriptor);
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js
deleted file mode 100755
index 53cd1379c..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import classApplyDescriptorGet from "./classApplyDescriptorGet.js";
-import classExtractFieldDescriptor from "./classExtractFieldDescriptor.js";
-export default function _classPrivateFieldGet(receiver, privateMap) {
- var descriptor = classExtractFieldDescriptor(receiver, privateMap, "get");
- return classApplyDescriptorGet(receiver, descriptor);
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/classPrivateFieldInitSpec.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/classPrivateFieldInitSpec.js
deleted file mode 100755
index 2253dd84f..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/classPrivateFieldInitSpec.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import checkPrivateRedeclaration from "./checkPrivateRedeclaration.js";
-export default function _classPrivateFieldInitSpec(obj, privateMap, value) {
- checkPrivateRedeclaration(obj, privateMap);
- privateMap.set(obj, value);
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseBase.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseBase.js
deleted file mode 100755
index 09e93304f..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseBase.js
+++ /dev/null
@@ -1,6 +0,0 @@
-export default function _classPrivateFieldBase(receiver, privateKey) {
- if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) {
- throw new TypeError("attempted to use private field on non-instance");
- }
- return receiver;
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseKey.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseKey.js
deleted file mode 100755
index 5b7e5ac02..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseKey.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var id = 0;
-export default function _classPrivateFieldKey(name) {
- return "__private_" + id++ + "_" + name;
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js
deleted file mode 100755
index ad91be440..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import classApplyDescriptorSet from "./classApplyDescriptorSet.js";
-import classExtractFieldDescriptor from "./classExtractFieldDescriptor.js";
-export default function _classPrivateFieldSet(receiver, privateMap, value) {
- var descriptor = classExtractFieldDescriptor(receiver, privateMap, "set");
- classApplyDescriptorSet(receiver, descriptor, value);
- return value;
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/classPrivateMethodGet.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/classPrivateMethodGet.js
deleted file mode 100755
index f32a3da81..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/classPrivateMethodGet.js
+++ /dev/null
@@ -1,6 +0,0 @@
-export default function _classPrivateMethodGet(receiver, privateSet, fn) {
- if (!privateSet.has(receiver)) {
- throw new TypeError("attempted to get private field on non-instance");
- }
- return fn;
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/classPrivateMethodInitSpec.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/classPrivateMethodInitSpec.js
deleted file mode 100755
index 18d129159..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/classPrivateMethodInitSpec.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import checkPrivateRedeclaration from "./checkPrivateRedeclaration.js";
-export default function _classPrivateMethodInitSpec(obj, privateSet) {
- checkPrivateRedeclaration(obj, privateSet);
- privateSet.add(obj);
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/classPrivateMethodSet.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/classPrivateMethodSet.js
deleted file mode 100755
index 2bbaf3a7a..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/classPrivateMethodSet.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _classPrivateMethodSet() {
- throw new TypeError("attempted to reassign private method");
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldDestructureSet.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldDestructureSet.js
deleted file mode 100755
index 77afcfb18..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldDestructureSet.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import classApplyDescriptorDestructureSet from "./classApplyDescriptorDestructureSet.js";
-import classCheckPrivateStaticAccess from "./classCheckPrivateStaticAccess.js";
-import classCheckPrivateStaticFieldDescriptor from "./classCheckPrivateStaticFieldDescriptor.js";
-export default function _classStaticPrivateFieldDestructureSet(receiver, classConstructor, descriptor) {
- classCheckPrivateStaticAccess(receiver, classConstructor);
- classCheckPrivateStaticFieldDescriptor(descriptor, "set");
- return classApplyDescriptorDestructureSet(receiver, descriptor);
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecGet.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecGet.js
deleted file mode 100755
index d253d3119..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecGet.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import classApplyDescriptorGet from "./classApplyDescriptorGet.js";
-import classCheckPrivateStaticAccess from "./classCheckPrivateStaticAccess.js";
-import classCheckPrivateStaticFieldDescriptor from "./classCheckPrivateStaticFieldDescriptor.js";
-export default function _classStaticPrivateFieldSpecGet(receiver, classConstructor, descriptor) {
- classCheckPrivateStaticAccess(receiver, classConstructor);
- classCheckPrivateStaticFieldDescriptor(descriptor, "get");
- return classApplyDescriptorGet(receiver, descriptor);
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecSet.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecSet.js
deleted file mode 100755
index b0b0cc644..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecSet.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import classApplyDescriptorSet from "./classApplyDescriptorSet.js";
-import classCheckPrivateStaticAccess from "./classCheckPrivateStaticAccess.js";
-import classCheckPrivateStaticFieldDescriptor from "./classCheckPrivateStaticFieldDescriptor.js";
-export default function _classStaticPrivateFieldSpecSet(receiver, classConstructor, descriptor, value) {
- classCheckPrivateStaticAccess(receiver, classConstructor);
- classCheckPrivateStaticFieldDescriptor(descriptor, "set");
- classApplyDescriptorSet(receiver, descriptor, value);
- return value;
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodGet.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodGet.js
deleted file mode 100755
index fddc7b2d8..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodGet.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import classCheckPrivateStaticAccess from "./classCheckPrivateStaticAccess.js";
-export default function _classStaticPrivateMethodGet(receiver, classConstructor, method) {
- classCheckPrivateStaticAccess(receiver, classConstructor);
- return method;
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodSet.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodSet.js
deleted file mode 100755
index d5ab60a97..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodSet.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _classStaticPrivateMethodSet() {
- throw new TypeError("attempted to set read only static private field");
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/construct.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/construct.js
deleted file mode 100755
index 3860bdd07..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/construct.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import setPrototypeOf from "./setPrototypeOf.js";
-import isNativeReflectConstruct from "./isNativeReflectConstruct.js";
-export default function _construct(Parent, args, Class) {
- if (isNativeReflectConstruct()) {
- _construct = Reflect.construct.bind();
- } else {
- _construct = function _construct(Parent, args, Class) {
- var a = [null];
- a.push.apply(a, args);
- var Constructor = Function.bind.apply(Parent, a);
- var instance = new Constructor();
- if (Class) setPrototypeOf(instance, Class.prototype);
- return instance;
- };
- }
- return _construct.apply(null, arguments);
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/createClass.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/createClass.js
deleted file mode 100755
index bbacdfec2..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/createClass.js
+++ /dev/null
@@ -1,18 +0,0 @@
-import toPropertyKey from "./toPropertyKey.js";
-function _defineProperties(target, props) {
- for (var i = 0; i < props.length; i++) {
- var descriptor = props[i];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor) descriptor.writable = true;
- Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);
- }
-}
-export default function _createClass(Constructor, protoProps, staticProps) {
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
- if (staticProps) _defineProperties(Constructor, staticProps);
- Object.defineProperty(Constructor, "prototype", {
- writable: false
- });
- return Constructor;
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js
deleted file mode 100755
index 5e0e0f190..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js
+++ /dev/null
@@ -1,52 +0,0 @@
-import unsupportedIterableToArray from "./unsupportedIterableToArray.js";
-export default function _createForOfIteratorHelper(o, allowArrayLike) {
- var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
- if (!it) {
- if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
- if (it) o = it;
- var i = 0;
- var F = function F() {};
- return {
- s: F,
- n: function n() {
- if (i >= o.length) return {
- done: true
- };
- return {
- done: false,
- value: o[i++]
- };
- },
- e: function e(_e) {
- throw _e;
- },
- f: F
- };
- }
- throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
- }
- var normalCompletion = true,
- didErr = false,
- err;
- return {
- s: function s() {
- it = it.call(o);
- },
- n: function n() {
- var step = it.next();
- normalCompletion = step.done;
- return step;
- },
- e: function e(_e2) {
- didErr = true;
- err = _e2;
- },
- f: function f() {
- try {
- if (!normalCompletion && it["return"] != null) it["return"]();
- } finally {
- if (didErr) throw err;
- }
- }
- };
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelperLoose.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelperLoose.js
deleted file mode 100755
index 043857dc9..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelperLoose.js
+++ /dev/null
@@ -1,19 +0,0 @@
-import unsupportedIterableToArray from "./unsupportedIterableToArray.js";
-export default function _createForOfIteratorHelperLoose(o, allowArrayLike) {
- var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
- if (it) return (it = it.call(o)).next.bind(it);
- if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
- if (it) o = it;
- var i = 0;
- return function () {
- if (i >= o.length) return {
- done: true
- };
- return {
- done: false,
- value: o[i++]
- };
- };
- }
- throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/createSuper.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/createSuper.js
deleted file mode 100755
index 7c9629763..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/createSuper.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import getPrototypeOf from "./getPrototypeOf.js";
-import isNativeReflectConstruct from "./isNativeReflectConstruct.js";
-import possibleConstructorReturn from "./possibleConstructorReturn.js";
-export default function _createSuper(Derived) {
- var hasNativeReflectConstruct = isNativeReflectConstruct();
- return function _createSuperInternal() {
- var Super = getPrototypeOf(Derived),
- result;
- if (hasNativeReflectConstruct) {
- var NewTarget = getPrototypeOf(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
- return possibleConstructorReturn(this, result);
- };
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/decorate.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/decorate.js
deleted file mode 100755
index e511dfe6e..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/decorate.js
+++ /dev/null
@@ -1,342 +0,0 @@
-import toArray from "./toArray.js";
-import toPropertyKey from "./toPropertyKey.js";
-export default function _decorate(decorators, factory, superClass, mixins) {
- var api = _getDecoratorsApi();
- if (mixins) {
- for (var i = 0; i < mixins.length; i++) {
- api = mixins[i](api);
- }
- }
- var r = factory(function initialize(O) {
- api.initializeInstanceElements(O, decorated.elements);
- }, superClass);
- var decorated = api.decorateClass(_coalesceClassElements(r.d.map(_createElementDescriptor)), decorators);
- api.initializeClassElements(r.F, decorated.elements);
- return api.runClassFinishers(r.F, decorated.finishers);
-}
-function _getDecoratorsApi() {
- _getDecoratorsApi = function _getDecoratorsApi() {
- return api;
- };
- var api = {
- elementsDefinitionOrder: [["method"], ["field"]],
- initializeInstanceElements: function initializeInstanceElements(O, elements) {
- ["method", "field"].forEach(function (kind) {
- elements.forEach(function (element) {
- if (element.kind === kind && element.placement === "own") {
- this.defineClassElement(O, element);
- }
- }, this);
- }, this);
- },
- initializeClassElements: function initializeClassElements(F, elements) {
- var proto = F.prototype;
- ["method", "field"].forEach(function (kind) {
- elements.forEach(function (element) {
- var placement = element.placement;
- if (element.kind === kind && (placement === "static" || placement === "prototype")) {
- var receiver = placement === "static" ? F : proto;
- this.defineClassElement(receiver, element);
- }
- }, this);
- }, this);
- },
- defineClassElement: function defineClassElement(receiver, element) {
- var descriptor = element.descriptor;
- if (element.kind === "field") {
- var initializer = element.initializer;
- descriptor = {
- enumerable: descriptor.enumerable,
- writable: descriptor.writable,
- configurable: descriptor.configurable,
- value: initializer === void 0 ? void 0 : initializer.call(receiver)
- };
- }
- Object.defineProperty(receiver, element.key, descriptor);
- },
- decorateClass: function decorateClass(elements, decorators) {
- var newElements = [];
- var finishers = [];
- var placements = {
- "static": [],
- prototype: [],
- own: []
- };
- elements.forEach(function (element) {
- this.addElementPlacement(element, placements);
- }, this);
- elements.forEach(function (element) {
- if (!_hasDecorators(element)) return newElements.push(element);
- var elementFinishersExtras = this.decorateElement(element, placements);
- newElements.push(elementFinishersExtras.element);
- newElements.push.apply(newElements, elementFinishersExtras.extras);
- finishers.push.apply(finishers, elementFinishersExtras.finishers);
- }, this);
- if (!decorators) {
- return {
- elements: newElements,
- finishers: finishers
- };
- }
- var result = this.decorateConstructor(newElements, decorators);
- finishers.push.apply(finishers, result.finishers);
- result.finishers = finishers;
- return result;
- },
- addElementPlacement: function addElementPlacement(element, placements, silent) {
- var keys = placements[element.placement];
- if (!silent && keys.indexOf(element.key) !== -1) {
- throw new TypeError("Duplicated element (" + element.key + ")");
- }
- keys.push(element.key);
- },
- decorateElement: function decorateElement(element, placements) {
- var extras = [];
- var finishers = [];
- for (var decorators = element.decorators, i = decorators.length - 1; i >= 0; i--) {
- var keys = placements[element.placement];
- keys.splice(keys.indexOf(element.key), 1);
- var elementObject = this.fromElementDescriptor(element);
- var elementFinisherExtras = this.toElementFinisherExtras((0, decorators[i])(elementObject) || elementObject);
- element = elementFinisherExtras.element;
- this.addElementPlacement(element, placements);
- if (elementFinisherExtras.finisher) {
- finishers.push(elementFinisherExtras.finisher);
- }
- var newExtras = elementFinisherExtras.extras;
- if (newExtras) {
- for (var j = 0; j < newExtras.length; j++) {
- this.addElementPlacement(newExtras[j], placements);
- }
- extras.push.apply(extras, newExtras);
- }
- }
- return {
- element: element,
- finishers: finishers,
- extras: extras
- };
- },
- decorateConstructor: function decorateConstructor(elements, decorators) {
- var finishers = [];
- for (var i = decorators.length - 1; i >= 0; i--) {
- var obj = this.fromClassDescriptor(elements);
- var elementsAndFinisher = this.toClassDescriptor((0, decorators[i])(obj) || obj);
- if (elementsAndFinisher.finisher !== undefined) {
- finishers.push(elementsAndFinisher.finisher);
- }
- if (elementsAndFinisher.elements !== undefined) {
- elements = elementsAndFinisher.elements;
- for (var j = 0; j < elements.length - 1; j++) {
- for (var k = j + 1; k < elements.length; k++) {
- if (elements[j].key === elements[k].key && elements[j].placement === elements[k].placement) {
- throw new TypeError("Duplicated element (" + elements[j].key + ")");
- }
- }
- }
- }
- }
- return {
- elements: elements,
- finishers: finishers
- };
- },
- fromElementDescriptor: function fromElementDescriptor(element) {
- var obj = {
- kind: element.kind,
- key: element.key,
- placement: element.placement,
- descriptor: element.descriptor
- };
- var desc = {
- value: "Descriptor",
- configurable: true
- };
- Object.defineProperty(obj, Symbol.toStringTag, desc);
- if (element.kind === "field") obj.initializer = element.initializer;
- return obj;
- },
- toElementDescriptors: function toElementDescriptors(elementObjects) {
- if (elementObjects === undefined) return;
- return toArray(elementObjects).map(function (elementObject) {
- var element = this.toElementDescriptor(elementObject);
- this.disallowProperty(elementObject, "finisher", "An element descriptor");
- this.disallowProperty(elementObject, "extras", "An element descriptor");
- return element;
- }, this);
- },
- toElementDescriptor: function toElementDescriptor(elementObject) {
- var kind = String(elementObject.kind);
- if (kind !== "method" && kind !== "field") {
- throw new TypeError('An element descriptor\'s .kind property must be either "method" or' + ' "field", but a decorator created an element descriptor with' + ' .kind "' + kind + '"');
- }
- var key = toPropertyKey(elementObject.key);
- var placement = String(elementObject.placement);
- if (placement !== "static" && placement !== "prototype" && placement !== "own") {
- throw new TypeError('An element descriptor\'s .placement property must be one of "static",' + ' "prototype" or "own", but a decorator created an element descriptor' + ' with .placement "' + placement + '"');
- }
- var descriptor = elementObject.descriptor;
- this.disallowProperty(elementObject, "elements", "An element descriptor");
- var element = {
- kind: kind,
- key: key,
- placement: placement,
- descriptor: Object.assign({}, descriptor)
- };
- if (kind !== "field") {
- this.disallowProperty(elementObject, "initializer", "A method descriptor");
- } else {
- this.disallowProperty(descriptor, "get", "The property descriptor of a field descriptor");
- this.disallowProperty(descriptor, "set", "The property descriptor of a field descriptor");
- this.disallowProperty(descriptor, "value", "The property descriptor of a field descriptor");
- element.initializer = elementObject.initializer;
- }
- return element;
- },
- toElementFinisherExtras: function toElementFinisherExtras(elementObject) {
- var element = this.toElementDescriptor(elementObject);
- var finisher = _optionalCallableProperty(elementObject, "finisher");
- var extras = this.toElementDescriptors(elementObject.extras);
- return {
- element: element,
- finisher: finisher,
- extras: extras
- };
- },
- fromClassDescriptor: function fromClassDescriptor(elements) {
- var obj = {
- kind: "class",
- elements: elements.map(this.fromElementDescriptor, this)
- };
- var desc = {
- value: "Descriptor",
- configurable: true
- };
- Object.defineProperty(obj, Symbol.toStringTag, desc);
- return obj;
- },
- toClassDescriptor: function toClassDescriptor(obj) {
- var kind = String(obj.kind);
- if (kind !== "class") {
- throw new TypeError('A class descriptor\'s .kind property must be "class", but a decorator' + ' created a class descriptor with .kind "' + kind + '"');
- }
- this.disallowProperty(obj, "key", "A class descriptor");
- this.disallowProperty(obj, "placement", "A class descriptor");
- this.disallowProperty(obj, "descriptor", "A class descriptor");
- this.disallowProperty(obj, "initializer", "A class descriptor");
- this.disallowProperty(obj, "extras", "A class descriptor");
- var finisher = _optionalCallableProperty(obj, "finisher");
- var elements = this.toElementDescriptors(obj.elements);
- return {
- elements: elements,
- finisher: finisher
- };
- },
- runClassFinishers: function runClassFinishers(constructor, finishers) {
- for (var i = 0; i < finishers.length; i++) {
- var newConstructor = (0, finishers[i])(constructor);
- if (newConstructor !== undefined) {
- if (typeof newConstructor !== "function") {
- throw new TypeError("Finishers must return a constructor.");
- }
- constructor = newConstructor;
- }
- }
- return constructor;
- },
- disallowProperty: function disallowProperty(obj, name, objectType) {
- if (obj[name] !== undefined) {
- throw new TypeError(objectType + " can't have a ." + name + " property.");
- }
- }
- };
- return api;
-}
-function _createElementDescriptor(def) {
- var key = toPropertyKey(def.key);
- var descriptor;
- if (def.kind === "method") {
- descriptor = {
- value: def.value,
- writable: true,
- configurable: true,
- enumerable: false
- };
- } else if (def.kind === "get") {
- descriptor = {
- get: def.value,
- configurable: true,
- enumerable: false
- };
- } else if (def.kind === "set") {
- descriptor = {
- set: def.value,
- configurable: true,
- enumerable: false
- };
- } else if (def.kind === "field") {
- descriptor = {
- configurable: true,
- writable: true,
- enumerable: true
- };
- }
- var element = {
- kind: def.kind === "field" ? "field" : "method",
- key: key,
- placement: def["static"] ? "static" : def.kind === "field" ? "own" : "prototype",
- descriptor: descriptor
- };
- if (def.decorators) element.decorators = def.decorators;
- if (def.kind === "field") element.initializer = def.value;
- return element;
-}
-function _coalesceGetterSetter(element, other) {
- if (element.descriptor.get !== undefined) {
- other.descriptor.get = element.descriptor.get;
- } else {
- other.descriptor.set = element.descriptor.set;
- }
-}
-function _coalesceClassElements(elements) {
- var newElements = [];
- var isSameElement = function isSameElement(other) {
- return other.kind === "method" && other.key === element.key && other.placement === element.placement;
- };
- for (var i = 0; i < elements.length; i++) {
- var element = elements[i];
- var other;
- if (element.kind === "method" && (other = newElements.find(isSameElement))) {
- if (_isDataDescriptor(element.descriptor) || _isDataDescriptor(other.descriptor)) {
- if (_hasDecorators(element) || _hasDecorators(other)) {
- throw new ReferenceError("Duplicated methods (" + element.key + ") can't be decorated.");
- }
- other.descriptor = element.descriptor;
- } else {
- if (_hasDecorators(element)) {
- if (_hasDecorators(other)) {
- throw new ReferenceError("Decorators can't be placed on different accessors with for " + "the same property (" + element.key + ").");
- }
- other.decorators = element.decorators;
- }
- _coalesceGetterSetter(element, other);
- }
- } else {
- newElements.push(element);
- }
- }
- return newElements;
-}
-function _hasDecorators(element) {
- return element.decorators && element.decorators.length;
-}
-function _isDataDescriptor(desc) {
- return desc !== undefined && !(desc.value === undefined && desc.writable === undefined);
-}
-function _optionalCallableProperty(obj, name) {
- var value = obj[name];
- if (value !== undefined && typeof value !== "function") {
- throw new TypeError("Expected '" + name + "' to be a function");
- }
- return value;
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/defaults.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/defaults.js
deleted file mode 100755
index 9e59e9a88..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/defaults.js
+++ /dev/null
@@ -1,11 +0,0 @@
-export default function _defaults(obj, defaults) {
- var keys = Object.getOwnPropertyNames(defaults);
- for (var i = 0; i < keys.length; i++) {
- var key = keys[i];
- var value = Object.getOwnPropertyDescriptor(defaults, key);
- if (value && value.configurable && obj[key] === undefined) {
- Object.defineProperty(obj, key, value);
- }
- }
- return obj;
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/defineAccessor.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/defineAccessor.js
deleted file mode 100755
index 154271d15..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/defineAccessor.js
+++ /dev/null
@@ -1,7 +0,0 @@
-export default function _defineAccessor(type, obj, key, fn) {
- var desc = {
- configurable: !0,
- enumerable: !0
- };
- return desc[type] = fn, Object.defineProperty(obj, key, desc);
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/defineEnumerableProperties.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/defineEnumerableProperties.js
deleted file mode 100755
index 0c04128a6..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/defineEnumerableProperties.js
+++ /dev/null
@@ -1,19 +0,0 @@
-export default function _defineEnumerableProperties(obj, descs) {
- for (var key in descs) {
- var desc = descs[key];
- desc.configurable = desc.enumerable = true;
- if ("value" in desc) desc.writable = true;
- Object.defineProperty(obj, key, desc);
- }
- if (Object.getOwnPropertySymbols) {
- var objectSymbols = Object.getOwnPropertySymbols(descs);
- for (var i = 0; i < objectSymbols.length; i++) {
- var sym = objectSymbols[i];
- var desc = descs[sym];
- desc.configurable = desc.enumerable = true;
- if ("value" in desc) desc.writable = true;
- Object.defineProperty(obj, sym, desc);
- }
- }
- return obj;
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/defineProperty.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/defineProperty.js
deleted file mode 100755
index 56c06a250..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/defineProperty.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import toPropertyKey from "./toPropertyKey.js";
-export default function _defineProperty(obj, key, value) {
- key = toPropertyKey(key);
- if (key in obj) {
- Object.defineProperty(obj, key, {
- value: value,
- enumerable: true,
- configurable: true,
- writable: true
- });
- } else {
- obj[key] = value;
- }
- return obj;
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/dispose.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/dispose.js
deleted file mode 100755
index ccf5b7e4b..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/dispose.js
+++ /dev/null
@@ -1,27 +0,0 @@
-function dispose_SuppressedError(suppressed, error) {
- return "undefined" != typeof SuppressedError ? dispose_SuppressedError = SuppressedError : (dispose_SuppressedError = function dispose_SuppressedError(suppressed, error) {
- this.suppressed = suppressed, this.error = error, this.stack = new Error().stack;
- }, dispose_SuppressedError.prototype = Object.create(Error.prototype, {
- constructor: {
- value: dispose_SuppressedError,
- writable: !0,
- configurable: !0
- }
- })), new dispose_SuppressedError(suppressed, error);
-}
-export default function _dispose(stack, error, hasError) {
- function next() {
- for (; stack.length > 0;) try {
- var r = stack.pop(),
- p = r.d.call(r.v);
- if (r.a) return Promise.resolve(p).then(next, err);
- } catch (e) {
- return err(e);
- }
- if (hasError) throw error;
- }
- function err(e) {
- return error = hasError ? new dispose_SuppressedError(e, error) : e, hasError = !0, next();
- }
- return next();
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/extends.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/extends.js
deleted file mode 100755
index ab17131f6..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/extends.js
+++ /dev/null
@@ -1,14 +0,0 @@
-export default function _extends() {
- _extends = Object.assign ? Object.assign.bind() : function (target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i];
- for (var key in source) {
- if (Object.prototype.hasOwnProperty.call(source, key)) {
- target[key] = source[key];
- }
- }
- }
- return target;
- };
- return _extends.apply(this, arguments);
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/get.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/get.js
deleted file mode 100755
index 0705d5fc4..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/get.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import superPropBase from "./superPropBase.js";
-export default function _get() {
- if (typeof Reflect !== "undefined" && Reflect.get) {
- _get = Reflect.get.bind();
- } else {
- _get = function _get(target, property, receiver) {
- var base = superPropBase(target, property);
- if (!base) return;
- var desc = Object.getOwnPropertyDescriptor(base, property);
- if (desc.get) {
- return desc.get.call(arguments.length < 3 ? target : receiver);
- }
- return desc.value;
- };
- }
- return _get.apply(this, arguments);
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
deleted file mode 100755
index e9bb1d54f..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
+++ /dev/null
@@ -1,6 +0,0 @@
-export default function _getPrototypeOf(o) {
- _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {
- return o.__proto__ || Object.getPrototypeOf(o);
- };
- return _getPrototypeOf(o);
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/identity.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/identity.js
deleted file mode 100755
index a1e7e4cda..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/identity.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _identity(x) {
- return x;
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/inherits.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/inherits.js
deleted file mode 100755
index 0b0a0eacf..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/inherits.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import setPrototypeOf from "./setPrototypeOf.js";
-export default function _inherits(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, {
- constructor: {
- value: subClass,
- writable: true,
- configurable: true
- }
- });
- Object.defineProperty(subClass, "prototype", {
- writable: false
- });
- if (superClass) setPrototypeOf(subClass, superClass);
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js
deleted file mode 100755
index 90bb79657..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import setPrototypeOf from "./setPrototypeOf.js";
-export default function _inheritsLoose(subClass, superClass) {
- subClass.prototype = Object.create(superClass.prototype);
- subClass.prototype.constructor = subClass;
- setPrototypeOf(subClass, superClass);
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/initializerDefineProperty.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/initializerDefineProperty.js
deleted file mode 100755
index 26fdea084..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/initializerDefineProperty.js
+++ /dev/null
@@ -1,9 +0,0 @@
-export default function _initializerDefineProperty(target, property, descriptor, context) {
- if (!descriptor) return;
- Object.defineProperty(target, property, {
- enumerable: descriptor.enumerable,
- configurable: descriptor.configurable,
- writable: descriptor.writable,
- value: descriptor.initializer ? descriptor.initializer.call(context) : void 0
- });
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/initializerWarningHelper.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/initializerWarningHelper.js
deleted file mode 100755
index 99d0b417e..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/initializerWarningHelper.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _initializerWarningHelper(descriptor, context) {
- throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.');
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/instanceof.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/instanceof.js
deleted file mode 100755
index 8c43b7178..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/instanceof.js
+++ /dev/null
@@ -1,7 +0,0 @@
-export default function _instanceof(left, right) {
- if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
- return !!right[Symbol.hasInstance](left);
- } else {
- return left instanceof right;
- }
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/interopRequireDefault.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/interopRequireDefault.js
deleted file mode 100755
index c2df7b641..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/interopRequireDefault.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export default function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : {
- "default": obj
- };
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/interopRequireWildcard.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/interopRequireWildcard.js
deleted file mode 100755
index 6ec63091e..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/interopRequireWildcard.js
+++ /dev/null
@@ -1,40 +0,0 @@
-import _typeof from "./typeof.js";
-function _getRequireWildcardCache(nodeInterop) {
- if (typeof WeakMap !== "function") return null;
- var cacheBabelInterop = new WeakMap();
- var cacheNodeInterop = new WeakMap();
- return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
- })(nodeInterop);
-}
-export default function _interopRequireWildcard(obj, nodeInterop) {
- if (!nodeInterop && obj && obj.__esModule) {
- return obj;
- }
- if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") {
- return {
- "default": obj
- };
- }
- var cache = _getRequireWildcardCache(nodeInterop);
- if (cache && cache.has(obj)) {
- return cache.get(obj);
- }
- var newObj = {};
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
- for (var key in obj) {
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
- if (desc && (desc.get || desc.set)) {
- Object.defineProperty(newObj, key, desc);
- } else {
- newObj[key] = obj[key];
- }
- }
- }
- newObj["default"] = obj;
- if (cache) {
- cache.set(obj, newObj);
- }
- return newObj;
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js
deleted file mode 100755
index 7b1bc821f..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _isNativeFunction(fn) {
- return Function.toString.call(fn).indexOf("[native code]") !== -1;
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js
deleted file mode 100755
index 618408070..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js
+++ /dev/null
@@ -1,11 +0,0 @@
-export default function _isNativeReflectConstruct() {
- if (typeof Reflect === "undefined" || !Reflect.construct) return false;
- if (Reflect.construct.sham) return false;
- if (typeof Proxy === "function") return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
- return true;
- } catch (e) {
- return false;
- }
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/iterableToArray.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/iterableToArray.js
deleted file mode 100755
index cfe9fbd3b..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/iterableToArray.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _iterableToArray(iter) {
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js
deleted file mode 100755
index 5c31a5935..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js
+++ /dev/null
@@ -1,27 +0,0 @@
-export default function _iterableToArrayLimit(arr, i) {
- var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
- if (null != _i) {
- var _s,
- _e,
- _x,
- _r,
- _arr = [],
- _n = !0,
- _d = !1;
- try {
- if (_x = (_i = _i.call(arr)).next, 0 === i) {
- if (Object(_i) !== _i) return;
- _n = !1;
- } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
- } catch (err) {
- _d = !0, _e = err;
- } finally {
- try {
- if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return;
- } finally {
- if (_d) throw _e;
- }
- }
- return _arr;
- }
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimitLoose.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimitLoose.js
deleted file mode 100755
index 9237c3077..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimitLoose.js
+++ /dev/null
@@ -1,9 +0,0 @@
-export default function _iterableToArrayLimitLoose(arr, i) {
- var _i = arr && ("undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]);
- if (null != _i) {
- var _s,
- _arr = [];
- for (_i = _i.call(arr); arr.length < i && !(_s = _i.next()).done;) _arr.push(_s.value);
- return _arr;
- }
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/jsx.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/jsx.js
deleted file mode 100755
index 742afd5c2..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/jsx.js
+++ /dev/null
@@ -1,21 +0,0 @@
-var REACT_ELEMENT_TYPE;
-export default function _createRawReactElement(type, props, key, children) {
- REACT_ELEMENT_TYPE || (REACT_ELEMENT_TYPE = "function" == typeof Symbol && Symbol["for"] && Symbol["for"]("react.element") || 60103);
- var defaultProps = type && type.defaultProps,
- childrenLength = arguments.length - 3;
- if (props || 0 === childrenLength || (props = {
- children: void 0
- }), 1 === childrenLength) props.children = children;else if (childrenLength > 1) {
- for (var childArray = new Array(childrenLength), i = 0; i < childrenLength; i++) childArray[i] = arguments[i + 3];
- props.children = childArray;
- }
- if (props && defaultProps) for (var propName in defaultProps) void 0 === props[propName] && (props[propName] = defaultProps[propName]);else props || (props = defaultProps || {});
- return {
- $$typeof: REACT_ELEMENT_TYPE,
- type: type,
- key: void 0 === key ? null : "" + key,
- ref: null,
- props: props,
- _owner: null
- };
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/maybeArrayLike.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/maybeArrayLike.js
deleted file mode 100755
index 38fd78fb1..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/maybeArrayLike.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import arrayLikeToArray from "./arrayLikeToArray.js";
-export default function _maybeArrayLike(next, arr, i) {
- if (arr && !Array.isArray(arr) && typeof arr.length === "number") {
- var len = arr.length;
- return arrayLikeToArray(arr, i !== void 0 && i < len ? i : len);
- }
- return next(arr, i);
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/newArrowCheck.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/newArrowCheck.js
deleted file mode 100755
index d6cd86437..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/newArrowCheck.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export default function _newArrowCheck(innerThis, boundThis) {
- if (innerThis !== boundThis) {
- throw new TypeError("Cannot instantiate an arrow function");
- }
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js
deleted file mode 100755
index b349d006c..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _nonIterableRest() {
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js
deleted file mode 100755
index 82d829614..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _nonIterableSpread() {
- throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js
deleted file mode 100755
index 251b85958..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _objectDestructuringEmpty(obj) {
- if (obj == null) throw new TypeError("Cannot destructure " + obj);
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/objectSpread.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/objectSpread.js
deleted file mode 100755
index a4e05e569..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/objectSpread.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import defineProperty from "./defineProperty.js";
-export default function _objectSpread(target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i] != null ? Object(arguments[i]) : {};
- var ownKeys = Object.keys(source);
- if (typeof Object.getOwnPropertySymbols === 'function') {
- ownKeys.push.apply(ownKeys, Object.getOwnPropertySymbols(source).filter(function (sym) {
- return Object.getOwnPropertyDescriptor(source, sym).enumerable;
- }));
- }
- ownKeys.forEach(function (key) {
- defineProperty(target, key, source[key]);
- });
- }
- return target;
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/objectSpread2.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/objectSpread2.js
deleted file mode 100755
index 7d69accd7..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/objectSpread2.js
+++ /dev/null
@@ -1,22 +0,0 @@
-import defineProperty from "./defineProperty.js";
-function ownKeys(object, enumerableOnly) {
- var keys = Object.keys(object);
- if (Object.getOwnPropertySymbols) {
- var symbols = Object.getOwnPropertySymbols(object);
- enumerableOnly && (symbols = symbols.filter(function (sym) {
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
- })), keys.push.apply(keys, symbols);
- }
- return keys;
-}
-export default function _objectSpread2(target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = null != arguments[i] ? arguments[i] : {};
- i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
- defineProperty(target, key, source[key]);
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
- });
- }
- return target;
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js
deleted file mode 100755
index 36804a39b..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import objectWithoutPropertiesLoose from "./objectWithoutPropertiesLoose.js";
-export default function _objectWithoutProperties(source, excluded) {
- if (source == null) return {};
- var target = objectWithoutPropertiesLoose(source, excluded);
- var key, i;
- if (Object.getOwnPropertySymbols) {
- var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
- for (i = 0; i < sourceSymbolKeys.length; i++) {
- key = sourceSymbolKeys[i];
- if (excluded.indexOf(key) >= 0) continue;
- if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
- target[key] = source[key];
- }
- }
- return target;
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js
deleted file mode 100755
index 4b308bde5..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js
+++ /dev/null
@@ -1,12 +0,0 @@
-export default function _objectWithoutPropertiesLoose(source, excluded) {
- if (source == null) return {};
- var target = {};
- var sourceKeys = Object.keys(source);
- var key, i;
- for (i = 0; i < sourceKeys.length; i++) {
- key = sourceKeys[i];
- if (excluded.indexOf(key) >= 0) continue;
- target[key] = source[key];
- }
- return target;
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/package.json b/WechatBot/node_modules/@babel/runtime/helpers/esm/package.json
deleted file mode 100644
index aead43de3..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/package.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "type": "module"
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
deleted file mode 100755
index 877882442..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
+++ /dev/null
@@ -1,10 +0,0 @@
-import _typeof from "./typeof.js";
-import assertThisInitialized from "./assertThisInitialized.js";
-export default function _possibleConstructorReturn(self, call) {
- if (call && (_typeof(call) === "object" || typeof call === "function")) {
- return call;
- } else if (call !== void 0) {
- throw new TypeError("Derived constructors may only return object or undefined");
- }
- return assertThisInitialized(self);
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/readOnlyError.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/readOnlyError.js
deleted file mode 100755
index 166e40e5e..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/readOnlyError.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _readOnlyError(name) {
- throw new TypeError("\"" + name + "\" is read-only");
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js
deleted file mode 100755
index e8275dae6..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js
+++ /dev/null
@@ -1,298 +0,0 @@
-import _typeof from "./typeof.js";
-export default function _regeneratorRuntime() {
- "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
- _regeneratorRuntime = function _regeneratorRuntime() {
- return exports;
- };
- var exports = {},
- Op = Object.prototype,
- hasOwn = Op.hasOwnProperty,
- defineProperty = Object.defineProperty || function (obj, key, desc) {
- obj[key] = desc.value;
- },
- $Symbol = "function" == typeof Symbol ? Symbol : {},
- iteratorSymbol = $Symbol.iterator || "@@iterator",
- asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator",
- toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
- function define(obj, key, value) {
- return Object.defineProperty(obj, key, {
- value: value,
- enumerable: !0,
- configurable: !0,
- writable: !0
- }), obj[key];
- }
- try {
- define({}, "");
- } catch (err) {
- define = function define(obj, key, value) {
- return obj[key] = value;
- };
- }
- function wrap(innerFn, outerFn, self, tryLocsList) {
- var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,
- generator = Object.create(protoGenerator.prototype),
- context = new Context(tryLocsList || []);
- return defineProperty(generator, "_invoke", {
- value: makeInvokeMethod(innerFn, self, context)
- }), generator;
- }
- function tryCatch(fn, obj, arg) {
- try {
- return {
- type: "normal",
- arg: fn.call(obj, arg)
- };
- } catch (err) {
- return {
- type: "throw",
- arg: err
- };
- }
- }
- exports.wrap = wrap;
- var ContinueSentinel = {};
- function Generator() {}
- function GeneratorFunction() {}
- function GeneratorFunctionPrototype() {}
- var IteratorPrototype = {};
- define(IteratorPrototype, iteratorSymbol, function () {
- return this;
- });
- var getProto = Object.getPrototypeOf,
- NativeIteratorPrototype = getProto && getProto(getProto(values([])));
- NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);
- var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);
- function defineIteratorMethods(prototype) {
- ["next", "throw", "return"].forEach(function (method) {
- define(prototype, method, function (arg) {
- return this._invoke(method, arg);
- });
- });
- }
- function AsyncIterator(generator, PromiseImpl) {
- function invoke(method, arg, resolve, reject) {
- var record = tryCatch(generator[method], generator, arg);
- if ("throw" !== record.type) {
- var result = record.arg,
- value = result.value;
- return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) {
- invoke("next", value, resolve, reject);
- }, function (err) {
- invoke("throw", err, resolve, reject);
- }) : PromiseImpl.resolve(value).then(function (unwrapped) {
- result.value = unwrapped, resolve(result);
- }, function (error) {
- return invoke("throw", error, resolve, reject);
- });
- }
- reject(record.arg);
- }
- var previousPromise;
- defineProperty(this, "_invoke", {
- value: function value(method, arg) {
- function callInvokeWithMethodAndArg() {
- return new PromiseImpl(function (resolve, reject) {
- invoke(method, arg, resolve, reject);
- });
- }
- return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
- }
- });
- }
- function makeInvokeMethod(innerFn, self, context) {
- var state = "suspendedStart";
- return function (method, arg) {
- if ("executing" === state) throw new Error("Generator is already running");
- if ("completed" === state) {
- if ("throw" === method) throw arg;
- return {
- value: void 0,
- done: !0
- };
- }
- for (context.method = method, context.arg = arg;;) {
- var delegate = context.delegate;
- if (delegate) {
- var delegateResult = maybeInvokeDelegate(delegate, context);
- if (delegateResult) {
- if (delegateResult === ContinueSentinel) continue;
- return delegateResult;
- }
- }
- if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) {
- if ("suspendedStart" === state) throw state = "completed", context.arg;
- context.dispatchException(context.arg);
- } else "return" === context.method && context.abrupt("return", context.arg);
- state = "executing";
- var record = tryCatch(innerFn, self, context);
- if ("normal" === record.type) {
- if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue;
- return {
- value: record.arg,
- done: context.done
- };
- }
- "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg);
- }
- };
- }
- function maybeInvokeDelegate(delegate, context) {
- var methodName = context.method,
- method = delegate.iterator[methodName];
- if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel;
- var record = tryCatch(method, delegate.iterator, context.arg);
- if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel;
- var info = record.arg;
- return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel);
- }
- function pushTryEntry(locs) {
- var entry = {
- tryLoc: locs[0]
- };
- 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);
- }
- function resetTryEntry(entry) {
- var record = entry.completion || {};
- record.type = "normal", delete record.arg, entry.completion = record;
- }
- function Context(tryLocsList) {
- this.tryEntries = [{
- tryLoc: "root"
- }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);
- }
- function values(iterable) {
- if (iterable || "" === iterable) {
- var iteratorMethod = iterable[iteratorSymbol];
- if (iteratorMethod) return iteratorMethod.call(iterable);
- if ("function" == typeof iterable.next) return iterable;
- if (!isNaN(iterable.length)) {
- var i = -1,
- next = function next() {
- for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;
- return next.value = undefined, next.done = !0, next;
- };
- return next.next = next;
- }
- }
- throw new TypeError(_typeof(iterable) + " is not iterable");
- }
- return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", {
- value: GeneratorFunctionPrototype,
- configurable: !0
- }), defineProperty(GeneratorFunctionPrototype, "constructor", {
- value: GeneratorFunction,
- configurable: !0
- }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) {
- var ctor = "function" == typeof genFun && genFun.constructor;
- return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name));
- }, exports.mark = function (genFun) {
- return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun;
- }, exports.awrap = function (arg) {
- return {
- __await: arg
- };
- }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {
- return this;
- }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {
- void 0 === PromiseImpl && (PromiseImpl = Promise);
- var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);
- return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {
- return result.done ? result.value : iter.next();
- });
- }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () {
- return this;
- }), define(Gp, "toString", function () {
- return "[object Generator]";
- }), exports.keys = function (val) {
- var object = Object(val),
- keys = [];
- for (var key in object) keys.push(key);
- return keys.reverse(), function next() {
- for (; keys.length;) {
- var key = keys.pop();
- if (key in object) return next.value = key, next.done = !1, next;
- }
- return next.done = !0, next;
- };
- }, exports.values = values, Context.prototype = {
- constructor: Context,
- reset: function reset(skipTempReset) {
- if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);
- },
- stop: function stop() {
- this.done = !0;
- var rootRecord = this.tryEntries[0].completion;
- if ("throw" === rootRecord.type) throw rootRecord.arg;
- return this.rval;
- },
- dispatchException: function dispatchException(exception) {
- if (this.done) throw exception;
- var context = this;
- function handle(loc, caught) {
- return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught;
- }
- for (var i = this.tryEntries.length - 1; i >= 0; --i) {
- var entry = this.tryEntries[i],
- record = entry.completion;
- if ("root" === entry.tryLoc) return handle("end");
- if (entry.tryLoc <= this.prev) {
- var hasCatch = hasOwn.call(entry, "catchLoc"),
- hasFinally = hasOwn.call(entry, "finallyLoc");
- if (hasCatch && hasFinally) {
- if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);
- if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);
- } else if (hasCatch) {
- if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);
- } else {
- if (!hasFinally) throw new Error("try statement without catch or finally");
- if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);
- }
- }
- }
- },
- abrupt: function abrupt(type, arg) {
- for (var i = this.tryEntries.length - 1; i >= 0; --i) {
- var entry = this.tryEntries[i];
- if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) {
- var finallyEntry = entry;
- break;
- }
- }
- finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);
- var record = finallyEntry ? finallyEntry.completion : {};
- return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);
- },
- complete: function complete(record, afterLoc) {
- if ("throw" === record.type) throw record.arg;
- return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;
- },
- finish: function finish(finallyLoc) {
- for (var i = this.tryEntries.length - 1; i >= 0; --i) {
- var entry = this.tryEntries[i];
- if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;
- }
- },
- "catch": function _catch(tryLoc) {
- for (var i = this.tryEntries.length - 1; i >= 0; --i) {
- var entry = this.tryEntries[i];
- if (entry.tryLoc === tryLoc) {
- var record = entry.completion;
- if ("throw" === record.type) {
- var thrown = record.arg;
- resetTryEntry(entry);
- }
- return thrown;
- }
- }
- throw new Error("illegal catch attempt");
- },
- delegateYield: function delegateYield(iterable, resultName, nextLoc) {
- return this.delegate = {
- iterator: values(iterable),
- resultName: resultName,
- nextLoc: nextLoc
- }, "next" === this.method && (this.arg = undefined), ContinueSentinel;
- }
- }, exports;
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/set.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/set.js
deleted file mode 100755
index c9ee6c724..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/set.js
+++ /dev/null
@@ -1,40 +0,0 @@
-import superPropBase from "./superPropBase.js";
-import defineProperty from "./defineProperty.js";
-function set(target, property, value, receiver) {
- if (typeof Reflect !== "undefined" && Reflect.set) {
- set = Reflect.set;
- } else {
- set = function set(target, property, value, receiver) {
- var base = superPropBase(target, property);
- var desc;
- if (base) {
- desc = Object.getOwnPropertyDescriptor(base, property);
- if (desc.set) {
- desc.set.call(receiver, value);
- return true;
- } else if (!desc.writable) {
- return false;
- }
- }
- desc = Object.getOwnPropertyDescriptor(receiver, property);
- if (desc) {
- if (!desc.writable) {
- return false;
- }
- desc.value = value;
- Object.defineProperty(receiver, property, desc);
- } else {
- defineProperty(receiver, property, value);
- }
- return true;
- };
- }
- return set(target, property, value, receiver);
-}
-export default function _set(target, property, value, receiver, isStrict) {
- var s = set(target, property, value, receiver || target);
- if (!s && isStrict) {
- throw new TypeError('failed to set property');
- }
- return value;
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js
deleted file mode 100755
index 905e13c0d..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js
+++ /dev/null
@@ -1,7 +0,0 @@
-export default function _setPrototypeOf(o, p) {
- _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
- o.__proto__ = p;
- return o;
- };
- return _setPrototypeOf(o, p);
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/skipFirstGeneratorNext.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/skipFirstGeneratorNext.js
deleted file mode 100755
index cadd9bb5b..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/skipFirstGeneratorNext.js
+++ /dev/null
@@ -1,7 +0,0 @@
-export default function _skipFirstGeneratorNext(fn) {
- return function () {
- var it = fn.apply(this, arguments);
- it.next();
- return it;
- };
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/slicedToArray.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/slicedToArray.js
deleted file mode 100755
index 618200b92..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/slicedToArray.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import arrayWithHoles from "./arrayWithHoles.js";
-import iterableToArrayLimit from "./iterableToArrayLimit.js";
-import unsupportedIterableToArray from "./unsupportedIterableToArray.js";
-import nonIterableRest from "./nonIterableRest.js";
-export default function _slicedToArray(arr, i) {
- return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/slicedToArrayLoose.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/slicedToArrayLoose.js
deleted file mode 100755
index efc7429ef..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/slicedToArrayLoose.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import arrayWithHoles from "./arrayWithHoles.js";
-import iterableToArrayLimitLoose from "./iterableToArrayLimitLoose.js";
-import unsupportedIterableToArray from "./unsupportedIterableToArray.js";
-import nonIterableRest from "./nonIterableRest.js";
-export default function _slicedToArrayLoose(arr, i) {
- return arrayWithHoles(arr) || iterableToArrayLimitLoose(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/superPropBase.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/superPropBase.js
deleted file mode 100755
index 605724d78..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/superPropBase.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import getPrototypeOf from "./getPrototypeOf.js";
-export default function _superPropBase(object, property) {
- while (!Object.prototype.hasOwnProperty.call(object, property)) {
- object = getPrototypeOf(object);
- if (object === null) break;
- }
- return object;
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js
deleted file mode 100755
index 990d5e438..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js
+++ /dev/null
@@ -1,10 +0,0 @@
-export default function _taggedTemplateLiteral(strings, raw) {
- if (!raw) {
- raw = strings.slice(0);
- }
- return Object.freeze(Object.defineProperties(strings, {
- raw: {
- value: Object.freeze(raw)
- }
- }));
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js
deleted file mode 100755
index 9fcba323f..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js
+++ /dev/null
@@ -1,7 +0,0 @@
-export default function _taggedTemplateLiteralLoose(strings, raw) {
- if (!raw) {
- raw = strings.slice(0);
- }
- strings.raw = raw;
- return strings;
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/tdz.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/tdz.js
deleted file mode 100755
index d5d0adc8a..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/tdz.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _tdzError(name) {
- throw new ReferenceError(name + " is not defined - temporal dead zone");
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/temporalRef.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/temporalRef.js
deleted file mode 100755
index b25f7c44f..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/temporalRef.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import undef from "./temporalUndefined.js";
-import err from "./tdz.js";
-export default function _temporalRef(val, name) {
- return val === undef ? err(name) : val;
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/temporalUndefined.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/temporalUndefined.js
deleted file mode 100755
index 1a3571734..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/temporalUndefined.js
+++ /dev/null
@@ -1 +0,0 @@
-export default function _temporalUndefined() {}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/toArray.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/toArray.js
deleted file mode 100755
index ad7c871a5..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/toArray.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import arrayWithHoles from "./arrayWithHoles.js";
-import iterableToArray from "./iterableToArray.js";
-import unsupportedIterableToArray from "./unsupportedIterableToArray.js";
-import nonIterableRest from "./nonIterableRest.js";
-export default function _toArray(arr) {
- return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js
deleted file mode 100755
index bd9128559..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import arrayWithoutHoles from "./arrayWithoutHoles.js";
-import iterableToArray from "./iterableToArray.js";
-import unsupportedIterableToArray from "./unsupportedIterableToArray.js";
-import nonIterableSpread from "./nonIterableSpread.js";
-export default function _toConsumableArray(arr) {
- return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/toPrimitive.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/toPrimitive.js
deleted file mode 100755
index cbfabb7fb..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/toPrimitive.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import _typeof from "./typeof.js";
-export default function _toPrimitive(input, hint) {
- if (_typeof(input) !== "object" || input === null) return input;
- var prim = input[Symbol.toPrimitive];
- if (prim !== undefined) {
- var res = prim.call(input, hint || "default");
- if (_typeof(res) !== "object") return res;
- throw new TypeError("@@toPrimitive must return a primitive value.");
- }
- return (hint === "string" ? String : Number)(input);
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js
deleted file mode 100755
index 0fcc93b3e..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import _typeof from "./typeof.js";
-import toPrimitive from "./toPrimitive.js";
-export default function _toPropertyKey(arg) {
- var key = toPrimitive(arg, "string");
- return _typeof(key) === "symbol" ? key : String(key);
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/typeof.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/typeof.js
deleted file mode 100755
index 92100c66f..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/typeof.js
+++ /dev/null
@@ -1,9 +0,0 @@
-export default function _typeof(obj) {
- "@babel/helpers - typeof";
-
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
- return typeof obj;
- } : function (obj) {
- return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
- }, _typeof(obj);
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
deleted file mode 100755
index c0f63bd5a..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import arrayLikeToArray from "./arrayLikeToArray.js";
-export default function _unsupportedIterableToArray(o, minLen) {
- if (!o) return;
- if (typeof o === "string") return arrayLikeToArray(o, minLen);
- var n = Object.prototype.toString.call(o).slice(8, -1);
- if (n === "Object" && o.constructor) n = o.constructor.name;
- if (n === "Map" || n === "Set") return Array.from(o);
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/using.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/using.js
deleted file mode 100755
index 4dd171ef7..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/using.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import _typeof from "./typeof.js";
-export default function _using(stack, value, isAwait) {
- if (null == value) return value;
- if ("object" != _typeof(value)) throw new TypeError("using declarations can only be used with objects, null, or undefined.");
- if (isAwait) var dispose = value[Symbol.asyncDispose || Symbol["for"]("Symbol.asyncDispose")];
- if (null == dispose && (dispose = value[Symbol.dispose || Symbol["for"]("Symbol.dispose")]), "function" != typeof dispose) throw new TypeError("Property [Symbol.dispose] is not a function.");
- return stack.push({
- v: value,
- d: dispose,
- a: isAwait
- }), value;
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js
deleted file mode 100755
index 723b2ddac..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import AsyncGenerator from "./AsyncGenerator.js";
-export default function _wrapAsyncGenerator(fn) {
- return function () {
- return new AsyncGenerator(fn.apply(this, arguments));
- };
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js
deleted file mode 100755
index 43d0ded7a..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js
+++ /dev/null
@@ -1,30 +0,0 @@
-import getPrototypeOf from "./getPrototypeOf.js";
-import setPrototypeOf from "./setPrototypeOf.js";
-import isNativeFunction from "./isNativeFunction.js";
-import construct from "./construct.js";
-export default function _wrapNativeSuper(Class) {
- var _cache = typeof Map === "function" ? new Map() : undefined;
- _wrapNativeSuper = function _wrapNativeSuper(Class) {
- if (Class === null || !isNativeFunction(Class)) return Class;
- if (typeof Class !== "function") {
- throw new TypeError("Super expression must either be null or a function");
- }
- if (typeof _cache !== "undefined") {
- if (_cache.has(Class)) return _cache.get(Class);
- _cache.set(Class, Wrapper);
- }
- function Wrapper() {
- return construct(Class, arguments, getPrototypeOf(this).constructor);
- }
- Wrapper.prototype = Object.create(Class.prototype, {
- constructor: {
- value: Wrapper,
- enumerable: false,
- writable: true,
- configurable: true
- }
- });
- return setPrototypeOf(Wrapper, Class);
- };
- return _wrapNativeSuper(Class);
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/wrapRegExp.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/wrapRegExp.js
deleted file mode 100755
index 620d84c79..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/wrapRegExp.js
+++ /dev/null
@@ -1,50 +0,0 @@
-import _typeof from "./typeof.js";
-import setPrototypeOf from "./setPrototypeOf.js";
-import inherits from "./inherits.js";
-export default function _wrapRegExp() {
- _wrapRegExp = function _wrapRegExp(re, groups) {
- return new BabelRegExp(re, void 0, groups);
- };
- var _super = RegExp.prototype,
- _groups = new WeakMap();
- function BabelRegExp(re, flags, groups) {
- var _this = new RegExp(re, flags);
- return _groups.set(_this, groups || _groups.get(re)), setPrototypeOf(_this, BabelRegExp.prototype);
- }
- function buildGroups(result, re) {
- var g = _groups.get(re);
- return Object.keys(g).reduce(function (groups, name) {
- var i = g[name];
- if ("number" == typeof i) groups[name] = result[i];else {
- for (var k = 0; void 0 === result[i[k]] && k + 1 < i.length;) k++;
- groups[name] = result[i[k]];
- }
- return groups;
- }, Object.create(null));
- }
- return inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (str) {
- var result = _super.exec.call(this, str);
- if (result) {
- result.groups = buildGroups(result, this);
- var indices = result.indices;
- indices && (indices.groups = buildGroups(indices, this));
- }
- return result;
- }, BabelRegExp.prototype[Symbol.replace] = function (str, substitution) {
- if ("string" == typeof substitution) {
- var groups = _groups.get(this);
- return _super[Symbol.replace].call(this, str, substitution.replace(/\$<([^>]+)>/g, function (_, name) {
- var group = groups[name];
- return "$" + (Array.isArray(group) ? group.join("$") : group);
- }));
- }
- if ("function" == typeof substitution) {
- var _this = this;
- return _super[Symbol.replace].call(this, str, function () {
- var args = arguments;
- return "object" != _typeof(args[args.length - 1]) && (args = [].slice.call(args)).push(buildGroups(args, _this)), substitution.apply(this, args);
- });
- }
- return _super[Symbol.replace].call(this, str, substitution);
- }, _wrapRegExp.apply(this, arguments);
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/esm/writeOnlyError.js b/WechatBot/node_modules/@babel/runtime/helpers/esm/writeOnlyError.js
deleted file mode 100755
index 9170bd45d..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/esm/writeOnlyError.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function _writeOnlyError(name) {
- throw new TypeError("\"" + name + "\" is write-only");
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/extends.js b/WechatBot/node_modules/@babel/runtime/helpers/extends.js
deleted file mode 100755
index bb1116077..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/extends.js
+++ /dev/null
@@ -1,15 +0,0 @@
-function _extends() {
- module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i];
- for (var key in source) {
- if (Object.prototype.hasOwnProperty.call(source, key)) {
- target[key] = source[key];
- }
- }
- }
- return target;
- }, module.exports.__esModule = true, module.exports["default"] = module.exports;
- return _extends.apply(this, arguments);
-}
-module.exports = _extends, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/get.js b/WechatBot/node_modules/@babel/runtime/helpers/get.js
deleted file mode 100755
index 9b44d2fbc..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/get.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var superPropBase = require("./superPropBase.js");
-function _get() {
- if (typeof Reflect !== "undefined" && Reflect.get) {
- module.exports = _get = Reflect.get.bind(), module.exports.__esModule = true, module.exports["default"] = module.exports;
- } else {
- module.exports = _get = function _get(target, property, receiver) {
- var base = superPropBase(target, property);
- if (!base) return;
- var desc = Object.getOwnPropertyDescriptor(base, property);
- if (desc.get) {
- return desc.get.call(arguments.length < 3 ? target : receiver);
- }
- return desc.value;
- }, module.exports.__esModule = true, module.exports["default"] = module.exports;
- }
- return _get.apply(this, arguments);
-}
-module.exports = _get, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/getPrototypeOf.js b/WechatBot/node_modules/@babel/runtime/helpers/getPrototypeOf.js
deleted file mode 100755
index 0639a6550..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/getPrototypeOf.js
+++ /dev/null
@@ -1,7 +0,0 @@
-function _getPrototypeOf(o) {
- module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {
- return o.__proto__ || Object.getPrototypeOf(o);
- }, module.exports.__esModule = true, module.exports["default"] = module.exports;
- return _getPrototypeOf(o);
-}
-module.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/identity.js b/WechatBot/node_modules/@babel/runtime/helpers/identity.js
deleted file mode 100755
index 7dd82dc79..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/identity.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function _identity(x) {
- return x;
-}
-module.exports = _identity, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/inherits.js b/WechatBot/node_modules/@babel/runtime/helpers/inherits.js
deleted file mode 100755
index 6521cce38..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/inherits.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var setPrototypeOf = require("./setPrototypeOf.js");
-function _inherits(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
- subClass.prototype = Object.create(superClass && superClass.prototype, {
- constructor: {
- value: subClass,
- writable: true,
- configurable: true
- }
- });
- Object.defineProperty(subClass, "prototype", {
- writable: false
- });
- if (superClass) setPrototypeOf(subClass, superClass);
-}
-module.exports = _inherits, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/inheritsLoose.js b/WechatBot/node_modules/@babel/runtime/helpers/inheritsLoose.js
deleted file mode 100755
index 19a60c938..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/inheritsLoose.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var setPrototypeOf = require("./setPrototypeOf.js");
-function _inheritsLoose(subClass, superClass) {
- subClass.prototype = Object.create(superClass.prototype);
- subClass.prototype.constructor = subClass;
- setPrototypeOf(subClass, superClass);
-}
-module.exports = _inheritsLoose, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/initializerDefineProperty.js b/WechatBot/node_modules/@babel/runtime/helpers/initializerDefineProperty.js
deleted file mode 100755
index 7f35d5038..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/initializerDefineProperty.js
+++ /dev/null
@@ -1,10 +0,0 @@
-function _initializerDefineProperty(target, property, descriptor, context) {
- if (!descriptor) return;
- Object.defineProperty(target, property, {
- enumerable: descriptor.enumerable,
- configurable: descriptor.configurable,
- writable: descriptor.writable,
- value: descriptor.initializer ? descriptor.initializer.call(context) : void 0
- });
-}
-module.exports = _initializerDefineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/initializerWarningHelper.js b/WechatBot/node_modules/@babel/runtime/helpers/initializerWarningHelper.js
deleted file mode 100755
index 061f420a8..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/initializerWarningHelper.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function _initializerWarningHelper(descriptor, context) {
- throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.');
-}
-module.exports = _initializerWarningHelper, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/instanceof.js b/WechatBot/node_modules/@babel/runtime/helpers/instanceof.js
deleted file mode 100755
index bc3d9e7f9..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/instanceof.js
+++ /dev/null
@@ -1,8 +0,0 @@
-function _instanceof(left, right) {
- if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
- return !!right[Symbol.hasInstance](left);
- } else {
- return left instanceof right;
- }
-}
-module.exports = _instanceof, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/interopRequireDefault.js b/WechatBot/node_modules/@babel/runtime/helpers/interopRequireDefault.js
deleted file mode 100755
index 429b270d6..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/interopRequireDefault.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : {
- "default": obj
- };
-}
-module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/interopRequireWildcard.js b/WechatBot/node_modules/@babel/runtime/helpers/interopRequireWildcard.js
deleted file mode 100755
index 3765dcc72..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/interopRequireWildcard.js
+++ /dev/null
@@ -1,41 +0,0 @@
-var _typeof = require("./typeof.js")["default"];
-function _getRequireWildcardCache(nodeInterop) {
- if (typeof WeakMap !== "function") return null;
- var cacheBabelInterop = new WeakMap();
- var cacheNodeInterop = new WeakMap();
- return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
- })(nodeInterop);
-}
-function _interopRequireWildcard(obj, nodeInterop) {
- if (!nodeInterop && obj && obj.__esModule) {
- return obj;
- }
- if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") {
- return {
- "default": obj
- };
- }
- var cache = _getRequireWildcardCache(nodeInterop);
- if (cache && cache.has(obj)) {
- return cache.get(obj);
- }
- var newObj = {};
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
- for (var key in obj) {
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
- if (desc && (desc.get || desc.set)) {
- Object.defineProperty(newObj, key, desc);
- } else {
- newObj[key] = obj[key];
- }
- }
- }
- newObj["default"] = obj;
- if (cache) {
- cache.set(obj, newObj);
- }
- return newObj;
-}
-module.exports = _interopRequireWildcard, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/isNativeFunction.js b/WechatBot/node_modules/@babel/runtime/helpers/isNativeFunction.js
deleted file mode 100755
index ea595353b..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/isNativeFunction.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function _isNativeFunction(fn) {
- return Function.toString.call(fn).indexOf("[native code]") !== -1;
-}
-module.exports = _isNativeFunction, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js b/WechatBot/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js
deleted file mode 100755
index 6b4e73f02..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js
+++ /dev/null
@@ -1,12 +0,0 @@
-function _isNativeReflectConstruct() {
- if (typeof Reflect === "undefined" || !Reflect.construct) return false;
- if (Reflect.construct.sham) return false;
- if (typeof Proxy === "function") return true;
- try {
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
- return true;
- } catch (e) {
- return false;
- }
-}
-module.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/iterableToArray.js b/WechatBot/node_modules/@babel/runtime/helpers/iterableToArray.js
deleted file mode 100755
index 89607526d..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/iterableToArray.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function _iterableToArray(iter) {
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
-}
-module.exports = _iterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js b/WechatBot/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js
deleted file mode 100755
index 20a18351c..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js
+++ /dev/null
@@ -1,28 +0,0 @@
-function _iterableToArrayLimit(arr, i) {
- var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
- if (null != _i) {
- var _s,
- _e,
- _x,
- _r,
- _arr = [],
- _n = !0,
- _d = !1;
- try {
- if (_x = (_i = _i.call(arr)).next, 0 === i) {
- if (Object(_i) !== _i) return;
- _n = !1;
- } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
- } catch (err) {
- _d = !0, _e = err;
- } finally {
- try {
- if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return;
- } finally {
- if (_d) throw _e;
- }
- }
- return _arr;
- }
-}
-module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/iterableToArrayLimitLoose.js b/WechatBot/node_modules/@babel/runtime/helpers/iterableToArrayLimitLoose.js
deleted file mode 100755
index c56bebdb1..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/iterableToArrayLimitLoose.js
+++ /dev/null
@@ -1,10 +0,0 @@
-function _iterableToArrayLimitLoose(arr, i) {
- var _i = arr && ("undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]);
- if (null != _i) {
- var _s,
- _arr = [];
- for (_i = _i.call(arr); arr.length < i && !(_s = _i.next()).done;) _arr.push(_s.value);
- return _arr;
- }
-}
-module.exports = _iterableToArrayLimitLoose, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/jsx.js b/WechatBot/node_modules/@babel/runtime/helpers/jsx.js
deleted file mode 100755
index 8c6de7657..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/jsx.js
+++ /dev/null
@@ -1,22 +0,0 @@
-var REACT_ELEMENT_TYPE;
-function _createRawReactElement(type, props, key, children) {
- REACT_ELEMENT_TYPE || (REACT_ELEMENT_TYPE = "function" == typeof Symbol && Symbol["for"] && Symbol["for"]("react.element") || 60103);
- var defaultProps = type && type.defaultProps,
- childrenLength = arguments.length - 3;
- if (props || 0 === childrenLength || (props = {
- children: void 0
- }), 1 === childrenLength) props.children = children;else if (childrenLength > 1) {
- for (var childArray = new Array(childrenLength), i = 0; i < childrenLength; i++) childArray[i] = arguments[i + 3];
- props.children = childArray;
- }
- if (props && defaultProps) for (var propName in defaultProps) void 0 === props[propName] && (props[propName] = defaultProps[propName]);else props || (props = defaultProps || {});
- return {
- $$typeof: REACT_ELEMENT_TYPE,
- type: type,
- key: void 0 === key ? null : "" + key,
- ref: null,
- props: props,
- _owner: null
- };
-}
-module.exports = _createRawReactElement, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/maybeArrayLike.js b/WechatBot/node_modules/@babel/runtime/helpers/maybeArrayLike.js
deleted file mode 100755
index 5d0009759..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/maybeArrayLike.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var arrayLikeToArray = require("./arrayLikeToArray.js");
-function _maybeArrayLike(next, arr, i) {
- if (arr && !Array.isArray(arr) && typeof arr.length === "number") {
- var len = arr.length;
- return arrayLikeToArray(arr, i !== void 0 && i < len ? i : len);
- }
- return next(arr, i);
-}
-module.exports = _maybeArrayLike, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/newArrowCheck.js b/WechatBot/node_modules/@babel/runtime/helpers/newArrowCheck.js
deleted file mode 100755
index 9c680c8d4..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/newArrowCheck.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function _newArrowCheck(innerThis, boundThis) {
- if (innerThis !== boundThis) {
- throw new TypeError("Cannot instantiate an arrow function");
- }
-}
-module.exports = _newArrowCheck, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/nonIterableRest.js b/WechatBot/node_modules/@babel/runtime/helpers/nonIterableRest.js
deleted file mode 100755
index 95265ba32..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/nonIterableRest.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function _nonIterableRest() {
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
-}
-module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/nonIterableSpread.js b/WechatBot/node_modules/@babel/runtime/helpers/nonIterableSpread.js
deleted file mode 100755
index 3fcf23f04..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/nonIterableSpread.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function _nonIterableSpread() {
- throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
-}
-module.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js b/WechatBot/node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js
deleted file mode 100755
index 5b405e00a..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function _objectDestructuringEmpty(obj) {
- if (obj == null) throw new TypeError("Cannot destructure " + obj);
-}
-module.exports = _objectDestructuringEmpty, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/objectSpread.js b/WechatBot/node_modules/@babel/runtime/helpers/objectSpread.js
deleted file mode 100755
index f39340317..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/objectSpread.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var defineProperty = require("./defineProperty.js");
-function _objectSpread(target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i] != null ? Object(arguments[i]) : {};
- var ownKeys = Object.keys(source);
- if (typeof Object.getOwnPropertySymbols === 'function') {
- ownKeys.push.apply(ownKeys, Object.getOwnPropertySymbols(source).filter(function (sym) {
- return Object.getOwnPropertyDescriptor(source, sym).enumerable;
- }));
- }
- ownKeys.forEach(function (key) {
- defineProperty(target, key, source[key]);
- });
- }
- return target;
-}
-module.exports = _objectSpread, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/objectSpread2.js b/WechatBot/node_modules/@babel/runtime/helpers/objectSpread2.js
deleted file mode 100755
index 214f9e044..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/objectSpread2.js
+++ /dev/null
@@ -1,23 +0,0 @@
-var defineProperty = require("./defineProperty.js");
-function ownKeys(object, enumerableOnly) {
- var keys = Object.keys(object);
- if (Object.getOwnPropertySymbols) {
- var symbols = Object.getOwnPropertySymbols(object);
- enumerableOnly && (symbols = symbols.filter(function (sym) {
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
- })), keys.push.apply(keys, symbols);
- }
- return keys;
-}
-function _objectSpread2(target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = null != arguments[i] ? arguments[i] : {};
- i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
- defineProperty(target, key, source[key]);
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
- });
- }
- return target;
-}
-module.exports = _objectSpread2, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/objectWithoutProperties.js b/WechatBot/node_modules/@babel/runtime/helpers/objectWithoutProperties.js
deleted file mode 100755
index cf526bc89..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/objectWithoutProperties.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var objectWithoutPropertiesLoose = require("./objectWithoutPropertiesLoose.js");
-function _objectWithoutProperties(source, excluded) {
- if (source == null) return {};
- var target = objectWithoutPropertiesLoose(source, excluded);
- var key, i;
- if (Object.getOwnPropertySymbols) {
- var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
- for (i = 0; i < sourceSymbolKeys.length; i++) {
- key = sourceSymbolKeys[i];
- if (excluded.indexOf(key) >= 0) continue;
- if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
- target[key] = source[key];
- }
- }
- return target;
-}
-module.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js b/WechatBot/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js
deleted file mode 100755
index 3c65a9db6..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js
+++ /dev/null
@@ -1,13 +0,0 @@
-function _objectWithoutPropertiesLoose(source, excluded) {
- if (source == null) return {};
- var target = {};
- var sourceKeys = Object.keys(source);
- var key, i;
- for (i = 0; i < sourceKeys.length; i++) {
- key = sourceKeys[i];
- if (excluded.indexOf(key) >= 0) continue;
- target[key] = source[key];
- }
- return target;
-}
-module.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js b/WechatBot/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js
deleted file mode 100755
index b2424b000..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var _typeof = require("./typeof.js")["default"];
-var assertThisInitialized = require("./assertThisInitialized.js");
-function _possibleConstructorReturn(self, call) {
- if (call && (_typeof(call) === "object" || typeof call === "function")) {
- return call;
- } else if (call !== void 0) {
- throw new TypeError("Derived constructors may only return object or undefined");
- }
- return assertThisInitialized(self);
-}
-module.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/readOnlyError.js b/WechatBot/node_modules/@babel/runtime/helpers/readOnlyError.js
deleted file mode 100755
index 6637a0e08..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/readOnlyError.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function _readOnlyError(name) {
- throw new TypeError("\"" + name + "\" is read-only");
-}
-module.exports = _readOnlyError, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/regeneratorRuntime.js b/WechatBot/node_modules/@babel/runtime/helpers/regeneratorRuntime.js
deleted file mode 100755
index 2eb46f056..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/regeneratorRuntime.js
+++ /dev/null
@@ -1,299 +0,0 @@
-var _typeof = require("./typeof.js")["default"];
-function _regeneratorRuntime() {
- "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
- module.exports = _regeneratorRuntime = function _regeneratorRuntime() {
- return exports;
- }, module.exports.__esModule = true, module.exports["default"] = module.exports;
- var exports = {},
- Op = Object.prototype,
- hasOwn = Op.hasOwnProperty,
- defineProperty = Object.defineProperty || function (obj, key, desc) {
- obj[key] = desc.value;
- },
- $Symbol = "function" == typeof Symbol ? Symbol : {},
- iteratorSymbol = $Symbol.iterator || "@@iterator",
- asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator",
- toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
- function define(obj, key, value) {
- return Object.defineProperty(obj, key, {
- value: value,
- enumerable: !0,
- configurable: !0,
- writable: !0
- }), obj[key];
- }
- try {
- define({}, "");
- } catch (err) {
- define = function define(obj, key, value) {
- return obj[key] = value;
- };
- }
- function wrap(innerFn, outerFn, self, tryLocsList) {
- var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,
- generator = Object.create(protoGenerator.prototype),
- context = new Context(tryLocsList || []);
- return defineProperty(generator, "_invoke", {
- value: makeInvokeMethod(innerFn, self, context)
- }), generator;
- }
- function tryCatch(fn, obj, arg) {
- try {
- return {
- type: "normal",
- arg: fn.call(obj, arg)
- };
- } catch (err) {
- return {
- type: "throw",
- arg: err
- };
- }
- }
- exports.wrap = wrap;
- var ContinueSentinel = {};
- function Generator() {}
- function GeneratorFunction() {}
- function GeneratorFunctionPrototype() {}
- var IteratorPrototype = {};
- define(IteratorPrototype, iteratorSymbol, function () {
- return this;
- });
- var getProto = Object.getPrototypeOf,
- NativeIteratorPrototype = getProto && getProto(getProto(values([])));
- NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);
- var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);
- function defineIteratorMethods(prototype) {
- ["next", "throw", "return"].forEach(function (method) {
- define(prototype, method, function (arg) {
- return this._invoke(method, arg);
- });
- });
- }
- function AsyncIterator(generator, PromiseImpl) {
- function invoke(method, arg, resolve, reject) {
- var record = tryCatch(generator[method], generator, arg);
- if ("throw" !== record.type) {
- var result = record.arg,
- value = result.value;
- return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) {
- invoke("next", value, resolve, reject);
- }, function (err) {
- invoke("throw", err, resolve, reject);
- }) : PromiseImpl.resolve(value).then(function (unwrapped) {
- result.value = unwrapped, resolve(result);
- }, function (error) {
- return invoke("throw", error, resolve, reject);
- });
- }
- reject(record.arg);
- }
- var previousPromise;
- defineProperty(this, "_invoke", {
- value: function value(method, arg) {
- function callInvokeWithMethodAndArg() {
- return new PromiseImpl(function (resolve, reject) {
- invoke(method, arg, resolve, reject);
- });
- }
- return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
- }
- });
- }
- function makeInvokeMethod(innerFn, self, context) {
- var state = "suspendedStart";
- return function (method, arg) {
- if ("executing" === state) throw new Error("Generator is already running");
- if ("completed" === state) {
- if ("throw" === method) throw arg;
- return {
- value: void 0,
- done: !0
- };
- }
- for (context.method = method, context.arg = arg;;) {
- var delegate = context.delegate;
- if (delegate) {
- var delegateResult = maybeInvokeDelegate(delegate, context);
- if (delegateResult) {
- if (delegateResult === ContinueSentinel) continue;
- return delegateResult;
- }
- }
- if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) {
- if ("suspendedStart" === state) throw state = "completed", context.arg;
- context.dispatchException(context.arg);
- } else "return" === context.method && context.abrupt("return", context.arg);
- state = "executing";
- var record = tryCatch(innerFn, self, context);
- if ("normal" === record.type) {
- if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue;
- return {
- value: record.arg,
- done: context.done
- };
- }
- "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg);
- }
- };
- }
- function maybeInvokeDelegate(delegate, context) {
- var methodName = context.method,
- method = delegate.iterator[methodName];
- if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel;
- var record = tryCatch(method, delegate.iterator, context.arg);
- if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel;
- var info = record.arg;
- return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel);
- }
- function pushTryEntry(locs) {
- var entry = {
- tryLoc: locs[0]
- };
- 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);
- }
- function resetTryEntry(entry) {
- var record = entry.completion || {};
- record.type = "normal", delete record.arg, entry.completion = record;
- }
- function Context(tryLocsList) {
- this.tryEntries = [{
- tryLoc: "root"
- }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);
- }
- function values(iterable) {
- if (iterable || "" === iterable) {
- var iteratorMethod = iterable[iteratorSymbol];
- if (iteratorMethod) return iteratorMethod.call(iterable);
- if ("function" == typeof iterable.next) return iterable;
- if (!isNaN(iterable.length)) {
- var i = -1,
- next = function next() {
- for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;
- return next.value = undefined, next.done = !0, next;
- };
- return next.next = next;
- }
- }
- throw new TypeError(_typeof(iterable) + " is not iterable");
- }
- return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", {
- value: GeneratorFunctionPrototype,
- configurable: !0
- }), defineProperty(GeneratorFunctionPrototype, "constructor", {
- value: GeneratorFunction,
- configurable: !0
- }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) {
- var ctor = "function" == typeof genFun && genFun.constructor;
- return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name));
- }, exports.mark = function (genFun) {
- return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun;
- }, exports.awrap = function (arg) {
- return {
- __await: arg
- };
- }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {
- return this;
- }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {
- void 0 === PromiseImpl && (PromiseImpl = Promise);
- var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);
- return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {
- return result.done ? result.value : iter.next();
- });
- }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () {
- return this;
- }), define(Gp, "toString", function () {
- return "[object Generator]";
- }), exports.keys = function (val) {
- var object = Object(val),
- keys = [];
- for (var key in object) keys.push(key);
- return keys.reverse(), function next() {
- for (; keys.length;) {
- var key = keys.pop();
- if (key in object) return next.value = key, next.done = !1, next;
- }
- return next.done = !0, next;
- };
- }, exports.values = values, Context.prototype = {
- constructor: Context,
- reset: function reset(skipTempReset) {
- if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);
- },
- stop: function stop() {
- this.done = !0;
- var rootRecord = this.tryEntries[0].completion;
- if ("throw" === rootRecord.type) throw rootRecord.arg;
- return this.rval;
- },
- dispatchException: function dispatchException(exception) {
- if (this.done) throw exception;
- var context = this;
- function handle(loc, caught) {
- return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught;
- }
- for (var i = this.tryEntries.length - 1; i >= 0; --i) {
- var entry = this.tryEntries[i],
- record = entry.completion;
- if ("root" === entry.tryLoc) return handle("end");
- if (entry.tryLoc <= this.prev) {
- var hasCatch = hasOwn.call(entry, "catchLoc"),
- hasFinally = hasOwn.call(entry, "finallyLoc");
- if (hasCatch && hasFinally) {
- if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);
- if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);
- } else if (hasCatch) {
- if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);
- } else {
- if (!hasFinally) throw new Error("try statement without catch or finally");
- if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);
- }
- }
- }
- },
- abrupt: function abrupt(type, arg) {
- for (var i = this.tryEntries.length - 1; i >= 0; --i) {
- var entry = this.tryEntries[i];
- if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) {
- var finallyEntry = entry;
- break;
- }
- }
- finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);
- var record = finallyEntry ? finallyEntry.completion : {};
- return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);
- },
- complete: function complete(record, afterLoc) {
- if ("throw" === record.type) throw record.arg;
- return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;
- },
- finish: function finish(finallyLoc) {
- for (var i = this.tryEntries.length - 1; i >= 0; --i) {
- var entry = this.tryEntries[i];
- if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;
- }
- },
- "catch": function _catch(tryLoc) {
- for (var i = this.tryEntries.length - 1; i >= 0; --i) {
- var entry = this.tryEntries[i];
- if (entry.tryLoc === tryLoc) {
- var record = entry.completion;
- if ("throw" === record.type) {
- var thrown = record.arg;
- resetTryEntry(entry);
- }
- return thrown;
- }
- }
- throw new Error("illegal catch attempt");
- },
- delegateYield: function delegateYield(iterable, resultName, nextLoc) {
- return this.delegate = {
- iterator: values(iterable),
- resultName: resultName,
- nextLoc: nextLoc
- }, "next" === this.method && (this.arg = undefined), ContinueSentinel;
- }
- }, exports;
-}
-module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/set.js b/WechatBot/node_modules/@babel/runtime/helpers/set.js
deleted file mode 100755
index e1356241b..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/set.js
+++ /dev/null
@@ -1,41 +0,0 @@
-var superPropBase = require("./superPropBase.js");
-var defineProperty = require("./defineProperty.js");
-function set(target, property, value, receiver) {
- if (typeof Reflect !== "undefined" && Reflect.set) {
- set = Reflect.set;
- } else {
- set = function set(target, property, value, receiver) {
- var base = superPropBase(target, property);
- var desc;
- if (base) {
- desc = Object.getOwnPropertyDescriptor(base, property);
- if (desc.set) {
- desc.set.call(receiver, value);
- return true;
- } else if (!desc.writable) {
- return false;
- }
- }
- desc = Object.getOwnPropertyDescriptor(receiver, property);
- if (desc) {
- if (!desc.writable) {
- return false;
- }
- desc.value = value;
- Object.defineProperty(receiver, property, desc);
- } else {
- defineProperty(receiver, property, value);
- }
- return true;
- };
- }
- return set(target, property, value, receiver);
-}
-function _set(target, property, value, receiver, isStrict) {
- var s = set(target, property, value, receiver || target);
- if (!s && isStrict) {
- throw new TypeError('failed to set property');
- }
- return value;
-}
-module.exports = _set, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/setPrototypeOf.js b/WechatBot/node_modules/@babel/runtime/helpers/setPrototypeOf.js
deleted file mode 100755
index e0d8b5183..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/setPrototypeOf.js
+++ /dev/null
@@ -1,8 +0,0 @@
-function _setPrototypeOf(o, p) {
- module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
- o.__proto__ = p;
- return o;
- }, module.exports.__esModule = true, module.exports["default"] = module.exports;
- return _setPrototypeOf(o, p);
-}
-module.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/skipFirstGeneratorNext.js b/WechatBot/node_modules/@babel/runtime/helpers/skipFirstGeneratorNext.js
deleted file mode 100755
index ca269aad3..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/skipFirstGeneratorNext.js
+++ /dev/null
@@ -1,8 +0,0 @@
-function _skipFirstGeneratorNext(fn) {
- return function () {
- var it = fn.apply(this, arguments);
- it.next();
- return it;
- };
-}
-module.exports = _skipFirstGeneratorNext, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/slicedToArray.js b/WechatBot/node_modules/@babel/runtime/helpers/slicedToArray.js
deleted file mode 100755
index 534b61aac..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/slicedToArray.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var arrayWithHoles = require("./arrayWithHoles.js");
-var iterableToArrayLimit = require("./iterableToArrayLimit.js");
-var unsupportedIterableToArray = require("./unsupportedIterableToArray.js");
-var nonIterableRest = require("./nonIterableRest.js");
-function _slicedToArray(arr, i) {
- return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();
-}
-module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/slicedToArrayLoose.js b/WechatBot/node_modules/@babel/runtime/helpers/slicedToArrayLoose.js
deleted file mode 100755
index b1989b489..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/slicedToArrayLoose.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var arrayWithHoles = require("./arrayWithHoles.js");
-var iterableToArrayLimitLoose = require("./iterableToArrayLimitLoose.js");
-var unsupportedIterableToArray = require("./unsupportedIterableToArray.js");
-var nonIterableRest = require("./nonIterableRest.js");
-function _slicedToArrayLoose(arr, i) {
- return arrayWithHoles(arr) || iterableToArrayLimitLoose(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();
-}
-module.exports = _slicedToArrayLoose, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/superPropBase.js b/WechatBot/node_modules/@babel/runtime/helpers/superPropBase.js
deleted file mode 100755
index e43a02938..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/superPropBase.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var getPrototypeOf = require("./getPrototypeOf.js");
-function _superPropBase(object, property) {
- while (!Object.prototype.hasOwnProperty.call(object, property)) {
- object = getPrototypeOf(object);
- if (object === null) break;
- }
- return object;
-}
-module.exports = _superPropBase, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js b/WechatBot/node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js
deleted file mode 100755
index 1ab0e7a21..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js
+++ /dev/null
@@ -1,11 +0,0 @@
-function _taggedTemplateLiteral(strings, raw) {
- if (!raw) {
- raw = strings.slice(0);
- }
- return Object.freeze(Object.defineProperties(strings, {
- raw: {
- value: Object.freeze(raw)
- }
- }));
-}
-module.exports = _taggedTemplateLiteral, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js b/WechatBot/node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js
deleted file mode 100755
index 904e1a7d0..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js
+++ /dev/null
@@ -1,8 +0,0 @@
-function _taggedTemplateLiteralLoose(strings, raw) {
- if (!raw) {
- raw = strings.slice(0);
- }
- strings.raw = raw;
- return strings;
-}
-module.exports = _taggedTemplateLiteralLoose, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/tdz.js b/WechatBot/node_modules/@babel/runtime/helpers/tdz.js
deleted file mode 100755
index 0641c76da..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/tdz.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function _tdzError(name) {
- throw new ReferenceError(name + " is not defined - temporal dead zone");
-}
-module.exports = _tdzError, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/temporalRef.js b/WechatBot/node_modules/@babel/runtime/helpers/temporalRef.js
deleted file mode 100755
index a9be53d28..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/temporalRef.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var temporalUndefined = require("./temporalUndefined.js");
-var tdz = require("./tdz.js");
-function _temporalRef(val, name) {
- return val === temporalUndefined ? tdz(name) : val;
-}
-module.exports = _temporalRef, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/temporalUndefined.js b/WechatBot/node_modules/@babel/runtime/helpers/temporalUndefined.js
deleted file mode 100755
index f8def8002..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/temporalUndefined.js
+++ /dev/null
@@ -1,2 +0,0 @@
-function _temporalUndefined() {}
-module.exports = _temporalUndefined, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/toArray.js b/WechatBot/node_modules/@babel/runtime/helpers/toArray.js
deleted file mode 100755
index 5c808c2e8..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/toArray.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var arrayWithHoles = require("./arrayWithHoles.js");
-var iterableToArray = require("./iterableToArray.js");
-var unsupportedIterableToArray = require("./unsupportedIterableToArray.js");
-var nonIterableRest = require("./nonIterableRest.js");
-function _toArray(arr) {
- return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();
-}
-module.exports = _toArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/toConsumableArray.js b/WechatBot/node_modules/@babel/runtime/helpers/toConsumableArray.js
deleted file mode 100755
index 547c6c444..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/toConsumableArray.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var arrayWithoutHoles = require("./arrayWithoutHoles.js");
-var iterableToArray = require("./iterableToArray.js");
-var unsupportedIterableToArray = require("./unsupportedIterableToArray.js");
-var nonIterableSpread = require("./nonIterableSpread.js");
-function _toConsumableArray(arr) {
- return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();
-}
-module.exports = _toConsumableArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/toPrimitive.js b/WechatBot/node_modules/@babel/runtime/helpers/toPrimitive.js
deleted file mode 100755
index adf63bb5f..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/toPrimitive.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var _typeof = require("./typeof.js")["default"];
-function _toPrimitive(input, hint) {
- if (_typeof(input) !== "object" || input === null) return input;
- var prim = input[Symbol.toPrimitive];
- if (prim !== undefined) {
- var res = prim.call(input, hint || "default");
- if (_typeof(res) !== "object") return res;
- throw new TypeError("@@toPrimitive must return a primitive value.");
- }
- return (hint === "string" ? String : Number)(input);
-}
-module.exports = _toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/toPropertyKey.js b/WechatBot/node_modules/@babel/runtime/helpers/toPropertyKey.js
deleted file mode 100755
index 320bb2b9d..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/toPropertyKey.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var _typeof = require("./typeof.js")["default"];
-var toPrimitive = require("./toPrimitive.js");
-function _toPropertyKey(arg) {
- var key = toPrimitive(arg, "string");
- return _typeof(key) === "symbol" ? key : String(key);
-}
-module.exports = _toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/typeof.js b/WechatBot/node_modules/@babel/runtime/helpers/typeof.js
deleted file mode 100755
index aa88477c9..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/typeof.js
+++ /dev/null
@@ -1,10 +0,0 @@
-function _typeof(obj) {
- "@babel/helpers - typeof";
-
- return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
- return typeof obj;
- } : function (obj) {
- return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
- }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(obj);
-}
-module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js b/WechatBot/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js
deleted file mode 100755
index b7d18c6a2..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var arrayLikeToArray = require("./arrayLikeToArray.js");
-function _unsupportedIterableToArray(o, minLen) {
- if (!o) return;
- if (typeof o === "string") return arrayLikeToArray(o, minLen);
- var n = Object.prototype.toString.call(o).slice(8, -1);
- if (n === "Object" && o.constructor) n = o.constructor.name;
- if (n === "Map" || n === "Set") return Array.from(o);
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);
-}
-module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/using.js b/WechatBot/node_modules/@babel/runtime/helpers/using.js
deleted file mode 100755
index e3ec4f1ae..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/using.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var _typeof = require("./typeof.js")["default"];
-function _using(stack, value, isAwait) {
- if (null == value) return value;
- if ("object" != _typeof(value)) throw new TypeError("using declarations can only be used with objects, null, or undefined.");
- if (isAwait) var dispose = value[Symbol.asyncDispose || Symbol["for"]("Symbol.asyncDispose")];
- if (null == dispose && (dispose = value[Symbol.dispose || Symbol["for"]("Symbol.dispose")]), "function" != typeof dispose) throw new TypeError("Property [Symbol.dispose] is not a function.");
- return stack.push({
- v: value,
- d: dispose,
- a: isAwait
- }), value;
-}
-module.exports = _using, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/wrapAsyncGenerator.js b/WechatBot/node_modules/@babel/runtime/helpers/wrapAsyncGenerator.js
deleted file mode 100755
index a62dcf028..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/wrapAsyncGenerator.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var AsyncGenerator = require("./AsyncGenerator.js");
-function _wrapAsyncGenerator(fn) {
- return function () {
- return new AsyncGenerator(fn.apply(this, arguments));
- };
-}
-module.exports = _wrapAsyncGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/wrapNativeSuper.js b/WechatBot/node_modules/@babel/runtime/helpers/wrapNativeSuper.js
deleted file mode 100755
index b6ea60c64..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/wrapNativeSuper.js
+++ /dev/null
@@ -1,31 +0,0 @@
-var getPrototypeOf = require("./getPrototypeOf.js");
-var setPrototypeOf = require("./setPrototypeOf.js");
-var isNativeFunction = require("./isNativeFunction.js");
-var construct = require("./construct.js");
-function _wrapNativeSuper(Class) {
- var _cache = typeof Map === "function" ? new Map() : undefined;
- module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {
- if (Class === null || !isNativeFunction(Class)) return Class;
- if (typeof Class !== "function") {
- throw new TypeError("Super expression must either be null or a function");
- }
- if (typeof _cache !== "undefined") {
- if (_cache.has(Class)) return _cache.get(Class);
- _cache.set(Class, Wrapper);
- }
- function Wrapper() {
- return construct(Class, arguments, getPrototypeOf(this).constructor);
- }
- Wrapper.prototype = Object.create(Class.prototype, {
- constructor: {
- value: Wrapper,
- enumerable: false,
- writable: true,
- configurable: true
- }
- });
- return setPrototypeOf(Wrapper, Class);
- }, module.exports.__esModule = true, module.exports["default"] = module.exports;
- return _wrapNativeSuper(Class);
-}
-module.exports = _wrapNativeSuper, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/wrapRegExp.js b/WechatBot/node_modules/@babel/runtime/helpers/wrapRegExp.js
deleted file mode 100755
index da710f835..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/wrapRegExp.js
+++ /dev/null
@@ -1,51 +0,0 @@
-var _typeof = require("./typeof.js")["default"];
-var setPrototypeOf = require("./setPrototypeOf.js");
-var inherits = require("./inherits.js");
-function _wrapRegExp() {
- module.exports = _wrapRegExp = function _wrapRegExp(re, groups) {
- return new BabelRegExp(re, void 0, groups);
- }, module.exports.__esModule = true, module.exports["default"] = module.exports;
- var _super = RegExp.prototype,
- _groups = new WeakMap();
- function BabelRegExp(re, flags, groups) {
- var _this = new RegExp(re, flags);
- return _groups.set(_this, groups || _groups.get(re)), setPrototypeOf(_this, BabelRegExp.prototype);
- }
- function buildGroups(result, re) {
- var g = _groups.get(re);
- return Object.keys(g).reduce(function (groups, name) {
- var i = g[name];
- if ("number" == typeof i) groups[name] = result[i];else {
- for (var k = 0; void 0 === result[i[k]] && k + 1 < i.length;) k++;
- groups[name] = result[i[k]];
- }
- return groups;
- }, Object.create(null));
- }
- return inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (str) {
- var result = _super.exec.call(this, str);
- if (result) {
- result.groups = buildGroups(result, this);
- var indices = result.indices;
- indices && (indices.groups = buildGroups(indices, this));
- }
- return result;
- }, BabelRegExp.prototype[Symbol.replace] = function (str, substitution) {
- if ("string" == typeof substitution) {
- var groups = _groups.get(this);
- return _super[Symbol.replace].call(this, str, substitution.replace(/\$<([^>]+)>/g, function (_, name) {
- var group = groups[name];
- return "$" + (Array.isArray(group) ? group.join("$") : group);
- }));
- }
- if ("function" == typeof substitution) {
- var _this = this;
- return _super[Symbol.replace].call(this, str, function () {
- var args = arguments;
- return "object" != _typeof(args[args.length - 1]) && (args = [].slice.call(args)).push(buildGroups(args, _this)), substitution.apply(this, args);
- });
- }
- return _super[Symbol.replace].call(this, str, substitution);
- }, _wrapRegExp.apply(this, arguments);
-}
-module.exports = _wrapRegExp, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/helpers/writeOnlyError.js b/WechatBot/node_modules/@babel/runtime/helpers/writeOnlyError.js
deleted file mode 100755
index c66c6f29d..000000000
--- a/WechatBot/node_modules/@babel/runtime/helpers/writeOnlyError.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function _writeOnlyError(name) {
- throw new TypeError("\"" + name + "\" is write-only");
-}
-module.exports = _writeOnlyError, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/node_modules/regenerator-runtime/LICENSE b/WechatBot/node_modules/@babel/runtime/node_modules/regenerator-runtime/LICENSE
deleted file mode 100644
index cde61b6c5..000000000
--- a/WechatBot/node_modules/@babel/runtime/node_modules/regenerator-runtime/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2014-present, Facebook, Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/WechatBot/node_modules/@babel/runtime/node_modules/regenerator-runtime/README.md b/WechatBot/node_modules/@babel/runtime/node_modules/regenerator-runtime/README.md
deleted file mode 100644
index e8702babf..000000000
--- a/WechatBot/node_modules/@babel/runtime/node_modules/regenerator-runtime/README.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# regenerator-runtime
-
-Standalone runtime for
-[Regenerator](https://github.com/facebook/regenerator)-compiled generator
-and `async` functions.
-
-To import the runtime as a module (recommended), either of the following
-import styles will work:
-```js
-// CommonJS
-const regeneratorRuntime = require("regenerator-runtime");
-
-// ECMAScript 2015
-import regeneratorRuntime from "regenerator-runtime";
-```
-
-To ensure that `regeneratorRuntime` is defined globally, either of the
-following styles will work:
-```js
-// CommonJS
-require("regenerator-runtime/runtime");
-
-// ECMAScript 2015
-import "regenerator-runtime/runtime.js";
-```
-
-To get the absolute file system path of `runtime.js`, evaluate the
-following expression:
-```js
-require("regenerator-runtime/path").path
-```
diff --git a/WechatBot/node_modules/@babel/runtime/node_modules/regenerator-runtime/package.json b/WechatBot/node_modules/@babel/runtime/node_modules/regenerator-runtime/package.json
deleted file mode 100644
index 7010b0c59..000000000
--- a/WechatBot/node_modules/@babel/runtime/node_modules/regenerator-runtime/package.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "name": "regenerator-runtime",
- "author": "Ben Newman ",
- "description": "Runtime for Regenerator-compiled generator and async functions.",
- "version": "0.14.0",
- "main": "runtime.js",
- "keywords": [
- "regenerator",
- "runtime",
- "generator",
- "async"
- ],
- "sideEffects": true,
- "repository": {
- "type": "git",
- "url": "https://github.com/facebook/regenerator/tree/main/packages/runtime"
- },
- "license": "MIT"
-}
diff --git a/WechatBot/node_modules/@babel/runtime/node_modules/regenerator-runtime/path.js b/WechatBot/node_modules/@babel/runtime/node_modules/regenerator-runtime/path.js
deleted file mode 100755
index ced878b88..000000000
--- a/WechatBot/node_modules/@babel/runtime/node_modules/regenerator-runtime/path.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**
- * Copyright (c) 2014-present, Facebook, Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-exports.path = require("path").join(
- __dirname,
- "runtime.js"
-);
diff --git a/WechatBot/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js b/WechatBot/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js
deleted file mode 100755
index efaa79b01..000000000
--- a/WechatBot/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js
+++ /dev/null
@@ -1,760 +0,0 @@
-/**
- * Copyright (c) 2014-present, Facebook, Inc.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-
-var runtime = (function (exports) {
- "use strict";
-
- var Op = Object.prototype;
- var hasOwn = Op.hasOwnProperty;
- var defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; };
- var undefined; // More compressible than void 0.
- var $Symbol = typeof Symbol === "function" ? Symbol : {};
- var iteratorSymbol = $Symbol.iterator || "@@iterator";
- var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
- var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
-
- function define(obj, key, value) {
- Object.defineProperty(obj, key, {
- value: value,
- enumerable: true,
- configurable: true,
- writable: true
- });
- return obj[key];
- }
- try {
- // IE 8 has a broken Object.defineProperty that only works on DOM objects.
- define({}, "");
- } catch (err) {
- define = function(obj, key, value) {
- return obj[key] = value;
- };
- }
-
- function wrap(innerFn, outerFn, self, tryLocsList) {
- // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.
- var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
- var generator = Object.create(protoGenerator.prototype);
- var context = new Context(tryLocsList || []);
-
- // The ._invoke method unifies the implementations of the .next,
- // .throw, and .return methods.
- defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) });
-
- return generator;
- }
- exports.wrap = wrap;
-
- // Try/catch helper to minimize deoptimizations. Returns a completion
- // record like context.tryEntries[i].completion. This interface could
- // have been (and was previously) designed to take a closure to be
- // invoked without arguments, but in all the cases we care about we
- // already have an existing method we want to call, so there's no need
- // to create a new function object. We can even get away with assuming
- // the method takes exactly one argument, since that happens to be true
- // in every case, so we don't have to touch the arguments object. The
- // only additional allocation required is the completion record, which
- // has a stable shape and so hopefully should be cheap to allocate.
- function tryCatch(fn, obj, arg) {
- try {
- return { type: "normal", arg: fn.call(obj, arg) };
- } catch (err) {
- return { type: "throw", arg: err };
- }
- }
-
- var GenStateSuspendedStart = "suspendedStart";
- var GenStateSuspendedYield = "suspendedYield";
- var GenStateExecuting = "executing";
- var GenStateCompleted = "completed";
-
- // Returning this object from the innerFn has the same effect as
- // breaking out of the dispatch switch statement.
- var ContinueSentinel = {};
-
- // Dummy constructor functions that we use as the .constructor and
- // .constructor.prototype properties for functions that return Generator
- // objects. For full spec compliance, you may wish to configure your
- // minifier not to mangle the names of these two functions.
- function Generator() {}
- function GeneratorFunction() {}
- function GeneratorFunctionPrototype() {}
-
- // This is a polyfill for %IteratorPrototype% for environments that
- // don't natively support it.
- var IteratorPrototype = {};
- define(IteratorPrototype, iteratorSymbol, function () {
- return this;
- });
-
- var getProto = Object.getPrototypeOf;
- var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
- if (NativeIteratorPrototype &&
- NativeIteratorPrototype !== Op &&
- hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
- // This environment has a native %IteratorPrototype%; use it instead
- // of the polyfill.
- IteratorPrototype = NativeIteratorPrototype;
- }
-
- var Gp = GeneratorFunctionPrototype.prototype =
- Generator.prototype = Object.create(IteratorPrototype);
- GeneratorFunction.prototype = GeneratorFunctionPrototype;
- defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: true });
- defineProperty(
- GeneratorFunctionPrototype,
- "constructor",
- { value: GeneratorFunction, configurable: true }
- );
- GeneratorFunction.displayName = define(
- GeneratorFunctionPrototype,
- toStringTagSymbol,
- "GeneratorFunction"
- );
-
- // Helper for defining the .next, .throw, and .return methods of the
- // Iterator interface in terms of a single ._invoke method.
- function defineIteratorMethods(prototype) {
- ["next", "throw", "return"].forEach(function(method) {
- define(prototype, method, function(arg) {
- return this._invoke(method, arg);
- });
- });
- }
-
- exports.isGeneratorFunction = function(genFun) {
- var ctor = typeof genFun === "function" && genFun.constructor;
- return ctor
- ? ctor === GeneratorFunction ||
- // For the native GeneratorFunction constructor, the best we can
- // do is to check its .name property.
- (ctor.displayName || ctor.name) === "GeneratorFunction"
- : false;
- };
-
- exports.mark = function(genFun) {
- if (Object.setPrototypeOf) {
- Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
- } else {
- genFun.__proto__ = GeneratorFunctionPrototype;
- define(genFun, toStringTagSymbol, "GeneratorFunction");
- }
- genFun.prototype = Object.create(Gp);
- return genFun;
- };
-
- // Within the body of any async function, `await x` is transformed to
- // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test
- // `hasOwn.call(value, "__await")` to determine if the yielded value is
- // meant to be awaited.
- exports.awrap = function(arg) {
- return { __await: arg };
- };
-
- function AsyncIterator(generator, PromiseImpl) {
- function invoke(method, arg, resolve, reject) {
- var record = tryCatch(generator[method], generator, arg);
- if (record.type === "throw") {
- reject(record.arg);
- } else {
- var result = record.arg;
- var value = result.value;
- if (value &&
- typeof value === "object" &&
- hasOwn.call(value, "__await")) {
- return PromiseImpl.resolve(value.__await).then(function(value) {
- invoke("next", value, resolve, reject);
- }, function(err) {
- invoke("throw", err, resolve, reject);
- });
- }
-
- return PromiseImpl.resolve(value).then(function(unwrapped) {
- // When a yielded Promise is resolved, its final value becomes
- // the .value of the Promise<{value,done}> result for the
- // current iteration.
- result.value = unwrapped;
- resolve(result);
- }, function(error) {
- // If a rejected Promise was yielded, throw the rejection back
- // into the async generator function so it can be handled there.
- return invoke("throw", error, resolve, reject);
- });
- }
- }
-
- var previousPromise;
-
- function enqueue(method, arg) {
- function callInvokeWithMethodAndArg() {
- return new PromiseImpl(function(resolve, reject) {
- invoke(method, arg, resolve, reject);
- });
- }
-
- return previousPromise =
- // If enqueue has been called before, then we want to wait until
- // all previous Promises have been resolved before calling invoke,
- // so that results are always delivered in the correct order. If
- // enqueue has not been called before, then it is important to
- // call invoke immediately, without waiting on a callback to fire,
- // so that the async generator function has the opportunity to do
- // any necessary setup in a predictable way. This predictability
- // is why the Promise constructor synchronously invokes its
- // executor callback, and why async functions synchronously
- // execute code before the first await. Since we implement simple
- // async functions in terms of async generators, it is especially
- // important to get this right, even though it requires care.
- previousPromise ? previousPromise.then(
- callInvokeWithMethodAndArg,
- // Avoid propagating failures to Promises returned by later
- // invocations of the iterator.
- callInvokeWithMethodAndArg
- ) : callInvokeWithMethodAndArg();
- }
-
- // Define the unified helper method that is used to implement .next,
- // .throw, and .return (see defineIteratorMethods).
- defineProperty(this, "_invoke", { value: enqueue });
- }
-
- defineIteratorMethods(AsyncIterator.prototype);
- define(AsyncIterator.prototype, asyncIteratorSymbol, function () {
- return this;
- });
- exports.AsyncIterator = AsyncIterator;
-
- // Note that simple async functions are implemented on top of
- // AsyncIterator objects; they just return a Promise for the value of
- // the final result produced by the iterator.
- exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {
- if (PromiseImpl === void 0) PromiseImpl = Promise;
-
- var iter = new AsyncIterator(
- wrap(innerFn, outerFn, self, tryLocsList),
- PromiseImpl
- );
-
- return exports.isGeneratorFunction(outerFn)
- ? iter // If outerFn is a generator, return the full iterator.
- : iter.next().then(function(result) {
- return result.done ? result.value : iter.next();
- });
- };
-
- function makeInvokeMethod(innerFn, self, context) {
- var state = GenStateSuspendedStart;
-
- return function invoke(method, arg) {
- if (state === GenStateExecuting) {
- throw new Error("Generator is already running");
- }
-
- if (state === GenStateCompleted) {
- if (method === "throw") {
- throw arg;
- }
-
- // Be forgiving, per 25.3.3.3.3 of the spec:
- // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume
- return doneResult();
- }
-
- context.method = method;
- context.arg = arg;
-
- while (true) {
- var delegate = context.delegate;
- if (delegate) {
- var delegateResult = maybeInvokeDelegate(delegate, context);
- if (delegateResult) {
- if (delegateResult === ContinueSentinel) continue;
- return delegateResult;
- }
- }
-
- if (context.method === "next") {
- // Setting context._sent for legacy support of Babel's
- // function.sent implementation.
- context.sent = context._sent = context.arg;
-
- } else if (context.method === "throw") {
- if (state === GenStateSuspendedStart) {
- state = GenStateCompleted;
- throw context.arg;
- }
-
- context.dispatchException(context.arg);
-
- } else if (context.method === "return") {
- context.abrupt("return", context.arg);
- }
-
- state = GenStateExecuting;
-
- var record = tryCatch(innerFn, self, context);
- if (record.type === "normal") {
- // If an exception is thrown from innerFn, we leave state ===
- // GenStateExecuting and loop back for another invocation.
- state = context.done
- ? GenStateCompleted
- : GenStateSuspendedYield;
-
- if (record.arg === ContinueSentinel) {
- continue;
- }
-
- return {
- value: record.arg,
- done: context.done
- };
-
- } else if (record.type === "throw") {
- state = GenStateCompleted;
- // Dispatch the exception by looping back around to the
- // context.dispatchException(context.arg) call above.
- context.method = "throw";
- context.arg = record.arg;
- }
- }
- };
- }
-
- // Call delegate.iterator[context.method](context.arg) and handle the
- // result, either by returning a { value, done } result from the
- // delegate iterator, or by modifying context.method and context.arg,
- // setting context.delegate to null, and returning the ContinueSentinel.
- function maybeInvokeDelegate(delegate, context) {
- var methodName = context.method;
- var method = delegate.iterator[methodName];
- if (method === undefined) {
- // A .throw or .return when the delegate iterator has no .throw
- // method, or a missing .next mehtod, always terminate the
- // yield* loop.
- context.delegate = null;
-
- // Note: ["return"] must be used for ES3 parsing compatibility.
- if (methodName === "throw" && delegate.iterator["return"]) {
- // If the delegate iterator has a return method, give it a
- // chance to clean up.
- context.method = "return";
- context.arg = undefined;
- maybeInvokeDelegate(delegate, context);
-
- if (context.method === "throw") {
- // If maybeInvokeDelegate(context) changed context.method from
- // "return" to "throw", let that override the TypeError below.
- return ContinueSentinel;
- }
- }
- if (methodName !== "return") {
- context.method = "throw";
- context.arg = new TypeError(
- "The iterator does not provide a '" + methodName + "' method");
- }
-
- return ContinueSentinel;
- }
-
- var record = tryCatch(method, delegate.iterator, context.arg);
-
- if (record.type === "throw") {
- context.method = "throw";
- context.arg = record.arg;
- context.delegate = null;
- return ContinueSentinel;
- }
-
- var info = record.arg;
-
- if (! info) {
- context.method = "throw";
- context.arg = new TypeError("iterator result is not an object");
- context.delegate = null;
- return ContinueSentinel;
- }
-
- if (info.done) {
- // Assign the result of the finished delegate to the temporary
- // variable specified by delegate.resultName (see delegateYield).
- context[delegate.resultName] = info.value;
-
- // Resume execution at the desired location (see delegateYield).
- context.next = delegate.nextLoc;
-
- // If context.method was "throw" but the delegate handled the
- // exception, let the outer generator proceed normally. If
- // context.method was "next", forget context.arg since it has been
- // "consumed" by the delegate iterator. If context.method was
- // "return", allow the original .return call to continue in the
- // outer generator.
- if (context.method !== "return") {
- context.method = "next";
- context.arg = undefined;
- }
-
- } else {
- // Re-yield the result returned by the delegate method.
- return info;
- }
-
- // The delegate iterator is finished, so forget it and continue with
- // the outer generator.
- context.delegate = null;
- return ContinueSentinel;
- }
-
- // Define Generator.prototype.{next,throw,return} in terms of the
- // unified ._invoke helper method.
- defineIteratorMethods(Gp);
-
- define(Gp, toStringTagSymbol, "Generator");
-
- // A Generator should always return itself as the iterator object when the
- // @@iterator function is called on it. Some browsers' implementations of the
- // iterator prototype chain incorrectly implement this, causing the Generator
- // object to not be returned from this call. This ensures that doesn't happen.
- // See https://github.com/facebook/regenerator/issues/274 for more details.
- define(Gp, iteratorSymbol, function() {
- return this;
- });
-
- define(Gp, "toString", function() {
- return "[object Generator]";
- });
-
- function pushTryEntry(locs) {
- var entry = { tryLoc: locs[0] };
-
- if (1 in locs) {
- entry.catchLoc = locs[1];
- }
-
- if (2 in locs) {
- entry.finallyLoc = locs[2];
- entry.afterLoc = locs[3];
- }
-
- this.tryEntries.push(entry);
- }
-
- function resetTryEntry(entry) {
- var record = entry.completion || {};
- record.type = "normal";
- delete record.arg;
- entry.completion = record;
- }
-
- function Context(tryLocsList) {
- // The root entry object (effectively a try statement without a catch
- // or a finally block) gives us a place to store values thrown from
- // locations where there is no enclosing try statement.
- this.tryEntries = [{ tryLoc: "root" }];
- tryLocsList.forEach(pushTryEntry, this);
- this.reset(true);
- }
-
- exports.keys = function(val) {
- var object = Object(val);
- var keys = [];
- for (var key in object) {
- keys.push(key);
- }
- keys.reverse();
-
- // Rather than returning an object with a next method, we keep
- // things simple and return the next function itself.
- return function next() {
- while (keys.length) {
- var key = keys.pop();
- if (key in object) {
- next.value = key;
- next.done = false;
- return next;
- }
- }
-
- // To avoid creating an additional object, we just hang the .value
- // and .done properties off the next function object itself. This
- // also ensures that the minifier will not anonymize the function.
- next.done = true;
- return next;
- };
- };
-
- function values(iterable) {
- if (iterable || iterable === "") {
- var iteratorMethod = iterable[iteratorSymbol];
- if (iteratorMethod) {
- return iteratorMethod.call(iterable);
- }
-
- if (typeof iterable.next === "function") {
- return iterable;
- }
-
- if (!isNaN(iterable.length)) {
- var i = -1, next = function next() {
- while (++i < iterable.length) {
- if (hasOwn.call(iterable, i)) {
- next.value = iterable[i];
- next.done = false;
- return next;
- }
- }
-
- next.value = undefined;
- next.done = true;
-
- return next;
- };
-
- return next.next = next;
- }
- }
-
- throw new TypeError(typeof iterable + " is not iterable");
- }
- exports.values = values;
-
- function doneResult() {
- return { value: undefined, done: true };
- }
-
- Context.prototype = {
- constructor: Context,
-
- reset: function(skipTempReset) {
- this.prev = 0;
- this.next = 0;
- // Resetting context._sent for legacy support of Babel's
- // function.sent implementation.
- this.sent = this._sent = undefined;
- this.done = false;
- this.delegate = null;
-
- this.method = "next";
- this.arg = undefined;
-
- this.tryEntries.forEach(resetTryEntry);
-
- if (!skipTempReset) {
- for (var name in this) {
- // Not sure about the optimal order of these conditions:
- if (name.charAt(0) === "t" &&
- hasOwn.call(this, name) &&
- !isNaN(+name.slice(1))) {
- this[name] = undefined;
- }
- }
- }
- },
-
- stop: function() {
- this.done = true;
-
- var rootEntry = this.tryEntries[0];
- var rootRecord = rootEntry.completion;
- if (rootRecord.type === "throw") {
- throw rootRecord.arg;
- }
-
- return this.rval;
- },
-
- dispatchException: function(exception) {
- if (this.done) {
- throw exception;
- }
-
- var context = this;
- function handle(loc, caught) {
- record.type = "throw";
- record.arg = exception;
- context.next = loc;
-
- if (caught) {
- // If the dispatched exception was caught by a catch block,
- // then let that catch block handle the exception normally.
- context.method = "next";
- context.arg = undefined;
- }
-
- return !! caught;
- }
-
- for (var i = this.tryEntries.length - 1; i >= 0; --i) {
- var entry = this.tryEntries[i];
- var record = entry.completion;
-
- if (entry.tryLoc === "root") {
- // Exception thrown outside of any try block that could handle
- // it, so set the completion value of the entire function to
- // throw the exception.
- return handle("end");
- }
-
- if (entry.tryLoc <= this.prev) {
- var hasCatch = hasOwn.call(entry, "catchLoc");
- var hasFinally = hasOwn.call(entry, "finallyLoc");
-
- if (hasCatch && hasFinally) {
- if (this.prev < entry.catchLoc) {
- return handle(entry.catchLoc, true);
- } else if (this.prev < entry.finallyLoc) {
- return handle(entry.finallyLoc);
- }
-
- } else if (hasCatch) {
- if (this.prev < entry.catchLoc) {
- return handle(entry.catchLoc, true);
- }
-
- } else if (hasFinally) {
- if (this.prev < entry.finallyLoc) {
- return handle(entry.finallyLoc);
- }
-
- } else {
- throw new Error("try statement without catch or finally");
- }
- }
- }
- },
-
- abrupt: function(type, arg) {
- for (var i = this.tryEntries.length - 1; i >= 0; --i) {
- var entry = this.tryEntries[i];
- if (entry.tryLoc <= this.prev &&
- hasOwn.call(entry, "finallyLoc") &&
- this.prev < entry.finallyLoc) {
- var finallyEntry = entry;
- break;
- }
- }
-
- if (finallyEntry &&
- (type === "break" ||
- type === "continue") &&
- finallyEntry.tryLoc <= arg &&
- arg <= finallyEntry.finallyLoc) {
- // Ignore the finally entry if control is not jumping to a
- // location outside the try/catch block.
- finallyEntry = null;
- }
-
- var record = finallyEntry ? finallyEntry.completion : {};
- record.type = type;
- record.arg = arg;
-
- if (finallyEntry) {
- this.method = "next";
- this.next = finallyEntry.finallyLoc;
- return ContinueSentinel;
- }
-
- return this.complete(record);
- },
-
- complete: function(record, afterLoc) {
- if (record.type === "throw") {
- throw record.arg;
- }
-
- if (record.type === "break" ||
- record.type === "continue") {
- this.next = record.arg;
- } else if (record.type === "return") {
- this.rval = this.arg = record.arg;
- this.method = "return";
- this.next = "end";
- } else if (record.type === "normal" && afterLoc) {
- this.next = afterLoc;
- }
-
- return ContinueSentinel;
- },
-
- finish: function(finallyLoc) {
- for (var i = this.tryEntries.length - 1; i >= 0; --i) {
- var entry = this.tryEntries[i];
- if (entry.finallyLoc === finallyLoc) {
- this.complete(entry.completion, entry.afterLoc);
- resetTryEntry(entry);
- return ContinueSentinel;
- }
- }
- },
-
- "catch": function(tryLoc) {
- for (var i = this.tryEntries.length - 1; i >= 0; --i) {
- var entry = this.tryEntries[i];
- if (entry.tryLoc === tryLoc) {
- var record = entry.completion;
- if (record.type === "throw") {
- var thrown = record.arg;
- resetTryEntry(entry);
- }
- return thrown;
- }
- }
-
- // The context.catch method must only be called with a location
- // argument that corresponds to a known catch block.
- throw new Error("illegal catch attempt");
- },
-
- delegateYield: function(iterable, resultName, nextLoc) {
- this.delegate = {
- iterator: values(iterable),
- resultName: resultName,
- nextLoc: nextLoc
- };
-
- if (this.method === "next") {
- // Deliberately forget the last sent value so that we don't
- // accidentally pass it on to the delegate.
- this.arg = undefined;
- }
-
- return ContinueSentinel;
- }
- };
-
- // Regardless of whether this script is executing as a CommonJS module
- // or not, return the runtime object so that we can declare the variable
- // regeneratorRuntime in the outer scope, which allows this module to be
- // injected easily by `bin/regenerator --include-runtime script.js`.
- return exports;
-
-}(
- // If this script is executing as a CommonJS module, use module.exports
- // as the regeneratorRuntime namespace. Otherwise create a new empty
- // object. Either way, the resulting object will be used to initialize
- // the regeneratorRuntime variable at the top of this file.
- typeof module === "object" ? module.exports : {}
-));
-
-try {
- regeneratorRuntime = runtime;
-} catch (accidentalStrictMode) {
- // This module should not be running in strict mode, so the above
- // assignment should always work unless something is misconfigured. Just
- // in case runtime.js accidentally runs in strict mode, in modern engines
- // we can explicitly access globalThis. In older engines we can escape
- // strict mode using a global Function call. This could conceivably fail
- // if a Content Security Policy forbids using Function, but in that case
- // the proper solution is to fix the accidental strict mode problem. If
- // you've misconfigured your bundler to force strict mode and applied a
- // CSP to forbid Function, and you're not willing to fix either of those
- // problems, please detail your unique predicament in a GitHub issue.
- if (typeof globalThis === "object") {
- globalThis.regeneratorRuntime = runtime;
- } else {
- Function("r", "regeneratorRuntime = r")(runtime);
- }
-}
diff --git a/WechatBot/node_modules/@babel/runtime/package.json b/WechatBot/node_modules/@babel/runtime/package.json
deleted file mode 100644
index 4f9b91e4c..000000000
--- a/WechatBot/node_modules/@babel/runtime/package.json
+++ /dev/null
@@ -1,957 +0,0 @@
-{
- "name": "@babel/runtime",
- "version": "7.22.10",
- "description": "babel's modular runtime helpers",
- "license": "MIT",
- "publishConfig": {
- "access": "public"
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/babel/babel.git",
- "directory": "packages/babel-runtime"
- },
- "homepage": "https://babel.dev/docs/en/next/babel-runtime",
- "author": "The Babel Team (https://babel.dev/team)",
- "dependencies": {
- "regenerator-runtime": "^0.14.0"
- },
- "exports": {
- "./helpers/AsyncGenerator": [
- {
- "node": "./helpers/AsyncGenerator.js",
- "import": "./helpers/esm/AsyncGenerator.js",
- "default": "./helpers/AsyncGenerator.js"
- },
- "./helpers/AsyncGenerator.js"
- ],
- "./helpers/esm/AsyncGenerator": "./helpers/esm/AsyncGenerator.js",
- "./helpers/OverloadYield": [
- {
- "node": "./helpers/OverloadYield.js",
- "import": "./helpers/esm/OverloadYield.js",
- "default": "./helpers/OverloadYield.js"
- },
- "./helpers/OverloadYield.js"
- ],
- "./helpers/esm/OverloadYield": "./helpers/esm/OverloadYield.js",
- "./helpers/applyDecs": [
- {
- "node": "./helpers/applyDecs.js",
- "import": "./helpers/esm/applyDecs.js",
- "default": "./helpers/applyDecs.js"
- },
- "./helpers/applyDecs.js"
- ],
- "./helpers/esm/applyDecs": "./helpers/esm/applyDecs.js",
- "./helpers/applyDecs2203": [
- {
- "node": "./helpers/applyDecs2203.js",
- "import": "./helpers/esm/applyDecs2203.js",
- "default": "./helpers/applyDecs2203.js"
- },
- "./helpers/applyDecs2203.js"
- ],
- "./helpers/esm/applyDecs2203": "./helpers/esm/applyDecs2203.js",
- "./helpers/applyDecs2203R": [
- {
- "node": "./helpers/applyDecs2203R.js",
- "import": "./helpers/esm/applyDecs2203R.js",
- "default": "./helpers/applyDecs2203R.js"
- },
- "./helpers/applyDecs2203R.js"
- ],
- "./helpers/esm/applyDecs2203R": "./helpers/esm/applyDecs2203R.js",
- "./helpers/applyDecs2301": [
- {
- "node": "./helpers/applyDecs2301.js",
- "import": "./helpers/esm/applyDecs2301.js",
- "default": "./helpers/applyDecs2301.js"
- },
- "./helpers/applyDecs2301.js"
- ],
- "./helpers/esm/applyDecs2301": "./helpers/esm/applyDecs2301.js",
- "./helpers/applyDecs2305": [
- {
- "node": "./helpers/applyDecs2305.js",
- "import": "./helpers/esm/applyDecs2305.js",
- "default": "./helpers/applyDecs2305.js"
- },
- "./helpers/applyDecs2305.js"
- ],
- "./helpers/esm/applyDecs2305": "./helpers/esm/applyDecs2305.js",
- "./helpers/asyncGeneratorDelegate": [
- {
- "node": "./helpers/asyncGeneratorDelegate.js",
- "import": "./helpers/esm/asyncGeneratorDelegate.js",
- "default": "./helpers/asyncGeneratorDelegate.js"
- },
- "./helpers/asyncGeneratorDelegate.js"
- ],
- "./helpers/esm/asyncGeneratorDelegate": "./helpers/esm/asyncGeneratorDelegate.js",
- "./helpers/asyncIterator": [
- {
- "node": "./helpers/asyncIterator.js",
- "import": "./helpers/esm/asyncIterator.js",
- "default": "./helpers/asyncIterator.js"
- },
- "./helpers/asyncIterator.js"
- ],
- "./helpers/esm/asyncIterator": "./helpers/esm/asyncIterator.js",
- "./helpers/awaitAsyncGenerator": [
- {
- "node": "./helpers/awaitAsyncGenerator.js",
- "import": "./helpers/esm/awaitAsyncGenerator.js",
- "default": "./helpers/awaitAsyncGenerator.js"
- },
- "./helpers/awaitAsyncGenerator.js"
- ],
- "./helpers/esm/awaitAsyncGenerator": "./helpers/esm/awaitAsyncGenerator.js",
- "./helpers/checkInRHS": [
- {
- "node": "./helpers/checkInRHS.js",
- "import": "./helpers/esm/checkInRHS.js",
- "default": "./helpers/checkInRHS.js"
- },
- "./helpers/checkInRHS.js"
- ],
- "./helpers/esm/checkInRHS": "./helpers/esm/checkInRHS.js",
- "./helpers/defineAccessor": [
- {
- "node": "./helpers/defineAccessor.js",
- "import": "./helpers/esm/defineAccessor.js",
- "default": "./helpers/defineAccessor.js"
- },
- "./helpers/defineAccessor.js"
- ],
- "./helpers/esm/defineAccessor": "./helpers/esm/defineAccessor.js",
- "./helpers/dispose": [
- {
- "node": "./helpers/dispose.js",
- "import": "./helpers/esm/dispose.js",
- "default": "./helpers/dispose.js"
- },
- "./helpers/dispose.js"
- ],
- "./helpers/esm/dispose": "./helpers/esm/dispose.js",
- "./helpers/iterableToArrayLimit": [
- {
- "node": "./helpers/iterableToArrayLimit.js",
- "import": "./helpers/esm/iterableToArrayLimit.js",
- "default": "./helpers/iterableToArrayLimit.js"
- },
- "./helpers/iterableToArrayLimit.js"
- ],
- "./helpers/esm/iterableToArrayLimit": "./helpers/esm/iterableToArrayLimit.js",
- "./helpers/iterableToArrayLimitLoose": [
- {
- "node": "./helpers/iterableToArrayLimitLoose.js",
- "import": "./helpers/esm/iterableToArrayLimitLoose.js",
- "default": "./helpers/iterableToArrayLimitLoose.js"
- },
- "./helpers/iterableToArrayLimitLoose.js"
- ],
- "./helpers/esm/iterableToArrayLimitLoose": "./helpers/esm/iterableToArrayLimitLoose.js",
- "./helpers/jsx": [
- {
- "node": "./helpers/jsx.js",
- "import": "./helpers/esm/jsx.js",
- "default": "./helpers/jsx.js"
- },
- "./helpers/jsx.js"
- ],
- "./helpers/esm/jsx": "./helpers/esm/jsx.js",
- "./helpers/objectSpread2": [
- {
- "node": "./helpers/objectSpread2.js",
- "import": "./helpers/esm/objectSpread2.js",
- "default": "./helpers/objectSpread2.js"
- },
- "./helpers/objectSpread2.js"
- ],
- "./helpers/esm/objectSpread2": "./helpers/esm/objectSpread2.js",
- "./helpers/regeneratorRuntime": [
- {
- "node": "./helpers/regeneratorRuntime.js",
- "import": "./helpers/esm/regeneratorRuntime.js",
- "default": "./helpers/regeneratorRuntime.js"
- },
- "./helpers/regeneratorRuntime.js"
- ],
- "./helpers/esm/regeneratorRuntime": "./helpers/esm/regeneratorRuntime.js",
- "./helpers/typeof": [
- {
- "node": "./helpers/typeof.js",
- "import": "./helpers/esm/typeof.js",
- "default": "./helpers/typeof.js"
- },
- "./helpers/typeof.js"
- ],
- "./helpers/esm/typeof": "./helpers/esm/typeof.js",
- "./helpers/using": [
- {
- "node": "./helpers/using.js",
- "import": "./helpers/esm/using.js",
- "default": "./helpers/using.js"
- },
- "./helpers/using.js"
- ],
- "./helpers/esm/using": "./helpers/esm/using.js",
- "./helpers/wrapRegExp": [
- {
- "node": "./helpers/wrapRegExp.js",
- "import": "./helpers/esm/wrapRegExp.js",
- "default": "./helpers/wrapRegExp.js"
- },
- "./helpers/wrapRegExp.js"
- ],
- "./helpers/esm/wrapRegExp": "./helpers/esm/wrapRegExp.js",
- "./helpers/AwaitValue": [
- {
- "node": "./helpers/AwaitValue.js",
- "import": "./helpers/esm/AwaitValue.js",
- "default": "./helpers/AwaitValue.js"
- },
- "./helpers/AwaitValue.js"
- ],
- "./helpers/esm/AwaitValue": "./helpers/esm/AwaitValue.js",
- "./helpers/wrapAsyncGenerator": [
- {
- "node": "./helpers/wrapAsyncGenerator.js",
- "import": "./helpers/esm/wrapAsyncGenerator.js",
- "default": "./helpers/wrapAsyncGenerator.js"
- },
- "./helpers/wrapAsyncGenerator.js"
- ],
- "./helpers/esm/wrapAsyncGenerator": "./helpers/esm/wrapAsyncGenerator.js",
- "./helpers/asyncToGenerator": [
- {
- "node": "./helpers/asyncToGenerator.js",
- "import": "./helpers/esm/asyncToGenerator.js",
- "default": "./helpers/asyncToGenerator.js"
- },
- "./helpers/asyncToGenerator.js"
- ],
- "./helpers/esm/asyncToGenerator": "./helpers/esm/asyncToGenerator.js",
- "./helpers/classCallCheck": [
- {
- "node": "./helpers/classCallCheck.js",
- "import": "./helpers/esm/classCallCheck.js",
- "default": "./helpers/classCallCheck.js"
- },
- "./helpers/classCallCheck.js"
- ],
- "./helpers/esm/classCallCheck": "./helpers/esm/classCallCheck.js",
- "./helpers/createClass": [
- {
- "node": "./helpers/createClass.js",
- "import": "./helpers/esm/createClass.js",
- "default": "./helpers/createClass.js"
- },
- "./helpers/createClass.js"
- ],
- "./helpers/esm/createClass": "./helpers/esm/createClass.js",
- "./helpers/defineEnumerableProperties": [
- {
- "node": "./helpers/defineEnumerableProperties.js",
- "import": "./helpers/esm/defineEnumerableProperties.js",
- "default": "./helpers/defineEnumerableProperties.js"
- },
- "./helpers/defineEnumerableProperties.js"
- ],
- "./helpers/esm/defineEnumerableProperties": "./helpers/esm/defineEnumerableProperties.js",
- "./helpers/defaults": [
- {
- "node": "./helpers/defaults.js",
- "import": "./helpers/esm/defaults.js",
- "default": "./helpers/defaults.js"
- },
- "./helpers/defaults.js"
- ],
- "./helpers/esm/defaults": "./helpers/esm/defaults.js",
- "./helpers/defineProperty": [
- {
- "node": "./helpers/defineProperty.js",
- "import": "./helpers/esm/defineProperty.js",
- "default": "./helpers/defineProperty.js"
- },
- "./helpers/defineProperty.js"
- ],
- "./helpers/esm/defineProperty": "./helpers/esm/defineProperty.js",
- "./helpers/extends": [
- {
- "node": "./helpers/extends.js",
- "import": "./helpers/esm/extends.js",
- "default": "./helpers/extends.js"
- },
- "./helpers/extends.js"
- ],
- "./helpers/esm/extends": "./helpers/esm/extends.js",
- "./helpers/objectSpread": [
- {
- "node": "./helpers/objectSpread.js",
- "import": "./helpers/esm/objectSpread.js",
- "default": "./helpers/objectSpread.js"
- },
- "./helpers/objectSpread.js"
- ],
- "./helpers/esm/objectSpread": "./helpers/esm/objectSpread.js",
- "./helpers/inherits": [
- {
- "node": "./helpers/inherits.js",
- "import": "./helpers/esm/inherits.js",
- "default": "./helpers/inherits.js"
- },
- "./helpers/inherits.js"
- ],
- "./helpers/esm/inherits": "./helpers/esm/inherits.js",
- "./helpers/inheritsLoose": [
- {
- "node": "./helpers/inheritsLoose.js",
- "import": "./helpers/esm/inheritsLoose.js",
- "default": "./helpers/inheritsLoose.js"
- },
- "./helpers/inheritsLoose.js"
- ],
- "./helpers/esm/inheritsLoose": "./helpers/esm/inheritsLoose.js",
- "./helpers/getPrototypeOf": [
- {
- "node": "./helpers/getPrototypeOf.js",
- "import": "./helpers/esm/getPrototypeOf.js",
- "default": "./helpers/getPrototypeOf.js"
- },
- "./helpers/getPrototypeOf.js"
- ],
- "./helpers/esm/getPrototypeOf": "./helpers/esm/getPrototypeOf.js",
- "./helpers/setPrototypeOf": [
- {
- "node": "./helpers/setPrototypeOf.js",
- "import": "./helpers/esm/setPrototypeOf.js",
- "default": "./helpers/setPrototypeOf.js"
- },
- "./helpers/setPrototypeOf.js"
- ],
- "./helpers/esm/setPrototypeOf": "./helpers/esm/setPrototypeOf.js",
- "./helpers/isNativeReflectConstruct": [
- {
- "node": "./helpers/isNativeReflectConstruct.js",
- "import": "./helpers/esm/isNativeReflectConstruct.js",
- "default": "./helpers/isNativeReflectConstruct.js"
- },
- "./helpers/isNativeReflectConstruct.js"
- ],
- "./helpers/esm/isNativeReflectConstruct": "./helpers/esm/isNativeReflectConstruct.js",
- "./helpers/construct": [
- {
- "node": "./helpers/construct.js",
- "import": "./helpers/esm/construct.js",
- "default": "./helpers/construct.js"
- },
- "./helpers/construct.js"
- ],
- "./helpers/esm/construct": "./helpers/esm/construct.js",
- "./helpers/isNativeFunction": [
- {
- "node": "./helpers/isNativeFunction.js",
- "import": "./helpers/esm/isNativeFunction.js",
- "default": "./helpers/isNativeFunction.js"
- },
- "./helpers/isNativeFunction.js"
- ],
- "./helpers/esm/isNativeFunction": "./helpers/esm/isNativeFunction.js",
- "./helpers/wrapNativeSuper": [
- {
- "node": "./helpers/wrapNativeSuper.js",
- "import": "./helpers/esm/wrapNativeSuper.js",
- "default": "./helpers/wrapNativeSuper.js"
- },
- "./helpers/wrapNativeSuper.js"
- ],
- "./helpers/esm/wrapNativeSuper": "./helpers/esm/wrapNativeSuper.js",
- "./helpers/instanceof": [
- {
- "node": "./helpers/instanceof.js",
- "import": "./helpers/esm/instanceof.js",
- "default": "./helpers/instanceof.js"
- },
- "./helpers/instanceof.js"
- ],
- "./helpers/esm/instanceof": "./helpers/esm/instanceof.js",
- "./helpers/interopRequireDefault": [
- {
- "node": "./helpers/interopRequireDefault.js",
- "import": "./helpers/esm/interopRequireDefault.js",
- "default": "./helpers/interopRequireDefault.js"
- },
- "./helpers/interopRequireDefault.js"
- ],
- "./helpers/esm/interopRequireDefault": "./helpers/esm/interopRequireDefault.js",
- "./helpers/interopRequireWildcard": [
- {
- "node": "./helpers/interopRequireWildcard.js",
- "import": "./helpers/esm/interopRequireWildcard.js",
- "default": "./helpers/interopRequireWildcard.js"
- },
- "./helpers/interopRequireWildcard.js"
- ],
- "./helpers/esm/interopRequireWildcard": "./helpers/esm/interopRequireWildcard.js",
- "./helpers/newArrowCheck": [
- {
- "node": "./helpers/newArrowCheck.js",
- "import": "./helpers/esm/newArrowCheck.js",
- "default": "./helpers/newArrowCheck.js"
- },
- "./helpers/newArrowCheck.js"
- ],
- "./helpers/esm/newArrowCheck": "./helpers/esm/newArrowCheck.js",
- "./helpers/objectDestructuringEmpty": [
- {
- "node": "./helpers/objectDestructuringEmpty.js",
- "import": "./helpers/esm/objectDestructuringEmpty.js",
- "default": "./helpers/objectDestructuringEmpty.js"
- },
- "./helpers/objectDestructuringEmpty.js"
- ],
- "./helpers/esm/objectDestructuringEmpty": "./helpers/esm/objectDestructuringEmpty.js",
- "./helpers/objectWithoutPropertiesLoose": [
- {
- "node": "./helpers/objectWithoutPropertiesLoose.js",
- "import": "./helpers/esm/objectWithoutPropertiesLoose.js",
- "default": "./helpers/objectWithoutPropertiesLoose.js"
- },
- "./helpers/objectWithoutPropertiesLoose.js"
- ],
- "./helpers/esm/objectWithoutPropertiesLoose": "./helpers/esm/objectWithoutPropertiesLoose.js",
- "./helpers/objectWithoutProperties": [
- {
- "node": "./helpers/objectWithoutProperties.js",
- "import": "./helpers/esm/objectWithoutProperties.js",
- "default": "./helpers/objectWithoutProperties.js"
- },
- "./helpers/objectWithoutProperties.js"
- ],
- "./helpers/esm/objectWithoutProperties": "./helpers/esm/objectWithoutProperties.js",
- "./helpers/assertThisInitialized": [
- {
- "node": "./helpers/assertThisInitialized.js",
- "import": "./helpers/esm/assertThisInitialized.js",
- "default": "./helpers/assertThisInitialized.js"
- },
- "./helpers/assertThisInitialized.js"
- ],
- "./helpers/esm/assertThisInitialized": "./helpers/esm/assertThisInitialized.js",
- "./helpers/possibleConstructorReturn": [
- {
- "node": "./helpers/possibleConstructorReturn.js",
- "import": "./helpers/esm/possibleConstructorReturn.js",
- "default": "./helpers/possibleConstructorReturn.js"
- },
- "./helpers/possibleConstructorReturn.js"
- ],
- "./helpers/esm/possibleConstructorReturn": "./helpers/esm/possibleConstructorReturn.js",
- "./helpers/createSuper": [
- {
- "node": "./helpers/createSuper.js",
- "import": "./helpers/esm/createSuper.js",
- "default": "./helpers/createSuper.js"
- },
- "./helpers/createSuper.js"
- ],
- "./helpers/esm/createSuper": "./helpers/esm/createSuper.js",
- "./helpers/superPropBase": [
- {
- "node": "./helpers/superPropBase.js",
- "import": "./helpers/esm/superPropBase.js",
- "default": "./helpers/superPropBase.js"
- },
- "./helpers/superPropBase.js"
- ],
- "./helpers/esm/superPropBase": "./helpers/esm/superPropBase.js",
- "./helpers/get": [
- {
- "node": "./helpers/get.js",
- "import": "./helpers/esm/get.js",
- "default": "./helpers/get.js"
- },
- "./helpers/get.js"
- ],
- "./helpers/esm/get": "./helpers/esm/get.js",
- "./helpers/set": [
- {
- "node": "./helpers/set.js",
- "import": "./helpers/esm/set.js",
- "default": "./helpers/set.js"
- },
- "./helpers/set.js"
- ],
- "./helpers/esm/set": "./helpers/esm/set.js",
- "./helpers/taggedTemplateLiteral": [
- {
- "node": "./helpers/taggedTemplateLiteral.js",
- "import": "./helpers/esm/taggedTemplateLiteral.js",
- "default": "./helpers/taggedTemplateLiteral.js"
- },
- "./helpers/taggedTemplateLiteral.js"
- ],
- "./helpers/esm/taggedTemplateLiteral": "./helpers/esm/taggedTemplateLiteral.js",
- "./helpers/taggedTemplateLiteralLoose": [
- {
- "node": "./helpers/taggedTemplateLiteralLoose.js",
- "import": "./helpers/esm/taggedTemplateLiteralLoose.js",
- "default": "./helpers/taggedTemplateLiteralLoose.js"
- },
- "./helpers/taggedTemplateLiteralLoose.js"
- ],
- "./helpers/esm/taggedTemplateLiteralLoose": "./helpers/esm/taggedTemplateLiteralLoose.js",
- "./helpers/readOnlyError": [
- {
- "node": "./helpers/readOnlyError.js",
- "import": "./helpers/esm/readOnlyError.js",
- "default": "./helpers/readOnlyError.js"
- },
- "./helpers/readOnlyError.js"
- ],
- "./helpers/esm/readOnlyError": "./helpers/esm/readOnlyError.js",
- "./helpers/writeOnlyError": [
- {
- "node": "./helpers/writeOnlyError.js",
- "import": "./helpers/esm/writeOnlyError.js",
- "default": "./helpers/writeOnlyError.js"
- },
- "./helpers/writeOnlyError.js"
- ],
- "./helpers/esm/writeOnlyError": "./helpers/esm/writeOnlyError.js",
- "./helpers/classNameTDZError": [
- {
- "node": "./helpers/classNameTDZError.js",
- "import": "./helpers/esm/classNameTDZError.js",
- "default": "./helpers/classNameTDZError.js"
- },
- "./helpers/classNameTDZError.js"
- ],
- "./helpers/esm/classNameTDZError": "./helpers/esm/classNameTDZError.js",
- "./helpers/temporalUndefined": [
- {
- "node": "./helpers/temporalUndefined.js",
- "import": "./helpers/esm/temporalUndefined.js",
- "default": "./helpers/temporalUndefined.js"
- },
- "./helpers/temporalUndefined.js"
- ],
- "./helpers/esm/temporalUndefined": "./helpers/esm/temporalUndefined.js",
- "./helpers/tdz": [
- {
- "node": "./helpers/tdz.js",
- "import": "./helpers/esm/tdz.js",
- "default": "./helpers/tdz.js"
- },
- "./helpers/tdz.js"
- ],
- "./helpers/esm/tdz": "./helpers/esm/tdz.js",
- "./helpers/temporalRef": [
- {
- "node": "./helpers/temporalRef.js",
- "import": "./helpers/esm/temporalRef.js",
- "default": "./helpers/temporalRef.js"
- },
- "./helpers/temporalRef.js"
- ],
- "./helpers/esm/temporalRef": "./helpers/esm/temporalRef.js",
- "./helpers/slicedToArray": [
- {
- "node": "./helpers/slicedToArray.js",
- "import": "./helpers/esm/slicedToArray.js",
- "default": "./helpers/slicedToArray.js"
- },
- "./helpers/slicedToArray.js"
- ],
- "./helpers/esm/slicedToArray": "./helpers/esm/slicedToArray.js",
- "./helpers/slicedToArrayLoose": [
- {
- "node": "./helpers/slicedToArrayLoose.js",
- "import": "./helpers/esm/slicedToArrayLoose.js",
- "default": "./helpers/slicedToArrayLoose.js"
- },
- "./helpers/slicedToArrayLoose.js"
- ],
- "./helpers/esm/slicedToArrayLoose": "./helpers/esm/slicedToArrayLoose.js",
- "./helpers/toArray": [
- {
- "node": "./helpers/toArray.js",
- "import": "./helpers/esm/toArray.js",
- "default": "./helpers/toArray.js"
- },
- "./helpers/toArray.js"
- ],
- "./helpers/esm/toArray": "./helpers/esm/toArray.js",
- "./helpers/toConsumableArray": [
- {
- "node": "./helpers/toConsumableArray.js",
- "import": "./helpers/esm/toConsumableArray.js",
- "default": "./helpers/toConsumableArray.js"
- },
- "./helpers/toConsumableArray.js"
- ],
- "./helpers/esm/toConsumableArray": "./helpers/esm/toConsumableArray.js",
- "./helpers/arrayWithoutHoles": [
- {
- "node": "./helpers/arrayWithoutHoles.js",
- "import": "./helpers/esm/arrayWithoutHoles.js",
- "default": "./helpers/arrayWithoutHoles.js"
- },
- "./helpers/arrayWithoutHoles.js"
- ],
- "./helpers/esm/arrayWithoutHoles": "./helpers/esm/arrayWithoutHoles.js",
- "./helpers/arrayWithHoles": [
- {
- "node": "./helpers/arrayWithHoles.js",
- "import": "./helpers/esm/arrayWithHoles.js",
- "default": "./helpers/arrayWithHoles.js"
- },
- "./helpers/arrayWithHoles.js"
- ],
- "./helpers/esm/arrayWithHoles": "./helpers/esm/arrayWithHoles.js",
- "./helpers/maybeArrayLike": [
- {
- "node": "./helpers/maybeArrayLike.js",
- "import": "./helpers/esm/maybeArrayLike.js",
- "default": "./helpers/maybeArrayLike.js"
- },
- "./helpers/maybeArrayLike.js"
- ],
- "./helpers/esm/maybeArrayLike": "./helpers/esm/maybeArrayLike.js",
- "./helpers/iterableToArray": [
- {
- "node": "./helpers/iterableToArray.js",
- "import": "./helpers/esm/iterableToArray.js",
- "default": "./helpers/iterableToArray.js"
- },
- "./helpers/iterableToArray.js"
- ],
- "./helpers/esm/iterableToArray": "./helpers/esm/iterableToArray.js",
- "./helpers/unsupportedIterableToArray": [
- {
- "node": "./helpers/unsupportedIterableToArray.js",
- "import": "./helpers/esm/unsupportedIterableToArray.js",
- "default": "./helpers/unsupportedIterableToArray.js"
- },
- "./helpers/unsupportedIterableToArray.js"
- ],
- "./helpers/esm/unsupportedIterableToArray": "./helpers/esm/unsupportedIterableToArray.js",
- "./helpers/arrayLikeToArray": [
- {
- "node": "./helpers/arrayLikeToArray.js",
- "import": "./helpers/esm/arrayLikeToArray.js",
- "default": "./helpers/arrayLikeToArray.js"
- },
- "./helpers/arrayLikeToArray.js"
- ],
- "./helpers/esm/arrayLikeToArray": "./helpers/esm/arrayLikeToArray.js",
- "./helpers/nonIterableSpread": [
- {
- "node": "./helpers/nonIterableSpread.js",
- "import": "./helpers/esm/nonIterableSpread.js",
- "default": "./helpers/nonIterableSpread.js"
- },
- "./helpers/nonIterableSpread.js"
- ],
- "./helpers/esm/nonIterableSpread": "./helpers/esm/nonIterableSpread.js",
- "./helpers/nonIterableRest": [
- {
- "node": "./helpers/nonIterableRest.js",
- "import": "./helpers/esm/nonIterableRest.js",
- "default": "./helpers/nonIterableRest.js"
- },
- "./helpers/nonIterableRest.js"
- ],
- "./helpers/esm/nonIterableRest": "./helpers/esm/nonIterableRest.js",
- "./helpers/createForOfIteratorHelper": [
- {
- "node": "./helpers/createForOfIteratorHelper.js",
- "import": "./helpers/esm/createForOfIteratorHelper.js",
- "default": "./helpers/createForOfIteratorHelper.js"
- },
- "./helpers/createForOfIteratorHelper.js"
- ],
- "./helpers/esm/createForOfIteratorHelper": "./helpers/esm/createForOfIteratorHelper.js",
- "./helpers/createForOfIteratorHelperLoose": [
- {
- "node": "./helpers/createForOfIteratorHelperLoose.js",
- "import": "./helpers/esm/createForOfIteratorHelperLoose.js",
- "default": "./helpers/createForOfIteratorHelperLoose.js"
- },
- "./helpers/createForOfIteratorHelperLoose.js"
- ],
- "./helpers/esm/createForOfIteratorHelperLoose": "./helpers/esm/createForOfIteratorHelperLoose.js",
- "./helpers/skipFirstGeneratorNext": [
- {
- "node": "./helpers/skipFirstGeneratorNext.js",
- "import": "./helpers/esm/skipFirstGeneratorNext.js",
- "default": "./helpers/skipFirstGeneratorNext.js"
- },
- "./helpers/skipFirstGeneratorNext.js"
- ],
- "./helpers/esm/skipFirstGeneratorNext": "./helpers/esm/skipFirstGeneratorNext.js",
- "./helpers/toPrimitive": [
- {
- "node": "./helpers/toPrimitive.js",
- "import": "./helpers/esm/toPrimitive.js",
- "default": "./helpers/toPrimitive.js"
- },
- "./helpers/toPrimitive.js"
- ],
- "./helpers/esm/toPrimitive": "./helpers/esm/toPrimitive.js",
- "./helpers/toPropertyKey": [
- {
- "node": "./helpers/toPropertyKey.js",
- "import": "./helpers/esm/toPropertyKey.js",
- "default": "./helpers/toPropertyKey.js"
- },
- "./helpers/toPropertyKey.js"
- ],
- "./helpers/esm/toPropertyKey": "./helpers/esm/toPropertyKey.js",
- "./helpers/initializerWarningHelper": [
- {
- "node": "./helpers/initializerWarningHelper.js",
- "import": "./helpers/esm/initializerWarningHelper.js",
- "default": "./helpers/initializerWarningHelper.js"
- },
- "./helpers/initializerWarningHelper.js"
- ],
- "./helpers/esm/initializerWarningHelper": "./helpers/esm/initializerWarningHelper.js",
- "./helpers/initializerDefineProperty": [
- {
- "node": "./helpers/initializerDefineProperty.js",
- "import": "./helpers/esm/initializerDefineProperty.js",
- "default": "./helpers/initializerDefineProperty.js"
- },
- "./helpers/initializerDefineProperty.js"
- ],
- "./helpers/esm/initializerDefineProperty": "./helpers/esm/initializerDefineProperty.js",
- "./helpers/applyDecoratedDescriptor": [
- {
- "node": "./helpers/applyDecoratedDescriptor.js",
- "import": "./helpers/esm/applyDecoratedDescriptor.js",
- "default": "./helpers/applyDecoratedDescriptor.js"
- },
- "./helpers/applyDecoratedDescriptor.js"
- ],
- "./helpers/esm/applyDecoratedDescriptor": "./helpers/esm/applyDecoratedDescriptor.js",
- "./helpers/classPrivateFieldLooseKey": [
- {
- "node": "./helpers/classPrivateFieldLooseKey.js",
- "import": "./helpers/esm/classPrivateFieldLooseKey.js",
- "default": "./helpers/classPrivateFieldLooseKey.js"
- },
- "./helpers/classPrivateFieldLooseKey.js"
- ],
- "./helpers/esm/classPrivateFieldLooseKey": "./helpers/esm/classPrivateFieldLooseKey.js",
- "./helpers/classPrivateFieldLooseBase": [
- {
- "node": "./helpers/classPrivateFieldLooseBase.js",
- "import": "./helpers/esm/classPrivateFieldLooseBase.js",
- "default": "./helpers/classPrivateFieldLooseBase.js"
- },
- "./helpers/classPrivateFieldLooseBase.js"
- ],
- "./helpers/esm/classPrivateFieldLooseBase": "./helpers/esm/classPrivateFieldLooseBase.js",
- "./helpers/classPrivateFieldGet": [
- {
- "node": "./helpers/classPrivateFieldGet.js",
- "import": "./helpers/esm/classPrivateFieldGet.js",
- "default": "./helpers/classPrivateFieldGet.js"
- },
- "./helpers/classPrivateFieldGet.js"
- ],
- "./helpers/esm/classPrivateFieldGet": "./helpers/esm/classPrivateFieldGet.js",
- "./helpers/classPrivateFieldSet": [
- {
- "node": "./helpers/classPrivateFieldSet.js",
- "import": "./helpers/esm/classPrivateFieldSet.js",
- "default": "./helpers/classPrivateFieldSet.js"
- },
- "./helpers/classPrivateFieldSet.js"
- ],
- "./helpers/esm/classPrivateFieldSet": "./helpers/esm/classPrivateFieldSet.js",
- "./helpers/classPrivateFieldDestructureSet": [
- {
- "node": "./helpers/classPrivateFieldDestructureSet.js",
- "import": "./helpers/esm/classPrivateFieldDestructureSet.js",
- "default": "./helpers/classPrivateFieldDestructureSet.js"
- },
- "./helpers/classPrivateFieldDestructureSet.js"
- ],
- "./helpers/esm/classPrivateFieldDestructureSet": "./helpers/esm/classPrivateFieldDestructureSet.js",
- "./helpers/classExtractFieldDescriptor": [
- {
- "node": "./helpers/classExtractFieldDescriptor.js",
- "import": "./helpers/esm/classExtractFieldDescriptor.js",
- "default": "./helpers/classExtractFieldDescriptor.js"
- },
- "./helpers/classExtractFieldDescriptor.js"
- ],
- "./helpers/esm/classExtractFieldDescriptor": "./helpers/esm/classExtractFieldDescriptor.js",
- "./helpers/classStaticPrivateFieldSpecGet": [
- {
- "node": "./helpers/classStaticPrivateFieldSpecGet.js",
- "import": "./helpers/esm/classStaticPrivateFieldSpecGet.js",
- "default": "./helpers/classStaticPrivateFieldSpecGet.js"
- },
- "./helpers/classStaticPrivateFieldSpecGet.js"
- ],
- "./helpers/esm/classStaticPrivateFieldSpecGet": "./helpers/esm/classStaticPrivateFieldSpecGet.js",
- "./helpers/classStaticPrivateFieldSpecSet": [
- {
- "node": "./helpers/classStaticPrivateFieldSpecSet.js",
- "import": "./helpers/esm/classStaticPrivateFieldSpecSet.js",
- "default": "./helpers/classStaticPrivateFieldSpecSet.js"
- },
- "./helpers/classStaticPrivateFieldSpecSet.js"
- ],
- "./helpers/esm/classStaticPrivateFieldSpecSet": "./helpers/esm/classStaticPrivateFieldSpecSet.js",
- "./helpers/classStaticPrivateMethodGet": [
- {
- "node": "./helpers/classStaticPrivateMethodGet.js",
- "import": "./helpers/esm/classStaticPrivateMethodGet.js",
- "default": "./helpers/classStaticPrivateMethodGet.js"
- },
- "./helpers/classStaticPrivateMethodGet.js"
- ],
- "./helpers/esm/classStaticPrivateMethodGet": "./helpers/esm/classStaticPrivateMethodGet.js",
- "./helpers/classStaticPrivateMethodSet": [
- {
- "node": "./helpers/classStaticPrivateMethodSet.js",
- "import": "./helpers/esm/classStaticPrivateMethodSet.js",
- "default": "./helpers/classStaticPrivateMethodSet.js"
- },
- "./helpers/classStaticPrivateMethodSet.js"
- ],
- "./helpers/esm/classStaticPrivateMethodSet": "./helpers/esm/classStaticPrivateMethodSet.js",
- "./helpers/classApplyDescriptorGet": [
- {
- "node": "./helpers/classApplyDescriptorGet.js",
- "import": "./helpers/esm/classApplyDescriptorGet.js",
- "default": "./helpers/classApplyDescriptorGet.js"
- },
- "./helpers/classApplyDescriptorGet.js"
- ],
- "./helpers/esm/classApplyDescriptorGet": "./helpers/esm/classApplyDescriptorGet.js",
- "./helpers/classApplyDescriptorSet": [
- {
- "node": "./helpers/classApplyDescriptorSet.js",
- "import": "./helpers/esm/classApplyDescriptorSet.js",
- "default": "./helpers/classApplyDescriptorSet.js"
- },
- "./helpers/classApplyDescriptorSet.js"
- ],
- "./helpers/esm/classApplyDescriptorSet": "./helpers/esm/classApplyDescriptorSet.js",
- "./helpers/classApplyDescriptorDestructureSet": [
- {
- "node": "./helpers/classApplyDescriptorDestructureSet.js",
- "import": "./helpers/esm/classApplyDescriptorDestructureSet.js",
- "default": "./helpers/classApplyDescriptorDestructureSet.js"
- },
- "./helpers/classApplyDescriptorDestructureSet.js"
- ],
- "./helpers/esm/classApplyDescriptorDestructureSet": "./helpers/esm/classApplyDescriptorDestructureSet.js",
- "./helpers/classStaticPrivateFieldDestructureSet": [
- {
- "node": "./helpers/classStaticPrivateFieldDestructureSet.js",
- "import": "./helpers/esm/classStaticPrivateFieldDestructureSet.js",
- "default": "./helpers/classStaticPrivateFieldDestructureSet.js"
- },
- "./helpers/classStaticPrivateFieldDestructureSet.js"
- ],
- "./helpers/esm/classStaticPrivateFieldDestructureSet": "./helpers/esm/classStaticPrivateFieldDestructureSet.js",
- "./helpers/classCheckPrivateStaticAccess": [
- {
- "node": "./helpers/classCheckPrivateStaticAccess.js",
- "import": "./helpers/esm/classCheckPrivateStaticAccess.js",
- "default": "./helpers/classCheckPrivateStaticAccess.js"
- },
- "./helpers/classCheckPrivateStaticAccess.js"
- ],
- "./helpers/esm/classCheckPrivateStaticAccess": "./helpers/esm/classCheckPrivateStaticAccess.js",
- "./helpers/classCheckPrivateStaticFieldDescriptor": [
- {
- "node": "./helpers/classCheckPrivateStaticFieldDescriptor.js",
- "import": "./helpers/esm/classCheckPrivateStaticFieldDescriptor.js",
- "default": "./helpers/classCheckPrivateStaticFieldDescriptor.js"
- },
- "./helpers/classCheckPrivateStaticFieldDescriptor.js"
- ],
- "./helpers/esm/classCheckPrivateStaticFieldDescriptor": "./helpers/esm/classCheckPrivateStaticFieldDescriptor.js",
- "./helpers/decorate": [
- {
- "node": "./helpers/decorate.js",
- "import": "./helpers/esm/decorate.js",
- "default": "./helpers/decorate.js"
- },
- "./helpers/decorate.js"
- ],
- "./helpers/esm/decorate": "./helpers/esm/decorate.js",
- "./helpers/classPrivateMethodGet": [
- {
- "node": "./helpers/classPrivateMethodGet.js",
- "import": "./helpers/esm/classPrivateMethodGet.js",
- "default": "./helpers/classPrivateMethodGet.js"
- },
- "./helpers/classPrivateMethodGet.js"
- ],
- "./helpers/esm/classPrivateMethodGet": "./helpers/esm/classPrivateMethodGet.js",
- "./helpers/checkPrivateRedeclaration": [
- {
- "node": "./helpers/checkPrivateRedeclaration.js",
- "import": "./helpers/esm/checkPrivateRedeclaration.js",
- "default": "./helpers/checkPrivateRedeclaration.js"
- },
- "./helpers/checkPrivateRedeclaration.js"
- ],
- "./helpers/esm/checkPrivateRedeclaration": "./helpers/esm/checkPrivateRedeclaration.js",
- "./helpers/classPrivateFieldInitSpec": [
- {
- "node": "./helpers/classPrivateFieldInitSpec.js",
- "import": "./helpers/esm/classPrivateFieldInitSpec.js",
- "default": "./helpers/classPrivateFieldInitSpec.js"
- },
- "./helpers/classPrivateFieldInitSpec.js"
- ],
- "./helpers/esm/classPrivateFieldInitSpec": "./helpers/esm/classPrivateFieldInitSpec.js",
- "./helpers/classPrivateMethodInitSpec": [
- {
- "node": "./helpers/classPrivateMethodInitSpec.js",
- "import": "./helpers/esm/classPrivateMethodInitSpec.js",
- "default": "./helpers/classPrivateMethodInitSpec.js"
- },
- "./helpers/classPrivateMethodInitSpec.js"
- ],
- "./helpers/esm/classPrivateMethodInitSpec": "./helpers/esm/classPrivateMethodInitSpec.js",
- "./helpers/classPrivateMethodSet": [
- {
- "node": "./helpers/classPrivateMethodSet.js",
- "import": "./helpers/esm/classPrivateMethodSet.js",
- "default": "./helpers/classPrivateMethodSet.js"
- },
- "./helpers/classPrivateMethodSet.js"
- ],
- "./helpers/esm/classPrivateMethodSet": "./helpers/esm/classPrivateMethodSet.js",
- "./helpers/identity": [
- {
- "node": "./helpers/identity.js",
- "import": "./helpers/esm/identity.js",
- "default": "./helpers/identity.js"
- },
- "./helpers/identity.js"
- ],
- "./helpers/esm/identity": "./helpers/esm/identity.js",
- "./package": "./package.json",
- "./package.json": "./package.json",
- "./regenerator": "./regenerator/index.js",
- "./regenerator/*.js": "./regenerator/*.js",
- "./regenerator/": "./regenerator/"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "type": "commonjs"
-}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@babel/runtime/regenerator/index.js b/WechatBot/node_modules/@babel/runtime/regenerator/index.js
deleted file mode 100755
index 588135736..000000000
--- a/WechatBot/node_modules/@babel/runtime/regenerator/index.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// TODO(Babel 8): Remove this file.
-
-var runtime = require("../helpers/regeneratorRuntime")();
-module.exports = runtime;
-
-// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=
-try {
- regeneratorRuntime = runtime;
-} catch (accidentalStrictMode) {
- if (typeof globalThis === "object") {
- globalThis.regeneratorRuntime = runtime;
- } else {
- Function("r", "regeneratorRuntime = r")(runtime);
- }
-}
diff --git a/WechatBot/node_modules/@jimp/bmp/CHANGELOG.md b/WechatBot/node_modules/@jimp/bmp/CHANGELOG.md
deleted file mode 100644
index 4eb3193f9..000000000
--- a/WechatBot/node_modules/@jimp/bmp/CHANGELOG.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# v0.16.3 (Sat Feb 04 2023)
-
-#### ⚠️ Pushed to `master`
-
-- upgrade prettier ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 1
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
----
-
-# v0.11.0 (Fri May 15 2020)
-
-#### 🚀 Enhancement
-
-- Removed Core-JS as a dependency. [#882](https://github.com/oliver-moran/jimp/pull/882) ([@EricRabil](https://github.com/EricRabil))
-
-#### Authors: 1
-
-- Eric Rabil ([@EricRabil](https://github.com/EricRabil))
-
----
-
-# v0.9.3 (Tue Nov 26 2019)
-
-#### 🐛 Bug Fix
-
-- `@jimp/cli`, `@jimp/core`, `@jimp/custom`, `jimp`, `@jimp/plugin-blit`, `@jimp/plugin-blur`, `@jimp/plugin-circle`, `@jimp/plugin-color`, `@jimp/plugin-contain`, `@jimp/plugin-cover`, `@jimp/plugin-crop`, `@jimp/plugin-displace`, `@jimp/plugin-dither`, `@jimp/plugin-fisheye`, `@jimp/plugin-flip`, `@jimp/plugin-gaussian`, `@jimp/plugin-invert`, `@jimp/plugin-mask`, `@jimp/plugin-normalize`, `@jimp/plugin-print`, `@jimp/plugin-resize`, `@jimp/plugin-rotate`, `@jimp/plugin-scale`, `@jimp/plugin-shadow`, `@jimp/plugin-threshold`, `@jimp/plugins`, `@jimp/test-utils`, `@jimp/bmp`, `@jimp/gif`, `@jimp/jpeg`, `@jimp/png`, `@jimp/tiff`, `@jimp/types`, `@jimp/utils`
- - Fix regeneratorRuntime errors [#815](https://github.com/oliver-moran/jimp/pull/815) ([@crutchcorn](https://github.com/crutchcorn) [@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 2
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
diff --git a/WechatBot/node_modules/@jimp/bmp/LICENSE b/WechatBot/node_modules/@jimp/bmp/LICENSE
deleted file mode 100644
index baa5d4850..000000000
--- a/WechatBot/node_modules/@jimp/bmp/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Oliver Moran
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/WechatBot/node_modules/@jimp/bmp/README.md b/WechatBot/node_modules/@jimp/bmp/README.md
deleted file mode 100644
index dd90e545c..000000000
--- a/WechatBot/node_modules/@jimp/bmp/README.md
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
@jimp/bmp
-
Default Jimp bmp encoder/decoder.
-
diff --git a/WechatBot/node_modules/@jimp/bmp/dist/index.js b/WechatBot/node_modules/@jimp/bmp/dist/index.js
deleted file mode 100755
index 21e16f37a..000000000
--- a/WechatBot/node_modules/@jimp/bmp/dist/index.js
+++ /dev/null
@@ -1,71 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports["default"] = void 0;
-
-var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
-
-var _bmpJs = _interopRequireDefault(require("bmp-js"));
-
-var _utils = require("@jimp/utils");
-
-var MIME_TYPE = "image/bmp";
-var MIME_TYPE_SECOND = "image/x-ms-bmp";
-
-function toAGBR(image) {
- return (0, _utils.scan)(image, 0, 0, image.bitmap.width, image.bitmap.height, function (x, y, index) {
- var red = this.bitmap.data[index + 0];
- var green = this.bitmap.data[index + 1];
- var blue = this.bitmap.data[index + 2];
- var alpha = this.bitmap.data[index + 3];
- this.bitmap.data[index + 0] = alpha;
- this.bitmap.data[index + 1] = blue;
- this.bitmap.data[index + 2] = green;
- this.bitmap.data[index + 3] = red;
- }).bitmap;
-}
-
-function fromAGBR(bitmap) {
- return (0, _utils.scan)({
- bitmap: bitmap
- }, 0, 0, bitmap.width, bitmap.height, function (x, y, index) {
- var alpha = this.bitmap.data[index + 0];
- var blue = this.bitmap.data[index + 1];
- var green = this.bitmap.data[index + 2];
- var red = this.bitmap.data[index + 3];
- this.bitmap.data[index + 0] = red;
- this.bitmap.data[index + 1] = green;
- this.bitmap.data[index + 2] = blue;
- this.bitmap.data[index + 3] = bitmap.is_with_alpha ? alpha : 0xff;
- }).bitmap;
-}
-
-var decode = function decode(data) {
- return fromAGBR(_bmpJs["default"].decode(data));
-};
-
-var encode = function encode(image) {
- return _bmpJs["default"].encode(toAGBR(image)).data;
-};
-
-var _default = function _default() {
- var _decoders, _encoders;
-
- return {
- mime: (0, _defineProperty2["default"])({}, MIME_TYPE, ["bmp"]),
- constants: {
- MIME_BMP: MIME_TYPE,
- MIME_X_MS_BMP: MIME_TYPE_SECOND
- },
- decoders: (_decoders = {}, (0, _defineProperty2["default"])(_decoders, MIME_TYPE, decode), (0, _defineProperty2["default"])(_decoders, MIME_TYPE_SECOND, decode), _decoders),
- encoders: (_encoders = {}, (0, _defineProperty2["default"])(_encoders, MIME_TYPE, encode), (0, _defineProperty2["default"])(_encoders, MIME_TYPE_SECOND, encode), _encoders)
- };
-};
-
-exports["default"] = _default;
-module.exports = exports.default;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/bmp/dist/index.js.map b/WechatBot/node_modules/@jimp/bmp/dist/index.js.map
deleted file mode 100644
index efd390ba0..000000000
--- a/WechatBot/node_modules/@jimp/bmp/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/index.js"],"names":["MIME_TYPE","MIME_TYPE_SECOND","toAGBR","image","bitmap","width","height","x","y","index","red","data","green","blue","alpha","fromAGBR","is_with_alpha","decode","BMP","encode","mime","constants","MIME_BMP","MIME_X_MS_BMP","decoders","encoders"],"mappings":"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","sourcesContent":["import BMP from \"bmp-js\";\nimport { scan } from \"@jimp/utils\";\n\nconst MIME_TYPE = \"image/bmp\";\nconst MIME_TYPE_SECOND = \"image/x-ms-bmp\";\n\nfunction toAGBR(image) {\n return scan(\n image,\n 0,\n 0,\n image.bitmap.width,\n image.bitmap.height,\n function (x, y, index) {\n const red = this.bitmap.data[index + 0];\n const green = this.bitmap.data[index + 1];\n const blue = this.bitmap.data[index + 2];\n const alpha = this.bitmap.data[index + 3];\n\n this.bitmap.data[index + 0] = alpha;\n this.bitmap.data[index + 1] = blue;\n this.bitmap.data[index + 2] = green;\n this.bitmap.data[index + 3] = red;\n }\n ).bitmap;\n}\n\nfunction fromAGBR(bitmap) {\n return scan(\n { bitmap },\n 0,\n 0,\n bitmap.width,\n bitmap.height,\n function (x, y, index) {\n const alpha = this.bitmap.data[index + 0];\n const blue = this.bitmap.data[index + 1];\n const green = this.bitmap.data[index + 2];\n const red = this.bitmap.data[index + 3];\n\n this.bitmap.data[index + 0] = red;\n this.bitmap.data[index + 1] = green;\n this.bitmap.data[index + 2] = blue;\n this.bitmap.data[index + 3] = bitmap.is_with_alpha ? alpha : 0xff;\n }\n ).bitmap;\n}\n\nconst decode = (data) => fromAGBR(BMP.decode(data));\nconst encode = (image) => BMP.encode(toAGBR(image)).data;\n\nexport default () => ({\n mime: { [MIME_TYPE]: [\"bmp\"] },\n\n constants: {\n MIME_BMP: MIME_TYPE,\n MIME_X_MS_BMP: MIME_TYPE_SECOND,\n },\n\n decoders: {\n [MIME_TYPE]: decode,\n [MIME_TYPE_SECOND]: decode,\n },\n\n encoders: {\n [MIME_TYPE]: encode,\n [MIME_TYPE_SECOND]: encode,\n },\n});\n"],"file":"index.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/bmp/index.d.ts b/WechatBot/node_modules/@jimp/bmp/index.d.ts
deleted file mode 100644
index 0a9b9a51a..000000000
--- a/WechatBot/node_modules/@jimp/bmp/index.d.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import { DecoderFn, EncoderFn } from "@jimp/core";
-
-interface Bmp {
- constants: {
- MIME_BMP: "image/bmp";
- MIME_X_MS_BMP: "image/x-ms-bmp";
- };
-
- mime: {
- "image/bmp": string[];
- };
-
- decoders: {
- "image/bmp": DecoderFn;
- "image/x-ms-bmp": DecoderFn;
- };
-
- encoders: {
- "image/bmp": EncoderFn;
- "image/x-ms-bmp": EncoderFn;
- };
-}
-
-export default function (): Bmp;
diff --git a/WechatBot/node_modules/@jimp/bmp/package.json b/WechatBot/node_modules/@jimp/bmp/package.json
deleted file mode 100644
index d2881dc85..000000000
--- a/WechatBot/node_modules/@jimp/bmp/package.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "name": "@jimp/bmp",
- "version": "0.16.13",
- "description": "Default Jimp bmp encoder/decoder.",
- "main": "dist/index.js",
- "module": "es/index.js",
- "types": "index.d.ts",
- "scripts": {
- "test": "cross-env BABEL_ENV=test mocha --require @babel/register",
- "test:watch": "npm run test -- --reporter min --watch",
- "test:coverage": "nyc npm run test",
- "build": "npm run build:node:production && npm run build:module",
- "build:watch": "npm run build:node:debug -- -- --watch --verbose",
- "build:debug": "npm run build:node:debug",
- "build:module": "cross-env BABEL_ENV=module babel src -d es --source-maps --config-file ../../babel.config.js",
- "build:node": "babel src -d dist --source-maps --config-file ../../babel.config.js",
- "build:node:debug": "cross-env BABEL_ENV=development npm run build:node",
- "build:node:production": "cross-env BABEL_ENV=production npm run build:node"
- },
- "author": "",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13",
- "bmp-js": "^0.1.0"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- },
- "devDependencies": {
- "@jimp/custom": "^0.16.13",
- "@jimp/test-utils": "^0.16.13"
- },
- "publishConfig": {
- "access": "public"
- },
- "gitHead": "9eec86086634329a072901dca3a800b850548572"
-}
diff --git a/WechatBot/node_modules/@jimp/bmp/src/index.js b/WechatBot/node_modules/@jimp/bmp/src/index.js
deleted file mode 100755
index 12fe2c79b..000000000
--- a/WechatBot/node_modules/@jimp/bmp/src/index.js
+++ /dev/null
@@ -1,69 +0,0 @@
-import BMP from "bmp-js";
-import { scan } from "@jimp/utils";
-
-const MIME_TYPE = "image/bmp";
-const MIME_TYPE_SECOND = "image/x-ms-bmp";
-
-function toAGBR(image) {
- return scan(
- image,
- 0,
- 0,
- image.bitmap.width,
- image.bitmap.height,
- function (x, y, index) {
- const red = this.bitmap.data[index + 0];
- const green = this.bitmap.data[index + 1];
- const blue = this.bitmap.data[index + 2];
- const alpha = this.bitmap.data[index + 3];
-
- this.bitmap.data[index + 0] = alpha;
- this.bitmap.data[index + 1] = blue;
- this.bitmap.data[index + 2] = green;
- this.bitmap.data[index + 3] = red;
- }
- ).bitmap;
-}
-
-function fromAGBR(bitmap) {
- return scan(
- { bitmap },
- 0,
- 0,
- bitmap.width,
- bitmap.height,
- function (x, y, index) {
- const alpha = this.bitmap.data[index + 0];
- const blue = this.bitmap.data[index + 1];
- const green = this.bitmap.data[index + 2];
- const red = this.bitmap.data[index + 3];
-
- this.bitmap.data[index + 0] = red;
- this.bitmap.data[index + 1] = green;
- this.bitmap.data[index + 2] = blue;
- this.bitmap.data[index + 3] = bitmap.is_with_alpha ? alpha : 0xff;
- }
- ).bitmap;
-}
-
-const decode = (data) => fromAGBR(BMP.decode(data));
-const encode = (image) => BMP.encode(toAGBR(image)).data;
-
-export default () => ({
- mime: { [MIME_TYPE]: ["bmp"] },
-
- constants: {
- MIME_BMP: MIME_TYPE,
- MIME_X_MS_BMP: MIME_TYPE_SECOND,
- },
-
- decoders: {
- [MIME_TYPE]: decode,
- [MIME_TYPE_SECOND]: decode,
- },
-
- encoders: {
- [MIME_TYPE]: encode,
- [MIME_TYPE_SECOND]: encode,
- },
-});
diff --git a/WechatBot/node_modules/@jimp/bmp/test/bmp.test.js b/WechatBot/node_modules/@jimp/bmp/test/bmp.test.js
deleted file mode 100755
index c72536eed..000000000
--- a/WechatBot/node_modules/@jimp/bmp/test/bmp.test.js
+++ /dev/null
@@ -1,47 +0,0 @@
-/* eslint-disable no-control-regex */
-
-import { Jimp, getTestDir } from "@jimp/test-utils";
-import configure from "@jimp/custom";
-
-import bmp from "../src";
-
-const jimp = configure({ types: [bmp] }, Jimp);
-
-describe("BMP", () => {
- const imagesDir = getTestDir(__dirname) + "/images";
-
- it("load BMP", async () => {
- const image = await jimp.read(imagesDir + "/windows95.bmp");
-
- image.getPixelColor(10, 10).should.be.equal(0xeff7f7ff);
- image.getPixelColor(150, 80).should.be.equal(0x73add6ff);
- image.getPixelColor(190, 200).should.be.equal(0xf7c300ff);
- });
-
- it("export BMP", async () => {
- const image = await jimp.read({
- width: 3,
- height: 3,
- data: [
- 0xff0000ff, 0xff0080ff, 0xff00ffff, 0xff0080ff, 0xff00ffff, 0x8000ffff,
- 0xff00ffff, 0x8000ffff, 0x0000ffff,
- ],
- });
- const buffer = await image.getBufferAsync("image/bmp");
-
- buffer.toString().should.match(/^BMZ\u0000/);
- });
-
- it("uses correct colors for BMP", async function () {
- this.timeout(4000);
-
- const expectedImg = await jimp.read(
- getTestDir(__dirname) + "/images/windows95.png"
- );
- const image = await jimp.read(
- getTestDir(__dirname) + "/images/windows95.bmp"
- );
-
- image.bitmap.data.should.be.deepEqual(expectedImg.bitmap.data);
- });
-});
diff --git a/WechatBot/node_modules/@jimp/bmp/test/images/windows95.bmp b/WechatBot/node_modules/@jimp/bmp/test/images/windows95.bmp
deleted file mode 100644
index b5f870eb3..000000000
Binary files a/WechatBot/node_modules/@jimp/bmp/test/images/windows95.bmp and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/bmp/test/images/windows95.png b/WechatBot/node_modules/@jimp/bmp/test/images/windows95.png
deleted file mode 100644
index 95bb07993..000000000
Binary files a/WechatBot/node_modules/@jimp/bmp/test/images/windows95.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/core/CHANGELOG.md b/WechatBot/node_modules/@jimp/core/CHANGELOG.md
deleted file mode 100644
index d709b8282..000000000
--- a/WechatBot/node_modules/@jimp/core/CHANGELOG.md
+++ /dev/null
@@ -1,104 +0,0 @@
-# v0.16.3 (Sat Feb 04 2023)
-
-#### 🐛 Bug Fix
-
-- Fix edgeHandling types [#1080](https://github.com/jimp-dev/jimp/pull/1080) ([@domdomegg](https://github.com/domdomegg))
-- upgrade file-type [#1108](https://github.com/jimp-dev/jimp/pull/1108) ([@krudos](https://github.com/krudos))
-
-#### ⚠️ Pushed to `master`
-
-- try this ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- update linting ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- upgrade prettier ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 3
-
-- [@krudos](https://github.com/krudos)
-- Adam Jones ([@domdomegg](https://github.com/domdomegg))
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
----
-
-# v0.14.0 (Mon Jun 29 2020)
-
-#### 🚀 Enhancement
-
-- include Addition (Add) blending mode + Officially drop support for Node 8 [#904](https://github.com/oliver-moran/jimp/pull/904) ([@GlitchyPSIX](https://github.com/GlitchyPSIX))
-
-#### Authors: 1
-
-- GlitchyPSI ([@GlitchyPSIX](https://github.com/GlitchyPSIX))
-
----
-
-# v0.11.0 (Fri May 15 2020)
-
-#### 🚀 Enhancement
-
-- Removed Core-JS as a dependency. [#882](https://github.com/oliver-moran/jimp/pull/882) ([@EricRabil](https://github.com/EricRabil))
-
-#### 🐛 Bug Fix
-
-- Make callback optional for Jimp.rgbaToInt [#889](https://github.com/oliver-moran/jimp/pull/889) ([@HanKruiger](https://github.com/HanKruiger))
-
-#### Authors: 2
-
-- Eric Rabil ([@EricRabil](https://github.com/EricRabil))
-- Han Kruiger ([@HanKruiger](https://github.com/HanKruiger))
-
----
-
-# v0.10.2 (Tue Apr 14 2020)
-
-#### 🐛 Bug Fix
-
-- Rewrite handling EXIF orientation — add tests, make it plugin-independent [#875](https://github.com/oliver-moran/jimp/pull/875) ([@skalee](https://github.com/skalee))
-
-#### Authors: 1
-
-- Sebastian Skałacki ([@skalee](https://github.com/skalee))
-
----
-
-# v0.10.0 (Mon Mar 30 2020)
-
-#### 🚀 Enhancement
-
-- Properly split constructor and instance types [#867](https://github.com/oliver-moran/jimp/pull/867) ([@forivall](https://github.com/forivall))
-
-#### Authors: 1
-
-- Emily Marigold Klassen ([@forivall](https://github.com/forivall))
-
----
-
-# v0.9.6 (Wed Mar 18 2020)
-
-#### 🐛 Bug Fix
-
-- Relax mkdirp dependency to allow newer minimist [#857](https://github.com/oliver-moran/jimp/pull/857) ([@Den-dp](https://github.com/Den-dp))
-
-#### 🏠 Internal
-
-- Fix TypeScript error on 'next' [#858](https://github.com/oliver-moran/jimp/pull/858) ([@crutchcorn](https://github.com/crutchcorn))
-
-#### Authors: 2
-
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
-- Denis Bendrikov ([@Den-dp](https://github.com/Den-dp))
-
----
-
-# v0.9.3 (Tue Nov 26 2019)
-
-#### 🐛 Bug Fix
-
-- `@jimp/cli`, `@jimp/core`, `@jimp/custom`, `jimp`, `@jimp/plugin-blit`, `@jimp/plugin-blur`, `@jimp/plugin-circle`, `@jimp/plugin-color`, `@jimp/plugin-contain`, `@jimp/plugin-cover`, `@jimp/plugin-crop`, `@jimp/plugin-displace`, `@jimp/plugin-dither`, `@jimp/plugin-fisheye`, `@jimp/plugin-flip`, `@jimp/plugin-gaussian`, `@jimp/plugin-invert`, `@jimp/plugin-mask`, `@jimp/plugin-normalize`, `@jimp/plugin-print`, `@jimp/plugin-resize`, `@jimp/plugin-rotate`, `@jimp/plugin-scale`, `@jimp/plugin-shadow`, `@jimp/plugin-threshold`, `@jimp/plugins`, `@jimp/test-utils`, `@jimp/bmp`, `@jimp/gif`, `@jimp/jpeg`, `@jimp/png`, `@jimp/tiff`, `@jimp/types`, `@jimp/utils`
- - Fix regeneratorRuntime errors [#815](https://github.com/oliver-moran/jimp/pull/815) ([@crutchcorn](https://github.com/crutchcorn) [@hipstersmoothie](https://github.com/hipstersmoothie))
-- `@jimp/core`
- - Follow redirects [#789](https://github.com/oliver-moran/jimp/pull/789) ([@SaWey](https://github.com/SaWey) sander@solora.be)
-
-#### Authors: 2
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
diff --git a/WechatBot/node_modules/@jimp/core/LICENSE b/WechatBot/node_modules/@jimp/core/LICENSE
deleted file mode 100644
index baa5d4850..000000000
--- a/WechatBot/node_modules/@jimp/core/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Oliver Moran
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/WechatBot/node_modules/@jimp/core/README.md b/WechatBot/node_modules/@jimp/core/README.md
deleted file mode 100644
index 4ca355ff9..000000000
--- a/WechatBot/node_modules/@jimp/core/README.md
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
-
@jimp/core
-
-
-The main Jimp class. This class can be extended with types and bitmap manipulation functions. Out of the box it does not support any image type.
-
-## Available Methods
-
-### Jimp
-
-The Jimp class constructor.
-
-### addConstants
-
-Add constant or static methods to the Jimp constructor.
-
-```js
-addConstants({
- MIME_SPECIAL: "image/special",
-});
-```
-
-### addJimpMethods
-
-Add a bitmap manipulation method to Jimp constructor. These method should return this so that the function can be chain-able.
-
-```js
-addJimpMethods({
- cropCrazy: function() {
- // Your custom image manipulation method
-
- return this;
- }
-})
-
-const image = await Jimp.read(...);
-
-image.resize(10, Jimp.AUTO),
- .cropCrazy();
-
-await image.writeAsync('test.png');
-```
-
-### addType
-
-Add a image mime type to Jimp constructor. First argument is a mime type and the second is an array of file extension for that type.
-
-```js
-addType("image/special", ["spec", "special"]);
-```
diff --git a/WechatBot/node_modules/@jimp/core/dist/composite/composite-modes.js b/WechatBot/node_modules/@jimp/core/dist/composite/composite-modes.js
deleted file mode 100755
index eee30efdd..000000000
--- a/WechatBot/node_modules/@jimp/core/dist/composite/composite-modes.js
+++ /dev/null
@@ -1,236 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.srcOver = srcOver;
-exports.dstOver = dstOver;
-exports.multiply = multiply;
-exports.add = add;
-exports.screen = screen;
-exports.overlay = overlay;
-exports.darken = darken;
-exports.lighten = lighten;
-exports.hardLight = hardLight;
-exports.difference = difference;
-exports.exclusion = exclusion;
-
-function srcOver(src, dst) {
- var ops = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
- src.a *= ops;
- var a = dst.a + src.a - dst.a * src.a;
- var r = (src.r * src.a + dst.r * dst.a * (1 - src.a)) / a;
- var g = (src.g * src.a + dst.g * dst.a * (1 - src.a)) / a;
- var b = (src.b * src.a + dst.b * dst.a * (1 - src.a)) / a;
- return {
- r: r,
- g: g,
- b: b,
- a: a
- };
-}
-
-function dstOver(src, dst) {
- var ops = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
- src.a *= ops;
- var a = dst.a + src.a - dst.a * src.a;
- var r = (dst.r * dst.a + src.r * src.a * (1 - dst.a)) / a;
- var g = (dst.g * dst.a + src.g * src.a * (1 - dst.a)) / a;
- var b = (dst.b * dst.a + src.b * src.a * (1 - dst.a)) / a;
- return {
- r: r,
- g: g,
- b: b,
- a: a
- };
-}
-
-function multiply(src, dst) {
- var ops = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
- src.a *= ops;
- var a = dst.a + src.a - dst.a * src.a;
- var sra = src.r * src.a;
- var sga = src.g * src.a;
- var sba = src.b * src.a;
- var dra = dst.r * dst.a;
- var dga = dst.g * dst.a;
- var dba = dst.b * dst.a;
- var r = (sra * dra + sra * (1 - dst.a) + dra * (1 - src.a)) / a;
- var g = (sga * dga + sga * (1 - dst.a) + dga * (1 - src.a)) / a;
- var b = (sba * dba + sba * (1 - dst.a) + dba * (1 - src.a)) / a;
- return {
- r: r,
- g: g,
- b: b,
- a: a
- };
-}
-
-function add(src, dst) {
- var ops = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
- src.a *= ops;
- var a = dst.a + src.a - dst.a * src.a;
- var sra = src.r * src.a;
- var sga = src.g * src.a;
- var sba = src.b * src.a;
- var dra = dst.r * dst.a;
- var dga = dst.g * dst.a;
- var dba = dst.b * dst.a;
- var r = (sra + dra) / a;
- var g = (sga + dga) / a;
- var b = (sba + dba) / a;
- return {
- r: r,
- g: g,
- b: b,
- a: a
- };
-}
-
-function screen(src, dst) {
- var ops = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
- src.a *= ops;
- var a = dst.a + src.a - dst.a * src.a;
- var sra = src.r * src.a;
- var sga = src.g * src.a;
- var sba = src.b * src.a;
- var dra = dst.r * dst.a;
- var dga = dst.g * dst.a;
- var dba = dst.b * dst.a;
- var r = (sra * dst.a + dra * src.a - sra * dra + sra * (1 - dst.a) + dra * (1 - src.a)) / a;
- var g = (sga * dst.a + dga * src.a - sga * dga + sga * (1 - dst.a) + dga * (1 - src.a)) / a;
- var b = (sba * dst.a + dba * src.a - sba * dba + sba * (1 - dst.a) + dba * (1 - src.a)) / a;
- return {
- r: r,
- g: g,
- b: b,
- a: a
- };
-}
-
-function overlay(src, dst) {
- var ops = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
- src.a *= ops;
- var a = dst.a + src.a - dst.a * src.a;
- var sra = src.r * src.a;
- var sga = src.g * src.a;
- var sba = src.b * src.a;
- var dra = dst.r * dst.a;
- var dga = dst.g * dst.a;
- var dba = dst.b * dst.a;
- var r = (2 * dra <= dst.a ? 2 * sra * dra + sra * (1 - dst.a) + dra * (1 - src.a) : sra * (1 + dst.a) + dra * (1 + src.a) - 2 * dra * sra - dst.a * src.a) / a;
- var g = (2 * dga <= dst.a ? 2 * sga * dga + sga * (1 - dst.a) + dga * (1 - src.a) : sga * (1 + dst.a) + dga * (1 + src.a) - 2 * dga * sga - dst.a * src.a) / a;
- var b = (2 * dba <= dst.a ? 2 * sba * dba + sba * (1 - dst.a) + dba * (1 - src.a) : sba * (1 + dst.a) + dba * (1 + src.a) - 2 * dba * sba - dst.a * src.a) / a;
- return {
- r: r,
- g: g,
- b: b,
- a: a
- };
-}
-
-function darken(src, dst) {
- var ops = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
- src.a *= ops;
- var a = dst.a + src.a - dst.a * src.a;
- var sra = src.r * src.a;
- var sga = src.g * src.a;
- var sba = src.b * src.a;
- var dra = dst.r * dst.a;
- var dga = dst.g * dst.a;
- var dba = dst.b * dst.a;
- var r = (Math.min(sra * dst.a, dra * src.a) + sra * (1 - dst.a) + dra * (1 - src.a)) / a;
- var g = (Math.min(sga * dst.a, dga * src.a) + sga * (1 - dst.a) + dga * (1 - src.a)) / a;
- var b = (Math.min(sba * dst.a, dba * src.a) + sba * (1 - dst.a) + dba * (1 - src.a)) / a;
- return {
- r: r,
- g: g,
- b: b,
- a: a
- };
-}
-
-function lighten(src, dst) {
- var ops = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
- src.a *= ops;
- var a = dst.a + src.a - dst.a * src.a;
- var sra = src.r * src.a;
- var sga = src.g * src.a;
- var sba = src.b * src.a;
- var dra = dst.r * dst.a;
- var dga = dst.g * dst.a;
- var dba = dst.b * dst.a;
- var r = (Math.max(sra * dst.a, dra * src.a) + sra * (1 - dst.a) + dra * (1 - src.a)) / a;
- var g = (Math.max(sga * dst.a, dga * src.a) + sga * (1 - dst.a) + dga * (1 - src.a)) / a;
- var b = (Math.max(sba * dst.a, dba * src.a) + sba * (1 - dst.a) + dba * (1 - src.a)) / a;
- return {
- r: r,
- g: g,
- b: b,
- a: a
- };
-}
-
-function hardLight(src, dst) {
- var ops = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
- src.a *= ops;
- var a = dst.a + src.a - dst.a * src.a;
- var sra = src.r * src.a;
- var sga = src.g * src.a;
- var sba = src.b * src.a;
- var dra = dst.r * dst.a;
- var dga = dst.g * dst.a;
- var dba = dst.b * dst.a;
- var r = (2 * sra <= src.a ? 2 * sra * dra + sra * (1 - dst.a) + dra * (1 - src.a) : sra * (1 + dst.a) + dra * (1 + src.a) - 2 * dra * sra - dst.a * src.a) / a;
- var g = (2 * sga <= src.a ? 2 * sga * dga + sga * (1 - dst.a) + dga * (1 - src.a) : sga * (1 + dst.a) + dga * (1 + src.a) - 2 * dga * sga - dst.a * src.a) / a;
- var b = (2 * sba <= src.a ? 2 * sba * dba + sba * (1 - dst.a) + dba * (1 - src.a) : sba * (1 + dst.a) + dba * (1 + src.a) - 2 * dba * sba - dst.a * src.a) / a;
- return {
- r: r,
- g: g,
- b: b,
- a: a
- };
-}
-
-function difference(src, dst) {
- var ops = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
- src.a *= ops;
- var a = dst.a + src.a - dst.a * src.a;
- var sra = src.r * src.a;
- var sga = src.g * src.a;
- var sba = src.b * src.a;
- var dra = dst.r * dst.a;
- var dga = dst.g * dst.a;
- var dba = dst.b * dst.a;
- var r = (sra + dra - 2 * Math.min(sra * dst.a, dra * src.a)) / a;
- var g = (sga + dga - 2 * Math.min(sga * dst.a, dga * src.a)) / a;
- var b = (sba + dba - 2 * Math.min(sba * dst.a, dba * src.a)) / a;
- return {
- r: r,
- g: g,
- b: b,
- a: a
- };
-}
-
-function exclusion(src, dst) {
- var ops = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
- src.a *= ops;
- var a = dst.a + src.a - dst.a * src.a;
- var sra = src.r * src.a;
- var sga = src.g * src.a;
- var sba = src.b * src.a;
- var dra = dst.r * dst.a;
- var dga = dst.g * dst.a;
- var dba = dst.b * dst.a;
- var r = (sra * dst.a + dra * src.a - 2 * sra * dra + sra * (1 - dst.a) + dra * (1 - src.a)) / a;
- var g = (sga * dst.a + dga * src.a - 2 * sga * dga + sga * (1 - dst.a) + dga * (1 - src.a)) / a;
- var b = (sba * dst.a + dba * src.a - 2 * sba * dba + sba * (1 - dst.a) + dba * (1 - src.a)) / a;
- return {
- r: r,
- g: g,
- b: b,
- a: a
- };
-}
-//# sourceMappingURL=composite-modes.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/core/dist/composite/composite-modes.js.map b/WechatBot/node_modules/@jimp/core/dist/composite/composite-modes.js.map
deleted file mode 100644
index 2d24ac883..000000000
--- a/WechatBot/node_modules/@jimp/core/dist/composite/composite-modes.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/composite/composite-modes.js"],"names":["srcOver","src","dst","ops","a","r","g","b","dstOver","multiply","sra","sga","sba","dra","dga","dba","add","screen","overlay","darken","Math","min","lighten","max","hardLight","difference","exclusion"],"mappings":"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","sourcesContent":["export function srcOver(src, dst, ops = 1) {\n src.a *= ops;\n\n const a = dst.a + src.a - dst.a * src.a;\n\n const r = (src.r * src.a + dst.r * dst.a * (1 - src.a)) / a;\n const g = (src.g * src.a + dst.g * dst.a * (1 - src.a)) / a;\n const b = (src.b * src.a + dst.b * dst.a * (1 - src.a)) / a;\n\n return { r, g, b, a };\n}\n\nexport function dstOver(src, dst, ops = 1) {\n src.a *= ops;\n\n const a = dst.a + src.a - dst.a * src.a;\n\n const r = (dst.r * dst.a + src.r * src.a * (1 - dst.a)) / a;\n const g = (dst.g * dst.a + src.g * src.a * (1 - dst.a)) / a;\n const b = (dst.b * dst.a + src.b * src.a * (1 - dst.a)) / a;\n\n return { r, g, b, a };\n}\n\nexport function multiply(src, dst, ops = 1) {\n src.a *= ops;\n\n const a = dst.a + src.a - dst.a * src.a;\n\n const sra = src.r * src.a;\n const sga = src.g * src.a;\n const sba = src.b * src.a;\n\n const dra = dst.r * dst.a;\n const dga = dst.g * dst.a;\n const dba = dst.b * dst.a;\n\n const r = (sra * dra + sra * (1 - dst.a) + dra * (1 - src.a)) / a;\n const g = (sga * dga + sga * (1 - dst.a) + dga * (1 - src.a)) / a;\n const b = (sba * dba + sba * (1 - dst.a) + dba * (1 - src.a)) / a;\n\n return { r, g, b, a };\n}\n\nexport function add(src, dst, ops = 1) {\n src.a *= ops;\n\n const a = dst.a + src.a - dst.a * src.a;\n\n const sra = src.r * src.a;\n const sga = src.g * src.a;\n const sba = src.b * src.a;\n\n const dra = dst.r * dst.a;\n const dga = dst.g * dst.a;\n const dba = dst.b * dst.a;\n\n const r = (sra + dra) / a;\n const g = (sga + dga) / a;\n const b = (sba + dba) / a;\n\n return { r, g, b, a };\n}\n\nexport function screen(src, dst, ops = 1) {\n src.a *= ops;\n\n const a = dst.a + src.a - dst.a * src.a;\n\n const sra = src.r * src.a;\n const sga = src.g * src.a;\n const sba = src.b * src.a;\n\n const dra = dst.r * dst.a;\n const dga = dst.g * dst.a;\n const dba = dst.b * dst.a;\n\n const r =\n (sra * dst.a +\n dra * src.a -\n sra * dra +\n sra * (1 - dst.a) +\n dra * (1 - src.a)) /\n a;\n const g =\n (sga * dst.a +\n dga * src.a -\n sga * dga +\n sga * (1 - dst.a) +\n dga * (1 - src.a)) /\n a;\n const b =\n (sba * dst.a +\n dba * src.a -\n sba * dba +\n sba * (1 - dst.a) +\n dba * (1 - src.a)) /\n a;\n\n return { r, g, b, a };\n}\n\nexport function overlay(src, dst, ops = 1) {\n src.a *= ops;\n\n const a = dst.a + src.a - dst.a * src.a;\n\n const sra = src.r * src.a;\n const sga = src.g * src.a;\n const sba = src.b * src.a;\n\n const dra = dst.r * dst.a;\n const dga = dst.g * dst.a;\n const dba = dst.b * dst.a;\n\n const r =\n (2 * dra <= dst.a\n ? 2 * sra * dra + sra * (1 - dst.a) + dra * (1 - src.a)\n : sra * (1 + dst.a) + dra * (1 + src.a) - 2 * dra * sra - dst.a * src.a) /\n a;\n\n const g =\n (2 * dga <= dst.a\n ? 2 * sga * dga + sga * (1 - dst.a) + dga * (1 - src.a)\n : sga * (1 + dst.a) + dga * (1 + src.a) - 2 * dga * sga - dst.a * src.a) /\n a;\n\n const b =\n (2 * dba <= dst.a\n ? 2 * sba * dba + sba * (1 - dst.a) + dba * (1 - src.a)\n : sba * (1 + dst.a) + dba * (1 + src.a) - 2 * dba * sba - dst.a * src.a) /\n a;\n\n return { r, g, b, a };\n}\n\nexport function darken(src, dst, ops = 1) {\n src.a *= ops;\n\n const a = dst.a + src.a - dst.a * src.a;\n\n const sra = src.r * src.a;\n const sga = src.g * src.a;\n const sba = src.b * src.a;\n\n const dra = dst.r * dst.a;\n const dga = dst.g * dst.a;\n const dba = dst.b * dst.a;\n\n const r =\n (Math.min(sra * dst.a, dra * src.a) +\n sra * (1 - dst.a) +\n dra * (1 - src.a)) /\n a;\n const g =\n (Math.min(sga * dst.a, dga * src.a) +\n sga * (1 - dst.a) +\n dga * (1 - src.a)) /\n a;\n const b =\n (Math.min(sba * dst.a, dba * src.a) +\n sba * (1 - dst.a) +\n dba * (1 - src.a)) /\n a;\n\n return { r, g, b, a };\n}\n\nexport function lighten(src, dst, ops = 1) {\n src.a *= ops;\n\n const a = dst.a + src.a - dst.a * src.a;\n\n const sra = src.r * src.a;\n const sga = src.g * src.a;\n const sba = src.b * src.a;\n\n const dra = dst.r * dst.a;\n const dga = dst.g * dst.a;\n const dba = dst.b * dst.a;\n\n const r =\n (Math.max(sra * dst.a, dra * src.a) +\n sra * (1 - dst.a) +\n dra * (1 - src.a)) /\n a;\n const g =\n (Math.max(sga * dst.a, dga * src.a) +\n sga * (1 - dst.a) +\n dga * (1 - src.a)) /\n a;\n const b =\n (Math.max(sba * dst.a, dba * src.a) +\n sba * (1 - dst.a) +\n dba * (1 - src.a)) /\n a;\n\n return { r, g, b, a };\n}\n\nexport function hardLight(src, dst, ops = 1) {\n src.a *= ops;\n\n const a = dst.a + src.a - dst.a * src.a;\n\n const sra = src.r * src.a;\n const sga = src.g * src.a;\n const sba = src.b * src.a;\n\n const dra = dst.r * dst.a;\n const dga = dst.g * dst.a;\n const dba = dst.b * dst.a;\n\n const r =\n (2 * sra <= src.a\n ? 2 * sra * dra + sra * (1 - dst.a) + dra * (1 - src.a)\n : sra * (1 + dst.a) + dra * (1 + src.a) - 2 * dra * sra - dst.a * src.a) /\n a;\n\n const g =\n (2 * sga <= src.a\n ? 2 * sga * dga + sga * (1 - dst.a) + dga * (1 - src.a)\n : sga * (1 + dst.a) + dga * (1 + src.a) - 2 * dga * sga - dst.a * src.a) /\n a;\n\n const b =\n (2 * sba <= src.a\n ? 2 * sba * dba + sba * (1 - dst.a) + dba * (1 - src.a)\n : sba * (1 + dst.a) + dba * (1 + src.a) - 2 * dba * sba - dst.a * src.a) /\n a;\n\n return { r, g, b, a };\n}\n\nexport function difference(src, dst, ops = 1) {\n src.a *= ops;\n\n const a = dst.a + src.a - dst.a * src.a;\n\n const sra = src.r * src.a;\n const sga = src.g * src.a;\n const sba = src.b * src.a;\n\n const dra = dst.r * dst.a;\n const dga = dst.g * dst.a;\n const dba = dst.b * dst.a;\n\n const r = (sra + dra - 2 * Math.min(sra * dst.a, dra * src.a)) / a;\n const g = (sga + dga - 2 * Math.min(sga * dst.a, dga * src.a)) / a;\n const b = (sba + dba - 2 * Math.min(sba * dst.a, dba * src.a)) / a;\n\n return { r, g, b, a };\n}\n\nexport function exclusion(src, dst, ops = 1) {\n src.a *= ops;\n\n const a = dst.a + src.a - dst.a * src.a;\n\n const sra = src.r * src.a;\n const sga = src.g * src.a;\n const sba = src.b * src.a;\n\n const dra = dst.r * dst.a;\n const dga = dst.g * dst.a;\n const dba = dst.b * dst.a;\n\n const r =\n (sra * dst.a +\n dra * src.a -\n 2 * sra * dra +\n sra * (1 - dst.a) +\n dra * (1 - src.a)) /\n a;\n const g =\n (sga * dst.a +\n dga * src.a -\n 2 * sga * dga +\n sga * (1 - dst.a) +\n dga * (1 - src.a)) /\n a;\n const b =\n (sba * dst.a +\n dba * src.a -\n 2 * sba * dba +\n sba * (1 - dst.a) +\n dba * (1 - src.a)) /\n a;\n\n return { r, g, b, a };\n}\n"],"file":"composite-modes.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/core/dist/composite/index.js b/WechatBot/node_modules/@jimp/core/dist/composite/index.js
deleted file mode 100755
index a308d8dec..000000000
--- a/WechatBot/node_modules/@jimp/core/dist/composite/index.js
+++ /dev/null
@@ -1,97 +0,0 @@
-"use strict";
-
-var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports["default"] = composite;
-
-var _utils = require("@jimp/utils");
-
-var constants = _interopRequireWildcard(require("../constants"));
-
-var compositeModes = _interopRequireWildcard(require("./composite-modes"));
-
-/**
- * Composites a source image over to this image respecting alpha channels
- * @param {Jimp} src the source Jimp instance
- * @param {number} x the x position to blit the image
- * @param {number} y the y position to blit the image
- * @param {object} options determine what mode to use
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
-function composite(src, x, y) {
- var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
- var cb = arguments.length > 4 ? arguments[4] : undefined;
-
- if (typeof options === "function") {
- cb = options;
- options = {};
- }
-
- if (!(src instanceof this.constructor)) {
- return _utils.throwError.call(this, "The source must be a Jimp image", cb);
- }
-
- if (typeof x !== "number" || typeof y !== "number") {
- return _utils.throwError.call(this, "x and y must be numbers", cb);
- }
-
- var _options = options,
- mode = _options.mode,
- opacitySource = _options.opacitySource,
- opacityDest = _options.opacityDest;
-
- if (!mode) {
- mode = constants.BLEND_SOURCE_OVER;
- }
-
- if (typeof opacitySource !== "number" || opacitySource < 0 || opacitySource > 1) {
- opacitySource = 1.0;
- }
-
- if (typeof opacityDest !== "number" || opacityDest < 0 || opacityDest > 1) {
- opacityDest = 1.0;
- } // eslint-disable-next-line import/namespace
-
-
- var blendmode = compositeModes[mode]; // round input
-
- x = Math.round(x);
- y = Math.round(y);
- var baseImage = this;
-
- if (opacityDest !== 1.0) {
- baseImage.opacity(opacityDest);
- }
-
- src.scanQuiet(0, 0, src.bitmap.width, src.bitmap.height, function (sx, sy, idx) {
- var dstIdx = baseImage.getPixelIndex(x + sx, y + sy, constants.EDGE_CROP);
- var blended = blendmode({
- r: this.bitmap.data[idx + 0] / 255,
- g: this.bitmap.data[idx + 1] / 255,
- b: this.bitmap.data[idx + 2] / 255,
- a: this.bitmap.data[idx + 3] / 255
- }, {
- r: baseImage.bitmap.data[dstIdx + 0] / 255,
- g: baseImage.bitmap.data[dstIdx + 1] / 255,
- b: baseImage.bitmap.data[dstIdx + 2] / 255,
- a: baseImage.bitmap.data[dstIdx + 3] / 255
- }, opacitySource);
- baseImage.bitmap.data[dstIdx + 0] = this.constructor.limit255(blended.r * 255);
- baseImage.bitmap.data[dstIdx + 1] = this.constructor.limit255(blended.g * 255);
- baseImage.bitmap.data[dstIdx + 2] = this.constructor.limit255(blended.b * 255);
- baseImage.bitmap.data[dstIdx + 3] = this.constructor.limit255(blended.a * 255);
- });
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
-}
-
-module.exports = exports.default;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/core/dist/composite/index.js.map b/WechatBot/node_modules/@jimp/core/dist/composite/index.js.map
deleted file mode 100644
index f55a37489..000000000
--- a/WechatBot/node_modules/@jimp/core/dist/composite/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/composite/index.js"],"names":["composite","src","x","y","options","cb","constructor","throwError","call","mode","opacitySource","opacityDest","constants","BLEND_SOURCE_OVER","blendmode","compositeModes","Math","round","baseImage","opacity","scanQuiet","bitmap","width","height","sx","sy","idx","dstIdx","getPixelIndex","EDGE_CROP","blended","r","data","g","b","a","limit255"],"mappings":"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","sourcesContent":["import { isNodePattern, throwError } from \"@jimp/utils\";\nimport * as constants from \"../constants\";\n\nimport * as compositeModes from \"./composite-modes\";\n\n/**\n * Composites a source image over to this image respecting alpha channels\n * @param {Jimp} src the source Jimp instance\n * @param {number} x the x position to blit the image\n * @param {number} y the y position to blit the image\n * @param {object} options determine what mode to use\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp} this for chaining of methods\n */\nexport default function composite(src, x, y, options = {}, cb) {\n if (typeof options === \"function\") {\n cb = options;\n options = {};\n }\n\n if (!(src instanceof this.constructor)) {\n return throwError.call(this, \"The source must be a Jimp image\", cb);\n }\n\n if (typeof x !== \"number\" || typeof y !== \"number\") {\n return throwError.call(this, \"x and y must be numbers\", cb);\n }\n\n let { mode, opacitySource, opacityDest } = options;\n\n if (!mode) {\n mode = constants.BLEND_SOURCE_OVER;\n }\n\n if (\n typeof opacitySource !== \"number\" ||\n opacitySource < 0 ||\n opacitySource > 1\n ) {\n opacitySource = 1.0;\n }\n\n if (typeof opacityDest !== \"number\" || opacityDest < 0 || opacityDest > 1) {\n opacityDest = 1.0;\n }\n\n // eslint-disable-next-line import/namespace\n const blendmode = compositeModes[mode];\n\n // round input\n x = Math.round(x);\n y = Math.round(y);\n\n const baseImage = this;\n\n if (opacityDest !== 1.0) {\n baseImage.opacity(opacityDest);\n }\n\n src.scanQuiet(\n 0,\n 0,\n src.bitmap.width,\n src.bitmap.height,\n function (sx, sy, idx) {\n const dstIdx = baseImage.getPixelIndex(\n x + sx,\n y + sy,\n constants.EDGE_CROP\n );\n const blended = blendmode(\n {\n r: this.bitmap.data[idx + 0] / 255,\n g: this.bitmap.data[idx + 1] / 255,\n b: this.bitmap.data[idx + 2] / 255,\n a: this.bitmap.data[idx + 3] / 255,\n },\n {\n r: baseImage.bitmap.data[dstIdx + 0] / 255,\n g: baseImage.bitmap.data[dstIdx + 1] / 255,\n b: baseImage.bitmap.data[dstIdx + 2] / 255,\n a: baseImage.bitmap.data[dstIdx + 3] / 255,\n },\n opacitySource\n );\n\n baseImage.bitmap.data[dstIdx + 0] = this.constructor.limit255(\n blended.r * 255\n );\n baseImage.bitmap.data[dstIdx + 1] = this.constructor.limit255(\n blended.g * 255\n );\n baseImage.bitmap.data[dstIdx + 2] = this.constructor.limit255(\n blended.b * 255\n );\n baseImage.bitmap.data[dstIdx + 3] = this.constructor.limit255(\n blended.a * 255\n );\n }\n );\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n}\n"],"file":"index.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/core/dist/constants.js b/WechatBot/node_modules/@jimp/core/dist/constants.js
deleted file mode 100755
index 0c0c85229..000000000
--- a/WechatBot/node_modules/@jimp/core/dist/constants.js
+++ /dev/null
@@ -1,53 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.EDGE_CROP = exports.EDGE_WRAP = exports.EDGE_EXTEND = exports.BLEND_EXCLUSION = exports.BLEND_DIFFERENCE = exports.BLEND_HARDLIGHT = exports.BLEND_LIGHTEN = exports.BLEND_DARKEN = exports.BLEND_OVERLAY = exports.BLEND_SCREEN = exports.BLEND_ADD = exports.BLEND_MULTIPLY = exports.BLEND_DESTINATION_OVER = exports.BLEND_SOURCE_OVER = exports.VERTICAL_ALIGN_BOTTOM = exports.VERTICAL_ALIGN_MIDDLE = exports.VERTICAL_ALIGN_TOP = exports.HORIZONTAL_ALIGN_RIGHT = exports.HORIZONTAL_ALIGN_CENTER = exports.HORIZONTAL_ALIGN_LEFT = exports.AUTO = void 0;
-// used to auto resizing etc.
-var AUTO = -1; // Align modes for cover, contain, bit masks
-
-exports.AUTO = AUTO;
-var HORIZONTAL_ALIGN_LEFT = 1;
-exports.HORIZONTAL_ALIGN_LEFT = HORIZONTAL_ALIGN_LEFT;
-var HORIZONTAL_ALIGN_CENTER = 2;
-exports.HORIZONTAL_ALIGN_CENTER = HORIZONTAL_ALIGN_CENTER;
-var HORIZONTAL_ALIGN_RIGHT = 4;
-exports.HORIZONTAL_ALIGN_RIGHT = HORIZONTAL_ALIGN_RIGHT;
-var VERTICAL_ALIGN_TOP = 8;
-exports.VERTICAL_ALIGN_TOP = VERTICAL_ALIGN_TOP;
-var VERTICAL_ALIGN_MIDDLE = 16;
-exports.VERTICAL_ALIGN_MIDDLE = VERTICAL_ALIGN_MIDDLE;
-var VERTICAL_ALIGN_BOTTOM = 32; // blend modes
-
-exports.VERTICAL_ALIGN_BOTTOM = VERTICAL_ALIGN_BOTTOM;
-var BLEND_SOURCE_OVER = "srcOver";
-exports.BLEND_SOURCE_OVER = BLEND_SOURCE_OVER;
-var BLEND_DESTINATION_OVER = "dstOver";
-exports.BLEND_DESTINATION_OVER = BLEND_DESTINATION_OVER;
-var BLEND_MULTIPLY = "multiply";
-exports.BLEND_MULTIPLY = BLEND_MULTIPLY;
-var BLEND_ADD = "add";
-exports.BLEND_ADD = BLEND_ADD;
-var BLEND_SCREEN = "screen";
-exports.BLEND_SCREEN = BLEND_SCREEN;
-var BLEND_OVERLAY = "overlay";
-exports.BLEND_OVERLAY = BLEND_OVERLAY;
-var BLEND_DARKEN = "darken";
-exports.BLEND_DARKEN = BLEND_DARKEN;
-var BLEND_LIGHTEN = "lighten";
-exports.BLEND_LIGHTEN = BLEND_LIGHTEN;
-var BLEND_HARDLIGHT = "hardLight";
-exports.BLEND_HARDLIGHT = BLEND_HARDLIGHT;
-var BLEND_DIFFERENCE = "difference";
-exports.BLEND_DIFFERENCE = BLEND_DIFFERENCE;
-var BLEND_EXCLUSION = "exclusion"; // Edge Handling
-
-exports.BLEND_EXCLUSION = BLEND_EXCLUSION;
-var EDGE_EXTEND = 1;
-exports.EDGE_EXTEND = EDGE_EXTEND;
-var EDGE_WRAP = 2;
-exports.EDGE_WRAP = EDGE_WRAP;
-var EDGE_CROP = 3;
-exports.EDGE_CROP = EDGE_CROP;
-//# sourceMappingURL=constants.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/core/dist/constants.js.map b/WechatBot/node_modules/@jimp/core/dist/constants.js.map
deleted file mode 100644
index b9b18e6d4..000000000
--- a/WechatBot/node_modules/@jimp/core/dist/constants.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/constants.js"],"names":["AUTO","HORIZONTAL_ALIGN_LEFT","HORIZONTAL_ALIGN_CENTER","HORIZONTAL_ALIGN_RIGHT","VERTICAL_ALIGN_TOP","VERTICAL_ALIGN_MIDDLE","VERTICAL_ALIGN_BOTTOM","BLEND_SOURCE_OVER","BLEND_DESTINATION_OVER","BLEND_MULTIPLY","BLEND_ADD","BLEND_SCREEN","BLEND_OVERLAY","BLEND_DARKEN","BLEND_LIGHTEN","BLEND_HARDLIGHT","BLEND_DIFFERENCE","BLEND_EXCLUSION","EDGE_EXTEND","EDGE_WRAP","EDGE_CROP"],"mappings":";;;;;;AAAA;AACO,IAAMA,IAAI,GAAG,CAAC,CAAd,C,CAEP;;;AACO,IAAMC,qBAAqB,GAAG,CAA9B;;AACA,IAAMC,uBAAuB,GAAG,CAAhC;;AACA,IAAMC,sBAAsB,GAAG,CAA/B;;AAEA,IAAMC,kBAAkB,GAAG,CAA3B;;AACA,IAAMC,qBAAqB,GAAG,EAA9B;;AACA,IAAMC,qBAAqB,GAAG,EAA9B,C,CAEP;;;AACO,IAAMC,iBAAiB,GAAG,SAA1B;;AACA,IAAMC,sBAAsB,GAAG,SAA/B;;AACA,IAAMC,cAAc,GAAG,UAAvB;;AACA,IAAMC,SAAS,GAAG,KAAlB;;AACA,IAAMC,YAAY,GAAG,QAArB;;AACA,IAAMC,aAAa,GAAG,SAAtB;;AACA,IAAMC,YAAY,GAAG,QAArB;;AACA,IAAMC,aAAa,GAAG,SAAtB;;AACA,IAAMC,eAAe,GAAG,WAAxB;;AACA,IAAMC,gBAAgB,GAAG,YAAzB;;AACA,IAAMC,eAAe,GAAG,WAAxB,C,CAEP;;;AACO,IAAMC,WAAW,GAAG,CAApB;;AACA,IAAMC,SAAS,GAAG,CAAlB;;AACA,IAAMC,SAAS,GAAG,CAAlB","sourcesContent":["// used to auto resizing etc.\nexport const AUTO = -1;\n\n// Align modes for cover, contain, bit masks\nexport const HORIZONTAL_ALIGN_LEFT = 1;\nexport const HORIZONTAL_ALIGN_CENTER = 2;\nexport const HORIZONTAL_ALIGN_RIGHT = 4;\n\nexport const VERTICAL_ALIGN_TOP = 8;\nexport const VERTICAL_ALIGN_MIDDLE = 16;\nexport const VERTICAL_ALIGN_BOTTOM = 32;\n\n// blend modes\nexport const BLEND_SOURCE_OVER = \"srcOver\";\nexport const BLEND_DESTINATION_OVER = \"dstOver\";\nexport const BLEND_MULTIPLY = \"multiply\";\nexport const BLEND_ADD = \"add\";\nexport const BLEND_SCREEN = \"screen\";\nexport const BLEND_OVERLAY = \"overlay\";\nexport const BLEND_DARKEN = \"darken\";\nexport const BLEND_LIGHTEN = \"lighten\";\nexport const BLEND_HARDLIGHT = \"hardLight\";\nexport const BLEND_DIFFERENCE = \"difference\";\nexport const BLEND_EXCLUSION = \"exclusion\";\n\n// Edge Handling\nexport const EDGE_EXTEND = 1;\nexport const EDGE_WRAP = 2;\nexport const EDGE_CROP = 3;\n"],"file":"constants.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/core/dist/index.js b/WechatBot/node_modules/@jimp/core/dist/index.js
deleted file mode 100755
index 34f87fdd9..000000000
--- a/WechatBot/node_modules/@jimp/core/dist/index.js
+++ /dev/null
@@ -1,1292 +0,0 @@
-"use strict";
-
-var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.addConstants = addConstants;
-exports.addJimpMethods = addJimpMethods;
-exports.jimpEvMethod = jimpEvMethod;
-exports.jimpEvChange = jimpEvChange;
-Object.defineProperty(exports, "addType", {
- enumerable: true,
- get: function get() {
- return MIME.addType;
- }
-});
-exports["default"] = void 0;
-
-var _construct2 = _interopRequireDefault(require("@babel/runtime/helpers/construct"));
-
-var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
-
-var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
-
-var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
-
-var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
-
-var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
-
-var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
-
-var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
-
-var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
-
-var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
-
-var _fs = _interopRequireDefault(require("fs"));
-
-var _path = _interopRequireDefault(require("path"));
-
-var _events = _interopRequireDefault(require("events"));
-
-var _utils = require("@jimp/utils");
-
-var _anyBase = _interopRequireDefault(require("any-base"));
-
-var _mkdirp = _interopRequireDefault(require("mkdirp"));
-
-var _pixelmatch = _interopRequireDefault(require("pixelmatch"));
-
-var _tinycolor = _interopRequireDefault(require("tinycolor2"));
-
-var _phash = _interopRequireDefault(require("./modules/phash"));
-
-var _request = _interopRequireDefault(require("./request"));
-
-var _composite = _interopRequireDefault(require("./composite"));
-
-var _promisify = _interopRequireDefault(require("./utils/promisify"));
-
-var MIME = _interopRequireWildcard(require("./utils/mime"));
-
-var _imageBitmap = require("./utils/image-bitmap");
-
-var constants = _interopRequireWildcard(require("./constants"));
-
-var alphabet = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_"; // an array storing the maximum string length of hashes at various bases
-// 0 and 1 do not exist as possible hash lengths
-
-var maxHashLength = [NaN, NaN];
-
-for (var i = 2; i < 65; i++) {
- var maxHash = (0, _anyBase["default"])(_anyBase["default"].BIN, alphabet.slice(0, i))(new Array(64 + 1).join("1"));
- maxHashLength.push(maxHash.length);
-} // no operation
-
-
-function noop() {} // error checking methods
-
-
-function isArrayBuffer(test) {
- return Object.prototype.toString.call(test).toLowerCase().indexOf("arraybuffer") > -1;
-} // Prepare a Buffer object from the arrayBuffer. Necessary in the browser > node conversion,
-// But this function is not useful when running in node directly
-
-
-function bufferFromArrayBuffer(arrayBuffer) {
- var buffer = Buffer.alloc(arrayBuffer.byteLength);
- var view = new Uint8Array(arrayBuffer);
-
- for (var _i = 0; _i < buffer.length; ++_i) {
- buffer[_i] = view[_i];
- }
-
- return buffer;
-}
-
-function loadFromURL(options, cb) {
- (0, _request["default"])(options, function (err, response, data) {
- if (err) {
- return cb(err);
- }
-
- if ("headers" in response && "location" in response.headers) {
- options.url = response.headers.location;
- return loadFromURL(options, cb);
- }
-
- if ((0, _typeof2["default"])(data) === "object" && Buffer.isBuffer(data)) {
- return cb(null, data);
- }
-
- var msg = "Could not load Buffer from <" + options.url + "> " + "(HTTP: " + response.statusCode + ")";
- return new Error(msg);
- });
-}
-
-function loadBufferFromPath(src, cb) {
- if (_fs["default"] && typeof _fs["default"].readFile === "function" && !src.match(/^(http|ftp)s?:\/\/./)) {
- _fs["default"].readFile(src, cb);
- } else {
- loadFromURL({
- url: src
- }, cb);
- }
-}
-
-function isRawRGBAData(obj) {
- return obj && (0, _typeof2["default"])(obj) === "object" && typeof obj.width === "number" && typeof obj.height === "number" && (Buffer.isBuffer(obj.data) || obj.data instanceof Uint8Array || typeof Uint8ClampedArray === "function" && obj.data instanceof Uint8ClampedArray) && (obj.data.length === obj.width * obj.height * 4 || obj.data.length === obj.width * obj.height * 3);
-}
-
-function makeRGBABufferFromRGB(buffer) {
- if (buffer.length % 3 !== 0) {
- throw new Error("Buffer length is incorrect");
- }
-
- var rgbaBuffer = Buffer.allocUnsafe(buffer.length / 3 * 4);
- var j = 0;
-
- for (var _i2 = 0; _i2 < buffer.length; _i2++) {
- rgbaBuffer[j] = buffer[_i2];
-
- if ((_i2 + 1) % 3 === 0) {
- rgbaBuffer[++j] = 255;
- }
-
- j++;
- }
-
- return rgbaBuffer;
-}
-
-var emptyBitmap = {
- data: null,
- width: null,
- height: null
-};
-/**
- * Jimp constructor (from a file)
- * @param path a path to the image
- * @param {function(Error, Jimp)} cb (optional) a function to call when the image is parsed to a bitmap
- */
-
-/**
- * Jimp constructor (from a url with options)
- * @param options { url, otherOptions}
- * @param {function(Error, Jimp)} cb (optional) a function to call when the image is parsed to a bitmap
- */
-
-/**
- * Jimp constructor (from another Jimp image or raw image data)
- * @param image a Jimp image to clone
- * @param {function(Error, Jimp)} cb a function to call when the image is parsed to a bitmap
- */
-
-/**
- * Jimp constructor (from a Buffer)
- * @param data a Buffer containing the image data
- * @param {function(Error, Jimp)} cb a function to call when the image is parsed to a bitmap
- */
-
-/**
- * Jimp constructor (to generate a new image)
- * @param w the width of the image
- * @param h the height of the image
- * @param {function(Error, Jimp)} cb (optional) a function to call when the image is parsed to a bitmap
- */
-
-/**
- * Jimp constructor (to generate a new image)
- * @param w the width of the image
- * @param h the height of the image
- * @param background color to fill the image with
- * @param {function(Error, Jimp)} cb (optional) a function to call when the image is parsed to a bitmap
- */
-
-var Jimp =
-/*#__PURE__*/
-function (_EventEmitter) {
- (0, _inherits2["default"])(Jimp, _EventEmitter);
-
- // An object representing a bitmap in memory, comprising:
- // - data: a buffer of the bitmap data
- // - width: the width of the image in pixels
- // - height: the height of the image in pixels
- // Default colour to use for new pixels
- // Default MIME is PNG
- // Exif data for the image
- // Whether Transparency supporting formats will be exported as RGB or RGBA
- function Jimp() {
- var _this;
-
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
-
- (0, _classCallCheck2["default"])(this, Jimp);
- _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(Jimp).call(this));
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "bitmap", emptyBitmap);
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_background", 0x00000000);
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_originalMime", Jimp.MIME_PNG);
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_exif", null);
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_rgba", true);
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "writeAsync", function (path) {
- return (0, _promisify["default"])(_this.write, (0, _assertThisInitialized2["default"])(_this), path);
- });
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getBase64Async", function (mime) {
- return (0, _promisify["default"])(_this.getBase64, (0, _assertThisInitialized2["default"])(_this), mime);
- });
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getBuffer", _imageBitmap.getBuffer);
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getBufferAsync", _imageBitmap.getBufferAsync);
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getPixelColour", _this.getPixelColor);
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "setPixelColour", _this.setPixelColor);
- var jimpInstance = (0, _assertThisInitialized2["default"])(_this);
- var cb = noop;
-
- if (isArrayBuffer(args[0])) {
- args[0] = bufferFromArrayBuffer(args[0]);
- }
-
- function finish() {
- for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
- args[_key2] = arguments[_key2];
- }
-
- var err = args[0];
- var evData = err || {};
- evData.methodName = "constructor";
- setTimeout(function () {
- var _cb;
-
- // run on next tick.
- if (err && cb === noop) {
- jimpInstance.emitError("constructor", err);
- } else if (!err) {
- jimpInstance.emitMulti("constructor", "initialized");
- }
-
- (_cb = cb).call.apply(_cb, [jimpInstance].concat(args));
- }, 1);
- }
-
- if (typeof args[0] === "number" && typeof args[1] === "number" || parseInt(args[0], 10) && parseInt(args[1], 10)) {
- // create a new image
- var w = parseInt(args[0], 10);
- var h = parseInt(args[1], 10);
- cb = args[2]; // with a hex color
-
- if (typeof args[2] === "number") {
- _this._background = args[2];
- cb = args[3];
- } // with a css color
-
-
- if (typeof args[2] === "string") {
- _this._background = Jimp.cssColorToHex(args[2]);
- cb = args[3];
- }
-
- if (typeof cb === "undefined") {
- cb = noop;
- }
-
- if (typeof cb !== "function") {
- return (0, _possibleConstructorReturn2["default"])(_this, _utils.throwError.call((0, _assertThisInitialized2["default"])(_this), "cb must be a function", finish));
- }
-
- _this.bitmap = {
- data: Buffer.alloc(w * h * 4),
- width: w,
- height: h
- };
-
- for (var _i3 = 0; _i3 < _this.bitmap.data.length; _i3 += 4) {
- _this.bitmap.data.writeUInt32BE(_this._background, _i3);
- }
-
- finish(null, (0, _assertThisInitialized2["default"])(_this));
- } else if ((0, _typeof2["default"])(args[0]) === "object" && args[0].url) {
- cb = args[1] || noop;
-
- if (typeof cb !== "function") {
- return (0, _possibleConstructorReturn2["default"])(_this, _utils.throwError.call((0, _assertThisInitialized2["default"])(_this), "cb must be a function", finish));
- }
-
- loadFromURL(args[0], function (err, data) {
- if (err) {
- return _utils.throwError.call((0, _assertThisInitialized2["default"])(_this), err, finish);
- }
-
- _this.parseBitmap(data, args[0].url, finish);
- });
- } else if (args[0] instanceof Jimp) {
- // clone an existing Jimp
- var original = args[0];
- cb = args[1];
-
- if (typeof cb === "undefined") {
- cb = noop;
- }
-
- if (typeof cb !== "function") {
- return (0, _possibleConstructorReturn2["default"])(_this, _utils.throwError.call((0, _assertThisInitialized2["default"])(_this), "cb must be a function", finish));
- }
-
- _this.bitmap = {
- data: Buffer.from(original.bitmap.data),
- width: original.bitmap.width,
- height: original.bitmap.height
- };
- _this._quality = original._quality;
- _this._deflateLevel = original._deflateLevel;
- _this._deflateStrategy = original._deflateStrategy;
- _this._filterType = original._filterType;
- _this._rgba = original._rgba;
- _this._background = original._background;
- _this._originalMime = original._originalMime;
- finish(null, (0, _assertThisInitialized2["default"])(_this));
- } else if (isRawRGBAData(args[0])) {
- var imageData = args[0];
- cb = args[1] || noop;
- var isRGBA = imageData.width * imageData.height * 4 === imageData.data.length;
- var buffer = isRGBA ? Buffer.from(imageData.data) : makeRGBABufferFromRGB(imageData.data);
- _this.bitmap = {
- data: buffer,
- width: imageData.width,
- height: imageData.height
- };
- finish(null, (0, _assertThisInitialized2["default"])(_this));
- } else if (typeof args[0] === "string") {
- // read from a path
- var path = args[0];
- cb = args[1];
-
- if (typeof cb === "undefined") {
- cb = noop;
- }
-
- if (typeof cb !== "function") {
- return (0, _possibleConstructorReturn2["default"])(_this, _utils.throwError.call((0, _assertThisInitialized2["default"])(_this), "cb must be a function", finish));
- }
-
- loadBufferFromPath(path, function (err, data) {
- if (err) {
- return _utils.throwError.call((0, _assertThisInitialized2["default"])(_this), err, finish);
- }
-
- _this.parseBitmap(data, path, finish);
- });
- } else if ((0, _typeof2["default"])(args[0]) === "object" && Buffer.isBuffer(args[0])) {
- // read from a buffer
- var data = args[0];
- cb = args[1];
-
- if (typeof cb !== "function") {
- return (0, _possibleConstructorReturn2["default"])(_this, _utils.throwError.call((0, _assertThisInitialized2["default"])(_this), "cb must be a function", finish));
- }
-
- _this.parseBitmap(data, null, finish);
- } else {
- // Allow client libs to add new ways to build a Jimp object.
- // Extra constructors must be added by `Jimp.appendConstructorOption()`
- cb = args[args.length - 1];
-
- if (typeof cb !== "function") {
- // TODO: try to solve the args after cb problem.
- cb = args[args.length - 2];
-
- if (typeof cb !== "function") {
- cb = noop;
- }
- }
-
- var extraConstructor = Jimp.__extraConstructors.find(function (c) {
- return c.test.apply(c, args);
- });
-
- if (extraConstructor) {
- new Promise(function (resolve, reject) {
- var _extraConstructor$run;
-
- (_extraConstructor$run = extraConstructor.run).call.apply(_extraConstructor$run, [(0, _assertThisInitialized2["default"])(_this), resolve, reject].concat(args));
- }).then(function () {
- return finish(null, (0, _assertThisInitialized2["default"])(_this));
- })["catch"](finish);
- } else {
- return (0, _possibleConstructorReturn2["default"])(_this, _utils.throwError.call((0, _assertThisInitialized2["default"])(_this), "No matching constructor overloading was found. " + "Please see the docs for how to call the Jimp constructor.", finish));
- }
- }
-
- return _this;
- }
- /**
- * Parse a bitmap with the loaded image types.
- *
- * @param {Buffer} data raw image data
- * @param {string} path optional path to file
- * @param {function(Error, Jimp)} finish (optional) a callback for when complete
- * @memberof Jimp
- */
-
-
- (0, _createClass2["default"])(Jimp, [{
- key: "parseBitmap",
- value: function parseBitmap(data, path, finish) {
- _imageBitmap.parseBitmap.call(this, data, null, finish);
- }
- /**
- * Sets the type of the image (RGB or RGBA) when saving in a format that supports transparency (default is RGBA)
- * @param {boolean} bool A Boolean, true to use RGBA or false to use RGB
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
-
- }, {
- key: "rgba",
- value: function rgba(bool, cb) {
- if (typeof bool !== "boolean") {
- return _utils.throwError.call(this, "bool must be a boolean, true for RGBA or false for RGB", cb);
- }
-
- this._rgba = bool;
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- }
- /**
- * Emit for multiple listeners
- * @param {string} methodName name of the method to emit an error for
- * @param {string} eventName name of the eventName to emit an error for
- * @param {object} data to emit
- */
-
- }, {
- key: "emitMulti",
- value: function emitMulti(methodName, eventName) {
- var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
- data = Object.assign(data, {
- methodName: methodName,
- eventName: eventName
- });
- this.emit("any", data);
-
- if (methodName) {
- this.emit(methodName, data);
- }
-
- this.emit(eventName, data);
- }
- }, {
- key: "emitError",
- value: function emitError(methodName, err) {
- this.emitMulti(methodName, "error", err);
- }
- /**
- * Get the current height of the image
- * @return {number} height of the image
- */
-
- }, {
- key: "getHeight",
- value: function getHeight() {
- return this.bitmap.height;
- }
- /**
- * Get the current width of the image
- * @return {number} width of the image
- */
-
- }, {
- key: "getWidth",
- value: function getWidth() {
- return this.bitmap.width;
- }
- /**
- * Nicely format Jimp object when sent to the console e.g. console.log(image)
- * @returns {string} pretty printed
- */
-
- }, {
- key: "inspect",
- value: function inspect() {
- return "";
- }
- /**
- * Nicely format Jimp object when converted to a string
- * @returns {string} pretty printed
- */
-
- }, {
- key: "toString",
- value: function toString() {
- return "[object Jimp]";
- }
- /**
- * Returns the original MIME of the image (default: "image/png")
- * @returns {string} the MIME
- */
-
- }, {
- key: "getMIME",
- value: function getMIME() {
- var mime = this._originalMime || Jimp.MIME_PNG;
- return mime;
- }
- /**
- * Returns the appropriate file extension for the original MIME of the image (default: "png")
- * @returns {string} the file extension
- */
-
- }, {
- key: "getExtension",
- value: function getExtension() {
- var mime = this.getMIME();
- return MIME.getExtension(mime);
- }
- /**
- * Writes the image to a file
- * @param {string} path a path to the destination file
- * @param {function(Error, Jimp)} cb (optional) a function to call when the image is saved to disk
- * @returns {Jimp} this for chaining of methods
- */
-
- }, {
- key: "write",
- value: function write(path, cb) {
- var _this2 = this;
-
- if (!_fs["default"] || !_fs["default"].createWriteStream) {
- throw new Error("Cant access the filesystem. You can use the getBase64 method.");
- }
-
- if (typeof path !== "string") {
- return _utils.throwError.call(this, "path must be a string", cb);
- }
-
- if (typeof cb === "undefined") {
- cb = noop;
- }
-
- if (typeof cb !== "function") {
- return _utils.throwError.call(this, "cb must be a function", cb);
- }
-
- var mime = MIME.getType(path) || this.getMIME();
-
- var pathObj = _path["default"].parse(path);
-
- if (pathObj.dir) {
- _mkdirp["default"].sync(pathObj.dir);
- }
-
- this.getBuffer(mime, function (err, buffer) {
- if (err) {
- return _utils.throwError.call(_this2, err, cb);
- }
-
- var stream = _fs["default"].createWriteStream(path);
-
- stream.on("open", function () {
- stream.write(buffer);
- stream.end();
- }).on("error", function (err) {
- return _utils.throwError.call(_this2, err, cb);
- });
- stream.on("finish", function () {
- cb.call(_this2, null, _this2);
- });
- });
- return this;
- }
- }, {
- key: "getBase64",
-
- /**
- * Converts the image to a base 64 string
- * @param {string} mime the mime type of the image data to be created
- * @param {function(Error, Jimp)} cb a Node-style function to call with the buffer as the second argument
- * @returns {Jimp} this for chaining of methods
- */
- value: function getBase64(mime, cb) {
- if (mime === Jimp.AUTO) {
- // allow auto MIME detection
- mime = this.getMIME();
- }
-
- if (typeof mime !== "string") {
- return _utils.throwError.call(this, "mime must be a string", cb);
- }
-
- if (typeof cb !== "function") {
- return _utils.throwError.call(this, "cb must be a function", cb);
- }
-
- this.getBuffer(mime, function (err, data) {
- if (err) {
- return _utils.throwError.call(this, err, cb);
- }
-
- var src = "data:" + mime + ";base64," + data.toString("base64");
- cb.call(this, null, src);
- });
- return this;
- }
- }, {
- key: "hash",
-
- /**
- * Generates a perceptual hash of the image . And pads the string. Can configure base.
- * @param {number} base (optional) a number between 2 and 64 representing the base for the hash (e.g. 2 is binary, 10 is decimal, 16 is hex, 64 is base 64). Defaults to 64.
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {string} a string representing the hash
- */
- value: function hash(base, cb) {
- base = base || 64;
-
- if (typeof base === "function") {
- cb = base;
- base = 64;
- }
-
- if (typeof base !== "number") {
- return _utils.throwError.call(this, "base must be a number", cb);
- }
-
- if (base < 2 || base > 64) {
- return _utils.throwError.call(this, "base must be a number between 2 and 64", cb);
- }
-
- var hash = this.pHash();
- hash = (0, _anyBase["default"])(_anyBase["default"].BIN, alphabet.slice(0, base))(hash);
-
- while (hash.length < maxHashLength[base]) {
- hash = "0" + hash; // pad out with leading zeros
- }
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, hash);
- }
-
- return hash;
- }
- /**
- * Calculates the perceptual hash
- * @returns {number} the perceptual hash
- */
-
- }, {
- key: "pHash",
- value: function pHash() {
- var pHash = new _phash["default"]();
- return pHash.getHash(this);
- }
- /**
- * Calculates the hamming distance of the current image and a hash based on their perceptual hash
- * @param {hash} compareHash hash to compare to
- * @returns {number} a number ranging from 0 to 1, 0 means they are believed to be identical
- */
-
- }, {
- key: "distanceFromHash",
- value: function distanceFromHash(compareHash) {
- var pHash = new _phash["default"]();
- var currentHash = pHash.getHash(this);
- return pHash.distance(currentHash, compareHash);
- }
- /**
- * Converts the image to a buffer
- * @param {string} mime the mime type of the image buffer to be created
- * @param {function(Error, Jimp)} cb a Node-style function to call with the buffer as the second argument
- * @returns {Jimp} this for chaining of methods
- */
-
- }, {
- key: "getPixelIndex",
-
- /**
- * Returns the offset of a pixel in the bitmap buffer
- * @param {number} x the x coordinate
- * @param {number} y the y coordinate
- * @param {number} edgeHandling (optional) define how to sum pixels from outside the border
- * @param {number} cb (optional) a callback for when complete
- * @returns {number} the index of the pixel or -1 if not found
- */
- value: function getPixelIndex(x, y, edgeHandling, cb) {
- var xi;
- var yi;
-
- if (typeof edgeHandling === "function" && typeof cb === "undefined") {
- cb = edgeHandling;
- edgeHandling = null;
- }
-
- if (!edgeHandling) {
- edgeHandling = Jimp.EDGE_EXTEND;
- }
-
- if (typeof x !== "number" || typeof y !== "number") {
- return _utils.throwError.call(this, "x and y must be numbers", cb);
- } // round input
-
-
- x = Math.round(x);
- y = Math.round(y);
- xi = x;
- yi = y;
-
- if (edgeHandling === Jimp.EDGE_EXTEND) {
- if (x < 0) xi = 0;
- if (x >= this.bitmap.width) xi = this.bitmap.width - 1;
- if (y < 0) yi = 0;
- if (y >= this.bitmap.height) yi = this.bitmap.height - 1;
- }
-
- if (edgeHandling === Jimp.EDGE_WRAP) {
- if (x < 0) {
- xi = this.bitmap.width + x;
- }
-
- if (x >= this.bitmap.width) {
- xi = x % this.bitmap.width;
- }
-
- if (y < 0) {
- xi = this.bitmap.height + y;
- }
-
- if (y >= this.bitmap.height) {
- yi = y % this.bitmap.height;
- }
- }
-
- var i = this.bitmap.width * yi + xi << 2; // if out of bounds index is -1
-
- if (xi < 0 || xi >= this.bitmap.width) {
- i = -1;
- }
-
- if (yi < 0 || yi >= this.bitmap.height) {
- i = -1;
- }
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, i);
- }
-
- return i;
- }
- /**
- * Returns the hex colour value of a pixel
- * @param {number} x the x coordinate
- * @param {number} y the y coordinate
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {number} the color of the pixel
- */
-
- }, {
- key: "getPixelColor",
- value: function getPixelColor(x, y, cb) {
- if (typeof x !== "number" || typeof y !== "number") return _utils.throwError.call(this, "x and y must be numbers", cb); // round input
-
- x = Math.round(x);
- y = Math.round(y);
- var idx = this.getPixelIndex(x, y);
- var hex = this.bitmap.data.readUInt32BE(idx);
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, hex);
- }
-
- return hex;
- }
- }, {
- key: "setPixelColor",
-
- /**
- * Returns the hex colour value of a pixel
- * @param {number} hex color to set
- * @param {number} x the x coordinate
- * @param {number} y the y coordinate
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {number} the index of the pixel or -1 if not found
- */
- value: function setPixelColor(hex, x, y, cb) {
- if (typeof hex !== "number" || typeof x !== "number" || typeof y !== "number") return _utils.throwError.call(this, "hex, x and y must be numbers", cb); // round input
-
- x = Math.round(x);
- y = Math.round(y);
- var idx = this.getPixelIndex(x, y);
- this.bitmap.data.writeUInt32BE(hex, idx);
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- }
- }, {
- key: "hasAlpha",
-
- /**
- * Determine if the image contains opaque pixels.
- * @return {boolean} hasAlpha whether the image contains opaque pixels
- */
- value: function hasAlpha() {
- for (var yIndex = 0; yIndex < this.bitmap.height; yIndex++) {
- for (var xIndex = 0; xIndex < this.bitmap.width; xIndex++) {
- var idx = this.bitmap.width * yIndex + xIndex << 2;
- var alpha = this.bitmap.data[idx + 3];
-
- if (alpha !== 0xff) {
- return true;
- }
- }
- }
-
- return false;
- }
- /**
- * Iterate scan through a region of the bitmap
- * @param {number} x the x coordinate to begin the scan at
- * @param {number} y the y coordinate to begin the scan at
- * @param w the width of the scan region
- * @param h the height of the scan region
- * @returns {IterableIterator<{x: number, y: number, idx: number, image: Jimp}>}
- */
-
- }, {
- key: "scanIterator",
- value: function scanIterator(x, y, w, h) {
- if (typeof x !== "number" || typeof y !== "number") {
- return _utils.throwError.call(this, "x and y must be numbers");
- }
-
- if (typeof w !== "number" || typeof h !== "number") {
- return _utils.throwError.call(this, "w and h must be numbers");
- }
-
- return (0, _utils.scanIterator)(this, x, y, w, h);
- }
- }]);
- return Jimp;
-}(_events["default"]);
-
-function addConstants(constants) {
- var jimpInstance = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Jimp;
- Object.entries(constants).forEach(function (_ref) {
- var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
- name = _ref2[0],
- value = _ref2[1];
-
- jimpInstance[name] = value;
- });
-}
-
-function addJimpMethods(methods) {
- var jimpInstance = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Jimp;
- Object.entries(methods).forEach(function (_ref3) {
- var _ref4 = (0, _slicedToArray2["default"])(_ref3, 2),
- name = _ref4[0],
- value = _ref4[1];
-
- jimpInstance.prototype[name] = value;
- });
-}
-
-addConstants(constants);
-addJimpMethods({
- composite: _composite["default"]
-});
-Jimp.__extraConstructors = [];
-/**
- * Allow client libs to add new ways to build a Jimp object.
- * @param {string} name identify the extra constructor.
- * @param {function} test a function that returns true when it accepts the arguments passed to the main constructor.
- * @param {function} run where the magic happens.
- */
-
-Jimp.appendConstructorOption = function (name, test, run) {
- Jimp.__extraConstructors.push({
- name: name,
- test: test,
- run: run
- });
-};
-/**
- * Read an image from a file or a Buffer. Takes the same args as the constructor
- * @returns {Promise} a promise
- */
-
-
-Jimp.read = function () {
- for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
- args[_key3] = arguments[_key3];
- }
-
- return new Promise(function (resolve, reject) {
- // eslint-disable-next-line no-new
- (0, _construct2["default"])(Jimp, args.concat([function (err, image) {
- if (err) reject(err);else resolve(image);
- }]));
- });
-};
-
-Jimp.create = Jimp.read;
-/**
- * A static helper method that converts RGBA values to a single integer value
- * @param {number} r the red value (0-255)
- * @param {number} g the green value (0-255)
- * @param {number} b the blue value (0-255)
- * @param {number} a the alpha value (0-255)
- * @param {function(Error, Jimp)} cb (optional) A callback for when complete
- * @returns {number} an single integer colour value
- */
-
-Jimp.rgbaToInt = function (r, g, b, a, cb) {
- if (typeof r !== "number" || typeof g !== "number" || typeof b !== "number" || typeof a !== "number") {
- return _utils.throwError.call(this, "r, g, b and a must be numbers", cb);
- }
-
- if (r < 0 || r > 255) {
- return _utils.throwError.call(this, "r must be between 0 and 255", cb);
- }
-
- if (g < 0 || g > 255) {
- _utils.throwError.call(this, "g must be between 0 and 255", cb);
- }
-
- if (b < 0 || b > 255) {
- return _utils.throwError.call(this, "b must be between 0 and 255", cb);
- }
-
- if (a < 0 || a > 255) {
- return _utils.throwError.call(this, "a must be between 0 and 255", cb);
- }
-
- r = Math.round(r);
- b = Math.round(b);
- g = Math.round(g);
- a = Math.round(a);
- var i = r * Math.pow(256, 3) + g * Math.pow(256, 2) + b * Math.pow(256, 1) + a * Math.pow(256, 0);
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, i);
- }
-
- return i;
-};
-/**
- * A static helper method that converts RGBA values to a single integer value
- * @param {number} i a single integer value representing an RGBA colour (e.g. 0xFF0000FF for red)
- * @param {function(Error, Jimp)} cb (optional) A callback for when complete
- * @returns {object} an object with the properties r, g, b and a representing RGBA values
- */
-
-
-Jimp.intToRGBA = function (i, cb) {
- if (typeof i !== "number") {
- return _utils.throwError.call(this, "i must be a number", cb);
- }
-
- var rgba = {};
- rgba.r = Math.floor(i / Math.pow(256, 3));
- rgba.g = Math.floor((i - rgba.r * Math.pow(256, 3)) / Math.pow(256, 2));
- rgba.b = Math.floor((i - rgba.r * Math.pow(256, 3) - rgba.g * Math.pow(256, 2)) / Math.pow(256, 1));
- rgba.a = Math.floor((i - rgba.r * Math.pow(256, 3) - rgba.g * Math.pow(256, 2) - rgba.b * Math.pow(256, 1)) / Math.pow(256, 0));
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, rgba);
- }
-
- return rgba;
-};
-/**
- * Converts a css color (Hex, 8-digit (RGBA) Hex, RGB, RGBA, HSL, HSLA, HSV, HSVA, Named) to a hex number
- * @param {string} cssColor a number
- * @returns {number} a hex number representing a color
- */
-
-
-Jimp.cssColorToHex = function (cssColor) {
- cssColor = cssColor || 0; // 0, null, undefined, NaN
-
- if (typeof cssColor === "number") return Number(cssColor);
- return parseInt((0, _tinycolor["default"])(cssColor).toHex8(), 16);
-};
-/**
- * Limits a number to between 0 or 255
- * @param {number} n a number
- * @returns {number} the number limited to between 0 or 255
- */
-
-
-Jimp.limit255 = function (n) {
- n = Math.max(n, 0);
- n = Math.min(n, 255);
- return n;
-};
-/**
- * Diffs two images and returns
- * @param {Jimp} img1 a Jimp image to compare
- * @param {Jimp} img2 a Jimp image to compare
- * @param {number} threshold (optional) a number, 0 to 1, the smaller the value the more sensitive the comparison (default: 0.1)
- * @returns {object} an object { percent: percent similar, diff: a Jimp image highlighting differences }
- */
-
-
-Jimp.diff = function (img1, img2) {
- var threshold = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0.1;
- if (!(img1 instanceof Jimp) || !(img2 instanceof Jimp)) return _utils.throwError.call(this, "img1 and img2 must be an Jimp images");
- var bmp1 = img1.bitmap;
- var bmp2 = img2.bitmap;
-
- if (bmp1.width !== bmp2.width || bmp1.height !== bmp2.height) {
- if (bmp1.width * bmp1.height > bmp2.width * bmp2.height) {
- // img1 is bigger
- img1 = img1.cloneQuiet().resize(bmp2.width, bmp2.height);
- } else {
- // img2 is bigger (or they are the same in area)
- img2 = img2.cloneQuiet().resize(bmp1.width, bmp1.height);
- }
- }
-
- if (typeof threshold !== "number" || threshold < 0 || threshold > 1) {
- return _utils.throwError.call(this, "threshold must be a number between 0 and 1");
- }
-
- var diff = new Jimp(bmp1.width, bmp1.height, 0xffffffff);
- var numDiffPixels = (0, _pixelmatch["default"])(bmp1.data, bmp2.data, diff.bitmap.data, diff.bitmap.width, diff.bitmap.height, {
- threshold: threshold
- });
- return {
- percent: numDiffPixels / (diff.bitmap.width * diff.bitmap.height),
- image: diff
- };
-};
-/**
- * Calculates the hamming distance of two images based on their perceptual hash
- * @param {Jimp} img1 a Jimp image to compare
- * @param {Jimp} img2 a Jimp image to compare
- * @returns {number} a number ranging from 0 to 1, 0 means they are believed to be identical
- */
-
-
-Jimp.distance = function (img1, img2) {
- var phash = new _phash["default"]();
- var hash1 = phash.getHash(img1);
- var hash2 = phash.getHash(img2);
- return phash.distance(hash1, hash2);
-};
-/**
- * Calculates the hamming distance of two images based on their perceptual hash
- * @param {hash} hash1 a pHash
- * @param {hash} hash2 a pHash
- * @returns {number} a number ranging from 0 to 1, 0 means they are believed to be identical
- */
-
-
-Jimp.compareHashes = function (hash1, hash2) {
- var phash = new _phash["default"]();
- return phash.distance(hash1, hash2);
-};
-/**
- * Compute color difference
- * 0 means no difference, 1 means maximum difference.
- * @param {number} rgba1: first color to compare.
- * @param {number} rgba2: second color to compare.
- * Both parameters must be an color object {r:val, g:val, b:val, a:val}
- * Where `a` is optional and `val` is an integer between 0 and 255.
- * @returns {number} float between 0 and 1.
- */
-
-
-Jimp.colorDiff = function (rgba1, rgba2) {
- var pow = function pow(n) {
- return Math.pow(n, 2);
- };
-
- var max = Math.max;
- var maxVal = 255 * 255 * 3;
-
- if (rgba1.a !== 0 && !rgba1.a) {
- rgba1.a = 255;
- }
-
- if (rgba2.a !== 0 && !rgba2.a) {
- rgba2.a = 255;
- }
-
- return (max(pow(rgba1.r - rgba2.r), pow(rgba1.r - rgba2.r - rgba1.a + rgba2.a)) + max(pow(rgba1.g - rgba2.g), pow(rgba1.g - rgba2.g - rgba1.a + rgba2.a)) + max(pow(rgba1.b - rgba2.b), pow(rgba1.b - rgba2.b - rgba1.a + rgba2.a))) / maxVal;
-};
-/**
- * Helper to create Jimp methods that emit events before and after its execution.
- * @param {string} methodName The name to be appended to Jimp prototype.
- * @param {string} evName The event name to be called.
- * It will be prefixed by `before-` and emitted when on method call.
- * It will be appended by `ed` and emitted after the method run.
- * @param {function} method A function implementing the method itself.
- * It will also create a quiet version that will not emit events, to not
- * mess the user code with many `changed` event calls. You can call with
- * `methodName + "Quiet"`.
- *
- * The emitted event comes with a object parameter to the listener with the
- * `methodName` as one attribute.
- */
-
-
-function jimpEvMethod(methodName, evName, method) {
- var evNameBefore = "before-" + evName;
- var evNameAfter = evName.replace(/e$/, "") + "ed";
-
- Jimp.prototype[methodName] = function () {
- var wrappedCb;
-
- for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
- args[_key4] = arguments[_key4];
- }
-
- var cb = args[method.length - 1];
- var jimpInstance = this;
-
- if (typeof cb === "function") {
- wrappedCb = function wrappedCb() {
- for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
- args[_key5] = arguments[_key5];
- }
-
- var err = args[0],
- data = args[1];
-
- if (err) {
- jimpInstance.emitError(methodName, err);
- } else {
- jimpInstance.emitMulti(methodName, evNameAfter, (0, _defineProperty2["default"])({}, methodName, data));
- }
-
- cb.apply(this, args);
- };
-
- args[args.length - 1] = wrappedCb;
- } else {
- wrappedCb = false;
- }
-
- this.emitMulti(methodName, evNameBefore);
- var result;
-
- try {
- result = method.apply(this, args);
-
- if (!wrappedCb) {
- this.emitMulti(methodName, evNameAfter, (0, _defineProperty2["default"])({}, methodName, result));
- }
- } catch (error) {
- error.methodName = methodName;
- this.emitError(methodName, error);
- }
-
- return result;
- };
-
- Jimp.prototype[methodName + "Quiet"] = method;
-}
-/**
- * Creates a new image that is a clone of this one.
- * @param {function(Error, Jimp)} cb (optional) A callback for when complete
- * @returns the new image
- */
-
-
-jimpEvMethod("clone", "clone", function (cb) {
- var clone = new Jimp(this);
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(clone, null, clone);
- }
-
- return clone;
-});
-/**
- * Simplify jimpEvMethod call for the common `change` evName.
- * @param {string} methodName name of the method
- * @param {function} method to watch changes for
- */
-
-function jimpEvChange(methodName, method) {
- jimpEvMethod(methodName, "change", method);
-}
-/**
- * Sets the type of the image (RGB or RGBA) when saving as PNG format (default is RGBA)
- * @param b A Boolean, true to use RGBA or false to use RGB
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
-
-
-jimpEvChange("background", function (hex, cb) {
- if (typeof hex !== "number") {
- return _utils.throwError.call(this, "hex must be a hexadecimal rgba value", cb);
- }
-
- this._background = hex;
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
-});
-/**
- * Scans through a region of the bitmap, calling a function for each pixel.
- * @param {number} x the x coordinate to begin the scan at
- * @param {number} y the y coordinate to begin the scan at
- * @param w the width of the scan region
- * @param h the height of the scan region
- * @param f a function to call on even pixel; the (x, y) position of the pixel
- * and the index of the pixel in the bitmap buffer are passed to the function
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
-
-jimpEvChange("scan", function (x, y, w, h, f, cb) {
- if (typeof x !== "number" || typeof y !== "number") {
- return _utils.throwError.call(this, "x and y must be numbers", cb);
- }
-
- if (typeof w !== "number" || typeof h !== "number") {
- return _utils.throwError.call(this, "w and h must be numbers", cb);
- }
-
- if (typeof f !== "function") {
- return _utils.throwError.call(this, "f must be a function", cb);
- }
-
- var result = (0, _utils.scan)(this, x, y, w, h, f);
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, result);
- }
-
- return result;
-});
-
-if (process.env.ENVIRONMENT === "BROWSER") {
- // For use in a web browser or web worker
-
- /* global self */
- var gl;
-
- if (typeof window !== "undefined" && (typeof window === "undefined" ? "undefined" : (0, _typeof2["default"])(window)) === "object") {
- gl = window;
- }
-
- if (typeof self !== "undefined" && (typeof self === "undefined" ? "undefined" : (0, _typeof2["default"])(self)) === "object") {
- gl = self;
- }
-
- gl.Jimp = Jimp;
- gl.Buffer = Buffer;
-}
-
-var _default = Jimp;
-exports["default"] = _default;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/core/dist/index.js.map b/WechatBot/node_modules/@jimp/core/dist/index.js.map
deleted file mode 100644
index 3f39a86ba..000000000
--- a/WechatBot/node_modules/@jimp/core/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/index.js"],"names":["alphabet","maxHashLength","NaN","i","maxHash","anyBase","BIN","slice","Array","join","push","length","noop","isArrayBuffer","test","Object","prototype","toString","call","toLowerCase","indexOf","bufferFromArrayBuffer","arrayBuffer","buffer","Buffer","alloc","byteLength","view","Uint8Array","loadFromURL","options","cb","err","response","data","headers","url","location","isBuffer","msg","statusCode","Error","loadBufferFromPath","src","fs","readFile","match","isRawRGBAData","obj","width","height","Uint8ClampedArray","makeRGBABufferFromRGB","rgbaBuffer","allocUnsafe","j","emptyBitmap","Jimp","args","MIME_PNG","path","write","mime","getBase64","getBuffer","getBufferAsync","getPixelColor","setPixelColor","jimpInstance","finish","evData","methodName","setTimeout","emitError","emitMulti","parseInt","w","h","_background","cssColorToHex","throwError","bitmap","writeUInt32BE","parseBitmap","original","from","_quality","_deflateLevel","_deflateStrategy","_filterType","_rgba","_originalMime","imageData","isRGBA","extraConstructor","__extraConstructors","find","c","Promise","resolve","reject","run","then","bool","eventName","assign","emit","getMIME","MIME","getExtension","createWriteStream","getType","pathObj","Path","parse","dir","mkdirp","sync","stream","on","end","AUTO","base","hash","pHash","ImagePHash","getHash","compareHash","currentHash","distance","x","y","edgeHandling","xi","yi","EDGE_EXTEND","Math","round","EDGE_WRAP","idx","getPixelIndex","hex","readUInt32BE","yIndex","xIndex","alpha","EventEmitter","addConstants","constants","entries","forEach","name","value","addJimpMethods","methods","composite","appendConstructorOption","read","image","create","rgbaToInt","r","g","b","a","pow","intToRGBA","rgba","floor","cssColor","Number","toHex8","limit255","n","max","min","diff","img1","img2","threshold","bmp1","bmp2","cloneQuiet","resize","numDiffPixels","percent","phash","hash1","hash2","compareHashes","colorDiff","rgba1","rgba2","maxVal","jimpEvMethod","evName","method","evNameBefore","evNameAfter","replace","wrappedCb","apply","result","error","clone","jimpEvChange","f","process","env","ENVIRONMENT","gl","window","self"],"mappings":"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","sourcesContent":["import fs from \"fs\";\nimport Path from \"path\";\nimport EventEmitter from \"events\";\n\nimport { isNodePattern, throwError, scan, scanIterator } from \"@jimp/utils\";\nimport anyBase from \"any-base\";\nimport mkdirp from \"mkdirp\";\nimport pixelMatch from \"pixelmatch\";\nimport tinyColor from \"tinycolor2\";\n\nimport ImagePHash from \"./modules/phash\";\nimport request from \"./request\";\n\nimport composite from \"./composite\";\nimport promisify from \"./utils/promisify\";\nimport * as MIME from \"./utils/mime\";\nimport { parseBitmap, getBuffer, getBufferAsync } from \"./utils/image-bitmap\";\nimport * as constants from \"./constants\";\n\nconst alphabet =\n \"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_\";\n\n// an array storing the maximum string length of hashes at various bases\n// 0 and 1 do not exist as possible hash lengths\nconst maxHashLength = [NaN, NaN];\n\nfor (let i = 2; i < 65; i++) {\n const maxHash = anyBase(\n anyBase.BIN,\n alphabet.slice(0, i)\n )(new Array(64 + 1).join(\"1\"));\n maxHashLength.push(maxHash.length);\n}\n\n// no operation\nfunction noop() {}\n\n// error checking methods\n\nfunction isArrayBuffer(test) {\n return (\n Object.prototype.toString.call(test).toLowerCase().indexOf(\"arraybuffer\") >\n -1\n );\n}\n\n// Prepare a Buffer object from the arrayBuffer. Necessary in the browser > node conversion,\n// But this function is not useful when running in node directly\nfunction bufferFromArrayBuffer(arrayBuffer) {\n const buffer = Buffer.alloc(arrayBuffer.byteLength);\n const view = new Uint8Array(arrayBuffer);\n\n for (let i = 0; i < buffer.length; ++i) {\n buffer[i] = view[i];\n }\n\n return buffer;\n}\n\nfunction loadFromURL(options, cb) {\n request(options, (err, response, data) => {\n if (err) {\n return cb(err);\n }\n\n if (\"headers\" in response && \"location\" in response.headers) {\n options.url = response.headers.location;\n return loadFromURL(options, cb);\n }\n\n if (typeof data === \"object\" && Buffer.isBuffer(data)) {\n return cb(null, data);\n }\n\n const msg =\n \"Could not load Buffer from <\" +\n options.url +\n \"> \" +\n \"(HTTP: \" +\n response.statusCode +\n \")\";\n\n return new Error(msg);\n });\n}\n\nfunction loadBufferFromPath(src, cb) {\n if (\n fs &&\n typeof fs.readFile === \"function\" &&\n !src.match(/^(http|ftp)s?:\\/\\/./)\n ) {\n fs.readFile(src, cb);\n } else {\n loadFromURL({ url: src }, cb);\n }\n}\n\nfunction isRawRGBAData(obj) {\n return (\n obj &&\n typeof obj === \"object\" &&\n typeof obj.width === \"number\" &&\n typeof obj.height === \"number\" &&\n (Buffer.isBuffer(obj.data) ||\n obj.data instanceof Uint8Array ||\n (typeof Uint8ClampedArray === \"function\" &&\n obj.data instanceof Uint8ClampedArray)) &&\n (obj.data.length === obj.width * obj.height * 4 ||\n obj.data.length === obj.width * obj.height * 3)\n );\n}\n\nfunction makeRGBABufferFromRGB(buffer) {\n if (buffer.length % 3 !== 0) {\n throw new Error(\"Buffer length is incorrect\");\n }\n\n const rgbaBuffer = Buffer.allocUnsafe((buffer.length / 3) * 4);\n let j = 0;\n\n for (let i = 0; i < buffer.length; i++) {\n rgbaBuffer[j] = buffer[i];\n\n if ((i + 1) % 3 === 0) {\n rgbaBuffer[++j] = 255;\n }\n\n j++;\n }\n\n return rgbaBuffer;\n}\n\nconst emptyBitmap = {\n data: null,\n width: null,\n height: null,\n};\n\n/**\n * Jimp constructor (from a file)\n * @param path a path to the image\n * @param {function(Error, Jimp)} cb (optional) a function to call when the image is parsed to a bitmap\n */\n\n/**\n * Jimp constructor (from a url with options)\n * @param options { url, otherOptions}\n * @param {function(Error, Jimp)} cb (optional) a function to call when the image is parsed to a bitmap\n */\n\n/**\n * Jimp constructor (from another Jimp image or raw image data)\n * @param image a Jimp image to clone\n * @param {function(Error, Jimp)} cb a function to call when the image is parsed to a bitmap\n */\n\n/**\n * Jimp constructor (from a Buffer)\n * @param data a Buffer containing the image data\n * @param {function(Error, Jimp)} cb a function to call when the image is parsed to a bitmap\n */\n\n/**\n * Jimp constructor (to generate a new image)\n * @param w the width of the image\n * @param h the height of the image\n * @param {function(Error, Jimp)} cb (optional) a function to call when the image is parsed to a bitmap\n */\n\n/**\n * Jimp constructor (to generate a new image)\n * @param w the width of the image\n * @param h the height of the image\n * @param background color to fill the image with\n * @param {function(Error, Jimp)} cb (optional) a function to call when the image is parsed to a bitmap\n */\n\nclass Jimp extends EventEmitter {\n // An object representing a bitmap in memory, comprising:\n // - data: a buffer of the bitmap data\n // - width: the width of the image in pixels\n // - height: the height of the image in pixels\n bitmap = emptyBitmap;\n\n // Default colour to use for new pixels\n _background = 0x00000000;\n\n // Default MIME is PNG\n _originalMime = Jimp.MIME_PNG;\n\n // Exif data for the image\n _exif = null;\n\n // Whether Transparency supporting formats will be exported as RGB or RGBA\n _rgba = true;\n\n constructor(...args) {\n super();\n\n const jimpInstance = this;\n let cb = noop;\n\n if (isArrayBuffer(args[0])) {\n args[0] = bufferFromArrayBuffer(args[0]);\n }\n\n function finish(...args) {\n const [err] = args;\n const evData = err || {};\n evData.methodName = \"constructor\";\n\n setTimeout(() => {\n // run on next tick.\n if (err && cb === noop) {\n jimpInstance.emitError(\"constructor\", err);\n } else if (!err) {\n jimpInstance.emitMulti(\"constructor\", \"initialized\");\n }\n\n cb.call(jimpInstance, ...args);\n }, 1);\n }\n\n if (\n (typeof args[0] === \"number\" && typeof args[1] === \"number\") ||\n (parseInt(args[0], 10) && parseInt(args[1], 10))\n ) {\n // create a new image\n const w = parseInt(args[0], 10);\n const h = parseInt(args[1], 10);\n cb = args[2];\n\n // with a hex color\n if (typeof args[2] === \"number\") {\n this._background = args[2];\n cb = args[3];\n }\n\n // with a css color\n if (typeof args[2] === \"string\") {\n this._background = Jimp.cssColorToHex(args[2]);\n cb = args[3];\n }\n\n if (typeof cb === \"undefined\") {\n cb = noop;\n }\n\n if (typeof cb !== \"function\") {\n return throwError.call(this, \"cb must be a function\", finish);\n }\n\n this.bitmap = {\n data: Buffer.alloc(w * h * 4),\n width: w,\n height: h,\n };\n\n for (let i = 0; i < this.bitmap.data.length; i += 4) {\n this.bitmap.data.writeUInt32BE(this._background, i);\n }\n\n finish(null, this);\n } else if (typeof args[0] === \"object\" && args[0].url) {\n cb = args[1] || noop;\n\n if (typeof cb !== \"function\") {\n return throwError.call(this, \"cb must be a function\", finish);\n }\n\n loadFromURL(args[0], (err, data) => {\n if (err) {\n return throwError.call(this, err, finish);\n }\n\n this.parseBitmap(data, args[0].url, finish);\n });\n } else if (args[0] instanceof Jimp) {\n // clone an existing Jimp\n const [original] = args;\n cb = args[1];\n\n if (typeof cb === \"undefined\") {\n cb = noop;\n }\n\n if (typeof cb !== \"function\") {\n return throwError.call(this, \"cb must be a function\", finish);\n }\n\n this.bitmap = {\n data: Buffer.from(original.bitmap.data),\n width: original.bitmap.width,\n height: original.bitmap.height,\n };\n\n this._quality = original._quality;\n this._deflateLevel = original._deflateLevel;\n this._deflateStrategy = original._deflateStrategy;\n this._filterType = original._filterType;\n this._rgba = original._rgba;\n this._background = original._background;\n this._originalMime = original._originalMime;\n\n finish(null, this);\n } else if (isRawRGBAData(args[0])) {\n const [imageData] = args;\n cb = args[1] || noop;\n\n const isRGBA =\n imageData.width * imageData.height * 4 === imageData.data.length;\n const buffer = isRGBA\n ? Buffer.from(imageData.data)\n : makeRGBABufferFromRGB(imageData.data);\n\n this.bitmap = {\n data: buffer,\n width: imageData.width,\n height: imageData.height,\n };\n\n finish(null, this);\n } else if (typeof args[0] === \"string\") {\n // read from a path\n const path = args[0];\n cb = args[1];\n\n if (typeof cb === \"undefined\") {\n cb = noop;\n }\n\n if (typeof cb !== \"function\") {\n return throwError.call(this, \"cb must be a function\", finish);\n }\n\n loadBufferFromPath(path, (err, data) => {\n if (err) {\n return throwError.call(this, err, finish);\n }\n\n this.parseBitmap(data, path, finish);\n });\n } else if (typeof args[0] === \"object\" && Buffer.isBuffer(args[0])) {\n // read from a buffer\n const data = args[0];\n cb = args[1];\n\n if (typeof cb !== \"function\") {\n return throwError.call(this, \"cb must be a function\", finish);\n }\n\n this.parseBitmap(data, null, finish);\n } else {\n // Allow client libs to add new ways to build a Jimp object.\n // Extra constructors must be added by `Jimp.appendConstructorOption()`\n cb = args[args.length - 1];\n\n if (typeof cb !== \"function\") {\n // TODO: try to solve the args after cb problem.\n cb = args[args.length - 2];\n\n if (typeof cb !== \"function\") {\n cb = noop;\n }\n }\n\n const extraConstructor = Jimp.__extraConstructors.find((c) =>\n c.test(...args)\n );\n\n if (extraConstructor) {\n new Promise((resolve, reject) => {\n extraConstructor.run.call(this, resolve, reject, ...args);\n })\n .then(() => finish(null, this))\n .catch(finish);\n } else {\n return throwError.call(\n this,\n \"No matching constructor overloading was found. \" +\n \"Please see the docs for how to call the Jimp constructor.\",\n finish\n );\n }\n }\n }\n\n /**\n * Parse a bitmap with the loaded image types.\n *\n * @param {Buffer} data raw image data\n * @param {string} path optional path to file\n * @param {function(Error, Jimp)} finish (optional) a callback for when complete\n * @memberof Jimp\n */\n parseBitmap(data, path, finish) {\n parseBitmap.call(this, data, null, finish);\n }\n\n /**\n * Sets the type of the image (RGB or RGBA) when saving in a format that supports transparency (default is RGBA)\n * @param {boolean} bool A Boolean, true to use RGBA or false to use RGB\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp} this for chaining of methods\n */\n rgba(bool, cb) {\n if (typeof bool !== \"boolean\") {\n return throwError.call(\n this,\n \"bool must be a boolean, true for RGBA or false for RGB\",\n cb\n );\n }\n\n this._rgba = bool;\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n }\n\n /**\n * Emit for multiple listeners\n * @param {string} methodName name of the method to emit an error for\n * @param {string} eventName name of the eventName to emit an error for\n * @param {object} data to emit\n */\n emitMulti(methodName, eventName, data = {}) {\n data = Object.assign(data, { methodName, eventName });\n this.emit(\"any\", data);\n\n if (methodName) {\n this.emit(methodName, data);\n }\n\n this.emit(eventName, data);\n }\n\n emitError(methodName, err) {\n this.emitMulti(methodName, \"error\", err);\n }\n\n /**\n * Get the current height of the image\n * @return {number} height of the image\n */\n getHeight() {\n return this.bitmap.height;\n }\n\n /**\n * Get the current width of the image\n * @return {number} width of the image\n */\n getWidth() {\n return this.bitmap.width;\n }\n\n /**\n * Nicely format Jimp object when sent to the console e.g. console.log(image)\n * @returns {string} pretty printed\n */\n inspect() {\n return (\n \"\"\n );\n }\n\n /**\n * Nicely format Jimp object when converted to a string\n * @returns {string} pretty printed\n */\n toString() {\n return \"[object Jimp]\";\n }\n\n /**\n * Returns the original MIME of the image (default: \"image/png\")\n * @returns {string} the MIME\n */\n getMIME() {\n const mime = this._originalMime || Jimp.MIME_PNG;\n\n return mime;\n }\n\n /**\n * Returns the appropriate file extension for the original MIME of the image (default: \"png\")\n * @returns {string} the file extension\n */\n getExtension() {\n const mime = this.getMIME();\n\n return MIME.getExtension(mime);\n }\n\n /**\n * Writes the image to a file\n * @param {string} path a path to the destination file\n * @param {function(Error, Jimp)} cb (optional) a function to call when the image is saved to disk\n * @returns {Jimp} this for chaining of methods\n */\n write(path, cb) {\n if (!fs || !fs.createWriteStream) {\n throw new Error(\n \"Cant access the filesystem. You can use the getBase64 method.\"\n );\n }\n\n if (typeof path !== \"string\") {\n return throwError.call(this, \"path must be a string\", cb);\n }\n\n if (typeof cb === \"undefined\") {\n cb = noop;\n }\n\n if (typeof cb !== \"function\") {\n return throwError.call(this, \"cb must be a function\", cb);\n }\n\n const mime = MIME.getType(path) || this.getMIME();\n const pathObj = Path.parse(path);\n\n if (pathObj.dir) {\n mkdirp.sync(pathObj.dir);\n }\n\n this.getBuffer(mime, (err, buffer) => {\n if (err) {\n return throwError.call(this, err, cb);\n }\n\n const stream = fs.createWriteStream(path);\n\n stream\n .on(\"open\", () => {\n stream.write(buffer);\n stream.end();\n })\n .on(\"error\", (err) => {\n return throwError.call(this, err, cb);\n });\n stream.on(\"finish\", () => {\n cb.call(this, null, this);\n });\n });\n\n return this;\n }\n\n writeAsync = (path) => promisify(this.write, this, path);\n\n /**\n * Converts the image to a base 64 string\n * @param {string} mime the mime type of the image data to be created\n * @param {function(Error, Jimp)} cb a Node-style function to call with the buffer as the second argument\n * @returns {Jimp} this for chaining of methods\n */\n getBase64(mime, cb) {\n if (mime === Jimp.AUTO) {\n // allow auto MIME detection\n mime = this.getMIME();\n }\n\n if (typeof mime !== \"string\") {\n return throwError.call(this, \"mime must be a string\", cb);\n }\n\n if (typeof cb !== \"function\") {\n return throwError.call(this, \"cb must be a function\", cb);\n }\n\n this.getBuffer(mime, function (err, data) {\n if (err) {\n return throwError.call(this, err, cb);\n }\n\n const src = \"data:\" + mime + \";base64,\" + data.toString(\"base64\");\n cb.call(this, null, src);\n });\n\n return this;\n }\n\n getBase64Async = (mime) => promisify(this.getBase64, this, mime);\n\n /**\n * Generates a perceptual hash of the image . And pads the string. Can configure base.\n * @param {number} base (optional) a number between 2 and 64 representing the base for the hash (e.g. 2 is binary, 10 is decimal, 16 is hex, 64 is base 64). Defaults to 64.\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {string} a string representing the hash\n */\n hash(base, cb) {\n base = base || 64;\n\n if (typeof base === \"function\") {\n cb = base;\n base = 64;\n }\n\n if (typeof base !== \"number\") {\n return throwError.call(this, \"base must be a number\", cb);\n }\n\n if (base < 2 || base > 64) {\n return throwError.call(\n this,\n \"base must be a number between 2 and 64\",\n cb\n );\n }\n\n let hash = this.pHash();\n hash = anyBase(anyBase.BIN, alphabet.slice(0, base))(hash);\n\n while (hash.length < maxHashLength[base]) {\n hash = \"0\" + hash; // pad out with leading zeros\n }\n\n if (isNodePattern(cb)) {\n cb.call(this, null, hash);\n }\n\n return hash;\n }\n\n /**\n * Calculates the perceptual hash\n * @returns {number} the perceptual hash\n */\n pHash() {\n const pHash = new ImagePHash();\n return pHash.getHash(this);\n }\n\n /**\n * Calculates the hamming distance of the current image and a hash based on their perceptual hash\n * @param {hash} compareHash hash to compare to\n * @returns {number} a number ranging from 0 to 1, 0 means they are believed to be identical\n */\n distanceFromHash(compareHash) {\n const pHash = new ImagePHash();\n const currentHash = pHash.getHash(this);\n\n return pHash.distance(currentHash, compareHash);\n }\n\n /**\n * Converts the image to a buffer\n * @param {string} mime the mime type of the image buffer to be created\n * @param {function(Error, Jimp)} cb a Node-style function to call with the buffer as the second argument\n * @returns {Jimp} this for chaining of methods\n */\n getBuffer = getBuffer;\n\n getBufferAsync = getBufferAsync;\n\n /**\n * Returns the offset of a pixel in the bitmap buffer\n * @param {number} x the x coordinate\n * @param {number} y the y coordinate\n * @param {number} edgeHandling (optional) define how to sum pixels from outside the border\n * @param {number} cb (optional) a callback for when complete\n * @returns {number} the index of the pixel or -1 if not found\n */\n getPixelIndex(x, y, edgeHandling, cb) {\n let xi;\n let yi;\n\n if (typeof edgeHandling === \"function\" && typeof cb === \"undefined\") {\n cb = edgeHandling;\n edgeHandling = null;\n }\n\n if (!edgeHandling) {\n edgeHandling = Jimp.EDGE_EXTEND;\n }\n\n if (typeof x !== \"number\" || typeof y !== \"number\") {\n return throwError.call(this, \"x and y must be numbers\", cb);\n }\n\n // round input\n x = Math.round(x);\n y = Math.round(y);\n xi = x;\n yi = y;\n\n if (edgeHandling === Jimp.EDGE_EXTEND) {\n if (x < 0) xi = 0;\n if (x >= this.bitmap.width) xi = this.bitmap.width - 1;\n if (y < 0) yi = 0;\n if (y >= this.bitmap.height) yi = this.bitmap.height - 1;\n }\n\n if (edgeHandling === Jimp.EDGE_WRAP) {\n if (x < 0) {\n xi = this.bitmap.width + x;\n }\n\n if (x >= this.bitmap.width) {\n xi = x % this.bitmap.width;\n }\n\n if (y < 0) {\n xi = this.bitmap.height + y;\n }\n\n if (y >= this.bitmap.height) {\n yi = y % this.bitmap.height;\n }\n }\n\n let i = (this.bitmap.width * yi + xi) << 2;\n\n // if out of bounds index is -1\n if (xi < 0 || xi >= this.bitmap.width) {\n i = -1;\n }\n\n if (yi < 0 || yi >= this.bitmap.height) {\n i = -1;\n }\n\n if (isNodePattern(cb)) {\n cb.call(this, null, i);\n }\n\n return i;\n }\n\n /**\n * Returns the hex colour value of a pixel\n * @param {number} x the x coordinate\n * @param {number} y the y coordinate\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {number} the color of the pixel\n */\n getPixelColor(x, y, cb) {\n if (typeof x !== \"number\" || typeof y !== \"number\")\n return throwError.call(this, \"x and y must be numbers\", cb);\n\n // round input\n x = Math.round(x);\n y = Math.round(y);\n\n const idx = this.getPixelIndex(x, y);\n const hex = this.bitmap.data.readUInt32BE(idx);\n\n if (isNodePattern(cb)) {\n cb.call(this, null, hex);\n }\n\n return hex;\n }\n\n getPixelColour = this.getPixelColor;\n\n /**\n * Returns the hex colour value of a pixel\n * @param {number} hex color to set\n * @param {number} x the x coordinate\n * @param {number} y the y coordinate\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {number} the index of the pixel or -1 if not found\n */\n setPixelColor(hex, x, y, cb) {\n if (\n typeof hex !== \"number\" ||\n typeof x !== \"number\" ||\n typeof y !== \"number\"\n )\n return throwError.call(this, \"hex, x and y must be numbers\", cb);\n\n // round input\n x = Math.round(x);\n y = Math.round(y);\n\n const idx = this.getPixelIndex(x, y);\n this.bitmap.data.writeUInt32BE(hex, idx);\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n }\n\n setPixelColour = this.setPixelColor;\n\n /**\n * Determine if the image contains opaque pixels.\n * @return {boolean} hasAlpha whether the image contains opaque pixels\n */\n hasAlpha() {\n for (let yIndex = 0; yIndex < this.bitmap.height; yIndex++) {\n for (let xIndex = 0; xIndex < this.bitmap.width; xIndex++) {\n const idx = (this.bitmap.width * yIndex + xIndex) << 2;\n const alpha = this.bitmap.data[idx + 3];\n\n if (alpha !== 0xff) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n /**\n * Iterate scan through a region of the bitmap\n * @param {number} x the x coordinate to begin the scan at\n * @param {number} y the y coordinate to begin the scan at\n * @param w the width of the scan region\n * @param h the height of the scan region\n * @returns {IterableIterator<{x: number, y: number, idx: number, image: Jimp}>}\n */\n scanIterator(x, y, w, h) {\n if (typeof x !== \"number\" || typeof y !== \"number\") {\n return throwError.call(this, \"x and y must be numbers\");\n }\n\n if (typeof w !== \"number\" || typeof h !== \"number\") {\n return throwError.call(this, \"w and h must be numbers\");\n }\n\n return scanIterator(this, x, y, w, h);\n }\n}\n\nexport function addConstants(constants, jimpInstance = Jimp) {\n Object.entries(constants).forEach(([name, value]) => {\n jimpInstance[name] = value;\n });\n}\n\nexport function addJimpMethods(methods, jimpInstance = Jimp) {\n Object.entries(methods).forEach(([name, value]) => {\n jimpInstance.prototype[name] = value;\n });\n}\n\naddConstants(constants);\naddJimpMethods({ composite });\n\nJimp.__extraConstructors = [];\n\n/**\n * Allow client libs to add new ways to build a Jimp object.\n * @param {string} name identify the extra constructor.\n * @param {function} test a function that returns true when it accepts the arguments passed to the main constructor.\n * @param {function} run where the magic happens.\n */\nJimp.appendConstructorOption = function (name, test, run) {\n Jimp.__extraConstructors.push({ name, test, run });\n};\n\n/**\n * Read an image from a file or a Buffer. Takes the same args as the constructor\n * @returns {Promise} a promise\n */\nJimp.read = function (...args) {\n return new Promise((resolve, reject) => {\n // eslint-disable-next-line no-new\n new Jimp(...args, (err, image) => {\n if (err) reject(err);\n else resolve(image);\n });\n });\n};\n\nJimp.create = Jimp.read;\n\n/**\n * A static helper method that converts RGBA values to a single integer value\n * @param {number} r the red value (0-255)\n * @param {number} g the green value (0-255)\n * @param {number} b the blue value (0-255)\n * @param {number} a the alpha value (0-255)\n * @param {function(Error, Jimp)} cb (optional) A callback for when complete\n * @returns {number} an single integer colour value\n */\nJimp.rgbaToInt = function (r, g, b, a, cb) {\n if (\n typeof r !== \"number\" ||\n typeof g !== \"number\" ||\n typeof b !== \"number\" ||\n typeof a !== \"number\"\n ) {\n return throwError.call(this, \"r, g, b and a must be numbers\", cb);\n }\n\n if (r < 0 || r > 255) {\n return throwError.call(this, \"r must be between 0 and 255\", cb);\n }\n\n if (g < 0 || g > 255) {\n throwError.call(this, \"g must be between 0 and 255\", cb);\n }\n\n if (b < 0 || b > 255) {\n return throwError.call(this, \"b must be between 0 and 255\", cb);\n }\n\n if (a < 0 || a > 255) {\n return throwError.call(this, \"a must be between 0 and 255\", cb);\n }\n\n r = Math.round(r);\n b = Math.round(b);\n g = Math.round(g);\n a = Math.round(a);\n\n const i =\n r * Math.pow(256, 3) +\n g * Math.pow(256, 2) +\n b * Math.pow(256, 1) +\n a * Math.pow(256, 0);\n\n if (isNodePattern(cb)) {\n cb.call(this, null, i);\n }\n\n return i;\n};\n\n/**\n * A static helper method that converts RGBA values to a single integer value\n * @param {number} i a single integer value representing an RGBA colour (e.g. 0xFF0000FF for red)\n * @param {function(Error, Jimp)} cb (optional) A callback for when complete\n * @returns {object} an object with the properties r, g, b and a representing RGBA values\n */\nJimp.intToRGBA = function (i, cb) {\n if (typeof i !== \"number\") {\n return throwError.call(this, \"i must be a number\", cb);\n }\n\n const rgba = {};\n\n rgba.r = Math.floor(i / Math.pow(256, 3));\n rgba.g = Math.floor((i - rgba.r * Math.pow(256, 3)) / Math.pow(256, 2));\n rgba.b = Math.floor(\n (i - rgba.r * Math.pow(256, 3) - rgba.g * Math.pow(256, 2)) /\n Math.pow(256, 1)\n );\n rgba.a = Math.floor(\n (i -\n rgba.r * Math.pow(256, 3) -\n rgba.g * Math.pow(256, 2) -\n rgba.b * Math.pow(256, 1)) /\n Math.pow(256, 0)\n );\n\n if (isNodePattern(cb)) {\n cb.call(this, null, rgba);\n }\n\n return rgba;\n};\n\n/**\n * Converts a css color (Hex, 8-digit (RGBA) Hex, RGB, RGBA, HSL, HSLA, HSV, HSVA, Named) to a hex number\n * @param {string} cssColor a number\n * @returns {number} a hex number representing a color\n */\nJimp.cssColorToHex = function (cssColor) {\n cssColor = cssColor || 0; // 0, null, undefined, NaN\n\n if (typeof cssColor === \"number\") return Number(cssColor);\n\n return parseInt(tinyColor(cssColor).toHex8(), 16);\n};\n\n/**\n * Limits a number to between 0 or 255\n * @param {number} n a number\n * @returns {number} the number limited to between 0 or 255\n */\nJimp.limit255 = function (n) {\n n = Math.max(n, 0);\n n = Math.min(n, 255);\n\n return n;\n};\n\n/**\n * Diffs two images and returns\n * @param {Jimp} img1 a Jimp image to compare\n * @param {Jimp} img2 a Jimp image to compare\n * @param {number} threshold (optional) a number, 0 to 1, the smaller the value the more sensitive the comparison (default: 0.1)\n * @returns {object} an object { percent: percent similar, diff: a Jimp image highlighting differences }\n */\nJimp.diff = function (img1, img2, threshold = 0.1) {\n if (!(img1 instanceof Jimp) || !(img2 instanceof Jimp))\n return throwError.call(this, \"img1 and img2 must be an Jimp images\");\n\n const bmp1 = img1.bitmap;\n const bmp2 = img2.bitmap;\n\n if (bmp1.width !== bmp2.width || bmp1.height !== bmp2.height) {\n if (bmp1.width * bmp1.height > bmp2.width * bmp2.height) {\n // img1 is bigger\n img1 = img1.cloneQuiet().resize(bmp2.width, bmp2.height);\n } else {\n // img2 is bigger (or they are the same in area)\n img2 = img2.cloneQuiet().resize(bmp1.width, bmp1.height);\n }\n }\n\n if (typeof threshold !== \"number\" || threshold < 0 || threshold > 1) {\n return throwError.call(this, \"threshold must be a number between 0 and 1\");\n }\n\n const diff = new Jimp(bmp1.width, bmp1.height, 0xffffffff);\n\n const numDiffPixels = pixelMatch(\n bmp1.data,\n bmp2.data,\n diff.bitmap.data,\n diff.bitmap.width,\n diff.bitmap.height,\n { threshold }\n );\n\n return {\n percent: numDiffPixels / (diff.bitmap.width * diff.bitmap.height),\n image: diff,\n };\n};\n\n/**\n * Calculates the hamming distance of two images based on their perceptual hash\n * @param {Jimp} img1 a Jimp image to compare\n * @param {Jimp} img2 a Jimp image to compare\n * @returns {number} a number ranging from 0 to 1, 0 means they are believed to be identical\n */\nJimp.distance = function (img1, img2) {\n const phash = new ImagePHash();\n const hash1 = phash.getHash(img1);\n const hash2 = phash.getHash(img2);\n\n return phash.distance(hash1, hash2);\n};\n\n/**\n * Calculates the hamming distance of two images based on their perceptual hash\n * @param {hash} hash1 a pHash\n * @param {hash} hash2 a pHash\n * @returns {number} a number ranging from 0 to 1, 0 means they are believed to be identical\n */\nJimp.compareHashes = function (hash1, hash2) {\n const phash = new ImagePHash();\n\n return phash.distance(hash1, hash2);\n};\n\n/**\n * Compute color difference\n * 0 means no difference, 1 means maximum difference.\n * @param {number} rgba1: first color to compare.\n * @param {number} rgba2: second color to compare.\n * Both parameters must be an color object {r:val, g:val, b:val, a:val}\n * Where `a` is optional and `val` is an integer between 0 and 255.\n * @returns {number} float between 0 and 1.\n */\nJimp.colorDiff = function (rgba1, rgba2) {\n const pow = (n) => Math.pow(n, 2);\n const { max } = Math;\n const maxVal = 255 * 255 * 3;\n\n if (rgba1.a !== 0 && !rgba1.a) {\n rgba1.a = 255;\n }\n\n if (rgba2.a !== 0 && !rgba2.a) {\n rgba2.a = 255;\n }\n\n return (\n (max(pow(rgba1.r - rgba2.r), pow(rgba1.r - rgba2.r - rgba1.a + rgba2.a)) +\n max(pow(rgba1.g - rgba2.g), pow(rgba1.g - rgba2.g - rgba1.a + rgba2.a)) +\n max(pow(rgba1.b - rgba2.b), pow(rgba1.b - rgba2.b - rgba1.a + rgba2.a))) /\n maxVal\n );\n};\n\n/**\n * Helper to create Jimp methods that emit events before and after its execution.\n * @param {string} methodName The name to be appended to Jimp prototype.\n * @param {string} evName The event name to be called.\n * It will be prefixed by `before-` and emitted when on method call.\n * It will be appended by `ed` and emitted after the method run.\n * @param {function} method A function implementing the method itself.\n * It will also create a quiet version that will not emit events, to not\n * mess the user code with many `changed` event calls. You can call with\n * `methodName + \"Quiet\"`.\n *\n * The emitted event comes with a object parameter to the listener with the\n * `methodName` as one attribute.\n */\nexport function jimpEvMethod(methodName, evName, method) {\n const evNameBefore = \"before-\" + evName;\n const evNameAfter = evName.replace(/e$/, \"\") + \"ed\";\n\n Jimp.prototype[methodName] = function (...args) {\n let wrappedCb;\n const cb = args[method.length - 1];\n const jimpInstance = this;\n\n if (typeof cb === \"function\") {\n wrappedCb = function (...args) {\n const [err, data] = args;\n\n if (err) {\n jimpInstance.emitError(methodName, err);\n } else {\n jimpInstance.emitMulti(methodName, evNameAfter, {\n [methodName]: data,\n });\n }\n\n cb.apply(this, args);\n };\n\n args[args.length - 1] = wrappedCb;\n } else {\n wrappedCb = false;\n }\n\n this.emitMulti(methodName, evNameBefore);\n\n let result;\n\n try {\n result = method.apply(this, args);\n\n if (!wrappedCb) {\n this.emitMulti(methodName, evNameAfter, {\n [methodName]: result,\n });\n }\n } catch (error) {\n error.methodName = methodName;\n this.emitError(methodName, error);\n }\n\n return result;\n };\n\n Jimp.prototype[methodName + \"Quiet\"] = method;\n}\n\n/**\n * Creates a new image that is a clone of this one.\n * @param {function(Error, Jimp)} cb (optional) A callback for when complete\n * @returns the new image\n */\njimpEvMethod(\"clone\", \"clone\", function (cb) {\n const clone = new Jimp(this);\n\n if (isNodePattern(cb)) {\n cb.call(clone, null, clone);\n }\n\n return clone;\n});\n\n/**\n * Simplify jimpEvMethod call for the common `change` evName.\n * @param {string} methodName name of the method\n * @param {function} method to watch changes for\n */\nexport function jimpEvChange(methodName, method) {\n jimpEvMethod(methodName, \"change\", method);\n}\n\n/**\n * Sets the type of the image (RGB or RGBA) when saving as PNG format (default is RGBA)\n * @param b A Boolean, true to use RGBA or false to use RGB\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp} this for chaining of methods\n */\njimpEvChange(\"background\", function (hex, cb) {\n if (typeof hex !== \"number\") {\n return throwError.call(this, \"hex must be a hexadecimal rgba value\", cb);\n }\n\n this._background = hex;\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n});\n\n/**\n * Scans through a region of the bitmap, calling a function for each pixel.\n * @param {number} x the x coordinate to begin the scan at\n * @param {number} y the y coordinate to begin the scan at\n * @param w the width of the scan region\n * @param h the height of the scan region\n * @param f a function to call on even pixel; the (x, y) position of the pixel\n * and the index of the pixel in the bitmap buffer are passed to the function\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp} this for chaining of methods\n */\njimpEvChange(\"scan\", function (x, y, w, h, f, cb) {\n if (typeof x !== \"number\" || typeof y !== \"number\") {\n return throwError.call(this, \"x and y must be numbers\", cb);\n }\n\n if (typeof w !== \"number\" || typeof h !== \"number\") {\n return throwError.call(this, \"w and h must be numbers\", cb);\n }\n\n if (typeof f !== \"function\") {\n return throwError.call(this, \"f must be a function\", cb);\n }\n\n const result = scan(this, x, y, w, h, f);\n\n if (isNodePattern(cb)) {\n cb.call(this, null, result);\n }\n\n return result;\n});\n\nif (process.env.ENVIRONMENT === \"BROWSER\") {\n // For use in a web browser or web worker\n /* global self */\n let gl;\n\n if (typeof window !== \"undefined\" && typeof window === \"object\") {\n gl = window;\n }\n\n if (typeof self !== \"undefined\" && typeof self === \"object\") {\n gl = self;\n }\n\n gl.Jimp = Jimp;\n gl.Buffer = Buffer;\n}\n\nexport { addType } from \"./utils/mime\";\n\nexport default Jimp;\n"],"file":"index.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/core/dist/modules/phash.js b/WechatBot/node_modules/@jimp/core/dist/modules/phash.js
deleted file mode 100755
index cc6556589..000000000
--- a/WechatBot/node_modules/@jimp/core/dist/modules/phash.js
+++ /dev/null
@@ -1,173 +0,0 @@
-"use strict";
-
-/*
-Copyright (c) 2011 Elliot Shepherd
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-*/
-// https://code.google.com/p/ironchef-team21/source/browse/ironchef_team21/src/ImagePHash.java
-
-/*
- * pHash-like image hash.
- * Author: Elliot Shepherd (elliot@jarofworms.com
- * Based On: http://www.hackerfactor.com/blog/index.php?/archives/432-Looks-Like-It.html
- */
-function ImagePHash(size, smallerSize) {
- this.size = this.size || size;
- this.smallerSize = this.smallerSize || smallerSize;
- initCoefficients(this.size);
-}
-
-ImagePHash.prototype.size = 32;
-ImagePHash.prototype.smallerSize = 8;
-
-ImagePHash.prototype.distance = function (s1, s2) {
- var counter = 0;
-
- for (var k = 0; k < s1.length; k++) {
- if (s1[k] !== s2[k]) {
- counter++;
- }
- }
-
- return counter / s1.length;
-}; // Returns a 'binary string' (like. 001010111011100010) which is easy to do a hamming distance on.
-
-
-ImagePHash.prototype.getHash = function (img) {
- /* 1. Reduce size.
- * Like Average Hash, pHash starts with a small image.
- * However, the image is larger than 8x8; 32x32 is a good size.
- * This is really done to simplify the DCT computation and not
- * because it is needed to reduce the high frequencies.
- */
- img = img.clone().resize(this.size, this.size);
- /* 2. Reduce color.
- * The image is reduced to a grayscale just to further simplify
- * the number of computations.
- */
-
- img.grayscale();
- var vals = [];
-
- for (var x = 0; x < img.bitmap.width; x++) {
- vals[x] = [];
-
- for (var y = 0; y < img.bitmap.height; y++) {
- vals[x][y] = intToRGBA(img.getPixelColor(x, y)).b;
- }
- }
- /* 3. Compute the DCT.
- * The DCT separates the image into a collection of frequencies
- * and scalars. While JPEG uses an 8x8 DCT, this algorithm uses
- * a 32x32 DCT.
- */
-
-
- var dctVals = applyDCT(vals, this.size);
- /* 4. Reduce the DCT.
- * This is the magic step. While the DCT is 32x32, just keep the
- * top-left 8x8. Those represent the lowest frequencies in the
- * picture.
- */
-
- /* 5. Compute the average value.
- * Like the Average Hash, compute the mean DCT value (using only
- * the 8x8 DCT low-frequency values and excluding the first term
- * since the DC coefficient can be significantly different from
- * the other values and will throw off the average).
- */
-
- var total = 0;
-
- for (var _x = 0; _x < this.smallerSize; _x++) {
- for (var _y = 0; _y < this.smallerSize; _y++) {
- total += dctVals[_x][_y];
- }
- }
-
- var avg = total / (this.smallerSize * this.smallerSize);
- /* 6. Further reduce the DCT.
- * This is the magic step. Set the 64 hash bits to 0 or 1
- * depending on whether each of the 64 DCT values is above or
- * below the average value. The result doesn't tell us the
- * actual low frequencies; it just tells us the very-rough
- * relative scale of the frequencies to the mean. The result
- * will not vary as long as the overall structure of the image
- * remains the same; this can survive gamma and color histogram
- * adjustments without a problem.
- */
-
- var hash = "";
-
- for (var _x2 = 0; _x2 < this.smallerSize; _x2++) {
- for (var _y2 = 0; _y2 < this.smallerSize; _y2++) {
- hash += dctVals[_x2][_y2] > avg ? "1" : "0";
- }
- }
-
- return hash;
-}; // DCT function stolen from http://stackoverflow.com/questions/4240490/problems-with-dct-and-idct-algorithm-in-java
-
-
-function intToRGBA(i) {
- var rgba = {};
- rgba.r = Math.floor(i / Math.pow(256, 3));
- rgba.g = Math.floor((i - rgba.r * Math.pow(256, 3)) / Math.pow(256, 2));
- rgba.b = Math.floor((i - rgba.r * Math.pow(256, 3) - rgba.g * Math.pow(256, 2)) / Math.pow(256, 1));
- rgba.a = Math.floor((i - rgba.r * Math.pow(256, 3) - rgba.g * Math.pow(256, 2) - rgba.b * Math.pow(256, 1)) / Math.pow(256, 0));
- return rgba;
-}
-
-var c = [];
-
-function initCoefficients(size) {
- for (var i = 1; i < size; i++) {
- c[i] = 1;
- }
-
- c[0] = 1 / Math.sqrt(2.0);
-}
-
-function applyDCT(f, size) {
- var N = size;
- var F = [];
-
- for (var u = 0; u < N; u++) {
- F[u] = [];
-
- for (var v = 0; v < N; v++) {
- var sum = 0;
-
- for (var i = 0; i < N; i++) {
- for (var j = 0; j < N; j++) {
- sum += Math.cos((2 * i + 1) / (2.0 * N) * u * Math.PI) * Math.cos((2 * j + 1) / (2.0 * N) * v * Math.PI) * f[i][j];
- }
- }
-
- sum *= c[u] * c[v] / 4;
- F[u][v] = sum;
- }
- }
-
- return F;
-}
-
-module.exports = ImagePHash;
-//# sourceMappingURL=phash.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/core/dist/modules/phash.js.map b/WechatBot/node_modules/@jimp/core/dist/modules/phash.js.map
deleted file mode 100644
index b7f5523ff..000000000
--- a/WechatBot/node_modules/@jimp/core/dist/modules/phash.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/modules/phash.js"],"names":["ImagePHash","size","smallerSize","initCoefficients","prototype","distance","s1","s2","counter","k","length","getHash","img","clone","resize","grayscale","vals","x","bitmap","width","y","height","intToRGBA","getPixelColor","b","dctVals","applyDCT","total","avg","hash","i","rgba","r","Math","floor","pow","g","a","c","sqrt","f","N","F","u","v","sum","j","cos","PI","module","exports"],"mappings":"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","sourcesContent":["/*\nCopyright (c) 2011 Elliot Shepherd\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\n// https://code.google.com/p/ironchef-team21/source/browse/ironchef_team21/src/ImagePHash.java\n\n/*\n * pHash-like image hash.\n * Author: Elliot Shepherd (elliot@jarofworms.com\n * Based On: http://www.hackerfactor.com/blog/index.php?/archives/432-Looks-Like-It.html\n */\n\nfunction ImagePHash(size, smallerSize) {\n this.size = this.size || size;\n this.smallerSize = this.smallerSize || smallerSize;\n initCoefficients(this.size);\n}\n\nImagePHash.prototype.size = 32;\nImagePHash.prototype.smallerSize = 8;\n\nImagePHash.prototype.distance = function (s1, s2) {\n let counter = 0;\n\n for (let k = 0; k < s1.length; k++) {\n if (s1[k] !== s2[k]) {\n counter++;\n }\n }\n\n return counter / s1.length;\n};\n\n// Returns a 'binary string' (like. 001010111011100010) which is easy to do a hamming distance on.\nImagePHash.prototype.getHash = function (img) {\n /* 1. Reduce size.\n * Like Average Hash, pHash starts with a small image.\n * However, the image is larger than 8x8; 32x32 is a good size.\n * This is really done to simplify the DCT computation and not\n * because it is needed to reduce the high frequencies.\n */\n img = img.clone().resize(this.size, this.size);\n\n /* 2. Reduce color.\n * The image is reduced to a grayscale just to further simplify\n * the number of computations.\n */\n img.grayscale();\n\n const vals = [];\n\n for (let x = 0; x < img.bitmap.width; x++) {\n vals[x] = [];\n for (let y = 0; y < img.bitmap.height; y++) {\n vals[x][y] = intToRGBA(img.getPixelColor(x, y)).b;\n }\n }\n\n /* 3. Compute the DCT.\n * The DCT separates the image into a collection of frequencies\n * and scalars. While JPEG uses an 8x8 DCT, this algorithm uses\n * a 32x32 DCT.\n */\n const dctVals = applyDCT(vals, this.size);\n\n /* 4. Reduce the DCT.\n * This is the magic step. While the DCT is 32x32, just keep the\n * top-left 8x8. Those represent the lowest frequencies in the\n * picture.\n */\n /* 5. Compute the average value.\n * Like the Average Hash, compute the mean DCT value (using only\n * the 8x8 DCT low-frequency values and excluding the first term\n * since the DC coefficient can be significantly different from\n * the other values and will throw off the average).\n */\n let total = 0;\n\n for (let x = 0; x < this.smallerSize; x++) {\n for (let y = 0; y < this.smallerSize; y++) {\n total += dctVals[x][y];\n }\n }\n\n const avg = total / (this.smallerSize * this.smallerSize);\n\n /* 6. Further reduce the DCT.\n * This is the magic step. Set the 64 hash bits to 0 or 1\n * depending on whether each of the 64 DCT values is above or\n * below the average value. The result doesn't tell us the\n * actual low frequencies; it just tells us the very-rough\n * relative scale of the frequencies to the mean. The result\n * will not vary as long as the overall structure of the image\n * remains the same; this can survive gamma and color histogram\n * adjustments without a problem.\n */\n let hash = \"\";\n\n for (let x = 0; x < this.smallerSize; x++) {\n for (let y = 0; y < this.smallerSize; y++) {\n hash += dctVals[x][y] > avg ? \"1\" : \"0\";\n }\n }\n\n return hash;\n};\n\n// DCT function stolen from http://stackoverflow.com/questions/4240490/problems-with-dct-and-idct-algorithm-in-java\n\nfunction intToRGBA(i) {\n const rgba = {};\n\n rgba.r = Math.floor(i / Math.pow(256, 3));\n rgba.g = Math.floor((i - rgba.r * Math.pow(256, 3)) / Math.pow(256, 2));\n rgba.b = Math.floor(\n (i - rgba.r * Math.pow(256, 3) - rgba.g * Math.pow(256, 2)) /\n Math.pow(256, 1)\n );\n rgba.a = Math.floor(\n (i -\n rgba.r * Math.pow(256, 3) -\n rgba.g * Math.pow(256, 2) -\n rgba.b * Math.pow(256, 1)) /\n Math.pow(256, 0)\n );\n\n return rgba;\n}\n\nconst c = [];\nfunction initCoefficients(size) {\n for (let i = 1; i < size; i++) {\n c[i] = 1;\n }\n\n c[0] = 1 / Math.sqrt(2.0);\n}\n\nfunction applyDCT(f, size) {\n const N = size;\n const F = [];\n\n for (let u = 0; u < N; u++) {\n F[u] = [];\n for (let v = 0; v < N; v++) {\n let sum = 0;\n for (let i = 0; i < N; i++) {\n for (let j = 0; j < N; j++) {\n sum +=\n Math.cos(((2 * i + 1) / (2.0 * N)) * u * Math.PI) *\n Math.cos(((2 * j + 1) / (2.0 * N)) * v * Math.PI) *\n f[i][j];\n }\n }\n\n sum *= (c[u] * c[v]) / 4;\n F[u][v] = sum;\n }\n }\n\n return F;\n}\n\nmodule.exports = ImagePHash;\n"],"file":"phash.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/core/dist/request.js b/WechatBot/node_modules/@jimp/core/dist/request.js
deleted file mode 100755
index 074adb5d8..000000000
--- a/WechatBot/node_modules/@jimp/core/dist/request.js
+++ /dev/null
@@ -1,55 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
-
-var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
-
-function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
-
-function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
-
-/* global XMLHttpRequest */
-if (process.browser || process.env.ENVIRONMENT === "BROWSER" || typeof process.versions.electron !== "undefined" && process.type === "renderer" && typeof XMLHttpRequest === "function") {
- // If we run into a browser or the electron renderer process,
- // use XHR method instead of Request node module.
- module.exports = function (options, cb) {
- var xhr = new XMLHttpRequest();
- xhr.open("GET", options.url, true);
- xhr.responseType = "arraybuffer";
- xhr.addEventListener("load", function () {
- if (xhr.status < 400) {
- try {
- var data = Buffer.from(this.response);
- cb(null, xhr, data);
- } catch (error) {
- return cb(new Error("Response is not a buffer for url " + options.url + ". Error: " + error.message));
- }
- } else {
- cb(new Error("HTTP Status " + xhr.status + " for url " + options.url));
- }
- });
- xhr.addEventListener("error", function (e) {
- cb(e);
- });
- xhr.send();
- };
-} else {
- module.exports = function (_ref, cb) {
- var options = (0, _extends2["default"])({}, _ref);
-
- var p = require("phin");
-
- p(_objectSpread({
- compression: true
- }, options), function (err, res) {
- if (err === null) {
- cb(null, res, res.body);
- } else {
- cb(err);
- }
- });
- };
-}
-//# sourceMappingURL=request.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/core/dist/request.js.map b/WechatBot/node_modules/@jimp/core/dist/request.js.map
deleted file mode 100644
index 6ffeb7f1d..000000000
--- a/WechatBot/node_modules/@jimp/core/dist/request.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/request.js"],"names":["process","browser","env","ENVIRONMENT","versions","electron","type","XMLHttpRequest","module","exports","options","cb","xhr","open","url","responseType","addEventListener","status","data","Buffer","from","response","error","Error","message","e","send","p","require","compression","err","res","body"],"mappings":";;;;;;;;;;;;AAAA;AAEA,IACEA,OAAO,CAACC,OAAR,IACAD,OAAO,CAACE,GAAR,CAAYC,WAAZ,KAA4B,SAD5B,IAEC,OAAOH,OAAO,CAACI,QAAR,CAAiBC,QAAxB,KAAqC,WAArC,IACCL,OAAO,CAACM,IAAR,KAAiB,UADlB,IAEC,OAAOC,cAAP,KAA0B,UAL9B,EAME;AACA;AACA;AAEAC,EAAAA,MAAM,CAACC,OAAP,GAAiB,UAAUC,OAAV,EAAmBC,EAAnB,EAAuB;AACtC,QAAMC,GAAG,GAAG,IAAIL,cAAJ,EAAZ;AACAK,IAAAA,GAAG,CAACC,IAAJ,CAAS,KAAT,EAAgBH,OAAO,CAACI,GAAxB,EAA6B,IAA7B;AACAF,IAAAA,GAAG,CAACG,YAAJ,GAAmB,aAAnB;AACAH,IAAAA,GAAG,CAACI,gBAAJ,CAAqB,MAArB,EAA6B,YAAY;AACvC,UAAIJ,GAAG,CAACK,MAAJ,GAAa,GAAjB,EAAsB;AACpB,YAAI;AACF,cAAMC,IAAI,GAAGC,MAAM,CAACC,IAAP,CAAY,KAAKC,QAAjB,CAAb;AACAV,UAAAA,EAAE,CAAC,IAAD,EAAOC,GAAP,EAAYM,IAAZ,CAAF;AACD,SAHD,CAGE,OAAOI,KAAP,EAAc;AACd,iBAAOX,EAAE,CACP,IAAIY,KAAJ,CACE,sCACEb,OAAO,CAACI,GADV,GAEE,WAFF,GAGEQ,KAAK,CAACE,OAJV,CADO,CAAT;AAQD;AACF,OAdD,MAcO;AACLb,QAAAA,EAAE,CAAC,IAAIY,KAAJ,CAAU,iBAAiBX,GAAG,CAACK,MAArB,GAA8B,WAA9B,GAA4CP,OAAO,CAACI,GAA9D,CAAD,CAAF;AACD;AACF,KAlBD;AAmBAF,IAAAA,GAAG,CAACI,gBAAJ,CAAqB,OAArB,EAA8B,UAACS,CAAD,EAAO;AACnCd,MAAAA,EAAE,CAACc,CAAD,CAAF;AACD,KAFD;AAGAb,IAAAA,GAAG,CAACc,IAAJ;AACD,GA3BD;AA4BD,CAtCD,MAsCO;AACLlB,EAAAA,MAAM,CAACC,OAAP,GAAiB,gBAA0BE,EAA1B,EAA8B;AAAA,QAAfD,OAAe;;AAC7C,QAAMiB,CAAC,GAAGC,OAAO,CAAC,MAAD,CAAjB;;AAEAD,IAAAA,CAAC;AAAGE,MAAAA,WAAW,EAAE;AAAhB,OAAyBnB,OAAzB,GAAoC,UAACoB,GAAD,EAAMC,GAAN,EAAc;AACjD,UAAID,GAAG,KAAK,IAAZ,EAAkB;AAChBnB,QAAAA,EAAE,CAAC,IAAD,EAAOoB,GAAP,EAAYA,GAAG,CAACC,IAAhB,CAAF;AACD,OAFD,MAEO;AACLrB,QAAAA,EAAE,CAACmB,GAAD,CAAF;AACD;AACF,KANA,CAAD;AAOD,GAVD;AAWD","sourcesContent":["/* global XMLHttpRequest */\n\nif (\n process.browser ||\n process.env.ENVIRONMENT === \"BROWSER\" ||\n (typeof process.versions.electron !== \"undefined\" &&\n process.type === \"renderer\" &&\n typeof XMLHttpRequest === \"function\")\n) {\n // If we run into a browser or the electron renderer process,\n // use XHR method instead of Request node module.\n\n module.exports = function (options, cb) {\n const xhr = new XMLHttpRequest();\n xhr.open(\"GET\", options.url, true);\n xhr.responseType = \"arraybuffer\";\n xhr.addEventListener(\"load\", function () {\n if (xhr.status < 400) {\n try {\n const data = Buffer.from(this.response);\n cb(null, xhr, data);\n } catch (error) {\n return cb(\n new Error(\n \"Response is not a buffer for url \" +\n options.url +\n \". Error: \" +\n error.message\n )\n );\n }\n } else {\n cb(new Error(\"HTTP Status \" + xhr.status + \" for url \" + options.url));\n }\n });\n xhr.addEventListener(\"error\", (e) => {\n cb(e);\n });\n xhr.send();\n };\n} else {\n module.exports = function ({ ...options }, cb) {\n const p = require(\"phin\");\n\n p({ compression: true, ...options }, (err, res) => {\n if (err === null) {\n cb(null, res, res.body);\n } else {\n cb(err);\n }\n });\n };\n}\n"],"file":"request.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/core/dist/utils/image-bitmap.js b/WechatBot/node_modules/@jimp/core/dist/utils/image-bitmap.js
deleted file mode 100755
index e7c3dc99a..000000000
--- a/WechatBot/node_modules/@jimp/core/dist/utils/image-bitmap.js
+++ /dev/null
@@ -1,319 +0,0 @@
-"use strict";
-
-var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.parseBitmap = parseBitmap;
-exports.getBuffer = getBuffer;
-exports.getBufferAsync = getBufferAsync;
-
-var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
-
-var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
-
-var _fileType = _interopRequireDefault(require("file-type"));
-
-var _exifParser = _interopRequireDefault(require("exif-parser"));
-
-var _utils = require("@jimp/utils");
-
-var constants = _interopRequireWildcard(require("../constants"));
-
-var MIME = _interopRequireWildcard(require("./mime"));
-
-var _promisify = _interopRequireDefault(require("./promisify"));
-
-function getMIMEFromBuffer(buffer, path) {
- var fileTypeFromBuffer;
- return _regenerator["default"].async(function getMIMEFromBuffer$(_context) {
- while (1) {
- switch (_context.prev = _context.next) {
- case 0:
- _context.next = 2;
- return _regenerator["default"].awrap(_fileType["default"].fromBuffer(buffer));
-
- case 2:
- fileTypeFromBuffer = _context.sent;
-
- if (!fileTypeFromBuffer) {
- _context.next = 5;
- break;
- }
-
- return _context.abrupt("return", fileTypeFromBuffer.mime);
-
- case 5:
- if (!path) {
- _context.next = 7;
- break;
- }
-
- return _context.abrupt("return", MIME.getType(path));
-
- case 7:
- return _context.abrupt("return", null);
-
- case 8:
- case "end":
- return _context.stop();
- }
- }
- });
-}
-/*
- * Obtains image orientation from EXIF metadata.
- *
- * @param img {Jimp} a Jimp image object
- * @returns {number} a number 1-8 representing EXIF orientation,
- * in particular 1 if orientation tag is missing
- */
-
-
-function getExifOrientation(img) {
- return img._exif && img._exif.tags && img._exif.tags.Orientation || 1;
-}
-/**
- * Returns a function which translates EXIF-rotated coordinates into
- * non-rotated ones.
- *
- * Transformation reference: http://sylvana.net/jpegcrop/exif_orientation.html.
- *
- * @param img {Jimp} a Jimp image object
- * @returns {function} transformation function for transformBitmap().
- */
-
-
-function getExifOrientationTransformation(img) {
- var w = img.getWidth();
- var h = img.getHeight();
-
- switch (getExifOrientation(img)) {
- case 1:
- // Horizontal (normal)
- // does not need to be supported here
- return null;
-
- case 2:
- // Mirror horizontal
- return function (x, y) {
- return [w - x - 1, y];
- };
-
- case 3:
- // Rotate 180
- return function (x, y) {
- return [w - x - 1, h - y - 1];
- };
-
- case 4:
- // Mirror vertical
- return function (x, y) {
- return [x, h - y - 1];
- };
-
- case 5:
- // Mirror horizontal and rotate 270 CW
- return function (x, y) {
- return [y, x];
- };
-
- case 6:
- // Rotate 90 CW
- return function (x, y) {
- return [y, h - x - 1];
- };
-
- case 7:
- // Mirror horizontal and rotate 90 CW
- return function (x, y) {
- return [w - y - 1, h - x - 1];
- };
-
- case 8:
- // Rotate 270 CW
- return function (x, y) {
- return [w - y - 1, x];
- };
-
- default:
- return null;
- }
-}
-/*
- * Transforms bitmap in place (moves pixels around) according to given
- * transformation function.
- *
- * @param img {Jimp} a Jimp image object, which bitmap is supposed to
- * be transformed
- * @param width {number} bitmap width after the transformation
- * @param height {number} bitmap height after the transformation
- * @param transformation {function} transformation function which defines pixel
- * mapping between new and source bitmap. It takes a pair of coordinates
- * in the target, and returns a respective pair of coordinates in
- * the source bitmap, i.e. has following form:
- * `function(new_x, new_y) { return [src_x, src_y] }`.
- */
-
-
-function transformBitmap(img, width, height, transformation) {
- // Underscore-prefixed values are related to the source bitmap
- // Their counterparts with no prefix are related to the target bitmap
- var _data = img.bitmap.data;
- var _width = img.bitmap.width;
- var data = Buffer.alloc(_data.length);
-
- for (var x = 0; x < width; x++) {
- for (var y = 0; y < height; y++) {
- var _transformation = transformation(x, y),
- _transformation2 = (0, _slicedToArray2["default"])(_transformation, 2),
- _x = _transformation2[0],
- _y = _transformation2[1];
-
- var idx = width * y + x << 2;
-
- var _idx = _width * _y + _x << 2;
-
- var pixel = _data.readUInt32BE(_idx);
-
- data.writeUInt32BE(pixel, idx);
- }
- }
-
- img.bitmap.data = data;
- img.bitmap.width = width;
- img.bitmap.height = height;
-}
-/*
- * Automagically rotates an image based on its EXIF data (if present).
- * @param img {Jimp} a Jimp image object
- */
-
-
-function exifRotate(img) {
- if (getExifOrientation(img) < 2) return;
- var transformation = getExifOrientationTransformation(img);
- var swapDimensions = getExifOrientation(img) > 4;
- var newWidth = swapDimensions ? img.bitmap.height : img.bitmap.width;
- var newHeight = swapDimensions ? img.bitmap.width : img.bitmap.height;
- transformBitmap(img, newWidth, newHeight, transformation);
-} // parses a bitmap from the constructor to the JIMP bitmap property
-
-
-function parseBitmap(data, path, cb) {
- var mime, _mime;
-
- return _regenerator["default"].async(function parseBitmap$(_context2) {
- while (1) {
- switch (_context2.prev = _context2.next) {
- case 0:
- _context2.next = 2;
- return _regenerator["default"].awrap(getMIMEFromBuffer(data, path));
-
- case 2:
- mime = _context2.sent;
-
- if (!(typeof mime !== "string")) {
- _context2.next = 5;
- break;
- }
-
- return _context2.abrupt("return", cb(new Error("Could not find MIME for Buffer <" + path + ">")));
-
- case 5:
- this._originalMime = mime.toLowerCase();
- _context2.prev = 6;
- _mime = this.getMIME();
-
- if (!this.constructor.decoders[_mime]) {
- _context2.next = 12;
- break;
- }
-
- this.bitmap = this.constructor.decoders[_mime](data);
- _context2.next = 13;
- break;
-
- case 12:
- return _context2.abrupt("return", _utils.throwError.call(this, "Unsupported MIME type: " + _mime, cb));
-
- case 13:
- _context2.next = 18;
- break;
-
- case 15:
- _context2.prev = 15;
- _context2.t0 = _context2["catch"](6);
- return _context2.abrupt("return", cb.call(this, _context2.t0, this));
-
- case 18:
- try {
- this._exif = _exifParser["default"].create(data).parse();
- exifRotate(this); // EXIF data
- } catch (error) {
- /* meh */
- }
-
- cb.call(this, null, this);
- return _context2.abrupt("return", this);
-
- case 21:
- case "end":
- return _context2.stop();
- }
- }
- }, null, this, [[6, 15]]);
-}
-
-function compositeBitmapOverBackground(Jimp, image) {
- return new Jimp(image.bitmap.width, image.bitmap.height, image._background).composite(image, 0, 0).bitmap;
-}
-/**
- * Converts the image to a buffer
- * @param {string} mime the mime type of the image buffer to be created
- * @param {function(Error, Jimp)} cb a Node-style function to call with the buffer as the second argument
- * @returns {Jimp} this for chaining of methods
- */
-
-
-function getBuffer(mime, cb) {
- if (mime === constants.AUTO) {
- // allow auto MIME detection
- mime = this.getMIME();
- }
-
- if (typeof mime !== "string") {
- return _utils.throwError.call(this, "mime must be a string", cb);
- }
-
- if (typeof cb !== "function") {
- return _utils.throwError.call(this, "cb must be a function", cb);
- }
-
- mime = mime.toLowerCase();
-
- if (this._rgba && this.constructor.hasAlpha[mime]) {
- this.bitmap.data = Buffer.from(this.bitmap.data);
- } else {
- // when format doesn't support alpha
- // composite onto a new image so that the background shows through alpha channels
- this.bitmap.data = compositeBitmapOverBackground(this.constructor, this).data;
- }
-
- if (this.constructor.encoders[mime]) {
- var buffer = this.constructor.encoders[mime](this);
- cb.call(this, null, buffer);
- } else {
- cb.call(this, "Unsupported MIME type: " + mime);
- }
-
- return this;
-}
-
-function getBufferAsync(mime) {
- return (0, _promisify["default"])(getBuffer, this, mime);
-}
-//# sourceMappingURL=image-bitmap.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/core/dist/utils/image-bitmap.js.map b/WechatBot/node_modules/@jimp/core/dist/utils/image-bitmap.js.map
deleted file mode 100644
index dcc464e99..000000000
--- a/WechatBot/node_modules/@jimp/core/dist/utils/image-bitmap.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/utils/image-bitmap.js"],"names":["getMIMEFromBuffer","buffer","path","FileType","fromBuffer","fileTypeFromBuffer","mime","MIME","getType","getExifOrientation","img","_exif","tags","Orientation","getExifOrientationTransformation","w","getWidth","h","getHeight","x","y","transformBitmap","width","height","transformation","_data","bitmap","data","_width","Buffer","alloc","length","_x","_y","idx","_idx","pixel","readUInt32BE","writeUInt32BE","exifRotate","swapDimensions","newWidth","newHeight","parseBitmap","cb","Error","_originalMime","toLowerCase","getMIME","constructor","decoders","throwError","call","EXIFParser","create","parse","error","compositeBitmapOverBackground","Jimp","image","_background","composite","getBuffer","constants","AUTO","_rgba","hasAlpha","from","encoders","getBufferAsync"],"mappings":"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","sourcesContent":["import FileType from \"file-type\";\n\nimport EXIFParser from \"exif-parser\";\nimport { throwError } from \"@jimp/utils\";\n\nimport * as constants from \"../constants\";\nimport * as MIME from \"./mime\";\nimport promisify from \"./promisify\";\n\nasync function getMIMEFromBuffer(buffer, path) {\n const fileTypeFromBuffer = await FileType.fromBuffer(buffer);\n\n if (fileTypeFromBuffer) {\n // If fileType returns something for buffer, then return the mime given\n return fileTypeFromBuffer.mime;\n }\n\n if (path) {\n // If a path is supplied, and fileType yields no results, then retry with MIME\n // Path can be either a file path or a url\n return MIME.getType(path);\n }\n\n return null;\n}\n\n/*\n * Obtains image orientation from EXIF metadata.\n *\n * @param img {Jimp} a Jimp image object\n * @returns {number} a number 1-8 representing EXIF orientation,\n * in particular 1 if orientation tag is missing\n */\nfunction getExifOrientation(img) {\n return (img._exif && img._exif.tags && img._exif.tags.Orientation) || 1;\n}\n\n/**\n * Returns a function which translates EXIF-rotated coordinates into\n * non-rotated ones.\n *\n * Transformation reference: http://sylvana.net/jpegcrop/exif_orientation.html.\n *\n * @param img {Jimp} a Jimp image object\n * @returns {function} transformation function for transformBitmap().\n */\nfunction getExifOrientationTransformation(img) {\n const w = img.getWidth();\n const h = img.getHeight();\n\n switch (getExifOrientation(img)) {\n case 1: // Horizontal (normal)\n // does not need to be supported here\n return null;\n\n case 2: // Mirror horizontal\n return function (x, y) {\n return [w - x - 1, y];\n };\n\n case 3: // Rotate 180\n return function (x, y) {\n return [w - x - 1, h - y - 1];\n };\n\n case 4: // Mirror vertical\n return function (x, y) {\n return [x, h - y - 1];\n };\n\n case 5: // Mirror horizontal and rotate 270 CW\n return function (x, y) {\n return [y, x];\n };\n\n case 6: // Rotate 90 CW\n return function (x, y) {\n return [y, h - x - 1];\n };\n\n case 7: // Mirror horizontal and rotate 90 CW\n return function (x, y) {\n return [w - y - 1, h - x - 1];\n };\n\n case 8: // Rotate 270 CW\n return function (x, y) {\n return [w - y - 1, x];\n };\n\n default:\n return null;\n }\n}\n\n/*\n * Transforms bitmap in place (moves pixels around) according to given\n * transformation function.\n *\n * @param img {Jimp} a Jimp image object, which bitmap is supposed to\n * be transformed\n * @param width {number} bitmap width after the transformation\n * @param height {number} bitmap height after the transformation\n * @param transformation {function} transformation function which defines pixel\n * mapping between new and source bitmap. It takes a pair of coordinates\n * in the target, and returns a respective pair of coordinates in\n * the source bitmap, i.e. has following form:\n * `function(new_x, new_y) { return [src_x, src_y] }`.\n */\nfunction transformBitmap(img, width, height, transformation) {\n // Underscore-prefixed values are related to the source bitmap\n // Their counterparts with no prefix are related to the target bitmap\n const _data = img.bitmap.data;\n const _width = img.bitmap.width;\n\n const data = Buffer.alloc(_data.length);\n\n for (let x = 0; x < width; x++) {\n for (let y = 0; y < height; y++) {\n const [_x, _y] = transformation(x, y);\n\n const idx = (width * y + x) << 2;\n const _idx = (_width * _y + _x) << 2;\n\n const pixel = _data.readUInt32BE(_idx);\n data.writeUInt32BE(pixel, idx);\n }\n }\n\n img.bitmap.data = data;\n img.bitmap.width = width;\n img.bitmap.height = height;\n}\n\n/*\n * Automagically rotates an image based on its EXIF data (if present).\n * @param img {Jimp} a Jimp image object\n */\nfunction exifRotate(img) {\n if (getExifOrientation(img) < 2) return;\n\n const transformation = getExifOrientationTransformation(img);\n const swapDimensions = getExifOrientation(img) > 4;\n\n const newWidth = swapDimensions ? img.bitmap.height : img.bitmap.width;\n const newHeight = swapDimensions ? img.bitmap.width : img.bitmap.height;\n\n transformBitmap(img, newWidth, newHeight, transformation);\n}\n\n// parses a bitmap from the constructor to the JIMP bitmap property\nexport async function parseBitmap(data, path, cb) {\n const mime = await getMIMEFromBuffer(data, path);\n\n if (typeof mime !== \"string\") {\n return cb(new Error(\"Could not find MIME for Buffer <\" + path + \">\"));\n }\n\n this._originalMime = mime.toLowerCase();\n\n try {\n const mime = this.getMIME();\n\n if (this.constructor.decoders[mime]) {\n this.bitmap = this.constructor.decoders[mime](data);\n } else {\n return throwError.call(this, \"Unsupported MIME type: \" + mime, cb);\n }\n } catch (error) {\n return cb.call(this, error, this);\n }\n\n try {\n this._exif = EXIFParser.create(data).parse();\n exifRotate(this); // EXIF data\n } catch (error) {\n /* meh */\n }\n\n cb.call(this, null, this);\n\n return this;\n}\n\nfunction compositeBitmapOverBackground(Jimp, image) {\n return new Jimp(\n image.bitmap.width,\n image.bitmap.height,\n image._background\n ).composite(image, 0, 0).bitmap;\n}\n\n/**\n * Converts the image to a buffer\n * @param {string} mime the mime type of the image buffer to be created\n * @param {function(Error, Jimp)} cb a Node-style function to call with the buffer as the second argument\n * @returns {Jimp} this for chaining of methods\n */\nexport function getBuffer(mime, cb) {\n if (mime === constants.AUTO) {\n // allow auto MIME detection\n mime = this.getMIME();\n }\n\n if (typeof mime !== \"string\") {\n return throwError.call(this, \"mime must be a string\", cb);\n }\n\n if (typeof cb !== \"function\") {\n return throwError.call(this, \"cb must be a function\", cb);\n }\n\n mime = mime.toLowerCase();\n\n if (this._rgba && this.constructor.hasAlpha[mime]) {\n this.bitmap.data = Buffer.from(this.bitmap.data);\n } else {\n // when format doesn't support alpha\n // composite onto a new image so that the background shows through alpha channels\n this.bitmap.data = compositeBitmapOverBackground(\n this.constructor,\n this\n ).data;\n }\n\n if (this.constructor.encoders[mime]) {\n const buffer = this.constructor.encoders[mime](this);\n cb.call(this, null, buffer);\n } else {\n cb.call(this, \"Unsupported MIME type: \" + mime);\n }\n\n return this;\n}\n\nexport function getBufferAsync(mime) {\n return promisify(getBuffer, this, mime);\n}\n"],"file":"image-bitmap.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/core/dist/utils/mime.js b/WechatBot/node_modules/@jimp/core/dist/utils/mime.js
deleted file mode 100755
index 6e94ba727..000000000
--- a/WechatBot/node_modules/@jimp/core/dist/utils/mime.js
+++ /dev/null
@@ -1,47 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.getExtension = exports.getType = exports.addType = void 0;
-var mimeTypes = {};
-
-var findType = function findType(extension) {
- return Object.entries(mimeTypes).find(function (type) {
- return type[1].includes(extension);
- }) || [];
-};
-
-var addType = function addType(mime, extensions) {
- mimeTypes[mime] = extensions;
-};
-/**
- * Lookup a mime type based on extension
- * @param {string} path path to find extension for
- * @returns {string} mime found mime type
- */
-
-
-exports.addType = addType;
-
-var getType = function getType(path) {
- var pathParts = path.split("/").slice(-1);
- var extension = pathParts[pathParts.length - 1].split(".").pop();
- var type = findType(extension);
- return type[0];
-};
-/**
- * Return file extension associated with a mime type
- * @param {string} type mime type to look up
- * @returns {string} extension file extension
- */
-
-
-exports.getType = getType;
-
-var getExtension = function getExtension(type) {
- return (mimeTypes[type.toLowerCase()] || [])[0];
-};
-
-exports.getExtension = getExtension;
-//# sourceMappingURL=mime.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/core/dist/utils/mime.js.map b/WechatBot/node_modules/@jimp/core/dist/utils/mime.js.map
deleted file mode 100644
index 0fbcd7e12..000000000
--- a/WechatBot/node_modules/@jimp/core/dist/utils/mime.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/utils/mime.js"],"names":["mimeTypes","findType","extension","Object","entries","find","type","includes","addType","mime","extensions","getType","path","pathParts","split","slice","length","pop","getExtension","toLowerCase"],"mappings":";;;;;;AAAA,IAAMA,SAAS,GAAG,EAAlB;;AAEA,IAAMC,QAAQ,GAAG,SAAXA,QAAW,CAACC,SAAD;AAAA,SACfC,MAAM,CAACC,OAAP,CAAeJ,SAAf,EAA0BK,IAA1B,CAA+B,UAACC,IAAD;AAAA,WAAUA,IAAI,CAAC,CAAD,CAAJ,CAAQC,QAAR,CAAiBL,SAAjB,CAAV;AAAA,GAA/B,KAAyE,EAD1D;AAAA,CAAjB;;AAGO,IAAMM,OAAO,GAAG,SAAVA,OAAU,CAACC,IAAD,EAAOC,UAAP,EAAsB;AAC3CV,EAAAA,SAAS,CAACS,IAAD,CAAT,GAAkBC,UAAlB;AACD,CAFM;AAIP;;;;;;;;;AAKO,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAACC,IAAD,EAAU;AAC/B,MAAMC,SAAS,GAAGD,IAAI,CAACE,KAAL,CAAW,GAAX,EAAgBC,KAAhB,CAAsB,CAAC,CAAvB,CAAlB;AACA,MAAMb,SAAS,GAAGW,SAAS,CAACA,SAAS,CAACG,MAAV,GAAmB,CAApB,CAAT,CAAgCF,KAAhC,CAAsC,GAAtC,EAA2CG,GAA3C,EAAlB;AACA,MAAMX,IAAI,GAAGL,QAAQ,CAACC,SAAD,CAArB;AAEA,SAAOI,IAAI,CAAC,CAAD,CAAX;AACD,CANM;AAQP;;;;;;;;;AAKO,IAAMY,YAAY,GAAG,SAAfA,YAAe,CAACZ,IAAD;AAAA,SAAU,CAACN,SAAS,CAACM,IAAI,CAACa,WAAL,EAAD,CAAT,IAAiC,EAAlC,EAAsC,CAAtC,CAAV;AAAA,CAArB","sourcesContent":["const mimeTypes = {};\n\nconst findType = (extension) =>\n Object.entries(mimeTypes).find((type) => type[1].includes(extension)) || [];\n\nexport const addType = (mime, extensions) => {\n mimeTypes[mime] = extensions;\n};\n\n/**\n * Lookup a mime type based on extension\n * @param {string} path path to find extension for\n * @returns {string} mime found mime type\n */\nexport const getType = (path) => {\n const pathParts = path.split(\"/\").slice(-1);\n const extension = pathParts[pathParts.length - 1].split(\".\").pop();\n const type = findType(extension);\n\n return type[0];\n};\n\n/**\n * Return file extension associated with a mime type\n * @param {string} type mime type to look up\n * @returns {string} extension file extension\n */\nexport const getExtension = (type) => (mimeTypes[type.toLowerCase()] || [])[0];\n"],"file":"mime.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/core/dist/utils/promisify.js b/WechatBot/node_modules/@jimp/core/dist/utils/promisify.js
deleted file mode 100755
index 35223d344..000000000
--- a/WechatBot/node_modules/@jimp/core/dist/utils/promisify.js
+++ /dev/null
@@ -1,28 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports["default"] = void 0;
-
-var promisify = function promisify(fun, ctx) {
- for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
- args[_key - 2] = arguments[_key];
- }
-
- return new Promise(function (resolve, reject) {
- args.push(function (err, data) {
- if (err) {
- reject(err);
- }
-
- resolve(data);
- });
- fun.bind(ctx).apply(void 0, args);
- });
-};
-
-var _default = promisify;
-exports["default"] = _default;
-module.exports = exports.default;
-//# sourceMappingURL=promisify.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/core/dist/utils/promisify.js.map b/WechatBot/node_modules/@jimp/core/dist/utils/promisify.js.map
deleted file mode 100644
index c72c0c483..000000000
--- a/WechatBot/node_modules/@jimp/core/dist/utils/promisify.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/utils/promisify.js"],"names":["promisify","fun","ctx","args","Promise","resolve","reject","push","err","data","bind"],"mappings":";;;;;;;AAAA,IAAMA,SAAS,GAAG,SAAZA,SAAY,CAACC,GAAD,EAAMC,GAAN;AAAA,oCAAcC,IAAd;AAAcA,IAAAA,IAAd;AAAA;;AAAA,SAChB,IAAIC,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AAC/BH,IAAAA,IAAI,CAACI,IAAL,CAAU,UAACC,GAAD,EAAMC,IAAN,EAAe;AACvB,UAAID,GAAJ,EAAS;AACPF,QAAAA,MAAM,CAACE,GAAD,CAAN;AACD;;AAEDH,MAAAA,OAAO,CAACI,IAAD,CAAP;AACD,KAND;AAOAR,IAAAA,GAAG,CAACS,IAAJ,CAASR,GAAT,gBAAiBC,IAAjB;AACD,GATD,CADgB;AAAA,CAAlB;;eAYeH,S","sourcesContent":["const promisify = (fun, ctx, ...args) =>\n new Promise((resolve, reject) => {\n args.push((err, data) => {\n if (err) {\n reject(err);\n }\n\n resolve(data);\n });\n fun.bind(ctx)(...args);\n });\n\nexport default promisify;\n"],"file":"promisify.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/core/package.json b/WechatBot/node_modules/@jimp/core/package.json
deleted file mode 100644
index 65183a5d3..000000000
--- a/WechatBot/node_modules/@jimp/core/package.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
- "name": "@jimp/core",
- "version": "0.16.13",
- "description": "Jimp core",
- "main": "dist/index.js",
- "module": "es/index.js",
- "types": "types/index.d.ts",
- "files": [
- "dist",
- "es",
- "index.d.ts",
- "fonts",
- "types"
- ],
- "repository": "jimp-dev/jimp",
- "scripts": {
- "test": "cross-env BABEL_ENV=test mocha --require @babel/register test/**/*.js",
- "test:watch": "npm run test -- --reporter min --watch",
- "test:coverage": "nyc npm run test",
- "build": "npm run build:node:production && npm run build:module",
- "build:watch": "npm run build:node:debug -- -- --watch --verbose",
- "build:debug": "npm run build:node:debug",
- "build:module": "cross-env BABEL_ENV=module babel src -d es --source-maps --config-file ../../babel.config.js",
- "build:node": "babel src -d dist --source-maps --config-file ../../babel.config.js",
- "build:node:debug": "cross-env BABEL_ENV=development npm run build:node",
- "build:node:production": "cross-env BABEL_ENV=production npm run build:node"
- },
- "author": "Oliver Moran ",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13",
- "any-base": "^1.1.0",
- "buffer": "^5.2.0",
- "exif-parser": "^0.1.12",
- "file-type": "^16.5.4",
- "load-bmfont": "^1.3.1",
- "mkdirp": "^0.5.1",
- "phin": "^2.9.1",
- "pixelmatch": "^4.0.2",
- "tinycolor2": "^1.4.1"
- },
- "devDependencies": {
- "should": "^13.2.3"
- },
- "publishConfig": {
- "access": "public"
- },
- "gitHead": "9eec86086634329a072901dca3a800b850548572"
-}
diff --git a/WechatBot/node_modules/@jimp/core/types/etc.d.ts b/WechatBot/node_modules/@jimp/core/types/etc.d.ts
deleted file mode 100644
index e13192e60..000000000
--- a/WechatBot/node_modules/@jimp/core/types/etc.d.ts
+++ /dev/null
@@ -1,93 +0,0 @@
-import { Jimp } from "./jimp";
-
-export interface Image {
- bitmap: Bitmap;
-}
-
-export type DecoderFn = (data: Buffer) => Bitmap;
-export type EncoderFn = (
- image: ImageType
-) => Buffer;
-
-export type GenericCallback = (
- this: TThis,
- err: Error | null,
- value: T
-) => U;
-
-/**
- * `jimp` must be defined otherwise `this` will not apply properly
- * for custom configurations where plugins and types are needed
- */
-export type ImageCallback = (
- this: jimp,
- err: Error | null,
- value: jimp,
- coords: {
- x: number;
- y: number;
- }
-) => any;
-
-type BlendMode = {
- mode: string;
- opacitySource: number;
- opacityDest: number;
-};
-
-type ChangeName = "background" | "scan" | "crop";
-
-type ListenableName =
- | "any"
- | "initialized"
- | "before-change"
- | "changed"
- | "before-clone"
- | "cloned"
- | ChangeName;
-
-type ListenerData = T extends "any"
- ? any
- : T extends ChangeName
- ? {
- eventName: "before-change" | "changed";
- methodName: T;
- [key: string]: any;
- }
- : {
- eventName: T;
- methodName: T extends "initialized"
- ? "constructor"
- : T extends "before-change" | "changed"
- ? ChangeName
- : T extends "before-clone" | "cloned"
- ? "clone"
- : any;
- };
-
-type URLOptions = {
- url: string;
- compression?: boolean;
- headers: {
- [key: string]: any;
- };
-};
-
-export interface Bitmap {
- data: Buffer;
- width: number;
- height: number;
-}
-
-export interface RGB {
- r: number;
- g: number;
- b: number;
-}
-
-export interface RGBA {
- r: number;
- g: number;
- b: number;
- a: number;
-}
diff --git a/WechatBot/node_modules/@jimp/core/types/functions.d.ts b/WechatBot/node_modules/@jimp/core/types/functions.d.ts
deleted file mode 100644
index de74902e2..000000000
--- a/WechatBot/node_modules/@jimp/core/types/functions.d.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { Jimp } from "./jimp";
-
-export function addConstants(
- constants: [string, string | number],
- jimpInstance?: Jimp
-): void;
-export function addJimpMethods(
- methods: [string, Function],
- jimpInstance?: Jimp
-): void;
-export function jimpEvMethod(
- methodName: string,
- evName: string,
- method: Function
-): void;
-export function jimpEvChange(methodName: string, method: Function): void;
-export function addType(mime: string, extensions: string[]): void;
diff --git a/WechatBot/node_modules/@jimp/core/types/index.d.ts b/WechatBot/node_modules/@jimp/core/types/index.d.ts
deleted file mode 100644
index 88bd53a74..000000000
--- a/WechatBot/node_modules/@jimp/core/types/index.d.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-export * from "./etc";
-export * from "./functions";
-export * from "./plugins";
-export * from "./utils";
-import { Jimp, JimpConstructors } from "./jimp";
-
-export { Jimp, JimpConstructors };
-declare const defaultExp: Jimp;
-export default defaultExp;
diff --git a/WechatBot/node_modules/@jimp/core/types/jimp.d.ts b/WechatBot/node_modules/@jimp/core/types/jimp.d.ts
deleted file mode 100644
index 3b7d7a114..000000000
--- a/WechatBot/node_modules/@jimp/core/types/jimp.d.ts
+++ /dev/null
@@ -1,246 +0,0 @@
-import {
- Bitmap,
- ImageCallback,
- URLOptions,
- ListenableName,
- ListenerData,
- GenericCallback,
- BlendMode,
- RGBA,
- RGB,
-} from "./etc";
-
-interface DiffReturn {
- percent: number;
- image: This;
-}
-
-interface ScanIteratorReturn {
- x: number;
- y: number;
- idx: number;
- image: This;
-}
-
-export interface JimpConstructors {
- prototype: Jimp;
- // Constants
- AUTO: -1;
- // blend modes
- BLEND_SOURCE_OVER: string;
- BLEND_DESTINATION_OVER: string;
- BLEND_MULTIPLY: string;
- BLEND_ADD: string;
- BLEND_SCREEN: string;
- BLEND_OVERLAY: string;
- BLEND_DARKEN: string;
- BLEND_LIGHTEN: string;
- BLEND_HARDLIGHT: string;
- BLEND_DIFFERENCE: string;
- BLEND_EXCLUSION: string;
- // Align modes for cover, contain, bit masks
- HORIZONTAL_ALIGN_LEFT: 1;
- HORIZONTAL_ALIGN_CENTER: 2;
- HORIZONTAL_ALIGN_RIGHT: 4;
- VERTICAL_ALIGN_TOP: 8;
- VERTICAL_ALIGN_MIDDLE: 16;
- VERTICAL_ALIGN_BOTTOM: 32;
- // Edge Handling
- EDGE_EXTEND: 1;
- EDGE_WRAP: 2;
- EDGE_CROP: 3;
-
- // Constructors
- new (path: string, cb?: ImageCallback): this["prototype"];
- new (
- urlOptions: URLOptions,
- cb?: ImageCallback
- ): this["prototype"];
- new (image: Jimp, cb?: ImageCallback): this["prototype"];
- new (data: Buffer, cb?: ImageCallback): this["prototype"];
- new (data: Bitmap, cb?: ImageCallback): this["prototype"];
- new (
- w: number,
- h: number,
- cb?: ImageCallback
- ): this["prototype"];
- new (
- w: number,
- h: number,
- background?: number | string,
- cb?: ImageCallback
- ): this["prototype"];
- // For custom constructors when using Jimp.appendConstructorOption
- new (...args: any[]): this["prototype"];
-
- // Functions
- /**
- * I'd like to make `Args` generic and used in `run` and `test` but alas,
- * it's not possible RN:
- * https://github.com/microsoft/TypeScript/issues/26113
- */
- appendConstructorOption<
- Args extends any[],
- J extends Jimp = this["prototype"]
- >(
- name: string,
- test: (...args: any[]) => boolean,
- run: (
- this: J,
- resolve: (jimp?: J) => any,
- reject: (reason: Error) => any,
- ...args: any[]
- ) => any
- ): void;
- read(
- path: string,
- cb?: ImageCallback
- ): Promise;
- read(
- image: Jimp,
- cb?: ImageCallback
- ): Promise;
- read(
- data: Buffer,
- cb?: ImageCallback
- ): Promise;
- read(
- w: number,
- h: number,
- background?: number | string,
- cb?: ImageCallback
- ): Promise;
- create(path: string): Promise;
- create(image: Jimp): Promise;
- create(data: Buffer): Promise;
- create(
- w: number,
- h: number,
- background?: number | string
- ): Promise;
- rgbaToInt(
- r: number,
- g: number,
- b: number,
- a: number,
- cb?: GenericCallback
- ): number;
- intToRGBA(i: number, cb?: GenericCallback): RGBA;
- cssColorToHex(cssColor: string): number;
- limit255(n: number): number;
- diff(
- img1: Jimp,
- img2: Jimp,
- threshold?: number
- ): DiffReturn;
- distance(img1: Jimp, img2: Jimp): number;
- compareHashes(hash1: string, hash2: string): number;
- colorDiff(rgba1: RGB, rgba2: RGB): number;
- colorDiff(rgba1: RGBA, rgba2: RGBA): number;
-}
-
-export interface Jimp {
- // Properties
- bitmap: Bitmap;
- _rgba: boolean;
- _background: number;
- _originalMime: string;
- // Methods
- on(
- event: T,
- cb: (data: ListenerData) => any
- ): any;
- parseBitmap(
- data: Buffer,
- path: string | null | undefined,
- cb?: ImageCallback
- ): void;
- hasAlpha(): boolean;
- getHeight(): number;
- getWidth(): number;
- inspect(): string;
- toString(): string;
- getMIME(): string;
- getExtension(): string;
- distanceFromHash(hash: string): number;
- write(path: string, cb?: ImageCallback): this;
- writeAsync(path: string): Promise;
- rgba(bool: boolean, cb?: ImageCallback): this;
- getBase64(mime: string, cb: GenericCallback): this;
- getBase64Async(mime: string): Promise;
- hash(cb?: GenericCallback): string;
- hash(
- base: number | null | undefined,
- cb?: GenericCallback
- ): string;
- getBuffer(mime: string, cb: GenericCallback): this;
- getBufferAsync(mime: string): Promise;
- getPixelIndex(
- x: number,
- y: number,
- cb?: GenericCallback
- ): number;
- getPixelIndex(
- x: number,
- y: number,
- edgeHandling: number,
- cb?: GenericCallback
- ): number;
- getPixelColor(
- x: number,
- y: number,
- cb?: GenericCallback
- ): number;
- getPixelColour(
- x: number,
- y: number,
- cb?: GenericCallback
- ): number;
- setPixelColor(
- hex: number,
- x: number,
- y: number,
- cb?: ImageCallback
- ): this;
- setPixelColour(
- hex: number,
- x: number,
- y: number,
- cb?: ImageCallback
- ): this;
- clone(cb?: ImageCallback): this;
- cloneQuiet(cb?: ImageCallback): this;
- background(hex: number, cb?: ImageCallback): this;
- backgroundQuiet(hex: number, cb?: ImageCallback): this;
- scan(
- x: number,
- y: number,
- w: number,
- h: number,
- f: (this: this, x: number, y: number, idx: number) => any,
- cb?: ImageCallback
- ): this;
- scanQuiet(
- x: number,
- y: number,
- w: number,
- h: number,
- f: (this: this, x: number, y: number, idx: number) => any,
- cb?: ImageCallback
- ): this;
- scanIterator(
- x: number,
- y: number,
- w: number,
- h: number
- ): IterableIterator>;
-
- // Effect methods
- composite(
- src: Jimp,
- x: number,
- y: number,
- options?: BlendMode,
- cb?: ImageCallback
- ): this;
-}
diff --git a/WechatBot/node_modules/@jimp/core/types/plugins.d.ts b/WechatBot/node_modules/@jimp/core/types/plugins.d.ts
deleted file mode 100644
index 62bf2ea9e..000000000
--- a/WechatBot/node_modules/@jimp/core/types/plugins.d.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
- * These files pertain to the typings of plugins or types
- *
- * They're not meant as utils to decode types, but rather
- * the type definitons themsleves for plugins and types of various kinds
- */
-import { Image, EncoderFn, DecoderFn } from "./etc";
-
-import { Omit } from "./utils";
-
-export type IllformedPlugin = Omit & {
- class?: never;
- constants?: never;
-};
-
-export interface WellFormedPlugin {
- mime?: {
- [MIME_TYPE: string]: string[];
- };
- hasAlpha?: {
- [MIME_SPECIAL: string]: boolean;
- };
- constants?: {
- // Contants to assign to the Jimp instance
- [MIME_SPECIAL: string]: any;
- };
- decoders?: {
- [MIME_TYPE: string]: DecoderFn;
- };
- encoders?: {
- // Jimp Image
- [MIME_TYPE: string]: EncoderFn;
- };
- // Extend the Jimp class with the following constants, etc
- class?: any;
-}
-
-type ClassOrConstantPlugin = WellFormedPlugin &
- (
- | Required, "class">>
- | Required, "constants">>
- );
-
-// A Jimp type requires mime, but not class
-export type JimpType = WellFormedPlugin &
- Required, "mime">>;
-
-// Jimp plugin either MUST have class OR constant or be illformed
-export type JimpPlugin =
- | ClassOrConstantPlugin
- | IllformedPlugin;
diff --git a/WechatBot/node_modules/@jimp/core/types/utils.d.ts b/WechatBot/node_modules/@jimp/core/types/utils.d.ts
deleted file mode 100644
index 463321b97..000000000
--- a/WechatBot/node_modules/@jimp/core/types/utils.d.ts
+++ /dev/null
@@ -1,132 +0,0 @@
-import { JimpType, JimpPlugin } from "./plugins";
-
-// This is required as providing type arrays gives a union of all the generic
-// types in the array rather than an intersection
-export type UnionToIntersection = (
- U extends any ? (k: U) => void : never
-) extends (k: infer I) => void
- ? I
- : never;
-
-/**
- * The values to be extracted from a WellFormedPlugin to put onto the Jimp instance
- * Left loose as "any" in order to enable the GetPluginVal to work properly
- */
-export type WellFormedValues = T extends { class: infer Class }
- ? Class
- : {};
-
-/**
- * The constants to be extracted from a WellFormedPlugin to put onto the Jimp instance
- * Left loose as "any" in order to enable the GetPluginConstants to work properly
- */
-export type WellFormedConstants = T extends {
- constants: infer Constants;
-}
- ? Constants
- : {};
-
-// Util type for the functions that deal with `@jimp/custom`
-// Must accept any or no props thanks to typing of the `plugins` intersected function
-export type FunctionRet = Array<(...props: any[] | never) => T>;
-
-/**
- * This conditional cannot be flipped. TS assumes that Q is `WellFormed` even
- * it does not have the `class` or `constant` props. As a result, it will end
- * up `undefined`. Because we're always extending `IllformedPlugin` on the
- * plugins, this should work fine
- */
-export type GetPluginVal = Q extends
- | Required<{ class: any }>
- | Required<{ constants: any }>
- ? WellFormedValues
- : Q;
-
-export type GetPluginConst = Q extends
- | Required<{ class: any }>
- | Required<{ constants: any }>
- ? WellFormedConstants
- : {};
-
-export type GetPluginDecoders = Q extends
- | Required<{ class: any }>
- | Required<{ constants: any }>
- ? Q extends { decoders: infer Decoders }
- ? Decoders
- : {}
- : {};
-
-export type GetPluginEncoders = Q extends
- | Required<{ class: any }>
- | Required<{ constants: any }>
- ? Q extends { encoders: infer Encoders }
- ? Encoders
- : {}
- : {};
-
-type GetPluginFuncArrValues =
- // Given an array of types infer `Q` (Q should be the type value)
- PluginFuncArr extends ReadonlyArray
- ? F extends () => infer Q
- ? // Get the plugin value, may be ill-formed or well-formed
- GetPluginVal
- : // This should never be reached
- undefined
- : undefined;
-
-/**
- * A helper type to get the values to be intersected with `Jimp` to give
- * the proper typing given an array of functions for plugins and types
- */
-export type GetIntersectionFromPlugins<
- PluginFuncArr extends FunctionRet
-> = UnionToIntersection<
- Exclude, undefined>
->;
-
-type GetPluginFuncArrConsts =
- // Given an array of types infer `Q` (Q should be the type value)
- PluginFuncArr extends ReadonlyArray
- ? F extends () => infer Q
- ? // Get the plugin constants, may be ill-formed or well-formed
- GetPluginConst
- : // This should never be reached
- undefined
- : undefined;
-
-type GetPluginFuncArrEncoders =
- // Given an array of types infer `Q` (Q should be the type value)
- PluginFuncArr extends ReadonlyArray
- ? F extends () => infer Q
- ? // Get the plugin encoders, may be ill-formed or well-formed
- GetPluginEncoders
- : // This should never be reached
- undefined
- : undefined;
-
-type GetPluginFuncArrDecoders =
- // Given an array of types infer `Q` (Q should be the type value)
- PluginFuncArr extends ReadonlyArray
- ? F extends () => infer Q
- ? // Get the plugin decoders, may be ill-formed or well-formed
- GetPluginDecoders
- : // This should never be reached
- undefined
- : undefined;
-
-/**
- * A helper type to get the statics to be intersected with `Jimp` to give
- * the proper typing given an array of functions for plugins and types
- */
-export type GetIntersectionFromPluginsStatics<
- PluginFuncArr extends FunctionRet
-> = UnionToIntersection> & {
- encoders: UnionToIntersection>;
- decoders: UnionToIntersection>;
-};
-
-/**
- * While this was added to TS 3.5, in order to support down to TS 2.8, we need
- * to export this and use it in sub-packges that utilize it
- */
-export type Omit = Pick>;
diff --git a/WechatBot/node_modules/@jimp/custom/CHANGELOG.md b/WechatBot/node_modules/@jimp/custom/CHANGELOG.md
deleted file mode 100644
index 7c14f300b..000000000
--- a/WechatBot/node_modules/@jimp/custom/CHANGELOG.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# v0.16.3 (Sat Feb 04 2023)
-
-#### ⚠️ Pushed to `master`
-
-- upgrade prettier ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 1
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
----
-
-# v0.11.0 (Fri May 15 2020)
-
-#### 🚀 Enhancement
-
-- Removed Core-JS as a dependency. [#882](https://github.com/oliver-moran/jimp/pull/882) ([@EricRabil](https://github.com/EricRabil))
-
-#### Authors: 1
-
-- Eric Rabil ([@EricRabil](https://github.com/EricRabil))
-
----
-
-# v0.10.0 (Mon Mar 30 2020)
-
-#### 🚀 Enhancement
-
-- Properly split constructor and instance types [#867](https://github.com/oliver-moran/jimp/pull/867) ([@forivall](https://github.com/forivall))
-
-#### Authors: 1
-
-- Emily Marigold Klassen ([@forivall](https://github.com/forivall))
-
----
-
-# v0.9.6 (Wed Mar 18 2020)
-
-#### 🏠 Internal
-
-- Fix TypeScript error on 'next' [#858](https://github.com/oliver-moran/jimp/pull/858) ([@crutchcorn](https://github.com/crutchcorn))
-
-#### Authors: 1
-
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
-
----
-
-# v0.9.3 (Tue Nov 26 2019)
-
-#### 🐛 Bug Fix
-
-- `@jimp/cli`, `@jimp/core`, `@jimp/custom`, `jimp`, `@jimp/plugin-blit`, `@jimp/plugin-blur`, `@jimp/plugin-circle`, `@jimp/plugin-color`, `@jimp/plugin-contain`, `@jimp/plugin-cover`, `@jimp/plugin-crop`, `@jimp/plugin-displace`, `@jimp/plugin-dither`, `@jimp/plugin-fisheye`, `@jimp/plugin-flip`, `@jimp/plugin-gaussian`, `@jimp/plugin-invert`, `@jimp/plugin-mask`, `@jimp/plugin-normalize`, `@jimp/plugin-print`, `@jimp/plugin-resize`, `@jimp/plugin-rotate`, `@jimp/plugin-scale`, `@jimp/plugin-shadow`, `@jimp/plugin-threshold`, `@jimp/plugins`, `@jimp/test-utils`, `@jimp/bmp`, `@jimp/gif`, `@jimp/jpeg`, `@jimp/png`, `@jimp/tiff`, `@jimp/types`, `@jimp/utils`
- - Fix regeneratorRuntime errors [#815](https://github.com/oliver-moran/jimp/pull/815) ([@crutchcorn](https://github.com/crutchcorn) [@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 2
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
diff --git a/WechatBot/node_modules/@jimp/custom/LICENSE b/WechatBot/node_modules/@jimp/custom/LICENSE
deleted file mode 100644
index baa5d4850..000000000
--- a/WechatBot/node_modules/@jimp/custom/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Oliver Moran
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/WechatBot/node_modules/@jimp/custom/README.md b/WechatBot/node_modules/@jimp/custom/README.md
deleted file mode 100644
index 961d73339..000000000
--- a/WechatBot/node_modules/@jimp/custom/README.md
+++ /dev/null
@@ -1,198 +0,0 @@
-
-
-
@jimp/custom
-
Configure jimp with types and plugins.
-
-
-## Useful Defaults
-
-The following wil configure a `jimp` instance with the same functionality as the main `jimp` package.
-
-```js
-import configure from "@jimp/custom";
-// all of jimp's default types
-import types from "@jimp/types";
-// all of jimp's default types
-import plugins from "@jimp/plugins";
-
-configure({
- types: [types],
- plugins: [plugins],
-});
-```
-
-## Available Methods
-
-### configure
-
-Takes a Jimp configuration and applies it to `@jimp/core`.
-
-Sample Jimp configuration:
-
-```js
-import types from '@jimp/types';
-
-import bmp from '@jimp/bmp';
-import jpeg from '@jimp/types';
-...
-
-configure({
- types: [types]
-})
-
-// or
-
-configure({
- types: [bmp, jpeg, ...]
-})
-```
-
-#### Extending Jimp Further
-
-You can use configure to add more types and plugins to a jimp multiple times.
-
-```js
-let jimp = configure({
- types: [bmp],
-});
-
-jimp = configure(
- {
- types: [jpeg],
- },
- jimp
-);
-```
-
-## Type Definition
-
-To define a new Jimp image type write a function the takes the current Jimp configuration. In this function you can extend Jimp's internal data structures.
-
-This function must return an object whose key is the mime type and value is an array of valid file extensions.
-
-```js
-const special = require('special-js');
-
-const MIME_TYPE = 'image/special';
-
-export default () => ({
- mime: {[MIME_TYPE], ['spec', 'special']},
-
- constants: {
- MIME_SPECIAL: MIME_TYPE
- },
-
- decoders: {
- [MIME_TYPE]: data => special.decode(data)
- },
-
- encoders: {
- [MIME_TYPE]: image => special.encode(image.bitmap)
- }
-});
-```
-
-### Constants
-
-A jimp image type can expose as many constants as it wants. Each jimp type is required to expose a mime type.
-
-```js
-constants: {
- MIME_SPECIAL: MIME_TYPE
-},
-```
-
-### hasAlpha
-
-A image type can define whether it supports an alpha channel.
-
-```js
-hasAlpha: {
- MIME_SPECIAL: true
-},
-```
-
-### Decoder
-
-A function that when supplied with a buffer should return a bitmap with height and width.
-
-```js
-decoders: {
- [MIME_TYPE]: data => special.decode(data)
-},
-```
-
-### Encoder
-
-A function that when supplied with a Jimp image should return an encoded buffer.
-
-```js
-encoders: {
- [MIME_TYPE]: image => special.encode(image.bitmap)
-}
-```
-
-### Class
-
-Add class properties and function to the Jimp constructor.
-
-```js
-class: {
- _quality: 100,
- quality: function(n, cb) {
- if (typeof n !== 'number') {
- return throwError.call(this, 'n must be a number', cb);
- }
-
- if (n < 0 || n > 100) {
- return throwError.call(this, 'n must be a number 0 - 100', cb);
- }
-
- this._quality = Math.round(n);
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- }
-};
-```
-
-## Plugin Definition
-
-Defining a plugin has access to all the same things in the type definition. Mainly plugins use just the `constants` and `class` config options.
-
-Below is the `invert` plugin. If a plugin doesn return an object with `constants` and `class`, all keys are treated as class functions.
-
-```js
-import { isNodePattern } from "@jimp/utils";
-
-/**
- * Inverts the image
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
-export default () => ({
- invert(cb) {
- this.scanQuiet(
- 0,
- 0,
- this.bitmap.width,
- this.bitmap.height,
- function (x, y, idx) {
- this.bitmap.data[idx] = 255 - this.bitmap.data[idx];
- this.bitmap.data[idx + 1] = 255 - this.bitmap.data[idx + 1];
- this.bitmap.data[idx + 2] = 255 - this.bitmap.data[idx + 2];
- }
- );
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-});
-```
diff --git a/WechatBot/node_modules/@jimp/custom/dist/index.js b/WechatBot/node_modules/@jimp/custom/dist/index.js
deleted file mode 100755
index 5379fa587..000000000
--- a/WechatBot/node_modules/@jimp/custom/dist/index.js
+++ /dev/null
@@ -1,89 +0,0 @@
-"use strict";
-
-var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports["default"] = configure;
-
-var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
-
-var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
-
-var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
-
-var _core = _interopRequireWildcard(require("@jimp/core"));
-
-function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
-
-function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
-
-function configure(configuration) {
- var jimpInstance = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _core["default"];
- var jimpConfig = {
- hasAlpha: {},
- encoders: {},
- decoders: {},
- "class": {},
- constants: {}
- };
-
- function addToConfig(newConfig) {
- Object.entries(newConfig).forEach(function (_ref) {
- var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
- key = _ref2[0],
- value = _ref2[1];
-
- jimpConfig[key] = _objectSpread({}, jimpConfig[key], {}, value);
- });
- }
-
- function addImageType(typeModule) {
- var type = typeModule();
-
- if (Array.isArray(type.mime)) {
- _core.addType.apply(void 0, (0, _toConsumableArray2["default"])(type.mime));
- } else {
- Object.entries(type.mime).forEach(function (mimeType) {
- return _core.addType.apply(void 0, (0, _toConsumableArray2["default"])(mimeType));
- });
- }
-
- delete type.mime;
- addToConfig(type);
- }
-
- function addPlugin(pluginModule) {
- var plugin = pluginModule(_core.jimpEvChange) || {};
-
- if (!plugin["class"] && !plugin.constants) {
- // Default to class function
- addToConfig({
- "class": plugin
- });
- } else {
- addToConfig(plugin);
- }
- }
-
- if (configuration.types) {
- configuration.types.forEach(addImageType);
- jimpInstance.decoders = _objectSpread({}, jimpInstance.decoders, {}, jimpConfig.decoders);
- jimpInstance.encoders = _objectSpread({}, jimpInstance.encoders, {}, jimpConfig.encoders);
- jimpInstance.hasAlpha = _objectSpread({}, jimpInstance.hasAlpha, {}, jimpConfig.hasAlpha);
- }
-
- if (configuration.plugins) {
- configuration.plugins.forEach(addPlugin);
- }
-
- (0, _core.addJimpMethods)(jimpConfig["class"], jimpInstance);
- (0, _core.addConstants)(jimpConfig.constants, jimpInstance);
- return _core["default"];
-}
-
-module.exports = exports.default;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/custom/dist/index.js.map b/WechatBot/node_modules/@jimp/custom/dist/index.js.map
deleted file mode 100644
index c10c12129..000000000
--- a/WechatBot/node_modules/@jimp/custom/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/index.js"],"names":["configure","configuration","jimpInstance","Jimp","jimpConfig","hasAlpha","encoders","decoders","constants","addToConfig","newConfig","Object","entries","forEach","key","value","addImageType","typeModule","type","Array","isArray","mime","addType","mimeType","addPlugin","pluginModule","plugin","jimpEvChange","types","plugins"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;;;;;AAOe,SAASA,SAAT,CAAmBC,aAAnB,EAAuD;AAAA,MAArBC,YAAqB,uEAANC,gBAAM;AACpE,MAAMC,UAAU,GAAG;AACjBC,IAAAA,QAAQ,EAAE,EADO;AAEjBC,IAAAA,QAAQ,EAAE,EAFO;AAGjBC,IAAAA,QAAQ,EAAE,EAHO;AAIjB,aAAO,EAJU;AAKjBC,IAAAA,SAAS,EAAE;AALM,GAAnB;;AAQA,WAASC,WAAT,CAAqBC,SAArB,EAAgC;AAC9BC,IAAAA,MAAM,CAACC,OAAP,CAAeF,SAAf,EAA0BG,OAA1B,CAAkC,gBAAkB;AAAA;AAAA,UAAhBC,GAAgB;AAAA,UAAXC,KAAW;;AAClDX,MAAAA,UAAU,CAACU,GAAD,CAAV,qBACKV,UAAU,CAACU,GAAD,CADf,MAEKC,KAFL;AAID,KALD;AAMD;;AAED,WAASC,YAAT,CAAsBC,UAAtB,EAAkC;AAChC,QAAMC,IAAI,GAAGD,UAAU,EAAvB;;AAEA,QAAIE,KAAK,CAACC,OAAN,CAAcF,IAAI,CAACG,IAAnB,CAAJ,EAA8B;AAC5BC,sEAAWJ,IAAI,CAACG,IAAhB;AACD,KAFD,MAEO;AACLV,MAAAA,MAAM,CAACC,OAAP,CAAeM,IAAI,CAACG,IAApB,EAA0BR,OAA1B,CAAkC,UAACU,QAAD;AAAA,eAAcD,gEAAWC,QAAX,EAAd;AAAA,OAAlC;AACD;;AAED,WAAOL,IAAI,CAACG,IAAZ;AACAZ,IAAAA,WAAW,CAACS,IAAD,CAAX;AACD;;AAED,WAASM,SAAT,CAAmBC,YAAnB,EAAiC;AAC/B,QAAMC,MAAM,GAAGD,YAAY,CAACE,kBAAD,CAAZ,IAA8B,EAA7C;;AACA,QAAI,CAACD,MAAM,SAAP,IAAiB,CAACA,MAAM,CAAClB,SAA7B,EAAwC;AACtC;AACAC,MAAAA,WAAW,CAAC;AAAE,iBAAOiB;AAAT,OAAD,CAAX;AACD,KAHD,MAGO;AACLjB,MAAAA,WAAW,CAACiB,MAAD,CAAX;AACD;AACF;;AAED,MAAIzB,aAAa,CAAC2B,KAAlB,EAAyB;AACvB3B,IAAAA,aAAa,CAAC2B,KAAd,CAAoBf,OAApB,CAA4BG,YAA5B;AAEAd,IAAAA,YAAY,CAACK,QAAb,qBACKL,YAAY,CAACK,QADlB,MAEKH,UAAU,CAACG,QAFhB;AAIAL,IAAAA,YAAY,CAACI,QAAb,qBACKJ,YAAY,CAACI,QADlB,MAEKF,UAAU,CAACE,QAFhB;AAIAJ,IAAAA,YAAY,CAACG,QAAb,qBACKH,YAAY,CAACG,QADlB,MAEKD,UAAU,CAACC,QAFhB;AAID;;AAED,MAAIJ,aAAa,CAAC4B,OAAlB,EAA2B;AACzB5B,IAAAA,aAAa,CAAC4B,OAAd,CAAsBhB,OAAtB,CAA8BW,SAA9B;AACD;;AAED,4BAAepB,UAAU,SAAzB,EAAiCF,YAAjC;AACA,0BAAaE,UAAU,CAACI,SAAxB,EAAmCN,YAAnC;AAEA,SAAOC,gBAAP;AACD","sourcesContent":["import Jimp, {\n addType,\n addJimpMethods,\n addConstants,\n jimpEvChange,\n} from \"@jimp/core\";\n\nexport default function configure(configuration, jimpInstance = Jimp) {\n const jimpConfig = {\n hasAlpha: {},\n encoders: {},\n decoders: {},\n class: {},\n constants: {},\n };\n\n function addToConfig(newConfig) {\n Object.entries(newConfig).forEach(([key, value]) => {\n jimpConfig[key] = {\n ...jimpConfig[key],\n ...value,\n };\n });\n }\n\n function addImageType(typeModule) {\n const type = typeModule();\n\n if (Array.isArray(type.mime)) {\n addType(...type.mime);\n } else {\n Object.entries(type.mime).forEach((mimeType) => addType(...mimeType));\n }\n\n delete type.mime;\n addToConfig(type);\n }\n\n function addPlugin(pluginModule) {\n const plugin = pluginModule(jimpEvChange) || {};\n if (!plugin.class && !plugin.constants) {\n // Default to class function\n addToConfig({ class: plugin });\n } else {\n addToConfig(plugin);\n }\n }\n\n if (configuration.types) {\n configuration.types.forEach(addImageType);\n\n jimpInstance.decoders = {\n ...jimpInstance.decoders,\n ...jimpConfig.decoders,\n };\n jimpInstance.encoders = {\n ...jimpInstance.encoders,\n ...jimpConfig.encoders,\n };\n jimpInstance.hasAlpha = {\n ...jimpInstance.hasAlpha,\n ...jimpConfig.hasAlpha,\n };\n }\n\n if (configuration.plugins) {\n configuration.plugins.forEach(addPlugin);\n }\n\n addJimpMethods(jimpConfig.class, jimpInstance);\n addConstants(jimpConfig.constants, jimpInstance);\n\n return Jimp;\n}\n"],"file":"index.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/custom/package.json b/WechatBot/node_modules/@jimp/custom/package.json
deleted file mode 100644
index 61c55585f..000000000
--- a/WechatBot/node_modules/@jimp/custom/package.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "name": "@jimp/custom",
- "version": "0.16.13",
- "description": "Interface to customize jimp configuration",
- "main": "dist/index.js",
- "module": "es/index.js",
- "types": "types/index.d.ts",
- "scripts": {
- "build": "npm run build:node:production && npm run build:module",
- "build:watch": "npm run build:node:debug -- -- --watch --verbose",
- "build:debug": "npm run build:node:debug",
- "build:module": "cross-env BABEL_ENV=module babel src -d es --source-maps --config-file ../../babel.config.js",
- "build:node": "babel src -d dist --source-maps --config-file ../../babel.config.js",
- "build:node:debug": "cross-env BABEL_ENV=development npm run build:node",
- "build:node:production": "cross-env BABEL_ENV=production npm run build:node"
- },
- "author": "",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/core": "^0.16.13"
- },
- "publishConfig": {
- "access": "public"
- },
- "gitHead": "9eec86086634329a072901dca3a800b850548572"
-}
diff --git a/WechatBot/node_modules/@jimp/custom/src/index.js b/WechatBot/node_modules/@jimp/custom/src/index.js
deleted file mode 100755
index dddc7d907..000000000
--- a/WechatBot/node_modules/@jimp/custom/src/index.js
+++ /dev/null
@@ -1,74 +0,0 @@
-import Jimp, {
- addType,
- addJimpMethods,
- addConstants,
- jimpEvChange,
-} from "@jimp/core";
-
-export default function configure(configuration, jimpInstance = Jimp) {
- const jimpConfig = {
- hasAlpha: {},
- encoders: {},
- decoders: {},
- class: {},
- constants: {},
- };
-
- function addToConfig(newConfig) {
- Object.entries(newConfig).forEach(([key, value]) => {
- jimpConfig[key] = {
- ...jimpConfig[key],
- ...value,
- };
- });
- }
-
- function addImageType(typeModule) {
- const type = typeModule();
-
- if (Array.isArray(type.mime)) {
- addType(...type.mime);
- } else {
- Object.entries(type.mime).forEach((mimeType) => addType(...mimeType));
- }
-
- delete type.mime;
- addToConfig(type);
- }
-
- function addPlugin(pluginModule) {
- const plugin = pluginModule(jimpEvChange) || {};
- if (!plugin.class && !plugin.constants) {
- // Default to class function
- addToConfig({ class: plugin });
- } else {
- addToConfig(plugin);
- }
- }
-
- if (configuration.types) {
- configuration.types.forEach(addImageType);
-
- jimpInstance.decoders = {
- ...jimpInstance.decoders,
- ...jimpConfig.decoders,
- };
- jimpInstance.encoders = {
- ...jimpInstance.encoders,
- ...jimpConfig.encoders,
- };
- jimpInstance.hasAlpha = {
- ...jimpInstance.hasAlpha,
- ...jimpConfig.hasAlpha,
- };
- }
-
- if (configuration.plugins) {
- configuration.plugins.forEach(addPlugin);
- }
-
- addJimpMethods(jimpConfig.class, jimpInstance);
- addConstants(jimpConfig.constants, jimpInstance);
-
- return Jimp;
-}
diff --git a/WechatBot/node_modules/@jimp/custom/types/index.d.ts b/WechatBot/node_modules/@jimp/custom/types/index.d.ts
deleted file mode 100644
index 4bdca8d07..000000000
--- a/WechatBot/node_modules/@jimp/custom/types/index.d.ts
+++ /dev/null
@@ -1,40 +0,0 @@
-// TypeScript Version: 3.1
-// See the `jimp` package index.d.ts for why the version is not 2.8
-import {
- FunctionRet,
- Jimp,
- JimpPlugin,
- JimpType,
- GetIntersectionFromPlugins,
- GetIntersectionFromPluginsStatics,
- JimpConstructors,
-} from "@jimp/core";
-
-type JimpInstance<
- TypesFuncArr extends FunctionRet | undefined,
- PluginFuncArr extends FunctionRet | undefined,
- J extends JimpConstructors
-> = J &
- GetIntersectionFromPluginsStatics<
- Exclude
- > & {
- prototype: JimpType &
- GetIntersectionFromPlugins<
- Exclude
- >;
- };
-
-declare function configure<
- TypesFuncArr extends FunctionRet | undefined = undefined,
- PluginFuncArr extends FunctionRet | undefined = undefined,
- J extends JimpConstructors = JimpConstructors
->(
- configuration: {
- types?: TypesFuncArr;
- plugins?: PluginFuncArr;
- },
- jimpInstance?: J
- // Since JimpInstance is required, we want to use the default `Jimp` type
-): JimpInstance;
-
-export default configure;
diff --git a/WechatBot/node_modules/@jimp/custom/types/test.ts b/WechatBot/node_modules/@jimp/custom/types/test.ts
deleted file mode 100644
index e0f77bb2d..000000000
--- a/WechatBot/node_modules/@jimp/custom/types/test.ts
+++ /dev/null
@@ -1,401 +0,0 @@
-import configure from "@jimp/custom";
-import gif from "@jimp/gif";
-import png from "@jimp/png";
-import displace from "@jimp/plugin-displace";
-import resize from "@jimp/plugin-resize";
-import scale from "@jimp/plugin-scale";
-import types from "@jimp/types";
-import plugins from "@jimp/plugins";
-import * as Jimp from "jimp";
-
-// configure should return a valid Jimp type with addons
-const CustomJimp = configure({
- types: [gif, png],
- plugins: [displace, resize],
-});
-
-test("should function the same as the `jimp` types", () => {
- const FullCustomJimp = configure({
- types: [types],
- plugins: [plugins],
- });
-
- const jimpInst = new FullCustomJimp("test");
-
- // Main Jimp export should already have all of these already applied
- // $ExpectError
- jimpInst.read("Test");
- jimpInst.displace(jimpInst, 2);
- jimpInst.resize(40, 40);
- jimpInst.displace(jimpInst, 2);
- jimpInst.shadow((err, val, coords) => {});
- jimpInst.fishEye({ r: 12 });
- jimpInst.circle({ radius: 12, x: 12, y: 12 });
- // $ExpectError
- jimpInst.PNG_FILTER_NONE;
-
- // $ExpectError
- jimpInst.test;
-
- // $ExpectError
- jimpInst.func();
-
- // Main Jimp export should already have all of these already applied
- FullCustomJimp.read("Test");
-
- // $ExpectType 0
- FullCustomJimp.PNG_FILTER_NONE;
-
- // $ExpectError
- FullCustomJimp.test;
-
- // $ExpectError
- FullCustomJimp.func();
-
- test("can clone properly", async () => {
- const baseImage = await FullCustomJimp.read("filename");
- const cloneBaseImage = baseImage.clone();
-
- // $ExpectType number
- cloneBaseImage._deflateLevel;
-
- test("can handle `this` returns on the core type properly", () => {
- // $ExpectType number
- cloneBaseImage.posterize(3)._quality;
- });
-
- test("can handle `this` returns properly", () => {
- cloneBaseImage
- .resize(1, 1)
- .crop(0, 0, 0, 0)
- .mask(cloneBaseImage, 2, 2)
- .print("a" as any, 2, 2, "a" as any)
- .resize(1, 1)
- .quality(1)
- .deflateLevel(2)._filterType;
- });
-
- test("can handle imageCallbacks `this` properly", () => {
- cloneBaseImage.rgba(false, (_, jimpCBIn) => {
- // $ExpectError
- jimpCBIn.read("Test");
- jimpCBIn.displace(jimpInst, 2);
- jimpCBIn.resize(40, 40);
- // $ExpectType number
- jimpCBIn._filterType;
-
- // $ExpectError
- jimpCBIn.test;
-
- // $ExpectError
- jimpCBIn.func();
- });
- });
- });
-
- test("Can handle callback with constructor", () => {
- const myBmpBuffer: Buffer = {} as any;
-
- Jimp.read(myBmpBuffer, (err, cbJimpInst) => {
- // $ExpectError
- cbJimpInst.read("Test");
- cbJimpInst.displace(jimpInst, 2);
- cbJimpInst.resize(40, 40);
- // $ExpectType number
- cbJimpInst._filterType;
-
- // $ExpectError
- cbJimpInst.test;
-
- // $ExpectError
- cbJimpInst.func();
- });
- });
-});
-
-test("can handle custom jimp", () => {
- // Constants from types should be applied
- // $ExpectType 0
- CustomJimp.PNG_FILTER_NONE;
-
- // Core functions should still work from Jimp
- CustomJimp.read("Test");
-
- // Constants should not(?) be applied from ill-formed plugins
- // $ExpectError
- CustomJimp.displace(CustomJimp, 2);
-
- // Methods should be applied from well-formed plugins only to the instance
- // $ExpectError
- CustomJimp.resize(40, 40);
-
- // Constants should be applied from well-formed plugins
- CustomJimp.RESIZE_NEAREST_NEIGHBOR;
-
- // $ExpectError
- CustomJimp.test;
-
- // $ExpectError
- CustomJimp.func();
-
- const Jiimp = new CustomJimp("test");
- // Methods from types should be applied
- Jiimp.deflateLevel(4);
- // Constants from types should be applied to the static only
- // $ExpectError
- Jiimp.PNG_FILTER_NONE;
-
- // Core functions should still work from Jimp
- Jiimp.getPixelColor(1, 1);
-
- // Constants should be applied from ill-formed plugins
- Jiimp.displace(Jiimp, 2);
-
- // Methods should be applied from well-formed plugins
- Jiimp.resize(40, 40);
-
- // Constants should not be applied to the object
- // $ExpectError
- Jiimp.RESIZE_NEAREST_NEIGHBOR;
-
- // $ExpectError
- Jiimp.test;
-
- // $ExpectError
- Jiimp.func();
-});
-
-test("can compose", () => {
- const OtherCustomJimp = configure(
- {
- plugins: [scale],
- },
- CustomJimp
- );
- // Constants from types should be applied
- // $ExpectType 0
- OtherCustomJimp.PNG_FILTER_NONE;
-
- // Core functions should still work from Jimp
- OtherCustomJimp.read("Test");
-
- // Constants should not be applied to the static instance from ill-formed plugins
- // $ExpectError
- OtherCustomJimp.displace(OtherCustomJimp, 2);
-
- // Methods should not be applied to the static instance from well-formed plugins
- // $ExpectError
- OtherCustomJimp.resize(40, 40);
-
- // Constants should be applied from well-formed plugins
- OtherCustomJimp.RESIZE_NEAREST_NEIGHBOR;
-
- // $ExpectError
- OtherCustomJimp.test;
-
- // $ExpectError
- OtherCustomJimp.func();
-
- const Jiimp = new OtherCustomJimp("test");
- // Methods from types should be applied
- Jiimp.deflateLevel(4);
- // Constants from types should not be applied to objects
- // $ExpectError
- Jiimp.PNG_FILTER_NONE;
-
- // Methods from new plugins should be applied
- Jiimp.scale(3);
-
- // Methods from types should be applied
- Jiimp.filterType(4);
-
- // Core functions should still work from Jimp
- Jiimp.getPixelColor(1, 1);
-
- // Constants should be applied from ill-formed plugins
- Jiimp.displace(Jiimp, 2);
-
- // Methods should be applied from well-formed plugins
- Jiimp.resize(40, 40);
-
- // Constants should not be applied from well-formed plugins to objects
- // $ExpectError
- Jiimp.RESIZE_NEAREST_NEIGHBOR;
-
- // $ExpectError
- Jiimp.test;
-
- // $ExpectError
- Jiimp.func();
-});
-
-test("can handle only plugins", () => {
- const PluginsJimp = configure({
- plugins: [plugins],
- });
-
- // Core functions should still work from Jimp
- PluginsJimp.read("Test");
-
- // Constants should not be applied from ill-formed plugins
- // $ExpectError
- PluginsJimp.displace(PluginsJimp, 2);
-
- // Methods should be not be applied to from well-formed plugins to the top level
- // $ExpectError
- PluginsJimp.resize(40, 40);
-
- // Constants should be applied from well-formed plugins
- // $ExpectType "nearestNeighbor"
- PluginsJimp.RESIZE_NEAREST_NEIGHBOR;
-
- // $ExpectError
- PluginsJimp.test;
-
- // $ExpectError
- PluginsJimp.func();
-
- const Jiimp = new PluginsJimp("test");
-
- // Core functions should still work from Jimp
- Jiimp.getPixelColor(1, 1);
-
- // Constants should be applied from ill-formed plugins
- Jiimp.displace(Jiimp, 2);
-
- // Methods should be applied from well-formed plugins
- Jiimp.resize(40, 40);
-
- // Constants should be not applied to objects from well-formed plugins
- // $ExpectError
- Jiimp.RESIZE_NEAREST_NEIGHBOR;
-
- // $ExpectError
- Jiimp.test;
-
- // $ExpectError
- Jiimp.func();
-});
-
-test("can handle only all types", () => {
- const TypesJimp = configure({
- types: [types],
- });
-
- // Methods from types should not be applied
- // $ExpectError
- TypesJimp.filterType(4);
- // Constants from types should be applied
- // $ExpectType 0
- TypesJimp.PNG_FILTER_NONE;
-
- // $ExpectError
- TypesJimp.test;
-
- // $ExpectError
- TypesJimp.func();
-
- const Jiimp = new TypesJimp("test");
- // Methods from types should be applied
- Jiimp.filterType(4);
- // Constants from types should be not applied to objects
- // $ExpectError
- Jiimp.PNG_FILTER_NONE;
-
- // $ExpectError
- Jiimp.test;
-
- // $ExpectError
- Jiimp.func();
-});
-
-test("can handle only one type", () => {
- const PngJimp = configure({
- types: [png],
- });
-
- // Constants from other types should be not applied
- // $ExpectError
- PngJimp.MIME_TIFF;
-
- // Constants from types should be applied
- // $ExpectType 0
- PngJimp.PNG_FILTER_NONE;
-
- // $ExpectError
- PngJimp.test;
-
- // $ExpectError
- PngJimp.func();
-
- const Jiimp = new PngJimp("test");
- // Constants from other types should be not applied
- // $ExpectError
- Jiimp.MIME_TIFF;
-
- // Constants from types should not be applied to objects
- // $ExpectError
- Jiimp.PNG_FILTER_NONE;
-
- // $ExpectError
- Jiimp.test;
-
- // $ExpectError
- Jiimp.func();
-});
-
-test("can handle only one plugin", () => {
- const ResizeJimp = configure({
- plugins: [resize],
- });
-
- // Constants from other plugins should be not applied
- // $ExpectError
- ResizeJimp.FONT_SANS_8_BLACK;
-
- // Constants from plugin should be applied
- // $ExpectType "nearestNeighbor"
- ResizeJimp.RESIZE_NEAREST_NEIGHBOR;
-
- // $ExpectError
- ResizeJimp.resize(2, 2);
-
- // $ExpectError
- ResizeJimp.test;
-
- // $ExpectError
- ResizeJimp.func();
-
- const Jiimp: InstanceType = new ResizeJimp("test");
- // Constants from other plugins should be not applied
- // $ExpectError
- Jiimp.FONT_SANS_8_BLACK;
-
- // Constants from plugin should not be applied to the object
- // $ExpectError
- Jiimp.RESIZE_NEAREST_NEIGHBOR;
-
- Jiimp.resize(2, 2);
-
- // $ExpectError
- Jiimp.test;
-
- // $ExpectError
- Jiimp.func();
-});
-
-test("Can handle appendConstructorOption", () => {
- const AppendJimp = configure({});
-
- AppendJimp.appendConstructorOption(
- "Name of Option",
- (args) => args.hasSomeCustomThing,
- function (resolve, reject, args) {
- // $ExpectError
- this.bitmap = 3;
- // $ExpectError
- AppendJimp.resize(2, 2);
- resolve();
- }
- );
-});
diff --git a/WechatBot/node_modules/@jimp/custom/types/tsconfig.json b/WechatBot/node_modules/@jimp/custom/types/tsconfig.json
deleted file mode 100644
index dcfe450fd..000000000
--- a/WechatBot/node_modules/@jimp/custom/types/tsconfig.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "compilerOptions": {
- "module": "commonjs",
- "lib": ["es6"],
- "noImplicitAny": true,
- "noImplicitThis": true,
- "strictNullChecks": true,
- "strictFunctionTypes": true,
- "noEmit": true,
-
- // If the library is an external module (uses `export`), this allows your test file to import "mylib" instead of "./index".
- // If the library is global (cannot be imported via `import` or `require`), leave this out.
- "baseUrl": ".",
- "paths": {
- "mylib": ["."]
- }
- }
-}
diff --git a/WechatBot/node_modules/@jimp/gif/CHANGELOG.md b/WechatBot/node_modules/@jimp/gif/CHANGELOG.md
deleted file mode 100644
index 6a9f1c91a..000000000
--- a/WechatBot/node_modules/@jimp/gif/CHANGELOG.md
+++ /dev/null
@@ -1,48 +0,0 @@
-# v0.16.3 (Sat Feb 04 2023)
-
-#### ⚠️ Pushed to `master`
-
-- upgrade prettier ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 1
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
----
-
-# v0.13.0 (Fri Jun 05 2020)
-
-#### 🚀 Enhancement
-
-- Add single frame encoder for type-gif [#899](https://github.com/oliver-moran/jimp/pull/899) ([@jeffbseeking](https://github.com/jeffbseeking) [@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 2
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- Jeff Bonnes ([@jeffbseeking](https://github.com/jeffbseeking))
-
----
-
-# v0.11.0 (Fri May 15 2020)
-
-#### 🚀 Enhancement
-
-- Removed Core-JS as a dependency. [#882](https://github.com/oliver-moran/jimp/pull/882) ([@EricRabil](https://github.com/EricRabil))
-
-#### Authors: 1
-
-- Eric Rabil ([@EricRabil](https://github.com/EricRabil))
-
----
-
-# v0.9.3 (Tue Nov 26 2019)
-
-#### 🐛 Bug Fix
-
-- `@jimp/cli`, `@jimp/core`, `@jimp/custom`, `jimp`, `@jimp/plugin-blit`, `@jimp/plugin-blur`, `@jimp/plugin-circle`, `@jimp/plugin-color`, `@jimp/plugin-contain`, `@jimp/plugin-cover`, `@jimp/plugin-crop`, `@jimp/plugin-displace`, `@jimp/plugin-dither`, `@jimp/plugin-fisheye`, `@jimp/plugin-flip`, `@jimp/plugin-gaussian`, `@jimp/plugin-invert`, `@jimp/plugin-mask`, `@jimp/plugin-normalize`, `@jimp/plugin-print`, `@jimp/plugin-resize`, `@jimp/plugin-rotate`, `@jimp/plugin-scale`, `@jimp/plugin-shadow`, `@jimp/plugin-threshold`, `@jimp/plugins`, `@jimp/test-utils`, `@jimp/bmp`, `@jimp/gif`, `@jimp/jpeg`, `@jimp/png`, `@jimp/tiff`, `@jimp/types`, `@jimp/utils`
- - Fix regeneratorRuntime errors [#815](https://github.com/oliver-moran/jimp/pull/815) ([@crutchcorn](https://github.com/crutchcorn) [@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 2
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
diff --git a/WechatBot/node_modules/@jimp/gif/LICENSE b/WechatBot/node_modules/@jimp/gif/LICENSE
deleted file mode 100644
index baa5d4850..000000000
--- a/WechatBot/node_modules/@jimp/gif/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Oliver Moran
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/WechatBot/node_modules/@jimp/gif/README.md b/WechatBot/node_modules/@jimp/gif/README.md
deleted file mode 100644
index 9a4349279..000000000
--- a/WechatBot/node_modules/@jimp/gif/README.md
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
@jimp/gif
-
Default Jimp gif decoder.
-
-
-NOTE: Encoder currently unavailable.
diff --git a/WechatBot/node_modules/@jimp/gif/dist/index.js b/WechatBot/node_modules/@jimp/gif/dist/index.js
deleted file mode 100755
index 5633a04f6..000000000
--- a/WechatBot/node_modules/@jimp/gif/dist/index.js
+++ /dev/null
@@ -1,50 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports["default"] = void 0;
-
-var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
-
-var _omggif = _interopRequireDefault(require("omggif"));
-
-var _gifwrap = require("gifwrap");
-
-var MIME_TYPE = "image/gif";
-
-var _default = function _default() {
- return {
- mime: (0, _defineProperty2["default"])({}, MIME_TYPE, ["gif"]),
- constants: {
- MIME_GIF: MIME_TYPE
- },
- decoders: (0, _defineProperty2["default"])({}, MIME_TYPE, function (data) {
- var gifObj = new _omggif["default"].GifReader(data);
- var gifData = Buffer.alloc(gifObj.width * gifObj.height * 4);
- gifObj.decodeAndBlitFrameRGBA(0, gifData);
- return {
- data: gifData,
- width: gifObj.width,
- height: gifObj.height
- };
- }),
- encoders: (0, _defineProperty2["default"])({}, MIME_TYPE, function (data) {
- var bitmap = new _gifwrap.BitmapImage(data.bitmap);
-
- _gifwrap.GifUtil.quantizeDekker(bitmap, 256);
-
- var newFrame = new _gifwrap.GifFrame(bitmap);
- var gifCodec = new _gifwrap.GifCodec();
- return gifCodec.encodeGif([newFrame], {}).then(function (newGif) {
- return newGif.buffer;
- });
- })
- };
-};
-
-exports["default"] = _default;
-module.exports = exports.default;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/gif/dist/index.js.map b/WechatBot/node_modules/@jimp/gif/dist/index.js.map
deleted file mode 100644
index 55d22e17b..000000000
--- a/WechatBot/node_modules/@jimp/gif/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/index.js"],"names":["MIME_TYPE","mime","constants","MIME_GIF","decoders","data","gifObj","GIF","GifReader","gifData","Buffer","alloc","width","height","decodeAndBlitFrameRGBA","encoders","bitmap","BitmapImage","GifUtil","quantizeDekker","newFrame","GifFrame","gifCodec","GifCodec","encodeGif","then","newGif","buffer"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAEA,IAAMA,SAAS,GAAG,WAAlB;;eAEe;AAAA,SAAO;AACpBC,IAAAA,IAAI,uCAAKD,SAAL,EAAiB,CAAC,KAAD,CAAjB,CADgB;AAGpBE,IAAAA,SAAS,EAAE;AACTC,MAAAA,QAAQ,EAAEH;AADD,KAHS;AAOpBI,IAAAA,QAAQ,uCACLJ,SADK,EACO,UAACK,IAAD,EAAU;AACrB,UAAMC,MAAM,GAAG,IAAIC,mBAAIC,SAAR,CAAkBH,IAAlB,CAAf;AACA,UAAMI,OAAO,GAAGC,MAAM,CAACC,KAAP,CAAaL,MAAM,CAACM,KAAP,GAAeN,MAAM,CAACO,MAAtB,GAA+B,CAA5C,CAAhB;AAEAP,MAAAA,MAAM,CAACQ,sBAAP,CAA8B,CAA9B,EAAiCL,OAAjC;AAEA,aAAO;AACLJ,QAAAA,IAAI,EAAEI,OADD;AAELG,QAAAA,KAAK,EAAEN,MAAM,CAACM,KAFT;AAGLC,QAAAA,MAAM,EAAEP,MAAM,CAACO;AAHV,OAAP;AAKD,KAZK,CAPY;AAsBpBE,IAAAA,QAAQ,uCACLf,SADK,EACO,UAACK,IAAD,EAAU;AACrB,UAAMW,MAAM,GAAG,IAAIC,oBAAJ,CAAgBZ,IAAI,CAACW,MAArB,CAAf;;AACAE,uBAAQC,cAAR,CAAuBH,MAAvB,EAA+B,GAA/B;;AACA,UAAMI,QAAQ,GAAG,IAAIC,iBAAJ,CAAaL,MAAb,CAAjB;AACA,UAAMM,QAAQ,GAAG,IAAIC,iBAAJ,EAAjB;AACA,aAAOD,QAAQ,CAACE,SAAT,CAAmB,CAACJ,QAAD,CAAnB,EAA+B,EAA/B,EAAmCK,IAAnC,CAAwC,UAACC,MAAD,EAAY;AACzD,eAAOA,MAAM,CAACC,MAAd;AACD,OAFM,CAAP;AAGD,KATK;AAtBY,GAAP;AAAA,C","sourcesContent":["import GIF from \"omggif\";\nimport { GifUtil, GifFrame, BitmapImage, GifCodec } from \"gifwrap\";\n\nconst MIME_TYPE = \"image/gif\";\n\nexport default () => ({\n mime: { [MIME_TYPE]: [\"gif\"] },\n\n constants: {\n MIME_GIF: MIME_TYPE,\n },\n\n decoders: {\n [MIME_TYPE]: (data) => {\n const gifObj = new GIF.GifReader(data);\n const gifData = Buffer.alloc(gifObj.width * gifObj.height * 4);\n\n gifObj.decodeAndBlitFrameRGBA(0, gifData);\n\n return {\n data: gifData,\n width: gifObj.width,\n height: gifObj.height,\n };\n },\n },\n\n encoders: {\n [MIME_TYPE]: (data) => {\n const bitmap = new BitmapImage(data.bitmap);\n GifUtil.quantizeDekker(bitmap, 256);\n const newFrame = new GifFrame(bitmap);\n const gifCodec = new GifCodec();\n return gifCodec.encodeGif([newFrame], {}).then((newGif) => {\n return newGif.buffer;\n });\n },\n },\n});\n"],"file":"index.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/gif/index.d.ts b/WechatBot/node_modules/@jimp/gif/index.d.ts
deleted file mode 100644
index d1b1c679d..000000000
--- a/WechatBot/node_modules/@jimp/gif/index.d.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { DecoderFn } from "@jimp/core";
-
-interface Gif {
- mime: {
- "image/gif": string[];
- };
-
- constants: {
- MIME_GIF: "image/gif";
- };
-
- decoders: {
- "image/gif": DecoderFn;
- };
-}
-
-export default function (): Gif;
diff --git a/WechatBot/node_modules/@jimp/gif/package.json b/WechatBot/node_modules/@jimp/gif/package.json
deleted file mode 100644
index 023efdd81..000000000
--- a/WechatBot/node_modules/@jimp/gif/package.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "name": "@jimp/gif",
- "version": "0.16.13",
- "description": "Default Jimp gif encoder/decoder.",
- "main": "dist/index.js",
- "module": "es/index.js",
- "types": "index.d.ts",
- "scripts": {
- "build": "npm run build:node:production && npm run build:module",
- "build:watch": "npm run build:node:debug -- -- --watch --verbose",
- "build:debug": "npm run build:node:debug",
- "build:module": "cross-env BABEL_ENV=module babel src -d es --source-maps --config-file ../../babel.config.js",
- "build:node": "babel src -d dist --source-maps --config-file ../../babel.config.js",
- "build:node:debug": "cross-env BABEL_ENV=development npm run build:node",
- "build:node:production": "cross-env BABEL_ENV=production npm run build:node"
- },
- "author": "",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13",
- "gifwrap": "^0.9.2",
- "omggif": "^1.0.9"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- },
- "publishConfig": {
- "access": "public"
- },
- "gitHead": "9eec86086634329a072901dca3a800b850548572"
-}
diff --git a/WechatBot/node_modules/@jimp/gif/src/index.js b/WechatBot/node_modules/@jimp/gif/src/index.js
deleted file mode 100755
index 7acf2ff99..000000000
--- a/WechatBot/node_modules/@jimp/gif/src/index.js
+++ /dev/null
@@ -1,39 +0,0 @@
-import GIF from "omggif";
-import { GifUtil, GifFrame, BitmapImage, GifCodec } from "gifwrap";
-
-const MIME_TYPE = "image/gif";
-
-export default () => ({
- mime: { [MIME_TYPE]: ["gif"] },
-
- constants: {
- MIME_GIF: MIME_TYPE,
- },
-
- decoders: {
- [MIME_TYPE]: (data) => {
- const gifObj = new GIF.GifReader(data);
- const gifData = Buffer.alloc(gifObj.width * gifObj.height * 4);
-
- gifObj.decodeAndBlitFrameRGBA(0, gifData);
-
- return {
- data: gifData,
- width: gifObj.width,
- height: gifObj.height,
- };
- },
- },
-
- encoders: {
- [MIME_TYPE]: (data) => {
- const bitmap = new BitmapImage(data.bitmap);
- GifUtil.quantizeDekker(bitmap, 256);
- const newFrame = new GifFrame(bitmap);
- const gifCodec = new GifCodec();
- return gifCodec.encodeGif([newFrame], {}).then((newGif) => {
- return newGif.buffer;
- });
- },
- },
-});
diff --git a/WechatBot/node_modules/@jimp/gif/test/gif.test.js b/WechatBot/node_modules/@jimp/gif/test/gif.test.js
deleted file mode 100755
index 7b316887e..000000000
--- a/WechatBot/node_modules/@jimp/gif/test/gif.test.js
+++ /dev/null
@@ -1,26 +0,0 @@
-import { Jimp, getTestDir } from "@jimp/test-utils";
-import configure from "@jimp/custom";
-
-import gif from "../src";
-
-const jimp = configure({ types: [gif] }, Jimp);
-
-describe("GIF", () => {
- const imagesDir = getTestDir(__dirname) + "/images";
-
- it("load GIF", async () => {
- const image = await jimp.read(imagesDir + "/flower.gif");
- image.getPixelColor(10, 10).should.be.equal(0xe5e6d9ff);
- });
-
- it("load animated GIF", async () => {
- const image = await jimp.read(imagesDir + "/animated.gif");
- image.getPixelColor(10, 10).should.be.equal(0xa1d2f1ff);
- });
-
- it("export GIF", async () => {
- const jgd = await jimp.read(imagesDir + "/flower.gif");
- const buffer = await jgd.getBufferAsync("image/gif");
- buffer.toString().startsWith("GIF").should.be.equal(true);
- });
-});
diff --git a/WechatBot/node_modules/@jimp/gif/test/images/animated.gif b/WechatBot/node_modules/@jimp/gif/test/images/animated.gif
deleted file mode 100644
index 401ef84a9..000000000
Binary files a/WechatBot/node_modules/@jimp/gif/test/images/animated.gif and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/gif/test/images/flower.gif b/WechatBot/node_modules/@jimp/gif/test/images/flower.gif
deleted file mode 100644
index 23595dd56..000000000
Binary files a/WechatBot/node_modules/@jimp/gif/test/images/flower.gif and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/jpeg/CHANGELOG.md b/WechatBot/node_modules/@jimp/jpeg/CHANGELOG.md
deleted file mode 100644
index e33a92ff8..000000000
--- a/WechatBot/node_modules/@jimp/jpeg/CHANGELOG.md
+++ /dev/null
@@ -1,84 +0,0 @@
-# v0.16.3 (Sat Feb 04 2023)
-
-#### ⚠️ Pushed to `master`
-
-- upgrade prettier ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 1
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
----
-
-# v0.16.2 (Thu Sep 15 2022)
-
-#### 🐛 Bug Fix
-
-- Bump jpeg-js over 0.4.4 to avoid cve-2022-25851 [#1093](https://github.com/oliver-moran/jimp/pull/1093) ([@melhadad](https://github.com/melhadad))
-
-#### Authors: 1
-
-- Michael Elhadad ([@melhadad](https://github.com/melhadad))
-
----
-
-# v0.16.1 (Fri Aug 28 2020)
-
-#### 🐛 Bug Fix
-
-- upgrade jpeg-js dependency [#933](https://github.com/oliver-moran/jimp/pull/933) (vincentdufrasnes@vincent-dufrasnes [@Chupsy](https://github.com/Chupsy))
-
-#### Authors: 2
-
-- Vincent Dufrasnes ([@Chupsy](https://github.com/Chupsy))
-- vincent dufrasnes (vincentdufrasnes@vincent-dufrasnes)
-
----
-
-# v0.12.1 (Tue May 19 2020)
-
-#### 🐛 Bug Fix
-
-- update jpeg-js [#892](https://github.com/oliver-moran/jimp/pull/892) ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 1
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
----
-
-# v0.11.0 (Fri May 15 2020)
-
-#### 🚀 Enhancement
-
-- Removed Core-JS as a dependency. [#882](https://github.com/oliver-moran/jimp/pull/882) ([@EricRabil](https://github.com/EricRabil))
-
-#### Authors: 1
-
-- Eric Rabil ([@EricRabil](https://github.com/EricRabil))
-
----
-
-# v0.10.0 (Mon Mar 30 2020)
-
-#### 🚀 Enhancement
-
-- Properly split constructor and instance types [#867](https://github.com/oliver-moran/jimp/pull/867) ([@forivall](https://github.com/forivall))
-
-#### Authors: 1
-
-- Emily Marigold Klassen ([@forivall](https://github.com/forivall))
-
----
-
-# v0.9.3 (Tue Nov 26 2019)
-
-#### 🐛 Bug Fix
-
-- `@jimp/cli`, `@jimp/core`, `@jimp/custom`, `jimp`, `@jimp/plugin-blit`, `@jimp/plugin-blur`, `@jimp/plugin-circle`, `@jimp/plugin-color`, `@jimp/plugin-contain`, `@jimp/plugin-cover`, `@jimp/plugin-crop`, `@jimp/plugin-displace`, `@jimp/plugin-dither`, `@jimp/plugin-fisheye`, `@jimp/plugin-flip`, `@jimp/plugin-gaussian`, `@jimp/plugin-invert`, `@jimp/plugin-mask`, `@jimp/plugin-normalize`, `@jimp/plugin-print`, `@jimp/plugin-resize`, `@jimp/plugin-rotate`, `@jimp/plugin-scale`, `@jimp/plugin-shadow`, `@jimp/plugin-threshold`, `@jimp/plugins`, `@jimp/test-utils`, `@jimp/bmp`, `@jimp/gif`, `@jimp/jpeg`, `@jimp/png`, `@jimp/tiff`, `@jimp/types`, `@jimp/utils`
- - Fix regeneratorRuntime errors [#815](https://github.com/oliver-moran/jimp/pull/815) ([@crutchcorn](https://github.com/crutchcorn) [@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 2
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
diff --git a/WechatBot/node_modules/@jimp/jpeg/LICENSE b/WechatBot/node_modules/@jimp/jpeg/LICENSE
deleted file mode 100644
index baa5d4850..000000000
--- a/WechatBot/node_modules/@jimp/jpeg/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Oliver Moran
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/WechatBot/node_modules/@jimp/jpeg/README.md b/WechatBot/node_modules/@jimp/jpeg/README.md
deleted file mode 100644
index 89255137e..000000000
--- a/WechatBot/node_modules/@jimp/jpeg/README.md
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
@jimp/jpeg
-
Default Jimp jpeg encoder/decoder.
-
-
-## Available Methods
-
-### Jimp.quality
-
-Sets the quality of the image when saving as JPEG format (default is 100)
diff --git a/WechatBot/node_modules/@jimp/jpeg/dist/index.js b/WechatBot/node_modules/@jimp/jpeg/dist/index.js
deleted file mode 100755
index 835f10cdd..000000000
--- a/WechatBot/node_modules/@jimp/jpeg/dist/index.js
+++ /dev/null
@@ -1,61 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports["default"] = void 0;
-
-var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
-
-var _jpegJs = _interopRequireDefault(require("jpeg-js"));
-
-var _utils = require("@jimp/utils");
-
-var MIME_TYPE = "image/jpeg";
-
-var _default = function _default() {
- return {
- mime: (0, _defineProperty2["default"])({}, MIME_TYPE, ["jpeg", "jpg", "jpe"]),
- constants: {
- MIME_JPEG: MIME_TYPE
- },
- decoders: (0, _defineProperty2["default"])({}, MIME_TYPE, _jpegJs["default"].decode),
- encoders: (0, _defineProperty2["default"])({}, MIME_TYPE, function (image) {
- return _jpegJs["default"].encode(image.bitmap, image._quality).data;
- }),
- "class": {
- // The quality to be used when saving JPEG images
- _quality: 100,
-
- /**
- * Sets the quality of the image when saving as JPEG format (default is 100)
- * @param {number} n The quality to use 0-100
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
- quality: function quality(n, cb) {
- if (typeof n !== "number") {
- return _utils.throwError.call(this, "n must be a number", cb);
- }
-
- if (n < 0 || n > 100) {
- return _utils.throwError.call(this, "n must be a number 0 - 100", cb);
- }
-
- this._quality = Math.round(n);
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- }
- }
- };
-};
-
-exports["default"] = _default;
-module.exports = exports.default;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/jpeg/dist/index.js.map b/WechatBot/node_modules/@jimp/jpeg/dist/index.js.map
deleted file mode 100644
index 11caf6f7f..000000000
--- a/WechatBot/node_modules/@jimp/jpeg/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/index.js"],"names":["MIME_TYPE","mime","constants","MIME_JPEG","decoders","JPEG","decode","encoders","image","encode","bitmap","_quality","data","quality","n","cb","throwError","call","Math","round"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAEA,IAAMA,SAAS,GAAG,YAAlB;;eAEe;AAAA,SAAO;AACpBC,IAAAA,IAAI,uCAAKD,SAAL,EAAiB,CAAC,MAAD,EAAS,KAAT,EAAgB,KAAhB,CAAjB,CADgB;AAGpBE,IAAAA,SAAS,EAAE;AACTC,MAAAA,SAAS,EAAEH;AADF,KAHS;AAOpBI,IAAAA,QAAQ,uCACLJ,SADK,EACOK,mBAAKC,MADZ,CAPY;AAWpBC,IAAAA,QAAQ,uCACLP,SADK,EACO,UAACQ,KAAD;AAAA,aAAWH,mBAAKI,MAAL,CAAYD,KAAK,CAACE,MAAlB,EAA0BF,KAAK,CAACG,QAAhC,EAA0CC,IAArD;AAAA,KADP,CAXY;AAepB,aAAO;AACL;AACAD,MAAAA,QAAQ,EAAE,GAFL;;AAGL;;;;;;AAMAE,MAAAA,OATK,mBASGC,CATH,EASMC,EATN,EASU;AACb,YAAI,OAAOD,CAAP,KAAa,QAAjB,EAA2B;AACzB,iBAAOE,kBAAWC,IAAX,CAAgB,IAAhB,EAAsB,oBAAtB,EAA4CF,EAA5C,CAAP;AACD;;AAED,YAAID,CAAC,GAAG,CAAJ,IAASA,CAAC,GAAG,GAAjB,EAAsB;AACpB,iBAAOE,kBAAWC,IAAX,CAAgB,IAAhB,EAAsB,4BAAtB,EAAoDF,EAApD,CAAP;AACD;;AAED,aAAKJ,QAAL,GAAgBO,IAAI,CAACC,KAAL,CAAWL,CAAX,CAAhB;;AAEA,YAAI,0BAAcC,EAAd,CAAJ,EAAuB;AACrBA,UAAAA,EAAE,CAACE,IAAH,CAAQ,IAAR,EAAc,IAAd,EAAoB,IAApB;AACD;;AAED,eAAO,IAAP;AACD;AAzBI;AAfa,GAAP;AAAA,C","sourcesContent":["import JPEG from \"jpeg-js\";\nimport { throwError, isNodePattern } from \"@jimp/utils\";\n\nconst MIME_TYPE = \"image/jpeg\";\n\nexport default () => ({\n mime: { [MIME_TYPE]: [\"jpeg\", \"jpg\", \"jpe\"] },\n\n constants: {\n MIME_JPEG: MIME_TYPE,\n },\n\n decoders: {\n [MIME_TYPE]: JPEG.decode,\n },\n\n encoders: {\n [MIME_TYPE]: (image) => JPEG.encode(image.bitmap, image._quality).data,\n },\n\n class: {\n // The quality to be used when saving JPEG images\n _quality: 100,\n /**\n * Sets the quality of the image when saving as JPEG format (default is 100)\n * @param {number} n The quality to use 0-100\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp} this for chaining of methods\n */\n quality(n, cb) {\n if (typeof n !== \"number\") {\n return throwError.call(this, \"n must be a number\", cb);\n }\n\n if (n < 0 || n > 100) {\n return throwError.call(this, \"n must be a number 0 - 100\", cb);\n }\n\n this._quality = Math.round(n);\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n },\n },\n});\n"],"file":"index.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/jpeg/index.d.ts b/WechatBot/node_modules/@jimp/jpeg/index.d.ts
deleted file mode 100644
index 94b86ba20..000000000
--- a/WechatBot/node_modules/@jimp/jpeg/index.d.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { DecoderFn, EncoderFn, ImageCallback } from "@jimp/core";
-
-interface JpegClass {
- _quality: number;
- quality: (n: number, cb?: ImageCallback) => this;
-}
-
-interface Jpeg {
- mime: { "image/jpeg": string[] };
-
- constants: {
- MIME_JPEG: "image/jpeg";
- };
-
- encoders: {
- "image/jpeg": EncoderFn;
- };
-
- decoders: {
- "image/jpeg": DecoderFn;
- };
-
- class: JpegClass;
-}
-
-export default function (): Jpeg;
diff --git a/WechatBot/node_modules/@jimp/jpeg/package.json b/WechatBot/node_modules/@jimp/jpeg/package.json
deleted file mode 100644
index 6859cbdd2..000000000
--- a/WechatBot/node_modules/@jimp/jpeg/package.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "name": "@jimp/jpeg",
- "version": "0.16.13",
- "description": "Default Jimp jpeg encoder/decoder.",
- "main": "dist/index.js",
- "module": "es/index.js",
- "types": "index.d.ts",
- "scripts": {
- "test": "cross-env BABEL_ENV=test mocha --require @babel/register",
- "test:watch": "npm run test -- --reporter min --watch",
- "test:coverage": "nyc npm run test",
- "build": "npm run build:node:production && npm run build:module",
- "build:watch": "npm run build:node:debug -- -- --watch --verbose",
- "build:debug": "npm run build:node:debug",
- "build:module": "cross-env BABEL_ENV=module babel src -d es --source-maps --config-file ../../babel.config.js",
- "build:node": "babel src -d dist --source-maps --config-file ../../babel.config.js",
- "build:node:debug": "cross-env BABEL_ENV=development npm run build:node",
- "build:node:production": "cross-env BABEL_ENV=production npm run build:node"
- },
- "author": "",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13",
- "jpeg-js": "^0.4.2"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- },
- "devDependencies": {
- "@jimp/custom": "^0.16.13",
- "@jimp/test-utils": "^0.16.13"
- },
- "publishConfig": {
- "access": "public"
- },
- "gitHead": "9eec86086634329a072901dca3a800b850548572"
-}
diff --git a/WechatBot/node_modules/@jimp/jpeg/src/index.js b/WechatBot/node_modules/@jimp/jpeg/src/index.js
deleted file mode 100755
index 489c8220b..000000000
--- a/WechatBot/node_modules/@jimp/jpeg/src/index.js
+++ /dev/null
@@ -1,48 +0,0 @@
-import JPEG from "jpeg-js";
-import { throwError, isNodePattern } from "@jimp/utils";
-
-const MIME_TYPE = "image/jpeg";
-
-export default () => ({
- mime: { [MIME_TYPE]: ["jpeg", "jpg", "jpe"] },
-
- constants: {
- MIME_JPEG: MIME_TYPE,
- },
-
- decoders: {
- [MIME_TYPE]: JPEG.decode,
- },
-
- encoders: {
- [MIME_TYPE]: (image) => JPEG.encode(image.bitmap, image._quality).data,
- },
-
- class: {
- // The quality to be used when saving JPEG images
- _quality: 100,
- /**
- * Sets the quality of the image when saving as JPEG format (default is 100)
- * @param {number} n The quality to use 0-100
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
- quality(n, cb) {
- if (typeof n !== "number") {
- return throwError.call(this, "n must be a number", cb);
- }
-
- if (n < 0 || n > 100) {
- return throwError.call(this, "n must be a number 0 - 100", cb);
- }
-
- this._quality = Math.round(n);
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
- },
-});
diff --git a/WechatBot/node_modules/@jimp/jpeg/test/images/cops.jpg b/WechatBot/node_modules/@jimp/jpeg/test/images/cops.jpg
deleted file mode 100644
index f843a4f97..000000000
Binary files a/WechatBot/node_modules/@jimp/jpeg/test/images/cops.jpg and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/jpeg/test/images/fillbytes.jpg b/WechatBot/node_modules/@jimp/jpeg/test/images/fillbytes.jpg
deleted file mode 100644
index 981bdd5d9..000000000
Binary files a/WechatBot/node_modules/@jimp/jpeg/test/images/fillbytes.jpg and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/jpeg/test/jpeg.test.js b/WechatBot/node_modules/@jimp/jpeg/test/jpeg.test.js
deleted file mode 100755
index 6ee30b7cb..000000000
--- a/WechatBot/node_modules/@jimp/jpeg/test/jpeg.test.js
+++ /dev/null
@@ -1,41 +0,0 @@
-import { Jimp, getTestDir } from "@jimp/test-utils";
-import configure from "@jimp/custom";
-
-import jpeg from "../src";
-
-const jimp = configure({ types: [jpeg] }, Jimp);
-
-describe("JPEG", () => {
- const imagesDir = getTestDir(__dirname) + "/images";
-
- it("load JPG", async () => {
- const image = await jimp.read(imagesDir + "/cops.jpg");
-
- image.getPixelColor(10, 10).should.be.equal(0x3f4a02ff);
- image.getPixelColor(220, 190).should.be.equal(0x5d94b6ff);
- image.getPixelColor(350, 130).should.be.equal(0xdf7944ff);
- });
-
- it("load JPG with fill bytes", async () => {
- const image = await jimp.read(imagesDir + "/fillbytes.jpg");
-
- image.getPixelColor(10, 10).should.be.equal(0xaeb8c3ff);
- image.getPixelColor(220, 190).should.be.equal(0x262b21ff);
- image.getPixelColor(350, 130).should.be.equal(0x4e5d30ff);
- });
-
- it("export JPG", async () => {
- const image = await jimp.read({
- width: 3,
- height: 3,
- data: [
- 0xff0000ff, 0xff0080ff, 0xff00ffff, 0xff0080ff, 0xff00ffff, 0x8000ffff,
- 0xff00ffff, 0x8000ffff, 0x0000ffff,
- ],
- });
- image.quality(50);
- const buffer = await image.getBufferAsync("image/jpeg");
-
- buffer.toString().should.match(/^.{3,9}JFIF\u0000/);
- });
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-blit/CHANGELOG.md b/WechatBot/node_modules/@jimp/plugin-blit/CHANGELOG.md
deleted file mode 100644
index cf26b5c36..000000000
--- a/WechatBot/node_modules/@jimp/plugin-blit/CHANGELOG.md
+++ /dev/null
@@ -1,36 +0,0 @@
-# v0.16.3 (Sat Feb 04 2023)
-
-#### ⚠️ Pushed to `master`
-
-- update linting ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- upgrade prettier ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 1
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
----
-
-# v0.11.0 (Fri May 15 2020)
-
-#### 🚀 Enhancement
-
-- Removed Core-JS as a dependency. [#882](https://github.com/oliver-moran/jimp/pull/882) ([@EricRabil](https://github.com/EricRabil))
-
-#### Authors: 1
-
-- Eric Rabil ([@EricRabil](https://github.com/EricRabil))
-
----
-
-# v0.9.3 (Tue Nov 26 2019)
-
-#### 🐛 Bug Fix
-
-- `@jimp/cli`, `@jimp/core`, `@jimp/custom`, `jimp`, `@jimp/plugin-blit`, `@jimp/plugin-blur`, `@jimp/plugin-circle`, `@jimp/plugin-color`, `@jimp/plugin-contain`, `@jimp/plugin-cover`, `@jimp/plugin-crop`, `@jimp/plugin-displace`, `@jimp/plugin-dither`, `@jimp/plugin-fisheye`, `@jimp/plugin-flip`, `@jimp/plugin-gaussian`, `@jimp/plugin-invert`, `@jimp/plugin-mask`, `@jimp/plugin-normalize`, `@jimp/plugin-print`, `@jimp/plugin-resize`, `@jimp/plugin-rotate`, `@jimp/plugin-scale`, `@jimp/plugin-shadow`, `@jimp/plugin-threshold`, `@jimp/plugins`, `@jimp/test-utils`, `@jimp/bmp`, `@jimp/gif`, `@jimp/jpeg`, `@jimp/png`, `@jimp/tiff`, `@jimp/types`, `@jimp/utils`
- - Fix regeneratorRuntime errors [#815](https://github.com/oliver-moran/jimp/pull/815) ([@crutchcorn](https://github.com/crutchcorn) [@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 2
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
diff --git a/WechatBot/node_modules/@jimp/plugin-blit/LICENSE b/WechatBot/node_modules/@jimp/plugin-blit/LICENSE
deleted file mode 100644
index baa5d4850..000000000
--- a/WechatBot/node_modules/@jimp/plugin-blit/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Oliver Moran
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/WechatBot/node_modules/@jimp/plugin-blit/README.md b/WechatBot/node_modules/@jimp/plugin-blit/README.md
deleted file mode 100644
index 7ceb48158..000000000
--- a/WechatBot/node_modules/@jimp/plugin-blit/README.md
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
@jimp/plugin-blit
-
Blit an image.
-
-
-> Blit - a data operation commonly used in computer graphics in which several bitmaps are combined into one using a boolean function.
-
-## Usage
-
-Blits a source image on to this image
-
-- @param {Jimp} src image to blit
-- @param {number} x the x position to blit the image
-- @param {number} y the y position to blit the image
-- @param {number} srcx (optional) the x position from which to crop the source image
-- @param {number} srcy (optional) the y position from which to crop the source image
-- @param {number} srcw (optional) the width to which to crop the source image
-- @param {number} srch (optional) the height to which to crop the source image
-- @param {function(Error, Jimp)} cb (optional) a callback for when complete
-
-```js
-import jimp from "jimp";
-
-async function main() {
- const image = await jimp.read("test/image.png");
- const parrot = await jimp.read("test/party-parrot.png");
-
- image.blit(parrot, x, y);
-}
-
-main();
-```
diff --git a/WechatBot/node_modules/@jimp/plugin-blit/dist/index.js b/WechatBot/node_modules/@jimp/plugin-blit/dist/index.js
deleted file mode 100755
index 0e237b8a4..000000000
--- a/WechatBot/node_modules/@jimp/plugin-blit/dist/index.js
+++ /dev/null
@@ -1,99 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports["default"] = void 0;
-
-var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
-
-var _utils = require("@jimp/utils");
-
-var _default = function _default() {
- return {
- /**
- * Blits a source image on to this image
- * @param {Jimp} src the source Jimp instance
- * @param {number} x the x position to blit the image
- * @param {number} y the y position to blit the image
- * @param {number} srcx (optional) the x position from which to crop the source image
- * @param {number} srcy (optional) the y position from which to crop the source image
- * @param {number} srcw (optional) the width to which to crop the source image
- * @param {number} srch (optional) the height to which to crop the source image
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
- blit: function blit(src, x, y, srcx, srcy, srcw, srch, cb) {
- if (!(src instanceof this.constructor)) {
- return _utils.throwError.call(this, "The source must be a Jimp image", cb);
- }
-
- if (typeof x !== "number" || typeof y !== "number") {
- return _utils.throwError.call(this, "x and y must be numbers", cb);
- }
-
- if (typeof srcx === "function") {
- cb = srcx;
- srcx = 0;
- srcy = 0;
- srcw = src.bitmap.width;
- srch = src.bitmap.height;
- } else if ((0, _typeof2["default"])(srcx) === (0, _typeof2["default"])(srcy) && (0, _typeof2["default"])(srcy) === (0, _typeof2["default"])(srcw) && (0, _typeof2["default"])(srcw) === (0, _typeof2["default"])(srch)) {
- srcx = srcx || 0;
- srcy = srcy || 0;
- srcw = srcw || src.bitmap.width;
- srch = srch || src.bitmap.height;
- } else {
- return _utils.throwError.call(this, "srcx, srcy, srcw, srch must be numbers", cb);
- } // round input
-
-
- x = Math.round(x);
- y = Math.round(y); // round input
-
- srcx = Math.round(srcx);
- srcy = Math.round(srcy);
- srcw = Math.round(srcw);
- srch = Math.round(srch);
- var maxWidth = this.bitmap.width;
- var maxHeight = this.bitmap.height;
- var baseImage = this;
- src.scanQuiet(srcx, srcy, srcw, srch, function (sx, sy, idx) {
- var xOffset = x + sx - srcx;
- var yOffset = y + sy - srcy;
-
- if (xOffset >= 0 && yOffset >= 0 && maxWidth - xOffset > 0 && maxHeight - yOffset > 0) {
- var dstIdx = baseImage.getPixelIndex(xOffset, yOffset);
- var _src = {
- r: this.bitmap.data[idx],
- g: this.bitmap.data[idx + 1],
- b: this.bitmap.data[idx + 2],
- a: this.bitmap.data[idx + 3]
- };
- var dst = {
- r: baseImage.bitmap.data[dstIdx],
- g: baseImage.bitmap.data[dstIdx + 1],
- b: baseImage.bitmap.data[dstIdx + 2],
- a: baseImage.bitmap.data[dstIdx + 3]
- };
- baseImage.bitmap.data[dstIdx] = (_src.a * (_src.r - dst.r) - dst.r + 255 >> 8) + dst.r;
- baseImage.bitmap.data[dstIdx + 1] = (_src.a * (_src.g - dst.g) - dst.g + 255 >> 8) + dst.g;
- baseImage.bitmap.data[dstIdx + 2] = (_src.a * (_src.b - dst.b) - dst.b + 255 >> 8) + dst.b;
- baseImage.bitmap.data[dstIdx + 3] = this.constructor.limit255(dst.a + _src.a);
- }
- });
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- }
- };
-};
-
-exports["default"] = _default;
-module.exports = exports.default;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-blit/dist/index.js.map b/WechatBot/node_modules/@jimp/plugin-blit/dist/index.js.map
deleted file mode 100644
index 835bdb8eb..000000000
--- a/WechatBot/node_modules/@jimp/plugin-blit/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/index.js"],"names":["blit","src","x","y","srcx","srcy","srcw","srch","cb","constructor","throwError","call","bitmap","width","height","Math","round","maxWidth","maxHeight","baseImage","scanQuiet","sx","sy","idx","xOffset","yOffset","dstIdx","getPixelIndex","r","data","g","b","a","dst","limit255"],"mappings":"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","sourcesContent":["import { throwError, isNodePattern } from \"@jimp/utils\";\n\nexport default () => ({\n /**\n * Blits a source image on to this image\n * @param {Jimp} src the source Jimp instance\n * @param {number} x the x position to blit the image\n * @param {number} y the y position to blit the image\n * @param {number} srcx (optional) the x position from which to crop the source image\n * @param {number} srcy (optional) the y position from which to crop the source image\n * @param {number} srcw (optional) the width to which to crop the source image\n * @param {number} srch (optional) the height to which to crop the source image\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp} this for chaining of methods\n */\n blit(src, x, y, srcx, srcy, srcw, srch, cb) {\n if (!(src instanceof this.constructor)) {\n return throwError.call(this, \"The source must be a Jimp image\", cb);\n }\n\n if (typeof x !== \"number\" || typeof y !== \"number\") {\n return throwError.call(this, \"x and y must be numbers\", cb);\n }\n\n if (typeof srcx === \"function\") {\n cb = srcx;\n srcx = 0;\n srcy = 0;\n srcw = src.bitmap.width;\n srch = src.bitmap.height;\n } else if (\n typeof srcx === typeof srcy &&\n typeof srcy === typeof srcw &&\n typeof srcw === typeof srch\n ) {\n srcx = srcx || 0;\n srcy = srcy || 0;\n srcw = srcw || src.bitmap.width;\n srch = srch || src.bitmap.height;\n } else {\n return throwError.call(\n this,\n \"srcx, srcy, srcw, srch must be numbers\",\n cb\n );\n }\n\n // round input\n x = Math.round(x);\n y = Math.round(y);\n\n // round input\n srcx = Math.round(srcx);\n srcy = Math.round(srcy);\n srcw = Math.round(srcw);\n srch = Math.round(srch);\n\n const maxWidth = this.bitmap.width;\n const maxHeight = this.bitmap.height;\n const baseImage = this;\n\n src.scanQuiet(srcx, srcy, srcw, srch, function (sx, sy, idx) {\n const xOffset = x + sx - srcx;\n const yOffset = y + sy - srcy;\n\n if (\n xOffset >= 0 &&\n yOffset >= 0 &&\n maxWidth - xOffset > 0 &&\n maxHeight - yOffset > 0\n ) {\n const dstIdx = baseImage.getPixelIndex(xOffset, yOffset);\n const src = {\n r: this.bitmap.data[idx],\n g: this.bitmap.data[idx + 1],\n b: this.bitmap.data[idx + 2],\n a: this.bitmap.data[idx + 3],\n };\n\n const dst = {\n r: baseImage.bitmap.data[dstIdx],\n g: baseImage.bitmap.data[dstIdx + 1],\n b: baseImage.bitmap.data[dstIdx + 2],\n a: baseImage.bitmap.data[dstIdx + 3],\n };\n\n baseImage.bitmap.data[dstIdx] =\n ((src.a * (src.r - dst.r) - dst.r + 255) >> 8) + dst.r;\n baseImage.bitmap.data[dstIdx + 1] =\n ((src.a * (src.g - dst.g) - dst.g + 255) >> 8) + dst.g;\n baseImage.bitmap.data[dstIdx + 2] =\n ((src.a * (src.b - dst.b) - dst.b + 255) >> 8) + dst.b;\n baseImage.bitmap.data[dstIdx + 3] = this.constructor.limit255(\n dst.a + src.a\n );\n }\n });\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n },\n});\n"],"file":"index.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-blit/index.d.ts b/WechatBot/node_modules/@jimp/plugin-blit/index.d.ts
deleted file mode 100644
index 0caad70e3..000000000
--- a/WechatBot/node_modules/@jimp/plugin-blit/index.d.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { Jimp, ImageCallback } from "@jimp/core";
-
-interface Blit {
- blit(src: Jimp, x: number, y: number, cb?: ImageCallback): this;
- blit(
- src: Jimp,
- x: number,
- y: number,
- srcx: number,
- srcy: number,
- srcw: number,
- srch: number,
- cb?: ImageCallback
- ): this;
-}
-
-export default function (): Blit;
diff --git a/WechatBot/node_modules/@jimp/plugin-blit/package.json b/WechatBot/node_modules/@jimp/plugin-blit/package.json
deleted file mode 100644
index 76a9143db..000000000
--- a/WechatBot/node_modules/@jimp/plugin-blit/package.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "name": "@jimp/plugin-blit",
- "version": "0.16.13",
- "description": "Blit an image.",
- "main": "dist/index.js",
- "module": "es/index.js",
- "types": "index.d.ts",
- "scripts": {
- "test": "cross-env BABEL_ENV=test mocha --require @babel/register",
- "test:watch": "npm run test -- --reporter min --watch",
- "test:coverage": "nyc npm run test",
- "build": "npm run build:node:production && npm run build:module",
- "build:watch": "npm run build:node:debug -- -- --watch --verbose",
- "build:debug": "npm run build:node:debug",
- "build:module": "cross-env BABEL_ENV=module babel src -d es --source-maps --config-file ../../babel.config.js",
- "build:node": "babel src -d dist --source-maps --config-file ../../babel.config.js",
- "build:node:debug": "cross-env BABEL_ENV=development npm run build:node",
- "build:node:production": "cross-env BABEL_ENV=production npm run build:node"
- },
- "author": "",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "devDependencies": {
- "@jimp/custom": "^0.16.13",
- "@jimp/jpeg": "^0.16.13",
- "@jimp/test-utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- },
- "publishConfig": {
- "access": "public"
- },
- "gitHead": "9eec86086634329a072901dca3a800b850548572"
-}
diff --git a/WechatBot/node_modules/@jimp/plugin-blit/src/index.js b/WechatBot/node_modules/@jimp/plugin-blit/src/index.js
deleted file mode 100755
index 133a53742..000000000
--- a/WechatBot/node_modules/@jimp/plugin-blit/src/index.js
+++ /dev/null
@@ -1,105 +0,0 @@
-import { throwError, isNodePattern } from "@jimp/utils";
-
-export default () => ({
- /**
- * Blits a source image on to this image
- * @param {Jimp} src the source Jimp instance
- * @param {number} x the x position to blit the image
- * @param {number} y the y position to blit the image
- * @param {number} srcx (optional) the x position from which to crop the source image
- * @param {number} srcy (optional) the y position from which to crop the source image
- * @param {number} srcw (optional) the width to which to crop the source image
- * @param {number} srch (optional) the height to which to crop the source image
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
- blit(src, x, y, srcx, srcy, srcw, srch, cb) {
- if (!(src instanceof this.constructor)) {
- return throwError.call(this, "The source must be a Jimp image", cb);
- }
-
- if (typeof x !== "number" || typeof y !== "number") {
- return throwError.call(this, "x and y must be numbers", cb);
- }
-
- if (typeof srcx === "function") {
- cb = srcx;
- srcx = 0;
- srcy = 0;
- srcw = src.bitmap.width;
- srch = src.bitmap.height;
- } else if (
- typeof srcx === typeof srcy &&
- typeof srcy === typeof srcw &&
- typeof srcw === typeof srch
- ) {
- srcx = srcx || 0;
- srcy = srcy || 0;
- srcw = srcw || src.bitmap.width;
- srch = srch || src.bitmap.height;
- } else {
- return throwError.call(
- this,
- "srcx, srcy, srcw, srch must be numbers",
- cb
- );
- }
-
- // round input
- x = Math.round(x);
- y = Math.round(y);
-
- // round input
- srcx = Math.round(srcx);
- srcy = Math.round(srcy);
- srcw = Math.round(srcw);
- srch = Math.round(srch);
-
- const maxWidth = this.bitmap.width;
- const maxHeight = this.bitmap.height;
- const baseImage = this;
-
- src.scanQuiet(srcx, srcy, srcw, srch, function (sx, sy, idx) {
- const xOffset = x + sx - srcx;
- const yOffset = y + sy - srcy;
-
- if (
- xOffset >= 0 &&
- yOffset >= 0 &&
- maxWidth - xOffset > 0 &&
- maxHeight - yOffset > 0
- ) {
- const dstIdx = baseImage.getPixelIndex(xOffset, yOffset);
- const src = {
- r: this.bitmap.data[idx],
- g: this.bitmap.data[idx + 1],
- b: this.bitmap.data[idx + 2],
- a: this.bitmap.data[idx + 3],
- };
-
- const dst = {
- r: baseImage.bitmap.data[dstIdx],
- g: baseImage.bitmap.data[dstIdx + 1],
- b: baseImage.bitmap.data[dstIdx + 2],
- a: baseImage.bitmap.data[dstIdx + 3],
- };
-
- baseImage.bitmap.data[dstIdx] =
- ((src.a * (src.r - dst.r) - dst.r + 255) >> 8) + dst.r;
- baseImage.bitmap.data[dstIdx + 1] =
- ((src.a * (src.g - dst.g) - dst.g + 255) >> 8) + dst.g;
- baseImage.bitmap.data[dstIdx + 2] =
- ((src.a * (src.b - dst.b) - dst.b + 255) >> 8) + dst.b;
- baseImage.bitmap.data[dstIdx + 3] = this.constructor.limit255(
- dst.a + src.a
- );
- }
- });
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-blit/test/blit.test.js b/WechatBot/node_modules/@jimp/plugin-blit/test/blit.test.js
deleted file mode 100755
index d4e11a1a8..000000000
--- a/WechatBot/node_modules/@jimp/plugin-blit/test/blit.test.js
+++ /dev/null
@@ -1,235 +0,0 @@
-import { Jimp, mkJGD, getTestDir } from "@jimp/test-utils";
-import jpeg from "@jimp/jpeg";
-import configure from "@jimp/custom";
-
-import blit from "../src";
-
-const jimp = configure({ types: [jpeg], plugins: [blit] }, Jimp);
-const testDir = getTestDir(__dirname);
-
-describe("Blit over image", function () {
- this.timeout(15000);
- const targetJGD = mkJGD(
- "▴▴▴▴▸▸▸▸",
- "▴▴▴▴▸▸▸▸",
- "▴▴▴▴▸▸▸▸",
- "▴▴▴▴▸▸▸▸",
- "▾▾▾▾◆◆◆◆",
- "▾▾▾▾◆◆◆◆",
- "▾▾▾▾◆◆◆◆",
- "▾▾▾▾◆◆◆◆"
- );
- const srcJGD = mkJGD(
- "□□□□□□",
- "□▥▥▥▥□",
- "□▥■■▥□",
- "□▥■■▥□",
- "□▥▥▥▥□",
- "□□□□□□"
- );
-
- let targetImg;
- let srcImg; // stores the Jimp instances of the JGD images above.
-
- before((done) => {
- const img1 = jimp.read(targetJGD);
- const img2 = jimp.read(srcJGD);
- Promise.all([img1, img2])
- .then((images) => {
- targetImg = images[0];
- srcImg = images[1];
- done();
- })
- .catch(done);
- });
-
- it("blit on top, with no crop", () => {
- targetImg
- .clone()
- .blit(srcImg, 0, 0)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- "□□□□□□▸▸",
- "□▥▥▥▥□▸▸",
- "□▥■■▥□▸▸",
- "□▥■■▥□▸▸",
- "□▥▥▥▥□◆◆",
- "□□□□□□◆◆",
- "▾▾▾▾◆◆◆◆",
- "▾▾▾▾◆◆◆◆"
- )
- );
- });
-
- it("blit on middle, with no crop", () => {
- targetImg
- .clone()
- .blit(srcImg, 1, 1)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- "▴▴▴▴▸▸▸▸",
- "▴□□□□□□▸",
- "▴□▥▥▥▥□▸",
- "▴□▥■■▥□▸",
- "▾□▥■■▥□◆",
- "▾□▥▥▥▥□◆",
- "▾□□□□□□◆",
- "▾▾▾▾◆◆◆◆"
- )
- );
- });
-
- it("blit on middle, with x,y crop", () => {
- targetImg
- .clone()
- .blit(srcImg, 2, 2, 1, 1, 5, 5)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- "▴▴▴▴▸▸▸▸",
- "▴▴▴▴▸▸▸▸",
- "▴▴▥▥▥▥□▸",
- "▴▴▥■■▥□▸",
- "▾▾▥■■▥□◆",
- "▾▾▥▥▥▥□◆",
- "▾▾□□□□□◆",
- "▾▾▾▾◆◆◆◆"
- )
- );
- });
-
- it("blit on middle, with x,y,w,h crop", () => {
- targetImg
- .clone()
- .blit(srcImg, 2, 2, 1, 1, 4, 4)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- "▴▴▴▴▸▸▸▸",
- "▴▴▴▴▸▸▸▸",
- "▴▴▥▥▥▥▸▸",
- "▴▴▥■■▥▸▸",
- "▾▾▥■■▥◆◆",
- "▾▾▥▥▥▥◆◆",
- "▾▾▾▾◆◆◆◆",
- "▾▾▾▾◆◆◆◆"
- )
- );
- });
-
- it("blit partially out, on top-left", () => {
- targetImg
- .clone()
- .blit(srcImg, -1, -1)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- "▥▥▥▥□▸▸▸",
- "▥■■▥□▸▸▸",
- "▥■■▥□▸▸▸",
- "▥▥▥▥□▸▸▸",
- "□□□□□◆◆◆",
- "▾▾▾▾◆◆◆◆",
- "▾▾▾▾◆◆◆◆",
- "▾▾▾▾◆◆◆◆"
- )
- );
- });
-
- it("blit partially out, on bottom-right", () => {
- targetImg
- .clone()
- .blit(srcImg, 3, 3)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- "▴▴▴▴▸▸▸▸",
- "▴▴▴▴▸▸▸▸",
- "▴▴▴▴▸▸▸▸",
- "▴▴▴□□□□□",
- "▾▾▾□▥▥▥▥",
- "▾▾▾□▥■■▥",
- "▾▾▾□▥■■▥",
- "▾▾▾□▥▥▥▥"
- )
- );
- });
-
- it("blit alpha", async () => {
- const expectedImg = await Jimp.read(testDir + "/images/blit-alpha.png");
- const dice = await Jimp.read(testDir + "/images/dice.png");
- const image = await Jimp.read(testDir + "/images/cops.jpg");
-
- image
- .blit(dice, 0, 0)
- .bitmap.data.should.be.deepEqual(expectedImg.bitmap.data);
- });
-
- async function createCat(catNum, len) {
- const imgHeight = 60;
-
- const butt = await Jimp.read(testDir + "/images/cat_butt.png");
- const head = await Jimp.read(testDir + "/images/cat_head.png");
- const fuzz = await Jimp.read(testDir + "/images/cat_fuzz.png");
-
- let longCat = len;
- longCat = longCat > 20 ? 20 : longCat;
- longCat = longCat <= 1 ? 1 : longCat;
-
- const cat =
- Math.floor(catNum * (head.bitmap.height / imgHeight)) * imgHeight;
-
- const newImage = await Jimp.create(
- butt.bitmap.width + head.bitmap.width + fuzz.bitmap.width * longCat,
- imgHeight,
- 0x00000000
- );
-
- newImage.blit(butt, 0, 0, 0, cat, butt.bitmap.width, imgHeight);
- for (let i = 0; i < longCat; i++) {
- newImage.blit(
- fuzz,
- butt.bitmap.width + fuzz.bitmap.width * i,
- 0,
- 0,
- cat,
- fuzz.bitmap.width,
- imgHeight
- );
- }
-
- newImage.blit(
- head,
- butt.bitmap.width + fuzz.bitmap.width * longCat,
- 0,
- 0,
- cat,
- head.bitmap.width,
- imgHeight
- );
-
- return newImage;
- }
-
- it("uses src params correctly", async () => {
- const expectedSmall = await Jimp.read(
- testDir + "/images/cat-results/small-cat.png"
- );
- const small = await createCat(0.3, 1);
- small.bitmap.data.should.be.deepEqual(expectedSmall.bitmap.data);
-
- const expectedMedium = await Jimp.read(
- testDir + "/images/cat-results/medium-cat.png"
- );
- const medium = await createCat(0.6, 7);
- medium.bitmap.data.should.be.deepEqual(expectedMedium.bitmap.data);
-
- const expectedLarge = await Jimp.read(
- testDir + "/images/cat-results/large-cat.png"
- );
- const large = await createCat(0.9, 20);
- large.bitmap.data.should.be.deepEqual(expectedLarge.bitmap.data);
- });
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-blit/test/images/blit-alpha.png b/WechatBot/node_modules/@jimp/plugin-blit/test/images/blit-alpha.png
deleted file mode 100644
index c5995100f..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-blit/test/images/blit-alpha.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-blit/test/images/cat-results/large-cat.png b/WechatBot/node_modules/@jimp/plugin-blit/test/images/cat-results/large-cat.png
deleted file mode 100644
index 059852dc7..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-blit/test/images/cat-results/large-cat.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-blit/test/images/cat-results/medium-cat.png b/WechatBot/node_modules/@jimp/plugin-blit/test/images/cat-results/medium-cat.png
deleted file mode 100644
index 7da75acf7..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-blit/test/images/cat-results/medium-cat.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-blit/test/images/cat-results/small-cat.png b/WechatBot/node_modules/@jimp/plugin-blit/test/images/cat-results/small-cat.png
deleted file mode 100644
index 1cbc5d63d..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-blit/test/images/cat-results/small-cat.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-blit/test/images/cat_butt.png b/WechatBot/node_modules/@jimp/plugin-blit/test/images/cat_butt.png
deleted file mode 100644
index a96a11490..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-blit/test/images/cat_butt.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-blit/test/images/cat_fuzz.png b/WechatBot/node_modules/@jimp/plugin-blit/test/images/cat_fuzz.png
deleted file mode 100644
index 8bce44afb..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-blit/test/images/cat_fuzz.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-blit/test/images/cat_head.png b/WechatBot/node_modules/@jimp/plugin-blit/test/images/cat_head.png
deleted file mode 100644
index c0bf98780..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-blit/test/images/cat_head.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-blit/test/images/cops.jpg b/WechatBot/node_modules/@jimp/plugin-blit/test/images/cops.jpg
deleted file mode 100644
index f843a4f97..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-blit/test/images/cops.jpg and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-blit/test/images/dice.png b/WechatBot/node_modules/@jimp/plugin-blit/test/images/dice.png
deleted file mode 100644
index b28653fb7..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-blit/test/images/dice.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-blur/CHANGELOG.md b/WechatBot/node_modules/@jimp/plugin-blur/CHANGELOG.md
deleted file mode 100644
index 4eb3193f9..000000000
--- a/WechatBot/node_modules/@jimp/plugin-blur/CHANGELOG.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# v0.16.3 (Sat Feb 04 2023)
-
-#### ⚠️ Pushed to `master`
-
-- upgrade prettier ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 1
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
----
-
-# v0.11.0 (Fri May 15 2020)
-
-#### 🚀 Enhancement
-
-- Removed Core-JS as a dependency. [#882](https://github.com/oliver-moran/jimp/pull/882) ([@EricRabil](https://github.com/EricRabil))
-
-#### Authors: 1
-
-- Eric Rabil ([@EricRabil](https://github.com/EricRabil))
-
----
-
-# v0.9.3 (Tue Nov 26 2019)
-
-#### 🐛 Bug Fix
-
-- `@jimp/cli`, `@jimp/core`, `@jimp/custom`, `jimp`, `@jimp/plugin-blit`, `@jimp/plugin-blur`, `@jimp/plugin-circle`, `@jimp/plugin-color`, `@jimp/plugin-contain`, `@jimp/plugin-cover`, `@jimp/plugin-crop`, `@jimp/plugin-displace`, `@jimp/plugin-dither`, `@jimp/plugin-fisheye`, `@jimp/plugin-flip`, `@jimp/plugin-gaussian`, `@jimp/plugin-invert`, `@jimp/plugin-mask`, `@jimp/plugin-normalize`, `@jimp/plugin-print`, `@jimp/plugin-resize`, `@jimp/plugin-rotate`, `@jimp/plugin-scale`, `@jimp/plugin-shadow`, `@jimp/plugin-threshold`, `@jimp/plugins`, `@jimp/test-utils`, `@jimp/bmp`, `@jimp/gif`, `@jimp/jpeg`, `@jimp/png`, `@jimp/tiff`, `@jimp/types`, `@jimp/utils`
- - Fix regeneratorRuntime errors [#815](https://github.com/oliver-moran/jimp/pull/815) ([@crutchcorn](https://github.com/crutchcorn) [@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 2
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
diff --git a/WechatBot/node_modules/@jimp/plugin-blur/LICENSE b/WechatBot/node_modules/@jimp/plugin-blur/LICENSE
deleted file mode 100644
index baa5d4850..000000000
--- a/WechatBot/node_modules/@jimp/plugin-blur/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Oliver Moran
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/WechatBot/node_modules/@jimp/plugin-blur/README.md b/WechatBot/node_modules/@jimp/plugin-blur/README.md
deleted file mode 100644
index caa715836..000000000
--- a/WechatBot/node_modules/@jimp/plugin-blur/README.md
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
@jimp/plugin-blur
-
Blur an image.
-
-
-A fast blur algorithm that produces similar effect to a Gaussian blur - but MUCH quicker
-
-## Usage
-
-- @param {number} r the pixel radius of the blur
-- @param {function(Error, Jimp)} cb (optional) a callback for when complete
-
-```js
-import jimp from "jimp";
-
-async function main() {
- const image = await jimp.read("test/image.png");
-
- image.blur(5);
-}
-
-main();
-```
diff --git a/WechatBot/node_modules/@jimp/plugin-blur/dist/blur-tables.js b/WechatBot/node_modules/@jimp/plugin-blur/dist/blur-tables.js
deleted file mode 100755
index 6d31ea19a..000000000
--- a/WechatBot/node_modules/@jimp/plugin-blur/dist/blur-tables.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.shgTable = exports.mulTable = void 0;
-var mulTable = [1, 57, 41, 21, 203, 34, 97, 73, 227, 91, 149, 62, 105, 45, 39, 137, 241, 107, 3, 173, 39, 71, 65, 238, 219, 101, 187, 87, 81, 151, 141, 133, 249, 117, 221, 209, 197, 187, 177, 169, 5, 153, 73, 139, 133, 127, 243, 233, 223, 107, 103, 99, 191, 23, 177, 171, 165, 159, 77, 149, 9, 139, 135, 131, 253, 245, 119, 231, 224, 109, 211, 103, 25, 195, 189, 23, 45, 175, 171, 83, 81, 79, 155, 151, 147, 9, 141, 137, 67, 131, 129, 251, 123, 30, 235, 115, 113, 221, 217, 53, 13, 51, 50, 49, 193, 189, 185, 91, 179, 175, 43, 169, 83, 163, 5, 79, 155, 19, 75, 147, 145, 143, 35, 69, 17, 67, 33, 65, 255, 251, 247, 243, 239, 59, 29, 229, 113, 111, 219, 27, 213, 105, 207, 51, 201, 199, 49, 193, 191, 47, 93, 183, 181, 179, 11, 87, 43, 85, 167, 165, 163, 161, 159, 157, 155, 77, 19, 75, 37, 73, 145, 143, 141, 35, 138, 137, 135, 67, 33, 131, 129, 255, 63, 250, 247, 61, 121, 239, 237, 117, 29, 229, 227, 225, 111, 55, 109, 216, 213, 211, 209, 207, 205, 203, 201, 199, 197, 195, 193, 48, 190, 47, 93, 185, 183, 181, 179, 178, 176, 175, 173, 171, 85, 21, 167, 165, 41, 163, 161, 5, 79, 157, 78, 154, 153, 19, 75, 149, 74, 147, 73, 144, 143, 71, 141, 140, 139, 137, 17, 135, 134, 133, 66, 131, 65, 129, 1];
-exports.mulTable = mulTable;
-var shgTable = [0, 9, 10, 10, 14, 12, 14, 14, 16, 15, 16, 15, 16, 15, 15, 17, 18, 17, 12, 18, 16, 17, 17, 19, 19, 18, 19, 18, 18, 19, 19, 19, 20, 19, 20, 20, 20, 20, 20, 20, 15, 20, 19, 20, 20, 20, 21, 21, 21, 20, 20, 20, 21, 18, 21, 21, 21, 21, 20, 21, 17, 21, 21, 21, 22, 22, 21, 22, 22, 21, 22, 21, 19, 22, 22, 19, 20, 22, 22, 21, 21, 21, 22, 22, 22, 18, 22, 22, 21, 22, 22, 23, 22, 20, 23, 22, 22, 23, 23, 21, 19, 21, 21, 21, 23, 23, 23, 22, 23, 23, 21, 23, 22, 23, 18, 22, 23, 20, 22, 23, 23, 23, 21, 22, 20, 22, 21, 22, 24, 24, 24, 24, 24, 22, 21, 24, 23, 23, 24, 21, 24, 23, 24, 22, 24, 24, 22, 24, 24, 22, 23, 24, 24, 24, 20, 23, 22, 23, 24, 24, 24, 24, 24, 24, 24, 23, 21, 23, 22, 23, 24, 24, 24, 22, 24, 24, 24, 23, 22, 24, 24, 25, 23, 25, 25, 23, 24, 25, 25, 24, 22, 25, 25, 25, 24, 23, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 23, 25, 23, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 24, 22, 25, 25, 23, 25, 25, 20, 24, 25, 24, 25, 25, 22, 24, 25, 24, 25, 24, 25, 25, 24, 25, 25, 25, 25, 22, 25, 25, 25, 24, 25, 24, 25, 18];
-exports.shgTable = shgTable;
-//# sourceMappingURL=blur-tables.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-blur/dist/blur-tables.js.map b/WechatBot/node_modules/@jimp/plugin-blur/dist/blur-tables.js.map
deleted file mode 100644
index a1ceeb6f4..000000000
--- a/WechatBot/node_modules/@jimp/plugin-blur/dist/blur-tables.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/blur-tables.js"],"names":["mulTable","shgTable"],"mappings":"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","sourcesContent":["export const mulTable = [\n 1, 57, 41, 21, 203, 34, 97, 73, 227, 91, 149, 62, 105, 45, 39, 137, 241, 107,\n 3, 173, 39, 71, 65, 238, 219, 101, 187, 87, 81, 151, 141, 133, 249, 117, 221,\n 209, 197, 187, 177, 169, 5, 153, 73, 139, 133, 127, 243, 233, 223, 107, 103,\n 99, 191, 23, 177, 171, 165, 159, 77, 149, 9, 139, 135, 131, 253, 245, 119,\n 231, 224, 109, 211, 103, 25, 195, 189, 23, 45, 175, 171, 83, 81, 79, 155, 151,\n 147, 9, 141, 137, 67, 131, 129, 251, 123, 30, 235, 115, 113, 221, 217, 53, 13,\n 51, 50, 49, 193, 189, 185, 91, 179, 175, 43, 169, 83, 163, 5, 79, 155, 19, 75,\n 147, 145, 143, 35, 69, 17, 67, 33, 65, 255, 251, 247, 243, 239, 59, 29, 229,\n 113, 111, 219, 27, 213, 105, 207, 51, 201, 199, 49, 193, 191, 47, 93, 183,\n 181, 179, 11, 87, 43, 85, 167, 165, 163, 161, 159, 157, 155, 77, 19, 75, 37,\n 73, 145, 143, 141, 35, 138, 137, 135, 67, 33, 131, 129, 255, 63, 250, 247, 61,\n 121, 239, 237, 117, 29, 229, 227, 225, 111, 55, 109, 216, 213, 211, 209, 207,\n 205, 203, 201, 199, 197, 195, 193, 48, 190, 47, 93, 185, 183, 181, 179, 178,\n 176, 175, 173, 171, 85, 21, 167, 165, 41, 163, 161, 5, 79, 157, 78, 154, 153,\n 19, 75, 149, 74, 147, 73, 144, 143, 71, 141, 140, 139, 137, 17, 135, 134, 133,\n 66, 131, 65, 129, 1,\n];\n\nexport const shgTable = [\n 0, 9, 10, 10, 14, 12, 14, 14, 16, 15, 16, 15, 16, 15, 15, 17, 18, 17, 12, 18,\n 16, 17, 17, 19, 19, 18, 19, 18, 18, 19, 19, 19, 20, 19, 20, 20, 20, 20, 20,\n 20, 15, 20, 19, 20, 20, 20, 21, 21, 21, 20, 20, 20, 21, 18, 21, 21, 21, 21,\n 20, 21, 17, 21, 21, 21, 22, 22, 21, 22, 22, 21, 22, 21, 19, 22, 22, 19, 20,\n 22, 22, 21, 21, 21, 22, 22, 22, 18, 22, 22, 21, 22, 22, 23, 22, 20, 23, 22,\n 22, 23, 23, 21, 19, 21, 21, 21, 23, 23, 23, 22, 23, 23, 21, 23, 22, 23, 18,\n 22, 23, 20, 22, 23, 23, 23, 21, 22, 20, 22, 21, 22, 24, 24, 24, 24, 24, 22,\n 21, 24, 23, 23, 24, 21, 24, 23, 24, 22, 24, 24, 22, 24, 24, 22, 23, 24, 24,\n 24, 20, 23, 22, 23, 24, 24, 24, 24, 24, 24, 24, 23, 21, 23, 22, 23, 24, 24,\n 24, 22, 24, 24, 24, 23, 22, 24, 24, 25, 23, 25, 25, 23, 24, 25, 25, 24, 22,\n 25, 25, 25, 24, 23, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 23,\n 25, 23, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 24, 22, 25, 25, 23, 25, 25,\n 20, 24, 25, 24, 25, 25, 22, 24, 25, 24, 25, 24, 25, 25, 24, 25, 25, 25, 25,\n 22, 25, 25, 25, 24, 25, 24, 25, 18,\n];\n"],"file":"blur-tables.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-blur/dist/index.js b/WechatBot/node_modules/@jimp/plugin-blur/dist/index.js
deleted file mode 100755
index 38f8bb5a9..000000000
--- a/WechatBot/node_modules/@jimp/plugin-blur/dist/index.js
+++ /dev/null
@@ -1,182 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports["default"] = void 0;
-
-var _utils = require("@jimp/utils");
-
-var _blurTables = require("./blur-tables");
-
-/*
- Superfast Blur (0.5)
- http://www.quasimondo.com/BoxBlurForCanvas/FastBlur.js
-
- Copyright (c) 2011 Mario Klingemann
-
- Permission is hereby granted, free of charge, to any person
- obtaining a copy of this software and associated documentation
- files (the "Software"), to deal in the Software without
- restriction, including without limitation the rights to use,
- copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the
- Software is furnished to do so, subject to the following
- conditions:
-
- The above copyright notice and this permission notice shall be
- included in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
-*/
-var _default = function _default() {
- return {
- /**
- * A fast blur algorithm that produces similar effect to a Gaussian blur - but MUCH quicker
- * @param {number} r the pixel radius of the blur
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
- blur: function blur(r, cb) {
- if (typeof r !== "number") return _utils.throwError.call(this, "r must be a number", cb);
- if (r < 1) return _utils.throwError.call(this, "r must be greater than 0", cb);
- var rsum;
- var gsum;
- var bsum;
- var asum;
- var x;
- var y;
- var i;
- var p;
- var p1;
- var p2;
- var yp;
- var yi;
- var yw;
- var pa;
- var wm = this.bitmap.width - 1;
- var hm = this.bitmap.height - 1; // const wh = this.bitmap.width * this.bitmap.height;
-
- var rad1 = r + 1;
- var mulSum = _blurTables.mulTable[r];
- var shgSum = _blurTables.shgTable[r];
- var red = [];
- var green = [];
- var blue = [];
- var alpha = [];
- var vmin = [];
- var vmax = [];
- var iterations = 2;
-
- while (iterations-- > 0) {
- yi = 0;
- yw = 0;
-
- for (y = 0; y < this.bitmap.height; y++) {
- rsum = this.bitmap.data[yw] * rad1;
- gsum = this.bitmap.data[yw + 1] * rad1;
- bsum = this.bitmap.data[yw + 2] * rad1;
- asum = this.bitmap.data[yw + 3] * rad1;
-
- for (i = 1; i <= r; i++) {
- p = yw + ((i > wm ? wm : i) << 2);
- rsum += this.bitmap.data[p++];
- gsum += this.bitmap.data[p++];
- bsum += this.bitmap.data[p++];
- asum += this.bitmap.data[p];
- }
-
- for (x = 0; x < this.bitmap.width; x++) {
- red[yi] = rsum;
- green[yi] = gsum;
- blue[yi] = bsum;
- alpha[yi] = asum;
-
- if (y === 0) {
- vmin[x] = ((p = x + rad1) < wm ? p : wm) << 2;
- vmax[x] = (p = x - r) > 0 ? p << 2 : 0;
- }
-
- p1 = yw + vmin[x];
- p2 = yw + vmax[x];
- rsum += this.bitmap.data[p1++] - this.bitmap.data[p2++];
- gsum += this.bitmap.data[p1++] - this.bitmap.data[p2++];
- bsum += this.bitmap.data[p1++] - this.bitmap.data[p2++];
- asum += this.bitmap.data[p1] - this.bitmap.data[p2];
- yi++;
- }
-
- yw += this.bitmap.width << 2;
- }
-
- for (x = 0; x < this.bitmap.width; x++) {
- yp = x;
- rsum = red[yp] * rad1;
- gsum = green[yp] * rad1;
- bsum = blue[yp] * rad1;
- asum = alpha[yp] * rad1;
-
- for (i = 1; i <= r; i++) {
- yp += i > hm ? 0 : this.bitmap.width;
- rsum += red[yp];
- gsum += green[yp];
- bsum += blue[yp];
- asum += alpha[yp];
- }
-
- yi = x << 2;
-
- for (y = 0; y < this.bitmap.height; y++) {
- pa = asum * mulSum >>> shgSum;
- this.bitmap.data[yi + 3] = pa; // normalize alpha
-
- if (pa > 255) {
- this.bitmap.data[yi + 3] = 255;
- }
-
- if (pa > 0) {
- pa = 255 / pa;
- this.bitmap.data[yi] = (rsum * mulSum >>> shgSum) * pa;
- this.bitmap.data[yi + 1] = (gsum * mulSum >>> shgSum) * pa;
- this.bitmap.data[yi + 2] = (bsum * mulSum >>> shgSum) * pa;
- } else {
- this.bitmap.data[yi + 2] = 0;
- this.bitmap.data[yi + 1] = 0;
- this.bitmap.data[yi] = 0;
- }
-
- if (x === 0) {
- vmin[y] = ((p = y + rad1) < hm ? p : hm) * this.bitmap.width;
- vmax[y] = (p = y - r) > 0 ? p * this.bitmap.width : 0;
- }
-
- p1 = x + vmin[y];
- p2 = x + vmax[y];
- rsum += red[p1] - red[p2];
- gsum += green[p1] - green[p2];
- bsum += blue[p1] - blue[p2];
- asum += alpha[p1] - alpha[p2];
- yi += this.bitmap.width << 2;
- }
- }
- }
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- }
- };
-};
-
-exports["default"] = _default;
-module.exports = exports.default;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-blur/dist/index.js.map b/WechatBot/node_modules/@jimp/plugin-blur/dist/index.js.map
deleted file mode 100644
index 9892b9a11..000000000
--- a/WechatBot/node_modules/@jimp/plugin-blur/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/index.js"],"names":["blur","r","cb","throwError","call","rsum","gsum","bsum","asum","x","y","i","p","p1","p2","yp","yi","yw","pa","wm","bitmap","width","hm","height","rad1","mulSum","mulTable","shgSum","shgTable","red","green","blue","alpha","vmin","vmax","iterations","data"],"mappings":"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","sourcesContent":["import { throwError, isNodePattern } from \"@jimp/utils\";\nimport { mulTable, shgTable } from \"./blur-tables\";\n\n/*\n Superfast Blur (0.5)\n http://www.quasimondo.com/BoxBlurForCanvas/FastBlur.js\n\n Copyright (c) 2011 Mario Klingemann\n\n Permission is hereby granted, free of charge, to any person\n obtaining a copy of this software and associated documentation\n files (the \"Software\"), to deal in the Software without\n restriction, including without limitation the rights to use,\n copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the\n Software is furnished to do so, subject to the following\n conditions:\n\n The above copyright notice and this permission notice shall be\n included in all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n OTHER DEALINGS IN THE SOFTWARE.\n*/\n\nexport default () => ({\n /**\n * A fast blur algorithm that produces similar effect to a Gaussian blur - but MUCH quicker\n * @param {number} r the pixel radius of the blur\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp} this for chaining of methods\n */\n blur(r, cb) {\n if (typeof r !== \"number\")\n return throwError.call(this, \"r must be a number\", cb);\n if (r < 1) return throwError.call(this, \"r must be greater than 0\", cb);\n\n let rsum;\n let gsum;\n let bsum;\n let asum;\n let x;\n let y;\n let i;\n let p;\n let p1;\n let p2;\n let yp;\n let yi;\n let yw;\n let pa;\n\n const wm = this.bitmap.width - 1;\n const hm = this.bitmap.height - 1;\n // const wh = this.bitmap.width * this.bitmap.height;\n const rad1 = r + 1;\n\n const mulSum = mulTable[r];\n const shgSum = shgTable[r];\n\n const red = [];\n const green = [];\n const blue = [];\n const alpha = [];\n\n const vmin = [];\n const vmax = [];\n\n let iterations = 2;\n\n while (iterations-- > 0) {\n yi = 0;\n yw = 0;\n\n for (y = 0; y < this.bitmap.height; y++) {\n rsum = this.bitmap.data[yw] * rad1;\n gsum = this.bitmap.data[yw + 1] * rad1;\n bsum = this.bitmap.data[yw + 2] * rad1;\n asum = this.bitmap.data[yw + 3] * rad1;\n\n for (i = 1; i <= r; i++) {\n p = yw + ((i > wm ? wm : i) << 2);\n rsum += this.bitmap.data[p++];\n gsum += this.bitmap.data[p++];\n bsum += this.bitmap.data[p++];\n asum += this.bitmap.data[p];\n }\n\n for (x = 0; x < this.bitmap.width; x++) {\n red[yi] = rsum;\n green[yi] = gsum;\n blue[yi] = bsum;\n alpha[yi] = asum;\n\n if (y === 0) {\n vmin[x] = ((p = x + rad1) < wm ? p : wm) << 2;\n vmax[x] = (p = x - r) > 0 ? p << 2 : 0;\n }\n\n p1 = yw + vmin[x];\n p2 = yw + vmax[x];\n\n rsum += this.bitmap.data[p1++] - this.bitmap.data[p2++];\n gsum += this.bitmap.data[p1++] - this.bitmap.data[p2++];\n bsum += this.bitmap.data[p1++] - this.bitmap.data[p2++];\n asum += this.bitmap.data[p1] - this.bitmap.data[p2];\n\n yi++;\n }\n\n yw += this.bitmap.width << 2;\n }\n\n for (x = 0; x < this.bitmap.width; x++) {\n yp = x;\n rsum = red[yp] * rad1;\n gsum = green[yp] * rad1;\n bsum = blue[yp] * rad1;\n asum = alpha[yp] * rad1;\n\n for (i = 1; i <= r; i++) {\n yp += i > hm ? 0 : this.bitmap.width;\n rsum += red[yp];\n gsum += green[yp];\n bsum += blue[yp];\n asum += alpha[yp];\n }\n\n yi = x << 2;\n\n for (y = 0; y < this.bitmap.height; y++) {\n pa = (asum * mulSum) >>> shgSum;\n this.bitmap.data[yi + 3] = pa;\n\n // normalize alpha\n if (pa > 255) {\n this.bitmap.data[yi + 3] = 255;\n }\n\n if (pa > 0) {\n pa = 255 / pa;\n this.bitmap.data[yi] = ((rsum * mulSum) >>> shgSum) * pa;\n this.bitmap.data[yi + 1] = ((gsum * mulSum) >>> shgSum) * pa;\n this.bitmap.data[yi + 2] = ((bsum * mulSum) >>> shgSum) * pa;\n } else {\n this.bitmap.data[yi + 2] = 0;\n this.bitmap.data[yi + 1] = 0;\n this.bitmap.data[yi] = 0;\n }\n\n if (x === 0) {\n vmin[y] = ((p = y + rad1) < hm ? p : hm) * this.bitmap.width;\n vmax[y] = (p = y - r) > 0 ? p * this.bitmap.width : 0;\n }\n\n p1 = x + vmin[y];\n p2 = x + vmax[y];\n\n rsum += red[p1] - red[p2];\n gsum += green[p1] - green[p2];\n bsum += blue[p1] - blue[p2];\n asum += alpha[p1] - alpha[p2];\n\n yi += this.bitmap.width << 2;\n }\n }\n }\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n },\n});\n"],"file":"index.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-blur/index.d.ts b/WechatBot/node_modules/@jimp/plugin-blur/index.d.ts
deleted file mode 100644
index 8e325774e..000000000
--- a/WechatBot/node_modules/@jimp/plugin-blur/index.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { ImageCallback } from "@jimp/core";
-
-interface Blur {
- blur(r: number, cb?: ImageCallback): this;
-}
-
-export default function (): Blur;
diff --git a/WechatBot/node_modules/@jimp/plugin-blur/package.json b/WechatBot/node_modules/@jimp/plugin-blur/package.json
deleted file mode 100644
index 9f89b8419..000000000
--- a/WechatBot/node_modules/@jimp/plugin-blur/package.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "name": "@jimp/plugin-blur",
- "version": "0.16.13",
- "description": "blur an image.",
- "main": "dist/index.js",
- "module": "es/index.js",
- "types": "index.d.ts",
- "scripts": {
- "build": "npm run build:node:production && npm run build:module",
- "build:watch": "npm run build:node:debug -- -- --watch --verbose",
- "build:debug": "npm run build:node:debug",
- "build:module": "cross-env BABEL_ENV=module babel src -d es --source-maps --config-file ../../babel.config.js",
- "build:node": "babel src -d dist --source-maps --config-file ../../babel.config.js",
- "build:node:debug": "cross-env BABEL_ENV=development npm run build:node",
- "build:node:production": "cross-env BABEL_ENV=production npm run build:node"
- },
- "author": "",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- },
- "publishConfig": {
- "access": "public"
- },
- "gitHead": "9eec86086634329a072901dca3a800b850548572"
-}
diff --git a/WechatBot/node_modules/@jimp/plugin-blur/src/blur-tables.js b/WechatBot/node_modules/@jimp/plugin-blur/src/blur-tables.js
deleted file mode 100755
index b63001458..000000000
--- a/WechatBot/node_modules/@jimp/plugin-blur/src/blur-tables.js
+++ /dev/null
@@ -1,35 +0,0 @@
-export const mulTable = [
- 1, 57, 41, 21, 203, 34, 97, 73, 227, 91, 149, 62, 105, 45, 39, 137, 241, 107,
- 3, 173, 39, 71, 65, 238, 219, 101, 187, 87, 81, 151, 141, 133, 249, 117, 221,
- 209, 197, 187, 177, 169, 5, 153, 73, 139, 133, 127, 243, 233, 223, 107, 103,
- 99, 191, 23, 177, 171, 165, 159, 77, 149, 9, 139, 135, 131, 253, 245, 119,
- 231, 224, 109, 211, 103, 25, 195, 189, 23, 45, 175, 171, 83, 81, 79, 155, 151,
- 147, 9, 141, 137, 67, 131, 129, 251, 123, 30, 235, 115, 113, 221, 217, 53, 13,
- 51, 50, 49, 193, 189, 185, 91, 179, 175, 43, 169, 83, 163, 5, 79, 155, 19, 75,
- 147, 145, 143, 35, 69, 17, 67, 33, 65, 255, 251, 247, 243, 239, 59, 29, 229,
- 113, 111, 219, 27, 213, 105, 207, 51, 201, 199, 49, 193, 191, 47, 93, 183,
- 181, 179, 11, 87, 43, 85, 167, 165, 163, 161, 159, 157, 155, 77, 19, 75, 37,
- 73, 145, 143, 141, 35, 138, 137, 135, 67, 33, 131, 129, 255, 63, 250, 247, 61,
- 121, 239, 237, 117, 29, 229, 227, 225, 111, 55, 109, 216, 213, 211, 209, 207,
- 205, 203, 201, 199, 197, 195, 193, 48, 190, 47, 93, 185, 183, 181, 179, 178,
- 176, 175, 173, 171, 85, 21, 167, 165, 41, 163, 161, 5, 79, 157, 78, 154, 153,
- 19, 75, 149, 74, 147, 73, 144, 143, 71, 141, 140, 139, 137, 17, 135, 134, 133,
- 66, 131, 65, 129, 1,
-];
-
-export const shgTable = [
- 0, 9, 10, 10, 14, 12, 14, 14, 16, 15, 16, 15, 16, 15, 15, 17, 18, 17, 12, 18,
- 16, 17, 17, 19, 19, 18, 19, 18, 18, 19, 19, 19, 20, 19, 20, 20, 20, 20, 20,
- 20, 15, 20, 19, 20, 20, 20, 21, 21, 21, 20, 20, 20, 21, 18, 21, 21, 21, 21,
- 20, 21, 17, 21, 21, 21, 22, 22, 21, 22, 22, 21, 22, 21, 19, 22, 22, 19, 20,
- 22, 22, 21, 21, 21, 22, 22, 22, 18, 22, 22, 21, 22, 22, 23, 22, 20, 23, 22,
- 22, 23, 23, 21, 19, 21, 21, 21, 23, 23, 23, 22, 23, 23, 21, 23, 22, 23, 18,
- 22, 23, 20, 22, 23, 23, 23, 21, 22, 20, 22, 21, 22, 24, 24, 24, 24, 24, 22,
- 21, 24, 23, 23, 24, 21, 24, 23, 24, 22, 24, 24, 22, 24, 24, 22, 23, 24, 24,
- 24, 20, 23, 22, 23, 24, 24, 24, 24, 24, 24, 24, 23, 21, 23, 22, 23, 24, 24,
- 24, 22, 24, 24, 24, 23, 22, 24, 24, 25, 23, 25, 25, 23, 24, 25, 25, 24, 22,
- 25, 25, 25, 24, 23, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 23,
- 25, 23, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 24, 22, 25, 25, 23, 25, 25,
- 20, 24, 25, 24, 25, 25, 22, 24, 25, 24, 25, 24, 25, 25, 24, 25, 25, 25, 25,
- 22, 25, 25, 25, 24, 25, 24, 25, 18,
-];
diff --git a/WechatBot/node_modules/@jimp/plugin-blur/src/index.js b/WechatBot/node_modules/@jimp/plugin-blur/src/index.js
deleted file mode 100755
index d97ae3d6f..000000000
--- a/WechatBot/node_modules/@jimp/plugin-blur/src/index.js
+++ /dev/null
@@ -1,181 +0,0 @@
-import { throwError, isNodePattern } from "@jimp/utils";
-import { mulTable, shgTable } from "./blur-tables";
-
-/*
- Superfast Blur (0.5)
- http://www.quasimondo.com/BoxBlurForCanvas/FastBlur.js
-
- Copyright (c) 2011 Mario Klingemann
-
- Permission is hereby granted, free of charge, to any person
- obtaining a copy of this software and associated documentation
- files (the "Software"), to deal in the Software without
- restriction, including without limitation the rights to use,
- copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the
- Software is furnished to do so, subject to the following
- conditions:
-
- The above copyright notice and this permission notice shall be
- included in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-export default () => ({
- /**
- * A fast blur algorithm that produces similar effect to a Gaussian blur - but MUCH quicker
- * @param {number} r the pixel radius of the blur
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
- blur(r, cb) {
- if (typeof r !== "number")
- return throwError.call(this, "r must be a number", cb);
- if (r < 1) return throwError.call(this, "r must be greater than 0", cb);
-
- let rsum;
- let gsum;
- let bsum;
- let asum;
- let x;
- let y;
- let i;
- let p;
- let p1;
- let p2;
- let yp;
- let yi;
- let yw;
- let pa;
-
- const wm = this.bitmap.width - 1;
- const hm = this.bitmap.height - 1;
- // const wh = this.bitmap.width * this.bitmap.height;
- const rad1 = r + 1;
-
- const mulSum = mulTable[r];
- const shgSum = shgTable[r];
-
- const red = [];
- const green = [];
- const blue = [];
- const alpha = [];
-
- const vmin = [];
- const vmax = [];
-
- let iterations = 2;
-
- while (iterations-- > 0) {
- yi = 0;
- yw = 0;
-
- for (y = 0; y < this.bitmap.height; y++) {
- rsum = this.bitmap.data[yw] * rad1;
- gsum = this.bitmap.data[yw + 1] * rad1;
- bsum = this.bitmap.data[yw + 2] * rad1;
- asum = this.bitmap.data[yw + 3] * rad1;
-
- for (i = 1; i <= r; i++) {
- p = yw + ((i > wm ? wm : i) << 2);
- rsum += this.bitmap.data[p++];
- gsum += this.bitmap.data[p++];
- bsum += this.bitmap.data[p++];
- asum += this.bitmap.data[p];
- }
-
- for (x = 0; x < this.bitmap.width; x++) {
- red[yi] = rsum;
- green[yi] = gsum;
- blue[yi] = bsum;
- alpha[yi] = asum;
-
- if (y === 0) {
- vmin[x] = ((p = x + rad1) < wm ? p : wm) << 2;
- vmax[x] = (p = x - r) > 0 ? p << 2 : 0;
- }
-
- p1 = yw + vmin[x];
- p2 = yw + vmax[x];
-
- rsum += this.bitmap.data[p1++] - this.bitmap.data[p2++];
- gsum += this.bitmap.data[p1++] - this.bitmap.data[p2++];
- bsum += this.bitmap.data[p1++] - this.bitmap.data[p2++];
- asum += this.bitmap.data[p1] - this.bitmap.data[p2];
-
- yi++;
- }
-
- yw += this.bitmap.width << 2;
- }
-
- for (x = 0; x < this.bitmap.width; x++) {
- yp = x;
- rsum = red[yp] * rad1;
- gsum = green[yp] * rad1;
- bsum = blue[yp] * rad1;
- asum = alpha[yp] * rad1;
-
- for (i = 1; i <= r; i++) {
- yp += i > hm ? 0 : this.bitmap.width;
- rsum += red[yp];
- gsum += green[yp];
- bsum += blue[yp];
- asum += alpha[yp];
- }
-
- yi = x << 2;
-
- for (y = 0; y < this.bitmap.height; y++) {
- pa = (asum * mulSum) >>> shgSum;
- this.bitmap.data[yi + 3] = pa;
-
- // normalize alpha
- if (pa > 255) {
- this.bitmap.data[yi + 3] = 255;
- }
-
- if (pa > 0) {
- pa = 255 / pa;
- this.bitmap.data[yi] = ((rsum * mulSum) >>> shgSum) * pa;
- this.bitmap.data[yi + 1] = ((gsum * mulSum) >>> shgSum) * pa;
- this.bitmap.data[yi + 2] = ((bsum * mulSum) >>> shgSum) * pa;
- } else {
- this.bitmap.data[yi + 2] = 0;
- this.bitmap.data[yi + 1] = 0;
- this.bitmap.data[yi] = 0;
- }
-
- if (x === 0) {
- vmin[y] = ((p = y + rad1) < hm ? p : hm) * this.bitmap.width;
- vmax[y] = (p = y - r) > 0 ? p * this.bitmap.width : 0;
- }
-
- p1 = x + vmin[y];
- p2 = x + vmax[y];
-
- rsum += red[p1] - red[p2];
- gsum += green[p1] - green[p2];
- bsum += blue[p1] - blue[p2];
- asum += alpha[p1] - alpha[p2];
-
- yi += this.bitmap.width << 2;
- }
- }
- }
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-circle/CHANGELOG.md b/WechatBot/node_modules/@jimp/plugin-circle/CHANGELOG.md
deleted file mode 100644
index 4eb3193f9..000000000
--- a/WechatBot/node_modules/@jimp/plugin-circle/CHANGELOG.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# v0.16.3 (Sat Feb 04 2023)
-
-#### ⚠️ Pushed to `master`
-
-- upgrade prettier ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 1
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
----
-
-# v0.11.0 (Fri May 15 2020)
-
-#### 🚀 Enhancement
-
-- Removed Core-JS as a dependency. [#882](https://github.com/oliver-moran/jimp/pull/882) ([@EricRabil](https://github.com/EricRabil))
-
-#### Authors: 1
-
-- Eric Rabil ([@EricRabil](https://github.com/EricRabil))
-
----
-
-# v0.9.3 (Tue Nov 26 2019)
-
-#### 🐛 Bug Fix
-
-- `@jimp/cli`, `@jimp/core`, `@jimp/custom`, `jimp`, `@jimp/plugin-blit`, `@jimp/plugin-blur`, `@jimp/plugin-circle`, `@jimp/plugin-color`, `@jimp/plugin-contain`, `@jimp/plugin-cover`, `@jimp/plugin-crop`, `@jimp/plugin-displace`, `@jimp/plugin-dither`, `@jimp/plugin-fisheye`, `@jimp/plugin-flip`, `@jimp/plugin-gaussian`, `@jimp/plugin-invert`, `@jimp/plugin-mask`, `@jimp/plugin-normalize`, `@jimp/plugin-print`, `@jimp/plugin-resize`, `@jimp/plugin-rotate`, `@jimp/plugin-scale`, `@jimp/plugin-shadow`, `@jimp/plugin-threshold`, `@jimp/plugins`, `@jimp/test-utils`, `@jimp/bmp`, `@jimp/gif`, `@jimp/jpeg`, `@jimp/png`, `@jimp/tiff`, `@jimp/types`, `@jimp/utils`
- - Fix regeneratorRuntime errors [#815](https://github.com/oliver-moran/jimp/pull/815) ([@crutchcorn](https://github.com/crutchcorn) [@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 2
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
diff --git a/WechatBot/node_modules/@jimp/plugin-circle/LICENSE b/WechatBot/node_modules/@jimp/plugin-circle/LICENSE
deleted file mode 100644
index baa5d4850..000000000
--- a/WechatBot/node_modules/@jimp/plugin-circle/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Oliver Moran
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/WechatBot/node_modules/@jimp/plugin-circle/README.md b/WechatBot/node_modules/@jimp/plugin-circle/README.md
deleted file mode 100644
index 689b3ab84..000000000
--- a/WechatBot/node_modules/@jimp/plugin-circle/README.md
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
@jimp/plugin-circle
-
Creates a circle out of an image.
-
-
-## Usage
-
-- @param {function(Error, Jimp)} options (optional) radius, x, y
-- @param {function(Error, Jimp)} cb (optional) a callback for when complete
-
-```js
-import jimp from "jimp";
-
-async function main() {
- const image = await jimp.read("test/image.png");
-
- image.circle();
- // or
- image.circle({ radius: 50, x: 25, y: 25 });
-}
-
-main();
-```
diff --git a/WechatBot/node_modules/@jimp/plugin-circle/dist/index.js b/WechatBot/node_modules/@jimp/plugin-circle/dist/index.js
deleted file mode 100755
index bb423d5f6..000000000
--- a/WechatBot/node_modules/@jimp/plugin-circle/dist/index.js
+++ /dev/null
@@ -1,53 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports["default"] = void 0;
-
-var _utils = require("@jimp/utils");
-
-/**
- * Creates a circle out of an image.
- * @param {function(Error, Jimp)} options (optional) radius, x, y
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
-var _default = function _default() {
- return {
- circle: function circle() {
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
- var cb = arguments.length > 1 ? arguments[1] : undefined;
-
- if (typeof options === "function") {
- cb = options;
- options = {};
- }
-
- var radius = options.radius || (this.bitmap.width > this.bitmap.height ? this.bitmap.height : this.bitmap.width) / 2;
- var center = {
- x: typeof options.x === "number" ? options.x : this.bitmap.width / 2,
- y: typeof options.y === "number" ? options.y : this.bitmap.height / 2
- };
- this.scanQuiet(0, 0, this.bitmap.width, this.bitmap.height, function (x, y, idx) {
- var curR = Math.sqrt(Math.pow(x - center.x, 2) + Math.pow(y - center.y, 2));
-
- if (radius - curR <= 0.0) {
- this.bitmap.data[idx + 3] = 0;
- } else if (radius - curR < 1.0) {
- this.bitmap.data[idx + 3] = 255 * (radius - curR);
- }
- });
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- }
- };
-};
-
-exports["default"] = _default;
-module.exports = exports.default;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-circle/dist/index.js.map b/WechatBot/node_modules/@jimp/plugin-circle/dist/index.js.map
deleted file mode 100644
index dc73d883a..000000000
--- a/WechatBot/node_modules/@jimp/plugin-circle/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/index.js"],"names":["circle","options","cb","radius","bitmap","width","height","center","x","y","scanQuiet","idx","curR","Math","sqrt","pow","data","call"],"mappings":";;;;;;;AAAA;;AAEA;;;;;;eAMe;AAAA,SAAO;AACpBA,IAAAA,MADoB,oBACK;AAAA,UAAlBC,OAAkB,uEAAR,EAAQ;AAAA,UAAJC,EAAI;;AACvB,UAAI,OAAOD,OAAP,KAAmB,UAAvB,EAAmC;AACjCC,QAAAA,EAAE,GAAGD,OAAL;AACAA,QAAAA,OAAO,GAAG,EAAV;AACD;;AAED,UAAME,MAAM,GACVF,OAAO,CAACE,MAAR,IACA,CAAC,KAAKC,MAAL,CAAYC,KAAZ,GAAoB,KAAKD,MAAL,CAAYE,MAAhC,GACG,KAAKF,MAAL,CAAYE,MADf,GAEG,KAAKF,MAAL,CAAYC,KAFhB,IAEyB,CAJ3B;AAMA,UAAME,MAAM,GAAG;AACbC,QAAAA,CAAC,EAAE,OAAOP,OAAO,CAACO,CAAf,KAAqB,QAArB,GAAgCP,OAAO,CAACO,CAAxC,GAA4C,KAAKJ,MAAL,CAAYC,KAAZ,GAAoB,CADtD;AAEbI,QAAAA,CAAC,EAAE,OAAOR,OAAO,CAACQ,CAAf,KAAqB,QAArB,GAAgCR,OAAO,CAACQ,CAAxC,GAA4C,KAAKL,MAAL,CAAYE,MAAZ,GAAqB;AAFvD,OAAf;AAKA,WAAKI,SAAL,CACE,CADF,EAEE,CAFF,EAGE,KAAKN,MAAL,CAAYC,KAHd,EAIE,KAAKD,MAAL,CAAYE,MAJd,EAKE,UAAUE,CAAV,EAAaC,CAAb,EAAgBE,GAAhB,EAAqB;AACnB,YAAMC,IAAI,GAAGC,IAAI,CAACC,IAAL,CACXD,IAAI,CAACE,GAAL,CAASP,CAAC,GAAGD,MAAM,CAACC,CAApB,EAAuB,CAAvB,IAA4BK,IAAI,CAACE,GAAL,CAASN,CAAC,GAAGF,MAAM,CAACE,CAApB,EAAuB,CAAvB,CADjB,CAAb;;AAIA,YAAIN,MAAM,GAAGS,IAAT,IAAiB,GAArB,EAA0B;AACxB,eAAKR,MAAL,CAAYY,IAAZ,CAAiBL,GAAG,GAAG,CAAvB,IAA4B,CAA5B;AACD,SAFD,MAEO,IAAIR,MAAM,GAAGS,IAAT,GAAgB,GAApB,EAAyB;AAC9B,eAAKR,MAAL,CAAYY,IAAZ,CAAiBL,GAAG,GAAG,CAAvB,IAA4B,OAAOR,MAAM,GAAGS,IAAhB,CAA5B;AACD;AACF,OAfH;;AAkBA,UAAI,0BAAcV,EAAd,CAAJ,EAAuB;AACrBA,QAAAA,EAAE,CAACe,IAAH,CAAQ,IAAR,EAAc,IAAd,EAAoB,IAApB;AACD;;AAED,aAAO,IAAP;AACD;AAzCmB,GAAP;AAAA,C","sourcesContent":["import { isNodePattern } from \"@jimp/utils\";\n\n/**\n * Creates a circle out of an image.\n * @param {function(Error, Jimp)} options (optional) radius, x, y\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp} this for chaining of methods\n */\nexport default () => ({\n circle(options = {}, cb) {\n if (typeof options === \"function\") {\n cb = options;\n options = {};\n }\n\n const radius =\n options.radius ||\n (this.bitmap.width > this.bitmap.height\n ? this.bitmap.height\n : this.bitmap.width) / 2;\n\n const center = {\n x: typeof options.x === \"number\" ? options.x : this.bitmap.width / 2,\n y: typeof options.y === \"number\" ? options.y : this.bitmap.height / 2,\n };\n\n this.scanQuiet(\n 0,\n 0,\n this.bitmap.width,\n this.bitmap.height,\n function (x, y, idx) {\n const curR = Math.sqrt(\n Math.pow(x - center.x, 2) + Math.pow(y - center.y, 2)\n );\n\n if (radius - curR <= 0.0) {\n this.bitmap.data[idx + 3] = 0;\n } else if (radius - curR < 1.0) {\n this.bitmap.data[idx + 3] = 255 * (radius - curR);\n }\n }\n );\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n },\n});\n"],"file":"index.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-circle/index.d.ts b/WechatBot/node_modules/@jimp/plugin-circle/index.d.ts
deleted file mode 100644
index 302dda00c..000000000
--- a/WechatBot/node_modules/@jimp/plugin-circle/index.d.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { ImageCallback } from "@jimp/core";
-
-interface Circle {
- circle(
- options?: {
- radius: number;
- x: number;
- y: number;
- },
- cb?: ImageCallback
- ): this;
- circle(cb?: ImageCallback): this;
-}
-
-export default function (): Circle;
diff --git a/WechatBot/node_modules/@jimp/plugin-circle/package.json b/WechatBot/node_modules/@jimp/plugin-circle/package.json
deleted file mode 100644
index f58b5faec..000000000
--- a/WechatBot/node_modules/@jimp/plugin-circle/package.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "name": "@jimp/plugin-circle",
- "version": "0.16.13",
- "description": "Creates a circle out of an image.",
- "main": "dist/index.js",
- "module": "es/index.js",
- "types": "index.d.ts",
- "scripts": {
- "test": "cross-env BABEL_ENV=test mocha --require @babel/register",
- "test:watch": "npm run test -- --reporter min --watch",
- "test:coverage": "nyc npm run test",
- "build": "npm run build:node:production && npm run build:module",
- "build:watch": "npm run build:node:debug -- -- --watch --verbose",
- "build:debug": "npm run build:node:debug",
- "build:module": "cross-env BABEL_ENV=module babel src -d es --source-maps --config-file ../../babel.config.js",
- "build:node": "babel src -d dist --source-maps --config-file ../../babel.config.js",
- "build:node:debug": "cross-env BABEL_ENV=development npm run build:node",
- "build:node:production": "cross-env BABEL_ENV=production npm run build:node"
- },
- "author": "",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- },
- "devDependencies": {
- "@jimp/custom": "^0.16.13",
- "@jimp/test-utils": "^0.16.13"
- },
- "publishConfig": {
- "access": "public"
- },
- "gitHead": "9eec86086634329a072901dca3a800b850548572"
-}
diff --git a/WechatBot/node_modules/@jimp/plugin-circle/src/index.js b/WechatBot/node_modules/@jimp/plugin-circle/src/index.js
deleted file mode 100755
index 5d1a5c9c4..000000000
--- a/WechatBot/node_modules/@jimp/plugin-circle/src/index.js
+++ /dev/null
@@ -1,51 +0,0 @@
-import { isNodePattern } from "@jimp/utils";
-
-/**
- * Creates a circle out of an image.
- * @param {function(Error, Jimp)} options (optional) radius, x, y
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
-export default () => ({
- circle(options = {}, cb) {
- if (typeof options === "function") {
- cb = options;
- options = {};
- }
-
- const radius =
- options.radius ||
- (this.bitmap.width > this.bitmap.height
- ? this.bitmap.height
- : this.bitmap.width) / 2;
-
- const center = {
- x: typeof options.x === "number" ? options.x : this.bitmap.width / 2,
- y: typeof options.y === "number" ? options.y : this.bitmap.height / 2,
- };
-
- this.scanQuiet(
- 0,
- 0,
- this.bitmap.width,
- this.bitmap.height,
- function (x, y, idx) {
- const curR = Math.sqrt(
- Math.pow(x - center.x, 2) + Math.pow(y - center.y, 2)
- );
-
- if (radius - curR <= 0.0) {
- this.bitmap.data[idx + 3] = 0;
- } else if (radius - curR < 1.0) {
- this.bitmap.data[idx + 3] = 255 * (radius - curR);
- }
- }
- );
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-circle/test/circle.test.js b/WechatBot/node_modules/@jimp/plugin-circle/test/circle.test.js
deleted file mode 100755
index 19fc95d04..000000000
--- a/WechatBot/node_modules/@jimp/plugin-circle/test/circle.test.js
+++ /dev/null
@@ -1,78 +0,0 @@
-import { Jimp, mkJGD, getTestDir } from "@jimp/test-utils";
-import configure from "@jimp/custom";
-
-import circle from "../src";
-
-const jimp = configure({ plugins: [circle] }, Jimp);
-
-describe("Circle", () => {
- it("makes a circle based on image height and width", async () => {
- const expectedImg = await Jimp.read(
- getTestDir(__dirname) + "/images/circled.png"
- );
- const imgSrc = await jimp.read(
- mkJGD(
- "▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦",
- "▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦",
- "▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦",
- "▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦",
- "▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦",
- "▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦",
- "▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦",
- "▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦",
- "▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦",
- "▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦"
- )
- );
-
- imgSrc.circle().bitmap.data.should.be.deepEqual(expectedImg.bitmap.data);
- });
-
- it("makes a circle using provided radius", async () => {
- const expectedImg = await Jimp.read(
- getTestDir(__dirname) + "/images/radius-3-circle.png"
- );
- const imgSrc = await jimp.read(
- mkJGD(
- "▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦",
- "▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦",
- "▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦",
- "▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦",
- "▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦",
- "▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦",
- "▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦",
- "▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦",
- "▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦",
- "▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦"
- )
- );
-
- imgSrc
- .circle({ radius: 3 })
- .bitmap.data.should.be.deepEqual(expectedImg.bitmap.data);
- });
-
- it("should ", async () => {
- const expectedImg = await Jimp.read(
- getTestDir(__dirname) + "/images/x-y-circle.png"
- );
- const imgSrc = await jimp.read(
- mkJGD(
- "▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦",
- "▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦",
- "▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦",
- "▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦",
- "▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦",
- "▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦",
- "▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦",
- "▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦",
- "▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦",
- "▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦▦"
- )
- );
-
- imgSrc
- .circle({ radius: 5, x: 5, y: 5 })
- .bitmap.data.should.be.deepEqual(expectedImg.bitmap.data);
- });
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-circle/test/images/circled.png b/WechatBot/node_modules/@jimp/plugin-circle/test/images/circled.png
deleted file mode 100644
index 8128de03c..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-circle/test/images/circled.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-circle/test/images/radius-3-circle.png b/WechatBot/node_modules/@jimp/plugin-circle/test/images/radius-3-circle.png
deleted file mode 100644
index 79d998d04..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-circle/test/images/radius-3-circle.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-circle/test/images/x-y-circle.png b/WechatBot/node_modules/@jimp/plugin-circle/test/images/x-y-circle.png
deleted file mode 100644
index e102b6347..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-circle/test/images/x-y-circle.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-color/CHANGELOG.md b/WechatBot/node_modules/@jimp/plugin-color/CHANGELOG.md
deleted file mode 100644
index e0fea7c17..000000000
--- a/WechatBot/node_modules/@jimp/plugin-color/CHANGELOG.md
+++ /dev/null
@@ -1,41 +0,0 @@
-# v0.16.3 (Sat Feb 04 2023)
-
-#### 🐛 Bug Fix
-
-- Fix edgeHandling types [#1080](https://github.com/jimp-dev/jimp/pull/1080) ([@domdomegg](https://github.com/domdomegg))
-
-#### ⚠️ Pushed to `master`
-
-- update linting ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- upgrade prettier ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 2
-
-- Adam Jones ([@domdomegg](https://github.com/domdomegg))
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
----
-
-# v0.11.0 (Fri May 15 2020)
-
-#### 🚀 Enhancement
-
-- Removed Core-JS as a dependency. [#882](https://github.com/oliver-moran/jimp/pull/882) ([@EricRabil](https://github.com/EricRabil))
-
-#### Authors: 1
-
-- Eric Rabil ([@EricRabil](https://github.com/EricRabil))
-
----
-
-# v0.9.3 (Tue Nov 26 2019)
-
-#### 🐛 Bug Fix
-
-- `@jimp/cli`, `@jimp/core`, `@jimp/custom`, `jimp`, `@jimp/plugin-blit`, `@jimp/plugin-blur`, `@jimp/plugin-circle`, `@jimp/plugin-color`, `@jimp/plugin-contain`, `@jimp/plugin-cover`, `@jimp/plugin-crop`, `@jimp/plugin-displace`, `@jimp/plugin-dither`, `@jimp/plugin-fisheye`, `@jimp/plugin-flip`, `@jimp/plugin-gaussian`, `@jimp/plugin-invert`, `@jimp/plugin-mask`, `@jimp/plugin-normalize`, `@jimp/plugin-print`, `@jimp/plugin-resize`, `@jimp/plugin-rotate`, `@jimp/plugin-scale`, `@jimp/plugin-shadow`, `@jimp/plugin-threshold`, `@jimp/plugins`, `@jimp/test-utils`, `@jimp/bmp`, `@jimp/gif`, `@jimp/jpeg`, `@jimp/png`, `@jimp/tiff`, `@jimp/types`, `@jimp/utils`
- - Fix regeneratorRuntime errors [#815](https://github.com/oliver-moran/jimp/pull/815) ([@crutchcorn](https://github.com/crutchcorn) [@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 2
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
diff --git a/WechatBot/node_modules/@jimp/plugin-color/LICENSE b/WechatBot/node_modules/@jimp/plugin-color/LICENSE
deleted file mode 100644
index baa5d4850..000000000
--- a/WechatBot/node_modules/@jimp/plugin-color/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Oliver Moran
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/WechatBot/node_modules/@jimp/plugin-color/README.md b/WechatBot/node_modules/@jimp/plugin-color/README.md
deleted file mode 100644
index 1b4c800fc..000000000
--- a/WechatBot/node_modules/@jimp/plugin-color/README.md
+++ /dev/null
@@ -1,262 +0,0 @@
-
-
-
@jimp/plugin-color
-
Jimp color methods.
-
-
-Bitmap manipulation to adjust the color in an image.
-
-## color
-
-Apply multiple color modification rules
-
-- @param {array} actions list of color modification rules, in following format: { apply: '', params: [ ] }
-- @param {function(Error, Jimp)} cb (optional) a callback for when complete
-
-```js
-import jimp from "jimp";
-
-async function main() {
- const image = await jimp.read("test/image.png");
-
- image.color([{ apply: "red", params: [100] }]);
-}
-
-main();
-```
-
-Jimp supports advanced colour manipulation using a single method as follows:
-
-```js
-image.color([
- { apply: "hue", params: [-90] },
- { apply: "lighten", params: [50] },
- { apply: "xor", params: ["#06D"] },
-]);
-```
-
-The method supports the following modifiers:
-
-| Modifier | Description |
-| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| **lighten** {amount} | Lighten the color a given amount, from 0 to 100. Providing 100 will always return white (works through [TinyColor](https://github.com/bgrins/TinyColor)) |
-| **brighten** {amount} | Brighten the color a given amount, from 0 to 100 (works through [TinyColor](https://github.com/bgrins/TinyColor)) |
-| **darken** {amount} | Darken the color a given amount, from 0 to 100. Providing 100 will always return black (works through [TinyColor](https://github.com/bgrins/TinyColor)) |
-| **desaturate** {amount} | Desaturate the color a given amount, from 0 to 100. Providing 100 will is the same as calling greyscale (works through [TinyColor](https://github.com/bgrins/TinyColor)) |
-| **saturate** {amount} | Saturate the color a given amount, from 0 to 100 (works through [TinyColor](https://github.com/bgrins/TinyColor)) |
-| **greyscale** {amount} | Completely desaturates a color into greyscale (works through [TinyColor](https://github.com/bgrins/TinyColor)) |
-| **spin** {degree} | Spin the hue a given amount, from -360 to 360. Calling with 0, 360, or -360 will do nothing - since it sets the hue back to what it was before. (works through [TinyColor](https://github.com/bgrins/TinyColor)) |
-| **hue** {degree} | Alias for **spin** |
-| **mix** {color, amount} | Mixes colors by their RGB component values. Amount is opacity of overlaying color |
-| **tint** {amount} | Same as applying **mix** with white color |
-| **shade** {amount} | Same as applying **mix** with black color |
-| **xor** {color} | Treats the two colors as bitfields and applies an XOR operation to the red, green, and blue components |
-| **red** {amount} | Modify Red component by a given amount |
-| **green** {amount} | Modify Green component by a given amount |
-| **blue** {amount} | Modify Blue component by a given amount |
-
-## brightness
-
-Adjusts the brightness of the image
-
-- @param {number} val the amount to adjust the brightness, a number between -1 and +1
-- @param {function(Error, Jimp)} cb (optional) a callback for when complete
-
-```js
-import jimp from "jimp";
-
-async function main() {
- const image = await jimp.read("test/image.png");
-
- image.brightness(20);
-}
-
-main();
-```
-
-## contrast
-
-Adjusts the contrast of the image
-
-- @param {number} val the amount to adjust the contrast, a number between -1 and +1
-- @param {function(Error, Jimp)} cb (optional) a callback for when complete
-
-```js
-import jimp from "jimp";
-
-async function main() {
- const image = await jimp.read("test/image.png");
-
- image.contrast(70);
-}
-
-main();
-```
-
-## posterize
-
-Apply a posterize effect
-
-- @param {number} n the amount to adjust the contrast, minimum threshold is two
-- @param {function(Error, Jimp)} cb (optional) a callback for when complete
-
-```js
-import jimp from "jimp";
-
-async function main() {
- const image = await jimp.read("test/image.png");
-
- image.posterize(5);
-}
-
-main();
-```
-
-## opacity
-
-Multiplies the opacity of each pixel by a factor between 0 and 1
-
-- @param {number} f A number, the factor by which to multiply the opacity of each pixel
-- @param {function(Error, Jimp)} cb (optional) a callback for when complete
-
-```js
-import jimp from "jimp";
-
-async function main() {
- const image = await jimp.read("test/image.png");
-
- image.opacity(80);
-}
-
-main();
-```
-
-## sepia
-
-Applies a sepia tone to the image
-
-- @param {function(Error, Jimp)} cb (optional) a callback for when complete
-
-```js
-import jimp from "jimp";
-
-async function main() {
- const image = await jimp.read("test/image.png");
-
- image.sepia();
-}
-
-main();
-```
-
-## fade
-
-Fades each pixel by a factor between 0 and 1
-
-- @param {number} f A number from 0 to 1. 0 will haven no effect. 1 will turn the image completely transparent.
-- @param {function(Error, Jimp)} cb (optional) a callback for when complete
-
-```js
-import jimp from "jimp";
-
-async function main() {
- const image = await jimp.read("test/image.png");
-
- image.fade(0.7);
-}
-
-main();
-```
-
-## convolution
-
-Sum neighbor pixels weighted by the kernel matrix. You can find a nice explanation with examples at [GIMP's Convolution Matrix plugin](https://docs.gimp.org/2.6/en/plug-in-convmatrix.html)
-
-- @param {array} kernel a matrix to weight the neighbors sum
-- @param {number} edgeHandling (optional) define how to sum pixels from outside the border
-- @param {function(Error, Jimp)} cb (optional) a callback for when complete
-
-```js
-import jimp from "jimp";
-
-async function main() {
- const image = await jimp.read("test/image.png");
-
- image.convolution(
- [
- [-1, -1, -1],
- [-1, 8, -1],
- [-1, -1, -1],
- ],
- jimp.EDGE_EXTEND
- );
-}
-
-main();
-```
-
-## opaque
-
-Set the alpha channel on every pixel to fully opaque
-
-- @param {function(Error, Jimp)} cb (optional) a callback for when complete
-
-```js
-import jimp from "jimp";
-
-async function main() {
- const image = await jimp.read("test/image.png");
-
- image.opaque();
-}
-
-main();
-```
-
-## pixelate
-
-Pixelates the image or a region
-
-- @param {number} size the size of the pixels
-- @param {number} x (optional) the x position of the region to pixelate
-- @param {number} y (optional) the y position of the region to pixelate
-- @param {number} w (optional) the width of the region to pixelate
-- @param {number} h (optional) the height of the region to pixelate
-- @param {function(Error, Jimp)} cb (optional) a callback for when complete
-
-```js
-import jimp from "jimp";
-
-async function main() {
- const image = await jimp.read("test/image.png");
-
- image.pixelate(10);
-}
-
-main();
-```
-
-## convolute
-
-Applies a convolution kernel to the image or a region
-
-- @param {array} kernel the convolution kernel
-- @param {number} x (optional) the x position of the region to apply convolution to
-- @param {number} y (optional) the y position of the region to apply convolution to
-- @param {number} w (optional) the width of the region to apply convolution to
-- @param {number} h (optional) the height of the region to apply convolution to
-- @param {function(Error, Jimp)} cb (optional) a callback for when complete
-
-```js
-import jimp from "jimp";
-
-async function main() {
- const image = await jimp.read("test/image.png");
-
- // make me better
- image.pixelate(kernal);
-}
-
-main();
-```
diff --git a/WechatBot/node_modules/@jimp/plugin-color/dist/index.js b/WechatBot/node_modules/@jimp/plugin-color/dist/index.js
deleted file mode 100755
index e733f3ad1..000000000
--- a/WechatBot/node_modules/@jimp/plugin-color/dist/index.js
+++ /dev/null
@@ -1,567 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports["default"] = void 0;
-
-var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
-
-var _tinycolor = _interopRequireDefault(require("tinycolor2"));
-
-var _utils = require("@jimp/utils");
-
-function applyKernel(im, kernel, x, y) {
- var value = [0, 0, 0];
- var size = (kernel.length - 1) / 2;
-
- for (var kx = 0; kx < kernel.length; kx += 1) {
- for (var ky = 0; ky < kernel[kx].length; ky += 1) {
- var idx = im.getPixelIndex(x + kx - size, y + ky - size);
- value[0] += im.bitmap.data[idx] * kernel[kx][ky];
- value[1] += im.bitmap.data[idx + 1] * kernel[kx][ky];
- value[2] += im.bitmap.data[idx + 2] * kernel[kx][ky];
- }
- }
-
- return value;
-}
-
-var isDef = function isDef(v) {
- return typeof v !== "undefined" && v !== null;
-};
-
-function greyscale(cb) {
- this.scanQuiet(0, 0, this.bitmap.width, this.bitmap.height, function (x, y, idx) {
- var grey = parseInt(0.2126 * this.bitmap.data[idx] + 0.7152 * this.bitmap.data[idx + 1] + 0.0722 * this.bitmap.data[idx + 2], 10);
- this.bitmap.data[idx] = grey;
- this.bitmap.data[idx + 1] = grey;
- this.bitmap.data[idx + 2] = grey;
- });
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
-}
-
-function mix(clr, clr2) {
- var p = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 50;
- return {
- r: (clr2.r - clr.r) * (p / 100) + clr.r,
- g: (clr2.g - clr.g) * (p / 100) + clr.g,
- b: (clr2.b - clr.b) * (p / 100) + clr.b
- };
-}
-
-function colorFn(actions, cb) {
- var _this = this;
-
- if (!actions || !Array.isArray(actions)) {
- return _utils.throwError.call(this, "actions must be an array", cb);
- }
-
- actions = actions.map(function (action) {
- if (action.apply === "xor" || action.apply === "mix") {
- action.params[0] = (0, _tinycolor["default"])(action.params[0]).toRgb();
- }
-
- return action;
- });
- this.scanQuiet(0, 0, this.bitmap.width, this.bitmap.height, function (x, y, idx) {
- var clr = {
- r: _this.bitmap.data[idx],
- g: _this.bitmap.data[idx + 1],
- b: _this.bitmap.data[idx + 2]
- };
-
- var colorModifier = function colorModifier(i, amount) {
- return _this.constructor.limit255(clr[i] + amount);
- };
-
- actions.forEach(function (action) {
- if (action.apply === "mix") {
- clr = mix(clr, action.params[0], action.params[1]);
- } else if (action.apply === "tint") {
- clr = mix(clr, {
- r: 255,
- g: 255,
- b: 255
- }, action.params[0]);
- } else if (action.apply === "shade") {
- clr = mix(clr, {
- r: 0,
- g: 0,
- b: 0
- }, action.params[0]);
- } else if (action.apply === "xor") {
- clr = {
- r: clr.r ^ action.params[0].r,
- g: clr.g ^ action.params[0].g,
- b: clr.b ^ action.params[0].b
- };
- } else if (action.apply === "red") {
- clr.r = colorModifier("r", action.params[0]);
- } else if (action.apply === "green") {
- clr.g = colorModifier("g", action.params[0]);
- } else if (action.apply === "blue") {
- clr.b = colorModifier("b", action.params[0]);
- } else {
- var _clr;
-
- if (action.apply === "hue") {
- action.apply = "spin";
- }
-
- clr = (0, _tinycolor["default"])(clr);
-
- if (!clr[action.apply]) {
- return _utils.throwError.call(_this, "action " + action.apply + " not supported", cb);
- }
-
- clr = (_clr = clr)[action.apply].apply(_clr, (0, _toConsumableArray2["default"])(action.params)).toRgb();
- }
- });
- _this.bitmap.data[idx] = clr.r;
- _this.bitmap.data[idx + 1] = clr.g;
- _this.bitmap.data[idx + 2] = clr.b;
- });
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
-}
-
-var _default = function _default() {
- return {
- /**
- * Adjusts the brightness of the image
- * @param {number} val the amount to adjust the brightness, a number between -1 and +1
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp }this for chaining of methods
- */
- brightness: function brightness(val, cb) {
- if (typeof val !== "number") {
- return _utils.throwError.call(this, "val must be numbers", cb);
- }
-
- if (val < -1 || val > +1) {
- return _utils.throwError.call(this, "val must be a number between -1 and +1", cb);
- }
-
- this.scanQuiet(0, 0, this.bitmap.width, this.bitmap.height, function (x, y, idx) {
- if (val < 0.0) {
- this.bitmap.data[idx] *= 1 + val;
- this.bitmap.data[idx + 1] *= 1 + val;
- this.bitmap.data[idx + 2] *= 1 + val;
- } else {
- this.bitmap.data[idx] += (255 - this.bitmap.data[idx]) * val;
- this.bitmap.data[idx + 1] += (255 - this.bitmap.data[idx + 1]) * val;
- this.bitmap.data[idx + 2] += (255 - this.bitmap.data[idx + 2]) * val;
- }
- });
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-
- /**
- * Adjusts the contrast of the image
- * @param {number} val the amount to adjust the contrast, a number between -1 and +1
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp }this for chaining of methods
- */
- contrast: function contrast(val, cb) {
- if (typeof val !== "number") {
- return _utils.throwError.call(this, "val must be numbers", cb);
- }
-
- if (val < -1 || val > +1) {
- return _utils.throwError.call(this, "val must be a number between -1 and +1", cb);
- }
-
- var factor = (val + 1) / (1 - val);
-
- function adjust(value) {
- value = Math.floor(factor * (value - 127) + 127);
- return value < 0 ? 0 : value > 255 ? 255 : value;
- }
-
- this.scanQuiet(0, 0, this.bitmap.width, this.bitmap.height, function (x, y, idx) {
- this.bitmap.data[idx] = adjust(this.bitmap.data[idx]);
- this.bitmap.data[idx + 1] = adjust(this.bitmap.data[idx + 1]);
- this.bitmap.data[idx + 2] = adjust(this.bitmap.data[idx + 2]);
- });
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-
- /**
- * Apply a posterize effect
- * @param {number} n the amount to adjust the contrast, minimum threshold is two
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp }this for chaining of methods
- */
- posterize: function posterize(n, cb) {
- if (typeof n !== "number") {
- return _utils.throwError.call(this, "n must be numbers", cb);
- }
-
- if (n < 2) {
- n = 2;
- } // minimum of 2 levels
-
-
- this.scanQuiet(0, 0, this.bitmap.width, this.bitmap.height, function (x, y, idx) {
- this.bitmap.data[idx] = Math.floor(this.bitmap.data[idx] / 255 * (n - 1)) / (n - 1) * 255;
- this.bitmap.data[idx + 1] = Math.floor(this.bitmap.data[idx + 1] / 255 * (n - 1)) / (n - 1) * 255;
- this.bitmap.data[idx + 2] = Math.floor(this.bitmap.data[idx + 2] / 255 * (n - 1)) / (n - 1) * 255;
- });
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-
- /**
- * Removes colour from the image using ITU Rec 709 luminance values
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp }this for chaining of methods
- */
- greyscale: greyscale,
- // Alias of greyscale for our American friends
- grayscale: greyscale,
-
- /**
- * Multiplies the opacity of each pixel by a factor between 0 and 1
- * @param {number} f A number, the factor by which to multiply the opacity of each pixel
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp }this for chaining of methods
- */
- opacity: function opacity(f, cb) {
- if (typeof f !== "number") return _utils.throwError.call(this, "f must be a number", cb);
- if (f < 0 || f > 1) return _utils.throwError.call(this, "f must be a number from 0 to 1", cb);
- this.scanQuiet(0, 0, this.bitmap.width, this.bitmap.height, function (x, y, idx) {
- var v = this.bitmap.data[idx + 3] * f;
- this.bitmap.data[idx + 3] = v;
- });
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-
- /**
- * Applies a sepia tone to the image
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp }this for chaining of methods
- */
- sepia: function sepia(cb) {
- this.scanQuiet(0, 0, this.bitmap.width, this.bitmap.height, function (x, y, idx) {
- var red = this.bitmap.data[idx];
- var green = this.bitmap.data[idx + 1];
- var blue = this.bitmap.data[idx + 2];
- red = red * 0.393 + green * 0.769 + blue * 0.189;
- green = red * 0.349 + green * 0.686 + blue * 0.168;
- blue = red * 0.272 + green * 0.534 + blue * 0.131;
- this.bitmap.data[idx] = red < 255 ? red : 255;
- this.bitmap.data[idx + 1] = green < 255 ? green : 255;
- this.bitmap.data[idx + 2] = blue < 255 ? blue : 255;
- });
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-
- /**
- * Fades each pixel by a factor between 0 and 1
- * @param {number} f A number from 0 to 1. 0 will haven no effect. 1 will turn the image completely transparent.
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp }this for chaining of methods
- */
- fade: function fade(f, cb) {
- if (typeof f !== "number") {
- return _utils.throwError.call(this, "f must be a number", cb);
- }
-
- if (f < 0 || f > 1) {
- return _utils.throwError.call(this, "f must be a number from 0 to 1", cb);
- } // this method is an alternative to opacity (which may be deprecated)
-
-
- this.opacity(1 - f);
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-
- /**
- * Adds each element of the image to its local neighbors, weighted by the kernel
- * @param {array} kernel a matrix to weight the neighbors sum
- * @param {number} edgeHandling (optional) define how to sum pixels from outside the border
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp }this for chaining of methods
- */
- convolution: function convolution(kernel, edgeHandling, cb) {
- if (typeof edgeHandling === "function" && typeof cb === "undefined") {
- cb = edgeHandling;
- edgeHandling = null;
- }
-
- if (!edgeHandling) {
- edgeHandling = this.constructor.EDGE_EXTEND;
- }
-
- var newData = Buffer.from(this.bitmap.data);
- var kRows = kernel.length;
- var kCols = kernel[0].length;
- var rowEnd = Math.floor(kRows / 2);
- var colEnd = Math.floor(kCols / 2);
- var rowIni = -rowEnd;
- var colIni = -colEnd;
- var weight;
- var rSum;
- var gSum;
- var bSum;
- var ri;
- var gi;
- var bi;
- var xi;
- var yi;
- var idxi;
- this.scanQuiet(0, 0, this.bitmap.width, this.bitmap.height, function (x, y, idx) {
- bSum = 0;
- gSum = 0;
- rSum = 0;
-
- for (var row = rowIni; row <= rowEnd; row++) {
- for (var col = colIni; col <= colEnd; col++) {
- xi = x + col;
- yi = y + row;
- weight = kernel[row + rowEnd][col + colEnd];
- idxi = this.getPixelIndex(xi, yi, edgeHandling);
-
- if (idxi === -1) {
- bi = 0;
- gi = 0;
- ri = 0;
- } else {
- ri = this.bitmap.data[idxi + 0];
- gi = this.bitmap.data[idxi + 1];
- bi = this.bitmap.data[idxi + 2];
- }
-
- rSum += weight * ri;
- gSum += weight * gi;
- bSum += weight * bi;
- }
- }
-
- if (rSum < 0) {
- rSum = 0;
- }
-
- if (gSum < 0) {
- gSum = 0;
- }
-
- if (bSum < 0) {
- bSum = 0;
- }
-
- if (rSum > 255) {
- rSum = 255;
- }
-
- if (gSum > 255) {
- gSum = 255;
- }
-
- if (bSum > 255) {
- bSum = 255;
- }
-
- newData[idx + 0] = rSum;
- newData[idx + 1] = gSum;
- newData[idx + 2] = bSum;
- });
- this.bitmap.data = newData;
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-
- /**
- * Set the alpha channel on every pixel to fully opaque
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp }this for chaining of methods
- */
- opaque: function opaque(cb) {
- this.scanQuiet(0, 0, this.bitmap.width, this.bitmap.height, function (x, y, idx) {
- this.bitmap.data[idx + 3] = 255;
- });
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-
- /**
- * Pixelates the image or a region
- * @param {number} size the size of the pixels
- * @param {number} x (optional) the x position of the region to pixelate
- * @param {number} y (optional) the y position of the region to pixelate
- * @param {number} w (optional) the width of the region to pixelate
- * @param {number} h (optional) the height of the region to pixelate
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp }this for chaining of methods
- */
- pixelate: function pixelate(size, x, y, w, h, cb) {
- if (typeof x === "function") {
- cb = x;
- h = null;
- w = null;
- y = null;
- x = null;
- } else {
- if (typeof size !== "number") {
- return _utils.throwError.call(this, "size must be a number", cb);
- }
-
- if (isDef(x) && typeof x !== "number") {
- return _utils.throwError.call(this, "x must be a number", cb);
- }
-
- if (isDef(y) && typeof y !== "number") {
- return _utils.throwError.call(this, "y must be a number", cb);
- }
-
- if (isDef(w) && typeof w !== "number") {
- return _utils.throwError.call(this, "w must be a number", cb);
- }
-
- if (isDef(h) && typeof h !== "number") {
- return _utils.throwError.call(this, "h must be a number", cb);
- }
- }
-
- var kernel = [[1 / 16, 2 / 16, 1 / 16], [2 / 16, 4 / 16, 2 / 16], [1 / 16, 2 / 16, 1 / 16]];
- x = x || 0;
- y = y || 0;
- w = isDef(w) ? w : this.bitmap.width - x;
- h = isDef(h) ? h : this.bitmap.height - y;
- var source = this.cloneQuiet();
- this.scanQuiet(x, y, w, h, function (xx, yx, idx) {
- xx = size * Math.floor(xx / size);
- yx = size * Math.floor(yx / size);
- var value = applyKernel(source, kernel, xx, yx);
- this.bitmap.data[idx] = value[0];
- this.bitmap.data[idx + 1] = value[1];
- this.bitmap.data[idx + 2] = value[2];
- });
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-
- /**
- * Applies a convolution kernel to the image or a region
- * @param {array} kernel the convolution kernel
- * @param {number} x (optional) the x position of the region to apply convolution to
- * @param {number} y (optional) the y position of the region to apply convolution to
- * @param {number} w (optional) the width of the region to apply convolution to
- * @param {number} h (optional) the height of the region to apply convolution to
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp }this for chaining of methods
- */
- convolute: function convolute(kernel, x, y, w, h, cb) {
- if (!Array.isArray(kernel)) return _utils.throwError.call(this, "the kernel must be an array", cb);
-
- if (typeof x === "function") {
- cb = x;
- x = null;
- y = null;
- w = null;
- h = null;
- } else {
- if (isDef(x) && typeof x !== "number") {
- return _utils.throwError.call(this, "x must be a number", cb);
- }
-
- if (isDef(y) && typeof y !== "number") {
- return _utils.throwError.call(this, "y must be a number", cb);
- }
-
- if (isDef(w) && typeof w !== "number") {
- return _utils.throwError.call(this, "w must be a number", cb);
- }
-
- if (isDef(h) && typeof h !== "number") {
- return _utils.throwError.call(this, "h must be a number", cb);
- }
- }
-
- var ksize = (kernel.length - 1) / 2;
- x = isDef(x) ? x : ksize;
- y = isDef(y) ? y : ksize;
- w = isDef(w) ? w : this.bitmap.width - x;
- h = isDef(h) ? h : this.bitmap.height - y;
- var source = this.cloneQuiet();
- this.scanQuiet(x, y, w, h, function (xx, yx, idx) {
- var value = applyKernel(source, kernel, xx, yx);
- this.bitmap.data[idx] = this.constructor.limit255(value[0]);
- this.bitmap.data[idx + 1] = this.constructor.limit255(value[1]);
- this.bitmap.data[idx + 2] = this.constructor.limit255(value[2]);
- });
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-
- /**
- * Apply multiple color modification rules
- * @param {array} actions list of color modification rules, in following format: { apply: '', params: [ ] }
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp }this for chaining of methods
- */
- color: colorFn,
- colour: colorFn
- };
-};
-
-exports["default"] = _default;
-module.exports = exports.default;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-color/dist/index.js.map b/WechatBot/node_modules/@jimp/plugin-color/dist/index.js.map
deleted file mode 100644
index d477bda8c..000000000
--- a/WechatBot/node_modules/@jimp/plugin-color/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/index.js"],"names":["applyKernel","im","kernel","x","y","value","size","length","kx","ky","idx","getPixelIndex","bitmap","data","isDef","v","greyscale","cb","scanQuiet","width","height","grey","parseInt","call","mix","clr","clr2","p","r","g","b","colorFn","actions","Array","isArray","throwError","map","action","apply","params","toRgb","colorModifier","i","amount","constructor","limit255","forEach","brightness","val","contrast","factor","adjust","Math","floor","posterize","n","grayscale","opacity","f","sepia","red","green","blue","fade","convolution","edgeHandling","EDGE_EXTEND","newData","Buffer","from","kRows","kCols","rowEnd","colEnd","rowIni","colIni","weight","rSum","gSum","bSum","ri","gi","bi","xi","yi","idxi","row","col","opaque","pixelate","w","h","source","cloneQuiet","xx","yx","convolute","ksize","color","colour"],"mappings":"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","sourcesContent":["import tinyColor from \"tinycolor2\";\nimport { throwError, isNodePattern } from \"@jimp/utils\";\n\nfunction applyKernel(im, kernel, x, y) {\n const value = [0, 0, 0];\n const size = (kernel.length - 1) / 2;\n\n for (let kx = 0; kx < kernel.length; kx += 1) {\n for (let ky = 0; ky < kernel[kx].length; ky += 1) {\n const idx = im.getPixelIndex(x + kx - size, y + ky - size);\n\n value[0] += im.bitmap.data[idx] * kernel[kx][ky];\n value[1] += im.bitmap.data[idx + 1] * kernel[kx][ky];\n value[2] += im.bitmap.data[idx + 2] * kernel[kx][ky];\n }\n }\n\n return value;\n}\n\nconst isDef = (v) => typeof v !== \"undefined\" && v !== null;\n\nfunction greyscale(cb) {\n this.scanQuiet(\n 0,\n 0,\n this.bitmap.width,\n this.bitmap.height,\n function (x, y, idx) {\n const grey = parseInt(\n 0.2126 * this.bitmap.data[idx] +\n 0.7152 * this.bitmap.data[idx + 1] +\n 0.0722 * this.bitmap.data[idx + 2],\n 10\n );\n\n this.bitmap.data[idx] = grey;\n this.bitmap.data[idx + 1] = grey;\n this.bitmap.data[idx + 2] = grey;\n }\n );\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n}\n\nfunction mix(clr, clr2, p = 50) {\n return {\n r: (clr2.r - clr.r) * (p / 100) + clr.r,\n g: (clr2.g - clr.g) * (p / 100) + clr.g,\n b: (clr2.b - clr.b) * (p / 100) + clr.b,\n };\n}\n\nfunction colorFn(actions, cb) {\n if (!actions || !Array.isArray(actions)) {\n return throwError.call(this, \"actions must be an array\", cb);\n }\n\n actions = actions.map((action) => {\n if (action.apply === \"xor\" || action.apply === \"mix\") {\n action.params[0] = tinyColor(action.params[0]).toRgb();\n }\n\n return action;\n });\n\n this.scanQuiet(0, 0, this.bitmap.width, this.bitmap.height, (x, y, idx) => {\n let clr = {\n r: this.bitmap.data[idx],\n g: this.bitmap.data[idx + 1],\n b: this.bitmap.data[idx + 2],\n };\n\n const colorModifier = (i, amount) =>\n this.constructor.limit255(clr[i] + amount);\n\n actions.forEach((action) => {\n if (action.apply === \"mix\") {\n clr = mix(clr, action.params[0], action.params[1]);\n } else if (action.apply === \"tint\") {\n clr = mix(clr, { r: 255, g: 255, b: 255 }, action.params[0]);\n } else if (action.apply === \"shade\") {\n clr = mix(clr, { r: 0, g: 0, b: 0 }, action.params[0]);\n } else if (action.apply === \"xor\") {\n clr = {\n r: clr.r ^ action.params[0].r,\n g: clr.g ^ action.params[0].g,\n b: clr.b ^ action.params[0].b,\n };\n } else if (action.apply === \"red\") {\n clr.r = colorModifier(\"r\", action.params[0]);\n } else if (action.apply === \"green\") {\n clr.g = colorModifier(\"g\", action.params[0]);\n } else if (action.apply === \"blue\") {\n clr.b = colorModifier(\"b\", action.params[0]);\n } else {\n if (action.apply === \"hue\") {\n action.apply = \"spin\";\n }\n\n clr = tinyColor(clr);\n\n if (!clr[action.apply]) {\n return throwError.call(\n this,\n \"action \" + action.apply + \" not supported\",\n cb\n );\n }\n\n clr = clr[action.apply](...action.params).toRgb();\n }\n });\n\n this.bitmap.data[idx] = clr.r;\n this.bitmap.data[idx + 1] = clr.g;\n this.bitmap.data[idx + 2] = clr.b;\n });\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n}\n\nexport default () => ({\n /**\n * Adjusts the brightness of the image\n * @param {number} val the amount to adjust the brightness, a number between -1 and +1\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp }this for chaining of methods\n */\n brightness(val, cb) {\n if (typeof val !== \"number\") {\n return throwError.call(this, \"val must be numbers\", cb);\n }\n\n if (val < -1 || val > +1) {\n return throwError.call(\n this,\n \"val must be a number between -1 and +1\",\n cb\n );\n }\n\n this.scanQuiet(\n 0,\n 0,\n this.bitmap.width,\n this.bitmap.height,\n function (x, y, idx) {\n if (val < 0.0) {\n this.bitmap.data[idx] *= 1 + val;\n this.bitmap.data[idx + 1] *= 1 + val;\n this.bitmap.data[idx + 2] *= 1 + val;\n } else {\n this.bitmap.data[idx] += (255 - this.bitmap.data[idx]) * val;\n this.bitmap.data[idx + 1] += (255 - this.bitmap.data[idx + 1]) * val;\n this.bitmap.data[idx + 2] += (255 - this.bitmap.data[idx + 2]) * val;\n }\n }\n );\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n },\n\n /**\n * Adjusts the contrast of the image\n * @param {number} val the amount to adjust the contrast, a number between -1 and +1\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp }this for chaining of methods\n */\n contrast(val, cb) {\n if (typeof val !== \"number\") {\n return throwError.call(this, \"val must be numbers\", cb);\n }\n\n if (val < -1 || val > +1) {\n return throwError.call(\n this,\n \"val must be a number between -1 and +1\",\n cb\n );\n }\n\n const factor = (val + 1) / (1 - val);\n\n function adjust(value) {\n value = Math.floor(factor * (value - 127) + 127);\n\n return value < 0 ? 0 : value > 255 ? 255 : value;\n }\n\n this.scanQuiet(\n 0,\n 0,\n this.bitmap.width,\n this.bitmap.height,\n function (x, y, idx) {\n this.bitmap.data[idx] = adjust(this.bitmap.data[idx]);\n this.bitmap.data[idx + 1] = adjust(this.bitmap.data[idx + 1]);\n this.bitmap.data[idx + 2] = adjust(this.bitmap.data[idx + 2]);\n }\n );\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n },\n\n /**\n * Apply a posterize effect\n * @param {number} n the amount to adjust the contrast, minimum threshold is two\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp }this for chaining of methods\n */\n posterize(n, cb) {\n if (typeof n !== \"number\") {\n return throwError.call(this, \"n must be numbers\", cb);\n }\n\n if (n < 2) {\n n = 2;\n } // minimum of 2 levels\n\n this.scanQuiet(\n 0,\n 0,\n this.bitmap.width,\n this.bitmap.height,\n function (x, y, idx) {\n this.bitmap.data[idx] =\n (Math.floor((this.bitmap.data[idx] / 255) * (n - 1)) / (n - 1)) * 255;\n this.bitmap.data[idx + 1] =\n (Math.floor((this.bitmap.data[idx + 1] / 255) * (n - 1)) / (n - 1)) *\n 255;\n this.bitmap.data[idx + 2] =\n (Math.floor((this.bitmap.data[idx + 2] / 255) * (n - 1)) / (n - 1)) *\n 255;\n }\n );\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n },\n\n /**\n * Removes colour from the image using ITU Rec 709 luminance values\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp }this for chaining of methods\n */\n greyscale,\n\n // Alias of greyscale for our American friends\n grayscale: greyscale,\n\n /**\n * Multiplies the opacity of each pixel by a factor between 0 and 1\n * @param {number} f A number, the factor by which to multiply the opacity of each pixel\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp }this for chaining of methods\n */\n opacity(f, cb) {\n if (typeof f !== \"number\")\n return throwError.call(this, \"f must be a number\", cb);\n if (f < 0 || f > 1)\n return throwError.call(this, \"f must be a number from 0 to 1\", cb);\n\n this.scanQuiet(\n 0,\n 0,\n this.bitmap.width,\n this.bitmap.height,\n function (x, y, idx) {\n const v = this.bitmap.data[idx + 3] * f;\n this.bitmap.data[idx + 3] = v;\n }\n );\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n },\n\n /**\n * Applies a sepia tone to the image\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp }this for chaining of methods\n */\n sepia(cb) {\n this.scanQuiet(\n 0,\n 0,\n this.bitmap.width,\n this.bitmap.height,\n function (x, y, idx) {\n let red = this.bitmap.data[idx];\n let green = this.bitmap.data[idx + 1];\n let blue = this.bitmap.data[idx + 2];\n\n red = red * 0.393 + green * 0.769 + blue * 0.189;\n green = red * 0.349 + green * 0.686 + blue * 0.168;\n blue = red * 0.272 + green * 0.534 + blue * 0.131;\n\n this.bitmap.data[idx] = red < 255 ? red : 255;\n this.bitmap.data[idx + 1] = green < 255 ? green : 255;\n this.bitmap.data[idx + 2] = blue < 255 ? blue : 255;\n }\n );\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n },\n\n /**\n * Fades each pixel by a factor between 0 and 1\n * @param {number} f A number from 0 to 1. 0 will haven no effect. 1 will turn the image completely transparent.\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp }this for chaining of methods\n */\n fade(f, cb) {\n if (typeof f !== \"number\") {\n return throwError.call(this, \"f must be a number\", cb);\n }\n\n if (f < 0 || f > 1) {\n return throwError.call(this, \"f must be a number from 0 to 1\", cb);\n }\n\n // this method is an alternative to opacity (which may be deprecated)\n this.opacity(1 - f);\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n },\n\n /**\n * Adds each element of the image to its local neighbors, weighted by the kernel\n * @param {array} kernel a matrix to weight the neighbors sum\n * @param {number} edgeHandling (optional) define how to sum pixels from outside the border\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp }this for chaining of methods\n */\n convolution(kernel, edgeHandling, cb) {\n if (typeof edgeHandling === \"function\" && typeof cb === \"undefined\") {\n cb = edgeHandling;\n edgeHandling = null;\n }\n\n if (!edgeHandling) {\n edgeHandling = this.constructor.EDGE_EXTEND;\n }\n\n const newData = Buffer.from(this.bitmap.data);\n const kRows = kernel.length;\n const kCols = kernel[0].length;\n const rowEnd = Math.floor(kRows / 2);\n const colEnd = Math.floor(kCols / 2);\n const rowIni = -rowEnd;\n const colIni = -colEnd;\n\n let weight;\n let rSum;\n let gSum;\n let bSum;\n let ri;\n let gi;\n let bi;\n let xi;\n let yi;\n let idxi;\n\n this.scanQuiet(\n 0,\n 0,\n this.bitmap.width,\n this.bitmap.height,\n function (x, y, idx) {\n bSum = 0;\n gSum = 0;\n rSum = 0;\n\n for (let row = rowIni; row <= rowEnd; row++) {\n for (let col = colIni; col <= colEnd; col++) {\n xi = x + col;\n yi = y + row;\n weight = kernel[row + rowEnd][col + colEnd];\n idxi = this.getPixelIndex(xi, yi, edgeHandling);\n\n if (idxi === -1) {\n bi = 0;\n gi = 0;\n ri = 0;\n } else {\n ri = this.bitmap.data[idxi + 0];\n gi = this.bitmap.data[idxi + 1];\n bi = this.bitmap.data[idxi + 2];\n }\n\n rSum += weight * ri;\n gSum += weight * gi;\n bSum += weight * bi;\n }\n }\n\n if (rSum < 0) {\n rSum = 0;\n }\n\n if (gSum < 0) {\n gSum = 0;\n }\n\n if (bSum < 0) {\n bSum = 0;\n }\n\n if (rSum > 255) {\n rSum = 255;\n }\n\n if (gSum > 255) {\n gSum = 255;\n }\n\n if (bSum > 255) {\n bSum = 255;\n }\n\n newData[idx + 0] = rSum;\n newData[idx + 1] = gSum;\n newData[idx + 2] = bSum;\n }\n );\n\n this.bitmap.data = newData;\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n },\n\n /**\n * Set the alpha channel on every pixel to fully opaque\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp }this for chaining of methods\n */\n opaque(cb) {\n this.scanQuiet(\n 0,\n 0,\n this.bitmap.width,\n this.bitmap.height,\n function (x, y, idx) {\n this.bitmap.data[idx + 3] = 255;\n }\n );\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n },\n\n /**\n * Pixelates the image or a region\n * @param {number} size the size of the pixels\n * @param {number} x (optional) the x position of the region to pixelate\n * @param {number} y (optional) the y position of the region to pixelate\n * @param {number} w (optional) the width of the region to pixelate\n * @param {number} h (optional) the height of the region to pixelate\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp }this for chaining of methods\n */\n pixelate(size, x, y, w, h, cb) {\n if (typeof x === \"function\") {\n cb = x;\n h = null;\n w = null;\n y = null;\n x = null;\n } else {\n if (typeof size !== \"number\") {\n return throwError.call(this, \"size must be a number\", cb);\n }\n\n if (isDef(x) && typeof x !== \"number\") {\n return throwError.call(this, \"x must be a number\", cb);\n }\n\n if (isDef(y) && typeof y !== \"number\") {\n return throwError.call(this, \"y must be a number\", cb);\n }\n\n if (isDef(w) && typeof w !== \"number\") {\n return throwError.call(this, \"w must be a number\", cb);\n }\n\n if (isDef(h) && typeof h !== \"number\") {\n return throwError.call(this, \"h must be a number\", cb);\n }\n }\n\n const kernel = [\n [1 / 16, 2 / 16, 1 / 16],\n [2 / 16, 4 / 16, 2 / 16],\n [1 / 16, 2 / 16, 1 / 16],\n ];\n\n x = x || 0;\n y = y || 0;\n w = isDef(w) ? w : this.bitmap.width - x;\n h = isDef(h) ? h : this.bitmap.height - y;\n\n const source = this.cloneQuiet();\n\n this.scanQuiet(x, y, w, h, function (xx, yx, idx) {\n xx = size * Math.floor(xx / size);\n yx = size * Math.floor(yx / size);\n\n const value = applyKernel(source, kernel, xx, yx);\n\n this.bitmap.data[idx] = value[0];\n this.bitmap.data[idx + 1] = value[1];\n this.bitmap.data[idx + 2] = value[2];\n });\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n },\n\n /**\n * Applies a convolution kernel to the image or a region\n * @param {array} kernel the convolution kernel\n * @param {number} x (optional) the x position of the region to apply convolution to\n * @param {number} y (optional) the y position of the region to apply convolution to\n * @param {number} w (optional) the width of the region to apply convolution to\n * @param {number} h (optional) the height of the region to apply convolution to\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp }this for chaining of methods\n */\n convolute(kernel, x, y, w, h, cb) {\n if (!Array.isArray(kernel))\n return throwError.call(this, \"the kernel must be an array\", cb);\n\n if (typeof x === \"function\") {\n cb = x;\n x = null;\n y = null;\n w = null;\n h = null;\n } else {\n if (isDef(x) && typeof x !== \"number\") {\n return throwError.call(this, \"x must be a number\", cb);\n }\n\n if (isDef(y) && typeof y !== \"number\") {\n return throwError.call(this, \"y must be a number\", cb);\n }\n\n if (isDef(w) && typeof w !== \"number\") {\n return throwError.call(this, \"w must be a number\", cb);\n }\n\n if (isDef(h) && typeof h !== \"number\") {\n return throwError.call(this, \"h must be a number\", cb);\n }\n }\n\n const ksize = (kernel.length - 1) / 2;\n\n x = isDef(x) ? x : ksize;\n y = isDef(y) ? y : ksize;\n w = isDef(w) ? w : this.bitmap.width - x;\n h = isDef(h) ? h : this.bitmap.height - y;\n\n const source = this.cloneQuiet();\n\n this.scanQuiet(x, y, w, h, function (xx, yx, idx) {\n const value = applyKernel(source, kernel, xx, yx);\n\n this.bitmap.data[idx] = this.constructor.limit255(value[0]);\n this.bitmap.data[idx + 1] = this.constructor.limit255(value[1]);\n this.bitmap.data[idx + 2] = this.constructor.limit255(value[2]);\n });\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n },\n\n /**\n * Apply multiple color modification rules\n * @param {array} actions list of color modification rules, in following format: { apply: '', params: [ ] }\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp }this for chaining of methods\n */\n color: colorFn,\n colour: colorFn,\n});\n"],"file":"index.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-color/index.d.ts b/WechatBot/node_modules/@jimp/plugin-color/index.d.ts
deleted file mode 100644
index 44a4ce5e8..000000000
--- a/WechatBot/node_modules/@jimp/plugin-color/index.d.ts
+++ /dev/null
@@ -1,56 +0,0 @@
-import { ImageCallback } from "@jimp/core";
-
-type ColorActionName =
- | "mix"
- | "tint"
- | "shade"
- | "xor"
- | "red"
- | "green"
- | "blue"
- | "hue";
-
-type ColorAction = {
- apply: ColorActionName;
- params: any;
-};
-
-interface Color {
- brightness(val: number, cb?: ImageCallback): this;
- contrast(val: number, cb?: ImageCallback): this;
- posterize(n: number, cb?: ImageCallback): this;
- greyscale(cb?: ImageCallback): this;
- grayscale(cb?: ImageCallback): this;
- opacity(f: number, cb?: ImageCallback): this;
- sepia(cb?: ImageCallback): this;
- fade(f: number, cb?: ImageCallback): this;
- convolution(kernel: number[][], cb?: ImageCallback): this;
- convolution(
- kernel: number[][],
- edgeHandling: number,
- cb?: ImageCallback
- ): this;
- opaque(cb?: ImageCallback): this;
- pixelate(size: number, cb?: ImageCallback): this;
- pixelate(
- size: number,
- x: number,
- y: number,
- w: number,
- h: number,
- cb?: ImageCallback
- ): this;
- convolute(kernel: number[][], cb?: ImageCallback): this;
- convolute(
- kernel: number[][],
- x: number,
- y: number,
- w: number,
- h: number,
- cb?: ImageCallback
- ): this;
- color(actions: ColorAction[], cb?: ImageCallback): this;
- colour(actions: ColorAction[], cb?: ImageCallback): this;
-}
-
-export default function (): Color;
diff --git a/WechatBot/node_modules/@jimp/plugin-color/package.json b/WechatBot/node_modules/@jimp/plugin-color/package.json
deleted file mode 100644
index 918917770..000000000
--- a/WechatBot/node_modules/@jimp/plugin-color/package.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "name": "@jimp/plugin-color",
- "version": "0.16.13",
- "description": "Bitmap manipulation to adjust the color in an image.",
- "main": "dist/index.js",
- "module": "es/index.js",
- "types": "index.d.ts",
- "scripts": {
- "test": "cross-env BABEL_ENV=test mocha --require @babel/register",
- "test:watch": "npm run test -- --reporter min --watch",
- "test:coverage": "nyc npm run test",
- "build": "npm run build:node:production && npm run build:module",
- "build:watch": "npm run build:node:debug -- -- --watch --verbose",
- "build:debug": "npm run build:node:debug",
- "build:module": "cross-env BABEL_ENV=module babel src -d es --source-maps --config-file ../../babel.config.js",
- "build:node": "babel src -d dist --source-maps --config-file ../../babel.config.js",
- "build:node:debug": "cross-env BABEL_ENV=development npm run build:node",
- "build:node:production": "cross-env BABEL_ENV=production npm run build:node"
- },
- "author": "",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13",
- "tinycolor2": "^1.4.1"
- },
- "devDependencies": {
- "@jimp/custom": "^0.16.13",
- "@jimp/test-utils": "^0.16.13",
- "@jimp/types": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- },
- "publishConfig": {
- "access": "public"
- },
- "gitHead": "9eec86086634329a072901dca3a800b850548572"
-}
diff --git a/WechatBot/node_modules/@jimp/plugin-color/src/index.js b/WechatBot/node_modules/@jimp/plugin-color/src/index.js
deleted file mode 100755
index 1531a2a16..000000000
--- a/WechatBot/node_modules/@jimp/plugin-color/src/index.js
+++ /dev/null
@@ -1,630 +0,0 @@
-import tinyColor from "tinycolor2";
-import { throwError, isNodePattern } from "@jimp/utils";
-
-function applyKernel(im, kernel, x, y) {
- const value = [0, 0, 0];
- const size = (kernel.length - 1) / 2;
-
- for (let kx = 0; kx < kernel.length; kx += 1) {
- for (let ky = 0; ky < kernel[kx].length; ky += 1) {
- const idx = im.getPixelIndex(x + kx - size, y + ky - size);
-
- value[0] += im.bitmap.data[idx] * kernel[kx][ky];
- value[1] += im.bitmap.data[idx + 1] * kernel[kx][ky];
- value[2] += im.bitmap.data[idx + 2] * kernel[kx][ky];
- }
- }
-
- return value;
-}
-
-const isDef = (v) => typeof v !== "undefined" && v !== null;
-
-function greyscale(cb) {
- this.scanQuiet(
- 0,
- 0,
- this.bitmap.width,
- this.bitmap.height,
- function (x, y, idx) {
- const grey = parseInt(
- 0.2126 * this.bitmap.data[idx] +
- 0.7152 * this.bitmap.data[idx + 1] +
- 0.0722 * this.bitmap.data[idx + 2],
- 10
- );
-
- this.bitmap.data[idx] = grey;
- this.bitmap.data[idx + 1] = grey;
- this.bitmap.data[idx + 2] = grey;
- }
- );
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
-}
-
-function mix(clr, clr2, p = 50) {
- return {
- r: (clr2.r - clr.r) * (p / 100) + clr.r,
- g: (clr2.g - clr.g) * (p / 100) + clr.g,
- b: (clr2.b - clr.b) * (p / 100) + clr.b,
- };
-}
-
-function colorFn(actions, cb) {
- if (!actions || !Array.isArray(actions)) {
- return throwError.call(this, "actions must be an array", cb);
- }
-
- actions = actions.map((action) => {
- if (action.apply === "xor" || action.apply === "mix") {
- action.params[0] = tinyColor(action.params[0]).toRgb();
- }
-
- return action;
- });
-
- this.scanQuiet(0, 0, this.bitmap.width, this.bitmap.height, (x, y, idx) => {
- let clr = {
- r: this.bitmap.data[idx],
- g: this.bitmap.data[idx + 1],
- b: this.bitmap.data[idx + 2],
- };
-
- const colorModifier = (i, amount) =>
- this.constructor.limit255(clr[i] + amount);
-
- actions.forEach((action) => {
- if (action.apply === "mix") {
- clr = mix(clr, action.params[0], action.params[1]);
- } else if (action.apply === "tint") {
- clr = mix(clr, { r: 255, g: 255, b: 255 }, action.params[0]);
- } else if (action.apply === "shade") {
- clr = mix(clr, { r: 0, g: 0, b: 0 }, action.params[0]);
- } else if (action.apply === "xor") {
- clr = {
- r: clr.r ^ action.params[0].r,
- g: clr.g ^ action.params[0].g,
- b: clr.b ^ action.params[0].b,
- };
- } else if (action.apply === "red") {
- clr.r = colorModifier("r", action.params[0]);
- } else if (action.apply === "green") {
- clr.g = colorModifier("g", action.params[0]);
- } else if (action.apply === "blue") {
- clr.b = colorModifier("b", action.params[0]);
- } else {
- if (action.apply === "hue") {
- action.apply = "spin";
- }
-
- clr = tinyColor(clr);
-
- if (!clr[action.apply]) {
- return throwError.call(
- this,
- "action " + action.apply + " not supported",
- cb
- );
- }
-
- clr = clr[action.apply](...action.params).toRgb();
- }
- });
-
- this.bitmap.data[idx] = clr.r;
- this.bitmap.data[idx + 1] = clr.g;
- this.bitmap.data[idx + 2] = clr.b;
- });
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
-}
-
-export default () => ({
- /**
- * Adjusts the brightness of the image
- * @param {number} val the amount to adjust the brightness, a number between -1 and +1
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp }this for chaining of methods
- */
- brightness(val, cb) {
- if (typeof val !== "number") {
- return throwError.call(this, "val must be numbers", cb);
- }
-
- if (val < -1 || val > +1) {
- return throwError.call(
- this,
- "val must be a number between -1 and +1",
- cb
- );
- }
-
- this.scanQuiet(
- 0,
- 0,
- this.bitmap.width,
- this.bitmap.height,
- function (x, y, idx) {
- if (val < 0.0) {
- this.bitmap.data[idx] *= 1 + val;
- this.bitmap.data[idx + 1] *= 1 + val;
- this.bitmap.data[idx + 2] *= 1 + val;
- } else {
- this.bitmap.data[idx] += (255 - this.bitmap.data[idx]) * val;
- this.bitmap.data[idx + 1] += (255 - this.bitmap.data[idx + 1]) * val;
- this.bitmap.data[idx + 2] += (255 - this.bitmap.data[idx + 2]) * val;
- }
- }
- );
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-
- /**
- * Adjusts the contrast of the image
- * @param {number} val the amount to adjust the contrast, a number between -1 and +1
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp }this for chaining of methods
- */
- contrast(val, cb) {
- if (typeof val !== "number") {
- return throwError.call(this, "val must be numbers", cb);
- }
-
- if (val < -1 || val > +1) {
- return throwError.call(
- this,
- "val must be a number between -1 and +1",
- cb
- );
- }
-
- const factor = (val + 1) / (1 - val);
-
- function adjust(value) {
- value = Math.floor(factor * (value - 127) + 127);
-
- return value < 0 ? 0 : value > 255 ? 255 : value;
- }
-
- this.scanQuiet(
- 0,
- 0,
- this.bitmap.width,
- this.bitmap.height,
- function (x, y, idx) {
- this.bitmap.data[idx] = adjust(this.bitmap.data[idx]);
- this.bitmap.data[idx + 1] = adjust(this.bitmap.data[idx + 1]);
- this.bitmap.data[idx + 2] = adjust(this.bitmap.data[idx + 2]);
- }
- );
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-
- /**
- * Apply a posterize effect
- * @param {number} n the amount to adjust the contrast, minimum threshold is two
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp }this for chaining of methods
- */
- posterize(n, cb) {
- if (typeof n !== "number") {
- return throwError.call(this, "n must be numbers", cb);
- }
-
- if (n < 2) {
- n = 2;
- } // minimum of 2 levels
-
- this.scanQuiet(
- 0,
- 0,
- this.bitmap.width,
- this.bitmap.height,
- function (x, y, idx) {
- this.bitmap.data[idx] =
- (Math.floor((this.bitmap.data[idx] / 255) * (n - 1)) / (n - 1)) * 255;
- this.bitmap.data[idx + 1] =
- (Math.floor((this.bitmap.data[idx + 1] / 255) * (n - 1)) / (n - 1)) *
- 255;
- this.bitmap.data[idx + 2] =
- (Math.floor((this.bitmap.data[idx + 2] / 255) * (n - 1)) / (n - 1)) *
- 255;
- }
- );
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-
- /**
- * Removes colour from the image using ITU Rec 709 luminance values
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp }this for chaining of methods
- */
- greyscale,
-
- // Alias of greyscale for our American friends
- grayscale: greyscale,
-
- /**
- * Multiplies the opacity of each pixel by a factor between 0 and 1
- * @param {number} f A number, the factor by which to multiply the opacity of each pixel
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp }this for chaining of methods
- */
- opacity(f, cb) {
- if (typeof f !== "number")
- return throwError.call(this, "f must be a number", cb);
- if (f < 0 || f > 1)
- return throwError.call(this, "f must be a number from 0 to 1", cb);
-
- this.scanQuiet(
- 0,
- 0,
- this.bitmap.width,
- this.bitmap.height,
- function (x, y, idx) {
- const v = this.bitmap.data[idx + 3] * f;
- this.bitmap.data[idx + 3] = v;
- }
- );
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-
- /**
- * Applies a sepia tone to the image
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp }this for chaining of methods
- */
- sepia(cb) {
- this.scanQuiet(
- 0,
- 0,
- this.bitmap.width,
- this.bitmap.height,
- function (x, y, idx) {
- let red = this.bitmap.data[idx];
- let green = this.bitmap.data[idx + 1];
- let blue = this.bitmap.data[idx + 2];
-
- red = red * 0.393 + green * 0.769 + blue * 0.189;
- green = red * 0.349 + green * 0.686 + blue * 0.168;
- blue = red * 0.272 + green * 0.534 + blue * 0.131;
-
- this.bitmap.data[idx] = red < 255 ? red : 255;
- this.bitmap.data[idx + 1] = green < 255 ? green : 255;
- this.bitmap.data[idx + 2] = blue < 255 ? blue : 255;
- }
- );
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-
- /**
- * Fades each pixel by a factor between 0 and 1
- * @param {number} f A number from 0 to 1. 0 will haven no effect. 1 will turn the image completely transparent.
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp }this for chaining of methods
- */
- fade(f, cb) {
- if (typeof f !== "number") {
- return throwError.call(this, "f must be a number", cb);
- }
-
- if (f < 0 || f > 1) {
- return throwError.call(this, "f must be a number from 0 to 1", cb);
- }
-
- // this method is an alternative to opacity (which may be deprecated)
- this.opacity(1 - f);
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-
- /**
- * Adds each element of the image to its local neighbors, weighted by the kernel
- * @param {array} kernel a matrix to weight the neighbors sum
- * @param {number} edgeHandling (optional) define how to sum pixels from outside the border
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp }this for chaining of methods
- */
- convolution(kernel, edgeHandling, cb) {
- if (typeof edgeHandling === "function" && typeof cb === "undefined") {
- cb = edgeHandling;
- edgeHandling = null;
- }
-
- if (!edgeHandling) {
- edgeHandling = this.constructor.EDGE_EXTEND;
- }
-
- const newData = Buffer.from(this.bitmap.data);
- const kRows = kernel.length;
- const kCols = kernel[0].length;
- const rowEnd = Math.floor(kRows / 2);
- const colEnd = Math.floor(kCols / 2);
- const rowIni = -rowEnd;
- const colIni = -colEnd;
-
- let weight;
- let rSum;
- let gSum;
- let bSum;
- let ri;
- let gi;
- let bi;
- let xi;
- let yi;
- let idxi;
-
- this.scanQuiet(
- 0,
- 0,
- this.bitmap.width,
- this.bitmap.height,
- function (x, y, idx) {
- bSum = 0;
- gSum = 0;
- rSum = 0;
-
- for (let row = rowIni; row <= rowEnd; row++) {
- for (let col = colIni; col <= colEnd; col++) {
- xi = x + col;
- yi = y + row;
- weight = kernel[row + rowEnd][col + colEnd];
- idxi = this.getPixelIndex(xi, yi, edgeHandling);
-
- if (idxi === -1) {
- bi = 0;
- gi = 0;
- ri = 0;
- } else {
- ri = this.bitmap.data[idxi + 0];
- gi = this.bitmap.data[idxi + 1];
- bi = this.bitmap.data[idxi + 2];
- }
-
- rSum += weight * ri;
- gSum += weight * gi;
- bSum += weight * bi;
- }
- }
-
- if (rSum < 0) {
- rSum = 0;
- }
-
- if (gSum < 0) {
- gSum = 0;
- }
-
- if (bSum < 0) {
- bSum = 0;
- }
-
- if (rSum > 255) {
- rSum = 255;
- }
-
- if (gSum > 255) {
- gSum = 255;
- }
-
- if (bSum > 255) {
- bSum = 255;
- }
-
- newData[idx + 0] = rSum;
- newData[idx + 1] = gSum;
- newData[idx + 2] = bSum;
- }
- );
-
- this.bitmap.data = newData;
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-
- /**
- * Set the alpha channel on every pixel to fully opaque
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp }this for chaining of methods
- */
- opaque(cb) {
- this.scanQuiet(
- 0,
- 0,
- this.bitmap.width,
- this.bitmap.height,
- function (x, y, idx) {
- this.bitmap.data[idx + 3] = 255;
- }
- );
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-
- /**
- * Pixelates the image or a region
- * @param {number} size the size of the pixels
- * @param {number} x (optional) the x position of the region to pixelate
- * @param {number} y (optional) the y position of the region to pixelate
- * @param {number} w (optional) the width of the region to pixelate
- * @param {number} h (optional) the height of the region to pixelate
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp }this for chaining of methods
- */
- pixelate(size, x, y, w, h, cb) {
- if (typeof x === "function") {
- cb = x;
- h = null;
- w = null;
- y = null;
- x = null;
- } else {
- if (typeof size !== "number") {
- return throwError.call(this, "size must be a number", cb);
- }
-
- if (isDef(x) && typeof x !== "number") {
- return throwError.call(this, "x must be a number", cb);
- }
-
- if (isDef(y) && typeof y !== "number") {
- return throwError.call(this, "y must be a number", cb);
- }
-
- if (isDef(w) && typeof w !== "number") {
- return throwError.call(this, "w must be a number", cb);
- }
-
- if (isDef(h) && typeof h !== "number") {
- return throwError.call(this, "h must be a number", cb);
- }
- }
-
- const kernel = [
- [1 / 16, 2 / 16, 1 / 16],
- [2 / 16, 4 / 16, 2 / 16],
- [1 / 16, 2 / 16, 1 / 16],
- ];
-
- x = x || 0;
- y = y || 0;
- w = isDef(w) ? w : this.bitmap.width - x;
- h = isDef(h) ? h : this.bitmap.height - y;
-
- const source = this.cloneQuiet();
-
- this.scanQuiet(x, y, w, h, function (xx, yx, idx) {
- xx = size * Math.floor(xx / size);
- yx = size * Math.floor(yx / size);
-
- const value = applyKernel(source, kernel, xx, yx);
-
- this.bitmap.data[idx] = value[0];
- this.bitmap.data[idx + 1] = value[1];
- this.bitmap.data[idx + 2] = value[2];
- });
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-
- /**
- * Applies a convolution kernel to the image or a region
- * @param {array} kernel the convolution kernel
- * @param {number} x (optional) the x position of the region to apply convolution to
- * @param {number} y (optional) the y position of the region to apply convolution to
- * @param {number} w (optional) the width of the region to apply convolution to
- * @param {number} h (optional) the height of the region to apply convolution to
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp }this for chaining of methods
- */
- convolute(kernel, x, y, w, h, cb) {
- if (!Array.isArray(kernel))
- return throwError.call(this, "the kernel must be an array", cb);
-
- if (typeof x === "function") {
- cb = x;
- x = null;
- y = null;
- w = null;
- h = null;
- } else {
- if (isDef(x) && typeof x !== "number") {
- return throwError.call(this, "x must be a number", cb);
- }
-
- if (isDef(y) && typeof y !== "number") {
- return throwError.call(this, "y must be a number", cb);
- }
-
- if (isDef(w) && typeof w !== "number") {
- return throwError.call(this, "w must be a number", cb);
- }
-
- if (isDef(h) && typeof h !== "number") {
- return throwError.call(this, "h must be a number", cb);
- }
- }
-
- const ksize = (kernel.length - 1) / 2;
-
- x = isDef(x) ? x : ksize;
- y = isDef(y) ? y : ksize;
- w = isDef(w) ? w : this.bitmap.width - x;
- h = isDef(h) ? h : this.bitmap.height - y;
-
- const source = this.cloneQuiet();
-
- this.scanQuiet(x, y, w, h, function (xx, yx, idx) {
- const value = applyKernel(source, kernel, xx, yx);
-
- this.bitmap.data[idx] = this.constructor.limit255(value[0]);
- this.bitmap.data[idx + 1] = this.constructor.limit255(value[1]);
- this.bitmap.data[idx + 2] = this.constructor.limit255(value[2]);
- });
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-
- /**
- * Apply multiple color modification rules
- * @param {array} actions list of color modification rules, in following format: { apply: '', params: [ ] }
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp }this for chaining of methods
- */
- color: colorFn,
- colour: colorFn,
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-color/test/color.test.js b/WechatBot/node_modules/@jimp/plugin-color/test/color.test.js
deleted file mode 100755
index 562808bf5..000000000
--- a/WechatBot/node_modules/@jimp/plugin-color/test/color.test.js
+++ /dev/null
@@ -1,49 +0,0 @@
-import { Jimp, donutJGD } from "@jimp/test-utils";
-import configure from "@jimp/custom";
-
-import color from "../src";
-
-const jimp = configure({ plugins: [color] }, Jimp);
-
-describe("canvas color transformation", () => {
- const redDonutJGD = donutJGD(0x00000000, 0xff000088, 0xff0000ff);
-
- it("can apply more than one color transformation", async () => {
- const image = await jimp.read(redDonutJGD);
- const newJGD = image
- .color([
- { apply: "hue", params: [-180] },
- { apply: "lighten", params: [25] },
- ])
- .getJGDSync();
-
- newJGD.should.be.sameJGD(donutJGD(0x40404000, 0x80ffff88, 0x80ffffff));
- });
-
- it("lighten", async () => {
- const image = await jimp.read(redDonutJGD);
-
- image
- .color([{ apply: "lighten", params: [25] }])
- .getJGDSync()
- .should.be.sameJGD(donutJGD(0x40404000, 0xff808088, 0xff8080ff));
- });
-
- it("brighten", async () => {
- const image = await jimp.read(redDonutJGD);
-
- image
- .color([{ apply: "brighten", params: [25] }])
- .getJGDSync()
- .should.be.sameJGD(donutJGD(0x40404000, 0xff404088, 0xff4040ff));
- });
-
- it("spin hue", async () => {
- const image = await jimp.read(redDonutJGD);
-
- image
- .color([{ apply: "hue", params: [150] }])
- .getJGDSync()
- .should.be.sameJGD(donutJGD(0x00000000, 0x00ff8088, 0x00ff80ff));
- });
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-color/test/convolution.test.js b/WechatBot/node_modules/@jimp/plugin-color/test/convolution.test.js
deleted file mode 100755
index 2bf66085b..000000000
--- a/WechatBot/node_modules/@jimp/plugin-color/test/convolution.test.js
+++ /dev/null
@@ -1,188 +0,0 @@
-import { Jimp, mkJGD, getTestDir } from "@jimp/test-utils";
-import configure from "@jimp/custom";
-import types from "@jimp/types";
-
-import color from "../src";
-
-const jimp = configure({ types: [types], plugins: [color] }, Jimp);
-
-describe("Convolution", function () {
- this.timeout(15000);
-
- const imgs = [
- jimp.read(
- mkJGD(
- "22222222",
- "22222222",
- "22888822",
- "22888822",
- "22888822",
- "22888822",
- "22222222",
- "22222222"
- )
- ),
- jimp.read(
- mkJGD(
- "88222222",
- "88222222",
- "22222222",
- "22222222",
- "22222222",
- "22222222",
- "22222222",
- "22222222"
- )
- ),
- ];
-
- let imgMid;
- let imgTopLeft; // stores the Jimp instances of the JGD images above.
-
- before((done) => {
- Promise.all(imgs)
- .then((imgs) => {
- imgMid = imgs[0];
- imgTopLeft = imgs[1];
- done();
- })
- .catch(done);
- });
-
- const sharpM = [
- [-1, -1, 0],
- [-1, 1, 1],
- [0, 1, 1],
- ];
-
- it("3x3 sharp matrix on EDGE_EXTEND", (done) => {
- imgMid
- .clone()
- .convolution(sharpM)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- "22222222",
- "28EEE822",
- "2EFFF802",
- "2EF88002",
- "2EF88002",
- "28800002",
- "22000002",
- "22222222"
- ),
- "Mid light block"
- );
- imgTopLeft
- .clone()
- .convolution(sharpM)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- "80022222",
- "00022222",
- "00022222",
- "22222222",
- "22222222",
- "22222222",
- "22222222",
- "22222222"
- ),
- "Top left light block"
- );
- done();
- });
-
- it("3x3 sharp matrix on EDGE_WRAP", (done) => {
- imgMid
- .clone()
- .convolution(sharpM, jimp.EDGE_WRAP)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- "66666666",
- "28EEE822",
- "2EFFF802",
- "2EF88002",
- "2EF88002",
- "28800002",
- "22000002",
- "22222222"
- ),
- "Mid light block"
- );
- imgTopLeft
- .clone()
- .convolution(sharpM, jimp.EDGE_WRAP)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- "FC06666F",
- "80022228",
- "00022222",
- "22222222",
- "22222222",
- "22222222",
- "22222222",
- "E8222228"
- ),
- "Top left light block"
- );
- done();
- });
-
- it("3x3 sharp matrix on EDGE_CROP", (done) => {
- imgMid
- .clone()
- .convolution(sharpM, jimp.EDGE_CROP)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- "86666662",
- "68EEE820",
- "6EFFF800",
- "6EF88000",
- "6EF88000",
- "68800000",
- "62000000",
- "20000000"
- ),
- "Mid light block"
- );
- imgTopLeft
- .clone()
- .convolution(sharpM, jimp.EDGE_CROP)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- "FC066662",
- "C0022220",
- "00022220",
- "62222220",
- "62222220",
- "62222220",
- "62222220",
- "20000000"
- ),
- "Top left light block"
- );
- done();
- });
-
- it("new pixel value is greater than 255", async () => {
- const expectedImg = await jimp.read(
- getTestDir(__dirname) + "/images/qr-convoluted.png"
- );
- const image = await jimp.read(getTestDir(__dirname) + "/images/qr.jpg");
-
- image
- .convolution([
- [0, 0, 0, 0, 0],
- [0, 1, 1, 1, 0],
- [0, 1, 0, 1, 0],
- [0, 1, 1, 1, 0],
- [0, 0, 0, 0, 0],
- ])
- .bitmap.data.should.be.deepEqual(expectedImg.bitmap.data);
- });
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-color/test/images/qr-convoluted.png b/WechatBot/node_modules/@jimp/plugin-color/test/images/qr-convoluted.png
deleted file mode 100644
index 9b42e016a..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-color/test/images/qr-convoluted.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-color/test/images/qr.jpg b/WechatBot/node_modules/@jimp/plugin-color/test/images/qr.jpg
deleted file mode 100644
index b2cc618b2..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-color/test/images/qr.jpg and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-contain/CHANGELOG.md b/WechatBot/node_modules/@jimp/plugin-contain/CHANGELOG.md
deleted file mode 100644
index 4eb3193f9..000000000
--- a/WechatBot/node_modules/@jimp/plugin-contain/CHANGELOG.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# v0.16.3 (Sat Feb 04 2023)
-
-#### ⚠️ Pushed to `master`
-
-- upgrade prettier ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 1
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
----
-
-# v0.11.0 (Fri May 15 2020)
-
-#### 🚀 Enhancement
-
-- Removed Core-JS as a dependency. [#882](https://github.com/oliver-moran/jimp/pull/882) ([@EricRabil](https://github.com/EricRabil))
-
-#### Authors: 1
-
-- Eric Rabil ([@EricRabil](https://github.com/EricRabil))
-
----
-
-# v0.9.3 (Tue Nov 26 2019)
-
-#### 🐛 Bug Fix
-
-- `@jimp/cli`, `@jimp/core`, `@jimp/custom`, `jimp`, `@jimp/plugin-blit`, `@jimp/plugin-blur`, `@jimp/plugin-circle`, `@jimp/plugin-color`, `@jimp/plugin-contain`, `@jimp/plugin-cover`, `@jimp/plugin-crop`, `@jimp/plugin-displace`, `@jimp/plugin-dither`, `@jimp/plugin-fisheye`, `@jimp/plugin-flip`, `@jimp/plugin-gaussian`, `@jimp/plugin-invert`, `@jimp/plugin-mask`, `@jimp/plugin-normalize`, `@jimp/plugin-print`, `@jimp/plugin-resize`, `@jimp/plugin-rotate`, `@jimp/plugin-scale`, `@jimp/plugin-shadow`, `@jimp/plugin-threshold`, `@jimp/plugins`, `@jimp/test-utils`, `@jimp/bmp`, `@jimp/gif`, `@jimp/jpeg`, `@jimp/png`, `@jimp/tiff`, `@jimp/types`, `@jimp/utils`
- - Fix regeneratorRuntime errors [#815](https://github.com/oliver-moran/jimp/pull/815) ([@crutchcorn](https://github.com/crutchcorn) [@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 2
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
diff --git a/WechatBot/node_modules/@jimp/plugin-contain/LICENSE b/WechatBot/node_modules/@jimp/plugin-contain/LICENSE
deleted file mode 100644
index baa5d4850..000000000
--- a/WechatBot/node_modules/@jimp/plugin-contain/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Oliver Moran
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/WechatBot/node_modules/@jimp/plugin-contain/README.md b/WechatBot/node_modules/@jimp/plugin-contain/README.md
deleted file mode 100644
index 187cdc754..000000000
--- a/WechatBot/node_modules/@jimp/plugin-contain/README.md
+++ /dev/null
@@ -1,59 +0,0 @@
-
-
-
@jimp/plugin-contain
-
Contain an image within a height and width.
-
-
-Scale the image to the given width and height keeping the aspect ratio. Some parts of the image may be letter boxed.
-
-## Usage
-
-- @param {number} w the width to resize the image to
-- @param {number} h the height to resize the image to
-- @param {number} alignBits (optional) A bitmask for horizontal and vertical alignment
-- @param {string} mode (optional) a scaling method (e.g. Jimp.RESIZE_BEZIER)
-- @param {function(Error, Jimp)} cb (optional) a callback for when complete
-
-```js
-import jimp from "jimp";
-
-async function main() {
- const image = await jimp.read("test/image.png");
-
- image.contain(150, 100);
-}
-
-main();
-```
-
-### Align modes
-
-The following constants can be passed to `image.contain`:
-
-```js
-Jimp.HORIZONTAL_ALIGN_LEFT;
-Jimp.HORIZONTAL_ALIGN_CENTER;
-Jimp.HORIZONTAL_ALIGN_RIGHT;
-
-Jimp.VERTICAL_ALIGN_TOP;
-Jimp.VERTICAL_ALIGN_MIDDLE;
-Jimp.VERTICAL_ALIGN_BOTTOM;
-```
-
-For example:
-
-```js
-image.contain(250, 250, Jimp.HORIZONTAL_ALIGN_LEFT | Jimp.VERTICAL_ALIGN_TOP);
-image.contain(
- 250,
- 250,
- Jimp.HORIZONTAL_ALIGN_RIGHT | Jimp.VERTICAL_ALIGN_BOTTOM
-);
-```
-
-Default align mode for `image.contain` is:
-
-```js
-Jimp.HORIZONTAL_ALIGN_CENTER | Jimp.VERTICAL_ALIGN_MIDDLE;
-```
diff --git a/WechatBot/node_modules/@jimp/plugin-contain/dist/index.js b/WechatBot/node_modules/@jimp/plugin-contain/dist/index.js
deleted file mode 100755
index 77b211ded..000000000
--- a/WechatBot/node_modules/@jimp/plugin-contain/dist/index.js
+++ /dev/null
@@ -1,75 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports["default"] = void 0;
-
-var _utils = require("@jimp/utils");
-
-/**
- * Scale the image to the given width and height keeping the aspect ratio. Some parts of the image may be letter boxed.
- * @param {number} w the width to resize the image to
- * @param {number} h the height to resize the image to
- * @param {number} alignBits (optional) A bitmask for horizontal and vertical alignment
- * @param {string} mode (optional) a scaling method (e.g. Jimp.RESIZE_BEZIER)
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
-var _default = function _default() {
- return {
- contain: function contain(w, h, alignBits, mode, cb) {
- if (typeof w !== "number" || typeof h !== "number") {
- return _utils.throwError.call(this, "w and h must be numbers", cb);
- } // permit any sort of optional parameters combination
-
-
- if (typeof alignBits === "string") {
- if (typeof mode === "function" && typeof cb === "undefined") cb = mode;
- mode = alignBits;
- alignBits = null;
- }
-
- if (typeof alignBits === "function") {
- if (typeof cb === "undefined") cb = alignBits;
- mode = null;
- alignBits = null;
- }
-
- if (typeof mode === "function" && typeof cb === "undefined") {
- cb = mode;
- mode = null;
- }
-
- alignBits = alignBits || this.constructor.HORIZONTAL_ALIGN_CENTER | this.constructor.VERTICAL_ALIGN_MIDDLE;
- var hbits = alignBits & (1 << 3) - 1;
- var vbits = alignBits >> 3; // check if more flags than one is in the bit sets
-
- if (!(hbits !== 0 && !(hbits & hbits - 1) || vbits !== 0 && !(vbits & vbits - 1))) {
- return _utils.throwError.call(this, "only use one flag per alignment direction", cb);
- }
-
- var alignH = hbits >> 1; // 0, 1, 2
-
- var alignV = vbits >> 1; // 0, 1, 2
-
- var f = w / h > this.bitmap.width / this.bitmap.height ? h / this.bitmap.height : w / this.bitmap.width;
- var c = this.cloneQuiet().scale(f, mode);
- this.resize(w, h, mode);
- this.scanQuiet(0, 0, this.bitmap.width, this.bitmap.height, function (x, y, idx) {
- this.bitmap.data.writeUInt32BE(this._background, idx);
- });
- this.blit(c, (this.bitmap.width - c.bitmap.width) / 2 * alignH, (this.bitmap.height - c.bitmap.height) / 2 * alignV);
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- }
- };
-};
-
-exports["default"] = _default;
-module.exports = exports.default;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-contain/dist/index.js.map b/WechatBot/node_modules/@jimp/plugin-contain/dist/index.js.map
deleted file mode 100644
index e534381f0..000000000
--- a/WechatBot/node_modules/@jimp/plugin-contain/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/index.js"],"names":["contain","w","h","alignBits","mode","cb","throwError","call","constructor","HORIZONTAL_ALIGN_CENTER","VERTICAL_ALIGN_MIDDLE","hbits","vbits","alignH","alignV","f","bitmap","width","height","c","cloneQuiet","scale","resize","scanQuiet","x","y","idx","data","writeUInt32BE","_background","blit"],"mappings":"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","sourcesContent":["import { isNodePattern, throwError } from \"@jimp/utils\";\n\n/**\n * Scale the image to the given width and height keeping the aspect ratio. Some parts of the image may be letter boxed.\n * @param {number} w the width to resize the image to\n * @param {number} h the height to resize the image to\n * @param {number} alignBits (optional) A bitmask for horizontal and vertical alignment\n * @param {string} mode (optional) a scaling method (e.g. Jimp.RESIZE_BEZIER)\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp} this for chaining of methods\n */\nexport default () => ({\n contain(w, h, alignBits, mode, cb) {\n if (typeof w !== \"number\" || typeof h !== \"number\") {\n return throwError.call(this, \"w and h must be numbers\", cb);\n }\n\n // permit any sort of optional parameters combination\n if (typeof alignBits === \"string\") {\n if (typeof mode === \"function\" && typeof cb === \"undefined\") cb = mode;\n mode = alignBits;\n alignBits = null;\n }\n\n if (typeof alignBits === \"function\") {\n if (typeof cb === \"undefined\") cb = alignBits;\n mode = null;\n alignBits = null;\n }\n\n if (typeof mode === \"function\" && typeof cb === \"undefined\") {\n cb = mode;\n mode = null;\n }\n\n alignBits =\n alignBits ||\n this.constructor.HORIZONTAL_ALIGN_CENTER |\n this.constructor.VERTICAL_ALIGN_MIDDLE;\n const hbits = alignBits & ((1 << 3) - 1);\n const vbits = alignBits >> 3;\n\n // check if more flags than one is in the bit sets\n if (\n !(\n (hbits !== 0 && !(hbits & (hbits - 1))) ||\n (vbits !== 0 && !(vbits & (vbits - 1)))\n )\n ) {\n return throwError.call(\n this,\n \"only use one flag per alignment direction\",\n cb\n );\n }\n\n const alignH = hbits >> 1; // 0, 1, 2\n const alignV = vbits >> 1; // 0, 1, 2\n\n const f =\n w / h > this.bitmap.width / this.bitmap.height\n ? h / this.bitmap.height\n : w / this.bitmap.width;\n const c = this.cloneQuiet().scale(f, mode);\n\n this.resize(w, h, mode);\n this.scanQuiet(\n 0,\n 0,\n this.bitmap.width,\n this.bitmap.height,\n function (x, y, idx) {\n this.bitmap.data.writeUInt32BE(this._background, idx);\n }\n );\n this.blit(\n c,\n ((this.bitmap.width - c.bitmap.width) / 2) * alignH,\n ((this.bitmap.height - c.bitmap.height) / 2) * alignV\n );\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n },\n});\n"],"file":"index.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-contain/index.d.ts b/WechatBot/node_modules/@jimp/plugin-contain/index.d.ts
deleted file mode 100644
index 8c3306d3b..000000000
--- a/WechatBot/node_modules/@jimp/plugin-contain/index.d.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { ImageCallback } from "@jimp/core";
-
-interface Contain {
- contain(w: number, h: number, cb?: ImageCallback): this;
- contain(w: number, h: number, mode?: string, cb?: ImageCallback): this;
- contain(
- w: number,
- h: number,
- alignBits?: number,
- cb?: ImageCallback
- ): this;
- contain(
- w: number,
- h: number,
- alignBits?: number,
- mode?: string,
- cb?: ImageCallback
- ): this;
-}
-
-export default function (): Contain;
diff --git a/WechatBot/node_modules/@jimp/plugin-contain/package.json b/WechatBot/node_modules/@jimp/plugin-contain/package.json
deleted file mode 100644
index 3a91ace73..000000000
--- a/WechatBot/node_modules/@jimp/plugin-contain/package.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "name": "@jimp/plugin-contain",
- "version": "0.16.13",
- "description": "contain an image.",
- "main": "dist/index.js",
- "module": "es/index.js",
- "types": "index.d.ts",
- "scripts": {
- "test": "cross-env BABEL_ENV=test mocha --require @babel/register",
- "test:watch": "npm run test -- --reporter min --watch",
- "test:coverage": "nyc npm run test",
- "build": "npm run build:node:production && npm run build:module",
- "build:watch": "npm run build:node:debug -- -- --watch --verbose",
- "build:debug": "npm run build:node:debug",
- "build:module": "cross-env BABEL_ENV=module babel src -d es --source-maps --config-file ../../babel.config.js",
- "build:node": "babel src -d dist --source-maps --config-file ../../babel.config.js",
- "build:node:debug": "cross-env BABEL_ENV=development npm run build:node",
- "build:node:production": "cross-env BABEL_ENV=production npm run build:node"
- },
- "author": "",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5",
- "@jimp/plugin-blit": ">=0.3.5",
- "@jimp/plugin-resize": ">=0.3.5",
- "@jimp/plugin-scale": ">=0.3.5"
- },
- "devDependencies": {
- "@jimp/custom": "^0.16.13",
- "@jimp/plugin-blit": "^0.16.13",
- "@jimp/plugin-resize": "^0.16.13",
- "@jimp/plugin-scale": "^0.16.13",
- "@jimp/test-utils": "^0.16.13"
- },
- "publishConfig": {
- "access": "public"
- },
- "gitHead": "9eec86086634329a072901dca3a800b850548572"
-}
diff --git a/WechatBot/node_modules/@jimp/plugin-contain/src/index.js b/WechatBot/node_modules/@jimp/plugin-contain/src/index.js
deleted file mode 100755
index 1736343c9..000000000
--- a/WechatBot/node_modules/@jimp/plugin-contain/src/index.js
+++ /dev/null
@@ -1,88 +0,0 @@
-import { isNodePattern, throwError } from "@jimp/utils";
-
-/**
- * Scale the image to the given width and height keeping the aspect ratio. Some parts of the image may be letter boxed.
- * @param {number} w the width to resize the image to
- * @param {number} h the height to resize the image to
- * @param {number} alignBits (optional) A bitmask for horizontal and vertical alignment
- * @param {string} mode (optional) a scaling method (e.g. Jimp.RESIZE_BEZIER)
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
-export default () => ({
- contain(w, h, alignBits, mode, cb) {
- if (typeof w !== "number" || typeof h !== "number") {
- return throwError.call(this, "w and h must be numbers", cb);
- }
-
- // permit any sort of optional parameters combination
- if (typeof alignBits === "string") {
- if (typeof mode === "function" && typeof cb === "undefined") cb = mode;
- mode = alignBits;
- alignBits = null;
- }
-
- if (typeof alignBits === "function") {
- if (typeof cb === "undefined") cb = alignBits;
- mode = null;
- alignBits = null;
- }
-
- if (typeof mode === "function" && typeof cb === "undefined") {
- cb = mode;
- mode = null;
- }
-
- alignBits =
- alignBits ||
- this.constructor.HORIZONTAL_ALIGN_CENTER |
- this.constructor.VERTICAL_ALIGN_MIDDLE;
- const hbits = alignBits & ((1 << 3) - 1);
- const vbits = alignBits >> 3;
-
- // check if more flags than one is in the bit sets
- if (
- !(
- (hbits !== 0 && !(hbits & (hbits - 1))) ||
- (vbits !== 0 && !(vbits & (vbits - 1)))
- )
- ) {
- return throwError.call(
- this,
- "only use one flag per alignment direction",
- cb
- );
- }
-
- const alignH = hbits >> 1; // 0, 1, 2
- const alignV = vbits >> 1; // 0, 1, 2
-
- const f =
- w / h > this.bitmap.width / this.bitmap.height
- ? h / this.bitmap.height
- : w / this.bitmap.width;
- const c = this.cloneQuiet().scale(f, mode);
-
- this.resize(w, h, mode);
- this.scanQuiet(
- 0,
- 0,
- this.bitmap.width,
- this.bitmap.height,
- function (x, y, idx) {
- this.bitmap.data.writeUInt32BE(this._background, idx);
- }
- );
- this.blit(
- c,
- ((this.bitmap.width - c.bitmap.width) / 2) * alignH,
- ((this.bitmap.height - c.bitmap.height) / 2) * alignV
- );
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-contain/test/contain.test.js b/WechatBot/node_modules/@jimp/plugin-contain/test/contain.test.js
deleted file mode 100755
index 19739a277..000000000
--- a/WechatBot/node_modules/@jimp/plugin-contain/test/contain.test.js
+++ /dev/null
@@ -1,131 +0,0 @@
-import { Jimp, mkJGD, hasOwnProp } from "@jimp/test-utils";
-import configure from "@jimp/custom";
-import blit from "@jimp/plugin-blit";
-import resize from "@jimp/plugin-resize";
-import scale from "@jimp/plugin-scale";
-
-import contain from "../src";
-
-const jimp = configure({ plugins: [scale, resize, blit, contain] }, Jimp);
-
-describe("All align combinations for contain", () => {
- const verticalJGD = mkJGD(
- "▴▴▴▴▸▸▸▸",
- "▴▴▴▴▸▸▸▸",
- "▴▴▴▴▸▸▸▸",
- "▴▴▴▴▸▸▸▸",
- "▴▴▴▴▸▸▸▸",
- "▴▴▴▴▸▸▸▸",
- "▾▾▾▾◆◆◆◆",
- "▾▾▾▾◆◆◆◆",
- "▾▾▾▾◆◆◆◆",
- "▾▾▾▾◆◆◆◆",
- "▾▾▾▾◆◆◆◆",
- "▾▾▾▾◆◆◆◆"
- );
-
- const horizontalJGD = mkJGD(
- "▴▴▴▴▴▴▸▸▸▸▸▸",
- "▴▴▴▴▴▴▸▸▸▸▸▸",
- "▴▴▴▴▴▴▸▸▸▸▸▸",
- "▴▴▴▴▴▴▸▸▸▸▸▸",
- "▾▾▾▾▾▾◆◆◆◆◆◆",
- "▾▾▾▾▾▾◆◆◆◆◆◆",
- "▾▾▾▾▾▾◆◆◆◆◆◆",
- "▾▾▾▾▾▾◆◆◆◆◆◆"
- );
-
- let vertical;
- let horizontal; // stores the Jimp instances of the JGD images above.
-
- before((done) => {
- const img1 = jimp.read(verticalJGD);
- const img2 = jimp.read(horizontalJGD);
- Promise.all([img1, img2])
- .then((images) => {
- vertical = images[0];
- horizontal = images[1];
- done();
- })
- .catch(done);
- });
-
- const tests = {}; // Stores the expected result for each alignment combination.
- tests["LEFT TOP"] = {
- contain: {
- verti: mkJGD("▴▴▸▸ ", "▴▴▸▸ ", "▴▴▸▸ ", "▾▾◆◆ ", "▾▾◆◆ ", "▾▾◆◆ "),
- horiz: mkJGD("▴▴▴▸▸▸", "▴▴▴▸▸▸", "▾▾▾◆◆◆", "▾▾▾◆◆◆", " ", " "),
- },
- };
- tests["CENTER TOP"] = {
- contain: {
- verti: mkJGD(" ▴▴▸▸ ", " ▴▴▸▸ ", " ▴▴▸▸ ", " ▾▾◆◆ ", " ▾▾◆◆ ", " ▾▾◆◆ "),
- horiz: mkJGD("▴▴▴▸▸▸", "▴▴▴▸▸▸", "▾▾▾◆◆◆", "▾▾▾◆◆◆", " ", " "),
- },
- };
- tests["RIGHT TOP"] = {
- contain: {
- verti: mkJGD(" ▴▴▸▸", " ▴▴▸▸", " ▴▴▸▸", " ▾▾◆◆", " ▾▾◆◆", " ▾▾◆◆"),
- horiz: mkJGD("▴▴▴▸▸▸", "▴▴▴▸▸▸", "▾▾▾◆◆◆", "▾▾▾◆◆◆", " ", " "),
- },
- };
-
- tests["LEFT MIDDLE"] = {
- contain: {
- verti: mkJGD("▴▴▸▸ ", "▴▴▸▸ ", "▴▴▸▸ ", "▾▾◆◆ ", "▾▾◆◆ ", "▾▾◆◆ "),
- horiz: mkJGD(" ", "▴▴▴▸▸▸", "▴▴▴▸▸▸", "▾▾▾◆◆◆", "▾▾▾◆◆◆", " "),
- },
- };
- tests["CENTER MIDDLE"] = {
- contain: {
- verti: mkJGD(" ▴▴▸▸ ", " ▴▴▸▸ ", " ▴▴▸▸ ", " ▾▾◆◆ ", " ▾▾◆◆ ", " ▾▾◆◆ "),
- horiz: mkJGD(" ", "▴▴▴▸▸▸", "▴▴▴▸▸▸", "▾▾▾◆◆◆", "▾▾▾◆◆◆", " "),
- },
- };
- tests["RIGHT MIDDLE"] = {
- contain: {
- verti: mkJGD(" ▴▴▸▸", " ▴▴▸▸", " ▴▴▸▸", " ▾▾◆◆", " ▾▾◆◆", " ▾▾◆◆"),
- horiz: mkJGD(" ", "▴▴▴▸▸▸", "▴▴▴▸▸▸", "▾▾▾◆◆◆", "▾▾▾◆◆◆", " "),
- },
- };
-
- tests["LEFT BOTTOM"] = {
- contain: {
- verti: mkJGD("▴▴▸▸ ", "▴▴▸▸ ", "▴▴▸▸ ", "▾▾◆◆ ", "▾▾◆◆ ", "▾▾◆◆ "),
- horiz: mkJGD(" ", " ", "▴▴▴▸▸▸", "▴▴▴▸▸▸", "▾▾▾◆◆◆", "▾▾▾◆◆◆"),
- },
- };
- tests["CENTER BOTTOM"] = {
- contain: {
- verti: mkJGD(" ▴▴▸▸ ", " ▴▴▸▸ ", " ▴▴▸▸ ", " ▾▾◆◆ ", " ▾▾◆◆ ", " ▾▾◆◆ "),
- horiz: mkJGD(" ", " ", "▴▴▴▸▸▸", "▴▴▴▸▸▸", "▾▾▾◆◆◆", "▾▾▾◆◆◆"),
- },
- };
- tests["RIGHT BOTTOM"] = {
- contain: {
- verti: mkJGD(" ▴▴▸▸", " ▴▴▸▸", " ▴▴▸▸", " ▾▾◆◆", " ▾▾◆◆", " ▾▾◆◆"),
- horiz: mkJGD(" ", " ", "▴▴▴▸▸▸", "▴▴▴▸▸▸", "▾▾▾◆◆◆", "▾▾▾◆◆◆"),
- },
- };
-
- function runAlignTest(align) {
- const jgdContainV = tests[align].contain.verti;
- const jgdContainH = tests[align].contain.horiz;
- let a = align.split(" ");
- a = Jimp["HORIZONTAL_ALIGN_" + a[0]] | Jimp["VERTICAL_ALIGN_" + a[1]];
- it("contain aligned to " + align, () => {
- vertical
- .clone()
- .contain(6, 6, a)
- .getJGDSync()
- .should.be.sameJGD(jgdContainV, "Vertical image");
- horizontal
- .clone()
- .contain(6, 6, a)
- .getJGDSync()
- .should.be.sameJGD(jgdContainH, "Horizontal image");
- });
- }
-
- for (const align in tests) if (hasOwnProp(tests, align)) runAlignTest(align);
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-cover/CHANGELOG.md b/WechatBot/node_modules/@jimp/plugin-cover/CHANGELOG.md
deleted file mode 100644
index 4eb3193f9..000000000
--- a/WechatBot/node_modules/@jimp/plugin-cover/CHANGELOG.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# v0.16.3 (Sat Feb 04 2023)
-
-#### ⚠️ Pushed to `master`
-
-- upgrade prettier ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 1
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
----
-
-# v0.11.0 (Fri May 15 2020)
-
-#### 🚀 Enhancement
-
-- Removed Core-JS as a dependency. [#882](https://github.com/oliver-moran/jimp/pull/882) ([@EricRabil](https://github.com/EricRabil))
-
-#### Authors: 1
-
-- Eric Rabil ([@EricRabil](https://github.com/EricRabil))
-
----
-
-# v0.9.3 (Tue Nov 26 2019)
-
-#### 🐛 Bug Fix
-
-- `@jimp/cli`, `@jimp/core`, `@jimp/custom`, `jimp`, `@jimp/plugin-blit`, `@jimp/plugin-blur`, `@jimp/plugin-circle`, `@jimp/plugin-color`, `@jimp/plugin-contain`, `@jimp/plugin-cover`, `@jimp/plugin-crop`, `@jimp/plugin-displace`, `@jimp/plugin-dither`, `@jimp/plugin-fisheye`, `@jimp/plugin-flip`, `@jimp/plugin-gaussian`, `@jimp/plugin-invert`, `@jimp/plugin-mask`, `@jimp/plugin-normalize`, `@jimp/plugin-print`, `@jimp/plugin-resize`, `@jimp/plugin-rotate`, `@jimp/plugin-scale`, `@jimp/plugin-shadow`, `@jimp/plugin-threshold`, `@jimp/plugins`, `@jimp/test-utils`, `@jimp/bmp`, `@jimp/gif`, `@jimp/jpeg`, `@jimp/png`, `@jimp/tiff`, `@jimp/types`, `@jimp/utils`
- - Fix regeneratorRuntime errors [#815](https://github.com/oliver-moran/jimp/pull/815) ([@crutchcorn](https://github.com/crutchcorn) [@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 2
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
diff --git a/WechatBot/node_modules/@jimp/plugin-cover/LICENSE b/WechatBot/node_modules/@jimp/plugin-cover/LICENSE
deleted file mode 100644
index baa5d4850..000000000
--- a/WechatBot/node_modules/@jimp/plugin-cover/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Oliver Moran
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/WechatBot/node_modules/@jimp/plugin-cover/README.md b/WechatBot/node_modules/@jimp/plugin-cover/README.md
deleted file mode 100644
index 8313aa2c2..000000000
--- a/WechatBot/node_modules/@jimp/plugin-cover/README.md
+++ /dev/null
@@ -1,54 +0,0 @@
-
-
-
@jimp/plugin-cover
-
-
-Scale the image so the given width and height keeping the aspect ratio. Some parts of the image may be clipped.
-
-## Usage
-
-- @param {number} w the width to resize the image to
-- @param {number} h the height to resize the image to
-- @param {number} alignBits (optional) A bitmask for horizontal and vertical alignment
-- @param {string} mode (optional) a scaling method (e.g. Jimp.RESIZE_BEZIER)
-- @param {function(Error, Jimp)} cb (optional) a callback for when complete
-
-```js
-import jimp from "jimp";
-
-async function main() {
- const image = await jimp.read("test/image.png");
-
- image.cover(150, 100);
-}
-
-main();
-```
-
-### Align modes
-
-The following constants can be passed to `image.cover`:
-
-```js
-Jimp.HORIZONTAL_ALIGN_LEFT;
-Jimp.HORIZONTAL_ALIGN_CENTER;
-Jimp.HORIZONTAL_ALIGN_RIGHT;
-
-Jimp.VERTICAL_ALIGN_TOP;
-Jimp.VERTICAL_ALIGN_MIDDLE;
-Jimp.VERTICAL_ALIGN_BOTTOM;
-```
-
-For example:
-
-```js
-image.cover(250, 250, Jimp.HORIZONTAL_ALIGN_LEFT | Jimp.VERTICAL_ALIGN_TOP);
-image.cover(250, 250, Jimp.HORIZONTAL_ALIGN_RIGHT | Jimp.VERTICAL_ALIGN_BOTTOM);
-```
-
-Default align mode for `image.cover` is:
-
-```js
-Jimp.HORIZONTAL_ALIGN_CENTER | Jimp.VERTICAL_ALIGN_MIDDLE;
-```
diff --git a/WechatBot/node_modules/@jimp/plugin-cover/dist/index.js b/WechatBot/node_modules/@jimp/plugin-cover/dist/index.js
deleted file mode 100755
index 9dec03819..000000000
--- a/WechatBot/node_modules/@jimp/plugin-cover/dist/index.js
+++ /dev/null
@@ -1,59 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports["default"] = void 0;
-
-var _utils = require("@jimp/utils");
-
-/**
- * Scale the image so the given width and height keeping the aspect ratio. Some parts of the image may be clipped.
- * @param {number} w the width to resize the image to
- * @param {number} h the height to resize the image to
- * @param {number} alignBits (optional) A bitmask for horizontal and vertical alignment
- * @param {string} mode (optional) a scaling method (e.g. Jimp.RESIZE_BEZIER)
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
-var _default = function _default() {
- return {
- cover: function cover(w, h, alignBits, mode, cb) {
- if (typeof w !== "number" || typeof h !== "number") {
- return _utils.throwError.call(this, "w and h must be numbers", cb);
- }
-
- if (alignBits && typeof alignBits === "function" && typeof cb === "undefined") {
- cb = alignBits;
- alignBits = null;
- mode = null;
- } else if (typeof mode === "function" && typeof cb === "undefined") {
- cb = mode;
- mode = null;
- }
-
- alignBits = alignBits || this.constructor.HORIZONTAL_ALIGN_CENTER | this.constructor.VERTICAL_ALIGN_MIDDLE;
- var hbits = alignBits & (1 << 3) - 1;
- var vbits = alignBits >> 3; // check if more flags than one is in the bit sets
-
- if (!(hbits !== 0 && !(hbits & hbits - 1) || vbits !== 0 && !(vbits & vbits - 1))) return _utils.throwError.call(this, "only use one flag per alignment direction", cb);
- var alignH = hbits >> 1; // 0, 1, 2
-
- var alignV = vbits >> 1; // 0, 1, 2
-
- var f = w / h > this.bitmap.width / this.bitmap.height ? w / this.bitmap.width : h / this.bitmap.height;
- this.scale(f, mode);
- this.crop((this.bitmap.width - w) / 2 * alignH, (this.bitmap.height - h) / 2 * alignV, w, h);
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- }
- };
-};
-
-exports["default"] = _default;
-module.exports = exports.default;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-cover/dist/index.js.map b/WechatBot/node_modules/@jimp/plugin-cover/dist/index.js.map
deleted file mode 100644
index e0713d42d..000000000
--- a/WechatBot/node_modules/@jimp/plugin-cover/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/index.js"],"names":["cover","w","h","alignBits","mode","cb","throwError","call","constructor","HORIZONTAL_ALIGN_CENTER","VERTICAL_ALIGN_MIDDLE","hbits","vbits","alignH","alignV","f","bitmap","width","height","scale","crop"],"mappings":";;;;;;;AAAA;;AAEA;;;;;;;;;eASe;AAAA,SAAO;AACpBA,IAAAA,KADoB,iBACdC,CADc,EACXC,CADW,EACRC,SADQ,EACGC,IADH,EACSC,EADT,EACa;AAC/B,UAAI,OAAOJ,CAAP,KAAa,QAAb,IAAyB,OAAOC,CAAP,KAAa,QAA1C,EAAoD;AAClD,eAAOI,kBAAWC,IAAX,CAAgB,IAAhB,EAAsB,yBAAtB,EAAiDF,EAAjD,CAAP;AACD;;AAED,UACEF,SAAS,IACT,OAAOA,SAAP,KAAqB,UADrB,IAEA,OAAOE,EAAP,KAAc,WAHhB,EAIE;AACAA,QAAAA,EAAE,GAAGF,SAAL;AACAA,QAAAA,SAAS,GAAG,IAAZ;AACAC,QAAAA,IAAI,GAAG,IAAP;AACD,OARD,MAQO,IAAI,OAAOA,IAAP,KAAgB,UAAhB,IAA8B,OAAOC,EAAP,KAAc,WAAhD,EAA6D;AAClEA,QAAAA,EAAE,GAAGD,IAAL;AACAA,QAAAA,IAAI,GAAG,IAAP;AACD;;AAEDD,MAAAA,SAAS,GACPA,SAAS,IACT,KAAKK,WAAL,CAAiBC,uBAAjB,GACE,KAAKD,WAAL,CAAiBE,qBAHrB;AAIA,UAAMC,KAAK,GAAGR,SAAS,GAAI,CAAC,KAAK,CAAN,IAAW,CAAtC;AACA,UAAMS,KAAK,GAAGT,SAAS,IAAI,CAA3B,CAvB+B,CAyB/B;;AACA,UACE,EACGQ,KAAK,KAAK,CAAV,IAAe,EAAEA,KAAK,GAAIA,KAAK,GAAG,CAAnB,CAAhB,IACCC,KAAK,KAAK,CAAV,IAAe,EAAEA,KAAK,GAAIA,KAAK,GAAG,CAAnB,CAFlB,CADF,EAME,OAAON,kBAAWC,IAAX,CACL,IADK,EAEL,2CAFK,EAGLF,EAHK,CAAP;AAMF,UAAMQ,MAAM,GAAGF,KAAK,IAAI,CAAxB,CAtC+B,CAsCJ;;AAC3B,UAAMG,MAAM,GAAGF,KAAK,IAAI,CAAxB,CAvC+B,CAuCJ;;AAE3B,UAAMG,CAAC,GACLd,CAAC,GAAGC,CAAJ,GAAQ,KAAKc,MAAL,CAAYC,KAAZ,GAAoB,KAAKD,MAAL,CAAYE,MAAxC,GACIjB,CAAC,GAAG,KAAKe,MAAL,CAAYC,KADpB,GAEIf,CAAC,GAAG,KAAKc,MAAL,CAAYE,MAHtB;AAIA,WAAKC,KAAL,CAAWJ,CAAX,EAAcX,IAAd;AACA,WAAKgB,IAAL,CACG,CAAC,KAAKJ,MAAL,CAAYC,KAAZ,GAAoBhB,CAArB,IAA0B,CAA3B,GAAgCY,MADlC,EAEG,CAAC,KAAKG,MAAL,CAAYE,MAAZ,GAAqBhB,CAAtB,IAA2B,CAA5B,GAAiCY,MAFnC,EAGEb,CAHF,EAIEC,CAJF;;AAOA,UAAI,0BAAcG,EAAd,CAAJ,EAAuB;AACrBA,QAAAA,EAAE,CAACE,IAAH,CAAQ,IAAR,EAAc,IAAd,EAAoB,IAApB;AACD;;AAED,aAAO,IAAP;AACD;AA3DmB,GAAP;AAAA,C","sourcesContent":["import { isNodePattern, throwError } from \"@jimp/utils\";\n\n/**\n * Scale the image so the given width and height keeping the aspect ratio. Some parts of the image may be clipped.\n * @param {number} w the width to resize the image to\n * @param {number} h the height to resize the image to\n * @param {number} alignBits (optional) A bitmask for horizontal and vertical alignment\n * @param {string} mode (optional) a scaling method (e.g. Jimp.RESIZE_BEZIER)\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp} this for chaining of methods\n */\nexport default () => ({\n cover(w, h, alignBits, mode, cb) {\n if (typeof w !== \"number\" || typeof h !== \"number\") {\n return throwError.call(this, \"w and h must be numbers\", cb);\n }\n\n if (\n alignBits &&\n typeof alignBits === \"function\" &&\n typeof cb === \"undefined\"\n ) {\n cb = alignBits;\n alignBits = null;\n mode = null;\n } else if (typeof mode === \"function\" && typeof cb === \"undefined\") {\n cb = mode;\n mode = null;\n }\n\n alignBits =\n alignBits ||\n this.constructor.HORIZONTAL_ALIGN_CENTER |\n this.constructor.VERTICAL_ALIGN_MIDDLE;\n const hbits = alignBits & ((1 << 3) - 1);\n const vbits = alignBits >> 3;\n\n // check if more flags than one is in the bit sets\n if (\n !(\n (hbits !== 0 && !(hbits & (hbits - 1))) ||\n (vbits !== 0 && !(vbits & (vbits - 1)))\n )\n )\n return throwError.call(\n this,\n \"only use one flag per alignment direction\",\n cb\n );\n\n const alignH = hbits >> 1; // 0, 1, 2\n const alignV = vbits >> 1; // 0, 1, 2\n\n const f =\n w / h > this.bitmap.width / this.bitmap.height\n ? w / this.bitmap.width\n : h / this.bitmap.height;\n this.scale(f, mode);\n this.crop(\n ((this.bitmap.width - w) / 2) * alignH,\n ((this.bitmap.height - h) / 2) * alignV,\n w,\n h\n );\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n },\n});\n"],"file":"index.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-cover/index.d.ts b/WechatBot/node_modules/@jimp/plugin-cover/index.d.ts
deleted file mode 100644
index 6a9e5d1cc..000000000
--- a/WechatBot/node_modules/@jimp/plugin-cover/index.d.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { ImageCallback } from "@jimp/core";
-
-interface Cover {
- cover(w: number, h: number, cb?: ImageCallback): this;
- cover(
- w: number,
- h: number,
- alignBits?: number,
- cb?: ImageCallback
- ): this;
- cover(
- w: number,
- h: number,
- alignBits?: number,
- mode?: string,
- cb?: ImageCallback
- ): this;
-}
-
-export default function (): Cover;
diff --git a/WechatBot/node_modules/@jimp/plugin-cover/package.json b/WechatBot/node_modules/@jimp/plugin-cover/package.json
deleted file mode 100644
index 0e7a6a6d1..000000000
--- a/WechatBot/node_modules/@jimp/plugin-cover/package.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "name": "@jimp/plugin-cover",
- "version": "0.16.13",
- "description": "cover an image.",
- "main": "dist/index.js",
- "module": "es/index.js",
- "types": "index.d.ts",
- "scripts": {
- "test": "cross-env BABEL_ENV=test mocha --require @babel/register",
- "test:watch": "npm run test -- --reporter min --watch",
- "test:coverage": "nyc npm run test",
- "build": "npm run build:node:production && npm run build:module",
- "build:watch": "npm run build:node:debug -- -- --watch --verbose",
- "build:debug": "npm run build:node:debug",
- "build:module": "cross-env BABEL_ENV=module babel src -d es --source-maps --config-file ../../babel.config.js",
- "build:node": "babel src -d dist --source-maps --config-file ../../babel.config.js",
- "build:node:debug": "cross-env BABEL_ENV=development npm run build:node",
- "build:node:production": "cross-env BABEL_ENV=production npm run build:node"
- },
- "author": "",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5",
- "@jimp/plugin-crop": ">=0.3.5",
- "@jimp/plugin-resize": ">=0.3.5",
- "@jimp/plugin-scale": ">=0.3.5"
- },
- "devDependencies": {
- "@jimp/custom": "^0.16.13",
- "@jimp/plugin-crop": "^0.16.13",
- "@jimp/plugin-resize": "^0.16.13",
- "@jimp/plugin-scale": "^0.16.13",
- "@jimp/test-utils": "^0.16.13"
- },
- "publishConfig": {
- "access": "public"
- },
- "gitHead": "9eec86086634329a072901dca3a800b850548572"
-}
diff --git a/WechatBot/node_modules/@jimp/plugin-cover/src/index.js b/WechatBot/node_modules/@jimp/plugin-cover/src/index.js
deleted file mode 100755
index 37a0f1b78..000000000
--- a/WechatBot/node_modules/@jimp/plugin-cover/src/index.js
+++ /dev/null
@@ -1,72 +0,0 @@
-import { isNodePattern, throwError } from "@jimp/utils";
-
-/**
- * Scale the image so the given width and height keeping the aspect ratio. Some parts of the image may be clipped.
- * @param {number} w the width to resize the image to
- * @param {number} h the height to resize the image to
- * @param {number} alignBits (optional) A bitmask for horizontal and vertical alignment
- * @param {string} mode (optional) a scaling method (e.g. Jimp.RESIZE_BEZIER)
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
-export default () => ({
- cover(w, h, alignBits, mode, cb) {
- if (typeof w !== "number" || typeof h !== "number") {
- return throwError.call(this, "w and h must be numbers", cb);
- }
-
- if (
- alignBits &&
- typeof alignBits === "function" &&
- typeof cb === "undefined"
- ) {
- cb = alignBits;
- alignBits = null;
- mode = null;
- } else if (typeof mode === "function" && typeof cb === "undefined") {
- cb = mode;
- mode = null;
- }
-
- alignBits =
- alignBits ||
- this.constructor.HORIZONTAL_ALIGN_CENTER |
- this.constructor.VERTICAL_ALIGN_MIDDLE;
- const hbits = alignBits & ((1 << 3) - 1);
- const vbits = alignBits >> 3;
-
- // check if more flags than one is in the bit sets
- if (
- !(
- (hbits !== 0 && !(hbits & (hbits - 1))) ||
- (vbits !== 0 && !(vbits & (vbits - 1)))
- )
- )
- return throwError.call(
- this,
- "only use one flag per alignment direction",
- cb
- );
-
- const alignH = hbits >> 1; // 0, 1, 2
- const alignV = vbits >> 1; // 0, 1, 2
-
- const f =
- w / h > this.bitmap.width / this.bitmap.height
- ? w / this.bitmap.width
- : h / this.bitmap.height;
- this.scale(f, mode);
- this.crop(
- ((this.bitmap.width - w) / 2) * alignH,
- ((this.bitmap.height - h) / 2) * alignV,
- w,
- h
- );
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-cover/test/cover.test.js b/WechatBot/node_modules/@jimp/plugin-cover/test/cover.test.js
deleted file mode 100755
index 121fa4421..000000000
--- a/WechatBot/node_modules/@jimp/plugin-cover/test/cover.test.js
+++ /dev/null
@@ -1,131 +0,0 @@
-import { Jimp, mkJGD, hasOwnProp } from "@jimp/test-utils";
-import configure from "@jimp/custom";
-import crop from "@jimp/plugin-crop";
-import scale from "@jimp/plugin-scale";
-import resize from "@jimp/plugin-resize";
-
-import cover from "../src";
-
-const jimp = configure({ plugins: [resize, scale, crop, cover] }, Jimp);
-
-describe("All align combinations for cover", () => {
- const verticalJGD = mkJGD(
- "▴▴▴▴▸▸▸▸",
- "▴▴▴▴▸▸▸▸",
- "▴▴▴▴▸▸▸▸",
- "▴▴▴▴▸▸▸▸",
- "▴▴▴▴▸▸▸▸",
- "▴▴▴▴▸▸▸▸",
- "▾▾▾▾◆◆◆◆",
- "▾▾▾▾◆◆◆◆",
- "▾▾▾▾◆◆◆◆",
- "▾▾▾▾◆◆◆◆",
- "▾▾▾▾◆◆◆◆",
- "▾▾▾▾◆◆◆◆"
- );
-
- const horizontalJGD = mkJGD(
- "▴▴▴▴▴▴▸▸▸▸▸▸",
- "▴▴▴▴▴▴▸▸▸▸▸▸",
- "▴▴▴▴▴▴▸▸▸▸▸▸",
- "▴▴▴▴▴▴▸▸▸▸▸▸",
- "▾▾▾▾▾▾◆◆◆◆◆◆",
- "▾▾▾▾▾▾◆◆◆◆◆◆",
- "▾▾▾▾▾▾◆◆◆◆◆◆",
- "▾▾▾▾▾▾◆◆◆◆◆◆"
- );
-
- let vertical;
- let horizontal; // stores the Jimp instances of the JGD images above.
-
- before((done) => {
- const img1 = jimp.read(verticalJGD);
- const img2 = jimp.read(horizontalJGD);
- Promise.all([img1, img2])
- .then((images) => {
- vertical = images[0];
- horizontal = images[1];
- done();
- })
- .catch(done);
- });
-
- const tests = {}; // Stores the expected result for each alignment combination.
- tests["LEFT TOP"] = {
- cover: {
- verti: mkJGD("▴▴▸▸", "▴▴▸▸", "▴▴▸▸", "▾▾◆◆"),
- horiz: mkJGD("▴▴▴▸", "▴▴▴▸", "▾▾▾◆", "▾▾▾◆"),
- },
- };
- tests["CENTER TOP"] = {
- cover: {
- verti: mkJGD("▴▴▸▸", "▴▴▸▸", "▴▴▸▸", "▾▾◆◆"),
- horiz: mkJGD("▴▴▸▸", "▴▴▸▸", "▾▾◆◆", "▾▾◆◆"),
- },
- };
- tests["RIGHT TOP"] = {
- cover: {
- verti: mkJGD("▴▴▸▸", "▴▴▸▸", "▴▴▸▸", "▾▾◆◆"),
- horiz: mkJGD("▴▸▸▸", "▴▸▸▸", "▾◆◆◆", "▾◆◆◆"),
- },
- };
-
- tests["LEFT MIDDLE"] = {
- cover: {
- verti: mkJGD("▴▴▸▸", "▴▴▸▸", "▾▾◆◆", "▾▾◆◆"),
- horiz: mkJGD("▴▴▴▸", "▴▴▴▸", "▾▾▾◆", "▾▾▾◆"),
- },
- };
- tests["CENTER MIDDLE"] = {
- cover: {
- verti: mkJGD("▴▴▸▸", "▴▴▸▸", "▾▾◆◆", "▾▾◆◆"),
- horiz: mkJGD("▴▴▸▸", "▴▴▸▸", "▾▾◆◆", "▾▾◆◆"),
- },
- };
- tests["RIGHT MIDDLE"] = {
- cover: {
- verti: mkJGD("▴▴▸▸", "▴▴▸▸", "▾▾◆◆", "▾▾◆◆"),
- horiz: mkJGD("▴▸▸▸", "▴▸▸▸", "▾◆◆◆", "▾◆◆◆"),
- },
- };
-
- tests["LEFT BOTTOM"] = {
- cover: {
- verti: mkJGD("▴▴▸▸", "▾▾◆◆", "▾▾◆◆", "▾▾◆◆"),
- horiz: mkJGD("▴▴▴▸", "▴▴▴▸", "▾▾▾◆", "▾▾▾◆"),
- },
- };
- tests["CENTER BOTTOM"] = {
- cover: {
- verti: mkJGD("▴▴▸▸", "▾▾◆◆", "▾▾◆◆", "▾▾◆◆"),
- horiz: mkJGD("▴▴▸▸", "▴▴▸▸", "▾▾◆◆", "▾▾◆◆"),
- },
- };
- tests["RIGHT BOTTOM"] = {
- cover: {
- verti: mkJGD("▴▴▸▸", "▾▾◆◆", "▾▾◆◆", "▾▾◆◆"),
- horiz: mkJGD("▴▸▸▸", "▴▸▸▸", "▾◆◆◆", "▾◆◆◆"),
- },
- };
-
- function runAlignTest(align) {
- const jgdCoverV = tests[align].cover.verti;
- const jgdCoverH = tests[align].cover.horiz;
- let a = align.split(" ");
- a = Jimp["HORIZONTAL_ALIGN_" + a[0]] | Jimp["VERTICAL_ALIGN_" + a[1]];
- it("cover aligned to " + align, () => {
- vertical
- .clone()
- .cover(4, 4, a)
- .getJGDSync()
- .should.be.sameJGD(jgdCoverV, "Vertical image");
- horizontal
- .clone()
- .cover(4, 4, a)
- .getJGDSync()
- .should.be.sameJGD(jgdCoverH, "Horizontal image");
- });
- }
-
- for (const align in tests) if (hasOwnProp(tests, align)) runAlignTest(align);
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-crop/CHANGELOG.md b/WechatBot/node_modules/@jimp/plugin-crop/CHANGELOG.md
deleted file mode 100644
index bfa0db7b8..000000000
--- a/WechatBot/node_modules/@jimp/plugin-crop/CHANGELOG.md
+++ /dev/null
@@ -1,52 +0,0 @@
-# v0.16.3 (Sat Feb 04 2023)
-
-#### 🐛 Bug Fix
-
-- fixed plugin-crop full width slices math [#1073](https://github.com/jimp-dev/jimp/pull/1073) ([@endreszabo](https://github.com/endreszabo))
-
-#### ⚠️ Pushed to `master`
-
-- upgrade prettier ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 2
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- Endre Szabo ([@endreszabo](https://github.com/endreszabo))
-
----
-
-# v0.16.0 (Sat Aug 08 2020)
-
-#### 🚀 Enhancement
-
-- added ability to ignore sides on autocrop [#924](https://github.com/oliver-moran/jimp/pull/924) ([@cbanfiel](https://github.com/cbanfiel))
-
-#### Authors: 1
-
-- Chad Banfield ([@cbanfiel](https://github.com/cbanfiel))
-
----
-
-# v0.11.0 (Fri May 15 2020)
-
-#### 🚀 Enhancement
-
-- Removed Core-JS as a dependency. [#882](https://github.com/oliver-moran/jimp/pull/882) ([@EricRabil](https://github.com/EricRabil))
-
-#### Authors: 1
-
-- Eric Rabil ([@EricRabil](https://github.com/EricRabil))
-
----
-
-# v0.9.3 (Tue Nov 26 2019)
-
-#### 🐛 Bug Fix
-
-- `@jimp/cli`, `@jimp/core`, `@jimp/custom`, `jimp`, `@jimp/plugin-blit`, `@jimp/plugin-blur`, `@jimp/plugin-circle`, `@jimp/plugin-color`, `@jimp/plugin-contain`, `@jimp/plugin-cover`, `@jimp/plugin-crop`, `@jimp/plugin-displace`, `@jimp/plugin-dither`, `@jimp/plugin-fisheye`, `@jimp/plugin-flip`, `@jimp/plugin-gaussian`, `@jimp/plugin-invert`, `@jimp/plugin-mask`, `@jimp/plugin-normalize`, `@jimp/plugin-print`, `@jimp/plugin-resize`, `@jimp/plugin-rotate`, `@jimp/plugin-scale`, `@jimp/plugin-shadow`, `@jimp/plugin-threshold`, `@jimp/plugins`, `@jimp/test-utils`, `@jimp/bmp`, `@jimp/gif`, `@jimp/jpeg`, `@jimp/png`, `@jimp/tiff`, `@jimp/types`, `@jimp/utils`
- - Fix regeneratorRuntime errors [#815](https://github.com/oliver-moran/jimp/pull/815) ([@crutchcorn](https://github.com/crutchcorn) [@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 2
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
diff --git a/WechatBot/node_modules/@jimp/plugin-crop/LICENSE b/WechatBot/node_modules/@jimp/plugin-crop/LICENSE
deleted file mode 100644
index baa5d4850..000000000
--- a/WechatBot/node_modules/@jimp/plugin-crop/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Oliver Moran
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/WechatBot/node_modules/@jimp/plugin-crop/README.md b/WechatBot/node_modules/@jimp/plugin-crop/README.md
deleted file mode 100644
index 64689368f..000000000
--- a/WechatBot/node_modules/@jimp/plugin-crop/README.md
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
-
@jimp/plugin-crop
-
Crop an image.
-
-
-## Crop
-
-Crops the image at a given point to a give size
-
-- @param {number} x the x coordinate to crop form
-- @param {number} y the y coordinate to crop form
-- @param w the width of the crop region
-- @param h the height of the crop region
-- @param {function(Error, Jimp)} cb (optional) a callback for when complete
-
-```js
-import jimp from "jimp";
-
-async function main() {
- const image = await jimp.read("test/image.png");
-
- image.crop(150, 150);
-}
-
-main();
-```
-
-## AutoCrop
-
-AutoCrop same color borders from this image
-
-- @param {number} tolerance (optional): a percent value of tolerance for pixels color difference (default: 0.0002%)
-- @param {boolean} cropOnlyFrames (optional): flag to crop only real frames: all 4 sides of the image must have some border (default: true)
-
-or
-
-- @param {object} options object
- - tolerance (optional): a percent value of tolerance for pixels color difference (default: 0.0002%)
- - cropOnlyFrames (optional): flag to crop only real frames: all 4 sides of the image must have some border (default: true)
- - cropSymmetric (optional): flag to force cropping top be symmetric. north and south / east and west are cropped by the same value
- - leaveBorder (optional): integer of how many pixels of the background color to leave around the image
-
-```js
-import jimp from "jimp";
-
-async function main() {
- const image = await jimp.read("test/image.png");
-
- image.autocrop();
- image.autocrop({ cropOnlyFrames: false, cropSymmetric: true });
-}
-
-main();
-```
diff --git a/WechatBot/node_modules/@jimp/plugin-crop/dist/index.js b/WechatBot/node_modules/@jimp/plugin-crop/dist/index.js
deleted file mode 100755
index 1b58ec6ae..000000000
--- a/WechatBot/node_modules/@jimp/plugin-crop/dist/index.js
+++ /dev/null
@@ -1,287 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports["default"] = pluginCrop;
-
-var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
-
-var _utils = require("@jimp/utils");
-
-/* eslint-disable no-labels */
-function pluginCrop(event) {
- /**
- * Crops the image at a given point to a give size
- * @param {number} x the x coordinate to crop form
- * @param {number} y the y coordinate to crop form
- * @param w the width of the crop region
- * @param h the height of the crop region
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
- event("crop", function (x, y, w, h, cb) {
- if (typeof x !== "number" || typeof y !== "number") return _utils.throwError.call(this, "x and y must be numbers", cb);
- if (typeof w !== "number" || typeof h !== "number") return _utils.throwError.call(this, "w and h must be numbers", cb); // round input
-
- x = Math.round(x);
- y = Math.round(y);
- w = Math.round(w);
- h = Math.round(h);
-
- if (x === 0 && w === this.bitmap.width) {
- // shortcut
- var start = w * y + x << 2;
- var end = start + (h * w << 2);
- this.bitmap.data = this.bitmap.data.slice(start, end);
- } else {
- var bitmap = Buffer.allocUnsafe(w * h * 4);
- var offset = 0;
- this.scanQuiet(x, y, w, h, function (x, y, idx) {
- var data = this.bitmap.data.readUInt32BE(idx, true);
- bitmap.writeUInt32BE(data, offset, true);
- offset += 4;
- });
- this.bitmap.data = bitmap;
- }
-
- this.bitmap.width = w;
- this.bitmap.height = h;
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- });
- return {
- "class": {
- /**
- * Autocrop same color borders from this image
- * @param {number} tolerance (optional): a percent value of tolerance for pixels color difference (default: 0.0002%)
- * @param {boolean} cropOnlyFrames (optional): flag to crop only real frames: all 4 sides of the image must have some border (default: true)
- * @param {function(Error, Jimp)} cb (optional): a callback for when complete (default: no callback)
- * @returns {Jimp} this for chaining of methods
- */
- autocrop: function autocrop() {
- var w = this.bitmap.width;
- var h = this.bitmap.height;
- var minPixelsPerSide = 1; // to avoid cropping completely the image, resulting in an invalid 0 sized image
-
- var cb; // callback
-
- var leaveBorder = 0; // Amount of pixels in border to leave
-
- var tolerance = 0.0002; // percent of color difference tolerance (default value)
-
- var cropOnlyFrames = true; // flag to force cropping only if the image has a real "frame"
- // i.e. all 4 sides have some border (default value)
-
- var cropSymmetric = false; // flag to force cropping top be symmetric.
- // i.e. north and south / east and west are cropped by the same value
-
- var ignoreSides = {
- north: false,
- south: false,
- east: false,
- west: false
- }; // parse arguments
-
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
-
- for (var a = 0, len = args.length; a < len; a++) {
- if (typeof args[a] === "number") {
- // tolerance value passed
- tolerance = args[a];
- }
-
- if (typeof args[a] === "boolean") {
- // cropOnlyFrames value passed
- cropOnlyFrames = args[a];
- }
-
- if (typeof args[a] === "function") {
- // callback value passed
- cb = args[a];
- }
-
- if ((0, _typeof2["default"])(args[a]) === "object") {
- // config object passed
- var config = args[a];
-
- if (typeof config.tolerance !== "undefined") {
- tolerance = config.tolerance;
- }
-
- if (typeof config.cropOnlyFrames !== "undefined") {
- cropOnlyFrames = config.cropOnlyFrames;
- }
-
- if (typeof config.cropSymmetric !== "undefined") {
- cropSymmetric = config.cropSymmetric;
- }
-
- if (typeof config.leaveBorder !== "undefined") {
- leaveBorder = config.leaveBorder;
- }
-
- if (typeof config.ignoreSides !== "undefined") {
- ignoreSides = config.ignoreSides;
- }
- }
- }
- /**
- * All borders must be of the same color as the top left pixel, to be cropped.
- * It should be possible to crop borders each with a different color,
- * but since there are many ways for corners to intersect, it would
- * introduce unnecessary complexity to the algorithm.
- */
- // scan each side for same color borders
-
-
- var colorTarget = this.getPixelColor(0, 0); // top left pixel color is the target color
-
- var rgba1 = this.constructor.intToRGBA(colorTarget); // for north and east sides
-
- var northPixelsToCrop = 0;
- var eastPixelsToCrop = 0;
- var southPixelsToCrop = 0;
- var westPixelsToCrop = 0; // north side (scan rows from north to south)
-
- colorTarget = this.getPixelColor(0, 0);
-
- if (!ignoreSides.north) {
- north: for (var y = 0; y < h - minPixelsPerSide; y++) {
- for (var x = 0; x < w; x++) {
- var colorXY = this.getPixelColor(x, y);
- var rgba2 = this.constructor.intToRGBA(colorXY);
-
- if (this.constructor.colorDiff(rgba1, rgba2) > tolerance) {
- // this pixel is too distant from the first one: abort this side scan
- break north;
- }
- } // this row contains all pixels with the same color: increment this side pixels to crop
-
-
- northPixelsToCrop++;
- }
- } // east side (scan columns from east to west)
-
-
- colorTarget = this.getPixelColor(w, 0);
-
- if (!ignoreSides.east) {
- east: for (var _x = 0; _x < w - minPixelsPerSide; _x++) {
- for (var _y = 0 + northPixelsToCrop; _y < h; _y++) {
- var _colorXY = this.getPixelColor(_x, _y);
-
- var _rgba = this.constructor.intToRGBA(_colorXY);
-
- if (this.constructor.colorDiff(rgba1, _rgba) > tolerance) {
- // this pixel is too distant from the first one: abort this side scan
- break east;
- }
- } // this column contains all pixels with the same color: increment this side pixels to crop
-
-
- eastPixelsToCrop++;
- }
- } // south side (scan rows from south to north)
-
-
- colorTarget = this.getPixelColor(0, h);
-
- if (!ignoreSides.south) {
- south: for (var _y2 = h - 1; _y2 >= northPixelsToCrop + minPixelsPerSide; _y2--) {
- for (var _x2 = w - eastPixelsToCrop - 1; _x2 >= 0; _x2--) {
- var _colorXY2 = this.getPixelColor(_x2, _y2);
-
- var _rgba2 = this.constructor.intToRGBA(_colorXY2);
-
- if (this.constructor.colorDiff(rgba1, _rgba2) > tolerance) {
- // this pixel is too distant from the first one: abort this side scan
- break south;
- }
- } // this row contains all pixels with the same color: increment this side pixels to crop
-
-
- southPixelsToCrop++;
- }
- } // west side (scan columns from west to east)
-
-
- colorTarget = this.getPixelColor(w, h);
-
- if (!ignoreSides.west) {
- west: for (var _x3 = w - 1; _x3 >= 0 + eastPixelsToCrop + minPixelsPerSide; _x3--) {
- for (var _y3 = h - 1; _y3 >= 0 + northPixelsToCrop; _y3--) {
- var _colorXY3 = this.getPixelColor(_x3, _y3);
-
- var _rgba3 = this.constructor.intToRGBA(_colorXY3);
-
- if (this.constructor.colorDiff(rgba1, _rgba3) > tolerance) {
- // this pixel is too distant from the first one: abort this side scan
- break west;
- }
- } // this column contains all pixels with the same color: increment this side pixels to crop
-
-
- westPixelsToCrop++;
- }
- } // decide if a crop is needed
-
-
- var doCrop = false; // apply leaveBorder
-
- westPixelsToCrop -= leaveBorder;
- eastPixelsToCrop -= leaveBorder;
- northPixelsToCrop -= leaveBorder;
- southPixelsToCrop -= leaveBorder;
-
- if (cropSymmetric) {
- var horizontal = Math.min(eastPixelsToCrop, westPixelsToCrop);
- var vertical = Math.min(northPixelsToCrop, southPixelsToCrop);
- westPixelsToCrop = horizontal;
- eastPixelsToCrop = horizontal;
- northPixelsToCrop = vertical;
- southPixelsToCrop = vertical;
- } // make sure that crops are >= 0
-
-
- westPixelsToCrop = westPixelsToCrop >= 0 ? westPixelsToCrop : 0;
- eastPixelsToCrop = eastPixelsToCrop >= 0 ? eastPixelsToCrop : 0;
- northPixelsToCrop = northPixelsToCrop >= 0 ? northPixelsToCrop : 0;
- southPixelsToCrop = southPixelsToCrop >= 0 ? southPixelsToCrop : 0; // safety checks
-
- var widthOfRemainingPixels = w - (westPixelsToCrop + eastPixelsToCrop);
- var heightOfRemainingPixels = h - (southPixelsToCrop + northPixelsToCrop);
-
- if (cropOnlyFrames) {
- // crop image if all sides should be cropped
- doCrop = eastPixelsToCrop !== 0 && northPixelsToCrop !== 0 && westPixelsToCrop !== 0 && southPixelsToCrop !== 0;
- } else {
- // crop image if at least one side should be cropped
- doCrop = eastPixelsToCrop !== 0 || northPixelsToCrop !== 0 || westPixelsToCrop !== 0 || southPixelsToCrop !== 0;
- }
-
- if (doCrop) {
- // do the real crop
- this.crop(eastPixelsToCrop, northPixelsToCrop, widthOfRemainingPixels, heightOfRemainingPixels);
- }
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- }
- }
- };
-}
-
-module.exports = exports.default;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-crop/dist/index.js.map b/WechatBot/node_modules/@jimp/plugin-crop/dist/index.js.map
deleted file mode 100644
index 8edd88356..000000000
--- a/WechatBot/node_modules/@jimp/plugin-crop/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/index.js"],"names":["pluginCrop","event","x","y","w","h","cb","throwError","call","Math","round","bitmap","width","start","end","data","slice","Buffer","allocUnsafe","offset","scanQuiet","idx","readUInt32BE","writeUInt32BE","height","autocrop","minPixelsPerSide","leaveBorder","tolerance","cropOnlyFrames","cropSymmetric","ignoreSides","north","south","east","west","args","a","len","length","config","colorTarget","getPixelColor","rgba1","constructor","intToRGBA","northPixelsToCrop","eastPixelsToCrop","southPixelsToCrop","westPixelsToCrop","colorXY","rgba2","colorDiff","doCrop","horizontal","min","vertical","widthOfRemainingPixels","heightOfRemainingPixels","crop"],"mappings":"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","sourcesContent":["/* eslint-disable no-labels */\n\nimport { throwError, isNodePattern } from \"@jimp/utils\";\n\nexport default function pluginCrop(event) {\n /**\n * Crops the image at a given point to a give size\n * @param {number} x the x coordinate to crop form\n * @param {number} y the y coordinate to crop form\n * @param w the width of the crop region\n * @param h the height of the crop region\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp} this for chaining of methods\n */\n event(\"crop\", function (x, y, w, h, cb) {\n if (typeof x !== \"number\" || typeof y !== \"number\")\n return throwError.call(this, \"x and y must be numbers\", cb);\n if (typeof w !== \"number\" || typeof h !== \"number\")\n return throwError.call(this, \"w and h must be numbers\", cb);\n\n // round input\n x = Math.round(x);\n y = Math.round(y);\n w = Math.round(w);\n h = Math.round(h);\n\n if (x === 0 && w === this.bitmap.width) {\n // shortcut\n const start = (w * y + x) << 2;\n const end = start + ((h * w) << 2);\n\n this.bitmap.data = this.bitmap.data.slice(start, end);\n } else {\n const bitmap = Buffer.allocUnsafe(w * h * 4);\n let offset = 0;\n\n this.scanQuiet(x, y, w, h, function (x, y, idx) {\n const data = this.bitmap.data.readUInt32BE(idx, true);\n bitmap.writeUInt32BE(data, offset, true);\n offset += 4;\n });\n\n this.bitmap.data = bitmap;\n }\n\n this.bitmap.width = w;\n this.bitmap.height = h;\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n });\n\n return {\n class: {\n /**\n * Autocrop same color borders from this image\n * @param {number} tolerance (optional): a percent value of tolerance for pixels color difference (default: 0.0002%)\n * @param {boolean} cropOnlyFrames (optional): flag to crop only real frames: all 4 sides of the image must have some border (default: true)\n * @param {function(Error, Jimp)} cb (optional): a callback for when complete (default: no callback)\n * @returns {Jimp} this for chaining of methods\n */\n autocrop(...args) {\n const w = this.bitmap.width;\n const h = this.bitmap.height;\n const minPixelsPerSide = 1; // to avoid cropping completely the image, resulting in an invalid 0 sized image\n\n let cb; // callback\n let leaveBorder = 0; // Amount of pixels in border to leave\n let tolerance = 0.0002; // percent of color difference tolerance (default value)\n let cropOnlyFrames = true; // flag to force cropping only if the image has a real \"frame\"\n // i.e. all 4 sides have some border (default value)\n let cropSymmetric = false; // flag to force cropping top be symmetric.\n // i.e. north and south / east and west are cropped by the same value\n let ignoreSides = {\n north: false,\n south: false,\n east: false,\n west: false,\n };\n\n // parse arguments\n for (let a = 0, len = args.length; a < len; a++) {\n if (typeof args[a] === \"number\") {\n // tolerance value passed\n tolerance = args[a];\n }\n\n if (typeof args[a] === \"boolean\") {\n // cropOnlyFrames value passed\n cropOnlyFrames = args[a];\n }\n\n if (typeof args[a] === \"function\") {\n // callback value passed\n cb = args[a];\n }\n\n if (typeof args[a] === \"object\") {\n // config object passed\n const config = args[a];\n\n if (typeof config.tolerance !== \"undefined\") {\n ({ tolerance } = config);\n }\n\n if (typeof config.cropOnlyFrames !== \"undefined\") {\n ({ cropOnlyFrames } = config);\n }\n\n if (typeof config.cropSymmetric !== \"undefined\") {\n ({ cropSymmetric } = config);\n }\n\n if (typeof config.leaveBorder !== \"undefined\") {\n ({ leaveBorder } = config);\n }\n\n if (typeof config.ignoreSides !== \"undefined\") {\n ({ ignoreSides } = config);\n }\n }\n }\n\n /**\n * All borders must be of the same color as the top left pixel, to be cropped.\n * It should be possible to crop borders each with a different color,\n * but since there are many ways for corners to intersect, it would\n * introduce unnecessary complexity to the algorithm.\n */\n\n // scan each side for same color borders\n let colorTarget = this.getPixelColor(0, 0); // top left pixel color is the target color\n const rgba1 = this.constructor.intToRGBA(colorTarget);\n\n // for north and east sides\n let northPixelsToCrop = 0;\n let eastPixelsToCrop = 0;\n let southPixelsToCrop = 0;\n let westPixelsToCrop = 0;\n\n // north side (scan rows from north to south)\n colorTarget = this.getPixelColor(0, 0);\n if (!ignoreSides.north) {\n north: for (let y = 0; y < h - minPixelsPerSide; y++) {\n for (let x = 0; x < w; x++) {\n const colorXY = this.getPixelColor(x, y);\n const rgba2 = this.constructor.intToRGBA(colorXY);\n\n if (this.constructor.colorDiff(rgba1, rgba2) > tolerance) {\n // this pixel is too distant from the first one: abort this side scan\n break north;\n }\n }\n\n // this row contains all pixels with the same color: increment this side pixels to crop\n northPixelsToCrop++;\n }\n }\n\n // east side (scan columns from east to west)\n colorTarget = this.getPixelColor(w, 0);\n if (!ignoreSides.east) {\n east: for (let x = 0; x < w - minPixelsPerSide; x++) {\n for (let y = 0 + northPixelsToCrop; y < h; y++) {\n const colorXY = this.getPixelColor(x, y);\n const rgba2 = this.constructor.intToRGBA(colorXY);\n\n if (this.constructor.colorDiff(rgba1, rgba2) > tolerance) {\n // this pixel is too distant from the first one: abort this side scan\n break east;\n }\n }\n\n // this column contains all pixels with the same color: increment this side pixels to crop\n eastPixelsToCrop++;\n }\n }\n\n // south side (scan rows from south to north)\n colorTarget = this.getPixelColor(0, h);\n\n if (!ignoreSides.south) {\n south: for (\n let y = h - 1;\n y >= northPixelsToCrop + minPixelsPerSide;\n y--\n ) {\n for (let x = w - eastPixelsToCrop - 1; x >= 0; x--) {\n const colorXY = this.getPixelColor(x, y);\n const rgba2 = this.constructor.intToRGBA(colorXY);\n\n if (this.constructor.colorDiff(rgba1, rgba2) > tolerance) {\n // this pixel is too distant from the first one: abort this side scan\n break south;\n }\n }\n\n // this row contains all pixels with the same color: increment this side pixels to crop\n southPixelsToCrop++;\n }\n }\n\n // west side (scan columns from west to east)\n colorTarget = this.getPixelColor(w, h);\n if (!ignoreSides.west) {\n west: for (\n let x = w - 1;\n x >= 0 + eastPixelsToCrop + minPixelsPerSide;\n x--\n ) {\n for (let y = h - 1; y >= 0 + northPixelsToCrop; y--) {\n const colorXY = this.getPixelColor(x, y);\n const rgba2 = this.constructor.intToRGBA(colorXY);\n\n if (this.constructor.colorDiff(rgba1, rgba2) > tolerance) {\n // this pixel is too distant from the first one: abort this side scan\n break west;\n }\n }\n\n // this column contains all pixels with the same color: increment this side pixels to crop\n westPixelsToCrop++;\n }\n }\n\n // decide if a crop is needed\n let doCrop = false;\n\n // apply leaveBorder\n westPixelsToCrop -= leaveBorder;\n eastPixelsToCrop -= leaveBorder;\n northPixelsToCrop -= leaveBorder;\n southPixelsToCrop -= leaveBorder;\n\n if (cropSymmetric) {\n const horizontal = Math.min(eastPixelsToCrop, westPixelsToCrop);\n const vertical = Math.min(northPixelsToCrop, southPixelsToCrop);\n westPixelsToCrop = horizontal;\n eastPixelsToCrop = horizontal;\n northPixelsToCrop = vertical;\n southPixelsToCrop = vertical;\n }\n\n // make sure that crops are >= 0\n westPixelsToCrop = westPixelsToCrop >= 0 ? westPixelsToCrop : 0;\n eastPixelsToCrop = eastPixelsToCrop >= 0 ? eastPixelsToCrop : 0;\n northPixelsToCrop = northPixelsToCrop >= 0 ? northPixelsToCrop : 0;\n southPixelsToCrop = southPixelsToCrop >= 0 ? southPixelsToCrop : 0;\n\n // safety checks\n const widthOfRemainingPixels =\n w - (westPixelsToCrop + eastPixelsToCrop);\n const heightOfRemainingPixels =\n h - (southPixelsToCrop + northPixelsToCrop);\n\n if (cropOnlyFrames) {\n // crop image if all sides should be cropped\n doCrop =\n eastPixelsToCrop !== 0 &&\n northPixelsToCrop !== 0 &&\n westPixelsToCrop !== 0 &&\n southPixelsToCrop !== 0;\n } else {\n // crop image if at least one side should be cropped\n doCrop =\n eastPixelsToCrop !== 0 ||\n northPixelsToCrop !== 0 ||\n westPixelsToCrop !== 0 ||\n southPixelsToCrop !== 0;\n }\n\n if (doCrop) {\n // do the real crop\n this.crop(\n eastPixelsToCrop,\n northPixelsToCrop,\n widthOfRemainingPixels,\n heightOfRemainingPixels\n );\n }\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n },\n },\n };\n}\n"],"file":"index.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-crop/index.d.ts b/WechatBot/node_modules/@jimp/plugin-crop/index.d.ts
deleted file mode 100644
index 48550b4f0..000000000
--- a/WechatBot/node_modules/@jimp/plugin-crop/index.d.ts
+++ /dev/null
@@ -1,46 +0,0 @@
-import { Jimp, ImageCallback } from "@jimp/core";
-
-interface CropClass {
- crop(
- x: number,
- y: number,
- w: number,
- h: number,
- cb?: ImageCallback
- ): this;
- cropQuiet(
- x: number,
- y: number,
- w: number,
- h: number,
- cb?: ImageCallback
- ): this;
- autocrop(tolerance?: number, cb?: ImageCallback): this;
- autocrop(cropOnlyFrames?: boolean, cb?: ImageCallback): this;
- autocrop(
- tolerance?: number,
- cropOnlyFrames?: boolean,
- cb?: ImageCallback
- ): this;
- autocrop(
- options: {
- tolerance?: number;
- cropOnlyFrames?: boolean;
- cropSymmetric?: boolean;
- leaveBorder?: number;
- ignoreSides?: {
- north: boolean;
- south: boolean;
- east: boolean;
- west: boolean;
- };
- },
- cb?: ImageCallback
- ): this;
-}
-
-interface Crop {
- class: CropClass;
-}
-
-export default function (): Crop;
diff --git a/WechatBot/node_modules/@jimp/plugin-crop/package.json b/WechatBot/node_modules/@jimp/plugin-crop/package.json
deleted file mode 100644
index ec1f3e564..000000000
--- a/WechatBot/node_modules/@jimp/plugin-crop/package.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "name": "@jimp/plugin-crop",
- "version": "0.16.13",
- "description": "crop an image.",
- "main": "dist/index.js",
- "module": "es/index.js",
- "types": "index.d.ts",
- "scripts": {
- "test": "cross-env BABEL_ENV=test mocha --require @babel/register",
- "test:watch": "npm run test -- --reporter min --watch",
- "test:coverage": "nyc npm run test",
- "build": "npm run build:node:production && npm run build:module",
- "build:watch": "npm run build:node:debug -- -- --watch --verbose",
- "build:debug": "npm run build:node:debug",
- "build:module": "cross-env BABEL_ENV=module babel src -d es --source-maps --config-file ../../babel.config.js",
- "build:node": "babel src -d dist --source-maps --config-file ../../babel.config.js",
- "build:node:debug": "cross-env BABEL_ENV=development npm run build:node",
- "build:node:production": "cross-env BABEL_ENV=production npm run build:node"
- },
- "author": "",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "devDependencies": {
- "@jimp/custom": "^0.16.13",
- "@jimp/test-utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- },
- "publishConfig": {
- "access": "public"
- },
- "gitHead": "9eec86086634329a072901dca3a800b850548572"
-}
diff --git a/WechatBot/node_modules/@jimp/plugin-crop/src/index.js b/WechatBot/node_modules/@jimp/plugin-crop/src/index.js
deleted file mode 100755
index 5cb13d47f..000000000
--- a/WechatBot/node_modules/@jimp/plugin-crop/src/index.js
+++ /dev/null
@@ -1,293 +0,0 @@
-/* eslint-disable no-labels */
-
-import { throwError, isNodePattern } from "@jimp/utils";
-
-export default function pluginCrop(event) {
- /**
- * Crops the image at a given point to a give size
- * @param {number} x the x coordinate to crop form
- * @param {number} y the y coordinate to crop form
- * @param w the width of the crop region
- * @param h the height of the crop region
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
- event("crop", function (x, y, w, h, cb) {
- if (typeof x !== "number" || typeof y !== "number")
- return throwError.call(this, "x and y must be numbers", cb);
- if (typeof w !== "number" || typeof h !== "number")
- return throwError.call(this, "w and h must be numbers", cb);
-
- // round input
- x = Math.round(x);
- y = Math.round(y);
- w = Math.round(w);
- h = Math.round(h);
-
- if (x === 0 && w === this.bitmap.width) {
- // shortcut
- const start = (w * y + x) << 2;
- const end = start + ((h * w) << 2);
-
- this.bitmap.data = this.bitmap.data.slice(start, end);
- } else {
- const bitmap = Buffer.allocUnsafe(w * h * 4);
- let offset = 0;
-
- this.scanQuiet(x, y, w, h, function (x, y, idx) {
- const data = this.bitmap.data.readUInt32BE(idx, true);
- bitmap.writeUInt32BE(data, offset, true);
- offset += 4;
- });
-
- this.bitmap.data = bitmap;
- }
-
- this.bitmap.width = w;
- this.bitmap.height = h;
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- });
-
- return {
- class: {
- /**
- * Autocrop same color borders from this image
- * @param {number} tolerance (optional): a percent value of tolerance for pixels color difference (default: 0.0002%)
- * @param {boolean} cropOnlyFrames (optional): flag to crop only real frames: all 4 sides of the image must have some border (default: true)
- * @param {function(Error, Jimp)} cb (optional): a callback for when complete (default: no callback)
- * @returns {Jimp} this for chaining of methods
- */
- autocrop(...args) {
- const w = this.bitmap.width;
- const h = this.bitmap.height;
- const minPixelsPerSide = 1; // to avoid cropping completely the image, resulting in an invalid 0 sized image
-
- let cb; // callback
- let leaveBorder = 0; // Amount of pixels in border to leave
- let tolerance = 0.0002; // percent of color difference tolerance (default value)
- let cropOnlyFrames = true; // flag to force cropping only if the image has a real "frame"
- // i.e. all 4 sides have some border (default value)
- let cropSymmetric = false; // flag to force cropping top be symmetric.
- // i.e. north and south / east and west are cropped by the same value
- let ignoreSides = {
- north: false,
- south: false,
- east: false,
- west: false,
- };
-
- // parse arguments
- for (let a = 0, len = args.length; a < len; a++) {
- if (typeof args[a] === "number") {
- // tolerance value passed
- tolerance = args[a];
- }
-
- if (typeof args[a] === "boolean") {
- // cropOnlyFrames value passed
- cropOnlyFrames = args[a];
- }
-
- if (typeof args[a] === "function") {
- // callback value passed
- cb = args[a];
- }
-
- if (typeof args[a] === "object") {
- // config object passed
- const config = args[a];
-
- if (typeof config.tolerance !== "undefined") {
- ({ tolerance } = config);
- }
-
- if (typeof config.cropOnlyFrames !== "undefined") {
- ({ cropOnlyFrames } = config);
- }
-
- if (typeof config.cropSymmetric !== "undefined") {
- ({ cropSymmetric } = config);
- }
-
- if (typeof config.leaveBorder !== "undefined") {
- ({ leaveBorder } = config);
- }
-
- if (typeof config.ignoreSides !== "undefined") {
- ({ ignoreSides } = config);
- }
- }
- }
-
- /**
- * All borders must be of the same color as the top left pixel, to be cropped.
- * It should be possible to crop borders each with a different color,
- * but since there are many ways for corners to intersect, it would
- * introduce unnecessary complexity to the algorithm.
- */
-
- // scan each side for same color borders
- let colorTarget = this.getPixelColor(0, 0); // top left pixel color is the target color
- const rgba1 = this.constructor.intToRGBA(colorTarget);
-
- // for north and east sides
- let northPixelsToCrop = 0;
- let eastPixelsToCrop = 0;
- let southPixelsToCrop = 0;
- let westPixelsToCrop = 0;
-
- // north side (scan rows from north to south)
- colorTarget = this.getPixelColor(0, 0);
- if (!ignoreSides.north) {
- north: for (let y = 0; y < h - minPixelsPerSide; y++) {
- for (let x = 0; x < w; x++) {
- const colorXY = this.getPixelColor(x, y);
- const rgba2 = this.constructor.intToRGBA(colorXY);
-
- if (this.constructor.colorDiff(rgba1, rgba2) > tolerance) {
- // this pixel is too distant from the first one: abort this side scan
- break north;
- }
- }
-
- // this row contains all pixels with the same color: increment this side pixels to crop
- northPixelsToCrop++;
- }
- }
-
- // east side (scan columns from east to west)
- colorTarget = this.getPixelColor(w, 0);
- if (!ignoreSides.east) {
- east: for (let x = 0; x < w - minPixelsPerSide; x++) {
- for (let y = 0 + northPixelsToCrop; y < h; y++) {
- const colorXY = this.getPixelColor(x, y);
- const rgba2 = this.constructor.intToRGBA(colorXY);
-
- if (this.constructor.colorDiff(rgba1, rgba2) > tolerance) {
- // this pixel is too distant from the first one: abort this side scan
- break east;
- }
- }
-
- // this column contains all pixels with the same color: increment this side pixels to crop
- eastPixelsToCrop++;
- }
- }
-
- // south side (scan rows from south to north)
- colorTarget = this.getPixelColor(0, h);
-
- if (!ignoreSides.south) {
- south: for (
- let y = h - 1;
- y >= northPixelsToCrop + minPixelsPerSide;
- y--
- ) {
- for (let x = w - eastPixelsToCrop - 1; x >= 0; x--) {
- const colorXY = this.getPixelColor(x, y);
- const rgba2 = this.constructor.intToRGBA(colorXY);
-
- if (this.constructor.colorDiff(rgba1, rgba2) > tolerance) {
- // this pixel is too distant from the first one: abort this side scan
- break south;
- }
- }
-
- // this row contains all pixels with the same color: increment this side pixels to crop
- southPixelsToCrop++;
- }
- }
-
- // west side (scan columns from west to east)
- colorTarget = this.getPixelColor(w, h);
- if (!ignoreSides.west) {
- west: for (
- let x = w - 1;
- x >= 0 + eastPixelsToCrop + minPixelsPerSide;
- x--
- ) {
- for (let y = h - 1; y >= 0 + northPixelsToCrop; y--) {
- const colorXY = this.getPixelColor(x, y);
- const rgba2 = this.constructor.intToRGBA(colorXY);
-
- if (this.constructor.colorDiff(rgba1, rgba2) > tolerance) {
- // this pixel is too distant from the first one: abort this side scan
- break west;
- }
- }
-
- // this column contains all pixels with the same color: increment this side pixels to crop
- westPixelsToCrop++;
- }
- }
-
- // decide if a crop is needed
- let doCrop = false;
-
- // apply leaveBorder
- westPixelsToCrop -= leaveBorder;
- eastPixelsToCrop -= leaveBorder;
- northPixelsToCrop -= leaveBorder;
- southPixelsToCrop -= leaveBorder;
-
- if (cropSymmetric) {
- const horizontal = Math.min(eastPixelsToCrop, westPixelsToCrop);
- const vertical = Math.min(northPixelsToCrop, southPixelsToCrop);
- westPixelsToCrop = horizontal;
- eastPixelsToCrop = horizontal;
- northPixelsToCrop = vertical;
- southPixelsToCrop = vertical;
- }
-
- // make sure that crops are >= 0
- westPixelsToCrop = westPixelsToCrop >= 0 ? westPixelsToCrop : 0;
- eastPixelsToCrop = eastPixelsToCrop >= 0 ? eastPixelsToCrop : 0;
- northPixelsToCrop = northPixelsToCrop >= 0 ? northPixelsToCrop : 0;
- southPixelsToCrop = southPixelsToCrop >= 0 ? southPixelsToCrop : 0;
-
- // safety checks
- const widthOfRemainingPixels =
- w - (westPixelsToCrop + eastPixelsToCrop);
- const heightOfRemainingPixels =
- h - (southPixelsToCrop + northPixelsToCrop);
-
- if (cropOnlyFrames) {
- // crop image if all sides should be cropped
- doCrop =
- eastPixelsToCrop !== 0 &&
- northPixelsToCrop !== 0 &&
- westPixelsToCrop !== 0 &&
- southPixelsToCrop !== 0;
- } else {
- // crop image if at least one side should be cropped
- doCrop =
- eastPixelsToCrop !== 0 ||
- northPixelsToCrop !== 0 ||
- westPixelsToCrop !== 0 ||
- southPixelsToCrop !== 0;
- }
-
- if (doCrop) {
- // do the real crop
- this.crop(
- eastPixelsToCrop,
- northPixelsToCrop,
- widthOfRemainingPixels,
- heightOfRemainingPixels
- );
- }
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
- },
- };
-}
diff --git a/WechatBot/node_modules/@jimp/plugin-crop/test/autocrop.test.js b/WechatBot/node_modules/@jimp/plugin-crop/test/autocrop.test.js
deleted file mode 100755
index 915fb7c9a..000000000
--- a/WechatBot/node_modules/@jimp/plugin-crop/test/autocrop.test.js
+++ /dev/null
@@ -1,429 +0,0 @@
-import { Jimp, mkJGD } from "@jimp/test-utils";
-import configure from "@jimp/custom";
-
-import crop from "../src";
-
-const jimp = configure({ plugins: [crop] }, Jimp);
-
-describe("Autocrop", () => {
- it("image with transparent surround color", async () => {
- const imgSrc = await jimp.read(
- mkJGD(
- " ",
- " ◆◆ ",
- " ◆▦▦◆ ",
- " ◆▦▦▦▦◆ ",
- " ◆▦▦◆ ",
- " ◆◆ ",
- " "
- )
- );
-
- imgSrc
- .autocrop()
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(" ◆◆ ", " ◆▦▦◆ ", "◆▦▦▦▦◆", " ◆▦▦◆ ", " ◆◆ ")
- );
- });
-
- it("image with opaque surround color", async () => {
- const imgSrc = await jimp.read(
- mkJGD(
- "▥▥▥▥▥▥▥▥▥▥",
- "▥▥▥▥◆◆▥▥▥▥",
- "▥▥▥◆▦▦◆▥▥▥",
- "▥▥◆▦▦▦▦◆▥▥",
- "▥▥▥◆▦▦◆▥▥▥",
- "▥▥▥▥◆◆▥▥▥▥",
- "▥▥▥▥▥▥▥▥▥▥"
- )
- );
-
- imgSrc
- .autocrop()
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD("▥▥◆◆▥▥", "▥◆▦▦◆▥", "◆▦▦▦▦◆", "▥◆▦▦◆▥", "▥▥◆◆▥▥")
- );
- });
-
- it("image with one color border", async () => {
- const imgSrc = await jimp.read(
- mkJGD(
- "▥▥▥▥▥▥▥▥▥▥▥▥",
- "▥▥▥▥▥▥▥▥▥▥▥▥",
- "▥▥ ◆◆ ▥▥",
- "▥▥ ◆▦▦◆ ▥▥",
- "▥▥ ◆▦▦▦▦◆ ▥▥",
- "▥▥ ◆▦▦◆ ▥▥",
- "▥▥ ◆◆ ▥▥",
- "▥▥▥▥▥▥▥▥▥▥▥▥",
- "▥▥▥▥▥▥▥▥▥▥▥▥"
- )
- );
-
- imgSrc
- .autocrop()
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(" ◆◆ ", " ◆▦▦◆ ", " ◆▦▦▦▦◆ ", " ◆▦▦◆ ", " ◆◆ ")
- );
- });
-
- it("image border with small variation", async () => {
- const imgSrc = await jimp.read(
- mkJGD(
- "323232323232",
- "232323232323",
- "32 ◆◆ 32",
- "23 ◆▦▦◆ 23",
- "32 ◆▦▦▦▦◆ 32",
- "23 ◆▦▦◆ 23",
- "32 ◆◆ 32",
- "232323232323",
- "323232323232"
- )
- );
- imgSrc
- .clone()
- .autocrop()
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- "323232323232",
- "232323232323",
- "32 ◆◆ 32",
- "23 ◆▦▦◆ 23",
- "32 ◆▦▦▦▦◆ 32",
- "23 ◆▦▦◆ 23",
- "32 ◆◆ 32",
- "232323232323",
- "323232323232"
- )
- );
- imgSrc
- .clone()
- .autocrop(0.005)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(" ◆◆ ", " ◆▦▦◆ ", " ◆▦▦▦▦◆ ", " ◆▦▦◆ ", " ◆◆ ")
- );
- });
-
- it("image border with small variation configured by options", async () => {
- const imgSrc = await Jimp.read(
- mkJGD(
- "323232323232",
- "232323232323",
- "32 ◆◆ 32",
- "23 ◆▦▦◆ 23",
- "32 ◆▦▦▦▦◆ 32",
- "23 ◆▦▦◆ 23",
- "32 ◆◆ 32",
- "232323232323",
- "323232323232"
- )
- );
- imgSrc
- .clone()
- .autocrop()
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- "323232323232",
- "232323232323",
- "32 ◆◆ 32",
- "23 ◆▦▦◆ 23",
- "32 ◆▦▦▦▦◆ 32",
- "23 ◆▦▦◆ 23",
- "32 ◆◆ 32",
- "232323232323",
- "323232323232"
- )
- );
- imgSrc
- .clone()
- .autocrop({ tolerance: 0.005 })
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(" ◆◆ ", " ◆▦▦◆ ", " ◆▦▦▦▦◆ ", " ◆▦▦◆ ", " ◆◆ ")
- );
- });
-
- it("image without frame", async () => {
- const imgSrc = await Jimp.read(
- mkJGD(
- "▥▥ ◆◆ ",
- "▥▥ ◆▦▦◆ ",
- "▥▥ ◆▦▦▦▦◆ ",
- "▥▥ ◆▦▦◆ ",
- "▥▥ ◆◆ ",
- "▥▥▥▥▥▥▥▥▥▥",
- "▥▥▥▥▥▥▥▥▥▥"
- )
- );
-
- imgSrc
- .autocrop(false)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(" ◆◆ ", " ◆▦▦◆ ", " ◆▦▦▦▦◆ ", " ◆▦▦◆ ", " ◆◆ ")
- );
- });
-
- it("image without frame configured by options", async () => {
- const imgSrc = await Jimp.read(
- mkJGD(
- "▥▥ ◆◆ ",
- "▥▥ ◆▦▦◆ ",
- "▥▥ ◆▦▦▦▦◆ ",
- "▥▥ ◆▦▦◆ ",
- "▥▥ ◆◆ ",
- "▥▥▥▥▥▥▥▥▥▥",
- "▥▥▥▥▥▥▥▥▥▥"
- )
- );
-
- imgSrc
- .autocrop({ cropOnlyFrames: false })
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(" ◆◆ ", " ◆▦▦◆ ", " ◆▦▦▦▦◆ ", " ◆▦▦◆ ", " ◆◆ ")
- );
- });
-
- it("image with symmetric border configured by options", async () => {
- const imgSrc = await Jimp.read(
- mkJGD(
- "▥▥▥▥▥▥▥▥▥▥▥▥▥▥",
- "▥▥ ◆◆ ▥▥▥▥",
- "▥▥ ◆▦▦◆ ▥▥▥▥",
- "▥▥ ◆▦▦▦▦◆ ▥▥▥▥",
- "▥▥ ◆▦▦◆ ▥▥▥▥",
- "▥▥ ◆◆ ▥▥▥▥",
- "▥▥▥▥▥▥▥▥▥▥▥▥▥▥",
- "▥▥▥▥▥▥▥▥▥▥▥▥▥▥"
- )
- );
-
- imgSrc
- .autocrop({ cropSymmetric: true })
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- " ◆◆ ▥▥",
- " ◆▦▦◆ ▥▥",
- " ◆▦▦▦▦◆ ▥▥",
- " ◆▦▦◆ ▥▥",
- " ◆◆ ▥▥",
- "▥▥▥▥▥▥▥▥▥▥"
- )
- );
- });
-
- it("image without frame and with symmetric border configured by options", async () => {
- const imgSrc = await Jimp.read(
- mkJGD(
- "▥▥ ◆◆ ▥▥▥▥",
- "▥▥ ◆▦▦◆ ▥▥▥▥",
- "▥▥ ◆▦▦▦▦◆ ▥▥▥▥",
- "▥▥ ◆▦▦◆ ▥▥▥▥",
- "▥▥ ◆◆ ▥▥▥▥",
- "▥▥▥▥▥▥▥▥▥▥▥▥▥▥",
- "▥▥▥▥▥▥▥▥▥▥▥▥▥▥"
- )
- );
- imgSrc
- .autocrop({ cropSymmetric: true, cropOnlyFrames: false })
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- " ◆◆ ▥▥",
- " ◆▦▦◆ ▥▥",
- " ◆▦▦▦▦◆ ▥▥",
- " ◆▦▦◆ ▥▥",
- " ◆◆ ▥▥",
- "▥▥▥▥▥▥▥▥▥▥",
- "▥▥▥▥▥▥▥▥▥▥"
- )
- );
- });
-
- it("image without frame and with some border left", async () => {
- const imgSrc = await Jimp.read(
- mkJGD(
- "323232323232",
- "232323232323",
- "32 ◆◆ 32",
- "23 ◆▦▦◆ 23",
- "32 ◆▦▦▦▦◆ 32",
- "23 ◆▦▦◆ 23",
- "32 ◆◆ 32",
- "232323232323",
- "323232323232"
- )
- );
-
- imgSrc
- .autocrop({
- tolerance: 0.005,
- leaveBorder: 1,
- })
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- "3232323232",
- "2 ◆◆ 3",
- "3 ◆▦▦◆ 2",
- "2 ◆▦▦▦▦◆ 3",
- "3 ◆▦▦◆ 2",
- "2 ◆◆ 3",
- "3232323232"
- )
- );
- });
-
- it('image not cropped given an out of bounds "leaveBorder" value ', async () => {
- const imgSrc = await Jimp.read(
- mkJGD(
- "323232323232",
- "232323232323",
- "32 ◆◆ 32",
- "23 ◆▦▦◆ 23",
- "32 ◆▦▦▦▦◆ 32",
- "23 ◆▦▦◆ 23",
- "32 ◆◆ 32",
- "232323232323",
- "323232323232"
- )
- );
-
- imgSrc
- .autocrop({
- tolerance: 0.005,
- leaveBorder: 100,
- })
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- "323232323232",
- "232323232323",
- "32 ◆◆ 32",
- "23 ◆▦▦◆ 23",
- "32 ◆▦▦▦▦◆ 32",
- "23 ◆▦▦◆ 23",
- "32 ◆◆ 32",
- "232323232323",
- "323232323232"
- )
- );
- });
-
- it("image with top and bottom frame and leaveBorder", async () => {
- const imgSrc = await Jimp.read(
- mkJGD(
- "▥▥▥▥▥▥▥▥",
- "▥▥▥▥▥▥▥▥",
- "▥▥▥▥▥▥▥▥",
- " ◆◆ ",
- " ◆▦▦◆ ",
- " ◆▦▦▦▦◆ ",
- " ◆▦▦◆ ",
- " ◆◆ ",
- "▥▥▥▥▥▥▥▥",
- "▥▥▥▥▥▥▥▥",
- "▥▥▥▥▥▥▥▥"
- )
- );
- imgSrc
- .autocrop({ cropSymmetric: true, cropOnlyFrames: false, leaveBorder: 2 })
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- "▥▥▥▥▥▥▥▥",
- "▥▥▥▥▥▥▥▥",
- " ◆◆ ",
- " ◆▦▦◆ ",
- " ◆▦▦▦▦◆ ",
- " ◆▦▦◆ ",
- " ◆◆ ",
- "▥▥▥▥▥▥▥▥",
- "▥▥▥▥▥▥▥▥"
- )
- );
- });
-
- it("ignore sides north", async () => {
- const imgSrc = await jimp.read(
- mkJGD(
- " ",
- " ◆◆ ",
- " ◆▦▦◆ ",
- " ◆▦▦▦▦◆ ",
- " ◆▦▦◆ ",
- " ◆◆ ",
- " "
- )
- );
-
- imgSrc
- .autocrop({ cropOnlyFrames: false, ignoreSides: { north: true } })
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(" ", " ◆◆ ", " ◆▦▦◆ ", "◆▦▦▦▦◆", " ◆▦▦◆ ", " ◆◆ ")
- );
- });
-
- it("ignore sides south and west", async () => {
- const imgSrc = await jimp.read(
- mkJGD(
- " ",
- " ◆◆ ",
- " ◆▦▦◆ ",
- " ◆▦▦▦▦◆ ",
- " ◆▦▦◆ ",
- " ◆◆ ",
- " "
- )
- );
-
- imgSrc
- .autocrop({
- cropOnlyFrames: false,
- ignoreSides: { west: true, south: true },
- })
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- " ◆◆ ",
- " ◆▦▦◆ ",
- "◆▦▦▦▦◆ ",
- " ◆▦▦◆ ",
- " ◆◆ ",
- " "
- )
- );
- });
-
- it("ignore sides east", async () => {
- const imgSrc = await jimp.read(
- mkJGD(
- " ",
- " ◆◆ ",
- " ◆▦▦◆ ",
- " ◆▦▦▦▦◆ ",
- " ◆▦▦◆ ",
- " ◆◆ ",
- " "
- )
- );
-
- imgSrc
- .autocrop({ cropOnlyFrames: false, ignoreSides: { east: true } })
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(" ◆◆ ", " ◆▦▦◆ ", " ◆▦▦▦▦◆", " ◆▦▦◆ ", " ◆◆ ")
- );
- });
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-crop/test/crop.test.js b/WechatBot/node_modules/@jimp/plugin-crop/test/crop.test.js
deleted file mode 100755
index 734e2788d..000000000
--- a/WechatBot/node_modules/@jimp/plugin-crop/test/crop.test.js
+++ /dev/null
@@ -1,65 +0,0 @@
-import { Jimp, mkJGD } from "@jimp/test-utils";
-import configure from "@jimp/custom";
-
-import crop from "../src";
-
-const jimp = configure({ plugins: [crop] }, Jimp);
-
-describe("crop", () => {
- // 6x5 size
- const testImage = mkJGD(" ◆◆ ", " ◆▦▦◆ ", "◆▦▦▦▦◆", " ◆▦▦◆ ", " ◆◆ ");
-
- it("full width from top", async () => {
- const imgSrc = await jimp.read(testImage);
-
- imgSrc
- .crop(0, 0, 6, 2)
- .getJGDSync()
- .should.be.sameJGD(mkJGD(" ◆◆ ", " ◆▦▦◆ "));
- });
-
- it("full width from bottom", async () => {
- const imgSrc = await jimp.read(testImage);
-
- imgSrc
- .crop(0, 3, 6, 2)
- .getJGDSync()
- .should.be.sameJGD(mkJGD(" ◆▦▦◆ ", " ◆◆ "));
- });
-
- it("full width from middle", async () => {
- const imgSrc = await jimp.read(testImage);
-
- imgSrc
- .crop(0, 2, 6, 2)
- .getJGDSync()
- .should.be.sameJGD(mkJGD("◆▦▦▦▦◆", " ◆▦▦◆ "));
- });
-
- it("full height from left", async () => {
- const imgSrc = await jimp.read(testImage);
-
- imgSrc
- .crop(0, 0, 2, 5)
- .getJGDSync()
- .should.be.sameJGD(mkJGD(" ", " ◆", "◆▦", " ◆", " "));
- });
-
- it("full height from right", async () => {
- const imgSrc = await jimp.read(testImage);
-
- imgSrc
- .crop(4, 0, 2, 5)
- .getJGDSync()
- .should.be.sameJGD(mkJGD(" ", "◆ ", "▦◆", "◆ ", " "));
- });
-
- it("full height from middle", async () => {
- const imgSrc = await jimp.read(testImage);
-
- imgSrc
- .crop(2, 0, 2, 5)
- .getJGDSync()
- .should.be.sameJGD(mkJGD("◆◆", "▦▦", "▦▦", "▦▦", "◆◆"));
- });
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-displace/CHANGELOG.md b/WechatBot/node_modules/@jimp/plugin-displace/CHANGELOG.md
deleted file mode 100644
index 4eb3193f9..000000000
--- a/WechatBot/node_modules/@jimp/plugin-displace/CHANGELOG.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# v0.16.3 (Sat Feb 04 2023)
-
-#### ⚠️ Pushed to `master`
-
-- upgrade prettier ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 1
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
----
-
-# v0.11.0 (Fri May 15 2020)
-
-#### 🚀 Enhancement
-
-- Removed Core-JS as a dependency. [#882](https://github.com/oliver-moran/jimp/pull/882) ([@EricRabil](https://github.com/EricRabil))
-
-#### Authors: 1
-
-- Eric Rabil ([@EricRabil](https://github.com/EricRabil))
-
----
-
-# v0.9.3 (Tue Nov 26 2019)
-
-#### 🐛 Bug Fix
-
-- `@jimp/cli`, `@jimp/core`, `@jimp/custom`, `jimp`, `@jimp/plugin-blit`, `@jimp/plugin-blur`, `@jimp/plugin-circle`, `@jimp/plugin-color`, `@jimp/plugin-contain`, `@jimp/plugin-cover`, `@jimp/plugin-crop`, `@jimp/plugin-displace`, `@jimp/plugin-dither`, `@jimp/plugin-fisheye`, `@jimp/plugin-flip`, `@jimp/plugin-gaussian`, `@jimp/plugin-invert`, `@jimp/plugin-mask`, `@jimp/plugin-normalize`, `@jimp/plugin-print`, `@jimp/plugin-resize`, `@jimp/plugin-rotate`, `@jimp/plugin-scale`, `@jimp/plugin-shadow`, `@jimp/plugin-threshold`, `@jimp/plugins`, `@jimp/test-utils`, `@jimp/bmp`, `@jimp/gif`, `@jimp/jpeg`, `@jimp/png`, `@jimp/tiff`, `@jimp/types`, `@jimp/utils`
- - Fix regeneratorRuntime errors [#815](https://github.com/oliver-moran/jimp/pull/815) ([@crutchcorn](https://github.com/crutchcorn) [@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 2
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
diff --git a/WechatBot/node_modules/@jimp/plugin-displace/LICENSE b/WechatBot/node_modules/@jimp/plugin-displace/LICENSE
deleted file mode 100644
index baa5d4850..000000000
--- a/WechatBot/node_modules/@jimp/plugin-displace/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Oliver Moran
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/WechatBot/node_modules/@jimp/plugin-displace/README.md b/WechatBot/node_modules/@jimp/plugin-displace/README.md
deleted file mode 100644
index d74a24472..000000000
--- a/WechatBot/node_modules/@jimp/plugin-displace/README.md
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
@jimp/plugin-displace
-
Displace an image.
-
-
-Displaces the image based on the provided displacement map
-
-## Usage
-
-- @param {object} map the source Jimp instance
-- @param {number} offset the maximum displacement value
-- @param {function(Error, Jimp)} cb (optional) a callback for when complete
-
-```js
-import jimp from "jimp";
-
-async function main() {
- const image = await jimp.read("test/image.png");
-
- // Make me better!
- image.displace(map, 10);
-}
-
-main();
-```
diff --git a/WechatBot/node_modules/@jimp/plugin-displace/dist/index.js b/WechatBot/node_modules/@jimp/plugin-displace/dist/index.js
deleted file mode 100755
index caa1a1fdf..000000000
--- a/WechatBot/node_modules/@jimp/plugin-displace/dist/index.js
+++ /dev/null
@@ -1,53 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports["default"] = void 0;
-
-var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
-
-var _utils = require("@jimp/utils");
-
-/**
- * Displaces the image based on the provided displacement map
- * @param {object} map the source Jimp instance
- * @param {number} offset the maximum displacement value
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
-var _default = function _default() {
- return {
- displace: function displace(map, offset, cb) {
- if ((0, _typeof2["default"])(map) !== "object" || map.constructor !== this.constructor) {
- return _utils.throwError.call(this, "The source must be a Jimp image", cb);
- }
-
- if (typeof offset !== "number") {
- return _utils.throwError.call(this, "factor must be a number", cb);
- }
-
- var source = this.cloneQuiet();
- this.scanQuiet(0, 0, this.bitmap.width, this.bitmap.height, function (x, y, idx) {
- var displacement = map.bitmap.data[idx] / 256 * offset;
- displacement = Math.round(displacement);
- var ids = this.getPixelIndex(x + displacement, y);
- this.bitmap.data[ids] = source.bitmap.data[idx];
- this.bitmap.data[ids + 1] = source.bitmap.data[idx + 1];
- this.bitmap.data[ids + 2] = source.bitmap.data[idx + 2];
- });
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- }
- };
-};
-
-exports["default"] = _default;
-module.exports = exports.default;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-displace/dist/index.js.map b/WechatBot/node_modules/@jimp/plugin-displace/dist/index.js.map
deleted file mode 100644
index d525666d1..000000000
--- a/WechatBot/node_modules/@jimp/plugin-displace/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/index.js"],"names":["displace","map","offset","cb","constructor","throwError","call","source","cloneQuiet","scanQuiet","bitmap","width","height","x","y","idx","displacement","data","Math","round","ids","getPixelIndex"],"mappings":";;;;;;;;;;;AAAA;;AAEA;;;;;;;eAOe;AAAA,SAAO;AACpBA,IAAAA,QADoB,oBACXC,GADW,EACNC,MADM,EACEC,EADF,EACM;AACxB,UAAI,yBAAOF,GAAP,MAAe,QAAf,IAA2BA,GAAG,CAACG,WAAJ,KAAoB,KAAKA,WAAxD,EAAqE;AACnE,eAAOC,kBAAWC,IAAX,CAAgB,IAAhB,EAAsB,iCAAtB,EAAyDH,EAAzD,CAAP;AACD;;AAED,UAAI,OAAOD,MAAP,KAAkB,QAAtB,EAAgC;AAC9B,eAAOG,kBAAWC,IAAX,CAAgB,IAAhB,EAAsB,yBAAtB,EAAiDH,EAAjD,CAAP;AACD;;AAED,UAAMI,MAAM,GAAG,KAAKC,UAAL,EAAf;AACA,WAAKC,SAAL,CACE,CADF,EAEE,CAFF,EAGE,KAAKC,MAAL,CAAYC,KAHd,EAIE,KAAKD,MAAL,CAAYE,MAJd,EAKE,UAAUC,CAAV,EAAaC,CAAb,EAAgBC,GAAhB,EAAqB;AACnB,YAAIC,YAAY,GAAIf,GAAG,CAACS,MAAJ,CAAWO,IAAX,CAAgBF,GAAhB,IAAuB,GAAxB,GAA+Bb,MAAlD;AACAc,QAAAA,YAAY,GAAGE,IAAI,CAACC,KAAL,CAAWH,YAAX,CAAf;AAEA,YAAMI,GAAG,GAAG,KAAKC,aAAL,CAAmBR,CAAC,GAAGG,YAAvB,EAAqCF,CAArC,CAAZ;AACA,aAAKJ,MAAL,CAAYO,IAAZ,CAAiBG,GAAjB,IAAwBb,MAAM,CAACG,MAAP,CAAcO,IAAd,CAAmBF,GAAnB,CAAxB;AACA,aAAKL,MAAL,CAAYO,IAAZ,CAAiBG,GAAG,GAAG,CAAvB,IAA4Bb,MAAM,CAACG,MAAP,CAAcO,IAAd,CAAmBF,GAAG,GAAG,CAAzB,CAA5B;AACA,aAAKL,MAAL,CAAYO,IAAZ,CAAiBG,GAAG,GAAG,CAAvB,IAA4Bb,MAAM,CAACG,MAAP,CAAcO,IAAd,CAAmBF,GAAG,GAAG,CAAzB,CAA5B;AACD,OAbH;;AAgBA,UAAI,0BAAcZ,EAAd,CAAJ,EAAuB;AACrBA,QAAAA,EAAE,CAACG,IAAH,CAAQ,IAAR,EAAc,IAAd,EAAoB,IAApB;AACD;;AAED,aAAO,IAAP;AACD;AAhCmB,GAAP;AAAA,C","sourcesContent":["import { isNodePattern, throwError } from \"@jimp/utils\";\n\n/**\n * Displaces the image based on the provided displacement map\n * @param {object} map the source Jimp instance\n * @param {number} offset the maximum displacement value\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp} this for chaining of methods\n */\nexport default () => ({\n displace(map, offset, cb) {\n if (typeof map !== \"object\" || map.constructor !== this.constructor) {\n return throwError.call(this, \"The source must be a Jimp image\", cb);\n }\n\n if (typeof offset !== \"number\") {\n return throwError.call(this, \"factor must be a number\", cb);\n }\n\n const source = this.cloneQuiet();\n this.scanQuiet(\n 0,\n 0,\n this.bitmap.width,\n this.bitmap.height,\n function (x, y, idx) {\n let displacement = (map.bitmap.data[idx] / 256) * offset;\n displacement = Math.round(displacement);\n\n const ids = this.getPixelIndex(x + displacement, y);\n this.bitmap.data[ids] = source.bitmap.data[idx];\n this.bitmap.data[ids + 1] = source.bitmap.data[idx + 1];\n this.bitmap.data[ids + 2] = source.bitmap.data[idx + 2];\n }\n );\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n },\n});\n"],"file":"index.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-displace/index.d.ts b/WechatBot/node_modules/@jimp/plugin-displace/index.d.ts
deleted file mode 100644
index d2ea79bf6..000000000
--- a/WechatBot/node_modules/@jimp/plugin-displace/index.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { Jimp, ImageCallback } from "@jimp/core";
-
-interface Displace {
- displace(map: Jimp, offset: number, cb?: ImageCallback): this;
-}
-
-export default function (): Displace;
diff --git a/WechatBot/node_modules/@jimp/plugin-displace/package.json b/WechatBot/node_modules/@jimp/plugin-displace/package.json
deleted file mode 100644
index b0ac12847..000000000
--- a/WechatBot/node_modules/@jimp/plugin-displace/package.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "name": "@jimp/plugin-displace",
- "version": "0.16.13",
- "description": "displace an image.",
- "main": "dist/index.js",
- "module": "es/index.js",
- "types": "index.d.ts",
- "scripts": {
- "build": "npm run build:node:production && npm run build:module",
- "build:watch": "npm run build:node:debug -- -- --watch --verbose",
- "build:debug": "npm run build:node:debug",
- "build:module": "cross-env BABEL_ENV=module babel src -d es --source-maps --config-file ../../babel.config.js",
- "build:node": "babel src -d dist --source-maps --config-file ../../babel.config.js",
- "build:node:debug": "cross-env BABEL_ENV=development npm run build:node",
- "build:node:production": "cross-env BABEL_ENV=production npm run build:node"
- },
- "author": "",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- },
- "publishConfig": {
- "access": "public"
- },
- "gitHead": "9eec86086634329a072901dca3a800b850548572"
-}
diff --git a/WechatBot/node_modules/@jimp/plugin-displace/src/index.js b/WechatBot/node_modules/@jimp/plugin-displace/src/index.js
deleted file mode 100755
index 4dcd44031..000000000
--- a/WechatBot/node_modules/@jimp/plugin-displace/src/index.js
+++ /dev/null
@@ -1,43 +0,0 @@
-import { isNodePattern, throwError } from "@jimp/utils";
-
-/**
- * Displaces the image based on the provided displacement map
- * @param {object} map the source Jimp instance
- * @param {number} offset the maximum displacement value
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
-export default () => ({
- displace(map, offset, cb) {
- if (typeof map !== "object" || map.constructor !== this.constructor) {
- return throwError.call(this, "The source must be a Jimp image", cb);
- }
-
- if (typeof offset !== "number") {
- return throwError.call(this, "factor must be a number", cb);
- }
-
- const source = this.cloneQuiet();
- this.scanQuiet(
- 0,
- 0,
- this.bitmap.width,
- this.bitmap.height,
- function (x, y, idx) {
- let displacement = (map.bitmap.data[idx] / 256) * offset;
- displacement = Math.round(displacement);
-
- const ids = this.getPixelIndex(x + displacement, y);
- this.bitmap.data[ids] = source.bitmap.data[idx];
- this.bitmap.data[ids + 1] = source.bitmap.data[idx + 1];
- this.bitmap.data[ids + 2] = source.bitmap.data[idx + 2];
- }
- );
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-dither/CHANGELOG.md b/WechatBot/node_modules/@jimp/plugin-dither/CHANGELOG.md
deleted file mode 100644
index 4eb3193f9..000000000
--- a/WechatBot/node_modules/@jimp/plugin-dither/CHANGELOG.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# v0.16.3 (Sat Feb 04 2023)
-
-#### ⚠️ Pushed to `master`
-
-- upgrade prettier ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 1
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
----
-
-# v0.11.0 (Fri May 15 2020)
-
-#### 🚀 Enhancement
-
-- Removed Core-JS as a dependency. [#882](https://github.com/oliver-moran/jimp/pull/882) ([@EricRabil](https://github.com/EricRabil))
-
-#### Authors: 1
-
-- Eric Rabil ([@EricRabil](https://github.com/EricRabil))
-
----
-
-# v0.9.3 (Tue Nov 26 2019)
-
-#### 🐛 Bug Fix
-
-- `@jimp/cli`, `@jimp/core`, `@jimp/custom`, `jimp`, `@jimp/plugin-blit`, `@jimp/plugin-blur`, `@jimp/plugin-circle`, `@jimp/plugin-color`, `@jimp/plugin-contain`, `@jimp/plugin-cover`, `@jimp/plugin-crop`, `@jimp/plugin-displace`, `@jimp/plugin-dither`, `@jimp/plugin-fisheye`, `@jimp/plugin-flip`, `@jimp/plugin-gaussian`, `@jimp/plugin-invert`, `@jimp/plugin-mask`, `@jimp/plugin-normalize`, `@jimp/plugin-print`, `@jimp/plugin-resize`, `@jimp/plugin-rotate`, `@jimp/plugin-scale`, `@jimp/plugin-shadow`, `@jimp/plugin-threshold`, `@jimp/plugins`, `@jimp/test-utils`, `@jimp/bmp`, `@jimp/gif`, `@jimp/jpeg`, `@jimp/png`, `@jimp/tiff`, `@jimp/types`, `@jimp/utils`
- - Fix regeneratorRuntime errors [#815](https://github.com/oliver-moran/jimp/pull/815) ([@crutchcorn](https://github.com/crutchcorn) [@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 2
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
diff --git a/WechatBot/node_modules/@jimp/plugin-dither/LICENSE b/WechatBot/node_modules/@jimp/plugin-dither/LICENSE
deleted file mode 100644
index baa5d4850..000000000
--- a/WechatBot/node_modules/@jimp/plugin-dither/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Oliver Moran
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/WechatBot/node_modules/@jimp/plugin-dither/README.md b/WechatBot/node_modules/@jimp/plugin-dither/README.md
deleted file mode 100644
index b384599d1..000000000
--- a/WechatBot/node_modules/@jimp/plugin-dither/README.md
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
@jimp/plugin-dither
-
Apply a dither effect to an image.
-
-
-> Dither - is an intentionally applied form of noise used to randomize quantization error, preventing large-scale patterns such as color banding in images. Dither is routinely used in processing of both digital audio and video data, and is often one of the last stages of mastering audio to a CD.
-
-## Usage
-
-Apply a ordered dithering effect
-
-- @param {function(Error, Jimp)} cb (optional) a callback for when complete
-
-```js
-import jimp from "jimp";
-
-async function main() {
- const image = await jimp.read("test/image.png");
-
- image.dither565();
-}
-
-main();
-```
diff --git a/WechatBot/node_modules/@jimp/plugin-dither/dist/index.js b/WechatBot/node_modules/@jimp/plugin-dither/dist/index.js
deleted file mode 100755
index a4fc3cd8c..000000000
--- a/WechatBot/node_modules/@jimp/plugin-dither/dist/index.js
+++ /dev/null
@@ -1,41 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports["default"] = void 0;
-
-var _utils = require("@jimp/utils");
-
-/**
- * Apply a ordered dithering effect
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
-function dither(cb) {
- var rgb565Matrix = [1, 9, 3, 11, 13, 5, 15, 7, 4, 12, 2, 10, 16, 8, 14, 6];
- this.scanQuiet(0, 0, this.bitmap.width, this.bitmap.height, function (x, y, idx) {
- var thresholdId = ((y & 3) << 2) + x % 4;
- var dither = rgb565Matrix[thresholdId];
- this.bitmap.data[idx] = Math.min(this.bitmap.data[idx] + dither, 0xff);
- this.bitmap.data[idx + 1] = Math.min(this.bitmap.data[idx + 1] + dither, 0xff);
- this.bitmap.data[idx + 2] = Math.min(this.bitmap.data[idx + 2] + dither, 0xff);
- });
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
-}
-
-var _default = function _default() {
- return {
- dither565: dither,
- dither16: dither
- };
-};
-
-exports["default"] = _default;
-module.exports = exports.default;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-dither/dist/index.js.map b/WechatBot/node_modules/@jimp/plugin-dither/dist/index.js.map
deleted file mode 100644
index b96091f40..000000000
--- a/WechatBot/node_modules/@jimp/plugin-dither/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/index.js"],"names":["dither","cb","rgb565Matrix","scanQuiet","bitmap","width","height","x","y","idx","thresholdId","data","Math","min","call","dither565","dither16"],"mappings":";;;;;;;AAAA;;AAEA;;;;;AAKA,SAASA,MAAT,CAAgBC,EAAhB,EAAoB;AAClB,MAAMC,YAAY,GAAG,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,EAAV,EAAc,EAAd,EAAkB,CAAlB,EAAqB,EAArB,EAAyB,CAAzB,EAA4B,CAA5B,EAA+B,EAA/B,EAAmC,CAAnC,EAAsC,EAAtC,EAA0C,EAA1C,EAA8C,CAA9C,EAAiD,EAAjD,EAAqD,CAArD,CAArB;AACA,OAAKC,SAAL,CACE,CADF,EAEE,CAFF,EAGE,KAAKC,MAAL,CAAYC,KAHd,EAIE,KAAKD,MAAL,CAAYE,MAJd,EAKE,UAAUC,CAAV,EAAaC,CAAb,EAAgBC,GAAhB,EAAqB;AACnB,QAAMC,WAAW,GAAG,CAAC,CAACF,CAAC,GAAG,CAAL,KAAW,CAAZ,IAAkBD,CAAC,GAAG,CAA1C;AACA,QAAMP,MAAM,GAAGE,YAAY,CAACQ,WAAD,CAA3B;AACA,SAAKN,MAAL,CAAYO,IAAZ,CAAiBF,GAAjB,IAAwBG,IAAI,CAACC,GAAL,CAAS,KAAKT,MAAL,CAAYO,IAAZ,CAAiBF,GAAjB,IAAwBT,MAAjC,EAAyC,IAAzC,CAAxB;AACA,SAAKI,MAAL,CAAYO,IAAZ,CAAiBF,GAAG,GAAG,CAAvB,IAA4BG,IAAI,CAACC,GAAL,CAC1B,KAAKT,MAAL,CAAYO,IAAZ,CAAiBF,GAAG,GAAG,CAAvB,IAA4BT,MADF,EAE1B,IAF0B,CAA5B;AAIA,SAAKI,MAAL,CAAYO,IAAZ,CAAiBF,GAAG,GAAG,CAAvB,IAA4BG,IAAI,CAACC,GAAL,CAC1B,KAAKT,MAAL,CAAYO,IAAZ,CAAiBF,GAAG,GAAG,CAAvB,IAA4BT,MADF,EAE1B,IAF0B,CAA5B;AAID,GAjBH;;AAoBA,MAAI,0BAAcC,EAAd,CAAJ,EAAuB;AACrBA,IAAAA,EAAE,CAACa,IAAH,CAAQ,IAAR,EAAc,IAAd,EAAoB,IAApB;AACD;;AAED,SAAO,IAAP;AACD;;eAEc;AAAA,SAAO;AACpBC,IAAAA,SAAS,EAAEf,MADS;AAEpBgB,IAAAA,QAAQ,EAAEhB;AAFU,GAAP;AAAA,C","sourcesContent":["import { isNodePattern } from \"@jimp/utils\";\n\n/**\n * Apply a ordered dithering effect\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp} this for chaining of methods\n */\nfunction dither(cb) {\n const rgb565Matrix = [1, 9, 3, 11, 13, 5, 15, 7, 4, 12, 2, 10, 16, 8, 14, 6];\n this.scanQuiet(\n 0,\n 0,\n this.bitmap.width,\n this.bitmap.height,\n function (x, y, idx) {\n const thresholdId = ((y & 3) << 2) + (x % 4);\n const dither = rgb565Matrix[thresholdId];\n this.bitmap.data[idx] = Math.min(this.bitmap.data[idx] + dither, 0xff);\n this.bitmap.data[idx + 1] = Math.min(\n this.bitmap.data[idx + 1] + dither,\n 0xff\n );\n this.bitmap.data[idx + 2] = Math.min(\n this.bitmap.data[idx + 2] + dither,\n 0xff\n );\n }\n );\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n}\n\nexport default () => ({\n dither565: dither,\n dither16: dither,\n});\n"],"file":"index.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-dither/index.d.ts b/WechatBot/node_modules/@jimp/plugin-dither/index.d.ts
deleted file mode 100644
index 9f2415df3..000000000
--- a/WechatBot/node_modules/@jimp/plugin-dither/index.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { ImageCallback } from "@jimp/core";
-
-interface Dither {
- dither565(cb?: ImageCallback): this;
- dither16(cb?: ImageCallback): this;
-}
-
-export default function (): Dither;
diff --git a/WechatBot/node_modules/@jimp/plugin-dither/package.json b/WechatBot/node_modules/@jimp/plugin-dither/package.json
deleted file mode 100644
index 5a1d627dd..000000000
--- a/WechatBot/node_modules/@jimp/plugin-dither/package.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "name": "@jimp/plugin-dither",
- "version": "0.16.13",
- "description": "Dither an image.",
- "main": "dist/index.js",
- "module": "es/index.js",
- "types": "index.d.ts",
- "scripts": {
- "build": "npm run build:node:production && npm run build:module",
- "build:watch": "npm run build:node:debug -- -- --watch --verbose",
- "build:debug": "npm run build:node:debug",
- "build:module": "cross-env BABEL_ENV=module babel src -d es --source-maps --config-file ../../babel.config.js",
- "build:node": "babel src -d dist --source-maps --config-file ../../babel.config.js",
- "build:node:debug": "cross-env BABEL_ENV=development npm run build:node",
- "build:node:production": "cross-env BABEL_ENV=production npm run build:node"
- },
- "author": "",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- },
- "publishConfig": {
- "access": "public"
- },
- "gitHead": "9eec86086634329a072901dca3a800b850548572"
-}
diff --git a/WechatBot/node_modules/@jimp/plugin-dither/src/index.js b/WechatBot/node_modules/@jimp/plugin-dither/src/index.js
deleted file mode 100755
index c5ce9ecec..000000000
--- a/WechatBot/node_modules/@jimp/plugin-dither/src/index.js
+++ /dev/null
@@ -1,40 +0,0 @@
-import { isNodePattern } from "@jimp/utils";
-
-/**
- * Apply a ordered dithering effect
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
-function dither(cb) {
- const rgb565Matrix = [1, 9, 3, 11, 13, 5, 15, 7, 4, 12, 2, 10, 16, 8, 14, 6];
- this.scanQuiet(
- 0,
- 0,
- this.bitmap.width,
- this.bitmap.height,
- function (x, y, idx) {
- const thresholdId = ((y & 3) << 2) + (x % 4);
- const dither = rgb565Matrix[thresholdId];
- this.bitmap.data[idx] = Math.min(this.bitmap.data[idx] + dither, 0xff);
- this.bitmap.data[idx + 1] = Math.min(
- this.bitmap.data[idx + 1] + dither,
- 0xff
- );
- this.bitmap.data[idx + 2] = Math.min(
- this.bitmap.data[idx + 2] + dither,
- 0xff
- );
- }
- );
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
-}
-
-export default () => ({
- dither565: dither,
- dither16: dither,
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-fisheye/CHANGELOG.md b/WechatBot/node_modules/@jimp/plugin-fisheye/CHANGELOG.md
deleted file mode 100644
index 5bd13a6a7..000000000
--- a/WechatBot/node_modules/@jimp/plugin-fisheye/CHANGELOG.md
+++ /dev/null
@@ -1,47 +0,0 @@
-# v0.16.3 (Sat Feb 04 2023)
-
-#### ⚠️ Pushed to `master`
-
-- upgrade prettier ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 1
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
----
-
-# v0.16.2 (Thu Sep 15 2022)
-
-#### 📝 Documentation
-
-- added the "e" back to @jimp/plugin-fisheye [#947](https://github.com/oliver-moran/jimp/pull/947) ([@mynameismax](https://github.com/mynameismax))
-
-#### Authors: 1
-
-- Max ([@mynameismax](https://github.com/mynameismax))
-
----
-
-# v0.11.0 (Fri May 15 2020)
-
-#### 🚀 Enhancement
-
-- Removed Core-JS as a dependency. [#882](https://github.com/oliver-moran/jimp/pull/882) ([@EricRabil](https://github.com/EricRabil))
-
-#### Authors: 1
-
-- Eric Rabil ([@EricRabil](https://github.com/EricRabil))
-
----
-
-# v0.9.3 (Tue Nov 26 2019)
-
-#### 🐛 Bug Fix
-
-- `@jimp/cli`, `@jimp/core`, `@jimp/custom`, `jimp`, `@jimp/plugin-blit`, `@jimp/plugin-blur`, `@jimp/plugin-circle`, `@jimp/plugin-color`, `@jimp/plugin-contain`, `@jimp/plugin-cover`, `@jimp/plugin-crop`, `@jimp/plugin-displace`, `@jimp/plugin-dither`, `@jimp/plugin-fisheye`, `@jimp/plugin-flip`, `@jimp/plugin-gaussian`, `@jimp/plugin-invert`, `@jimp/plugin-mask`, `@jimp/plugin-normalize`, `@jimp/plugin-print`, `@jimp/plugin-resize`, `@jimp/plugin-rotate`, `@jimp/plugin-scale`, `@jimp/plugin-shadow`, `@jimp/plugin-threshold`, `@jimp/plugins`, `@jimp/test-utils`, `@jimp/bmp`, `@jimp/gif`, `@jimp/jpeg`, `@jimp/png`, `@jimp/tiff`, `@jimp/types`, `@jimp/utils`
- - Fix regeneratorRuntime errors [#815](https://github.com/oliver-moran/jimp/pull/815) ([@crutchcorn](https://github.com/crutchcorn) [@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 2
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
diff --git a/WechatBot/node_modules/@jimp/plugin-fisheye/LICENSE b/WechatBot/node_modules/@jimp/plugin-fisheye/LICENSE
deleted file mode 100644
index baa5d4850..000000000
--- a/WechatBot/node_modules/@jimp/plugin-fisheye/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Oliver Moran
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/WechatBot/node_modules/@jimp/plugin-fisheye/README.md b/WechatBot/node_modules/@jimp/plugin-fisheye/README.md
deleted file mode 100644
index 3a1ae13c8..000000000
--- a/WechatBot/node_modules/@jimp/plugin-fisheye/README.md
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
@jimp/plugin-fisheye
-
Apply a fisheye effect to an image
-
-
-## Usage
-
-- @param {function(Error, Jimp)} options (optional) radius
-- @param {function(Error, Jimp)} cb (optional) a callback for when complete
-
-```js
-import jimp from "jimp";
-
-async function main() {
- const image = await jimp.read("test/image.png");
-
- image.fisheye();
- // or
- image.fisheye({ r: 1.6 });
-}
-
-main();
-```
-
-Produces nice images with [@jimp/plugin-circle](../plugin-circle).
diff --git a/WechatBot/node_modules/@jimp/plugin-fisheye/babel.config.js b/WechatBot/node_modules/@jimp/plugin-fisheye/babel.config.js
deleted file mode 100755
index 13e2603a3..000000000
--- a/WechatBot/node_modules/@jimp/plugin-fisheye/babel.config.js
+++ /dev/null
@@ -1,38 +0,0 @@
-module.exports = (api) => {
- api.cache(true);
-
- return {
- presets: [
- [
- "@babel/env",
- {
- useBuiltIns: "usage",
- },
- ],
- ],
-
- plugins: [
- "@babel/proposal-class-properties",
- "@babel/syntax-object-rest-spread",
- process.env.BABEL_ENV !== "module" && "add-module-exports",
- [
- "transform-inline-environment-variables",
- { include: ["BABEL_ENV", "ENV"] },
- ],
- ].filter(Boolean),
-
- env: {
- test: {
- plugins: ["istanbul"],
- },
- development: {
- plugins: [process.env.ENV !== "browser" && "source-map-support"].filter(
- Boolean
- ),
- },
- module: {
- presets: [["@babel/env", { modules: false }]],
- },
- },
- };
-};
diff --git a/WechatBot/node_modules/@jimp/plugin-fisheye/dist/index.js b/WechatBot/node_modules/@jimp/plugin-fisheye/dist/index.js
deleted file mode 100755
index fba912903..000000000
--- a/WechatBot/node_modules/@jimp/plugin-fisheye/dist/index.js
+++ /dev/null
@@ -1,65 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports["default"] = void 0;
-
-var _utils = require("@jimp/utils");
-
-/**
- * Creates a circle out of an image.
- * @param {object} options (optional) r: radius of effect
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
-var _default = function _default() {
- return {
- fisheye: function fisheye() {
- var _this = this;
-
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
- r: 2.5
- };
- var cb = arguments.length > 1 ? arguments[1] : undefined;
-
- if (typeof options === "function") {
- cb = options;
- options = {
- r: 2.5
- };
- }
-
- var source = this.cloneQuiet();
- var _source$bitmap = source.bitmap,
- width = _source$bitmap.width,
- height = _source$bitmap.height;
- source.scanQuiet(0, 0, width, height, function (x, y) {
- var hx = x / width;
- var hy = y / height;
- var r = Math.sqrt(Math.pow(hx - 0.5, 2) + Math.pow(hy - 0.5, 2));
- var rn = 2 * Math.pow(r, options.r);
- var cosA = (hx - 0.5) / r;
- var sinA = (hy - 0.5) / r;
- var newX = Math.round((rn * cosA + 0.5) * width);
- var newY = Math.round((rn * sinA + 0.5) * height);
- var color = source.getPixelColor(newX, newY);
-
- _this.setPixelColor(color, x, y);
- });
- /* Set center pixel color, otherwise it will be transparent */
-
- this.setPixelColor(source.getPixelColor(width / 2, height / 2), width / 2, height / 2);
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- }
- };
-};
-
-exports["default"] = _default;
-module.exports = exports.default;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-fisheye/dist/index.js.map b/WechatBot/node_modules/@jimp/plugin-fisheye/dist/index.js.map
deleted file mode 100644
index 4ff401d59..000000000
--- a/WechatBot/node_modules/@jimp/plugin-fisheye/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/index.js"],"names":["fisheye","options","r","cb","source","cloneQuiet","bitmap","width","height","scanQuiet","x","y","hx","hy","Math","sqrt","pow","rn","cosA","sinA","newX","round","newY","color","getPixelColor","setPixelColor","call"],"mappings":";;;;;;;AAAA;;AAEA;;;;;;eAMe;AAAA,SAAO;AACpBA,IAAAA,OADoB,qBACc;AAAA;;AAAA,UAA1BC,OAA0B,uEAAhB;AAAEC,QAAAA,CAAC,EAAE;AAAL,OAAgB;AAAA,UAAJC,EAAI;;AAChC,UAAI,OAAOF,OAAP,KAAmB,UAAvB,EAAmC;AACjCE,QAAAA,EAAE,GAAGF,OAAL;AACAA,QAAAA,OAAO,GAAG;AAAEC,UAAAA,CAAC,EAAE;AAAL,SAAV;AACD;;AAED,UAAME,MAAM,GAAG,KAAKC,UAAL,EAAf;AANgC,2BAOND,MAAM,CAACE,MAPD;AAAA,UAOxBC,KAPwB,kBAOxBA,KAPwB;AAAA,UAOjBC,MAPiB,kBAOjBA,MAPiB;AAShCJ,MAAAA,MAAM,CAACK,SAAP,CAAiB,CAAjB,EAAoB,CAApB,EAAuBF,KAAvB,EAA8BC,MAA9B,EAAsC,UAACE,CAAD,EAAIC,CAAJ,EAAU;AAC9C,YAAMC,EAAE,GAAGF,CAAC,GAAGH,KAAf;AACA,YAAMM,EAAE,GAAGF,CAAC,GAAGH,MAAf;AACA,YAAMN,CAAC,GAAGY,IAAI,CAACC,IAAL,CAAUD,IAAI,CAACE,GAAL,CAASJ,EAAE,GAAG,GAAd,EAAmB,CAAnB,IAAwBE,IAAI,CAACE,GAAL,CAASH,EAAE,GAAG,GAAd,EAAmB,CAAnB,CAAlC,CAAV;AACA,YAAMI,EAAE,GAAG,IAAIH,IAAI,CAACE,GAAL,CAASd,CAAT,EAAYD,OAAO,CAACC,CAApB,CAAf;AACA,YAAMgB,IAAI,GAAG,CAACN,EAAE,GAAG,GAAN,IAAaV,CAA1B;AACA,YAAMiB,IAAI,GAAG,CAACN,EAAE,GAAG,GAAN,IAAaX,CAA1B;AACA,YAAMkB,IAAI,GAAGN,IAAI,CAACO,KAAL,CAAW,CAACJ,EAAE,GAAGC,IAAL,GAAY,GAAb,IAAoBX,KAA/B,CAAb;AACA,YAAMe,IAAI,GAAGR,IAAI,CAACO,KAAL,CAAW,CAACJ,EAAE,GAAGE,IAAL,GAAY,GAAb,IAAoBX,MAA/B,CAAb;AACA,YAAMe,KAAK,GAAGnB,MAAM,CAACoB,aAAP,CAAqBJ,IAArB,EAA2BE,IAA3B,CAAd;;AAEA,QAAA,KAAI,CAACG,aAAL,CAAmBF,KAAnB,EAA0Bb,CAA1B,EAA6BC,CAA7B;AACD,OAZD;AAcA;;AACA,WAAKc,aAAL,CACErB,MAAM,CAACoB,aAAP,CAAqBjB,KAAK,GAAG,CAA7B,EAAgCC,MAAM,GAAG,CAAzC,CADF,EAEED,KAAK,GAAG,CAFV,EAGEC,MAAM,GAAG,CAHX;;AAMA,UAAI,0BAAcL,EAAd,CAAJ,EAAuB;AACrBA,QAAAA,EAAE,CAACuB,IAAH,CAAQ,IAAR,EAAc,IAAd,EAAoB,IAApB;AACD;;AAED,aAAO,IAAP;AACD;AApCmB,GAAP;AAAA,C","sourcesContent":["import { isNodePattern } from \"@jimp/utils\";\n\n/**\n * Creates a circle out of an image.\n * @param {object} options (optional) r: radius of effect\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp} this for chaining of methods\n */\nexport default () => ({\n fisheye(options = { r: 2.5 }, cb) {\n if (typeof options === \"function\") {\n cb = options;\n options = { r: 2.5 };\n }\n\n const source = this.cloneQuiet();\n const { width, height } = source.bitmap;\n\n source.scanQuiet(0, 0, width, height, (x, y) => {\n const hx = x / width;\n const hy = y / height;\n const r = Math.sqrt(Math.pow(hx - 0.5, 2) + Math.pow(hy - 0.5, 2));\n const rn = 2 * Math.pow(r, options.r);\n const cosA = (hx - 0.5) / r;\n const sinA = (hy - 0.5) / r;\n const newX = Math.round((rn * cosA + 0.5) * width);\n const newY = Math.round((rn * sinA + 0.5) * height);\n const color = source.getPixelColor(newX, newY);\n\n this.setPixelColor(color, x, y);\n });\n\n /* Set center pixel color, otherwise it will be transparent */\n this.setPixelColor(\n source.getPixelColor(width / 2, height / 2),\n width / 2,\n height / 2\n );\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n },\n});\n"],"file":"index.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-fisheye/index.d.ts b/WechatBot/node_modules/@jimp/plugin-fisheye/index.d.ts
deleted file mode 100644
index 693b6f33b..000000000
--- a/WechatBot/node_modules/@jimp/plugin-fisheye/index.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { ImageCallback } from "@jimp/core";
-
-interface Fisheye {
- fishEye(opts?: { r: number }, cb?: ImageCallback): this;
- fishEye(cb?: ImageCallback): this;
-}
-
-export default function (): Fisheye;
diff --git a/WechatBot/node_modules/@jimp/plugin-fisheye/package.json b/WechatBot/node_modules/@jimp/plugin-fisheye/package.json
deleted file mode 100644
index 6b9f695b2..000000000
--- a/WechatBot/node_modules/@jimp/plugin-fisheye/package.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "name": "@jimp/plugin-fisheye",
- "version": "0.16.13",
- "description": "Apply a fisheye effect to an image.",
- "main": "dist/index.js",
- "module": "es/index.js",
- "types": "index.d.ts",
- "scripts": {
- "test": "cross-env BABEL_ENV=test mocha --require @babel/register",
- "test:watch": "npm run test -- --reporter min --watch",
- "test:coverage": "nyc npm run test",
- "build": "npm run build:node:production && npm run build:module",
- "build:watch": "npm run build:node:debug -- -- --watch --verbose",
- "build:debug": "npm run build:node:debug",
- "build:module": "cross-env BABEL_ENV=module babel src -d es --source-maps --config-file ../../babel.config.js",
- "build:node": "babel src -d dist --source-maps --config-file ../../babel.config.js",
- "build:node:debug": "cross-env BABEL_ENV=development npm run build:node",
- "build:node:production": "cross-env BABEL_ENV=production npm run build:node"
- },
- "author": "",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- },
- "devDependencies": {
- "@jimp/custom": "^0.16.13",
- "@jimp/test-utils": "^0.16.13"
- },
- "publishConfig": {
- "access": "public"
- },
- "gitHead": "9eec86086634329a072901dca3a800b850548572"
-}
diff --git a/WechatBot/node_modules/@jimp/plugin-fisheye/src/index.js b/WechatBot/node_modules/@jimp/plugin-fisheye/src/index.js
deleted file mode 100755
index 15c5b51d6..000000000
--- a/WechatBot/node_modules/@jimp/plugin-fisheye/src/index.js
+++ /dev/null
@@ -1,46 +0,0 @@
-import { isNodePattern } from "@jimp/utils";
-
-/**
- * Creates a circle out of an image.
- * @param {object} options (optional) r: radius of effect
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
-export default () => ({
- fisheye(options = { r: 2.5 }, cb) {
- if (typeof options === "function") {
- cb = options;
- options = { r: 2.5 };
- }
-
- const source = this.cloneQuiet();
- const { width, height } = source.bitmap;
-
- source.scanQuiet(0, 0, width, height, (x, y) => {
- const hx = x / width;
- const hy = y / height;
- const r = Math.sqrt(Math.pow(hx - 0.5, 2) + Math.pow(hy - 0.5, 2));
- const rn = 2 * Math.pow(r, options.r);
- const cosA = (hx - 0.5) / r;
- const sinA = (hy - 0.5) / r;
- const newX = Math.round((rn * cosA + 0.5) * width);
- const newY = Math.round((rn * sinA + 0.5) * height);
- const color = source.getPixelColor(newX, newY);
-
- this.setPixelColor(color, x, y);
- });
-
- /* Set center pixel color, otherwise it will be transparent */
- this.setPixelColor(
- source.getPixelColor(width / 2, height / 2),
- width / 2,
- height / 2
- );
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-fisheye/test/fisheye.test.js b/WechatBot/node_modules/@jimp/plugin-fisheye/test/fisheye.test.js
deleted file mode 100755
index b8f5aa1e6..000000000
--- a/WechatBot/node_modules/@jimp/plugin-fisheye/test/fisheye.test.js
+++ /dev/null
@@ -1,77 +0,0 @@
-import { Jimp, mkJGD } from "@jimp/test-utils";
-import configure from "@jimp/custom";
-
-import fisheye from "../src";
-
-const jimp = configure({ plugins: [fisheye] }, Jimp);
-
-describe("Fisheye", () => {
- it("should create fisheye lens to image", async () => {
- const imgNormal = await jimp.read(
- mkJGD(
- "0000000000",
- "0001221000",
- "0022222200",
- "0122112210",
- "0221001220",
- "0221001220",
- "0122112210",
- "0022222200",
- "0001221000",
- "0000000000"
- )
- );
- const imgBulged = await jimp.read(
- mkJGD(
- "0001221000",
- "0221112220",
- "0220000121",
- "1100000112",
- "2100000012",
- "2100000012",
- "1200000012",
- "0211000222",
- "0221111220",
- "0012222200"
- )
- );
-
- imgNormal.fisheye().getJGDSync().should.be.sameJGD(imgBulged.getJGDSync());
- });
-
- it("should create fisheye lens to image with radius", async () => {
- const imgNormal = await jimp.read(
- mkJGD(
- "0000000000",
- "0000000000",
- "0000000000",
- "0000000000",
- "0001111000",
- "0001111000",
- "0000000000",
- "0000000000",
- "0000000000",
- "0000000000"
- )
- );
- const imgBulged = await jimp.read(
- mkJGD(
- "■■■■■■■■■■",
- "■■■■■■■■■■",
- "■■■■■■■■■■",
- "■■■11111■■",
- "■■111111■■",
- "■■111111■■",
- "■■■■111■■■",
- "■■■■■■■■■■",
- "■■■■■■■■■■",
- "■■■■■■■■■■"
- )
- );
-
- imgNormal
- .fisheye({ r: 1.8 })
- .getJGDSync()
- .should.be.sameJGD(imgBulged.getJGDSync());
- });
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-flip/CHANGELOG.md b/WechatBot/node_modules/@jimp/plugin-flip/CHANGELOG.md
deleted file mode 100644
index ecf1d4df9..000000000
--- a/WechatBot/node_modules/@jimp/plugin-flip/CHANGELOG.md
+++ /dev/null
@@ -1,47 +0,0 @@
-# v0.16.3 (Sat Feb 04 2023)
-
-#### ⚠️ Pushed to `master`
-
-- upgrade prettier ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 1
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
----
-
-# v0.11.0 (Fri May 15 2020)
-
-#### 🚀 Enhancement
-
-- Removed Core-JS as a dependency. [#882](https://github.com/oliver-moran/jimp/pull/882) ([@EricRabil](https://github.com/EricRabil))
-
-#### Authors: 1
-
-- Eric Rabil ([@EricRabil](https://github.com/EricRabil))
-
----
-
-# v0.10.3 (Mon Apr 20 2020)
-
-#### 🐛 Bug Fix
-
-- Simplify and fix flip [#879](https://github.com/oliver-moran/jimp/pull/879) ([@skalee](https://github.com/skalee))
-
-#### Authors: 1
-
-- Sebastian Skałacki ([@skalee](https://github.com/skalee))
-
----
-
-# v0.9.3 (Tue Nov 26 2019)
-
-#### 🐛 Bug Fix
-
-- `@jimp/cli`, `@jimp/core`, `@jimp/custom`, `jimp`, `@jimp/plugin-blit`, `@jimp/plugin-blur`, `@jimp/plugin-circle`, `@jimp/plugin-color`, `@jimp/plugin-contain`, `@jimp/plugin-cover`, `@jimp/plugin-crop`, `@jimp/plugin-displace`, `@jimp/plugin-dither`, `@jimp/plugin-fisheye`, `@jimp/plugin-flip`, `@jimp/plugin-gaussian`, `@jimp/plugin-invert`, `@jimp/plugin-mask`, `@jimp/plugin-normalize`, `@jimp/plugin-print`, `@jimp/plugin-resize`, `@jimp/plugin-rotate`, `@jimp/plugin-scale`, `@jimp/plugin-shadow`, `@jimp/plugin-threshold`, `@jimp/plugins`, `@jimp/test-utils`, `@jimp/bmp`, `@jimp/gif`, `@jimp/jpeg`, `@jimp/png`, `@jimp/tiff`, `@jimp/types`, `@jimp/utils`
- - Fix regeneratorRuntime errors [#815](https://github.com/oliver-moran/jimp/pull/815) ([@crutchcorn](https://github.com/crutchcorn) [@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 2
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
diff --git a/WechatBot/node_modules/@jimp/plugin-flip/LICENSE b/WechatBot/node_modules/@jimp/plugin-flip/LICENSE
deleted file mode 100644
index baa5d4850..000000000
--- a/WechatBot/node_modules/@jimp/plugin-flip/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Oliver Moran
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/WechatBot/node_modules/@jimp/plugin-flip/README.md b/WechatBot/node_modules/@jimp/plugin-flip/README.md
deleted file mode 100644
index dd7ecaf58..000000000
--- a/WechatBot/node_modules/@jimp/plugin-flip/README.md
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
@jimp/plugin-flip
-
flip an image.
-
-
-Flip the image horizontally or vertically. Defaults to horizontal.
-
-Also aliased as `mirror`
-
-## Usage
-
-- @param {boolean} horizontal a Boolean, if true the image will be flipped horizontally
-- @param {boolean} vertical a Boolean, if true the image will be flipped vertically
-- @param {function(Error, Jimp)} cb (optional) a callback for when complete
-
-```js
-import jimp from "jimp";
-
-async function main() {
- const image = await jimp.read("test/image.png");
-
- image.flip();
- image.mirror();
- image.flip(false, true);
-}
-
-main();
-```
diff --git a/WechatBot/node_modules/@jimp/plugin-flip/dist/index.js b/WechatBot/node_modules/@jimp/plugin-flip/dist/index.js
deleted file mode 100755
index b3f82f1bf..000000000
--- a/WechatBot/node_modules/@jimp/plugin-flip/dist/index.js
+++ /dev/null
@@ -1,48 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports["default"] = void 0;
-
-var _utils = require("@jimp/utils");
-
-/**
- * Flip the image horizontally
- * @param {boolean} horizontal a Boolean, if true the image will be flipped horizontally
- * @param {boolean} vertical a Boolean, if true the image will be flipped vertically
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
-function flipFn(horizontal, vertical, cb) {
- if (typeof horizontal !== "boolean" || typeof vertical !== "boolean") return _utils.throwError.call(this, "horizontal and vertical must be Booleans", cb);
- var bitmap = Buffer.alloc(this.bitmap.data.length);
- this.scanQuiet(0, 0, this.bitmap.width, this.bitmap.height, function (x, y, idx) {
- var _x = horizontal ? this.bitmap.width - 1 - x : x;
-
- var _y = vertical ? this.bitmap.height - 1 - y : y;
-
- var _idx = this.bitmap.width * _y + _x << 2;
-
- var data = this.bitmap.data.readUInt32BE(idx);
- bitmap.writeUInt32BE(data, _idx);
- });
- this.bitmap.data = Buffer.from(bitmap);
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
-}
-
-var _default = function _default() {
- return {
- flip: flipFn,
- mirror: flipFn
- };
-};
-
-exports["default"] = _default;
-module.exports = exports.default;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-flip/dist/index.js.map b/WechatBot/node_modules/@jimp/plugin-flip/dist/index.js.map
deleted file mode 100644
index afa7b12f7..000000000
--- a/WechatBot/node_modules/@jimp/plugin-flip/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/index.js"],"names":["flipFn","horizontal","vertical","cb","throwError","call","bitmap","Buffer","alloc","data","length","scanQuiet","width","height","x","y","idx","_x","_y","_idx","readUInt32BE","writeUInt32BE","from","flip","mirror"],"mappings":";;;;;;;AAAA;;AAEA;;;;;;;AAOA,SAASA,MAAT,CAAgBC,UAAhB,EAA4BC,QAA5B,EAAsCC,EAAtC,EAA0C;AACxC,MAAI,OAAOF,UAAP,KAAsB,SAAtB,IAAmC,OAAOC,QAAP,KAAoB,SAA3D,EACE,OAAOE,kBAAWC,IAAX,CACL,IADK,EAEL,0CAFK,EAGLF,EAHK,CAAP;AAMF,MAAMG,MAAM,GAAGC,MAAM,CAACC,KAAP,CAAa,KAAKF,MAAL,CAAYG,IAAZ,CAAiBC,MAA9B,CAAf;AACA,OAAKC,SAAL,CACE,CADF,EAEE,CAFF,EAGE,KAAKL,MAAL,CAAYM,KAHd,EAIE,KAAKN,MAAL,CAAYO,MAJd,EAKE,UAAUC,CAAV,EAAaC,CAAb,EAAgBC,GAAhB,EAAqB;AACnB,QAAMC,EAAE,GAAGhB,UAAU,GAAG,KAAKK,MAAL,CAAYM,KAAZ,GAAoB,CAApB,GAAwBE,CAA3B,GAA+BA,CAApD;;AACA,QAAMI,EAAE,GAAGhB,QAAQ,GAAG,KAAKI,MAAL,CAAYO,MAAZ,GAAqB,CAArB,GAAyBE,CAA5B,GAAgCA,CAAnD;;AACA,QAAMI,IAAI,GAAI,KAAKb,MAAL,CAAYM,KAAZ,GAAoBM,EAApB,GAAyBD,EAA1B,IAAiC,CAA9C;;AACA,QAAMR,IAAI,GAAG,KAAKH,MAAL,CAAYG,IAAZ,CAAiBW,YAAjB,CAA8BJ,GAA9B,CAAb;AAEAV,IAAAA,MAAM,CAACe,aAAP,CAAqBZ,IAArB,EAA2BU,IAA3B;AACD,GAZH;AAeA,OAAKb,MAAL,CAAYG,IAAZ,GAAmBF,MAAM,CAACe,IAAP,CAAYhB,MAAZ,CAAnB;;AAEA,MAAI,0BAAcH,EAAd,CAAJ,EAAuB;AACrBA,IAAAA,EAAE,CAACE,IAAH,CAAQ,IAAR,EAAc,IAAd,EAAoB,IAApB;AACD;;AAED,SAAO,IAAP;AACD;;eAEc;AAAA,SAAO;AACpBkB,IAAAA,IAAI,EAAEvB,MADc;AAEpBwB,IAAAA,MAAM,EAAExB;AAFY,GAAP;AAAA,C","sourcesContent":["import { isNodePattern, throwError } from \"@jimp/utils\";\n\n/**\n * Flip the image horizontally\n * @param {boolean} horizontal a Boolean, if true the image will be flipped horizontally\n * @param {boolean} vertical a Boolean, if true the image will be flipped vertically\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp} this for chaining of methods\n */\nfunction flipFn(horizontal, vertical, cb) {\n if (typeof horizontal !== \"boolean\" || typeof vertical !== \"boolean\")\n return throwError.call(\n this,\n \"horizontal and vertical must be Booleans\",\n cb\n );\n\n const bitmap = Buffer.alloc(this.bitmap.data.length);\n this.scanQuiet(\n 0,\n 0,\n this.bitmap.width,\n this.bitmap.height,\n function (x, y, idx) {\n const _x = horizontal ? this.bitmap.width - 1 - x : x;\n const _y = vertical ? this.bitmap.height - 1 - y : y;\n const _idx = (this.bitmap.width * _y + _x) << 2;\n const data = this.bitmap.data.readUInt32BE(idx);\n\n bitmap.writeUInt32BE(data, _idx);\n }\n );\n\n this.bitmap.data = Buffer.from(bitmap);\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n}\n\nexport default () => ({\n flip: flipFn,\n mirror: flipFn,\n});\n"],"file":"index.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-flip/index.d.ts b/WechatBot/node_modules/@jimp/plugin-flip/index.d.ts
deleted file mode 100644
index 3f1efd66d..000000000
--- a/WechatBot/node_modules/@jimp/plugin-flip/index.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { ImageCallback } from "@jimp/core";
-
-interface Flip {
- flip(horizontal: boolean, vertical: boolean, cb?: ImageCallback): this;
- mirror(
- horizontal: boolean,
- vertical: boolean,
- cb?: ImageCallback
- ): this;
-}
-
-export default function (): Flip;
diff --git a/WechatBot/node_modules/@jimp/plugin-flip/package.json b/WechatBot/node_modules/@jimp/plugin-flip/package.json
deleted file mode 100644
index 8b4f801b0..000000000
--- a/WechatBot/node_modules/@jimp/plugin-flip/package.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "name": "@jimp/plugin-flip",
- "version": "0.16.13",
- "description": "flip an image.",
- "main": "dist/index.js",
- "module": "es/index.js",
- "types": "index.d.ts",
- "scripts": {
- "build": "npm run build:node:production && npm run build:module",
- "build:watch": "npm run build:node:debug -- -- --watch --verbose",
- "build:debug": "npm run build:node:debug",
- "build:module": "cross-env BABEL_ENV=module babel src -d es --source-maps --config-file ../../babel.config.js",
- "build:node": "babel src -d dist --source-maps --config-file ../../babel.config.js",
- "build:node:debug": "cross-env BABEL_ENV=development npm run build:node",
- "build:node:production": "cross-env BABEL_ENV=production npm run build:node"
- },
- "author": "",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5",
- "@jimp/plugin-rotate": ">=0.3.5"
- },
- "publishConfig": {
- "access": "public"
- },
- "gitHead": "9eec86086634329a072901dca3a800b850548572"
-}
diff --git a/WechatBot/node_modules/@jimp/plugin-flip/src/index.js b/WechatBot/node_modules/@jimp/plugin-flip/src/index.js
deleted file mode 100755
index 01064ac18..000000000
--- a/WechatBot/node_modules/@jimp/plugin-flip/src/index.js
+++ /dev/null
@@ -1,46 +0,0 @@
-import { isNodePattern, throwError } from "@jimp/utils";
-
-/**
- * Flip the image horizontally
- * @param {boolean} horizontal a Boolean, if true the image will be flipped horizontally
- * @param {boolean} vertical a Boolean, if true the image will be flipped vertically
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
-function flipFn(horizontal, vertical, cb) {
- if (typeof horizontal !== "boolean" || typeof vertical !== "boolean")
- return throwError.call(
- this,
- "horizontal and vertical must be Booleans",
- cb
- );
-
- const bitmap = Buffer.alloc(this.bitmap.data.length);
- this.scanQuiet(
- 0,
- 0,
- this.bitmap.width,
- this.bitmap.height,
- function (x, y, idx) {
- const _x = horizontal ? this.bitmap.width - 1 - x : x;
- const _y = vertical ? this.bitmap.height - 1 - y : y;
- const _idx = (this.bitmap.width * _y + _x) << 2;
- const data = this.bitmap.data.readUInt32BE(idx);
-
- bitmap.writeUInt32BE(data, _idx);
- }
- );
-
- this.bitmap.data = Buffer.from(bitmap);
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
-}
-
-export default () => ({
- flip: flipFn,
- mirror: flipFn,
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-flip/test/flipping.test.js b/WechatBot/node_modules/@jimp/plugin-flip/test/flipping.test.js
deleted file mode 100755
index fb17d2032..000000000
--- a/WechatBot/node_modules/@jimp/plugin-flip/test/flipping.test.js
+++ /dev/null
@@ -1,99 +0,0 @@
-import { Jimp, mkJGD } from "@jimp/test-utils";
-
-import configure from "@jimp/custom";
-
-import flip from "../src";
-
-const jimp = configure({ plugins: [flip] }, Jimp);
-
-describe("Flipping plugin", () => {
- it("can flip horizontally", async () => {
- const src = await jimp.read(
- mkJGD(
- "AAAABBBB",
- "AAABAAAB",
- "ABABABAB",
- "CCCCCCCC",
- "CCCCCCCC",
- "CCCCCCCC",
- "AACCCCAA"
- )
- );
-
- const result = src.flip(true, false);
-
- result
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- "BBBBAAAA",
- "BAAABAAA",
- "BABABABA",
- "CCCCCCCC",
- "CCCCCCCC",
- "CCCCCCCC",
- "AACCCCAA"
- )
- );
- });
-
- it("can flip vertically", async () => {
- const src = await jimp.read(
- mkJGD(
- "AAAABBBB",
- "AAABAAAB",
- "ABABABAB",
- "CCCCCCCC",
- "CCCCCCCC",
- "CCCCCCCC",
- "AACCCCAA"
- )
- );
-
- const result = src.flip(false, true);
-
- result
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- "AACCCCAA",
- "CCCCCCCC",
- "CCCCCCCC",
- "CCCCCCCC",
- "ABABABAB",
- "AAABAAAB",
- "AAAABBBB"
- )
- );
- });
-
- it("can flip both horizontally and vertically at once", async () => {
- const src = await jimp.read(
- mkJGD(
- "AAAABBBB",
- "AAABAAAB",
- "ABABABAB",
- "CCCCCCCC",
- "CCCCCCCC",
- "CCCCCCCC",
- "AACCCCAA"
- )
- );
-
- const result = src.flip(true, true);
-
- result
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- "AACCCCAA",
- "CCCCCCCC",
- "CCCCCCCC",
- "CCCCCCCC",
- "BABABABA",
- "BAAABAAA",
- "BBBBAAAA"
- )
- );
- });
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-gaussian/CHANGELOG.md b/WechatBot/node_modules/@jimp/plugin-gaussian/CHANGELOG.md
deleted file mode 100644
index 4eb3193f9..000000000
--- a/WechatBot/node_modules/@jimp/plugin-gaussian/CHANGELOG.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# v0.16.3 (Sat Feb 04 2023)
-
-#### ⚠️ Pushed to `master`
-
-- upgrade prettier ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 1
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
----
-
-# v0.11.0 (Fri May 15 2020)
-
-#### 🚀 Enhancement
-
-- Removed Core-JS as a dependency. [#882](https://github.com/oliver-moran/jimp/pull/882) ([@EricRabil](https://github.com/EricRabil))
-
-#### Authors: 1
-
-- Eric Rabil ([@EricRabil](https://github.com/EricRabil))
-
----
-
-# v0.9.3 (Tue Nov 26 2019)
-
-#### 🐛 Bug Fix
-
-- `@jimp/cli`, `@jimp/core`, `@jimp/custom`, `jimp`, `@jimp/plugin-blit`, `@jimp/plugin-blur`, `@jimp/plugin-circle`, `@jimp/plugin-color`, `@jimp/plugin-contain`, `@jimp/plugin-cover`, `@jimp/plugin-crop`, `@jimp/plugin-displace`, `@jimp/plugin-dither`, `@jimp/plugin-fisheye`, `@jimp/plugin-flip`, `@jimp/plugin-gaussian`, `@jimp/plugin-invert`, `@jimp/plugin-mask`, `@jimp/plugin-normalize`, `@jimp/plugin-print`, `@jimp/plugin-resize`, `@jimp/plugin-rotate`, `@jimp/plugin-scale`, `@jimp/plugin-shadow`, `@jimp/plugin-threshold`, `@jimp/plugins`, `@jimp/test-utils`, `@jimp/bmp`, `@jimp/gif`, `@jimp/jpeg`, `@jimp/png`, `@jimp/tiff`, `@jimp/types`, `@jimp/utils`
- - Fix regeneratorRuntime errors [#815](https://github.com/oliver-moran/jimp/pull/815) ([@crutchcorn](https://github.com/crutchcorn) [@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 2
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
diff --git a/WechatBot/node_modules/@jimp/plugin-gaussian/LICENSE b/WechatBot/node_modules/@jimp/plugin-gaussian/LICENSE
deleted file mode 100644
index baa5d4850..000000000
--- a/WechatBot/node_modules/@jimp/plugin-gaussian/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Oliver Moran
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/WechatBot/node_modules/@jimp/plugin-gaussian/README.md b/WechatBot/node_modules/@jimp/plugin-gaussian/README.md
deleted file mode 100644
index 0f15ca985..000000000
--- a/WechatBot/node_modules/@jimp/plugin-gaussian/README.md
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
@jimp/plugin-gaussian
-
Gaussian blur an image.
-
-
-Applies a true Gaussian blur to the image (warning: this is VERY slow)
-
-## Usage
-
-- @param {number} r the pixel radius of the blur
-- @param {function(Error, Jimp)} cb (optional) a callback for when complete
-
-```js
-import jimp from "jimp";
-
-async function main() {
- const image = await jimp.read("test/image.png");
-
- image.gaussian(15);
-}
-
-main();
-```
diff --git a/WechatBot/node_modules/@jimp/plugin-gaussian/dist/index.js b/WechatBot/node_modules/@jimp/plugin-gaussian/dist/index.js
deleted file mode 100755
index d4312c8c4..000000000
--- a/WechatBot/node_modules/@jimp/plugin-gaussian/dist/index.js
+++ /dev/null
@@ -1,87 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports["default"] = void 0;
-
-var _utils = require("@jimp/utils");
-
-/**
- * Applies a true Gaussian blur to the image (warning: this is VERY slow)
- * @param {number} r the pixel radius of the blur
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
-var _default = function _default() {
- return {
- gaussian: function gaussian(r, cb) {
- // http://blog.ivank.net/fastest-gaussian-blur.html
- if (typeof r !== "number") {
- return _utils.throwError.call(this, "r must be a number", cb);
- }
-
- if (r < 1) {
- return _utils.throwError.call(this, "r must be greater than 0", cb);
- }
-
- var rs = Math.ceil(r * 2.57); // significant radius
-
- var range = rs * 2 + 1;
- var rr2 = r * r * 2;
- var rr2pi = rr2 * Math.PI;
- var weights = [];
-
- for (var y = 0; y < range; y++) {
- weights[y] = [];
-
- for (var x = 0; x < range; x++) {
- var dsq = Math.pow(x - rs, 2) + Math.pow(y - rs, 2);
- weights[y][x] = Math.exp(-dsq / rr2) / rr2pi;
- }
- }
-
- for (var _y = 0; _y < this.bitmap.height; _y++) {
- for (var _x = 0; _x < this.bitmap.width; _x++) {
- var red = 0;
- var green = 0;
- var blue = 0;
- var alpha = 0;
- var wsum = 0;
-
- for (var iy = 0; iy < range; iy++) {
- for (var ix = 0; ix < range; ix++) {
- var x1 = Math.min(this.bitmap.width - 1, Math.max(0, ix + _x - rs));
- var y1 = Math.min(this.bitmap.height - 1, Math.max(0, iy + _y - rs));
- var weight = weights[iy][ix];
-
- var _idx = y1 * this.bitmap.width + x1 << 2;
-
- red += this.bitmap.data[_idx] * weight;
- green += this.bitmap.data[_idx + 1] * weight;
- blue += this.bitmap.data[_idx + 2] * weight;
- alpha += this.bitmap.data[_idx + 3] * weight;
- wsum += weight;
- }
-
- var idx = _y * this.bitmap.width + _x << 2;
- this.bitmap.data[idx] = Math.round(red / wsum);
- this.bitmap.data[idx + 1] = Math.round(green / wsum);
- this.bitmap.data[idx + 2] = Math.round(blue / wsum);
- this.bitmap.data[idx + 3] = Math.round(alpha / wsum);
- }
- }
- }
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- }
- };
-};
-
-exports["default"] = _default;
-module.exports = exports.default;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-gaussian/dist/index.js.map b/WechatBot/node_modules/@jimp/plugin-gaussian/dist/index.js.map
deleted file mode 100644
index b0a9e436f..000000000
--- a/WechatBot/node_modules/@jimp/plugin-gaussian/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/index.js"],"names":["gaussian","r","cb","throwError","call","rs","Math","ceil","range","rr2","rr2pi","PI","weights","y","x","dsq","exp","bitmap","height","width","red","green","blue","alpha","wsum","iy","ix","x1","min","max","y1","weight","idx","data","round"],"mappings":"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","sourcesContent":["import { isNodePattern, throwError } from \"@jimp/utils\";\n\n/**\n * Applies a true Gaussian blur to the image (warning: this is VERY slow)\n * @param {number} r the pixel radius of the blur\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp} this for chaining of methods\n */\nexport default () => ({\n gaussian(r, cb) {\n // http://blog.ivank.net/fastest-gaussian-blur.html\n if (typeof r !== \"number\") {\n return throwError.call(this, \"r must be a number\", cb);\n }\n\n if (r < 1) {\n return throwError.call(this, \"r must be greater than 0\", cb);\n }\n\n const rs = Math.ceil(r * 2.57); // significant radius\n const range = rs * 2 + 1;\n const rr2 = r * r * 2;\n const rr2pi = rr2 * Math.PI;\n\n const weights = [];\n\n for (let y = 0; y < range; y++) {\n weights[y] = [];\n for (let x = 0; x < range; x++) {\n const dsq = (x - rs) ** 2 + (y - rs) ** 2;\n weights[y][x] = Math.exp(-dsq / rr2) / rr2pi;\n }\n }\n\n for (let y = 0; y < this.bitmap.height; y++) {\n for (let x = 0; x < this.bitmap.width; x++) {\n let red = 0;\n let green = 0;\n let blue = 0;\n let alpha = 0;\n let wsum = 0;\n\n for (let iy = 0; iy < range; iy++) {\n for (let ix = 0; ix < range; ix++) {\n const x1 = Math.min(\n this.bitmap.width - 1,\n Math.max(0, ix + x - rs)\n );\n const y1 = Math.min(\n this.bitmap.height - 1,\n Math.max(0, iy + y - rs)\n );\n const weight = weights[iy][ix];\n const idx = (y1 * this.bitmap.width + x1) << 2;\n\n red += this.bitmap.data[idx] * weight;\n green += this.bitmap.data[idx + 1] * weight;\n blue += this.bitmap.data[idx + 2] * weight;\n alpha += this.bitmap.data[idx + 3] * weight;\n wsum += weight;\n }\n\n const idx = (y * this.bitmap.width + x) << 2;\n\n this.bitmap.data[idx] = Math.round(red / wsum);\n this.bitmap.data[idx + 1] = Math.round(green / wsum);\n this.bitmap.data[idx + 2] = Math.round(blue / wsum);\n this.bitmap.data[idx + 3] = Math.round(alpha / wsum);\n }\n }\n }\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n },\n});\n"],"file":"index.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-gaussian/index.d.ts b/WechatBot/node_modules/@jimp/plugin-gaussian/index.d.ts
deleted file mode 100644
index 4f9114c92..000000000
--- a/WechatBot/node_modules/@jimp/plugin-gaussian/index.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { ImageCallback } from "@jimp/core";
-
-interface Gaussian {
- gaussian(r: number, cb?: ImageCallback): this;
-}
-
-export default function (): Gaussian;
diff --git a/WechatBot/node_modules/@jimp/plugin-gaussian/package.json b/WechatBot/node_modules/@jimp/plugin-gaussian/package.json
deleted file mode 100644
index c78a8cd2b..000000000
--- a/WechatBot/node_modules/@jimp/plugin-gaussian/package.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "name": "@jimp/plugin-gaussian",
- "version": "0.16.13",
- "description": "gaussian blur an image.",
- "main": "dist/index.js",
- "module": "es/index.js",
- "types": "index.d.ts",
- "scripts": {
- "build": "npm run build:node:production && npm run build:module",
- "build:watch": "npm run build:node:debug -- -- --watch --verbose",
- "build:debug": "npm run build:node:debug",
- "build:module": "cross-env BABEL_ENV=module babel src -d es --source-maps --config-file ../../babel.config.js",
- "build:node": "babel src -d dist --source-maps --config-file ../../babel.config.js",
- "build:node:debug": "cross-env BABEL_ENV=development npm run build:node",
- "build:node:production": "cross-env BABEL_ENV=production npm run build:node"
- },
- "author": "",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- },
- "publishConfig": {
- "access": "public"
- },
- "gitHead": "9eec86086634329a072901dca3a800b850548572"
-}
diff --git a/WechatBot/node_modules/@jimp/plugin-gaussian/src/index.js b/WechatBot/node_modules/@jimp/plugin-gaussian/src/index.js
deleted file mode 100755
index 21528cb66..000000000
--- a/WechatBot/node_modules/@jimp/plugin-gaussian/src/index.js
+++ /dev/null
@@ -1,79 +0,0 @@
-import { isNodePattern, throwError } from "@jimp/utils";
-
-/**
- * Applies a true Gaussian blur to the image (warning: this is VERY slow)
- * @param {number} r the pixel radius of the blur
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
-export default () => ({
- gaussian(r, cb) {
- // http://blog.ivank.net/fastest-gaussian-blur.html
- if (typeof r !== "number") {
- return throwError.call(this, "r must be a number", cb);
- }
-
- if (r < 1) {
- return throwError.call(this, "r must be greater than 0", cb);
- }
-
- const rs = Math.ceil(r * 2.57); // significant radius
- const range = rs * 2 + 1;
- const rr2 = r * r * 2;
- const rr2pi = rr2 * Math.PI;
-
- const weights = [];
-
- for (let y = 0; y < range; y++) {
- weights[y] = [];
- for (let x = 0; x < range; x++) {
- const dsq = (x - rs) ** 2 + (y - rs) ** 2;
- weights[y][x] = Math.exp(-dsq / rr2) / rr2pi;
- }
- }
-
- for (let y = 0; y < this.bitmap.height; y++) {
- for (let x = 0; x < this.bitmap.width; x++) {
- let red = 0;
- let green = 0;
- let blue = 0;
- let alpha = 0;
- let wsum = 0;
-
- for (let iy = 0; iy < range; iy++) {
- for (let ix = 0; ix < range; ix++) {
- const x1 = Math.min(
- this.bitmap.width - 1,
- Math.max(0, ix + x - rs)
- );
- const y1 = Math.min(
- this.bitmap.height - 1,
- Math.max(0, iy + y - rs)
- );
- const weight = weights[iy][ix];
- const idx = (y1 * this.bitmap.width + x1) << 2;
-
- red += this.bitmap.data[idx] * weight;
- green += this.bitmap.data[idx + 1] * weight;
- blue += this.bitmap.data[idx + 2] * weight;
- alpha += this.bitmap.data[idx + 3] * weight;
- wsum += weight;
- }
-
- const idx = (y * this.bitmap.width + x) << 2;
-
- this.bitmap.data[idx] = Math.round(red / wsum);
- this.bitmap.data[idx + 1] = Math.round(green / wsum);
- this.bitmap.data[idx + 2] = Math.round(blue / wsum);
- this.bitmap.data[idx + 3] = Math.round(alpha / wsum);
- }
- }
- }
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-invert/CHANGELOG.md b/WechatBot/node_modules/@jimp/plugin-invert/CHANGELOG.md
deleted file mode 100644
index 4eb3193f9..000000000
--- a/WechatBot/node_modules/@jimp/plugin-invert/CHANGELOG.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# v0.16.3 (Sat Feb 04 2023)
-
-#### ⚠️ Pushed to `master`
-
-- upgrade prettier ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 1
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
----
-
-# v0.11.0 (Fri May 15 2020)
-
-#### 🚀 Enhancement
-
-- Removed Core-JS as a dependency. [#882](https://github.com/oliver-moran/jimp/pull/882) ([@EricRabil](https://github.com/EricRabil))
-
-#### Authors: 1
-
-- Eric Rabil ([@EricRabil](https://github.com/EricRabil))
-
----
-
-# v0.9.3 (Tue Nov 26 2019)
-
-#### 🐛 Bug Fix
-
-- `@jimp/cli`, `@jimp/core`, `@jimp/custom`, `jimp`, `@jimp/plugin-blit`, `@jimp/plugin-blur`, `@jimp/plugin-circle`, `@jimp/plugin-color`, `@jimp/plugin-contain`, `@jimp/plugin-cover`, `@jimp/plugin-crop`, `@jimp/plugin-displace`, `@jimp/plugin-dither`, `@jimp/plugin-fisheye`, `@jimp/plugin-flip`, `@jimp/plugin-gaussian`, `@jimp/plugin-invert`, `@jimp/plugin-mask`, `@jimp/plugin-normalize`, `@jimp/plugin-print`, `@jimp/plugin-resize`, `@jimp/plugin-rotate`, `@jimp/plugin-scale`, `@jimp/plugin-shadow`, `@jimp/plugin-threshold`, `@jimp/plugins`, `@jimp/test-utils`, `@jimp/bmp`, `@jimp/gif`, `@jimp/jpeg`, `@jimp/png`, `@jimp/tiff`, `@jimp/types`, `@jimp/utils`
- - Fix regeneratorRuntime errors [#815](https://github.com/oliver-moran/jimp/pull/815) ([@crutchcorn](https://github.com/crutchcorn) [@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 2
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
diff --git a/WechatBot/node_modules/@jimp/plugin-invert/LICENSE b/WechatBot/node_modules/@jimp/plugin-invert/LICENSE
deleted file mode 100644
index baa5d4850..000000000
--- a/WechatBot/node_modules/@jimp/plugin-invert/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Oliver Moran
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/WechatBot/node_modules/@jimp/plugin-invert/README.md b/WechatBot/node_modules/@jimp/plugin-invert/README.md
deleted file mode 100644
index e201f5844..000000000
--- a/WechatBot/node_modules/@jimp/plugin-invert/README.md
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
@jimp/plugin-invert
-
Invert an image's colors.
-
-
-Invert an image's colors.
-
-## Usage
-
-- @param {function(Error, Jimp)} cb (optional) a callback for when complete
-
-```js
-import jimp from "jimp";
-
-async function main() {
- const image = await jimp.read("test/image.png");
-
- image.invert();
-}
-
-main();
-```
diff --git a/WechatBot/node_modules/@jimp/plugin-invert/dist/index.js b/WechatBot/node_modules/@jimp/plugin-invert/dist/index.js
deleted file mode 100755
index e65becc69..000000000
--- a/WechatBot/node_modules/@jimp/plugin-invert/dist/index.js
+++ /dev/null
@@ -1,35 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports["default"] = void 0;
-
-var _utils = require("@jimp/utils");
-
-/**
- * Inverts the image
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
-var _default = function _default() {
- return {
- invert: function invert(cb) {
- this.scanQuiet(0, 0, this.bitmap.width, this.bitmap.height, function (x, y, idx) {
- this.bitmap.data[idx] = 255 - this.bitmap.data[idx];
- this.bitmap.data[idx + 1] = 255 - this.bitmap.data[idx + 1];
- this.bitmap.data[idx + 2] = 255 - this.bitmap.data[idx + 2];
- });
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- }
- };
-};
-
-exports["default"] = _default;
-module.exports = exports.default;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-invert/dist/index.js.map b/WechatBot/node_modules/@jimp/plugin-invert/dist/index.js.map
deleted file mode 100644
index 317ed8955..000000000
--- a/WechatBot/node_modules/@jimp/plugin-invert/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/index.js"],"names":["invert","cb","scanQuiet","bitmap","width","height","x","y","idx","data","call"],"mappings":";;;;;;;AAAA;;AAEA;;;;;eAKe;AAAA,SAAO;AACpBA,IAAAA,MADoB,kBACbC,EADa,EACT;AACT,WAAKC,SAAL,CACE,CADF,EAEE,CAFF,EAGE,KAAKC,MAAL,CAAYC,KAHd,EAIE,KAAKD,MAAL,CAAYE,MAJd,EAKE,UAAUC,CAAV,EAAaC,CAAb,EAAgBC,GAAhB,EAAqB;AACnB,aAAKL,MAAL,CAAYM,IAAZ,CAAiBD,GAAjB,IAAwB,MAAM,KAAKL,MAAL,CAAYM,IAAZ,CAAiBD,GAAjB,CAA9B;AACA,aAAKL,MAAL,CAAYM,IAAZ,CAAiBD,GAAG,GAAG,CAAvB,IAA4B,MAAM,KAAKL,MAAL,CAAYM,IAAZ,CAAiBD,GAAG,GAAG,CAAvB,CAAlC;AACA,aAAKL,MAAL,CAAYM,IAAZ,CAAiBD,GAAG,GAAG,CAAvB,IAA4B,MAAM,KAAKL,MAAL,CAAYM,IAAZ,CAAiBD,GAAG,GAAG,CAAvB,CAAlC;AACD,OATH;;AAYA,UAAI,0BAAcP,EAAd,CAAJ,EAAuB;AACrBA,QAAAA,EAAE,CAACS,IAAH,CAAQ,IAAR,EAAc,IAAd,EAAoB,IAApB;AACD;;AAED,aAAO,IAAP;AACD;AAnBmB,GAAP;AAAA,C","sourcesContent":["import { isNodePattern } from \"@jimp/utils\";\n\n/**\n * Inverts the image\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp} this for chaining of methods\n */\nexport default () => ({\n invert(cb) {\n this.scanQuiet(\n 0,\n 0,\n this.bitmap.width,\n this.bitmap.height,\n function (x, y, idx) {\n this.bitmap.data[idx] = 255 - this.bitmap.data[idx];\n this.bitmap.data[idx + 1] = 255 - this.bitmap.data[idx + 1];\n this.bitmap.data[idx + 2] = 255 - this.bitmap.data[idx + 2];\n }\n );\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n },\n});\n"],"file":"index.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-invert/index.d.ts b/WechatBot/node_modules/@jimp/plugin-invert/index.d.ts
deleted file mode 100644
index 483b54307..000000000
--- a/WechatBot/node_modules/@jimp/plugin-invert/index.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { ImageCallback } from "@jimp/core";
-
-interface Invert {
- invert(cb?: ImageCallback): this;
-}
-
-export default function (): Invert;
diff --git a/WechatBot/node_modules/@jimp/plugin-invert/package.json b/WechatBot/node_modules/@jimp/plugin-invert/package.json
deleted file mode 100644
index 093b6ca26..000000000
--- a/WechatBot/node_modules/@jimp/plugin-invert/package.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "name": "@jimp/plugin-invert",
- "version": "0.16.13",
- "description": "invert an image.",
- "main": "dist/index.js",
- "module": "es/index.js",
- "types": "index.d.ts",
- "scripts": {
- "build": "npm run build:node:production && npm run build:module",
- "build:watch": "npm run build:node:debug -- -- --watch --verbose",
- "build:debug": "npm run build:node:debug",
- "build:module": "cross-env BABEL_ENV=module babel src -d es --source-maps --config-file ../../babel.config.js",
- "build:node": "babel src -d dist --source-maps --config-file ../../babel.config.js",
- "build:node:debug": "cross-env BABEL_ENV=development npm run build:node",
- "build:node:production": "cross-env BABEL_ENV=production npm run build:node"
- },
- "author": "",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- },
- "publishConfig": {
- "access": "public"
- },
- "gitHead": "9eec86086634329a072901dca3a800b850548572"
-}
diff --git a/WechatBot/node_modules/@jimp/plugin-invert/src/index.js b/WechatBot/node_modules/@jimp/plugin-invert/src/index.js
deleted file mode 100755
index 44ad93022..000000000
--- a/WechatBot/node_modules/@jimp/plugin-invert/src/index.js
+++ /dev/null
@@ -1,28 +0,0 @@
-import { isNodePattern } from "@jimp/utils";
-
-/**
- * Inverts the image
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
-export default () => ({
- invert(cb) {
- this.scanQuiet(
- 0,
- 0,
- this.bitmap.width,
- this.bitmap.height,
- function (x, y, idx) {
- this.bitmap.data[idx] = 255 - this.bitmap.data[idx];
- this.bitmap.data[idx + 1] = 255 - this.bitmap.data[idx + 1];
- this.bitmap.data[idx + 2] = 255 - this.bitmap.data[idx + 2];
- }
- );
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-mask/CHANGELOG.md b/WechatBot/node_modules/@jimp/plugin-mask/CHANGELOG.md
deleted file mode 100644
index 4eb3193f9..000000000
--- a/WechatBot/node_modules/@jimp/plugin-mask/CHANGELOG.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# v0.16.3 (Sat Feb 04 2023)
-
-#### ⚠️ Pushed to `master`
-
-- upgrade prettier ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 1
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
----
-
-# v0.11.0 (Fri May 15 2020)
-
-#### 🚀 Enhancement
-
-- Removed Core-JS as a dependency. [#882](https://github.com/oliver-moran/jimp/pull/882) ([@EricRabil](https://github.com/EricRabil))
-
-#### Authors: 1
-
-- Eric Rabil ([@EricRabil](https://github.com/EricRabil))
-
----
-
-# v0.9.3 (Tue Nov 26 2019)
-
-#### 🐛 Bug Fix
-
-- `@jimp/cli`, `@jimp/core`, `@jimp/custom`, `jimp`, `@jimp/plugin-blit`, `@jimp/plugin-blur`, `@jimp/plugin-circle`, `@jimp/plugin-color`, `@jimp/plugin-contain`, `@jimp/plugin-cover`, `@jimp/plugin-crop`, `@jimp/plugin-displace`, `@jimp/plugin-dither`, `@jimp/plugin-fisheye`, `@jimp/plugin-flip`, `@jimp/plugin-gaussian`, `@jimp/plugin-invert`, `@jimp/plugin-mask`, `@jimp/plugin-normalize`, `@jimp/plugin-print`, `@jimp/plugin-resize`, `@jimp/plugin-rotate`, `@jimp/plugin-scale`, `@jimp/plugin-shadow`, `@jimp/plugin-threshold`, `@jimp/plugins`, `@jimp/test-utils`, `@jimp/bmp`, `@jimp/gif`, `@jimp/jpeg`, `@jimp/png`, `@jimp/tiff`, `@jimp/types`, `@jimp/utils`
- - Fix regeneratorRuntime errors [#815](https://github.com/oliver-moran/jimp/pull/815) ([@crutchcorn](https://github.com/crutchcorn) [@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 2
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
diff --git a/WechatBot/node_modules/@jimp/plugin-mask/LICENSE b/WechatBot/node_modules/@jimp/plugin-mask/LICENSE
deleted file mode 100644
index baa5d4850..000000000
--- a/WechatBot/node_modules/@jimp/plugin-mask/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Oliver Moran
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/WechatBot/node_modules/@jimp/plugin-mask/README.md b/WechatBot/node_modules/@jimp/plugin-mask/README.md
deleted file mode 100644
index 840ce3726..000000000
--- a/WechatBot/node_modules/@jimp/plugin-mask/README.md
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
@jimp/plugin-mask
-
mask an image with another image.
-
-
-Masks a source image on to this image using average pixel colour. A completely black pixel on the mask will turn a pixel in the image completely transparent.
-
-## Usage
-
-- @param {Jimp} src the source Jimp instance
-- @param {number} x the horizontal position to blit the image
-- @param {number} y the vertical position to blit the image
-- @param {function(Error, Jimp)} cb (optional) a callback for when complete
-
-```js
-import jimp from "jimp";
-
-async function main() {
- const image = await jimp.read("test/image.png");
- const mask = await jimp.read("test/mask.png");
-
- image.mask(mask);
-}
-```
diff --git a/WechatBot/node_modules/@jimp/plugin-mask/dist/index.js b/WechatBot/node_modules/@jimp/plugin-mask/dist/index.js
deleted file mode 100755
index 79a6f19ba..000000000
--- a/WechatBot/node_modules/@jimp/plugin-mask/dist/index.js
+++ /dev/null
@@ -1,62 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports["default"] = void 0;
-
-var _utils = require("@jimp/utils");
-
-/**
- * Masks a source image on to this image using average pixel colour. A completely black pixel on the mask will turn a pixel in the image completely transparent.
- * @param {Jimp} src the source Jimp instance
- * @param {number} x the horizontal position to blit the image
- * @param {number} y the vertical position to blit the image
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
-var _default = function _default() {
- return {
- mask: function mask(src) {
- var x = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
- var y = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
- var cb = arguments.length > 3 ? arguments[3] : undefined;
-
- if (!(src instanceof this.constructor)) {
- return _utils.throwError.call(this, "The source must be a Jimp image", cb);
- }
-
- if (typeof x !== "number" || typeof y !== "number") {
- return _utils.throwError.call(this, "x and y must be numbers", cb);
- } // round input
-
-
- x = Math.round(x);
- y = Math.round(y);
- var w = this.bitmap.width;
- var h = this.bitmap.height;
- var baseImage = this;
- src.scanQuiet(0, 0, src.bitmap.width, src.bitmap.height, function (sx, sy, idx) {
- var destX = x + sx;
- var destY = y + sy;
-
- if (destX >= 0 && destY >= 0 && destX < w && destY < h) {
- var dstIdx = baseImage.getPixelIndex(destX, destY);
- var data = this.bitmap.data;
- var avg = (data[idx + 0] + data[idx + 1] + data[idx + 2]) / 3;
- baseImage.bitmap.data[dstIdx + 3] *= avg / 255;
- }
- });
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- }
- };
-};
-
-exports["default"] = _default;
-module.exports = exports.default;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-mask/dist/index.js.map b/WechatBot/node_modules/@jimp/plugin-mask/dist/index.js.map
deleted file mode 100644
index 40cda5165..000000000
--- a/WechatBot/node_modules/@jimp/plugin-mask/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/index.js"],"names":["mask","src","x","y","cb","constructor","throwError","call","Math","round","w","bitmap","width","h","height","baseImage","scanQuiet","sx","sy","idx","destX","destY","dstIdx","getPixelIndex","data","avg"],"mappings":";;;;;;;AAAA;;AAEA;;;;;;;;eAQe;AAAA,SAAO;AACpBA,IAAAA,IADoB,gBACfC,GADe,EACQ;AAAA,UAAlBC,CAAkB,uEAAd,CAAc;AAAA,UAAXC,CAAW,uEAAP,CAAO;AAAA,UAAJC,EAAI;;AAC1B,UAAI,EAAEH,GAAG,YAAY,KAAKI,WAAtB,CAAJ,EAAwC;AACtC,eAAOC,kBAAWC,IAAX,CAAgB,IAAhB,EAAsB,iCAAtB,EAAyDH,EAAzD,CAAP;AACD;;AAED,UAAI,OAAOF,CAAP,KAAa,QAAb,IAAyB,OAAOC,CAAP,KAAa,QAA1C,EAAoD;AAClD,eAAOG,kBAAWC,IAAX,CAAgB,IAAhB,EAAsB,yBAAtB,EAAiDH,EAAjD,CAAP;AACD,OAPyB,CAS1B;;;AACAF,MAAAA,CAAC,GAAGM,IAAI,CAACC,KAAL,CAAWP,CAAX,CAAJ;AACAC,MAAAA,CAAC,GAAGK,IAAI,CAACC,KAAL,CAAWN,CAAX,CAAJ;AAEA,UAAMO,CAAC,GAAG,KAAKC,MAAL,CAAYC,KAAtB;AACA,UAAMC,CAAC,GAAG,KAAKF,MAAL,CAAYG,MAAtB;AACA,UAAMC,SAAS,GAAG,IAAlB;AAEAd,MAAAA,GAAG,CAACe,SAAJ,CACE,CADF,EAEE,CAFF,EAGEf,GAAG,CAACU,MAAJ,CAAWC,KAHb,EAIEX,GAAG,CAACU,MAAJ,CAAWG,MAJb,EAKE,UAAUG,EAAV,EAAcC,EAAd,EAAkBC,GAAlB,EAAuB;AACrB,YAAMC,KAAK,GAAGlB,CAAC,GAAGe,EAAlB;AACA,YAAMI,KAAK,GAAGlB,CAAC,GAAGe,EAAlB;;AAEA,YAAIE,KAAK,IAAI,CAAT,IAAcC,KAAK,IAAI,CAAvB,IAA4BD,KAAK,GAAGV,CAApC,IAAyCW,KAAK,GAAGR,CAArD,EAAwD;AACtD,cAAMS,MAAM,GAAGP,SAAS,CAACQ,aAAV,CAAwBH,KAAxB,EAA+BC,KAA/B,CAAf;AADsD,cAE9CG,IAF8C,GAErC,KAAKb,MAFgC,CAE9Ca,IAF8C;AAGtD,cAAMC,GAAG,GAAG,CAACD,IAAI,CAACL,GAAG,GAAG,CAAP,CAAJ,GAAgBK,IAAI,CAACL,GAAG,GAAG,CAAP,CAApB,GAAgCK,IAAI,CAACL,GAAG,GAAG,CAAP,CAArC,IAAkD,CAA9D;AAEAJ,UAAAA,SAAS,CAACJ,MAAV,CAAiBa,IAAjB,CAAsBF,MAAM,GAAG,CAA/B,KAAqCG,GAAG,GAAG,GAA3C;AACD;AACF,OAhBH;;AAmBA,UAAI,0BAAcrB,EAAd,CAAJ,EAAuB;AACrBA,QAAAA,EAAE,CAACG,IAAH,CAAQ,IAAR,EAAc,IAAd,EAAoB,IAApB;AACD;;AAED,aAAO,IAAP;AACD;AA1CmB,GAAP;AAAA,C","sourcesContent":["import { isNodePattern, throwError } from \"@jimp/utils\";\n\n/**\n * Masks a source image on to this image using average pixel colour. A completely black pixel on the mask will turn a pixel in the image completely transparent.\n * @param {Jimp} src the source Jimp instance\n * @param {number} x the horizontal position to blit the image\n * @param {number} y the vertical position to blit the image\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp} this for chaining of methods\n */\nexport default () => ({\n mask(src, x = 0, y = 0, cb) {\n if (!(src instanceof this.constructor)) {\n return throwError.call(this, \"The source must be a Jimp image\", cb);\n }\n\n if (typeof x !== \"number\" || typeof y !== \"number\") {\n return throwError.call(this, \"x and y must be numbers\", cb);\n }\n\n // round input\n x = Math.round(x);\n y = Math.round(y);\n\n const w = this.bitmap.width;\n const h = this.bitmap.height;\n const baseImage = this;\n\n src.scanQuiet(\n 0,\n 0,\n src.bitmap.width,\n src.bitmap.height,\n function (sx, sy, idx) {\n const destX = x + sx;\n const destY = y + sy;\n\n if (destX >= 0 && destY >= 0 && destX < w && destY < h) {\n const dstIdx = baseImage.getPixelIndex(destX, destY);\n const { data } = this.bitmap;\n const avg = (data[idx + 0] + data[idx + 1] + data[idx + 2]) / 3;\n\n baseImage.bitmap.data[dstIdx + 3] *= avg / 255;\n }\n }\n );\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n },\n});\n"],"file":"index.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-mask/index.d.ts b/WechatBot/node_modules/@jimp/plugin-mask/index.d.ts
deleted file mode 100644
index 8effa592a..000000000
--- a/WechatBot/node_modules/@jimp/plugin-mask/index.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { ImageCallback, Jimp } from "@jimp/core";
-
-interface Mask {
- mask(src: Jimp, x: number, y: number, cb?: ImageCallback): this;
-}
-
-export default function (): Mask;
diff --git a/WechatBot/node_modules/@jimp/plugin-mask/package.json b/WechatBot/node_modules/@jimp/plugin-mask/package.json
deleted file mode 100644
index eea0bd57b..000000000
--- a/WechatBot/node_modules/@jimp/plugin-mask/package.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "name": "@jimp/plugin-mask",
- "version": "0.16.13",
- "description": "mask an image.",
- "main": "dist/index.js",
- "module": "es/index.js",
- "types": "index.d.ts",
- "scripts": {
- "test": "cross-env BABEL_ENV=test mocha --require @babel/register",
- "test:watch": "npm run test -- --reporter min --watch",
- "test:coverage": "nyc npm run test",
- "build": "npm run build:node:production && npm run build:module",
- "build:watch": "npm run build:node:debug -- -- --watch --verbose",
- "build:debug": "npm run build:node:debug",
- "build:module": "cross-env BABEL_ENV=module babel src -d es --source-maps --config-file ../../babel.config.js",
- "build:node": "babel src -d dist --source-maps --config-file ../../babel.config.js",
- "build:node:debug": "cross-env BABEL_ENV=development npm run build:node",
- "build:node:production": "cross-env BABEL_ENV=production npm run build:node"
- },
- "author": "",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- },
- "devDependencies": {
- "@jimp/custom": "^0.16.13",
- "@jimp/test-utils": "^0.16.13"
- },
- "publishConfig": {
- "access": "public"
- },
- "gitHead": "9eec86086634329a072901dca3a800b850548572"
-}
diff --git a/WechatBot/node_modules/@jimp/plugin-mask/src/index.js b/WechatBot/node_modules/@jimp/plugin-mask/src/index.js
deleted file mode 100755
index 2a6b32d4c..000000000
--- a/WechatBot/node_modules/@jimp/plugin-mask/src/index.js
+++ /dev/null
@@ -1,54 +0,0 @@
-import { isNodePattern, throwError } from "@jimp/utils";
-
-/**
- * Masks a source image on to this image using average pixel colour. A completely black pixel on the mask will turn a pixel in the image completely transparent.
- * @param {Jimp} src the source Jimp instance
- * @param {number} x the horizontal position to blit the image
- * @param {number} y the vertical position to blit the image
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
-export default () => ({
- mask(src, x = 0, y = 0, cb) {
- if (!(src instanceof this.constructor)) {
- return throwError.call(this, "The source must be a Jimp image", cb);
- }
-
- if (typeof x !== "number" || typeof y !== "number") {
- return throwError.call(this, "x and y must be numbers", cb);
- }
-
- // round input
- x = Math.round(x);
- y = Math.round(y);
-
- const w = this.bitmap.width;
- const h = this.bitmap.height;
- const baseImage = this;
-
- src.scanQuiet(
- 0,
- 0,
- src.bitmap.width,
- src.bitmap.height,
- function (sx, sy, idx) {
- const destX = x + sx;
- const destY = y + sy;
-
- if (destX >= 0 && destY >= 0 && destX < w && destY < h) {
- const dstIdx = baseImage.getPixelIndex(destX, destY);
- const { data } = this.bitmap;
- const avg = (data[idx + 0] + data[idx + 1] + data[idx + 2]) / 3;
-
- baseImage.bitmap.data[dstIdx + 3] *= avg / 255;
- }
- }
- );
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-mask/test/mask.test.js b/WechatBot/node_modules/@jimp/plugin-mask/test/mask.test.js
deleted file mode 100755
index 373bc099e..000000000
--- a/WechatBot/node_modules/@jimp/plugin-mask/test/mask.test.js
+++ /dev/null
@@ -1,173 +0,0 @@
-import { Jimp, mkJGD } from "@jimp/test-utils";
-import configure from "@jimp/custom";
-
-import mask from "../src";
-
-const jimp = configure({ plugins: [mask] }, Jimp);
-
-describe("Mask", () => {
- let imgSrcOpaq;
- let imgSrcAlpa;
- let maskGrayBig;
- let maskGraySmall;
- let maskColor;
-
- before((done) => {
- Promise.all([
- jimp.read(mkJGD("▴□▾□■□", "■▴■▾■□", "■□▴□▾□", "■□■▴■▾")),
- jimp.read(mkJGD("▴▵▾▿", "▴▵▾▿", "▴▵▾▿")),
- jimp.read(mkJGD("048840", "8CFFC8", "8CFFC8", "048840")),
- jimp.read(mkJGD("0369", "369C", "69CF")),
- jimp.read(mkJGD("▴▴▾▾", "▪▪▰▰", "□□□□")),
- ])
- .then((imgs) => {
- imgSrcOpaq = imgs[0];
- imgSrcAlpa = imgs[1];
- maskGrayBig = imgs[2];
- maskGraySmall = imgs[3];
- maskColor = imgs[4];
- done();
- })
- .catch(done);
- });
-
- it("Affect opaque image with a gray mask with the same size", () => {
- imgSrcOpaq
- .clone()
- .mask(maskGrayBig)
- .getJGDSync()
- .should.be.sameJGD({
- width: 6,
- height: 4,
- data: [
- 0xff000000, 0xffffff44, 0x0000ff88, 0xffffff88, 0x00000044,
- 0xffffff00, 0x00000088, 0xff0000cc, 0x000000ff, 0x0000ffff,
- 0x000000cc, 0xffffff88, 0x00000088, 0xffffffcc, 0xff0000ff,
- 0xffffffff, 0x0000ffcc, 0xffffff88, 0x00000000, 0xffffff44,
- 0x00000088, 0xff000088, 0x00000044, 0x0000ff00,
- ],
- });
- });
-
- it("Affect opaque image with a gray mask with the same size, blited", () => {
- imgSrcOpaq
- .clone()
- .mask(maskGrayBig, 1, 1)
- .getJGDSync()
- .should.be.sameJGD({
- width: 6,
- height: 4,
- data: [
- 0xff0000ff, 0xffffffff, 0x0000ffff, 0xffffffff, 0x000000ff,
- 0xffffffff, 0x000000ff, 0xff000000, 0x00000044, 0x0000ff88,
- 0x00000088, 0xffffff44, 0x000000ff, 0xffffff88, 0xff0000cc,
- 0xffffffff, 0x0000ffff, 0xffffffcc, 0x000000ff, 0xffffff88,
- 0x000000cc, 0xff0000ff, 0x000000ff, 0x0000ffcc,
- ],
- });
- });
-
- it("Affect opaque image with a gray mask with the same size, blited negative", () => {
- imgSrcOpaq
- .clone()
- .mask(maskGrayBig, -1, -1)
- .getJGDSync()
- .should.be.sameJGD({
- width: 6,
- height: 4,
- data: [
- 0xff0000cc, 0xffffffff, 0x0000ffff, 0xffffffcc, 0x00000088,
- 0xffffffff, 0x000000cc, 0xff0000ff, 0x000000ff, 0x0000ffcc,
- 0x00000088, 0xffffffff, 0x00000044, 0xffffff88, 0xff000088,
- 0xffffff44, 0x0000ff00, 0xffffffff, 0x000000ff, 0xffffffff,
- 0x000000ff, 0xff0000ff, 0x000000ff, 0x0000ffff,
- ],
- });
- });
-
- it("Affect opaque image with a smaller gray mask", () => {
- imgSrcOpaq
- .clone()
- .mask(maskGraySmall)
- .getJGDSync()
- .should.be.sameJGD({
- width: 6,
- height: 4,
- data: [
- 0xff000000, 0xffffff33, 0x0000ff66, 0xffffff99, 0x000000ff,
- 0xffffffff, 0x00000033, 0xff000066, 0x00000099, 0x0000ffcc,
- 0x000000ff, 0xffffffff, 0x00000066, 0xffffff99, 0xff0000cc,
- 0xffffffff, 0x0000ffff, 0xffffffff, 0x000000ff, 0xffffffff,
- 0x000000ff, 0xff0000ff, 0x000000ff, 0x0000ffff,
- ],
- });
- });
-
- it("Affect opaque image with a smaller gray mask, blited", () => {
- imgSrcOpaq
- .clone()
- .mask(maskGraySmall, 1, 1)
- .getJGDSync()
- .should.be.sameJGD({
- width: 6,
- height: 4,
- data: [
- 0xff0000ff, 0xffffffff, 0x0000ffff, 0xffffffff, 0x000000ff,
- 0xffffffff, 0x000000ff, 0xff000000, 0x00000033, 0x0000ff66,
- 0x00000099, 0xffffffff, 0x000000ff, 0xffffff33, 0xff000066,
- 0xffffff99, 0x0000ffcc, 0xffffffff, 0x000000ff, 0xffffff66,
- 0x00000099, 0xff0000cc, 0x000000ff, 0x0000ffff,
- ],
- });
- });
-
- it("Affect alpha image with a bigger gray mask", () => {
- imgSrcAlpa
- .clone()
- .mask(maskGrayBig)
- .getJGDSync()
- .should.be.sameJGD({
- width: 4,
- height: 3,
- data: [
- 0xff000000, 0xff000021, 0x0000ff88, 0x0000ff43, 0xff000088,
- 0xff000065, 0x0000ffff, 0x0000ff7f, 0xff000088, 0xff000065,
- 0x0000ffff, 0x0000ff7f,
- ],
- });
- });
-
- it("Affect alpha image with a bigger gray mask, blited", () => {
- imgSrcAlpa
- .clone()
- .mask(maskGrayBig, -1, -1)
- .getJGDSync()
- .should.be.sameJGD({
- width: 4,
- height: 3,
- data: [
- 0xff0000cc, 0xff00007f, 0x0000ffff, 0x0000ff65, 0xff0000cc,
- 0xff00007f, 0x0000ffff, 0x0000ff65, 0xff000044, 0xff000043,
- 0x0000ff88, 0x0000ff21,
- ],
- });
- });
-
- it("Affect opaque image with a colored mask", () => {
- imgSrcOpaq
- .clone()
- .mask(maskColor, 1, 1)
- .getJGDSync()
- .should.be.sameJGD({
- width: 6,
- height: 4,
- data: [
- 0xff0000ff, 0xffffffff, 0x0000ffff, 0xffffffff, 0x000000ff,
- 0xffffffff, 0x000000ff, 0xff000055, 0x00000055, 0x0000ff55,
- 0x00000055, 0xffffffff, 0x000000ff, 0xffffffaa, 0xff0000aa,
- 0xffffffaa, 0x0000ffaa, 0xffffffff, 0x000000ff, 0xffffffff,
- 0x000000ff, 0xff0000ff, 0x000000ff, 0x0000ffff,
- ],
- });
- });
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-normalize/CHANGELOG.md b/WechatBot/node_modules/@jimp/plugin-normalize/CHANGELOG.md
deleted file mode 100644
index 4eb3193f9..000000000
--- a/WechatBot/node_modules/@jimp/plugin-normalize/CHANGELOG.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# v0.16.3 (Sat Feb 04 2023)
-
-#### ⚠️ Pushed to `master`
-
-- upgrade prettier ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 1
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
----
-
-# v0.11.0 (Fri May 15 2020)
-
-#### 🚀 Enhancement
-
-- Removed Core-JS as a dependency. [#882](https://github.com/oliver-moran/jimp/pull/882) ([@EricRabil](https://github.com/EricRabil))
-
-#### Authors: 1
-
-- Eric Rabil ([@EricRabil](https://github.com/EricRabil))
-
----
-
-# v0.9.3 (Tue Nov 26 2019)
-
-#### 🐛 Bug Fix
-
-- `@jimp/cli`, `@jimp/core`, `@jimp/custom`, `jimp`, `@jimp/plugin-blit`, `@jimp/plugin-blur`, `@jimp/plugin-circle`, `@jimp/plugin-color`, `@jimp/plugin-contain`, `@jimp/plugin-cover`, `@jimp/plugin-crop`, `@jimp/plugin-displace`, `@jimp/plugin-dither`, `@jimp/plugin-fisheye`, `@jimp/plugin-flip`, `@jimp/plugin-gaussian`, `@jimp/plugin-invert`, `@jimp/plugin-mask`, `@jimp/plugin-normalize`, `@jimp/plugin-print`, `@jimp/plugin-resize`, `@jimp/plugin-rotate`, `@jimp/plugin-scale`, `@jimp/plugin-shadow`, `@jimp/plugin-threshold`, `@jimp/plugins`, `@jimp/test-utils`, `@jimp/bmp`, `@jimp/gif`, `@jimp/jpeg`, `@jimp/png`, `@jimp/tiff`, `@jimp/types`, `@jimp/utils`
- - Fix regeneratorRuntime errors [#815](https://github.com/oliver-moran/jimp/pull/815) ([@crutchcorn](https://github.com/crutchcorn) [@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 2
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
diff --git a/WechatBot/node_modules/@jimp/plugin-normalize/LICENSE b/WechatBot/node_modules/@jimp/plugin-normalize/LICENSE
deleted file mode 100644
index baa5d4850..000000000
--- a/WechatBot/node_modules/@jimp/plugin-normalize/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Oliver Moran
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/WechatBot/node_modules/@jimp/plugin-normalize/README.md b/WechatBot/node_modules/@jimp/plugin-normalize/README.md
deleted file mode 100644
index 19ba914d5..000000000
--- a/WechatBot/node_modules/@jimp/plugin-normalize/README.md
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
@jimp/plugin-normalize
-
Normalize an image's colors.
-
-
-Normalizes an images color by computing a histogram.
-
-## Usage
-
-- @param {function(Error, Jimp)} cb (optional) a callback for when complete
-
-```js
-import jimp from "jimp";
-
-async function main() {
- const image = await jimp.read("test/image.png");
-
- image.normalize();
-}
-
-main();
-```
diff --git a/WechatBot/node_modules/@jimp/plugin-normalize/dist/index.js b/WechatBot/node_modules/@jimp/plugin-normalize/dist/index.js
deleted file mode 100755
index d5a04e60e..000000000
--- a/WechatBot/node_modules/@jimp/plugin-normalize/dist/index.js
+++ /dev/null
@@ -1,85 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports["default"] = void 0;
-
-var _utils = require("@jimp/utils");
-
-/**
- * Get an image's histogram
- * @return {object} An object with an array of color occurrence counts for each channel (r,g,b)
- */
-function histogram() {
- var histogram = {
- r: new Array(256).fill(0),
- g: new Array(256).fill(0),
- b: new Array(256).fill(0)
- };
- this.scanQuiet(0, 0, this.bitmap.width, this.bitmap.height, function (x, y, index) {
- histogram.r[this.bitmap.data[index + 0]]++;
- histogram.g[this.bitmap.data[index + 1]]++;
- histogram.b[this.bitmap.data[index + 2]]++;
- });
- return histogram;
-}
-/**
- * Normalize values
- * @param {integer} value Pixel channel value.
- * @param {integer} min Minimum value for channel
- * @param {integer} max Maximum value for channel
- * @return {integer} normalized values
- */
-
-
-var _normalize = function normalize(value, min, max) {
- return (value - min) * 255 / (max - min);
-};
-
-var getBounds = function getBounds(histogramChannel) {
- return [histogramChannel.findIndex(function (value) {
- return value > 0;
- }), 255 - histogramChannel.slice().reverse().findIndex(function (value) {
- return value > 0;
- })];
-};
-/**
- * Normalizes the image
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
-
-
-var _default = function _default() {
- return {
- normalize: function normalize(cb) {
- var h = histogram.call(this); // store bounds (minimum and maximum values)
-
- var bounds = {
- r: getBounds(h.r),
- g: getBounds(h.g),
- b: getBounds(h.b)
- }; // apply value transformations
-
- this.scanQuiet(0, 0, this.bitmap.width, this.bitmap.height, function (x, y, idx) {
- var r = this.bitmap.data[idx + 0];
- var g = this.bitmap.data[idx + 1];
- var b = this.bitmap.data[idx + 2];
- this.bitmap.data[idx + 0] = _normalize(r, bounds.r[0], bounds.r[1]);
- this.bitmap.data[idx + 1] = _normalize(g, bounds.g[0], bounds.g[1]);
- this.bitmap.data[idx + 2] = _normalize(b, bounds.b[0], bounds.b[1]);
- });
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- }
- };
-};
-
-exports["default"] = _default;
-module.exports = exports.default;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-normalize/dist/index.js.map b/WechatBot/node_modules/@jimp/plugin-normalize/dist/index.js.map
deleted file mode 100644
index 5d2e75a74..000000000
--- a/WechatBot/node_modules/@jimp/plugin-normalize/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/index.js"],"names":["histogram","r","Array","fill","g","b","scanQuiet","bitmap","width","height","x","y","index","data","normalize","value","min","max","getBounds","histogramChannel","findIndex","slice","reverse","cb","h","call","bounds","idx"],"mappings":"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","sourcesContent":["import { isNodePattern } from \"@jimp/utils\";\n\n/**\n * Get an image's histogram\n * @return {object} An object with an array of color occurrence counts for each channel (r,g,b)\n */\nfunction histogram() {\n const histogram = {\n r: new Array(256).fill(0),\n g: new Array(256).fill(0),\n b: new Array(256).fill(0),\n };\n\n this.scanQuiet(\n 0,\n 0,\n this.bitmap.width,\n this.bitmap.height,\n function (x, y, index) {\n histogram.r[this.bitmap.data[index + 0]]++;\n histogram.g[this.bitmap.data[index + 1]]++;\n histogram.b[this.bitmap.data[index + 2]]++;\n }\n );\n\n return histogram;\n}\n\n/**\n * Normalize values\n * @param {integer} value Pixel channel value.\n * @param {integer} min Minimum value for channel\n * @param {integer} max Maximum value for channel\n * @return {integer} normalized values\n */\nconst normalize = function (value, min, max) {\n return ((value - min) * 255) / (max - min);\n};\n\nconst getBounds = function (histogramChannel) {\n return [\n histogramChannel.findIndex((value) => value > 0),\n 255 -\n histogramChannel\n .slice()\n .reverse()\n .findIndex((value) => value > 0),\n ];\n};\n\n/**\n * Normalizes the image\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp} this for chaining of methods\n */\nexport default () => ({\n normalize(cb) {\n const h = histogram.call(this);\n\n // store bounds (minimum and maximum values)\n const bounds = {\n r: getBounds(h.r),\n g: getBounds(h.g),\n b: getBounds(h.b),\n };\n\n // apply value transformations\n this.scanQuiet(\n 0,\n 0,\n this.bitmap.width,\n this.bitmap.height,\n function (x, y, idx) {\n const r = this.bitmap.data[idx + 0];\n const g = this.bitmap.data[idx + 1];\n const b = this.bitmap.data[idx + 2];\n\n this.bitmap.data[idx + 0] = normalize(r, bounds.r[0], bounds.r[1]);\n this.bitmap.data[idx + 1] = normalize(g, bounds.g[0], bounds.g[1]);\n this.bitmap.data[idx + 2] = normalize(b, bounds.b[0], bounds.b[1]);\n }\n );\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n },\n});\n"],"file":"index.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-normalize/index.d.ts b/WechatBot/node_modules/@jimp/plugin-normalize/index.d.ts
deleted file mode 100644
index 1ae996dcf..000000000
--- a/WechatBot/node_modules/@jimp/plugin-normalize/index.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { ImageCallback } from "@jimp/core";
-
-interface Normalize {
- normalize(cb?: ImageCallback): this;
-}
-
-export default function (): Normalize;
diff --git a/WechatBot/node_modules/@jimp/plugin-normalize/package.json b/WechatBot/node_modules/@jimp/plugin-normalize/package.json
deleted file mode 100644
index 3da939c1a..000000000
--- a/WechatBot/node_modules/@jimp/plugin-normalize/package.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "name": "@jimp/plugin-normalize",
- "version": "0.16.13",
- "description": "normalize an image.",
- "main": "dist/index.js",
- "module": "es/index.js",
- "types": "index.d.ts",
- "scripts": {
- "test": "cross-env BABEL_ENV=test mocha --require @babel/register",
- "test:watch": "npm run test -- --reporter min --watch",
- "test:coverage": "nyc npm run test",
- "build": "npm run build:node:production && npm run build:module",
- "build:watch": "npm run build:node:debug -- -- --watch --verbose",
- "build:debug": "npm run build:node:debug",
- "build:module": "cross-env BABEL_ENV=module babel src -d es --source-maps --config-file ../../babel.config.js",
- "build:node": "babel src -d dist --source-maps --config-file ../../babel.config.js",
- "build:node:debug": "cross-env BABEL_ENV=development npm run build:node",
- "build:node:production": "cross-env BABEL_ENV=production npm run build:node"
- },
- "author": "",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- },
- "devDependencies": {
- "@jimp/custom": "^0.16.13",
- "@jimp/test-utils": "^0.16.13"
- },
- "publishConfig": {
- "access": "public"
- },
- "gitHead": "9eec86086634329a072901dca3a800b850548572"
-}
diff --git a/WechatBot/node_modules/@jimp/plugin-normalize/src/index.js b/WechatBot/node_modules/@jimp/plugin-normalize/src/index.js
deleted file mode 100755
index 57a696cac..000000000
--- a/WechatBot/node_modules/@jimp/plugin-normalize/src/index.js
+++ /dev/null
@@ -1,90 +0,0 @@
-import { isNodePattern } from "@jimp/utils";
-
-/**
- * Get an image's histogram
- * @return {object} An object with an array of color occurrence counts for each channel (r,g,b)
- */
-function histogram() {
- const histogram = {
- r: new Array(256).fill(0),
- g: new Array(256).fill(0),
- b: new Array(256).fill(0),
- };
-
- this.scanQuiet(
- 0,
- 0,
- this.bitmap.width,
- this.bitmap.height,
- function (x, y, index) {
- histogram.r[this.bitmap.data[index + 0]]++;
- histogram.g[this.bitmap.data[index + 1]]++;
- histogram.b[this.bitmap.data[index + 2]]++;
- }
- );
-
- return histogram;
-}
-
-/**
- * Normalize values
- * @param {integer} value Pixel channel value.
- * @param {integer} min Minimum value for channel
- * @param {integer} max Maximum value for channel
- * @return {integer} normalized values
- */
-const normalize = function (value, min, max) {
- return ((value - min) * 255) / (max - min);
-};
-
-const getBounds = function (histogramChannel) {
- return [
- histogramChannel.findIndex((value) => value > 0),
- 255 -
- histogramChannel
- .slice()
- .reverse()
- .findIndex((value) => value > 0),
- ];
-};
-
-/**
- * Normalizes the image
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
-export default () => ({
- normalize(cb) {
- const h = histogram.call(this);
-
- // store bounds (minimum and maximum values)
- const bounds = {
- r: getBounds(h.r),
- g: getBounds(h.g),
- b: getBounds(h.b),
- };
-
- // apply value transformations
- this.scanQuiet(
- 0,
- 0,
- this.bitmap.width,
- this.bitmap.height,
- function (x, y, idx) {
- const r = this.bitmap.data[idx + 0];
- const g = this.bitmap.data[idx + 1];
- const b = this.bitmap.data[idx + 2];
-
- this.bitmap.data[idx + 0] = normalize(r, bounds.r[0], bounds.r[1]);
- this.bitmap.data[idx + 1] = normalize(g, bounds.g[0], bounds.g[1]);
- this.bitmap.data[idx + 2] = normalize(b, bounds.b[0], bounds.b[1]);
- }
- );
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-normalize/test/normalize.test.js b/WechatBot/node_modules/@jimp/plugin-normalize/test/normalize.test.js
deleted file mode 100755
index fc67fec76..000000000
--- a/WechatBot/node_modules/@jimp/plugin-normalize/test/normalize.test.js
+++ /dev/null
@@ -1,39 +0,0 @@
-import { Jimp, mkJGD } from "@jimp/test-utils";
-import configure from "@jimp/custom";
-
-import normalize from "../src";
-
-const jimp = configure({ plugins: [normalize] }, Jimp);
-
-describe("Normalize", () => {
- it("change grayscale image", async () => {
- const image = await jimp.read(mkJGD("36▦", "6▦9", "▦9C"));
-
- image
- .normalize()
- .getJGDSync()
- .should.be.sameJGD(mkJGD("■5▦", "5▦A", "▦A□"));
- });
-
- it("change red/blue image", async () => {
- const image = await jimp.read({
- width: 3,
- height: 2,
- data: [
- 0x000000ff, 0x400022ff, 0x40002200, 0x400000ff, 0x000022ff, 0x800055ff,
- ],
- });
-
- image
- .normalize()
- .getJGDSync()
- .should.be.sameJGD({
- width: 3,
- height: 2,
- data: [
- 0x000000ff, 0x7f0066ff, 0x7f006600, 0x7f0000ff, 0x000066ff,
- 0xff00ffff,
- ],
- });
- });
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-print/CHANGELOG.md b/WechatBot/node_modules/@jimp/plugin-print/CHANGELOG.md
deleted file mode 100644
index 23f8c511f..000000000
--- a/WechatBot/node_modules/@jimp/plugin-print/CHANGELOG.md
+++ /dev/null
@@ -1,71 +0,0 @@
-# v0.16.3 (Sat Feb 04 2023)
-
-#### 🐛 Bug Fix
-
-- Update README.md [#1120](https://github.com/jimp-dev/jimp/pull/1120) ([@mfuatnuroglu](https://github.com/mfuatnuroglu))
-
-#### ⚠️ Pushed to `master`
-
-- try this ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- upgrade prettier ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 2
-
-- [@mfuatnuroglu](https://github.com/mfuatnuroglu)
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
----
-
-# v0.11.0 (Fri May 15 2020)
-
-#### 🚀 Enhancement
-
-- Removed Core-JS as a dependency. [#882](https://github.com/oliver-moran/jimp/pull/882) ([@EricRabil](https://github.com/EricRabil))
-
-#### Authors: 1
-
-- Eric Rabil ([@EricRabil](https://github.com/EricRabil))
-
----
-
-# v0.10.1 (Sun Apr 05 2020)
-
-#### 📝 Documentation
-
-- Fix a `loadFont` and case inconsistency of `jimp` [#868](https://github.com/oliver-moran/jimp/pull/868) ([@xinbenlv](https://github.com/xinbenlv))
-
-#### Authors: 1
-
-- xinbenlv ([@xinbenlv](https://github.com/xinbenlv))
-
----
-
-# v0.9.5 (Tue Mar 03 2020)
-
-#### 🐛 Bug Fix
-
-- `@jimp/plugin-print`
- - Export font type [#838](https://github.com/oliver-moran/jimp/pull/838) ([@DomiR](https://github.com/DomiR))
-
-#### 📝 Documentation
-
-- `@jimp/plugin-print`
- - Added ttf2fnt.com to the list [#845](https://github.com/oliver-moran/jimp/pull/845) ([@mbejda](https://github.com/mbejda))
-
-#### Authors: 1
-
-- Dominique Rau ([@DomiR](https://github.com/DomiR))
-
----
-
-# v0.9.3 (Tue Nov 26 2019)
-
-#### 🐛 Bug Fix
-
-- `@jimp/cli`, `@jimp/core`, `@jimp/custom`, `jimp`, `@jimp/plugin-blit`, `@jimp/plugin-blur`, `@jimp/plugin-circle`, `@jimp/plugin-color`, `@jimp/plugin-contain`, `@jimp/plugin-cover`, `@jimp/plugin-crop`, `@jimp/plugin-displace`, `@jimp/plugin-dither`, `@jimp/plugin-fisheye`, `@jimp/plugin-flip`, `@jimp/plugin-gaussian`, `@jimp/plugin-invert`, `@jimp/plugin-mask`, `@jimp/plugin-normalize`, `@jimp/plugin-print`, `@jimp/plugin-resize`, `@jimp/plugin-rotate`, `@jimp/plugin-scale`, `@jimp/plugin-shadow`, `@jimp/plugin-threshold`, `@jimp/plugins`, `@jimp/test-utils`, `@jimp/bmp`, `@jimp/gif`, `@jimp/jpeg`, `@jimp/png`, `@jimp/tiff`, `@jimp/types`, `@jimp/utils`
- - Fix regeneratorRuntime errors [#815](https://github.com/oliver-moran/jimp/pull/815) ([@crutchcorn](https://github.com/crutchcorn) [@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 2
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
diff --git a/WechatBot/node_modules/@jimp/plugin-print/LICENSE b/WechatBot/node_modules/@jimp/plugin-print/LICENSE
deleted file mode 100644
index baa5d4850..000000000
--- a/WechatBot/node_modules/@jimp/plugin-print/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Oliver Moran
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/WechatBot/node_modules/@jimp/plugin-print/README.md b/WechatBot/node_modules/@jimp/plugin-print/README.md
deleted file mode 100644
index 4d395c87e..000000000
--- a/WechatBot/node_modules/@jimp/plugin-print/README.md
+++ /dev/null
@@ -1,173 +0,0 @@
-
-
-
@jimp/plugin-print
-
Print text on an image.
-
-
-Jimp supports basic typography using BMFont format (.fnt) even ones in different languages! Just find a bitmap font that is suitable [bitmap fonts](https://en.wikipedia.org/wiki/Bitmap_fonts).
-
-Online tools are also available to convert TTF fonts to BMFont format. They can be used to create color font or sprite packs.
-
-:star: [ttf2fnt](https://ttf2fnt.com/)
-
-:star: [Littera](http://kvazars.com/littera/)
-
-:star: [Hiero](https://github.com/libgdx/libgdx/wiki/Hiero)
-
-## Included Fonts
-
-- `Jimp.FONT_SANS_8_BLACK`
-- `Jimp.FONT_SANS_10_BLACK`
-- `Jimp.FONT_SANS_12_BLACK`
-- `Jimp.FONT_SANS_14_BLACK`
-- `Jimp.FONT_SANS_16_BLACK`
-- `Jimp.FONT_SANS_32_BLACK`
-- `Jimp.FONT_SANS_64_BLACK`
-- `Jimp.FONT_SANS_128_BLACK`
-- `Jimp.FONT_SANS_8_WHITE`
-- `Jimp.FONT_SANS_16_WHITE`
-- `Jimp.FONT_SANS_32_WHITE`
-- `Jimp.FONT_SANS_64_WHITE`
-- `Jimp.FONT_SANS_128_WHITE`
-
-## loadFont
-
-Loads a bitmap font from a file
-
-- @param {string} file the file path of a .fnt file
-- @param {function(Error, Jimp)} cb (optional) a function to call when the font is loaded
-- @returns {Promise} a promise
-
-```js
-import Jimp from "jimp";
-
-async function main() {
- const font = await Jimp.loadFont(Jimp.FONT_SANS_32_BLACK);
-}
-
-main();
-```
-
-## print
-
-Draws a text on a image on a given boundary
-
-- @param {Jimp} font a bitmap font loaded from `Jimp.loadFont` command
-- @param {number} x the x position to start drawing the text
-- @param {number} y the y position to start drawing the text
-- @param {string} text the text to draw (string or object with `text`, `alignmentX`, and/or `alignmentY`)
-- @param {number} maxWidth (optional) the boundary width to draw in
-- @param {number} maxHeight (optional) the boundary height to draw in
-- @param {function(Error, Jimp)} cb (optional) a function to call when the text is written
-
-```js
-import Jimp from "jimp";
-
-async function main() {
- const font = await Jimp.loadFont(Jimp.FONT_SANS_32_BLACK);
- const image = await Jimp.read(1000, 1000, 0x0000ffff);
-
- image.print(font, 10, 10, "Hello World!");
-}
-
-main();
-```
-
-### Alignment
-
-Alignment modes are supported by replacing the `str` argument with an object containing `text`, `alignmentX` and `alignmentY`. `alignmentX` defaults to `Jimp.HORIZONTAL_ALIGN_LEFT` and `alignmentY` defaults to `Jimp.VERTICAL_ALIGN_TOP`.
-
-You can align text using the following constants.
-
-```js
-Jimp.HORIZONTAL_ALIGN_LEFT;
-Jimp.HORIZONTAL_ALIGN_CENTER;
-Jimp.HORIZONTAL_ALIGN_RIGHT;
-
-Jimp.VERTICAL_ALIGN_TOP;
-Jimp.VERTICAL_ALIGN_MIDDLE;
-Jimp.VERTICAL_ALIGN_BOTTOM;
-```
-
-Default align modes for `image.print` are:
-
-```js
-{
- alignmentX: Jimp.HORIZONTAL_ALIGN_LEFT,
- alignmentY: Jimp.VERTICAL_ALIGN_TOP
-}
-```
-
-```js
-const font = await Jimp.loadFont(pathOrURL);
-
-// prints 'Hello world!' on an image, middle and center-aligned
-image.print(
- font,
- x,
- y,
- {
- text: "Hello world!",
- alignmentX: Jimp.HORIZONTAL_ALIGN_CENTER,
- alignmentY: Jimp.VERTICAL_ALIGN_MIDDLE,
- },
- maxWidth,
- maxHeight
-);
-```
-
-**Note**: although `maxWidth` and `maxHeight` parameters are optional to `print()`, they are needed to correctly align the text using the requested alignment mode.
-
-#### Staggering Text
-
-If you need to stagger text position along the x or y-axis the print method also returns the final coordinates as an argument to the callback.
-
-```js
-const font = await Jimp.loadFont(Jimp.FONT_SANS_32_BLACK);
-
-image.print(
- font,
- 10,
- 10,
- "Hello world that wraps!",
- 50,
- (err, image, { x, y }) => {
- image.print(font, x, y + 20, "More text on another line", 50);
- }
-);
-```
-
-## measureText
-
-Measure how wide a piece of text will be.
-
-```js
-import Jimp from "jimp";
-
-async function main() {
- const font = await Jimp.loadFont(Jimp.FONT_SANS_32_BLACK);
- const image = await Jimp.read(1000, 1000, 0x0000ffff);
-
- Jimp.measureText(font, "Hello World!");
-}
-
-main();
-```
-
-## measureTextHeight
-
-Measure how tall a piece of text will be.
-
-```js
-import Jimp from "jimp";
-
-async function main() {
- const font = await Jimp.loadFont(Jimp.FONT_SANS_32_BLACK);
- const image = await Jimp.read(1000, 1000, 0x0000ffff);
-
- Jimp.measureTextHeight(font, "Hello World!", 100);
-}
-
-main();
-```
diff --git a/WechatBot/node_modules/@jimp/plugin-print/dist/index.js b/WechatBot/node_modules/@jimp/plugin-print/dist/index.js
deleted file mode 100755
index 8dd27c05b..000000000
--- a/WechatBot/node_modules/@jimp/plugin-print/dist/index.js
+++ /dev/null
@@ -1,261 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports["default"] = void 0;
-
-var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
-
-var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
-
-var _path = _interopRequireDefault(require("path"));
-
-var _loadBmfont = _interopRequireDefault(require("load-bmfont"));
-
-var _utils = require("@jimp/utils");
-
-var _measureText = require("./measure-text");
-
-function xOffsetBasedOnAlignment(constants, font, line, maxWidth, alignment) {
- if (alignment === constants.HORIZONTAL_ALIGN_LEFT) {
- return 0;
- }
-
- if (alignment === constants.HORIZONTAL_ALIGN_CENTER) {
- return (maxWidth - (0, _measureText.measureText)(font, line)) / 2;
- }
-
- return maxWidth - (0, _measureText.measureText)(font, line);
-}
-
-function drawCharacter(image, font, x, y, _char) {
- if (_char.width > 0 && _char.height > 0) {
- var characterPage = font.pages[_char.page];
- image.blit(characterPage, x + _char.xoffset, y + _char.yoffset, _char.x, _char.y, _char.width, _char.height);
- }
-
- return image;
-}
-
-function printText(font, x, y, text, defaultCharWidth) {
- for (var i = 0; i < text.length; i++) {
- var _char2 = void 0;
-
- if (font.chars[text[i]]) {
- _char2 = text[i];
- } else if (/\s/.test(text[i])) {
- _char2 = "";
- } else {
- _char2 = "?";
- }
-
- var fontChar = font.chars[_char2] || {};
- var fontKerning = font.kernings[_char2];
- drawCharacter(this, font, x, y, fontChar || {});
- var kerning = fontKerning && fontKerning[text[i + 1]] ? fontKerning[text[i + 1]] : 0;
- x += kerning + (fontChar.xadvance || defaultCharWidth);
- }
-}
-
-function splitLines(font, text, maxWidth) {
- var words = text.split(" ");
- var lines = [];
- var currentLine = [];
- var longestLine = 0;
- words.forEach(function (word) {
- var line = [].concat((0, _toConsumableArray2["default"])(currentLine), [word]).join(" ");
- var length = (0, _measureText.measureText)(font, line);
-
- if (length <= maxWidth) {
- if (length > longestLine) {
- longestLine = length;
- }
-
- currentLine.push(word);
- } else {
- lines.push(currentLine);
- currentLine = [word];
- }
- });
- lines.push(currentLine);
- return {
- lines: lines,
- longestLine: longestLine
- };
-}
-
-function loadPages(Jimp, dir, pages) {
- var newPages = pages.map(function (page) {
- return Jimp.read(dir + "/" + page);
- });
- return Promise.all(newPages);
-}
-
-var dir = process.env.DIRNAME || "".concat(__dirname, "/../");
-
-var _default = function _default() {
- return {
- constants: {
- measureText: _measureText.measureText,
- measureTextHeight: _measureText.measureTextHeight,
- FONT_SANS_8_BLACK: _path["default"].join(dir, "fonts/open-sans/open-sans-8-black/open-sans-8-black.fnt"),
- FONT_SANS_10_BLACK: _path["default"].join(dir, "fonts/open-sans/open-sans-10-black/open-sans-10-black.fnt"),
- FONT_SANS_12_BLACK: _path["default"].join(dir, "fonts/open-sans/open-sans-12-black/open-sans-12-black.fnt"),
- FONT_SANS_14_BLACK: _path["default"].join(dir, "fonts/open-sans/open-sans-14-black/open-sans-14-black.fnt"),
- FONT_SANS_16_BLACK: _path["default"].join(dir, "fonts/open-sans/open-sans-16-black/open-sans-16-black.fnt"),
- FONT_SANS_32_BLACK: _path["default"].join(dir, "fonts/open-sans/open-sans-32-black/open-sans-32-black.fnt"),
- FONT_SANS_64_BLACK: _path["default"].join(dir, "fonts/open-sans/open-sans-64-black/open-sans-64-black.fnt"),
- FONT_SANS_128_BLACK: _path["default"].join(dir, "fonts/open-sans/open-sans-128-black/open-sans-128-black.fnt"),
- FONT_SANS_8_WHITE: _path["default"].join(dir, "fonts/open-sans/open-sans-8-white/open-sans-8-white.fnt"),
- FONT_SANS_16_WHITE: _path["default"].join(dir, "fonts/open-sans/open-sans-16-white/open-sans-16-white.fnt"),
- FONT_SANS_32_WHITE: _path["default"].join(dir, "fonts/open-sans/open-sans-32-white/open-sans-32-white.fnt"),
- FONT_SANS_64_WHITE: _path["default"].join(dir, "fonts/open-sans/open-sans-64-white/open-sans-64-white.fnt"),
- FONT_SANS_128_WHITE: _path["default"].join(dir, "fonts/open-sans/open-sans-128-white/open-sans-128-white.fnt"),
-
- /**
- * Loads a bitmap font from a file
- * @param {string} file the file path of a .fnt file
- * @param {function(Error, Jimp)} cb (optional) a function to call when the font is loaded
- * @returns {Promise} a promise
- */
- loadFont: function loadFont(file, cb) {
- var _this = this;
-
- if (typeof file !== "string") return _utils.throwError.call(this, "file must be a string", cb);
- return new Promise(function (resolve, reject) {
- cb = cb || function (err, font) {
- if (err) reject(err);else resolve(font);
- };
-
- (0, _loadBmfont["default"])(file, function (err, font) {
- var chars = {};
- var kernings = {};
-
- if (err) {
- return _utils.throwError.call(_this, err, cb);
- }
-
- for (var i = 0; i < font.chars.length; i++) {
- chars[String.fromCharCode(font.chars[i].id)] = font.chars[i];
- }
-
- for (var _i = 0; _i < font.kernings.length; _i++) {
- var firstString = String.fromCharCode(font.kernings[_i].first);
- kernings[firstString] = kernings[firstString] || {};
- kernings[firstString][String.fromCharCode(font.kernings[_i].second)] = font.kernings[_i].amount;
- }
-
- loadPages(_this, _path["default"].dirname(file), font.pages).then(function (pages) {
- cb(null, {
- chars: chars,
- kernings: kernings,
- pages: pages,
- common: font.common,
- info: font.info
- });
- });
- });
- });
- }
- },
- "class": {
- /**
- * Draws a text on a image on a given boundary
- * @param {Jimp} font a bitmap font loaded from `Jimp.loadFont` command
- * @param {number} x the x position to start drawing the text
- * @param {number} y the y position to start drawing the text
- * @param {any} text the text to draw (string or object with `text`, `alignmentX`, and/or `alignmentY`)
- * @param {number} maxWidth (optional) the boundary width to draw in
- * @param {number} maxHeight (optional) the boundary height to draw in
- * @param {function(Error, Jimp)} cb (optional) a function to call when the text is written
- * @returns {Jimp} this for chaining of methods
- */
- print: function print(font, x, y, text, maxWidth, maxHeight, cb) {
- var _this2 = this;
-
- if (typeof maxWidth === "function" && typeof cb === "undefined") {
- cb = maxWidth;
- maxWidth = Infinity;
- }
-
- if (typeof maxWidth === "undefined") {
- maxWidth = Infinity;
- }
-
- if (typeof maxHeight === "function" && typeof cb === "undefined") {
- cb = maxHeight;
- maxHeight = Infinity;
- }
-
- if (typeof maxHeight === "undefined") {
- maxHeight = Infinity;
- }
-
- if ((0, _typeof2["default"])(font) !== "object") {
- return _utils.throwError.call(this, "font must be a Jimp loadFont", cb);
- }
-
- if (typeof x !== "number" || typeof y !== "number" || typeof maxWidth !== "number") {
- return _utils.throwError.call(this, "x, y and maxWidth must be numbers", cb);
- }
-
- if (typeof maxWidth !== "number") {
- return _utils.throwError.call(this, "maxWidth must be a number", cb);
- }
-
- if (typeof maxHeight !== "number") {
- return _utils.throwError.call(this, "maxHeight must be a number", cb);
- }
-
- var alignmentX;
- var alignmentY;
-
- if ((0, _typeof2["default"])(text) === "object" && text.text !== null && text.text !== undefined) {
- alignmentX = text.alignmentX || this.constructor.HORIZONTAL_ALIGN_LEFT;
- alignmentY = text.alignmentY || this.constructor.VERTICAL_ALIGN_TOP;
- var _text = text;
- text = _text.text;
- } else {
- alignmentX = this.constructor.HORIZONTAL_ALIGN_LEFT;
- alignmentY = this.constructor.VERTICAL_ALIGN_TOP;
- text = text.toString();
- }
-
- if (maxHeight !== Infinity && alignmentY === this.constructor.VERTICAL_ALIGN_BOTTOM) {
- y += maxHeight - (0, _measureText.measureTextHeight)(font, text, maxWidth);
- } else if (maxHeight !== Infinity && alignmentY === this.constructor.VERTICAL_ALIGN_MIDDLE) {
- y += maxHeight / 2 - (0, _measureText.measureTextHeight)(font, text, maxWidth) / 2;
- }
-
- var defaultCharWidth = Object.entries(font.chars)[0][1].xadvance;
-
- var _splitLines = splitLines(font, text, maxWidth),
- lines = _splitLines.lines,
- longestLine = _splitLines.longestLine;
-
- lines.forEach(function (line) {
- var lineString = line.join(" ");
- var alignmentWidth = xOffsetBasedOnAlignment(_this2.constructor, font, lineString, maxWidth, alignmentX);
- printText.call(_this2, font, x + alignmentWidth, y, lineString, defaultCharWidth);
- y += font.common.lineHeight;
- });
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this, {
- x: x + longestLine,
- y: y
- });
- }
-
- return this;
- }
- }
- };
-};
-
-exports["default"] = _default;
-module.exports = exports.default;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-print/dist/index.js.map b/WechatBot/node_modules/@jimp/plugin-print/dist/index.js.map
deleted file mode 100644
index 054132758..000000000
--- a/WechatBot/node_modules/@jimp/plugin-print/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/index.js"],"names":["xOffsetBasedOnAlignment","constants","font","line","maxWidth","alignment","HORIZONTAL_ALIGN_LEFT","HORIZONTAL_ALIGN_CENTER","drawCharacter","image","x","y","char","width","height","characterPage","pages","page","blit","xoffset","yoffset","printText","text","defaultCharWidth","i","length","chars","test","fontChar","fontKerning","kernings","kerning","xadvance","splitLines","words","split","lines","currentLine","longestLine","forEach","word","join","push","loadPages","Jimp","dir","newPages","map","read","Promise","all","process","env","DIRNAME","__dirname","measureText","measureTextHeight","FONT_SANS_8_BLACK","Path","FONT_SANS_10_BLACK","FONT_SANS_12_BLACK","FONT_SANS_14_BLACK","FONT_SANS_16_BLACK","FONT_SANS_32_BLACK","FONT_SANS_64_BLACK","FONT_SANS_128_BLACK","FONT_SANS_8_WHITE","FONT_SANS_16_WHITE","FONT_SANS_32_WHITE","FONT_SANS_64_WHITE","FONT_SANS_128_WHITE","loadFont","file","cb","throwError","call","resolve","reject","err","String","fromCharCode","id","firstString","first","second","amount","dirname","then","common","info","print","maxHeight","Infinity","alignmentX","alignmentY","undefined","constructor","VERTICAL_ALIGN_TOP","toString","VERTICAL_ALIGN_BOTTOM","VERTICAL_ALIGN_MIDDLE","Object","entries","lineString","alignmentWidth","lineHeight"],"mappings":"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","sourcesContent":["import Path from \"path\";\nimport bMFont from \"load-bmfont\";\nimport { isNodePattern, throwError } from \"@jimp/utils\";\nimport { measureText, measureTextHeight } from \"./measure-text\";\n\nfunction xOffsetBasedOnAlignment(constants, font, line, maxWidth, alignment) {\n if (alignment === constants.HORIZONTAL_ALIGN_LEFT) {\n return 0;\n }\n\n if (alignment === constants.HORIZONTAL_ALIGN_CENTER) {\n return (maxWidth - measureText(font, line)) / 2;\n }\n\n return maxWidth - measureText(font, line);\n}\n\nfunction drawCharacter(image, font, x, y, char) {\n if (char.width > 0 && char.height > 0) {\n const characterPage = font.pages[char.page];\n\n image.blit(\n characterPage,\n x + char.xoffset,\n y + char.yoffset,\n char.x,\n char.y,\n char.width,\n char.height\n );\n }\n\n return image;\n}\n\nfunction printText(font, x, y, text, defaultCharWidth) {\n for (let i = 0; i < text.length; i++) {\n let char;\n\n if (font.chars[text[i]]) {\n char = text[i];\n } else if (/\\s/.test(text[i])) {\n char = \"\";\n } else {\n char = \"?\";\n }\n\n const fontChar = font.chars[char] || {};\n const fontKerning = font.kernings[char];\n\n drawCharacter(this, font, x, y, fontChar || {});\n\n const kerning =\n fontKerning && fontKerning[text[i + 1]] ? fontKerning[text[i + 1]] : 0;\n\n x += kerning + (fontChar.xadvance || defaultCharWidth);\n }\n}\n\nfunction splitLines(font, text, maxWidth) {\n const words = text.split(\" \");\n const lines = [];\n let currentLine = [];\n let longestLine = 0;\n\n words.forEach((word) => {\n const line = [...currentLine, word].join(\" \");\n const length = measureText(font, line);\n\n if (length <= maxWidth) {\n if (length > longestLine) {\n longestLine = length;\n }\n\n currentLine.push(word);\n } else {\n lines.push(currentLine);\n currentLine = [word];\n }\n });\n\n lines.push(currentLine);\n\n return {\n lines,\n longestLine,\n };\n}\n\nfunction loadPages(Jimp, dir, pages) {\n const newPages = pages.map((page) => {\n return Jimp.read(dir + \"/\" + page);\n });\n\n return Promise.all(newPages);\n}\n\nconst dir = process.env.DIRNAME || `${__dirname}/../`;\n\nexport default () => ({\n constants: {\n measureText,\n measureTextHeight,\n FONT_SANS_8_BLACK: Path.join(\n dir,\n \"fonts/open-sans/open-sans-8-black/open-sans-8-black.fnt\"\n ),\n FONT_SANS_10_BLACK: Path.join(\n dir,\n \"fonts/open-sans/open-sans-10-black/open-sans-10-black.fnt\"\n ),\n FONT_SANS_12_BLACK: Path.join(\n dir,\n \"fonts/open-sans/open-sans-12-black/open-sans-12-black.fnt\"\n ),\n FONT_SANS_14_BLACK: Path.join(\n dir,\n \"fonts/open-sans/open-sans-14-black/open-sans-14-black.fnt\"\n ),\n FONT_SANS_16_BLACK: Path.join(\n dir,\n \"fonts/open-sans/open-sans-16-black/open-sans-16-black.fnt\"\n ),\n FONT_SANS_32_BLACK: Path.join(\n dir,\n \"fonts/open-sans/open-sans-32-black/open-sans-32-black.fnt\"\n ),\n FONT_SANS_64_BLACK: Path.join(\n dir,\n \"fonts/open-sans/open-sans-64-black/open-sans-64-black.fnt\"\n ),\n FONT_SANS_128_BLACK: Path.join(\n dir,\n \"fonts/open-sans/open-sans-128-black/open-sans-128-black.fnt\"\n ),\n\n FONT_SANS_8_WHITE: Path.join(\n dir,\n \"fonts/open-sans/open-sans-8-white/open-sans-8-white.fnt\"\n ),\n FONT_SANS_16_WHITE: Path.join(\n dir,\n \"fonts/open-sans/open-sans-16-white/open-sans-16-white.fnt\"\n ),\n FONT_SANS_32_WHITE: Path.join(\n dir,\n \"fonts/open-sans/open-sans-32-white/open-sans-32-white.fnt\"\n ),\n FONT_SANS_64_WHITE: Path.join(\n dir,\n \"fonts/open-sans/open-sans-64-white/open-sans-64-white.fnt\"\n ),\n FONT_SANS_128_WHITE: Path.join(\n dir,\n \"fonts/open-sans/open-sans-128-white/open-sans-128-white.fnt\"\n ),\n\n /**\n * Loads a bitmap font from a file\n * @param {string} file the file path of a .fnt file\n * @param {function(Error, Jimp)} cb (optional) a function to call when the font is loaded\n * @returns {Promise} a promise\n */\n loadFont(file, cb) {\n if (typeof file !== \"string\")\n return throwError.call(this, \"file must be a string\", cb);\n\n return new Promise((resolve, reject) => {\n cb =\n cb ||\n function (err, font) {\n if (err) reject(err);\n else resolve(font);\n };\n\n bMFont(file, (err, font) => {\n const chars = {};\n const kernings = {};\n\n if (err) {\n return throwError.call(this, err, cb);\n }\n\n for (let i = 0; i < font.chars.length; i++) {\n chars[String.fromCharCode(font.chars[i].id)] = font.chars[i];\n }\n\n for (let i = 0; i < font.kernings.length; i++) {\n const firstString = String.fromCharCode(font.kernings[i].first);\n kernings[firstString] = kernings[firstString] || {};\n kernings[firstString][\n String.fromCharCode(font.kernings[i].second)\n ] = font.kernings[i].amount;\n }\n\n loadPages(this, Path.dirname(file), font.pages).then((pages) => {\n cb(null, {\n chars,\n kernings,\n pages,\n common: font.common,\n info: font.info,\n });\n });\n });\n });\n },\n },\n\n class: {\n /**\n * Draws a text on a image on a given boundary\n * @param {Jimp} font a bitmap font loaded from `Jimp.loadFont` command\n * @param {number} x the x position to start drawing the text\n * @param {number} y the y position to start drawing the text\n * @param {any} text the text to draw (string or object with `text`, `alignmentX`, and/or `alignmentY`)\n * @param {number} maxWidth (optional) the boundary width to draw in\n * @param {number} maxHeight (optional) the boundary height to draw in\n * @param {function(Error, Jimp)} cb (optional) a function to call when the text is written\n * @returns {Jimp} this for chaining of methods\n */\n print(font, x, y, text, maxWidth, maxHeight, cb) {\n if (typeof maxWidth === \"function\" && typeof cb === \"undefined\") {\n cb = maxWidth;\n maxWidth = Infinity;\n }\n\n if (typeof maxWidth === \"undefined\") {\n maxWidth = Infinity;\n }\n\n if (typeof maxHeight === \"function\" && typeof cb === \"undefined\") {\n cb = maxHeight;\n maxHeight = Infinity;\n }\n\n if (typeof maxHeight === \"undefined\") {\n maxHeight = Infinity;\n }\n\n if (typeof font !== \"object\") {\n return throwError.call(this, \"font must be a Jimp loadFont\", cb);\n }\n\n if (\n typeof x !== \"number\" ||\n typeof y !== \"number\" ||\n typeof maxWidth !== \"number\"\n ) {\n return throwError.call(this, \"x, y and maxWidth must be numbers\", cb);\n }\n\n if (typeof maxWidth !== \"number\") {\n return throwError.call(this, \"maxWidth must be a number\", cb);\n }\n\n if (typeof maxHeight !== \"number\") {\n return throwError.call(this, \"maxHeight must be a number\", cb);\n }\n\n let alignmentX;\n let alignmentY;\n\n if (\n typeof text === \"object\" &&\n text.text !== null &&\n text.text !== undefined\n ) {\n alignmentX = text.alignmentX || this.constructor.HORIZONTAL_ALIGN_LEFT;\n alignmentY = text.alignmentY || this.constructor.VERTICAL_ALIGN_TOP;\n ({ text } = text);\n } else {\n alignmentX = this.constructor.HORIZONTAL_ALIGN_LEFT;\n alignmentY = this.constructor.VERTICAL_ALIGN_TOP;\n text = text.toString();\n }\n\n if (\n maxHeight !== Infinity &&\n alignmentY === this.constructor.VERTICAL_ALIGN_BOTTOM\n ) {\n y += maxHeight - measureTextHeight(font, text, maxWidth);\n } else if (\n maxHeight !== Infinity &&\n alignmentY === this.constructor.VERTICAL_ALIGN_MIDDLE\n ) {\n y += maxHeight / 2 - measureTextHeight(font, text, maxWidth) / 2;\n }\n\n const defaultCharWidth = Object.entries(font.chars)[0][1].xadvance;\n const { lines, longestLine } = splitLines(font, text, maxWidth);\n\n lines.forEach((line) => {\n const lineString = line.join(\" \");\n const alignmentWidth = xOffsetBasedOnAlignment(\n this.constructor,\n font,\n lineString,\n maxWidth,\n alignmentX\n );\n\n printText.call(\n this,\n font,\n x + alignmentWidth,\n y,\n lineString,\n defaultCharWidth\n );\n\n y += font.common.lineHeight;\n });\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this, { x: x + longestLine, y });\n }\n\n return this;\n },\n },\n});\n"],"file":"index.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-print/dist/measure-text.js b/WechatBot/node_modules/@jimp/plugin-print/dist/measure-text.js
deleted file mode 100755
index 42939faeb..000000000
--- a/WechatBot/node_modules/@jimp/plugin-print/dist/measure-text.js
+++ /dev/null
@@ -1,41 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.measureText = measureText;
-exports.measureTextHeight = measureTextHeight;
-
-function measureText(font, text) {
- var x = 0;
-
- for (var i = 0; i < text.length; i++) {
- if (font.chars[text[i]]) {
- var kerning = font.kernings[text[i]] && font.kernings[text[i]][text[i + 1]] ? font.kernings[text[i]][text[i + 1]] : 0;
- x += (font.chars[text[i]].xadvance || 0) + kerning;
- }
- }
-
- return x;
-}
-
-function measureTextHeight(font, text, maxWidth) {
- var words = text.split(" ");
- var line = "";
- var textTotalHeight = font.common.lineHeight;
-
- for (var n = 0; n < words.length; n++) {
- var testLine = line + words[n] + " ";
- var testWidth = measureText(font, testLine);
-
- if (testWidth > maxWidth && n > 0) {
- textTotalHeight += font.common.lineHeight;
- line = words[n] + " ";
- } else {
- line = testLine;
- }
- }
-
- return textTotalHeight;
-}
-//# sourceMappingURL=measure-text.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-print/dist/measure-text.js.map b/WechatBot/node_modules/@jimp/plugin-print/dist/measure-text.js.map
deleted file mode 100644
index 724d20aac..000000000
--- a/WechatBot/node_modules/@jimp/plugin-print/dist/measure-text.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/measure-text.js"],"names":["measureText","font","text","x","i","length","chars","kerning","kernings","xadvance","measureTextHeight","maxWidth","words","split","line","textTotalHeight","common","lineHeight","n","testLine","testWidth"],"mappings":";;;;;;;;AAAO,SAASA,WAAT,CAAqBC,IAArB,EAA2BC,IAA3B,EAAiC;AACtC,MAAIC,CAAC,GAAG,CAAR;;AAEA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,IAAI,CAACG,MAAzB,EAAiCD,CAAC,EAAlC,EAAsC;AACpC,QAAIH,IAAI,CAACK,KAAL,CAAWJ,IAAI,CAACE,CAAD,CAAf,CAAJ,EAAyB;AACvB,UAAMG,OAAO,GACXN,IAAI,CAACO,QAAL,CAAcN,IAAI,CAACE,CAAD,CAAlB,KAA0BH,IAAI,CAACO,QAAL,CAAcN,IAAI,CAACE,CAAD,CAAlB,EAAuBF,IAAI,CAACE,CAAC,GAAG,CAAL,CAA3B,CAA1B,GACIH,IAAI,CAACO,QAAL,CAAcN,IAAI,CAACE,CAAD,CAAlB,EAAuBF,IAAI,CAACE,CAAC,GAAG,CAAL,CAA3B,CADJ,GAEI,CAHN;AAKAD,MAAAA,CAAC,IAAI,CAACF,IAAI,CAACK,KAAL,CAAWJ,IAAI,CAACE,CAAD,CAAf,EAAoBK,QAApB,IAAgC,CAAjC,IAAsCF,OAA3C;AACD;AACF;;AAED,SAAOJ,CAAP;AACD;;AAEM,SAASO,iBAAT,CAA2BT,IAA3B,EAAiCC,IAAjC,EAAuCS,QAAvC,EAAiD;AACtD,MAAMC,KAAK,GAAGV,IAAI,CAACW,KAAL,CAAW,GAAX,CAAd;AACA,MAAIC,IAAI,GAAG,EAAX;AACA,MAAIC,eAAe,GAAGd,IAAI,CAACe,MAAL,CAAYC,UAAlC;;AAEA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGN,KAAK,CAACP,MAA1B,EAAkCa,CAAC,EAAnC,EAAuC;AACrC,QAAMC,QAAQ,GAAGL,IAAI,GAAGF,KAAK,CAACM,CAAD,CAAZ,GAAkB,GAAnC;AACA,QAAME,SAAS,GAAGpB,WAAW,CAACC,IAAD,EAAOkB,QAAP,CAA7B;;AAEA,QAAIC,SAAS,GAAGT,QAAZ,IAAwBO,CAAC,GAAG,CAAhC,EAAmC;AACjCH,MAAAA,eAAe,IAAId,IAAI,CAACe,MAAL,CAAYC,UAA/B;AACAH,MAAAA,IAAI,GAAGF,KAAK,CAACM,CAAD,CAAL,GAAW,GAAlB;AACD,KAHD,MAGO;AACLJ,MAAAA,IAAI,GAAGK,QAAP;AACD;AACF;;AAED,SAAOJ,eAAP;AACD","sourcesContent":["export function measureText(font, text) {\n let x = 0;\n\n for (let i = 0; i < text.length; i++) {\n if (font.chars[text[i]]) {\n const kerning =\n font.kernings[text[i]] && font.kernings[text[i]][text[i + 1]]\n ? font.kernings[text[i]][text[i + 1]]\n : 0;\n\n x += (font.chars[text[i]].xadvance || 0) + kerning;\n }\n }\n\n return x;\n}\n\nexport function measureTextHeight(font, text, maxWidth) {\n const words = text.split(\" \");\n let line = \"\";\n let textTotalHeight = font.common.lineHeight;\n\n for (let n = 0; n < words.length; n++) {\n const testLine = line + words[n] + \" \";\n const testWidth = measureText(font, testLine);\n\n if (testWidth > maxWidth && n > 0) {\n textTotalHeight += font.common.lineHeight;\n line = words[n] + \" \";\n } else {\n line = testLine;\n }\n }\n\n return textTotalHeight;\n}\n"],"file":"measure-text.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/Apache License.txt b/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/Apache License.txt
deleted file mode 100644
index 989e2c59e..000000000
--- a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/Apache License.txt
+++ /dev/null
@@ -1,201 +0,0 @@
-Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-10-black/open-sans-10-black.fnt b/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-10-black/open-sans-10-black.fnt
deleted file mode 100644
index 1e4c5db0e..000000000
--- a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-10-black/open-sans-10-black.fnt
+++ /dev/null
@@ -1,160 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-10-black/open-sans-10-black.png b/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-10-black/open-sans-10-black.png
deleted file mode 100644
index a45929811..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-10-black/open-sans-10-black.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-12-black/open-sans-12-black.fnt b/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-12-black/open-sans-12-black.fnt
deleted file mode 100644
index 5372da2ae..000000000
--- a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-12-black/open-sans-12-black.fnt
+++ /dev/null
@@ -1,183 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-12-black/open-sans-12-black.png b/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-12-black/open-sans-12-black.png
deleted file mode 100644
index b84a9d794..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-12-black/open-sans-12-black.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-128-black/open-sans-128-black.fnt b/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-128-black/open-sans-128-black.fnt
deleted file mode 100644
index 6175b9cb8..000000000
--- a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-128-black/open-sans-128-black.fnt
+++ /dev/null
@@ -1,297 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-128-black/open-sans-128-black.png b/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-128-black/open-sans-128-black.png
deleted file mode 100644
index 77cd5ed6b..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-128-black/open-sans-128-black.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-128-white/open-sans-128-white.fnt b/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-128-white/open-sans-128-white.fnt
deleted file mode 100644
index 9c89b4403..000000000
--- a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-128-white/open-sans-128-white.fnt
+++ /dev/null
@@ -1,297 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-128-white/open-sans-128-white.png b/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-128-white/open-sans-128-white.png
deleted file mode 100644
index 461af9a00..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-128-white/open-sans-128-white.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-14-black/open-sans-14-black.fnt b/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-14-black/open-sans-14-black.fnt
deleted file mode 100644
index 8df67a9b5..000000000
--- a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-14-black/open-sans-14-black.fnt
+++ /dev/null
@@ -1,215 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-14-black/open-sans-14-black.png b/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-14-black/open-sans-14-black.png
deleted file mode 100644
index e66461fe5..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-14-black/open-sans-14-black.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-16-black/open-sans-16-black.fnt b/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-16-black/open-sans-16-black.fnt
deleted file mode 100644
index 602a3a4e8..000000000
--- a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-16-black/open-sans-16-black.fnt
+++ /dev/null
@@ -1,297 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-16-black/open-sans-16-black.png b/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-16-black/open-sans-16-black.png
deleted file mode 100644
index 4f7e287bb..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-16-black/open-sans-16-black.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-16-white/open-sans-16-white.fnt b/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-16-white/open-sans-16-white.fnt
deleted file mode 100644
index c78ccdce5..000000000
--- a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-16-white/open-sans-16-white.fnt
+++ /dev/null
@@ -1,297 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-16-white/open-sans-16-white.png b/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-16-white/open-sans-16-white.png
deleted file mode 100644
index 039206cfd..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-16-white/open-sans-16-white.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-32-black/open-sans-32-black.fnt b/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-32-black/open-sans-32-black.fnt
deleted file mode 100644
index 3733597bd..000000000
--- a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-32-black/open-sans-32-black.fnt
+++ /dev/null
@@ -1,297 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-32-black/open-sans-32-black.png b/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-32-black/open-sans-32-black.png
deleted file mode 100644
index a064a1121..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-32-black/open-sans-32-black.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-32-white/open-sans-32-white.fnt b/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-32-white/open-sans-32-white.fnt
deleted file mode 100644
index 6b51c7c09..000000000
--- a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-32-white/open-sans-32-white.fnt
+++ /dev/null
@@ -1,297 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-32-white/open-sans-32-white.png b/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-32-white/open-sans-32-white.png
deleted file mode 100644
index 4ecce3e54..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-32-white/open-sans-32-white.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-64-black/open-sans-64-black.fnt b/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-64-black/open-sans-64-black.fnt
deleted file mode 100644
index 500c923ef..000000000
--- a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-64-black/open-sans-64-black.fnt
+++ /dev/null
@@ -1,297 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-64-black/open-sans-64-black.png b/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-64-black/open-sans-64-black.png
deleted file mode 100644
index 25fe95feb..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-64-black/open-sans-64-black.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-64-white/open-sans-64-white.fnt b/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-64-white/open-sans-64-white.fnt
deleted file mode 100644
index 19a724535..000000000
--- a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-64-white/open-sans-64-white.fnt
+++ /dev/null
@@ -1,297 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-64-white/open-sans-64-white.png b/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-64-white/open-sans-64-white.png
deleted file mode 100644
index 1baf1f50b..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-64-white/open-sans-64-white.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-8-black/open-sans-8-black.fnt b/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-8-black/open-sans-8-black.fnt
deleted file mode 100644
index 15b6be3a5..000000000
--- a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-8-black/open-sans-8-black.fnt
+++ /dev/null
@@ -1,297 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-8-black/open-sans-8-black.png b/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-8-black/open-sans-8-black.png
deleted file mode 100644
index 71a55514f..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-8-black/open-sans-8-black.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-8-white/open-sans-8-white.fnt b/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-8-white/open-sans-8-white.fnt
deleted file mode 100644
index 3264cc42d..000000000
--- a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-8-white/open-sans-8-white.fnt
+++ /dev/null
@@ -1,297 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-8-white/open-sans-8-white.png b/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-8-white/open-sans-8-white.png
deleted file mode 100644
index ed1eb48b7..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-print/fonts/open-sans/open-sans-8-white/open-sans-8-white.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-print/index.d.ts b/WechatBot/node_modules/@jimp/plugin-print/index.d.ts
deleted file mode 100644
index c5c9cd3ec..000000000
--- a/WechatBot/node_modules/@jimp/plugin-print/index.d.ts
+++ /dev/null
@@ -1,125 +0,0 @@
-import { GenericCallback, ImageCallback } from "@jimp/core";
-
-export interface FontChar {
- id: number;
- x: number;
- y: number;
- width: number;
- height: number;
- xoffset: number;
- yoffset: number;
- xadvance: number;
- page: number;
- chnl: number;
-}
-
-export interface FontInfo {
- face: string;
- size: number;
- bold: number;
- italic: number;
- charset: string;
- unicode: number;
- stretchH: number;
- smooth: number;
- aa: number;
- padding: [number, number, number, number];
- spacing: [number, number];
-}
-
-export interface FontCommon {
- lineHeight: number;
- base: number;
- scaleW: number;
- scaleH: number;
- pages: number;
- packed: number;
- alphaChnl: number;
- redChnl: number;
- greenChnl: number;
- blueChnl: number;
-}
-
-export interface Font {
- chars: {
- [char: string]: FontChar;
- };
- kernings: {
- [firstString: string]: {
- [secondString: string]: number;
- };
- };
- pages: string[];
- common: FontCommon;
- info: FontInfo;
-}
-
-type PrintableText =
- | any
- | {
- text: string;
- alignmentX: number;
- alignmentY: number;
- };
-
-interface PrintClass {
- // Text methods
- print(
- font: Font,
- x: number,
- y: number,
- text: PrintableText,
- cb?: ImageCallback
- ): this;
- print(
- font: Font,
- x: number,
- y: number,
- text: PrintableText,
- maxWidth?: number,
- cb?: ImageCallback
- ): this;
- print(
- font: Font,
- x: number,
- y: number,
- text: PrintableText,
- maxWidth?: number,
- maxHeight?: number,
- cb?: ImageCallback
- ): this;
-}
-
-interface Print {
- constants: {
- measureText(font: Font, text: PrintableText): number;
- measureTextHeight(
- font: Font,
- text: PrintableText,
- maxWidth: number
- ): number;
-
- // Font locations
- FONT_SANS_8_BLACK: string;
- FONT_SANS_10_BLACK: string;
- FONT_SANS_12_BLACK: string;
- FONT_SANS_14_BLACK: string;
- FONT_SANS_16_BLACK: string;
- FONT_SANS_32_BLACK: string;
- FONT_SANS_64_BLACK: string;
- FONT_SANS_128_BLACK: string;
-
- FONT_SANS_8_WHITE: string;
- FONT_SANS_16_WHITE: string;
- FONT_SANS_32_WHITE: string;
- FONT_SANS_64_WHITE: string;
- FONT_SANS_128_WHITE: string;
-
- loadFont(file: string): Promise;
- loadFont(file: string, cb: GenericCallback): Promise;
- };
-
- class: PrintClass;
-}
-
-export default function (): Print;
diff --git a/WechatBot/node_modules/@jimp/plugin-print/package.json b/WechatBot/node_modules/@jimp/plugin-print/package.json
deleted file mode 100644
index e443c64ca..000000000
--- a/WechatBot/node_modules/@jimp/plugin-print/package.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "name": "@jimp/plugin-print",
- "version": "0.16.13",
- "description": "print an image.",
- "main": "dist/index.js",
- "module": "es/index.js",
- "types": "index.d.ts",
- "scripts": {
- "test": "cross-env BABEL_ENV=test mocha --require @babel/register",
- "test:watch": "npm run test -- --reporter min --watch",
- "test:coverage": "nyc npm run test",
- "build": "npm run build:node:production && npm run build:module",
- "build:watch": "npm run build:node:debug -- -- --watch --verbose",
- "build:debug": "npm run build:node:debug",
- "build:module": "cross-env BABEL_ENV=module babel src -d es --source-maps --config-file ../../babel.config.js",
- "build:node": "babel src -d dist --source-maps --config-file ../../babel.config.js",
- "build:node:debug": "cross-env BABEL_ENV=development npm run build:node",
- "build:node:production": "cross-env BABEL_ENV=production npm run build:node"
- },
- "author": "",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13",
- "load-bmfont": "^1.4.0"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5",
- "@jimp/plugin-blit": ">=0.3.5"
- },
- "devDependencies": {
- "@jimp/custom": "^0.16.13",
- "@jimp/plugin-blit": "^0.16.13",
- "@jimp/test-utils": "^0.16.13"
- },
- "publishConfig": {
- "access": "public"
- },
- "gitHead": "9eec86086634329a072901dca3a800b850548572"
-}
diff --git a/WechatBot/node_modules/@jimp/plugin-print/src/index.js b/WechatBot/node_modules/@jimp/plugin-print/src/index.js
deleted file mode 100755
index df71548b9..000000000
--- a/WechatBot/node_modules/@jimp/plugin-print/src/index.js
+++ /dev/null
@@ -1,322 +0,0 @@
-import Path from "path";
-import bMFont from "load-bmfont";
-import { isNodePattern, throwError } from "@jimp/utils";
-import { measureText, measureTextHeight } from "./measure-text";
-
-function xOffsetBasedOnAlignment(constants, font, line, maxWidth, alignment) {
- if (alignment === constants.HORIZONTAL_ALIGN_LEFT) {
- return 0;
- }
-
- if (alignment === constants.HORIZONTAL_ALIGN_CENTER) {
- return (maxWidth - measureText(font, line)) / 2;
- }
-
- return maxWidth - measureText(font, line);
-}
-
-function drawCharacter(image, font, x, y, char) {
- if (char.width > 0 && char.height > 0) {
- const characterPage = font.pages[char.page];
-
- image.blit(
- characterPage,
- x + char.xoffset,
- y + char.yoffset,
- char.x,
- char.y,
- char.width,
- char.height
- );
- }
-
- return image;
-}
-
-function printText(font, x, y, text, defaultCharWidth) {
- for (let i = 0; i < text.length; i++) {
- let char;
-
- if (font.chars[text[i]]) {
- char = text[i];
- } else if (/\s/.test(text[i])) {
- char = "";
- } else {
- char = "?";
- }
-
- const fontChar = font.chars[char] || {};
- const fontKerning = font.kernings[char];
-
- drawCharacter(this, font, x, y, fontChar || {});
-
- const kerning =
- fontKerning && fontKerning[text[i + 1]] ? fontKerning[text[i + 1]] : 0;
-
- x += kerning + (fontChar.xadvance || defaultCharWidth);
- }
-}
-
-function splitLines(font, text, maxWidth) {
- const words = text.split(" ");
- const lines = [];
- let currentLine = [];
- let longestLine = 0;
-
- words.forEach((word) => {
- const line = [...currentLine, word].join(" ");
- const length = measureText(font, line);
-
- if (length <= maxWidth) {
- if (length > longestLine) {
- longestLine = length;
- }
-
- currentLine.push(word);
- } else {
- lines.push(currentLine);
- currentLine = [word];
- }
- });
-
- lines.push(currentLine);
-
- return {
- lines,
- longestLine,
- };
-}
-
-function loadPages(Jimp, dir, pages) {
- const newPages = pages.map((page) => {
- return Jimp.read(dir + "/" + page);
- });
-
- return Promise.all(newPages);
-}
-
-const dir = process.env.DIRNAME || `${__dirname}/../`;
-
-export default () => ({
- constants: {
- measureText,
- measureTextHeight,
- FONT_SANS_8_BLACK: Path.join(
- dir,
- "fonts/open-sans/open-sans-8-black/open-sans-8-black.fnt"
- ),
- FONT_SANS_10_BLACK: Path.join(
- dir,
- "fonts/open-sans/open-sans-10-black/open-sans-10-black.fnt"
- ),
- FONT_SANS_12_BLACK: Path.join(
- dir,
- "fonts/open-sans/open-sans-12-black/open-sans-12-black.fnt"
- ),
- FONT_SANS_14_BLACK: Path.join(
- dir,
- "fonts/open-sans/open-sans-14-black/open-sans-14-black.fnt"
- ),
- FONT_SANS_16_BLACK: Path.join(
- dir,
- "fonts/open-sans/open-sans-16-black/open-sans-16-black.fnt"
- ),
- FONT_SANS_32_BLACK: Path.join(
- dir,
- "fonts/open-sans/open-sans-32-black/open-sans-32-black.fnt"
- ),
- FONT_SANS_64_BLACK: Path.join(
- dir,
- "fonts/open-sans/open-sans-64-black/open-sans-64-black.fnt"
- ),
- FONT_SANS_128_BLACK: Path.join(
- dir,
- "fonts/open-sans/open-sans-128-black/open-sans-128-black.fnt"
- ),
-
- FONT_SANS_8_WHITE: Path.join(
- dir,
- "fonts/open-sans/open-sans-8-white/open-sans-8-white.fnt"
- ),
- FONT_SANS_16_WHITE: Path.join(
- dir,
- "fonts/open-sans/open-sans-16-white/open-sans-16-white.fnt"
- ),
- FONT_SANS_32_WHITE: Path.join(
- dir,
- "fonts/open-sans/open-sans-32-white/open-sans-32-white.fnt"
- ),
- FONT_SANS_64_WHITE: Path.join(
- dir,
- "fonts/open-sans/open-sans-64-white/open-sans-64-white.fnt"
- ),
- FONT_SANS_128_WHITE: Path.join(
- dir,
- "fonts/open-sans/open-sans-128-white/open-sans-128-white.fnt"
- ),
-
- /**
- * Loads a bitmap font from a file
- * @param {string} file the file path of a .fnt file
- * @param {function(Error, Jimp)} cb (optional) a function to call when the font is loaded
- * @returns {Promise} a promise
- */
- loadFont(file, cb) {
- if (typeof file !== "string")
- return throwError.call(this, "file must be a string", cb);
-
- return new Promise((resolve, reject) => {
- cb =
- cb ||
- function (err, font) {
- if (err) reject(err);
- else resolve(font);
- };
-
- bMFont(file, (err, font) => {
- const chars = {};
- const kernings = {};
-
- if (err) {
- return throwError.call(this, err, cb);
- }
-
- for (let i = 0; i < font.chars.length; i++) {
- chars[String.fromCharCode(font.chars[i].id)] = font.chars[i];
- }
-
- for (let i = 0; i < font.kernings.length; i++) {
- const firstString = String.fromCharCode(font.kernings[i].first);
- kernings[firstString] = kernings[firstString] || {};
- kernings[firstString][
- String.fromCharCode(font.kernings[i].second)
- ] = font.kernings[i].amount;
- }
-
- loadPages(this, Path.dirname(file), font.pages).then((pages) => {
- cb(null, {
- chars,
- kernings,
- pages,
- common: font.common,
- info: font.info,
- });
- });
- });
- });
- },
- },
-
- class: {
- /**
- * Draws a text on a image on a given boundary
- * @param {Jimp} font a bitmap font loaded from `Jimp.loadFont` command
- * @param {number} x the x position to start drawing the text
- * @param {number} y the y position to start drawing the text
- * @param {any} text the text to draw (string or object with `text`, `alignmentX`, and/or `alignmentY`)
- * @param {number} maxWidth (optional) the boundary width to draw in
- * @param {number} maxHeight (optional) the boundary height to draw in
- * @param {function(Error, Jimp)} cb (optional) a function to call when the text is written
- * @returns {Jimp} this for chaining of methods
- */
- print(font, x, y, text, maxWidth, maxHeight, cb) {
- if (typeof maxWidth === "function" && typeof cb === "undefined") {
- cb = maxWidth;
- maxWidth = Infinity;
- }
-
- if (typeof maxWidth === "undefined") {
- maxWidth = Infinity;
- }
-
- if (typeof maxHeight === "function" && typeof cb === "undefined") {
- cb = maxHeight;
- maxHeight = Infinity;
- }
-
- if (typeof maxHeight === "undefined") {
- maxHeight = Infinity;
- }
-
- if (typeof font !== "object") {
- return throwError.call(this, "font must be a Jimp loadFont", cb);
- }
-
- if (
- typeof x !== "number" ||
- typeof y !== "number" ||
- typeof maxWidth !== "number"
- ) {
- return throwError.call(this, "x, y and maxWidth must be numbers", cb);
- }
-
- if (typeof maxWidth !== "number") {
- return throwError.call(this, "maxWidth must be a number", cb);
- }
-
- if (typeof maxHeight !== "number") {
- return throwError.call(this, "maxHeight must be a number", cb);
- }
-
- let alignmentX;
- let alignmentY;
-
- if (
- typeof text === "object" &&
- text.text !== null &&
- text.text !== undefined
- ) {
- alignmentX = text.alignmentX || this.constructor.HORIZONTAL_ALIGN_LEFT;
- alignmentY = text.alignmentY || this.constructor.VERTICAL_ALIGN_TOP;
- ({ text } = text);
- } else {
- alignmentX = this.constructor.HORIZONTAL_ALIGN_LEFT;
- alignmentY = this.constructor.VERTICAL_ALIGN_TOP;
- text = text.toString();
- }
-
- if (
- maxHeight !== Infinity &&
- alignmentY === this.constructor.VERTICAL_ALIGN_BOTTOM
- ) {
- y += maxHeight - measureTextHeight(font, text, maxWidth);
- } else if (
- maxHeight !== Infinity &&
- alignmentY === this.constructor.VERTICAL_ALIGN_MIDDLE
- ) {
- y += maxHeight / 2 - measureTextHeight(font, text, maxWidth) / 2;
- }
-
- const defaultCharWidth = Object.entries(font.chars)[0][1].xadvance;
- const { lines, longestLine } = splitLines(font, text, maxWidth);
-
- lines.forEach((line) => {
- const lineString = line.join(" ");
- const alignmentWidth = xOffsetBasedOnAlignment(
- this.constructor,
- font,
- lineString,
- maxWidth,
- alignmentX
- );
-
- printText.call(
- this,
- font,
- x + alignmentWidth,
- y,
- lineString,
- defaultCharWidth
- );
-
- y += font.common.lineHeight;
- });
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this, { x: x + longestLine, y });
- }
-
- return this;
- },
- },
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-print/src/measure-text.js b/WechatBot/node_modules/@jimp/plugin-print/src/measure-text.js
deleted file mode 100755
index a86dfbe3b..000000000
--- a/WechatBot/node_modules/@jimp/plugin-print/src/measure-text.js
+++ /dev/null
@@ -1,36 +0,0 @@
-export function measureText(font, text) {
- let x = 0;
-
- for (let i = 0; i < text.length; i++) {
- if (font.chars[text[i]]) {
- const kerning =
- font.kernings[text[i]] && font.kernings[text[i]][text[i + 1]]
- ? font.kernings[text[i]][text[i + 1]]
- : 0;
-
- x += (font.chars[text[i]].xadvance || 0) + kerning;
- }
- }
-
- return x;
-}
-
-export function measureTextHeight(font, text, maxWidth) {
- const words = text.split(" ");
- let line = "";
- let textTotalHeight = font.common.lineHeight;
-
- for (let n = 0; n < words.length; n++) {
- const testLine = line + words[n] + " ";
- const testWidth = measureText(font, testLine);
-
- if (testWidth > maxWidth && n > 0) {
- textTotalHeight += font.common.lineHeight;
- line = words[n] + " ";
- } else {
- line = testLine;
- }
- }
-
- return textTotalHeight;
-}
diff --git a/WechatBot/node_modules/@jimp/plugin-print/test/images/SANS_16_BLACK-positioned.png b/WechatBot/node_modules/@jimp/plugin-print/test/images/SANS_16_BLACK-positioned.png
deleted file mode 100644
index be11559a7..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-print/test/images/SANS_16_BLACK-positioned.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-print/test/images/SANS_16_BLACK.png b/WechatBot/node_modules/@jimp/plugin-print/test/images/SANS_16_BLACK.png
deleted file mode 100644
index 2369ba836..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-print/test/images/SANS_16_BLACK.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-print/test/images/SANS_16_WHITE.png b/WechatBot/node_modules/@jimp/plugin-print/test/images/SANS_16_WHITE.png
deleted file mode 100644
index 8b1bd8d31..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-print/test/images/SANS_16_WHITE.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-print/test/images/SANS_32_BLACK.png b/WechatBot/node_modules/@jimp/plugin-print/test/images/SANS_32_BLACK.png
deleted file mode 100644
index 2084bb673..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-print/test/images/SANS_32_BLACK.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-print/test/images/SANS_32_WHITE.png b/WechatBot/node_modules/@jimp/plugin-print/test/images/SANS_32_WHITE.png
deleted file mode 100644
index 58d3ea293..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-print/test/images/SANS_32_WHITE.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-print/test/images/SANS_64_BLACK.png b/WechatBot/node_modules/@jimp/plugin-print/test/images/SANS_64_BLACK.png
deleted file mode 100644
index a263ab239..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-print/test/images/SANS_64_BLACK.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-print/test/images/SANS_64_WHITE.png b/WechatBot/node_modules/@jimp/plugin-print/test/images/SANS_64_WHITE.png
deleted file mode 100644
index 1573052d0..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-print/test/images/SANS_64_WHITE.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-print/test/images/SANS_8_BLACK.png b/WechatBot/node_modules/@jimp/plugin-print/test/images/SANS_8_BLACK.png
deleted file mode 100644
index 9295ee976..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-print/test/images/SANS_8_BLACK.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-print/test/images/SANS_8_WHITE.png b/WechatBot/node_modules/@jimp/plugin-print/test/images/SANS_8_WHITE.png
deleted file mode 100644
index df20ee1bb..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-print/test/images/SANS_8_WHITE.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-print/test/images/bottom-aligned-y.png b/WechatBot/node_modules/@jimp/plugin-print/test/images/bottom-aligned-y.png
deleted file mode 100644
index 6298192d3..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-print/test/images/bottom-aligned-y.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-print/test/images/bottom-aligned.png b/WechatBot/node_modules/@jimp/plugin-print/test/images/bottom-aligned.png
deleted file mode 100644
index ff7a00a1a..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-print/test/images/bottom-aligned.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-print/test/images/center-aligned.png b/WechatBot/node_modules/@jimp/plugin-print/test/images/center-aligned.png
deleted file mode 100644
index 602f576b3..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-print/test/images/center-aligned.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-print/test/images/left-aligned.png b/WechatBot/node_modules/@jimp/plugin-print/test/images/left-aligned.png
deleted file mode 100644
index 5d919cd3a..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-print/test/images/left-aligned.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-print/test/images/middle-aligned-y.png b/WechatBot/node_modules/@jimp/plugin-print/test/images/middle-aligned-y.png
deleted file mode 100644
index d6eec20b1..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-print/test/images/middle-aligned-y.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-print/test/images/middle-aligned.png b/WechatBot/node_modules/@jimp/plugin-print/test/images/middle-aligned.png
deleted file mode 100644
index 214e23b2e..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-print/test/images/middle-aligned.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-print/test/images/print-number.png b/WechatBot/node_modules/@jimp/plugin-print/test/images/print-number.png
deleted file mode 100644
index 46f01d7c2..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-print/test/images/print-number.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-print/test/images/right-aligned.png b/WechatBot/node_modules/@jimp/plugin-print/test/images/right-aligned.png
deleted file mode 100644
index 77651496d..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-print/test/images/right-aligned.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-print/test/images/spacing.png b/WechatBot/node_modules/@jimp/plugin-print/test/images/spacing.png
deleted file mode 100644
index f6422e481..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-print/test/images/spacing.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-print/test/images/unknown-char-test.png b/WechatBot/node_modules/@jimp/plugin-print/test/images/unknown-char-test.png
deleted file mode 100644
index 2ae9ff596..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-print/test/images/unknown-char-test.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-print/test/print.test.js b/WechatBot/node_modules/@jimp/plugin-print/test/print.test.js
deleted file mode 100755
index b0292a3ce..000000000
--- a/WechatBot/node_modules/@jimp/plugin-print/test/print.test.js
+++ /dev/null
@@ -1,284 +0,0 @@
-/* eslint key-spacing: ["error", { "align": "value" }] */
-
-import { Jimp, getTestDir, hasOwnProp } from "@jimp/test-utils";
-import configure from "@jimp/custom";
-import blit from "@jimp/plugin-blit";
-
-import print from "../src";
-
-const jimp = configure({ plugins: [print, blit] }, Jimp);
-
-async function createTextImage(
- width,
- height,
- font,
- { x = 0, y = 0, text, maxWidth, maxHeight }
-) {
- const loadedFont = await jimp.loadFont(font);
- const image = await Jimp.create(width, height, 0xffffffff);
-
- return image.print(loadedFont, x, y, text, maxWidth, maxHeight);
-}
-
-describe("Write text over image", function () {
- this.timeout(30000);
-
- const fontDefs = {
- SANS_8_BLACK: { w: 28, h: 28, bg: 0xffffffff },
-
- SANS_16_BLACK: { w: 54, h: 54, bg: 0xffffffff },
- SANS_32_BLACK: { w: 114, h: 114, bg: 0xffffffff },
- SANS_64_BLACK: { w: 220, h: 220, bg: 0xffffffff },
-
- SANS_8_WHITE: { w: 28, h: 28, bg: 0x000000ff },
-
- SANS_16_WHITE: { w: 54, h: 54, bg: 0x000000ff },
- SANS_32_WHITE: { w: 114, h: 114, bg: 0x000000ff },
- SANS_64_WHITE: { w: 220, h: 220, bg: 0x000000ff },
- };
-
- for (const fontName in fontDefs)
- if (hasOwnProp(fontDefs, fontName))
- ((fontName, conf) => {
- it("Jimp preset " + fontName + " bitmap font", async () => {
- const font = await jimp.loadFont(Jimp["FONT_" + fontName]);
- const expected =
- getTestDir(__dirname) + "/images/" + fontName + ".png";
-
- const expectedImg = await Jimp.read(expected);
- const image = await Jimp.create(conf.w, conf.h, conf.bg);
-
- image
- .print(font, 0, 0, "This is only a test.", image.bitmap.width)
- .bitmap.data.should.be.deepEqual(expectedImg.bitmap.data);
- });
- })(fontName, fontDefs[fontName]);
-
- it("Jimp preset SANS_16_BLACK bitmap font positioned", async () => {
- const font = await jimp.loadFont(Jimp.FONT_SANS_16_BLACK);
- const expected =
- getTestDir(__dirname) + "/images/SANS_16_BLACK-positioned.png";
- const expectedImg = await Jimp.read(expected);
- const image = await Jimp.create("300", "100", 0xff8800ff);
-
- image
- .print(font, 150, 50, "This is only a test.", 100)
- .bitmap.data.should.be.deepEqual(expectedImg.bitmap.data);
- });
-
- it("Jimp loads font from URL", async () => {
- const font = await Jimp.loadFont(
- "https://raw.githubusercontent.com/jimp-dev/jimp/master/packages/plugin-print/fonts/open-sans/open-sans-16-black/open-sans-16-black.fnt"
- );
- const expected =
- getTestDir(__dirname) + "/images/SANS_16_BLACK-positioned.png";
- const expectedImg = await Jimp.read(expected);
- const image = await Jimp.create("300", "100", 0xff8800ff);
-
- image
- .print(font, 150, 50, "This is only a test.", 100)
- .bitmap.data.should.be.deepEqual(expectedImg.bitmap.data);
- });
-
- it("Jimp renders ? for unknown characters", async () => {
- const font = await jimp.loadFont(Jimp.FONT_SANS_16_BLACK);
-
- const expected = getTestDir(__dirname) + "/images/unknown-char-test.png";
- const expectedImg = await Jimp.read(expected);
- const image = await Jimp.read("300", "100", 0xff8800ff);
-
- image
- .print(font, 0, 0, "ツ ツ ツ", 100)
- .bitmap.data.should.be.deepEqual(expectedImg.bitmap.data);
- });
-
- it("Jimp can print numbers too", async () => {
- const font = await Jimp.loadFont(Jimp.FONT_SANS_16_BLACK);
-
- const expected = getTestDir(__dirname) + "/images/print-number.png";
- const expectedImg = await Jimp.read(expected);
- const image = await Jimp.read("300", "100", 0xff8800ff);
-
- image
- .print(font, 0, 0, 12345678, 100)
- .bitmap.data.should.be.deepEqual(expectedImg.bitmap.data);
- });
-
- it("left-align text by default", async () => {
- const expectedImage = await Jimp.read(
- getTestDir(__dirname) + "/images/left-aligned.png"
- );
- const textImage = await createTextImage(320, 240, Jimp.FONT_SANS_16_BLACK, {
- text: "This is only a test.",
-
- maxWidth: 100,
- });
-
- expectedImage.bitmap.data.should.be.deepEqual(textImage.bitmap.data);
- });
-
- it("left-align text by default when passing object", async () => {
- const expectedImage = await Jimp.read(
- getTestDir(__dirname) + "/images/left-aligned.png"
- );
- const textImage = await createTextImage(320, 240, Jimp.FONT_SANS_16_BLACK, {
- text: { text: "This is only a test." },
-
- maxWidth: 100,
- });
-
- expectedImage.bitmap.data.should.be.deepEqual(textImage.bitmap.data);
- });
-
- it("left-align text when passing object with alignmentX", async () => {
- const expectedImage = await Jimp.read(
- getTestDir(__dirname) + "/images/left-aligned.png"
- );
- const textImage = await createTextImage(320, 240, Jimp.FONT_SANS_16_BLACK, {
- text: {
- text: "This is only a test.",
-
- alignmentX: Jimp.HORIZONTAL_ALIGN_LEFT,
- },
- maxWidth: 100,
- });
-
- expectedImage.bitmap.data.should.be.deepEqual(textImage.bitmap.data);
- });
-
- it("center-align text when passing object with alignmentX", async () => {
- const expectedImage = await Jimp.read(
- getTestDir(__dirname) + "/images/center-aligned.png"
- );
- const textImage = await createTextImage(320, 240, Jimp.FONT_SANS_16_BLACK, {
- text: {
- text: "This is only a test.",
-
- alignmentX: Jimp.HORIZONTAL_ALIGN_CENTER,
- },
- maxWidth: 100,
- });
-
- expectedImage.bitmap.data.should.be.deepEqual(textImage.bitmap.data);
- });
-
- it("right-align text when passing object with alignmentX", async () => {
- const expectedImage = await Jimp.read(
- getTestDir(__dirname) + "/images/right-aligned.png"
- );
- const textImage = await createTextImage(320, 240, Jimp.FONT_SANS_16_BLACK, {
- text: {
- text: "This is only a test.",
-
- alignmentX: Jimp.HORIZONTAL_ALIGN_RIGHT,
- },
- maxWidth: 100,
- });
-
- expectedImage.bitmap.data.should.be.deepEqual(textImage.bitmap.data);
- });
-
- it("middle-align text when passing object with alignmentY", async () => {
- const expectedImage = await Jimp.read(
- getTestDir(__dirname) + "/images/middle-aligned.png"
- );
- const textImage = await createTextImage(320, 240, Jimp.FONT_SANS_16_BLACK, {
- text: {
- text: "This is only a test.",
-
- alignmentY: Jimp.VERTICAL_ALIGN_MIDDLE,
- },
- maxWidth: 100,
-
- maxHeight: 240,
- });
-
- expectedImage.bitmap.data.should.be.deepEqual(textImage.bitmap.data);
- });
-
- it("middle-align text when passing object with alignmentY can offset y", async () => {
- const expectedImage = await Jimp.read(
- getTestDir(__dirname) + "/images/middle-aligned-y.png"
- );
- const textImage = await createTextImage(320, 240, Jimp.FONT_SANS_16_BLACK, {
- y: 50,
-
- text: {
- text: "This is only a test.",
-
- alignmentY: Jimp.VERTICAL_ALIGN_MIDDLE,
- },
- maxWidth: 100,
-
- maxHeight: 240,
- });
-
- expectedImage.bitmap.data.should.be.deepEqual(textImage.bitmap.data);
- });
-
- it("bottom-align text when passing object with alignmentY", async () => {
- const expectedImage = await Jimp.read(
- getTestDir(__dirname) + "/images/bottom-aligned.png"
- );
- const textImage = await createTextImage(320, 240, Jimp.FONT_SANS_16_BLACK, {
- text: {
- text: "This is only a test.",
-
- alignmentY: Jimp.VERTICAL_ALIGN_BOTTOM,
- },
- maxWidth: 100,
-
- maxHeight: 240,
- });
-
- expectedImage.bitmap.data.should.be.deepEqual(textImage.bitmap.data);
- });
-
- it("bottom-align text when passing object with alignmentY offset y", async () => {
- const expectedImage = await Jimp.read(
- getTestDir(__dirname) + "/images/bottom-aligned-y.png"
- );
- const textImage = await createTextImage(320, 240, Jimp.FONT_SANS_16_BLACK, {
- y: 100,
-
- text: {
- text: "This is only a test.",
-
- alignmentY: Jimp.VERTICAL_ALIGN_BOTTOM,
- },
- maxWidth: 100,
-
- maxHeight: 100,
- });
-
- expectedImage.bitmap.data.should.be.deepEqual(textImage.bitmap.data);
- });
-
- it("exposes print y position in cb", async () => {
- const expectedImage = await Jimp.read(
- getTestDir(__dirname) + "/images/spacing.png"
- );
-
- const loadedFont = await jimp.loadFont(Jimp.FONT_SANS_16_BLACK);
- const image = await Jimp.create(500, 500, 0xffffffff);
-
- image.print(
- loadedFont,
- 0,
- 0,
- "One two three four fix six seven eight nine ten eleven twelve",
- 250,
- (err, image, { x, y }) => {
- image.print(
- loadedFont,
- x,
- y + 50,
- "thirteen fourteen fifteen sixteen seventeen eighteen nineteen twenty",
- 250
- );
- }
- );
-
- expectedImage.bitmap.data.should.be.deepEqual(image.bitmap.data);
- });
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-resize/CHANGELOG.md b/WechatBot/node_modules/@jimp/plugin-resize/CHANGELOG.md
deleted file mode 100644
index 4eb3193f9..000000000
--- a/WechatBot/node_modules/@jimp/plugin-resize/CHANGELOG.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# v0.16.3 (Sat Feb 04 2023)
-
-#### ⚠️ Pushed to `master`
-
-- upgrade prettier ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 1
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
----
-
-# v0.11.0 (Fri May 15 2020)
-
-#### 🚀 Enhancement
-
-- Removed Core-JS as a dependency. [#882](https://github.com/oliver-moran/jimp/pull/882) ([@EricRabil](https://github.com/EricRabil))
-
-#### Authors: 1
-
-- Eric Rabil ([@EricRabil](https://github.com/EricRabil))
-
----
-
-# v0.9.3 (Tue Nov 26 2019)
-
-#### 🐛 Bug Fix
-
-- `@jimp/cli`, `@jimp/core`, `@jimp/custom`, `jimp`, `@jimp/plugin-blit`, `@jimp/plugin-blur`, `@jimp/plugin-circle`, `@jimp/plugin-color`, `@jimp/plugin-contain`, `@jimp/plugin-cover`, `@jimp/plugin-crop`, `@jimp/plugin-displace`, `@jimp/plugin-dither`, `@jimp/plugin-fisheye`, `@jimp/plugin-flip`, `@jimp/plugin-gaussian`, `@jimp/plugin-invert`, `@jimp/plugin-mask`, `@jimp/plugin-normalize`, `@jimp/plugin-print`, `@jimp/plugin-resize`, `@jimp/plugin-rotate`, `@jimp/plugin-scale`, `@jimp/plugin-shadow`, `@jimp/plugin-threshold`, `@jimp/plugins`, `@jimp/test-utils`, `@jimp/bmp`, `@jimp/gif`, `@jimp/jpeg`, `@jimp/png`, `@jimp/tiff`, `@jimp/types`, `@jimp/utils`
- - Fix regeneratorRuntime errors [#815](https://github.com/oliver-moran/jimp/pull/815) ([@crutchcorn](https://github.com/crutchcorn) [@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 2
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
diff --git a/WechatBot/node_modules/@jimp/plugin-resize/LICENSE b/WechatBot/node_modules/@jimp/plugin-resize/LICENSE
deleted file mode 100644
index baa5d4850..000000000
--- a/WechatBot/node_modules/@jimp/plugin-resize/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Oliver Moran
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/WechatBot/node_modules/@jimp/plugin-resize/README.md b/WechatBot/node_modules/@jimp/plugin-resize/README.md
deleted file mode 100644
index a74dbdff6..000000000
--- a/WechatBot/node_modules/@jimp/plugin-resize/README.md
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
-
@jimp/plugin-resize
-
Resize an image.
-
-
-Resizes the image to a set width and height using a 2-pass bilinear algorithm/
-
-## Usage
-
-- @param {number} w the width to resize the image to (or Jimp.AUTO)
-- @param {number} h the height to resize the image to (or Jimp.AUTO)
-- @param {string} mode (optional) a scaling method (e.g. Jimp.RESIZE_BEZIER)
-- @param {function(Error, Jimp)} cb (optional) a callback for when complete
-
-```js
-import jimp from "jimp";
-
-async function main() {
- // Read the image.
- const image = await jimp.read("test/image.png");
-
- // Resize the image to width 150 and auto height.
- await image.resize(150, jimp.AUTO);
-
- // Save and overwrite the image
- await image.writeAsync("test/image.png");
-}
-
-main();
-```
-
-## Auto
-
-`Jimp.AUTO` can be passes to either the height or width and jimp will scale the image accordingly. `Jimp.AUTO` cannot be both height and width.
-
-```js
-// resize the height to 250 and scale the width accordingly
-image.resize(Jimp.AUTO, 250);
-// resize the width to 250 and scale the height accordingly
-image.resize(250, Jimp.AUTO);
-```
-
-### Resize modes
-
-The default resizing algorithm uses a bilinear method.
-
-Optionally, the following constants can be passed to choose a particular resizing algorithm:
-
-```js
-Jimp.RESIZE_NEAREST_NEIGHBOR;
-Jimp.RESIZE_BILINEAR;
-Jimp.RESIZE_BICUBIC;
-Jimp.RESIZE_HERMITE;
-Jimp.RESIZE_BEZIER;
-```
-
-```js
-image.resize(250, 250, Jimp.RESIZE_BEZIER);
-```
diff --git a/WechatBot/node_modules/@jimp/plugin-resize/dist/index.js b/WechatBot/node_modules/@jimp/plugin-resize/dist/index.js
deleted file mode 100755
index 5facc5815..000000000
--- a/WechatBot/node_modules/@jimp/plugin-resize/dist/index.js
+++ /dev/null
@@ -1,96 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports["default"] = void 0;
-
-var _utils = require("@jimp/utils");
-
-var _resize = _interopRequireDefault(require("./modules/resize"));
-
-var _resize2 = _interopRequireDefault(require("./modules/resize2"));
-
-var _default = function _default() {
- return {
- constants: {
- RESIZE_NEAREST_NEIGHBOR: "nearestNeighbor",
- RESIZE_BILINEAR: "bilinearInterpolation",
- RESIZE_BICUBIC: "bicubicInterpolation",
- RESIZE_HERMITE: "hermiteInterpolation",
- RESIZE_BEZIER: "bezierInterpolation"
- },
- "class": {
- /**
- * Resizes the image to a set width and height using a 2-pass bilinear algorithm
- * @param {number} w the width to resize the image to (or Jimp.AUTO)
- * @param {number} h the height to resize the image to (or Jimp.AUTO)
- * @param {string} mode (optional) a scaling method (e.g. Jimp.RESIZE_BEZIER)
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
- resize: function resize(w, h, mode, cb) {
- if (typeof w !== "number" || typeof h !== "number") {
- return _utils.throwError.call(this, "w and h must be numbers", cb);
- }
-
- if (typeof mode === "function" && typeof cb === "undefined") {
- cb = mode;
- mode = null;
- }
-
- if (w === this.constructor.AUTO && h === this.constructor.AUTO) {
- return _utils.throwError.call(this, "w and h cannot both be set to auto", cb);
- }
-
- if (w === this.constructor.AUTO) {
- w = this.bitmap.width * (h / this.bitmap.height);
- }
-
- if (h === this.constructor.AUTO) {
- h = this.bitmap.height * (w / this.bitmap.width);
- }
-
- if (w < 0 || h < 0) {
- return _utils.throwError.call(this, "w and h must be positive numbers", cb);
- } // round inputs
-
-
- w = Math.round(w);
- h = Math.round(h);
-
- if (typeof _resize2["default"][mode] === "function") {
- var dst = {
- data: Buffer.alloc(w * h * 4),
- width: w,
- height: h
- };
-
- _resize2["default"][mode](this.bitmap, dst);
-
- this.bitmap = dst;
- } else {
- var image = this;
- var resize = new _resize["default"](this.bitmap.width, this.bitmap.height, w, h, true, true, function (buffer) {
- image.bitmap.data = Buffer.from(buffer);
- image.bitmap.width = w;
- image.bitmap.height = h;
- });
- resize.resize(this.bitmap.data);
- }
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- }
- }
- };
-};
-
-exports["default"] = _default;
-module.exports = exports.default;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-resize/dist/index.js.map b/WechatBot/node_modules/@jimp/plugin-resize/dist/index.js.map
deleted file mode 100644
index 4f6cf9b85..000000000
--- a/WechatBot/node_modules/@jimp/plugin-resize/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/index.js"],"names":["constants","RESIZE_NEAREST_NEIGHBOR","RESIZE_BILINEAR","RESIZE_BICUBIC","RESIZE_HERMITE","RESIZE_BEZIER","resize","w","h","mode","cb","throwError","call","constructor","AUTO","bitmap","width","height","Math","round","Resize2","dst","data","Buffer","alloc","image","Resize","buffer","from"],"mappings":"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","sourcesContent":["import { throwError, isNodePattern } from \"@jimp/utils\";\n\nimport Resize from \"./modules/resize\";\nimport Resize2 from \"./modules/resize2\";\n\nexport default () => ({\n constants: {\n RESIZE_NEAREST_NEIGHBOR: \"nearestNeighbor\",\n RESIZE_BILINEAR: \"bilinearInterpolation\",\n RESIZE_BICUBIC: \"bicubicInterpolation\",\n RESIZE_HERMITE: \"hermiteInterpolation\",\n RESIZE_BEZIER: \"bezierInterpolation\",\n },\n\n class: {\n /**\n * Resizes the image to a set width and height using a 2-pass bilinear algorithm\n * @param {number} w the width to resize the image to (or Jimp.AUTO)\n * @param {number} h the height to resize the image to (or Jimp.AUTO)\n * @param {string} mode (optional) a scaling method (e.g. Jimp.RESIZE_BEZIER)\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp} this for chaining of methods\n */\n resize(w, h, mode, cb) {\n if (typeof w !== \"number\" || typeof h !== \"number\") {\n return throwError.call(this, \"w and h must be numbers\", cb);\n }\n\n if (typeof mode === \"function\" && typeof cb === \"undefined\") {\n cb = mode;\n mode = null;\n }\n\n if (w === this.constructor.AUTO && h === this.constructor.AUTO) {\n return throwError.call(this, \"w and h cannot both be set to auto\", cb);\n }\n\n if (w === this.constructor.AUTO) {\n w = this.bitmap.width * (h / this.bitmap.height);\n }\n\n if (h === this.constructor.AUTO) {\n h = this.bitmap.height * (w / this.bitmap.width);\n }\n\n if (w < 0 || h < 0) {\n return throwError.call(this, \"w and h must be positive numbers\", cb);\n }\n\n // round inputs\n w = Math.round(w);\n h = Math.round(h);\n\n if (typeof Resize2[mode] === \"function\") {\n const dst = {\n data: Buffer.alloc(w * h * 4),\n width: w,\n height: h,\n };\n Resize2[mode](this.bitmap, dst);\n this.bitmap = dst;\n } else {\n const image = this;\n const resize = new Resize(\n this.bitmap.width,\n this.bitmap.height,\n w,\n h,\n true,\n true,\n (buffer) => {\n image.bitmap.data = Buffer.from(buffer);\n image.bitmap.width = w;\n image.bitmap.height = h;\n }\n );\n resize.resize(this.bitmap.data);\n }\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n },\n },\n});\n"],"file":"index.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-resize/dist/modules/resize.js b/WechatBot/node_modules/@jimp/plugin-resize/dist/modules/resize.js
deleted file mode 100755
index 05c89c0d5..000000000
--- a/WechatBot/node_modules/@jimp/plugin-resize/dist/modules/resize.js
+++ /dev/null
@@ -1,406 +0,0 @@
-"use strict";
-
-// JavaScript Image Resizer (c) 2012 - Grant Galitz
-// Released to public domain 29 July 2013: https://github.com/grantgalitz/JS-Image-Resizer/issues/4
-function Resize(widthOriginal, heightOriginal, targetWidth, targetHeight, blendAlpha, interpolationPass, resizeCallback) {
- this.widthOriginal = Math.abs(Math.floor(widthOriginal) || 0);
- this.heightOriginal = Math.abs(Math.floor(heightOriginal) || 0);
- this.targetWidth = Math.abs(Math.floor(targetWidth) || 0);
- this.targetHeight = Math.abs(Math.floor(targetHeight) || 0);
- this.colorChannels = blendAlpha ? 4 : 3;
- this.interpolationPass = Boolean(interpolationPass);
- this.resizeCallback = typeof resizeCallback === "function" ? resizeCallback : function () {};
- this.targetWidthMultipliedByChannels = this.targetWidth * this.colorChannels;
- this.originalWidthMultipliedByChannels = this.widthOriginal * this.colorChannels;
- this.originalHeightMultipliedByChannels = this.heightOriginal * this.colorChannels;
- this.widthPassResultSize = this.targetWidthMultipliedByChannels * this.heightOriginal;
- this.finalResultSize = this.targetWidthMultipliedByChannels * this.targetHeight;
- this.initialize();
-}
-
-Resize.prototype.initialize = function () {
- // Perform some checks:
- if (this.widthOriginal > 0 && this.heightOriginal > 0 && this.targetWidth > 0 && this.targetHeight > 0) {
- this.configurePasses();
- } else {
- throw new Error("Invalid settings specified for the resizer.");
- }
-};
-
-Resize.prototype.configurePasses = function () {
- if (this.widthOriginal === this.targetWidth) {
- // Bypass the width resizer pass:
- this.resizeWidth = this.bypassResizer;
- } else {
- // Setup the width resizer pass:
- this.ratioWeightWidthPass = this.widthOriginal / this.targetWidth;
-
- if (this.ratioWeightWidthPass < 1 && this.interpolationPass) {
- this.initializeFirstPassBuffers(true);
- this.resizeWidth = this.colorChannels === 4 ? this.resizeWidthInterpolatedRGBA : this.resizeWidthInterpolatedRGB;
- } else {
- this.initializeFirstPassBuffers(false);
- this.resizeWidth = this.colorChannels === 4 ? this.resizeWidthRGBA : this.resizeWidthRGB;
- }
- }
-
- if (this.heightOriginal === this.targetHeight) {
- // Bypass the height resizer pass:
- this.resizeHeight = this.bypassResizer;
- } else {
- // Setup the height resizer pass:
- this.ratioWeightHeightPass = this.heightOriginal / this.targetHeight;
-
- if (this.ratioWeightHeightPass < 1 && this.interpolationPass) {
- this.initializeSecondPassBuffers(true);
- this.resizeHeight = this.resizeHeightInterpolated;
- } else {
- this.initializeSecondPassBuffers(false);
- this.resizeHeight = this.colorChannels === 4 ? this.resizeHeightRGBA : this.resizeHeightRGB;
- }
- }
-};
-
-Resize.prototype._resizeWidthInterpolatedRGBChannels = function (buffer, fourthChannel) {
- var channelsNum = fourthChannel ? 4 : 3;
- var ratioWeight = this.ratioWeightWidthPass;
- var outputBuffer = this.widthBuffer;
- var weight = 0;
- var finalOffset = 0;
- var pixelOffset = 0;
- var firstWeight = 0;
- var secondWeight = 0;
- var targetPosition; // Handle for only one interpolation input being valid for start calculation:
-
- for (targetPosition = 0; weight < 1 / 3; targetPosition += channelsNum, weight += ratioWeight) {
- for (finalOffset = targetPosition, pixelOffset = 0; finalOffset < this.widthPassResultSize; pixelOffset += this.originalWidthMultipliedByChannels, finalOffset += this.targetWidthMultipliedByChannels) {
- outputBuffer[finalOffset] = buffer[pixelOffset];
- outputBuffer[finalOffset + 1] = buffer[pixelOffset + 1];
- outputBuffer[finalOffset + 2] = buffer[pixelOffset + 2];
- if (fourthChannel) outputBuffer[finalOffset + 3] = buffer[pixelOffset + 3];
- }
- } // Adjust for overshoot of the last pass's counter:
-
-
- weight -= 1 / 3;
- var interpolationWidthSourceReadStop;
-
- for (interpolationWidthSourceReadStop = this.widthOriginal - 1; weight < interpolationWidthSourceReadStop; targetPosition += channelsNum, weight += ratioWeight) {
- // Calculate weightings:
- secondWeight = weight % 1;
- firstWeight = 1 - secondWeight; // Interpolate:
-
- for (finalOffset = targetPosition, pixelOffset = Math.floor(weight) * channelsNum; finalOffset < this.widthPassResultSize; pixelOffset += this.originalWidthMultipliedByChannels, finalOffset += this.targetWidthMultipliedByChannels) {
- outputBuffer[finalOffset + 0] = buffer[pixelOffset + 0] * firstWeight + buffer[pixelOffset + channelsNum + 0] * secondWeight;
- outputBuffer[finalOffset + 1] = buffer[pixelOffset + 1] * firstWeight + buffer[pixelOffset + channelsNum + 1] * secondWeight;
- outputBuffer[finalOffset + 2] = buffer[pixelOffset + 2] * firstWeight + buffer[pixelOffset + channelsNum + 2] * secondWeight;
- if (fourthChannel) outputBuffer[finalOffset + 3] = buffer[pixelOffset + 3] * firstWeight + buffer[pixelOffset + channelsNum + 3] * secondWeight;
- }
- } // Handle for only one interpolation input being valid for end calculation:
-
-
- for (interpolationWidthSourceReadStop = this.originalWidthMultipliedByChannels - channelsNum; targetPosition < this.targetWidthMultipliedByChannels; targetPosition += channelsNum) {
- for (finalOffset = targetPosition, pixelOffset = interpolationWidthSourceReadStop; finalOffset < this.widthPassResultSize; pixelOffset += this.originalWidthMultipliedByChannels, finalOffset += this.targetWidthMultipliedByChannels) {
- outputBuffer[finalOffset] = buffer[pixelOffset];
- outputBuffer[finalOffset + 1] = buffer[pixelOffset + 1];
- outputBuffer[finalOffset + 2] = buffer[pixelOffset + 2];
- if (fourthChannel) outputBuffer[finalOffset + 3] = buffer[pixelOffset + 3];
- }
- }
-
- return outputBuffer;
-};
-
-Resize.prototype._resizeWidthRGBChannels = function (buffer, fourthChannel) {
- var channelsNum = fourthChannel ? 4 : 3;
- var ratioWeight = this.ratioWeightWidthPass;
- var ratioWeightDivisor = 1 / ratioWeight;
- var nextLineOffsetOriginalWidth = this.originalWidthMultipliedByChannels - channelsNum + 1;
- var nextLineOffsetTargetWidth = this.targetWidthMultipliedByChannels - channelsNum + 1;
- var output = this.outputWidthWorkBench;
- var outputBuffer = this.widthBuffer;
- var trustworthyColorsCount = this.outputWidthWorkBenchOpaquePixelsCount;
- var weight = 0;
- var amountToNext = 0;
- var actualPosition = 0;
- var currentPosition = 0;
- var line = 0;
- var pixelOffset = 0;
- var outputOffset = 0;
- var multiplier = 1;
- var r = 0;
- var g = 0;
- var b = 0;
- var a = 0;
-
- do {
- for (line = 0; line < this.originalHeightMultipliedByChannels;) {
- output[line++] = 0;
- output[line++] = 0;
- output[line++] = 0;
-
- if (fourthChannel) {
- output[line++] = 0;
- trustworthyColorsCount[line / channelsNum - 1] = 0;
- }
- }
-
- weight = ratioWeight;
-
- do {
- amountToNext = 1 + actualPosition - currentPosition;
- multiplier = Math.min(weight, amountToNext);
-
- for (line = 0, pixelOffset = actualPosition; line < this.originalHeightMultipliedByChannels; pixelOffset += nextLineOffsetOriginalWidth) {
- r = buffer[pixelOffset];
- g = buffer[++pixelOffset];
- b = buffer[++pixelOffset];
- a = fourthChannel ? buffer[++pixelOffset] : 255; // Ignore RGB values if pixel is completely transparent
-
- output[line++] += (a ? r : 0) * multiplier;
- output[line++] += (a ? g : 0) * multiplier;
- output[line++] += (a ? b : 0) * multiplier;
-
- if (fourthChannel) {
- output[line++] += a * multiplier;
- trustworthyColorsCount[line / channelsNum - 1] += a ? multiplier : 0;
- }
- }
-
- if (weight >= amountToNext) {
- actualPosition += channelsNum;
- currentPosition = actualPosition;
- weight -= amountToNext;
- } else {
- currentPosition += weight;
- break;
- }
- } while (weight > 0 && actualPosition < this.originalWidthMultipliedByChannels);
-
- for (line = 0, pixelOffset = outputOffset; line < this.originalHeightMultipliedByChannels; pixelOffset += nextLineOffsetTargetWidth) {
- weight = fourthChannel ? trustworthyColorsCount[line / channelsNum] : 1;
- multiplier = fourthChannel ? weight ? 1 / weight : 0 : ratioWeightDivisor;
- outputBuffer[pixelOffset] = output[line++] * multiplier;
- outputBuffer[++pixelOffset] = output[line++] * multiplier;
- outputBuffer[++pixelOffset] = output[line++] * multiplier;
- if (fourthChannel) outputBuffer[++pixelOffset] = output[line++] * ratioWeightDivisor;
- }
-
- outputOffset += channelsNum;
- } while (outputOffset < this.targetWidthMultipliedByChannels);
-
- return outputBuffer;
-};
-
-Resize.prototype._resizeHeightRGBChannels = function (buffer, fourthChannel) {
- var ratioWeight = this.ratioWeightHeightPass;
- var ratioWeightDivisor = 1 / ratioWeight;
- var output = this.outputHeightWorkBench;
- var outputBuffer = this.heightBuffer;
- var trustworthyColorsCount = this.outputHeightWorkBenchOpaquePixelsCount;
- var weight = 0;
- var amountToNext = 0;
- var actualPosition = 0;
- var currentPosition = 0;
- var pixelOffset = 0;
- var outputOffset = 0;
- var caret = 0;
- var multiplier = 1;
- var r = 0;
- var g = 0;
- var b = 0;
- var a = 0;
-
- do {
- for (pixelOffset = 0; pixelOffset < this.targetWidthMultipliedByChannels;) {
- output[pixelOffset++] = 0;
- output[pixelOffset++] = 0;
- output[pixelOffset++] = 0;
-
- if (fourthChannel) {
- output[pixelOffset++] = 0;
- trustworthyColorsCount[pixelOffset / 4 - 1] = 0;
- }
- }
-
- weight = ratioWeight;
-
- do {
- amountToNext = 1 + actualPosition - currentPosition;
- multiplier = Math.min(weight, amountToNext);
- caret = actualPosition;
-
- for (pixelOffset = 0; pixelOffset < this.targetWidthMultipliedByChannels;) {
- r = buffer[caret++];
- g = buffer[caret++];
- b = buffer[caret++];
- a = fourthChannel ? buffer[caret++] : 255; // Ignore RGB values if pixel is completely transparent
-
- output[pixelOffset++] += (a ? r : 0) * multiplier;
- output[pixelOffset++] += (a ? g : 0) * multiplier;
- output[pixelOffset++] += (a ? b : 0) * multiplier;
-
- if (fourthChannel) {
- output[pixelOffset++] += a * multiplier;
- trustworthyColorsCount[pixelOffset / 4 - 1] += a ? multiplier : 0;
- }
- }
-
- if (weight >= amountToNext) {
- actualPosition = caret;
- currentPosition = actualPosition;
- weight -= amountToNext;
- } else {
- currentPosition += weight;
- break;
- }
- } while (weight > 0 && actualPosition < this.widthPassResultSize);
-
- for (pixelOffset = 0; pixelOffset < this.targetWidthMultipliedByChannels;) {
- weight = fourthChannel ? trustworthyColorsCount[pixelOffset / 4] : 1;
- multiplier = fourthChannel ? weight ? 1 / weight : 0 : ratioWeightDivisor;
- outputBuffer[outputOffset++] = Math.round(output[pixelOffset++] * multiplier);
- outputBuffer[outputOffset++] = Math.round(output[pixelOffset++] * multiplier);
- outputBuffer[outputOffset++] = Math.round(output[pixelOffset++] * multiplier);
-
- if (fourthChannel) {
- outputBuffer[outputOffset++] = Math.round(output[pixelOffset++] * ratioWeightDivisor);
- }
- }
- } while (outputOffset < this.finalResultSize);
-
- return outputBuffer;
-};
-
-Resize.prototype.resizeWidthInterpolatedRGB = function (buffer) {
- return this._resizeWidthInterpolatedRGBChannels(buffer, false);
-};
-
-Resize.prototype.resizeWidthInterpolatedRGBA = function (buffer) {
- return this._resizeWidthInterpolatedRGBChannels(buffer, true);
-};
-
-Resize.prototype.resizeWidthRGB = function (buffer) {
- return this._resizeWidthRGBChannels(buffer, false);
-};
-
-Resize.prototype.resizeWidthRGBA = function (buffer) {
- return this._resizeWidthRGBChannels(buffer, true);
-};
-
-Resize.prototype.resizeHeightInterpolated = function (buffer) {
- var ratioWeight = this.ratioWeightHeightPass;
- var outputBuffer = this.heightBuffer;
- var weight = 0;
- var finalOffset = 0;
- var pixelOffset = 0;
- var pixelOffsetAccumulated = 0;
- var pixelOffsetAccumulated2 = 0;
- var firstWeight = 0;
- var secondWeight = 0;
- var interpolationHeightSourceReadStop; // Handle for only one interpolation input being valid for start calculation:
-
- for (; weight < 1 / 3; weight += ratioWeight) {
- for (pixelOffset = 0; pixelOffset < this.targetWidthMultipliedByChannels;) {
- outputBuffer[finalOffset++] = Math.round(buffer[pixelOffset++]);
- }
- } // Adjust for overshoot of the last pass's counter:
-
-
- weight -= 1 / 3;
-
- for (interpolationHeightSourceReadStop = this.heightOriginal - 1; weight < interpolationHeightSourceReadStop; weight += ratioWeight) {
- // Calculate weightings:
- secondWeight = weight % 1;
- firstWeight = 1 - secondWeight; // Interpolate:
-
- pixelOffsetAccumulated = Math.floor(weight) * this.targetWidthMultipliedByChannels;
- pixelOffsetAccumulated2 = pixelOffsetAccumulated + this.targetWidthMultipliedByChannels;
-
- for (pixelOffset = 0; pixelOffset < this.targetWidthMultipliedByChannels; ++pixelOffset) {
- outputBuffer[finalOffset++] = Math.round(buffer[pixelOffsetAccumulated++] * firstWeight + buffer[pixelOffsetAccumulated2++] * secondWeight);
- }
- } // Handle for only one interpolation input being valid for end calculation:
-
-
- while (finalOffset < this.finalResultSize) {
- for (pixelOffset = 0, pixelOffsetAccumulated = interpolationHeightSourceReadStop * this.targetWidthMultipliedByChannels; pixelOffset < this.targetWidthMultipliedByChannels; ++pixelOffset) {
- outputBuffer[finalOffset++] = Math.round(buffer[pixelOffsetAccumulated++]);
- }
- }
-
- return outputBuffer;
-};
-
-Resize.prototype.resizeHeightRGB = function (buffer) {
- return this._resizeHeightRGBChannels(buffer, false);
-};
-
-Resize.prototype.resizeHeightRGBA = function (buffer) {
- return this._resizeHeightRGBChannels(buffer, true);
-};
-
-Resize.prototype.resize = function (buffer) {
- this.resizeCallback(this.resizeHeight(this.resizeWidth(buffer)));
-};
-
-Resize.prototype.bypassResizer = function (buffer) {
- // Just return the buffer passed:
- return buffer;
-};
-
-Resize.prototype.initializeFirstPassBuffers = function (BILINEARAlgo) {
- // Initialize the internal width pass buffers:
- this.widthBuffer = this.generateFloatBuffer(this.widthPassResultSize);
-
- if (!BILINEARAlgo) {
- this.outputWidthWorkBench = this.generateFloatBuffer(this.originalHeightMultipliedByChannels);
-
- if (this.colorChannels > 3) {
- this.outputWidthWorkBenchOpaquePixelsCount = this.generateFloat64Buffer(this.heightOriginal);
- }
- }
-};
-
-Resize.prototype.initializeSecondPassBuffers = function (BILINEARAlgo) {
- // Initialize the internal height pass buffers:
- this.heightBuffer = this.generateUint8Buffer(this.finalResultSize);
-
- if (!BILINEARAlgo) {
- this.outputHeightWorkBench = this.generateFloatBuffer(this.targetWidthMultipliedByChannels);
-
- if (this.colorChannels > 3) {
- this.outputHeightWorkBenchOpaquePixelsCount = this.generateFloat64Buffer(this.targetWidth);
- }
- }
-};
-
-Resize.prototype.generateFloatBuffer = function (bufferLength) {
- // Generate a float32 typed array buffer:
- try {
- return new Float32Array(bufferLength);
- } catch (error) {
- return [];
- }
-};
-
-Resize.prototype.generateFloat64Buffer = function (bufferLength) {
- // Generate a float64 typed array buffer:
- try {
- return new Float64Array(bufferLength);
- } catch (error) {
- return [];
- }
-};
-
-Resize.prototype.generateUint8Buffer = function (bufferLength) {
- // Generate a uint8 typed array buffer:
- try {
- return new Uint8Array(bufferLength);
- } catch (error) {
- return [];
- }
-};
-
-module.exports = Resize;
-//# sourceMappingURL=resize.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-resize/dist/modules/resize.js.map b/WechatBot/node_modules/@jimp/plugin-resize/dist/modules/resize.js.map
deleted file mode 100644
index da4bf2ad4..000000000
--- a/WechatBot/node_modules/@jimp/plugin-resize/dist/modules/resize.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/modules/resize.js"],"names":["Resize","widthOriginal","heightOriginal","targetWidth","targetHeight","blendAlpha","interpolationPass","resizeCallback","Math","abs","floor","colorChannels","Boolean","targetWidthMultipliedByChannels","originalWidthMultipliedByChannels","originalHeightMultipliedByChannels","widthPassResultSize","finalResultSize","initialize","prototype","configurePasses","Error","resizeWidth","bypassResizer","ratioWeightWidthPass","initializeFirstPassBuffers","resizeWidthInterpolatedRGBA","resizeWidthInterpolatedRGB","resizeWidthRGBA","resizeWidthRGB","resizeHeight","ratioWeightHeightPass","initializeSecondPassBuffers","resizeHeightInterpolated","resizeHeightRGBA","resizeHeightRGB","_resizeWidthInterpolatedRGBChannels","buffer","fourthChannel","channelsNum","ratioWeight","outputBuffer","widthBuffer","weight","finalOffset","pixelOffset","firstWeight","secondWeight","targetPosition","interpolationWidthSourceReadStop","_resizeWidthRGBChannels","ratioWeightDivisor","nextLineOffsetOriginalWidth","nextLineOffsetTargetWidth","output","outputWidthWorkBench","trustworthyColorsCount","outputWidthWorkBenchOpaquePixelsCount","amountToNext","actualPosition","currentPosition","line","outputOffset","multiplier","r","g","b","a","min","_resizeHeightRGBChannels","outputHeightWorkBench","heightBuffer","outputHeightWorkBenchOpaquePixelsCount","caret","round","pixelOffsetAccumulated","pixelOffsetAccumulated2","interpolationHeightSourceReadStop","resize","BILINEARAlgo","generateFloatBuffer","generateFloat64Buffer","generateUint8Buffer","bufferLength","Float32Array","error","Float64Array","Uint8Array","module","exports"],"mappings":"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","sourcesContent":["// JavaScript Image Resizer (c) 2012 - Grant Galitz\n// Released to public domain 29 July 2013: https://github.com/grantgalitz/JS-Image-Resizer/issues/4\n\nfunction Resize(\n widthOriginal,\n heightOriginal,\n targetWidth,\n targetHeight,\n blendAlpha,\n interpolationPass,\n resizeCallback\n) {\n this.widthOriginal = Math.abs(Math.floor(widthOriginal) || 0);\n this.heightOriginal = Math.abs(Math.floor(heightOriginal) || 0);\n this.targetWidth = Math.abs(Math.floor(targetWidth) || 0);\n this.targetHeight = Math.abs(Math.floor(targetHeight) || 0);\n this.colorChannels = blendAlpha ? 4 : 3;\n this.interpolationPass = Boolean(interpolationPass);\n this.resizeCallback =\n typeof resizeCallback === \"function\" ? resizeCallback : function () {};\n\n this.targetWidthMultipliedByChannels = this.targetWidth * this.colorChannels;\n this.originalWidthMultipliedByChannels =\n this.widthOriginal * this.colorChannels;\n this.originalHeightMultipliedByChannels =\n this.heightOriginal * this.colorChannels;\n this.widthPassResultSize =\n this.targetWidthMultipliedByChannels * this.heightOriginal;\n this.finalResultSize =\n this.targetWidthMultipliedByChannels * this.targetHeight;\n this.initialize();\n}\n\nResize.prototype.initialize = function () {\n // Perform some checks:\n if (\n this.widthOriginal > 0 &&\n this.heightOriginal > 0 &&\n this.targetWidth > 0 &&\n this.targetHeight > 0\n ) {\n this.configurePasses();\n } else {\n throw new Error(\"Invalid settings specified for the resizer.\");\n }\n};\n\nResize.prototype.configurePasses = function () {\n if (this.widthOriginal === this.targetWidth) {\n // Bypass the width resizer pass:\n this.resizeWidth = this.bypassResizer;\n } else {\n // Setup the width resizer pass:\n this.ratioWeightWidthPass = this.widthOriginal / this.targetWidth;\n if (this.ratioWeightWidthPass < 1 && this.interpolationPass) {\n this.initializeFirstPassBuffers(true);\n this.resizeWidth =\n this.colorChannels === 4\n ? this.resizeWidthInterpolatedRGBA\n : this.resizeWidthInterpolatedRGB;\n } else {\n this.initializeFirstPassBuffers(false);\n this.resizeWidth =\n this.colorChannels === 4 ? this.resizeWidthRGBA : this.resizeWidthRGB;\n }\n }\n\n if (this.heightOriginal === this.targetHeight) {\n // Bypass the height resizer pass:\n this.resizeHeight = this.bypassResizer;\n } else {\n // Setup the height resizer pass:\n this.ratioWeightHeightPass = this.heightOriginal / this.targetHeight;\n if (this.ratioWeightHeightPass < 1 && this.interpolationPass) {\n this.initializeSecondPassBuffers(true);\n this.resizeHeight = this.resizeHeightInterpolated;\n } else {\n this.initializeSecondPassBuffers(false);\n this.resizeHeight =\n this.colorChannels === 4 ? this.resizeHeightRGBA : this.resizeHeightRGB;\n }\n }\n};\n\nResize.prototype._resizeWidthInterpolatedRGBChannels = function (\n buffer,\n fourthChannel\n) {\n const channelsNum = fourthChannel ? 4 : 3;\n const ratioWeight = this.ratioWeightWidthPass;\n const outputBuffer = this.widthBuffer;\n\n let weight = 0;\n let finalOffset = 0;\n let pixelOffset = 0;\n let firstWeight = 0;\n let secondWeight = 0;\n let targetPosition;\n\n // Handle for only one interpolation input being valid for start calculation:\n for (\n targetPosition = 0;\n weight < 1 / 3;\n targetPosition += channelsNum, weight += ratioWeight\n ) {\n for (\n finalOffset = targetPosition, pixelOffset = 0;\n finalOffset < this.widthPassResultSize;\n pixelOffset += this.originalWidthMultipliedByChannels,\n finalOffset += this.targetWidthMultipliedByChannels\n ) {\n outputBuffer[finalOffset] = buffer[pixelOffset];\n outputBuffer[finalOffset + 1] = buffer[pixelOffset + 1];\n outputBuffer[finalOffset + 2] = buffer[pixelOffset + 2];\n if (fourthChannel)\n outputBuffer[finalOffset + 3] = buffer[pixelOffset + 3];\n }\n }\n\n // Adjust for overshoot of the last pass's counter:\n weight -= 1 / 3;\n let interpolationWidthSourceReadStop;\n\n for (\n interpolationWidthSourceReadStop = this.widthOriginal - 1;\n weight < interpolationWidthSourceReadStop;\n targetPosition += channelsNum, weight += ratioWeight\n ) {\n // Calculate weightings:\n secondWeight = weight % 1;\n firstWeight = 1 - secondWeight;\n // Interpolate:\n for (\n finalOffset = targetPosition,\n pixelOffset = Math.floor(weight) * channelsNum;\n finalOffset < this.widthPassResultSize;\n pixelOffset += this.originalWidthMultipliedByChannels,\n finalOffset += this.targetWidthMultipliedByChannels\n ) {\n outputBuffer[finalOffset + 0] =\n buffer[pixelOffset + 0] * firstWeight +\n buffer[pixelOffset + channelsNum + 0] * secondWeight;\n outputBuffer[finalOffset + 1] =\n buffer[pixelOffset + 1] * firstWeight +\n buffer[pixelOffset + channelsNum + 1] * secondWeight;\n outputBuffer[finalOffset + 2] =\n buffer[pixelOffset + 2] * firstWeight +\n buffer[pixelOffset + channelsNum + 2] * secondWeight;\n if (fourthChannel)\n outputBuffer[finalOffset + 3] =\n buffer[pixelOffset + 3] * firstWeight +\n buffer[pixelOffset + channelsNum + 3] * secondWeight;\n }\n }\n\n // Handle for only one interpolation input being valid for end calculation:\n for (\n interpolationWidthSourceReadStop =\n this.originalWidthMultipliedByChannels - channelsNum;\n targetPosition < this.targetWidthMultipliedByChannels;\n targetPosition += channelsNum\n ) {\n for (\n finalOffset = targetPosition,\n pixelOffset = interpolationWidthSourceReadStop;\n finalOffset < this.widthPassResultSize;\n pixelOffset += this.originalWidthMultipliedByChannels,\n finalOffset += this.targetWidthMultipliedByChannels\n ) {\n outputBuffer[finalOffset] = buffer[pixelOffset];\n outputBuffer[finalOffset + 1] = buffer[pixelOffset + 1];\n outputBuffer[finalOffset + 2] = buffer[pixelOffset + 2];\n if (fourthChannel)\n outputBuffer[finalOffset + 3] = buffer[pixelOffset + 3];\n }\n }\n\n return outputBuffer;\n};\n\nResize.prototype._resizeWidthRGBChannels = function (buffer, fourthChannel) {\n const channelsNum = fourthChannel ? 4 : 3;\n const ratioWeight = this.ratioWeightWidthPass;\n const ratioWeightDivisor = 1 / ratioWeight;\n const nextLineOffsetOriginalWidth =\n this.originalWidthMultipliedByChannels - channelsNum + 1;\n const nextLineOffsetTargetWidth =\n this.targetWidthMultipliedByChannels - channelsNum + 1;\n const output = this.outputWidthWorkBench;\n const outputBuffer = this.widthBuffer;\n const trustworthyColorsCount = this.outputWidthWorkBenchOpaquePixelsCount;\n\n let weight = 0;\n let amountToNext = 0;\n let actualPosition = 0;\n let currentPosition = 0;\n let line = 0;\n let pixelOffset = 0;\n let outputOffset = 0;\n let multiplier = 1;\n let r = 0;\n let g = 0;\n let b = 0;\n let a = 0;\n\n do {\n for (line = 0; line < this.originalHeightMultipliedByChannels; ) {\n output[line++] = 0;\n output[line++] = 0;\n output[line++] = 0;\n if (fourthChannel) {\n output[line++] = 0;\n trustworthyColorsCount[line / channelsNum - 1] = 0;\n }\n }\n\n weight = ratioWeight;\n\n do {\n amountToNext = 1 + actualPosition - currentPosition;\n multiplier = Math.min(weight, amountToNext);\n for (\n line = 0, pixelOffset = actualPosition;\n line < this.originalHeightMultipliedByChannels;\n pixelOffset += nextLineOffsetOriginalWidth\n ) {\n r = buffer[pixelOffset];\n g = buffer[++pixelOffset];\n b = buffer[++pixelOffset];\n a = fourthChannel ? buffer[++pixelOffset] : 255;\n // Ignore RGB values if pixel is completely transparent\n output[line++] += (a ? r : 0) * multiplier;\n output[line++] += (a ? g : 0) * multiplier;\n output[line++] += (a ? b : 0) * multiplier;\n if (fourthChannel) {\n output[line++] += a * multiplier;\n trustworthyColorsCount[line / channelsNum - 1] += a ? multiplier : 0;\n }\n }\n\n if (weight >= amountToNext) {\n actualPosition += channelsNum;\n currentPosition = actualPosition;\n weight -= amountToNext;\n } else {\n currentPosition += weight;\n break;\n }\n } while (\n weight > 0 &&\n actualPosition < this.originalWidthMultipliedByChannels\n );\n\n for (\n line = 0, pixelOffset = outputOffset;\n line < this.originalHeightMultipliedByChannels;\n pixelOffset += nextLineOffsetTargetWidth\n ) {\n weight = fourthChannel ? trustworthyColorsCount[line / channelsNum] : 1;\n multiplier = fourthChannel\n ? weight\n ? 1 / weight\n : 0\n : ratioWeightDivisor;\n outputBuffer[pixelOffset] = output[line++] * multiplier;\n outputBuffer[++pixelOffset] = output[line++] * multiplier;\n outputBuffer[++pixelOffset] = output[line++] * multiplier;\n if (fourthChannel)\n outputBuffer[++pixelOffset] = output[line++] * ratioWeightDivisor;\n }\n\n outputOffset += channelsNum;\n } while (outputOffset < this.targetWidthMultipliedByChannels);\n\n return outputBuffer;\n};\n\nResize.prototype._resizeHeightRGBChannels = function (buffer, fourthChannel) {\n const ratioWeight = this.ratioWeightHeightPass;\n const ratioWeightDivisor = 1 / ratioWeight;\n const output = this.outputHeightWorkBench;\n const outputBuffer = this.heightBuffer;\n const trustworthyColorsCount = this.outputHeightWorkBenchOpaquePixelsCount;\n\n let weight = 0;\n let amountToNext = 0;\n let actualPosition = 0;\n let currentPosition = 0;\n let pixelOffset = 0;\n let outputOffset = 0;\n let caret = 0;\n let multiplier = 1;\n let r = 0;\n let g = 0;\n let b = 0;\n let a = 0;\n\n do {\n for (\n pixelOffset = 0;\n pixelOffset < this.targetWidthMultipliedByChannels;\n\n ) {\n output[pixelOffset++] = 0;\n output[pixelOffset++] = 0;\n output[pixelOffset++] = 0;\n\n if (fourthChannel) {\n output[pixelOffset++] = 0;\n trustworthyColorsCount[pixelOffset / 4 - 1] = 0;\n }\n }\n\n weight = ratioWeight;\n\n do {\n amountToNext = 1 + actualPosition - currentPosition;\n multiplier = Math.min(weight, amountToNext);\n caret = actualPosition;\n\n for (\n pixelOffset = 0;\n pixelOffset < this.targetWidthMultipliedByChannels;\n\n ) {\n r = buffer[caret++];\n g = buffer[caret++];\n b = buffer[caret++];\n a = fourthChannel ? buffer[caret++] : 255;\n // Ignore RGB values if pixel is completely transparent\n output[pixelOffset++] += (a ? r : 0) * multiplier;\n output[pixelOffset++] += (a ? g : 0) * multiplier;\n output[pixelOffset++] += (a ? b : 0) * multiplier;\n\n if (fourthChannel) {\n output[pixelOffset++] += a * multiplier;\n trustworthyColorsCount[pixelOffset / 4 - 1] += a ? multiplier : 0;\n }\n }\n\n if (weight >= amountToNext) {\n actualPosition = caret;\n currentPosition = actualPosition;\n weight -= amountToNext;\n } else {\n currentPosition += weight;\n break;\n }\n } while (weight > 0 && actualPosition < this.widthPassResultSize);\n\n for (\n pixelOffset = 0;\n pixelOffset < this.targetWidthMultipliedByChannels;\n\n ) {\n weight = fourthChannel ? trustworthyColorsCount[pixelOffset / 4] : 1;\n multiplier = fourthChannel\n ? weight\n ? 1 / weight\n : 0\n : ratioWeightDivisor;\n outputBuffer[outputOffset++] = Math.round(\n output[pixelOffset++] * multiplier\n );\n outputBuffer[outputOffset++] = Math.round(\n output[pixelOffset++] * multiplier\n );\n outputBuffer[outputOffset++] = Math.round(\n output[pixelOffset++] * multiplier\n );\n\n if (fourthChannel) {\n outputBuffer[outputOffset++] = Math.round(\n output[pixelOffset++] * ratioWeightDivisor\n );\n }\n }\n } while (outputOffset < this.finalResultSize);\n\n return outputBuffer;\n};\n\nResize.prototype.resizeWidthInterpolatedRGB = function (buffer) {\n return this._resizeWidthInterpolatedRGBChannels(buffer, false);\n};\n\nResize.prototype.resizeWidthInterpolatedRGBA = function (buffer) {\n return this._resizeWidthInterpolatedRGBChannels(buffer, true);\n};\n\nResize.prototype.resizeWidthRGB = function (buffer) {\n return this._resizeWidthRGBChannels(buffer, false);\n};\n\nResize.prototype.resizeWidthRGBA = function (buffer) {\n return this._resizeWidthRGBChannels(buffer, true);\n};\n\nResize.prototype.resizeHeightInterpolated = function (buffer) {\n const ratioWeight = this.ratioWeightHeightPass;\n const outputBuffer = this.heightBuffer;\n\n let weight = 0;\n let finalOffset = 0;\n let pixelOffset = 0;\n let pixelOffsetAccumulated = 0;\n let pixelOffsetAccumulated2 = 0;\n let firstWeight = 0;\n let secondWeight = 0;\n let interpolationHeightSourceReadStop;\n\n // Handle for only one interpolation input being valid for start calculation:\n for (; weight < 1 / 3; weight += ratioWeight) {\n for (\n pixelOffset = 0;\n pixelOffset < this.targetWidthMultipliedByChannels;\n\n ) {\n outputBuffer[finalOffset++] = Math.round(buffer[pixelOffset++]);\n }\n }\n\n // Adjust for overshoot of the last pass's counter:\n weight -= 1 / 3;\n\n for (\n interpolationHeightSourceReadStop = this.heightOriginal - 1;\n weight < interpolationHeightSourceReadStop;\n weight += ratioWeight\n ) {\n // Calculate weightings:\n secondWeight = weight % 1;\n firstWeight = 1 - secondWeight;\n // Interpolate:\n pixelOffsetAccumulated =\n Math.floor(weight) * this.targetWidthMultipliedByChannels;\n pixelOffsetAccumulated2 =\n pixelOffsetAccumulated + this.targetWidthMultipliedByChannels;\n for (\n pixelOffset = 0;\n pixelOffset < this.targetWidthMultipliedByChannels;\n ++pixelOffset\n ) {\n outputBuffer[finalOffset++] = Math.round(\n buffer[pixelOffsetAccumulated++] * firstWeight +\n buffer[pixelOffsetAccumulated2++] * secondWeight\n );\n }\n }\n\n // Handle for only one interpolation input being valid for end calculation:\n while (finalOffset < this.finalResultSize) {\n for (\n pixelOffset = 0,\n pixelOffsetAccumulated =\n interpolationHeightSourceReadStop *\n this.targetWidthMultipliedByChannels;\n pixelOffset < this.targetWidthMultipliedByChannels;\n ++pixelOffset\n ) {\n outputBuffer[finalOffset++] = Math.round(\n buffer[pixelOffsetAccumulated++]\n );\n }\n }\n\n return outputBuffer;\n};\n\nResize.prototype.resizeHeightRGB = function (buffer) {\n return this._resizeHeightRGBChannels(buffer, false);\n};\n\nResize.prototype.resizeHeightRGBA = function (buffer) {\n return this._resizeHeightRGBChannels(buffer, true);\n};\n\nResize.prototype.resize = function (buffer) {\n this.resizeCallback(this.resizeHeight(this.resizeWidth(buffer)));\n};\n\nResize.prototype.bypassResizer = function (buffer) {\n // Just return the buffer passed:\n return buffer;\n};\n\nResize.prototype.initializeFirstPassBuffers = function (BILINEARAlgo) {\n // Initialize the internal width pass buffers:\n this.widthBuffer = this.generateFloatBuffer(this.widthPassResultSize);\n\n if (!BILINEARAlgo) {\n this.outputWidthWorkBench = this.generateFloatBuffer(\n this.originalHeightMultipliedByChannels\n );\n\n if (this.colorChannels > 3) {\n this.outputWidthWorkBenchOpaquePixelsCount = this.generateFloat64Buffer(\n this.heightOriginal\n );\n }\n }\n};\n\nResize.prototype.initializeSecondPassBuffers = function (BILINEARAlgo) {\n // Initialize the internal height pass buffers:\n this.heightBuffer = this.generateUint8Buffer(this.finalResultSize);\n\n if (!BILINEARAlgo) {\n this.outputHeightWorkBench = this.generateFloatBuffer(\n this.targetWidthMultipliedByChannels\n );\n\n if (this.colorChannels > 3) {\n this.outputHeightWorkBenchOpaquePixelsCount = this.generateFloat64Buffer(\n this.targetWidth\n );\n }\n }\n};\n\nResize.prototype.generateFloatBuffer = function (bufferLength) {\n // Generate a float32 typed array buffer:\n try {\n return new Float32Array(bufferLength);\n } catch (error) {\n return [];\n }\n};\n\nResize.prototype.generateFloat64Buffer = function (bufferLength) {\n // Generate a float64 typed array buffer:\n try {\n return new Float64Array(bufferLength);\n } catch (error) {\n return [];\n }\n};\n\nResize.prototype.generateUint8Buffer = function (bufferLength) {\n // Generate a uint8 typed array buffer:\n try {\n return new Uint8Array(bufferLength);\n } catch (error) {\n return [];\n }\n};\n\nmodule.exports = Resize;\n"],"file":"resize.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-resize/dist/modules/resize2.js b/WechatBot/node_modules/@jimp/plugin-resize/dist/modules/resize2.js
deleted file mode 100755
index a1b6abdc9..000000000
--- a/WechatBot/node_modules/@jimp/plugin-resize/dist/modules/resize2.js
+++ /dev/null
@@ -1,266 +0,0 @@
-"use strict";
-
-/**
- * Copyright (c) 2015 Guyon Roche
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-module.exports = {
- nearestNeighbor: function nearestNeighbor(src, dst) {
- var wSrc = src.width;
- var hSrc = src.height;
- var wDst = dst.width;
- var hDst = dst.height;
- var bufSrc = src.data;
- var bufDst = dst.data;
-
- for (var i = 0; i < hDst; i++) {
- for (var j = 0; j < wDst; j++) {
- var posDst = (i * wDst + j) * 4;
- var iSrc = Math.floor(i * hSrc / hDst);
- var jSrc = Math.floor(j * wSrc / wDst);
- var posSrc = (iSrc * wSrc + jSrc) * 4;
- bufDst[posDst++] = bufSrc[posSrc++];
- bufDst[posDst++] = bufSrc[posSrc++];
- bufDst[posDst++] = bufSrc[posSrc++];
- bufDst[posDst++] = bufSrc[posSrc++];
- }
- }
- },
- bilinearInterpolation: function bilinearInterpolation(src, dst) {
- var wSrc = src.width;
- var hSrc = src.height;
- var wDst = dst.width;
- var hDst = dst.height;
- var bufSrc = src.data;
- var bufDst = dst.data;
-
- var interpolate = function interpolate(k, kMin, vMin, kMax, vMax) {
- // special case - k is integer
- if (kMin === kMax) {
- return vMin;
- }
-
- return Math.round((k - kMin) * vMax + (kMax - k) * vMin);
- };
-
- var assign = function assign(pos, offset, x, xMin, xMax, y, yMin, yMax) {
- var posMin = (yMin * wSrc + xMin) * 4 + offset;
- var posMax = (yMin * wSrc + xMax) * 4 + offset;
- var vMin = interpolate(x, xMin, bufSrc[posMin], xMax, bufSrc[posMax]); // special case, y is integer
-
- if (yMax === yMin) {
- bufDst[pos + offset] = vMin;
- } else {
- posMin = (yMax * wSrc + xMin) * 4 + offset;
- posMax = (yMax * wSrc + xMax) * 4 + offset;
- var vMax = interpolate(x, xMin, bufSrc[posMin], xMax, bufSrc[posMax]);
- bufDst[pos + offset] = interpolate(y, yMin, vMin, yMax, vMax);
- }
- };
-
- for (var i = 0; i < hDst; i++) {
- for (var j = 0; j < wDst; j++) {
- var posDst = (i * wDst + j) * 4; // x & y in src coordinates
-
- var x = j * wSrc / wDst;
- var xMin = Math.floor(x);
- var xMax = Math.min(Math.ceil(x), wSrc - 1);
- var y = i * hSrc / hDst;
- var yMin = Math.floor(y);
- var yMax = Math.min(Math.ceil(y), hSrc - 1);
- assign(posDst, 0, x, xMin, xMax, y, yMin, yMax);
- assign(posDst, 1, x, xMin, xMax, y, yMin, yMax);
- assign(posDst, 2, x, xMin, xMax, y, yMin, yMax);
- assign(posDst, 3, x, xMin, xMax, y, yMin, yMax);
- }
- }
- },
- _interpolate2D: function _interpolate2D(src, dst, options, interpolate) {
- var bufSrc = src.data;
- var bufDst = dst.data;
- var wSrc = src.width;
- var hSrc = src.height;
- var wDst = dst.width;
- var hDst = dst.height; // when dst smaller than src/2, interpolate first to a multiple between 0.5 and 1.0 src, then sum squares
-
- var wM = Math.max(1, Math.floor(wSrc / wDst));
- var wDst2 = wDst * wM;
- var hM = Math.max(1, Math.floor(hSrc / hDst));
- var hDst2 = hDst * hM; // ===========================================================
- // Pass 1 - interpolate rows
- // buf1 has width of dst2 and height of src
-
- var buf1 = Buffer.alloc(wDst2 * hSrc * 4);
-
- for (var i = 0; i < hSrc; i++) {
- for (var j = 0; j < wDst2; j++) {
- // i in src coords, j in dst coords
- // calculate x in src coords
- // this interpolation requires 4 sample points and the two inner ones must be real
- // the outer points can be fudged for the edges.
- // therefore (wSrc-1)/wDst2
- var x = j * (wSrc - 1) / wDst2;
- var xPos = Math.floor(x);
- var t = x - xPos;
- var srcPos = (i * wSrc + xPos) * 4;
- var buf1Pos = (i * wDst2 + j) * 4;
-
- for (var k = 0; k < 4; k++) {
- var kPos = srcPos + k;
- var x0 = xPos > 0 ? bufSrc[kPos - 4] : 2 * bufSrc[kPos] - bufSrc[kPos + 4];
- var x1 = bufSrc[kPos];
- var x2 = bufSrc[kPos + 4];
- var x3 = xPos < wSrc - 2 ? bufSrc[kPos + 8] : 2 * bufSrc[kPos + 4] - bufSrc[kPos];
- buf1[buf1Pos + k] = interpolate(x0, x1, x2, x3, t);
- }
- }
- } // this._writeFile(wDst2, hSrc, buf1, "out/buf1.jpg");
- // ===========================================================
- // Pass 2 - interpolate columns
- // buf2 has width and height of dst2
-
-
- var buf2 = Buffer.alloc(wDst2 * hDst2 * 4);
-
- for (var _i = 0; _i < hDst2; _i++) {
- for (var _j = 0; _j < wDst2; _j++) {
- // i&j in dst2 coords
- // calculate y in buf1 coords
- // this interpolation requires 4 sample points and the two inner ones must be real
- // the outer points can be fudged for the edges.
- // therefore (hSrc-1)/hDst2
- var y = _i * (hSrc - 1) / hDst2;
- var yPos = Math.floor(y);
-
- var _t = y - yPos;
-
- var _buf1Pos = (yPos * wDst2 + _j) * 4;
-
- var buf2Pos = (_i * wDst2 + _j) * 4;
-
- for (var _k = 0; _k < 4; _k++) {
- var _kPos = _buf1Pos + _k;
-
- var y0 = yPos > 0 ? buf1[_kPos - wDst2 * 4] : 2 * buf1[_kPos] - buf1[_kPos + wDst2 * 4];
- var y1 = buf1[_kPos];
- var y2 = buf1[_kPos + wDst2 * 4];
- var y3 = yPos < hSrc - 2 ? buf1[_kPos + wDst2 * 8] : 2 * buf1[_kPos + wDst2 * 4] - buf1[_kPos];
- buf2[buf2Pos + _k] = interpolate(y0, y1, y2, y3, _t);
- }
- }
- } // this._writeFile(wDst2, hDst2, buf2, "out/buf2.jpg");
- // ===========================================================
- // Pass 3 - scale to dst
-
-
- var m = wM * hM;
-
- if (m > 1) {
- for (var _i2 = 0; _i2 < hDst; _i2++) {
- for (var _j2 = 0; _j2 < wDst; _j2++) {
- // i&j in dst bounded coords
- var r = 0;
- var g = 0;
- var b = 0;
- var a = 0;
- var realColors = 0;
-
- for (var _y = 0; _y < hM; _y++) {
- var _yPos = _i2 * hM + _y;
-
- for (var _x = 0; _x < wM; _x++) {
- var _xPos = _j2 * wM + _x;
-
- var xyPos = (_yPos * wDst2 + _xPos) * 4;
- var pixelAlpha = buf2[xyPos + 3];
-
- if (pixelAlpha) {
- r += buf2[xyPos];
- g += buf2[xyPos + 1];
- b += buf2[xyPos + 2];
- realColors++;
- }
-
- a += pixelAlpha;
- }
- }
-
- var pos = (_i2 * wDst + _j2) * 4;
- bufDst[pos] = realColors ? Math.round(r / realColors) : 0;
- bufDst[pos + 1] = realColors ? Math.round(g / realColors) : 0;
- bufDst[pos + 2] = realColors ? Math.round(b / realColors) : 0;
- bufDst[pos + 3] = Math.round(a / m);
- }
- }
- } else {
- // replace dst buffer with buf2
- dst.data = buf2;
- }
- },
- bicubicInterpolation: function bicubicInterpolation(src, dst, options) {
- var interpolateCubic = function interpolateCubic(x0, x1, x2, x3, t) {
- var a0 = x3 - x2 - x0 + x1;
- var a1 = x0 - x1 - a0;
- var a2 = x2 - x0;
- var a3 = x1;
- return Math.max(0, Math.min(255, a0 * (t * t * t) + a1 * (t * t) + a2 * t + a3));
- };
-
- return this._interpolate2D(src, dst, options, interpolateCubic);
- },
- hermiteInterpolation: function hermiteInterpolation(src, dst, options) {
- var interpolateHermite = function interpolateHermite(x0, x1, x2, x3, t) {
- var c0 = x1;
- var c1 = 0.5 * (x2 - x0);
- var c2 = x0 - 2.5 * x1 + 2 * x2 - 0.5 * x3;
- var c3 = 0.5 * (x3 - x0) + 1.5 * (x1 - x2);
- return Math.max(0, Math.min(255, Math.round(((c3 * t + c2) * t + c1) * t + c0)));
- };
-
- return this._interpolate2D(src, dst, options, interpolateHermite);
- },
- bezierInterpolation: function bezierInterpolation(src, dst, options) {
- // between 2 points y(n), y(n+1), use next points out, y(n-1), y(n+2)
- // to predict control points (a & b) to be placed at n+0.5
- // ya(n) = y(n) + (y(n+1)-y(n-1))/4
- // yb(n) = y(n+1) - (y(n+2)-y(n))/4
- // then use std bezier to interpolate [n,n+1)
- // y(n+t) = y(n)*(1-t)^3 + 3 * ya(n)*(1-t)^2*t + 3 * yb(n)*(1-t)*t^2 + y(n+1)*t^3
- // note the 3* factor for the two control points
- // for edge cases, can choose:
- // y(-1) = y(0) - 2*(y(1)-y(0))
- // y(w) = y(w-1) + 2*(y(w-1)-y(w-2))
- // but can go with y(-1) = y(0) and y(w) = y(w-1)
- var interpolateBezier = function interpolateBezier(x0, x1, x2, x3, t) {
- // x1, x2 are the knots, use x0 and x3 to calculate control points
- var cp1 = x1 + (x2 - x0) / 4;
- var cp2 = x2 - (x3 - x1) / 4;
- var nt = 1 - t;
- var c0 = x1 * nt * nt * nt;
- var c1 = 3 * cp1 * nt * nt * t;
- var c2 = 3 * cp2 * nt * t * t;
- var c3 = x2 * t * t * t;
- return Math.max(0, Math.min(255, Math.round(c0 + c1 + c2 + c3)));
- };
-
- return this._interpolate2D(src, dst, options, interpolateBezier);
- }
-};
-//# sourceMappingURL=resize2.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-resize/dist/modules/resize2.js.map b/WechatBot/node_modules/@jimp/plugin-resize/dist/modules/resize2.js.map
deleted file mode 100644
index 8183e69f3..000000000
--- a/WechatBot/node_modules/@jimp/plugin-resize/dist/modules/resize2.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../src/modules/resize2.js"],"names":["module","exports","nearestNeighbor","src","dst","wSrc","width","hSrc","height","wDst","hDst","bufSrc","data","bufDst","i","j","posDst","iSrc","Math","floor","jSrc","posSrc","bilinearInterpolation","interpolate","k","kMin","vMin","kMax","vMax","round","assign","pos","offset","x","xMin","xMax","y","yMin","yMax","posMin","posMax","min","ceil","_interpolate2D","options","wM","max","wDst2","hM","hDst2","buf1","Buffer","alloc","xPos","t","srcPos","buf1Pos","kPos","x0","x1","x2","x3","buf2","yPos","buf2Pos","y0","y1","y2","y3","m","r","g","b","a","realColors","xyPos","pixelAlpha","bicubicInterpolation","interpolateCubic","a0","a1","a2","a3","hermiteInterpolation","interpolateHermite","c0","c1","c2","c3","bezierInterpolation","interpolateBezier","cp1","cp2","nt"],"mappings":"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","sourcesContent":["/**\n * Copyright (c) 2015 Guyon Roche\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nmodule.exports = {\n nearestNeighbor(src, dst) {\n const wSrc = src.width;\n const hSrc = src.height;\n\n const wDst = dst.width;\n const hDst = dst.height;\n\n const bufSrc = src.data;\n const bufDst = dst.data;\n\n for (let i = 0; i < hDst; i++) {\n for (let j = 0; j < wDst; j++) {\n let posDst = (i * wDst + j) * 4;\n\n const iSrc = Math.floor((i * hSrc) / hDst);\n const jSrc = Math.floor((j * wSrc) / wDst);\n let posSrc = (iSrc * wSrc + jSrc) * 4;\n\n bufDst[posDst++] = bufSrc[posSrc++];\n bufDst[posDst++] = bufSrc[posSrc++];\n bufDst[posDst++] = bufSrc[posSrc++];\n bufDst[posDst++] = bufSrc[posSrc++];\n }\n }\n },\n\n bilinearInterpolation(src, dst) {\n const wSrc = src.width;\n const hSrc = src.height;\n\n const wDst = dst.width;\n const hDst = dst.height;\n\n const bufSrc = src.data;\n const bufDst = dst.data;\n\n const interpolate = function (k, kMin, vMin, kMax, vMax) {\n // special case - k is integer\n if (kMin === kMax) {\n return vMin;\n }\n\n return Math.round((k - kMin) * vMax + (kMax - k) * vMin);\n };\n\n const assign = function (pos, offset, x, xMin, xMax, y, yMin, yMax) {\n let posMin = (yMin * wSrc + xMin) * 4 + offset;\n let posMax = (yMin * wSrc + xMax) * 4 + offset;\n const vMin = interpolate(x, xMin, bufSrc[posMin], xMax, bufSrc[posMax]);\n\n // special case, y is integer\n if (yMax === yMin) {\n bufDst[pos + offset] = vMin;\n } else {\n posMin = (yMax * wSrc + xMin) * 4 + offset;\n posMax = (yMax * wSrc + xMax) * 4 + offset;\n const vMax = interpolate(x, xMin, bufSrc[posMin], xMax, bufSrc[posMax]);\n\n bufDst[pos + offset] = interpolate(y, yMin, vMin, yMax, vMax);\n }\n };\n\n for (let i = 0; i < hDst; i++) {\n for (let j = 0; j < wDst; j++) {\n const posDst = (i * wDst + j) * 4;\n // x & y in src coordinates\n const x = (j * wSrc) / wDst;\n const xMin = Math.floor(x);\n const xMax = Math.min(Math.ceil(x), wSrc - 1);\n\n const y = (i * hSrc) / hDst;\n const yMin = Math.floor(y);\n const yMax = Math.min(Math.ceil(y), hSrc - 1);\n\n assign(posDst, 0, x, xMin, xMax, y, yMin, yMax);\n assign(posDst, 1, x, xMin, xMax, y, yMin, yMax);\n assign(posDst, 2, x, xMin, xMax, y, yMin, yMax);\n assign(posDst, 3, x, xMin, xMax, y, yMin, yMax);\n }\n }\n },\n\n _interpolate2D(src, dst, options, interpolate) {\n const bufSrc = src.data;\n const bufDst = dst.data;\n\n const wSrc = src.width;\n const hSrc = src.height;\n\n const wDst = dst.width;\n const hDst = dst.height;\n\n // when dst smaller than src/2, interpolate first to a multiple between 0.5 and 1.0 src, then sum squares\n const wM = Math.max(1, Math.floor(wSrc / wDst));\n const wDst2 = wDst * wM;\n const hM = Math.max(1, Math.floor(hSrc / hDst));\n const hDst2 = hDst * hM;\n\n // ===========================================================\n // Pass 1 - interpolate rows\n // buf1 has width of dst2 and height of src\n const buf1 = Buffer.alloc(wDst2 * hSrc * 4);\n for (let i = 0; i < hSrc; i++) {\n for (let j = 0; j < wDst2; j++) {\n // i in src coords, j in dst coords\n\n // calculate x in src coords\n // this interpolation requires 4 sample points and the two inner ones must be real\n // the outer points can be fudged for the edges.\n // therefore (wSrc-1)/wDst2\n const x = (j * (wSrc - 1)) / wDst2;\n const xPos = Math.floor(x);\n const t = x - xPos;\n const srcPos = (i * wSrc + xPos) * 4;\n const buf1Pos = (i * wDst2 + j) * 4;\n\n for (let k = 0; k < 4; k++) {\n const kPos = srcPos + k;\n const x0 =\n xPos > 0 ? bufSrc[kPos - 4] : 2 * bufSrc[kPos] - bufSrc[kPos + 4];\n const x1 = bufSrc[kPos];\n const x2 = bufSrc[kPos + 4];\n const x3 =\n xPos < wSrc - 2\n ? bufSrc[kPos + 8]\n : 2 * bufSrc[kPos + 4] - bufSrc[kPos];\n buf1[buf1Pos + k] = interpolate(x0, x1, x2, x3, t);\n }\n }\n }\n // this._writeFile(wDst2, hSrc, buf1, \"out/buf1.jpg\");\n\n // ===========================================================\n // Pass 2 - interpolate columns\n // buf2 has width and height of dst2\n const buf2 = Buffer.alloc(wDst2 * hDst2 * 4);\n for (let i = 0; i < hDst2; i++) {\n for (let j = 0; j < wDst2; j++) {\n // i&j in dst2 coords\n\n // calculate y in buf1 coords\n // this interpolation requires 4 sample points and the two inner ones must be real\n // the outer points can be fudged for the edges.\n // therefore (hSrc-1)/hDst2\n const y = (i * (hSrc - 1)) / hDst2;\n const yPos = Math.floor(y);\n const t = y - yPos;\n const buf1Pos = (yPos * wDst2 + j) * 4;\n const buf2Pos = (i * wDst2 + j) * 4;\n for (let k = 0; k < 4; k++) {\n const kPos = buf1Pos + k;\n const y0 =\n yPos > 0\n ? buf1[kPos - wDst2 * 4]\n : 2 * buf1[kPos] - buf1[kPos + wDst2 * 4];\n const y1 = buf1[kPos];\n const y2 = buf1[kPos + wDst2 * 4];\n const y3 =\n yPos < hSrc - 2\n ? buf1[kPos + wDst2 * 8]\n : 2 * buf1[kPos + wDst2 * 4] - buf1[kPos];\n\n buf2[buf2Pos + k] = interpolate(y0, y1, y2, y3, t);\n }\n }\n }\n // this._writeFile(wDst2, hDst2, buf2, \"out/buf2.jpg\");\n\n // ===========================================================\n // Pass 3 - scale to dst\n const m = wM * hM;\n if (m > 1) {\n for (let i = 0; i < hDst; i++) {\n for (let j = 0; j < wDst; j++) {\n // i&j in dst bounded coords\n let r = 0;\n let g = 0;\n let b = 0;\n let a = 0;\n let realColors = 0;\n\n for (let y = 0; y < hM; y++) {\n const yPos = i * hM + y;\n\n for (let x = 0; x < wM; x++) {\n const xPos = j * wM + x;\n const xyPos = (yPos * wDst2 + xPos) * 4;\n const pixelAlpha = buf2[xyPos + 3];\n\n if (pixelAlpha) {\n r += buf2[xyPos];\n g += buf2[xyPos + 1];\n b += buf2[xyPos + 2];\n realColors++;\n }\n\n a += pixelAlpha;\n }\n }\n\n const pos = (i * wDst + j) * 4;\n bufDst[pos] = realColors ? Math.round(r / realColors) : 0;\n bufDst[pos + 1] = realColors ? Math.round(g / realColors) : 0;\n bufDst[pos + 2] = realColors ? Math.round(b / realColors) : 0;\n bufDst[pos + 3] = Math.round(a / m);\n }\n }\n } else {\n // replace dst buffer with buf2\n dst.data = buf2;\n }\n },\n\n bicubicInterpolation(src, dst, options) {\n const interpolateCubic = function (x0, x1, x2, x3, t) {\n const a0 = x3 - x2 - x0 + x1;\n const a1 = x0 - x1 - a0;\n const a2 = x2 - x0;\n const a3 = x1;\n return Math.max(\n 0,\n Math.min(255, a0 * (t * t * t) + a1 * (t * t) + a2 * t + a3)\n );\n };\n\n return this._interpolate2D(src, dst, options, interpolateCubic);\n },\n\n hermiteInterpolation(src, dst, options) {\n const interpolateHermite = function (x0, x1, x2, x3, t) {\n const c0 = x1;\n const c1 = 0.5 * (x2 - x0);\n const c2 = x0 - 2.5 * x1 + 2 * x2 - 0.5 * x3;\n const c3 = 0.5 * (x3 - x0) + 1.5 * (x1 - x2);\n return Math.max(\n 0,\n Math.min(255, Math.round(((c3 * t + c2) * t + c1) * t + c0))\n );\n };\n\n return this._interpolate2D(src, dst, options, interpolateHermite);\n },\n\n bezierInterpolation(src, dst, options) {\n // between 2 points y(n), y(n+1), use next points out, y(n-1), y(n+2)\n // to predict control points (a & b) to be placed at n+0.5\n // ya(n) = y(n) + (y(n+1)-y(n-1))/4\n // yb(n) = y(n+1) - (y(n+2)-y(n))/4\n // then use std bezier to interpolate [n,n+1)\n // y(n+t) = y(n)*(1-t)^3 + 3 * ya(n)*(1-t)^2*t + 3 * yb(n)*(1-t)*t^2 + y(n+1)*t^3\n // note the 3* factor for the two control points\n // for edge cases, can choose:\n // y(-1) = y(0) - 2*(y(1)-y(0))\n // y(w) = y(w-1) + 2*(y(w-1)-y(w-2))\n // but can go with y(-1) = y(0) and y(w) = y(w-1)\n const interpolateBezier = function (x0, x1, x2, x3, t) {\n // x1, x2 are the knots, use x0 and x3 to calculate control points\n const cp1 = x1 + (x2 - x0) / 4;\n const cp2 = x2 - (x3 - x1) / 4;\n const nt = 1 - t;\n const c0 = x1 * nt * nt * nt;\n const c1 = 3 * cp1 * nt * nt * t;\n const c2 = 3 * cp2 * nt * t * t;\n const c3 = x2 * t * t * t;\n return Math.max(0, Math.min(255, Math.round(c0 + c1 + c2 + c3)));\n };\n\n return this._interpolate2D(src, dst, options, interpolateBezier);\n },\n};\n"],"file":"resize2.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-resize/index.d.ts b/WechatBot/node_modules/@jimp/plugin-resize/index.d.ts
deleted file mode 100644
index 58b3cdcb4..000000000
--- a/WechatBot/node_modules/@jimp/plugin-resize/index.d.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { ImageCallback } from "@jimp/core";
-
-interface ResizeClass {
- resize(w: number, h: number, cb?: ImageCallback): this;
- resize(w: number, h: number, mode?: string, cb?: ImageCallback): this;
-}
-
-interface Resize {
- constants: {
- // resize methods
- RESIZE_NEAREST_NEIGHBOR: "nearestNeighbor";
- RESIZE_BILINEAR: "bilinearInterpolation";
- RESIZE_BICUBIC: "bicubicInterpolation";
- RESIZE_HERMITE: "hermiteInterpolation";
- RESIZE_BEZIER: "bezierInterpolation";
- };
-
- class: ResizeClass;
-}
-
-export default function (): Resize;
diff --git a/WechatBot/node_modules/@jimp/plugin-resize/package.json b/WechatBot/node_modules/@jimp/plugin-resize/package.json
deleted file mode 100644
index 550d992b5..000000000
--- a/WechatBot/node_modules/@jimp/plugin-resize/package.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "name": "@jimp/plugin-resize",
- "version": "0.16.13",
- "description": "Resize an image.",
- "main": "dist/index.js",
- "module": "es/index.js",
- "types": "index.d.ts",
- "scripts": {
- "test": "cross-env BABEL_ENV=test mocha --require @babel/register",
- "test:watch": "npm run test -- --reporter min --watch",
- "test:coverage": "nyc npm run test",
- "build": "npm run build:node:production && npm run build:module",
- "build:watch": "npm run build:node:debug -- -- --watch --verbose",
- "build:debug": "npm run build:node:debug",
- "build:module": "cross-env BABEL_ENV=module babel src -d es --source-maps --config-file ../../babel.config.js",
- "build:node": "babel src -d dist --source-maps --config-file ../../babel.config.js",
- "build:node:debug": "cross-env BABEL_ENV=development npm run build:node",
- "build:node:production": "cross-env BABEL_ENV=production npm run build:node"
- },
- "author": "",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- },
- "devDependencies": {
- "@jimp/custom": "^0.16.13",
- "@jimp/test-utils": "^0.16.13"
- },
- "publishConfig": {
- "access": "public"
- },
- "gitHead": "9eec86086634329a072901dca3a800b850548572"
-}
diff --git a/WechatBot/node_modules/@jimp/plugin-resize/src/index.js b/WechatBot/node_modules/@jimp/plugin-resize/src/index.js
deleted file mode 100755
index 2c77df99a..000000000
--- a/WechatBot/node_modules/@jimp/plugin-resize/src/index.js
+++ /dev/null
@@ -1,87 +0,0 @@
-import { throwError, isNodePattern } from "@jimp/utils";
-
-import Resize from "./modules/resize";
-import Resize2 from "./modules/resize2";
-
-export default () => ({
- constants: {
- RESIZE_NEAREST_NEIGHBOR: "nearestNeighbor",
- RESIZE_BILINEAR: "bilinearInterpolation",
- RESIZE_BICUBIC: "bicubicInterpolation",
- RESIZE_HERMITE: "hermiteInterpolation",
- RESIZE_BEZIER: "bezierInterpolation",
- },
-
- class: {
- /**
- * Resizes the image to a set width and height using a 2-pass bilinear algorithm
- * @param {number} w the width to resize the image to (or Jimp.AUTO)
- * @param {number} h the height to resize the image to (or Jimp.AUTO)
- * @param {string} mode (optional) a scaling method (e.g. Jimp.RESIZE_BEZIER)
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
- resize(w, h, mode, cb) {
- if (typeof w !== "number" || typeof h !== "number") {
- return throwError.call(this, "w and h must be numbers", cb);
- }
-
- if (typeof mode === "function" && typeof cb === "undefined") {
- cb = mode;
- mode = null;
- }
-
- if (w === this.constructor.AUTO && h === this.constructor.AUTO) {
- return throwError.call(this, "w and h cannot both be set to auto", cb);
- }
-
- if (w === this.constructor.AUTO) {
- w = this.bitmap.width * (h / this.bitmap.height);
- }
-
- if (h === this.constructor.AUTO) {
- h = this.bitmap.height * (w / this.bitmap.width);
- }
-
- if (w < 0 || h < 0) {
- return throwError.call(this, "w and h must be positive numbers", cb);
- }
-
- // round inputs
- w = Math.round(w);
- h = Math.round(h);
-
- if (typeof Resize2[mode] === "function") {
- const dst = {
- data: Buffer.alloc(w * h * 4),
- width: w,
- height: h,
- };
- Resize2[mode](this.bitmap, dst);
- this.bitmap = dst;
- } else {
- const image = this;
- const resize = new Resize(
- this.bitmap.width,
- this.bitmap.height,
- w,
- h,
- true,
- true,
- (buffer) => {
- image.bitmap.data = Buffer.from(buffer);
- image.bitmap.width = w;
- image.bitmap.height = h;
- }
- );
- resize.resize(this.bitmap.data);
- }
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
- },
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-resize/src/modules/resize.js b/WechatBot/node_modules/@jimp/plugin-resize/src/modules/resize.js
deleted file mode 100755
index d4c861475..000000000
--- a/WechatBot/node_modules/@jimp/plugin-resize/src/modules/resize.js
+++ /dev/null
@@ -1,548 +0,0 @@
-// JavaScript Image Resizer (c) 2012 - Grant Galitz
-// Released to public domain 29 July 2013: https://github.com/grantgalitz/JS-Image-Resizer/issues/4
-
-function Resize(
- widthOriginal,
- heightOriginal,
- targetWidth,
- targetHeight,
- blendAlpha,
- interpolationPass,
- resizeCallback
-) {
- this.widthOriginal = Math.abs(Math.floor(widthOriginal) || 0);
- this.heightOriginal = Math.abs(Math.floor(heightOriginal) || 0);
- this.targetWidth = Math.abs(Math.floor(targetWidth) || 0);
- this.targetHeight = Math.abs(Math.floor(targetHeight) || 0);
- this.colorChannels = blendAlpha ? 4 : 3;
- this.interpolationPass = Boolean(interpolationPass);
- this.resizeCallback =
- typeof resizeCallback === "function" ? resizeCallback : function () {};
-
- this.targetWidthMultipliedByChannels = this.targetWidth * this.colorChannels;
- this.originalWidthMultipliedByChannels =
- this.widthOriginal * this.colorChannels;
- this.originalHeightMultipliedByChannels =
- this.heightOriginal * this.colorChannels;
- this.widthPassResultSize =
- this.targetWidthMultipliedByChannels * this.heightOriginal;
- this.finalResultSize =
- this.targetWidthMultipliedByChannels * this.targetHeight;
- this.initialize();
-}
-
-Resize.prototype.initialize = function () {
- // Perform some checks:
- if (
- this.widthOriginal > 0 &&
- this.heightOriginal > 0 &&
- this.targetWidth > 0 &&
- this.targetHeight > 0
- ) {
- this.configurePasses();
- } else {
- throw new Error("Invalid settings specified for the resizer.");
- }
-};
-
-Resize.prototype.configurePasses = function () {
- if (this.widthOriginal === this.targetWidth) {
- // Bypass the width resizer pass:
- this.resizeWidth = this.bypassResizer;
- } else {
- // Setup the width resizer pass:
- this.ratioWeightWidthPass = this.widthOriginal / this.targetWidth;
- if (this.ratioWeightWidthPass < 1 && this.interpolationPass) {
- this.initializeFirstPassBuffers(true);
- this.resizeWidth =
- this.colorChannels === 4
- ? this.resizeWidthInterpolatedRGBA
- : this.resizeWidthInterpolatedRGB;
- } else {
- this.initializeFirstPassBuffers(false);
- this.resizeWidth =
- this.colorChannels === 4 ? this.resizeWidthRGBA : this.resizeWidthRGB;
- }
- }
-
- if (this.heightOriginal === this.targetHeight) {
- // Bypass the height resizer pass:
- this.resizeHeight = this.bypassResizer;
- } else {
- // Setup the height resizer pass:
- this.ratioWeightHeightPass = this.heightOriginal / this.targetHeight;
- if (this.ratioWeightHeightPass < 1 && this.interpolationPass) {
- this.initializeSecondPassBuffers(true);
- this.resizeHeight = this.resizeHeightInterpolated;
- } else {
- this.initializeSecondPassBuffers(false);
- this.resizeHeight =
- this.colorChannels === 4 ? this.resizeHeightRGBA : this.resizeHeightRGB;
- }
- }
-};
-
-Resize.prototype._resizeWidthInterpolatedRGBChannels = function (
- buffer,
- fourthChannel
-) {
- const channelsNum = fourthChannel ? 4 : 3;
- const ratioWeight = this.ratioWeightWidthPass;
- const outputBuffer = this.widthBuffer;
-
- let weight = 0;
- let finalOffset = 0;
- let pixelOffset = 0;
- let firstWeight = 0;
- let secondWeight = 0;
- let targetPosition;
-
- // Handle for only one interpolation input being valid for start calculation:
- for (
- targetPosition = 0;
- weight < 1 / 3;
- targetPosition += channelsNum, weight += ratioWeight
- ) {
- for (
- finalOffset = targetPosition, pixelOffset = 0;
- finalOffset < this.widthPassResultSize;
- pixelOffset += this.originalWidthMultipliedByChannels,
- finalOffset += this.targetWidthMultipliedByChannels
- ) {
- outputBuffer[finalOffset] = buffer[pixelOffset];
- outputBuffer[finalOffset + 1] = buffer[pixelOffset + 1];
- outputBuffer[finalOffset + 2] = buffer[pixelOffset + 2];
- if (fourthChannel)
- outputBuffer[finalOffset + 3] = buffer[pixelOffset + 3];
- }
- }
-
- // Adjust for overshoot of the last pass's counter:
- weight -= 1 / 3;
- let interpolationWidthSourceReadStop;
-
- for (
- interpolationWidthSourceReadStop = this.widthOriginal - 1;
- weight < interpolationWidthSourceReadStop;
- targetPosition += channelsNum, weight += ratioWeight
- ) {
- // Calculate weightings:
- secondWeight = weight % 1;
- firstWeight = 1 - secondWeight;
- // Interpolate:
- for (
- finalOffset = targetPosition,
- pixelOffset = Math.floor(weight) * channelsNum;
- finalOffset < this.widthPassResultSize;
- pixelOffset += this.originalWidthMultipliedByChannels,
- finalOffset += this.targetWidthMultipliedByChannels
- ) {
- outputBuffer[finalOffset + 0] =
- buffer[pixelOffset + 0] * firstWeight +
- buffer[pixelOffset + channelsNum + 0] * secondWeight;
- outputBuffer[finalOffset + 1] =
- buffer[pixelOffset + 1] * firstWeight +
- buffer[pixelOffset + channelsNum + 1] * secondWeight;
- outputBuffer[finalOffset + 2] =
- buffer[pixelOffset + 2] * firstWeight +
- buffer[pixelOffset + channelsNum + 2] * secondWeight;
- if (fourthChannel)
- outputBuffer[finalOffset + 3] =
- buffer[pixelOffset + 3] * firstWeight +
- buffer[pixelOffset + channelsNum + 3] * secondWeight;
- }
- }
-
- // Handle for only one interpolation input being valid for end calculation:
- for (
- interpolationWidthSourceReadStop =
- this.originalWidthMultipliedByChannels - channelsNum;
- targetPosition < this.targetWidthMultipliedByChannels;
- targetPosition += channelsNum
- ) {
- for (
- finalOffset = targetPosition,
- pixelOffset = interpolationWidthSourceReadStop;
- finalOffset < this.widthPassResultSize;
- pixelOffset += this.originalWidthMultipliedByChannels,
- finalOffset += this.targetWidthMultipliedByChannels
- ) {
- outputBuffer[finalOffset] = buffer[pixelOffset];
- outputBuffer[finalOffset + 1] = buffer[pixelOffset + 1];
- outputBuffer[finalOffset + 2] = buffer[pixelOffset + 2];
- if (fourthChannel)
- outputBuffer[finalOffset + 3] = buffer[pixelOffset + 3];
- }
- }
-
- return outputBuffer;
-};
-
-Resize.prototype._resizeWidthRGBChannels = function (buffer, fourthChannel) {
- const channelsNum = fourthChannel ? 4 : 3;
- const ratioWeight = this.ratioWeightWidthPass;
- const ratioWeightDivisor = 1 / ratioWeight;
- const nextLineOffsetOriginalWidth =
- this.originalWidthMultipliedByChannels - channelsNum + 1;
- const nextLineOffsetTargetWidth =
- this.targetWidthMultipliedByChannels - channelsNum + 1;
- const output = this.outputWidthWorkBench;
- const outputBuffer = this.widthBuffer;
- const trustworthyColorsCount = this.outputWidthWorkBenchOpaquePixelsCount;
-
- let weight = 0;
- let amountToNext = 0;
- let actualPosition = 0;
- let currentPosition = 0;
- let line = 0;
- let pixelOffset = 0;
- let outputOffset = 0;
- let multiplier = 1;
- let r = 0;
- let g = 0;
- let b = 0;
- let a = 0;
-
- do {
- for (line = 0; line < this.originalHeightMultipliedByChannels; ) {
- output[line++] = 0;
- output[line++] = 0;
- output[line++] = 0;
- if (fourthChannel) {
- output[line++] = 0;
- trustworthyColorsCount[line / channelsNum - 1] = 0;
- }
- }
-
- weight = ratioWeight;
-
- do {
- amountToNext = 1 + actualPosition - currentPosition;
- multiplier = Math.min(weight, amountToNext);
- for (
- line = 0, pixelOffset = actualPosition;
- line < this.originalHeightMultipliedByChannels;
- pixelOffset += nextLineOffsetOriginalWidth
- ) {
- r = buffer[pixelOffset];
- g = buffer[++pixelOffset];
- b = buffer[++pixelOffset];
- a = fourthChannel ? buffer[++pixelOffset] : 255;
- // Ignore RGB values if pixel is completely transparent
- output[line++] += (a ? r : 0) * multiplier;
- output[line++] += (a ? g : 0) * multiplier;
- output[line++] += (a ? b : 0) * multiplier;
- if (fourthChannel) {
- output[line++] += a * multiplier;
- trustworthyColorsCount[line / channelsNum - 1] += a ? multiplier : 0;
- }
- }
-
- if (weight >= amountToNext) {
- actualPosition += channelsNum;
- currentPosition = actualPosition;
- weight -= amountToNext;
- } else {
- currentPosition += weight;
- break;
- }
- } while (
- weight > 0 &&
- actualPosition < this.originalWidthMultipliedByChannels
- );
-
- for (
- line = 0, pixelOffset = outputOffset;
- line < this.originalHeightMultipliedByChannels;
- pixelOffset += nextLineOffsetTargetWidth
- ) {
- weight = fourthChannel ? trustworthyColorsCount[line / channelsNum] : 1;
- multiplier = fourthChannel
- ? weight
- ? 1 / weight
- : 0
- : ratioWeightDivisor;
- outputBuffer[pixelOffset] = output[line++] * multiplier;
- outputBuffer[++pixelOffset] = output[line++] * multiplier;
- outputBuffer[++pixelOffset] = output[line++] * multiplier;
- if (fourthChannel)
- outputBuffer[++pixelOffset] = output[line++] * ratioWeightDivisor;
- }
-
- outputOffset += channelsNum;
- } while (outputOffset < this.targetWidthMultipliedByChannels);
-
- return outputBuffer;
-};
-
-Resize.prototype._resizeHeightRGBChannels = function (buffer, fourthChannel) {
- const ratioWeight = this.ratioWeightHeightPass;
- const ratioWeightDivisor = 1 / ratioWeight;
- const output = this.outputHeightWorkBench;
- const outputBuffer = this.heightBuffer;
- const trustworthyColorsCount = this.outputHeightWorkBenchOpaquePixelsCount;
-
- let weight = 0;
- let amountToNext = 0;
- let actualPosition = 0;
- let currentPosition = 0;
- let pixelOffset = 0;
- let outputOffset = 0;
- let caret = 0;
- let multiplier = 1;
- let r = 0;
- let g = 0;
- let b = 0;
- let a = 0;
-
- do {
- for (
- pixelOffset = 0;
- pixelOffset < this.targetWidthMultipliedByChannels;
-
- ) {
- output[pixelOffset++] = 0;
- output[pixelOffset++] = 0;
- output[pixelOffset++] = 0;
-
- if (fourthChannel) {
- output[pixelOffset++] = 0;
- trustworthyColorsCount[pixelOffset / 4 - 1] = 0;
- }
- }
-
- weight = ratioWeight;
-
- do {
- amountToNext = 1 + actualPosition - currentPosition;
- multiplier = Math.min(weight, amountToNext);
- caret = actualPosition;
-
- for (
- pixelOffset = 0;
- pixelOffset < this.targetWidthMultipliedByChannels;
-
- ) {
- r = buffer[caret++];
- g = buffer[caret++];
- b = buffer[caret++];
- a = fourthChannel ? buffer[caret++] : 255;
- // Ignore RGB values if pixel is completely transparent
- output[pixelOffset++] += (a ? r : 0) * multiplier;
- output[pixelOffset++] += (a ? g : 0) * multiplier;
- output[pixelOffset++] += (a ? b : 0) * multiplier;
-
- if (fourthChannel) {
- output[pixelOffset++] += a * multiplier;
- trustworthyColorsCount[pixelOffset / 4 - 1] += a ? multiplier : 0;
- }
- }
-
- if (weight >= amountToNext) {
- actualPosition = caret;
- currentPosition = actualPosition;
- weight -= amountToNext;
- } else {
- currentPosition += weight;
- break;
- }
- } while (weight > 0 && actualPosition < this.widthPassResultSize);
-
- for (
- pixelOffset = 0;
- pixelOffset < this.targetWidthMultipliedByChannels;
-
- ) {
- weight = fourthChannel ? trustworthyColorsCount[pixelOffset / 4] : 1;
- multiplier = fourthChannel
- ? weight
- ? 1 / weight
- : 0
- : ratioWeightDivisor;
- outputBuffer[outputOffset++] = Math.round(
- output[pixelOffset++] * multiplier
- );
- outputBuffer[outputOffset++] = Math.round(
- output[pixelOffset++] * multiplier
- );
- outputBuffer[outputOffset++] = Math.round(
- output[pixelOffset++] * multiplier
- );
-
- if (fourthChannel) {
- outputBuffer[outputOffset++] = Math.round(
- output[pixelOffset++] * ratioWeightDivisor
- );
- }
- }
- } while (outputOffset < this.finalResultSize);
-
- return outputBuffer;
-};
-
-Resize.prototype.resizeWidthInterpolatedRGB = function (buffer) {
- return this._resizeWidthInterpolatedRGBChannels(buffer, false);
-};
-
-Resize.prototype.resizeWidthInterpolatedRGBA = function (buffer) {
- return this._resizeWidthInterpolatedRGBChannels(buffer, true);
-};
-
-Resize.prototype.resizeWidthRGB = function (buffer) {
- return this._resizeWidthRGBChannels(buffer, false);
-};
-
-Resize.prototype.resizeWidthRGBA = function (buffer) {
- return this._resizeWidthRGBChannels(buffer, true);
-};
-
-Resize.prototype.resizeHeightInterpolated = function (buffer) {
- const ratioWeight = this.ratioWeightHeightPass;
- const outputBuffer = this.heightBuffer;
-
- let weight = 0;
- let finalOffset = 0;
- let pixelOffset = 0;
- let pixelOffsetAccumulated = 0;
- let pixelOffsetAccumulated2 = 0;
- let firstWeight = 0;
- let secondWeight = 0;
- let interpolationHeightSourceReadStop;
-
- // Handle for only one interpolation input being valid for start calculation:
- for (; weight < 1 / 3; weight += ratioWeight) {
- for (
- pixelOffset = 0;
- pixelOffset < this.targetWidthMultipliedByChannels;
-
- ) {
- outputBuffer[finalOffset++] = Math.round(buffer[pixelOffset++]);
- }
- }
-
- // Adjust for overshoot of the last pass's counter:
- weight -= 1 / 3;
-
- for (
- interpolationHeightSourceReadStop = this.heightOriginal - 1;
- weight < interpolationHeightSourceReadStop;
- weight += ratioWeight
- ) {
- // Calculate weightings:
- secondWeight = weight % 1;
- firstWeight = 1 - secondWeight;
- // Interpolate:
- pixelOffsetAccumulated =
- Math.floor(weight) * this.targetWidthMultipliedByChannels;
- pixelOffsetAccumulated2 =
- pixelOffsetAccumulated + this.targetWidthMultipliedByChannels;
- for (
- pixelOffset = 0;
- pixelOffset < this.targetWidthMultipliedByChannels;
- ++pixelOffset
- ) {
- outputBuffer[finalOffset++] = Math.round(
- buffer[pixelOffsetAccumulated++] * firstWeight +
- buffer[pixelOffsetAccumulated2++] * secondWeight
- );
- }
- }
-
- // Handle for only one interpolation input being valid for end calculation:
- while (finalOffset < this.finalResultSize) {
- for (
- pixelOffset = 0,
- pixelOffsetAccumulated =
- interpolationHeightSourceReadStop *
- this.targetWidthMultipliedByChannels;
- pixelOffset < this.targetWidthMultipliedByChannels;
- ++pixelOffset
- ) {
- outputBuffer[finalOffset++] = Math.round(
- buffer[pixelOffsetAccumulated++]
- );
- }
- }
-
- return outputBuffer;
-};
-
-Resize.prototype.resizeHeightRGB = function (buffer) {
- return this._resizeHeightRGBChannels(buffer, false);
-};
-
-Resize.prototype.resizeHeightRGBA = function (buffer) {
- return this._resizeHeightRGBChannels(buffer, true);
-};
-
-Resize.prototype.resize = function (buffer) {
- this.resizeCallback(this.resizeHeight(this.resizeWidth(buffer)));
-};
-
-Resize.prototype.bypassResizer = function (buffer) {
- // Just return the buffer passed:
- return buffer;
-};
-
-Resize.prototype.initializeFirstPassBuffers = function (BILINEARAlgo) {
- // Initialize the internal width pass buffers:
- this.widthBuffer = this.generateFloatBuffer(this.widthPassResultSize);
-
- if (!BILINEARAlgo) {
- this.outputWidthWorkBench = this.generateFloatBuffer(
- this.originalHeightMultipliedByChannels
- );
-
- if (this.colorChannels > 3) {
- this.outputWidthWorkBenchOpaquePixelsCount = this.generateFloat64Buffer(
- this.heightOriginal
- );
- }
- }
-};
-
-Resize.prototype.initializeSecondPassBuffers = function (BILINEARAlgo) {
- // Initialize the internal height pass buffers:
- this.heightBuffer = this.generateUint8Buffer(this.finalResultSize);
-
- if (!BILINEARAlgo) {
- this.outputHeightWorkBench = this.generateFloatBuffer(
- this.targetWidthMultipliedByChannels
- );
-
- if (this.colorChannels > 3) {
- this.outputHeightWorkBenchOpaquePixelsCount = this.generateFloat64Buffer(
- this.targetWidth
- );
- }
- }
-};
-
-Resize.prototype.generateFloatBuffer = function (bufferLength) {
- // Generate a float32 typed array buffer:
- try {
- return new Float32Array(bufferLength);
- } catch (error) {
- return [];
- }
-};
-
-Resize.prototype.generateFloat64Buffer = function (bufferLength) {
- // Generate a float64 typed array buffer:
- try {
- return new Float64Array(bufferLength);
- } catch (error) {
- return [];
- }
-};
-
-Resize.prototype.generateUint8Buffer = function (bufferLength) {
- // Generate a uint8 typed array buffer:
- try {
- return new Uint8Array(bufferLength);
- } catch (error) {
- return [];
- }
-};
-
-module.exports = Resize;
diff --git a/WechatBot/node_modules/@jimp/plugin-resize/src/modules/resize2.js b/WechatBot/node_modules/@jimp/plugin-resize/src/modules/resize2.js
deleted file mode 100755
index 0b74dc8f1..000000000
--- a/WechatBot/node_modules/@jimp/plugin-resize/src/modules/resize2.js
+++ /dev/null
@@ -1,293 +0,0 @@
-/**
- * Copyright (c) 2015 Guyon Roche
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-module.exports = {
- nearestNeighbor(src, dst) {
- const wSrc = src.width;
- const hSrc = src.height;
-
- const wDst = dst.width;
- const hDst = dst.height;
-
- const bufSrc = src.data;
- const bufDst = dst.data;
-
- for (let i = 0; i < hDst; i++) {
- for (let j = 0; j < wDst; j++) {
- let posDst = (i * wDst + j) * 4;
-
- const iSrc = Math.floor((i * hSrc) / hDst);
- const jSrc = Math.floor((j * wSrc) / wDst);
- let posSrc = (iSrc * wSrc + jSrc) * 4;
-
- bufDst[posDst++] = bufSrc[posSrc++];
- bufDst[posDst++] = bufSrc[posSrc++];
- bufDst[posDst++] = bufSrc[posSrc++];
- bufDst[posDst++] = bufSrc[posSrc++];
- }
- }
- },
-
- bilinearInterpolation(src, dst) {
- const wSrc = src.width;
- const hSrc = src.height;
-
- const wDst = dst.width;
- const hDst = dst.height;
-
- const bufSrc = src.data;
- const bufDst = dst.data;
-
- const interpolate = function (k, kMin, vMin, kMax, vMax) {
- // special case - k is integer
- if (kMin === kMax) {
- return vMin;
- }
-
- return Math.round((k - kMin) * vMax + (kMax - k) * vMin);
- };
-
- const assign = function (pos, offset, x, xMin, xMax, y, yMin, yMax) {
- let posMin = (yMin * wSrc + xMin) * 4 + offset;
- let posMax = (yMin * wSrc + xMax) * 4 + offset;
- const vMin = interpolate(x, xMin, bufSrc[posMin], xMax, bufSrc[posMax]);
-
- // special case, y is integer
- if (yMax === yMin) {
- bufDst[pos + offset] = vMin;
- } else {
- posMin = (yMax * wSrc + xMin) * 4 + offset;
- posMax = (yMax * wSrc + xMax) * 4 + offset;
- const vMax = interpolate(x, xMin, bufSrc[posMin], xMax, bufSrc[posMax]);
-
- bufDst[pos + offset] = interpolate(y, yMin, vMin, yMax, vMax);
- }
- };
-
- for (let i = 0; i < hDst; i++) {
- for (let j = 0; j < wDst; j++) {
- const posDst = (i * wDst + j) * 4;
- // x & y in src coordinates
- const x = (j * wSrc) / wDst;
- const xMin = Math.floor(x);
- const xMax = Math.min(Math.ceil(x), wSrc - 1);
-
- const y = (i * hSrc) / hDst;
- const yMin = Math.floor(y);
- const yMax = Math.min(Math.ceil(y), hSrc - 1);
-
- assign(posDst, 0, x, xMin, xMax, y, yMin, yMax);
- assign(posDst, 1, x, xMin, xMax, y, yMin, yMax);
- assign(posDst, 2, x, xMin, xMax, y, yMin, yMax);
- assign(posDst, 3, x, xMin, xMax, y, yMin, yMax);
- }
- }
- },
-
- _interpolate2D(src, dst, options, interpolate) {
- const bufSrc = src.data;
- const bufDst = dst.data;
-
- const wSrc = src.width;
- const hSrc = src.height;
-
- const wDst = dst.width;
- const hDst = dst.height;
-
- // when dst smaller than src/2, interpolate first to a multiple between 0.5 and 1.0 src, then sum squares
- const wM = Math.max(1, Math.floor(wSrc / wDst));
- const wDst2 = wDst * wM;
- const hM = Math.max(1, Math.floor(hSrc / hDst));
- const hDst2 = hDst * hM;
-
- // ===========================================================
- // Pass 1 - interpolate rows
- // buf1 has width of dst2 and height of src
- const buf1 = Buffer.alloc(wDst2 * hSrc * 4);
- for (let i = 0; i < hSrc; i++) {
- for (let j = 0; j < wDst2; j++) {
- // i in src coords, j in dst coords
-
- // calculate x in src coords
- // this interpolation requires 4 sample points and the two inner ones must be real
- // the outer points can be fudged for the edges.
- // therefore (wSrc-1)/wDst2
- const x = (j * (wSrc - 1)) / wDst2;
- const xPos = Math.floor(x);
- const t = x - xPos;
- const srcPos = (i * wSrc + xPos) * 4;
- const buf1Pos = (i * wDst2 + j) * 4;
-
- for (let k = 0; k < 4; k++) {
- const kPos = srcPos + k;
- const x0 =
- xPos > 0 ? bufSrc[kPos - 4] : 2 * bufSrc[kPos] - bufSrc[kPos + 4];
- const x1 = bufSrc[kPos];
- const x2 = bufSrc[kPos + 4];
- const x3 =
- xPos < wSrc - 2
- ? bufSrc[kPos + 8]
- : 2 * bufSrc[kPos + 4] - bufSrc[kPos];
- buf1[buf1Pos + k] = interpolate(x0, x1, x2, x3, t);
- }
- }
- }
- // this._writeFile(wDst2, hSrc, buf1, "out/buf1.jpg");
-
- // ===========================================================
- // Pass 2 - interpolate columns
- // buf2 has width and height of dst2
- const buf2 = Buffer.alloc(wDst2 * hDst2 * 4);
- for (let i = 0; i < hDst2; i++) {
- for (let j = 0; j < wDst2; j++) {
- // i&j in dst2 coords
-
- // calculate y in buf1 coords
- // this interpolation requires 4 sample points and the two inner ones must be real
- // the outer points can be fudged for the edges.
- // therefore (hSrc-1)/hDst2
- const y = (i * (hSrc - 1)) / hDst2;
- const yPos = Math.floor(y);
- const t = y - yPos;
- const buf1Pos = (yPos * wDst2 + j) * 4;
- const buf2Pos = (i * wDst2 + j) * 4;
- for (let k = 0; k < 4; k++) {
- const kPos = buf1Pos + k;
- const y0 =
- yPos > 0
- ? buf1[kPos - wDst2 * 4]
- : 2 * buf1[kPos] - buf1[kPos + wDst2 * 4];
- const y1 = buf1[kPos];
- const y2 = buf1[kPos + wDst2 * 4];
- const y3 =
- yPos < hSrc - 2
- ? buf1[kPos + wDst2 * 8]
- : 2 * buf1[kPos + wDst2 * 4] - buf1[kPos];
-
- buf2[buf2Pos + k] = interpolate(y0, y1, y2, y3, t);
- }
- }
- }
- // this._writeFile(wDst2, hDst2, buf2, "out/buf2.jpg");
-
- // ===========================================================
- // Pass 3 - scale to dst
- const m = wM * hM;
- if (m > 1) {
- for (let i = 0; i < hDst; i++) {
- for (let j = 0; j < wDst; j++) {
- // i&j in dst bounded coords
- let r = 0;
- let g = 0;
- let b = 0;
- let a = 0;
- let realColors = 0;
-
- for (let y = 0; y < hM; y++) {
- const yPos = i * hM + y;
-
- for (let x = 0; x < wM; x++) {
- const xPos = j * wM + x;
- const xyPos = (yPos * wDst2 + xPos) * 4;
- const pixelAlpha = buf2[xyPos + 3];
-
- if (pixelAlpha) {
- r += buf2[xyPos];
- g += buf2[xyPos + 1];
- b += buf2[xyPos + 2];
- realColors++;
- }
-
- a += pixelAlpha;
- }
- }
-
- const pos = (i * wDst + j) * 4;
- bufDst[pos] = realColors ? Math.round(r / realColors) : 0;
- bufDst[pos + 1] = realColors ? Math.round(g / realColors) : 0;
- bufDst[pos + 2] = realColors ? Math.round(b / realColors) : 0;
- bufDst[pos + 3] = Math.round(a / m);
- }
- }
- } else {
- // replace dst buffer with buf2
- dst.data = buf2;
- }
- },
-
- bicubicInterpolation(src, dst, options) {
- const interpolateCubic = function (x0, x1, x2, x3, t) {
- const a0 = x3 - x2 - x0 + x1;
- const a1 = x0 - x1 - a0;
- const a2 = x2 - x0;
- const a3 = x1;
- return Math.max(
- 0,
- Math.min(255, a0 * (t * t * t) + a1 * (t * t) + a2 * t + a3)
- );
- };
-
- return this._interpolate2D(src, dst, options, interpolateCubic);
- },
-
- hermiteInterpolation(src, dst, options) {
- const interpolateHermite = function (x0, x1, x2, x3, t) {
- const c0 = x1;
- const c1 = 0.5 * (x2 - x0);
- const c2 = x0 - 2.5 * x1 + 2 * x2 - 0.5 * x3;
- const c3 = 0.5 * (x3 - x0) + 1.5 * (x1 - x2);
- return Math.max(
- 0,
- Math.min(255, Math.round(((c3 * t + c2) * t + c1) * t + c0))
- );
- };
-
- return this._interpolate2D(src, dst, options, interpolateHermite);
- },
-
- bezierInterpolation(src, dst, options) {
- // between 2 points y(n), y(n+1), use next points out, y(n-1), y(n+2)
- // to predict control points (a & b) to be placed at n+0.5
- // ya(n) = y(n) + (y(n+1)-y(n-1))/4
- // yb(n) = y(n+1) - (y(n+2)-y(n))/4
- // then use std bezier to interpolate [n,n+1)
- // y(n+t) = y(n)*(1-t)^3 + 3 * ya(n)*(1-t)^2*t + 3 * yb(n)*(1-t)*t^2 + y(n+1)*t^3
- // note the 3* factor for the two control points
- // for edge cases, can choose:
- // y(-1) = y(0) - 2*(y(1)-y(0))
- // y(w) = y(w-1) + 2*(y(w-1)-y(w-2))
- // but can go with y(-1) = y(0) and y(w) = y(w-1)
- const interpolateBezier = function (x0, x1, x2, x3, t) {
- // x1, x2 are the knots, use x0 and x3 to calculate control points
- const cp1 = x1 + (x2 - x0) / 4;
- const cp2 = x2 - (x3 - x1) / 4;
- const nt = 1 - t;
- const c0 = x1 * nt * nt * nt;
- const c1 = 3 * cp1 * nt * nt * t;
- const c2 = 3 * cp2 * nt * t * t;
- const c3 = x2 * t * t * t;
- return Math.max(0, Math.min(255, Math.round(c0 + c1 + c2 + c3)));
- };
-
- return this._interpolate2D(src, dst, options, interpolateBezier);
- },
-};
diff --git a/WechatBot/node_modules/@jimp/plugin-resize/test/resize.test.js b/WechatBot/node_modules/@jimp/plugin-resize/test/resize.test.js
deleted file mode 100755
index 7f759084b..000000000
--- a/WechatBot/node_modules/@jimp/plugin-resize/test/resize.test.js
+++ /dev/null
@@ -1,301 +0,0 @@
-import { Jimp, mkJGD, hashForEach } from "@jimp/test-utils";
-import configure from "@jimp/custom";
-
-import resize from "../src";
-
-const jimp = configure({ plugins: [resize] }, Jimp);
-
-describe("Resize images", () => {
- const testImages = [
- {
- title: "max contrast 8x8",
- src: jimp.read(
- mkJGD(
- "■■■■□□□□",
- "■■■■□□□□",
- "■■■■□□□□",
- "■■■■□□□□",
- "□□□□■■■■",
- "□□□□■■■■",
- "□□□□■■■■",
- "□□□□■■■■"
- )
- ),
- results: {
- "default 4x4": mkJGD("■■□□", "■■□□", "□□■■", "□□■■"),
- "NEAREST_NEIGHBOR 4x4": mkJGD("■■□□", "■■□□", "□□■■", "□□■■"),
- "BILINEAR 4x4": mkJGD("■■□□", "■■□□", "□□■■", "□□■■"),
- "BICUBIC 4x4": {
- width: 4,
- height: 4,
- data: [
- 0x000000ff, 0x000000ff, 0xbfbfbfff, 0xffffffff, 0x000000ff,
- 0x000000ff, 0xbfbfbfff, 0xffffffff, 0xbfbfbfff, 0xbfbfbfff,
- 0x5f5f5fff, 0x404040ff, 0xffffffff, 0xffffffff, 0x404040ff,
- 0x000000ff,
- ],
- },
- "HERMITE 4x4": {
- width: 4,
- height: 4,
- data: [
- 0x000000ff, 0x000000ff, 0xc0c0c0ff, 0xffffffff, 0x000000ff,
- 0x000000ff, 0xc0c0c0ff, 0xffffffff, 0xc0c0c0ff, 0xc0c0c0ff,
- 0x606060ff, 0x404040ff, 0xffffffff, 0xffffffff, 0x404040ff,
- 0x000000ff,
- ],
- },
- "BEZIER 4x4": {
- width: 4,
- height: 4,
- data: [
- 0x000000ff, 0x000000ff, 0xc0c0c0ff, 0xffffffff, 0x000000ff,
- 0x000000ff, 0xc0c0c0ff, 0xffffffff, 0xc0c0c0ff, 0xc0c0c0ff,
- 0x606060ff, 0x404040ff, 0xffffffff, 0xffffffff, 0x404040ff,
- 0x000000ff,
- ],
- },
- "default 5x2": mkJGD("■■▦□□", "□□▦■■"),
- "NEAREST_NEIGHBOR 5x2": mkJGD("■■■□□", "□□□■■"),
- "BILINEAR 5x2": mkJGD("■■3□□", "□□C■■"),
- "BICUBIC 5x2": {
- width: 5,
- height: 2,
- data: [
- 0x000000ff, 0x000000ff, 0x000000ff, 0xffffffff, 0xffffffff,
- 0xdfdfdfff, 0xdfdfdfff, 0xdfdfdfff, 0x202020ff, 0x202020ff,
- ],
- },
- "HERMITE 5x2": {
- width: 5,
- height: 2,
- data: [
- 0x000000ff, 0x000000ff, 0x000000ff, 0xffffffff, 0xffffffff,
- 0xdfdfdfff, 0xdfdfdfff, 0xdfdfdfff, 0x202020ff, 0x202020ff,
- ],
- },
- "BEZIER 5x2": {
- width: 5,
- height: 2,
- data: [
- 0x000000ff, 0x000000ff, 0x000000ff, 0xffffffff, 0xffffffff,
- 0xdfdfdfff, 0xdfdfdfff, 0xdfdfdfff, 0x202020ff, 0x202020ff,
- ],
- },
- },
- },
- /**********************************************************************/
- {
- title: "max contrast 12x12 with dots",
- src: jimp.read(
- mkJGD(
- "■■■■■■□□□□□□",
- "■■■■■■□□□□□□",
- "■■■□■■□□■□□□",
- "■■■■■■□□□□□□",
- "■■■■■■□□□□□□",
- "■■■■■■□□□□□□",
- "□□□□□□■■■■■■",
- "□□□□□□■■■■■■",
- "□□□□□□■■■■■■",
- "□□□■□□■■□■■■",
- "□□□□□□■■■■■■",
- "□□□□□□■■■■■■"
- )
- ),
- results: {
- "default 6x6": mkJGD(
- "■■■□□□",
- "■▩■□▥□",
- "■■■□□□",
- "□□□■■■",
- "□▥□■▩■",
- "□□□■■■"
- ),
- "NEAREST_NEIGHBOR 6x6": mkJGD(
- "■■■□□□",
- "■■■□■□",
- "■■■□□□",
- "□□□■■■",
- "□□□■■■",
- "□□□■■■"
- ),
- "BILINEAR 6x6": mkJGD(
- "■■■□□□",
- "■■■□■□",
- "■■■□□□",
- "□□□■■■",
- "□□□■■■",
- "□□□■■■"
- ),
- "BICUBIC 6x6": {
- width: 6,
- height: 6,
- data: [
- 0x000000ff, 0x000000ff, 0x000000ff, 0xbfbfbfff, 0xffffffff,
- 0xffffffff, 0x000000ff, 0x474747ff, 0x202020ff, 0xbfbfbfff,
- 0x979797ff, 0xffffffff, 0x000000ff, 0x000000ff, 0x000000ff,
- 0xbfbfbfff, 0xffffffff, 0xffffffff, 0xbfbfbfff, 0xbfbfbfff,
- 0xbfbfbfff, 0x5f5f5fff, 0x404040ff, 0x404040ff, 0xffffffff,
- 0xeeeeeeff, 0xf7f7f7ff, 0x404040ff, 0x181818ff, 0x000000ff,
- 0xffffffff, 0xc9c9c9ff, 0xe6e6e6ff, 0x404040ff, 0x4e4e4eff,
- 0x000000ff,
- ],
- },
- "HERMITE 6x6": {
- width: 6,
- height: 6,
- data: [
- 0x000000ff, 0x000000ff, 0x000000ff, 0xc0c0c0ff, 0xffffffff,
- 0xffffffff, 0x000000ff, 0x404040ff, 0x191919ff, 0xc0c0c0ff,
- 0xa6a6a6ff, 0xffffffff, 0x000000ff, 0x000000ff, 0x000000ff,
- 0xc0c0c0ff, 0xffffffff, 0xffffffff, 0xc0c0c0ff, 0xc0c0c0ff,
- 0xc0c0c0ff, 0x606060ff, 0x404040ff, 0x404040ff, 0xffffffff,
- 0xf3f3f3ff, 0xfafafaff, 0x404040ff, 0x111111ff, 0x000000ff,
- 0xffffffff, 0xcbcbcbff, 0xebebebff, 0x404040ff, 0x484848ff,
- 0x000000ff,
- ],
- },
- "BEZIER 6x6": {
- width: 6,
- height: 6,
- data: [
- 0x000000ff, 0x000000ff, 0x000000ff, 0xc0c0c0ff, 0xffffffff,
- 0xffffffff, 0x000000ff, 0x444444ff, 0x1d1d1dff, 0xc0c0c0ff,
- 0x9f9f9fff, 0xffffffff, 0x000000ff, 0x000000ff, 0x000000ff,
- 0xc0c0c0ff, 0xffffffff, 0xffffffff, 0xc0c0c0ff, 0xc0c0c0ff,
- 0xc0c0c0ff, 0x606060ff, 0x404040ff, 0x404040ff, 0xffffffff,
- 0xf0f0f0ff, 0xf9f9f9ff, 0x404040ff, 0x151515ff, 0x000000ff,
- 0xffffffff, 0xcacacaff, 0xe9e9e9ff, 0x404040ff, 0x4b4b4bff,
- 0x000000ff,
- ],
- },
- },
- },
- /**********************************************************************/
- {
- title: "mutch contrast 4x4",
- src: jimp.read(mkJGD("▩▩▥▥", "▩▩▥▥", "▥▥▩▩", "▥▥▩▩")),
- results: {
- "default 6x6": {
- width: 6,
- height: 6,
- data: [
- 0x404040ff, 0x404040ff, 0x404040ff, 0x959595ff, 0xbfbfbfff,
- 0xbfbfbfff, 0x404040ff, 0x404040ff, 0x404040ff, 0x959595ff,
- 0xbfbfbfff, 0xbfbfbfff, 0x404040ff, 0x404040ff, 0x404040ff,
- 0x959595ff, 0xbfbfbfff, 0xbfbfbfff, 0x959595ff, 0x959595ff,
- 0x959595ff, 0x787878ff, 0x6a6a6aff, 0x6a6a6aff, 0xbfbfbfff,
- 0xbfbfbfff, 0xbfbfbfff, 0x6a6a6aff, 0x404040ff, 0x404040ff,
- 0xbfbfbfff, 0xbfbfbfff, 0xbfbfbfff, 0x6a6a6aff, 0x404040ff,
- 0x404040ff,
- ],
- },
- "NEAREST_NEIGHBOR 6x6": {
- width: 6,
- height: 6,
- data: [
- 0x404040ff, 0x404040ff, 0x404040ff, 0xbfbfbfff, 0xbfbfbfff,
- 0xbfbfbfff, 0x404040ff, 0x404040ff, 0x404040ff, 0xbfbfbfff,
- 0xbfbfbfff, 0xbfbfbfff, 0x404040ff, 0x404040ff, 0x404040ff,
- 0xbfbfbfff, 0xbfbfbfff, 0xbfbfbfff, 0xbfbfbfff, 0xbfbfbfff,
- 0xbfbfbfff, 0x404040ff, 0x404040ff, 0x404040ff, 0xbfbfbfff,
- 0xbfbfbfff, 0xbfbfbfff, 0x404040ff, 0x404040ff, 0x404040ff,
- 0xbfbfbfff, 0xbfbfbfff, 0xbfbfbfff, 0x404040ff, 0x404040ff,
- 0x404040ff,
- ],
- },
- "BILINEAR 6x6": {
- width: 6,
- height: 6,
- data: [
- 0x404040ff, 0x404040ff, 0x6a6a6aff, 0xbfbfbfff, 0xbfbfbfff,
- 0xbfbfbfff, 0x404040ff, 0x404040ff, 0x6a6a6aff, 0xbfbfbfff,
- 0xbfbfbfff, 0xbfbfbfff, 0x6a6a6aff, 0x6a6a6aff, 0x787878ff,
- 0x959595ff, 0x959595ff, 0x959595ff, 0xbfbfbfff, 0xbfbfbfff,
- 0x959595ff, 0x404040ff, 0x404040ff, 0x404040ff, 0xbfbfbfff,
- 0xbfbfbfff, 0x959595ff, 0x404040ff, 0x404040ff, 0x404040ff,
- 0xbfbfbfff, 0xbfbfbfff, 0x959595ff, 0x404040ff, 0x404040ff,
- 0x404040ff,
- ],
- },
- "BICUBIC 6x6": {
- width: 6,
- height: 6,
- data: [
- 0x404040ff, 0x303030ff, 0x404040ff, 0x7f7f7fff, 0xbfbfbfff,
- 0xcececeff, 0x303030ff, 0x1c1c1cff, 0x303030ff, 0x7f7f7fff,
- 0xcececeff, 0xe1e1e1ff, 0x404040ff, 0x303030ff, 0x404040ff,
- 0x7f7f7fff, 0xbfbfbfff, 0xcececeff, 0x7f7f7fff, 0x7f7f7fff,
- 0x7f7f7fff, 0x7f7f7fff, 0x7f7f7fff, 0x7f7f7fff, 0xbfbfbfff,
- 0xcececeff, 0xbfbfbfff, 0x7f7f7fff, 0x404040ff, 0x303030ff,
- 0xcececeff, 0xe1e1e1ff, 0xcececeff, 0x7f7f7fff, 0x303030ff,
- 0x1c1c1cff,
- ],
- },
- "HERMITE 6x6": {
- width: 6,
- height: 6,
- data: [
- 0x404040ff, 0x383838ff, 0x404040ff, 0x808080ff, 0xbfbfbfff,
- 0xc7c7c7ff, 0x383838ff, 0x2f2f2fff, 0x383838ff, 0x808080ff,
- 0xc7c7c7ff, 0xd0d0d0ff, 0x404040ff, 0x383838ff, 0x404040ff,
- 0x808080ff, 0xbfbfbfff, 0xc7c7c7ff, 0x808080ff, 0x808080ff,
- 0x808080ff, 0x808080ff, 0x808080ff, 0x808080ff, 0xbfbfbfff,
- 0xc7c7c7ff, 0xbfbfbfff, 0x808080ff, 0x404040ff, 0x383838ff,
- 0xc7c7c7ff, 0xd0d0d0ff, 0xc7c7c7ff, 0x808080ff, 0x383838ff,
- 0x2f2f2fff,
- ],
- },
- "BEZIER 6x6": {
- width: 6,
- height: 6,
- data: [
- 0x404040ff, 0x343434ff, 0x404040ff, 0x808080ff, 0xbfbfbfff,
- 0xcbcbcbff, 0x343434ff, 0x262626ff, 0x343434ff, 0x808080ff,
- 0xcbcbcbff, 0xd9d9d9ff, 0x404040ff, 0x343434ff, 0x404040ff,
- 0x808080ff, 0xbfbfbfff, 0xcbcbcbff, 0x808080ff, 0x808080ff,
- 0x808080ff, 0x808080ff, 0x808080ff, 0x808080ff, 0xbfbfbfff,
- 0xcbcbcbff, 0xbfbfbfff, 0x808080ff, 0x404040ff, 0x343434ff,
- 0xcbcbcbff, 0xd9d9d9ff, 0xcbcbcbff, 0x808080ff, 0x343434ff,
- 0x262626ff,
- ],
- },
- },
- },
- ];
-
- before((done) => {
- const srcImgs = testImages.map((test) => test.src);
- Promise.all(srcImgs)
- .then((imgsJimp) => {
- for (let i = 0; i < imgsJimp.length; i++) {
- testImages[i].src = imgsJimp[i];
- }
-
- done();
- })
- .catch(done);
- });
-
- function testEach(test) {
- describe(test.title, () => {
- hashForEach(test.results, (expectedTitle, expectedJgd) => {
- const mode = Jimp["RESIZE_" + expectedTitle.split(" ")[0]];
- const size = expectedTitle
- .split(" ")[1]
- .split("x")
- .map((n) => parseInt(n, 10));
- it("to " + expectedTitle, () => {
- test.src
- .clone()
- .resize(size[0], size[1], mode)
- .getJGDSync()
- .should.be.sameJGD(expectedJgd);
- });
- });
- });
- }
-
- testImages.forEach(testEach);
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-rotate/CHANGELOG.md b/WechatBot/node_modules/@jimp/plugin-rotate/CHANGELOG.md
deleted file mode 100644
index 4eb3193f9..000000000
--- a/WechatBot/node_modules/@jimp/plugin-rotate/CHANGELOG.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# v0.16.3 (Sat Feb 04 2023)
-
-#### ⚠️ Pushed to `master`
-
-- upgrade prettier ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 1
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
----
-
-# v0.11.0 (Fri May 15 2020)
-
-#### 🚀 Enhancement
-
-- Removed Core-JS as a dependency. [#882](https://github.com/oliver-moran/jimp/pull/882) ([@EricRabil](https://github.com/EricRabil))
-
-#### Authors: 1
-
-- Eric Rabil ([@EricRabil](https://github.com/EricRabil))
-
----
-
-# v0.9.3 (Tue Nov 26 2019)
-
-#### 🐛 Bug Fix
-
-- `@jimp/cli`, `@jimp/core`, `@jimp/custom`, `jimp`, `@jimp/plugin-blit`, `@jimp/plugin-blur`, `@jimp/plugin-circle`, `@jimp/plugin-color`, `@jimp/plugin-contain`, `@jimp/plugin-cover`, `@jimp/plugin-crop`, `@jimp/plugin-displace`, `@jimp/plugin-dither`, `@jimp/plugin-fisheye`, `@jimp/plugin-flip`, `@jimp/plugin-gaussian`, `@jimp/plugin-invert`, `@jimp/plugin-mask`, `@jimp/plugin-normalize`, `@jimp/plugin-print`, `@jimp/plugin-resize`, `@jimp/plugin-rotate`, `@jimp/plugin-scale`, `@jimp/plugin-shadow`, `@jimp/plugin-threshold`, `@jimp/plugins`, `@jimp/test-utils`, `@jimp/bmp`, `@jimp/gif`, `@jimp/jpeg`, `@jimp/png`, `@jimp/tiff`, `@jimp/types`, `@jimp/utils`
- - Fix regeneratorRuntime errors [#815](https://github.com/oliver-moran/jimp/pull/815) ([@crutchcorn](https://github.com/crutchcorn) [@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 2
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
diff --git a/WechatBot/node_modules/@jimp/plugin-rotate/LICENSE b/WechatBot/node_modules/@jimp/plugin-rotate/LICENSE
deleted file mode 100644
index baa5d4850..000000000
--- a/WechatBot/node_modules/@jimp/plugin-rotate/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Oliver Moran
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/WechatBot/node_modules/@jimp/plugin-rotate/README.md b/WechatBot/node_modules/@jimp/plugin-rotate/README.md
deleted file mode 100644
index 6bacc7daf..000000000
--- a/WechatBot/node_modules/@jimp/plugin-rotate/README.md
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
@jimp/plugin-rotate
-
Rotate an image.
-
-
-Rotates the image clockwise by a number of degrees. By default the width and height of the image will be resized appropriately.
-
-## Usage
-
-- @param {number} deg the number of degrees to rotate the image by
-- @param {string|boolean} mode (optional) resize mode or a boolean, if false then the width and height of the image will not be changed
-- @param {function(Error, Jimp)} cb (optional) a callback for when complete
-
-```js
-import jimp from "jimp";
-
-async function main() {
- const image = await jimp.read("test/image.png");
-
- image.rotate(90);
-}
-
-main();
-```
diff --git a/WechatBot/node_modules/@jimp/plugin-rotate/dist/index.js b/WechatBot/node_modules/@jimp/plugin-rotate/dist/index.js
deleted file mode 100755
index c0a1fb6f9..000000000
--- a/WechatBot/node_modules/@jimp/plugin-rotate/dist/index.js
+++ /dev/null
@@ -1,139 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports["default"] = void 0;
-
-var _utils = require("@jimp/utils");
-
-/**
- * Rotates an image clockwise by an arbitrary number of degrees. NB: 'this' must be a Jimp object.
- * @param {number} deg the number of degrees to rotate the image by
- * @param {string|boolean} mode (optional) resize mode or a boolean, if false then the width and height of the image will not be changed
- */
-function advancedRotate(deg, mode) {
- deg %= 360;
- var rad = deg * Math.PI / 180;
- var cosine = Math.cos(rad);
- var sine = Math.sin(rad); // the final width and height will change if resize == true
-
- var w = this.bitmap.width;
- var h = this.bitmap.height;
-
- if (mode === true || typeof mode === "string") {
- // resize the image to it maximum dimension and blit the existing image
- // onto the center so that when it is rotated the image is kept in bounds
- // http://stackoverflow.com/questions/3231176/how-to-get-size-of-a-rotated-rectangle
- // Plus 1 border pixel to ensure to show all rotated result for some cases.
- w = Math.ceil(Math.abs(this.bitmap.width * cosine) + Math.abs(this.bitmap.height * sine)) + 1;
- h = Math.ceil(Math.abs(this.bitmap.width * sine) + Math.abs(this.bitmap.height * cosine)) + 1; // Ensure destination to have even size to a better result.
-
- if (w % 2 !== 0) {
- w++;
- }
-
- if (h % 2 !== 0) {
- h++;
- }
-
- var c = this.cloneQuiet();
- this.scanQuiet(0, 0, this.bitmap.width, this.bitmap.height, function (x, y, idx) {
- this.bitmap.data.writeUInt32BE(this._background, idx);
- });
- var max = Math.max(w, h, this.bitmap.width, this.bitmap.height);
- this.resize(max, max, mode);
- this.blit(c, this.bitmap.width / 2 - c.bitmap.width / 2, this.bitmap.height / 2 - c.bitmap.height / 2);
- }
-
- var bW = this.bitmap.width;
- var bH = this.bitmap.height;
- var dstBuffer = Buffer.alloc(this.bitmap.data.length);
-
- function createTranslationFunction(deltaX, deltaY) {
- return function (x, y) {
- return {
- x: x + deltaX,
- y: y + deltaY
- };
- };
- }
-
- var translate2Cartesian = createTranslationFunction(-(bW / 2), -(bH / 2));
- var translate2Screen = createTranslationFunction(bW / 2 + 0.5, bH / 2 + 0.5);
-
- for (var y = 1; y <= bH; y++) {
- for (var x = 1; x <= bW; x++) {
- var cartesian = translate2Cartesian(x, y);
- var source = translate2Screen(cosine * cartesian.x - sine * cartesian.y, cosine * cartesian.y + sine * cartesian.x);
- var dstIdx = bW * (y - 1) + x - 1 << 2;
-
- if (source.x >= 0 && source.x < bW && source.y >= 0 && source.y < bH) {
- var srcIdx = (bW * (source.y | 0) + source.x | 0) << 2;
- var pixelRGBA = this.bitmap.data.readUInt32BE(srcIdx);
- dstBuffer.writeUInt32BE(pixelRGBA, dstIdx);
- } else {
- // reset off-image pixels
- dstBuffer.writeUInt32BE(this._background, dstIdx);
- }
- }
- }
-
- this.bitmap.data = dstBuffer;
-
- if (mode === true || typeof mode === "string") {
- // now crop the image to the final size
- var _x = bW / 2 - w / 2;
-
- var _y = bH / 2 - h / 2;
-
- this.crop(_x, _y, w, h);
- }
-}
-
-var _default = function _default() {
- return {
- /**
- * Rotates the image clockwise by a number of degrees. By default the width and height of the image will be resized appropriately.
- * @param {number} deg the number of degrees to rotate the image by
- * @param {string|boolean} mode (optional) resize mode or a boolean, if false then the width and height of the image will not be changed
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
- rotate: function rotate(deg, mode, cb) {
- // enable overloading
- if (typeof mode === "undefined" || mode === null) {
- // e.g. image.resize(120);
- // e.g. image.resize(120, null, cb);
- // e.g. image.resize(120, undefined, cb);
- mode = true;
- }
-
- if (typeof mode === "function" && typeof cb === "undefined") {
- // e.g. image.resize(120, cb);
- cb = mode;
- mode = true;
- }
-
- if (typeof deg !== "number") {
- return _utils.throwError.call(this, "deg must be a number", cb);
- }
-
- if (typeof mode !== "boolean" && typeof mode !== "string") {
- return _utils.throwError.call(this, "mode must be a boolean or a string", cb);
- }
-
- advancedRotate.call(this, deg, mode, cb);
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- }
- };
-};
-
-exports["default"] = _default;
-module.exports = exports.default;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-rotate/dist/index.js.map b/WechatBot/node_modules/@jimp/plugin-rotate/dist/index.js.map
deleted file mode 100644
index 044394659..000000000
--- a/WechatBot/node_modules/@jimp/plugin-rotate/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/index.js"],"names":["advancedRotate","deg","mode","rad","Math","PI","cosine","cos","sine","sin","w","bitmap","width","h","height","ceil","abs","c","cloneQuiet","scanQuiet","x","y","idx","data","writeUInt32BE","_background","max","resize","blit","bW","bH","dstBuffer","Buffer","alloc","length","createTranslationFunction","deltaX","deltaY","translate2Cartesian","translate2Screen","cartesian","source","dstIdx","srcIdx","pixelRGBA","readUInt32BE","crop","rotate","cb","throwError","call"],"mappings":"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","sourcesContent":["import { throwError, isNodePattern } from \"@jimp/utils\";\n\n/**\n * Rotates an image clockwise by an arbitrary number of degrees. NB: 'this' must be a Jimp object.\n * @param {number} deg the number of degrees to rotate the image by\n * @param {string|boolean} mode (optional) resize mode or a boolean, if false then the width and height of the image will not be changed\n */\nfunction advancedRotate(deg, mode) {\n deg %= 360;\n const rad = (deg * Math.PI) / 180;\n const cosine = Math.cos(rad);\n const sine = Math.sin(rad);\n\n // the final width and height will change if resize == true\n let w = this.bitmap.width;\n let h = this.bitmap.height;\n\n if (mode === true || typeof mode === \"string\") {\n // resize the image to it maximum dimension and blit the existing image\n // onto the center so that when it is rotated the image is kept in bounds\n\n // http://stackoverflow.com/questions/3231176/how-to-get-size-of-a-rotated-rectangle\n // Plus 1 border pixel to ensure to show all rotated result for some cases.\n w =\n Math.ceil(\n Math.abs(this.bitmap.width * cosine) +\n Math.abs(this.bitmap.height * sine)\n ) + 1;\n h =\n Math.ceil(\n Math.abs(this.bitmap.width * sine) +\n Math.abs(this.bitmap.height * cosine)\n ) + 1;\n // Ensure destination to have even size to a better result.\n if (w % 2 !== 0) {\n w++;\n }\n\n if (h % 2 !== 0) {\n h++;\n }\n\n const c = this.cloneQuiet();\n this.scanQuiet(\n 0,\n 0,\n this.bitmap.width,\n this.bitmap.height,\n function (x, y, idx) {\n this.bitmap.data.writeUInt32BE(this._background, idx);\n }\n );\n\n const max = Math.max(w, h, this.bitmap.width, this.bitmap.height);\n this.resize(max, max, mode);\n\n this.blit(\n c,\n this.bitmap.width / 2 - c.bitmap.width / 2,\n this.bitmap.height / 2 - c.bitmap.height / 2\n );\n }\n\n const bW = this.bitmap.width;\n const bH = this.bitmap.height;\n const dstBuffer = Buffer.alloc(this.bitmap.data.length);\n\n function createTranslationFunction(deltaX, deltaY) {\n return function (x, y) {\n return {\n x: x + deltaX,\n y: y + deltaY,\n };\n };\n }\n\n const translate2Cartesian = createTranslationFunction(-(bW / 2), -(bH / 2));\n const translate2Screen = createTranslationFunction(\n bW / 2 + 0.5,\n bH / 2 + 0.5\n );\n\n for (let y = 1; y <= bH; y++) {\n for (let x = 1; x <= bW; x++) {\n const cartesian = translate2Cartesian(x, y);\n const source = translate2Screen(\n cosine * cartesian.x - sine * cartesian.y,\n cosine * cartesian.y + sine * cartesian.x\n );\n const dstIdx = (bW * (y - 1) + x - 1) << 2;\n\n if (source.x >= 0 && source.x < bW && source.y >= 0 && source.y < bH) {\n const srcIdx = ((bW * (source.y | 0) + source.x) | 0) << 2;\n const pixelRGBA = this.bitmap.data.readUInt32BE(srcIdx);\n dstBuffer.writeUInt32BE(pixelRGBA, dstIdx);\n } else {\n // reset off-image pixels\n dstBuffer.writeUInt32BE(this._background, dstIdx);\n }\n }\n }\n\n this.bitmap.data = dstBuffer;\n\n if (mode === true || typeof mode === \"string\") {\n // now crop the image to the final size\n const x = bW / 2 - w / 2;\n const y = bH / 2 - h / 2;\n this.crop(x, y, w, h);\n }\n}\n\nexport default () => ({\n /**\n * Rotates the image clockwise by a number of degrees. By default the width and height of the image will be resized appropriately.\n * @param {number} deg the number of degrees to rotate the image by\n * @param {string|boolean} mode (optional) resize mode or a boolean, if false then the width and height of the image will not be changed\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp} this for chaining of methods\n */\n rotate(deg, mode, cb) {\n // enable overloading\n if (typeof mode === \"undefined\" || mode === null) {\n // e.g. image.resize(120);\n // e.g. image.resize(120, null, cb);\n // e.g. image.resize(120, undefined, cb);\n mode = true;\n }\n\n if (typeof mode === \"function\" && typeof cb === \"undefined\") {\n // e.g. image.resize(120, cb);\n cb = mode;\n mode = true;\n }\n\n if (typeof deg !== \"number\") {\n return throwError.call(this, \"deg must be a number\", cb);\n }\n\n if (typeof mode !== \"boolean\" && typeof mode !== \"string\") {\n return throwError.call(this, \"mode must be a boolean or a string\", cb);\n }\n\n advancedRotate.call(this, deg, mode, cb);\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n },\n});\n"],"file":"index.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-rotate/index.d.ts b/WechatBot/node_modules/@jimp/plugin-rotate/index.d.ts
deleted file mode 100644
index 23d2aa2f4..000000000
--- a/WechatBot/node_modules/@jimp/plugin-rotate/index.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { ImageCallback } from "@jimp/core";
-
-interface Rotate {
- rotate(deg: number, cb?: ImageCallback): this;
- rotate(deg: number, mode: string | boolean, cb?: ImageCallback): this;
-}
-
-export default function (): Rotate;
diff --git a/WechatBot/node_modules/@jimp/plugin-rotate/package.json b/WechatBot/node_modules/@jimp/plugin-rotate/package.json
deleted file mode 100644
index 759cc59d2..000000000
--- a/WechatBot/node_modules/@jimp/plugin-rotate/package.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "name": "@jimp/plugin-rotate",
- "version": "0.16.13",
- "description": "Rotate an image.",
- "main": "dist/index.js",
- "module": "es/index.js",
- "types": "index.d.ts",
- "scripts": {
- "test": "cross-env BABEL_ENV=test mocha --require @babel/register",
- "test:watch": "npm run test -- --reporter min --watch",
- "test:coverage": "nyc npm run test",
- "build": "npm run build:node:production && npm run build:module",
- "build:watch": "npm run build:node:debug -- -- --watch --verbose",
- "build:debug": "npm run build:node:debug",
- "build:module": "cross-env BABEL_ENV=module babel src -d es --source-maps --config-file ../../babel.config.js",
- "build:node": "babel src -d dist --source-maps --config-file ../../babel.config.js",
- "build:node:debug": "cross-env BABEL_ENV=development npm run build:node",
- "build:node:production": "cross-env BABEL_ENV=production npm run build:node"
- },
- "author": "",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5",
- "@jimp/plugin-blit": ">=0.3.5",
- "@jimp/plugin-crop": ">=0.3.5",
- "@jimp/plugin-resize": ">=0.3.5"
- },
- "devDependencies": {
- "@jimp/custom": "^0.16.13",
- "@jimp/plugin-blit": "^0.16.13",
- "@jimp/plugin-crop": "^0.16.13",
- "@jimp/plugin-resize": "^0.16.13",
- "@jimp/test-utils": "^0.16.13"
- },
- "publishConfig": {
- "access": "public"
- },
- "gitHead": "9eec86086634329a072901dca3a800b850548572"
-}
diff --git a/WechatBot/node_modules/@jimp/plugin-rotate/src/index.js b/WechatBot/node_modules/@jimp/plugin-rotate/src/index.js
deleted file mode 100755
index 7b0712a87..000000000
--- a/WechatBot/node_modules/@jimp/plugin-rotate/src/index.js
+++ /dev/null
@@ -1,152 +0,0 @@
-import { throwError, isNodePattern } from "@jimp/utils";
-
-/**
- * Rotates an image clockwise by an arbitrary number of degrees. NB: 'this' must be a Jimp object.
- * @param {number} deg the number of degrees to rotate the image by
- * @param {string|boolean} mode (optional) resize mode or a boolean, if false then the width and height of the image will not be changed
- */
-function advancedRotate(deg, mode) {
- deg %= 360;
- const rad = (deg * Math.PI) / 180;
- const cosine = Math.cos(rad);
- const sine = Math.sin(rad);
-
- // the final width and height will change if resize == true
- let w = this.bitmap.width;
- let h = this.bitmap.height;
-
- if (mode === true || typeof mode === "string") {
- // resize the image to it maximum dimension and blit the existing image
- // onto the center so that when it is rotated the image is kept in bounds
-
- // http://stackoverflow.com/questions/3231176/how-to-get-size-of-a-rotated-rectangle
- // Plus 1 border pixel to ensure to show all rotated result for some cases.
- w =
- Math.ceil(
- Math.abs(this.bitmap.width * cosine) +
- Math.abs(this.bitmap.height * sine)
- ) + 1;
- h =
- Math.ceil(
- Math.abs(this.bitmap.width * sine) +
- Math.abs(this.bitmap.height * cosine)
- ) + 1;
- // Ensure destination to have even size to a better result.
- if (w % 2 !== 0) {
- w++;
- }
-
- if (h % 2 !== 0) {
- h++;
- }
-
- const c = this.cloneQuiet();
- this.scanQuiet(
- 0,
- 0,
- this.bitmap.width,
- this.bitmap.height,
- function (x, y, idx) {
- this.bitmap.data.writeUInt32BE(this._background, idx);
- }
- );
-
- const max = Math.max(w, h, this.bitmap.width, this.bitmap.height);
- this.resize(max, max, mode);
-
- this.blit(
- c,
- this.bitmap.width / 2 - c.bitmap.width / 2,
- this.bitmap.height / 2 - c.bitmap.height / 2
- );
- }
-
- const bW = this.bitmap.width;
- const bH = this.bitmap.height;
- const dstBuffer = Buffer.alloc(this.bitmap.data.length);
-
- function createTranslationFunction(deltaX, deltaY) {
- return function (x, y) {
- return {
- x: x + deltaX,
- y: y + deltaY,
- };
- };
- }
-
- const translate2Cartesian = createTranslationFunction(-(bW / 2), -(bH / 2));
- const translate2Screen = createTranslationFunction(
- bW / 2 + 0.5,
- bH / 2 + 0.5
- );
-
- for (let y = 1; y <= bH; y++) {
- for (let x = 1; x <= bW; x++) {
- const cartesian = translate2Cartesian(x, y);
- const source = translate2Screen(
- cosine * cartesian.x - sine * cartesian.y,
- cosine * cartesian.y + sine * cartesian.x
- );
- const dstIdx = (bW * (y - 1) + x - 1) << 2;
-
- if (source.x >= 0 && source.x < bW && source.y >= 0 && source.y < bH) {
- const srcIdx = ((bW * (source.y | 0) + source.x) | 0) << 2;
- const pixelRGBA = this.bitmap.data.readUInt32BE(srcIdx);
- dstBuffer.writeUInt32BE(pixelRGBA, dstIdx);
- } else {
- // reset off-image pixels
- dstBuffer.writeUInt32BE(this._background, dstIdx);
- }
- }
- }
-
- this.bitmap.data = dstBuffer;
-
- if (mode === true || typeof mode === "string") {
- // now crop the image to the final size
- const x = bW / 2 - w / 2;
- const y = bH / 2 - h / 2;
- this.crop(x, y, w, h);
- }
-}
-
-export default () => ({
- /**
- * Rotates the image clockwise by a number of degrees. By default the width and height of the image will be resized appropriately.
- * @param {number} deg the number of degrees to rotate the image by
- * @param {string|boolean} mode (optional) resize mode or a boolean, if false then the width and height of the image will not be changed
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
- rotate(deg, mode, cb) {
- // enable overloading
- if (typeof mode === "undefined" || mode === null) {
- // e.g. image.resize(120);
- // e.g. image.resize(120, null, cb);
- // e.g. image.resize(120, undefined, cb);
- mode = true;
- }
-
- if (typeof mode === "function" && typeof cb === "undefined") {
- // e.g. image.resize(120, cb);
- cb = mode;
- mode = true;
- }
-
- if (typeof deg !== "number") {
- return throwError.call(this, "deg must be a number", cb);
- }
-
- if (typeof mode !== "boolean" && typeof mode !== "string") {
- return throwError.call(this, "mode must be a boolean or a string", cb);
- }
-
- advancedRotate.call(this, deg, mode, cb);
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-rotate/test/rotation.test.js b/WechatBot/node_modules/@jimp/plugin-rotate/test/rotation.test.js
deleted file mode 100755
index c86db73fb..000000000
--- a/WechatBot/node_modules/@jimp/plugin-rotate/test/rotation.test.js
+++ /dev/null
@@ -1,636 +0,0 @@
-import { Jimp, mkJGD } from "@jimp/test-utils";
-import configure from "@jimp/custom";
-import blit from "@jimp/plugin-blit";
-import crop from "@jimp/plugin-crop";
-import resize from "@jimp/plugin-resize";
-
-import rotate from "../src";
-
-const jimp = configure({ plugins: [rotate, blit, crop, resize] }, Jimp);
-
-describe("Rotate a image with even size", () => {
- let imgSrc = null;
-
- before((done) => {
- jimp
- .read(
- mkJGD(
- "▰▴▴▴▪▪▪▰",
- "▴▴▴▴▪▪▪▪",
- "▴▴▴▴▪▪▪▪",
- "▴▴▴▴▪▪▪▪",
- "▪▪▪▪▴▴▴▴",
- "▪▪▪▪▴▴▴▴",
- "▪▪▪▪▴▴▴▴",
- "▦▪▪▪▴▴▴▦"
- )
- )
- .then((imgJimp) => {
- imgSrc = imgJimp;
- done();
- })
- .catch(done);
- });
-
- it("1 degrees", () => {
- imgSrc
- .clone()
- .rotate(1, true)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- "▰▴▴▴▪▪▪▰ ",
- "▴▴▴▴▪▪▪▪ ",
- "▴▴▴▴▪▪▪▪ ",
- "▴▴▴▴▪▪▪▪ ",
- "▪▪▪▪▴▴▴▴ ",
- "▪▪▪▪▴▴▴▴ ",
- "▪▪▪▪▴▴▴▴ ",
- "▦▪▪▪▴▴▴▦ ",
- " ",
- " "
- )
- );
- });
-
- it("91 degrees", () => {
- imgSrc
- .clone()
- .rotate(91, true)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- " ",
- "▰▪▪▪▴▴▴▦ ",
- "▪▪▪▪▴▴▴▴ ",
- "▪▪▪▪▴▴▴▴ ",
- "▪▪▪▪▴▴▴▴ ",
- "▴▴▴▴▪▪▪▪ ",
- "▴▴▴▴▪▪▪▪ ",
- "▴▴▴▴▪▪▪▪ ",
- "▰▴▴▴▪▪▪▦ ",
- " "
- )
- );
- });
-
- it("30 degrees", () => {
- imgSrc
- .clone()
- .rotate(30, true)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- " ▰▰ ",
- " ▪▪▪▪ ",
- " ▴▪▪▪▪▪ ",
- "▴▴▴▴▪▪▪▪ ",
- "▴▴▴▴▪▪▴▴▴ ",
- "▴▴▴▴▪▴▴▴▴▴ ",
- " ▴▴▪▪▴▴▴▴▦ ",
- " ▪▪▪▪▪▴▴▴ ",
- " ▪▪▪▪▪ ",
- " ▪▪▪ ",
- " ▦ ",
- " "
- )
- );
- });
-
- it("45 degrees", () => {
- imgSrc
- .clone()
- .rotate(45, true)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- " ",
- " ▰ ",
- " ▪▪▪ ",
- " ▪▪▪▪▪ ",
- " ▴▴▪▪▪▪▴ ",
- " ▴▴▴▴▪▪▴▴▴ ",
- "▰▰▴▴▴▴▴▴▴▴▦ ",
- " ▴▴▴▴▪▪▴▴▴ ",
- " ▴▴▪▪▪▪▴ ",
- " ▪▪▪▪▪ ",
- " ▪▪▪ ",
- " ▦ ",
- " ",
- " "
- )
- );
- });
-
- it("60 degrees", () => {
- imgSrc
- .clone()
- .rotate(60, true)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- " ▰ ",
- " ▪▪▪ ",
- " ▪▪▪▪▪ ",
- " ▪▪▪▪▪▴▴▴ ",
- " ▴▴▪▪▴▴▴▴▦ ",
- "▴▴▴▴▪▴▴▴▴▴ ",
- "▴▴▴▴▪▪▴▴▴ ",
- "▴▴▴▴▪▪▪▪ ",
- " ▴▪▪▪▪▪ ",
- " ▪▪▪▪ ",
- " ▦▦ ",
- " "
- )
- );
- });
-
- it("90 degrees", () => {
- imgSrc
- .clone()
- .rotate(90, true)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- " ",
- "▰▪▪▪▴▴▴▦ ",
- "▪▪▪▪▴▴▴▴ ",
- "▪▪▪▪▴▴▴▴ ",
- "▪▪▪▪▴▴▴▴ ",
- "▴▴▴▴▪▪▪▪ ",
- "▴▴▴▴▪▪▪▪ ",
- "▴▴▴▴▪▪▪▪ ",
- "▰▴▴▴▪▪▪▦ ",
- " "
- )
- );
- });
-
- it("120 degrees", () => {
- imgSrc
- .clone()
- .rotate(120, true)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- " ",
- " ▴▦ ",
- " ▴▴▴▴ ",
- " ▪▪▴▴▴▴ ",
- "▰▪▪▪▴▴▴▴▪ ",
- "▰▪▪▪▪▴▴▪▪▪ ",
- " ▪▪▪▪▪▪▪▪▪ ",
- " ▪▪▴▴▴▪▪▪▪▦ ",
- " ▴▴▴▴▴▪▪ ",
- " ▴▴▴▴▪ ",
- " ▴▴▴ ",
- " "
- )
- );
- });
-
- it("135 degrees", () => {
- imgSrc
- .clone()
- .rotate(135, true)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- " ",
- " ",
- " ▦ ",
- " ▴▴▴ ",
- " ▴▴▴▴▴ ",
- " ▪▪▴▴▴▪▪ ",
- " ▪▪▪▪▴▪▪▪▪ ",
- " ▰▪▪▪▪▴▪▪▪▪▦ ",
- " ▪▪▪▴▴▴▪▪▪ ",
- " ▪▴▴▴▴▴▪ ",
- " ▴▴▴▴▴ ",
- " ▴▰▴ ",
- " ▰ ",
- " "
- )
- );
- });
-
- it("180 degrees", () => {
- imgSrc
- .clone()
- .rotate(180, true)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- " ",
- " ▦▴▴▴▪▪▪▦ ",
- " ▴▴▴▴▪▪▪▪ ",
- " ▴▴▴▴▪▪▪▪ ",
- " ▴▴▴▴▪▪▪▪ ",
- " ▪▪▪▪▴▴▴▴ ",
- " ▪▪▪▪▴▴▴▴ ",
- " ▪▪▪▪▴▴▴▴ ",
- " ▰▪▪▪▴▴▴▰ ",
- " "
- )
- );
- });
-
- it("225 degrees", () => {
- imgSrc
- .clone()
- .rotate(225, true)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- " ",
- " ▦ ",
- " ▪▪▪ ",
- " ▪▪▪▪▪ ",
- " ▴▪▪▪▪▴▴ ",
- " ▴▴▴▪▪▴▴▴▴ ",
- " ▦▴▴▴▴▴▴▴▴▰▰ ",
- " ▴▴▴▪▪▴▴▴▴ ",
- " ▴▪▪▪▪▴▴ ",
- " ▪▪▪▪▪ ",
- " ▪▪▪ ",
- " ▰ ",
- " ",
- " "
- )
- );
- });
-
- it("270 degrees", () => {
- imgSrc
- .clone()
- .rotate(270, true)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- " ▦▪▪▪▴▴▴▰ ",
- " ▪▪▪▪▴▴▴▴ ",
- " ▪▪▪▪▴▴▴▴ ",
- " ▪▪▪▪▴▴▴▴ ",
- " ▴▴▴▴▪▪▪▪ ",
- " ▴▴▴▴▪▪▪▪ ",
- " ▴▴▴▴▪▪▪▪ ",
- " ▦▴▴▴▪▪▪▰ ",
- " ",
- " "
- )
- );
- });
-
- it("315 degrees", () => {
- imgSrc
- .clone()
- .rotate(315, true)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- " ▰ ",
- " ▴▰▴ ",
- " ▴▴▴▴▴ ",
- " ▪▴▴▴▴▴▪ ",
- " ▪▪▪▴▴▴▪▪▪ ",
- " ▦▪▪▪▪▴▪▪▪▪▰ ",
- " ▪▪▪▪▴▪▪▪▪ ",
- " ▪▪▴▴▴▪▪ ",
- " ▴▴▴▴▴ ",
- " ▴▴▴ ",
- " ▦ ",
- " ",
- " ",
- " "
- )
- );
- });
-
- it("360 degrees", () => {
- imgSrc
- .clone()
- .rotate(360, true)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- "▰▴▴▴▪▪▪▰ ",
- "▴▴▴▴▪▪▪▪ ",
- "▴▴▴▴▪▪▪▪ ",
- "▴▴▴▴▪▪▪▪ ",
- "▪▪▪▪▴▴▴▴ ",
- "▪▪▪▪▴▴▴▴ ",
- "▪▪▪▪▴▴▴▴ ",
- "▦▪▪▪▴▴▴▦ ",
- " ",
- " "
- )
- );
- });
-});
-
-describe("Rotate a image with odd size", () => {
- let imgSrc = null;
- before((done) => {
- jimp
- .read(
- mkJGD(
- "▴▴▴▦▪▪▪",
- "▴▴▴▦▪▪▪",
- "▴▴▴▦▪▪▪",
- "▦▦▦▦▦▦▦",
- "▴▴▴▦▴▴▴",
- "▴▴▴▦▴▴▴",
- "▴▴▴▦▴▴▴"
- )
- )
- .then((imgJimp) => {
- imgSrc = imgJimp;
- done();
- })
- .catch(done);
- });
-
- it("45 degrees", () => {
- imgSrc
- .clone()
- .rotate(45, true)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- " ",
- " ▪ ",
- " ▪▪▪ ",
- " ▦▪▪▪▦ ",
- " ▴▴▦▪▦▴▴ ",
- " ▴▴▴▴▦▴▴▴▴ ",
- " ▴▴▦▴▦▴▴ ",
- " ▦▴▴▴▦ ",
- " ▴▴▴ ",
- " ▴ ",
- " ",
- " "
- )
- );
- });
-
- it("135 degrees", () => {
- imgSrc
- .clone()
- .rotate(135, true)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- " ",
- " ▴ ",
- " ▴▴▴ ",
- " ▦▴▴▴▦ ",
- " ▪▪▦▴▦▴▴ ",
- " ▪▪▪▪▦▴▴▴▴ ",
- " ▪▪▦▴▦▴▴ ",
- " ▦▴▴▴▦ ",
- " ▴▴▴ ",
- " ▴ ",
- " ",
- " "
- )
- );
- });
-
- it("225 degrees", () => {
- imgSrc
- .clone()
- .rotate(225, true)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- " ",
- " ▴ ",
- " ▴▴▴ ",
- " ▦▴▴▴▦ ",
- " ▴▴▦▴▦▴▴ ",
- " ▴▴▴▴▦▴▴▴▴ ",
- " ▴▴▦▪▦▴▴ ",
- " ▦▪▪▪▦ ",
- " ▪▪▪ ",
- " ▪ ",
- " ",
- " "
- )
- );
- });
-
- it("315 degrees", () => {
- imgSrc
- .clone()
- .rotate(315, true)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- " ",
- " ▴ ",
- " ▴▴▴ ",
- " ▦▴▴▴▦ ",
- " ▴▴▦▴▦▪▪ ",
- " ▴▴▴▴▦▪▪▪▪ ",
- " ▴▴▦▴▦▪▪ ",
- " ▦▴▴▴▦ ",
- " ▴▴▴ ",
- " ▴ ",
- " ",
- " "
- )
- );
- });
-});
-
-describe("Rotate a non-square image", () => {
- let imgSrc = null;
- before((done) => {
- jimp
- .read(mkJGD("▴▴▴▴▪▪▪▪", "▴▴▴▴▪▪▪▪", "▦▦▦▦▴▴▴▴", "▦▦▦▦▴▴▴▴"))
- .then((imgJimp) => {
- imgSrc = imgJimp;
- done();
- })
- .catch(done);
- });
-
- it("1 degrees", () => {
- imgSrc
- .clone()
- .rotate(1, true)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- "▴▴▴▴▪▪▪▪ ",
- "▴▴▴▴▪▪▪▪ ",
- "▦▦▦▦▴▴▴▴ ",
- "▦▦▦▦▴▴▴▴ ",
- " ",
- " "
- )
- );
- });
-
- it("10 degrees", () => {
- imgSrc
- .clone()
- .rotate(10, true)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- " ▪ ",
- " ▴▴▴▪▪▪▪ ",
- "▴▴▴▴▪▪▪▴ ",
- "▴▴▦▦▴▴▴▴ ",
- "▦▦▦▦▴▴▴ ",
- "▦▦ ",
- " ",
- " "
- )
- );
- });
-
- it("30 degrees", () => {
- imgSrc
- .clone()
- .rotate(30, true)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- " ",
- " ▪▪ ",
- " ▪▪▪▪ ",
- " ▴▴▪▪▴▴▴ ",
- "▴▴▴▦▴▴▴ ",
- "▴▴▦▦▴▴ ",
- "▦▦▦▦ ",
- " ▦ ",
- " ",
- " "
- )
- );
- });
-
- it("45 degrees", () => {
- imgSrc
- .clone()
- .rotate(45, true)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- " ",
- " ▪▪ ",
- " ▪▪▪▴ ",
- " ▴▪▪▴▴▴ ",
- " ▴▴▴▴▴▴ ",
- "▴▴▴▦▦▴ ",
- "▴▴▦▦▦ ",
- " ▦▦▦ ",
- " ▦ ",
- " "
- )
- );
- });
-
- it("90 degrees", () => {
- imgSrc
- .clone()
- .rotate(90, true)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- " ",
- "▪▪▴▴ ",
- "▪▪▴▴ ",
- "▪▪▴▴ ",
- "▪▪▴▴ ",
- "▴▴▦▦ ",
- "▴▴▦▦ ",
- "▴▴▦▦ ",
- "▴▴▦▦ ",
- " "
- )
- );
- });
-
- it("135 degrees", () => {
- imgSrc
- .clone()
- .rotate(135, true)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- " ",
- " ▴ ",
- " ▴▴▴ ",
- " ▪▪▴▴▴ ",
- " ▪▪▪▴▦▦ ",
- " ▪▪▴▦▦▦ ",
- " ▴▴▴▦▦▦ ",
- " ▴▴▴▦ ",
- " ▴▴ ",
- " "
- )
- );
- });
-
- it("180 degrees", () => {
- imgSrc
- .clone()
- .rotate(180, true)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- " ",
- " ▴▴▴▴▦▦▦▦ ",
- " ▴▴▴▴▦▦▦▦ ",
- " ▪▪▪▪▴▴▴▴ ",
- " ▪▪▪▪▴▴▴▴ ",
- " "
- )
- );
- });
-
- it("225 degrees", () => {
- imgSrc
- .clone()
- .rotate(225, true)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- " ▦ ",
- " ▦▦▦ ",
- " ▦▦▦▴▴ ",
- " ▴▦▦▴▴▴ ",
- " ▴▴▴▴▴▴ ",
- " ▴▴▴▪▪▴ ",
- " ▴▪▪▪ ",
- " ▪▪ ",
- " ",
- " "
- )
- );
- });
-
- it("315 degrees", () => {
- imgSrc
- .clone()
- .rotate(315, true)
- .getJGDSync()
- .should.be.sameJGD(
- mkJGD(
- " ▴▴ ",
- " ▦▴▴▴ ",
- "▦▦▦▴▴▴ ",
- " ▦▦▦▴▪▪ ",
- " ▦▦▴▪▪▪ ",
- " ▴▴▴▪▪ ",
- " ▴▴▴ ",
- " ▴ ",
- " ",
- " "
- )
- );
- });
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-scale/CHANGELOG.md b/WechatBot/node_modules/@jimp/plugin-scale/CHANGELOG.md
deleted file mode 100644
index 4eb3193f9..000000000
--- a/WechatBot/node_modules/@jimp/plugin-scale/CHANGELOG.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# v0.16.3 (Sat Feb 04 2023)
-
-#### ⚠️ Pushed to `master`
-
-- upgrade prettier ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 1
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
----
-
-# v0.11.0 (Fri May 15 2020)
-
-#### 🚀 Enhancement
-
-- Removed Core-JS as a dependency. [#882](https://github.com/oliver-moran/jimp/pull/882) ([@EricRabil](https://github.com/EricRabil))
-
-#### Authors: 1
-
-- Eric Rabil ([@EricRabil](https://github.com/EricRabil))
-
----
-
-# v0.9.3 (Tue Nov 26 2019)
-
-#### 🐛 Bug Fix
-
-- `@jimp/cli`, `@jimp/core`, `@jimp/custom`, `jimp`, `@jimp/plugin-blit`, `@jimp/plugin-blur`, `@jimp/plugin-circle`, `@jimp/plugin-color`, `@jimp/plugin-contain`, `@jimp/plugin-cover`, `@jimp/plugin-crop`, `@jimp/plugin-displace`, `@jimp/plugin-dither`, `@jimp/plugin-fisheye`, `@jimp/plugin-flip`, `@jimp/plugin-gaussian`, `@jimp/plugin-invert`, `@jimp/plugin-mask`, `@jimp/plugin-normalize`, `@jimp/plugin-print`, `@jimp/plugin-resize`, `@jimp/plugin-rotate`, `@jimp/plugin-scale`, `@jimp/plugin-shadow`, `@jimp/plugin-threshold`, `@jimp/plugins`, `@jimp/test-utils`, `@jimp/bmp`, `@jimp/gif`, `@jimp/jpeg`, `@jimp/png`, `@jimp/tiff`, `@jimp/types`, `@jimp/utils`
- - Fix regeneratorRuntime errors [#815](https://github.com/oliver-moran/jimp/pull/815) ([@crutchcorn](https://github.com/crutchcorn) [@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 2
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
diff --git a/WechatBot/node_modules/@jimp/plugin-scale/LICENSE b/WechatBot/node_modules/@jimp/plugin-scale/LICENSE
deleted file mode 100644
index baa5d4850..000000000
--- a/WechatBot/node_modules/@jimp/plugin-scale/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Oliver Moran
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/WechatBot/node_modules/@jimp/plugin-scale/README.md b/WechatBot/node_modules/@jimp/plugin-scale/README.md
deleted file mode 100644
index 708a7771c..000000000
--- a/WechatBot/node_modules/@jimp/plugin-scale/README.md
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
-
@jimp/plugin-scale
-
Scale an image.
-
-
-## scale
-
-Uniformly scales the image by a factor.
-
-- @param {number} f the factor to scale the image by
-- @param {string} mode (optional) a scaling method (e.g. Jimp.RESIZE_BEZIER)
-- @param {function(Error, Jimp)} cb (optional) a callback for when complete
-
-```js
-import jimp from "jimp";
-
-async function main() {
- const image = await jimp.read("test/image.png");
-
- image.scale(2);
- image.scale(2, jimp.RESIZE_BEZIER);
-}
-
-main();
-```
-
-## scaleToFit
-
-Scale the image to the largest size that fits inside the rectangle that has the given width and height.
-
-- @param {number} w the width to resize the image to
-- @param {number} h the height to resize the image to
-- @param {string} mode (optional) a scaling method (e.g. Jimp.RESIZE_BEZIER)
-- @param {function(Error, Jimp)} cb (optional) a callback for when complete
-
-```js
-import jimp from "jimp";
-
-async function main() {
- const image = await jimp.read("test/image.png");
-
- image.scaleToFit(100, 100);
-}
-
-main();
-```
diff --git a/WechatBot/node_modules/@jimp/plugin-scale/dist/index.js b/WechatBot/node_modules/@jimp/plugin-scale/dist/index.js
deleted file mode 100755
index a89343d3f..000000000
--- a/WechatBot/node_modules/@jimp/plugin-scale/dist/index.js
+++ /dev/null
@@ -1,76 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports["default"] = void 0;
-
-var _utils = require("@jimp/utils");
-
-var _default = function _default() {
- return {
- /**
- * Uniformly scales the image by a factor.
- * @param {number} f the factor to scale the image by
- * @param {string} mode (optional) a scaling method (e.g. Jimp.RESIZE_BEZIER)
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
- scale: function scale(f, mode, cb) {
- if (typeof f !== "number") {
- return _utils.throwError.call(this, "f must be a number", cb);
- }
-
- if (f < 0) {
- return _utils.throwError.call(this, "f must be a positive number", cb);
- }
-
- if (typeof mode === "function" && typeof cb === "undefined") {
- cb = mode;
- mode = null;
- }
-
- var w = this.bitmap.width * f;
- var h = this.bitmap.height * f;
- this.resize(w, h, mode);
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-
- /**
- * Scale the image to the largest size that fits inside the rectangle that has the given width and height.
- * @param {number} w the width to resize the image to
- * @param {number} h the height to resize the image to
- * @param {string} mode (optional) a scaling method (e.g. Jimp.RESIZE_BEZIER)
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
- scaleToFit: function scaleToFit(w, h, mode, cb) {
- if (typeof w !== "number" || typeof h !== "number") {
- return _utils.throwError.call(this, "w and h must be numbers", cb);
- }
-
- if (typeof mode === "function" && typeof cb === "undefined") {
- cb = mode;
- mode = null;
- }
-
- var f = w / h > this.bitmap.width / this.bitmap.height ? h / this.bitmap.height : w / this.bitmap.width;
- this.scale(f, mode);
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- }
- };
-};
-
-exports["default"] = _default;
-module.exports = exports.default;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-scale/dist/index.js.map b/WechatBot/node_modules/@jimp/plugin-scale/dist/index.js.map
deleted file mode 100644
index fe17665a9..000000000
--- a/WechatBot/node_modules/@jimp/plugin-scale/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/index.js"],"names":["scale","f","mode","cb","throwError","call","w","bitmap","width","h","height","resize","scaleToFit"],"mappings":";;;;;;;AAAA;;eAEe;AAAA,SAAO;AACpB;;;;;;;AAOAA,IAAAA,KARoB,iBAQdC,CARc,EAQXC,IARW,EAQLC,EARK,EAQD;AACjB,UAAI,OAAOF,CAAP,KAAa,QAAjB,EAA2B;AACzB,eAAOG,kBAAWC,IAAX,CAAgB,IAAhB,EAAsB,oBAAtB,EAA4CF,EAA5C,CAAP;AACD;;AAED,UAAIF,CAAC,GAAG,CAAR,EAAW;AACT,eAAOG,kBAAWC,IAAX,CAAgB,IAAhB,EAAsB,6BAAtB,EAAqDF,EAArD,CAAP;AACD;;AAED,UAAI,OAAOD,IAAP,KAAgB,UAAhB,IAA8B,OAAOC,EAAP,KAAc,WAAhD,EAA6D;AAC3DA,QAAAA,EAAE,GAAGD,IAAL;AACAA,QAAAA,IAAI,GAAG,IAAP;AACD;;AAED,UAAMI,CAAC,GAAG,KAAKC,MAAL,CAAYC,KAAZ,GAAoBP,CAA9B;AACA,UAAMQ,CAAC,GAAG,KAAKF,MAAL,CAAYG,MAAZ,GAAqBT,CAA/B;AACA,WAAKU,MAAL,CAAYL,CAAZ,EAAeG,CAAf,EAAkBP,IAAlB;;AAEA,UAAI,0BAAcC,EAAd,CAAJ,EAAuB;AACrBA,QAAAA,EAAE,CAACE,IAAH,CAAQ,IAAR,EAAc,IAAd,EAAoB,IAApB;AACD;;AAED,aAAO,IAAP;AACD,KA/BmB;;AAiCpB;;;;;;;;AAQAO,IAAAA,UAzCoB,sBAyCTN,CAzCS,EAyCNG,CAzCM,EAyCHP,IAzCG,EAyCGC,EAzCH,EAyCO;AACzB,UAAI,OAAOG,CAAP,KAAa,QAAb,IAAyB,OAAOG,CAAP,KAAa,QAA1C,EAAoD;AAClD,eAAOL,kBAAWC,IAAX,CAAgB,IAAhB,EAAsB,yBAAtB,EAAiDF,EAAjD,CAAP;AACD;;AAED,UAAI,OAAOD,IAAP,KAAgB,UAAhB,IAA8B,OAAOC,EAAP,KAAc,WAAhD,EAA6D;AAC3DA,QAAAA,EAAE,GAAGD,IAAL;AACAA,QAAAA,IAAI,GAAG,IAAP;AACD;;AAED,UAAMD,CAAC,GACLK,CAAC,GAAGG,CAAJ,GAAQ,KAAKF,MAAL,CAAYC,KAAZ,GAAoB,KAAKD,MAAL,CAAYG,MAAxC,GACID,CAAC,GAAG,KAAKF,MAAL,CAAYG,MADpB,GAEIJ,CAAC,GAAG,KAAKC,MAAL,CAAYC,KAHtB;AAIA,WAAKR,KAAL,CAAWC,CAAX,EAAcC,IAAd;;AAEA,UAAI,0BAAcC,EAAd,CAAJ,EAAuB;AACrBA,QAAAA,EAAE,CAACE,IAAH,CAAQ,IAAR,EAAc,IAAd,EAAoB,IAApB;AACD;;AAED,aAAO,IAAP;AACD;AA9DmB,GAAP;AAAA,C","sourcesContent":["import { isNodePattern, throwError } from \"@jimp/utils\";\n\nexport default () => ({\n /**\n * Uniformly scales the image by a factor.\n * @param {number} f the factor to scale the image by\n * @param {string} mode (optional) a scaling method (e.g. Jimp.RESIZE_BEZIER)\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp} this for chaining of methods\n */\n scale(f, mode, cb) {\n if (typeof f !== \"number\") {\n return throwError.call(this, \"f must be a number\", cb);\n }\n\n if (f < 0) {\n return throwError.call(this, \"f must be a positive number\", cb);\n }\n\n if (typeof mode === \"function\" && typeof cb === \"undefined\") {\n cb = mode;\n mode = null;\n }\n\n const w = this.bitmap.width * f;\n const h = this.bitmap.height * f;\n this.resize(w, h, mode);\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n },\n\n /**\n * Scale the image to the largest size that fits inside the rectangle that has the given width and height.\n * @param {number} w the width to resize the image to\n * @param {number} h the height to resize the image to\n * @param {string} mode (optional) a scaling method (e.g. Jimp.RESIZE_BEZIER)\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp} this for chaining of methods\n */\n scaleToFit(w, h, mode, cb) {\n if (typeof w !== \"number\" || typeof h !== \"number\") {\n return throwError.call(this, \"w and h must be numbers\", cb);\n }\n\n if (typeof mode === \"function\" && typeof cb === \"undefined\") {\n cb = mode;\n mode = null;\n }\n\n const f =\n w / h > this.bitmap.width / this.bitmap.height\n ? h / this.bitmap.height\n : w / this.bitmap.width;\n this.scale(f, mode);\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n },\n});\n"],"file":"index.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-scale/index.d.ts b/WechatBot/node_modules/@jimp/plugin-scale/index.d.ts
deleted file mode 100644
index 28c26ba28..000000000
--- a/WechatBot/node_modules/@jimp/plugin-scale/index.d.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { ImageCallback } from "@jimp/core";
-
-interface Scale {
- scale(f: number, cb?: ImageCallback): this;
- scale(f: number, mode?: string, cb?: ImageCallback): this;
- scaleToFit(w: number, h: number, cb?: ImageCallback): this;
- scaleToFit(
- w: number,
- h: number,
- mode?: string,
- cb?: ImageCallback
- ): this;
-}
-
-export default function (): Scale;
diff --git a/WechatBot/node_modules/@jimp/plugin-scale/package.json b/WechatBot/node_modules/@jimp/plugin-scale/package.json
deleted file mode 100644
index 30eff760e..000000000
--- a/WechatBot/node_modules/@jimp/plugin-scale/package.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "name": "@jimp/plugin-scale",
- "version": "0.16.13",
- "description": "scale an image.",
- "main": "dist/index.js",
- "module": "es/index.js",
- "types": "index.d.ts",
- "scripts": {
- "build": "npm run build:node:production && npm run build:module",
- "build:watch": "npm run build:node:debug -- -- --watch --verbose",
- "build:debug": "npm run build:node:debug",
- "build:module": "cross-env BABEL_ENV=module babel src -d es --source-maps --config-file ../../babel.config.js",
- "build:node": "babel src -d dist --source-maps --config-file ../../babel.config.js",
- "build:node:debug": "cross-env BABEL_ENV=development npm run build:node",
- "build:node:production": "cross-env BABEL_ENV=production npm run build:node"
- },
- "author": "",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5",
- "@jimp/plugin-resize": ">=0.3.5"
- },
- "publishConfig": {
- "access": "public"
- },
- "gitHead": "9eec86086634329a072901dca3a800b850548572"
-}
diff --git a/WechatBot/node_modules/@jimp/plugin-scale/src/index.js b/WechatBot/node_modules/@jimp/plugin-scale/src/index.js
deleted file mode 100755
index f67ce2b39..000000000
--- a/WechatBot/node_modules/@jimp/plugin-scale/src/index.js
+++ /dev/null
@@ -1,66 +0,0 @@
-import { isNodePattern, throwError } from "@jimp/utils";
-
-export default () => ({
- /**
- * Uniformly scales the image by a factor.
- * @param {number} f the factor to scale the image by
- * @param {string} mode (optional) a scaling method (e.g. Jimp.RESIZE_BEZIER)
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
- scale(f, mode, cb) {
- if (typeof f !== "number") {
- return throwError.call(this, "f must be a number", cb);
- }
-
- if (f < 0) {
- return throwError.call(this, "f must be a positive number", cb);
- }
-
- if (typeof mode === "function" && typeof cb === "undefined") {
- cb = mode;
- mode = null;
- }
-
- const w = this.bitmap.width * f;
- const h = this.bitmap.height * f;
- this.resize(w, h, mode);
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-
- /**
- * Scale the image to the largest size that fits inside the rectangle that has the given width and height.
- * @param {number} w the width to resize the image to
- * @param {number} h the height to resize the image to
- * @param {string} mode (optional) a scaling method (e.g. Jimp.RESIZE_BEZIER)
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
- scaleToFit(w, h, mode, cb) {
- if (typeof w !== "number" || typeof h !== "number") {
- return throwError.call(this, "w and h must be numbers", cb);
- }
-
- if (typeof mode === "function" && typeof cb === "undefined") {
- cb = mode;
- mode = null;
- }
-
- const f =
- w / h > this.bitmap.width / this.bitmap.height
- ? h / this.bitmap.height
- : w / this.bitmap.width;
- this.scale(f, mode);
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-shadow/CHANGELOG.md b/WechatBot/node_modules/@jimp/plugin-shadow/CHANGELOG.md
deleted file mode 100644
index 57102be3b..000000000
--- a/WechatBot/node_modules/@jimp/plugin-shadow/CHANGELOG.md
+++ /dev/null
@@ -1,48 +0,0 @@
-# v0.16.3 (Sat Feb 04 2023)
-
-#### ⚠️ Pushed to `master`
-
-- upgrade prettier ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 1
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
----
-
-# v0.11.0 (Fri May 15 2020)
-
-#### 🚀 Enhancement
-
-- Removed Core-JS as a dependency. [#882](https://github.com/oliver-moran/jimp/pull/882) ([@EricRabil](https://github.com/EricRabil))
-
-#### Authors: 1
-
-- Eric Rabil ([@EricRabil](https://github.com/EricRabil))
-
----
-
-# v0.9.4 (Tue Mar 03 2020)
-
-#### 🐛 Bug Fix
-
-- `@jimp/plugin-shadow`
- - Update plugin-shadow type definition. [#841](https://github.com/oliver-moran/jimp/pull/841) ([@lekoaf](https://github.com/lekoaf))
-
-#### Authors: 1
-
-- Martin ([@lekoaf](https://github.com/lekoaf))
-
----
-
-# v0.9.3 (Tue Nov 26 2019)
-
-#### 🐛 Bug Fix
-
-- `@jimp/cli`, `@jimp/core`, `@jimp/custom`, `jimp`, `@jimp/plugin-blit`, `@jimp/plugin-blur`, `@jimp/plugin-circle`, `@jimp/plugin-color`, `@jimp/plugin-contain`, `@jimp/plugin-cover`, `@jimp/plugin-crop`, `@jimp/plugin-displace`, `@jimp/plugin-dither`, `@jimp/plugin-fisheye`, `@jimp/plugin-flip`, `@jimp/plugin-gaussian`, `@jimp/plugin-invert`, `@jimp/plugin-mask`, `@jimp/plugin-normalize`, `@jimp/plugin-print`, `@jimp/plugin-resize`, `@jimp/plugin-rotate`, `@jimp/plugin-scale`, `@jimp/plugin-shadow`, `@jimp/plugin-threshold`, `@jimp/plugins`, `@jimp/test-utils`, `@jimp/bmp`, `@jimp/gif`, `@jimp/jpeg`, `@jimp/png`, `@jimp/tiff`, `@jimp/types`, `@jimp/utils`
- - Fix regeneratorRuntime errors [#815](https://github.com/oliver-moran/jimp/pull/815) ([@crutchcorn](https://github.com/crutchcorn) [@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 2
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
diff --git a/WechatBot/node_modules/@jimp/plugin-shadow/LICENSE b/WechatBot/node_modules/@jimp/plugin-shadow/LICENSE
deleted file mode 100644
index baa5d4850..000000000
--- a/WechatBot/node_modules/@jimp/plugin-shadow/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Oliver Moran
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/WechatBot/node_modules/@jimp/plugin-shadow/README.md b/WechatBot/node_modules/@jimp/plugin-shadow/README.md
deleted file mode 100644
index b068cd224..000000000
--- a/WechatBot/node_modules/@jimp/plugin-shadow/README.md
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
@jimp/plugin-shadow
-
Creates a shadow on an image.
-
-
-## Usage
-
-- @param {function(Error, Jimp)} options (optional)
- - opacity - opacity of the shadow between 0 and 1
- - size,- of the shadow
- - blur - how blurry the shadow is
- - x - x position of shadow
- - y - y position of shadow
-- @param {function(Error, Jimp)} cb (optional) a callback for when complete
-
-```js
-import jimp from "jimp";
-
-async function main() {
- const image = await jimp.read("test/image.png");
-
- image.shadow();
- // or
- image.shadow({ opacity: 0.8, size: 1.2, blur: 10, x: -75, y: -75 });
-}
-
-main();
-```
diff --git a/WechatBot/node_modules/@jimp/plugin-shadow/babel.config.js b/WechatBot/node_modules/@jimp/plugin-shadow/babel.config.js
deleted file mode 100755
index 13e2603a3..000000000
--- a/WechatBot/node_modules/@jimp/plugin-shadow/babel.config.js
+++ /dev/null
@@ -1,38 +0,0 @@
-module.exports = (api) => {
- api.cache(true);
-
- return {
- presets: [
- [
- "@babel/env",
- {
- useBuiltIns: "usage",
- },
- ],
- ],
-
- plugins: [
- "@babel/proposal-class-properties",
- "@babel/syntax-object-rest-spread",
- process.env.BABEL_ENV !== "module" && "add-module-exports",
- [
- "transform-inline-environment-variables",
- { include: ["BABEL_ENV", "ENV"] },
- ],
- ].filter(Boolean),
-
- env: {
- test: {
- plugins: ["istanbul"],
- },
- development: {
- plugins: [process.env.ENV !== "browser" && "source-map-support"].filter(
- Boolean
- ),
- },
- module: {
- presets: [["@babel/env", { modules: false }]],
- },
- },
- };
-};
diff --git a/WechatBot/node_modules/@jimp/plugin-shadow/dist/index.js b/WechatBot/node_modules/@jimp/plugin-shadow/dist/index.js
deleted file mode 100755
index 77a4cc116..000000000
--- a/WechatBot/node_modules/@jimp/plugin-shadow/dist/index.js
+++ /dev/null
@@ -1,77 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports["default"] = void 0;
-
-var _utils = require("@jimp/utils");
-
-/**
- * Creates a circle out of an image.
- * @param {function(Error, Jimp)} options (optional)
- * opacity - opacity of the shadow between 0 and 1
- * size,- of the shadow
- * blur - how blurry the shadow is
- * x- x position of shadow
- * y - y position of shadow
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
-var _default = function _default() {
- return {
- shadow: function shadow() {
- var _this = this;
-
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
- var cb = arguments.length > 1 ? arguments[1] : undefined;
-
- if (typeof options === "function") {
- cb = options;
- options = {};
- }
-
- var _options = options,
- _options$opacity = _options.opacity,
- opacity = _options$opacity === void 0 ? 0.7 : _options$opacity,
- _options$size = _options.size,
- size = _options$size === void 0 ? 1.1 : _options$size,
- _options$x = _options.x,
- x = _options$x === void 0 ? -25 : _options$x,
- _options$y = _options.y,
- y = _options$y === void 0 ? 25 : _options$y,
- _options$blur = _options.blur,
- blur = _options$blur === void 0 ? 5 : _options$blur; // clone the image
-
- var orig = this.clone();
- var shadow = this.clone(); // turn all it's pixels black
-
- shadow.scan(0, 0, shadow.bitmap.width, shadow.bitmap.height, function (x, y, idx) {
- shadow.bitmap.data[idx] = 0x00;
- shadow.bitmap.data[idx + 1] = 0x00;
- shadow.bitmap.data[idx + 2] = 0x00; // up the opacity a little,
-
- shadow.bitmap.data[idx + 3] = shadow.constructor.limit255(shadow.bitmap.data[idx + 3] * opacity);
- _this.bitmap.data[idx] = 0x00;
- _this.bitmap.data[idx + 1] = 0x00;
- _this.bitmap.data[idx + 2] = 0x00;
- _this.bitmap.data[idx + 3] = 0x00;
- }); // enlarge it. This creates a "shadow".
-
- shadow.resize(shadow.bitmap.width * size, shadow.bitmap.height * size).blur(blur); // Then blit the "shadow" onto the background and the image on top of that.
-
- this.composite(shadow, x, y);
- this.composite(orig, 0, 0);
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- }
- };
-};
-
-exports["default"] = _default;
-module.exports = exports.default;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-shadow/dist/index.js.map b/WechatBot/node_modules/@jimp/plugin-shadow/dist/index.js.map
deleted file mode 100644
index 9fd966120..000000000
--- a/WechatBot/node_modules/@jimp/plugin-shadow/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/index.js"],"names":["shadow","options","cb","opacity","size","x","y","blur","orig","clone","scan","bitmap","width","height","idx","data","constructor","limit255","resize","composite","call"],"mappings":";;;;;;;AAAA;;AAEA;;;;;;;;;;;eAWe;AAAA,SAAO;AACpBA,IAAAA,MADoB,oBACK;AAAA;;AAAA,UAAlBC,OAAkB,uEAAR,EAAQ;AAAA,UAAJC,EAAI;;AACvB,UAAI,OAAOD,OAAP,KAAmB,UAAvB,EAAmC;AACjCC,QAAAA,EAAE,GAAGD,OAAL;AACAA,QAAAA,OAAO,GAAG,EAAV;AACD;;AAJsB,qBAM0CA,OAN1C;AAAA,sCAMfE,OANe;AAAA,UAMfA,OANe,iCAML,GANK;AAAA,mCAMAC,IANA;AAAA,UAMAA,IANA,8BAMO,GANP;AAAA,gCAMYC,CANZ;AAAA,UAMYA,CANZ,2BAMgB,CAAC,EANjB;AAAA,gCAMqBC,CANrB;AAAA,UAMqBA,CANrB,2BAMyB,EANzB;AAAA,mCAM6BC,IAN7B;AAAA,UAM6BA,IAN7B,8BAMoC,CANpC,kBAQvB;;AACA,UAAMC,IAAI,GAAG,KAAKC,KAAL,EAAb;AACA,UAAMT,MAAM,GAAG,KAAKS,KAAL,EAAf,CAVuB,CAYvB;;AACAT,MAAAA,MAAM,CAACU,IAAP,CACE,CADF,EAEE,CAFF,EAGEV,MAAM,CAACW,MAAP,CAAcC,KAHhB,EAIEZ,MAAM,CAACW,MAAP,CAAcE,MAJhB,EAKE,UAACR,CAAD,EAAIC,CAAJ,EAAOQ,GAAP,EAAe;AACbd,QAAAA,MAAM,CAACW,MAAP,CAAcI,IAAd,CAAmBD,GAAnB,IAA0B,IAA1B;AACAd,QAAAA,MAAM,CAACW,MAAP,CAAcI,IAAd,CAAmBD,GAAG,GAAG,CAAzB,IAA8B,IAA9B;AACAd,QAAAA,MAAM,CAACW,MAAP,CAAcI,IAAd,CAAmBD,GAAG,GAAG,CAAzB,IAA8B,IAA9B,CAHa,CAIb;;AACAd,QAAAA,MAAM,CAACW,MAAP,CAAcI,IAAd,CAAmBD,GAAG,GAAG,CAAzB,IAA8Bd,MAAM,CAACgB,WAAP,CAAmBC,QAAnB,CAC5BjB,MAAM,CAACW,MAAP,CAAcI,IAAd,CAAmBD,GAAG,GAAG,CAAzB,IAA8BX,OADF,CAA9B;AAIA,QAAA,KAAI,CAACQ,MAAL,CAAYI,IAAZ,CAAiBD,GAAjB,IAAwB,IAAxB;AACA,QAAA,KAAI,CAACH,MAAL,CAAYI,IAAZ,CAAiBD,GAAG,GAAG,CAAvB,IAA4B,IAA5B;AACA,QAAA,KAAI,CAACH,MAAL,CAAYI,IAAZ,CAAiBD,GAAG,GAAG,CAAvB,IAA4B,IAA5B;AACA,QAAA,KAAI,CAACH,MAAL,CAAYI,IAAZ,CAAiBD,GAAG,GAAG,CAAvB,IAA4B,IAA5B;AACD,OAlBH,EAbuB,CAkCvB;;AACAd,MAAAA,MAAM,CACHkB,MADH,CACUlB,MAAM,CAACW,MAAP,CAAcC,KAAd,GAAsBR,IADhC,EACsCJ,MAAM,CAACW,MAAP,CAAcE,MAAd,GAAuBT,IAD7D,EAEGG,IAFH,CAEQA,IAFR,EAnCuB,CAuCvB;;AACA,WAAKY,SAAL,CAAenB,MAAf,EAAuBK,CAAvB,EAA0BC,CAA1B;AACA,WAAKa,SAAL,CAAeX,IAAf,EAAqB,CAArB,EAAwB,CAAxB;;AAEA,UAAI,0BAAcN,EAAd,CAAJ,EAAuB;AACrBA,QAAAA,EAAE,CAACkB,IAAH,CAAQ,IAAR,EAAc,IAAd,EAAoB,IAApB;AACD;;AAED,aAAO,IAAP;AACD;AAjDmB,GAAP;AAAA,C","sourcesContent":["import { isNodePattern } from \"@jimp/utils\";\n\n/**\n * Creates a circle out of an image.\n * @param {function(Error, Jimp)} options (optional)\n * opacity - opacity of the shadow between 0 and 1\n * size,- of the shadow\n * blur - how blurry the shadow is\n * x- x position of shadow\n * y - y position of shadow\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp} this for chaining of methods\n */\nexport default () => ({\n shadow(options = {}, cb) {\n if (typeof options === \"function\") {\n cb = options;\n options = {};\n }\n\n const { opacity = 0.7, size = 1.1, x = -25, y = 25, blur = 5 } = options;\n\n // clone the image\n const orig = this.clone();\n const shadow = this.clone();\n\n // turn all it's pixels black\n shadow.scan(\n 0,\n 0,\n shadow.bitmap.width,\n shadow.bitmap.height,\n (x, y, idx) => {\n shadow.bitmap.data[idx] = 0x00;\n shadow.bitmap.data[idx + 1] = 0x00;\n shadow.bitmap.data[idx + 2] = 0x00;\n // up the opacity a little,\n shadow.bitmap.data[idx + 3] = shadow.constructor.limit255(\n shadow.bitmap.data[idx + 3] * opacity\n );\n\n this.bitmap.data[idx] = 0x00;\n this.bitmap.data[idx + 1] = 0x00;\n this.bitmap.data[idx + 2] = 0x00;\n this.bitmap.data[idx + 3] = 0x00;\n }\n );\n\n // enlarge it. This creates a \"shadow\".\n shadow\n .resize(shadow.bitmap.width * size, shadow.bitmap.height * size)\n .blur(blur);\n\n // Then blit the \"shadow\" onto the background and the image on top of that.\n this.composite(shadow, x, y);\n this.composite(orig, 0, 0);\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n },\n});\n"],"file":"index.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-shadow/index.d.ts b/WechatBot/node_modules/@jimp/plugin-shadow/index.d.ts
deleted file mode 100644
index 4e3c4841b..000000000
--- a/WechatBot/node_modules/@jimp/plugin-shadow/index.d.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { ImageCallback } from "@jimp/core";
-
-interface Shadow {
- shadow(
- options?: {
- size?: number;
- opacity?: number;
- blur: number;
- x?: number;
- y?: number;
- },
- cb?: ImageCallback
- ): this;
- shadow(cb?: ImageCallback): this;
-}
-
-export default function (): Shadow;
diff --git a/WechatBot/node_modules/@jimp/plugin-shadow/package.json b/WechatBot/node_modules/@jimp/plugin-shadow/package.json
deleted file mode 100644
index a8e3ebbbc..000000000
--- a/WechatBot/node_modules/@jimp/plugin-shadow/package.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "name": "@jimp/plugin-shadow",
- "version": "0.16.13",
- "description": "Creates a shadow on an image.",
- "main": "dist/index.js",
- "module": "es/index.js",
- "types": "index.d.ts",
- "scripts": {
- "test": "cross-env BABEL_ENV=test mocha --require @babel/register",
- "test:watch": "npm run test -- --reporter min --watch",
- "test:coverage": "nyc npm run test",
- "build": "npm run build:node:production && npm run build:module",
- "build:watch": "npm run build:node:debug -- -- --watch --verbose",
- "build:debug": "npm run build:node:debug",
- "build:module": "cross-env BABEL_ENV=module babel src -d es --source-maps --config-file ../../babel.config.js",
- "build:node": "babel src -d dist --source-maps --config-file ../../babel.config.js",
- "build:node:debug": "cross-env BABEL_ENV=development npm run build:node",
- "build:node:production": "cross-env BABEL_ENV=production npm run build:node"
- },
- "author": "",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5",
- "@jimp/plugin-blur": ">=0.3.5",
- "@jimp/plugin-resize": ">=0.3.5"
- },
- "devDependencies": {
- "@jimp/custom": "^0.16.13",
- "@jimp/plugin-blur": "^0.16.13",
- "@jimp/plugin-resize": "^0.16.13",
- "@jimp/test-utils": "^0.16.13"
- },
- "publishConfig": {
- "access": "public"
- },
- "gitHead": "9eec86086634329a072901dca3a800b850548572"
-}
diff --git a/WechatBot/node_modules/@jimp/plugin-shadow/src/index.js b/WechatBot/node_modules/@jimp/plugin-shadow/src/index.js
deleted file mode 100755
index 81c23c41a..000000000
--- a/WechatBot/node_modules/@jimp/plugin-shadow/src/index.js
+++ /dev/null
@@ -1,64 +0,0 @@
-import { isNodePattern } from "@jimp/utils";
-
-/**
- * Creates a circle out of an image.
- * @param {function(Error, Jimp)} options (optional)
- * opacity - opacity of the shadow between 0 and 1
- * size,- of the shadow
- * blur - how blurry the shadow is
- * x- x position of shadow
- * y - y position of shadow
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
-export default () => ({
- shadow(options = {}, cb) {
- if (typeof options === "function") {
- cb = options;
- options = {};
- }
-
- const { opacity = 0.7, size = 1.1, x = -25, y = 25, blur = 5 } = options;
-
- // clone the image
- const orig = this.clone();
- const shadow = this.clone();
-
- // turn all it's pixels black
- shadow.scan(
- 0,
- 0,
- shadow.bitmap.width,
- shadow.bitmap.height,
- (x, y, idx) => {
- shadow.bitmap.data[idx] = 0x00;
- shadow.bitmap.data[idx + 1] = 0x00;
- shadow.bitmap.data[idx + 2] = 0x00;
- // up the opacity a little,
- shadow.bitmap.data[idx + 3] = shadow.constructor.limit255(
- shadow.bitmap.data[idx + 3] * opacity
- );
-
- this.bitmap.data[idx] = 0x00;
- this.bitmap.data[idx + 1] = 0x00;
- this.bitmap.data[idx + 2] = 0x00;
- this.bitmap.data[idx + 3] = 0x00;
- }
- );
-
- // enlarge it. This creates a "shadow".
- shadow
- .resize(shadow.bitmap.width * size, shadow.bitmap.height * size)
- .blur(blur);
-
- // Then blit the "shadow" onto the background and the image on top of that.
- this.composite(shadow, x, y);
- this.composite(orig, 0, 0);
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-shadow/test/images/shadow.png b/WechatBot/node_modules/@jimp/plugin-shadow/test/images/shadow.png
deleted file mode 100644
index 5564dbb38..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-shadow/test/images/shadow.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-shadow/test/shadow.test.js b/WechatBot/node_modules/@jimp/plugin-shadow/test/shadow.test.js
deleted file mode 100755
index 7f2e4dc9d..000000000
--- a/WechatBot/node_modules/@jimp/plugin-shadow/test/shadow.test.js
+++ /dev/null
@@ -1,31 +0,0 @@
-import { Jimp, mkJGD, getTestDir } from "@jimp/test-utils";
-import configure from "@jimp/custom";
-import resize from "@jimp/plugin-resize";
-import blur from "@jimp/plugin-blur";
-
-import shadow from "../src";
-
-const jimp = configure({ plugins: [shadow, resize, blur] }, Jimp);
-
-describe("Shadow", () => {
- it("creates a shadow", async () => {
- const expectedImg = await jimp.read(
- getTestDir(__dirname) + "/images/shadow.png"
- );
- const testImage = await jimp.read(
- mkJGD(
- " ",
- " ◆◆ ",
- " ◆▦▦◆ ",
- " ◆▦▦▦▦◆ ",
- " ◆▦▦◆ ",
- " ◆◆ ",
- " "
- )
- );
-
- testImage
- .shadow({ x: -1, y: 1, blur: 1 })
- .bitmap.data.should.be.deepEqual(expectedImg.bitmap.data);
- });
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-threshold/CHANGELOG.md b/WechatBot/node_modules/@jimp/plugin-threshold/CHANGELOG.md
deleted file mode 100644
index 8ad0c7836..000000000
--- a/WechatBot/node_modules/@jimp/plugin-threshold/CHANGELOG.md
+++ /dev/null
@@ -1,47 +0,0 @@
-# v0.16.3 (Sat Feb 04 2023)
-
-#### ⚠️ Pushed to `master`
-
-- upgrade prettier ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 1
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
----
-
-# v0.11.0 (Fri May 15 2020)
-
-#### 🚀 Enhancement
-
-- Removed Core-JS as a dependency. [#882](https://github.com/oliver-moran/jimp/pull/882) ([@EricRabil](https://github.com/EricRabil))
-
-#### Authors: 1
-
-- Eric Rabil ([@EricRabil](https://github.com/EricRabil))
-
----
-
-# v0.9.7 (Fri Mar 27 2020)
-
-#### 🐛 Bug Fix
-
-- Relax version range of plugin-threshold peerDependencies [#859](https://github.com/oliver-moran/jimp/pull/859) ([@pasieronen](https://github.com/pasieronen))
-
-#### Authors: 1
-
-- Pasi Eronen ([@pasieronen](https://github.com/pasieronen))
-
----
-
-# v0.9.3 (Tue Nov 26 2019)
-
-#### 🐛 Bug Fix
-
-- `@jimp/cli`, `@jimp/core`, `@jimp/custom`, `jimp`, `@jimp/plugin-blit`, `@jimp/plugin-blur`, `@jimp/plugin-circle`, `@jimp/plugin-color`, `@jimp/plugin-contain`, `@jimp/plugin-cover`, `@jimp/plugin-crop`, `@jimp/plugin-displace`, `@jimp/plugin-dither`, `@jimp/plugin-fisheye`, `@jimp/plugin-flip`, `@jimp/plugin-gaussian`, `@jimp/plugin-invert`, `@jimp/plugin-mask`, `@jimp/plugin-normalize`, `@jimp/plugin-print`, `@jimp/plugin-resize`, `@jimp/plugin-rotate`, `@jimp/plugin-scale`, `@jimp/plugin-shadow`, `@jimp/plugin-threshold`, `@jimp/plugins`, `@jimp/test-utils`, `@jimp/bmp`, `@jimp/gif`, `@jimp/jpeg`, `@jimp/png`, `@jimp/tiff`, `@jimp/types`, `@jimp/utils`
- - Fix regeneratorRuntime errors [#815](https://github.com/oliver-moran/jimp/pull/815) ([@crutchcorn](https://github.com/crutchcorn) [@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 2
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
diff --git a/WechatBot/node_modules/@jimp/plugin-threshold/LICENSE b/WechatBot/node_modules/@jimp/plugin-threshold/LICENSE
deleted file mode 100644
index baa5d4850..000000000
--- a/WechatBot/node_modules/@jimp/plugin-threshold/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Oliver Moran
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/WechatBot/node_modules/@jimp/plugin-threshold/README.md b/WechatBot/node_modules/@jimp/plugin-threshold/README.md
deleted file mode 100644
index 57271c3b2..000000000
--- a/WechatBot/node_modules/@jimp/plugin-threshold/README.md
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
@jimp/plugin-threshold
-
Lightens an image.
-
-
-This is useful as a simplified method for processing scanned drawings, signatures, etc
-
-## Usage
-
-- @param {number} options object
- - max: A number auto limited between 0 - 255
- - replace: (optional) A number auto limited between 0 - 255 (default 255)
- - autoGreyscale: (optional) A boolean whether to apply greyscale beforehand (default true)
-- @param {function(Error, Jimp)} cb (optional) a callback for when complete
-
-```js
-import jimp from "jimp";
-
-async function main() {
- const image = await jimp.read("test/image.png");
-
- image.threshold({ max: 150 });
- // or
- image.threshold({ max: 200, replace: 200, autoGreyscale: false });
-}
-
-main();
-```
diff --git a/WechatBot/node_modules/@jimp/plugin-threshold/babel.config.js b/WechatBot/node_modules/@jimp/plugin-threshold/babel.config.js
deleted file mode 100755
index 13e2603a3..000000000
--- a/WechatBot/node_modules/@jimp/plugin-threshold/babel.config.js
+++ /dev/null
@@ -1,38 +0,0 @@
-module.exports = (api) => {
- api.cache(true);
-
- return {
- presets: [
- [
- "@babel/env",
- {
- useBuiltIns: "usage",
- },
- ],
- ],
-
- plugins: [
- "@babel/proposal-class-properties",
- "@babel/syntax-object-rest-spread",
- process.env.BABEL_ENV !== "module" && "add-module-exports",
- [
- "transform-inline-environment-variables",
- { include: ["BABEL_ENV", "ENV"] },
- ],
- ].filter(Boolean),
-
- env: {
- test: {
- plugins: ["istanbul"],
- },
- development: {
- plugins: [process.env.ENV !== "browser" && "source-map-support"].filter(
- Boolean
- ),
- },
- module: {
- presets: [["@babel/env", { modules: false }]],
- },
- },
- };
-};
diff --git a/WechatBot/node_modules/@jimp/plugin-threshold/dist/index.js b/WechatBot/node_modules/@jimp/plugin-threshold/dist/index.js
deleted file mode 100755
index 398bd57e6..000000000
--- a/WechatBot/node_modules/@jimp/plugin-threshold/dist/index.js
+++ /dev/null
@@ -1,67 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports["default"] = void 0;
-
-var _utils = require("@jimp/utils");
-
-/**
- * Applies a minimum color threshold to a greyscale image. Converts image to greyscale by default
- * @param {number} options object
- * max: A number auto limited between 0 - 255
- * replace: (optional) A number auto limited between 0 - 255 (default 255)
- * autoGreyscale: (optional) A boolean whether to apply greyscale beforehand (default true)
- * @param {number} cb (optional) a callback for when complete
- * @return {this} this for chaining of methods
- */
-var _default = function _default() {
- return {
- threshold: function threshold(_ref, cb) {
- var _this = this;
-
- var max = _ref.max,
- _ref$replace = _ref.replace,
- replace = _ref$replace === void 0 ? 255 : _ref$replace,
- _ref$autoGreyscale = _ref.autoGreyscale,
- autoGreyscale = _ref$autoGreyscale === void 0 ? true : _ref$autoGreyscale;
-
- if (typeof max !== "number") {
- return _utils.throwError.call(this, "max must be a number", cb);
- }
-
- if (typeof replace !== "number") {
- return _utils.throwError.call(this, "replace must be a number", cb);
- }
-
- if (typeof autoGreyscale !== "boolean") {
- return _utils.throwError.call(this, "autoGreyscale must be a boolean", cb);
- }
-
- max = this.constructor.limit255(max);
- replace = this.constructor.limit255(replace);
-
- if (autoGreyscale) {
- this.greyscale();
- }
-
- this.scanQuiet(0, 0, this.bitmap.width, this.bitmap.height, function (x, y, idx) {
- var grey = _this.bitmap.data[idx] < max ? _this.bitmap.data[idx] : replace;
- _this.bitmap.data[idx] = grey;
- _this.bitmap.data[idx + 1] = grey;
- _this.bitmap.data[idx + 2] = grey;
- });
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- }
- };
-};
-
-exports["default"] = _default;
-module.exports = exports.default;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-threshold/dist/index.js.map b/WechatBot/node_modules/@jimp/plugin-threshold/dist/index.js.map
deleted file mode 100644
index 0fe673558..000000000
--- a/WechatBot/node_modules/@jimp/plugin-threshold/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/index.js"],"names":["threshold","cb","max","replace","autoGreyscale","throwError","call","constructor","limit255","greyscale","scanQuiet","bitmap","width","height","x","y","idx","grey","data"],"mappings":";;;;;;;AAAA;;AAEA;;;;;;;;;eASe;AAAA,SAAO;AACpBA,IAAAA,SADoB,2BACoCC,EADpC,EACwC;AAAA;;AAAA,UAAhDC,GAAgD,QAAhDA,GAAgD;AAAA,8BAA3CC,OAA2C;AAAA,UAA3CA,OAA2C,6BAAjC,GAAiC;AAAA,oCAA5BC,aAA4B;AAAA,UAA5BA,aAA4B,mCAAZ,IAAY;;AAC1D,UAAI,OAAOF,GAAP,KAAe,QAAnB,EAA6B;AAC3B,eAAOG,kBAAWC,IAAX,CAAgB,IAAhB,EAAsB,sBAAtB,EAA8CL,EAA9C,CAAP;AACD;;AAED,UAAI,OAAOE,OAAP,KAAmB,QAAvB,EAAiC;AAC/B,eAAOE,kBAAWC,IAAX,CAAgB,IAAhB,EAAsB,0BAAtB,EAAkDL,EAAlD,CAAP;AACD;;AAED,UAAI,OAAOG,aAAP,KAAyB,SAA7B,EAAwC;AACtC,eAAOC,kBAAWC,IAAX,CAAgB,IAAhB,EAAsB,iCAAtB,EAAyDL,EAAzD,CAAP;AACD;;AAEDC,MAAAA,GAAG,GAAG,KAAKK,WAAL,CAAiBC,QAAjB,CAA0BN,GAA1B,CAAN;AACAC,MAAAA,OAAO,GAAG,KAAKI,WAAL,CAAiBC,QAAjB,CAA0BL,OAA1B,CAAV;;AAEA,UAAIC,aAAJ,EAAmB;AACjB,aAAKK,SAAL;AACD;;AAED,WAAKC,SAAL,CAAe,CAAf,EAAkB,CAAlB,EAAqB,KAAKC,MAAL,CAAYC,KAAjC,EAAwC,KAAKD,MAAL,CAAYE,MAApD,EAA4D,UAACC,CAAD,EAAIC,CAAJ,EAAOC,GAAP,EAAe;AACzE,YAAMC,IAAI,GACR,KAAI,CAACN,MAAL,CAAYO,IAAZ,CAAiBF,GAAjB,IAAwBd,GAAxB,GAA8B,KAAI,CAACS,MAAL,CAAYO,IAAZ,CAAiBF,GAAjB,CAA9B,GAAsDb,OADxD;AAGA,QAAA,KAAI,CAACQ,MAAL,CAAYO,IAAZ,CAAiBF,GAAjB,IAAwBC,IAAxB;AACA,QAAA,KAAI,CAACN,MAAL,CAAYO,IAAZ,CAAiBF,GAAG,GAAG,CAAvB,IAA4BC,IAA5B;AACA,QAAA,KAAI,CAACN,MAAL,CAAYO,IAAZ,CAAiBF,GAAG,GAAG,CAAvB,IAA4BC,IAA5B;AACD,OAPD;;AASA,UAAI,0BAAchB,EAAd,CAAJ,EAAuB;AACrBA,QAAAA,EAAE,CAACK,IAAH,CAAQ,IAAR,EAAc,IAAd,EAAoB,IAApB;AACD;;AAED,aAAO,IAAP;AACD;AAnCmB,GAAP;AAAA,C","sourcesContent":["import { isNodePattern, throwError } from \"@jimp/utils\";\n\n/**\n * Applies a minimum color threshold to a greyscale image. Converts image to greyscale by default\n * @param {number} options object\n * max: A number auto limited between 0 - 255\n * replace: (optional) A number auto limited between 0 - 255 (default 255)\n * autoGreyscale: (optional) A boolean whether to apply greyscale beforehand (default true)\n * @param {number} cb (optional) a callback for when complete\n * @return {this} this for chaining of methods\n */\nexport default () => ({\n threshold({ max, replace = 255, autoGreyscale = true }, cb) {\n if (typeof max !== \"number\") {\n return throwError.call(this, \"max must be a number\", cb);\n }\n\n if (typeof replace !== \"number\") {\n return throwError.call(this, \"replace must be a number\", cb);\n }\n\n if (typeof autoGreyscale !== \"boolean\") {\n return throwError.call(this, \"autoGreyscale must be a boolean\", cb);\n }\n\n max = this.constructor.limit255(max);\n replace = this.constructor.limit255(replace);\n\n if (autoGreyscale) {\n this.greyscale();\n }\n\n this.scanQuiet(0, 0, this.bitmap.width, this.bitmap.height, (x, y, idx) => {\n const grey =\n this.bitmap.data[idx] < max ? this.bitmap.data[idx] : replace;\n\n this.bitmap.data[idx] = grey;\n this.bitmap.data[idx + 1] = grey;\n this.bitmap.data[idx + 2] = grey;\n });\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n },\n});\n"],"file":"index.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugin-threshold/index.d.ts b/WechatBot/node_modules/@jimp/plugin-threshold/index.d.ts
deleted file mode 100644
index 96ad193f4..000000000
--- a/WechatBot/node_modules/@jimp/plugin-threshold/index.d.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { ImageCallback } from "@jimp/core";
-
-interface Threshold {
- threshold(
- opts: {
- max: number;
- replace?: number;
- autoGreyscale?: boolean;
- },
- cb?: ImageCallback
- ): this;
-}
-
-export default function (): Threshold;
diff --git a/WechatBot/node_modules/@jimp/plugin-threshold/package.json b/WechatBot/node_modules/@jimp/plugin-threshold/package.json
deleted file mode 100644
index 6a4d57bf6..000000000
--- a/WechatBot/node_modules/@jimp/plugin-threshold/package.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "name": "@jimp/plugin-threshold",
- "version": "0.16.13",
- "description": "Lightens an image.",
- "main": "dist/index.js",
- "module": "es/index.js",
- "types": "index.d.ts",
- "scripts": {
- "test": "cross-env BABEL_ENV=test mocha --require @babel/register",
- "test:watch": "npm run test -- --reporter min --watch",
- "test:coverage": "nyc npm run test",
- "build": "npm run build:node:production && npm run build:module",
- "build:watch": "npm run build:node:debug -- -- --watch --verbose",
- "build:debug": "npm run build:node:debug",
- "build:module": "cross-env BABEL_ENV=module babel src -d es --source-maps --config-file ../../babel.config.js",
- "build:node": "babel src -d dist --source-maps --config-file ../../babel.config.js",
- "build:node:debug": "cross-env BABEL_ENV=development npm run build:node",
- "build:node:production": "cross-env BABEL_ENV=production npm run build:node"
- },
- "author": "",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5",
- "@jimp/plugin-color": ">=0.8.0",
- "@jimp/plugin-resize": ">=0.8.0"
- },
- "devDependencies": {
- "@jimp/custom": "^0.16.13",
- "@jimp/jpeg": "^0.16.13",
- "@jimp/plugin-color": "^0.16.13",
- "@jimp/plugin-resize": "^0.16.13",
- "@jimp/test-utils": "^0.16.13"
- },
- "publishConfig": {
- "access": "public"
- },
- "gitHead": "9eec86086634329a072901dca3a800b850548572"
-}
diff --git a/WechatBot/node_modules/@jimp/plugin-threshold/src/index.js b/WechatBot/node_modules/@jimp/plugin-threshold/src/index.js
deleted file mode 100755
index fad06bacf..000000000
--- a/WechatBot/node_modules/@jimp/plugin-threshold/src/index.js
+++ /dev/null
@@ -1,48 +0,0 @@
-import { isNodePattern, throwError } from "@jimp/utils";
-
-/**
- * Applies a minimum color threshold to a greyscale image. Converts image to greyscale by default
- * @param {number} options object
- * max: A number auto limited between 0 - 255
- * replace: (optional) A number auto limited between 0 - 255 (default 255)
- * autoGreyscale: (optional) A boolean whether to apply greyscale beforehand (default true)
- * @param {number} cb (optional) a callback for when complete
- * @return {this} this for chaining of methods
- */
-export default () => ({
- threshold({ max, replace = 255, autoGreyscale = true }, cb) {
- if (typeof max !== "number") {
- return throwError.call(this, "max must be a number", cb);
- }
-
- if (typeof replace !== "number") {
- return throwError.call(this, "replace must be a number", cb);
- }
-
- if (typeof autoGreyscale !== "boolean") {
- return throwError.call(this, "autoGreyscale must be a boolean", cb);
- }
-
- max = this.constructor.limit255(max);
- replace = this.constructor.limit255(replace);
-
- if (autoGreyscale) {
- this.greyscale();
- }
-
- this.scanQuiet(0, 0, this.bitmap.width, this.bitmap.height, (x, y, idx) => {
- const grey =
- this.bitmap.data[idx] < max ? this.bitmap.data[idx] : replace;
-
- this.bitmap.data[idx] = grey;
- this.bitmap.data[idx + 1] = grey;
- this.bitmap.data[idx + 2] = grey;
- });
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-});
diff --git a/WechatBot/node_modules/@jimp/plugin-threshold/test/images/hands.jpg b/WechatBot/node_modules/@jimp/plugin-threshold/test/images/hands.jpg
deleted file mode 100644
index c3a874ed0..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-threshold/test/images/hands.jpg and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-threshold/test/images/hands_mx200_rp255.jpg b/WechatBot/node_modules/@jimp/plugin-threshold/test/images/hands_mx200_rp255.jpg
deleted file mode 100644
index b0b851133..000000000
Binary files a/WechatBot/node_modules/@jimp/plugin-threshold/test/images/hands_mx200_rp255.jpg and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/plugin-threshold/test/threshold.test.js b/WechatBot/node_modules/@jimp/plugin-threshold/test/threshold.test.js
deleted file mode 100755
index 325f83136..000000000
--- a/WechatBot/node_modules/@jimp/plugin-threshold/test/threshold.test.js
+++ /dev/null
@@ -1,30 +0,0 @@
-import { Jimp, getTestDir } from "@jimp/test-utils";
-import configure from "@jimp/custom";
-import jpeg from "@jimp/jpeg";
-import color from "@jimp/plugin-color";
-import resize from "@jimp/plugin-resize";
-
-import threshold from "../src";
-
-const jimp = configure(
- { types: [jpeg], plugins: [threshold, color, resize] },
- Jimp
-);
-
-describe("Threshold", function () {
- this.timeout(15000);
-
- it("defines default threshold for lighter backgrounds", async () => {
- const expectedImage = await jimp.read(
- getTestDir(__dirname) + "/images/hands_mx200_rp255.jpg"
- );
- const testImage = await jimp.read(
- getTestDir(__dirname) + "/images/hands.jpg"
- );
-
- testImage
- .threshold({ max: 200, replace: 255 })
- .hash()
- .should.be.equal(expectedImage.hash());
- });
-});
diff --git a/WechatBot/node_modules/@jimp/plugins/CHANGELOG.md b/WechatBot/node_modules/@jimp/plugins/CHANGELOG.md
deleted file mode 100644
index dbaa66e5d..000000000
--- a/WechatBot/node_modules/@jimp/plugins/CHANGELOG.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# v0.16.3 (Sat Feb 04 2023)
-
-#### ⚠️ Pushed to `master`
-
-- upgrade prettier ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 1
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
----
-
-# v0.11.0 (Fri May 15 2020)
-
-#### 🚀 Enhancement
-
-- Removed Core-JS as a dependency. [#882](https://github.com/oliver-moran/jimp/pull/882) ([@EricRabil](https://github.com/EricRabil))
-
-#### Authors: 1
-
-- Eric Rabil ([@EricRabil](https://github.com/EricRabil))
-
----
-
-# v0.9.8 (Sat Mar 28 2020)
-
-#### 🐛 Bug Fix
-
-- Export the four missing plugins from plugin package [#866](https://github.com/oliver-moran/jimp/pull/866) ([@crutchcorn](https://github.com/crutchcorn))
-
-#### Authors: 1
-
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
-
----
-
-# v0.9.7 (Fri Mar 27 2020)
-
-#### 🐛 Bug Fix
-
-- Added missing plugins to the types [#863](https://github.com/oliver-moran/jimp/pull/863) ([@crutchcorn](https://github.com/crutchcorn))
-
-#### Authors: 1
-
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
-
----
-
-# v0.9.3 (Tue Nov 26 2019)
-
-#### 🐛 Bug Fix
-
-- `@jimp/cli`, `@jimp/core`, `@jimp/custom`, `jimp`, `@jimp/plugin-blit`, `@jimp/plugin-blur`, `@jimp/plugin-circle`, `@jimp/plugin-color`, `@jimp/plugin-contain`, `@jimp/plugin-cover`, `@jimp/plugin-crop`, `@jimp/plugin-displace`, `@jimp/plugin-dither`, `@jimp/plugin-fisheye`, `@jimp/plugin-flip`, `@jimp/plugin-gaussian`, `@jimp/plugin-invert`, `@jimp/plugin-mask`, `@jimp/plugin-normalize`, `@jimp/plugin-print`, `@jimp/plugin-resize`, `@jimp/plugin-rotate`, `@jimp/plugin-scale`, `@jimp/plugin-shadow`, `@jimp/plugin-threshold`, `@jimp/plugins`, `@jimp/test-utils`, `@jimp/bmp`, `@jimp/gif`, `@jimp/jpeg`, `@jimp/png`, `@jimp/tiff`, `@jimp/types`, `@jimp/utils`
- - Fix regeneratorRuntime errors [#815](https://github.com/oliver-moran/jimp/pull/815) ([@crutchcorn](https://github.com/crutchcorn) [@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 2
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
diff --git a/WechatBot/node_modules/@jimp/plugins/LICENSE b/WechatBot/node_modules/@jimp/plugins/LICENSE
deleted file mode 100644
index baa5d4850..000000000
--- a/WechatBot/node_modules/@jimp/plugins/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Oliver Moran
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/WechatBot/node_modules/@jimp/plugins/README.md b/WechatBot/node_modules/@jimp/plugins/README.md
deleted file mode 100644
index 11defb95c..000000000
--- a/WechatBot/node_modules/@jimp/plugins/README.md
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
@jimp/plugins
-
Default Jimp plugins.
-
-
-## Included Plugins
-
-- [blit](../plugin-blit)
-- [blur](../plugin-blur)
-- [color](../plugin-color)
-- [contain](../plugin-contain)
-- [cover](../plugin-cover)
-- [displace](../plugin-displace)
-- [dither](../plugin-dither)
-- [flip](../plugin-flip)
-- [gaussian](../plugin-gaussian)
-- [invert](../plugin-invert)
-- [mask](../plugin-mask)
-- [normalize](../plugin-normalize)
-- [print](../plugin-print)
-- [resize](../plugin-resize)
-- [rotate](../plugin-rotate)
-- [scale](../plugin-scale)
diff --git a/WechatBot/node_modules/@jimp/plugins/dist/index.js b/WechatBot/node_modules/@jimp/plugins/dist/index.js
deleted file mode 100755
index 9c98b5a41..000000000
--- a/WechatBot/node_modules/@jimp/plugins/dist/index.js
+++ /dev/null
@@ -1,76 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports["default"] = void 0;
-
-var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
-
-var _timm = require("timm");
-
-var _pluginBlit = _interopRequireDefault(require("@jimp/plugin-blit"));
-
-var _pluginBlur = _interopRequireDefault(require("@jimp/plugin-blur"));
-
-var _pluginCircle = _interopRequireDefault(require("@jimp/plugin-circle"));
-
-var _pluginColor = _interopRequireDefault(require("@jimp/plugin-color"));
-
-var _pluginContain = _interopRequireDefault(require("@jimp/plugin-contain"));
-
-var _pluginCover = _interopRequireDefault(require("@jimp/plugin-cover"));
-
-var _pluginCrop = _interopRequireDefault(require("@jimp/plugin-crop"));
-
-var _pluginDisplace = _interopRequireDefault(require("@jimp/plugin-displace"));
-
-var _pluginDither = _interopRequireDefault(require("@jimp/plugin-dither"));
-
-var _pluginFisheye = _interopRequireDefault(require("@jimp/plugin-fisheye"));
-
-var _pluginFlip = _interopRequireDefault(require("@jimp/plugin-flip"));
-
-var _pluginGaussian = _interopRequireDefault(require("@jimp/plugin-gaussian"));
-
-var _pluginInvert = _interopRequireDefault(require("@jimp/plugin-invert"));
-
-var _pluginMask = _interopRequireDefault(require("@jimp/plugin-mask"));
-
-var _pluginNormalize = _interopRequireDefault(require("@jimp/plugin-normalize"));
-
-var _pluginPrint = _interopRequireDefault(require("@jimp/plugin-print"));
-
-var _pluginResize = _interopRequireDefault(require("@jimp/plugin-resize"));
-
-var _pluginRotate = _interopRequireDefault(require("@jimp/plugin-rotate"));
-
-var _pluginScale = _interopRequireDefault(require("@jimp/plugin-scale"));
-
-var _pluginShadow = _interopRequireDefault(require("@jimp/plugin-shadow"));
-
-var _pluginThreshold = _interopRequireDefault(require("@jimp/plugin-threshold"));
-
-var plugins = [_pluginBlit["default"], _pluginBlur["default"], _pluginCircle["default"], _pluginColor["default"], _pluginContain["default"], _pluginCover["default"], _pluginCrop["default"], _pluginDisplace["default"], _pluginDither["default"], _pluginFisheye["default"], _pluginFlip["default"], _pluginGaussian["default"], _pluginInvert["default"], _pluginMask["default"], _pluginNormalize["default"], _pluginPrint["default"], _pluginResize["default"], _pluginRotate["default"], _pluginScale["default"], _pluginShadow["default"], _pluginThreshold["default"]];
-
-var _default = function _default(jimpEvChange) {
- var initializedPlugins = plugins.map(function (pluginModule) {
- var plugin = pluginModule(jimpEvChange) || {};
-
- if (!plugin["class"] && !plugin.constants) {
- // Default to class function
- plugin = {
- "class": plugin
- };
- }
-
- return plugin;
- });
- return _timm.mergeDeep.apply(void 0, (0, _toConsumableArray2["default"])(initializedPlugins));
-};
-
-exports["default"] = _default;
-module.exports = exports.default;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugins/dist/index.js.map b/WechatBot/node_modules/@jimp/plugins/dist/index.js.map
deleted file mode 100644
index 7abc2a381..000000000
--- a/WechatBot/node_modules/@jimp/plugins/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/index.js"],"names":["plugins","blit","blur","circle","color","contain","cover","crop","displace","dither","fisheye","flip","gaussian","invert","mask","normalize","print","resize","rotate","scale","shadow","threshold","jimpEvChange","initializedPlugins","map","pluginModule","plugin","constants","mergeDeep"],"mappings":";;;;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,OAAO,GAAG,CACdC,sBADc,EAEdC,sBAFc,EAGdC,wBAHc,EAIdC,uBAJc,EAKdC,yBALc,EAMdC,uBANc,EAOdC,sBAPc,EAQdC,0BARc,EASdC,wBATc,EAUdC,yBAVc,EAWdC,sBAXc,EAYdC,0BAZc,EAadC,wBAbc,EAcdC,sBAdc,EAedC,2BAfc,EAgBdC,uBAhBc,EAiBdC,wBAjBc,EAkBdC,wBAlBc,EAmBdC,uBAnBc,EAoBdC,wBApBc,EAqBdC,2BArBc,CAAhB;;eAwBe,kBAACC,YAAD,EAAkB;AAC/B,MAAMC,kBAAkB,GAAGvB,OAAO,CAACwB,GAAR,CAAY,UAACC,YAAD,EAAkB;AACvD,QAAIC,MAAM,GAAGD,YAAY,CAACH,YAAD,CAAZ,IAA8B,EAA3C;;AAEA,QAAI,CAACI,MAAM,SAAP,IAAiB,CAACA,MAAM,CAACC,SAA7B,EAAwC;AACtC;AACAD,MAAAA,MAAM,GAAG;AAAE,iBAAOA;AAAT,OAAT;AACD;;AAED,WAAOA,MAAP;AACD,GAT0B,CAA3B;AAWA,SAAOE,kEAAaL,kBAAb,EAAP;AACD,C","sourcesContent":["import { mergeDeep } from \"timm\";\n\nimport blit from \"@jimp/plugin-blit\";\nimport blur from \"@jimp/plugin-blur\";\nimport circle from \"@jimp/plugin-circle\";\nimport color from \"@jimp/plugin-color\";\nimport contain from \"@jimp/plugin-contain\";\nimport cover from \"@jimp/plugin-cover\";\nimport crop from \"@jimp/plugin-crop\";\nimport displace from \"@jimp/plugin-displace\";\nimport dither from \"@jimp/plugin-dither\";\nimport fisheye from \"@jimp/plugin-fisheye\";\nimport flip from \"@jimp/plugin-flip\";\nimport gaussian from \"@jimp/plugin-gaussian\";\nimport invert from \"@jimp/plugin-invert\";\nimport mask from \"@jimp/plugin-mask\";\nimport normalize from \"@jimp/plugin-normalize\";\nimport print from \"@jimp/plugin-print\";\nimport resize from \"@jimp/plugin-resize\";\nimport rotate from \"@jimp/plugin-rotate\";\nimport scale from \"@jimp/plugin-scale\";\nimport shadow from \"@jimp/plugin-shadow\";\nimport threshold from \"@jimp/plugin-threshold\";\n\nconst plugins = [\n blit,\n blur,\n circle,\n color,\n contain,\n cover,\n crop,\n displace,\n dither,\n fisheye,\n flip,\n gaussian,\n invert,\n mask,\n normalize,\n print,\n resize,\n rotate,\n scale,\n shadow,\n threshold,\n];\n\nexport default (jimpEvChange) => {\n const initializedPlugins = plugins.map((pluginModule) => {\n let plugin = pluginModule(jimpEvChange) || {};\n\n if (!plugin.class && !plugin.constants) {\n // Default to class function\n plugin = { class: plugin };\n }\n\n return plugin;\n });\n\n return mergeDeep(...initializedPlugins);\n};\n"],"file":"index.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/plugins/index.d.ts b/WechatBot/node_modules/@jimp/plugins/index.d.ts
deleted file mode 100644
index 0184bbcce..000000000
--- a/WechatBot/node_modules/@jimp/plugins/index.d.ts
+++ /dev/null
@@ -1,76 +0,0 @@
-import blit from "@jimp/plugin-blit";
-import blur from "@jimp/plugin-blur";
-import circle from "@jimp/plugin-circle";
-import color from "@jimp/plugin-color";
-import contain from "@jimp/plugin-contain";
-import cover from "@jimp/plugin-cover";
-import crop from "@jimp/plugin-crop";
-import displace from "@jimp/plugin-displace";
-import dither from "@jimp/plugin-dither";
-import fisheye from "@jimp/plugin-fisheye";
-import flip from "@jimp/plugin-flip";
-import gaussian from "@jimp/plugin-gaussian";
-import invert from "@jimp/plugin-invert";
-import mask from "@jimp/plugin-mask";
-import normalize from "@jimp/plugin-normalize";
-import print from "@jimp/plugin-print";
-import resize from "@jimp/plugin-resize";
-import rotate from "@jimp/plugin-rotate";
-import scale from "@jimp/plugin-scale";
-import shadow from "@jimp/plugin-shadow";
-import threshold from "@jimp/plugin-threshold";
-
-type BlitRet = ReturnType;
-type BlurRet = ReturnType;
-type CircleRet = ReturnType;
-type ColorRet = ReturnType;
-type ContainRet = ReturnType;
-type CoverRet = ReturnType;
-type CropRet = ReturnType;
-type DisplaceRet = ReturnType;
-type DitherRet = ReturnType;
-type FlipRet = ReturnType;
-type FisheyeRet = ReturnType;
-type GaussianRet = ReturnType;
-type InvertRet = ReturnType;
-type MaskRet = ReturnType;
-type NormalizeRet = ReturnType;
-type PrintRet = ReturnType;
-type ResizeRet = ReturnType;
-type RotateRet = ReturnType;
-type ScaleRet = ReturnType;
-type ShadowRet = ReturnType;
-type ThresholdRet = ReturnType;
-
-/**
- * This is made union and not intersection to avoid issues with
- * `IllformedPlugin` and `WellFormedPlugin` when using typings with Jimp
- * generic
- *
- * In reality, this should be an intersection but our type data isn't
- * clever enough to figure out what's a class and what's not/etc
- */
-type Plugins =
- | BlitRet
- | BlurRet
- | CircleRet
- | ColorRet
- | ContainRet
- | CoverRet
- | CropRet
- | DisplaceRet
- | DitherRet
- | FlipRet
- | FisheyeRet
- | GaussianRet
- | InvertRet
- | MaskRet
- | NormalizeRet
- | PrintRet
- | ResizeRet
- | RotateRet
- | ScaleRet
- | ShadowRet
- | ThresholdRet;
-
-export default function (): Plugins;
diff --git a/WechatBot/node_modules/@jimp/plugins/package.json b/WechatBot/node_modules/@jimp/plugins/package.json
deleted file mode 100644
index 6f3bcc225..000000000
--- a/WechatBot/node_modules/@jimp/plugins/package.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- "name": "@jimp/plugins",
- "version": "0.16.13",
- "description": "Default Jimp plugin.",
- "main": "dist/index.js",
- "module": "es/index.js",
- "types": "index.d.ts",
- "scripts": {
- "build": "npm run build:node:production && npm run build:module",
- "build:watch": "npm run build:node:debug -- -- --watch --verbose",
- "build:debug": "npm run build:node:debug",
- "build:module": "cross-env BABEL_ENV=module babel src -d es --source-maps --config-file ../../babel.config.js",
- "build:node": "babel src -d dist --source-maps --config-file ../../babel.config.js",
- "build:node:debug": "cross-env BABEL_ENV=development npm run build:node",
- "build:node:production": "cross-env BABEL_ENV=production npm run build:node"
- },
- "author": "",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/plugin-blit": "^0.16.13",
- "@jimp/plugin-blur": "^0.16.13",
- "@jimp/plugin-circle": "^0.16.13",
- "@jimp/plugin-color": "^0.16.13",
- "@jimp/plugin-contain": "^0.16.13",
- "@jimp/plugin-cover": "^0.16.13",
- "@jimp/plugin-crop": "^0.16.13",
- "@jimp/plugin-displace": "^0.16.13",
- "@jimp/plugin-dither": "^0.16.13",
- "@jimp/plugin-fisheye": "^0.16.13",
- "@jimp/plugin-flip": "^0.16.13",
- "@jimp/plugin-gaussian": "^0.16.13",
- "@jimp/plugin-invert": "^0.16.13",
- "@jimp/plugin-mask": "^0.16.13",
- "@jimp/plugin-normalize": "^0.16.13",
- "@jimp/plugin-print": "^0.16.13",
- "@jimp/plugin-resize": "^0.16.13",
- "@jimp/plugin-rotate": "^0.16.13",
- "@jimp/plugin-scale": "^0.16.13",
- "@jimp/plugin-shadow": "^0.16.13",
- "@jimp/plugin-threshold": "^0.16.13",
- "timm": "^1.6.1"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- },
- "publishConfig": {
- "access": "public"
- },
- "gitHead": "9eec86086634329a072901dca3a800b850548572"
-}
diff --git a/WechatBot/node_modules/@jimp/plugins/src/index.js b/WechatBot/node_modules/@jimp/plugins/src/index.js
deleted file mode 100755
index a31740cfc..000000000
--- a/WechatBot/node_modules/@jimp/plugins/src/index.js
+++ /dev/null
@@ -1,62 +0,0 @@
-import { mergeDeep } from "timm";
-
-import blit from "@jimp/plugin-blit";
-import blur from "@jimp/plugin-blur";
-import circle from "@jimp/plugin-circle";
-import color from "@jimp/plugin-color";
-import contain from "@jimp/plugin-contain";
-import cover from "@jimp/plugin-cover";
-import crop from "@jimp/plugin-crop";
-import displace from "@jimp/plugin-displace";
-import dither from "@jimp/plugin-dither";
-import fisheye from "@jimp/plugin-fisheye";
-import flip from "@jimp/plugin-flip";
-import gaussian from "@jimp/plugin-gaussian";
-import invert from "@jimp/plugin-invert";
-import mask from "@jimp/plugin-mask";
-import normalize from "@jimp/plugin-normalize";
-import print from "@jimp/plugin-print";
-import resize from "@jimp/plugin-resize";
-import rotate from "@jimp/plugin-rotate";
-import scale from "@jimp/plugin-scale";
-import shadow from "@jimp/plugin-shadow";
-import threshold from "@jimp/plugin-threshold";
-
-const plugins = [
- blit,
- blur,
- circle,
- color,
- contain,
- cover,
- crop,
- displace,
- dither,
- fisheye,
- flip,
- gaussian,
- invert,
- mask,
- normalize,
- print,
- resize,
- rotate,
- scale,
- shadow,
- threshold,
-];
-
-export default (jimpEvChange) => {
- const initializedPlugins = plugins.map((pluginModule) => {
- let plugin = pluginModule(jimpEvChange) || {};
-
- if (!plugin.class && !plugin.constants) {
- // Default to class function
- plugin = { class: plugin };
- }
-
- return plugin;
- });
-
- return mergeDeep(...initializedPlugins);
-};
diff --git a/WechatBot/node_modules/@jimp/png/CHANGELOG.md b/WechatBot/node_modules/@jimp/png/CHANGELOG.md
deleted file mode 100644
index cf26b5c36..000000000
--- a/WechatBot/node_modules/@jimp/png/CHANGELOG.md
+++ /dev/null
@@ -1,36 +0,0 @@
-# v0.16.3 (Sat Feb 04 2023)
-
-#### ⚠️ Pushed to `master`
-
-- update linting ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- upgrade prettier ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 1
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
----
-
-# v0.11.0 (Fri May 15 2020)
-
-#### 🚀 Enhancement
-
-- Removed Core-JS as a dependency. [#882](https://github.com/oliver-moran/jimp/pull/882) ([@EricRabil](https://github.com/EricRabil))
-
-#### Authors: 1
-
-- Eric Rabil ([@EricRabil](https://github.com/EricRabil))
-
----
-
-# v0.9.3 (Tue Nov 26 2019)
-
-#### 🐛 Bug Fix
-
-- `@jimp/cli`, `@jimp/core`, `@jimp/custom`, `jimp`, `@jimp/plugin-blit`, `@jimp/plugin-blur`, `@jimp/plugin-circle`, `@jimp/plugin-color`, `@jimp/plugin-contain`, `@jimp/plugin-cover`, `@jimp/plugin-crop`, `@jimp/plugin-displace`, `@jimp/plugin-dither`, `@jimp/plugin-fisheye`, `@jimp/plugin-flip`, `@jimp/plugin-gaussian`, `@jimp/plugin-invert`, `@jimp/plugin-mask`, `@jimp/plugin-normalize`, `@jimp/plugin-print`, `@jimp/plugin-resize`, `@jimp/plugin-rotate`, `@jimp/plugin-scale`, `@jimp/plugin-shadow`, `@jimp/plugin-threshold`, `@jimp/plugins`, `@jimp/test-utils`, `@jimp/bmp`, `@jimp/gif`, `@jimp/jpeg`, `@jimp/png`, `@jimp/tiff`, `@jimp/types`, `@jimp/utils`
- - Fix regeneratorRuntime errors [#815](https://github.com/oliver-moran/jimp/pull/815) ([@crutchcorn](https://github.com/crutchcorn) [@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 2
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
diff --git a/WechatBot/node_modules/@jimp/png/LICENSE b/WechatBot/node_modules/@jimp/png/LICENSE
deleted file mode 100644
index baa5d4850..000000000
--- a/WechatBot/node_modules/@jimp/png/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Oliver Moran
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/WechatBot/node_modules/@jimp/png/README.md b/WechatBot/node_modules/@jimp/png/README.md
deleted file mode 100644
index da13e4828..000000000
--- a/WechatBot/node_modules/@jimp/png/README.md
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
@jimp/png
-
Default Jimp png encoder/decoder.
-
-
-## Available Methods
-
-### Jimp.deflateLevel
-
-Sets the deflate level used when saving as PNG format (default is 9)
-
-### Jimp.deflateStrategy
-
-Sets the deflate strategy used when saving as PNG format (default is 3)
-
-### Jimp.filterType
-
-Sets the filter type used when saving as PNG format (default is automatic filters)
-
-### Jimp.colorType
-
-Sets the color type used when saving as PNG format (one of 0, 2, 4, 6)
-
-### Filter Types
-
-```js
-Jimp.PNG_FILTER_AUTO;
-Jimp.PNG_FILTER_NONE;
-Jimp.PNG_FILTER_SUB;
-Jimp.PNG_FILTER_UP;
-Jimp.PNG_FILTER_AVERAGE;
-Jimp.PNG_FILTER_PATH;
-```
diff --git a/WechatBot/node_modules/@jimp/png/dist/index.js b/WechatBot/node_modules/@jimp/png/dist/index.js
deleted file mode 100755
index 0c1a688e3..000000000
--- a/WechatBot/node_modules/@jimp/png/dist/index.js
+++ /dev/null
@@ -1,162 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports["default"] = void 0;
-
-var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
-
-var _pngjs = require("pngjs");
-
-var _utils = require("@jimp/utils");
-
-var MIME_TYPE = "image/png"; // PNG filter types
-
-var PNG_FILTER_AUTO = -1;
-var PNG_FILTER_NONE = 0;
-var PNG_FILTER_SUB = 1;
-var PNG_FILTER_UP = 2;
-var PNG_FILTER_AVERAGE = 3;
-var PNG_FILTER_PATH = 4;
-
-var _default = function _default() {
- return {
- mime: (0, _defineProperty2["default"])({}, MIME_TYPE, ["png"]),
- constants: {
- MIME_PNG: MIME_TYPE,
- PNG_FILTER_AUTO: PNG_FILTER_AUTO,
- PNG_FILTER_NONE: PNG_FILTER_NONE,
- PNG_FILTER_SUB: PNG_FILTER_SUB,
- PNG_FILTER_UP: PNG_FILTER_UP,
- PNG_FILTER_AVERAGE: PNG_FILTER_AVERAGE,
- PNG_FILTER_PATH: PNG_FILTER_PATH
- },
- hasAlpha: (0, _defineProperty2["default"])({}, MIME_TYPE, true),
- decoders: (0, _defineProperty2["default"])({}, MIME_TYPE, _pngjs.PNG.sync.read),
- encoders: (0, _defineProperty2["default"])({}, MIME_TYPE, function (data) {
- var png = new _pngjs.PNG({
- width: data.bitmap.width,
- height: data.bitmap.height
- });
- png.data = data.bitmap.data;
- return _pngjs.PNG.sync.write(png, {
- width: data.bitmap.width,
- height: data.bitmap.height,
- deflateLevel: data._deflateLevel,
- deflateStrategy: data._deflateStrategy,
- filterType: data._filterType,
- colorType: typeof data._colorType === "number" ? data._colorType : data._rgba ? 6 : 2,
- inputHasAlpha: data._rgba
- });
- }),
- "class": {
- _deflateLevel: 9,
- _deflateStrategy: 3,
- _filterType: PNG_FILTER_AUTO,
- _colorType: null,
-
- /**
- * Sets the deflate level used when saving as PNG format (default is 9)
- * @param {number} l Deflate level to use 0-9. 0 is no compression. 9 (default) is maximum compression.
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
- deflateLevel: function deflateLevel(l, cb) {
- if (typeof l !== "number") {
- return _utils.throwError.call(this, "l must be a number", cb);
- }
-
- if (l < 0 || l > 9) {
- return _utils.throwError.call(this, "l must be a number 0 - 9", cb);
- }
-
- this._deflateLevel = Math.round(l);
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-
- /**
- * Sets the deflate strategy used when saving as PNG format (default is 3)
- * @param {number} s Deflate strategy to use 0-3.
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
- deflateStrategy: function deflateStrategy(s, cb) {
- if (typeof s !== "number") {
- return _utils.throwError.call(this, "s must be a number", cb);
- }
-
- if (s < 0 || s > 3) {
- return _utils.throwError.call(this, "s must be a number 0 - 3", cb);
- }
-
- this._deflateStrategy = Math.round(s);
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-
- /**
- * Sets the filter type used when saving as PNG format (default is automatic filters)
- * @param {number} f The quality to use -1-4.
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
- filterType: function filterType(f, cb) {
- if (typeof f !== "number") {
- return _utils.throwError.call(this, "n must be a number", cb);
- }
-
- if (f < -1 || f > 4) {
- return _utils.throwError.call(this, "n must be -1 (auto) or a number 0 - 4", cb);
- }
-
- this._filterType = Math.round(f);
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-
- /**
- * Sets the color type used when saving as PNG format
- * @param {number} s color type to use 0, 2, 4, 6.
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
- colorType: function colorType(s, cb) {
- if (typeof s !== "number") {
- return _utils.throwError.call(this, "s must be a number", cb);
- }
-
- if (s !== 0 && s !== 2 && s !== 4 && s !== 6) {
- return _utils.throwError.call(this, "s must be a number 0, 2, 4, 6.", cb);
- }
-
- this._colorType = Math.round(s);
-
- if ((0, _utils.isNodePattern)(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- }
- }
- };
-};
-
-exports["default"] = _default;
-module.exports = exports.default;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/png/dist/index.js.map b/WechatBot/node_modules/@jimp/png/dist/index.js.map
deleted file mode 100644
index a5bbc076c..000000000
--- a/WechatBot/node_modules/@jimp/png/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/index.js"],"names":["MIME_TYPE","PNG_FILTER_AUTO","PNG_FILTER_NONE","PNG_FILTER_SUB","PNG_FILTER_UP","PNG_FILTER_AVERAGE","PNG_FILTER_PATH","mime","constants","MIME_PNG","hasAlpha","decoders","PNG","sync","read","encoders","data","png","width","bitmap","height","write","deflateLevel","_deflateLevel","deflateStrategy","_deflateStrategy","filterType","_filterType","colorType","_colorType","_rgba","inputHasAlpha","l","cb","throwError","call","Math","round","s","f"],"mappings":"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","sourcesContent":["import { PNG } from \"pngjs\";\nimport { throwError, isNodePattern } from \"@jimp/utils\";\n\nconst MIME_TYPE = \"image/png\";\n\n// PNG filter types\nconst PNG_FILTER_AUTO = -1;\nconst PNG_FILTER_NONE = 0;\nconst PNG_FILTER_SUB = 1;\nconst PNG_FILTER_UP = 2;\nconst PNG_FILTER_AVERAGE = 3;\nconst PNG_FILTER_PATH = 4;\n\nexport default () => ({\n mime: { [MIME_TYPE]: [\"png\"] },\n\n constants: {\n MIME_PNG: MIME_TYPE,\n PNG_FILTER_AUTO,\n PNG_FILTER_NONE,\n PNG_FILTER_SUB,\n PNG_FILTER_UP,\n PNG_FILTER_AVERAGE,\n PNG_FILTER_PATH,\n },\n\n hasAlpha: { [MIME_TYPE]: true },\n decoders: { [MIME_TYPE]: PNG.sync.read },\n encoders: {\n [MIME_TYPE](data) {\n const png = new PNG({\n width: data.bitmap.width,\n height: data.bitmap.height,\n });\n\n png.data = data.bitmap.data;\n\n return PNG.sync.write(png, {\n width: data.bitmap.width,\n height: data.bitmap.height,\n deflateLevel: data._deflateLevel,\n deflateStrategy: data._deflateStrategy,\n filterType: data._filterType,\n colorType:\n typeof data._colorType === \"number\"\n ? data._colorType\n : data._rgba\n ? 6\n : 2,\n inputHasAlpha: data._rgba,\n });\n },\n },\n\n class: {\n _deflateLevel: 9,\n _deflateStrategy: 3,\n _filterType: PNG_FILTER_AUTO,\n _colorType: null,\n\n /**\n * Sets the deflate level used when saving as PNG format (default is 9)\n * @param {number} l Deflate level to use 0-9. 0 is no compression. 9 (default) is maximum compression.\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp} this for chaining of methods\n */\n deflateLevel(l, cb) {\n if (typeof l !== \"number\") {\n return throwError.call(this, \"l must be a number\", cb);\n }\n\n if (l < 0 || l > 9) {\n return throwError.call(this, \"l must be a number 0 - 9\", cb);\n }\n\n this._deflateLevel = Math.round(l);\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n },\n\n /**\n * Sets the deflate strategy used when saving as PNG format (default is 3)\n * @param {number} s Deflate strategy to use 0-3.\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp} this for chaining of methods\n */\n deflateStrategy(s, cb) {\n if (typeof s !== \"number\") {\n return throwError.call(this, \"s must be a number\", cb);\n }\n\n if (s < 0 || s > 3) {\n return throwError.call(this, \"s must be a number 0 - 3\", cb);\n }\n\n this._deflateStrategy = Math.round(s);\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n },\n\n /**\n * Sets the filter type used when saving as PNG format (default is automatic filters)\n * @param {number} f The quality to use -1-4.\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp} this for chaining of methods\n */\n filterType(f, cb) {\n if (typeof f !== \"number\") {\n return throwError.call(this, \"n must be a number\", cb);\n }\n\n if (f < -1 || f > 4) {\n return throwError.call(\n this,\n \"n must be -1 (auto) or a number 0 - 4\",\n cb\n );\n }\n\n this._filterType = Math.round(f);\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n },\n /**\n * Sets the color type used when saving as PNG format\n * @param {number} s color type to use 0, 2, 4, 6.\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp} this for chaining of methods\n */ colorType(s, cb) {\n if (typeof s !== \"number\") {\n return throwError.call(this, \"s must be a number\", cb);\n }\n\n if (s !== 0 && s !== 2 && s !== 4 && s !== 6) {\n return throwError.call(this, \"s must be a number 0, 2, 4, 6.\", cb);\n }\n\n this._colorType = Math.round(s);\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n },\n },\n});\n"],"file":"index.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/png/index.d.ts b/WechatBot/node_modules/@jimp/png/index.d.ts
deleted file mode 100644
index 52bcda0c0..000000000
--- a/WechatBot/node_modules/@jimp/png/index.d.ts
+++ /dev/null
@@ -1,40 +0,0 @@
-import { DecoderFn, EncoderFn, ImageCallback } from "@jimp/core";
-
-interface PNGClass {
- _deflateLevel: number;
- _deflateStrategy: number;
- _filterType: number;
- _colorType: number;
- deflateLevel(l: number, cb?: ImageCallback): this;
- deflateStrategy(s: number, cb?: ImageCallback): this;
- filterType(f: number, cb?: ImageCallback): this;
- colorType(s: number, cb?: ImageCallback): this;
-}
-
-interface PNG {
- mime: { "image/png": string[] };
-
- hasAlpha: { "image/png": true };
-
- decoders: {
- "image/png": DecoderFn;
- };
- encoders: {
- "image/png": EncoderFn;
- };
-
- class: PNGClass;
-
- constants: {
- MIME_PNG: "image/png";
- // PNG filter types
- PNG_FILTER_AUTO: -1;
- PNG_FILTER_NONE: 0;
- PNG_FILTER_SUB: 1;
- PNG_FILTER_UP: 2;
- PNG_FILTER_AVERAGE: 3;
- PNG_FILTER_PATH: 4;
- };
-}
-
-export default function (): PNG;
diff --git a/WechatBot/node_modules/@jimp/png/package.json b/WechatBot/node_modules/@jimp/png/package.json
deleted file mode 100644
index eb0b0c68c..000000000
--- a/WechatBot/node_modules/@jimp/png/package.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "name": "@jimp/png",
- "version": "0.16.13",
- "description": "Default Jimp png encoder/decoder.",
- "main": "dist/index.js",
- "module": "es/index.js",
- "types": "index.d.ts",
- "scripts": {
- "test": "cross-env BABEL_ENV=test mocha --require @babel/register",
- "test:watch": "npm run test -- --reporter min --watch",
- "test:coverage": "nyc npm run test",
- "build": "npm run build:node:production && npm run build:module",
- "build:watch": "npm run build:node:debug -- -- --watch --verbose",
- "build:debug": "npm run build:node:debug",
- "build:module": "cross-env BABEL_ENV=module babel src -d es --source-maps --config-file ../../babel.config.js",
- "build:node": "babel src -d dist --source-maps --config-file ../../babel.config.js",
- "build:node:debug": "cross-env BABEL_ENV=development npm run build:node",
- "build:node:production": "cross-env BABEL_ENV=production npm run build:node"
- },
- "author": "",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13",
- "pngjs": "^3.3.3"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- },
- "devDependencies": {
- "@jimp/custom": "^0.16.13",
- "@jimp/test-utils": "^0.16.13"
- },
- "publishConfig": {
- "access": "public"
- },
- "gitHead": "9eec86086634329a072901dca3a800b850548572"
-}
diff --git a/WechatBot/node_modules/@jimp/png/src/index.js b/WechatBot/node_modules/@jimp/png/src/index.js
deleted file mode 100755
index 5a337f8b3..000000000
--- a/WechatBot/node_modules/@jimp/png/src/index.js
+++ /dev/null
@@ -1,159 +0,0 @@
-import { PNG } from "pngjs";
-import { throwError, isNodePattern } from "@jimp/utils";
-
-const MIME_TYPE = "image/png";
-
-// PNG filter types
-const PNG_FILTER_AUTO = -1;
-const PNG_FILTER_NONE = 0;
-const PNG_FILTER_SUB = 1;
-const PNG_FILTER_UP = 2;
-const PNG_FILTER_AVERAGE = 3;
-const PNG_FILTER_PATH = 4;
-
-export default () => ({
- mime: { [MIME_TYPE]: ["png"] },
-
- constants: {
- MIME_PNG: MIME_TYPE,
- PNG_FILTER_AUTO,
- PNG_FILTER_NONE,
- PNG_FILTER_SUB,
- PNG_FILTER_UP,
- PNG_FILTER_AVERAGE,
- PNG_FILTER_PATH,
- },
-
- hasAlpha: { [MIME_TYPE]: true },
- decoders: { [MIME_TYPE]: PNG.sync.read },
- encoders: {
- [MIME_TYPE](data) {
- const png = new PNG({
- width: data.bitmap.width,
- height: data.bitmap.height,
- });
-
- png.data = data.bitmap.data;
-
- return PNG.sync.write(png, {
- width: data.bitmap.width,
- height: data.bitmap.height,
- deflateLevel: data._deflateLevel,
- deflateStrategy: data._deflateStrategy,
- filterType: data._filterType,
- colorType:
- typeof data._colorType === "number"
- ? data._colorType
- : data._rgba
- ? 6
- : 2,
- inputHasAlpha: data._rgba,
- });
- },
- },
-
- class: {
- _deflateLevel: 9,
- _deflateStrategy: 3,
- _filterType: PNG_FILTER_AUTO,
- _colorType: null,
-
- /**
- * Sets the deflate level used when saving as PNG format (default is 9)
- * @param {number} l Deflate level to use 0-9. 0 is no compression. 9 (default) is maximum compression.
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
- deflateLevel(l, cb) {
- if (typeof l !== "number") {
- return throwError.call(this, "l must be a number", cb);
- }
-
- if (l < 0 || l > 9) {
- return throwError.call(this, "l must be a number 0 - 9", cb);
- }
-
- this._deflateLevel = Math.round(l);
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-
- /**
- * Sets the deflate strategy used when saving as PNG format (default is 3)
- * @param {number} s Deflate strategy to use 0-3.
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
- deflateStrategy(s, cb) {
- if (typeof s !== "number") {
- return throwError.call(this, "s must be a number", cb);
- }
-
- if (s < 0 || s > 3) {
- return throwError.call(this, "s must be a number 0 - 3", cb);
- }
-
- this._deflateStrategy = Math.round(s);
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
-
- /**
- * Sets the filter type used when saving as PNG format (default is automatic filters)
- * @param {number} f The quality to use -1-4.
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */
- filterType(f, cb) {
- if (typeof f !== "number") {
- return throwError.call(this, "n must be a number", cb);
- }
-
- if (f < -1 || f > 4) {
- return throwError.call(
- this,
- "n must be -1 (auto) or a number 0 - 4",
- cb
- );
- }
-
- this._filterType = Math.round(f);
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
- /**
- * Sets the color type used when saving as PNG format
- * @param {number} s color type to use 0, 2, 4, 6.
- * @param {function(Error, Jimp)} cb (optional) a callback for when complete
- * @returns {Jimp} this for chaining of methods
- */ colorType(s, cb) {
- if (typeof s !== "number") {
- return throwError.call(this, "s must be a number", cb);
- }
-
- if (s !== 0 && s !== 2 && s !== 4 && s !== 6) {
- return throwError.call(this, "s must be a number 0, 2, 4, 6.", cb);
- }
-
- this._colorType = Math.round(s);
-
- if (isNodePattern(cb)) {
- cb.call(this, null, this);
- }
-
- return this;
- },
- },
-});
diff --git a/WechatBot/node_modules/@jimp/png/test/images/dice.png b/WechatBot/node_modules/@jimp/png/test/images/dice.png
deleted file mode 100644
index b28653fb7..000000000
Binary files a/WechatBot/node_modules/@jimp/png/test/images/dice.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/png/test/images/options.png b/WechatBot/node_modules/@jimp/png/test/images/options.png
deleted file mode 100644
index 5358c02ad..000000000
Binary files a/WechatBot/node_modules/@jimp/png/test/images/options.png and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/png/test/png.test.js b/WechatBot/node_modules/@jimp/png/test/png.test.js
deleted file mode 100755
index cad4a49b3..000000000
--- a/WechatBot/node_modules/@jimp/png/test/png.test.js
+++ /dev/null
@@ -1,60 +0,0 @@
-import { Jimp, getTestDir } from "@jimp/test-utils";
-import configure from "@jimp/custom";
-
-import png from "../src";
-
-const jimp = configure({ types: [png] }, Jimp);
-
-describe("PNG", () => {
- const imagesDir = getTestDir(__dirname) + "/images";
-
- it("load PNG", async () => {
- const image = await jimp.read(imagesDir + "/dice.png");
-
- image.getPixelColor(10, 10).should.be.equal(0x00000000);
- image.getPixelColor(160, 80).should.be.equal(0x1c1cd4ff);
- image.getPixelColor(400, 250).should.be.equal(0x7e0c0cda);
- });
-
- it("export PNG", async () => {
- const jgd = await jimp.read({
- width: 3,
- height: 3,
- data: [
- 0xff0000ff, 0xff0080ff, 0xff00ffff, 0xff0080ff, 0xff00ffff, 0x8000ffff,
- 0xff00ffff, 0x8000ffff, 0x0000ffff,
- ],
- });
- const buffer = await jgd.getBufferAsync("image/png");
-
- buffer.toString().should.match(/^.PNG\r\n/);
- });
-
- it("should use png options", async () => {
- const jgd = await jimp.read({
- width: 20,
- height: 20,
- data: [
- 0xff0000ff, 0xff0080ff, 0xff00ffff, 0xff0080ff, 0xff00ffff, 0x8000ffff,
- 0xff00ffff, 0x8000ffff, 0x0000ffff, 0xff0000ff, 0xff0080ff, 0xff00ffff,
- 0xff0080ff, 0xff00ffff, 0x8000ffff, 0xff00ffff, 0x8000ffff, 0x0000ffff,
- 0xff0000ff, 0xff0080ff, 0xff00ffff, 0xff0080ff, 0xff00ffff, 0x8000ffff,
- 0xff00ffff, 0x8000ffff, 0x0000ffff, 0xff0000ff, 0xff0080ff, 0xff00ffff,
- 0xff0080ff, 0xff00ffff, 0x8000ffff, 0xff00ffff, 0x8000ffff, 0x0000ffff,
- ],
- });
-
- const image = await jgd
- .deflateStrategy(0)
- .colorType(0)
- .getBufferAsync(Jimp.MIME_PNG);
-
- const expected = await jimp.read(imagesDir + "/options.png");
- const expectedBuffer = await expected
- .deflateStrategy(0)
- .colorType(0)
- .getBufferAsync(Jimp.MIME_PNG);
-
- image.should.be.deepEqual(expectedBuffer);
- });
-});
diff --git a/WechatBot/node_modules/@jimp/tiff/CHANGELOG.md b/WechatBot/node_modules/@jimp/tiff/CHANGELOG.md
deleted file mode 100644
index 4eb3193f9..000000000
--- a/WechatBot/node_modules/@jimp/tiff/CHANGELOG.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# v0.16.3 (Sat Feb 04 2023)
-
-#### ⚠️ Pushed to `master`
-
-- upgrade prettier ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 1
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
----
-
-# v0.11.0 (Fri May 15 2020)
-
-#### 🚀 Enhancement
-
-- Removed Core-JS as a dependency. [#882](https://github.com/oliver-moran/jimp/pull/882) ([@EricRabil](https://github.com/EricRabil))
-
-#### Authors: 1
-
-- Eric Rabil ([@EricRabil](https://github.com/EricRabil))
-
----
-
-# v0.9.3 (Tue Nov 26 2019)
-
-#### 🐛 Bug Fix
-
-- `@jimp/cli`, `@jimp/core`, `@jimp/custom`, `jimp`, `@jimp/plugin-blit`, `@jimp/plugin-blur`, `@jimp/plugin-circle`, `@jimp/plugin-color`, `@jimp/plugin-contain`, `@jimp/plugin-cover`, `@jimp/plugin-crop`, `@jimp/plugin-displace`, `@jimp/plugin-dither`, `@jimp/plugin-fisheye`, `@jimp/plugin-flip`, `@jimp/plugin-gaussian`, `@jimp/plugin-invert`, `@jimp/plugin-mask`, `@jimp/plugin-normalize`, `@jimp/plugin-print`, `@jimp/plugin-resize`, `@jimp/plugin-rotate`, `@jimp/plugin-scale`, `@jimp/plugin-shadow`, `@jimp/plugin-threshold`, `@jimp/plugins`, `@jimp/test-utils`, `@jimp/bmp`, `@jimp/gif`, `@jimp/jpeg`, `@jimp/png`, `@jimp/tiff`, `@jimp/types`, `@jimp/utils`
- - Fix regeneratorRuntime errors [#815](https://github.com/oliver-moran/jimp/pull/815) ([@crutchcorn](https://github.com/crutchcorn) [@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 2
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
diff --git a/WechatBot/node_modules/@jimp/tiff/LICENSE b/WechatBot/node_modules/@jimp/tiff/LICENSE
deleted file mode 100644
index baa5d4850..000000000
--- a/WechatBot/node_modules/@jimp/tiff/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Oliver Moran
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/WechatBot/node_modules/@jimp/tiff/README.md b/WechatBot/node_modules/@jimp/tiff/README.md
deleted file mode 100644
index 3f3a92d78..000000000
--- a/WechatBot/node_modules/@jimp/tiff/README.md
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
@jimp/tiff
-
Default Jimp tiff encoder/decoder.
-
diff --git a/WechatBot/node_modules/@jimp/tiff/dist/index.js b/WechatBot/node_modules/@jimp/tiff/dist/index.js
deleted file mode 100755
index 9eeca7e23..000000000
--- a/WechatBot/node_modules/@jimp/tiff/dist/index.js
+++ /dev/null
@@ -1,47 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports["default"] = void 0;
-
-var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
-
-var _utif = _interopRequireDefault(require("utif"));
-
-var MIME_TYPE = "image/tiff";
-
-var _default = function _default() {
- return {
- mime: (0, _defineProperty2["default"])({}, MIME_TYPE, ["tiff", "tif"]),
- constants: {
- MIME_TIFF: MIME_TYPE
- },
- decoders: (0, _defineProperty2["default"])({}, MIME_TYPE, function (data) {
- var ifds = _utif["default"].decode(data);
-
- var page = ifds[0];
-
- _utif["default"].decodeImages(data, ifds);
-
- var rgba = _utif["default"].toRGBA8(page);
-
- return {
- data: Buffer.from(rgba),
- width: page.t256[0],
- height: page.t257[0]
- };
- }),
- encoders: (0, _defineProperty2["default"])({}, MIME_TYPE, function (image) {
- var tiff = _utif["default"].encodeImage(image.bitmap.data, image.bitmap.width, image.bitmap.height);
-
- return Buffer.from(tiff);
- })
- };
-};
-
-exports["default"] = _default;
-module.exports = exports.default;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/tiff/dist/index.js.map b/WechatBot/node_modules/@jimp/tiff/dist/index.js.map
deleted file mode 100644
index 743e3f191..000000000
--- a/WechatBot/node_modules/@jimp/tiff/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/index.js"],"names":["MIME_TYPE","mime","constants","MIME_TIFF","decoders","data","ifds","UTIF","decode","page","decodeImages","rgba","toRGBA8","Buffer","from","width","t256","height","t257","encoders","image","tiff","encodeImage","bitmap"],"mappings":";;;;;;;;;;;AAAA;;AAEA,IAAMA,SAAS,GAAG,YAAlB;;eAEe;AAAA,SAAO;AACpBC,IAAAA,IAAI,uCAAKD,SAAL,EAAiB,CAAC,MAAD,EAAS,KAAT,CAAjB,CADgB;AAGpBE,IAAAA,SAAS,EAAE;AACTC,MAAAA,SAAS,EAAEH;AADF,KAHS;AAOpBI,IAAAA,QAAQ,uCACLJ,SADK,EACO,UAACK,IAAD,EAAU;AACrB,UAAMC,IAAI,GAAGC,iBAAKC,MAAL,CAAYH,IAAZ,CAAb;;AACA,UAAMI,IAAI,GAAGH,IAAI,CAAC,CAAD,CAAjB;;AACAC,uBAAKG,YAAL,CAAkBL,IAAlB,EAAwBC,IAAxB;;AACA,UAAMK,IAAI,GAAGJ,iBAAKK,OAAL,CAAaH,IAAb,CAAb;;AAEA,aAAO;AACLJ,QAAAA,IAAI,EAAEQ,MAAM,CAACC,IAAP,CAAYH,IAAZ,CADD;AAELI,QAAAA,KAAK,EAAEN,IAAI,CAACO,IAAL,CAAU,CAAV,CAFF;AAGLC,QAAAA,MAAM,EAAER,IAAI,CAACS,IAAL,CAAU,CAAV;AAHH,OAAP;AAKD,KAZK,CAPY;AAsBpBC,IAAAA,QAAQ,uCACLnB,SADK,EACO,UAACoB,KAAD,EAAW;AACtB,UAAMC,IAAI,GAAGd,iBAAKe,WAAL,CACXF,KAAK,CAACG,MAAN,CAAalB,IADF,EAEXe,KAAK,CAACG,MAAN,CAAaR,KAFF,EAGXK,KAAK,CAACG,MAAN,CAAaN,MAHF,CAAb;;AAMA,aAAOJ,MAAM,CAACC,IAAP,CAAYO,IAAZ,CAAP;AACD,KATK;AAtBY,GAAP;AAAA,C","sourcesContent":["import UTIF from \"utif\";\n\nconst MIME_TYPE = \"image/tiff\";\n\nexport default () => ({\n mime: { [MIME_TYPE]: [\"tiff\", \"tif\"] },\n\n constants: {\n MIME_TIFF: MIME_TYPE,\n },\n\n decoders: {\n [MIME_TYPE]: (data) => {\n const ifds = UTIF.decode(data);\n const page = ifds[0];\n UTIF.decodeImages(data, ifds);\n const rgba = UTIF.toRGBA8(page);\n\n return {\n data: Buffer.from(rgba),\n width: page.t256[0],\n height: page.t257[0],\n };\n },\n },\n\n encoders: {\n [MIME_TYPE]: (image) => {\n const tiff = UTIF.encodeImage(\n image.bitmap.data,\n image.bitmap.width,\n image.bitmap.height\n );\n\n return Buffer.from(tiff);\n },\n },\n});\n"],"file":"index.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/tiff/index.d.ts b/WechatBot/node_modules/@jimp/tiff/index.d.ts
deleted file mode 100644
index 851d73838..000000000
--- a/WechatBot/node_modules/@jimp/tiff/index.d.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { DecoderFn, EncoderFn } from "@jimp/core";
-
-interface Tiff {
- mime: { "image/tiff": string[] };
- decoders: {
- "image/tiff": DecoderFn;
- };
- encoders: {
- "image/tiff": EncoderFn;
- };
- constants: {
- MIME_TIFF: "image/tiff";
- };
-}
-
-export default function (): Tiff;
diff --git a/WechatBot/node_modules/@jimp/tiff/package.json b/WechatBot/node_modules/@jimp/tiff/package.json
deleted file mode 100644
index be7b1c1e0..000000000
--- a/WechatBot/node_modules/@jimp/tiff/package.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "name": "@jimp/tiff",
- "version": "0.16.13",
- "description": "Default Jimp tiff encoder/decoder.",
- "main": "dist/index.js",
- "module": "es/index.js",
- "types": "index.d.ts",
- "scripts": {
- "test": "cross-env BABEL_ENV=test mocha --require @babel/register",
- "test:watch": "npm run test -- --reporter min --watch",
- "test:coverage": "nyc npm run test",
- "build": "npm run build:node:production && npm run build:module",
- "build:watch": "npm run build:node:debug -- -- --watch --verbose",
- "build:debug": "npm run build:node:debug",
- "build:module": "cross-env BABEL_ENV=module babel src -d es --source-maps --config-file ../../babel.config.js",
- "build:node": "babel src -d dist --source-maps --config-file ../../babel.config.js",
- "build:node:debug": "cross-env BABEL_ENV=development npm run build:node",
- "build:node:production": "cross-env BABEL_ENV=production npm run build:node"
- },
- "author": "",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "utif": "^2.0.1"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- },
- "devDependencies": {
- "@jimp/custom": "^0.16.13",
- "@jimp/test-utils": "^0.16.13"
- },
- "publishConfig": {
- "access": "public"
- },
- "gitHead": "9eec86086634329a072901dca3a800b850548572"
-}
diff --git a/WechatBot/node_modules/@jimp/tiff/src/index.js b/WechatBot/node_modules/@jimp/tiff/src/index.js
deleted file mode 100755
index 9035f80d1..000000000
--- a/WechatBot/node_modules/@jimp/tiff/src/index.js
+++ /dev/null
@@ -1,38 +0,0 @@
-import UTIF from "utif";
-
-const MIME_TYPE = "image/tiff";
-
-export default () => ({
- mime: { [MIME_TYPE]: ["tiff", "tif"] },
-
- constants: {
- MIME_TIFF: MIME_TYPE,
- },
-
- decoders: {
- [MIME_TYPE]: (data) => {
- const ifds = UTIF.decode(data);
- const page = ifds[0];
- UTIF.decodeImages(data, ifds);
- const rgba = UTIF.toRGBA8(page);
-
- return {
- data: Buffer.from(rgba),
- width: page.t256[0],
- height: page.t257[0],
- };
- },
- },
-
- encoders: {
- [MIME_TYPE]: (image) => {
- const tiff = UTIF.encodeImage(
- image.bitmap.data,
- image.bitmap.width,
- image.bitmap.height
- );
-
- return Buffer.from(tiff);
- },
- },
-});
diff --git a/WechatBot/node_modules/@jimp/tiff/test/images/rgb.tiff b/WechatBot/node_modules/@jimp/tiff/test/images/rgb.tiff
deleted file mode 100644
index b795bcdc3..000000000
Binary files a/WechatBot/node_modules/@jimp/tiff/test/images/rgb.tiff and /dev/null differ
diff --git a/WechatBot/node_modules/@jimp/tiff/test/tiff.test.js b/WechatBot/node_modules/@jimp/tiff/test/tiff.test.js
deleted file mode 100755
index 05211f28f..000000000
--- a/WechatBot/node_modules/@jimp/tiff/test/tiff.test.js
+++ /dev/null
@@ -1,34 +0,0 @@
-import { Jimp, getTestDir } from "@jimp/test-utils";
-import configure from "@jimp/custom";
-
-import tiff from "../src";
-
-const jimp = configure({ types: [tiff] }, Jimp);
-
-describe("TIFF", () => {
- const imagesDir = getTestDir(__dirname) + "/images";
-
- it("load TIFF", async () => {
- const image = await jimp.read(imagesDir + "/rgb.tiff");
-
- image.getPixelColor(10, 10).should.be.equal(0xa4988bff);
- image.getPixelColor(220, 190).should.be.equal(0xe0d7ddff);
- image.getPixelColor(350, 130).should.be.equal(0x565433ff);
- });
-
- const simpleJGD = {
- width: 3,
- height: 3,
- data: [
- 0xff0000ff, 0xff0080ff, 0xff00ffff, 0xff0080ff, 0xff00ffff, 0x8000ffff,
- 0xff00ffff, 0x8000ffff, 0x0000ffff,
- ],
- };
-
- it("export TIFF", async () => {
- const image = await jimp.read(simpleJGD);
- const buffer = await image.getBufferAsync("image/tiff");
-
- buffer.toString().should.match(/^MM\u0000*\u0000/);
- });
-});
diff --git a/WechatBot/node_modules/@jimp/types/CHANGELOG.md b/WechatBot/node_modules/@jimp/types/CHANGELOG.md
deleted file mode 100644
index 4eb3193f9..000000000
--- a/WechatBot/node_modules/@jimp/types/CHANGELOG.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# v0.16.3 (Sat Feb 04 2023)
-
-#### ⚠️ Pushed to `master`
-
-- upgrade prettier ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 1
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
----
-
-# v0.11.0 (Fri May 15 2020)
-
-#### 🚀 Enhancement
-
-- Removed Core-JS as a dependency. [#882](https://github.com/oliver-moran/jimp/pull/882) ([@EricRabil](https://github.com/EricRabil))
-
-#### Authors: 1
-
-- Eric Rabil ([@EricRabil](https://github.com/EricRabil))
-
----
-
-# v0.9.3 (Tue Nov 26 2019)
-
-#### 🐛 Bug Fix
-
-- `@jimp/cli`, `@jimp/core`, `@jimp/custom`, `jimp`, `@jimp/plugin-blit`, `@jimp/plugin-blur`, `@jimp/plugin-circle`, `@jimp/plugin-color`, `@jimp/plugin-contain`, `@jimp/plugin-cover`, `@jimp/plugin-crop`, `@jimp/plugin-displace`, `@jimp/plugin-dither`, `@jimp/plugin-fisheye`, `@jimp/plugin-flip`, `@jimp/plugin-gaussian`, `@jimp/plugin-invert`, `@jimp/plugin-mask`, `@jimp/plugin-normalize`, `@jimp/plugin-print`, `@jimp/plugin-resize`, `@jimp/plugin-rotate`, `@jimp/plugin-scale`, `@jimp/plugin-shadow`, `@jimp/plugin-threshold`, `@jimp/plugins`, `@jimp/test-utils`, `@jimp/bmp`, `@jimp/gif`, `@jimp/jpeg`, `@jimp/png`, `@jimp/tiff`, `@jimp/types`, `@jimp/utils`
- - Fix regeneratorRuntime errors [#815](https://github.com/oliver-moran/jimp/pull/815) ([@crutchcorn](https://github.com/crutchcorn) [@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 2
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
diff --git a/WechatBot/node_modules/@jimp/types/LICENSE b/WechatBot/node_modules/@jimp/types/LICENSE
deleted file mode 100644
index baa5d4850..000000000
--- a/WechatBot/node_modules/@jimp/types/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Oliver Moran
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/WechatBot/node_modules/@jimp/types/README.md b/WechatBot/node_modules/@jimp/types/README.md
deleted file mode 100644
index 60dc41996..000000000
--- a/WechatBot/node_modules/@jimp/types/README.md
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
@jimp/types
-
Default Jimp types.
-
-
-## Supported Image Types
-
-- [bmp](../type-bmp)
-- [gif](../type-gif)
-- [jpeg](../type-jpeg)
-- [png](../type-png)
-- [tiff](../type-tiff)
diff --git a/WechatBot/node_modules/@jimp/types/dist/index.js b/WechatBot/node_modules/@jimp/types/dist/index.js
deleted file mode 100755
index 6010c0609..000000000
--- a/WechatBot/node_modules/@jimp/types/dist/index.js
+++ /dev/null
@@ -1,28 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports["default"] = void 0;
-
-var _timm = require("timm");
-
-var _jpeg = _interopRequireDefault(require("@jimp/jpeg"));
-
-var _png = _interopRequireDefault(require("@jimp/png"));
-
-var _bmp = _interopRequireDefault(require("@jimp/bmp"));
-
-var _tiff = _interopRequireDefault(require("@jimp/tiff"));
-
-var _gif = _interopRequireDefault(require("@jimp/gif"));
-
-var _default = function _default() {
- return (0, _timm.mergeDeep)((0, _jpeg["default"])(), (0, _png["default"])(), (0, _bmp["default"])(), (0, _tiff["default"])(), (0, _gif["default"])());
-};
-
-exports["default"] = _default;
-module.exports = exports.default;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/types/dist/index.js.map b/WechatBot/node_modules/@jimp/types/dist/index.js.map
deleted file mode 100644
index 2017bb5d6..000000000
--- a/WechatBot/node_modules/@jimp/types/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/index.js"],"names":[],"mappings":";;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AACA;;eAEe;AAAA,SAAM,qBAAU,uBAAV,EAAkB,sBAAlB,EAAyB,sBAAzB,EAAgC,uBAAhC,EAAwC,sBAAxC,CAAN;AAAA,C","sourcesContent":["import { mergeDeep } from \"timm\";\n\nimport jpeg from \"@jimp/jpeg\";\nimport png from \"@jimp/png\";\nimport bmp from \"@jimp/bmp\";\nimport tiff from \"@jimp/tiff\";\nimport gif from \"@jimp/gif\";\n\nexport default () => mergeDeep(jpeg(), png(), bmp(), tiff(), gif());\n"],"file":"index.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/types/index.d.ts b/WechatBot/node_modules/@jimp/types/index.d.ts
deleted file mode 100644
index 98f0cceb3..000000000
--- a/WechatBot/node_modules/@jimp/types/index.d.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import jpeg from "@jimp/jpeg";
-import png from "@jimp/png";
-import bmp from "@jimp/bmp";
-import tiff from "@jimp/tiff";
-import gif from "@jimp/gif";
-
-type JpegRet = ReturnType;
-type PngRet = ReturnType;
-type BmpRet = ReturnType;
-type TiffRet = ReturnType;
-type GifRet = ReturnType;
-
-/**
- * This is made union and not intersection to avoid issues with
- * `IllformedPlugin` and `WellFormedPlugin` when using typings with Jimp
- * generic
- *
- * In reality, this should be an intersection but our type data isn't
- * clever enough to figure out what's a class and what's not/etc
- */
-type Types = JpegRet | PngRet | BmpRet | TiffRet | GifRet;
-
-export default function (): Types;
diff --git a/WechatBot/node_modules/@jimp/types/package.json b/WechatBot/node_modules/@jimp/types/package.json
deleted file mode 100644
index 752b6936f..000000000
--- a/WechatBot/node_modules/@jimp/types/package.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "name": "@jimp/types",
- "version": "0.16.13",
- "description": "Default Jimp encoder/decoders.",
- "main": "dist/index.js",
- "module": "es/index.js",
- "types": "index.d.ts",
- "scripts": {
- "build": "npm run build:node:production && npm run build:module",
- "build:watch": "npm run build:node:debug -- -- --watch --verbose",
- "build:debug": "npm run build:node:debug",
- "build:module": "cross-env BABEL_ENV=module babel src -d es --source-maps --config-file ../../babel.config.js",
- "build:node": "babel src -d dist --source-maps --config-file ../../babel.config.js",
- "build:node:debug": "cross-env BABEL_ENV=development npm run build:node",
- "build:node:production": "cross-env BABEL_ENV=production npm run build:node"
- },
- "author": "",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/bmp": "^0.16.13",
- "@jimp/gif": "^0.16.13",
- "@jimp/jpeg": "^0.16.13",
- "@jimp/png": "^0.16.13",
- "@jimp/tiff": "^0.16.13",
- "timm": "^1.6.1"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- },
- "devDependencies": {
- "@types/node": "^12.7.5"
- },
- "publishConfig": {
- "access": "public"
- },
- "gitHead": "9eec86086634329a072901dca3a800b850548572"
-}
diff --git a/WechatBot/node_modules/@jimp/types/src/index.js b/WechatBot/node_modules/@jimp/types/src/index.js
deleted file mode 100755
index 1f6eb528b..000000000
--- a/WechatBot/node_modules/@jimp/types/src/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import { mergeDeep } from "timm";
-
-import jpeg from "@jimp/jpeg";
-import png from "@jimp/png";
-import bmp from "@jimp/bmp";
-import tiff from "@jimp/tiff";
-import gif from "@jimp/gif";
-
-export default () => mergeDeep(jpeg(), png(), bmp(), tiff(), gif());
diff --git a/WechatBot/node_modules/@jimp/utils/CHANGELOG.md b/WechatBot/node_modules/@jimp/utils/CHANGELOG.md
deleted file mode 100644
index b4af2eee7..000000000
--- a/WechatBot/node_modules/@jimp/utils/CHANGELOG.md
+++ /dev/null
@@ -1,46 +0,0 @@
-# v0.16.3 (Sat Feb 04 2023)
-
-#### ⚠️ Pushed to `master`
-
-- upgrade prettier ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 1
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-
----
-
-# v0.11.0 (Fri May 15 2020)
-
-#### 🚀 Enhancement
-
-- Removed Core-JS as a dependency. [#882](https://github.com/oliver-moran/jimp/pull/882) ([@EricRabil](https://github.com/EricRabil))
-
-#### Authors: 1
-
-- Eric Rabil ([@EricRabil](https://github.com/EricRabil))
-
----
-
-# v0.10.1 (Sun Apr 05 2020)
-
-#### 🐛 Bug Fix
-
-- Update package.json [#870](https://github.com/oliver-moran/jimp/pull/870) ([@arcanis](https://github.com/arcanis))
-
-#### Authors: 1
-
-- Maël Nison ([@arcanis](https://github.com/arcanis))
-
----
-
-# v0.9.3 (Tue Nov 26 2019)
-
-#### 🐛 Bug Fix
-
-- Fix regeneratorRuntime errors [#815](https://github.com/oliver-moran/jimp/pull/815) ([@crutchcorn](https://github.com/crutchcorn) [@hipstersmoothie](https://github.com/hipstersmoothie))
-
-#### Authors: 2
-
-- Andrew Lisowski ([@hipstersmoothie](https://github.com/hipstersmoothie))
-- Corbin Crutchley ([@crutchcorn](https://github.com/crutchcorn))
diff --git a/WechatBot/node_modules/@jimp/utils/LICENSE b/WechatBot/node_modules/@jimp/utils/LICENSE
deleted file mode 100644
index baa5d4850..000000000
--- a/WechatBot/node_modules/@jimp/utils/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Oliver Moran
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/WechatBot/node_modules/@jimp/utils/README.md b/WechatBot/node_modules/@jimp/utils/README.md
deleted file mode 100644
index 51a52c4d8..000000000
--- a/WechatBot/node_modules/@jimp/utils/README.md
+++ /dev/null
@@ -1,70 +0,0 @@
-
-
-
@jimp/utils
-
Utils for jimp extensions.
-
-
-## Available Methods
-
-### isNodePattern
-
-Determines if function was passed an node callback.
-
-```js
-if (isNodePattern(cb)) {
- cb.call(this, null, this);
-}
-```
-
-### throwError
-
-Either throws the error or calls the callback with the error.
-
-```js
-if (/* check for error */) {
- return throwError.call(this, 'someError', cb);
-}
-```
-
-### scan
-
-Scans through a region of the bitmap, calling a function for each pixel.
-
-```js
-function removeRed(image) {
- return scan(
- image,
- 0,
- 0,
- image.bitmap.width,
- image.bitmap.height,
- function (x, y, index) {
- const red = this.bitmap.data[index + 0];
- const green = this.bitmap.data[index + 1];
- const blue = this.bitmap.data[index + 2];
- const alpha = this.bitmap.data[index + 3];
-
- this.bitmap.data[index + 0] = 0;
- this.bitmap.data[index + 1] = green;
- this.bitmap.data[index + 2] = blue;
- this.bitmap.data[index + 3] = alpha;
- }
- );
-}
-```
-
-### scanIterator
-
-It's possible to make an iterator scan with a `for ... of`, if you want to `break` the scan before it reaches the end, but note, that this iterator has a huge performance implication:
-
-```js
-for (const { x, y, idx, image } of scanIterator(
- image,
- 0,
- 0,
- image.bitmap.width,
- image.bitmap.height
-)) {
-}
-```
diff --git a/WechatBot/node_modules/@jimp/utils/dist/index.js b/WechatBot/node_modules/@jimp/utils/dist/index.js
deleted file mode 100755
index dc9992b77..000000000
--- a/WechatBot/node_modules/@jimp/utils/dist/index.js
+++ /dev/null
@@ -1,114 +0,0 @@
-"use strict";
-
-var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.isNodePattern = isNodePattern;
-exports.throwError = throwError;
-exports.scan = scan;
-exports.scanIterator = scanIterator;
-
-var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
-
-var _marked =
-/*#__PURE__*/
-_regenerator["default"].mark(scanIterator);
-
-function isNodePattern(cb) {
- if (typeof cb === "undefined") {
- return false;
- }
-
- if (typeof cb !== "function") {
- throw new TypeError("Callback must be a function");
- }
-
- return true;
-}
-
-function throwError(error, cb) {
- if (typeof error === "string") {
- error = new Error(error);
- }
-
- if (typeof cb === "function") {
- return cb.call(this, error);
- }
-
- throw error;
-}
-
-function scan(image, x, y, w, h, f) {
- // round input
- x = Math.round(x);
- y = Math.round(y);
- w = Math.round(w);
- h = Math.round(h);
-
- for (var _y = y; _y < y + h; _y++) {
- for (var _x = x; _x < x + w; _x++) {
- var idx = image.bitmap.width * _y + _x << 2;
- f.call(image, _x, _y, idx);
- }
- }
-
- return image;
-}
-
-function scanIterator(image, x, y, w, h) {
- var _y, _x, idx;
-
- return _regenerator["default"].wrap(function scanIterator$(_context) {
- while (1) {
- switch (_context.prev = _context.next) {
- case 0:
- // round input
- x = Math.round(x);
- y = Math.round(y);
- w = Math.round(w);
- h = Math.round(h);
- _y = y;
-
- case 5:
- if (!(_y < y + h)) {
- _context.next = 17;
- break;
- }
-
- _x = x;
-
- case 7:
- if (!(_x < x + w)) {
- _context.next = 14;
- break;
- }
-
- idx = image.bitmap.width * _y + _x << 2;
- _context.next = 11;
- return {
- x: _x,
- y: _y,
- idx: idx,
- image: image
- };
-
- case 11:
- _x++;
- _context.next = 7;
- break;
-
- case 14:
- _y++;
- _context.next = 5;
- break;
-
- case 17:
- case "end":
- return _context.stop();
- }
- }
- }, _marked);
-}
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/utils/dist/index.js.map b/WechatBot/node_modules/@jimp/utils/dist/index.js.map
deleted file mode 100644
index 25e5db6a0..000000000
--- a/WechatBot/node_modules/@jimp/utils/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/index.js"],"names":["scanIterator","isNodePattern","cb","TypeError","throwError","error","Error","call","scan","image","x","y","w","h","f","Math","round","_y","_x","idx","bitmap","width"],"mappings":"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","sourcesContent":["export function isNodePattern(cb) {\n if (typeof cb === \"undefined\") {\n return false;\n }\n\n if (typeof cb !== \"function\") {\n throw new TypeError(\"Callback must be a function\");\n }\n\n return true;\n}\n\nexport function throwError(error, cb) {\n if (typeof error === \"string\") {\n error = new Error(error);\n }\n\n if (typeof cb === \"function\") {\n return cb.call(this, error);\n }\n\n throw error;\n}\n\nexport function scan(image, x, y, w, h, f) {\n // round input\n x = Math.round(x);\n y = Math.round(y);\n w = Math.round(w);\n h = Math.round(h);\n\n for (let _y = y; _y < y + h; _y++) {\n for (let _x = x; _x < x + w; _x++) {\n const idx = (image.bitmap.width * _y + _x) << 2;\n f.call(image, _x, _y, idx);\n }\n }\n\n return image;\n}\n\nexport function* scanIterator(image, x, y, w, h) {\n // round input\n x = Math.round(x);\n y = Math.round(y);\n w = Math.round(w);\n h = Math.round(h);\n\n for (let _y = y; _y < y + h; _y++) {\n for (let _x = x; _x < x + w; _x++) {\n const idx = (image.bitmap.width * _y + _x) << 2;\n yield { x: _x, y: _y, idx, image };\n }\n }\n}\n"],"file":"index.js"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@jimp/utils/index.d.ts b/WechatBot/node_modules/@jimp/utils/index.d.ts
deleted file mode 100644
index 612e9fce7..000000000
--- a/WechatBot/node_modules/@jimp/utils/index.d.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import { Image, Omit } from "@jimp/core";
-import { ThrowStatement } from "typescript";
-
-export function isNodePattern(cb: Function): true;
-export function isNodePattern(cb: Omit): false;
-
-export function throwError(
- error: string | Error,
- cb?: (err: Error) => void
-): ThrowStatement;
-
-export function scan(
- image: Image,
- x: number,
- y: number,
- w: number,
- h: number,
- f: (image: Image, _x: number, _y: number, idx: number) => void
-): Image;
diff --git a/WechatBot/node_modules/@jimp/utils/package.json b/WechatBot/node_modules/@jimp/utils/package.json
deleted file mode 100644
index a9a6418ea..000000000
--- a/WechatBot/node_modules/@jimp/utils/package.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "name": "@jimp/utils",
- "version": "0.16.13",
- "description": "Utils for jimp extensions.",
- "main": "dist/index.js",
- "module": "es/index.js",
- "types": "index.d.ts",
- "scripts": {
- "build": "npm run build:node:production && npm run build:module",
- "build:watch": "npm run build:node:debug -- -- --watch --verbose",
- "build:debug": "npm run build:node:debug",
- "build:module": "cross-env BABEL_ENV=module babel src -d es --source-maps --config-file ../../babel.config.js",
- "build:node": "babel src -d dist --source-maps --config-file ../../babel.config.js",
- "build:node:debug": "cross-env BABEL_ENV=development npm run build:node",
- "build:node:production": "cross-env BABEL_ENV=production npm run build:node"
- },
- "author": "",
- "license": "MIT",
- "publishConfig": {
- "access": "public"
- },
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "regenerator-runtime": "^0.13.3"
- },
- "gitHead": "9eec86086634329a072901dca3a800b850548572"
-}
diff --git a/WechatBot/node_modules/@jimp/utils/src/index.js b/WechatBot/node_modules/@jimp/utils/src/index.js
deleted file mode 100755
index 723f21148..000000000
--- a/WechatBot/node_modules/@jimp/utils/src/index.js
+++ /dev/null
@@ -1,55 +0,0 @@
-export function isNodePattern(cb) {
- if (typeof cb === "undefined") {
- return false;
- }
-
- if (typeof cb !== "function") {
- throw new TypeError("Callback must be a function");
- }
-
- return true;
-}
-
-export function throwError(error, cb) {
- if (typeof error === "string") {
- error = new Error(error);
- }
-
- if (typeof cb === "function") {
- return cb.call(this, error);
- }
-
- throw error;
-}
-
-export function scan(image, x, y, w, h, f) {
- // round input
- x = Math.round(x);
- y = Math.round(y);
- w = Math.round(w);
- h = Math.round(h);
-
- for (let _y = y; _y < y + h; _y++) {
- for (let _x = x; _x < x + w; _x++) {
- const idx = (image.bitmap.width * _y + _x) << 2;
- f.call(image, _x, _y, idx);
- }
- }
-
- return image;
-}
-
-export function* scanIterator(image, x, y, w, h) {
- // round input
- x = Math.round(x);
- y = Math.round(y);
- w = Math.round(w);
- h = Math.round(h);
-
- for (let _y = y; _y < y + h; _y++) {
- for (let _x = x; _x < x + w; _x++) {
- const idx = (image.bitmap.width * _y + _x) << 2;
- yield { x: _x, y: _y, idx, image };
- }
- }
-}
diff --git a/WechatBot/node_modules/@pipeletteio/nop/CHANGELOG.md b/WechatBot/node_modules/@pipeletteio/nop/CHANGELOG.md
deleted file mode 100644
index c78b4f22a..000000000
--- a/WechatBot/node_modules/@pipeletteio/nop/CHANGELOG.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# 0.1.0
-
-> 16/04/2020
-
-- Add `nop` function to replace non-cancelable calls.
-- Add `isNop` function to check if an argument is the nop function.
diff --git a/WechatBot/node_modules/@pipeletteio/nop/LICENSE b/WechatBot/node_modules/@pipeletteio/nop/LICENSE
deleted file mode 100644
index 4c06a7860..000000000
--- a/WechatBot/node_modules/@pipeletteio/nop/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) Pipelette.io and authors...
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/WechatBot/node_modules/@pipeletteio/nop/README.md b/WechatBot/node_modules/@pipeletteio/nop/README.md
deleted file mode 100644
index b63d6cc9b..000000000
--- a/WechatBot/node_modules/@pipeletteio/nop/README.md
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
@pipeletteio/nop
-
-
-
A simple nop (no-op) function helper. Nop is a function that does nothing.
-
-## Installation
-```bash
-npm install @pipeletteio/nop
-```
-
-## Example
-
-```javascript
-import { nop, isNop } from '@pipeletteio/nop';
-// const { nop, isNop } = require('@pipeletteio/nop');
-
-isNop(nop); // => true
-
-isNop(function () {}); // => false
-```
-
-## Docs
-Read [documentation](https://pipeletteio.github.io/nop) for more informations.
-
-## API
-
-#### nop
-
-The nop function which will be used to replace the non cancellable callables.
-
-| argument | type | details |
-|--------------|-----------|---------|
-| ...arg | any[] | ... |
-
-Return void.
-
-#### isNop
-
-Check if the argument is the nop function.
-
-| argument | type | details |
-|--------------|-----------|--------------------------|
-| arg | any | The checked argument. |
-
-Return a boolean.
diff --git a/WechatBot/node_modules/@pipeletteio/nop/package.json b/WechatBot/node_modules/@pipeletteio/nop/package.json
deleted file mode 100644
index a8eea8ce1..000000000
--- a/WechatBot/node_modules/@pipeletteio/nop/package.json
+++ /dev/null
@@ -1,58 +0,0 @@
-{
- "name": "@pipeletteio/nop",
- "version": "1.0.5",
- "description": "A simple nop function helper",
- "private": false,
- "main": "./src/index.js",
- "types": "./src/index.d.ts",
- "author": "AshLePoney ",
- "license": "MIT",
- "homepage": "https://github.com/pipeletteio/nop#readme",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/pipeletteio/nop.git"
- },
- "bugs": {
- "url": "https://github.com/pipeletteio/nop/issues"
- },
- "engines": {
- "node": ">= 12.0.0"
- },
- "scripts": {
- "package": "npm run package:clear && npm run package:types && npm run package:build && npm run package:copyfiles",
- "package:build": "swc src -d build/package/src",
- "package:types": "tsc -p tsconfig.types.json --emitDeclarationOnly",
- "package:copyfiles": "cp package.json README.md CHANGELOG.md LICENSE build/package",
- "package:clear": "rm -rf build/package",
- "package:publish": "cd build/package && npm publish --access public",
- "type-check": "tsc --noEmit",
- "lint": "eslint -c eslint.config.js .",
- "test": "jest --config jest.config.js",
- "coverage": "jest --config jest.config.js --coverage",
- "docs": "npm run docs:clear && npm run docs:build",
- "docs:clear": "rm -rf build/docs",
- "docs:build": "typedoc --out build/docs --theme default src/index.ts",
- "_postinstall": "husky install config/husky",
- "prepublishOnly": "pinst --disable",
- "postpublish": "pinst --enable",
- "precommit": "npm run type-check && npm run lint && npm run coverage"
- },
- "devDependencies": {
- "@commitlint/cli": "^16.2.3",
- "@microsoft/tsdoc": "^0.14.1",
- "@swc/cli": "^0.1.57",
- "@swc/core": "^1.2.171",
- "@swc/jest": "^0.2.20",
- "@types/jest": "^27.4.1",
- "@types/node": "^17.0.25",
- "@typescript-eslint/eslint-plugin": "^5.20.0",
- "@typescript-eslint/parser": "^5.20.0",
- "eslint": "8.14.0",
- "eslint-plugin-tsdoc": "^0.2.16",
- "husky": "^7.0.4",
- "jest": "^27.5.1",
- "pinst": "^3.0.0",
- "typedoc": "^0.22.15",
- "typescript": "^4.6.3"
- }
-}
diff --git a/WechatBot/node_modules/@pipeletteio/nop/src/index.d.ts b/WechatBot/node_modules/@pipeletteio/nop/src/index.d.ts
deleted file mode 100644
index ae0f2835f..000000000
--- a/WechatBot/node_modules/@pipeletteio/nop/src/index.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * A nop function which can be used to replace non-cancelable calls.
- */
-export declare function nop(..._: any[]): void;
-/**
- * Check if argument is the shared nop function.
- */
-export declare function isNop(arg: any): boolean;
diff --git a/WechatBot/node_modules/@pipeletteio/nop/src/index.js b/WechatBot/node_modules/@pipeletteio/nop/src/index.js
deleted file mode 100755
index b63e12b6a..000000000
--- a/WechatBot/node_modules/@pipeletteio/nop/src/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-exports.nop = nop;
-exports.isNop = isNop;
-function nop(..._) {}
-function isNop(arg) {
- return arg === nop;
-}
-
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/WechatBot/node_modules/@pipeletteio/nop/src/index.js.map b/WechatBot/node_modules/@pipeletteio/nop/src/index.js.map
deleted file mode 100644
index 88d7a12f0..000000000
--- a/WechatBot/node_modules/@pipeletteio/nop/src/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../../src/index.ts"],"sourcesContent":["/**\n * A nop function which can be used to replace non-cancelable calls.\n */\nexport function nop (..._: any[]): void {}\n\n/**\n * Check if argument is the shared nop function.\n */\nexport function isNop (arg: any): boolean {\n return arg === nop;\n}\n"],"names":["nop","isNop","_","arg"],"mappings":"AAGA;QAAgBA,GAAG,GAAHA,GAAG;QAKHC,KAAK,GAALA,KAAK;AALd,SAASD,GAAG,CAAE,GAAGE,CAAC,AAAO,EAAQ,EAAE;AAKnC,SAASD,KAAK,CAAEE,GAAQ,EAAW;IACxC,OAAOA,GAAG,KAAKH,GAAG,CAAC;CACpB"}
\ No newline at end of file
diff --git a/WechatBot/node_modules/@tokenizer/token/README.md b/WechatBot/node_modules/@tokenizer/token/README.md
deleted file mode 100644
index 411604920..000000000
--- a/WechatBot/node_modules/@tokenizer/token/README.md
+++ /dev/null
@@ -1,19 +0,0 @@
-[](https://www.npmjs.com/package/@tokenizer/token)
-[](https://npmcharts.com/compare/@tokenizer/token?interval=30)
-
-# @tokenizer/token
-
-TypeScript definition of an [strtok3](https://github.com/Borewit/strtok3) token.
-
-## Licence
-
-(The MIT License)
-
-Copyright (c) 2020 Borewit
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
diff --git a/WechatBot/node_modules/@tokenizer/token/index.d.ts b/WechatBot/node_modules/@tokenizer/token/index.d.ts
deleted file mode 100644
index 3703b77cd..000000000
--- a/WechatBot/node_modules/@tokenizer/token/index.d.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-/**
- * Read-only token
- * See https://github.com/Borewit/strtok3 for more information
- */
-export interface IGetToken {
-
- /**
- * Length of encoded token in bytes
- */
- len: number;
-
- /**
- * Decode value from buffer at offset
- * @param array - Uint8Array to read the decoded value from
- * @param offset - Decode offset
- * @return decoded value
- */
- get(array: Array, offset: number): Value;
-}
-
-export interface IToken extends IGetToken {
- /**
- * Encode value to buffer
- * @param array - Uint8Array to write the encoded value to
- * @param offset - Buffer write offset
- * @param value - Value to decode of type T
- * @return offset plus number of bytes written
- */
- put(array: Array, offset: number, value: Value): number
-}
diff --git a/WechatBot/node_modules/@tokenizer/token/package.json b/WechatBot/node_modules/@tokenizer/token/package.json
deleted file mode 100644
index 4bb38fd26..000000000
--- a/WechatBot/node_modules/@tokenizer/token/package.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "name": "@tokenizer/token",
- "version": "0.3.0",
- "description": "TypeScript definition for strtok3 token",
- "main": "",
- "types": "index.d.ts",
- "files": [
- "index.d.ts"
- ],
- "keywords": [
- "token",
- "interface",
- "tokenizer",
- "TypeScript"
- ],
- "author": {
- "name": "Borewit",
- "url": "https://github.com/Borewit"
- },
- "license": "MIT",
- "repository": {
- "type": "git",
- "url": "https://github.com/Borewit/tokenizer-token.git"
- },
- "bugs": {
- "url": "https://github.com/Borewit/tokenizer-token/issues"
- },
- "typeScriptVersion": "3.0",
- "dependencies": {},
- "devDependencies": {
- "@types/node": "^13.1.0"
- }
-}
diff --git a/WechatBot/node_modules/@types/frida-gum/LICENSE b/WechatBot/node_modules/@types/frida-gum/LICENSE
deleted file mode 100644
index 9e841e7a2..000000000
--- a/WechatBot/node_modules/@types/frida-gum/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
- MIT License
-
- Copyright (c) Microsoft Corporation.
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE
diff --git a/WechatBot/node_modules/@types/frida-gum/README.md b/WechatBot/node_modules/@types/frida-gum/README.md
deleted file mode 100644
index aa2f6cc3f..000000000
--- a/WechatBot/node_modules/@types/frida-gum/README.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# Installation
-> `npm install --save @types/frida-gum`
-
-# Summary
-This package contains type definitions for frida-gum (https://github.com/frida/frida).
-
-# Details
-Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/frida-gum.
-
-### Additional Details
- * Last updated: Tue, 01 Feb 2022 05:31:28 GMT
- * Dependencies: none
- * Global values: `ApiResolver`, `Arm64Instruction`, `Arm64Relocator`, `Arm64Writer`, `ArmInstruction`, `ArmRelocator`, `ArmWriter`, `Backtracer`, `CModule`, `DebugSymbol`, `File`, `Frida`, `IOStream`, `InputStream`, `Instruction`, `Int64`, `Interceptor`, `InvocationListener`, `InvocationReturnValue`, `Java`, `Kernel`, `MatchPattern`, `Memory`, `MemoryAccessMonitor`, `MipsInstruction`, `MipsRelocator`, `MipsWriter`, `Module`, `ModuleMap`, `NULL`, `NativeCallback`, `NativeFunction`, `NativePointer`, `ObjC`, `OutputStream`, `Process`, `Script`, `Socket`, `SocketConnection`, `SqliteDatabase`, `SqliteStatement`, `Stalker`, `SystemFunction`, `Thread`, `ThumbRelocator`, `ThumbWriter`, `UInt64`, `UnixInputStream`, `UnixOutputStream`, `Win32InputStream`, `Win32OutputStream`, `X86Instruction`, `X86Relocator`, `X86Writer`, `clearImmediate`, `clearInterval`, `clearTimeout`, `hexdump`, `int64`, `ptr`, `recv`, `rpc`, `send`, `setImmediate`, `setInterval`, `setTimeout`, `uint64`
-
-# Credits
-These definitions were written by [Ole André Vadla Ravnås](https://github.com/oleavr), and [Francesco Tamagni](https://github.com/mrmacete).
diff --git a/WechatBot/node_modules/@types/frida-gum/index.d.ts b/WechatBot/node_modules/@types/frida-gum/index.d.ts
deleted file mode 100644
index 698bbdde3..000000000
--- a/WechatBot/node_modules/@types/frida-gum/index.d.ts
+++ /dev/null
@@ -1,7723 +0,0 @@
-// Type definitions for non-npm package frida-gum 17.3
-// Project: https://github.com/frida/frida
-// Definitions by: Ole André Vadla Ravnås
-// Francesco Tamagni
-// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
-// Minimum TypeScript Version: 4.1
-
-/**
- * Returns a hexdump of the provided ArrayBuffer or NativePointerValue target.
- *
- * @param target The ArrayBuffer or NativePointerValue to dump.
- * @param options Options customizing the output.
- */
-declare function hexdump(target: ArrayBuffer | NativePointerValue, options?: HexdumpOptions): string;
-
-interface HexdumpOptions {
- /**
- * Specifies byte offset of where to start dumping. Defaults to 0.
- */
- offset?: number | undefined;
-
- /**
- * Limits how many bytes to dump.
- */
- length?: number | undefined;
-
- /**
- * Whether a header should be included. Defaults to true.
- */
- header?: boolean | undefined;
-
- /**
- * Whether ANSI colors should be used. Defaults to false.
- */
- ansi?: boolean | undefined;
-}
-
-/**
- * Short-hand for `new Int64(value)`.
- */
-declare function int64(value: string | number): Int64;
-
-/**
- * Short-hand for `new UInt64(value)`.
- */
-declare function uint64(value: string | number): UInt64;
-
-/**
- * Short-hand for `new NativePointer(value)`.
- */
-declare function ptr(value: string | number): NativePointer;
-
-/**
- * Short-hand for `ptr("0")`.
- */
-declare const NULL: NativePointer;
-
-/**
- * Requests callback to be called on the next message received from your Frida-based application.
- *
- * This will only give you one message, so you need to call `recv()` again to receive the next one.
- */
-declare function recv(callback: MessageCallback): MessageRecvOperation;
-
-/**
- * Requests callback to be called when the next message of the given `type` has been received from your
- * Frida-based application.
- *
- * This will only give you one message, so you need to call `recv()` again to receive the next one.
- */
-declare function recv(type: string, callback: MessageCallback): MessageRecvOperation;
-
-interface MessageCallback { (message: any, data: ArrayBuffer | null): void; }
-
-interface MessageRecvOperation {
- /**
- * Blocks until the message has been received and callback has returned.
- */
- wait(): void;
-}
-
-/**
- * Sends a JSON-serializable message to your Frida-based application,
- * with (optionally) some raw binary data included. The latter is useful
- * if you e.g. dumped some memory using `NativePointer#readByteArray()`.
- *
- * @param message Any JSON-serializable value.
- * @param data Raw binary data.
- */
-declare function send(message: any, data?: ArrayBuffer | number[] | null): void;
-
-/**
- * Calls `func` after `delay` milliseconds, or if omitted: as soon as Frida's
- * JavaScript thread is idle. Any additional `params` are passed along.
- *
- * Returns an id that can be passed to `clearTimeout()` to cancel it.
- */
-declare function setTimeout(func: ScheduledCallback, delay?: number, ...params: any[]): TimeoutId;
-
-/**
- * Cancels a previously scheduled `setTimeout()`.
- */
-declare function clearTimeout(id: TimeoutId): void;
-
-/**
- * Opaque ID returned by `setTimeout()`. Pass it to `clearTimeout()` to cancel a pending `setTimeout()`.
- */
-type TimeoutId = number;
-
-/**
- * Calls `func` every `delay` milliseconds, optionally passing it the provided params.
- * Returns an id that can be passed to clearInterval() to cancel it.
- */
-declare function setInterval(func: ScheduledCallback, delay: number, ...params: any[]): IntervalId;
-
-/**
- * Cancels a previously scheduled `setInterval()`.
- */
-declare function clearInterval(id: IntervalId): void;
-
-/**
- * Opaque ID returned by `setInterval()`. Pass it to `clearInterval()` to cancel a pending `setInterval()`.
- */
-type IntervalId = number;
-
-/**
- * Schedules `func` to be called on Frida's JavaScript thread, optionally passing it the provided params.
- * Returns an id that can be passed to clearImmediate() to cancel it.
- */
-declare function setImmediate(func: ScheduledCallback, ...params: any[]): ImmediateId;
-
-/**
- * Cancels a previously scheduled `clearImmediate()`.
- */
-declare function clearImmediate(id: ImmediateId): void;
-
-/**
- * Opaque ID returned by `setImmediate()`. Pass it to `clearImmediate()` to cancel a pending `setImmediate()`.
- */
-type ImmediateId = number;
-
-type ScheduledCallback = (...params: any[]) => void;
-
-declare namespace rpc {
- /**
- * Empty object that you can either replace or insert into to expose an RPC-style API to your application.
- * The key specifies the method name and the value is your exported function. This function may either return
- * a plain value for returning that to the caller immediately, or a Promise for returning asynchronously.
- */
- let exports: RpcExports;
-}
-
-interface RpcExports {
- [name: string]: AnyFunction;
-}
-
-type AnyFunction = (...args: any[]) => any;
-
-declare namespace Frida {
- /**
- * The current Frida version.
- */
- const version: string;
-
- /**
- * The current size – in bytes – of Frida’s private heap, which is shared by all scripts and Frida’s own runtime.
- * This is useful for keeping an eye on how much memory your instrumentation is using out of the total consumed by
- * the hosting process.
- */
- const heapSize: number;
-}
-
-declare namespace Script {
- /**
- * Runtime being used.
- */
- const runtime: ScriptRuntime;
-
- /**
- * Runs `func` on the next tick, i.e. when the current native thread exits
- * the JavaScript runtime. Any additional `params` are passed to it.
- */
- function nextTick(func: ScheduledCallback, ...params: any[]): void;
-
- /**
- * Temporarily prevents the current script from being unloaded.
- * This is reference-counted, so there must be one matching `unpin()`
- * happening at a later point.
- *
- * Typically used in the callback of `Script.bindWeak()` when you need to
- * schedule cleanup on another thread.
- */
- function pin(): void;
-
- /**
- * Reverses a previous `pin()` so the current script may be unloaded.
- */
- function unpin(): void;
-
- /**
- * Starts monitoring the lifetime of `target`. Calls `callback` as soon as
- * value has been garbage-collected, or the script is about to get
- * unloaded.
- *
- * Useful when you're building a language-binding where you need to free
- * native resources when a JS value is no longer needed.
- *
- * Be careful so `callback` is not a closure that accidentally captures
- * `target` and keeps it alive beyond its intended lifetime.
- *
- * @param target Heap-allocated JavaScript value to monitor lifetime of.
- * @param callback Function to call when `target` gets GCed.
- */
- function bindWeak(target: any, callback: WeakRefCallback): WeakRefId;
-
- /**
- * Stops monitoring the value passed to `Script.bindWeak()` and calls the
- * callback immediately.
- *
- * @param id ID returned by a previous call to `Script.bindWeak()`.
- */
- function unbindWeak(id: WeakRefId): void;
-
- /**
- * Installs or uninstalls a handler that is used to resolve attempts to
- * access non-existent global variables.
- *
- * Useful for implementing a REPL where unknown identifiers may be fetched
- * lazily from a database.
- *
- * @param handler The handler to install, or `null` to uninstall a
- * previously installed handler.
- */
- function setGlobalAccessHandler(handler: GlobalAccessHandler | null): void;
-}
-
-type ScriptRuntime = "DUK" | "V8";
-
-type WeakRefCallback = () => void;
-
-/**
- * Opaque ID returned by `Script.bindWeak()`. Pass it to `Script.unbindWeak()`
- * to stop monitoring the target value.
- */
-type WeakRefId = number;
-
-interface GlobalAccessHandler {
- /**
- * Queries which additional globals exist.
- */
- enumerate(): string[];
-
- /**
- * Called whenever an attempt to access a non-existent global variable is
- * made. Return `undefined` to treat the variable as inexistent.
- *
- * @param property Name of non-existent global that is being accessed.
- */
- get(property: string): any;
-}
-
-declare namespace Process {
- /**
- * PID of the current process.
- */
- const id: number;
-
- /**
- * Architecture of the current process.
- */
- const arch: Architecture;
-
- /**
- * Platform of the current process.
- */
- const platform: Platform;
-
- /**
- * Size of a virtual memory page in bytes. This is used to make your scripts more portable.
- */
- const pageSize: number;
-
- /**
- * Size of a pointer in bytes. This is used to make your scripts more portable.
- */
- const pointerSize: number;
-
- /**
- * Whether Frida will avoid modifying existing code in memory and will not try to run unsigned code.
- * Currently this property will always be set to Optional unless you are using Gadget and have configured
- * it to assume that code-signing is required. This property allows you to determine whether the Interceptor
- * API is off limits, and whether it is safe to modify code or run unsigned code.
- */
- const codeSigningPolicy: CodeSigningPolicy;
-
- /**
- * Determines whether a debugger is currently attached.
- */
- function isDebuggerAttached(): boolean;
-
- /**
- * Gets this thread’s OS-specific id.
- */
- function getCurrentThreadId(): ThreadId;
-
- /**
- * Enumerates all threads.
- */
- function enumerateThreads(): ThreadDetails[];
-
- /**
- * Looks up a module by address. Returns null if not found.
- */
- function findModuleByAddress(address: NativePointerValue): Module | null;
-
- /**
- * Looks up a module by address. Throws an exception if not found.
- */
- function getModuleByAddress(address: NativePointerValue): Module;
-
- /**
- * Looks up a module by name. Returns null if not found.
- */
- function findModuleByName(name: string): Module | null;
-
- /**
- * Looks up a module by name. Throws an exception if not found.
- */
- function getModuleByName(name: string): Module;
-
- /**
- * Enumerates modules loaded right now.
- */
- function enumerateModules(): Module[];
-
- /**
- * Looks up a memory range by address. Returns null if not found.
- */
- function findRangeByAddress(address: NativePointerValue): RangeDetails | null;
-
- /**
- * Looks up a memory range by address. Throws an exception if not found.
- */
- function getRangeByAddress(address: NativePointerValue): RangeDetails;
-
- /**
- * Enumerates memory ranges satisfying `specifier`.
- *
- * @param specifier The kind of ranges to include.
- */
- function enumerateRanges(specifier: PageProtection | EnumerateRangesSpecifier): RangeDetails[];
-
- /**
- * Just like `enumerateRanges()`, but for individual memory allocations known to the system heap.
- */
- function enumerateMallocRanges(): RangeDetails[];
-
- /**
- * Installs a process-wide exception handler callback that gets a chance to
- * handle native exceptions before the hosting process itself does.
- *
- * It is up to your callback to decide what to do with the exception.
- * It could for example:
- * - Log the issue.
- * - Notify your application through a `send()` followed by a blocking `recv()` for acknowledgement of the sent data
- * being received.
- * - Modify registers and memory to recover from the exception.
- *
- * You should return `true` if you did handle the exception, in which case
- * Frida will resume the thread immediately. If you do not return `true`,
- * Frida will forward the exception to the hosting process' exception
- * handler, if it has one, or let the OS terminate the process.
- */
- function setExceptionHandler(callback: ExceptionHandlerCallback): void;
-}
-
-declare class Module {
- /**
- * Canonical module name.
- */
- name: string;
-
- /**
- * Base address.
- */
- base: NativePointer;
-
- /**
- * Size in bytes.
- */
- size: number;
-
- /**
- * Full filesystem path.
- */
- path: string;
-
- /**
- * Enumerates imports of module.
- */
- enumerateImports(): ModuleImportDetails[];
-
- /**
- * Enumerates exports of module.
- */
- enumerateExports(): ModuleExportDetails[];
-
- /**
- * Enumerates symbols of module.
- */
- enumerateSymbols(): ModuleSymbolDetails[];
-
- /**
- * Enumerates memory ranges of module with the `name` as seen in `Process#enumerateModules()`.
- *
- * @param protection Minimum protection of ranges to include.
- */
- enumerateRanges(protection: PageProtection): RangeDetails[];
-
- /**
- * Looks up the absolute address of the export named `exportName`.
- *
- * Returns null if the export doesn't exist.
- *
- * @param exportName Export name to find the address of.
- */
- findExportByName(exportName: string): NativePointer | null;
-
- /**
- * Looks up the absolute address of the export named `exportName`.
- *
- * Throws an exception if the export doesn't exist.
- *
- * @param exportName Export name to find the address of.
- */
- getExportByName(exportName: string): NativePointer;
-
- /**
- * Loads the specified module.
- */
- static load(name: string): Module;
-
- /**
- * Ensures that initializers of the specified module have been run. This is important during early instrumentation,
- * i.e. code run early in the process lifetime, to be able to safely interact with APIs.
- *
- * One such use-case is interacting with ObjC classes provided by a given module.
- */
- static ensureInitialized(name: string): void;
-
- /**
- * Looks up the base address of the `name` module. Returns null if the module isn’t loaded.
- *
- * @param name Module name or path.
- */
- static findBaseAddress(name: string): NativePointer | null;
-
- /**
- * Looks up the base address of the `name` module. Throws an exception if the module isn’t loaded.
- *
- * @param name Module name or path.
- */
- static getBaseAddress(name: string): NativePointer;
-
- /**
- * Looks up the absolute address of the export named `exportName` in `moduleName`. If the module isn’t known you may
- * pass null instead of its name, but this can be a costly search and should be avoided.
- *
- * Returns null if the module or export doesn't exist.
- *
- * @param moduleName Module name or path.
- * @param exportName Export name to find the address of.
- */
- static findExportByName(moduleName: string | null, exportName: string): NativePointer | null;
-
- /**
- * Looks up the absolute address of the export named `exportName` in `moduleName`. If the module isn’t known you may
- * pass null instead of its name, but this can be a costly search and should be avoided.
- *
- * Throws an exception if the module or export doesn't exist.
- *
- * @param moduleName Module name or path.
- * @param exportName Export name to find the address of.
- */
- static getExportByName(moduleName: string | null, exportName: string): NativePointer;
-}
-
-declare class ModuleMap {
- /**
- * Creates a new module map optimized for determining which module a given memory address belongs to, if any.
- * Takes a snapshot of the currently loaded modules when created, which may be refreshed by calling `update()`.
- *
- * The `filter` argument is optional and allows you to pass a function used for filtering the list of modules.
- * This is useful if you e.g. only care about modules owned by the application itself, and allows you to quickly
- * check if an address belongs to one of its modules. The filter function is given the module's details and must
- * return true for each module that should be kept in the map. It is called for each loaded module every time the
- * map is updated.
- *
- * @param filter Filter function to decide which modules are kept in the map.
- */
- constructor(filter?: ModuleMapFilter);
-
- /**
- * Determines if `address` belongs to any of the contained modules.
- *
- * @param address Address that might belong to a module in the map.
- */
- has(address: NativePointerValue): boolean;
-
- /**
- * Looks up a module by address. Returns null if not found.
- *
- * @param address Address that might belong to a module in the map.
- */
- find(address: NativePointerValue): Module | null;
-
- /**
- * Looks up a module by address. Throws an exception if not found.
- *
- * @param address Address that might belong to a module in the map.
- */
- get(address: NativePointerValue): Module;
-
- /**
- * Just like `find()`, but only returns the `name` field, which means less overhead when you don’t need the
- * other details. Returns null if not found.
- *
- * @param address Address that might belong to a module in the map.
- */
- findName(address: NativePointerValue): string | null;
-
- /**
- * Just like `get()`, but only returns the `name` field, which means less overhead when you don’t need the
- * other details. Throws an exception if not found.
- *
- * @param address Address that might belong to a module in the map.
- */
- getName(address: NativePointerValue): string;
-
- /**
- * Just like `find()`, but only returns the `path` field, which means less overhead when you don’t need the
- * other details. Returns null if not found.
- *
- * @param address Address that might belong to a module in the map.
- */
- findPath(address: NativePointerValue): string | null;
-
- /**
- * Just like `get()`, but only returns the `path` field, which means less overhead when you don’t need the
- * other details. Throws an exception if not found.
- *
- * @param address Address that might belong to a module in the map.
- */
- getPath(address: NativePointerValue): string;
-
- /**
- * Updates the map.
- *
- * You should call this after a module has been loaded or unloaded to avoid operating on stale data.
- */
- update(): void;
-
- /**
- * Gets the modules currently in the map. The returned array is a deep copy and will not mutate after a
- * call to `update()`.
- */
- values(): Module[];
-}
-
-type ModuleMapFilter = (m: Module) => boolean;
-
-declare namespace Memory {
- /**
- * Scans memory for occurences of `pattern` in the memory range given by `address` and `size`.
- *
- * @param address Starting address to scan from.
- * @param size Number of bytes to scan.
- * @param pattern Match pattern, see `MatchPattern` for details.
- * @param callbacks Object with callbacks.
- */
- function scan(address: NativePointerValue, size: number | UInt64, pattern: string | MatchPattern,
- callbacks: MemoryScanCallbacks): Promise;
-
- /**
- * Synchronous version of `scan()`.
- *
- * @param address Starting address to scan from.
- * @param size Number of bytes to scan.
- * @param pattern Match pattern, see `MatchPattern` for details.
- */
- function scanSync(address: NativePointerValue, size: number | UInt64, pattern: string | MatchPattern): MemoryScanMatch[];
-
- /**
- * Allocates `size` bytes of memory on Frida's private heap, or, if `size` is a multiple of Process#pageSize,
- * one or more raw memory pages managed by the OS. The allocated memory will be released when the returned
- * NativePointer value gets garbage collected. This means you need to keep a reference to it while the pointer
- * is being used by code outside the JavaScript runtime.
- *
- * @param size Number of bytes to allocate.
- * @param options Options to customize the memory allocation.
- */
- function alloc(size: number | UInt64, options?: MemoryAllocOptions): NativePointer;
-
- /**
- * Allocates, encodes and writes out `str` as a UTF-8 string on Frida's private heap.
- * See Memory#alloc() for details about its lifetime.
- *
- * @param str String to allocate.
- */
- function allocUtf8String(str: string): NativePointer;
-
- /**
- * Allocates, encodes and writes out `str` as a UTF-16 string on Frida's private heap.
- * See Memory#alloc() for details about its lifetime.
- *
- * @param str String to allocate.
- */
- function allocUtf16String(str: string): NativePointer;
-
- /**
- * Allocates, encodes and writes out `str` as an ANSI string on Frida's private heap.
- * See Memory#alloc() for details about its lifetime.
- *
- * @param str String to allocate.
- */
- function allocAnsiString(str: string): NativePointer;
-
- /**
- * Just like memcpy.
- *
- * @param dst Destination address.
- * @param src Sources address.
- * @param n Number of bytes to copy.
- */
- function copy(dst: NativePointerValue, src: NativePointerValue, n: number | UInt64): void;
-
- /**
- * Short-hand for Memory#alloc() followed by Memory#copy(). See Memory#alloc() for details about lifetime.
- *
- * @param address Address to copy from.
- * @param size Number of bytes to copy.
- */
- function dup(address: NativePointerValue, size: number | UInt64): NativePointer;
-
- /**
- * Changes the page protection on a region of memory.
- *
- * @param address Starting address.
- * @param size Number of bytes. Must be a multiple of Process#pageSize.
- * @param protection Desired page protection.
- */
- function protect(address: NativePointerValue, size: number | UInt64, protection: PageProtection): boolean;
-
- /**
- * Safely modifies `size` bytes at `address`. The supplied function `apply` gets called with a writable pointer
- * where you must write the desired modifications before returning. Do not make any assumptions about this being
- * the same location as address, as some systems require modifications to be written to a temporary location before
- * being mapped into memory on top of the original memory page (e.g. on iOS, where directly modifying in-memory
- * code may result in the process losing its CS_VALID status).
- *
- * @param address Starting address to modify.
- * @param size Number of bytes to modify.
- * @param apply Function that applies the desired changes.
- */
- function patchCode(address: NativePointerValue, size: number | UInt64, apply: MemoryPatchApplyCallback): void;
-}
-
-interface MemoryRange {
- /**
- * Base address.
- */
- base: NativePointer;
-
- /**
- * Size in bytes.
- */
- size: number;
-}
-
-/**
- * Monitors one or more memory ranges for access, and notifies on the first
- * access of each contained memory page.
- *
- * Only available on Windows for now. We would love to support this on the other
- * platforms too, so if you find this useful and would like to help out, please
- * get in touch.
- */
-declare namespace MemoryAccessMonitor {
- /**
- * Starts monitoring one or more memory ranges for access, and notifies on
- * the first access of each contained memory page.
- *
- * @param ranges One or more ranges to monitor.
- * @param callbacks Callbacks to be notified on access.
- */
- function enable(ranges: MemoryAccessRange | MemoryAccessRange[], callbacks: MemoryAccessCallbacks): void;
-
- /**
- * Stops monitoring the remaining memory ranges passed to
- * `MemoryAccessMonitor.enable()`.
- */
- function disable(): void;
-}
-
-interface MemoryAccessRange {
- /**
- * Base address.
- */
- base: NativePointer;
-
- /**
- * Size in bytes.
- */
- size: number;
-}
-
-/**
- * Callbacks to be notified synchronously on memory access.
- */
-interface MemoryAccessCallbacks {
- onAccess: (details: MemoryAccessDetails) => void;
-}
-
-interface MemoryAccessDetails {
- /**
- * The kind of operation that triggered the access.
- */
- operation: MemoryOperation;
-
- /**
- * Address of instruction performing the access.
- */
- from: NativePointer;
-
- /**
- * Address being accessed.
- */
- address: NativePointer;
-
- /**
- * Index of the accessed range in the ranges provided to
- * `MemoryAccessMonitor.enable()`.
- */
- rangeIndex: number;
-
- /**
- * Index of the accessed memory page inside the specified range.
- */
- pageIndex: number;
-
- /**
- * Overall number of pages which have been accessed so far, and are thus
- * no longer being monitored.
- */
- pagesCompleted: number;
-
- /**
- * Overall number of pages that were initially monitored.
- */
- pagesTotal: number;
-}
-
-declare namespace Thread {
- /**
- * Generates a backtrace for the given thread's `context`.
- *
- * If you call this from Interceptor's `onEnter` or `onLeave` callbacks
- * you should provide `this.context` for the optional `context` argument,
- * as it will give you a more accurate backtrace. Omitting `context` means
- * the backtrace will be generated from the current stack location, which
- * may not give you a very good backtrace due to the JavaScript VM's
- * potentially JITed stack frames.
- *
- * @param context CPU context to use for generating the backtrace.
- * @param backtracer The kind of backtracer to use. Must be either
- * `Backtracer.FUZZY` or `Backtracer.ACCURATE`,
- * where the latter is the default if not specified.
- */
- function backtrace(context?: CpuContext, backtracer?: Backtracer): NativePointer[];
-
- /**
- * Suspends execution of the current thread for `delay` seconds.
- *
- * For example `0.05` to sleep for 50 ms.
- *
- * @param delay Delay in seconds.
- */
- function sleep(delay: number): void;
-}
-
-// tslint:disable-next-line:no-unnecessary-class
-declare class Backtracer {
- /**
- * The accurate kind of backtracers rely on debugger-friendly binaries or
- * presence of debug information to do a good job, but avoid false
- * positives.
- */
- static ACCURATE: Backtracer;
-
- /**
- * The fuzzy backtracers perform forensics on the stack in order to guess
- * the return addresses, which means you will get false positives, but it
- * will work on any binary.
- */
- static FUZZY: Backtracer;
-}
-
-type Architecture =
- | "ia32"
- | "x64"
- | "arm"
- | "arm64"
- | "mips"
- ;
-
-type Platform =
- | "windows"
- | "darwin"
- | "linux"
- | "qnx"
- ;
-
-type CodeSigningPolicy = "optional" | "required";
-
-/**
- * Given as a string of the form: rwx, where rw- means “readable and writable”.
- */
-type PageProtection = string;
-
-type ThreadId = number;
-
-type ThreadState =
- | "running"
- | "stopped"
- | "waiting"
- | "uninterruptible"
- | "halted"
- ;
-
-interface ThreadDetails {
- /**
- * OS-specific ID.
- */
- id: ThreadId;
-
- /**
- * Snapshot of state.
- */
- state: ThreadState;
-
- /**
- * Snapshot of CPU registers.
- */
- context: CpuContext;
-}
-
-interface KernelModuleDetails {
- /**
- * Canonical module name.
- */
- name: string;
-
- /**
- * Base address.
- */
- base: UInt64;
-
- /**
- * Size in bytes.
- */
- size: number;
-}
-
-interface ModuleImportDetails {
- /**
- * The kind of import, if available.
- */
- type?: ModuleImportType | undefined;
-
- /**
- * Imported symbol name.
- */
- name: string;
-
- /**
- * Module name, if available.
- */
- module?: string | undefined;
-
- /**
- * Absolute address, if available.
- */
- address?: NativePointer | undefined;
-
- /**
- * Memory location where the import is stored, if available.
- */
- slot?: NativePointer | undefined;
-}
-
-interface ModuleExportDetails {
- /**
- * The kind of export.
- */
- type: ModuleExportType;
-
- /**
- * Exported symbol name.
- */
- name: string;
-
- /**
- * Absolute address.
- */
- address: NativePointer;
-}
-
-interface ModuleSymbolDetails {
- /**
- * Whether symbol is globally visible.
- */
- isGlobal: boolean;
-
- /**
- * The kind of symbol.
- */
- type: ModuleSymbolType;
-
- /**
- * Which section this symbol resides in, if available.
- */
- section?: ModuleSymbolSectionDetails | undefined;
-
- /**
- * Symbol name.
- */
- name: string;
-
- /**
- * Absolute address.
- */
- address: NativePointer;
-
- /**
- * Size in bytes, if available.
- */
- size?: number | undefined;
-}
-
-type ModuleImportType = "function" | "variable";
-
-type ModuleExportType = "function" | "variable";
-
-type ModuleSymbolType =
- // Common
- | "unknown"
- | "section"
-
- // Mach-O
- | "undefined"
- | "absolute"
- | "prebound-undefined"
- | "indirect"
-
- // ELF
- | "object"
- | "function"
- | "file"
- | "common"
- | "tls"
- ;
-
-interface ModuleSymbolSectionDetails {
- /**
- * Section index, segment name (if applicable) and section name – same format as r2’s section IDs.
- */
- id: string;
-
- /**
- * Section's memory protection.
- */
- protection: PageProtection;
-}
-
-interface RangeDetails {
- /**
- * Base address.
- */
- base: NativePointer;
-
- /**
- * Size in bytes.
- */
- size: number;
-
- /**
- * Protection.
- */
- protection: PageProtection;
-
- /**
- * File mapping details, if available.
- */
- file?: FileMapping | undefined;
-}
-
-interface KernelRangeDetails {
- /**
- * Base address.
- */
- base: UInt64;
-
- /**
- * Size in bytes.
- */
- size: number;
-
- /**
- * Protection.
- */
- protection: PageProtection;
-}
-
-interface KernelModuleRangeDetails {
- /**
- * Name.
- */
- name: string;
-
- /**
- * Base address.
- */
- base: UInt64;
-
- /**
- * Size in bytes.
- */
- size: number;
-
- /**
- * Protection.
- */
- protection: PageProtection;
-}
-
-interface FileMapping {
- /**
- * Full filesystem path.
- */
- path: string;
-
- /**
- * Offset in the mapped file on disk, in bytes.
- */
- offset: number;
-
- /**
- * Size in the mapped file on disk, in bytes.
- */
- size: number;
-}
-
-interface EnumerateRangesSpecifier {
- /**
- * Minimum protection required to be included in the result.
- */
- protection: PageProtection;
-
- /**
- * Whether neighboring ranges with the same protection should be coalesced. The default is false.
- */
- coalesce: boolean;
-}
-
-type ExceptionHandlerCallback = (exception: ExceptionDetails) => boolean | void;
-
-interface ExceptionDetails {
- /**
- * The kind of exception that occurred.
- */
- type: ExceptionType;
-
- /**
- * Address where the exception occurred.
- */
- address: NativePointer;
-
- /**
- * Memory operation details, if relevant.
- */
- memory?: ExceptionMemoryDetails | undefined;
-
- /**
- * CPU registers. You may also update register values by assigning to these keys.
- */
- context: CpuContext;
-
- /**
- * Address of the OS and architecture-specific CPU context struct.
- *
- * This is only exposed as a last resort for edge-cases where `context` isn’t providing enough details.
- * We would however discourage using this and rather submit a pull-request to add the missing bits needed
- * for your use-case.
- */
- nativeContext: NativePointer;
-}
-
-type ExceptionType =
- | "abort"
- | "access-violation"
- | "guard-page"
- | "illegal-instruction"
- | "stack-overflow"
- | "arithmetic"
- | "breakpoint"
- | "single-step"
- | "system"
- ;
-
-interface ExceptionMemoryDetails {
- /**
- * The kind of operation that triggered the exception.
- */
- operation: MemoryOperation;
-
- /**
- * Address that was accessed when the exception occurred.
- */
- address: NativePointer;
-}
-
-type MemoryOperation = "read" | "write" | "execute";
-
-interface EnumerateCallbacks {
- onMatch: (item: T) => void | EnumerateAction;
- onComplete: () => void;
-}
-
-type EnumerateAction = "stop";
-
-interface MemoryScanCallbacks {
- /**
- * Called with each occurence that was found.
- *
- * @param address Memory address where a match was found.
- * @param size Size of this match.
- */
- onMatch: (address: NativePointer, size: number) => void | EnumerateAction;
-
- /**
- * Called when there was a memory access error while scanning.
- *
- * @param reason Why the memory access failed.
- */
- onError?: ((reason: string) => void) | undefined;
-
- /**
- * Called when the memory range has been fully scanned.
- */
- onComplete?: () => void;
-}
-
-interface MemoryScanMatch {
- /**
- * Memory address where a match was found.
- */
- address: NativePointer;
-
- /**
- * Size of this match.
- */
- size: number;
-}
-
-interface KernelMemoryScanCallbacks {
- /**
- * Called with each occurence that was found.
- *
- * @param address Memory address where a match was found.
- * @param size Size of this match.
- */
- onMatch: (address: UInt64, size: number) => void | EnumerateAction;
-
- /**
- * Called when there was a memory access error while scanning.
- *
- * @param reason Why the memory access failed.
- */
- onError?: ((reason: string) => void) | undefined;
-
- /**
- * Called when the memory range has been fully scanned.
- */
- onComplete?: () => void;
-}
-
-interface KernelMemoryScanMatch {
- /**
- * Memory address where a match was found.
- */
- address: UInt64;
-
- /**
- * Size of this match.
- */
- size: number;
-}
-
-type MemoryAllocOptions = Record | MemoryAllocNearOptions;
-
-interface MemoryAllocNearOptions {
- /**
- * Memory address to try allocating near.
- */
- near: NativePointer;
-
- /**
- * Maximum distance to the given memory address, in bytes.
- */
- maxDistance: number;
-}
-
-type MemoryPatchApplyCallback = (code: NativePointer) => void;
-
-/**
- * Represents a signed 64-bit value.
- */
-declare class Int64 {
- /**
- * Creates a new Int64 from `v`, which is either a string containing the value in decimal, or hexadecimal
- * if prefixed with “0x”, or a number. You may use the int64(v) short-hand for brevity.
- */
- constructor(v: string | number | Int64);
-
- /**
- * Makes a new Int64 whose value is `this` + `v`.
- */
- add(v: Int64 | number | string): Int64;
-
- /**
- * Makes a new Int64 whose value is `this` - `v`.
- */
- sub(v: Int64 | number | string): Int64;
-
- /**
- * Makes a new Int64 whose value is `this` & `v`.
- */
- and(v: Int64 | number | string): Int64;
-
- /**
- * Makes a new Int64 whose value is `this` | `v`.
- */
- or(v: Int64 | number | string): Int64;
-
- /**
- * Makes a new Int64 whose value is `this` ^ `v`.
- */
- xor(v: Int64 | number | string): Int64;
-
- /**
- * Makes a new Int64 whose value is `this` << `v`.
- */
- shl(v: Int64 | number | string): Int64;
-
- /**
- * Makes a new Int64 whose value is `this` >> `v`.
- */
- shr(v: Int64 | number | string): Int64;
-
- /**
- * Makes a new Int64 whose value is ~`this`.
- */
- not(): Int64;
-
- /**
- * Returns an integer comparison result just like String#localeCompare().
- */
- compare(v: Int64 | number | string): number;
-
- /**
- * Returns a boolean indicating whether `v` is equal to `this`.
- */
- equals(v: Int64 | number | string): boolean;
-
- /**
- * Converts to a number.
- */
- toNumber(): number;
-
- /**
- * Converts to a string, optionally with a custom `radix`.
- */
- toString(radix?: number): string;
-
- /**
- * Converts to a JSON-serializable value. Same as `toString()`.
- */
- toJSON(): string;
-
- /**
- * Converts to a number. Same as `toNumber()`.
- */
- valueOf(): number;
-}
-
-/**
- * Represents an unsigned 64-bit value.
- */
-declare class UInt64 {
- /**
- * Creates a new UInt64 from `v`, which is either a string containing the value in decimal, or hexadecimal
- * if prefixed with “0x”, or a number. You may use the uint64(v) short-hand for brevity.
- */
- constructor(v: string | number | UInt64);
-
- /**
- * Makes a new UInt64 whose value is `this` + `v`.
- */
- add(v: UInt64 | number | string): UInt64;
-
- /**
- * Makes a new UInt64 whose value is `this` - `v`.
- */
- sub(v: UInt64 | number | string): UInt64;
-
- /**
- * Makes a new UInt64 whose value is `this` & `v`.
- */
- and(v: UInt64 | number | string): UInt64;
-
- /**
- * Makes a new UInt64 whose value is `this` | `v`.
- */
- or(v: UInt64 | number | string): UInt64;
-
- /**
- * Makes a new UInt64 whose value is `this` ^ `v`.
- */
- xor(v: UInt64 | number | string): UInt64;
-
- /**
- * Makes a new UInt64 whose value is `this` << `v`.
- */
- shr(v: UInt64 | number | string): UInt64;
-
- /**
- * Makes a new UInt64 whose value is `this` >> `v`.
- */
- shl(v: UInt64 | number | string): UInt64;
-
- /**
- * Makes a new UInt64 whose value is ~`this`.
- */
- not(): UInt64;
-
- /**
- * Returns an integer comparison result just like String#localeCompare().
- */
- compare(v: UInt64 | number | string): number;
-
- /**
- * Returns a boolean indicating whether `v` is equal to `this`.
- */
- equals(v: UInt64 | number | string): boolean;
-
- /**
- * Converts to a number.
- */
- toNumber(): number;
-
- /**
- * Converts to a string, optionally with a custom `radix`.
- */
- toString(radix?: number): string;
-
- /**
- * Converts to a JSON-serializable value. Same as `toString()`.
- */
- toJSON(): string;
-
- /**
- * Converts to a number. Same as `toNumber()`.
- */
- valueOf(): number;
-}
-
-/**
- * Represents a native pointer value whose size depends on Process#pointerSize.
- */
-declare class NativePointer {
- /**
- * Creates a new NativePointer from `v`, which is either a string containing the memory address in decimal,
- * or hexadecimal if prefixed with “0x”, or a number. You may use the ptr(v) short-hand for brevity.
- */
- constructor(v: string | number | UInt64 | Int64 | NativePointerValue);
-
- /**
- * Returns a boolean allowing you to conveniently check if a pointer is `NULL`.
- */
- isNull(): boolean;
-
- /**
- * Makes a new NativePointer whose value is `this` + `v`.
- */
- add(v: NativePointerValue | UInt64 | Int64 | number | string): NativePointer;
-
- /**
- * Makes a new NativePointer whose value is `this` - `v`.
- */
- sub(v: NativePointerValue | UInt64 | Int64 | number | string): NativePointer;
-
- /**
- * Makes a new NativePointer whose value is `this` & `v`.
- */
- and(v: NativePointerValue | UInt64 | Int64 | number | string): NativePointer;
-
- /**
- * Makes a new NativePointer whose value is `this` | `v`.
- */
- or(v: NativePointerValue | UInt64 | Int64 | number | string): NativePointer;
-
- /**
- * Makes a new NativePointer whose value is `this` ^ `v`.
- */
- xor(v: NativePointerValue | UInt64 | Int64 | number | string): NativePointer;
-
- /**
- * Makes a new NativePointer whose value is `this` << `v`.
- */
- shr(v: NativePointerValue | UInt64 | Int64 | number | string): NativePointer;
-
- /**
- * Makes a new NativePointer whose value is `this` >> `v`.
- */
- shl(v: NativePointerValue | UInt64 | Int64 | number | string): NativePointer;
-
- /**
- * Makes a new NativePointer whose value is ~`this`.
- */
- not(): NativePointer;
-
- /**
- * Makes a new NativePointer by taking the bits of `this` and adding
- * pointer authentication bits, creating a signed pointer. This is a
- * no-op if the current process does not support pointer
- * authentication, returning `this` instead of a new value.
- *
- * @param key The key to use. Defaults to `ia`.
- * @param data The data to use. Defaults to `0`.
- */
- sign(key?: PointerAuthenticationKey, data?: NativePointerValue | UInt64 | Int64 | number | string): NativePointer;
-
- /**
- * Makes a new NativePointer by taking the bits of `this` and
- * removing its pointer authentication bits, creating a raw pointer.
- * This is a no-op if the current process does not support pointer
- * authentication, returning `this` instead of a new value.
- *
- * @param key The key that was used to sign `this`. Defaults to `ia`.
- */
- strip(key?: PointerAuthenticationKey): NativePointer;
-
- /**
- * Makes a new NativePointer by taking `this` and blending it with
- * a constant, which may in turn be passed to `sign()` as `data`.
- *
- * @param smallInteger Value to blend with.
- */
- blend(smallInteger: number): NativePointer;
-
- /**
- * Returns a boolean indicating whether `v` is equal to `this`; i.e. it contains the same memory address.
- */
- equals(v: NativePointerValue | UInt64 | Int64 | number | string): boolean;
-
- /**
- * Returns an integer comparison result just like String#localeCompare().
- */
- compare(v: NativePointerValue | UInt64 | Int64 | number | string): number;
-
- /**
- * Converts to a signed 32-bit integer.
- */
- toInt32(): number;
-
- /**
- * Converts to an unsigned 32-bit integer.
- */
- toUInt32(): number;
-
- /**
- * Converts to a “0x”-prefixed hexadecimal string, unless a `radix`
- * is specified.
- */
- toString(radix?: number): string;
-
- /**
- * Converts to a JSON-serializable value. Same as `toString()`.
- */
- toJSON(): string;
-
- /**
- * Returns a string containing a `Memory#scan()`-compatible match pattern for this pointer’s raw value.
- */
- toMatchPattern(): string;
-
- readPointer(): NativePointer;
- readS8(): number;
- readU8(): number;
- readS16(): number;
- readU16(): number;
- readS32(): number;
- readU32(): number;
- readS64(): Int64;
- readU64(): UInt64;
- readShort(): number;
- readUShort(): number;
- readInt(): number;
- readUInt(): number;
- readLong(): number | Int64;
- readULong(): number | UInt64;
- readFloat(): number;
- readDouble(): number;
- readByteArray(length: number): ArrayBuffer | null;
- readCString(size?: number): string | null;
- readUtf8String(size?: number): string | null;
- readUtf16String(length?: number): string | null;
- readAnsiString(size?: number): string | null;
-
- writePointer(value: NativePointerValue): NativePointer;
- writeS8(value: number | Int64): NativePointer;
- writeU8(value: number | UInt64): NativePointer;
- writeS16(value: number | Int64): NativePointer;
- writeU16(value: number | UInt64): NativePointer;
- writeS32(value: number | Int64): NativePointer;
- writeU32(value: number | UInt64): NativePointer;
- writeS64(value: number | Int64): NativePointer;
- writeU64(value: number | UInt64): NativePointer;
- writeShort(value: number | Int64): NativePointer;
- writeUShort(value: number | UInt64): NativePointer;
- writeInt(value: number | Int64): NativePointer;
- writeUInt(value: number | UInt64): NativePointer;
- writeLong(value: number | Int64): NativePointer;
- writeULong(value: number | UInt64): NativePointer;
- writeFloat(value: number): NativePointer;
- writeDouble(value: number): NativePointer;
- writeByteArray(value: ArrayBuffer | number[]): NativePointer;
- writeUtf8String(value: string): NativePointer;
- writeUtf16String(value: string): NativePointer;
- writeAnsiString(value: string): NativePointer;
-}
-
-type PointerAuthenticationKey = "ia" | "ib" | "da" | "db";
-
-interface ObjectWrapper {
- handle: NativePointer;
-}
-
-interface ArrayBufferConstructor {
- /**
- * Creates an ArrayBuffer backed by an existing memory region. Unlike
- * the NativePointer `read*()` and `write*()` APIs, no validation is
- * performed on access, meaning a bad pointer will crash the process.
- *
- * @param address Base address of the region. Passing `NULL` will result
- * in an empty buffer.
- * @param size Size of the region. Passing `0` will result in an empty
- * buffer.
- */
- wrap(address: NativePointerValue, size: number): ArrayBuffer;
-}
-
-interface ArrayBuffer {
- /**
- * Gets a pointer to the base address of the ArrayBuffer's backing store.
- * It is the caller's responsibility to keep the buffer alive while the
- * backing store is still being used.
- */
- unwrap(): NativePointer;
-}
-
-type NativePointerValue = NativePointer | ObjectWrapper;
-
-declare const NativeFunction: NativeFunctionConstructor;
-
-interface NativeFunctionConstructor {
- new (
- address: NativePointerValue,
- retType: RetType,
- argTypes: ArgTypes,
- abiOrOptions?: NativeABI | NativeFunctionOptions,
- ): NativeFunction<
- GetNativeFunctionReturnValue,
- ResolveVariadic, unknown[]>>
- >;
- readonly prototype: NativeFunction;
-}
-
-interface NativeFunction
- extends NativePointer {
- (...args: ArgTypes): RetType;
- apply(thisArg: NativePointerValue | null | undefined, args: ArgTypes): RetType;
- call(thisArg?: NativePointerValue | null, ...args: ArgTypes): RetType;
-}
-
-declare const SystemFunction: SystemFunctionConstructor;
-
-interface SystemFunctionConstructor {
- new (
- address: NativePointerValue,
- retType: RetType,
- argTypes: ArgTypes,
- abiOrOptions?: NativeABI | NativeFunctionOptions,
- ): SystemFunction<
- GetNativeFunctionReturnValue,
- ResolveVariadic, unknown[]>>
- >;
- readonly prototype: SystemFunction;
-}
-
-interface SystemFunction
- extends NativePointer {
- (...args: ArgTypes): SystemFunctionResult;
- apply(thisArg: NativePointerValue | null | undefined, args: ArgTypes): SystemFunctionResult;
- call(thisArg?: NativePointerValue | null, ...args: ArgTypes): SystemFunctionResult;
-}
-
-type SystemFunctionResult =
- | WindowsSystemFunctionResult
- | UnixSystemFunctionResult
- ;
-
-interface WindowsSystemFunctionResult {
- value: Value;
- lastError: number;
-}
-
-interface UnixSystemFunctionResult {
- value: Value;
- errno: number;
-}
-
-declare class NativeCallback<
- RetType extends NativeCallbackReturnType,
- ArgTypes extends NativeCallbackArgumentType[] | [],
-> extends NativePointer {
- constructor(
- func: NativeCallbackImplementation<
- GetNativeCallbackReturnValue,
- Extract, unknown[]>
- >,
- retType: RetType,
- argTypes: ArgTypes,
- abi?: NativeABI,
- );
-}
-
-type NativeCallbackImplementation<
- RetType extends NativeCallbackReturnValue,
- ArgTypes extends NativeCallbackArgumentValue[] | [],
-> = (this: CallbackContext | InvocationContext, ...args: ArgTypes) => RetType;
-
-interface CallbackContext {
- /**
- * Return address.
- */
- returnAddress: NativePointer;
-
- /**
- * CPU registers, but unlike `InvocationContext` this is read-only and only
- * contains the bare minimum needed for `Thread.backtrace()` - all others
- * are zeroed out.
- */
- context: CpuContext;
-}
-
-type Variadic = "...";
-
-type ResolveVariadic = List extends [Variadic, ...infer Tail]
- ? [...Array]
- : List extends [infer Head, ...infer Tail]
- ? [Head, ...ResolveVariadic]
- : [];
-
-type RecursiveValuesOf = T[keyof T] | Array>;
-
-type RecursiveKeysOf = keyof T | Array> | [];
-
-type GetValue