@bringg/dashboard-sdk 9.91.0 → 9.91.1

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.
@@ -1,11 +1,11 @@
1
1
  import { KeysetPaginationResponse, MerchantConfigurationCSVField, Vehicle, VehicleChange } from '@bringg/types';
2
- import { StorableEventUnsubscribe } from '../../Data/storable-types';
3
2
  import { DataOptions, GroupValue } from '../../data-entity';
4
3
  import Session from '../../Services/Identity/Session';
5
4
  import { PagedVehiclesFilters, PagedVehiclesResponse, VehicleGroup, VehiclesCsvImportResponse } from '../Vehicle.consts';
6
5
  type VehicleDTO = Vehicle & {
7
6
  default_parking_spot_external_id?: string;
8
7
  };
8
+ export declare const MISSING_VEHICLES_CACHE_TTL: number;
9
9
  export default class VehiclesApi {
10
10
  private readonly vehiclesStore;
11
11
  private readonly vehiclesService;
@@ -23,8 +23,8 @@ export default class VehiclesApi {
23
23
  create(vehicleData: Partial<VehicleDTO>): Promise<Vehicle>;
24
24
  updateStoreOnEvents(): void;
25
25
  private mapVehicle;
26
- onUpdate(callback: (vehicle: Vehicle) => void): StorableEventUnsubscribe;
27
- onDelete(callback: (vehicle: Vehicle) => void): StorableEventUnsubscribe;
26
+ onUpdate(callback: (vehicle: Vehicle) => void): import("../../Data/storable-types").StorableEventUnsubscribe;
27
+ onDelete(callback: (vehicle: Vehicle) => void): import("../../Data/storable-types").StorableEventUnsubscribe;
28
28
  onUnassigned(callback: (vehicle: Vehicle) => void): () => void;
29
29
  get(id: number): Vehicle;
30
30
  getAll(): Vehicle[];
@@ -10,6 +10,12 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
14
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
16
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
17
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
18
+ };
13
19
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
20
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
21
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -50,14 +56,29 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
50
56
  return (mod && mod.__esModule) ? mod : { "default": mod };
51
57
  };
52
58
  Object.defineProperty(exports, "__esModule", { value: true });
59
+ exports.MISSING_VEHICLES_CACHE_TTL = void 0;
53
60
  var types_1 = require("@bringg/types");
54
61
  var lodash_1 = require("lodash");
55
62
  var data_entity_1 = require("../../data-entity");
56
63
  var data_store_1 = __importDefault(require("../../data-store"));
57
64
  var storable_data_service_1 = __importDefault(require("../../storable-data-service"));
65
+ var negative_cache_1 = __importDefault(require("../../utils/decorators/negative-cache"));
58
66
  var Vehicle_consts_1 = require("../Vehicle.consts");
59
67
  var vehicle_realtime_subscriptions_1 = __importDefault(require("./vehicle-realtime-subscriptions"));
60
68
  var vehicles_service_1 = __importDefault(require("./vehicles-service"));
69
+ // How long a vehicle id the server did not return stays out of `batch_get` requests.
70
+ exports.MISSING_VEHICLES_CACHE_TTL = 1000 * 60 * 10; // 10 minutes
71
+ var MAX_VEHICLES_CHUNK_SIZE = 500;
72
+ var SERVER_DEFAULT_VEHICLES_CHUNK_SIZE = 50;
73
+ var getSafeChunkSize = function (chunkSize) {
74
+ if ((0, lodash_1.isNil)(chunkSize) || chunkSize > MAX_VEHICLES_CHUNK_SIZE) {
75
+ return MAX_VEHICLES_CHUNK_SIZE;
76
+ }
77
+ if (chunkSize <= 0) {
78
+ return SERVER_DEFAULT_VEHICLES_CHUNK_SIZE;
79
+ }
80
+ return chunkSize;
81
+ };
61
82
  var VehiclesApi = /** @class */ (function () {
62
83
  function VehiclesApi(session) {
63
84
  var _this = this;
@@ -82,14 +103,17 @@ var VehiclesApi = /** @class */ (function () {
82
103
  var _this = this;
83
104
  return this.storableDataService.loadAll('loadAllByTeam', function () { return _this.vehiclesService.loadAllByTeam(teamId); }, __assign(__assign({}, options), { groupType: Vehicle_consts_1.VehicleGroup.Team, groupValue: teamId }));
84
105
  };
106
+ // Suppression assumes an id absent from the response is ones the backend can not return for the current user.
107
+ // Note! Items dropped by the server because of limit / chunkSize also fall in this bucket.
85
108
  VehiclesApi.prototype.loadMany = function (ids, options) {
86
109
  if (options === void 0) { options = data_entity_1.DEFAULT_OPTIONS; }
87
110
  return __awaiter(this, void 0, void 0, function () {
88
111
  var optionsWithDefaults, chunkSize;
89
112
  var _this = this;
90
113
  return __generator(this, function (_a) {
91
- optionsWithDefaults = (0, lodash_1.defaults)({}, options, __assign(__assign({}, data_entity_1.DEFAULT_OPTIONS), { chunkSize: 500 }));
92
- chunkSize = optionsWithDefaults.chunkSize;
114
+ optionsWithDefaults = (0, lodash_1.defaults)({}, options, __assign({}, data_entity_1.DEFAULT_OPTIONS));
115
+ chunkSize = getSafeChunkSize(optionsWithDefaults.chunkSize);
116
+ optionsWithDefaults.chunkSize = chunkSize;
93
117
  return [2 /*return*/, this.storableDataService.loadMany('batchGet', function (idsToLoad) {
94
118
  if (idsToLoad.length === 0) {
95
119
  return Promise.resolve([]);
@@ -240,6 +264,12 @@ var VehiclesApi = /** @class */ (function () {
240
264
  });
241
265
  });
242
266
  };
267
+ __decorate([
268
+ (0, negative_cache_1.default)({
269
+ ttlMs: exports.MISSING_VEHICLES_CACHE_TTL,
270
+ hasItem: function (vehiclesApi, id) { return !(0, lodash_1.isNil)(vehiclesApi.get(id)); }
271
+ })
272
+ ], VehiclesApi.prototype, "loadMany", null);
243
273
  return VehiclesApi;
244
274
  }());
245
275
  exports.default = VehiclesApi;
@@ -1 +1 @@
1
- {"version":3,"file":"vehicles-api.js","sourceRoot":"","sources":["../../../src/Vehicle/v2/vehicles-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vehicles-api.js","sourceRoot":"","sources":["../../../src/Vehicle/v2/vehicles-api.ts"],"names":[],"mappings":"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"}
@@ -24784,7 +24784,7 @@ var BringgException_1 = __webpack_require__(43605);
24784
24784
  var client_page_1 = __webpack_require__(16573);
24785
24785
  var Logger_1 = __importDefault(__webpack_require__(55860));
24786
24786
  var abort_1 = __webpack_require__(34179);
24787
- var version = '9.91.0';
24787
+ var version = '9.91.1';
24788
24788
  function logErrorResponse(response) {
24789
24789
  var data = response.data, status = response.status;
24790
24790
  try {
@@ -34649,6 +34649,12 @@ var __assign = (this && this.__assign) || function () {
34649
34649
  };
34650
34650
  return __assign.apply(this, arguments);
34651
34651
  };
34652
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
34653
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
34654
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
34655
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
34656
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
34657
+ };
34652
34658
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
34653
34659
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
34654
34660
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -34689,14 +34695,29 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
34689
34695
  return (mod && mod.__esModule) ? mod : { "default": mod };
34690
34696
  };
34691
34697
  Object.defineProperty(exports, "__esModule", ({ value: true }));
34698
+ exports.MISSING_VEHICLES_CACHE_TTL = void 0;
34692
34699
  var types_1 = __webpack_require__(63127);
34693
34700
  var lodash_1 = __webpack_require__(96486);
34694
34701
  var data_entity_1 = __webpack_require__(91083);
34695
34702
  var data_store_1 = __importDefault(__webpack_require__(73135));
34696
34703
  var storable_data_service_1 = __importDefault(__webpack_require__(45297));
34704
+ var negative_cache_1 = __importDefault(__webpack_require__(2521));
34697
34705
  var Vehicle_consts_1 = __webpack_require__(84010);
34698
34706
  var vehicle_realtime_subscriptions_1 = __importDefault(__webpack_require__(25240));
34699
34707
  var vehicles_service_1 = __importDefault(__webpack_require__(87386));
34708
+ // How long a vehicle id the server did not return stays out of `batch_get` requests.
34709
+ exports.MISSING_VEHICLES_CACHE_TTL = 1000 * 60 * 10; // 10 minutes
34710
+ var MAX_VEHICLES_CHUNK_SIZE = 500;
34711
+ var SERVER_DEFAULT_VEHICLES_CHUNK_SIZE = 50;
34712
+ var getSafeChunkSize = function (chunkSize) {
34713
+ if ((0, lodash_1.isNil)(chunkSize) || chunkSize > MAX_VEHICLES_CHUNK_SIZE) {
34714
+ return MAX_VEHICLES_CHUNK_SIZE;
34715
+ }
34716
+ if (chunkSize <= 0) {
34717
+ return SERVER_DEFAULT_VEHICLES_CHUNK_SIZE;
34718
+ }
34719
+ return chunkSize;
34720
+ };
34700
34721
  var VehiclesApi = /** @class */ (function () {
34701
34722
  function VehiclesApi(session) {
34702
34723
  var _this = this;
@@ -34721,14 +34742,17 @@ var VehiclesApi = /** @class */ (function () {
34721
34742
  var _this = this;
34722
34743
  return this.storableDataService.loadAll('loadAllByTeam', function () { return _this.vehiclesService.loadAllByTeam(teamId); }, __assign(__assign({}, options), { groupType: Vehicle_consts_1.VehicleGroup.Team, groupValue: teamId }));
34723
34744
  };
34745
+ // Suppression assumes an id absent from the response is ones the backend can not return for the current user.
34746
+ // Note! Items dropped by the server because of limit / chunkSize also fall in this bucket.
34724
34747
  VehiclesApi.prototype.loadMany = function (ids, options) {
34725
34748
  if (options === void 0) { options = data_entity_1.DEFAULT_OPTIONS; }
34726
34749
  return __awaiter(this, void 0, void 0, function () {
34727
34750
  var optionsWithDefaults, chunkSize;
34728
34751
  var _this = this;
34729
34752
  return __generator(this, function (_a) {
34730
- optionsWithDefaults = (0, lodash_1.defaults)({}, options, __assign(__assign({}, data_entity_1.DEFAULT_OPTIONS), { chunkSize: 500 }));
34731
- chunkSize = optionsWithDefaults.chunkSize;
34753
+ optionsWithDefaults = (0, lodash_1.defaults)({}, options, __assign({}, data_entity_1.DEFAULT_OPTIONS));
34754
+ chunkSize = getSafeChunkSize(optionsWithDefaults.chunkSize);
34755
+ optionsWithDefaults.chunkSize = chunkSize;
34732
34756
  return [2 /*return*/, this.storableDataService.loadMany('batchGet', function (idsToLoad) {
34733
34757
  if (idsToLoad.length === 0) {
34734
34758
  return Promise.resolve([]);
@@ -34879,6 +34903,12 @@ var VehiclesApi = /** @class */ (function () {
34879
34903
  });
34880
34904
  });
34881
34905
  };
34906
+ __decorate([
34907
+ (0, negative_cache_1.default)({
34908
+ ttlMs: exports.MISSING_VEHICLES_CACHE_TTL,
34909
+ hasItem: function (vehiclesApi, id) { return !(0, lodash_1.isNil)(vehiclesApi.get(id)); }
34910
+ })
34911
+ ], VehiclesApi.prototype, "loadMany", null);
34882
34912
  return VehiclesApi;
34883
34913
  }());
34884
34914
  exports["default"] = VehiclesApi;
@@ -37343,6 +37373,157 @@ exports["default"] = withPromiseCache;
37343
37373
 
37344
37374
  /***/ }),
37345
37375
 
37376
+ /***/ 2521:
37377
+ /***/ (function(__unused_webpack_module, exports) {
37378
+
37379
+ "use strict";
37380
+
37381
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
37382
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37383
+ return new (P || (P = Promise))(function (resolve, reject) {
37384
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
37385
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
37386
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
37387
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
37388
+ });
37389
+ };
37390
+ var __generator = (this && this.__generator) || function (thisArg, body) {
37391
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
37392
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
37393
+ function verb(n) { return function (v) { return step([n, v]); }; }
37394
+ function step(op) {
37395
+ if (f) throw new TypeError("Generator is already executing.");
37396
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
37397
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
37398
+ if (y = 0, t) op = [op[0] & 2, t.value];
37399
+ switch (op[0]) {
37400
+ case 0: case 1: t = op; break;
37401
+ case 4: _.label++; return { value: op[1], done: false };
37402
+ case 5: _.label++; y = op[1]; op = [0]; continue;
37403
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
37404
+ default:
37405
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37406
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
37407
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
37408
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
37409
+ if (t[2]) _.ops.pop();
37410
+ _.trys.pop(); continue;
37411
+ }
37412
+ op = body.call(thisArg, _);
37413
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
37414
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
37415
+ }
37416
+ };
37417
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
37418
+ exports.DEFAULT_NEGATIVE_CACHE_MAX_SIZE = void 0;
37419
+ exports.DEFAULT_NEGATIVE_CACHE_MAX_SIZE = 5000;
37420
+ var instanceCaches = new WeakMap();
37421
+ var getCache = function (instance) {
37422
+ var cache = instanceCaches.get(instance);
37423
+ if (!cache) {
37424
+ cache = { misses: new Map(), lastSweptAt: Date.now() };
37425
+ instanceCaches.set(instance, cache);
37426
+ }
37427
+ return cache;
37428
+ };
37429
+ // Entries are only ever added by the decorated method, so sweeping on call covers every growth path
37430
+ // without a timer that would pin the instance and defeat the WeakMap. An entry recorded just after a
37431
+ // sweep survives until the sweep after next, so worst-case lifetime is ~2x ttlMs.
37432
+ var sweep = function (cache, ttlMs, now) {
37433
+ if (now - cache.lastSweptAt < ttlMs) {
37434
+ return;
37435
+ }
37436
+ var expired = [];
37437
+ cache.misses.forEach(function (missedAt, id) {
37438
+ if (now - missedAt >= ttlMs) {
37439
+ expired.push(id);
37440
+ }
37441
+ });
37442
+ expired.forEach(function (id) { return cache.misses.delete(id); });
37443
+ cache.lastSweptAt = now;
37444
+ };
37445
+ // A burst of distinct misses inside one ttl window has nothing to sweep - drop oldest first.
37446
+ // Map keeps insertion order and entries are inserted at miss time, so the front is the oldest.
37447
+ // Runs AFTER recording, so a single call that overshoots the cap is trimmed by that same call.
37448
+ var enforceCap = function (cache, maxSize) {
37449
+ if (cache.misses.size <= maxSize) {
37450
+ return;
37451
+ }
37452
+ var overflow = cache.misses.size - maxSize;
37453
+ var oldestFirst = cache.misses.keys();
37454
+ for (var i = 0; i < overflow; i++) {
37455
+ cache.misses.delete(oldestFirst.next().value);
37456
+ }
37457
+ };
37458
+ /**
37459
+ * Suppresses ids the server repeatedly fails to return.
37460
+ *
37461
+ * Decorates a `loadMany(ids, options?)` method: ids the previous response omitted are dropped from the
37462
+ * next request until `ttlMs` elapses, so an id the backend cannot return (soft-deleted, scoped to another
37463
+ * team, external, other company) is requested once per TTL instead of on every call.
37464
+ *
37465
+ * TODO(TS 5.x): written as a legacy decorator (`experimentalDecorators`, TS 4.9 here - standard Stage 3
37466
+ * decorators need TS 5.0+). Upgrade when the repo moves to TS 5.x: a Stage 3 method decorator takes
37467
+ * `(originalMethod, context)` and returns the replacement function, so the `PropertyDescriptor`
37468
+ * plumbing below goes away. `./cached-promise.ts` needs the same treatment at that point.
37469
+ */
37470
+ function withNegativeCache(_a) {
37471
+ var ttlMs = _a.ttlMs, hasItem = _a.hasItem, _b = _a.maxSize, maxSize = _b === void 0 ? exports.DEFAULT_NEGATIVE_CACHE_MAX_SIZE : _b;
37472
+ return function (target, propertyName, propertyDescriptor) {
37473
+ var method = propertyDescriptor.value;
37474
+ propertyDescriptor.value = function (ids, options) {
37475
+ return __awaiter(this, void 0, void 0, function () {
37476
+ var instanceCache, cache, idsToLoad, items, returnedIds, now;
37477
+ var _this = this;
37478
+ return __generator(this, function (_a) {
37479
+ switch (_a.label) {
37480
+ case 0:
37481
+ // Nothing to load, and no instance to key the per-instance cache on when the method was
37482
+ // detached from it (`const { loadMany } = api`).
37483
+ if (!this || !(ids === null || ids === void 0 ? void 0 : ids.length)) {
37484
+ return [2 /*return*/, method.call(this, ids, options)];
37485
+ }
37486
+ instanceCache = getCache(this);
37487
+ cache = instanceCache.misses;
37488
+ sweep(instanceCache, ttlMs, Date.now());
37489
+ if ((options === null || options === void 0 ? void 0 : options.useCache) === false) {
37490
+ ids.forEach(function (id) { return cache.delete(id); });
37491
+ }
37492
+ idsToLoad = ids.filter(function (id) {
37493
+ var missedAt = cache.get(id);
37494
+ if (missedAt === undefined) {
37495
+ return true;
37496
+ }
37497
+ // Expired, or the item showed up by another route - either way it is requestable again.
37498
+ if (Date.now() - missedAt >= ttlMs || hasItem(_this, id)) {
37499
+ cache.delete(id);
37500
+ return true;
37501
+ }
37502
+ return false;
37503
+ });
37504
+ if (!idsToLoad.length) {
37505
+ return [2 /*return*/, []];
37506
+ }
37507
+ return [4 /*yield*/, method.call(this, idsToLoad, options)];
37508
+ case 1:
37509
+ items = _a.sent();
37510
+ returnedIds = new Set(items.map(function (item) { return item.id; }));
37511
+ now = Date.now();
37512
+ idsToLoad.forEach(function (id) { return (returnedIds.has(id) ? cache.delete(id) : cache.set(id, now)); });
37513
+ enforceCap(instanceCache, maxSize);
37514
+ return [2 /*return*/, items];
37515
+ }
37516
+ });
37517
+ });
37518
+ };
37519
+ return propertyDescriptor;
37520
+ };
37521
+ }
37522
+ exports["default"] = withNegativeCache;
37523
+ //# sourceMappingURL=negative-cache.js.map
37524
+
37525
+ /***/ }),
37526
+
37346
37527
  /***/ 52581:
37347
37528
  /***/ ((__unused_webpack_module, exports) => {
37348
37529