@salesforce/lds-runtime-aura 1.439.0 → 1.441.0
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/dist/ldsEngineCreator.js
CHANGED
|
@@ -49,11 +49,6 @@ import disableCreateContentDocumentAndVersionHTTPLexRuntime from '@salesforce/ga
|
|
|
49
49
|
import useHotspotLimit from '@salesforce/gate/lds.pdl.useHotspotLimit';
|
|
50
50
|
import { registerSubRequestNetworkAdapter } from 'force/ldsNetwork';
|
|
51
51
|
|
|
52
|
-
/*!
|
|
53
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
54
|
-
* All rights reserved.
|
|
55
|
-
* For full license text, see the LICENSE.txt file
|
|
56
|
-
*/
|
|
57
52
|
const { create: create$1, freeze, keys: keys$2, entries: entries$1 } = Object;
|
|
58
53
|
const { isArray: isArray$3 } = Array;
|
|
59
54
|
const { stringify: stringify$3, parse: parse$2 } = JSON;
|
|
@@ -175,7 +170,7 @@ function rejectedPromiseLike$2(reason) {
|
|
|
175
170
|
};
|
|
176
171
|
}
|
|
177
172
|
function isPromiseLike$2(x) {
|
|
178
|
-
return typeof
|
|
173
|
+
return typeof x?.then === "function";
|
|
179
174
|
}
|
|
180
175
|
function stableJSONStringify$2(node) {
|
|
181
176
|
if (node && node.toJSON && typeof node.toJSON === "function") {
|
|
@@ -322,19 +317,9 @@ function logError$1(error) {
|
|
|
322
317
|
console.error("OneStore Command threw an error that we did not expect", error);
|
|
323
318
|
}
|
|
324
319
|
|
|
325
|
-
/*!
|
|
326
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
327
|
-
* All rights reserved.
|
|
328
|
-
* For full license text, see the LICENSE.txt file
|
|
329
|
-
*/
|
|
330
320
|
class BaseCommand {
|
|
331
321
|
}
|
|
332
322
|
|
|
333
|
-
/*!
|
|
334
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
335
|
-
* All rights reserved.
|
|
336
|
-
* For full license text, see the LICENSE.txt file
|
|
337
|
-
*/
|
|
338
323
|
let NetworkCommand$1 = class NetworkCommand extends BaseCommand {
|
|
339
324
|
constructor(services) {
|
|
340
325
|
super();
|
|
@@ -385,11 +370,6 @@ function buildServiceDescriptor$r() {
|
|
|
385
370
|
};
|
|
386
371
|
}
|
|
387
372
|
|
|
388
|
-
/*!
|
|
389
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
390
|
-
* All rights reserved.
|
|
391
|
-
* For full license text, see the LICENSE.txt file
|
|
392
|
-
*/
|
|
393
373
|
class AuraNetworkCommand extends NetworkCommand$1 {
|
|
394
374
|
constructor(services) {
|
|
395
375
|
super(services);
|
|
@@ -496,16 +476,6 @@ function buildServiceDescriptor$q() {
|
|
|
496
476
|
};
|
|
497
477
|
}
|
|
498
478
|
|
|
499
|
-
/*!
|
|
500
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
501
|
-
* All rights reserved.
|
|
502
|
-
* For full license text, see the LICENSE.txt file
|
|
503
|
-
*/
|
|
504
|
-
/*!
|
|
505
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
506
|
-
* All rights reserved.
|
|
507
|
-
* For full license text, see the LICENSE.txt file
|
|
508
|
-
*/
|
|
509
479
|
const { isArray: isArray$2 } = Array;
|
|
510
480
|
let Ok$1 = class Ok {
|
|
511
481
|
constructor(value) {
|
|
@@ -573,7 +543,7 @@ function rejectedPromiseLike$1(reason) {
|
|
|
573
543
|
};
|
|
574
544
|
}
|
|
575
545
|
function isPromiseLike$1(x) {
|
|
576
|
-
return typeof
|
|
546
|
+
return typeof x?.then === "function";
|
|
577
547
|
}
|
|
578
548
|
function deepEquals$1(x, y) {
|
|
579
549
|
if (x === void 0) {
|
|
@@ -864,7 +834,7 @@ class CacheControlCommand extends BaseCommand {
|
|
|
864
834
|
unsubscribe() {
|
|
865
835
|
while (this.unsubscribers.length > 0) {
|
|
866
836
|
const unsubscriber = this.unsubscribers.pop();
|
|
867
|
-
unsubscriber
|
|
837
|
+
unsubscriber?.();
|
|
868
838
|
}
|
|
869
839
|
}
|
|
870
840
|
/**
|
|
@@ -1048,16 +1018,6 @@ function mergeCacheControlConfigs(baseConfig, overrides) {
|
|
|
1048
1018
|
};
|
|
1049
1019
|
}
|
|
1050
1020
|
|
|
1051
|
-
/*!
|
|
1052
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
1053
|
-
* All rights reserved.
|
|
1054
|
-
* For full license text, see the LICENSE.txt file
|
|
1055
|
-
*/
|
|
1056
|
-
/*!
|
|
1057
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
1058
|
-
* All rights reserved.
|
|
1059
|
-
* For full license text, see the LICENSE.txt file
|
|
1060
|
-
*/
|
|
1061
1021
|
let AuraCacheControlCommand$1 = class AuraCacheControlCommand extends CacheControlCommand {
|
|
1062
1022
|
constructor(services) {
|
|
1063
1023
|
super(services);
|
|
@@ -1167,8 +1127,7 @@ class AuraResourceCacheControlCommand extends AuraCacheControlCommand$1 {
|
|
|
1167
1127
|
this.services = services;
|
|
1168
1128
|
}
|
|
1169
1129
|
readFromCache(cache) {
|
|
1170
|
-
|
|
1171
|
-
const data = (_a = cache.get(this.buildKey())) == null ? void 0 : _a.value;
|
|
1130
|
+
const data = cache.get(this.buildKey())?.value;
|
|
1172
1131
|
if (data === void 0) {
|
|
1173
1132
|
return resolvedPromiseLike$2(err$1(new Error("Failed to find data in cache")));
|
|
1174
1133
|
}
|
|
@@ -1197,16 +1156,6 @@ function buildServiceDescriptor$p() {
|
|
|
1197
1156
|
};
|
|
1198
1157
|
}
|
|
1199
1158
|
|
|
1200
|
-
/*!
|
|
1201
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
1202
|
-
* All rights reserved.
|
|
1203
|
-
* For full license text, see the LICENSE.txt file
|
|
1204
|
-
*/
|
|
1205
|
-
/*!
|
|
1206
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
1207
|
-
* All rights reserved.
|
|
1208
|
-
* For full license text, see the LICENSE.txt file
|
|
1209
|
-
*/
|
|
1210
1159
|
class AuraCacheControlCommand extends CacheControlCommand {
|
|
1211
1160
|
constructor(services) {
|
|
1212
1161
|
super(services);
|
|
@@ -1342,16 +1291,6 @@ function buildServiceDescriptor$o() {
|
|
|
1342
1291
|
};
|
|
1343
1292
|
}
|
|
1344
1293
|
|
|
1345
|
-
/*!
|
|
1346
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
1347
|
-
* All rights reserved.
|
|
1348
|
-
* For full license text, see the LICENSE.txt file
|
|
1349
|
-
*/
|
|
1350
|
-
/*!
|
|
1351
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
1352
|
-
* All rights reserved.
|
|
1353
|
-
* For full license text, see the LICENSE.txt file
|
|
1354
|
-
*/
|
|
1355
1294
|
class HttpCacheControlCommand extends CacheControlCommand {
|
|
1356
1295
|
constructor(services) {
|
|
1357
1296
|
super(services);
|
|
@@ -1459,16 +1398,6 @@ function buildServiceDescriptor$n() {
|
|
|
1459
1398
|
};
|
|
1460
1399
|
}
|
|
1461
1400
|
|
|
1462
|
-
/*!
|
|
1463
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
1464
|
-
* All rights reserved.
|
|
1465
|
-
* For full license text, see the LICENSE.txt file
|
|
1466
|
-
*/
|
|
1467
|
-
/*!
|
|
1468
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
1469
|
-
* All rights reserved.
|
|
1470
|
-
* For full license text, see the LICENSE.txt file
|
|
1471
|
-
*/
|
|
1472
1401
|
class NetworkCommand extends BaseCommand {
|
|
1473
1402
|
constructor(services) {
|
|
1474
1403
|
super();
|
|
@@ -1518,7 +1447,7 @@ function hasFetchParams(command) {
|
|
|
1518
1447
|
return command && typeof command === "object" && "fetchParams" in command;
|
|
1519
1448
|
}
|
|
1520
1449
|
function createAbortableDecorator(command, options) {
|
|
1521
|
-
if (!
|
|
1450
|
+
if (!options?.signal || !(options?.signal instanceof AbortSignal)) {
|
|
1522
1451
|
return command;
|
|
1523
1452
|
}
|
|
1524
1453
|
const { signal } = options;
|
|
@@ -1592,9 +1521,12 @@ const _FetchNetworkCommand = class _FetchNetworkCommand extends NetworkCommand {
|
|
|
1592
1521
|
this.services = services;
|
|
1593
1522
|
this.additionalNullResponses = [];
|
|
1594
1523
|
}
|
|
1595
|
-
fetch() {
|
|
1524
|
+
fetch(contextSeed) {
|
|
1596
1525
|
try {
|
|
1597
|
-
|
|
1526
|
+
const [input, init] = this.fetchParams;
|
|
1527
|
+
const initWithSeed = contextSeed === void 0 ? init : { ...init, __contextSeed: contextSeed };
|
|
1528
|
+
const fetchCall = initWithSeed === void 0 ? this.services.fetch(input) : this.services.fetch(input, initWithSeed);
|
|
1529
|
+
return this.convertFetchResponseToData(fetchCall);
|
|
1598
1530
|
} catch (reason) {
|
|
1599
1531
|
return resolvedPromiseLike$2(err$1(toError(reason)));
|
|
1600
1532
|
}
|
|
@@ -1665,11 +1597,6 @@ function buildServiceDescriptor$m() {
|
|
|
1665
1597
|
};
|
|
1666
1598
|
}
|
|
1667
1599
|
|
|
1668
|
-
/*!
|
|
1669
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
1670
|
-
* All rights reserved.
|
|
1671
|
-
* For full license text, see the LICENSE.txt file
|
|
1672
|
-
*/
|
|
1673
1600
|
class StreamingCommand extends BaseCommand {
|
|
1674
1601
|
constructor(services) {
|
|
1675
1602
|
super();
|
|
@@ -1705,11 +1632,6 @@ function buildServiceDescriptor$l() {
|
|
|
1705
1632
|
};
|
|
1706
1633
|
}
|
|
1707
1634
|
|
|
1708
|
-
/*!
|
|
1709
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
1710
|
-
* All rights reserved.
|
|
1711
|
-
* For full license text, see the LICENSE.txt file
|
|
1712
|
-
*/
|
|
1713
1635
|
class SSECommand extends StreamingCommand {
|
|
1714
1636
|
constructor(services) {
|
|
1715
1637
|
super(services);
|
|
@@ -1788,11 +1710,6 @@ function buildServiceDescriptor$k() {
|
|
|
1788
1710
|
};
|
|
1789
1711
|
}
|
|
1790
1712
|
|
|
1791
|
-
/*!
|
|
1792
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
1793
|
-
* All rights reserved.
|
|
1794
|
-
* For full license text, see the LICENSE.txt file
|
|
1795
|
-
*/
|
|
1796
1713
|
function buildInstrumentCommand(services) {
|
|
1797
1714
|
const meter = services.instrumentation.metrics.getMeter("onestore");
|
|
1798
1715
|
return function instrumentCommand(commandClass, commandName) {
|
|
@@ -1812,7 +1729,7 @@ function buildInstrumentCommand(services) {
|
|
|
1812
1729
|
try {
|
|
1813
1730
|
result = super.execute(...args);
|
|
1814
1731
|
} catch (e) {
|
|
1815
|
-
if (
|
|
1732
|
+
if (e?.name === "AbortError") {
|
|
1816
1733
|
abortCounter.add(1);
|
|
1817
1734
|
} else {
|
|
1818
1735
|
errorCounter.add(1);
|
|
@@ -1839,16 +1756,6 @@ function buildServiceDescriptor$j(instrumentation) {
|
|
|
1839
1756
|
};
|
|
1840
1757
|
}
|
|
1841
1758
|
|
|
1842
|
-
/*!
|
|
1843
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
1844
|
-
* All rights reserved.
|
|
1845
|
-
* For full license text, see the LICENSE.txt file
|
|
1846
|
-
*/
|
|
1847
|
-
/*!
|
|
1848
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
1849
|
-
* All rights reserved.
|
|
1850
|
-
* For full license text, see the LICENSE.txt file
|
|
1851
|
-
*/
|
|
1852
1759
|
class O11yOTelTraceAPI {
|
|
1853
1760
|
constructor(services) {
|
|
1854
1761
|
this.services = services;
|
|
@@ -1864,9 +1771,9 @@ class O11yTracer {
|
|
|
1864
1771
|
this.logger = logger;
|
|
1865
1772
|
}
|
|
1866
1773
|
startSpan(name, _options, context) {
|
|
1867
|
-
const traceId = context
|
|
1868
|
-
const spanId = context
|
|
1869
|
-
const traceFlags = context
|
|
1774
|
+
const traceId = context?.getValue(/* @__PURE__ */ Symbol.for("traceId"));
|
|
1775
|
+
const spanId = context?.getValue(/* @__PURE__ */ Symbol.for("spanId"));
|
|
1776
|
+
const traceFlags = context?.getValue(/* @__PURE__ */ Symbol.for("traceFlags"));
|
|
1870
1777
|
let spanContext = void 0;
|
|
1871
1778
|
if (traceId !== void 0 && spanId !== void 0 && traceFlags !== void 0) {
|
|
1872
1779
|
spanContext = {
|
|
@@ -2109,16 +2016,6 @@ function buildServiceDescriptor$i(logger) {
|
|
|
2109
2016
|
};
|
|
2110
2017
|
}
|
|
2111
2018
|
|
|
2112
|
-
/*!
|
|
2113
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
2114
|
-
* All rights reserved.
|
|
2115
|
-
* For full license text, see the LICENSE.txt file
|
|
2116
|
-
*/
|
|
2117
|
-
/*!
|
|
2118
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
2119
|
-
* All rights reserved.
|
|
2120
|
-
* For full license text, see the LICENSE.txt file
|
|
2121
|
-
*/
|
|
2122
2019
|
const { stringify: stringify$2, parse: parse$1 } = JSON;
|
|
2123
2020
|
function deepCopy$1(x) {
|
|
2124
2021
|
const stringified = stringify$2(x);
|
|
@@ -2142,7 +2039,7 @@ let DefaultRecordableCache$1 = class DefaultRecordableCache {
|
|
|
2142
2039
|
if (value === void 0) {
|
|
2143
2040
|
this.missingKeysRead.add(key);
|
|
2144
2041
|
}
|
|
2145
|
-
if (options
|
|
2042
|
+
if (options?.copy) {
|
|
2146
2043
|
return deepCopy$1(value);
|
|
2147
2044
|
}
|
|
2148
2045
|
return value;
|
|
@@ -2186,7 +2083,7 @@ let DefaultFilteredCache$1 = class DefaultFilteredCache {
|
|
|
2186
2083
|
get(key, options) {
|
|
2187
2084
|
const result = this.baseCache.get(key);
|
|
2188
2085
|
if (result && this.predicate(key, result)) {
|
|
2189
|
-
if (options
|
|
2086
|
+
if (options?.copy) {
|
|
2190
2087
|
return deepCopy$1(result);
|
|
2191
2088
|
}
|
|
2192
2089
|
return result;
|
|
@@ -2282,7 +2179,7 @@ let DefaultCache$1 = class DefaultCache {
|
|
|
2282
2179
|
this.data = {};
|
|
2283
2180
|
}
|
|
2284
2181
|
get(key, options) {
|
|
2285
|
-
if (options
|
|
2182
|
+
if (options?.copy) {
|
|
2286
2183
|
return deepCopy$1(this.data[key]);
|
|
2287
2184
|
}
|
|
2288
2185
|
return this.data[key];
|
|
@@ -2362,11 +2259,6 @@ function buildServiceDescriptor$h() {
|
|
|
2362
2259
|
};
|
|
2363
2260
|
}
|
|
2364
2261
|
|
|
2365
|
-
/*!
|
|
2366
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
2367
|
-
* All rights reserved.
|
|
2368
|
-
* For full license text, see the LICENSE.txt file
|
|
2369
|
-
*/
|
|
2370
2262
|
class CacheControlStrategy {
|
|
2371
2263
|
constructor(services, config, requestRunner) {
|
|
2372
2264
|
this.services = services;
|
|
@@ -2427,11 +2319,11 @@ class MaxAgeCacheControlStrategy extends CacheControlStrategy {
|
|
|
2427
2319
|
if (value.isOk()) {
|
|
2428
2320
|
this.collectCacheHitInstrumentation(
|
|
2429
2321
|
startTime,
|
|
2430
|
-
options
|
|
2322
|
+
options?.instrumentationAttributes
|
|
2431
2323
|
);
|
|
2432
2324
|
return ok$2(void 0);
|
|
2433
2325
|
}
|
|
2434
|
-
this.collectCacheMissInstrumentation(startTime, options
|
|
2326
|
+
this.collectCacheMissInstrumentation(startTime, options?.instrumentationAttributes);
|
|
2435
2327
|
const tempCache = this.filteredCache;
|
|
2436
2328
|
return new Promise(async (resolve, reject) => {
|
|
2437
2329
|
try {
|
|
@@ -2501,11 +2393,11 @@ class OnlyIfCachedCacheControlStrategy extends CacheControlStrategy {
|
|
|
2501
2393
|
if (result.isOk()) {
|
|
2502
2394
|
this.collectCacheHitInstrumentation(
|
|
2503
2395
|
startTime,
|
|
2504
|
-
options
|
|
2396
|
+
options?.instrumentationAttributes
|
|
2505
2397
|
);
|
|
2506
2398
|
return ok$2(void 0);
|
|
2507
2399
|
}
|
|
2508
|
-
this.collectCacheMissInstrumentation(startTime, options
|
|
2400
|
+
this.collectCacheMissInstrumentation(startTime, options?.instrumentationAttributes);
|
|
2509
2401
|
const error = new UserVisibleError(
|
|
2510
2402
|
new FetchResponse(HttpStatusCode$1.GatewayTimeout, {
|
|
2511
2403
|
error: "Cache miss for only-if-cached request"
|
|
@@ -2589,12 +2481,7 @@ function buildServiceDescriptor$g(cache, cacheInclusionPolicy, instrumentation)
|
|
|
2589
2481
|
};
|
|
2590
2482
|
}
|
|
2591
2483
|
|
|
2592
|
-
|
|
2593
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
2594
|
-
* All rights reserved.
|
|
2595
|
-
* For full license text, see the LICENSE.txt file
|
|
2596
|
-
*/
|
|
2597
|
-
const EventTypeWildcard = Symbol("EventTypeWildcard");
|
|
2484
|
+
const EventTypeWildcard = /* @__PURE__ */ Symbol("EventTypeWildcard");
|
|
2598
2485
|
class DefaultPubSubService {
|
|
2599
2486
|
constructor() {
|
|
2600
2487
|
this.subscriptions = /* @__PURE__ */ new Map();
|
|
@@ -2657,11 +2544,6 @@ function buildServiceDescriptor$f() {
|
|
|
2657
2544
|
};
|
|
2658
2545
|
}
|
|
2659
2546
|
|
|
2660
|
-
/*!
|
|
2661
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
2662
|
-
* All rights reserved.
|
|
2663
|
-
* For full license text, see the LICENSE.txt file
|
|
2664
|
-
*/
|
|
2665
2547
|
class NDJSONCommand extends StreamingCommand {
|
|
2666
2548
|
constructor(services) {
|
|
2667
2549
|
super(services);
|
|
@@ -2762,13 +2644,8 @@ function buildServiceDescriptor$d(luvio) {
|
|
|
2762
2644
|
},
|
|
2763
2645
|
};
|
|
2764
2646
|
}
|
|
2765
|
-
// version: 1.
|
|
2647
|
+
// version: 1.441.0-5e7d04c146
|
|
2766
2648
|
|
|
2767
|
-
/*!
|
|
2768
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
2769
|
-
* All rights reserved.
|
|
2770
|
-
* For full license text, see the LICENSE.txt file
|
|
2771
|
-
*/
|
|
2772
2649
|
class AuraGraphQLNormalizedCacheControlCommand extends AuraNormalizedCacheControlCommand {
|
|
2773
2650
|
constructor(config, documentRootType, services) {
|
|
2774
2651
|
super(services);
|
|
@@ -2949,11 +2826,6 @@ function buildServiceDescriptor$c() {
|
|
|
2949
2826
|
};
|
|
2950
2827
|
}
|
|
2951
2828
|
|
|
2952
|
-
/*!
|
|
2953
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
2954
|
-
* All rights reserved.
|
|
2955
|
-
* For full license text, see the LICENSE.txt file
|
|
2956
|
-
*/
|
|
2957
2829
|
class HttpGraphQLNormalizedCacheControlCommand extends HttpNormalizedCacheControlCommand {
|
|
2958
2830
|
constructor(config, documentRootType, services) {
|
|
2959
2831
|
super(services);
|
|
@@ -3067,11 +2939,6 @@ function buildServiceDescriptor$b() {
|
|
|
3067
2939
|
};
|
|
3068
2940
|
}
|
|
3069
2941
|
|
|
3070
|
-
/*!
|
|
3071
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
3072
|
-
* All rights reserved.
|
|
3073
|
-
* For full license text, see the LICENSE.txt file
|
|
3074
|
-
*/
|
|
3075
2942
|
class FeatureFlagsService {
|
|
3076
2943
|
constructor() {
|
|
3077
2944
|
this.flags = /* @__PURE__ */ new Map();
|
|
@@ -3115,13 +2982,8 @@ function buildServiceDescriptor$9(notifyRecordUpdateAvailable, getNormalizedLuvi
|
|
|
3115
2982
|
},
|
|
3116
2983
|
};
|
|
3117
2984
|
}
|
|
3118
|
-
// version: 1.
|
|
2985
|
+
// version: 1.441.0-5e7d04c146
|
|
3119
2986
|
|
|
3120
|
-
/*!
|
|
3121
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
3122
|
-
* All rights reserved.
|
|
3123
|
-
* For full license text, see the LICENSE.txt file
|
|
3124
|
-
*/
|
|
3125
2987
|
class RetryService {
|
|
3126
2988
|
constructor(defaultRetryPolicy) {
|
|
3127
2989
|
this.defaultRetryPolicy = defaultRetryPolicy;
|
|
@@ -3272,11 +3134,6 @@ function buildServiceDescriptor$8(defaultRetryPolicy) {
|
|
|
3272
3134
|
};
|
|
3273
3135
|
}
|
|
3274
3136
|
|
|
3275
|
-
/*!
|
|
3276
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
3277
|
-
* All rights reserved.
|
|
3278
|
-
* For full license text, see the LICENSE.txt file
|
|
3279
|
-
*/
|
|
3280
3137
|
function isUserVisibleError(error) {
|
|
3281
3138
|
return error instanceof Error && "type" in error && error.type === "user-visible";
|
|
3282
3139
|
}
|
|
@@ -3301,11 +3158,6 @@ function logError(error) {
|
|
|
3301
3158
|
console.error("OneStore Command threw an error that we did not expect", error);
|
|
3302
3159
|
}
|
|
3303
3160
|
|
|
3304
|
-
/*!
|
|
3305
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
3306
|
-
* All rights reserved.
|
|
3307
|
-
* For full license text, see the LICENSE.txt file
|
|
3308
|
-
*/
|
|
3309
3161
|
function buildBaseImperativeInvoker(getCommand, transformResult) {
|
|
3310
3162
|
return async (...params) => {
|
|
3311
3163
|
const command = getCommand({ params, assertIsValid });
|
|
@@ -3410,7 +3262,7 @@ class SubscribableImperativeBindingsService {
|
|
|
3410
3262
|
const api = {
|
|
3411
3263
|
data: result.value.data,
|
|
3412
3264
|
subscribe: (cb) => {
|
|
3413
|
-
result.value.subscribe((result2) => {
|
|
3265
|
+
return result.value.subscribe((result2) => {
|
|
3414
3266
|
if (result2.isErr()) {
|
|
3415
3267
|
return cb({ data: void 0, error: toError(result2.error) });
|
|
3416
3268
|
}
|
|
@@ -3513,10 +3365,10 @@ class GraphQLImperativeBindingsService {
|
|
|
3513
3365
|
acceptedOperations: ["query"]
|
|
3514
3366
|
};
|
|
3515
3367
|
const result = resolveAndValidateGraphQLConfig(params[0], options);
|
|
3516
|
-
if (result
|
|
3368
|
+
if (result?.isErr()) {
|
|
3517
3369
|
return result.error;
|
|
3518
3370
|
}
|
|
3519
|
-
if (result
|
|
3371
|
+
if (result?.isOk()) {
|
|
3520
3372
|
params[0] = result.value;
|
|
3521
3373
|
}
|
|
3522
3374
|
}
|
|
@@ -3535,7 +3387,7 @@ class GraphQLImperativeBindingsService {
|
|
|
3535
3387
|
deepFreeze(result.value);
|
|
3536
3388
|
consumerEmittedData.data = result.value.data.data;
|
|
3537
3389
|
consumerEmittedData.subscribe = (cb) => {
|
|
3538
|
-
result.value.subscribe((res) => {
|
|
3390
|
+
return result.value.subscribe((res) => {
|
|
3539
3391
|
const consumerEmittedData2 = {
|
|
3540
3392
|
data: void 0,
|
|
3541
3393
|
errors: void 0
|
|
@@ -3608,11 +3460,11 @@ class GraphQLLegacyImperativeBindingsService {
|
|
|
3608
3460
|
acceptedOperations: ["query"]
|
|
3609
3461
|
};
|
|
3610
3462
|
const result = resolveAndValidateGraphQLConfig(config, options);
|
|
3611
|
-
if (result
|
|
3463
|
+
if (result?.isErr()) {
|
|
3612
3464
|
callback(result.error);
|
|
3613
3465
|
return;
|
|
3614
3466
|
}
|
|
3615
|
-
if (result
|
|
3467
|
+
if (result?.isOk()) {
|
|
3616
3468
|
config = result.value;
|
|
3617
3469
|
}
|
|
3618
3470
|
}
|
|
@@ -3643,12 +3495,12 @@ class GraphQLLegacyImperativeBindingsService {
|
|
|
3643
3495
|
acceptedOperations: ["query"]
|
|
3644
3496
|
};
|
|
3645
3497
|
const result = resolveAndValidateGraphQLConfig(config, options);
|
|
3646
|
-
if (result
|
|
3498
|
+
if (result?.isErr()) {
|
|
3647
3499
|
callback(result.error);
|
|
3648
3500
|
return () => {
|
|
3649
3501
|
};
|
|
3650
3502
|
}
|
|
3651
|
-
if (result
|
|
3503
|
+
if (result?.isOk()) {
|
|
3652
3504
|
config = result.value;
|
|
3653
3505
|
}
|
|
3654
3506
|
}
|
|
@@ -3710,13 +3562,13 @@ class GraphQLMutationBindingsService {
|
|
|
3710
3562
|
acceptedOperations: ["mutation"]
|
|
3711
3563
|
};
|
|
3712
3564
|
const result2 = resolveAndValidateGraphQLConfig(params[0], options);
|
|
3713
|
-
if (result2
|
|
3565
|
+
if (result2?.isErr()) {
|
|
3714
3566
|
return {
|
|
3715
3567
|
data: void 0,
|
|
3716
3568
|
errors: result2.error.errors
|
|
3717
3569
|
};
|
|
3718
3570
|
}
|
|
3719
|
-
if (result2
|
|
3571
|
+
if (result2?.isOk()) {
|
|
3720
3572
|
params[0] = result2.value;
|
|
3721
3573
|
}
|
|
3722
3574
|
}
|
|
@@ -3742,11 +3594,6 @@ function buildServiceDescriptor$7() {
|
|
|
3742
3594
|
};
|
|
3743
3595
|
}
|
|
3744
3596
|
|
|
3745
|
-
/*!
|
|
3746
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
3747
|
-
* All rights reserved.
|
|
3748
|
-
* For full license text, see the LICENSE.txt file
|
|
3749
|
-
*/
|
|
3750
3597
|
class Sanitizer {
|
|
3751
3598
|
constructor(obj) {
|
|
3752
3599
|
this.obj = obj;
|
|
@@ -3806,7 +3653,7 @@ class CommandWireAdapterConstructor {
|
|
|
3806
3653
|
this.callback = callback;
|
|
3807
3654
|
this.connected = false;
|
|
3808
3655
|
this.exposeRefresh = false;
|
|
3809
|
-
if (!
|
|
3656
|
+
if (!options?.skipEmptyEmit) {
|
|
3810
3657
|
this.emit();
|
|
3811
3658
|
}
|
|
3812
3659
|
}
|
|
@@ -4143,11 +3990,6 @@ function buildLWCGraphQLWireBindingsServiceDescriptor() {
|
|
|
4143
3990
|
};
|
|
4144
3991
|
}
|
|
4145
3992
|
|
|
4146
|
-
/*!
|
|
4147
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
4148
|
-
* All rights reserved.
|
|
4149
|
-
* For full license text, see the LICENSE.txt file
|
|
4150
|
-
*/
|
|
4151
3993
|
function e$1(e2) {
|
|
4152
3994
|
this.message = e2;
|
|
4153
3995
|
}
|
|
@@ -4203,11 +4045,13 @@ class JwtToken {
|
|
|
4203
4045
|
* @param _token - The JWT string.
|
|
4204
4046
|
* @param _decodedInfo - The decoded information from the JWT.
|
|
4205
4047
|
* @param _extraInfo - Any additional information associated with the JWT.
|
|
4048
|
+
* @param _mintParams - The parameters used to mint this token. Undefined for legacy parameterless tokens.
|
|
4206
4049
|
*/
|
|
4207
|
-
constructor(_token, _decodedInfo, _extraInfo) {
|
|
4050
|
+
constructor(_token, _decodedInfo, _extraInfo, _mintParams) {
|
|
4208
4051
|
this._token = _token;
|
|
4209
4052
|
this._decodedInfo = _decodedInfo;
|
|
4210
4053
|
this._extraInfo = _extraInfo;
|
|
4054
|
+
this._mintParams = _mintParams;
|
|
4211
4055
|
}
|
|
4212
4056
|
/**
|
|
4213
4057
|
* Get the JWT string.
|
|
@@ -4233,6 +4077,14 @@ class JwtToken {
|
|
|
4233
4077
|
get decodedInfo() {
|
|
4234
4078
|
return this._decodedInfo;
|
|
4235
4079
|
}
|
|
4080
|
+
/**
|
|
4081
|
+
* Get the mint parameters used to produce this token.
|
|
4082
|
+
*
|
|
4083
|
+
* @returns The mint parameters, or undefined for legacy parameterless tokens.
|
|
4084
|
+
*/
|
|
4085
|
+
get mintParams() {
|
|
4086
|
+
return this._mintParams;
|
|
4087
|
+
}
|
|
4236
4088
|
/**
|
|
4237
4089
|
* Get the remaining time in seconds until the JWT expires.
|
|
4238
4090
|
*
|
|
@@ -4250,6 +4102,12 @@ class JwtToken {
|
|
|
4250
4102
|
return this.tokenRemainingSeconds <= 0;
|
|
4251
4103
|
}
|
|
4252
4104
|
}
|
|
4105
|
+
function cacheKeyFor(params) {
|
|
4106
|
+
if (params === void 0) {
|
|
4107
|
+
return "jwt:";
|
|
4108
|
+
}
|
|
4109
|
+
return `jwt:${stableJSONStringify$2(params) ?? ""}`;
|
|
4110
|
+
}
|
|
4253
4111
|
let defaultLogger = {
|
|
4254
4112
|
trace: () => {
|
|
4255
4113
|
},
|
|
@@ -4283,85 +4141,146 @@ class JwtRepository {
|
|
|
4283
4141
|
this.limitInSeconds = limitInSeconds;
|
|
4284
4142
|
this.defaultTokenTTLInSeconds = defaultTokenTTLInSeconds;
|
|
4285
4143
|
this.logger = logger;
|
|
4144
|
+
this._tokens = /* @__PURE__ */ new Map();
|
|
4145
|
+
this.timeoutHandlers = /* @__PURE__ */ new Map();
|
|
4286
4146
|
this.observers = [];
|
|
4287
4147
|
}
|
|
4288
4148
|
/**
|
|
4289
|
-
* Get the
|
|
4149
|
+
* Get the legacy (parameterless) token. Equivalent to `getToken()` with
|
|
4150
|
+
* no args. Preserved for backward compatibility with code that reads the
|
|
4151
|
+
* `token` property directly.
|
|
4290
4152
|
*/
|
|
4291
4153
|
get token() {
|
|
4292
|
-
return this.
|
|
4154
|
+
return this.getToken();
|
|
4293
4155
|
}
|
|
4294
4156
|
/**
|
|
4295
|
-
*
|
|
4157
|
+
* Get the cached token for the given mint params.
|
|
4158
|
+
*
|
|
4159
|
+
* @param params - The mint params identifying the token. Omit for the legacy global token.
|
|
4160
|
+
*/
|
|
4161
|
+
getToken(params) {
|
|
4162
|
+
return this._tokens.get(cacheKeyFor(params));
|
|
4163
|
+
}
|
|
4164
|
+
/**
|
|
4165
|
+
* Set the cached token for the given mint params.
|
|
4296
4166
|
*
|
|
4297
4167
|
* @param token - JWT token as a string.
|
|
4298
4168
|
* @param extraInfo - Optional extra information.
|
|
4169
|
+
* @param params - The mint params identifying the token. Omit for the legacy global token.
|
|
4299
4170
|
*/
|
|
4300
|
-
setToken(token, extraInfo) {
|
|
4171
|
+
setToken(token, extraInfo, params) {
|
|
4301
4172
|
const decodedInfo = computeDecodedInfo(
|
|
4302
4173
|
token,
|
|
4303
4174
|
this.defaultTokenTTLInSeconds,
|
|
4304
4175
|
this.logger
|
|
4305
4176
|
);
|
|
4306
|
-
|
|
4307
|
-
|
|
4308
|
-
|
|
4177
|
+
const key = cacheKeyFor(params);
|
|
4178
|
+
const jwtToken = new JwtToken(token, decodedInfo, extraInfo, params);
|
|
4179
|
+
this._tokens.set(key, jwtToken);
|
|
4180
|
+
this.observeTokenExpiration(key);
|
|
4181
|
+
return jwtToken;
|
|
4182
|
+
}
|
|
4183
|
+
/**
|
|
4184
|
+
* Remove the cached token for the given mint params.
|
|
4185
|
+
*
|
|
4186
|
+
* @param params - The mint params identifying the token. Omit to remove
|
|
4187
|
+
* only the legacy global-key entry (matches today's behavior of "remove
|
|
4188
|
+
* the only token there is").
|
|
4189
|
+
*/
|
|
4190
|
+
removeToken(params) {
|
|
4191
|
+
const key = cacheKeyFor(params);
|
|
4192
|
+
this._tokens.delete(key);
|
|
4193
|
+
this.clearTimeoutHandler(key);
|
|
4309
4194
|
}
|
|
4310
4195
|
/**
|
|
4311
|
-
* Remove
|
|
4196
|
+
* Remove every cached token and clear every near-expiry timer. Used by
|
|
4197
|
+
* test teardown and full auth-reset paths that previously called
|
|
4198
|
+
* `removeToken()` to clear the single token.
|
|
4312
4199
|
*/
|
|
4313
|
-
|
|
4314
|
-
this.
|
|
4315
|
-
|
|
4200
|
+
clearAllTokens() {
|
|
4201
|
+
for (const key of Array.from(this.timeoutHandlers.keys())) {
|
|
4202
|
+
this.clearTimeoutHandler(key);
|
|
4203
|
+
}
|
|
4204
|
+
this._tokens.clear();
|
|
4316
4205
|
}
|
|
4317
4206
|
/**
|
|
4318
|
-
* Subscribe to
|
|
4207
|
+
* Subscribe to any cached token nearing its expiration.
|
|
4319
4208
|
*
|
|
4320
|
-
*
|
|
4209
|
+
* The callback receives the specific token whose timer fired. Use
|
|
4210
|
+
* `token.mintParams` to determine which token-set the expiry belongs to.
|
|
4211
|
+
*
|
|
4212
|
+
* Already-cached tokens are armed at subscribe time. Tokens added later
|
|
4213
|
+
* via `setToken` arm their own timers from inside `setToken`, so this
|
|
4214
|
+
* loop only needs to cover the existing entries.
|
|
4215
|
+
*
|
|
4216
|
+
* @param cb - Callback function to execute when a token is nearing expiration.
|
|
4321
4217
|
*/
|
|
4322
4218
|
subscribeToTokenNearExpiration(cb) {
|
|
4323
4219
|
this.observers.push(cb);
|
|
4324
|
-
this.
|
|
4220
|
+
for (const key of this._tokens.keys()) {
|
|
4221
|
+
this.observeTokenExpiration(key);
|
|
4222
|
+
}
|
|
4325
4223
|
return () => {
|
|
4326
4224
|
this.observers = this.observers.filter((observer) => observer !== cb);
|
|
4225
|
+
if (this.observers.length === 0) {
|
|
4226
|
+
for (const key of Array.from(this.timeoutHandlers.keys())) {
|
|
4227
|
+
this.clearTimeoutHandler(key);
|
|
4228
|
+
}
|
|
4229
|
+
}
|
|
4327
4230
|
};
|
|
4328
4231
|
}
|
|
4329
4232
|
/**
|
|
4330
|
-
*
|
|
4233
|
+
* Number of currently cached tokens. Exposed for size observability so
|
|
4234
|
+
* runtime callers can emit a metric on cache growth and detect adapters
|
|
4235
|
+
* that misuse `dynamicParams` for per-request values.
|
|
4236
|
+
*/
|
|
4237
|
+
get size() {
|
|
4238
|
+
return this._tokens.size;
|
|
4239
|
+
}
|
|
4240
|
+
/**
|
|
4241
|
+
* Clear the timeout handler for a specific cache key.
|
|
4331
4242
|
*/
|
|
4332
|
-
clearTimeoutHandler() {
|
|
4333
|
-
|
|
4334
|
-
|
|
4243
|
+
clearTimeoutHandler(key) {
|
|
4244
|
+
const handler = this.timeoutHandlers.get(key);
|
|
4245
|
+
if (handler !== void 0) {
|
|
4246
|
+
clearTimeout(handler);
|
|
4247
|
+
this.timeoutHandlers.delete(key);
|
|
4335
4248
|
}
|
|
4336
4249
|
}
|
|
4337
4250
|
/**
|
|
4338
|
-
* Observe and handle token
|
|
4251
|
+
* Observe and handle expiration of the token at the given cache key.
|
|
4339
4252
|
*/
|
|
4340
|
-
observeTokenExpiration() {
|
|
4341
|
-
this.clearTimeoutHandler();
|
|
4342
|
-
|
|
4253
|
+
observeTokenExpiration(key) {
|
|
4254
|
+
this.clearTimeoutHandler(key);
|
|
4255
|
+
const token = this._tokens.get(key);
|
|
4256
|
+
if (this.observers.length === 0 || token === void 0) {
|
|
4343
4257
|
return;
|
|
4344
4258
|
}
|
|
4345
|
-
|
|
4346
|
-
() => this.notifyTokenIsExpiring(),
|
|
4347
|
-
this.computeTimeoutTimeInMs()
|
|
4259
|
+
const handler = setTimeout(
|
|
4260
|
+
() => this.notifyTokenIsExpiring(key),
|
|
4261
|
+
this.computeTimeoutTimeInMs(token)
|
|
4348
4262
|
);
|
|
4263
|
+
this.timeoutHandlers.set(key, handler);
|
|
4349
4264
|
}
|
|
4350
4265
|
/**
|
|
4351
|
-
* Compute the timeout time in milliseconds.
|
|
4266
|
+
* Compute the timeout time in milliseconds for the given token.
|
|
4352
4267
|
*/
|
|
4353
|
-
computeTimeoutTimeInMs() {
|
|
4354
|
-
const remainingSeconds =
|
|
4355
|
-
|
|
4268
|
+
computeTimeoutTimeInMs(token) {
|
|
4269
|
+
const remainingSeconds = token.tokenRemainingSeconds;
|
|
4270
|
+
const timeoutTimeInSeconds = remainingSeconds - this.limitInSeconds;
|
|
4356
4271
|
return timeoutTimeInSeconds < 0 ? 0 : timeoutTimeInSeconds * 1e3;
|
|
4357
4272
|
}
|
|
4358
4273
|
/**
|
|
4359
|
-
* Notify all observers that the token is expiring.
|
|
4274
|
+
* Notify all observers that the token at the given cache key is expiring.
|
|
4360
4275
|
*/
|
|
4361
|
-
notifyTokenIsExpiring() {
|
|
4276
|
+
notifyTokenIsExpiring(key) {
|
|
4277
|
+
const token = this._tokens.get(key);
|
|
4278
|
+
if (token === void 0) {
|
|
4279
|
+
return;
|
|
4280
|
+
}
|
|
4362
4281
|
this.observers.forEach((cb) => {
|
|
4363
4282
|
try {
|
|
4364
|
-
cb.call(void 0,
|
|
4283
|
+
cb.call(void 0, token);
|
|
4365
4284
|
} catch (e2) {
|
|
4366
4285
|
this.logger.error(e2.message);
|
|
4367
4286
|
}
|
|
@@ -4379,65 +4298,71 @@ class JwtManager {
|
|
|
4379
4298
|
constructor(jwtRepository, resolver, options) {
|
|
4380
4299
|
this.jwtRepository = jwtRepository;
|
|
4381
4300
|
this.resolver = resolver;
|
|
4382
|
-
|
|
4383
|
-
|
|
4301
|
+
this.inflightPromises = /* @__PURE__ */ new Map();
|
|
4302
|
+
if (options?.keepTokenUpdated) {
|
|
4303
|
+
jwtRepository.subscribeToTokenNearExpiration(
|
|
4304
|
+
(token) => this.refreshToken(token.mintParams)
|
|
4305
|
+
);
|
|
4384
4306
|
}
|
|
4385
4307
|
}
|
|
4386
4308
|
/**
|
|
4387
|
-
* Method to get a JWT token.
|
|
4388
|
-
* If there's a token request in progress, it will return the Promise of this request.
|
|
4389
|
-
* If the current token is undefined or expired, it will initiate a token refresh.
|
|
4390
|
-
* Otherwise, it will return the current token.
|
|
4309
|
+
* Method to get a JWT token for the given mint params.
|
|
4391
4310
|
*
|
|
4392
|
-
*
|
|
4311
|
+
* If a request for the same params is in flight, returns its promise. If
|
|
4312
|
+
* a cached token for those params exists and is not expired, returns it
|
|
4313
|
+
* synchronously. Otherwise initiates a refresh.
|
|
4314
|
+
*
|
|
4315
|
+
* @param params - Optional mint parameters. Omit for the legacy parameterless token.
|
|
4316
|
+
* @returns The cached token (sync) or a promise that resolves to the refreshed token.
|
|
4393
4317
|
*/
|
|
4394
|
-
getJwt() {
|
|
4395
|
-
|
|
4396
|
-
|
|
4318
|
+
getJwt(params) {
|
|
4319
|
+
const key = cacheKeyFor(params);
|
|
4320
|
+
const inflight = this.inflightPromises.get(key);
|
|
4321
|
+
if (inflight) {
|
|
4322
|
+
return inflight;
|
|
4397
4323
|
}
|
|
4398
|
-
const token = this.jwtRepository.
|
|
4324
|
+
const token = this.jwtRepository.getToken(params);
|
|
4399
4325
|
if (token === void 0 || token.isExpired) {
|
|
4400
|
-
return this.refreshToken();
|
|
4326
|
+
return this.refreshToken(params);
|
|
4401
4327
|
}
|
|
4402
4328
|
return token;
|
|
4403
4329
|
}
|
|
4404
4330
|
/**
|
|
4405
|
-
* Method to refresh a JWT token.
|
|
4406
|
-
* If a refresh request is already in progress, it will return the Promise of this request.
|
|
4407
|
-
* Otherwise, it will start a new refresh request and return its Promise.
|
|
4331
|
+
* Method to refresh a JWT token for the given mint params.
|
|
4408
4332
|
*
|
|
4409
|
-
* @
|
|
4333
|
+
* @param params - Optional mint parameters. Omit for the legacy parameterless token.
|
|
4334
|
+
* @returns Promise of the refreshed token.
|
|
4410
4335
|
*/
|
|
4411
|
-
refreshToken() {
|
|
4412
|
-
|
|
4413
|
-
|
|
4414
|
-
|
|
4415
|
-
|
|
4416
|
-
|
|
4417
|
-
|
|
4418
|
-
|
|
4419
|
-
|
|
4420
|
-
|
|
4421
|
-
|
|
4336
|
+
refreshToken(params) {
|
|
4337
|
+
const key = cacheKeyFor(params);
|
|
4338
|
+
const existing = this.inflightPromises.get(key);
|
|
4339
|
+
if (existing !== void 0) {
|
|
4340
|
+
return existing;
|
|
4341
|
+
}
|
|
4342
|
+
const resolverPromise = params === void 0 ? this.resolver.getJwt() : this.resolver.getJwt(params);
|
|
4343
|
+
const promise = new Promise((resolve, reject) => {
|
|
4344
|
+
resolverPromise.then(({ jwt, extraInfo }) => {
|
|
4345
|
+
this.inflightPromises.delete(key);
|
|
4346
|
+
const token = this.jwtRepository.setToken(jwt, extraInfo, params);
|
|
4347
|
+
resolve(token);
|
|
4348
|
+
}).catch((reason) => {
|
|
4349
|
+
this.inflightPromises.delete(key);
|
|
4350
|
+
reject(reason);
|
|
4422
4351
|
});
|
|
4423
|
-
}
|
|
4424
|
-
|
|
4352
|
+
});
|
|
4353
|
+
this.inflightPromises.set(key, promise);
|
|
4354
|
+
return promise;
|
|
4425
4355
|
}
|
|
4426
4356
|
/**
|
|
4427
|
-
* Method to check if
|
|
4357
|
+
* Method to check if any token refresh is in progress.
|
|
4428
4358
|
*
|
|
4429
|
-
* @returns {boolean} true if
|
|
4359
|
+
* @returns {boolean} true if at least one refresh is in flight, false otherwise.
|
|
4430
4360
|
*/
|
|
4431
4361
|
get isRefreshingToken() {
|
|
4432
|
-
return this.
|
|
4362
|
+
return this.inflightPromises.size > 0;
|
|
4433
4363
|
}
|
|
4434
4364
|
}
|
|
4435
4365
|
|
|
4436
|
-
/*!
|
|
4437
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
4438
|
-
* All rights reserved.
|
|
4439
|
-
* For full license text, see the LICENSE.txt file
|
|
4440
|
-
*/
|
|
4441
4366
|
function buildServiceDescriptor$2(interceptors = {
|
|
4442
4367
|
request: [],
|
|
4443
4368
|
retry: void 0,
|
|
@@ -4447,9 +4372,17 @@ function buildServiceDescriptor$2(interceptors = {
|
|
|
4447
4372
|
return {
|
|
4448
4373
|
type: "fetch",
|
|
4449
4374
|
version: "1.0",
|
|
4450
|
-
service: function(
|
|
4451
|
-
|
|
4452
|
-
|
|
4375
|
+
service: function(input, init) {
|
|
4376
|
+
let contextSeed;
|
|
4377
|
+
let cleanInit = init;
|
|
4378
|
+
if (init !== void 0 && "__contextSeed" in init) {
|
|
4379
|
+
const { __contextSeed, ...initWithoutSeed } = init;
|
|
4380
|
+
contextSeed = __contextSeed;
|
|
4381
|
+
cleanInit = Object.keys(initWithoutSeed).length === 0 ? void 0 : initWithoutSeed;
|
|
4382
|
+
}
|
|
4383
|
+
const fetchArgs = cleanInit === void 0 ? [input] : [input, cleanInit];
|
|
4384
|
+
const baseContext = interceptors.createContext?.();
|
|
4385
|
+
const context = contextSeed === void 0 ? baseContext : { ...baseContext, ...contextSeed };
|
|
4453
4386
|
const {
|
|
4454
4387
|
request: requestInterceptors = [],
|
|
4455
4388
|
retry: retryInterceptor = void 0,
|
|
@@ -4457,17 +4390,17 @@ function buildServiceDescriptor$2(interceptors = {
|
|
|
4457
4390
|
finally: finallyInterceptors = []
|
|
4458
4391
|
} = interceptors;
|
|
4459
4392
|
const pending = requestInterceptors.reduce(
|
|
4460
|
-
(previousPromise, interceptor) => previousPromise.then((
|
|
4461
|
-
resolvedPromiseLike$2(
|
|
4393
|
+
(previousPromise, interceptor) => previousPromise.then((args) => interceptor(args, context)),
|
|
4394
|
+
resolvedPromiseLike$2(fetchArgs)
|
|
4462
4395
|
);
|
|
4463
|
-
return Promise.resolve(pending).then((
|
|
4396
|
+
return Promise.resolve(pending).then((args) => {
|
|
4464
4397
|
if (retryInterceptor) {
|
|
4465
|
-
return retryInterceptor(
|
|
4398
|
+
return retryInterceptor(args, retryService, context);
|
|
4466
4399
|
} else {
|
|
4467
4400
|
if (retryService) {
|
|
4468
|
-
return retryService.applyRetry(() => fetch(...
|
|
4401
|
+
return retryService.applyRetry(() => fetch(...args));
|
|
4469
4402
|
}
|
|
4470
|
-
return fetch(...
|
|
4403
|
+
return fetch(...args);
|
|
4471
4404
|
}
|
|
4472
4405
|
}).then((response) => {
|
|
4473
4406
|
return responseInterceptors.reduce(
|
|
@@ -4536,25 +4469,25 @@ function setHeader(headerName, headerValue, [resource, options = {}], {
|
|
|
4536
4469
|
errorMessage = `Unexpected ${headerName} header encountered`
|
|
4537
4470
|
} = {}) {
|
|
4538
4471
|
let hasHeaderBeenSet = false;
|
|
4539
|
-
if (resource instanceof Request && !
|
|
4472
|
+
if (resource instanceof Request && !options?.headers) {
|
|
4540
4473
|
if (throwOnExisting && resource.headers.has(headerName)) {
|
|
4541
4474
|
throw new Error(errorMessage);
|
|
4542
4475
|
}
|
|
4543
4476
|
resource.headers.set(headerName, headerValue);
|
|
4544
4477
|
hasHeaderBeenSet = true;
|
|
4545
4478
|
}
|
|
4546
|
-
if (
|
|
4479
|
+
if (options?.headers instanceof Headers) {
|
|
4547
4480
|
if (throwOnExisting && options.headers.has(headerName)) {
|
|
4548
4481
|
throw new Error(errorMessage);
|
|
4549
4482
|
}
|
|
4550
4483
|
options.headers.set(headerName, headerValue);
|
|
4551
4484
|
} else {
|
|
4552
|
-
if (throwOnExisting &&
|
|
4485
|
+
if (throwOnExisting && options?.headers && Reflect.has(options.headers, headerName)) {
|
|
4553
4486
|
throw new Error(errorMessage);
|
|
4554
4487
|
}
|
|
4555
4488
|
if (!hasHeaderBeenSet) {
|
|
4556
4489
|
options.headers = {
|
|
4557
|
-
...options
|
|
4490
|
+
...options?.headers,
|
|
4558
4491
|
[headerName]: headerValue
|
|
4559
4492
|
};
|
|
4560
4493
|
}
|
|
@@ -5575,11 +5508,6 @@ function logCRUDLightningInteraction(eventSource, attributes) {
|
|
|
5575
5508
|
}
|
|
5576
5509
|
const instrumentation = new Instrumentation();
|
|
5577
5510
|
|
|
5578
|
-
/*!
|
|
5579
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
5580
|
-
* All rights reserved.
|
|
5581
|
-
* For full license text, see the LICENSE.txt file
|
|
5582
|
-
*/
|
|
5583
5511
|
function valueFor(value, path) {
|
|
5584
5512
|
if (path.length === 0 || path[0] === "") {
|
|
5585
5513
|
return value;
|
|
@@ -5747,7 +5675,7 @@ function getEnvironmentSetting(name) {
|
|
|
5747
5675
|
}
|
|
5748
5676
|
return undefined;
|
|
5749
5677
|
}
|
|
5750
|
-
// version: 1.
|
|
5678
|
+
// version: 1.441.0-0055bd971e
|
|
5751
5679
|
|
|
5752
5680
|
const environmentHasAura = typeof window !== 'undefined' && typeof window.$A !== 'undefined';
|
|
5753
5681
|
const defaultConfig = {
|
|
@@ -6143,6 +6071,7 @@ function buildLexRuntime5xxStatusResponseInterceptor(logger) {
|
|
|
6143
6071
|
// Throw a simple error to terminate the request completely
|
|
6144
6072
|
// The consumer has NOT opted in to handle 5xx errors, so we don't return any response
|
|
6145
6073
|
// The systemError event above will handle showing the gack dialog
|
|
6074
|
+
// Stays an Error (unlike the Luvio path below) — Conduit's FetchNetworkCommand wraps the rejection via toError(), which JSON-stringifies non-Error throws into a useless Error("{}").
|
|
6146
6075
|
// eslint-disable-next-line @salesforce/lds/no-error-in-production
|
|
6147
6076
|
throw new Error(error.message);
|
|
6148
6077
|
}
|
|
@@ -6183,11 +6112,10 @@ function buildLexRuntimeLuvio5xxStatusResponseInterceptor() {
|
|
|
6183
6112
|
window.setTimeout(() => {
|
|
6184
6113
|
dispatchGlobalEvent('markup://aura:systemError', evtArgs);
|
|
6185
6114
|
}, 0);
|
|
6186
|
-
// Throw
|
|
6187
|
-
//
|
|
6188
|
-
//
|
|
6189
|
-
|
|
6190
|
-
throw new Error(error.message);
|
|
6115
|
+
// Throw the FetchResponse so luvio's isFetchResponse() check (Environment.ts)
|
|
6116
|
+
// produces errorType: 'fetchResponse' instead of 'networkAdapterError',
|
|
6117
|
+
// matching the Aura path which throws AuraFetchResponse(500, ...).
|
|
6118
|
+
throw response;
|
|
6191
6119
|
}
|
|
6192
6120
|
return response;
|
|
6193
6121
|
};
|
|
@@ -6433,6 +6361,36 @@ function buildLuvioCsrfTokenInterceptor() {
|
|
|
6433
6361
|
};
|
|
6434
6362
|
}
|
|
6435
6363
|
|
|
6364
|
+
const ENTITY_ENCODING_HEADER = 'X-Chatter-Entity-Encoding';
|
|
6365
|
+
const ENTITY_ENCODING_DISABLED_VALUE = 'false';
|
|
6366
|
+
/**
|
|
6367
|
+
* Builds a request interceptor that sets `X-Chatter-Entity-Encoding: false` on
|
|
6368
|
+
* outgoing requests. Connect REST applies HTML4 entity escaping to every string
|
|
6369
|
+
* field of a response unless this header is sent with the literal value "false"
|
|
6370
|
+
* (case-insensitive); any other value is equivalent to omitting the header.
|
|
6371
|
+
*/
|
|
6372
|
+
function buildEntityEncodingInterceptor() {
|
|
6373
|
+
return (fetchArgs) => {
|
|
6374
|
+
return resolvedPromiseLike$2(setHeader(ENTITY_ENCODING_HEADER, ENTITY_ENCODING_DISABLED_VALUE, fetchArgs));
|
|
6375
|
+
};
|
|
6376
|
+
}
|
|
6377
|
+
/**
|
|
6378
|
+
* Builds a Luvio request interceptor that sets `X-Chatter-Entity-Encoding: false`
|
|
6379
|
+
* on the outgoing ResourceRequest when the header is absent. See
|
|
6380
|
+
* {@link buildEntityEncodingInterceptor} for context.
|
|
6381
|
+
*/
|
|
6382
|
+
function buildLuvioEntityEncodingInterceptor() {
|
|
6383
|
+
return (resourceRequest) => {
|
|
6384
|
+
if (!resourceRequest.headers) {
|
|
6385
|
+
resourceRequest.headers = {};
|
|
6386
|
+
}
|
|
6387
|
+
if (!resourceRequest.headers[ENTITY_ENCODING_HEADER]) {
|
|
6388
|
+
resourceRequest.headers[ENTITY_ENCODING_HEADER] = ENTITY_ENCODING_DISABLED_VALUE;
|
|
6389
|
+
}
|
|
6390
|
+
return resolvedPromiseLike$2(resourceRequest);
|
|
6391
|
+
};
|
|
6392
|
+
}
|
|
6393
|
+
|
|
6436
6394
|
function createInstrumentationIdContext() {
|
|
6437
6395
|
return () => ({
|
|
6438
6396
|
instrumentationId: generateRequestId(),
|
|
@@ -7193,6 +7151,7 @@ const composedFetchNetworkAdapter = {
|
|
|
7193
7151
|
buildLuvioTransportMarksSendInterceptor(),
|
|
7194
7152
|
buildLuvioPageScopedCacheRequestInterceptor(),
|
|
7195
7153
|
buildLuvioCsrfTokenInterceptor(),
|
|
7154
|
+
buildLuvioEntityEncodingInterceptor(),
|
|
7196
7155
|
],
|
|
7197
7156
|
retry: buildLuvioFetchRetryInterceptor(),
|
|
7198
7157
|
response: [
|
|
@@ -9606,18 +9565,8 @@ class PredictionsReadyManager {
|
|
|
9606
9565
|
}
|
|
9607
9566
|
}
|
|
9608
9567
|
|
|
9609
|
-
/*!
|
|
9610
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
9611
|
-
* All rights reserved.
|
|
9612
|
-
* For full license text, see the LICENSE.txt file
|
|
9613
|
-
*/
|
|
9614
9568
|
class CacheInclusionPolicyService {
|
|
9615
9569
|
}
|
|
9616
|
-
/*!
|
|
9617
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
9618
|
-
* All rights reserved.
|
|
9619
|
-
* For full license text, see the LICENSE.txt file
|
|
9620
|
-
*/
|
|
9621
9570
|
class Ok {
|
|
9622
9571
|
constructor(value) {
|
|
9623
9572
|
this.value = value;
|
|
@@ -9679,18 +9628,8 @@ function rejectedPromiseLike(reason) {
|
|
|
9679
9628
|
};
|
|
9680
9629
|
}
|
|
9681
9630
|
function isPromiseLike(x) {
|
|
9682
|
-
return typeof
|
|
9631
|
+
return typeof x?.then === "function";
|
|
9683
9632
|
}
|
|
9684
|
-
/*!
|
|
9685
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
9686
|
-
* All rights reserved.
|
|
9687
|
-
* For full license text, see the LICENSE.txt file
|
|
9688
|
-
*/
|
|
9689
|
-
/*!
|
|
9690
|
-
* Copyright (c) 2022, Salesforce, Inc.,
|
|
9691
|
-
* All rights reserved.
|
|
9692
|
-
* For full license text, see the LICENSE.txt file
|
|
9693
|
-
*/
|
|
9694
9633
|
const { stringify, parse } = JSON;
|
|
9695
9634
|
function deepCopy(x) {
|
|
9696
9635
|
const stringified = stringify(x);
|
|
@@ -9714,7 +9653,7 @@ class DefaultRecordableCache {
|
|
|
9714
9653
|
if (value === void 0) {
|
|
9715
9654
|
this.missingKeysRead.add(key);
|
|
9716
9655
|
}
|
|
9717
|
-
if (options
|
|
9656
|
+
if (options?.copy) {
|
|
9718
9657
|
return deepCopy(value);
|
|
9719
9658
|
}
|
|
9720
9659
|
return value;
|
|
@@ -9758,7 +9697,7 @@ class DefaultFilteredCache {
|
|
|
9758
9697
|
get(key, options) {
|
|
9759
9698
|
const result = this.baseCache.get(key);
|
|
9760
9699
|
if (result && this.predicate(key, result)) {
|
|
9761
|
-
if (options
|
|
9700
|
+
if (options?.copy) {
|
|
9762
9701
|
return deepCopy(result);
|
|
9763
9702
|
}
|
|
9764
9703
|
return result;
|
|
@@ -9854,7 +9793,7 @@ class DefaultCache {
|
|
|
9854
9793
|
this.data = {};
|
|
9855
9794
|
}
|
|
9856
9795
|
get(key, options) {
|
|
9857
|
-
if (options
|
|
9796
|
+
if (options?.copy) {
|
|
9858
9797
|
return deepCopy(this.data[key]);
|
|
9859
9798
|
}
|
|
9860
9799
|
return this.data[key];
|
|
@@ -10146,6 +10085,7 @@ function getLexRuntimeDefaultInterceptorConfig(logger) {
|
|
|
10146
10085
|
buildActionMarksSendInterceptor(),
|
|
10147
10086
|
buildTransportMarksSendInterceptor(),
|
|
10148
10087
|
buildCsrfTokenInterceptor(),
|
|
10088
|
+
buildEntityEncodingInterceptor(),
|
|
10149
10089
|
],
|
|
10150
10090
|
retry: buildCsrfRetryInterceptor(),
|
|
10151
10091
|
response: [
|
|
@@ -10917,4 +10857,4 @@ function ldsEngineCreator() {
|
|
|
10917
10857
|
}
|
|
10918
10858
|
|
|
10919
10859
|
export { LexRequestStrategy, PdlPrefetcherEventType, PdlRequestPriority, buildPredictorForContext, configService, ldsEngineCreator as default, initializeLDS, initializeOneStore, notifyUpdateAvailableFactory, registerRequestStrategy, saveRequestAsPrediction, subscribeToPrefetcherEvents, unregisterRequestStrategy, whenPredictionsReady };
|
|
10920
|
-
// version: 1.
|
|
10860
|
+
// version: 1.441.0-5e7d04c146
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { RequestInterceptor } from '@conduit-client/service-fetch-network/v1';
|
|
2
|
+
import type { ResourceRequest } from '@luvio/engine';
|
|
3
|
+
export declare const ENTITY_ENCODING_HEADER = "X-Chatter-Entity-Encoding";
|
|
4
|
+
export declare const ENTITY_ENCODING_DISABLED_VALUE = "false";
|
|
5
|
+
/**
|
|
6
|
+
* Builds a request interceptor that sets `X-Chatter-Entity-Encoding: false` on
|
|
7
|
+
* outgoing requests. Connect REST applies HTML4 entity escaping to every string
|
|
8
|
+
* field of a response unless this header is sent with the literal value "false"
|
|
9
|
+
* (case-insensitive); any other value is equivalent to omitting the header.
|
|
10
|
+
*/
|
|
11
|
+
export declare function buildEntityEncodingInterceptor(): RequestInterceptor;
|
|
12
|
+
/**
|
|
13
|
+
* Builds a Luvio request interceptor that sets `X-Chatter-Entity-Encoding: false`
|
|
14
|
+
* on the outgoing ResourceRequest when the header is absent. See
|
|
15
|
+
* {@link buildEntityEncodingInterceptor} for context.
|
|
16
|
+
*/
|
|
17
|
+
export declare function buildLuvioEntityEncodingInterceptor(): (resourceRequest: ResourceRequest) => PromiseLike<ResourceRequest>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/lds-runtime-aura",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.441.0",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
5
5
|
"description": "LDS engine for Aura runtime.",
|
|
6
6
|
"main": "dist/ldsEngineCreator.js",
|
|
@@ -34,52 +34,52 @@
|
|
|
34
34
|
"release:corejar": "yarn build && ../core-build/scripts/core.js --name=lds-runtime-aura"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
|
-
"@conduit-client/service-provisioner": "3.
|
|
38
|
-
"@conduit-client/tools-core": "3.
|
|
39
|
-
"@salesforce/lds-adapters-apex": "^1.
|
|
40
|
-
"@salesforce/lds-adapters-uiapi": "^1.
|
|
41
|
-
"@salesforce/lds-ads-bridge": "^1.
|
|
42
|
-
"@salesforce/lds-aura-storage": "^1.
|
|
43
|
-
"@salesforce/lds-bindings": "^1.
|
|
44
|
-
"@salesforce/lds-instrumentation": "^1.
|
|
45
|
-
"@salesforce/lds-network-adapter": "^1.
|
|
46
|
-
"@salesforce/lds-network-aura": "^1.
|
|
47
|
-
"@salesforce/lds-network-fetch": "^1.
|
|
37
|
+
"@conduit-client/service-provisioner": "3.21.0",
|
|
38
|
+
"@conduit-client/tools-core": "3.21.0",
|
|
39
|
+
"@salesforce/lds-adapters-apex": "^1.441.0",
|
|
40
|
+
"@salesforce/lds-adapters-uiapi": "^1.441.0",
|
|
41
|
+
"@salesforce/lds-ads-bridge": "^1.441.0",
|
|
42
|
+
"@salesforce/lds-aura-storage": "^1.441.0",
|
|
43
|
+
"@salesforce/lds-bindings": "^1.441.0",
|
|
44
|
+
"@salesforce/lds-instrumentation": "^1.441.0",
|
|
45
|
+
"@salesforce/lds-network-adapter": "^1.441.0",
|
|
46
|
+
"@salesforce/lds-network-aura": "^1.441.0",
|
|
47
|
+
"@salesforce/lds-network-fetch": "^1.441.0",
|
|
48
48
|
"jwt-encode": "1.0.1"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@conduit-client/command-aura-graphql-normalized-cache-control": "3.
|
|
52
|
-
"@conduit-client/command-aura-network": "3.
|
|
53
|
-
"@conduit-client/command-aura-normalized-cache-control": "3.
|
|
54
|
-
"@conduit-client/command-aura-resource-cache-control": "3.
|
|
55
|
-
"@conduit-client/command-fetch-network": "3.
|
|
56
|
-
"@conduit-client/command-http-graphql-normalized-cache-control": "3.
|
|
57
|
-
"@conduit-client/command-http-normalized-cache-control": "3.
|
|
58
|
-
"@conduit-client/command-ndjson": "3.
|
|
59
|
-
"@conduit-client/command-network": "3.
|
|
60
|
-
"@conduit-client/command-sse": "3.
|
|
61
|
-
"@conduit-client/command-streaming": "3.
|
|
62
|
-
"@conduit-client/service-aura-network": "3.
|
|
63
|
-
"@conduit-client/service-bindings-imperative": "3.
|
|
64
|
-
"@conduit-client/service-bindings-lwc": "3.
|
|
65
|
-
"@conduit-client/service-cache": "3.
|
|
66
|
-
"@conduit-client/service-cache-control": "3.
|
|
67
|
-
"@conduit-client/service-cache-inclusion-policy": "3.
|
|
68
|
-
"@conduit-client/service-config": "3.
|
|
69
|
-
"@conduit-client/service-feature-flags": "3.
|
|
70
|
-
"@conduit-client/service-fetch-network": "3.
|
|
71
|
-
"@conduit-client/service-instrument-command": "3.
|
|
72
|
-
"@conduit-client/service-pubsub": "3.
|
|
73
|
-
"@conduit-client/service-store": "3.
|
|
74
|
-
"@conduit-client/utils": "3.
|
|
51
|
+
"@conduit-client/command-aura-graphql-normalized-cache-control": "3.21.0",
|
|
52
|
+
"@conduit-client/command-aura-network": "3.21.0",
|
|
53
|
+
"@conduit-client/command-aura-normalized-cache-control": "3.21.0",
|
|
54
|
+
"@conduit-client/command-aura-resource-cache-control": "3.21.0",
|
|
55
|
+
"@conduit-client/command-fetch-network": "3.21.0",
|
|
56
|
+
"@conduit-client/command-http-graphql-normalized-cache-control": "3.21.0",
|
|
57
|
+
"@conduit-client/command-http-normalized-cache-control": "3.21.0",
|
|
58
|
+
"@conduit-client/command-ndjson": "3.21.0",
|
|
59
|
+
"@conduit-client/command-network": "3.21.0",
|
|
60
|
+
"@conduit-client/command-sse": "3.21.0",
|
|
61
|
+
"@conduit-client/command-streaming": "3.21.0",
|
|
62
|
+
"@conduit-client/service-aura-network": "3.21.0",
|
|
63
|
+
"@conduit-client/service-bindings-imperative": "3.21.0",
|
|
64
|
+
"@conduit-client/service-bindings-lwc": "3.21.0",
|
|
65
|
+
"@conduit-client/service-cache": "3.21.0",
|
|
66
|
+
"@conduit-client/service-cache-control": "3.21.0",
|
|
67
|
+
"@conduit-client/service-cache-inclusion-policy": "3.21.0",
|
|
68
|
+
"@conduit-client/service-config": "3.21.0",
|
|
69
|
+
"@conduit-client/service-feature-flags": "3.21.0",
|
|
70
|
+
"@conduit-client/service-fetch-network": "3.21.0",
|
|
71
|
+
"@conduit-client/service-instrument-command": "3.21.0",
|
|
72
|
+
"@conduit-client/service-pubsub": "3.21.0",
|
|
73
|
+
"@conduit-client/service-store": "3.21.0",
|
|
74
|
+
"@conduit-client/utils": "3.21.0",
|
|
75
75
|
"@luvio/network-adapter-composable": "0.160.5",
|
|
76
76
|
"@luvio/network-adapter-fetch": "0.160.5",
|
|
77
77
|
"@lwc/state": "^0.29.0",
|
|
78
|
-
"@salesforce/lds-adapters-onestore-graphql": "^1.
|
|
78
|
+
"@salesforce/lds-adapters-onestore-graphql": "^1.441.0",
|
|
79
79
|
"@salesforce/lds-adapters-uiapi-lex": "^1.415.0",
|
|
80
|
-
"@salesforce/lds-durable-storage": "^1.
|
|
81
|
-
"@salesforce/lds-luvio-service": "^1.
|
|
82
|
-
"@salesforce/lds-luvio-uiapi-records-service": "^1.
|
|
80
|
+
"@salesforce/lds-durable-storage": "^1.441.0",
|
|
81
|
+
"@salesforce/lds-luvio-service": "^1.441.0",
|
|
82
|
+
"@salesforce/lds-luvio-uiapi-records-service": "^1.441.0"
|
|
83
83
|
},
|
|
84
84
|
"luvioBundlesize": [
|
|
85
85
|
{
|
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
"maxSize": {
|
|
88
88
|
"none": "383 kB",
|
|
89
89
|
"min": "190 kB",
|
|
90
|
-
"compressed": "63 kB"
|
|
90
|
+
"compressed": "63.5 kB"
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
93
|
],
|