This is an automated email from the ASF dual-hosted git repository.

hufeng pushed a commit to branch dubbo3
in repository https://gitbox.apache.org/repos/asf/dubbo-js.git


The following commit(s) were added to refs/heads/dubbo3 by this push:
     new c63cc72  feat: 调整dubbo transport
     new b010f70  Merge pull request #325 from godkun/dubbo3
c63cc72 is described below

commit c63cc7252e62bfca94a2d3cdb8301c1b3800c577
Author: godkun <[email protected]>
AuthorDate: Tue Dec 6 13:09:30 2022 +0800

    feat: 调整dubbo transport
---
 packages/dubbo-transport/package.json              |  20 ++++
 .../dubbo-transport/src/__tests__/index.test.ts    |  35 +++++++
 packages/dubbo-transport/src/client.ts             |  57 +++++++++++
 packages/dubbo-transport/src/index.ts              |  21 ++++
 packages/dubbo-transport/src/server.ts             |  70 ++++++++++++++
 packages/dubbo-transport/src/transport.ts          |  30 ++++++
 pnpm-lock.yaml                                     | 107 +++++++++++++--------
 7 files changed, 302 insertions(+), 38 deletions(-)

diff --git a/packages/dubbo-transport/package.json 
b/packages/dubbo-transport/package.json
new file mode 100644
index 0000000..4dfcdb4
--- /dev/null
+++ b/packages/dubbo-transport/package.json
@@ -0,0 +1,20 @@
+{
+  "name": "apache-dubbo3-transport",
+  "version": "0.0.1",
+  "main": "./lib/index.js",
+  "types": "./lib/typings/index.d.ts",
+  "description": "apache dubbo3 transport",
+  "keywords": [
+    "dubbo3",
+    "nodejs",
+    "dubbo3-transport"
+  ],
+  "license": "Apache-2.0",
+  "dependencies": {
+    "debug": "^4.3.4",
+    "lodash": "^4.17.21"
+  },
+  "devDependencies": {
+    "@types/lodash": "^4.14.189"
+  }
+}
diff --git a/packages/dubbo-transport/src/__tests__/index.test.ts 
b/packages/dubbo-transport/src/__tests__/index.test.ts
new file mode 100644
index 0000000..f087f8f
--- /dev/null
+++ b/packages/dubbo-transport/src/__tests__/index.test.ts
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
+
+import { DubboClientTransport, DubboServerTransport } from '../index'
+
+describe(`dubbo-transport`, () => {
+  it('test dubbo-transport', () => {
+    // 创建服务端 transport 实例
+    const server = new DubboServerTransport({
+      url: 'http://localhost:3600',
+      port: 3600
+    })
+    expect(server.port).toBe(3600)
+    // 创建客户端 transport 实例
+    const client = new DubboClientTransport({
+      url: 'http://localhost:3600',
+      port: 3600
+    })
+    expect(client.url).toBe('http://localhost:3600')
+  })
+})
diff --git a/packages/dubbo-transport/src/client.ts 
b/packages/dubbo-transport/src/client.ts
new file mode 100644
index 0000000..3589513
--- /dev/null
+++ b/packages/dubbo-transport/src/client.ts
@@ -0,0 +1,57 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
+
+import { debug } from 'debug'
+import http2 from 'node:http2'
+import { IDubboClientTransport, DubboContext } from './transport'
+
+// init log
+const log = debug('dubbo3:transport:client')
+
+export class DubboClientTransport implements IDubboClientTransport {
+  // transport 实例
+  private transport: any
+  private ctx: DubboContext
+
+  constructor(opts: DubboContext) {
+    this.ctx = opts
+    this.connect()
+  }
+
+  get url() {
+    return this.ctx.url
+  }
+
+  /**
+   * 建立连接
+   */
+  connect() {
+    this.transport = http2.connect(this.url)
+
+    this.transport.once('connect', () => {
+      log('has connected')
+    })
+  }
+
+  /**
+   * 发送消息
+   * @param msg
+   */
+  async send(msg: DubboContext): Promise<void> {
+    this.transport.request(msg)
+  }
+}
diff --git a/packages/dubbo-transport/src/index.ts 
b/packages/dubbo-transport/src/index.ts
new file mode 100644
index 0000000..a0592e7
--- /dev/null
+++ b/packages/dubbo-transport/src/index.ts
@@ -0,0 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
+
+import { DubboClientTransport } from './client'
+import { DubboServerTransport } from './server'
+
+export { DubboClientTransport, DubboServerTransport }
diff --git a/packages/dubbo-transport/src/server.ts 
b/packages/dubbo-transport/src/server.ts
new file mode 100644
index 0000000..6c7e9d9
--- /dev/null
+++ b/packages/dubbo-transport/src/server.ts
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
+
+import debug from 'debug'
+import EventEmitter from 'node:events'
+import http2 from 'node:http2'
+import { IDubboServerTransport, DubboContext } from './transport'
+
+// init log
+const log = debug('dubbo3:transport:client')
+
+export class DubboServerTransport
+  extends EventEmitter
+  implements IDubboServerTransport
+{
+  private ctx: DubboContext
+  transport: any
+
+  constructor(opts: DubboContext) {
+    super()
+    this.ctx = opts
+    this.transport = this.start()
+  }
+
+  get url() {
+    return this.ctx.url
+  }
+
+  get port() {
+    return this.ctx.port
+  }
+
+  /**
+   * 启动服务端 transport
+   * @returns
+   */
+  start() {
+    const server = http2.createServer()
+    server.on('stream', (stream, headers) => {
+      log(stream)
+      stream.on('data', (data) => {
+        log(data)
+        // TODO:
+      })
+      stream.on('end', () => {
+        log('end...')
+        // TODO: 通知 client
+      })
+      stream.on('error', (error) => {
+        log(error)
+      })
+    })
+    server.listen(this.port)
+    return server
+  }
+}
diff --git a/packages/dubbo-transport/src/transport.ts 
b/packages/dubbo-transport/src/transport.ts
new file mode 100644
index 0000000..a772fb3
--- /dev/null
+++ b/packages/dubbo-transport/src/transport.ts
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
+
+export interface DubboContext {
+  url: string
+  body?: Object | null
+  port: number
+}
+
+export interface IDubboClientTransport {
+  send(msg: DubboContext): Promise<any>
+}
+
+export interface IDubboServerTransport {
+  // start(msg: DubboContext): Promise<any>
+}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index e4d5fa9..3bccbed 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -19,8 +19,8 @@ importers:
       vitest: ^0.24.3
     devDependencies:
       '@nrwl/cli': 14.8.3
-      '@nrwl/workspace': 14.8.3_2tdcrlle5lxz2wrxa2rwuoqjji
-      '@types/node': 18.11.9
+      '@nrwl/workspace': 14.8.3_l6wyubhmkmhhbmfhuknb3rliee
+      '@types/node': 18.11.11
       '@typescript-eslint/eslint-plugin': 5.43.0_nqj4bdx4ekws7aecttskpih4py
       '@typescript-eslint/parser': 5.43.0_hsf322ms6xhhd4b5ne6lb74y4a
       '@vitest/coverage-istanbul': 0.25.3
@@ -62,6 +62,17 @@ importers:
   packages/dubbo-server:
     specifiers: {}
 
+  packages/dubbo-transport:
+    specifiers:
+      '@types/lodash': ^4.14.189
+      debug: ^4.3.4
+      lodash: ^4.17.21
+    dependencies:
+      debug: 4.3.4
+      lodash: 4.17.21
+    devDependencies:
+      '@types/lodash': 4.14.191
+
 packages:
   /@algolia/autocomplete-core/1.7.1:
     resolution:
@@ -838,7 +849,7 @@ packages:
     engines: { node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0 }
     dependencies:
       '@jest/types': 28.1.3
-      '@types/node': 18.11.9
+      '@types/node': 18.11.11
       chalk: 4.1.0
       jest-message-util: 28.1.3
       jest-util: 28.1.3
@@ -854,7 +865,7 @@ packages:
     dependencies:
       '@jest/fake-timers': 28.1.3
       '@jest/types': 28.1.3
-      '@types/node': 18.11.9
+      '@types/node': 18.11.11
       jest-mock: 28.1.3
     dev: true
 
@@ -890,7 +901,7 @@ packages:
     dependencies:
       '@jest/types': 28.1.3
       '@sinonjs/fake-timers': 9.1.2
-      '@types/node': 18.11.9
+      '@types/node': 18.11.11
       jest-message-util: 28.1.3
       jest-mock: 28.1.3
       jest-util: 28.1.3
@@ -928,7 +939,7 @@ packages:
       '@jest/transform': 28.1.3
       '@jest/types': 28.1.3
       '@jridgewell/trace-mapping': 0.3.17
-      '@types/node': 18.11.9
+      '@types/node': 18.11.11
       chalk: 4.1.0
       collect-v8-coverage: 1.0.1
       exit: 0.1.2
@@ -1048,7 +1059,7 @@ packages:
       '@jest/schemas': 28.1.3
       '@types/istanbul-lib-coverage': 2.0.4
       '@types/istanbul-reports': 3.0.1
-      '@types/node': 18.11.9
+      '@types/node': 18.11.11
       '@types/yargs': 17.0.13
       chalk: 4.1.0
     dev: true
@@ -1169,7 +1180,7 @@ packages:
       - typescript
     dev: true
 
-  /@nrwl/jest/14.8.3_cgczpxwfnhb445lfmuokztbmfm:
+  /@nrwl/jest/14.8.3_4pequ3udskszaacpm6uewcp2gu:
     resolution:
       {
         integrity: 
sha512-1KqtxZXD1SGeW5sMMtFpYNCfYbV0X1La5k++fgdcbGPLUEHkf8u9uSrT/TizeKeBA/lY93wUXMQV/j5I9jXYNQ==
@@ -1182,7 +1193,7 @@ packages:
       chalk: 4.1.0
       dotenv: 10.0.0
       identity-obj-proxy: 3.0.0
-      jest-config: 28.1.1_@[email protected]
+      jest-config: 28.1.1_@[email protected]
       jest-resolve: 28.1.1
       jest-util: 28.1.1
       resolve.exports: 1.1.0
@@ -1196,7 +1207,7 @@ packages:
       - typescript
     dev: true
 
-  /@nrwl/linter/14.8.3_bit2l4j7534kqm2unlwv3lwbju:
+  /@nrwl/linter/14.8.3_52ouyz67b5u2re4eezbkec4hhe:
     resolution:
       {
         integrity: 
sha512-WN+D1kJnAe5a8nrSYRpftzlAsgckTpVuRjJedKwmSDi/f0T5H15TPlCHIqdDvB6RJAX6vVHDtYl1tpL0IZY1PA==
@@ -1208,7 +1219,7 @@ packages:
         optional: true
     dependencies:
       '@nrwl/devkit': [email protected][email protected]
-      '@nrwl/jest': 14.8.3_cgczpxwfnhb445lfmuokztbmfm
+      '@nrwl/jest': 14.8.3_4pequ3udskszaacpm6uewcp2gu
       '@phenomnomnominal/tsquery': [email protected]
       eslint: 8.28.0
       nx: 14.8.3
@@ -1239,7 +1250,7 @@ packages:
       - debug
     dev: true
 
-  /@nrwl/workspace/14.8.3_2tdcrlle5lxz2wrxa2rwuoqjji:
+  /@nrwl/workspace/14.8.3_l6wyubhmkmhhbmfhuknb3rliee:
     resolution:
       {
         integrity: 
sha512-9P4xwX4hO9u5NPXjSLqxcEMwOn5voSbV+FZEPqGjQSYPsY8A0KxdIWCjJe4T+UW/VzW7kY08gY1KJmFtKx4p1A==
@@ -1251,8 +1262,8 @@ packages:
         optional: true
     dependencies:
       '@nrwl/devkit': [email protected][email protected]
-      '@nrwl/jest': 14.8.3_cgczpxwfnhb445lfmuokztbmfm
-      '@nrwl/linter': 14.8.3_bit2l4j7534kqm2unlwv3lwbju
+      '@nrwl/jest': 14.8.3_4pequ3udskszaacpm6uewcp2gu
+      '@nrwl/linter': 14.8.3_52ouyz67b5u2re4eezbkec4hhe
       '@parcel/watcher': 2.0.4
       chalk: 4.1.0
       chokidar: 3.5.3
@@ -1458,7 +1469,7 @@ packages:
       }
     dependencies:
       '@types/connect': 3.4.35
-      '@types/node': 18.11.9
+      '@types/node': 18.11.11
     dev: true
 
   /@types/chai-subset/1.3.3:
@@ -1484,7 +1495,7 @@ packages:
       }
     dependencies:
       '@types/express-serve-static-core': 4.17.31
-      '@types/node': 18.11.9
+      '@types/node': 18.11.11
     dev: true
 
   /@types/connect/3.4.35:
@@ -1493,7 +1504,7 @@ packages:
         integrity: 
sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==
       }
     dependencies:
-      '@types/node': 18.11.9
+      '@types/node': 18.11.11
     dev: true
 
   /@types/express-serve-static-core/4.17.31:
@@ -1502,7 +1513,7 @@ packages:
         integrity: 
sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==
       }
     dependencies:
-      '@types/node': 18.11.9
+      '@types/node': 18.11.11
       '@types/qs': 6.9.7
       '@types/range-parser': 1.2.4
     dev: true
@@ -1535,7 +1546,7 @@ packages:
         integrity: 
sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==
       }
     dependencies:
-      '@types/node': 18.11.9
+      '@types/node': 18.11.11
     dev: true
 
   /@types/highlight.js/9.12.4:
@@ -1551,7 +1562,7 @@ packages:
         integrity: 
sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==
       }
     dependencies:
-      '@types/node': 18.11.9
+      '@types/node': 18.11.11
     dev: true
 
   /@types/istanbul-lib-coverage/2.0.4:
@@ -1600,6 +1611,13 @@ packages:
       }
     dev: true
 
+  /@types/lodash/4.14.191:
+    resolution:
+      {
+        integrity: 
sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==
+      }
+    dev: true
+
   /@types/markdown-it/10.0.3:
     resolution:
       {
@@ -1633,11 +1651,19 @@ packages:
       }
     dev: false
 
+  /@types/node/18.11.11:
+    resolution:
+      {
+        integrity: 
sha512-KJ021B1nlQUBLopzZmPBVuGU9un7WJd/W4ya7Ih02B4Uwky5Nja0yGYav2EfYIk0RR2Q9oVhf60S2XR1BCWJ2g==
+      }
+    dev: true
+
   /@types/node/18.11.9:
     resolution:
       {
         integrity: 
sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==
       }
+    dev: false
 
   /@types/prettier/2.7.1:
     resolution:
@@ -1674,7 +1700,7 @@ packages:
       }
     dependencies:
       '@types/mime': 3.0.1
-      '@types/node': 18.11.9
+      '@types/node': 18.11.11
     dev: true
 
   /@types/source-list-map/0.1.2:
@@ -1735,7 +1761,7 @@ packages:
         integrity: 
sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==
       }
     dependencies:
-      '@types/node': 18.11.9
+      '@types/node': 18.11.11
       '@types/source-list-map': 0.1.2
       source-map: 0.7.4
     dev: true
@@ -1746,7 +1772,7 @@ packages:
         integrity: 
sha512-PPajH64Ft2vWevkerISMtnZ8rTs4YmRbs+23c402J0INmxDKCrhZNvwZYtzx96gY2wAtXdrK1BS2fiC8MlLr3g==
       }
     dependencies:
-      '@types/node': 18.11.9
+      '@types/node': 18.11.11
       '@types/tapable': 1.0.8
       '@types/uglify-js': 3.17.0
       '@types/webpack-sources': 3.2.0
@@ -2836,7 +2862,6 @@ packages:
         optional: true
     dependencies:
       ms: 2.1.2
-    dev: true
 
   /dedent/0.7.0:
     resolution:
@@ -4282,7 +4307,7 @@ packages:
       '@jest/expect': 28.1.3
       '@jest/test-result': 28.1.3
       '@jest/types': 28.1.3
-      '@types/node': 18.11.9
+      '@types/node': 18.11.11
       chalk: 4.1.0
       co: 4.6.0
       dedent: 0.7.0
@@ -4301,7 +4326,7 @@ packages:
       - supports-color
     dev: true
 
-  /jest-config/28.1.1_@[email protected]:
+  /jest-config/28.1.1_@[email protected]:
     resolution:
       {
         integrity: 
sha512-tASynMhS+jVV85zKvjfbJ8nUyJS/jUSYZ5KQxLUN2ZCvcQc/OmhQl2j6VEL3ezQkNofxn5pQ3SPYWPHb0unTZA==
@@ -4319,7 +4344,7 @@ packages:
       '@babel/core': 7.19.6
       '@jest/test-sequencer': 28.1.3
       '@jest/types': 28.1.3
-      '@types/node': 18.11.9
+      '@types/node': 18.11.11
       babel-jest: 28.1.3_@[email protected]
       chalk: 4.1.0
       ci-info: 3.5.0
@@ -4390,7 +4415,7 @@ packages:
       '@jest/environment': 28.1.3
       '@jest/fake-timers': 28.1.3
       '@jest/types': 28.1.3
-      '@types/node': 18.11.9
+      '@types/node': 18.11.11
       jest-mock: 28.1.3
       jest-util: 28.1.3
     dev: true
@@ -4412,7 +4437,7 @@ packages:
     dependencies:
       '@jest/types': 28.1.3
       '@types/graceful-fs': 4.1.5
-      '@types/node': 18.11.9
+      '@types/node': 18.11.11
       anymatch: 3.1.2
       fb-watchman: 2.0.2
       graceful-fs: 4.2.10
@@ -4475,7 +4500,7 @@ packages:
     engines: { node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0 }
     dependencies:
       '@jest/types': 28.1.3
-      '@types/node': 18.11.9
+      '@types/node': 18.11.11
     dev: true
 
   /jest-pnp-resolver/[email protected]:
@@ -4564,7 +4589,7 @@ packages:
       '@jest/test-result': 28.1.3
       '@jest/transform': 28.1.3
       '@jest/types': 28.1.3
-      '@types/node': 18.11.9
+      '@types/node': 18.11.11
       chalk: 4.1.0
       emittery: 0.10.2
       graceful-fs: 4.2.10
@@ -4659,7 +4684,7 @@ packages:
     engines: { node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0 }
     dependencies:
       '@jest/types': 28.1.3
-      '@types/node': 18.11.9
+      '@types/node': 18.11.11
       chalk: 4.1.0
       ci-info: 3.5.0
       graceful-fs: 4.2.10
@@ -4674,7 +4699,7 @@ packages:
     engines: { node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0 }
     dependencies:
       '@jest/types': 28.1.3
-      '@types/node': 18.11.9
+      '@types/node': 18.11.11
       chalk: 4.1.0
       ci-info: 3.5.0
       graceful-fs: 4.2.10
@@ -4705,7 +4730,7 @@ packages:
     dependencies:
       '@jest/test-result': 28.1.3
       '@jest/types': 28.1.3
-      '@types/node': 18.11.9
+      '@types/node': 18.11.11
       ansi-escapes: 4.3.2
       chalk: 4.1.0
       emittery: 0.10.2
@@ -4720,7 +4745,7 @@ packages:
       }
     engines: { node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0 }
     dependencies:
-      '@types/node': 18.11.9
+      '@types/node': 18.11.11
       merge-stream: 2.0.0
       supports-color: 8.1.1
     dev: true
@@ -4899,6 +4924,13 @@ packages:
       }
     dev: true
 
+  /lodash/4.17.21:
+    resolution:
+      {
+        integrity: 
sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
+      }
+    dev: false
+
   /long/5.2.1:
     resolution:
       {
@@ -5044,7 +5076,6 @@ packages:
       {
         integrity: 
sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
       }
-    dev: true
 
   /multimatch/3.0.0:
     resolution:
@@ -6332,7 +6363,7 @@ packages:
     dependencies:
       '@types/chai': 4.3.3
       '@types/chai-subset': 1.3.3
-      '@types/node': 18.11.9
+      '@types/node': 18.11.11
       chai: 4.3.6
       debug: 4.3.4
       local-pkg: 0.4.2
@@ -6376,7 +6407,7 @@ packages:
     dependencies:
       '@types/chai': 4.3.3
       '@types/chai-subset': 1.3.3
-      '@types/node': 18.11.9
+      '@types/node': 18.11.11
       acorn: 8.8.0
       acorn-walk: 8.2.0
       chai: 4.3.6

Reply via email to