alipay-sdk
Advanced tools
Comparing version 3.6.1 to 4.0.0-beta.0
116
package.json
{ | ||
"name": "alipay-sdk", | ||
"version": "3.6.1", | ||
"description": "支付宝开放平台 Node.js SDK", | ||
"main": "lib/alipay.js", | ||
"version": "4.0.0-beta.0", | ||
"publishConfig": { | ||
"tag": "next", | ||
"access": "public" | ||
}, | ||
"description": "支付宝开放平台 Node.js SDK / Alipay OpenAPI SDK for Node.js", | ||
"scripts": { | ||
"build": "npm run tsc", | ||
"tsc": "tsc -p ./tsconfig.json", | ||
"tsc:watch": "tsc -w", | ||
"clean": "tsc -b --clean", | ||
"dev": "tsc -w", | ||
"lint": "eslint .", | ||
"test": "npm run build && mocha", | ||
"ci": "npm run tsc && nyc mocha -t 6000", | ||
"prepublishOnly": "npm run clean && npm run tsc" | ||
"lint": "eslint src test --ext ts", | ||
"test": "npm run lint -- --fix && egg-bin test", | ||
"ci": "npm run lint && egg-bin cov && npm run prepublishOnly", | ||
"prepublishOnly": "tshy && tshy-after" | ||
}, | ||
"author": "dersoncheng", | ||
"homepage": "https://github.com/ali-sdk/alipay-sdk", | ||
"bugs": "https://github.com/ali-sdk/alipay-sdk/issues", | ||
"license": "ISC", | ||
"author": "fengmk2", | ||
"homepage": "https://github.com/alipay/alipay-sdk-nodejs-all", | ||
"bugs": "https://github.com/alipay/alipay-sdk-nodejs-all/issues", | ||
"dependencies": { | ||
"@fidm/x509": "^1.2.1", | ||
"bignumber.js": "^9.0.0", | ||
"camelcase-keys": "^4.2.0", | ||
"crypto-js": "^4.0.0", | ||
"decamelize": "^2.0.0", | ||
"iconv-lite": "^0.4.24", | ||
"is": "^3.2.1", | ||
"is-json": "^2.0.1", | ||
"lodash": "^4.17.20", | ||
"moment": "^2.16.0", | ||
"snakecase-keys": "^1.1.1", | ||
"urllib": "^2.17.0" | ||
"bignumber.js": "^9.1.2", | ||
"camelcase-keys": "^7.0.2", | ||
"crypto-js": "^4.2.0", | ||
"formstream": "^1.4.0", | ||
"snakecase-keys": "^8.0.0", | ||
"urllib": "^3.25.0", | ||
"utility": "^2.1.0" | ||
}, | ||
"nyc": { | ||
"extends": "@istanbuljs/nyc-config-typescript", | ||
"include": [ | ||
"lib" | ||
], | ||
"extension": [ | ||
".ts" | ||
], | ||
"check-coverage": true, | ||
"reporter": [ | ||
"text-summary", | ||
"json", | ||
"html" | ||
], | ||
"sourceMap": true | ||
}, | ||
"engines": { | ||
"node": ">=8.0.0" | ||
"node": ">=18.0.0" | ||
}, | ||
"devDependencies": { | ||
"@istanbuljs/nyc-config-typescript": "^0.1.3", | ||
"@types/node": "^18.16.3", | ||
"eslint": "^8.35.0", | ||
"eslint-config-egg": "^12.1.0", | ||
"mocha": "^3.1.2", | ||
"nyc": "^14.1.1", | ||
"query-string": "^6.5.0", | ||
"should": "^11.1.1", | ||
"sinon": "^1.17.7", | ||
"typescript": "^4.9.0" | ||
"@eggjs/tsconfig": "^1.3.3", | ||
"@types/crypto-js": "^4.2.2", | ||
"@types/mocha": "^10.0.6", | ||
"@types/node": "20", | ||
"egg-bin": "^6.9.0", | ||
"eslint": "8", | ||
"eslint-config-egg": "13", | ||
"git-contributor": "^2.1.5", | ||
"mm": "^3.4.0", | ||
"tshy": "^1.14.0", | ||
"tshy-after": "^1.0.0", | ||
"typescript": "5" | ||
}, | ||
"repository": "git@github.com:alipay/alipay-sdk-nodejs-all.git" | ||
"repository": "git@github.com:alipay/alipay-sdk-nodejs-all.git", | ||
"license": "MIT", | ||
"type": "module", | ||
"tshy": { | ||
"exports": { | ||
"./package.json": "./package.json", | ||
".": "./src/index.ts" | ||
} | ||
}, | ||
"exports": { | ||
"./package.json": "./package.json", | ||
".": { | ||
"import": { | ||
"types": "./dist/esm/index.d.ts", | ||
"default": "./dist/esm/index.js" | ||
}, | ||
"require": { | ||
"types": "./dist/commonjs/index.d.ts", | ||
"default": "./dist/commonjs/index.js" | ||
} | ||
} | ||
}, | ||
"files": [ | ||
"dist", | ||
"src" | ||
], | ||
"main": "./dist/commonjs/index.js", | ||
"types": "./dist/commonjs/index.d.ts" | ||
} |
191
README.md
@@ -1,32 +0,61 @@ | ||
# Alipay SDK | ||
# Alipay OpenAPI SDK | ||
[![NPM version][npm-image]][npm-url] | ||
[![CI](https://github.com/alipay/alipay-sdk-nodejs-all/actions/workflows/node.yml/badge.svg)](https://github.com/alipay/alipay-sdk-nodejs-all/actions/workflows/node.yml) | ||
[![Test coverage][codecov-image]][codecov-url] | ||
[![npm download][download-image]][download-url] | ||
[npm-image]: https://img.shields.io/npm/v/alipay-sdk.svg?style=flat-square | ||
[npm-url]: https://npmjs.org/package/alipay-sdk | ||
[codecov-image]: https://codecov.io/github/alipay/alipay-sdk-nodejs-all/coverage.svg?branch=master | ||
[codecov-url]: https://codecov.io/github/alipay/alipay-sdk-nodejs-all?branch=master | ||
[download-image]: https://img.shields.io/npm/dm/alipay-sdk.svg?style=flat-square | ||
[download-url]: https://npmjs.org/package/alipay-sdk | ||
<a name="gK9UJ"></a> | ||
## 简介 | ||
Alipay SDK for Node.js 用于给 Node 服务器提供调用支付宝开放平台的能力。包括向支付宝服务器发起 OpenAPI 请求、订单信息生成,以及配套的证书、加签和验签能力。 | ||
Alipay OpenAPI SDK for Node.js / 用于给 Node.js 服务器提供调用支付宝开放平台的能力。 | ||
包括向支付宝服务器发起 OpenAPI 请求、订单信息生成,以及配套的证书、加签和验签能力。 | ||
基于[支付宝 API v3 接口规范](https://opendocs.alipay.com/open-v3/054oog?pathHash=7834d743)实现。 | ||
<a name="qpkzt"></a> | ||
## 环境要求 | ||
- 需要 Node.js 8 以上版本 | ||
- 安装依赖 | ||
> npm install alipay-sdk --save | ||
- 需要 Node.js >= 18 | ||
安装依赖 | ||
```bash | ||
npm install alipay-sdk --save | ||
``` | ||
<a name="cBULc"></a> | ||
## 平台配置 | ||
- 先前往[支付宝开发平台-开发者中心](https://openhome.alipay.com/platform/developerIndex.htm)完成开发者接入的一些准备工作,包括创建应用、为应用添加功能包、设置[应用的接口加签方式](https://opendocs.alipay.com/common/02kf5p)等。 | ||
- 可以使用 [支付宝开放平台秘钥工具](https://opendocs.alipay.com/common/02kipk) 获取所需的公私钥,并在平台上上传公钥。 | ||
- 本 SDK 默认采用 `PKCS1` 的格式解析密钥,与密钥工具的默认生成格式不一致。请使用密钥工具【格式转换】功能转为 `PKCS1`,或在本 SDK 初始化时显式指定 `keyType: 'PKCS8'`。 | ||
- 可以使用 [支付宝开放平台秘钥工具](https://opendocs.alipay.com/common/02kipk) 获取所需的公私钥,并在平台上上传公钥。 | ||
- 本 SDK 默认采用 `PKCS1` 的格式解析密钥,与密钥工具的默认生成格式不一致。请使用密钥工具【格式转换】功能转为 `PKCS1`,或在本 SDK 初始化时显式指定 `keyType: 'PKCS8'`。 | ||
- 在设置加签方式结束之后,记录必要信息用于初始化 SDK。 | ||
- 公钥证书模式(推荐): `appId`、`应用私钥`、`应用公钥证书文件`、`支付宝公钥证书文件`、`支付宝根证书文件` | ||
- 公钥模式:`appId`、`应用私钥`、`应用公钥`、`支付宝公钥` | ||
- 公钥证书模式(推荐): `appId`、`应用私钥`、`应用公钥证书文件`、`支付宝公钥证书文件`、`支付宝根证书文件` | ||
- 公钥模式:`appId`、`应用私钥`、`应用公钥`、`支付宝公钥` | ||
<a name="AgPWA"></a> | ||
## 初始化 SDK | ||
> 代码示例中的路径和文件名仅做示范,请根据项目实际读取文件所在的位置 | ||
> 请保存好私钥文件,避免信息泄露 | ||
- 代码示例中的路径和文件名仅做示范,请根据项目实际读取文件所在的位置 | ||
- 请保存好私钥文件,避免信息泄露 | ||
<a name="bKaOK"></a> | ||
### 普通公钥模式 | ||
```typescript | ||
const AlipaySdk = require('alipay-sdk'); | ||
// esmodule / typescript,可以使用 import AlipaySdk from 'alipay-sdk'; | ||
// 普通公钥模式 | ||
import { AlipaySdk } from 'alipay-sdk'; | ||
const alipaySdk = new AlipaySdk({ | ||
@@ -39,6 +68,9 @@ appId: '2016123456789012', | ||
``` | ||
<a name="bPWCK"></a> | ||
### 证书模式 | ||
```typescript | ||
const AlipaySdk = require('alipay-sdk'); | ||
import { AlipaySdk } from 'alipay-sdk'; | ||
@@ -54,18 +86,26 @@ const alipaySdk = new AlipaySdk({ | ||
``` | ||
<a name="mHx2N"></a> | ||
### 验证配置 | ||
可以使用如下基础接口请求服务端,以验证配置正确。具体的接口定义可以在[开放平台文档站](https://opendocs.alipay.com/open/54/103419)获取。 | ||
可以使用如下基础接口请求服务端,以验证配置正确。 | ||
具体的接口定义可以在[开放平台文档站](https://opendocs.alipay.com/open/54/103419)获取。 | ||
```typescript | ||
// 小程序:生成二维码 | ||
const result = await alipaySdk.exec('alipay.open.public.qrcode.create'); | ||
let result = await alipaySdk.exec('alipay.open.public.qrcode.create'); | ||
// 生活号:基础信息查询 | ||
const result = await alipaySdk.exec('alipay.open.public.info.query'); | ||
result = await alipaySdk.exec('alipay.open.public.info.query'); | ||
// 第三方应用:查询应用授权信息。需要先给第三方应用授权:https://opendocs.alipay.com/isv/04h3ue | ||
const result = await alipaySdk.exec('alipay.open.auth.token.app.query', { | ||
// 第三方应用:查询应用授权信息 | ||
// 需要先给第三方应用授权:https://opendocs.alipay.com/isv/04h3ue | ||
result = await alipaySdk.exec('alipay.open.auth.token.app.query', { | ||
bizContent: { app_auth_token: 'token 请在开放平台上查询' } | ||
}); | ||
``` | ||
如返回 JSON 格式内容,即说明配置成功。 | ||
```javascript | ||
@@ -84,12 +124,17 @@ { | ||
其余情况,如代码报错或者返回 html 代码,则说明未配置成功。 | ||
其余情况,如代码报错或者返回 `HTML` 代码,则说明未配置成功。 | ||
<a name="hfIbW"></a> | ||
## 快速使用 | ||
<a name="Y6rw4"></a> | ||
### exec 示例接口 | ||
用于向支付宝服务器发起请求。与具体接口相关的业务参数,需要放在 bizContent 中。 | ||
用于向支付宝服务器发起请求。与具体接口相关的业务参数,需要放在 `bizContent` 中。 | ||
```typescript | ||
const result = await alipay.exec('alipay.trade.pay', { | ||
notify_url: 'http://www.notify.com/notify', // 通知回调地址 | ||
notify_url: 'http://www.your-notify.com/notify', // 通知回调地址 | ||
bizContent: { | ||
@@ -103,9 +148,16 @@ out_trade_no: '商家的交易码,需保持唯一性', | ||
> 部分接口,如 [`alipay.system.oauth.token`](https://opendocs.alipay.com/open/05nai1),其请求参数不在 bizContent 中。具体可参考官网各接口定义。 | ||
**⚠️⚠️⚠️ 注意**:部分接口的请求参数不在 `bizContent` 中, | ||
如 [`alipay.system.oauth.token`](https://opendocs.alipay.com/open/05nai1), | ||
具体可参考官网各接口定义。 | ||
<a name="tPtNK"></a> | ||
### 使用 AlipayFormData 配置表单 | ||
部分接口需要上传文件。SDK 内部封装了一个 Form 对象,用以在发起 multipart/form-data 请求时使用。以 [上传门店照片和视频接口](https://opendocs.alipay.com/apis/api_3/alipay.offline.material.image.upload) 为例: | ||
### 使用 `AlipayFormData` 配置表单 | ||
部分接口需要上传文件。 | ||
SDK 内部封装了一个 `Form` 对象,用以在发起 `multipart/form-data` 请求时使用。 | ||
以 [上传门店照片和视频接口](https://opendocs.alipay.com/apis/api_3/alipay.offline.material.image.upload) 为例: | ||
```typescript | ||
const AlipayFormData = require('alipay-sdk/lib/form'); | ||
import { AlipayFormData } from 'alipay-sdk'; | ||
@@ -118,3 +170,2 @@ const formData = new AlipayFormData(); | ||
const result = await alipaySdk.exec( | ||
@@ -130,8 +181,12 @@ 'alipay.offline.material.image.upload', | ||
``` | ||
<a name="axe5B"></a> | ||
### pageExec 示例接口 | ||
pageExec 方法主要是用于网站支付接口请求链接生成,传入前台访问输入密码完成支付,如电脑网站支付([alipay.trade.page.pay | ||
](https://opendocs.alipay.com/open/028r8t?scene=22))等接口。 | ||
`pageExec` 方法主要是用于网站支付接口请求链接生成,传入前台访问输入密码完成支付, | ||
如电脑网站支付 [alipay.trade.page.pay](https://opendocs.alipay.com/open/028r8t?scene=22) 等接口。 | ||
表单示例: | ||
```typescript | ||
@@ -144,6 +199,6 @@ const bizContent = { | ||
total_amount: "0.01" | ||
}, | ||
}; | ||
// 支付页面接口,返回 html 代码片段,内容为 Form 表单 | ||
const result = sdk.pageExec('alipay.trade.page.pay', { | ||
// 支付页面接口,返回 HTML 代码片段,内容为 Form 表单 | ||
const html = sdk.pageExec('alipay.trade.page.pay', { | ||
method: 'POST', | ||
@@ -157,12 +212,13 @@ bizContent, | ||
<form action="https://openapi.alipay.com/gateway.do?method=alipay.trade.app.pay&app_id=2021002182632749&charset=utf-8&version=1.0&sign_type=RSA2×tamp=2023-02-28%2011%3A48%3A28&app_auth_token=202302BBbcfad868001a4df3bbfa99e8a6913F10&sign=j9DjDGgxLt3jbOQZy7q7Qu8baKWTl4hZlxOHa%2B46hC1djmFx%2FIyBqzQntPMurzz3f8efXJsalZz3nqZ9ClowCCxBfBvqE0cdzCDAeQ1GMgjd7dbWgjfNNcqKgmJPsIkLaHnP5vTvj%2BA27SqkeZCMbeVfv%2B4nYurXaFB9dNBtA%3D%3D" method="post" name="alipaySDKSubmit1677556108819" id="alipaySDKSubmit1677556108819"> | ||
<input type="hidden" name="alipay_sdk" value="alipay-sdk-nodejs-3.3.0" /><input type="hidden" name="biz_content" value="{"out_trade_no":"ziheng-test-eeee","product_code":"QUICK_MSECURITY_PAY","subject":"订单标题","total_amount":"0.01","body":"订单描述"}" /> | ||
</form> | ||
<input type="hidden" name="alipay_sdk" value="alipay-sdk-nodejs-3.3.0" /> | ||
<input type="hidden" name="biz_content" value="{"out_trade_no":"ziheng-test-eeee","product_code":"QUICK_MSECURITY_PAY","subject":"订单标题","total_amount":"0.01","body":"订单描述"}" /> | ||
</form> | ||
<script>document.forms["alipaySDKSubmit1677556108819"].submit();</script> | ||
``` | ||
支付链接示例: | ||
```ts | ||
// 支付页面接口,返回支付链接,交由用户打开,会跳转至支付宝网站 | ||
const result = sdk.pageExec('alipay.trade.page.pay', { | ||
const url = sdk.pageExec('alipay.trade.page.pay', { | ||
method: 'GET', | ||
@@ -174,10 +230,11 @@ bizContent, | ||
// 返回示例:https://openapi.alipay.com/gateway.do?method=alipay.trade.app.pay&app_id=2021002182632749&charset=utf-8&version=1.0&sign_type=RSA2×tamp=2023-02-28%2011%3A46%3A35&app_auth_token=202302BBbcfaf3bbfa99e8a6913F10&sign=TPi33NcaKLRBLJDofon84D8itMoBkVAdJsfmIiQDScEw4NHAklXvcvn148A2t47YxDSK0urBnhS0%2BEV%2BVR6h6aKgp931%2FfFbG1I3SAguMjMbr23gnbS68d4spcQ%3D%3D&alipay_sdk=alipay-sdk-nodejs-3.3.0&biz_content=blabla | ||
``` | ||
<a name="Rw8WE"></a> | ||
``` | ||
### sdkExec 示例接口 | ||
`sdkExec` 方法主要是服务端生成请求字符串使用的,不会直接支付扣款,需传值到客户端进行调用收银台输入密码完成支付, | ||
如 App 支付接口 [alipay.trade.app.pay](https://opendocs.alipay.com/apis/api_1/alipay.trade.app.pay)。 | ||
<a name="Rw8WE"></a> | ||
### sdkExec 示例接口 | ||
sdkExec 方法主要是服务端生成请求字符串使用的,不会直接支付扣款,需传值到客户端进行调用收银台输入密码完成支付,如 App 支付接口 [alipay.trade.app.pay](https://opendocs.alipay.com/apis/api_1/alipay.trade.app.pay)。 | ||
```typescript | ||
@@ -194,3 +251,3 @@ // App 支付接口,生成请求字符串, | ||
returnUrl: 'https://www.taobao.com' | ||
}) | ||
}); | ||
@@ -213,24 +270,42 @@ // 返回支付宝客户端之后,在【小程序中】通过 my.tradePay 进行调用。 | ||
}); | ||
``` | ||
<a name="jFMMS"></a> | ||
``` | ||
<a name="jFMMS"></a> | ||
### 通知验签 | ||
部分接口会设置回调地址,用于支付宝服务器向业务服务器通知业务情况(如交易成功)等。此时业务服务应该验证该回调的来源安全性,确保其确实由支付宝官方发起。SDK 提供了对应的通知验签能力。 | ||
部分接口会设置回调地址,用于支付宝服务器向业务服务器通知业务情况(如交易成功)等。 | ||
此时业务服务应该验证该回调的来源安全性,确保其确实由支付宝官方发起。 | ||
SDK 提供了对应的通知验签能力。 | ||
```typescript | ||
// 获取 queryObj,如 ctx.query, router.query | ||
// 如服务器未将 queryString 转化为 object,需要手动转化 | ||
const queryObj = { sign_type: 'RSA2', sign: 'QfTb8tqE1BMhS5qAn.....', gmt_create: '2019-08-15 15:56:22', other_biz_field: '....' } | ||
const queryObj = { | ||
sign_type: 'RSA2', | ||
sign: 'QfTb8tqE1BMhS5qAn.....', | ||
gmt_create: '2019-08-15 15:56:22', | ||
other_biz_field: '....', | ||
} | ||
// true | false | ||
const signRes = sdk.checkNotifySign(queryObj); | ||
const signResult = sdk.checkNotifySign(queryObj); | ||
``` | ||
<a name="rgUZQ"></a> | ||
## 问题反馈 | ||
如您在使用 Alipay SDK for Node.js 过程中遇到问题,欢迎前往 [支付宝开放社区](https://forum.alipay.com/mini-app/channel/1100001) 发帖与支付宝工作人员和其他开发者一起交流,或联系 [支付宝开放平台客服](https://linksprod.alipay.com/app/room/5fec1e8f69565405716ba28a/) 协助解决。 | ||
如您在使用 Alipay SDK for Node.js 过程中遇到问题, | ||
欢迎前往 [支付宝开放社区](https://forum.alipay.com/mini-app/channel/1100001) 发帖与支付宝工作人员和其他开发者一起交流, | ||
或联系 [支付宝开放平台客服](https://linksprod.alipay.com/app/room/5fec1e8f69565405716ba28a/) 协助解决。 | ||
<a name="TDdWH"></a> | ||
## API | ||
<a name="DS92L"></a> | ||
### new AlipaySdk(config) | ||
| Param | Type | Description | | ||
@@ -240,5 +315,6 @@ | --- | --- | --- | | ||
<a name="rHN3I"></a> | ||
<a name="rHN3I"></a> | ||
### AlipaySdkConfig | ||
| 参数 | 说明 | 类型 | 必须 | | ||
@@ -266,4 +342,4 @@ | --- | --- | --- | --- | | ||
<a name="TxCzx"></a> | ||
<a name="TxCzx"></a> | ||
### alipaySdk.sdkExec(method, params) ⇒ `string` | ||
@@ -282,2 +358,3 @@ | ||
<a name="wbKs5"></a> | ||
### alipaySdk.pageExec(method, params) ⇒ `string` | ||
@@ -296,4 +373,4 @@ | ||
<a name="igAmX"></a> | ||
<a name="igAmX"></a> | ||
### alipaySdk.exec(method, params, option) ⇒ `Promise.<(AlipaySdkCommonResult|string)>` | ||
@@ -314,5 +391,6 @@ | ||
<a name="W4dEr"></a> | ||
<a name="W4dEr"></a> | ||
#### AlipaySdkCommonResult | ||
响应结果 | ||
@@ -328,3 +406,5 @@ | ||
<a name="Hm0Qr"></a> | ||
#### IRequestParams | ||
请求参数 | ||
@@ -338,9 +418,12 @@ | ||
<a name="ekWqZ"></a> | ||
### alipaySdk.checkNotifySign(postData, raw) | ||
通知验签<br />**Returns**: `Boolean` - 是否验签成功 | ||
通知验签 | ||
**Returns**: `Boolean` - 是否验签成功 | ||
| Param | Type | Description | | ||
| --- | --- | --- | | ||
| postData | `JSON` | 服务端的消息内容 | | ||
| raw | `Boolean` | 是否使用 raw 内容而非 decode 内容验签 | | ||
| raw | `Boolean` | 是否使用 raw 内容而非 decode 内容验签 | |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
No bug tracker
MaintenancePackage does not have a linked bug tracker in package.json.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
No bug tracker
MaintenancePackage does not have a linked bug tracker in package.json.
Found 1 instance in 1 package
243968
8
35
3565
412
1
Yes
12
1
2
+ Addedformstream@^1.4.0
+ Addedutility@^2.1.0
+ Added@fastify/busboy@2.1.1(transitive)
+ Addedcamelcase@6.3.0(transitive)
+ Addedcamelcase-keys@7.0.2(transitive)
+ Addeddot-case@3.0.4(transitive)
+ Addedform-data-encoder@1.9.0(transitive)
+ Addedformdata-node@4.4.1(transitive)
+ Addedlower-case@2.0.2(transitive)
+ Addedmap-obj@4.3.0(transitive)
+ Addedmime-db@1.52.0(transitive)
+ Addedmime-types@2.1.35(transitive)
+ Addedno-case@3.0.4(transitive)
+ Addednode-domexception@1.0.0(transitive)
+ Addedquick-lru@5.1.1(transitive)
+ Addedsnake-case@3.0.4(transitive)
+ Addedsnakecase-keys@8.0.1(transitive)
+ Addedtslib@2.8.1(transitive)
+ Addedtype-fest@1.4.04.29.0(transitive)
+ Addedundici@5.28.4(transitive)
+ Addedurllib@3.27.1(transitive)
+ Addedutility@2.1.0(transitive)
+ Addedweb-streams-polyfill@4.0.0-beta.3(transitive)
+ Addedylru@1.4.0(transitive)
- Removeddecamelize@^2.0.0
- Removediconv-lite@^0.4.24
- Removedis@^3.2.1
- Removedis-json@^2.0.1
- Removedlodash@^4.17.20
- Removedmoment@^2.16.0
- Removedany-promise@1.3.0(transitive)
- Removedcamelcase@4.1.0(transitive)
- Removedcamelcase-keys@4.2.0(transitive)
- Removedcontent-type@1.0.5(transitive)
- Removedcopy-to@2.0.1(transitive)
- Removeddecamelize@2.0.0(transitive)
- Removedee-first@1.1.1(transitive)
- Removedhumanize-ms@1.2.1(transitive)
- Removediconv-lite@0.4.240.6.3(transitive)
- Removedis@3.3.0(transitive)
- Removedis-json@2.0.1(transitive)
- Removedlodash@4.17.21(transitive)
- Removedmap-obj@2.0.0(transitive)
- Removedmkdirp@0.5.6(transitive)
- Removedmoment@2.30.1(transitive)
- Removedms@2.1.3(transitive)
- Removedmz@2.7.0(transitive)
- Removedobject-assign@4.1.1(transitive)
- Removedquick-lru@1.1.0(transitive)
- Removedsafer-buffer@2.1.2(transitive)
- Removedsnakecase-keys@1.2.0(transitive)
- Removedstatuses@1.5.0(transitive)
- Removedthenify@3.3.1(transitive)
- Removedthenify-all@1.6.0(transitive)
- Removedto-no-case@0.1.1(transitive)
- Removedto-snake-case@0.1.2(transitive)
- Removedto-space-case@0.1.2(transitive)
- Removedurllib@2.44.0(transitive)
- Removedutility@1.18.0(transitive)
- Removedxregexp@4.0.0(transitive)
Updatedbignumber.js@^9.1.2
Updatedcamelcase-keys@^7.0.2
Updatedcrypto-js@^4.2.0
Updatedsnakecase-keys@^8.0.0
Updatedurllib@^3.25.0