@kosdev-code/kos-dispense-sdk 0.1.0-next.719 → 0.1.0-next.735

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.
Files changed (28) hide show
  1. package/{dispense-registration-manager-FTLZRpFt.cjs → dispense-registration-manager-BH0mkCQx.cjs} +52 -3
  2. package/dispense-registration-manager-BH0mkCQx.cjs.map +1 -0
  3. package/{dispense-registration-manager-DNibbp5F.js → dispense-registration-manager-BSKa5Oi9.js} +52 -3
  4. package/dispense-registration-manager-BSKa5Oi9.js.map +1 -0
  5. package/{extension-utils-Bh989x8z.cjs → extension-utils-FKfiDSbi.cjs} +2 -2
  6. package/{extension-utils-Bh989x8z.cjs.map → extension-utils-FKfiDSbi.cjs.map} +1 -1
  7. package/{extension-utils-DkeldSBo.js → extension-utils-jntF0-vN.js} +2 -2
  8. package/{extension-utils-DkeldSBo.js.map → extension-utils-jntF0-vN.js.map} +1 -1
  9. package/index.cjs +3 -3
  10. package/index.js +3 -3
  11. package/models/models/assembly/holder-utils.d.ts.map +1 -1
  12. package/models/models/holder/holder-model.d.ts.map +1 -1
  13. package/models/models/holder/types/index.d.ts +2 -0
  14. package/models/models/nozzle/nozzle-model.d.ts +1 -0
  15. package/models/models/nozzle/nozzle-model.d.ts.map +1 -1
  16. package/models/models/types/assembly.d.ts +1 -0
  17. package/models/models/types/assembly.d.ts.map +1 -1
  18. package/models.cjs +2 -2
  19. package/models.js +2 -2
  20. package/package.json +5 -5
  21. package/{pump-provider-Coy43LDF.cjs → pump-provider-D4iVLU-o.cjs} +2 -2
  22. package/{pump-provider-Coy43LDF.cjs.map → pump-provider-D4iVLU-o.cjs.map} +1 -1
  23. package/{pump-provider-DEbqbOnK.js → pump-provider-ntLT8vr7.js} +2 -2
  24. package/{pump-provider-DEbqbOnK.js.map → pump-provider-ntLT8vr7.js.map} +1 -1
  25. package/ui.cjs +1 -1
  26. package/ui.js +1 -1
  27. package/dispense-registration-manager-DNibbp5F.js.map +0 -1
  28. package/dispense-registration-manager-FTLZRpFt.cjs.map +0 -1
@@ -360,6 +360,7 @@ let HolderModelImpl = class {
360
360
  logger;
361
361
  data;
362
362
  enjoyByDate;
363
+ attributes;
363
364
  pumps;
364
365
  ingredientContainer;
365
366
  constructor(modelId, {
@@ -371,7 +372,8 @@ let HolderModelImpl = class {
371
372
  slice,
372
373
  group,
373
374
  data,
374
- enjoyByDate
375
+ enjoyByDate,
376
+ attributes
375
377
  }, context) {
376
378
  this.id = modelId;
377
379
  this.path = path;
@@ -387,6 +389,7 @@ let HolderModelImpl = class {
387
389
  parentId: modelId,
388
390
  sortKey: "path"
389
391
  });
392
+ this.attributes = attributes || {};
390
393
  this.logger = context.logger;
391
394
  }
392
395
  updateModel({
@@ -643,7 +646,16 @@ const mapAssemblyHolderToModel = async (group, holderData) => {
643
646
  data: holderData,
644
647
  contextData: {}
645
648
  });
646
- const { name, path, ingredientId, ingType, ingSource, slice, ...rest } = holderData;
649
+ const {
650
+ name,
651
+ path,
652
+ ingredientId,
653
+ ingType,
654
+ ingSource,
655
+ slice,
656
+ attributes,
657
+ ...rest
658
+ } = holderData;
647
659
  const extData = { ...rest, ...holderExtData };
648
660
  const sliceData = slice || { pos: 0 };
649
661
  const holderOptions = {
@@ -655,6 +667,7 @@ const mapAssemblyHolderToModel = async (group, holderData) => {
655
667
  enjoyByDate: holderData.container?.enjoyByDate ? new Date(holderData.container.enjoyByDate) : void 0,
656
668
  slice: sliceData,
657
669
  group,
670
+ attributes,
658
671
  data: extData
659
672
  };
660
673
  const holder = Holder.factory(holderData.path)(holderOptions);
@@ -1997,6 +2010,20 @@ let NozzleModelImpl = class {
1997
2010
  });
1998
2011
  });
1999
2012
  }
2013
+ async reload() {
2014
+ this.logger.info(`reloading nozzle ${this.id}`);
2015
+ const context = kosUiSdk.KosContextManager.getContext(this.id);
2016
+ context?.get(ExtensionType.AvailabilityLoader) || {};
2017
+ const availability = await getAvailability(this.urlPrefix);
2018
+ if (availability?.status !== 200 || !availability?.data) {
2019
+ this.logger.error("Failed to load nozzle availability");
2020
+ return;
2021
+ }
2022
+ const update = availability?.data;
2023
+ if (update) {
2024
+ await this.updateAvailability(update);
2025
+ }
2026
+ }
2000
2027
  /** @internal */
2001
2028
  async load(context) {
2002
2029
  this.logger.debug(`loading nozzle ${this.id}`);
@@ -2038,6 +2065,9 @@ let NozzleModelImpl = class {
2038
2065
  const context = kosUiSdk.KosContextManager.getContext(this.id);
2039
2066
  const beverageContext = context?.get(ExtensionType.AvailabilityLoader) || {};
2040
2067
  if (update.rebuild) {
2068
+ this.logger.info(
2069
+ `Received rebuild update for nozzle ${this.path}, rebuilding entire availability set`
2070
+ );
2041
2071
  for (const group of Object.keys(update?.groups) || []) {
2042
2072
  const deletedBeverages = this._availabilityItems.getIndexByKey("group", group).filter(
2043
2073
  (beverage) => !update.groups[group].find(
@@ -2045,6 +2075,9 @@ let NozzleModelImpl = class {
2045
2075
  )
2046
2076
  );
2047
2077
  deletedBeverages.forEach((beverage) => {
2078
+ this.logger.info(
2079
+ `Removing beverage ${beverage.id} from nozzle ${this.path} due to rebuild update`
2080
+ );
2048
2081
  this._availabilityItems.removeModel(beverage.id);
2049
2082
  kosUiSdk.destroyKosModel(beverage);
2050
2083
  });
@@ -2068,8 +2101,16 @@ let NozzleModelImpl = class {
2068
2101
  `${this.id}-${group}-${beverageData.id}`
2069
2102
  );
2070
2103
  if (existing) {
2104
+ if (existing.available !== beverageOptions.available) {
2105
+ this.logger.info(
2106
+ `Updating availability of beverage ${existing.id} in nozzle ${this.path} to ${beverageOptions.available}`
2107
+ );
2108
+ }
2071
2109
  existing.updateModel(beverageOptions);
2072
2110
  } else {
2111
+ this.logger.info(
2112
+ `Adding beverage ${beverageData.id} to nozzle ${this.path}`
2113
+ );
2073
2114
  const beverage = Availability.factory(
2074
2115
  `${this.id}-${group}-${beverageData.id}`
2075
2116
  )(beverageOptions);
@@ -2078,6 +2119,9 @@ let NozzleModelImpl = class {
2078
2119
  }
2079
2120
  }
2080
2121
  } else {
2122
+ this.logger.info(
2123
+ `Received delta update for nozzle ${this.path}, updating availability nodes`
2124
+ );
2081
2125
  for (const group of Object.keys(update?.groups) || []) {
2082
2126
  for (const beverageData of update?.groups[group] || []) {
2083
2127
  const extensionData = await kosUiSdk.ExtensionManager.dataMapper.executeMapper(
@@ -2100,6 +2144,11 @@ let NozzleModelImpl = class {
2100
2144
  `${this.id}-${group}-${beverageData.id}`
2101
2145
  );
2102
2146
  if (existing) {
2147
+ if (existing.available !== beverageOptions.available) {
2148
+ this.logger.info(
2149
+ `Updating availability of beverage ${existing.id} in nozzle ${this.path} to ${beverageOptions.available}`
2150
+ );
2151
+ }
2103
2152
  existing.updateModel(beverageOptions);
2104
2153
  }
2105
2154
  }
@@ -2620,4 +2669,4 @@ exports.selectPourable = selectPourable;
2620
2669
  exports.sendIntent = sendIntent;
2621
2670
  exports.sendRfidOverride = sendRfidOverride;
2622
2671
  exports.unassignHolderIngredient = unassignHolderIngredient;
2623
- //# sourceMappingURL=dispense-registration-manager-FTLZRpFt.cjs.map
2672
+ //# sourceMappingURL=dispense-registration-manager-BH0mkCQx.cjs.map