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

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
@@ -359,6 +359,7 @@ let HolderModelImpl = class {
359
359
  logger;
360
360
  data;
361
361
  enjoyByDate;
362
+ attributes;
362
363
  pumps;
363
364
  ingredientContainer;
364
365
  constructor(modelId, {
@@ -370,7 +371,8 @@ let HolderModelImpl = class {
370
371
  slice,
371
372
  group,
372
373
  data,
373
- enjoyByDate
374
+ enjoyByDate,
375
+ attributes
374
376
  }, context) {
375
377
  this.id = modelId;
376
378
  this.path = path;
@@ -386,6 +388,7 @@ let HolderModelImpl = class {
386
388
  parentId: modelId,
387
389
  sortKey: "path"
388
390
  });
391
+ this.attributes = attributes || {};
389
392
  this.logger = context.logger;
390
393
  }
391
394
  updateModel({
@@ -642,7 +645,16 @@ const mapAssemblyHolderToModel = async (group, holderData) => {
642
645
  data: holderData,
643
646
  contextData: {}
644
647
  });
645
- const { name, path, ingredientId, ingType, ingSource, slice, ...rest } = holderData;
648
+ const {
649
+ name,
650
+ path,
651
+ ingredientId,
652
+ ingType,
653
+ ingSource,
654
+ slice,
655
+ attributes,
656
+ ...rest
657
+ } = holderData;
646
658
  const extData = { ...rest, ...holderExtData };
647
659
  const sliceData = slice || { pos: 0 };
648
660
  const holderOptions = {
@@ -654,6 +666,7 @@ const mapAssemblyHolderToModel = async (group, holderData) => {
654
666
  enjoyByDate: holderData.container?.enjoyByDate ? new Date(holderData.container.enjoyByDate) : void 0,
655
667
  slice: sliceData,
656
668
  group,
669
+ attributes,
657
670
  data: extData
658
671
  };
659
672
  const holder = Holder.factory(holderData.path)(holderOptions);
@@ -1996,6 +2009,20 @@ let NozzleModelImpl = class {
1996
2009
  });
1997
2010
  });
1998
2011
  }
2012
+ async reload() {
2013
+ this.logger.info(`reloading nozzle ${this.id}`);
2014
+ const context = KosContextManager.getContext(this.id);
2015
+ context?.get(ExtensionType.AvailabilityLoader) || {};
2016
+ const availability = await getAvailability(this.urlPrefix);
2017
+ if (availability?.status !== 200 || !availability?.data) {
2018
+ this.logger.error("Failed to load nozzle availability");
2019
+ return;
2020
+ }
2021
+ const update = availability?.data;
2022
+ if (update) {
2023
+ await this.updateAvailability(update);
2024
+ }
2025
+ }
1999
2026
  /** @internal */
2000
2027
  async load(context) {
2001
2028
  this.logger.debug(`loading nozzle ${this.id}`);
@@ -2037,6 +2064,9 @@ let NozzleModelImpl = class {
2037
2064
  const context = KosContextManager.getContext(this.id);
2038
2065
  const beverageContext = context?.get(ExtensionType.AvailabilityLoader) || {};
2039
2066
  if (update.rebuild) {
2067
+ this.logger.info(
2068
+ `Received rebuild update for nozzle ${this.path}, rebuilding entire availability set`
2069
+ );
2040
2070
  for (const group of Object.keys(update?.groups) || []) {
2041
2071
  const deletedBeverages = this._availabilityItems.getIndexByKey("group", group).filter(
2042
2072
  (beverage) => !update.groups[group].find(
@@ -2044,6 +2074,9 @@ let NozzleModelImpl = class {
2044
2074
  )
2045
2075
  );
2046
2076
  deletedBeverages.forEach((beverage) => {
2077
+ this.logger.info(
2078
+ `Removing beverage ${beverage.id} from nozzle ${this.path} due to rebuild update`
2079
+ );
2047
2080
  this._availabilityItems.removeModel(beverage.id);
2048
2081
  destroyKosModel(beverage);
2049
2082
  });
@@ -2067,8 +2100,16 @@ let NozzleModelImpl = class {
2067
2100
  `${this.id}-${group}-${beverageData.id}`
2068
2101
  );
2069
2102
  if (existing) {
2103
+ if (existing.available !== beverageOptions.available) {
2104
+ this.logger.info(
2105
+ `Updating availability of beverage ${existing.id} in nozzle ${this.path} to ${beverageOptions.available}`
2106
+ );
2107
+ }
2070
2108
  existing.updateModel(beverageOptions);
2071
2109
  } else {
2110
+ this.logger.info(
2111
+ `Adding beverage ${beverageData.id} to nozzle ${this.path}`
2112
+ );
2072
2113
  const beverage = Availability.factory(
2073
2114
  `${this.id}-${group}-${beverageData.id}`
2074
2115
  )(beverageOptions);
@@ -2077,6 +2118,9 @@ let NozzleModelImpl = class {
2077
2118
  }
2078
2119
  }
2079
2120
  } else {
2121
+ this.logger.info(
2122
+ `Received delta update for nozzle ${this.path}, updating availability nodes`
2123
+ );
2080
2124
  for (const group of Object.keys(update?.groups) || []) {
2081
2125
  for (const beverageData of update?.groups[group] || []) {
2082
2126
  const extensionData = await ExtensionManager.dataMapper.executeMapper(
@@ -2099,6 +2143,11 @@ let NozzleModelImpl = class {
2099
2143
  `${this.id}-${group}-${beverageData.id}`
2100
2144
  );
2101
2145
  if (existing) {
2146
+ if (existing.available !== beverageOptions.available) {
2147
+ this.logger.info(
2148
+ `Updating availability of beverage ${existing.id} in nozzle ${this.path} to ${beverageOptions.available}`
2149
+ );
2150
+ }
2102
2151
  existing.updateModel(beverageOptions);
2103
2152
  }
2104
2153
  }
@@ -2622,4 +2671,4 @@ export {
2622
2671
  unassignHolderIngredient as y,
2623
2672
  getAssembly as z
2624
2673
  };
2625
- //# sourceMappingURL=dispense-registration-manager-DNibbp5F.js.map
2674
+ //# sourceMappingURL=dispense-registration-manager-BSKa5Oi9.js.map