@commercetools/ts-client 2.0.1 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/dist/commercetools-ts-client.browser.cjs.js +19 -26
- package/dist/commercetools-ts-client.browser.esm.js +19 -26
- package/dist/commercetools-ts-client.cjs.dev.js +19 -26
- package/dist/commercetools-ts-client.cjs.prod.js +19 -26
- package/dist/commercetools-ts-client.esm.js +19 -26
- package/dist/commercetools-ts-client.umd.js +14 -0
- package/dist/declarations/src/client/client.d.ts.map +1 -1
- package/dist/declarations/src/middleware/auth-middleware/client-credentials-flow.d.ts.map +1 -1
- package/dist/declarations/src/types/types.d.ts +1 -4
- package/package.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @commercetools/ts-client
|
|
2
2
|
|
|
3
|
+
## 2.0.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#782](https://github.com/commercetools/commercetools-sdk-typescript/pull/782) [`238e99a`](https://github.com/commercetools/commercetools-sdk-typescript/commit/238e99a3600886c71db4770c128bfff6f37347a8) Thanks [@ajimae](https://github.com/ajimae)! - Fix error when retrying due to redacted oauth token.
|
|
8
|
+
|
|
9
|
+
## 2.0.2
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [#777](https://github.com/commercetools/commercetools-sdk-typescript/pull/777) [`38c7035`](https://github.com/commercetools/commercetools-sdk-typescript/commit/38c703557964a2355c4419b0bf8f0ea0a6361ce5) Thanks [@lojzatran](https://github.com/lojzatran)! - Bug fixes for @commercetools/ts-client
|
|
14
|
+
|
|
3
15
|
## 2.0.1
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var fetch$1 = require('node-fetch');
|
|
6
6
|
var uuid = require('uuid');
|
|
7
7
|
var _ = require('buffer/');
|
|
8
|
+
var asyncMutex = require('async-mutex');
|
|
8
9
|
var AbortController = require('abort-controller');
|
|
9
10
|
|
|
10
11
|
function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
|
|
@@ -621,7 +622,6 @@ async function executeRequest$1(options) {
|
|
|
621
622
|
httpClient,
|
|
622
623
|
tokenCache,
|
|
623
624
|
tokenCacheKey,
|
|
624
|
-
requestState,
|
|
625
625
|
userOption,
|
|
626
626
|
next
|
|
627
627
|
} = options;
|
|
@@ -656,19 +656,12 @@ async function executeRequest$1(options) {
|
|
|
656
656
|
next
|
|
657
657
|
});
|
|
658
658
|
|
|
659
|
-
// if a token is currently being fetched, then wait
|
|
660
|
-
if (requestState.get()) return;
|
|
661
|
-
|
|
662
|
-
// signal that a token is being fetched
|
|
663
|
-
requestState.set(true);
|
|
664
|
-
|
|
665
659
|
/**
|
|
666
660
|
* use refreshToken flow if there is refresh-token
|
|
667
661
|
* and there's either no token or the token is expired
|
|
668
662
|
*/
|
|
669
663
|
if (tokenCacheObject && tokenCacheObject.refreshToken && (!tokenCacheObject.token || tokenCacheObject.token && Date.now() > tokenCacheObject.expirationTime)) {
|
|
670
664
|
if (!userOption) {
|
|
671
|
-
requestState.set(false);
|
|
672
665
|
throw new Error('Missing required options.');
|
|
673
666
|
}
|
|
674
667
|
const opt = {
|
|
@@ -715,9 +708,6 @@ async function executeRequest$1(options) {
|
|
|
715
708
|
refreshToken
|
|
716
709
|
});
|
|
717
710
|
|
|
718
|
-
// signal that a token fetch is complete
|
|
719
|
-
requestState.set(false);
|
|
720
|
-
|
|
721
711
|
/**
|
|
722
712
|
* Freeze and copy pending queue, reset
|
|
723
713
|
* original one for accepting new pending tasks
|
|
@@ -743,10 +733,8 @@ async function executeRequest$1(options) {
|
|
|
743
733
|
const error = new Error(response.data.message ? response.data.message : JSON.stringify(response.data));
|
|
744
734
|
/**
|
|
745
735
|
* reject the error immediately
|
|
746
|
-
* and free up the middleware chain
|
|
747
|
-
* release the requestState by setting it to false
|
|
736
|
+
* and free up the middleware chain
|
|
748
737
|
*/
|
|
749
|
-
requestState.set(false);
|
|
750
738
|
request.reject({
|
|
751
739
|
...request,
|
|
752
740
|
headers: {
|
|
@@ -761,10 +749,6 @@ async function executeRequest$1(options) {
|
|
|
761
749
|
}
|
|
762
750
|
});
|
|
763
751
|
} catch (error) {
|
|
764
|
-
/**
|
|
765
|
-
* on error release the state by setting it to false
|
|
766
|
-
*/
|
|
767
|
-
requestState.set(false);
|
|
768
752
|
return {
|
|
769
753
|
...request,
|
|
770
754
|
headers: {
|
|
@@ -822,7 +806,7 @@ function createAuthMiddlewareForAnonymousSessionFlow$1(options) {
|
|
|
822
806
|
}
|
|
823
807
|
|
|
824
808
|
function createAuthMiddlewareForClientCredentialsFlow$1(options) {
|
|
825
|
-
const requestState =
|
|
809
|
+
const requestState = new asyncMutex.Mutex();
|
|
826
810
|
const pendingTasks = [];
|
|
827
811
|
const tokenCache = options.tokenCache || store({
|
|
828
812
|
token: '',
|
|
@@ -850,7 +834,13 @@ function createAuthMiddlewareForClientCredentialsFlow$1(options) {
|
|
|
850
834
|
};
|
|
851
835
|
|
|
852
836
|
// make request to coco
|
|
853
|
-
|
|
837
|
+
let requestWithAuth;
|
|
838
|
+
try {
|
|
839
|
+
await requestState.acquire();
|
|
840
|
+
requestWithAuth = await executeRequest$1(requestOptions);
|
|
841
|
+
} finally {
|
|
842
|
+
requestState.release();
|
|
843
|
+
}
|
|
854
844
|
if (requestWithAuth) {
|
|
855
845
|
// make the request and inject the token into the header
|
|
856
846
|
return next(requestWithAuth);
|
|
@@ -1262,7 +1252,7 @@ function createQueueMiddleware$1({
|
|
|
1262
1252
|
|
|
1263
1253
|
var packageJson = {
|
|
1264
1254
|
name: "@commercetools/ts-client",
|
|
1265
|
-
version: "2.0.
|
|
1255
|
+
version: "2.0.3",
|
|
1266
1256
|
engines: {
|
|
1267
1257
|
node: ">=14"
|
|
1268
1258
|
},
|
|
@@ -1296,6 +1286,7 @@ var packageJson = {
|
|
|
1296
1286
|
},
|
|
1297
1287
|
dependencies: {
|
|
1298
1288
|
"abort-controller": "3.0.0",
|
|
1289
|
+
"async-mutex": "^0.5.0",
|
|
1299
1290
|
buffer: "^6.0.3",
|
|
1300
1291
|
"node-fetch": "^2.6.1",
|
|
1301
1292
|
uuid: "10.0.0"
|
|
@@ -1457,6 +1448,7 @@ function process$1(request, fn, processOpt) {
|
|
|
1457
1448
|
function createClient(middlewares) {
|
|
1458
1449
|
_options = middlewares;
|
|
1459
1450
|
validateClient(middlewares);
|
|
1451
|
+
let _maskSensitiveHeaderData = false;
|
|
1460
1452
|
const resolver = {
|
|
1461
1453
|
async resolve(rs) {
|
|
1462
1454
|
const {
|
|
@@ -1469,6 +1461,7 @@ function createClient(middlewares) {
|
|
|
1469
1461
|
retryCount,
|
|
1470
1462
|
...rest
|
|
1471
1463
|
} = response;
|
|
1464
|
+
_maskSensitiveHeaderData = maskSensitiveHeaderData;
|
|
1472
1465
|
const res = {
|
|
1473
1466
|
body: null,
|
|
1474
1467
|
error: null,
|
|
@@ -1476,7 +1469,7 @@ function createClient(middlewares) {
|
|
|
1476
1469
|
resolve: rs.resolve,
|
|
1477
1470
|
...rest,
|
|
1478
1471
|
...(includeOriginalRequest ? {
|
|
1479
|
-
originalRequest:
|
|
1472
|
+
originalRequest: request
|
|
1480
1473
|
} : {}),
|
|
1481
1474
|
...(response?.retryCount ? {
|
|
1482
1475
|
retryCount: response.retryCount
|
|
@@ -1496,11 +1489,11 @@ function createClient(middlewares) {
|
|
|
1496
1489
|
resolve,
|
|
1497
1490
|
...request
|
|
1498
1491
|
}).then(res => {
|
|
1499
|
-
if (res.error)
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
resolve(res);
|
|
1492
|
+
if (res.error) return reject(res.error);
|
|
1493
|
+
if (res.originalRequest && _maskSensitiveHeaderData) {
|
|
1494
|
+
res.originalRequest = maskAuthData(res.originalRequest);
|
|
1503
1495
|
}
|
|
1496
|
+
resolve(res);
|
|
1504
1497
|
}).catch(reject);
|
|
1505
1498
|
});
|
|
1506
1499
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import fetch$1 from 'node-fetch';
|
|
2
2
|
import { v4 } from 'uuid';
|
|
3
3
|
import { Buffer } from 'buffer/';
|
|
4
|
+
import { Mutex } from 'async-mutex';
|
|
4
5
|
import AbortController from 'abort-controller';
|
|
5
6
|
|
|
6
7
|
function toPrimitive(t, r) {
|
|
@@ -612,7 +613,6 @@ async function executeRequest$1(options) {
|
|
|
612
613
|
httpClient,
|
|
613
614
|
tokenCache,
|
|
614
615
|
tokenCacheKey,
|
|
615
|
-
requestState,
|
|
616
616
|
userOption,
|
|
617
617
|
next
|
|
618
618
|
} = options;
|
|
@@ -647,19 +647,12 @@ async function executeRequest$1(options) {
|
|
|
647
647
|
next
|
|
648
648
|
});
|
|
649
649
|
|
|
650
|
-
// if a token is currently being fetched, then wait
|
|
651
|
-
if (requestState.get()) return;
|
|
652
|
-
|
|
653
|
-
// signal that a token is being fetched
|
|
654
|
-
requestState.set(true);
|
|
655
|
-
|
|
656
650
|
/**
|
|
657
651
|
* use refreshToken flow if there is refresh-token
|
|
658
652
|
* and there's either no token or the token is expired
|
|
659
653
|
*/
|
|
660
654
|
if (tokenCacheObject && tokenCacheObject.refreshToken && (!tokenCacheObject.token || tokenCacheObject.token && Date.now() > tokenCacheObject.expirationTime)) {
|
|
661
655
|
if (!userOption) {
|
|
662
|
-
requestState.set(false);
|
|
663
656
|
throw new Error('Missing required options.');
|
|
664
657
|
}
|
|
665
658
|
const opt = {
|
|
@@ -706,9 +699,6 @@ async function executeRequest$1(options) {
|
|
|
706
699
|
refreshToken
|
|
707
700
|
});
|
|
708
701
|
|
|
709
|
-
// signal that a token fetch is complete
|
|
710
|
-
requestState.set(false);
|
|
711
|
-
|
|
712
702
|
/**
|
|
713
703
|
* Freeze and copy pending queue, reset
|
|
714
704
|
* original one for accepting new pending tasks
|
|
@@ -734,10 +724,8 @@ async function executeRequest$1(options) {
|
|
|
734
724
|
const error = new Error(response.data.message ? response.data.message : JSON.stringify(response.data));
|
|
735
725
|
/**
|
|
736
726
|
* reject the error immediately
|
|
737
|
-
* and free up the middleware chain
|
|
738
|
-
* release the requestState by setting it to false
|
|
727
|
+
* and free up the middleware chain
|
|
739
728
|
*/
|
|
740
|
-
requestState.set(false);
|
|
741
729
|
request.reject({
|
|
742
730
|
...request,
|
|
743
731
|
headers: {
|
|
@@ -752,10 +740,6 @@ async function executeRequest$1(options) {
|
|
|
752
740
|
}
|
|
753
741
|
});
|
|
754
742
|
} catch (error) {
|
|
755
|
-
/**
|
|
756
|
-
* on error release the state by setting it to false
|
|
757
|
-
*/
|
|
758
|
-
requestState.set(false);
|
|
759
743
|
return {
|
|
760
744
|
...request,
|
|
761
745
|
headers: {
|
|
@@ -813,7 +797,7 @@ function createAuthMiddlewareForAnonymousSessionFlow$1(options) {
|
|
|
813
797
|
}
|
|
814
798
|
|
|
815
799
|
function createAuthMiddlewareForClientCredentialsFlow$1(options) {
|
|
816
|
-
const requestState =
|
|
800
|
+
const requestState = new Mutex();
|
|
817
801
|
const pendingTasks = [];
|
|
818
802
|
const tokenCache = options.tokenCache || store({
|
|
819
803
|
token: '',
|
|
@@ -841,7 +825,13 @@ function createAuthMiddlewareForClientCredentialsFlow$1(options) {
|
|
|
841
825
|
};
|
|
842
826
|
|
|
843
827
|
// make request to coco
|
|
844
|
-
|
|
828
|
+
let requestWithAuth;
|
|
829
|
+
try {
|
|
830
|
+
await requestState.acquire();
|
|
831
|
+
requestWithAuth = await executeRequest$1(requestOptions);
|
|
832
|
+
} finally {
|
|
833
|
+
requestState.release();
|
|
834
|
+
}
|
|
845
835
|
if (requestWithAuth) {
|
|
846
836
|
// make the request and inject the token into the header
|
|
847
837
|
return next(requestWithAuth);
|
|
@@ -1253,7 +1243,7 @@ function createQueueMiddleware$1({
|
|
|
1253
1243
|
|
|
1254
1244
|
var packageJson = {
|
|
1255
1245
|
name: "@commercetools/ts-client",
|
|
1256
|
-
version: "2.0.
|
|
1246
|
+
version: "2.0.3",
|
|
1257
1247
|
engines: {
|
|
1258
1248
|
node: ">=14"
|
|
1259
1249
|
},
|
|
@@ -1287,6 +1277,7 @@ var packageJson = {
|
|
|
1287
1277
|
},
|
|
1288
1278
|
dependencies: {
|
|
1289
1279
|
"abort-controller": "3.0.0",
|
|
1280
|
+
"async-mutex": "^0.5.0",
|
|
1290
1281
|
buffer: "^6.0.3",
|
|
1291
1282
|
"node-fetch": "^2.6.1",
|
|
1292
1283
|
uuid: "10.0.0"
|
|
@@ -1448,6 +1439,7 @@ function process$1(request, fn, processOpt) {
|
|
|
1448
1439
|
function createClient(middlewares) {
|
|
1449
1440
|
_options = middlewares;
|
|
1450
1441
|
validateClient(middlewares);
|
|
1442
|
+
let _maskSensitiveHeaderData = false;
|
|
1451
1443
|
const resolver = {
|
|
1452
1444
|
async resolve(rs) {
|
|
1453
1445
|
const {
|
|
@@ -1460,6 +1452,7 @@ function createClient(middlewares) {
|
|
|
1460
1452
|
retryCount,
|
|
1461
1453
|
...rest
|
|
1462
1454
|
} = response;
|
|
1455
|
+
_maskSensitiveHeaderData = maskSensitiveHeaderData;
|
|
1463
1456
|
const res = {
|
|
1464
1457
|
body: null,
|
|
1465
1458
|
error: null,
|
|
@@ -1467,7 +1460,7 @@ function createClient(middlewares) {
|
|
|
1467
1460
|
resolve: rs.resolve,
|
|
1468
1461
|
...rest,
|
|
1469
1462
|
...(includeOriginalRequest ? {
|
|
1470
|
-
originalRequest:
|
|
1463
|
+
originalRequest: request
|
|
1471
1464
|
} : {}),
|
|
1472
1465
|
...(response?.retryCount ? {
|
|
1473
1466
|
retryCount: response.retryCount
|
|
@@ -1487,11 +1480,11 @@ function createClient(middlewares) {
|
|
|
1487
1480
|
resolve,
|
|
1488
1481
|
...request
|
|
1489
1482
|
}).then(res => {
|
|
1490
|
-
if (res.error)
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
resolve(res);
|
|
1483
|
+
if (res.error) return reject(res.error);
|
|
1484
|
+
if (res.originalRequest && _maskSensitiveHeaderData) {
|
|
1485
|
+
res.originalRequest = maskAuthData(res.originalRequest);
|
|
1494
1486
|
}
|
|
1487
|
+
resolve(res);
|
|
1495
1488
|
}).catch(reject);
|
|
1496
1489
|
});
|
|
1497
1490
|
}
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var fetch$1 = require('node-fetch');
|
|
6
6
|
var uuid = require('uuid');
|
|
7
7
|
var _ = require('buffer/');
|
|
8
|
+
var asyncMutex = require('async-mutex');
|
|
8
9
|
var AbortController = require('abort-controller');
|
|
9
10
|
|
|
10
11
|
function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
|
|
@@ -621,7 +622,6 @@ async function executeRequest$1(options) {
|
|
|
621
622
|
httpClient,
|
|
622
623
|
tokenCache,
|
|
623
624
|
tokenCacheKey,
|
|
624
|
-
requestState,
|
|
625
625
|
userOption,
|
|
626
626
|
next
|
|
627
627
|
} = options;
|
|
@@ -656,19 +656,12 @@ async function executeRequest$1(options) {
|
|
|
656
656
|
next
|
|
657
657
|
});
|
|
658
658
|
|
|
659
|
-
// if a token is currently being fetched, then wait
|
|
660
|
-
if (requestState.get()) return;
|
|
661
|
-
|
|
662
|
-
// signal that a token is being fetched
|
|
663
|
-
requestState.set(true);
|
|
664
|
-
|
|
665
659
|
/**
|
|
666
660
|
* use refreshToken flow if there is refresh-token
|
|
667
661
|
* and there's either no token or the token is expired
|
|
668
662
|
*/
|
|
669
663
|
if (tokenCacheObject && tokenCacheObject.refreshToken && (!tokenCacheObject.token || tokenCacheObject.token && Date.now() > tokenCacheObject.expirationTime)) {
|
|
670
664
|
if (!userOption) {
|
|
671
|
-
requestState.set(false);
|
|
672
665
|
throw new Error('Missing required options.');
|
|
673
666
|
}
|
|
674
667
|
const opt = {
|
|
@@ -715,9 +708,6 @@ async function executeRequest$1(options) {
|
|
|
715
708
|
refreshToken
|
|
716
709
|
});
|
|
717
710
|
|
|
718
|
-
// signal that a token fetch is complete
|
|
719
|
-
requestState.set(false);
|
|
720
|
-
|
|
721
711
|
/**
|
|
722
712
|
* Freeze and copy pending queue, reset
|
|
723
713
|
* original one for accepting new pending tasks
|
|
@@ -743,10 +733,8 @@ async function executeRequest$1(options) {
|
|
|
743
733
|
const error = new Error(response.data.message ? response.data.message : JSON.stringify(response.data));
|
|
744
734
|
/**
|
|
745
735
|
* reject the error immediately
|
|
746
|
-
* and free up the middleware chain
|
|
747
|
-
* release the requestState by setting it to false
|
|
736
|
+
* and free up the middleware chain
|
|
748
737
|
*/
|
|
749
|
-
requestState.set(false);
|
|
750
738
|
request.reject({
|
|
751
739
|
...request,
|
|
752
740
|
headers: {
|
|
@@ -761,10 +749,6 @@ async function executeRequest$1(options) {
|
|
|
761
749
|
}
|
|
762
750
|
});
|
|
763
751
|
} catch (error) {
|
|
764
|
-
/**
|
|
765
|
-
* on error release the state by setting it to false
|
|
766
|
-
*/
|
|
767
|
-
requestState.set(false);
|
|
768
752
|
return {
|
|
769
753
|
...request,
|
|
770
754
|
headers: {
|
|
@@ -822,7 +806,7 @@ function createAuthMiddlewareForAnonymousSessionFlow$1(options) {
|
|
|
822
806
|
}
|
|
823
807
|
|
|
824
808
|
function createAuthMiddlewareForClientCredentialsFlow$1(options) {
|
|
825
|
-
const requestState =
|
|
809
|
+
const requestState = new asyncMutex.Mutex();
|
|
826
810
|
const pendingTasks = [];
|
|
827
811
|
const tokenCache = options.tokenCache || store({
|
|
828
812
|
token: '',
|
|
@@ -850,7 +834,13 @@ function createAuthMiddlewareForClientCredentialsFlow$1(options) {
|
|
|
850
834
|
};
|
|
851
835
|
|
|
852
836
|
// make request to coco
|
|
853
|
-
|
|
837
|
+
let requestWithAuth;
|
|
838
|
+
try {
|
|
839
|
+
await requestState.acquire();
|
|
840
|
+
requestWithAuth = await executeRequest$1(requestOptions);
|
|
841
|
+
} finally {
|
|
842
|
+
requestState.release();
|
|
843
|
+
}
|
|
854
844
|
if (requestWithAuth) {
|
|
855
845
|
// make the request and inject the token into the header
|
|
856
846
|
return next(requestWithAuth);
|
|
@@ -1262,7 +1252,7 @@ function createQueueMiddleware$1({
|
|
|
1262
1252
|
|
|
1263
1253
|
var packageJson = {
|
|
1264
1254
|
name: "@commercetools/ts-client",
|
|
1265
|
-
version: "2.0.
|
|
1255
|
+
version: "2.0.3",
|
|
1266
1256
|
engines: {
|
|
1267
1257
|
node: ">=14"
|
|
1268
1258
|
},
|
|
@@ -1296,6 +1286,7 @@ var packageJson = {
|
|
|
1296
1286
|
},
|
|
1297
1287
|
dependencies: {
|
|
1298
1288
|
"abort-controller": "3.0.0",
|
|
1289
|
+
"async-mutex": "^0.5.0",
|
|
1299
1290
|
buffer: "^6.0.3",
|
|
1300
1291
|
"node-fetch": "^2.6.1",
|
|
1301
1292
|
uuid: "10.0.0"
|
|
@@ -1457,6 +1448,7 @@ function process$1(request, fn, processOpt) {
|
|
|
1457
1448
|
function createClient(middlewares) {
|
|
1458
1449
|
_options = middlewares;
|
|
1459
1450
|
validateClient(middlewares);
|
|
1451
|
+
let _maskSensitiveHeaderData = false;
|
|
1460
1452
|
const resolver = {
|
|
1461
1453
|
async resolve(rs) {
|
|
1462
1454
|
const {
|
|
@@ -1469,6 +1461,7 @@ function createClient(middlewares) {
|
|
|
1469
1461
|
retryCount,
|
|
1470
1462
|
...rest
|
|
1471
1463
|
} = response;
|
|
1464
|
+
_maskSensitiveHeaderData = maskSensitiveHeaderData;
|
|
1472
1465
|
const res = {
|
|
1473
1466
|
body: null,
|
|
1474
1467
|
error: null,
|
|
@@ -1476,7 +1469,7 @@ function createClient(middlewares) {
|
|
|
1476
1469
|
resolve: rs.resolve,
|
|
1477
1470
|
...rest,
|
|
1478
1471
|
...(includeOriginalRequest ? {
|
|
1479
|
-
originalRequest:
|
|
1472
|
+
originalRequest: request
|
|
1480
1473
|
} : {}),
|
|
1481
1474
|
...(response?.retryCount ? {
|
|
1482
1475
|
retryCount: response.retryCount
|
|
@@ -1496,11 +1489,11 @@ function createClient(middlewares) {
|
|
|
1496
1489
|
resolve,
|
|
1497
1490
|
...request
|
|
1498
1491
|
}).then(res => {
|
|
1499
|
-
if (res.error)
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
resolve(res);
|
|
1492
|
+
if (res.error) return reject(res.error);
|
|
1493
|
+
if (res.originalRequest && _maskSensitiveHeaderData) {
|
|
1494
|
+
res.originalRequest = maskAuthData(res.originalRequest);
|
|
1503
1495
|
}
|
|
1496
|
+
resolve(res);
|
|
1504
1497
|
}).catch(reject);
|
|
1505
1498
|
});
|
|
1506
1499
|
}
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var fetch$1 = require('node-fetch');
|
|
6
6
|
var uuid = require('uuid');
|
|
7
7
|
var _ = require('buffer/');
|
|
8
|
+
var asyncMutex = require('async-mutex');
|
|
8
9
|
var AbortController = require('abort-controller');
|
|
9
10
|
|
|
10
11
|
function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
|
|
@@ -621,7 +622,6 @@ async function executeRequest$1(options) {
|
|
|
621
622
|
httpClient,
|
|
622
623
|
tokenCache,
|
|
623
624
|
tokenCacheKey,
|
|
624
|
-
requestState,
|
|
625
625
|
userOption,
|
|
626
626
|
next
|
|
627
627
|
} = options;
|
|
@@ -656,19 +656,12 @@ async function executeRequest$1(options) {
|
|
|
656
656
|
next
|
|
657
657
|
});
|
|
658
658
|
|
|
659
|
-
// if a token is currently being fetched, then wait
|
|
660
|
-
if (requestState.get()) return;
|
|
661
|
-
|
|
662
|
-
// signal that a token is being fetched
|
|
663
|
-
requestState.set(true);
|
|
664
|
-
|
|
665
659
|
/**
|
|
666
660
|
* use refreshToken flow if there is refresh-token
|
|
667
661
|
* and there's either no token or the token is expired
|
|
668
662
|
*/
|
|
669
663
|
if (tokenCacheObject && tokenCacheObject.refreshToken && (!tokenCacheObject.token || tokenCacheObject.token && Date.now() > tokenCacheObject.expirationTime)) {
|
|
670
664
|
if (!userOption) {
|
|
671
|
-
requestState.set(false);
|
|
672
665
|
throw new Error('Missing required options.');
|
|
673
666
|
}
|
|
674
667
|
const opt = {
|
|
@@ -715,9 +708,6 @@ async function executeRequest$1(options) {
|
|
|
715
708
|
refreshToken
|
|
716
709
|
});
|
|
717
710
|
|
|
718
|
-
// signal that a token fetch is complete
|
|
719
|
-
requestState.set(false);
|
|
720
|
-
|
|
721
711
|
/**
|
|
722
712
|
* Freeze and copy pending queue, reset
|
|
723
713
|
* original one for accepting new pending tasks
|
|
@@ -743,10 +733,8 @@ async function executeRequest$1(options) {
|
|
|
743
733
|
const error = new Error(response.data.message ? response.data.message : JSON.stringify(response.data));
|
|
744
734
|
/**
|
|
745
735
|
* reject the error immediately
|
|
746
|
-
* and free up the middleware chain
|
|
747
|
-
* release the requestState by setting it to false
|
|
736
|
+
* and free up the middleware chain
|
|
748
737
|
*/
|
|
749
|
-
requestState.set(false);
|
|
750
738
|
request.reject({
|
|
751
739
|
...request,
|
|
752
740
|
headers: {
|
|
@@ -761,10 +749,6 @@ async function executeRequest$1(options) {
|
|
|
761
749
|
}
|
|
762
750
|
});
|
|
763
751
|
} catch (error) {
|
|
764
|
-
/**
|
|
765
|
-
* on error release the state by setting it to false
|
|
766
|
-
*/
|
|
767
|
-
requestState.set(false);
|
|
768
752
|
return {
|
|
769
753
|
...request,
|
|
770
754
|
headers: {
|
|
@@ -822,7 +806,7 @@ function createAuthMiddlewareForAnonymousSessionFlow$1(options) {
|
|
|
822
806
|
}
|
|
823
807
|
|
|
824
808
|
function createAuthMiddlewareForClientCredentialsFlow$1(options) {
|
|
825
|
-
const requestState =
|
|
809
|
+
const requestState = new asyncMutex.Mutex();
|
|
826
810
|
const pendingTasks = [];
|
|
827
811
|
const tokenCache = options.tokenCache || store({
|
|
828
812
|
token: '',
|
|
@@ -850,7 +834,13 @@ function createAuthMiddlewareForClientCredentialsFlow$1(options) {
|
|
|
850
834
|
};
|
|
851
835
|
|
|
852
836
|
// make request to coco
|
|
853
|
-
|
|
837
|
+
let requestWithAuth;
|
|
838
|
+
try {
|
|
839
|
+
await requestState.acquire();
|
|
840
|
+
requestWithAuth = await executeRequest$1(requestOptions);
|
|
841
|
+
} finally {
|
|
842
|
+
requestState.release();
|
|
843
|
+
}
|
|
854
844
|
if (requestWithAuth) {
|
|
855
845
|
// make the request and inject the token into the header
|
|
856
846
|
return next(requestWithAuth);
|
|
@@ -1262,7 +1252,7 @@ function createQueueMiddleware$1({
|
|
|
1262
1252
|
|
|
1263
1253
|
var packageJson = {
|
|
1264
1254
|
name: "@commercetools/ts-client",
|
|
1265
|
-
version: "2.0.
|
|
1255
|
+
version: "2.0.3",
|
|
1266
1256
|
engines: {
|
|
1267
1257
|
node: ">=14"
|
|
1268
1258
|
},
|
|
@@ -1296,6 +1286,7 @@ var packageJson = {
|
|
|
1296
1286
|
},
|
|
1297
1287
|
dependencies: {
|
|
1298
1288
|
"abort-controller": "3.0.0",
|
|
1289
|
+
"async-mutex": "^0.5.0",
|
|
1299
1290
|
buffer: "^6.0.3",
|
|
1300
1291
|
"node-fetch": "^2.6.1",
|
|
1301
1292
|
uuid: "10.0.0"
|
|
@@ -1457,6 +1448,7 @@ function process$1(request, fn, processOpt) {
|
|
|
1457
1448
|
function createClient(middlewares) {
|
|
1458
1449
|
_options = middlewares;
|
|
1459
1450
|
validateClient(middlewares);
|
|
1451
|
+
let _maskSensitiveHeaderData = false;
|
|
1460
1452
|
const resolver = {
|
|
1461
1453
|
async resolve(rs) {
|
|
1462
1454
|
const {
|
|
@@ -1469,6 +1461,7 @@ function createClient(middlewares) {
|
|
|
1469
1461
|
retryCount,
|
|
1470
1462
|
...rest
|
|
1471
1463
|
} = response;
|
|
1464
|
+
_maskSensitiveHeaderData = maskSensitiveHeaderData;
|
|
1472
1465
|
const res = {
|
|
1473
1466
|
body: null,
|
|
1474
1467
|
error: null,
|
|
@@ -1476,7 +1469,7 @@ function createClient(middlewares) {
|
|
|
1476
1469
|
resolve: rs.resolve,
|
|
1477
1470
|
...rest,
|
|
1478
1471
|
...(includeOriginalRequest ? {
|
|
1479
|
-
originalRequest:
|
|
1472
|
+
originalRequest: request
|
|
1480
1473
|
} : {}),
|
|
1481
1474
|
...(response?.retryCount ? {
|
|
1482
1475
|
retryCount: response.retryCount
|
|
@@ -1496,11 +1489,11 @@ function createClient(middlewares) {
|
|
|
1496
1489
|
resolve,
|
|
1497
1490
|
...request
|
|
1498
1491
|
}).then(res => {
|
|
1499
|
-
if (res.error)
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
resolve(res);
|
|
1492
|
+
if (res.error) return reject(res.error);
|
|
1493
|
+
if (res.originalRequest && _maskSensitiveHeaderData) {
|
|
1494
|
+
res.originalRequest = maskAuthData(res.originalRequest);
|
|
1503
1495
|
}
|
|
1496
|
+
resolve(res);
|
|
1504
1497
|
}).catch(reject);
|
|
1505
1498
|
});
|
|
1506
1499
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import fetch$1 from 'node-fetch';
|
|
2
2
|
import { v4 } from 'uuid';
|
|
3
3
|
import { Buffer } from 'buffer/';
|
|
4
|
+
import { Mutex } from 'async-mutex';
|
|
4
5
|
import AbortController from 'abort-controller';
|
|
5
6
|
|
|
6
7
|
function toPrimitive(t, r) {
|
|
@@ -612,7 +613,6 @@ async function executeRequest$1(options) {
|
|
|
612
613
|
httpClient,
|
|
613
614
|
tokenCache,
|
|
614
615
|
tokenCacheKey,
|
|
615
|
-
requestState,
|
|
616
616
|
userOption,
|
|
617
617
|
next
|
|
618
618
|
} = options;
|
|
@@ -647,19 +647,12 @@ async function executeRequest$1(options) {
|
|
|
647
647
|
next
|
|
648
648
|
});
|
|
649
649
|
|
|
650
|
-
// if a token is currently being fetched, then wait
|
|
651
|
-
if (requestState.get()) return;
|
|
652
|
-
|
|
653
|
-
// signal that a token is being fetched
|
|
654
|
-
requestState.set(true);
|
|
655
|
-
|
|
656
650
|
/**
|
|
657
651
|
* use refreshToken flow if there is refresh-token
|
|
658
652
|
* and there's either no token or the token is expired
|
|
659
653
|
*/
|
|
660
654
|
if (tokenCacheObject && tokenCacheObject.refreshToken && (!tokenCacheObject.token || tokenCacheObject.token && Date.now() > tokenCacheObject.expirationTime)) {
|
|
661
655
|
if (!userOption) {
|
|
662
|
-
requestState.set(false);
|
|
663
656
|
throw new Error('Missing required options.');
|
|
664
657
|
}
|
|
665
658
|
const opt = {
|
|
@@ -706,9 +699,6 @@ async function executeRequest$1(options) {
|
|
|
706
699
|
refreshToken
|
|
707
700
|
});
|
|
708
701
|
|
|
709
|
-
// signal that a token fetch is complete
|
|
710
|
-
requestState.set(false);
|
|
711
|
-
|
|
712
702
|
/**
|
|
713
703
|
* Freeze and copy pending queue, reset
|
|
714
704
|
* original one for accepting new pending tasks
|
|
@@ -734,10 +724,8 @@ async function executeRequest$1(options) {
|
|
|
734
724
|
const error = new Error(response.data.message ? response.data.message : JSON.stringify(response.data));
|
|
735
725
|
/**
|
|
736
726
|
* reject the error immediately
|
|
737
|
-
* and free up the middleware chain
|
|
738
|
-
* release the requestState by setting it to false
|
|
727
|
+
* and free up the middleware chain
|
|
739
728
|
*/
|
|
740
|
-
requestState.set(false);
|
|
741
729
|
request.reject({
|
|
742
730
|
...request,
|
|
743
731
|
headers: {
|
|
@@ -752,10 +740,6 @@ async function executeRequest$1(options) {
|
|
|
752
740
|
}
|
|
753
741
|
});
|
|
754
742
|
} catch (error) {
|
|
755
|
-
/**
|
|
756
|
-
* on error release the state by setting it to false
|
|
757
|
-
*/
|
|
758
|
-
requestState.set(false);
|
|
759
743
|
return {
|
|
760
744
|
...request,
|
|
761
745
|
headers: {
|
|
@@ -813,7 +797,7 @@ function createAuthMiddlewareForAnonymousSessionFlow$1(options) {
|
|
|
813
797
|
}
|
|
814
798
|
|
|
815
799
|
function createAuthMiddlewareForClientCredentialsFlow$1(options) {
|
|
816
|
-
const requestState =
|
|
800
|
+
const requestState = new Mutex();
|
|
817
801
|
const pendingTasks = [];
|
|
818
802
|
const tokenCache = options.tokenCache || store({
|
|
819
803
|
token: '',
|
|
@@ -841,7 +825,13 @@ function createAuthMiddlewareForClientCredentialsFlow$1(options) {
|
|
|
841
825
|
};
|
|
842
826
|
|
|
843
827
|
// make request to coco
|
|
844
|
-
|
|
828
|
+
let requestWithAuth;
|
|
829
|
+
try {
|
|
830
|
+
await requestState.acquire();
|
|
831
|
+
requestWithAuth = await executeRequest$1(requestOptions);
|
|
832
|
+
} finally {
|
|
833
|
+
requestState.release();
|
|
834
|
+
}
|
|
845
835
|
if (requestWithAuth) {
|
|
846
836
|
// make the request and inject the token into the header
|
|
847
837
|
return next(requestWithAuth);
|
|
@@ -1253,7 +1243,7 @@ function createQueueMiddleware$1({
|
|
|
1253
1243
|
|
|
1254
1244
|
var packageJson = {
|
|
1255
1245
|
name: "@commercetools/ts-client",
|
|
1256
|
-
version: "2.0.
|
|
1246
|
+
version: "2.0.3",
|
|
1257
1247
|
engines: {
|
|
1258
1248
|
node: ">=14"
|
|
1259
1249
|
},
|
|
@@ -1287,6 +1277,7 @@ var packageJson = {
|
|
|
1287
1277
|
},
|
|
1288
1278
|
dependencies: {
|
|
1289
1279
|
"abort-controller": "3.0.0",
|
|
1280
|
+
"async-mutex": "^0.5.0",
|
|
1290
1281
|
buffer: "^6.0.3",
|
|
1291
1282
|
"node-fetch": "^2.6.1",
|
|
1292
1283
|
uuid: "10.0.0"
|
|
@@ -1448,6 +1439,7 @@ function process$1(request, fn, processOpt) {
|
|
|
1448
1439
|
function createClient(middlewares) {
|
|
1449
1440
|
_options = middlewares;
|
|
1450
1441
|
validateClient(middlewares);
|
|
1442
|
+
let _maskSensitiveHeaderData = false;
|
|
1451
1443
|
const resolver = {
|
|
1452
1444
|
async resolve(rs) {
|
|
1453
1445
|
const {
|
|
@@ -1460,6 +1452,7 @@ function createClient(middlewares) {
|
|
|
1460
1452
|
retryCount,
|
|
1461
1453
|
...rest
|
|
1462
1454
|
} = response;
|
|
1455
|
+
_maskSensitiveHeaderData = maskSensitiveHeaderData;
|
|
1463
1456
|
const res = {
|
|
1464
1457
|
body: null,
|
|
1465
1458
|
error: null,
|
|
@@ -1467,7 +1460,7 @@ function createClient(middlewares) {
|
|
|
1467
1460
|
resolve: rs.resolve,
|
|
1468
1461
|
...rest,
|
|
1469
1462
|
...(includeOriginalRequest ? {
|
|
1470
|
-
originalRequest:
|
|
1463
|
+
originalRequest: request
|
|
1471
1464
|
} : {}),
|
|
1472
1465
|
...(response?.retryCount ? {
|
|
1473
1466
|
retryCount: response.retryCount
|
|
@@ -1487,11 +1480,11 @@ function createClient(middlewares) {
|
|
|
1487
1480
|
resolve,
|
|
1488
1481
|
...request
|
|
1489
1482
|
}).then(res => {
|
|
1490
|
-
if (res.error)
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
resolve(res);
|
|
1483
|
+
if (res.error) return reject(res.error);
|
|
1484
|
+
if (res.originalRequest && _maskSensitiveHeaderData) {
|
|
1485
|
+
res.originalRequest = maskAuthData(res.originalRequest);
|
|
1494
1486
|
}
|
|
1487
|
+
resolve(res);
|
|
1495
1488
|
}).catch(reject);
|
|
1496
1489
|
});
|
|
1497
1490
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
var window;(window||={})["@commercetools/ts-client"]=(()=>{var Jt=Object.create;var xe=Object.defineProperty;var Xt=Object.getOwnPropertyDescriptor;var Zt=Object.getOwnPropertyNames;var er=Object.getPrototypeOf,tr=Object.prototype.hasOwnProperty;var ue=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),De=(r,e)=>{for(var t in e)xe(r,t,{get:e[t],enumerable:!0})},dt=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Zt(e))!tr.call(r,n)&&n!==t&&xe(r,n,{get:()=>e[n],enumerable:!(i=Xt(e,n))||i.enumerable});return r};var q=(r,e,t)=>(t=r!=null?Jt(er(r)):{},dt(e||!r||!r.__esModule?xe(t,"default",{value:r,enumerable:!0}):t,r)),rr=r=>dt(xe({},"__esModule",{value:!0}),r);var le=ue((z,ht)=>{"use strict";var ir=function(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw new Error("unable to locate global object")},D=ir();ht.exports=z=D.fetch;D.fetch&&(z.default=D.fetch.bind(D));z.Headers=D.Headers;z.Request=D.Request;z.Response=D.Response});var xt=ue(Ue=>{"use strict";Ue.byteLength=br;Ue.toByteArray=Ur;Ue.fromByteArray=_r;var F=[],T=[],Ir=typeof Uint8Array<"u"?Uint8Array:Array,Je="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for($=0,yt=Je.length;$<yt;++$)F[$]=Je[$],T[Je.charCodeAt($)]=$;var $,yt;T[45]=62;T[95]=63;function gt(r){var e=r.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var t=r.indexOf("=");t===-1&&(t=e);var i=t===e?0:4-t%4;return[t,i]}function br(r){var e=gt(r),t=e[0],i=e[1];return(t+i)*3/4-i}function Fr(r,e,t){return(e+t)*3/4-t}function Ur(r){var e,t=gt(r),i=t[0],n=t[1],o=new Ir(Fr(r,i,n)),s=0,l=n>0?i-4:i,c;for(c=0;c<l;c+=4)e=T[r.charCodeAt(c)]<<18|T[r.charCodeAt(c+1)]<<12|T[r.charCodeAt(c+2)]<<6|T[r.charCodeAt(c+3)],o[s++]=e>>16&255,o[s++]=e>>8&255,o[s++]=e&255;return n===2&&(e=T[r.charCodeAt(c)]<<2|T[r.charCodeAt(c+1)]>>4,o[s++]=e&255),n===1&&(e=T[r.charCodeAt(c)]<<10|T[r.charCodeAt(c+1)]<<4|T[r.charCodeAt(c+2)]>>2,o[s++]=e>>8&255,o[s++]=e&255),o}function kr(r){return F[r>>18&63]+F[r>>12&63]+F[r>>6&63]+F[r&63]}function Sr(r,e,t){for(var i,n=[],o=e;o<t;o+=3)i=(r[o]<<16&16711680)+(r[o+1]<<8&65280)+(r[o+2]&255),n.push(kr(i));return n.join("")}function _r(r){for(var e,t=r.length,i=t%3,n=[],o=16383,s=0,l=t-i;s<l;s+=o)n.push(Sr(r,s,s+o>l?l:s+o));return i===1?(e=r[t-1],n.push(F[e>>2]+F[e<<4&63]+"==")):i===2&&(e=(r[t-2]<<8)+r[t-1],n.push(F[e>>10]+F[e>>4&63]+F[e<<2&63]+"=")),n.join("")}});var Mt=ue(Xe=>{Xe.read=function(r,e,t,i,n){var o,s,l=n*8-i-1,c=(1<<l)-1,h=c>>1,u=-7,d=t?n-1:0,f=t?-1:1,p=r[e+d];for(d+=f,o=p&(1<<-u)-1,p>>=-u,u+=l;u>0;o=o*256+r[e+d],d+=f,u-=8);for(s=o&(1<<-u)-1,o>>=-u,u+=i;u>0;s=s*256+r[e+d],d+=f,u-=8);if(o===0)o=1-h;else{if(o===c)return s?NaN:(p?-1:1)*(1/0);s=s+Math.pow(2,i),o=o-h}return(p?-1:1)*s*Math.pow(2,o-i)};Xe.write=function(r,e,t,i,n,o){var s,l,c,h=o*8-n-1,u=(1<<h)-1,d=u>>1,f=n===23?Math.pow(2,-24)-Math.pow(2,-77):0,p=i?0:o-1,w=i?1:-1,E=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(l=isNaN(e)?1:0,s=u):(s=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-s))<1&&(s--,c*=2),s+d>=1?e+=f/c:e+=f*Math.pow(2,1-d),e*c>=2&&(s++,c/=2),s+d>=u?(l=0,s=u):s+d>=1?(l=(e*c-1)*Math.pow(2,n),s=s+d):(l=e*Math.pow(2,d-1)*Math.pow(2,n),s=0));n>=8;r[t+p]=l&255,p+=w,l/=256,n-=8);for(s=s<<n|l,h+=n;h>0;r[t+p]=s&255,p+=w,s/=256,h-=8);r[t+p-w]|=E*128}});var _e=ue(Z=>{"use strict";var Ze=xt(),J=Mt(),Et=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;Z.Buffer=a;Z.SlowBuffer=jr;Z.INSPECT_MAX_BYTES=50;var ke=2147483647;Z.kMaxLength=ke;a.TYPED_ARRAY_SUPPORT=qr();!a.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function qr(){try{let r=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(r,e),r.foo()===42}catch{return!1}}Object.defineProperty(a.prototype,"parent",{enumerable:!0,get:function(){if(a.isBuffer(this))return this.buffer}});Object.defineProperty(a.prototype,"offset",{enumerable:!0,get:function(){if(a.isBuffer(this))return this.byteOffset}});function _(r){if(r>ke)throw new RangeError('The value "'+r+'" is invalid for option "size"');let e=new Uint8Array(r);return Object.setPrototypeOf(e,a.prototype),e}function a(r,e,t){if(typeof r=="number"){if(typeof e=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return it(r)}return Tt(r,e,t)}a.poolSize=8192;function Tt(r,e,t){if(typeof r=="string")return Pr(r,e);if(ArrayBuffer.isView(r))return Nr(r);if(r==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof r);if(U(r,ArrayBuffer)||r&&U(r.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(U(r,SharedArrayBuffer)||r&&U(r.buffer,SharedArrayBuffer)))return tt(r,e,t);if(typeof r=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let i=r.valueOf&&r.valueOf();if(i!=null&&i!==r)return a.from(i,e,t);let n=Lr(r);if(n)return n;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof r[Symbol.toPrimitive]=="function")return a.from(r[Symbol.toPrimitive]("string"),e,t);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof r)}a.from=function(r,e,t){return Tt(r,e,t)};Object.setPrototypeOf(a.prototype,Uint8Array.prototype);Object.setPrototypeOf(a,Uint8Array);function Bt(r){if(typeof r!="number")throw new TypeError('"size" argument must be of type number');if(r<0)throw new RangeError('The value "'+r+'" is invalid for option "size"')}function Or(r,e,t){return Bt(r),r<=0?_(r):e!==void 0?typeof t=="string"?_(r).fill(e,t):_(r).fill(e):_(r)}a.alloc=function(r,e,t){return Or(r,e,t)};function it(r){return Bt(r),_(r<0?0:nt(r)|0)}a.allocUnsafe=function(r){return it(r)};a.allocUnsafeSlow=function(r){return it(r)};function Pr(r,e){if((typeof e!="string"||e==="")&&(e="utf8"),!a.isEncoding(e))throw new TypeError("Unknown encoding: "+e);let t=It(r,e)|0,i=_(t),n=i.write(r,e);return n!==t&&(i=i.slice(0,n)),i}function et(r){let e=r.length<0?0:nt(r.length)|0,t=_(e);for(let i=0;i<e;i+=1)t[i]=r[i]&255;return t}function Nr(r){if(U(r,Uint8Array)){let e=new Uint8Array(r);return tt(e.buffer,e.byteOffset,e.byteLength)}return et(r)}function tt(r,e,t){if(e<0||r.byteLength<e)throw new RangeError('"offset" is outside of buffer bounds');if(r.byteLength<e+(t||0))throw new RangeError('"length" is outside of buffer bounds');let i;return e===void 0&&t===void 0?i=new Uint8Array(r):t===void 0?i=new Uint8Array(r,e):i=new Uint8Array(r,e,t),Object.setPrototypeOf(i,a.prototype),i}function Lr(r){if(a.isBuffer(r)){let e=nt(r.length)|0,t=_(e);return t.length===0||r.copy(t,0,0,e),t}if(r.length!==void 0)return typeof r.length!="number"||st(r.length)?_(0):et(r);if(r.type==="Buffer"&&Array.isArray(r.data))return et(r.data)}function nt(r){if(r>=ke)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+ke.toString(16)+" bytes");return r|0}function jr(r){return+r!=r&&(r=0),a.alloc(+r)}a.isBuffer=function(e){return e!=null&&e._isBuffer===!0&&e!==a.prototype};a.compare=function(e,t){if(U(e,Uint8Array)&&(e=a.from(e,e.offset,e.byteLength)),U(t,Uint8Array)&&(t=a.from(t,t.offset,t.byteLength)),!a.isBuffer(e)||!a.isBuffer(t))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===t)return 0;let i=e.length,n=t.length;for(let o=0,s=Math.min(i,n);o<s;++o)if(e[o]!==t[o]){i=e[o],n=t[o];break}return i<n?-1:n<i?1:0};a.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}};a.concat=function(e,t){if(!Array.isArray(e))throw new TypeError('"list" argument must be an Array of Buffers');if(e.length===0)return a.alloc(0);let i;if(t===void 0)for(t=0,i=0;i<e.length;++i)t+=e[i].length;let n=a.allocUnsafe(t),o=0;for(i=0;i<e.length;++i){let s=e[i];if(U(s,Uint8Array))o+s.length>n.length?(a.isBuffer(s)||(s=a.from(s)),s.copy(n,o)):Uint8Array.prototype.set.call(n,s,o);else if(a.isBuffer(s))s.copy(n,o);else throw new TypeError('"list" argument must be an Array of Buffers');o+=s.length}return n};function It(r,e){if(a.isBuffer(r))return r.length;if(ArrayBuffer.isView(r)||U(r,ArrayBuffer))return r.byteLength;if(typeof r!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof r);let t=r.length,i=arguments.length>2&&arguments[2]===!0;if(!i&&t===0)return 0;let n=!1;for(;;)switch(e){case"ascii":case"latin1":case"binary":return t;case"utf8":case"utf-8":return rt(r).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return t*2;case"hex":return t>>>1;case"base64":return Pt(r).length;default:if(n)return i?-1:rt(r).length;e=(""+e).toLowerCase(),n=!0}}a.byteLength=It;function Dr(r,e,t){let i=!1;if((e===void 0||e<0)&&(e=0),e>this.length||((t===void 0||t>this.length)&&(t=this.length),t<=0)||(t>>>=0,e>>>=0,t<=e))return"";for(r||(r="utf8");;)switch(r){case"hex":return Yr(this,e,t);case"utf8":case"utf-8":return Ft(this,e,t);case"ascii":return Qr(this,e,t);case"latin1":case"binary":return Gr(this,e,t);case"base64":return Vr(this,e,t);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Jr(this,e,t);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(r+"").toLowerCase(),i=!0}}a.prototype._isBuffer=!0;function v(r,e,t){let i=r[e];r[e]=r[t],r[t]=i}a.prototype.swap16=function(){let e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;t<e;t+=2)v(this,t,t+1);return this};a.prototype.swap32=function(){let e=this.length;if(e%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let t=0;t<e;t+=4)v(this,t,t+3),v(this,t+1,t+2);return this};a.prototype.swap64=function(){let e=this.length;if(e%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let t=0;t<e;t+=8)v(this,t,t+7),v(this,t+1,t+6),v(this,t+2,t+5),v(this,t+3,t+4);return this};a.prototype.toString=function(){let e=this.length;return e===0?"":arguments.length===0?Ft(this,0,e):Dr.apply(this,arguments)};a.prototype.toLocaleString=a.prototype.toString;a.prototype.equals=function(e){if(!a.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e?!0:a.compare(this,e)===0};a.prototype.inspect=function(){let e="",t=Z.INSPECT_MAX_BYTES;return e=this.toString("hex",0,t).replace(/(.{2})/g,"$1 ").trim(),this.length>t&&(e+=" ... "),"<Buffer "+e+">"};Et&&(a.prototype[Et]=a.prototype.inspect);a.prototype.compare=function(e,t,i,n,o){if(U(e,Uint8Array)&&(e=a.from(e,e.offset,e.byteLength)),!a.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(t===void 0&&(t=0),i===void 0&&(i=e?e.length:0),n===void 0&&(n=0),o===void 0&&(o=this.length),t<0||i>e.length||n<0||o>this.length)throw new RangeError("out of range index");if(n>=o&&t>=i)return 0;if(n>=o)return-1;if(t>=i)return 1;if(t>>>=0,i>>>=0,n>>>=0,o>>>=0,this===e)return 0;let s=o-n,l=i-t,c=Math.min(s,l),h=this.slice(n,o),u=e.slice(t,i);for(let d=0;d<c;++d)if(h[d]!==u[d]){s=h[d],l=u[d];break}return s<l?-1:l<s?1:0};function bt(r,e,t,i,n){if(r.length===0)return-1;if(typeof t=="string"?(i=t,t=0):t>2147483647?t=2147483647:t<-2147483648&&(t=-2147483648),t=+t,st(t)&&(t=n?0:r.length-1),t<0&&(t=r.length+t),t>=r.length){if(n)return-1;t=r.length-1}else if(t<0)if(n)t=0;else return-1;if(typeof e=="string"&&(e=a.from(e,i)),a.isBuffer(e))return e.length===0?-1:Ct(r,e,t,i,n);if(typeof e=="number")return e=e&255,typeof Uint8Array.prototype.indexOf=="function"?n?Uint8Array.prototype.indexOf.call(r,e,t):Uint8Array.prototype.lastIndexOf.call(r,e,t):Ct(r,[e],t,i,n);throw new TypeError("val must be string, number or Buffer")}function Ct(r,e,t,i,n){let o=1,s=r.length,l=e.length;if(i!==void 0&&(i=String(i).toLowerCase(),i==="ucs2"||i==="ucs-2"||i==="utf16le"||i==="utf-16le")){if(r.length<2||e.length<2)return-1;o=2,s/=2,l/=2,t/=2}function c(u,d){return o===1?u[d]:u.readUInt16BE(d*o)}let h;if(n){let u=-1;for(h=t;h<s;h++)if(c(r,h)===c(e,u===-1?0:h-u)){if(u===-1&&(u=h),h-u+1===l)return u*o}else u!==-1&&(h-=h-u),u=-1}else for(t+l>s&&(t=s-l),h=t;h>=0;h--){let u=!0;for(let d=0;d<l;d++)if(c(r,h+d)!==c(e,d)){u=!1;break}if(u)return h}return-1}a.prototype.includes=function(e,t,i){return this.indexOf(e,t,i)!==-1};a.prototype.indexOf=function(e,t,i){return bt(this,e,t,i,!0)};a.prototype.lastIndexOf=function(e,t,i){return bt(this,e,t,i,!1)};function Hr(r,e,t,i){t=Number(t)||0;let n=r.length-t;i?(i=Number(i),i>n&&(i=n)):i=n;let o=e.length;i>o/2&&(i=o/2);let s;for(s=0;s<i;++s){let l=parseInt(e.substr(s*2,2),16);if(st(l))return s;r[t+s]=l}return s}function $r(r,e,t,i){return Se(rt(e,r.length-t),r,t,i)}function vr(r,e,t,i){return Se(ti(e),r,t,i)}function Kr(r,e,t,i){return Se(Pt(e),r,t,i)}function Wr(r,e,t,i){return Se(ri(e,r.length-t),r,t,i)}a.prototype.write=function(e,t,i,n){if(t===void 0)n="utf8",i=this.length,t=0;else if(i===void 0&&typeof t=="string")n=t,i=this.length,t=0;else if(isFinite(t))t=t>>>0,isFinite(i)?(i=i>>>0,n===void 0&&(n="utf8")):(n=i,i=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let o=this.length-t;if((i===void 0||i>o)&&(i=o),e.length>0&&(i<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let s=!1;for(;;)switch(n){case"hex":return Hr(this,e,t,i);case"utf8":case"utf-8":return $r(this,e,t,i);case"ascii":case"latin1":case"binary":return vr(this,e,t,i);case"base64":return Kr(this,e,t,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Wr(this,e,t,i);default:if(s)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),s=!0}};a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Vr(r,e,t){return e===0&&t===r.length?Ze.fromByteArray(r):Ze.fromByteArray(r.slice(e,t))}function Ft(r,e,t){t=Math.min(r.length,t);let i=[],n=e;for(;n<t;){let o=r[n],s=null,l=o>239?4:o>223?3:o>191?2:1;if(n+l<=t){let c,h,u,d;switch(l){case 1:o<128&&(s=o);break;case 2:c=r[n+1],(c&192)===128&&(d=(o&31)<<6|c&63,d>127&&(s=d));break;case 3:c=r[n+1],h=r[n+2],(c&192)===128&&(h&192)===128&&(d=(o&15)<<12|(c&63)<<6|h&63,d>2047&&(d<55296||d>57343)&&(s=d));break;case 4:c=r[n+1],h=r[n+2],u=r[n+3],(c&192)===128&&(h&192)===128&&(u&192)===128&&(d=(o&15)<<18|(c&63)<<12|(h&63)<<6|u&63,d>65535&&d<1114112&&(s=d))}}s===null?(s=65533,l=1):s>65535&&(s-=65536,i.push(s>>>10&1023|55296),s=56320|s&1023),i.push(s),n+=l}return zr(i)}var At=4096;function zr(r){let e=r.length;if(e<=At)return String.fromCharCode.apply(String,r);let t="",i=0;for(;i<e;)t+=String.fromCharCode.apply(String,r.slice(i,i+=At));return t}function Qr(r,e,t){let i="";t=Math.min(r.length,t);for(let n=e;n<t;++n)i+=String.fromCharCode(r[n]&127);return i}function Gr(r,e,t){let i="";t=Math.min(r.length,t);for(let n=e;n<t;++n)i+=String.fromCharCode(r[n]);return i}function Yr(r,e,t){let i=r.length;(!e||e<0)&&(e=0),(!t||t<0||t>i)&&(t=i);let n="";for(let o=e;o<t;++o)n+=ii[r[o]];return n}function Jr(r,e,t){let i=r.slice(e,t),n="";for(let o=0;o<i.length-1;o+=2)n+=String.fromCharCode(i[o]+i[o+1]*256);return n}a.prototype.slice=function(e,t){let i=this.length;e=~~e,t=t===void 0?i:~~t,e<0?(e+=i,e<0&&(e=0)):e>i&&(e=i),t<0?(t+=i,t<0&&(t=0)):t>i&&(t=i),t<e&&(t=e);let n=this.subarray(e,t);return Object.setPrototypeOf(n,a.prototype),n};function y(r,e,t){if(r%1!==0||r<0)throw new RangeError("offset is not uint");if(r+e>t)throw new RangeError("Trying to access beyond buffer length")}a.prototype.readUintLE=a.prototype.readUIntLE=function(e,t,i){e=e>>>0,t=t>>>0,i||y(e,t,this.length);let n=this[e],o=1,s=0;for(;++s<t&&(o*=256);)n+=this[e+s]*o;return n};a.prototype.readUintBE=a.prototype.readUIntBE=function(e,t,i){e=e>>>0,t=t>>>0,i||y(e,t,this.length);let n=this[e+--t],o=1;for(;t>0&&(o*=256);)n+=this[e+--t]*o;return n};a.prototype.readUint8=a.prototype.readUInt8=function(e,t){return e=e>>>0,t||y(e,1,this.length),this[e]};a.prototype.readUint16LE=a.prototype.readUInt16LE=function(e,t){return e=e>>>0,t||y(e,2,this.length),this[e]|this[e+1]<<8};a.prototype.readUint16BE=a.prototype.readUInt16BE=function(e,t){return e=e>>>0,t||y(e,2,this.length),this[e]<<8|this[e+1]};a.prototype.readUint32LE=a.prototype.readUInt32LE=function(e,t){return e=e>>>0,t||y(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216};a.prototype.readUint32BE=a.prototype.readUInt32BE=function(e,t){return e=e>>>0,t||y(e,4,this.length),this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])};a.prototype.readBigUInt64LE=P(function(e){e=e>>>0,X(e,"offset");let t=this[e],i=this[e+7];(t===void 0||i===void 0)&&de(e,this.length-8);let n=t+this[++e]*2**8+this[++e]*2**16+this[++e]*2**24,o=this[++e]+this[++e]*2**8+this[++e]*2**16+i*2**24;return BigInt(n)+(BigInt(o)<<BigInt(32))});a.prototype.readBigUInt64BE=P(function(e){e=e>>>0,X(e,"offset");let t=this[e],i=this[e+7];(t===void 0||i===void 0)&&de(e,this.length-8);let n=t*2**24+this[++e]*2**16+this[++e]*2**8+this[++e],o=this[++e]*2**24+this[++e]*2**16+this[++e]*2**8+i;return(BigInt(n)<<BigInt(32))+BigInt(o)});a.prototype.readIntLE=function(e,t,i){e=e>>>0,t=t>>>0,i||y(e,t,this.length);let n=this[e],o=1,s=0;for(;++s<t&&(o*=256);)n+=this[e+s]*o;return o*=128,n>=o&&(n-=Math.pow(2,8*t)),n};a.prototype.readIntBE=function(e,t,i){e=e>>>0,t=t>>>0,i||y(e,t,this.length);let n=t,o=1,s=this[e+--n];for(;n>0&&(o*=256);)s+=this[e+--n]*o;return o*=128,s>=o&&(s-=Math.pow(2,8*t)),s};a.prototype.readInt8=function(e,t){return e=e>>>0,t||y(e,1,this.length),this[e]&128?(255-this[e]+1)*-1:this[e]};a.prototype.readInt16LE=function(e,t){e=e>>>0,t||y(e,2,this.length);let i=this[e]|this[e+1]<<8;return i&32768?i|4294901760:i};a.prototype.readInt16BE=function(e,t){e=e>>>0,t||y(e,2,this.length);let i=this[e+1]|this[e]<<8;return i&32768?i|4294901760:i};a.prototype.readInt32LE=function(e,t){return e=e>>>0,t||y(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24};a.prototype.readInt32BE=function(e,t){return e=e>>>0,t||y(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]};a.prototype.readBigInt64LE=P(function(e){e=e>>>0,X(e,"offset");let t=this[e],i=this[e+7];(t===void 0||i===void 0)&&de(e,this.length-8);let n=this[e+4]+this[e+5]*2**8+this[e+6]*2**16+(i<<24);return(BigInt(n)<<BigInt(32))+BigInt(t+this[++e]*2**8+this[++e]*2**16+this[++e]*2**24)});a.prototype.readBigInt64BE=P(function(e){e=e>>>0,X(e,"offset");let t=this[e],i=this[e+7];(t===void 0||i===void 0)&&de(e,this.length-8);let n=(t<<24)+this[++e]*2**16+this[++e]*2**8+this[++e];return(BigInt(n)<<BigInt(32))+BigInt(this[++e]*2**24+this[++e]*2**16+this[++e]*2**8+i)});a.prototype.readFloatLE=function(e,t){return e=e>>>0,t||y(e,4,this.length),J.read(this,e,!0,23,4)};a.prototype.readFloatBE=function(e,t){return e=e>>>0,t||y(e,4,this.length),J.read(this,e,!1,23,4)};a.prototype.readDoubleLE=function(e,t){return e=e>>>0,t||y(e,8,this.length),J.read(this,e,!0,52,8)};a.prototype.readDoubleBE=function(e,t){return e=e>>>0,t||y(e,8,this.length),J.read(this,e,!1,52,8)};function A(r,e,t,i,n,o){if(!a.isBuffer(r))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>n||e<o)throw new RangeError('"value" argument is out of bounds');if(t+i>r.length)throw new RangeError("Index out of range")}a.prototype.writeUintLE=a.prototype.writeUIntLE=function(e,t,i,n){if(e=+e,t=t>>>0,i=i>>>0,!n){let l=Math.pow(2,8*i)-1;A(this,e,t,i,l,0)}let o=1,s=0;for(this[t]=e&255;++s<i&&(o*=256);)this[t+s]=e/o&255;return t+i};a.prototype.writeUintBE=a.prototype.writeUIntBE=function(e,t,i,n){if(e=+e,t=t>>>0,i=i>>>0,!n){let l=Math.pow(2,8*i)-1;A(this,e,t,i,l,0)}let o=i-1,s=1;for(this[t+o]=e&255;--o>=0&&(s*=256);)this[t+o]=e/s&255;return t+i};a.prototype.writeUint8=a.prototype.writeUInt8=function(e,t,i){return e=+e,t=t>>>0,i||A(this,e,t,1,255,0),this[t]=e&255,t+1};a.prototype.writeUint16LE=a.prototype.writeUInt16LE=function(e,t,i){return e=+e,t=t>>>0,i||A(this,e,t,2,65535,0),this[t]=e&255,this[t+1]=e>>>8,t+2};a.prototype.writeUint16BE=a.prototype.writeUInt16BE=function(e,t,i){return e=+e,t=t>>>0,i||A(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=e&255,t+2};a.prototype.writeUint32LE=a.prototype.writeUInt32LE=function(e,t,i){return e=+e,t=t>>>0,i||A(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=e&255,t+4};a.prototype.writeUint32BE=a.prototype.writeUInt32BE=function(e,t,i){return e=+e,t=t>>>0,i||A(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255,t+4};function Ut(r,e,t,i,n){Ot(e,i,n,r,t,7);let o=Number(e&BigInt(4294967295));r[t++]=o,o=o>>8,r[t++]=o,o=o>>8,r[t++]=o,o=o>>8,r[t++]=o;let s=Number(e>>BigInt(32)&BigInt(4294967295));return r[t++]=s,s=s>>8,r[t++]=s,s=s>>8,r[t++]=s,s=s>>8,r[t++]=s,t}function kt(r,e,t,i,n){Ot(e,i,n,r,t,7);let o=Number(e&BigInt(4294967295));r[t+7]=o,o=o>>8,r[t+6]=o,o=o>>8,r[t+5]=o,o=o>>8,r[t+4]=o;let s=Number(e>>BigInt(32)&BigInt(4294967295));return r[t+3]=s,s=s>>8,r[t+2]=s,s=s>>8,r[t+1]=s,s=s>>8,r[t]=s,t+8}a.prototype.writeBigUInt64LE=P(function(e,t=0){return Ut(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))});a.prototype.writeBigUInt64BE=P(function(e,t=0){return kt(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))});a.prototype.writeIntLE=function(e,t,i,n){if(e=+e,t=t>>>0,!n){let c=Math.pow(2,8*i-1);A(this,e,t,i,c-1,-c)}let o=0,s=1,l=0;for(this[t]=e&255;++o<i&&(s*=256);)e<0&&l===0&&this[t+o-1]!==0&&(l=1),this[t+o]=(e/s>>0)-l&255;return t+i};a.prototype.writeIntBE=function(e,t,i,n){if(e=+e,t=t>>>0,!n){let c=Math.pow(2,8*i-1);A(this,e,t,i,c-1,-c)}let o=i-1,s=1,l=0;for(this[t+o]=e&255;--o>=0&&(s*=256);)e<0&&l===0&&this[t+o+1]!==0&&(l=1),this[t+o]=(e/s>>0)-l&255;return t+i};a.prototype.writeInt8=function(e,t,i){return e=+e,t=t>>>0,i||A(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=e&255,t+1};a.prototype.writeInt16LE=function(e,t,i){return e=+e,t=t>>>0,i||A(this,e,t,2,32767,-32768),this[t]=e&255,this[t+1]=e>>>8,t+2};a.prototype.writeInt16BE=function(e,t,i){return e=+e,t=t>>>0,i||A(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=e&255,t+2};a.prototype.writeInt32LE=function(e,t,i){return e=+e,t=t>>>0,i||A(this,e,t,4,2147483647,-2147483648),this[t]=e&255,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4};a.prototype.writeInt32BE=function(e,t,i){return e=+e,t=t>>>0,i||A(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255,t+4};a.prototype.writeBigInt64LE=P(function(e,t=0){return Ut(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});a.prototype.writeBigInt64BE=P(function(e,t=0){return kt(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function St(r,e,t,i,n,o){if(t+i>r.length)throw new RangeError("Index out of range");if(t<0)throw new RangeError("Index out of range")}function _t(r,e,t,i,n){return e=+e,t=t>>>0,n||St(r,e,t,4,34028234663852886e22,-34028234663852886e22),J.write(r,e,t,i,23,4),t+4}a.prototype.writeFloatLE=function(e,t,i){return _t(this,e,t,!0,i)};a.prototype.writeFloatBE=function(e,t,i){return _t(this,e,t,!1,i)};function qt(r,e,t,i,n){return e=+e,t=t>>>0,n||St(r,e,t,8,17976931348623157e292,-17976931348623157e292),J.write(r,e,t,i,52,8),t+8}a.prototype.writeDoubleLE=function(e,t,i){return qt(this,e,t,!0,i)};a.prototype.writeDoubleBE=function(e,t,i){return qt(this,e,t,!1,i)};a.prototype.copy=function(e,t,i,n){if(!a.isBuffer(e))throw new TypeError("argument should be a Buffer");if(i||(i=0),!n&&n!==0&&(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n<i&&(n=i),n===i||e.length===0||this.length===0)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(i<0||i>=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t<n-i&&(n=e.length-t+i);let o=n-i;return this===e&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(t,i,n):Uint8Array.prototype.set.call(e,this.subarray(i,n),t),o};a.prototype.fill=function(e,t,i,n){if(typeof e=="string"){if(typeof t=="string"?(n=t,t=0,i=this.length):typeof i=="string"&&(n=i,i=this.length),n!==void 0&&typeof n!="string")throw new TypeError("encoding must be a string");if(typeof n=="string"&&!a.isEncoding(n))throw new TypeError("Unknown encoding: "+n);if(e.length===1){let s=e.charCodeAt(0);(n==="utf8"&&s<128||n==="latin1")&&(e=s)}}else typeof e=="number"?e=e&255:typeof e=="boolean"&&(e=Number(e));if(t<0||this.length<t||this.length<i)throw new RangeError("Out of range index");if(i<=t)return this;t=t>>>0,i=i===void 0?this.length:i>>>0,e||(e=0);let o;if(typeof e=="number")for(o=t;o<i;++o)this[o]=e;else{let s=a.isBuffer(e)?e:a.from(e,n),l=s.length;if(l===0)throw new TypeError('The value "'+e+'" is invalid for argument "value"');for(o=0;o<i-t;++o)this[o+t]=s[o%l]}return this};var Y={};function ot(r,e,t){Y[r]=class extends t{constructor(){super(),Object.defineProperty(this,"message",{value:e.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${r}]`,this.stack,delete this.name}get code(){return r}set code(n){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:n,writable:!0})}toString(){return`${this.name} [${r}]: ${this.message}`}}}ot("ERR_BUFFER_OUT_OF_BOUNDS",function(r){return r?`${r} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError);ot("ERR_INVALID_ARG_TYPE",function(r,e){return`The "${r}" argument must be of type number. Received type ${typeof e}`},TypeError);ot("ERR_OUT_OF_RANGE",function(r,e,t){let i=`The value of "${r}" is out of range.`,n=t;return Number.isInteger(t)&&Math.abs(t)>2**32?n=Rt(String(t)):typeof t=="bigint"&&(n=String(t),(t>BigInt(2)**BigInt(32)||t<-(BigInt(2)**BigInt(32)))&&(n=Rt(n)),n+="n"),i+=` It must be ${e}. Received ${n}`,i},RangeError);function Rt(r){let e="",t=r.length,i=r[0]==="-"?1:0;for(;t>=i+4;t-=3)e=`_${r.slice(t-3,t)}${e}`;return`${r.slice(0,t)}${e}`}function Xr(r,e,t){X(e,"offset"),(r[e]===void 0||r[e+t]===void 0)&&de(e,r.length-(t+1))}function Ot(r,e,t,i,n,o){if(r>t||r<e){let s=typeof e=="bigint"?"n":"",l;throw o>3?e===0||e===BigInt(0)?l=`>= 0${s} and < 2${s} ** ${(o+1)*8}${s}`:l=`>= -(2${s} ** ${(o+1)*8-1}${s}) and < 2 ** ${(o+1)*8-1}${s}`:l=`>= ${e}${s} and <= ${t}${s}`,new Y.ERR_OUT_OF_RANGE("value",l,r)}Xr(i,n,o)}function X(r,e){if(typeof r!="number")throw new Y.ERR_INVALID_ARG_TYPE(e,"number",r)}function de(r,e,t){throw Math.floor(r)!==r?(X(r,t),new Y.ERR_OUT_OF_RANGE(t||"offset","an integer",r)):e<0?new Y.ERR_BUFFER_OUT_OF_BOUNDS:new Y.ERR_OUT_OF_RANGE(t||"offset",`>= ${t?1:0} and <= ${e}`,r)}var Zr=/[^+/0-9A-Za-z-_]/g;function ei(r){if(r=r.split("=")[0],r=r.trim().replace(Zr,""),r.length<2)return"";for(;r.length%4!==0;)r=r+"=";return r}function rt(r,e){e=e||1/0;let t,i=r.length,n=null,o=[];for(let s=0;s<i;++s){if(t=r.charCodeAt(s),t>55295&&t<57344){if(!n){if(t>56319){(e-=3)>-1&&o.push(239,191,189);continue}else if(s+1===i){(e-=3)>-1&&o.push(239,191,189);continue}n=t;continue}if(t<56320){(e-=3)>-1&&o.push(239,191,189),n=t;continue}t=(n-55296<<10|t-56320)+65536}else n&&(e-=3)>-1&&o.push(239,191,189);if(n=null,t<128){if((e-=1)<0)break;o.push(t)}else if(t<2048){if((e-=2)<0)break;o.push(t>>6|192,t&63|128)}else if(t<65536){if((e-=3)<0)break;o.push(t>>12|224,t>>6&63|128,t&63|128)}else if(t<1114112){if((e-=4)<0)break;o.push(t>>18|240,t>>12&63|128,t>>6&63|128,t&63|128)}else throw new Error("Invalid code point")}return o}function ti(r){let e=[];for(let t=0;t<r.length;++t)e.push(r.charCodeAt(t)&255);return e}function ri(r,e){let t,i,n,o=[];for(let s=0;s<r.length&&!((e-=2)<0);++s)t=r.charCodeAt(s),i=t>>8,n=t%256,o.push(n),o.push(i);return o}function Pt(r){return Ze.toByteArray(ei(r))}function Se(r,e,t,i){let n;for(n=0;n<i&&!(n+t>=e.length||n>=r.length);++n)e[n+t]=r[n];return n}function U(r,e){return r instanceof e||r!=null&&r.constructor!=null&&r.constructor.name!=null&&r.constructor.name===e.name}function st(r){return r!==r}var ii=function(){let r="0123456789abcdef",e=new Array(256);for(let t=0;t<16;++t){let i=t*16;for(let n=0;n<16;++n)e[i+n]=r[t]+r[n]}return e}();function P(r){return typeof BigInt>"u"?ni:r}function ni(){throw new Error("BigInt not supported")}});var Wt=ue((ao,Ne)=>{"use strict";var{AbortController:Kt,AbortSignal:li}=typeof self<"u"?self:typeof window<"u"?window:void 0;Ne.exports=Kt;Ne.exports.AbortSignal=li;Ne.exports.default=Kt});var Ai={};De(Ai,{ClientBuilder:()=>oe,Process:()=>Le,createAuthMiddlewareForAnonymousSessionFlow:()=>ee,createAuthMiddlewareForClientCredentialsFlow:()=>te,createAuthMiddlewareForExistingTokenFlow:()=>re,createAuthMiddlewareForPasswordFlow:()=>ie,createAuthMiddlewareForRefreshTokenFlow:()=>ne,createClient:()=>K,createConcurrentModificationMiddleware:()=>he,createCorrelationIdMiddleware:()=>fe,createHttpMiddleware:()=>pe,createLoggerMiddleware:()=>we,createQueueMiddleware:()=>me,createUserAgentMiddleware:()=>ye});var W=q(le());var ct={};De(ct,{createAuthMiddlewareForAnonymousSessionFlow:()=>ee,createAuthMiddlewareForClientCredentialsFlow:()=>te,createAuthMiddlewareForExistingTokenFlow:()=>re,createAuthMiddlewareForPasswordFlow:()=>ie,createAuthMiddlewareForRefreshTokenFlow:()=>ne,createConcurrentModificationMiddleware:()=>he,createCorrelationIdMiddleware:()=>fe,createErrorMiddleware:()=>lt,createHttpMiddleware:()=>pe,createLoggerMiddleware:()=>we,createQueueMiddleware:()=>me,createUserAgentMiddleware:()=>ye});var Dt=q(le());var I={};De(I,{CONCURRENCT_REQUEST:()=>or,CTP_API_URL:()=>sr,CTP_AUTH_URL:()=>ar,DEFAULT_HEADERS:()=>He,HEADERS_CONTENT_TYPES:()=>nr});var nr=["application/json","application/graphql"],or=20,sr="https://api.europe-west1.gcp.commercetools.com",ar="https://auth.europe-west1.gcp.commercetools.com",He=["content-type","access-control-allow-origin","access-control-allow-headers","access-control-allow-methods","access-control-expose-headers","access-control-max-ag","x-correlation-id","server-timing","date","server","transfer-encoding","access-control-max-age","content-encoding","x-envoy-upstream-service-time","via","alt-svc","connection"];function S(r,e,t={}){this.status=this.statusCode=this.code=r,this.message=e,Object.assign(this,t),this.name=this.constructor.name,this.constructor.prototype.__proto__=Error.prototype,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}function ft(...r){S.call(this,0,...r)}function pt(...r){S.call(this,...r)}function ur(...r){S.call(this,400,...r)}function lr(...r){S.call(this,401,...r)}function cr(...r){S.call(this,403,...r)}function dr(...r){S.call(this,404,...r)}function hr(...r){S.call(this,409,...r)}function fr(...r){S.call(this,500,...r)}function pr(...r){S.call(this,503,...r)}function $e(r){switch(r){case 0:return ft;case 400:return ur;case 401:return lr;case 403:return cr;case 404:return dr;case 409:return hr;case 500:return fr;case 503:return pr;default:return}}function wr({statusCode:r,message:e,...t}){let i=e||"Unexpected non-JSON error response";r===404&&(i=`URI not found: ${t.originalRequest?.uri||t.uri}`);let n=$e(r);return n?new n(i,t):new pt(r,i,t)}var Me=wr;function mr(r,e){return[503,...r].includes(e?.status||e?.statusCode)}async function yr(r,e){async function t(){return await r({...e,headers:{...e.headers}})}return t().catch(i=>Promise.reject(i))}async function Q(r){let{url:e,httpClient:t,...i}=r;return await yr(async o=>{let{enableRetry:s,retryConfig:l,abortController:c}=i,{retryCodes:h=[],maxDelay:u=1/0,maxRetries:d=3,backoff:f=!0,retryDelay:p=200,retryOnAbort:w=!0}=l||{},E,B,g=0;ve(h);async function M(){return t(e,{...i,...o,headers:{...i.headers,...o.headers,"Accept-Encoding":"application/json"},...i.body?{data:i.body}:{},withCredentials:o.credentialsMode==="include"})}async function C(){let k=async(j,se)=>{let ae={};try{if(ae=await M(),ae.status>299&&mr(j,ae))return{_response:ae,shouldRetry:!0}}catch(je){if(je.name.includes("AbortError")&&se)return{_response:je,shouldRetry:!0};throw je}return{_response:ae,shouldRetry:!1}},L=w||!c||!c.signal,{_response:ge,shouldRetry:V}=await k(h,L);for(;s&&V&&g<d;){g++;let j=await k(h,L);ge=j._response,V=j.shouldRetry;let se=Ee({retryCount:g,retryDelay:p,maxRetries:d,backoff:f,maxDelay:u});await Ce(se)}return ge}let m=await C();try{m.text&&typeof m.text=="function"?(E=await m.text(),B=JSON.parse(E)):B=m.data||m}catch{B=E}return{data:B,retryCount:g,statusCode:m.status||m.statusCode||B.statusCode,headers:m.headers}},{})}var x=[];for(Ae=0;Ae<256;++Ae)x.push((Ae+256).toString(16).slice(1));var Ae;function wt(r,e=0){return(x[r[e+0]]+x[r[e+1]]+x[r[e+2]]+x[r[e+3]]+"-"+x[r[e+4]]+x[r[e+5]]+"-"+x[r[e+6]]+x[r[e+7]]+"-"+x[r[e+8]]+x[r[e+9]]+"-"+x[r[e+10]]+x[r[e+11]]+x[r[e+12]]+x[r[e+13]]+x[r[e+14]]+x[r[e+15]]).toLowerCase()}var Re,gr=new Uint8Array(16);function Ke(){if(!Re&&(Re=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!Re))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return Re(gr)}var xr=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),We={randomUUID:xr};function Mr(r,e,t){if(We.randomUUID&&!e&&!r)return We.randomUUID();r=r||{};var i=r.random||(r.rng||Ke)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,e){t=t||0;for(var n=0;n<16;++n)e[t+n]=i[n];return e}return wt(i)}var Ve=Mr;function Te(){return Ve()}function Er(r){return He.reduce((e,t)=>{let i=r[t]?r[t]:typeof r.get=="function"?r.get(t):null;return i&&(e[t]=i),e},{})}function b(r){if(!r)return null;if(r.raw&&typeof r.raw=="function")return r.raw();if(!r.forEach)return Er(r);let e={};return r.forEach((t,i)=>e[i]=t)}function ce(r){return r!=null&&r.constructor!=null&&typeof r.constructor.isBuffer=="function"&&r.constructor.isBuffer(r)}function H(r){let e=Object.assign({},r);return e?.headers&&(e.headers.Authorization&&(e.headers.Authorization="Bearer ********"),e.headers.authorization&&(e.headers.authorization="Bearer ********")),e}function G(r,e){return{...e,headers:{...e.headers,Authorization:`Bearer ${r}`}}}var ze=["ACL","BIND","CHECKOUT","CONNECT","COPY","DELETE","GET","HEAD","LINK","LOCK","M-SEARCH","MERGE","MKACTIVITY","MKCALENDAR","MKCOL","MOVE","NOTIFY","OPTIONS","PATCH","POST","PROPFIND","PROPPATCH","PURGE","PUT","REBIND","REPORT","SEARCH","SOURCE","SUBSCRIBE","TRACE","UNBIND","UNLINK","UNLOCK","UNSUBSCRIBE"];function Ee({retryCount:r,retryDelay:e,backoff:t,maxDelay:i}){return t&&r!==0?Math.min(Math.round((Math.random()+1)*e*2**r),i):e}Math.min(Math.round((Math.random()+1)*200*2**10),1/0);function Ce(r){return new Promise(e=>{setTimeout(e,r)})}function O(r){if(!r?.credentials?.clientId||!r.projectKey||!r.host)throw new Error("Missing required options.");return{clientId:r.credentials.clientId,host:r.host,projectKey:r.projectKey}}function Be(r){return Date.now()+r*1e3-5*60*1e3}function R(r){let e=r;return{get:t=>e,set:(t,i)=>{e=t}}}function mt(r){return typeof r<"u"&&r!==null}function Cr(r){return mt(r)?typeof r=="string"?r:Object.fromEntries(Object.entries(r).filter(([e,t])=>![null,void 0,""].includes(t))):""}function Ar(r){let e={},t=new URLSearchParams(r);for(let i of t.keys())t.getAll(i).length>1?e[i]=t.getAll(i):e[i]=t.get(i);return e}function Rr(r){if(r=Cr(r),!r)return"";let e=new URLSearchParams(r);for(let[t,i]of Object.entries(r))Array.isArray(i)&&(e.delete(t),i.filter(mt).forEach(n=>e.append(t,n)));return e.toString()}function Qe(r,e=Ar){return e(r)}function Ie(r,e=Rr){return e(r)}var Tr=()=>typeof window<"u"&&window.document&&window.document.nodeType===9;function Br(){if(Tr())return window.navigator.userAgent;let r=process?.version.slice(1)||"unknow",e=`(${process.platform}; ${process.arch})`;return`node.js/${r} ${e}`}function be(r){let e=null,t=null;if(!r)throw new Error("Missing required option `name`");let i=r.version?`${r.name}/${r.version}`:r.name;r.libraryName&&!r.libraryVersion?e=r.libraryName:r.libraryName&&r.libraryVersion&&(e=`${r.libraryName}/${r.libraryVersion}`),r.contactUrl&&!r.contactEmail?t=`(+${r.contactUrl})`:!r.contactUrl&&r.contactEmail?t=`(+${r.contactEmail})`:r.contactUrl&&r.contactEmail&&(t=`(+${r.contactUrl}; +${r.contactEmail})`);let n=Br(),o=r.customAgent||"";return[i,n,e,t,o].filter(Boolean).join(" ")}function Ge(r){if(!r.host)throw new Error("Request `host` or `url` is missing or invalid, please pass in a valid host e.g `host: http://a-valid-host-url`");if(!r.httpClient&&typeof r.httpClient!="function")throw new Error("An `httpClient` is not available, please pass in a `fetch` or `axios` instance as an option or have them globally available.")}function ve(r){if(!Array.isArray(r))throw new Error("`retryCodes` option must be an array of retry status (error) codes and/or messages.")}function Ye(r){if(!r)throw new Error("Missing required options");if(r.middlewares&&!Array.isArray(r.middlewares))throw new Error("Middlewares should be an array");if(!r.middlewares||!Array.isArray(r.middlewares)||!r.middlewares.length)throw new Error("You need to provide at least one middleware")}function Fe(r,e,t={allowedMethods:ze}){if(!e)throw new Error(`The "${r}" function requires a "Request" object as an argument. See https://commercetools.github.io/nodejs/sdk/Glossary.html#clientrequest`);if(typeof e.uri!="string")throw new Error(`The "${r}" Request object requires a valid uri. See https://commercetools.github.io/nodejs/sdk/Glossary.html#clientrequest`);if(!t.allowedMethods.includes(e.method))throw new Error(`The "${r}" Request object requires a valid method. See https://commercetools.github.io/nodejs/sdk/Glossary.html#clientrequest`)}var qe=q(_e());function at(r){if(!r)throw new Error("Missing required options");if(!r.host)throw new Error("Missing required option (host)");if(!r.projectKey)throw new Error("Missing required option (projectKey)");if(!r.credentials)throw new Error("Missing required option (credentials)");let{clientId:e,clientSecret:t}=r.credentials||{};if(!(e&&t))throw new Error("Missing required credentials (clientId, clientSecret)");let i=r.scopes?r.scopes.join(" "):void 0,n=qe.Buffer.from(`${e}:${t}`).toString("base64"),o=r.oauthUri||"/oauth/token",s=r.host.replace(/\/$/,"")+o,l=`grant_type=client_credentials${i?`&scope=${i}`:""}`;return{url:s,body:l,basicAuth:n}}function Nt(r){if(!r)throw new Error("Missing required options");if(!r.projectKey)throw new Error("Missing required option (projectKey)");let e=r.projectKey;r.oauthUri=r.oauthUri||`/oauth/${e}/anonymous/token`;let t=at(r);return r.credentials.anonymousId&&(t.body+=`&anonymous_id=${r.credentials.anonymousId}`),{...t}}function Oe(r){if(!r)throw new Error("Missing required options");if(!r.host)throw new Error("Missing required option (host)");if(!r.projectKey)throw new Error("Missing required option (projectKey)");if(!r.credentials)throw new Error("Missing required option (credentials)");if(!r.refreshToken)throw new Error("Missing required option (refreshToken)");let{clientId:e,clientSecret:t}=r.credentials;if(!(e&&t))throw new Error("Missing required credentials (clientId, clientSecret)");let i=qe.Buffer.from(`${e}:${t}`).toString("base64"),n=r.oauthUri||"/oauth/token",o=r.host.replace(/\/$/,"")+n,s=`grant_type=refresh_token&refresh_token=${encodeURIComponent(r.refreshToken)}`;return{basicAuth:i,url:o,body:s}}function Lt(r){if(!r)throw new Error("Missing required options");if(!r.host)throw new Error("Missing required option (host)");if(!r.projectKey)throw new Error("Missing required option (projectKey)");if(!r.credentials)throw new Error("Missing required option (credentials)");let{clientId:e,clientSecret:t,user:i}=r.credentials,n=r.projectKey;if(!(e&&t&&i))throw new Error("Missing required credentials (clientId, clientSecret, user)");let{username:o,password:s}=i;if(!(o&&s))throw new Error("Missing required user credentials (username, password)");let l=(r.scopes||[]).join(" "),c=l?`&scope=${l}`:"",h=qe.Buffer.from(`${e}:${t}`).toString("base64"),u=r.oauthUri||`/oauth/${n}/customers/token`,d=r.host.replace(/\/$/,"")+u,f=`grant_type=password&username=${encodeURIComponent(o)}&password=${encodeURIComponent(s)}${c}`;return{basicAuth:h,url:d,body:f}}var jt=q(_e());async function N(r){let{request:e,httpClient:t,tokenCache:i,tokenCacheKey:n,userOption:o,next:s}=r,l=r.url,c=r.body,h=r.basicAuth,u=r.pendingTasks;if(!t||typeof t!="function")throw new Error("an `httpClient` is not available, please pass in a `fetch` or `axios` instance as an option or have them globally available.");let d=i.get(n);if(d&&d.token&&Date.now()<d.expirationTime)return{...G(d.token,e)};if(u.push({request:e,next:s}),d&&d.refreshToken&&(!d.token||d.token&&Date.now()>d.expirationTime)){if(!o)throw new Error("Missing required options.");let p={...Oe({...o,refreshToken:d.refreshToken})};l=p.url,c=p.body,h=p.basicAuth}let f;try{if(f=await Q({url:l,method:"POST",headers:{Authorization:`Basic ${h}`,"Content-Type":"application/x-www-form-urlencoded","Conent-Length":jt.Buffer.byteLength(c).toString()},httpClient:t,body:c}),f.statusCode>=200&&f.statusCode<300){let{access_token:w,expires_in:E,refresh_token:B}=f?.data,g=Be(E);i.set({token:w,expirationTime:g,refreshToken:B});let M=u.slice();if(u=[],M.length===1)return G(w,M.pop().request);for(let C=0;C<M.length;C++){let m=M[C],k=G(w,m.request);m.next(k)}return}let p=new Error(f.data.message?f.data.message:JSON.stringify(f.data));e.reject({...e,headers:{...e.headers},response:{statusCode:f.statusCode||f.data.statusCode,error:{error:p,body:f}}})}catch(p){return{...e,headers:{...e.headers},response:{body:null,statusCode:p.statusCode||0,error:{...f,error:p,body:f}}}}}function ee(r){let e=[],t=R(!1),i=r.tokenCache||R({token:"",expirationTime:-1}),n=O(r);return o=>async s=>{if(s.headers&&(s.headers.Authorization||s.headers.authorization))return o(s);let l={request:s,requestState:t,tokenCache:i,pendingTasks:e,tokenCacheKey:n,httpClient:r.httpClient||Dt.default,...Nt(r),userOption:r,next:o},c=await N(l);if(c)return o(c)}}var _n=new Error("timeout while waiting for mutex to become available"),qn=new Error("mutex already locked"),oi=new Error("request for lock canceled"),si=function(r,e,t,i){function n(o){return o instanceof t?o:new t(function(s){s(o)})}return new(t||(t=Promise))(function(o,s){function l(u){try{h(i.next(u))}catch(d){s(d)}}function c(u){try{h(i.throw(u))}catch(d){s(d)}}function h(u){u.done?o(u.value):n(u.value).then(l,c)}h((i=i.apply(r,e||[])).next())})},ut=class{constructor(e,t=oi){this._value=e,this._cancelError=t,this._queue=[],this._weightedWaiters=[]}acquire(e=1,t=0){if(e<=0)throw new Error(`invalid weight ${e}: must be positive`);return new Promise((i,n)=>{let o={resolve:i,reject:n,weight:e,priority:t},s=Ht(this._queue,l=>t<=l.priority);s===-1&&e<=this._value?this._dispatchItem(o):this._queue.splice(s+1,0,o)})}runExclusive(e){return si(this,arguments,void 0,function*(t,i=1,n=0){let[o,s]=yield this.acquire(i,n);try{return yield t(o)}finally{s()}})}waitForUnlock(e=1,t=0){if(e<=0)throw new Error(`invalid weight ${e}: must be positive`);return this._couldLockImmediately(e,t)?Promise.resolve():new Promise(i=>{this._weightedWaiters[e-1]||(this._weightedWaiters[e-1]=[]),ai(this._weightedWaiters[e-1],{resolve:i,priority:t})})}isLocked(){return this._value<=0}getValue(){return this._value}setValue(e){this._value=e,this._dispatchQueue()}release(e=1){if(e<=0)throw new Error(`invalid weight ${e}: must be positive`);this._value+=e,this._dispatchQueue()}cancel(){this._queue.forEach(e=>e.reject(this._cancelError)),this._queue=[]}_dispatchQueue(){for(this._drainUnlockWaiters();this._queue.length>0&&this._queue[0].weight<=this._value;)this._dispatchItem(this._queue.shift()),this._drainUnlockWaiters()}_dispatchItem(e){let t=this._value;this._value-=e.weight,e.resolve([t,this._newReleaser(e.weight)])}_newReleaser(e){let t=!1;return()=>{t||(t=!0,this.release(e))}}_drainUnlockWaiters(){if(this._queue.length===0)for(let e=this._value;e>0;e--){let t=this._weightedWaiters[e-1];t&&(t.forEach(i=>i.resolve()),this._weightedWaiters[e-1]=[])}else{let e=this._queue[0].priority;for(let t=this._value;t>0;t--){let i=this._weightedWaiters[t-1];if(!i)continue;let n=i.findIndex(o=>o.priority<=e);(n===-1?i:i.splice(0,n)).forEach(o=>o.resolve())}}}_couldLockImmediately(e,t){return(this._queue.length===0||this._queue[0].priority<t)&&e<=this._value}};function ai(r,e){let t=Ht(r,i=>e.priority<=i.priority);r.splice(t+1,0,e)}function Ht(r,e){for(let t=r.length-1;t>=0;t--)if(e(r[t]))return t;return-1}var ui=function(r,e,t,i){function n(o){return o instanceof t?o:new t(function(s){s(o)})}return new(t||(t=Promise))(function(o,s){function l(u){try{h(i.next(u))}catch(d){s(d)}}function c(u){try{h(i.throw(u))}catch(d){s(d)}}function h(u){u.done?o(u.value):n(u.value).then(l,c)}h((i=i.apply(r,e||[])).next())})},Pe=class{constructor(e){this._semaphore=new ut(1,e)}acquire(){return ui(this,arguments,void 0,function*(e=0){let[,t]=yield this._semaphore.acquire(1,e);return t})}runExclusive(e,t=0){return this._semaphore.runExclusive(()=>e(),1,t)}isLocked(){return this._semaphore.isLocked()}waitForUnlock(e=0){return this._semaphore.waitForUnlock(1,e)}release(){this._semaphore.isLocked()&&this._semaphore.release()}cancel(){return this._semaphore.cancel()}};var $t=q(le());function te(r){let e=new Pe,t=[],i=r.tokenCache||R({token:"",expirationTime:-1}),n=O(r);return o=>async s=>{if(s.headers&&(s.headers.Authorization||s.headers.authorization))return o(s);let l={request:s,requestState:e,tokenCache:i,pendingTasks:t,tokenCacheKey:n,httpClient:r.httpClient||$t.default,...at(r),next:o},c;try{await e.acquire(),c=await N(l)}finally{e.release()}if(c)return o(c)}}function re(r,e){return t=>async i=>{if(typeof r!="string")throw new Error("authorization must be a string");let n=e?.force===void 0?!0:e.force;if(!r||i.headers&&(i.headers.Authorization||i.headers.authorization)&&n===!1)return t(i);let o={...i,headers:{...i.headers,Authorization:r}};return t(o)}}var vt=q(le());function ie(r){let e=r.tokenCache||R({token:"",expirationTime:-1}),t=[],i=R(!1),n=O(r);return o=>async s=>{if(s.headers&&(s.headers.Authorization||s.headers.authorization))return o(s);let l={request:s,requestState:i,tokenCache:e,pendingTasks:t,tokenCacheKey:n,httpClient:r.httpClient||vt.default,...Lt(r),userOption:r,next:o},c=await N(l);if(c)return o(c)}}function ne(r){let e=r.tokenCache||R({token:"",tokenCacheKey:null}),t=[],i=R(!1);return n=>async o=>{if(o.headers&&(o.headers.Authorization||o.headers.authorization))return n(o);let s={request:o,requestState:i,tokenCache:e,pendingTasks:t,httpClient:r.httpClient||fetch,...Oe(r),next:n},l=await N(s);if(l)return n(l)}}function he(r){return e=>async t=>{let i=await e(t);if(i.statusCode==409){let n=i.error.body?.errors?.[0]?.currentVersion;if(n)return r?t.body=await r(n,t,i):t.body=typeof t.body=="string"?{...JSON.parse(t.body),version:n}:{...t.body,version:n},e(t)}return i}}function fe(r){return e=>t=>{let i={...t,headers:{...t.headers,"X-Correlation-ID":r.generate&&typeof r.generate=="function"?r.generate():Te()}};return e(i)}}function lt(r){return e=>async t=>{let i=await e(t);if(i.error){let{error:n}=i;return{...i,statusCode:n.statusCode||0,headers:n.headers||b({}),error:{...n,body:n.data||n}}}return i}}var Vt=q(Wt()),zt=q(_e());async function ci({url:r,httpClient:e,clientOptions:t}){let i,{timeout:n,request:o,abortController:s,maskSensitiveHeaderData:l,includeRequestInErrorResponse:c,includeResponseHeaders:h}=t;try{n&&(i=setTimeout(()=>{s.abort()},n));let u=await Q({url:r,...t,httpClient:e,method:t.method,...t.body?{body:t.body}:{}});if(h||(u.headers=null),u.statusCode>=200&&u.statusCode<300)return t.method=="HEAD"?{body:null,statusCode:u.statusCode,retryCount:u.retryCount,headers:b(u.headers)}:{body:u.data,statusCode:u.statusCode,retryCount:u.retryCount,headers:b(u.headers)};let d=Me({message:u?.data?.message||u?.message,statusCode:u.statusCode||u?.data?.statusCode,headers:b(u.headers),method:t.method,body:u.data,retryCount:u.retryCount,...c?{originalRequest:l?H(o):o}:{uri:o.uri}});return{body:u.data,code:u.statusCode,statusCode:u.statusCode,headers:b(u.headers),error:d}}catch(u){let d=h?b(u.response?.headers):null,f=u.response?.status||u.response?.data0||0,p=u.response?.data?.message,w=Me({statusCode:f,code:f,status:f,message:p||u.message,headers:d,body:u.response?.data||u,error:u.response?.data,...c?{originalRequest:l?H(o):o}:{uri:o.uri}});return{body:w,error:w}}finally{clearTimeout(i)}}function pe(r){Ge(r);let{host:e,credentialsMode:t,httpClient:i,timeout:n,enableRetry:o,retryConfig:s,getAbortController:l,includeOriginalRequest:c,includeRequestInErrorResponse:h=!0,includeResponseHeaders:u=!0,maskSensitiveHeaderData:d,httpClientOptions:f}=r;return p=>async w=>{let E;(n||l)&&(E=(l?l():null)||new Vt.default);let B=e.replace(/\/$/,"")+w.uri,g={...w.headers};Object.prototype.hasOwnProperty.call(g,"Content-Type")||Object.prototype.hasOwnProperty.call(g,"content-type")||(g["Content-Type"]="application/json"),g["Content-Type"]===null&&delete g["Content-Type"];let M=I.HEADERS_CONTENT_TYPES.indexOf(g["Content-Type"])>-1&&typeof w.body=="string"||ce(w.body)?w.body:JSON.stringify(w.body||void 0);M&&(typeof M=="string"||ce(M))&&(g["Content-Length"]=zt.Buffer.byteLength(M).toString());let C={enableRetry:o,retryConfig:s,request:w,method:w.method,headers:g,includeRequestInErrorResponse:h,maskSensitiveHeaderData:d,includeResponseHeaders:u,...f};t&&(C.credentialsMode=t),E&&(C.signal=E.signal),n&&(C.timeout=n,C.abortController=E),M&&(C.body=M);let m=await ci({url:B,clientOptions:C,httpClient:i}),k={...w,includeOriginalRequest:c,maskSensitiveHeaderData:d,response:m};return p(k)}}function we(r){return e=>async t=>{let i=await e(t),n=Object.assign({},i),{loggerFn:o=console.log}=r||{};return o&&typeof o=="function"&&o(i),n}}function me({concurrency:r=20}){let e=0,t=[],i=o=>{if(e--,t.length&&e<=r){let s=t.shift();return e++,o(s.request)}},n=({request:o})=>t.push({request:o});return o=>s=>{let l={...s,resolve(c){s.resolve(c),i(o)},reject(c){s.reject(c),i(o)}};if(n({request:l}),e<r){e++;let c=t.shift();return o(c.request)}}}var Qt={name:"@commercetools/ts-client",version:"2.0.3",engines:{node:">=14"},description:"commercetools Composable Commerce TypeScript SDK client.",keywords:["commercetools","composable commerce","sdk","typescript","client","middleware","http","oauth","auth"],homepage:"https://github.com/commercetools/commercetools-sdk-typescript",license:"MIT",directories:{lib:"lib",test:"test"},publishConfig:{access:"public"},repository:{type:"git",url:"git+https://github.com/commercetools/commercetools-sdk-typescript.git"},bugs:{url:"https://github.com/commercetools/commercetools-sdk-typescript/issues"},dependencies:{"abort-controller":"3.0.0","async-mutex":"^0.5.0",buffer:"^6.0.3","node-fetch":"^2.6.1",uuid:"10.0.0"},files:["dist","CHANGELOG.md"],author:"Chukwuemeka Ajima <meeky.ae@gmail.com>",main:"dist/commercetools-ts-client.cjs.js",module:"dist/commercetools-ts-client.esm.js",browser:{"./dist/commercetools-ts-client.cjs.js":"./dist/commercetools-ts-client.browser.cjs.js","./dist/commercetools-ts-client.esm.js":"./dist/commercetools-ts-client.browser.esm.js"},devDependencies:{"common-tags":"1.8.2",dotenv:"16.4.5",jest:"29.7.0",nock:"12.0.3","organize-imports-cli":"0.10.0"},scripts:{organize_imports:"find src -type f -name '*.ts' | xargs organize-imports-cli",postbuild:"yarn organize_imports",post_process_generate:"yarn organize_imports",docs:"typedoc --out docs"}};function ye(r){return e=>async t=>{let i=be({...r,name:`${r.name?r.name+"/":""}commercetools-sdk-javascript-v3/${Qt.version}`}),n={...t,headers:{...t.headers,"User-Agent":i}};return e(n)}}function hi({middlewares:r}){return r.length===1?r[0]:r.slice().reduce((t,i)=>(...n)=>t(i.apply(null,n)))}var Gt;function Le(r,e,t){if(Fe("process",r,{allowedMethods:["GET"]}),typeof e!="function")throw new Error('The "process" function accepts a "Function" as a second argument that returns a Promise. See https://commercetools.github.io/nodejs/sdk/api/sdkClient.html#processrequest-processfn-options');let i={total:Number.POSITIVE_INFINITY,accumulate:!0,...t};return new Promise((n,o)=>{let s,l="";if(r&&r.uri){let[p,w]=r.uri.split("?");s=p,l=w}let h={limit:20,...{...Qe(l)}},u=i.total,d=!1,f=async(p,w=[])=>{let E=h.limit<u?h.limit:u,B=Ie({...h,limit:E}),g={sort:"id asc",withTotal:!1,...p?{where:`id > "${p}"`}:{}},M=Ie(g),C={...r,uri:`${s}?${M}&${B}`};try{let m=await K(Gt).execute(C),{results:k,count:L}=m?.body||{};if(!L&&d)return n(w||[]);let ge=await Promise.resolve(e(m)),V;if(d=!0,i.accumulate&&(V=w.concat(ge||[])),u-=L,L<h.limit||!u)return n(V||[]);let j=k[L-1],se=j&&j.id;f(se,V)}catch(m){o(m)}};f()})}function K(r){Gt=r,Ye(r);let e=!1,t={async resolve(n){let{response:o,includeOriginalRequest:s,maskSensitiveHeaderData:l,...c}=n,{retryCount:h,...u}=o;return e=l,{body:null,error:null,reject:n.reject,resolve:n.resolve,...u,...s?{originalRequest:c}:{},...o?.retryCount?{retryCount:o.retryCount}:{}}}},i=hi(r)(t.resolve);return{process:Le,execute(n){return Fe("exec",n),new Promise((o,s)=>{i({reject:s,resolve:o,...n}).then(l=>{if(l.error)return s(l.error);l.originalRequest&&e&&(l.originalRequest=H(l.originalRequest)),o(l)}).catch(s)})}}}var{createAuthMiddlewareForPasswordFlow:fi,createAuthMiddlewareForAnonymousSessionFlow:pi,createAuthMiddlewareForClientCredentialsFlow:wi,createAuthMiddlewareForRefreshTokenFlow:mi,createAuthMiddlewareForExistingTokenFlow:yi,createCorrelationIdMiddleware:gi,createHttpMiddleware:xi,createLoggerMiddleware:Mi,createQueueMiddleware:Ei,createUserAgentMiddleware:Yt,createConcurrentModificationMiddleware:Ci}=ct,oe=class{projectKey;authMiddleware;httpMiddleware;userAgentMiddleware;correlationIdMiddleware;loggerMiddleware;queueMiddleware;concurrentMiddleware;telemetryMiddleware;beforeMiddleware;afterMiddleware;middlewares=[];constructor(){this.userAgentMiddleware=Yt({})}withProjectKey(e){return this.projectKey=e,this}defaultClient(e,t,i,n,o,s){return this.withClientCredentialsFlow({host:i,projectKey:n||this.projectKey,credentials:t,scopes:o}).withHttpMiddleware({host:e,httpClient:s||W.default})}withAuthMiddleware(e){return this.authMiddleware=e,this}withMiddleware(e){return this.middlewares.push(e),this}withClientCredentialsFlow(e){return this.withAuthMiddleware(wi({host:e.host||I.CTP_AUTH_URL,projectKey:e.projectKey||this.projectKey,credentials:{clientId:e.credentials.clientId||null,clientSecret:e.credentials.clientSecret||null},oauthUri:e.oauthUri||null,scopes:e.scopes,httpClient:e.httpClient||W.default,...e}))}withPasswordFlow(e){return this.withAuthMiddleware(fi({host:e.host||I.CTP_AUTH_URL,projectKey:e.projectKey||this.projectKey,credentials:{clientId:e.credentials.clientId||null,clientSecret:e.credentials.clientSecret||null,user:{username:e.credentials.user.username||null,password:e.credentials.user.password||null}},httpClient:e.httpClient||W.default,...e}))}withAnonymousSessionFlow(e){return this.withAuthMiddleware(pi({host:e.host||I.CTP_AUTH_URL,projectKey:this.projectKey||e.projectKey,credentials:{clientId:e.credentials.clientId||null,clientSecret:e.credentials.clientSecret||null,anonymousId:e.credentials.anonymousId||null},httpClient:e.httpClient||W.default,...e}))}withRefreshTokenFlow(e){return this.withAuthMiddleware(mi({host:e.host||I.CTP_AUTH_URL,projectKey:this.projectKey||e.projectKey,credentials:{clientId:e.credentials.clientId||null,clientSecret:e.credentials.clientSecret||null},httpClient:e.httpClient||W.default,refreshToken:e.refreshToken||null,...e}))}withExistingTokenFlow(e,t){return this.withAuthMiddleware(yi(e,{force:t.force||!0,...t}))}withHttpMiddleware(e){return this.httpMiddleware=xi({host:e.host||I.CTP_API_URL,httpClient:e.httpClient||W.default,...e}),this}withUserAgentMiddleware(e){return this.userAgentMiddleware=Yt(e),this}withQueueMiddleware(e){return this.queueMiddleware=Ei({concurrency:e.concurrency||I.CONCURRENCT_REQUEST,...e}),this}withLoggerMiddleware(e){return this.loggerMiddleware=Mi(e),this}withCorrelationIdMiddleware(e){return this.correlationIdMiddleware=gi({generate:e?.generate,...e}),this}withConcurrentModificationMiddleware(e){return this.concurrentMiddleware=Ci(e?.concurrentModificationHandlerFn),this}withTelemetryMiddleware(e){let{createTelemetryMiddleware:t,...i}=e;return this.withUserAgentMiddleware({customAgent:i?.userAgent||"typescript-sdk-apm-middleware"}),this.telemetryMiddleware=t(i),this}withBeforeExecutionMiddleware(e){let{middleware:t,...i}=e||{};return this.beforeMiddleware=e.middleware(i),this}withAfterExecutionMiddleware(e){let{middleware:t,...i}=e||{};return this.afterMiddleware=e.middleware(i),this}build(){let e=this.middlewares.slice();return this.telemetryMiddleware&&e.push(this.telemetryMiddleware),this.correlationIdMiddleware&&e.push(this.correlationIdMiddleware),this.userAgentMiddleware&&e.push(this.userAgentMiddleware),this.authMiddleware&&e.push(this.authMiddleware),this.beforeMiddleware&&e.push(this.beforeMiddleware),this.queueMiddleware&&e.push(this.queueMiddleware),this.loggerMiddleware&&e.push(this.loggerMiddleware),this.concurrentMiddleware&&e.push(this.concurrentMiddleware),this.httpMiddleware&&e.push(this.httpMiddleware),this.afterMiddleware&&e.push(this.afterMiddleware),K({middlewares:e})}};return rr(Ai);})();
|
|
2
|
+
/*! Bundled license information:
|
|
3
|
+
|
|
4
|
+
ieee754/index.js:
|
|
5
|
+
(*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> *)
|
|
6
|
+
|
|
7
|
+
buffer/index.js:
|
|
8
|
+
(*!
|
|
9
|
+
* The buffer module from node.js, for the browser.
|
|
10
|
+
*
|
|
11
|
+
* @author Feross Aboukhadijeh <https://feross.org>
|
|
12
|
+
* @license MIT
|
|
13
|
+
*)
|
|
14
|
+
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"../../../../src/client","sources":["client.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,MAAM,EACN,aAAa,EACb,aAAa,EAMb,SAAS,EACT,cAAc,EACf,0BAAsB;AAmBvB,wBAAgB,OAAO,CACrB,OAAO,EAAE,aAAa,EACtB,EAAE,EAAE,SAAS,EACb,UAAU,CAAC,EAAE,cAAc,GAC1B,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAyF/B;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,WAAW,EAAE,aAAa,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"../../../../src/client","sources":["client.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,MAAM,EACN,aAAa,EACb,aAAa,EAMb,SAAS,EACT,cAAc,EACf,0BAAsB;AAmBvB,wBAAgB,OAAO,CACrB,OAAO,EAAE,aAAa,EACtB,EAAE,EAAE,SAAS,EACb,UAAU,CAAC,EAAE,cAAc,GAC1B,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAyF/B;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,WAAW,EAAE,aAAa,GAAG,MAAM,CAmDvE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-credentials-flow.d.ts","sourceRoot":"../../../../../src/middleware/auth-middleware","sources":["client-credentials-flow.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client-credentials-flow.d.ts","sourceRoot":"../../../../../src/middleware/auth-middleware","sources":["client-credentials-flow.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,qBAAqB,EACrB,UAAU,EAOX,6BAAyB;AAK1B,MAAM,CAAC,OAAO,UAAU,4CAA4C,CAClE,OAAO,EAAE,qBAAqB,GAC7B,UAAU,CAgDZ"}
|
|
@@ -142,10 +142,7 @@ export type RefreshAuthMiddlewareOptions = {
|
|
|
142
142
|
httpClient?: Function
|
|
143
143
|
}
|
|
144
144
|
|
|
145
|
-
export type RequestStateStore =
|
|
146
|
-
get: () => RequestState
|
|
147
|
-
set: (requestState: RequestState) => void
|
|
148
|
-
}
|
|
145
|
+
export type RequestStateStore = any
|
|
149
146
|
|
|
150
147
|
/* Request */
|
|
151
148
|
type requestBaseOptions = {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@commercetools/ts-client",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.3",
|
|
4
4
|
"engines": {
|
|
5
5
|
"node": ">=14"
|
|
6
6
|
},
|
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"abort-controller": "3.0.0",
|
|
37
|
+
"async-mutex": "^0.5.0",
|
|
37
38
|
"buffer": "^6.0.3",
|
|
38
39
|
"node-fetch": "^2.6.1",
|
|
39
40
|
"uuid": "10.0.0"
|