Browse Source

Merge pull request #7018 from nocodb/nc-fix/upload-stream

fix(s3): use stream to upload via url
pull/7024/head
mertmit 12 months ago committed by GitHub
parent
commit
c99318e97f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      packages/nocodb/package.json
  2. 1
      packages/nocodb/src/plugins/backblaze/Backblaze.ts
  3. 1
      packages/nocodb/src/plugins/gcs/Gcs.ts
  4. 1
      packages/nocodb/src/plugins/linode/LinodeObjectStorage.ts
  5. 1
      packages/nocodb/src/plugins/mino/Minio.ts
  6. 1
      packages/nocodb/src/plugins/ovhCloud/OvhCloud.ts
  7. 12
      packages/nocodb/src/plugins/s3/S3.ts
  8. 1
      packages/nocodb/src/plugins/scaleway/ScalewayObjectStorage.ts
  9. 1
      packages/nocodb/src/plugins/spaces/Spaces.ts
  10. 1
      packages/nocodb/src/plugins/upcloud/UpoCloud.ts
  11. 1
      packages/nocodb/src/plugins/vultr/Vultr.ts
  12. 205
      pnpm-lock.yaml

1
packages/nocodb/package.json

@ -47,6 +47,7 @@
"dependencies": {
"@aws-sdk/client-kafka": "^3.410.0",
"@aws-sdk/client-s3": "^3.423.0",
"@aws-sdk/lib-storage": "^3.451.0",
"@aws-sdk/s3-request-presigner": "^3.423.0",
"@google-cloud/storage": "^7.1.0",
"@graphql-tools/merge": "^6.0.12",

1
packages/nocodb/src/plugins/backblaze/Backblaze.ts

@ -54,6 +54,7 @@ export default class Backblaze implements IStorageAdapterV2 {
.get(url, {
httpAgent: useAgent(url, { stopPortScanningByUrlRedirection: true }),
httpsAgent: useAgent(url, { stopPortScanningByUrlRedirection: true }),
// TODO - use stream instead of buffer
responseType: 'arraybuffer',
})
.then((response) => {

1
packages/nocodb/src/plugins/gcs/Gcs.ts

@ -110,6 +110,7 @@ export default class Gcs implements IStorageAdapterV2 {
.get(url, {
httpAgent: useAgent(url, { stopPortScanningByUrlRedirection: true }),
httpsAgent: useAgent(url, { stopPortScanningByUrlRedirection: true }),
// TODO - use stream instead of buffer
responseType: 'arraybuffer',
})
.then((response) => {

1
packages/nocodb/src/plugins/linode/LinodeObjectStorage.ts

@ -53,6 +53,7 @@ export default class LinodeObjectStorage implements IStorageAdapterV2 {
.get(url, {
httpAgent: useAgent(url, { stopPortScanningByUrlRedirection: true }),
httpsAgent: useAgent(url, { stopPortScanningByUrlRedirection: true }),
// TODO - use stream instead of buffer
responseType: 'arraybuffer',
})
.then((response) => {

1
packages/nocodb/src/plugins/mino/Minio.ts

@ -100,6 +100,7 @@ export default class Minio implements IStorageAdapterV2 {
.get(url, {
httpAgent: useAgent(url, { stopPortScanningByUrlRedirection: true }),
httpsAgent: useAgent(url, { stopPortScanningByUrlRedirection: true }),
// TODO - use stream instead of buffer
responseType: 'arraybuffer',
})
.then((response) => {

1
packages/nocodb/src/plugins/ovhCloud/OvhCloud.ts

@ -53,6 +53,7 @@ export default class OvhCloud implements IStorageAdapterV2 {
.get(url, {
httpAgent: useAgent(url, { stopPortScanningByUrlRedirection: true }),
httpsAgent: useAgent(url, { stopPortScanningByUrlRedirection: true }),
// TODO - use stream instead of buffer
responseType: 'arraybuffer',
})
.then((response) => {

12
packages/nocodb/src/plugins/s3/S3.ts

@ -2,6 +2,7 @@ import fs from 'fs';
import { promisify } from 'util';
import { GetObjectCommand, S3 as S3Client } from '@aws-sdk/client-s3';
import { getSignedUrl } from '@aws-sdk/s3-request-presigner';
import { Upload } from '@aws-sdk/lib-storage';
import axios from 'axios';
import { useAgent } from 'request-filtering-agent';
import type { IStorageAdapterV2, XcFile } from 'nc-plugin';
@ -60,7 +61,7 @@ export default class S3 implements IStorageAdapterV2 {
.get(url, {
httpAgent: useAgent(url, { stopPortScanningByUrlRedirection: true }),
httpsAgent: useAgent(url, { stopPortScanningByUrlRedirection: true }),
responseType: 'arraybuffer',
responseType: 'stream',
})
.then((response) => {
uploadParams.Body = response.data;
@ -162,8 +163,13 @@ export default class S3 implements IStorageAdapterV2 {
private async upload(uploadParams): Promise<any> {
return new Promise((resolve, reject) => {
// call S3 to retrieve upload file to specified bucket
this.s3Client
.putObject({ ...this.defaultParams, ...uploadParams })
const upload = new Upload({
client: this.s3Client,
params: { ...this.defaultParams, ...uploadParams },
});
upload
.done()
.then((data) => {
if (data) {
resolve(

1
packages/nocodb/src/plugins/scaleway/ScalewayObjectStorage.ts

@ -103,6 +103,7 @@ export default class ScalewayObjectStorage implements IStorageAdapterV2 {
.get(url, {
httpAgent: useAgent(url, { stopPortScanningByUrlRedirection: true }),
httpsAgent: useAgent(url, { stopPortScanningByUrlRedirection: true }),
// TODO - use stream instead of buffer
responseType: 'arraybuffer',
})
.then((response) => {

1
packages/nocodb/src/plugins/spaces/Spaces.ts

@ -53,6 +53,7 @@ export default class Spaces implements IStorageAdapterV2 {
.get(url, {
httpAgent: useAgent(url, { stopPortScanningByUrlRedirection: true }),
httpsAgent: useAgent(url, { stopPortScanningByUrlRedirection: true }),
// TODO - use stream instead of buffer
responseType: 'arraybuffer',
})
.then((response) => {

1
packages/nocodb/src/plugins/upcloud/UpoCloud.ts

@ -53,6 +53,7 @@ export default class UpoCloud implements IStorageAdapterV2 {
.get(url, {
httpAgent: useAgent(url, { stopPortScanningByUrlRedirection: true }),
httpsAgent: useAgent(url, { stopPortScanningByUrlRedirection: true }),
// TODO - use stream instead of buffer
responseType: 'arraybuffer',
})
.then((response) => {

1
packages/nocodb/src/plugins/vultr/Vultr.ts

@ -53,6 +53,7 @@ export default class Vultr implements IStorageAdapterV2 {
.get(url, {
httpAgent: useAgent(url, { stopPortScanningByUrlRedirection: true }),
httpsAgent: useAgent(url, { stopPortScanningByUrlRedirection: true }),
// TODO - use stream instead of buffer
responseType: 'arraybuffer',
})
.then((response) => {

205
pnpm-lock.yaml

@ -385,6 +385,9 @@ importers:
'@aws-sdk/client-s3':
specifier: ^3.423.0
version: 3.423.0
'@aws-sdk/lib-storage':
specifier: ^3.451.0
version: 3.451.0(@aws-sdk/client-s3@3.423.0)
'@aws-sdk/s3-request-presigner':
specifier: ^3.423.0
version: 3.423.0
@ -2035,6 +2038,22 @@ packages:
tslib: 2.6.2
dev: false
/@aws-sdk/lib-storage@3.451.0(@aws-sdk/client-s3@3.423.0):
resolution: {integrity: sha512-pOtrE1Vs65J3k0bYvWw/zsQ6E80rZzS/jOMC9lQUUqXh8q0KTLq77K5+HCdadNHStXeZV3QJaSWajSR2qJKuyw==}
engines: {node: '>=14.0.0'}
peerDependencies:
'@aws-sdk/client-s3': ^3.0.0
dependencies:
'@aws-sdk/client-s3': 3.423.0
'@smithy/abort-controller': 2.0.10
'@smithy/middleware-endpoint': 2.2.0
'@smithy/smithy-client': 2.1.15
buffer: 5.6.0
events: 3.3.0
stream-browserify: 3.0.0
tslib: 2.6.2
dev: false
/@aws-sdk/middleware-bucket-endpoint@3.418.0:
resolution: {integrity: sha512-gj/mj1UfbKkGbQ1N4YUvjTTp8BVs5fO1QAL2AjFJ+jfJOToLReX72aNEkm7sPGbHML0TqOY4cQbJuWYy+zdD5g==}
engines: {node: '>=14.0.0'}
@ -6892,6 +6911,14 @@ packages:
tslib: 2.6.2
dev: false
/@smithy/abort-controller@2.0.13:
resolution: {integrity: sha512-eeOPD+GF9BzF/Mjy3PICLePx4l0f3rG/nQegQHRLTloN5p1lSJJNZsyn+FzDnW8P2AduragZqJdtKNCxXozB1Q==}
engines: {node: '>=14.0.0'}
dependencies:
'@smithy/types': 2.5.0
tslib: 2.6.2
dev: false
/@smithy/abort-controller@2.0.6:
resolution: {integrity: sha512-4I7g0lyGUlW2onf8mD76IzU37oRWSHsQ5zlW5MjDzgg4I4J9bOK4500Gx6qOuoN7+GulAnGLe1YwyrIluzhakg==}
engines: {node: '>=14.0.0'}
@ -7050,6 +7077,16 @@ packages:
tslib: 2.6.2
dev: false
/@smithy/fetch-http-handler@2.2.6:
resolution: {integrity: sha512-PStY3XO1Ksjwn3wMKye5U6m6zxXpXrXZYqLy/IeCbh3nM9QB3Jgw/B0PUSLUWKdXg4U8qgEu300e3ZoBvZLsDg==}
dependencies:
'@smithy/protocol-http': 3.0.9
'@smithy/querystring-builder': 2.0.13
'@smithy/types': 2.5.0
'@smithy/util-base64': 2.0.1
tslib: 2.6.2
dev: false
/@smithy/hash-blob-browser@2.0.10:
resolution: {integrity: sha512-U2+wIWWloOZ9DaRuz2sk9f7A6STRTlwdcv+q6abXDvS0TRDk8KGgUmfV5lCZy8yxFxZIA0hvHDNqcd25r4Hrew==}
dependencies:
@ -7174,6 +7211,19 @@ packages:
tslib: 2.6.2
dev: false
/@smithy/middleware-endpoint@2.2.0:
resolution: {integrity: sha512-tddRmaig5URk2106PVMiNX6mc5BnKIKajHHDxb7K0J5MLdcuQluHMGnjkv18iY9s9O0tF+gAcPd/pDXA5L9DZw==}
engines: {node: '>=14.0.0'}
dependencies:
'@smithy/middleware-serde': 2.0.13
'@smithy/node-config-provider': 2.1.5
'@smithy/shared-ini-file-loader': 2.2.4
'@smithy/types': 2.5.0
'@smithy/url-parser': 2.0.13
'@smithy/util-middleware': 2.0.6
tslib: 2.6.2
dev: false
/@smithy/middleware-retry@2.0.13:
resolution: {integrity: sha512-zuOva8xgWC7KYG8rEXyWIcZv2GWszO83DCTU6IKcf/FKu6OBmSE+EYv3EUcCGY+GfiwCX0EyJExC9Lpq9b0w5Q==}
engines: {node: '>=14.0.0'}
@ -7210,6 +7260,14 @@ packages:
tslib: 2.6.2
dev: false
/@smithy/middleware-serde@2.0.13:
resolution: {integrity: sha512-tBGbeXw+XsE6pPr4UaXOh+UIcXARZeiA8bKJWxk2IjJcD1icVLhBSUQH9myCIZLNNzJIH36SDjUX8Wqk4xJCJg==}
engines: {node: '>=14.0.0'}
dependencies:
'@smithy/types': 2.5.0
tslib: 2.6.2
dev: false
/@smithy/middleware-serde@2.0.6:
resolution: {integrity: sha512-8/GODBngYbrS28CMZtaHIL4R9rLNSQ/zgb+N1OAZ02NwBUawlnLDcatve9YRzhJC/IWz0/pt+WimJZaO1sGcig==}
engines: {node: '>=14.0.0'}
@ -7233,6 +7291,14 @@ packages:
tslib: 2.6.2
dev: false
/@smithy/middleware-stack@2.0.7:
resolution: {integrity: sha512-L1KLAAWkXbGx1t2jjCI/mDJ2dDNq+rp4/ifr/HcC6FHngxho5O7A5bQLpKHGlkfATH6fUnOEx0VICEVFA4sUzw==}
engines: {node: '>=14.0.0'}
dependencies:
'@smithy/types': 2.5.0
tslib: 2.6.2
dev: false
/@smithy/node-config-provider@2.0.13:
resolution: {integrity: sha512-pPpLqYuJcOq1sj1EGu+DoZK47DUS4gepqSTNgRezmrjnzNlSU2/Dcc9Ebzs+WZ0Z5vXKazuE+k+NksFLo07/AA==}
engines: {node: '>=14.0.0'}
@ -7253,6 +7319,16 @@ packages:
tslib: 2.6.2
dev: false
/@smithy/node-config-provider@2.1.5:
resolution: {integrity: sha512-3Omb5/h4tOCuKRx4p4pkYTvEYRCYoKk52bOYbKUyz/G/8gERbagsN8jFm4FjQubkrcIqQEghTpQaUw6uk+0edw==}
engines: {node: '>=14.0.0'}
dependencies:
'@smithy/property-provider': 2.0.14
'@smithy/shared-ini-file-loader': 2.2.4
'@smithy/types': 2.5.0
tslib: 2.6.2
dev: false
/@smithy/node-http-handler@2.1.2:
resolution: {integrity: sha512-PdEEDCShuM8zxGoaRxmGB/1ikB8oeqz+ZAF9VIA8FCP3E59j8zDTF+wCELoWd1Y6gtxr+RcTAg5sA8nvn5qH/w==}
engines: {node: '>=14.0.0'}
@ -7275,6 +7351,17 @@ packages:
tslib: 2.6.2
dev: false
/@smithy/node-http-handler@2.1.9:
resolution: {integrity: sha512-+K0q3SlNcocmo9OZj+fz67gY4lwhOCvIJxVbo/xH+hfWObvaxrMTx7JEzzXcluK0thnnLz++K3Qe7Z/8MDUreA==}
engines: {node: '>=14.0.0'}
dependencies:
'@smithy/abort-controller': 2.0.13
'@smithy/protocol-http': 3.0.9
'@smithy/querystring-builder': 2.0.13
'@smithy/types': 2.5.0
tslib: 2.6.2
dev: false
/@smithy/property-provider@2.0.11:
resolution: {integrity: sha512-kzuOadu6XvrnlF1iXofpKXYmo4oe19st9/DE8f5gHNaFepb4eTkR8gD8BSdTnNnv7lxfv6uOwZPg4VS6hemX1w==}
engines: {node: '>=14.0.0'}
@ -7283,6 +7370,14 @@ packages:
tslib: 2.6.2
dev: false
/@smithy/property-provider@2.0.14:
resolution: {integrity: sha512-k3D2qp9o6imTrLaXRj6GdLYEJr1sXqS99nLhzq8fYmJjSVOeMg/G+1KVAAc7Oxpu71rlZ2f8SSZxcSxkevuR0A==}
engines: {node: '>=14.0.0'}
dependencies:
'@smithy/types': 2.5.0
tslib: 2.6.2
dev: false
/@smithy/property-provider@2.0.5:
resolution: {integrity: sha512-cAFSUhX6aiHcmpWfrCLKvwBtgN1F6A0N8qY/8yeSi0LRLmhGqsY1/YTxFE185MCVzYbqBGXVr9TBv4RUcIV4rA==}
engines: {node: '>=14.0.0'}
@ -7323,6 +7418,14 @@ packages:
tslib: 2.6.2
dev: false
/@smithy/protocol-http@3.0.9:
resolution: {integrity: sha512-U1wl+FhYu4/BC+rjwh1lg2gcJChQhytiNQSggREgQ9G2FzmoK9sACBZvx7thyWMvRyHQTE22mO2d5UM8gMKDBg==}
engines: {node: '>=14.0.0'}
dependencies:
'@smithy/types': 2.5.0
tslib: 2.6.2
dev: false
/@smithy/querystring-builder@2.0.10:
resolution: {integrity: sha512-uujJGp8jzrrU1UHme8sUKEbawQTcTmUWsh8rbGXYD/lMwNLQ+9jQ9dMDWbbH9Hpoa9RER1BeL/38WzGrbpob2w==}
engines: {node: '>=14.0.0'}
@ -7332,6 +7435,15 @@ packages:
tslib: 2.6.2
dev: false
/@smithy/querystring-builder@2.0.13:
resolution: {integrity: sha512-JhXKwp3JtsFUe96XLHy/nUPEbaXqn6r7xE4sNaH8bxEyytE5q1fwt0ew/Ke6+vIC7gP87HCHgQpJHg1X1jN2Fw==}
engines: {node: '>=14.0.0'}
dependencies:
'@smithy/types': 2.5.0
'@smithy/util-uri-escape': 2.0.0
tslib: 2.6.2
dev: false
/@smithy/querystring-builder@2.0.6:
resolution: {integrity: sha512-HnU00shCGoV8vKJZTiNBkNvR9NogU3NIUaVMAGJPSqNGJj3psWo+TUrC0BVCDcwiCljXwXCFGJqIcsWtClrktQ==}
engines: {node: '>=14.0.0'}
@ -7349,6 +7461,14 @@ packages:
tslib: 2.6.2
dev: false
/@smithy/querystring-parser@2.0.13:
resolution: {integrity: sha512-TEiT6o8CPZVxJ44Rly/rrsATTQsE+b/nyBVzsYn2sa75xAaZcurNxsFd8z1haoUysONiyex24JMHoJY6iCfLdA==}
engines: {node: '>=14.0.0'}
dependencies:
'@smithy/types': 2.5.0
tslib: 2.6.2
dev: false
/@smithy/querystring-parser@2.0.6:
resolution: {integrity: sha512-i4LKoXHP7pTFAPjLIJyQXYOhWokbcFha3WWsX74sAKmuluv0XM2cxONZoFxwEzmWhsNyM6buSwJSZXyPiec0AQ==}
engines: {node: '>=14.0.0'}
@ -7393,6 +7513,14 @@ packages:
tslib: 2.6.2
dev: false
/@smithy/shared-ini-file-loader@2.2.4:
resolution: {integrity: sha512-9dRknGgvYlRIsoTcmMJXuoR/3ekhGwhRq4un3ns2/byre4Ql5hyUN4iS0x8eITohjU90YOnUCsbRwZRvCkbRfw==}
engines: {node: '>=14.0.0'}
dependencies:
'@smithy/types': 2.5.0
tslib: 2.6.2
dev: false
/@smithy/signature-v4@1.1.0:
resolution: {integrity: sha512-fDo3m7YqXBs7neciOePPd/X9LPm5QLlDMdIC4m1H6dgNLnXfLMFNIxEfPyohGA8VW9Wn4X8lygnPSGxDZSmp0Q==}
engines: {node: '>=14.0.0'}
@ -7421,6 +7549,16 @@ packages:
tslib: 2.6.2
dev: false
/@smithy/smithy-client@2.1.15:
resolution: {integrity: sha512-rngZcQu7Jvs9UbHihK1EI67RMPuzkc3CJmu4MBgB7D7yBnMGuFR86tq5rqHfL2gAkNnMelBN/8kzQVvZjNKefQ==}
engines: {node: '>=14.0.0'}
dependencies:
'@smithy/middleware-stack': 2.0.7
'@smithy/types': 2.5.0
'@smithy/util-stream': 2.0.20
tslib: 2.6.2
dev: false
/@smithy/smithy-client@2.1.3:
resolution: {integrity: sha512-nSMMp2AKqcG/ruzCY01ogrMdbq/WS1cvGStTsw7yd6bTpp/bGtlOgXvy3h7e0zP7w2DH1AtvIwzYBD6ejZePsQ==}
engines: {node: '>=14.0.0'}
@ -7469,6 +7607,13 @@ packages:
tslib: 2.6.2
dev: false
/@smithy/types@2.5.0:
resolution: {integrity: sha512-/a31lYofrMBkJb3BuPlYJTMKDj0hUmKUP6JFZQu6YVuQVoAjubiY0A52U9S0Uysd33n/djexCUSNJ+G9bf3/aA==}
engines: {node: '>=14.0.0'}
dependencies:
tslib: 2.6.2
dev: false
/@smithy/url-parser@2.0.10:
resolution: {integrity: sha512-4TXQFGjHcqru8aH5VRB4dSnOFKCYNX6SR1Do6fwxZ+ExT2onLsh2W77cHpks7ma26W5jv6rI1u7d0+KX9F0aOw==}
dependencies:
@ -7477,6 +7622,14 @@ packages:
tslib: 2.6.2
dev: false
/@smithy/url-parser@2.0.13:
resolution: {integrity: sha512-okWx2P/d9jcTsZWTVNnRMpFOE7fMkzloSFyM53fA7nLKJQObxM2T4JlZ5KitKKuXq7pxon9J6SF2kCwtdflIrA==}
dependencies:
'@smithy/querystring-parser': 2.0.13
'@smithy/types': 2.5.0
tslib: 2.6.2
dev: false
/@smithy/url-parser@2.0.6:
resolution: {integrity: sha512-9i6j5QW6bapHZ4rtkXOAm0hOUG1+5IVdVJXNSUTcNskwJchZH5IQuDNPCbgUi/u2P8EZazKt4wXT51QxOXCz1A==}
dependencies:
@ -7493,6 +7646,14 @@ packages:
tslib: 2.6.2
dev: false
/@smithy/util-base64@2.0.1:
resolution: {integrity: sha512-DlI6XFYDMsIVN+GH9JtcRp3j02JEVuWIn/QOZisVzpIAprdsxGveFed0bjbMRCqmIFe8uetn5rxzNrBtIGrPIQ==}
engines: {node: '>=14.0.0'}
dependencies:
'@smithy/util-buffer-from': 2.0.0
tslib: 2.6.2
dev: false
/@smithy/util-body-length-browser@2.0.0:
resolution: {integrity: sha512-JdDuS4ircJt+FDnaQj88TzZY3+njZ6O+D3uakS32f2VNnDo3vyEuNdBOh/oFd8Df1zSZOuH1HEChk2AOYDezZg==}
dependencies:
@ -7611,6 +7772,14 @@ packages:
tslib: 2.6.2
dev: false
/@smithy/util-middleware@2.0.6:
resolution: {integrity: sha512-7W4uuwBvSLgKoLC1x4LfeArCVcbuHdtVaC4g30kKsD1erfICyQ45+tFhhs/dZNeQg+w392fhunCm/+oCcb6BSA==}
engines: {node: '>=14.0.0'}
dependencies:
'@smithy/types': 2.5.0
tslib: 2.6.2
dev: false
/@smithy/util-retry@2.0.0:
resolution: {integrity: sha512-/dvJ8afrElasuiiIttRJeoS2sy8YXpksQwiM/TcepqdRVp7u4ejd9C4IQURHNjlfPUT7Y6lCDSa2zQJbdHhVTg==}
engines: {node: '>= 14.0.0'}
@ -7642,6 +7811,20 @@ packages:
tslib: 2.6.2
dev: false
/@smithy/util-stream@2.0.20:
resolution: {integrity: sha512-tT8VASuD8jJu0yjHEMTCPt1o5E3FVzgdsxK6FQLAjXKqVv5V8InCnc0EOsYrijgspbfDqdAJg7r0o2sySfcHVg==}
engines: {node: '>=14.0.0'}
dependencies:
'@smithy/fetch-http-handler': 2.2.6
'@smithy/node-http-handler': 2.1.9
'@smithy/types': 2.5.0
'@smithy/util-base64': 2.0.1
'@smithy/util-buffer-from': 2.0.0
'@smithy/util-hex-encoding': 2.0.0
'@smithy/util-utf8': 2.0.2
tslib: 2.6.2
dev: false
/@smithy/util-stream@2.0.9:
resolution: {integrity: sha512-Fn2/3IMwqu0l2hOC7K3bbtSqFEJ6nOzMLoPVIhuH84yw/95itNkFBwVbIIiAfDaout0ZfZ26+5ch86E2q3avww==}
engines: {node: '>=14.0.0'}
@ -7686,6 +7869,14 @@ packages:
tslib: 2.6.2
dev: false
/@smithy/util-utf8@2.0.2:
resolution: {integrity: sha512-qOiVORSPm6Ce4/Yu6hbSgNHABLP2VMv8QOC3tTDNHHlWY19pPyc++fBTbZPtx6egPXi4HQxKDnMxVxpbtX2GoA==}
engines: {node: '>=14.0.0'}
dependencies:
'@smithy/util-buffer-from': 2.0.0
tslib: 2.6.2
dev: false
/@smithy/util-waiter@2.0.10:
resolution: {integrity: sha512-yQjwWVrwYw+/f3hFQccE3zZF7lk6N6xtNcA6jvhWFYhnyKAm6B2mX8Gzftl0TbgoPUpzCvKYlvhaEpVtRpVfVw==}
engines: {node: '>=14.0.0'}
@ -10829,6 +11020,13 @@ packages:
isarray: 1.0.0
dev: false
/buffer@5.6.0:
resolution: {integrity: sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==}
dependencies:
base64-js: 1.5.1
ieee754: 1.2.1
dev: false
/buffer@5.7.1:
resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
dependencies:
@ -22314,6 +22512,13 @@ packages:
engines: {node: '>=4', npm: '>=6'}
dev: false
/stream-browserify@3.0.0:
resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==}
dependencies:
inherits: 2.0.4
readable-stream: 3.6.2
dev: false
/stream-combiner@0.0.4:
resolution: {integrity: sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==}
dependencies:

Loading…
Cancel
Save