@bringg/dashboard-sdk 9.77.1-pre → 9.77.2

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.
@@ -52,23 +52,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
53
  var types_1 = require("@bringg/types");
54
54
  var lodash_1 = require("lodash");
55
+ var storable_realtime_subscriptions_1 = __importDefault(require("../../Data/storable-realtime-subscriptions"));
55
56
  var data_entity_1 = require("../../data-entity");
56
57
  var data_store_1 = __importDefault(require("../../data-store"));
57
58
  var storable_data_service_1 = __importDefault(require("../../storable-data-service"));
58
59
  var Vehicle_consts_1 = require("../Vehicle.consts");
59
- var vehicle_realtime_subscriptions_1 = __importDefault(require("./vehicle-realtime-subscriptions"));
60
60
  var vehicles_service_1 = __importDefault(require("./vehicles-service"));
61
61
  var VehiclesApi = /** @class */ (function () {
62
62
  function VehiclesApi(session) {
63
- var _this = this;
64
63
  var groupFilters = [
65
64
  { groupType: Vehicle_consts_1.VehicleGroup.Team, keyFunc: function (vehicle) { return vehicle.team_id; } },
66
65
  { groupType: Vehicle_consts_1.VehicleGroup.IsTrailer, keyFunc: function (vehicle) { return !!vehicle.is_trailer; } }
67
66
  ];
68
67
  this.vehiclesStore = new data_store_1.default(groupFilters);
69
68
  this.vehiclesService = new vehicles_service_1.default(session);
70
- this.storableDataService = new storable_data_service_1.default(this.vehiclesStore, function (vehicle) { return _this.mapVehicle(vehicle); });
71
- this.vehicleRealtimeSubscriptions = new vehicle_realtime_subscriptions_1.default(session, this.vehiclesStore, this.storableDataService);
69
+ this.storableDataService = new storable_data_service_1.default(this.vehiclesStore);
70
+ this.storableRealtimeSubscriptions = new storable_realtime_subscriptions_1.default(session, this.vehiclesStore, this.storableDataService);
72
71
  }
73
72
  VehiclesApi.prototype.load = function (id, options) {
74
73
  var _this = this;
@@ -165,26 +164,21 @@ var VehiclesApi = /** @class */ (function () {
165
164
  return this.storableDataService.modify('create', function () { return _this.vehiclesService.create(vehicleData); });
166
165
  };
167
166
  VehiclesApi.prototype.updateStoreOnEvents = function () {
168
- this.vehicleRealtimeSubscriptions.updateStoreOnEvents();
169
- };
170
- // `trailer` is a derived field the reconciler maintains on trucks. Realtime vehicle payloads don't
171
- // carry it, so a plain truck update would otherwise REPLACE the cached truck and wipe its trailer.
172
- // Preserve the cached `trailer` whenever the incoming payload omits the key; take it from the payload
173
- // only when explicitly present (HTTP loads, PUT responses, reconciler writes).
174
- VehiclesApi.prototype.mapVehicle = function (vehicle) {
175
- var existing = this.vehiclesStore.get(vehicle.id);
176
- var current = existing && 'trailer' in existing && !('trailer' in vehicle)
177
- ? __assign(__assign({}, vehicle), { trailer: existing.trailer }) : vehicle;
178
- return { current: current, diff: existing };
167
+ this.storableRealtimeSubscriptions.updateStoreOnEvents([
168
+ { name: Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_UPDATE, isDelete: false },
169
+ { name: Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_DELETE, isDelete: true }
170
+ ]);
179
171
  };
180
172
  VehiclesApi.prototype.onUpdate = function (callback) {
181
- return this.vehicleRealtimeSubscriptions.onUpdate(callback);
173
+ return this.storableRealtimeSubscriptions.onEvent(Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_UPDATE, function (item) { return callback(item.current); });
182
174
  };
183
175
  VehiclesApi.prototype.onDelete = function (callback) {
184
- return this.vehicleRealtimeSubscriptions.onDelete(callback);
176
+ return this.storableRealtimeSubscriptions.onEvent(Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_DELETE, function (item) { return callback(item.current); });
185
177
  };
186
178
  VehiclesApi.prototype.onUnassigned = function (callback) {
187
- return this.vehicleRealtimeSubscriptions.onUnassigned(callback);
179
+ return this.storableRealtimeSubscriptions.onAnyEvent(Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_UNASSIGNED, function (vehicle) {
180
+ return callback(vehicle);
181
+ });
188
182
  };
189
183
  VehiclesApi.prototype.get = function (id) {
190
184
  return this.vehiclesStore.get(id);
@@ -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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"}
@@ -3069,18 +3069,19 @@ var BringgDashboardSDK = /** @class */ (function () {
3069
3069
  exports.BringgDashboardSDK = BringgDashboardSDK;
3070
3070
  function init(session) {
3071
3071
  return __awaiter(this, void 0, void 0, function () {
3072
- var bringg, workflows, taskRejectReasons;
3072
+ var bringg, customersApi, workflows, taskRejectReasons;
3073
3073
  return __generator(this, function (_a) {
3074
3074
  switch (_a.label) {
3075
3075
  case 0:
3076
3076
  bringg = new BringgDashboardSDK(session);
3077
+ customersApi = new customers_api_1.default(session);
3077
3078
  bringg.v2 = {
3078
3079
  vehicles: new vehicles_api_1.default(session),
3079
3080
  relay: new RelayApi_1.default(session),
3080
- tasks: new tasks_api_1.default(session),
3081
+ tasks: new tasks_api_1.default(session, customersApi),
3081
3082
  users: new users_api_1.default(session),
3082
3083
  tags: new tags_api_1.default(session),
3083
- customers: new customers_api_1.default(session),
3084
+ customers: customersApi,
3084
3085
  plannedDeliveryWindows: new planned_delivery_windows_api_1.default(session),
3085
3086
  optimizationResultApi: new optimization_result_api_1.default(session),
3086
3087
  exclusionWindow: new exclusion_window_api_1.ExclusionWindowApi(session),
@@ -8269,6 +8270,17 @@ exports.objectMerger = { deepMerge: deepMerge };
8269
8270
 
8270
8271
  "use strict";
8271
8272
 
8273
+ var __assign = (this && this.__assign) || function () {
8274
+ __assign = Object.assign || function(t) {
8275
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
8276
+ s = arguments[i];
8277
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
8278
+ t[p] = s[p];
8279
+ }
8280
+ return t;
8281
+ };
8282
+ return __assign.apply(this, arguments);
8283
+ };
8272
8284
  var __values = (this && this.__values) || function(o) {
8273
8285
  var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
8274
8286
  if (m) return m.call(o);
@@ -8299,7 +8311,6 @@ var StorableRealtimeSubscriptions = /** @class */ (function () {
8299
8311
  if (subEntityEvents === void 0) { subEntityEvents = []; }
8300
8312
  var _loop_1 = function (event_1) {
8301
8313
  this_1.realtimeSubscriptions.subscribe(event_1.name, function (item) {
8302
- var _a, _b;
8303
8314
  item = event_1.itemExtractor ? event_1.itemExtractor(item) : item;
8304
8315
  var data = event_1.extraDataFunc && event_1.extraDataFunc(item);
8305
8316
  if (data === null || data === void 0 ? void 0 : data.ignore) {
@@ -8316,16 +8327,10 @@ var StorableRealtimeSubscriptions = /** @class */ (function () {
8316
8327
  var skipStoreUpdate = !!(data === null || data === void 0 ? void 0 : data.skipStoreUpdate);
8317
8328
  if (skipStoreUpdate) {
8318
8329
  var mappedStorableItem = _this.storableDataService.mapItem(item, data === null || data === void 0 ? void 0 : data.params);
8319
- // Cache layer: reconcile dependent cached entities even when this entity itself is
8320
- // not stored (e.g. a not-yet-cached trailer moving between cached trucks).
8321
- (_a = event_1.onAfterStoreSync) === null || _a === void 0 ? void 0 : _a.call(event_1, mappedStorableItem);
8322
8330
  _this.runEventCallbacks(event_1.name, mappedStorableItem, { skipStoreUpdate: skipStoreUpdate });
8323
8331
  }
8324
8332
  else {
8325
8333
  var mappedStorableItem = _this.storableDataService.updateInStores(item, undefined, undefined, data === null || data === void 0 ? void 0 : data.params);
8326
- // Cache layer: let the entity reconcile dependent cached entities before any consumer
8327
- // is notified, so the whole store is consistent when store events fire.
8328
- (_b = event_1.onAfterStoreSync) === null || _b === void 0 ? void 0 : _b.call(event_1, mappedStorableItem);
8329
8334
  _this.runEventCallbacks(event_1.name, mappedStorableItem);
8330
8335
  }
8331
8336
  }
@@ -8347,11 +8352,75 @@ var StorableRealtimeSubscriptions = /** @class */ (function () {
8347
8352
  }
8348
8353
  var _loop_2 = function (subEntityEvent) {
8349
8354
  this_2.realtimeSubscriptions.subscribe(subEntityEvent.name, function (subEntityEventData) {
8355
+ var e_3, _a;
8356
+ var _b, _c;
8350
8357
  subEntityEvent.ignoreFields.forEach(function (field) { return delete subEntityEventData[field]; });
8358
+ var parentId = subEntityEventData[subEntityEvent.parentField];
8359
+ var entityId = subEntityEventData[subEntityEvent.idField || 'id'];
8360
+ var getParent = function () { return _this.dataStore.get(parentId); };
8361
+ var pendingEnrichers = [];
8362
+ if (subEntityEvent.enrich) {
8363
+ var activeEnrichers = subEntityEvent.enrich.enrichers.filter(function (e) {
8364
+ return e.shouldEnrich(subEntityEventData, getParent);
8365
+ });
8366
+ try {
8367
+ for (var activeEnrichers_1 = (e_3 = void 0, __values(activeEnrichers)), activeEnrichers_1_1 = activeEnrichers_1.next(); !activeEnrichers_1_1.done; activeEnrichers_1_1 = activeEnrichers_1.next()) {
8368
+ var enricher = activeEnrichers_1_1.value;
8369
+ var result = (_c = (_b = enricher.resolveSync) === null || _b === void 0 ? void 0 : _b.call(enricher, subEntityEventData, getParent)) !== null && _c !== void 0 ? _c : null;
8370
+ if (result !== null) {
8371
+ Object.assign(subEntityEventData, result);
8372
+ }
8373
+ else {
8374
+ pendingEnrichers.push(enricher);
8375
+ }
8376
+ }
8377
+ }
8378
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
8379
+ finally {
8380
+ try {
8381
+ if (activeEnrichers_1_1 && !activeEnrichers_1_1.done && (_a = activeEnrichers_1.return)) _a.call(activeEnrichers_1);
8382
+ }
8383
+ finally { if (e_3) throw e_3.error; }
8384
+ }
8385
+ }
8351
8386
  var eventChangeData = _this.changeSubEntity(subEntityEventData, subEntityEvent.idField || 'id', subEntityEvent.parentField, subEntityEvent.field, subEntityEvent.isDelete);
8352
8387
  if (eventChangeData === null || eventChangeData === void 0 ? void 0 : eventChangeData.current) {
8353
8388
  _this.runEventCallbacks(subEntityEvent.eventToRaise, eventChangeData);
8354
8389
  }
8390
+ if (pendingEnrichers.length > 0) {
8391
+ var applyEnrichment_1 = function (data) {
8392
+ var _a;
8393
+ var _b;
8394
+ var parent = _this.dataStore.get(parentId);
8395
+ if (!parent) {
8396
+ return;
8397
+ }
8398
+ var subEntity = (_b = parent[subEntityEvent.field]) === null || _b === void 0 ? void 0 : _b.find(function (e) { return Number(e.id) === Number(entityId); });
8399
+ if (!subEntity) {
8400
+ return;
8401
+ }
8402
+ var oldValues = Object.fromEntries(Object.keys(data).map(function (key) { return [key, subEntity[key]]; }));
8403
+ Object.assign(subEntity, data);
8404
+ _this.runEventCallbacks(subEntityEvent.eventToRaise, {
8405
+ current: parent,
8406
+ diff: (_a = {}, _a[subEntityEvent.field] = [__assign({ id: entityId }, oldValues)], _a)
8407
+ });
8408
+ };
8409
+ // Promise.all is fine here because today there is only one async enricher per event.
8410
+ // If multiple async enrichers are ever added, switch to Promise.allSettled so a
8411
+ // single rejection does not suppress the results of the others.
8412
+ Promise.all(pendingEnrichers.map(function (e) { return e.resolveAsync(subEntityEventData, getParent); }))
8413
+ .then(function (results) {
8414
+ var asyncData = results.reduce(function (acc, result) { return (result !== null ? Object.assign(acc, result) : acc); }, {});
8415
+ if (Object.keys(asyncData).length > 0) {
8416
+ applyEnrichment_1(asyncData);
8417
+ }
8418
+ })
8419
+ .catch(function (err) {
8420
+ console.error('async enrichment failed for', subEntityEvent.field, 'id', entityId);
8421
+ console.error(err);
8422
+ });
8423
+ }
8355
8424
  });
8356
8425
  };
8357
8426
  var this_2 = this;
@@ -23772,7 +23841,7 @@ var lodash_1 = __webpack_require__(96486);
23772
23841
  var BringgException_1 = __webpack_require__(43605);
23773
23842
  var Logger_1 = __importDefault(__webpack_require__(55860));
23774
23843
  var abort_1 = __webpack_require__(34179);
23775
- var version = '9.77.1-pre';
23844
+ var version = '9.77.2';
23776
23845
  function logErrorResponse(response) {
23777
23846
  var data = response.data, status = response.status;
23778
23847
  try {
@@ -26572,6 +26641,42 @@ exports.taskMerger = { mergeTaskIntoExisting: mergeTaskIntoExisting };
26572
26641
 
26573
26642
  "use strict";
26574
26643
 
26644
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26645
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
26646
+ return new (P || (P = Promise))(function (resolve, reject) {
26647
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
26648
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
26649
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
26650
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
26651
+ });
26652
+ };
26653
+ var __generator = (this && this.__generator) || function (thisArg, body) {
26654
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
26655
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
26656
+ function verb(n) { return function (v) { return step([n, v]); }; }
26657
+ function step(op) {
26658
+ if (f) throw new TypeError("Generator is already executing.");
26659
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
26660
+ 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;
26661
+ if (y = 0, t) op = [op[0] & 2, t.value];
26662
+ switch (op[0]) {
26663
+ case 0: case 1: t = op; break;
26664
+ case 4: _.label++; return { value: op[1], done: false };
26665
+ case 5: _.label++; y = op[1]; op = [0]; continue;
26666
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
26667
+ default:
26668
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26669
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
26670
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
26671
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
26672
+ if (t[2]) _.ops.pop();
26673
+ _.trys.pop(); continue;
26674
+ }
26675
+ op = body.call(thisArg, _);
26676
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
26677
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
26678
+ }
26679
+ };
26575
26680
  var __values = (this && this.__values) || function(o) {
26576
26681
  var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
26577
26682
  if (m) return m.call(o);
@@ -26587,11 +26692,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26587
26692
  return (mod && mod.__esModule) ? mod : { "default": mod };
26588
26693
  };
26589
26694
  Object.defineProperty(exports, "__esModule", ({ value: true }));
26695
+ var cloneDeep_1 = __importDefault(__webpack_require__(50361));
26590
26696
  var storable_realtime_subscriptions_1 = __importDefault(__webpack_require__(1227));
26591
26697
  var Tasks_consts_1 = __webpack_require__(24976);
26592
26698
  var TaskRealtimeSubscriptions = /** @class */ (function () {
26593
- function TaskRealtimeSubscriptions(session, tasksStore, storableDataService) {
26699
+ function TaskRealtimeSubscriptions(session, tasksStore, storableDataService, customersApi) {
26594
26700
  this.tasksStore = tasksStore;
26701
+ this.customersApi = customersApi;
26595
26702
  this.storableRealtimeSubscriptions = new storable_realtime_subscriptions_1.default(session, tasksStore, storableDataService);
26596
26703
  }
26597
26704
  TaskRealtimeSubscriptions.prototype.updateStoreOnEvents = function () {
@@ -26642,7 +26749,61 @@ var TaskRealtimeSubscriptions = /** @class */ (function () {
26642
26749
  parentField: 'task_id',
26643
26750
  field: 'way_points',
26644
26751
  ignoreFields: ['way_points'],
26645
- isDelete: false
26752
+ isDelete: false,
26753
+ enrich: {
26754
+ enrichers: [
26755
+ /**
26756
+ * Updating customer on a WayPoint is pretty much an edge case
26757
+ * Customer enrichment can be fully removed if way_point.customer is deprecated and marked as such
26758
+ * that must not be used within dSDK data consumers and all existing usages are removed.
26759
+ * This is what we have to do if we want to avoid unnecessary complications on dSDK side.
26760
+ */
26761
+ {
26762
+ shouldEnrich: function (payload, getTask) {
26763
+ var _a, _b, _c;
26764
+ if (!('customer_id' in payload) || 'customer' in payload) {
26765
+ return false;
26766
+ }
26767
+ var wp = (_b = (_a = getTask()) === null || _a === void 0 ? void 0 : _a.way_points) === null || _b === void 0 ? void 0 : _b.find(function (wp) { return Number(wp.id) === Number(payload.id); });
26768
+ return payload.customer_id !== ((_c = wp === null || wp === void 0 ? void 0 : wp.customer) === null || _c === void 0 ? void 0 : _c.id);
26769
+ },
26770
+ resolveSync: function (payload) {
26771
+ if (payload.customer_id === null) {
26772
+ return { customer: null };
26773
+ }
26774
+ var cached = _this.customersApi.get(payload.customer_id);
26775
+ return cached ? { customer: (0, cloneDeep_1.default)(cached) } : null;
26776
+ },
26777
+ resolveAsync: function (payload, getTask) { return __awaiter(_this, void 0, void 0, function () {
26778
+ var payloadCustomerId, wpId, shouldStop, findWp, customer;
26779
+ return __generator(this, function (_a) {
26780
+ switch (_a.label) {
26781
+ case 0:
26782
+ if (payload.customer_id === null) {
26783
+ return [2 /*return*/, null];
26784
+ }
26785
+ payloadCustomerId = Number(payload.customer_id);
26786
+ wpId = Number(payload.id);
26787
+ shouldStop = function (wp) {
26788
+ return !wp || Number(wp.customer_id) !== payloadCustomerId;
26789
+ };
26790
+ findWp = function () { var _a, _b; return (_b = (_a = getTask()) === null || _a === void 0 ? void 0 : _a.way_points) === null || _b === void 0 ? void 0 : _b.find(function (wp) { return wp.id === wpId; }); };
26791
+ if (shouldStop(findWp())) {
26792
+ return [2 /*return*/, null];
26793
+ }
26794
+ return [4 /*yield*/, this.customersApi.load(payload.customer_id)];
26795
+ case 1:
26796
+ customer = _a.sent();
26797
+ if (shouldStop(findWp())) {
26798
+ return [2 /*return*/, null];
26799
+ }
26800
+ return [2 /*return*/, { customer: (0, cloneDeep_1.default)(customer) }];
26801
+ }
26802
+ });
26803
+ }); }
26804
+ }
26805
+ ]
26806
+ }
26646
26807
  },
26647
26808
  {
26648
26809
  name: Tasks_consts_1.TaskRealTimeEvents.WAYPOINT_DELETED,
@@ -26803,7 +26964,7 @@ var tasks_service_1 = __importDefault(__webpack_require__(8159));
26803
26964
  // hard coded fields to take advantage of the light data store cache
26804
26965
  var READY_TO_EXECUTE_FIELDS = ['ready_to_execute'];
26805
26966
  var TasksApi = /** @class */ (function () {
26806
- function TasksApi(session) {
26967
+ function TasksApi(session, customersApi) {
26807
26968
  var _this = this;
26808
26969
  var groupFilters = [
26809
26970
  {
@@ -26844,7 +27005,7 @@ var TasksApi = /** @class */ (function () {
26844
27005
  params: params
26845
27006
  });
26846
27007
  }, [lightDataStore]);
26847
- this.taskRealtimeSubscriptions = new task_realtime_subscriptions_1.default(session, this.tasksStore, this.storableDataService);
27008
+ this.taskRealtimeSubscriptions = new task_realtime_subscriptions_1.default(session, this.tasksStore, this.storableDataService, customersApi);
26848
27009
  }
26849
27010
  TasksApi.prototype.updateStoreOnEvents = function () {
26850
27011
  this.taskRealtimeSubscriptions.updateStoreOnEvents();
@@ -33269,120 +33430,6 @@ exports["default"] = Vehicles;
33269
33430
 
33270
33431
  /***/ }),
33271
33432
 
33272
- /***/ 25240:
33273
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
33274
-
33275
- "use strict";
33276
-
33277
- var __assign = (this && this.__assign) || function () {
33278
- __assign = Object.assign || function(t) {
33279
- for (var s, i = 1, n = arguments.length; i < n; i++) {
33280
- s = arguments[i];
33281
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33282
- t[p] = s[p];
33283
- }
33284
- return t;
33285
- };
33286
- return __assign.apply(this, arguments);
33287
- };
33288
- var __importDefault = (this && this.__importDefault) || function (mod) {
33289
- return (mod && mod.__esModule) ? mod : { "default": mod };
33290
- };
33291
- Object.defineProperty(exports, "__esModule", ({ value: true }));
33292
- var BringgDashboardSDK_1 = __webpack_require__(5655);
33293
- var storable_realtime_subscriptions_1 = __importDefault(__webpack_require__(1227));
33294
- var Vehicle_consts_1 = __webpack_require__(84010);
33295
- var VehicleRealtimeSubscriptions = /** @class */ (function () {
33296
- function VehicleRealtimeSubscriptions(session, vehiclesStore, storableDataService) {
33297
- this.vehiclesStore = vehiclesStore;
33298
- this.storableDataService = storableDataService;
33299
- this.storableRealtimeSubscriptions = new storable_realtime_subscriptions_1.default(session, vehiclesStore, storableDataService);
33300
- }
33301
- VehicleRealtimeSubscriptions.prototype.updateStoreOnEvents = function () {
33302
- var _this = this;
33303
- this.storableRealtimeSubscriptions.updateStoreOnEvents([
33304
- {
33305
- name: Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_UPDATE,
33306
- isDelete: false,
33307
- extraDataFunc: function (vehicle) { return ({ skipStoreUpdate: !_this.vehiclesStore.get(vehicle.id) }); },
33308
- // Reconcile Trailer and affected Trucks after Truck-Trailer link is changed
33309
- // Remove if / when Trailer-Truck link changes trigger Truck/-s real-time updated events
33310
- onAfterStoreSync: function (mapped) { return _this.reconcileTrucksOnTrailerChange(mapped); }
33311
- },
33312
- { name: Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_DELETE, isDelete: true }
33313
- ]);
33314
- };
33315
- VehicleRealtimeSubscriptions.prototype.onUpdate = function (callback) {
33316
- return this.storableRealtimeSubscriptions.onEvent(Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_UPDATE, function (item) { return callback(item.current); });
33317
- };
33318
- VehicleRealtimeSubscriptions.prototype.onDelete = function (callback) {
33319
- return this.storableRealtimeSubscriptions.onEvent(Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_DELETE, function (item) { return callback(item.diff); });
33320
- };
33321
- VehicleRealtimeSubscriptions.prototype.onUnassigned = function (callback) {
33322
- return this.storableRealtimeSubscriptions.onAnyEvent(Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_UNASSIGNED, function (vehicle) {
33323
- return callback(vehicle);
33324
- });
33325
- };
33326
- // This should work as expected until Vehicle Update event sends full Vehicle structure
33327
- // and StorableDataService.mapper maps real-time payload to MappedStorableItem.current
33328
- VehicleRealtimeSubscriptions.prototype.reconcileTrucksOnTrailerChange = function (_a) {
33329
- var _this = this;
33330
- var _b, _c;
33331
- var trailer = _a.current;
33332
- // Only a trailer update can change a truck's derived `trailer` field.
33333
- if (!(trailer === null || trailer === void 0 ? void 0 : trailer.is_trailer)) {
33334
- return;
33335
- }
33336
- // A partial trailer update may omit `truck_id`; only reconcile when the payload carries it
33337
- // (explicit null = detach, a value = attach). Absent = no connection info -> leave cache as-is,
33338
- // so a partial update can't be misread as detach and wrongly clear the truck's trailer.
33339
- if (!('truck_id' in trailer)) {
33340
- return;
33341
- }
33342
- var newTruckId = (_b = trailer.truck_id) !== null && _b !== void 0 ? _b : null;
33343
- var oldTruck = this.findTruckHoldingTrailer(trailer.id);
33344
- // No connection change relative to the cache - nothing to reconcile.
33345
- if (((_c = oldTruck === null || oldTruck === void 0 ? void 0 : oldTruck.id) !== null && _c !== void 0 ? _c : null) === newTruckId) {
33346
- return;
33347
- }
33348
- (0, BringgDashboardSDK_1.getGlobals)().mobx.runInAction(function () {
33349
- if (oldTruck) {
33350
- _this.applyTrailerToTruck(oldTruck.id, null);
33351
- }
33352
- _this.applyTrailerToTruck(newTruckId, trailer);
33353
- });
33354
- };
33355
- VehicleRealtimeSubscriptions.prototype.findTruckHoldingTrailer = function (trailerId) {
33356
- return this.vehiclesStore
33357
- .getGroup(Vehicle_consts_1.VehicleGroup.IsTrailer, false)
33358
- .find(function (vehicle) { return vehicle.trailer && vehicle.trailer.id === trailerId; });
33359
- };
33360
- VehicleRealtimeSubscriptions.prototype.applyTrailerToTruck = function (truckId, trailerEntity) {
33361
- if (!truckId) {
33362
- return;
33363
- }
33364
- var truck = this.vehiclesStore.get(truckId);
33365
- // Only reconcile trucks that are actually cached; missing trucks get the correct trailer on load.
33366
- if (!truck) {
33367
- return;
33368
- }
33369
- var mobx = (0, BringgDashboardSDK_1.getGlobals)().mobx;
33370
- // Deep, plain, non-observable COPY so the truck's `trailer`.
33371
- // Drop the nested trailer's own `trailer` to avoid recursive nesting.
33372
- var trailerSnapshot = trailerEntity ? __assign(__assign({}, mobx.toJS(trailerEntity)), { trailer: null }) : null;
33373
- // toJS the truck too so we replace it with a fresh plain object instead of mutating the live
33374
- // observable in place; updateInStores re-observes it as the truck's own subtree.
33375
- var updatedTruck = __assign(__assign({}, mobx.toJS(truck)), { trailer: trailerSnapshot });
33376
- var mapped = this.storableDataService.updateInStores(updatedTruck);
33377
- this.storableRealtimeSubscriptions.runEventCallbacks(Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_UPDATE, mapped);
33378
- };
33379
- return VehicleRealtimeSubscriptions;
33380
- }());
33381
- exports["default"] = VehicleRealtimeSubscriptions;
33382
- //# sourceMappingURL=vehicle-realtime-subscriptions.js.map
33383
-
33384
- /***/ }),
33385
-
33386
33433
  /***/ 57020:
33387
33434
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
33388
33435
 
@@ -33441,23 +33488,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
33441
33488
  Object.defineProperty(exports, "__esModule", ({ value: true }));
33442
33489
  var types_1 = __webpack_require__(63127);
33443
33490
  var lodash_1 = __webpack_require__(96486);
33491
+ var storable_realtime_subscriptions_1 = __importDefault(__webpack_require__(1227));
33444
33492
  var data_entity_1 = __webpack_require__(91083);
33445
33493
  var data_store_1 = __importDefault(__webpack_require__(73135));
33446
33494
  var storable_data_service_1 = __importDefault(__webpack_require__(45297));
33447
33495
  var Vehicle_consts_1 = __webpack_require__(84010);
33448
- var vehicle_realtime_subscriptions_1 = __importDefault(__webpack_require__(25240));
33449
33496
  var vehicles_service_1 = __importDefault(__webpack_require__(87386));
33450
33497
  var VehiclesApi = /** @class */ (function () {
33451
33498
  function VehiclesApi(session) {
33452
- var _this = this;
33453
33499
  var groupFilters = [
33454
33500
  { groupType: Vehicle_consts_1.VehicleGroup.Team, keyFunc: function (vehicle) { return vehicle.team_id; } },
33455
33501
  { groupType: Vehicle_consts_1.VehicleGroup.IsTrailer, keyFunc: function (vehicle) { return !!vehicle.is_trailer; } }
33456
33502
  ];
33457
33503
  this.vehiclesStore = new data_store_1.default(groupFilters);
33458
33504
  this.vehiclesService = new vehicles_service_1.default(session);
33459
- this.storableDataService = new storable_data_service_1.default(this.vehiclesStore, function (vehicle) { return _this.mapVehicle(vehicle); });
33460
- this.vehicleRealtimeSubscriptions = new vehicle_realtime_subscriptions_1.default(session, this.vehiclesStore, this.storableDataService);
33505
+ this.storableDataService = new storable_data_service_1.default(this.vehiclesStore);
33506
+ this.storableRealtimeSubscriptions = new storable_realtime_subscriptions_1.default(session, this.vehiclesStore, this.storableDataService);
33461
33507
  }
33462
33508
  VehiclesApi.prototype.load = function (id, options) {
33463
33509
  var _this = this;
@@ -33554,26 +33600,21 @@ var VehiclesApi = /** @class */ (function () {
33554
33600
  return this.storableDataService.modify('create', function () { return _this.vehiclesService.create(vehicleData); });
33555
33601
  };
33556
33602
  VehiclesApi.prototype.updateStoreOnEvents = function () {
33557
- this.vehicleRealtimeSubscriptions.updateStoreOnEvents();
33558
- };
33559
- // `trailer` is a derived field the reconciler maintains on trucks. Realtime vehicle payloads don't
33560
- // carry it, so a plain truck update would otherwise REPLACE the cached truck and wipe its trailer.
33561
- // Preserve the cached `trailer` whenever the incoming payload omits the key; take it from the payload
33562
- // only when explicitly present (HTTP loads, PUT responses, reconciler writes).
33563
- VehiclesApi.prototype.mapVehicle = function (vehicle) {
33564
- var existing = this.vehiclesStore.get(vehicle.id);
33565
- var current = existing && 'trailer' in existing && !('trailer' in vehicle)
33566
- ? __assign(__assign({}, vehicle), { trailer: existing.trailer }) : vehicle;
33567
- return { current: current, diff: existing };
33603
+ this.storableRealtimeSubscriptions.updateStoreOnEvents([
33604
+ { name: Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_UPDATE, isDelete: false },
33605
+ { name: Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_DELETE, isDelete: true }
33606
+ ]);
33568
33607
  };
33569
33608
  VehiclesApi.prototype.onUpdate = function (callback) {
33570
- return this.vehicleRealtimeSubscriptions.onUpdate(callback);
33609
+ return this.storableRealtimeSubscriptions.onEvent(Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_UPDATE, function (item) { return callback(item.current); });
33571
33610
  };
33572
33611
  VehiclesApi.prototype.onDelete = function (callback) {
33573
- return this.vehicleRealtimeSubscriptions.onDelete(callback);
33612
+ return this.storableRealtimeSubscriptions.onEvent(Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_DELETE, function (item) { return callback(item.current); });
33574
33613
  };
33575
33614
  VehiclesApi.prototype.onUnassigned = function (callback) {
33576
- return this.vehicleRealtimeSubscriptions.onUnassigned(callback);
33615
+ return this.storableRealtimeSubscriptions.onAnyEvent(Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_UNASSIGNED, function (vehicle) {
33616
+ return callback(vehicle);
33617
+ });
33577
33618
  };
33578
33619
  VehiclesApi.prototype.get = function (id) {
33579
33620
  return this.vehiclesStore.get(id);