@kosdev-code/kos-freestyle-sdk 0.1.0-next.991 → 0.1.0-next.999
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/{extension-utils-BEbIXDcU.cjs → extension-utils-BLjVB2bu.cjs} +2 -2
- package/{extension-utils-BEbIXDcU.cjs.map → extension-utils-BLjVB2bu.cjs.map} +1 -1
- package/{extension-utils-CY5ib1K9.js → extension-utils-CV3CeJXI.js} +2 -2
- package/{extension-utils-CY5ib1K9.js.map → extension-utils-CV3CeJXI.js.map} +1 -1
- package/index.cjs +3 -3
- package/index.js +3 -3
- package/models/models/fcm-pump/fcm-pump-model.d.ts.map +1 -1
- package/models/models/fcm-pump/services/fcm-pump-services.d.ts.map +1 -1
- package/models/models/freestyle-nozzle/services/freestyle-nozzle-services.d.ts.map +1 -1
- package/models/models/freestyle-pump/services/freestyle-pump-services.d.ts.map +1 -1
- package/models/models/ice-agitator/services/ice-agitator-services.d.ts.map +1 -1
- package/models/models/spm-pump/services/spm-pump-services.d.ts.map +1 -1
- package/models/utils/extensions/assembly/assembly-data-mapper.d.ts.map +1 -1
- package/models/utils/freestyle-registration-manager.d.ts +2 -2
- package/models.cjs +2 -2
- package/models.js +2 -2
- package/package.json +4 -4
- package/{service-DBgwp1L4.cjs → service-Dfj0KrIU.cjs} +29 -8
- package/service-Dfj0KrIU.cjs.map +1 -0
- package/{service-BsFUAnLF.js → service-VBsCe4jt.js} +29 -8
- package/service-VBsCe4jt.js.map +1 -0
- package/ui.cjs +1 -1
- package/ui.js +1 -1
- package/{use-nutrition-info-Dc7JxGT0.cjs → use-nutrition-info-6ijRu88p.cjs} +2 -2
- package/{use-nutrition-info-Dc7JxGT0.cjs.map → use-nutrition-info-6ijRu88p.cjs.map} +1 -1
- package/{use-nutrition-info-CU0jG-t1.js → use-nutrition-info-Rc_SHgBZ.js} +2 -2
- package/{use-nutrition-info-CU0jG-t1.js.map → use-nutrition-info-Rc_SHgBZ.js.map} +1 -1
- package/service-BsFUAnLF.js.map +0 -1
- package/service-DBgwp1L4.cjs.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
const service = require("./service-
|
|
2
|
+
const service = require("./service-Dfj0KrIU.cjs");
|
|
3
3
|
const kosDispenseSdk = require("@kosdev-code/kos-dispense-sdk");
|
|
4
4
|
const kosUiSdk = require("@kosdev-code/kos-ui-sdk");
|
|
5
5
|
const index$3 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
@@ -341,4 +341,4 @@ exports.index = index$3;
|
|
|
341
341
|
exports.index$1 = index$2;
|
|
342
342
|
exports.index$2 = index$1;
|
|
343
343
|
exports.index$3 = index;
|
|
344
|
-
//# sourceMappingURL=extension-utils-
|
|
344
|
+
//# sourceMappingURL=extension-utils-BLjVB2bu.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension-utils-BEbIXDcU.cjs","sources":["../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/middleware/assets.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/middleware/beverage-screen.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/middleware/beverages.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/middleware/brand-screen.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/middleware/brands.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/middleware/copy-input.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/middleware/flavors.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/util/locate-brand.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/util/process-related-brand.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/middleware/related-brands.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/freestyle-loader.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/ingredient/model-extension.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/pourable/select-pourable-mapper.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/trouble/trouble-utils.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extension-utils.ts"],"sourcesContent":["import type { Middleware } from \"@kosdev-code/kos-ui-sdk\";\nimport type { Asset, AvailabilityContext, UiSchemaResponse } from \"../types\";\n\nconst assetReducer = (acc: Record<string, Asset>, asset: Asset) => {\n acc[asset.dbId.toString()] = asset;\n return acc;\n};\n\n/**\n * Middleware that will normalize the assets array into a dictionary\n * @param context The context object that contains the data and result\n * @param next called at the end of the middleware to indicate that the next middleware can be called\n */\nexport const assetsMiddleware: Middleware<\n UiSchemaResponse,\n AvailabilityContext\n> = async (context, next) => {\n const input = context.data;\n const assets = input.assets.reduce(assetReducer, {} as Record<string, Asset>);\n context.result = { ...context.result, assets };\n await next();\n};\n","import type { Middleware } from \"@kosdev-code/kos-ui-sdk\";\nimport type {\n AvailabilityContext,\n BeverageScreen,\n BeverageScreenData,\n UiSchemaResponse,\n} from \"../types\";\n\nfunction organizeBeverageData(\n jsonData: Record<string, any>\n): BeverageScreenData {\n const beverageData: BeverageScreenData = {};\n\n for (const key in jsonData) {\n // eslint-disable-next-line no-prototype-builtins\n if (jsonData.hasOwnProperty(key) && key.includes(\"slot\")) {\n const relatedBrand = key.includes(\"slotrb\");\n if (!relatedBrand) {\n const slot = key.split(\".\")[1]; // Extracting the slot number\n const beverageId = jsonData[`slot.${slot}.beverage`];\n\n if (beverageId) {\n // eslint-disable-next-line max-depth\n if (!beverageData[beverageId]) {\n beverageData[beverageId] = {};\n }\n\n beverageData[beverageId].rank = slot;\n // Removing the slot.x part from the key and adding to the object\n const beverageKey = key.replace(`slot.${slot}.`, \"\");\n beverageData[beverageId][beverageKey] = jsonData[key];\n }\n }\n }\n }\n\n return beverageData;\n}\nconst beverageScreenReducer =\n (input: UiSchemaResponse) =>\n (acc: Record<string, BeverageScreen>, curr: string) => {\n acc[curr] = input.beverageScreens[curr];\n acc[curr].beverages = organizeBeverageData(acc[curr]);\n return acc;\n };\n\n/**\n * Middleware that will normalize the beverage screen data. The middleware will perform the following:\n * 1. Organize the beverage screen data into a dictionary keyed by the brand id\n * 2. Adds a beverages property to the beverage screen data that contains the organized beverage data\n * 3. Processes related brands for each beverage screen\n *\n * @param context The context object that contains the data and result\n * @param next called at the end of the middleware to indicate that the next middleware can be called\n */\nexport const beverageScreenMiddleware: Middleware<\n UiSchemaResponse,\n AvailabilityContext\n> = async (context, next) => {\n const input = context.data;\n const beverageScreens = Object.keys(input.beverageScreens).reduce(\n beverageScreenReducer(input),\n input.beverageScreens\n );\n context.result = { ...context.result, beverageScreens };\n await next();\n};\n","import type { Middleware } from \"@kosdev-code/kos-ui-sdk\";\nimport type { AvailabilityContext, Beverage, UiSchemaResponse } from \"../types\";\n\nconst beverageReducer = (acc: Record<string, Beverage>, beverage: Beverage) => {\n acc[beverage.beverageId.toString()] = beverage;\n return acc;\n};\n\n/**\n * Middleware that will normalize the brands array into a dictionary\n * @param context The context object that contains the data and result\n * @param next called at the end of the middleware to indicate that the next middleware can be called\n */\nexport const beveragesMiddleware: Middleware<\n UiSchemaResponse,\n AvailabilityContext\n> = async (context, next) => {\n const input = context.data;\n const beverages = input.beverages.reduce(\n beverageReducer,\n {} as Record<string, Beverage>\n );\n const beverageMap = input.beverages.reduce((acc, curr) => {\n acc[curr.dbId.toString()] = curr.beverageId.toString();\n return acc;\n }, {} as Record<string, string>);\n context.result = { ...context.result, beverages, beverageMap };\n await next();\n};\n","import type { Middleware } from \"@kosdev-code/kos-ui-sdk\";\nimport type {\n AvailabilityContext,\n BrandScreenData,\n UiSchemaResponse,\n} from \"../types\";\n\nfunction organizeBrandData(jsonData: Record<string, any>): Record<string, any> {\n const brandScreenData: BrandScreenData = { rank: 0 };\n\n for (const key in jsonData) {\n // eslint-disable-next-line no-prototype-builtins\n if (jsonData.hasOwnProperty(key) && key.includes(\"slot\")) {\n const slot = key.split(\".\")[1]; // Extracting the slot number\n const position = slot.split(\":\")[1]; // Extracting the position number\n const brandId = jsonData[`slot.${slot}.brand`];\n\n if (brandId) {\n if (!brandScreenData[brandId]) {\n brandScreenData[brandId] = {\n rank: Number(position),\n };\n }\n\n // Removing the slot.x part from the key and adding to the object\n const brandKey = key.replace(`slot.${slot}.`, \"\");\n brandScreenData[brandId][brandKey] = jsonData[key];\n }\n }\n }\n\n return brandScreenData;\n}\nexport const brandScreenMiddleware: Middleware<\n UiSchemaResponse,\n AvailabilityContext\n> = async (context, next) => {\n const input = context.data;\n const brandScreen = organizeBrandData(input.brandScreen);\n context.result = { ...context.result, brandScreen };\n await next();\n};\n","import type { Middleware } from \"@kosdev-code/kos-ui-sdk\";\nimport type { AvailabilityContext, Brand, UiSchemaResponse } from \"../types\";\n\nconst brandReducer = (acc: Record<string, Brand>, brand: Brand) => {\n acc[brand.dbId.toString()] = brand;\n return acc;\n};\n\n/**\n * Middleware that will normalize the brands array into a dictionary\n * @param context The context object that contains the data and result\n * @param next called at the end of the middleware to indicate that the next middleware can be called\n */\nexport const brandsMiddleware: Middleware<\n UiSchemaResponse,\n AvailabilityContext\n> = async (context, next) => {\n const input = context.data;\n const brands = input.brands.reduce(brandReducer, {} as Record<string, Brand>);\n context.result = { ...context.result, brands };\n await next();\n};\n","import type { Middleware } from \"@kosdev-code/kos-ui-sdk\";\n\nexport const copyMiddleware: Middleware<any, any> = async (context, next) => {\n context.result = { ...context.data };\n await next();\n};\n","import type { Middleware } from \"@kosdev-code/kos-ui-sdk\";\nimport type { AvailabilityContext, Flavor, UiSchemaResponse } from \"../types\";\n\nconst flavorReducer = (acc: Record<string, Flavor>, flavor: Flavor) => {\n acc[flavor.dbId.toString()] = flavor;\n return acc;\n};\n\n/**\n * Middleware that will normalize the flavors array into a dictionary\n * @param context The context object that contains the data and result\n * @param next called at the end of the middleware to indicate that the next middleware can be called\n */\nexport const flavorsMiddleware: Middleware<\n UiSchemaResponse,\n AvailabilityContext\n> = async (context, next) => {\n const input = context.data;\n const flavors = input.flavors.reduce(\n flavorReducer,\n {} as Record<string, Flavor>\n );\n context.result = { ...context.result, flavors };\n await next();\n};\n","export function locateRelatedBrand(\n jsonData: Record<string, any>,\n slot: string\n) {\n const relatedBrand = jsonData[`slotrb:${slot}.brand`];\n return relatedBrand;\n}\n","import type { BeverageScreenData } from \"../types\";\n\nexport const processRelatedBrand =\n (json: Record<string, any>) =>\n (\n beverageData: BeverageScreenData,\n brandId: string,\n slot: string,\n key: string\n ) => {\n if (!beverageData.relatedBrand) {\n beverageData.relatedBrand = {};\n }\n\n if (!beverageData.relatedBrand[brandId]) {\n beverageData.relatedBrand[brandId] = {\n rank: slot,\n };\n }\n\n const beverageKey = key.replace(`slotrb:${slot}.`, \"\");\n beverageData.relatedBrand[brandId][beverageKey] = json[key];\n };\n","import type { Middleware } from \"@kosdev-code/kos-ui-sdk\";\nimport type {\n AvailabilityContext,\n BeverageScreen,\n BeverageScreenData,\n UiSchemaResponse,\n} from \"../types\";\nimport { locateRelatedBrand } from \"../util/locate-brand\";\nimport { processRelatedBrand } from \"../util/process-related-brand\";\n\nfunction organizeBeverageData(\n jsonData: Record<string, any>\n): BeverageScreenData {\n const beverageData: BeverageScreenData = {};\n\n for (const key in jsonData) {\n // eslint-disable-next-line no-prototype-builtins\n if (jsonData.hasOwnProperty(key) && key.includes(\"slot\")) {\n const relatedBrand = key.includes(\"slotrb\");\n if (relatedBrand) {\n const slot = key.split(\":\")[1].split(\".\")[0]; // Extracting the slot number\n const relatedBrand = locateRelatedBrand(jsonData, slot);\n processRelatedBrand(jsonData)(beverageData, relatedBrand, slot, key);\n }\n }\n }\n\n return beverageData;\n}\nconst beverageScreenReducer =\n (input: UiSchemaResponse) =>\n (acc: Record<string, BeverageScreen>, curr: string) => {\n acc[curr] = input.beverageScreens[curr];\n acc[curr].beverages = {\n ...acc[curr].beverages,\n ...organizeBeverageData(acc[curr]),\n };\n return acc;\n };\n\n/**\n * Middleware that will normalize the beverage screen data. The middleware will perform the following:\n * 1. Organize the beverage screen data into a dictionary keyed by the brand id\n * 2. Adds a beverages property to the beverage screen data that contains the organized beverage data\n * 3. Processes related brands for each beverage screen\n *\n * @param context The context object that contains the data and result\n * @param next called at the end of the middleware to indicate that the next middleware can be called\n */\nexport const relatedBrandMiddleware: Middleware<\n UiSchemaResponse,\n AvailabilityContext\n> = async (context, next) => {\n const input = context.data;\n const beverageScreens = Object.keys(input.beverageScreens).reduce(\n beverageScreenReducer(input),\n input.beverageScreens\n );\n context.result = { ...context.result, beverageScreens };\n await next();\n};\n","import {\n kosFetch,\n processMiddleware,\n type DataLoader,\n type Middleware,\n} from \"@kosdev-code/kos-ui-sdk\";\nimport { assetsMiddleware } from \"./middleware/assets\";\nimport { beverageScreenMiddleware } from \"./middleware/beverage-screen\";\nimport { beveragesMiddleware } from \"./middleware/beverages\";\nimport { brandScreenMiddleware } from \"./middleware/brand-screen\";\nimport { brandsMiddleware } from \"./middleware/brands\";\nimport { copyMiddleware } from \"./middleware/copy-input\";\nimport { flavorsMiddleware } from \"./middleware/flavors\";\nimport { relatedBrandMiddleware } from \"./middleware/related-brands\";\nimport type { AvailabilityContext, UiSchemaResponse } from \"./types\";\n\nexport const transformAvailabilityData = async (\n input: UiSchemaResponse,\n additionalMiddleware: Middleware<\n UiSchemaResponse,\n AvailabilityContext\n >[] = [],\n replace = false\n): Promise<AvailabilityContext> => {\n const middleware = replace\n ? [...additionalMiddleware]\n : [\n copyMiddleware,\n assetsMiddleware,\n flavorsMiddleware,\n beveragesMiddleware,\n brandsMiddleware,\n beverageScreenMiddleware,\n relatedBrandMiddleware,\n brandScreenMiddleware,\n ...additionalMiddleware,\n ];\n const availabilityContext = await processMiddleware<\n UiSchemaResponse,\n AvailabilityContext\n >(input, middleware);\n\n return availabilityContext;\n};\n\n/**\n * Props for the freestyle availability loader\n */\nexport interface AvailabilityLoaderProps {\n /** the url to send the request for the UiSchemaData. Defaults to http://localhost:8081/system/cui/core.json */\n url?: string;\n\n /** additional middlewares to execute as part of the data processing */\n middleware?: Middleware<UiSchemaResponse, AvailabilityContext>[];\n\n /** if true, replace the default middleware with the provided middleware */\n replace?: boolean;\n}\n/**\n * Utility method to load the freestyle brandset data into the availability context.\n *\n * This loader will retrieve the UI Schema from the provided URL and transform it into\n * a format that can be used to populate the availability brands and beverages with UI schema\n * data.\n *\n * With this data, the availability models can have access to the brandset assets for\n * brands, beverages and flavours.\n *\n *\n * @param props\n * @returns A DataLoader function that will load the availability context\n */\nexport const freestyleAvailabilityLoader =\n ({\n url = \"http://localhost:8081/system/cui/core.json\",\n middleware = [],\n replace = false,\n }: AvailabilityLoaderProps = {}): DataLoader =>\n async (): Promise<AvailabilityContext> => {\n const schema = await kosFetch(url);\n if (schema.ok) {\n const response = await schema.json<UiSchemaResponse>();\n if (!response) {\n throw new Error(\"Failed to parse availability context\");\n }\n return await transformAvailabilityData(response, middleware, replace);\n }\n throw new Error(\"Failed to load availability context\");\n };\n","import {\n DataMapper,\n IndexExtension,\n PropertyMapper,\n} from \"@kosdev-code/kos-ui-sdk\";\nimport type {\n FreestyleIngredientData,\n FreestyleIngredientModelData,\n FreestyleIngredientResponseData,\n} from \"../../../models/types/ingredients\";\n\nexport const ingredientDataMapper: DataMapper = async (\n data: FreestyleIngredientResponseData\n) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { id, name, ...rest } = data;\n const response: FreestyleIngredientData = {\n ...rest,\n ingredientMacro: rest.bib && !rest.sweetener ? \"macro\" : \"micro\",\n };\n return response;\n};\n\nexport const ingredientIndexExtension: IndexExtension<FreestyleIngredientModelData> =\n {\n macro: \"ingredientMacro\",\n };\nexport const ingredientCategoryMapper: PropertyMapper = (\n ingredientData: FreestyleIngredientResponseData\n) => ingredientData.type;\n","import type { SelectedPourable } from \"@kosdev-code/kos-dispense-sdk\";\n\nexport const pourableRequestMapper = async (data: SelectedPourable) => {\n return {\n bevId: data.beverage?.rawId,\n };\n};\n","import type { TroubleServices } from \"@kosdev-code/kos-ui-sdk\";\n\ntype TroubleResponse = TroubleServices.TroubleResponse<{ flex: any }>;\n\ninterface RankAwareTrouble {\n rank: number;\n}\n\ninterface RoleAwareTrouble {\n visibleRole: string;\n}\n\ninterface ColorAwareTrouble {\n color: string;\n}\n\nconst isRankedInfo = (i: any): i is RankAwareTrouble => i?.rank !== undefined;\n\nconst isRoleAwareInfo = (i: any): i is RoleAwareTrouble =>\n i?.visibleRole !== undefined;\n\nconst isColorAwareInfo = (i: any): i is ColorAwareTrouble =>\n i?.color !== undefined;\n\nexport const freestyleTroubleRankMapper = (trouble: TroubleResponse) => {\n const info = trouble.attrs?.flex;\n if (isRankedInfo(info)) {\n return info.rank; // return the rank\n }\n return 0; // return 0 if not ranked\n};\n\nexport const freestyleTroubleColorMapper = (trouble: TroubleResponse) => {\n const info = trouble.attrs?.flex;\n if (isColorAwareInfo(info)) {\n return info.color; // return the color\n }\n return \"orange\"; // return ORANGE if no color defined\n};\n\nexport const freestyleTroubleRoleMapper = (trouble: TroubleResponse) => {\n const info = trouble.attrs?.flex;\n if (isRoleAwareInfo(info)) {\n return info.visibleRole; // return the role\n }\n return \"TECHNICIAN\"; // return empty if no role\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { DispenseExtensionManager } from \"@kosdev-code/kos-dispense-sdk\";\nimport {\n CoreExtensionManager,\n EXTENSION_TROUBLE_DATA_MAPPER,\n ExtensionManager,\n KosFeatureFlags,\n type TroubleModel,\n} from \"@kosdev-code/kos-ui-sdk\";\nimport type { AgitationRequiredTroubleIface } from \"../models/cartridge-agitator/types\";\nimport { FEATURE_SUPPORTS_ICE } from \"../models/freestyle-assembly/freestyle-assembly-model\";\nimport { freestyleAssemblyDataMapper } from \"./extensions/assembly/assembly-data-mapper\";\nimport {\n freestyleAvailabilityLoader,\n type AvailabilityLoaderProps,\n} from \"./extensions/availability/freestyle-loader\";\nimport {\n ingredientDataMapper,\n ingredientIndexExtension,\n} from \"./extensions/ingredient\";\nimport { pourableRequestMapper } from \"./extensions/pourable/select-pourable-mapper\";\nimport {\n freestyleTroubleColorMapper,\n freestyleTroubleRankMapper,\n freestyleTroubleRoleMapper,\n} from \"./extensions/trouble/trouble-utils\";\nexport const EXTENSION_PLUGIN_VISIBILITY = \"pluginVisibility\";\n\nexport class FreestyleExtensionManager {\n core: CoreExtensionManager;\n dispense: DispenseExtensionManager;\n constructor(core: CoreExtensionManager, dispense: DispenseExtensionManager) {\n this.core = core;\n this.dispense = dispense;\n }\n\n /**\n * Loads the core brandset data into a format that can be consumed by the\n * freestyle models.\n * */\n registerFreestyleBrandsetReader(props: AvailabilityLoaderProps = {}) {\n this.dispense.registerAvailabilityLoader(\n freestyleAvailabilityLoader(props)\n );\n\n return this;\n }\n\n registerFreestylePourableMapper() {\n this.dispense.registerSelectedPourableDataMapper(pourableRequestMapper);\n }\n\n registerFreestyleAssemblyMapper() {\n this.dispense.registerAssemblyDataMapper(freestyleAssemblyDataMapper);\n }\n\n registerFreestyleIngredientIndex() {\n this.dispense.registerIngredientIndex(ingredientIndexExtension);\n }\n\n registerFreestyleIngredientDataMapper() {\n this.dispense.registerIngredientDataMapper(ingredientDataMapper);\n }\n\n registerFreestyleColorMapper() {\n this.core.registerTroubleColorMapper(freestyleTroubleColorMapper);\n }\n\n registerFreestyleRankMapper() {\n this.core.registerTroubleRankMapper(freestyleTroubleRankMapper);\n }\n\n registerFreestyleRoleMapper() {\n this.core.registerTroubleRoleMapper(freestyleTroubleRoleMapper);\n }\n\n registerFreestyleIceAgitator() {\n ExtensionManager[EXTENSION_PLUGIN_VISIBILITY].register(\n EXTENSION_PLUGIN_VISIBILITY,\n (key) =>\n key !== \"iceAgitator\" ||\n KosFeatureFlags.isFeatureEnabled(FEATURE_SUPPORTS_ICE)\n );\n }\n\n registerFreestyleAgitationRequiredTroubleMapper() {\n ExtensionManager[EXTENSION_TROUBLE_DATA_MAPPER].register(\n \"agitationRequired\",\n async (trouble: TroubleModel<AgitationRequiredTroubleIface>) => {\n return { isAgitationRequired: !!trouble.data.agitationRequired };\n }\n );\n }\n\n initializeFreestyleExtension() {\n this.registerFreestylePourableMapper();\n this.registerFreestyleAssemblyMapper();\n this.registerFreestyleIngredientIndex();\n this.registerFreestyleIngredientDataMapper();\n this.registerFreestyleIceAgitator();\n this.registerFreestyleAgitationRequiredTroubleMapper();\n this.registerFreestyleRankMapper();\n this.registerFreestyleColorMapper();\n this.registerFreestyleRoleMapper();\n }\n}\n/**\n * The KosExtensionManager provides access to the extension points that are provided in the SDK for Dispense applications.\n *\n * The extension points are divided into two categories:\n *\n * @param core - The core extension {@link CoreExtensionManager} points are used to extend the base models that are provided by the SDK.\n * @param dispense - The dispense extension {@link DispenseExtensionManager} points are used to extend the models that are specific to the Dispense SDK.\n */\nexport class KosExtensionManager {\n dispense: DispenseExtensionManager;\n core: CoreExtensionManager;\n freestyle: FreestyleExtensionManager;\n constructor() {\n this.dispense = new DispenseExtensionManager();\n this.core = new CoreExtensionManager();\n this.freestyle = new FreestyleExtensionManager(this.core, this.dispense);\n }\n}\n"],"names":["organizeBeverageData","beverageScreenReducer","relatedBrand","processMiddleware","kosFetch","freestyleAssemblyDataMapper","ExtensionManager","KosFeatureFlags","FEATURE_SUPPORTS_ICE","EXTENSION_TROUBLE_DATA_MAPPER","DispenseExtensionManager","CoreExtensionManager"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"extension-utils-BLjVB2bu.cjs","sources":["../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/middleware/assets.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/middleware/beverage-screen.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/middleware/beverages.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/middleware/brand-screen.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/middleware/brands.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/middleware/copy-input.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/middleware/flavors.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/util/locate-brand.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/util/process-related-brand.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/middleware/related-brands.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/freestyle-loader.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/ingredient/model-extension.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/pourable/select-pourable-mapper.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/trouble/trouble-utils.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extension-utils.ts"],"sourcesContent":["import type { Middleware } from \"@kosdev-code/kos-ui-sdk\";\nimport type { Asset, AvailabilityContext, UiSchemaResponse } from \"../types\";\n\nconst assetReducer = (acc: Record<string, Asset>, asset: Asset) => {\n acc[asset.dbId.toString()] = asset;\n return acc;\n};\n\n/**\n * Middleware that will normalize the assets array into a dictionary\n * @param context The context object that contains the data and result\n * @param next called at the end of the middleware to indicate that the next middleware can be called\n */\nexport const assetsMiddleware: Middleware<\n UiSchemaResponse,\n AvailabilityContext\n> = async (context, next) => {\n const input = context.data;\n const assets = input.assets.reduce(assetReducer, {} as Record<string, Asset>);\n context.result = { ...context.result, assets };\n await next();\n};\n","import type { Middleware } from \"@kosdev-code/kos-ui-sdk\";\nimport type {\n AvailabilityContext,\n BeverageScreen,\n BeverageScreenData,\n UiSchemaResponse,\n} from \"../types\";\n\nfunction organizeBeverageData(\n jsonData: Record<string, any>\n): BeverageScreenData {\n const beverageData: BeverageScreenData = {};\n\n for (const key in jsonData) {\n // eslint-disable-next-line no-prototype-builtins\n if (jsonData.hasOwnProperty(key) && key.includes(\"slot\")) {\n const relatedBrand = key.includes(\"slotrb\");\n if (!relatedBrand) {\n const slot = key.split(\".\")[1]; // Extracting the slot number\n const beverageId = jsonData[`slot.${slot}.beverage`];\n\n if (beverageId) {\n // eslint-disable-next-line max-depth\n if (!beverageData[beverageId]) {\n beverageData[beverageId] = {};\n }\n\n beverageData[beverageId].rank = slot;\n // Removing the slot.x part from the key and adding to the object\n const beverageKey = key.replace(`slot.${slot}.`, \"\");\n beverageData[beverageId][beverageKey] = jsonData[key];\n }\n }\n }\n }\n\n return beverageData;\n}\nconst beverageScreenReducer =\n (input: UiSchemaResponse) =>\n (acc: Record<string, BeverageScreen>, curr: string) => {\n acc[curr] = input.beverageScreens[curr];\n acc[curr].beverages = organizeBeverageData(acc[curr]);\n return acc;\n };\n\n/**\n * Middleware that will normalize the beverage screen data. The middleware will perform the following:\n * 1. Organize the beverage screen data into a dictionary keyed by the brand id\n * 2. Adds a beverages property to the beverage screen data that contains the organized beverage data\n * 3. Processes related brands for each beverage screen\n *\n * @param context The context object that contains the data and result\n * @param next called at the end of the middleware to indicate that the next middleware can be called\n */\nexport const beverageScreenMiddleware: Middleware<\n UiSchemaResponse,\n AvailabilityContext\n> = async (context, next) => {\n const input = context.data;\n const beverageScreens = Object.keys(input.beverageScreens).reduce(\n beverageScreenReducer(input),\n input.beverageScreens\n );\n context.result = { ...context.result, beverageScreens };\n await next();\n};\n","import type { Middleware } from \"@kosdev-code/kos-ui-sdk\";\nimport type { AvailabilityContext, Beverage, UiSchemaResponse } from \"../types\";\n\nconst beverageReducer = (acc: Record<string, Beverage>, beverage: Beverage) => {\n acc[beverage.beverageId.toString()] = beverage;\n return acc;\n};\n\n/**\n * Middleware that will normalize the brands array into a dictionary\n * @param context The context object that contains the data and result\n * @param next called at the end of the middleware to indicate that the next middleware can be called\n */\nexport const beveragesMiddleware: Middleware<\n UiSchemaResponse,\n AvailabilityContext\n> = async (context, next) => {\n const input = context.data;\n const beverages = input.beverages.reduce(\n beverageReducer,\n {} as Record<string, Beverage>\n );\n const beverageMap = input.beverages.reduce((acc, curr) => {\n acc[curr.dbId.toString()] = curr.beverageId.toString();\n return acc;\n }, {} as Record<string, string>);\n context.result = { ...context.result, beverages, beverageMap };\n await next();\n};\n","import type { Middleware } from \"@kosdev-code/kos-ui-sdk\";\nimport type {\n AvailabilityContext,\n BrandScreenData,\n UiSchemaResponse,\n} from \"../types\";\n\nfunction organizeBrandData(jsonData: Record<string, any>): Record<string, any> {\n const brandScreenData: BrandScreenData = { rank: 0 };\n\n for (const key in jsonData) {\n // eslint-disable-next-line no-prototype-builtins\n if (jsonData.hasOwnProperty(key) && key.includes(\"slot\")) {\n const slot = key.split(\".\")[1]; // Extracting the slot number\n const position = slot.split(\":\")[1]; // Extracting the position number\n const brandId = jsonData[`slot.${slot}.brand`];\n\n if (brandId) {\n if (!brandScreenData[brandId]) {\n brandScreenData[brandId] = {\n rank: Number(position),\n };\n }\n\n // Removing the slot.x part from the key and adding to the object\n const brandKey = key.replace(`slot.${slot}.`, \"\");\n brandScreenData[brandId][brandKey] = jsonData[key];\n }\n }\n }\n\n return brandScreenData;\n}\nexport const brandScreenMiddleware: Middleware<\n UiSchemaResponse,\n AvailabilityContext\n> = async (context, next) => {\n const input = context.data;\n const brandScreen = organizeBrandData(input.brandScreen);\n context.result = { ...context.result, brandScreen };\n await next();\n};\n","import type { Middleware } from \"@kosdev-code/kos-ui-sdk\";\nimport type { AvailabilityContext, Brand, UiSchemaResponse } from \"../types\";\n\nconst brandReducer = (acc: Record<string, Brand>, brand: Brand) => {\n acc[brand.dbId.toString()] = brand;\n return acc;\n};\n\n/**\n * Middleware that will normalize the brands array into a dictionary\n * @param context The context object that contains the data and result\n * @param next called at the end of the middleware to indicate that the next middleware can be called\n */\nexport const brandsMiddleware: Middleware<\n UiSchemaResponse,\n AvailabilityContext\n> = async (context, next) => {\n const input = context.data;\n const brands = input.brands.reduce(brandReducer, {} as Record<string, Brand>);\n context.result = { ...context.result, brands };\n await next();\n};\n","import type { Middleware } from \"@kosdev-code/kos-ui-sdk\";\n\nexport const copyMiddleware: Middleware<any, any> = async (context, next) => {\n context.result = { ...context.data };\n await next();\n};\n","import type { Middleware } from \"@kosdev-code/kos-ui-sdk\";\nimport type { AvailabilityContext, Flavor, UiSchemaResponse } from \"../types\";\n\nconst flavorReducer = (acc: Record<string, Flavor>, flavor: Flavor) => {\n acc[flavor.dbId.toString()] = flavor;\n return acc;\n};\n\n/**\n * Middleware that will normalize the flavors array into a dictionary\n * @param context The context object that contains the data and result\n * @param next called at the end of the middleware to indicate that the next middleware can be called\n */\nexport const flavorsMiddleware: Middleware<\n UiSchemaResponse,\n AvailabilityContext\n> = async (context, next) => {\n const input = context.data;\n const flavors = input.flavors.reduce(\n flavorReducer,\n {} as Record<string, Flavor>\n );\n context.result = { ...context.result, flavors };\n await next();\n};\n","export function locateRelatedBrand(\n jsonData: Record<string, any>,\n slot: string\n) {\n const relatedBrand = jsonData[`slotrb:${slot}.brand`];\n return relatedBrand;\n}\n","import type { BeverageScreenData } from \"../types\";\n\nexport const processRelatedBrand =\n (json: Record<string, any>) =>\n (\n beverageData: BeverageScreenData,\n brandId: string,\n slot: string,\n key: string\n ) => {\n if (!beverageData.relatedBrand) {\n beverageData.relatedBrand = {};\n }\n\n if (!beverageData.relatedBrand[brandId]) {\n beverageData.relatedBrand[brandId] = {\n rank: slot,\n };\n }\n\n const beverageKey = key.replace(`slotrb:${slot}.`, \"\");\n beverageData.relatedBrand[brandId][beverageKey] = json[key];\n };\n","import type { Middleware } from \"@kosdev-code/kos-ui-sdk\";\nimport type {\n AvailabilityContext,\n BeverageScreen,\n BeverageScreenData,\n UiSchemaResponse,\n} from \"../types\";\nimport { locateRelatedBrand } from \"../util/locate-brand\";\nimport { processRelatedBrand } from \"../util/process-related-brand\";\n\nfunction organizeBeverageData(\n jsonData: Record<string, any>\n): BeverageScreenData {\n const beverageData: BeverageScreenData = {};\n\n for (const key in jsonData) {\n // eslint-disable-next-line no-prototype-builtins\n if (jsonData.hasOwnProperty(key) && key.includes(\"slot\")) {\n const relatedBrand = key.includes(\"slotrb\");\n if (relatedBrand) {\n const slot = key.split(\":\")[1].split(\".\")[0]; // Extracting the slot number\n const relatedBrand = locateRelatedBrand(jsonData, slot);\n processRelatedBrand(jsonData)(beverageData, relatedBrand, slot, key);\n }\n }\n }\n\n return beverageData;\n}\nconst beverageScreenReducer =\n (input: UiSchemaResponse) =>\n (acc: Record<string, BeverageScreen>, curr: string) => {\n acc[curr] = input.beverageScreens[curr];\n acc[curr].beverages = {\n ...acc[curr].beverages,\n ...organizeBeverageData(acc[curr]),\n };\n return acc;\n };\n\n/**\n * Middleware that will normalize the beverage screen data. The middleware will perform the following:\n * 1. Organize the beverage screen data into a dictionary keyed by the brand id\n * 2. Adds a beverages property to the beverage screen data that contains the organized beverage data\n * 3. Processes related brands for each beverage screen\n *\n * @param context The context object that contains the data and result\n * @param next called at the end of the middleware to indicate that the next middleware can be called\n */\nexport const relatedBrandMiddleware: Middleware<\n UiSchemaResponse,\n AvailabilityContext\n> = async (context, next) => {\n const input = context.data;\n const beverageScreens = Object.keys(input.beverageScreens).reduce(\n beverageScreenReducer(input),\n input.beverageScreens\n );\n context.result = { ...context.result, beverageScreens };\n await next();\n};\n","import {\n kosFetch,\n processMiddleware,\n type DataLoader,\n type Middleware,\n} from \"@kosdev-code/kos-ui-sdk\";\nimport { assetsMiddleware } from \"./middleware/assets\";\nimport { beverageScreenMiddleware } from \"./middleware/beverage-screen\";\nimport { beveragesMiddleware } from \"./middleware/beverages\";\nimport { brandScreenMiddleware } from \"./middleware/brand-screen\";\nimport { brandsMiddleware } from \"./middleware/brands\";\nimport { copyMiddleware } from \"./middleware/copy-input\";\nimport { flavorsMiddleware } from \"./middleware/flavors\";\nimport { relatedBrandMiddleware } from \"./middleware/related-brands\";\nimport type { AvailabilityContext, UiSchemaResponse } from \"./types\";\n\nexport const transformAvailabilityData = async (\n input: UiSchemaResponse,\n additionalMiddleware: Middleware<\n UiSchemaResponse,\n AvailabilityContext\n >[] = [],\n replace = false\n): Promise<AvailabilityContext> => {\n const middleware = replace\n ? [...additionalMiddleware]\n : [\n copyMiddleware,\n assetsMiddleware,\n flavorsMiddleware,\n beveragesMiddleware,\n brandsMiddleware,\n beverageScreenMiddleware,\n relatedBrandMiddleware,\n brandScreenMiddleware,\n ...additionalMiddleware,\n ];\n const availabilityContext = await processMiddleware<\n UiSchemaResponse,\n AvailabilityContext\n >(input, middleware);\n\n return availabilityContext;\n};\n\n/**\n * Props for the freestyle availability loader\n */\nexport interface AvailabilityLoaderProps {\n /** the url to send the request for the UiSchemaData. Defaults to http://localhost:8081/system/cui/core.json */\n url?: string;\n\n /** additional middlewares to execute as part of the data processing */\n middleware?: Middleware<UiSchemaResponse, AvailabilityContext>[];\n\n /** if true, replace the default middleware with the provided middleware */\n replace?: boolean;\n}\n/**\n * Utility method to load the freestyle brandset data into the availability context.\n *\n * This loader will retrieve the UI Schema from the provided URL and transform it into\n * a format that can be used to populate the availability brands and beverages with UI schema\n * data.\n *\n * With this data, the availability models can have access to the brandset assets for\n * brands, beverages and flavours.\n *\n *\n * @param props\n * @returns A DataLoader function that will load the availability context\n */\nexport const freestyleAvailabilityLoader =\n ({\n url = \"http://localhost:8081/system/cui/core.json\",\n middleware = [],\n replace = false,\n }: AvailabilityLoaderProps = {}): DataLoader =>\n async (): Promise<AvailabilityContext> => {\n const schema = await kosFetch(url);\n if (schema.ok) {\n const response = await schema.json<UiSchemaResponse>();\n if (!response) {\n throw new Error(\"Failed to parse availability context\");\n }\n return await transformAvailabilityData(response, middleware, replace);\n }\n throw new Error(\"Failed to load availability context\");\n };\n","import {\n DataMapper,\n IndexExtension,\n PropertyMapper,\n} from \"@kosdev-code/kos-ui-sdk\";\nimport type {\n FreestyleIngredientData,\n FreestyleIngredientModelData,\n FreestyleIngredientResponseData,\n} from \"../../../models/types/ingredients\";\n\nexport const ingredientDataMapper: DataMapper = async (\n data: FreestyleIngredientResponseData\n) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { id, name, ...rest } = data;\n const response: FreestyleIngredientData = {\n ...rest,\n ingredientMacro: rest.bib && !rest.sweetener ? \"macro\" : \"micro\",\n };\n return response;\n};\n\nexport const ingredientIndexExtension: IndexExtension<FreestyleIngredientModelData> =\n {\n macro: \"ingredientMacro\",\n };\nexport const ingredientCategoryMapper: PropertyMapper = (\n ingredientData: FreestyleIngredientResponseData\n) => ingredientData.type;\n","import type { SelectedPourable } from \"@kosdev-code/kos-dispense-sdk\";\n\nexport const pourableRequestMapper = async (data: SelectedPourable) => {\n return {\n bevId: data.beverage?.rawId,\n };\n};\n","import type { TroubleServices } from \"@kosdev-code/kos-ui-sdk\";\n\ntype TroubleResponse = TroubleServices.TroubleResponse<{ flex: any }>;\n\ninterface RankAwareTrouble {\n rank: number;\n}\n\ninterface RoleAwareTrouble {\n visibleRole: string;\n}\n\ninterface ColorAwareTrouble {\n color: string;\n}\n\nconst isRankedInfo = (i: any): i is RankAwareTrouble => i?.rank !== undefined;\n\nconst isRoleAwareInfo = (i: any): i is RoleAwareTrouble =>\n i?.visibleRole !== undefined;\n\nconst isColorAwareInfo = (i: any): i is ColorAwareTrouble =>\n i?.color !== undefined;\n\nexport const freestyleTroubleRankMapper = (trouble: TroubleResponse) => {\n const info = trouble.attrs?.flex;\n if (isRankedInfo(info)) {\n return info.rank; // return the rank\n }\n return 0; // return 0 if not ranked\n};\n\nexport const freestyleTroubleColorMapper = (trouble: TroubleResponse) => {\n const info = trouble.attrs?.flex;\n if (isColorAwareInfo(info)) {\n return info.color; // return the color\n }\n return \"orange\"; // return ORANGE if no color defined\n};\n\nexport const freestyleTroubleRoleMapper = (trouble: TroubleResponse) => {\n const info = trouble.attrs?.flex;\n if (isRoleAwareInfo(info)) {\n return info.visibleRole; // return the role\n }\n return \"TECHNICIAN\"; // return empty if no role\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { DispenseExtensionManager } from \"@kosdev-code/kos-dispense-sdk\";\nimport {\n CoreExtensionManager,\n EXTENSION_TROUBLE_DATA_MAPPER,\n ExtensionManager,\n KosFeatureFlags,\n type TroubleModel,\n} from \"@kosdev-code/kos-ui-sdk\";\nimport type { AgitationRequiredTroubleIface } from \"../models/cartridge-agitator/types\";\nimport { FEATURE_SUPPORTS_ICE } from \"../models/freestyle-assembly/freestyle-assembly-model\";\nimport { freestyleAssemblyDataMapper } from \"./extensions/assembly/assembly-data-mapper\";\nimport {\n freestyleAvailabilityLoader,\n type AvailabilityLoaderProps,\n} from \"./extensions/availability/freestyle-loader\";\nimport {\n ingredientDataMapper,\n ingredientIndexExtension,\n} from \"./extensions/ingredient\";\nimport { pourableRequestMapper } from \"./extensions/pourable/select-pourable-mapper\";\nimport {\n freestyleTroubleColorMapper,\n freestyleTroubleRankMapper,\n freestyleTroubleRoleMapper,\n} from \"./extensions/trouble/trouble-utils\";\nexport const EXTENSION_PLUGIN_VISIBILITY = \"pluginVisibility\";\n\nexport class FreestyleExtensionManager {\n core: CoreExtensionManager;\n dispense: DispenseExtensionManager;\n constructor(core: CoreExtensionManager, dispense: DispenseExtensionManager) {\n this.core = core;\n this.dispense = dispense;\n }\n\n /**\n * Loads the core brandset data into a format that can be consumed by the\n * freestyle models.\n * */\n registerFreestyleBrandsetReader(props: AvailabilityLoaderProps = {}) {\n this.dispense.registerAvailabilityLoader(\n freestyleAvailabilityLoader(props)\n );\n\n return this;\n }\n\n registerFreestylePourableMapper() {\n this.dispense.registerSelectedPourableDataMapper(pourableRequestMapper);\n }\n\n registerFreestyleAssemblyMapper() {\n this.dispense.registerAssemblyDataMapper(freestyleAssemblyDataMapper);\n }\n\n registerFreestyleIngredientIndex() {\n this.dispense.registerIngredientIndex(ingredientIndexExtension);\n }\n\n registerFreestyleIngredientDataMapper() {\n this.dispense.registerIngredientDataMapper(ingredientDataMapper);\n }\n\n registerFreestyleColorMapper() {\n this.core.registerTroubleColorMapper(freestyleTroubleColorMapper);\n }\n\n registerFreestyleRankMapper() {\n this.core.registerTroubleRankMapper(freestyleTroubleRankMapper);\n }\n\n registerFreestyleRoleMapper() {\n this.core.registerTroubleRoleMapper(freestyleTroubleRoleMapper);\n }\n\n registerFreestyleIceAgitator() {\n ExtensionManager[EXTENSION_PLUGIN_VISIBILITY].register(\n EXTENSION_PLUGIN_VISIBILITY,\n (key) =>\n key !== \"iceAgitator\" ||\n KosFeatureFlags.isFeatureEnabled(FEATURE_SUPPORTS_ICE)\n );\n }\n\n registerFreestyleAgitationRequiredTroubleMapper() {\n ExtensionManager[EXTENSION_TROUBLE_DATA_MAPPER].register(\n \"agitationRequired\",\n async (trouble: TroubleModel<AgitationRequiredTroubleIface>) => {\n return { isAgitationRequired: !!trouble.data.agitationRequired };\n }\n );\n }\n\n initializeFreestyleExtension() {\n this.registerFreestylePourableMapper();\n this.registerFreestyleAssemblyMapper();\n this.registerFreestyleIngredientIndex();\n this.registerFreestyleIngredientDataMapper();\n this.registerFreestyleIceAgitator();\n this.registerFreestyleAgitationRequiredTroubleMapper();\n this.registerFreestyleRankMapper();\n this.registerFreestyleColorMapper();\n this.registerFreestyleRoleMapper();\n }\n}\n/**\n * The KosExtensionManager provides access to the extension points that are provided in the SDK for Dispense applications.\n *\n * The extension points are divided into two categories:\n *\n * @param core - The core extension {@link CoreExtensionManager} points are used to extend the base models that are provided by the SDK.\n * @param dispense - The dispense extension {@link DispenseExtensionManager} points are used to extend the models that are specific to the Dispense SDK.\n */\nexport class KosExtensionManager {\n dispense: DispenseExtensionManager;\n core: CoreExtensionManager;\n freestyle: FreestyleExtensionManager;\n constructor() {\n this.dispense = new DispenseExtensionManager();\n this.core = new CoreExtensionManager();\n this.freestyle = new FreestyleExtensionManager(this.core, this.dispense);\n }\n}\n"],"names":["organizeBeverageData","beverageScreenReducer","relatedBrand","processMiddleware","kosFetch","freestyleAssemblyDataMapper","ExtensionManager","KosFeatureFlags","FEATURE_SUPPORTS_ICE","EXTENSION_TROUBLE_DATA_MAPPER","DispenseExtensionManager","CoreExtensionManager"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { p as performCalibrate, q as performComplete, t as performElectricalTest, u as performPreCalibrate, v as performVerify, w as InvalidRequestError, N as NutritionInfoError, x as getFreestyleNutritionInfo, y as replacePump, z as performCalibrate$1, B as performComplete$1, D as performPreCalibrate$1, E as performVerify$1, G as freestyleAssemblyDataMapper, H as FEATURE_SUPPORTS_ICE } from "./service-
|
|
1
|
+
import { p as performCalibrate, q as performComplete, t as performElectricalTest, u as performPreCalibrate, v as performVerify, w as InvalidRequestError, N as NutritionInfoError, x as getFreestyleNutritionInfo, y as replacePump, z as performCalibrate$1, B as performComplete$1, D as performPreCalibrate$1, E as performVerify$1, G as freestyleAssemblyDataMapper, H as FEATURE_SUPPORTS_ICE } from "./service-VBsCe4jt.js";
|
|
2
2
|
import { DispenseExtensionManager } from "@kosdev-code/kos-dispense-sdk";
|
|
3
3
|
import { kosFetch, processMiddleware, ExtensionManager, KosFeatureFlags, EXTENSION_TROUBLE_DATA_MAPPER, CoreExtensionManager } from "@kosdev-code/kos-ui-sdk";
|
|
4
4
|
const index$3 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
@@ -342,4 +342,4 @@ export {
|
|
|
342
342
|
index as c,
|
|
343
343
|
index$3 as i
|
|
344
344
|
};
|
|
345
|
-
//# sourceMappingURL=extension-utils-
|
|
345
|
+
//# sourceMappingURL=extension-utils-CV3CeJXI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension-utils-CY5ib1K9.js","sources":["../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/middleware/assets.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/middleware/beverage-screen.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/middleware/beverages.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/middleware/brand-screen.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/middleware/brands.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/middleware/copy-input.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/middleware/flavors.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/util/locate-brand.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/util/process-related-brand.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/middleware/related-brands.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/freestyle-loader.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/ingredient/model-extension.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/pourable/select-pourable-mapper.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/trouble/trouble-utils.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extension-utils.ts"],"sourcesContent":["import type { Middleware } from \"@kosdev-code/kos-ui-sdk\";\nimport type { Asset, AvailabilityContext, UiSchemaResponse } from \"../types\";\n\nconst assetReducer = (acc: Record<string, Asset>, asset: Asset) => {\n acc[asset.dbId.toString()] = asset;\n return acc;\n};\n\n/**\n * Middleware that will normalize the assets array into a dictionary\n * @param context The context object that contains the data and result\n * @param next called at the end of the middleware to indicate that the next middleware can be called\n */\nexport const assetsMiddleware: Middleware<\n UiSchemaResponse,\n AvailabilityContext\n> = async (context, next) => {\n const input = context.data;\n const assets = input.assets.reduce(assetReducer, {} as Record<string, Asset>);\n context.result = { ...context.result, assets };\n await next();\n};\n","import type { Middleware } from \"@kosdev-code/kos-ui-sdk\";\nimport type {\n AvailabilityContext,\n BeverageScreen,\n BeverageScreenData,\n UiSchemaResponse,\n} from \"../types\";\n\nfunction organizeBeverageData(\n jsonData: Record<string, any>\n): BeverageScreenData {\n const beverageData: BeverageScreenData = {};\n\n for (const key in jsonData) {\n // eslint-disable-next-line no-prototype-builtins\n if (jsonData.hasOwnProperty(key) && key.includes(\"slot\")) {\n const relatedBrand = key.includes(\"slotrb\");\n if (!relatedBrand) {\n const slot = key.split(\".\")[1]; // Extracting the slot number\n const beverageId = jsonData[`slot.${slot}.beverage`];\n\n if (beverageId) {\n // eslint-disable-next-line max-depth\n if (!beverageData[beverageId]) {\n beverageData[beverageId] = {};\n }\n\n beverageData[beverageId].rank = slot;\n // Removing the slot.x part from the key and adding to the object\n const beverageKey = key.replace(`slot.${slot}.`, \"\");\n beverageData[beverageId][beverageKey] = jsonData[key];\n }\n }\n }\n }\n\n return beverageData;\n}\nconst beverageScreenReducer =\n (input: UiSchemaResponse) =>\n (acc: Record<string, BeverageScreen>, curr: string) => {\n acc[curr] = input.beverageScreens[curr];\n acc[curr].beverages = organizeBeverageData(acc[curr]);\n return acc;\n };\n\n/**\n * Middleware that will normalize the beverage screen data. The middleware will perform the following:\n * 1. Organize the beverage screen data into a dictionary keyed by the brand id\n * 2. Adds a beverages property to the beverage screen data that contains the organized beverage data\n * 3. Processes related brands for each beverage screen\n *\n * @param context The context object that contains the data and result\n * @param next called at the end of the middleware to indicate that the next middleware can be called\n */\nexport const beverageScreenMiddleware: Middleware<\n UiSchemaResponse,\n AvailabilityContext\n> = async (context, next) => {\n const input = context.data;\n const beverageScreens = Object.keys(input.beverageScreens).reduce(\n beverageScreenReducer(input),\n input.beverageScreens\n );\n context.result = { ...context.result, beverageScreens };\n await next();\n};\n","import type { Middleware } from \"@kosdev-code/kos-ui-sdk\";\nimport type { AvailabilityContext, Beverage, UiSchemaResponse } from \"../types\";\n\nconst beverageReducer = (acc: Record<string, Beverage>, beverage: Beverage) => {\n acc[beverage.beverageId.toString()] = beverage;\n return acc;\n};\n\n/**\n * Middleware that will normalize the brands array into a dictionary\n * @param context The context object that contains the data and result\n * @param next called at the end of the middleware to indicate that the next middleware can be called\n */\nexport const beveragesMiddleware: Middleware<\n UiSchemaResponse,\n AvailabilityContext\n> = async (context, next) => {\n const input = context.data;\n const beverages = input.beverages.reduce(\n beverageReducer,\n {} as Record<string, Beverage>\n );\n const beverageMap = input.beverages.reduce((acc, curr) => {\n acc[curr.dbId.toString()] = curr.beverageId.toString();\n return acc;\n }, {} as Record<string, string>);\n context.result = { ...context.result, beverages, beverageMap };\n await next();\n};\n","import type { Middleware } from \"@kosdev-code/kos-ui-sdk\";\nimport type {\n AvailabilityContext,\n BrandScreenData,\n UiSchemaResponse,\n} from \"../types\";\n\nfunction organizeBrandData(jsonData: Record<string, any>): Record<string, any> {\n const brandScreenData: BrandScreenData = { rank: 0 };\n\n for (const key in jsonData) {\n // eslint-disable-next-line no-prototype-builtins\n if (jsonData.hasOwnProperty(key) && key.includes(\"slot\")) {\n const slot = key.split(\".\")[1]; // Extracting the slot number\n const position = slot.split(\":\")[1]; // Extracting the position number\n const brandId = jsonData[`slot.${slot}.brand`];\n\n if (brandId) {\n if (!brandScreenData[brandId]) {\n brandScreenData[brandId] = {\n rank: Number(position),\n };\n }\n\n // Removing the slot.x part from the key and adding to the object\n const brandKey = key.replace(`slot.${slot}.`, \"\");\n brandScreenData[brandId][brandKey] = jsonData[key];\n }\n }\n }\n\n return brandScreenData;\n}\nexport const brandScreenMiddleware: Middleware<\n UiSchemaResponse,\n AvailabilityContext\n> = async (context, next) => {\n const input = context.data;\n const brandScreen = organizeBrandData(input.brandScreen);\n context.result = { ...context.result, brandScreen };\n await next();\n};\n","import type { Middleware } from \"@kosdev-code/kos-ui-sdk\";\nimport type { AvailabilityContext, Brand, UiSchemaResponse } from \"../types\";\n\nconst brandReducer = (acc: Record<string, Brand>, brand: Brand) => {\n acc[brand.dbId.toString()] = brand;\n return acc;\n};\n\n/**\n * Middleware that will normalize the brands array into a dictionary\n * @param context The context object that contains the data and result\n * @param next called at the end of the middleware to indicate that the next middleware can be called\n */\nexport const brandsMiddleware: Middleware<\n UiSchemaResponse,\n AvailabilityContext\n> = async (context, next) => {\n const input = context.data;\n const brands = input.brands.reduce(brandReducer, {} as Record<string, Brand>);\n context.result = { ...context.result, brands };\n await next();\n};\n","import type { Middleware } from \"@kosdev-code/kos-ui-sdk\";\n\nexport const copyMiddleware: Middleware<any, any> = async (context, next) => {\n context.result = { ...context.data };\n await next();\n};\n","import type { Middleware } from \"@kosdev-code/kos-ui-sdk\";\nimport type { AvailabilityContext, Flavor, UiSchemaResponse } from \"../types\";\n\nconst flavorReducer = (acc: Record<string, Flavor>, flavor: Flavor) => {\n acc[flavor.dbId.toString()] = flavor;\n return acc;\n};\n\n/**\n * Middleware that will normalize the flavors array into a dictionary\n * @param context The context object that contains the data and result\n * @param next called at the end of the middleware to indicate that the next middleware can be called\n */\nexport const flavorsMiddleware: Middleware<\n UiSchemaResponse,\n AvailabilityContext\n> = async (context, next) => {\n const input = context.data;\n const flavors = input.flavors.reduce(\n flavorReducer,\n {} as Record<string, Flavor>\n );\n context.result = { ...context.result, flavors };\n await next();\n};\n","export function locateRelatedBrand(\n jsonData: Record<string, any>,\n slot: string\n) {\n const relatedBrand = jsonData[`slotrb:${slot}.brand`];\n return relatedBrand;\n}\n","import type { BeverageScreenData } from \"../types\";\n\nexport const processRelatedBrand =\n (json: Record<string, any>) =>\n (\n beverageData: BeverageScreenData,\n brandId: string,\n slot: string,\n key: string\n ) => {\n if (!beverageData.relatedBrand) {\n beverageData.relatedBrand = {};\n }\n\n if (!beverageData.relatedBrand[brandId]) {\n beverageData.relatedBrand[brandId] = {\n rank: slot,\n };\n }\n\n const beverageKey = key.replace(`slotrb:${slot}.`, \"\");\n beverageData.relatedBrand[brandId][beverageKey] = json[key];\n };\n","import type { Middleware } from \"@kosdev-code/kos-ui-sdk\";\nimport type {\n AvailabilityContext,\n BeverageScreen,\n BeverageScreenData,\n UiSchemaResponse,\n} from \"../types\";\nimport { locateRelatedBrand } from \"../util/locate-brand\";\nimport { processRelatedBrand } from \"../util/process-related-brand\";\n\nfunction organizeBeverageData(\n jsonData: Record<string, any>\n): BeverageScreenData {\n const beverageData: BeverageScreenData = {};\n\n for (const key in jsonData) {\n // eslint-disable-next-line no-prototype-builtins\n if (jsonData.hasOwnProperty(key) && key.includes(\"slot\")) {\n const relatedBrand = key.includes(\"slotrb\");\n if (relatedBrand) {\n const slot = key.split(\":\")[1].split(\".\")[0]; // Extracting the slot number\n const relatedBrand = locateRelatedBrand(jsonData, slot);\n processRelatedBrand(jsonData)(beverageData, relatedBrand, slot, key);\n }\n }\n }\n\n return beverageData;\n}\nconst beverageScreenReducer =\n (input: UiSchemaResponse) =>\n (acc: Record<string, BeverageScreen>, curr: string) => {\n acc[curr] = input.beverageScreens[curr];\n acc[curr].beverages = {\n ...acc[curr].beverages,\n ...organizeBeverageData(acc[curr]),\n };\n return acc;\n };\n\n/**\n * Middleware that will normalize the beverage screen data. The middleware will perform the following:\n * 1. Organize the beverage screen data into a dictionary keyed by the brand id\n * 2. Adds a beverages property to the beverage screen data that contains the organized beverage data\n * 3. Processes related brands for each beverage screen\n *\n * @param context The context object that contains the data and result\n * @param next called at the end of the middleware to indicate that the next middleware can be called\n */\nexport const relatedBrandMiddleware: Middleware<\n UiSchemaResponse,\n AvailabilityContext\n> = async (context, next) => {\n const input = context.data;\n const beverageScreens = Object.keys(input.beverageScreens).reduce(\n beverageScreenReducer(input),\n input.beverageScreens\n );\n context.result = { ...context.result, beverageScreens };\n await next();\n};\n","import {\n kosFetch,\n processMiddleware,\n type DataLoader,\n type Middleware,\n} from \"@kosdev-code/kos-ui-sdk\";\nimport { assetsMiddleware } from \"./middleware/assets\";\nimport { beverageScreenMiddleware } from \"./middleware/beverage-screen\";\nimport { beveragesMiddleware } from \"./middleware/beverages\";\nimport { brandScreenMiddleware } from \"./middleware/brand-screen\";\nimport { brandsMiddleware } from \"./middleware/brands\";\nimport { copyMiddleware } from \"./middleware/copy-input\";\nimport { flavorsMiddleware } from \"./middleware/flavors\";\nimport { relatedBrandMiddleware } from \"./middleware/related-brands\";\nimport type { AvailabilityContext, UiSchemaResponse } from \"./types\";\n\nexport const transformAvailabilityData = async (\n input: UiSchemaResponse,\n additionalMiddleware: Middleware<\n UiSchemaResponse,\n AvailabilityContext\n >[] = [],\n replace = false\n): Promise<AvailabilityContext> => {\n const middleware = replace\n ? [...additionalMiddleware]\n : [\n copyMiddleware,\n assetsMiddleware,\n flavorsMiddleware,\n beveragesMiddleware,\n brandsMiddleware,\n beverageScreenMiddleware,\n relatedBrandMiddleware,\n brandScreenMiddleware,\n ...additionalMiddleware,\n ];\n const availabilityContext = await processMiddleware<\n UiSchemaResponse,\n AvailabilityContext\n >(input, middleware);\n\n return availabilityContext;\n};\n\n/**\n * Props for the freestyle availability loader\n */\nexport interface AvailabilityLoaderProps {\n /** the url to send the request for the UiSchemaData. Defaults to http://localhost:8081/system/cui/core.json */\n url?: string;\n\n /** additional middlewares to execute as part of the data processing */\n middleware?: Middleware<UiSchemaResponse, AvailabilityContext>[];\n\n /** if true, replace the default middleware with the provided middleware */\n replace?: boolean;\n}\n/**\n * Utility method to load the freestyle brandset data into the availability context.\n *\n * This loader will retrieve the UI Schema from the provided URL and transform it into\n * a format that can be used to populate the availability brands and beverages with UI schema\n * data.\n *\n * With this data, the availability models can have access to the brandset assets for\n * brands, beverages and flavours.\n *\n *\n * @param props\n * @returns A DataLoader function that will load the availability context\n */\nexport const freestyleAvailabilityLoader =\n ({\n url = \"http://localhost:8081/system/cui/core.json\",\n middleware = [],\n replace = false,\n }: AvailabilityLoaderProps = {}): DataLoader =>\n async (): Promise<AvailabilityContext> => {\n const schema = await kosFetch(url);\n if (schema.ok) {\n const response = await schema.json<UiSchemaResponse>();\n if (!response) {\n throw new Error(\"Failed to parse availability context\");\n }\n return await transformAvailabilityData(response, middleware, replace);\n }\n throw new Error(\"Failed to load availability context\");\n };\n","import {\n DataMapper,\n IndexExtension,\n PropertyMapper,\n} from \"@kosdev-code/kos-ui-sdk\";\nimport type {\n FreestyleIngredientData,\n FreestyleIngredientModelData,\n FreestyleIngredientResponseData,\n} from \"../../../models/types/ingredients\";\n\nexport const ingredientDataMapper: DataMapper = async (\n data: FreestyleIngredientResponseData\n) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { id, name, ...rest } = data;\n const response: FreestyleIngredientData = {\n ...rest,\n ingredientMacro: rest.bib && !rest.sweetener ? \"macro\" : \"micro\",\n };\n return response;\n};\n\nexport const ingredientIndexExtension: IndexExtension<FreestyleIngredientModelData> =\n {\n macro: \"ingredientMacro\",\n };\nexport const ingredientCategoryMapper: PropertyMapper = (\n ingredientData: FreestyleIngredientResponseData\n) => ingredientData.type;\n","import type { SelectedPourable } from \"@kosdev-code/kos-dispense-sdk\";\n\nexport const pourableRequestMapper = async (data: SelectedPourable) => {\n return {\n bevId: data.beverage?.rawId,\n };\n};\n","import type { TroubleServices } from \"@kosdev-code/kos-ui-sdk\";\n\ntype TroubleResponse = TroubleServices.TroubleResponse<{ flex: any }>;\n\ninterface RankAwareTrouble {\n rank: number;\n}\n\ninterface RoleAwareTrouble {\n visibleRole: string;\n}\n\ninterface ColorAwareTrouble {\n color: string;\n}\n\nconst isRankedInfo = (i: any): i is RankAwareTrouble => i?.rank !== undefined;\n\nconst isRoleAwareInfo = (i: any): i is RoleAwareTrouble =>\n i?.visibleRole !== undefined;\n\nconst isColorAwareInfo = (i: any): i is ColorAwareTrouble =>\n i?.color !== undefined;\n\nexport const freestyleTroubleRankMapper = (trouble: TroubleResponse) => {\n const info = trouble.attrs?.flex;\n if (isRankedInfo(info)) {\n return info.rank; // return the rank\n }\n return 0; // return 0 if not ranked\n};\n\nexport const freestyleTroubleColorMapper = (trouble: TroubleResponse) => {\n const info = trouble.attrs?.flex;\n if (isColorAwareInfo(info)) {\n return info.color; // return the color\n }\n return \"orange\"; // return ORANGE if no color defined\n};\n\nexport const freestyleTroubleRoleMapper = (trouble: TroubleResponse) => {\n const info = trouble.attrs?.flex;\n if (isRoleAwareInfo(info)) {\n return info.visibleRole; // return the role\n }\n return \"TECHNICIAN\"; // return empty if no role\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { DispenseExtensionManager } from \"@kosdev-code/kos-dispense-sdk\";\nimport {\n CoreExtensionManager,\n EXTENSION_TROUBLE_DATA_MAPPER,\n ExtensionManager,\n KosFeatureFlags,\n type TroubleModel,\n} from \"@kosdev-code/kos-ui-sdk\";\nimport type { AgitationRequiredTroubleIface } from \"../models/cartridge-agitator/types\";\nimport { FEATURE_SUPPORTS_ICE } from \"../models/freestyle-assembly/freestyle-assembly-model\";\nimport { freestyleAssemblyDataMapper } from \"./extensions/assembly/assembly-data-mapper\";\nimport {\n freestyleAvailabilityLoader,\n type AvailabilityLoaderProps,\n} from \"./extensions/availability/freestyle-loader\";\nimport {\n ingredientDataMapper,\n ingredientIndexExtension,\n} from \"./extensions/ingredient\";\nimport { pourableRequestMapper } from \"./extensions/pourable/select-pourable-mapper\";\nimport {\n freestyleTroubleColorMapper,\n freestyleTroubleRankMapper,\n freestyleTroubleRoleMapper,\n} from \"./extensions/trouble/trouble-utils\";\nexport const EXTENSION_PLUGIN_VISIBILITY = \"pluginVisibility\";\n\nexport class FreestyleExtensionManager {\n core: CoreExtensionManager;\n dispense: DispenseExtensionManager;\n constructor(core: CoreExtensionManager, dispense: DispenseExtensionManager) {\n this.core = core;\n this.dispense = dispense;\n }\n\n /**\n * Loads the core brandset data into a format that can be consumed by the\n * freestyle models.\n * */\n registerFreestyleBrandsetReader(props: AvailabilityLoaderProps = {}) {\n this.dispense.registerAvailabilityLoader(\n freestyleAvailabilityLoader(props)\n );\n\n return this;\n }\n\n registerFreestylePourableMapper() {\n this.dispense.registerSelectedPourableDataMapper(pourableRequestMapper);\n }\n\n registerFreestyleAssemblyMapper() {\n this.dispense.registerAssemblyDataMapper(freestyleAssemblyDataMapper);\n }\n\n registerFreestyleIngredientIndex() {\n this.dispense.registerIngredientIndex(ingredientIndexExtension);\n }\n\n registerFreestyleIngredientDataMapper() {\n this.dispense.registerIngredientDataMapper(ingredientDataMapper);\n }\n\n registerFreestyleColorMapper() {\n this.core.registerTroubleColorMapper(freestyleTroubleColorMapper);\n }\n\n registerFreestyleRankMapper() {\n this.core.registerTroubleRankMapper(freestyleTroubleRankMapper);\n }\n\n registerFreestyleRoleMapper() {\n this.core.registerTroubleRoleMapper(freestyleTroubleRoleMapper);\n }\n\n registerFreestyleIceAgitator() {\n ExtensionManager[EXTENSION_PLUGIN_VISIBILITY].register(\n EXTENSION_PLUGIN_VISIBILITY,\n (key) =>\n key !== \"iceAgitator\" ||\n KosFeatureFlags.isFeatureEnabled(FEATURE_SUPPORTS_ICE)\n );\n }\n\n registerFreestyleAgitationRequiredTroubleMapper() {\n ExtensionManager[EXTENSION_TROUBLE_DATA_MAPPER].register(\n \"agitationRequired\",\n async (trouble: TroubleModel<AgitationRequiredTroubleIface>) => {\n return { isAgitationRequired: !!trouble.data.agitationRequired };\n }\n );\n }\n\n initializeFreestyleExtension() {\n this.registerFreestylePourableMapper();\n this.registerFreestyleAssemblyMapper();\n this.registerFreestyleIngredientIndex();\n this.registerFreestyleIngredientDataMapper();\n this.registerFreestyleIceAgitator();\n this.registerFreestyleAgitationRequiredTroubleMapper();\n this.registerFreestyleRankMapper();\n this.registerFreestyleColorMapper();\n this.registerFreestyleRoleMapper();\n }\n}\n/**\n * The KosExtensionManager provides access to the extension points that are provided in the SDK for Dispense applications.\n *\n * The extension points are divided into two categories:\n *\n * @param core - The core extension {@link CoreExtensionManager} points are used to extend the base models that are provided by the SDK.\n * @param dispense - The dispense extension {@link DispenseExtensionManager} points are used to extend the models that are specific to the Dispense SDK.\n */\nexport class KosExtensionManager {\n dispense: DispenseExtensionManager;\n core: CoreExtensionManager;\n freestyle: FreestyleExtensionManager;\n constructor() {\n this.dispense = new DispenseExtensionManager();\n this.core = new CoreExtensionManager();\n this.freestyle = new FreestyleExtensionManager(this.core, this.dispense);\n }\n}\n"],"names":["organizeBeverageData","beverageScreenReducer","relatedBrand"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"extension-utils-CV3CeJXI.js","sources":["../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/middleware/assets.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/middleware/beverage-screen.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/middleware/beverages.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/middleware/brand-screen.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/middleware/brands.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/middleware/copy-input.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/middleware/flavors.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/util/locate-brand.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/util/process-related-brand.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/middleware/related-brands.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/availability/freestyle-loader.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/ingredient/model-extension.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/pourable/select-pourable-mapper.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extensions/trouble/trouble-utils.ts","../../../packages/kos-freestyle-sdk/src/models/utils/extension-utils.ts"],"sourcesContent":["import type { Middleware } from \"@kosdev-code/kos-ui-sdk\";\nimport type { Asset, AvailabilityContext, UiSchemaResponse } from \"../types\";\n\nconst assetReducer = (acc: Record<string, Asset>, asset: Asset) => {\n acc[asset.dbId.toString()] = asset;\n return acc;\n};\n\n/**\n * Middleware that will normalize the assets array into a dictionary\n * @param context The context object that contains the data and result\n * @param next called at the end of the middleware to indicate that the next middleware can be called\n */\nexport const assetsMiddleware: Middleware<\n UiSchemaResponse,\n AvailabilityContext\n> = async (context, next) => {\n const input = context.data;\n const assets = input.assets.reduce(assetReducer, {} as Record<string, Asset>);\n context.result = { ...context.result, assets };\n await next();\n};\n","import type { Middleware } from \"@kosdev-code/kos-ui-sdk\";\nimport type {\n AvailabilityContext,\n BeverageScreen,\n BeverageScreenData,\n UiSchemaResponse,\n} from \"../types\";\n\nfunction organizeBeverageData(\n jsonData: Record<string, any>\n): BeverageScreenData {\n const beverageData: BeverageScreenData = {};\n\n for (const key in jsonData) {\n // eslint-disable-next-line no-prototype-builtins\n if (jsonData.hasOwnProperty(key) && key.includes(\"slot\")) {\n const relatedBrand = key.includes(\"slotrb\");\n if (!relatedBrand) {\n const slot = key.split(\".\")[1]; // Extracting the slot number\n const beverageId = jsonData[`slot.${slot}.beverage`];\n\n if (beverageId) {\n // eslint-disable-next-line max-depth\n if (!beverageData[beverageId]) {\n beverageData[beverageId] = {};\n }\n\n beverageData[beverageId].rank = slot;\n // Removing the slot.x part from the key and adding to the object\n const beverageKey = key.replace(`slot.${slot}.`, \"\");\n beverageData[beverageId][beverageKey] = jsonData[key];\n }\n }\n }\n }\n\n return beverageData;\n}\nconst beverageScreenReducer =\n (input: UiSchemaResponse) =>\n (acc: Record<string, BeverageScreen>, curr: string) => {\n acc[curr] = input.beverageScreens[curr];\n acc[curr].beverages = organizeBeverageData(acc[curr]);\n return acc;\n };\n\n/**\n * Middleware that will normalize the beverage screen data. The middleware will perform the following:\n * 1. Organize the beverage screen data into a dictionary keyed by the brand id\n * 2. Adds a beverages property to the beverage screen data that contains the organized beverage data\n * 3. Processes related brands for each beverage screen\n *\n * @param context The context object that contains the data and result\n * @param next called at the end of the middleware to indicate that the next middleware can be called\n */\nexport const beverageScreenMiddleware: Middleware<\n UiSchemaResponse,\n AvailabilityContext\n> = async (context, next) => {\n const input = context.data;\n const beverageScreens = Object.keys(input.beverageScreens).reduce(\n beverageScreenReducer(input),\n input.beverageScreens\n );\n context.result = { ...context.result, beverageScreens };\n await next();\n};\n","import type { Middleware } from \"@kosdev-code/kos-ui-sdk\";\nimport type { AvailabilityContext, Beverage, UiSchemaResponse } from \"../types\";\n\nconst beverageReducer = (acc: Record<string, Beverage>, beverage: Beverage) => {\n acc[beverage.beverageId.toString()] = beverage;\n return acc;\n};\n\n/**\n * Middleware that will normalize the brands array into a dictionary\n * @param context The context object that contains the data and result\n * @param next called at the end of the middleware to indicate that the next middleware can be called\n */\nexport const beveragesMiddleware: Middleware<\n UiSchemaResponse,\n AvailabilityContext\n> = async (context, next) => {\n const input = context.data;\n const beverages = input.beverages.reduce(\n beverageReducer,\n {} as Record<string, Beverage>\n );\n const beverageMap = input.beverages.reduce((acc, curr) => {\n acc[curr.dbId.toString()] = curr.beverageId.toString();\n return acc;\n }, {} as Record<string, string>);\n context.result = { ...context.result, beverages, beverageMap };\n await next();\n};\n","import type { Middleware } from \"@kosdev-code/kos-ui-sdk\";\nimport type {\n AvailabilityContext,\n BrandScreenData,\n UiSchemaResponse,\n} from \"../types\";\n\nfunction organizeBrandData(jsonData: Record<string, any>): Record<string, any> {\n const brandScreenData: BrandScreenData = { rank: 0 };\n\n for (const key in jsonData) {\n // eslint-disable-next-line no-prototype-builtins\n if (jsonData.hasOwnProperty(key) && key.includes(\"slot\")) {\n const slot = key.split(\".\")[1]; // Extracting the slot number\n const position = slot.split(\":\")[1]; // Extracting the position number\n const brandId = jsonData[`slot.${slot}.brand`];\n\n if (brandId) {\n if (!brandScreenData[brandId]) {\n brandScreenData[brandId] = {\n rank: Number(position),\n };\n }\n\n // Removing the slot.x part from the key and adding to the object\n const brandKey = key.replace(`slot.${slot}.`, \"\");\n brandScreenData[brandId][brandKey] = jsonData[key];\n }\n }\n }\n\n return brandScreenData;\n}\nexport const brandScreenMiddleware: Middleware<\n UiSchemaResponse,\n AvailabilityContext\n> = async (context, next) => {\n const input = context.data;\n const brandScreen = organizeBrandData(input.brandScreen);\n context.result = { ...context.result, brandScreen };\n await next();\n};\n","import type { Middleware } from \"@kosdev-code/kos-ui-sdk\";\nimport type { AvailabilityContext, Brand, UiSchemaResponse } from \"../types\";\n\nconst brandReducer = (acc: Record<string, Brand>, brand: Brand) => {\n acc[brand.dbId.toString()] = brand;\n return acc;\n};\n\n/**\n * Middleware that will normalize the brands array into a dictionary\n * @param context The context object that contains the data and result\n * @param next called at the end of the middleware to indicate that the next middleware can be called\n */\nexport const brandsMiddleware: Middleware<\n UiSchemaResponse,\n AvailabilityContext\n> = async (context, next) => {\n const input = context.data;\n const brands = input.brands.reduce(brandReducer, {} as Record<string, Brand>);\n context.result = { ...context.result, brands };\n await next();\n};\n","import type { Middleware } from \"@kosdev-code/kos-ui-sdk\";\n\nexport const copyMiddleware: Middleware<any, any> = async (context, next) => {\n context.result = { ...context.data };\n await next();\n};\n","import type { Middleware } from \"@kosdev-code/kos-ui-sdk\";\nimport type { AvailabilityContext, Flavor, UiSchemaResponse } from \"../types\";\n\nconst flavorReducer = (acc: Record<string, Flavor>, flavor: Flavor) => {\n acc[flavor.dbId.toString()] = flavor;\n return acc;\n};\n\n/**\n * Middleware that will normalize the flavors array into a dictionary\n * @param context The context object that contains the data and result\n * @param next called at the end of the middleware to indicate that the next middleware can be called\n */\nexport const flavorsMiddleware: Middleware<\n UiSchemaResponse,\n AvailabilityContext\n> = async (context, next) => {\n const input = context.data;\n const flavors = input.flavors.reduce(\n flavorReducer,\n {} as Record<string, Flavor>\n );\n context.result = { ...context.result, flavors };\n await next();\n};\n","export function locateRelatedBrand(\n jsonData: Record<string, any>,\n slot: string\n) {\n const relatedBrand = jsonData[`slotrb:${slot}.brand`];\n return relatedBrand;\n}\n","import type { BeverageScreenData } from \"../types\";\n\nexport const processRelatedBrand =\n (json: Record<string, any>) =>\n (\n beverageData: BeverageScreenData,\n brandId: string,\n slot: string,\n key: string\n ) => {\n if (!beverageData.relatedBrand) {\n beverageData.relatedBrand = {};\n }\n\n if (!beverageData.relatedBrand[brandId]) {\n beverageData.relatedBrand[brandId] = {\n rank: slot,\n };\n }\n\n const beverageKey = key.replace(`slotrb:${slot}.`, \"\");\n beverageData.relatedBrand[brandId][beverageKey] = json[key];\n };\n","import type { Middleware } from \"@kosdev-code/kos-ui-sdk\";\nimport type {\n AvailabilityContext,\n BeverageScreen,\n BeverageScreenData,\n UiSchemaResponse,\n} from \"../types\";\nimport { locateRelatedBrand } from \"../util/locate-brand\";\nimport { processRelatedBrand } from \"../util/process-related-brand\";\n\nfunction organizeBeverageData(\n jsonData: Record<string, any>\n): BeverageScreenData {\n const beverageData: BeverageScreenData = {};\n\n for (const key in jsonData) {\n // eslint-disable-next-line no-prototype-builtins\n if (jsonData.hasOwnProperty(key) && key.includes(\"slot\")) {\n const relatedBrand = key.includes(\"slotrb\");\n if (relatedBrand) {\n const slot = key.split(\":\")[1].split(\".\")[0]; // Extracting the slot number\n const relatedBrand = locateRelatedBrand(jsonData, slot);\n processRelatedBrand(jsonData)(beverageData, relatedBrand, slot, key);\n }\n }\n }\n\n return beverageData;\n}\nconst beverageScreenReducer =\n (input: UiSchemaResponse) =>\n (acc: Record<string, BeverageScreen>, curr: string) => {\n acc[curr] = input.beverageScreens[curr];\n acc[curr].beverages = {\n ...acc[curr].beverages,\n ...organizeBeverageData(acc[curr]),\n };\n return acc;\n };\n\n/**\n * Middleware that will normalize the beverage screen data. The middleware will perform the following:\n * 1. Organize the beverage screen data into a dictionary keyed by the brand id\n * 2. Adds a beverages property to the beverage screen data that contains the organized beverage data\n * 3. Processes related brands for each beverage screen\n *\n * @param context The context object that contains the data and result\n * @param next called at the end of the middleware to indicate that the next middleware can be called\n */\nexport const relatedBrandMiddleware: Middleware<\n UiSchemaResponse,\n AvailabilityContext\n> = async (context, next) => {\n const input = context.data;\n const beverageScreens = Object.keys(input.beverageScreens).reduce(\n beverageScreenReducer(input),\n input.beverageScreens\n );\n context.result = { ...context.result, beverageScreens };\n await next();\n};\n","import {\n kosFetch,\n processMiddleware,\n type DataLoader,\n type Middleware,\n} from \"@kosdev-code/kos-ui-sdk\";\nimport { assetsMiddleware } from \"./middleware/assets\";\nimport { beverageScreenMiddleware } from \"./middleware/beverage-screen\";\nimport { beveragesMiddleware } from \"./middleware/beverages\";\nimport { brandScreenMiddleware } from \"./middleware/brand-screen\";\nimport { brandsMiddleware } from \"./middleware/brands\";\nimport { copyMiddleware } from \"./middleware/copy-input\";\nimport { flavorsMiddleware } from \"./middleware/flavors\";\nimport { relatedBrandMiddleware } from \"./middleware/related-brands\";\nimport type { AvailabilityContext, UiSchemaResponse } from \"./types\";\n\nexport const transformAvailabilityData = async (\n input: UiSchemaResponse,\n additionalMiddleware: Middleware<\n UiSchemaResponse,\n AvailabilityContext\n >[] = [],\n replace = false\n): Promise<AvailabilityContext> => {\n const middleware = replace\n ? [...additionalMiddleware]\n : [\n copyMiddleware,\n assetsMiddleware,\n flavorsMiddleware,\n beveragesMiddleware,\n brandsMiddleware,\n beverageScreenMiddleware,\n relatedBrandMiddleware,\n brandScreenMiddleware,\n ...additionalMiddleware,\n ];\n const availabilityContext = await processMiddleware<\n UiSchemaResponse,\n AvailabilityContext\n >(input, middleware);\n\n return availabilityContext;\n};\n\n/**\n * Props for the freestyle availability loader\n */\nexport interface AvailabilityLoaderProps {\n /** the url to send the request for the UiSchemaData. Defaults to http://localhost:8081/system/cui/core.json */\n url?: string;\n\n /** additional middlewares to execute as part of the data processing */\n middleware?: Middleware<UiSchemaResponse, AvailabilityContext>[];\n\n /** if true, replace the default middleware with the provided middleware */\n replace?: boolean;\n}\n/**\n * Utility method to load the freestyle brandset data into the availability context.\n *\n * This loader will retrieve the UI Schema from the provided URL and transform it into\n * a format that can be used to populate the availability brands and beverages with UI schema\n * data.\n *\n * With this data, the availability models can have access to the brandset assets for\n * brands, beverages and flavours.\n *\n *\n * @param props\n * @returns A DataLoader function that will load the availability context\n */\nexport const freestyleAvailabilityLoader =\n ({\n url = \"http://localhost:8081/system/cui/core.json\",\n middleware = [],\n replace = false,\n }: AvailabilityLoaderProps = {}): DataLoader =>\n async (): Promise<AvailabilityContext> => {\n const schema = await kosFetch(url);\n if (schema.ok) {\n const response = await schema.json<UiSchemaResponse>();\n if (!response) {\n throw new Error(\"Failed to parse availability context\");\n }\n return await transformAvailabilityData(response, middleware, replace);\n }\n throw new Error(\"Failed to load availability context\");\n };\n","import {\n DataMapper,\n IndexExtension,\n PropertyMapper,\n} from \"@kosdev-code/kos-ui-sdk\";\nimport type {\n FreestyleIngredientData,\n FreestyleIngredientModelData,\n FreestyleIngredientResponseData,\n} from \"../../../models/types/ingredients\";\n\nexport const ingredientDataMapper: DataMapper = async (\n data: FreestyleIngredientResponseData\n) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { id, name, ...rest } = data;\n const response: FreestyleIngredientData = {\n ...rest,\n ingredientMacro: rest.bib && !rest.sweetener ? \"macro\" : \"micro\",\n };\n return response;\n};\n\nexport const ingredientIndexExtension: IndexExtension<FreestyleIngredientModelData> =\n {\n macro: \"ingredientMacro\",\n };\nexport const ingredientCategoryMapper: PropertyMapper = (\n ingredientData: FreestyleIngredientResponseData\n) => ingredientData.type;\n","import type { SelectedPourable } from \"@kosdev-code/kos-dispense-sdk\";\n\nexport const pourableRequestMapper = async (data: SelectedPourable) => {\n return {\n bevId: data.beverage?.rawId,\n };\n};\n","import type { TroubleServices } from \"@kosdev-code/kos-ui-sdk\";\n\ntype TroubleResponse = TroubleServices.TroubleResponse<{ flex: any }>;\n\ninterface RankAwareTrouble {\n rank: number;\n}\n\ninterface RoleAwareTrouble {\n visibleRole: string;\n}\n\ninterface ColorAwareTrouble {\n color: string;\n}\n\nconst isRankedInfo = (i: any): i is RankAwareTrouble => i?.rank !== undefined;\n\nconst isRoleAwareInfo = (i: any): i is RoleAwareTrouble =>\n i?.visibleRole !== undefined;\n\nconst isColorAwareInfo = (i: any): i is ColorAwareTrouble =>\n i?.color !== undefined;\n\nexport const freestyleTroubleRankMapper = (trouble: TroubleResponse) => {\n const info = trouble.attrs?.flex;\n if (isRankedInfo(info)) {\n return info.rank; // return the rank\n }\n return 0; // return 0 if not ranked\n};\n\nexport const freestyleTroubleColorMapper = (trouble: TroubleResponse) => {\n const info = trouble.attrs?.flex;\n if (isColorAwareInfo(info)) {\n return info.color; // return the color\n }\n return \"orange\"; // return ORANGE if no color defined\n};\n\nexport const freestyleTroubleRoleMapper = (trouble: TroubleResponse) => {\n const info = trouble.attrs?.flex;\n if (isRoleAwareInfo(info)) {\n return info.visibleRole; // return the role\n }\n return \"TECHNICIAN\"; // return empty if no role\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { DispenseExtensionManager } from \"@kosdev-code/kos-dispense-sdk\";\nimport {\n CoreExtensionManager,\n EXTENSION_TROUBLE_DATA_MAPPER,\n ExtensionManager,\n KosFeatureFlags,\n type TroubleModel,\n} from \"@kosdev-code/kos-ui-sdk\";\nimport type { AgitationRequiredTroubleIface } from \"../models/cartridge-agitator/types\";\nimport { FEATURE_SUPPORTS_ICE } from \"../models/freestyle-assembly/freestyle-assembly-model\";\nimport { freestyleAssemblyDataMapper } from \"./extensions/assembly/assembly-data-mapper\";\nimport {\n freestyleAvailabilityLoader,\n type AvailabilityLoaderProps,\n} from \"./extensions/availability/freestyle-loader\";\nimport {\n ingredientDataMapper,\n ingredientIndexExtension,\n} from \"./extensions/ingredient\";\nimport { pourableRequestMapper } from \"./extensions/pourable/select-pourable-mapper\";\nimport {\n freestyleTroubleColorMapper,\n freestyleTroubleRankMapper,\n freestyleTroubleRoleMapper,\n} from \"./extensions/trouble/trouble-utils\";\nexport const EXTENSION_PLUGIN_VISIBILITY = \"pluginVisibility\";\n\nexport class FreestyleExtensionManager {\n core: CoreExtensionManager;\n dispense: DispenseExtensionManager;\n constructor(core: CoreExtensionManager, dispense: DispenseExtensionManager) {\n this.core = core;\n this.dispense = dispense;\n }\n\n /**\n * Loads the core brandset data into a format that can be consumed by the\n * freestyle models.\n * */\n registerFreestyleBrandsetReader(props: AvailabilityLoaderProps = {}) {\n this.dispense.registerAvailabilityLoader(\n freestyleAvailabilityLoader(props)\n );\n\n return this;\n }\n\n registerFreestylePourableMapper() {\n this.dispense.registerSelectedPourableDataMapper(pourableRequestMapper);\n }\n\n registerFreestyleAssemblyMapper() {\n this.dispense.registerAssemblyDataMapper(freestyleAssemblyDataMapper);\n }\n\n registerFreestyleIngredientIndex() {\n this.dispense.registerIngredientIndex(ingredientIndexExtension);\n }\n\n registerFreestyleIngredientDataMapper() {\n this.dispense.registerIngredientDataMapper(ingredientDataMapper);\n }\n\n registerFreestyleColorMapper() {\n this.core.registerTroubleColorMapper(freestyleTroubleColorMapper);\n }\n\n registerFreestyleRankMapper() {\n this.core.registerTroubleRankMapper(freestyleTroubleRankMapper);\n }\n\n registerFreestyleRoleMapper() {\n this.core.registerTroubleRoleMapper(freestyleTroubleRoleMapper);\n }\n\n registerFreestyleIceAgitator() {\n ExtensionManager[EXTENSION_PLUGIN_VISIBILITY].register(\n EXTENSION_PLUGIN_VISIBILITY,\n (key) =>\n key !== \"iceAgitator\" ||\n KosFeatureFlags.isFeatureEnabled(FEATURE_SUPPORTS_ICE)\n );\n }\n\n registerFreestyleAgitationRequiredTroubleMapper() {\n ExtensionManager[EXTENSION_TROUBLE_DATA_MAPPER].register(\n \"agitationRequired\",\n async (trouble: TroubleModel<AgitationRequiredTroubleIface>) => {\n return { isAgitationRequired: !!trouble.data.agitationRequired };\n }\n );\n }\n\n initializeFreestyleExtension() {\n this.registerFreestylePourableMapper();\n this.registerFreestyleAssemblyMapper();\n this.registerFreestyleIngredientIndex();\n this.registerFreestyleIngredientDataMapper();\n this.registerFreestyleIceAgitator();\n this.registerFreestyleAgitationRequiredTroubleMapper();\n this.registerFreestyleRankMapper();\n this.registerFreestyleColorMapper();\n this.registerFreestyleRoleMapper();\n }\n}\n/**\n * The KosExtensionManager provides access to the extension points that are provided in the SDK for Dispense applications.\n *\n * The extension points are divided into two categories:\n *\n * @param core - The core extension {@link CoreExtensionManager} points are used to extend the base models that are provided by the SDK.\n * @param dispense - The dispense extension {@link DispenseExtensionManager} points are used to extend the models that are specific to the Dispense SDK.\n */\nexport class KosExtensionManager {\n dispense: DispenseExtensionManager;\n core: CoreExtensionManager;\n freestyle: FreestyleExtensionManager;\n constructor() {\n this.dispense = new DispenseExtensionManager();\n this.core = new CoreExtensionManager();\n this.freestyle = new FreestyleExtensionManager(this.core, this.dispense);\n }\n}\n"],"names":["organizeBeverageData","beverageScreenReducer","relatedBrand"],"mappings":"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"}
|
package/index.cjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const service = require("./service-
|
|
4
|
-
const extensionUtils = require("./extension-utils-
|
|
5
|
-
const useNutritionInfo = require("./use-nutrition-info-
|
|
3
|
+
const service = require("./service-Dfj0KrIU.cjs");
|
|
4
|
+
const extensionUtils = require("./extension-utils-BLjVB2bu.cjs");
|
|
5
|
+
const useNutritionInfo = require("./use-nutrition-info-6ijRu88p.cjs");
|
|
6
6
|
exports.AGITATION_REQUIRED_TROUBLE = service.AGITATION_REQUIRED_TROUBLE;
|
|
7
7
|
exports.AgitationRequiredTrouble = service.AgitationRequiredTrouble;
|
|
8
8
|
exports.CarbAgitator = service.CarbAgitator;
|
package/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { A, a, C, b, c, d, e, s, f, g, F, h, i, j, k, l, m, I, n, K, L, R, o, S, r } from "./service-
|
|
2
|
-
import { E, i as i2, F as F2, a as a2, b as b2, K as K2, c as c2 } from "./extension-utils-
|
|
3
|
-
import { u, a as a3, b as b3, c as c3, w } from "./use-nutrition-info-
|
|
1
|
+
import { A, a, C, b, c, d, e, s, f, g, F, h, i, j, k, l, m, I, n, K, L, R, o, S, r } from "./service-VBsCe4jt.js";
|
|
2
|
+
import { E, i as i2, F as F2, a as a2, b as b2, K as K2, c as c2 } from "./extension-utils-CV3CeJXI.js";
|
|
3
|
+
import { u, a as a3, b as b3, c as c3, w } from "./use-nutrition-info-Rc_SHgBZ.js";
|
|
4
4
|
export {
|
|
5
5
|
A as AGITATION_REQUIRED_TROUBLE,
|
|
6
6
|
a as AgitationRequiredTrouble,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fcm-pump-model.d.ts","sourceRoot":"","sources":["../../../../../../packages/kos-freestyle-sdk/src/models/models/fcm-pump/fcm-pump-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAEhB,eAAe,EAChB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,aAAa,EACb,gBAAgB,EAEhB,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"fcm-pump-model.d.ts","sourceRoot":"","sources":["../../../../../../packages/kos-freestyle-sdk/src/models/models/fcm-pump/fcm-pump-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAEhB,eAAe,EAChB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,aAAa,EACb,gBAAgB,EAEhB,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,yBAAyB,CAAC;AAejC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,eAAO,MAAM,UAAU,mBAAmB,CAAC;AAO3C,MAAM,MAAM,YAAY,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;AAElE,qBACa,gBACX,YACE,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,eAAe;IAEjB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,SAAS,CAAY;IAC7B,aAAa,EAAE,oBAAoB,CAAC;gBAElC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,kBAAkB;IAQ7B,IAAI,MAAM,wFAET;IAED,IAAI,IAAI,WAEP;IAED,IAAI,OAAO,YAEV;IAED,IAAI,SAAS,YAEZ;IAEK,UAAU;IAIhB,aAAa,CACX,KAAK,EAAE,gBAAgB,GAAG,MAAM,GAC/B,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAItC,IAAI,YAAY,uBAEf;IAED,mBAAmB,CAAC,MAAM,EAAE,MAAM;;;IAI5B,qBAAqB;IAS3B,WAAW;IAML,mBAAmB,CAAC,OAAO,CAAC,EAAE,MAAM;IAKpC,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM;IAKjC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAI9C,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAMhD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAG5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fcm-pump-services.d.ts","sourceRoot":"","sources":["../../../../../../../packages/kos-freestyle-sdk/src/models/models/fcm-pump/services/fcm-pump-services.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"fcm-pump-services.d.ts","sourceRoot":"","sources":["../../../../../../../packages/kos-freestyle-sdk/src/models/models/fcm-pump/services/fcm-pump-services.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,cAAc,EAEpB,MAAM,yBAAyB,CAAC;AAWjC,MAAM,MAAM,uBAAuB,GAAG,WAAW,GAAG,cAAc,CAAC;AACnE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,CAAC,EAAE,uBAAuB,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG;IACnC,uBAAuB,GAAG,SAAS;IACnC,kBAAkB;CACnB,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,MAAM,MAAM,KACX,OAAO,CAAC,sBAAsB,CAoChC,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAU,MAAM,MAAM,EAAE,UAAU,MAAM,4BAoCvE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAU,MAAM,MAAM,EAAE,UAAU,MAAM,4BAoCpE,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,MAAM,MAAM,EACZ,QAAQ,MAAM,EACd,UAAU,MAAM,4BAqCjB,CAAC;AASF,eAAO,MAAM,eAAe,GAC1B,MAAM,MAAM,EACZ,SAAS,MAAM,EACf,SAAS,MAAM,oBAuBhB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"freestyle-nozzle-services.d.ts","sourceRoot":"","sources":["../../../../../../../packages/kos-freestyle-sdk/src/models/models/freestyle-nozzle/services/freestyle-nozzle-services.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"freestyle-nozzle-services.d.ts","sourceRoot":"","sources":["../../../../../../../packages/kos-freestyle-sdk/src/models/models/freestyle-nozzle/services/freestyle-nozzle-services.ts"],"names":[],"mappings":"AAgBA,UAAU,cAAc;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AACD,UAAU,eAAe;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AACD,MAAM,WAAW,8BAA8B;IAC7C,MAAM,CAAC,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,WAAW,EAAE,MAAM,CAAC;QACpB,kBAAkB,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI5B;AACD;;;GAGG;AACH,eAAO,MAAM,yBAAyB,GACpC,iBAAiB,MAAM,EACvB,YAAY,MAAM,EAClB,SAAS,MAAM,EAAE,EACjB,gBAAiC,4CA6BlC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"freestyle-pump-services.d.ts","sourceRoot":"","sources":["../../../../../../../packages/kos-freestyle-sdk/src/models/models/freestyle-pump/services/freestyle-pump-services.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"freestyle-pump-services.d.ts","sourceRoot":"","sources":["../../../../../../../packages/kos-freestyle-sdk/src/models/models/freestyle-pump/services/freestyle-pump-services.ts"],"names":[],"mappings":"AAgBA,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG,SAAS,CAAC;AAC9D,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,CAAC,EAAE,oBAAoB,CAAC;CAC9B,CAAC;AACF,MAAM,MAAM,mBAAmB,GAAG;IAChC,oBAAoB,GAAG,SAAS;IAChC,eAAe;CAChB,CAAC;AACF,eAAO,MAAM,WAAW,GACtB,QAAQ,MAAM,EACd,MAAM,MAAM,KACX,OAAO,CAAC,mBAAmB,CAoC7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ice-agitator-services.d.ts","sourceRoot":"","sources":["../../../../../../../packages/kos-freestyle-sdk/src/models/models/ice-agitator/services/ice-agitator-services.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ice-agitator-services.d.ts","sourceRoot":"","sources":["../../../../../../../packages/kos-freestyle-sdk/src/models/models/ice-agitator/services/ice-agitator-services.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACxB,MAAM,yBAAyB,CAAC;AAWjC;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAU,MAAM,MAAM,sDAM7C,CAAC;AAEF,eAAO,MAAM,aAAa,GAAU,UAAU,MAAM,EAAE,MAAM,MAAM,iDAOjE,CAAC;AAEF,eAAO,MAAM,eAAe,GAAU,MAAM,MAAM,uDAKjD,CAAC;AAEF,eAAO,MAAM,IAAI,GAAU,MAAM,MAAM,EAAE,SAAS,MAAM,4BAYvD,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,MAAM,MAAM,EAAE,SAAS,MAAM,4BAY1D,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAU,MAAM,MAAM,EAAE,SAAS,MAAM,4BAY3D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spm-pump-services.d.ts","sourceRoot":"","sources":["../../../../../../../packages/kos-freestyle-sdk/src/models/models/spm-pump/services/spm-pump-services.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"spm-pump-services.d.ts","sourceRoot":"","sources":["../../../../../../../packages/kos-freestyle-sdk/src/models/models/spm-pump/services/spm-pump-services.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,cAAc,EAEpB,MAAM,yBAAyB,CAAC;AAYjC,eAAO,MAAM,mBAAmB,GAAU,MAAM,MAAM,EAAE,UAAU,MAAM,4BAoCvE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAU,MAAM,MAAM,EAAE,UAAU,MAAM,4BAoCpE,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,MAAM,MAAM,EACZ,QAAQ,MAAM,EACd,SAAS,GAAG,EACZ,UAAU,MAAM,4BA4CjB,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,MAAM,MAAM,EACZ,SAAS,MAAM,EACf,SAAS,MAAM,EACf,SAAS,GAAG,mBA4Cb,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assembly-data-mapper.d.ts","sourceRoot":"","sources":["../../../../../../../packages/kos-freestyle-sdk/src/models/utils/extensions/assembly/assembly-data-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAY5E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAGzD,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC;AAC1C,eAAO,MAAM,aAAa,EAAE,aAAa,EAAoB,CAAC;AAC9D,eAAO,MAAM,oBAAoB;;CAEhC,CAAC;AACF,eAAO,MAAM,iBAAiB;;CAE7B,CAAC;
|
|
1
|
+
{"version":3,"file":"assembly-data-mapper.d.ts","sourceRoot":"","sources":["../../../../../../../packages/kos-freestyle-sdk/src/models/utils/extensions/assembly/assembly-data-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAY5E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAGzD,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC;AAC1C,eAAO,MAAM,aAAa,EAAE,aAAa,EAAoB,CAAC;AAC9D,eAAO,MAAM,oBAAoB;;CAEhC,CAAC;AACF,eAAO,MAAM,iBAAiB;;CAE7B,CAAC;AAOF,eAAO,MAAM,2BAA2B,EAAE,UAAU,CAClD,yBAAyB,EACzB,yBAAyB,CAiE1B,CAAC"}
|
|
@@ -22,7 +22,7 @@ declare const _KosModelRegistry: {
|
|
|
22
22
|
model: ReturnType<typeof RegistrationManager.model.register>;
|
|
23
23
|
companion: ReturnType<typeof RegistrationManager.companion.register>;
|
|
24
24
|
dispense: {
|
|
25
|
-
models: () => RegistrationResult<{
|
|
25
|
+
models: (options?: import('@kosdev-code/kos-ui-sdk').CoreModelOptions) => RegistrationResult<{
|
|
26
26
|
core: {
|
|
27
27
|
models: (options?: import('@kosdev-code/kos-ui-sdk').CoreModelOptions) => RegistrationResult<{}>;
|
|
28
28
|
};
|
|
@@ -32,7 +32,7 @@ declare const _KosModelRegistry: {
|
|
|
32
32
|
}>;
|
|
33
33
|
};
|
|
34
34
|
cuiKit: {
|
|
35
|
-
models: () => RegistrationResult<{
|
|
35
|
+
models: (options?: import('@kosdev-code/kos-ui-sdk').CoreModelOptions) => RegistrationResult<{
|
|
36
36
|
core: {
|
|
37
37
|
models: (options?: import('@kosdev-code/kos-ui-sdk').CoreModelOptions) => RegistrationResult<{}>;
|
|
38
38
|
};
|
package/models.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const service = require("./service-
|
|
4
|
-
const extensionUtils = require("./extension-utils-
|
|
3
|
+
const service = require("./service-Dfj0KrIU.cjs");
|
|
4
|
+
const extensionUtils = require("./extension-utils-BLjVB2bu.cjs");
|
|
5
5
|
exports.AGITATION_REQUIRED_TROUBLE = service.AGITATION_REQUIRED_TROUBLE;
|
|
6
6
|
exports.AgitationRequiredTrouble = service.AgitationRequiredTrouble;
|
|
7
7
|
exports.CarbAgitator = service.CarbAgitator;
|
package/models.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { A, a, C, b, c, d, e, s, f, g, F, h, i, j, k, l, m, I, n, K, L, S, r } from "./service-
|
|
2
|
-
import { E, i as i2, F as F2, a as a2, b as b2, K as K2, c as c2 } from "./extension-utils-
|
|
1
|
+
import { A, a, C, b, c, d, e, s, f, g, F, h, i, j, k, l, m, I, n, K, L, S, r } from "./service-VBsCe4jt.js";
|
|
2
|
+
import { E, i as i2, F as F2, a as a2, b as b2, K as K2, c as c2 } from "./extension-utils-CV3CeJXI.js";
|
|
3
3
|
export {
|
|
4
4
|
A as AGITATION_REQUIRED_TROUBLE,
|
|
5
5
|
a as AgitationRequiredTrouble,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kosdev-code/kos-freestyle-sdk",
|
|
3
|
-
"version": "0.1.0-next.
|
|
3
|
+
"version": "0.1.0-next.999",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"types": "./index.d.ts",
|
|
6
6
|
"main": "./index.js",
|
|
@@ -23,15 +23,15 @@
|
|
|
23
23
|
"./package.json": "./package.json"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@kosdev-code/kos-ui-sdk": "0.1.0-next.
|
|
27
|
-
"@kosdev-code/kos-dispense-sdk": "0.1.0-next.
|
|
26
|
+
"@kosdev-code/kos-ui-sdk": "0.1.0-next.999",
|
|
27
|
+
"@kosdev-code/kos-dispense-sdk": "0.1.0-next.999"
|
|
28
28
|
},
|
|
29
29
|
"publishConfig": {
|
|
30
30
|
"registry": "https://registry.npmjs.org/"
|
|
31
31
|
},
|
|
32
32
|
"kos": {
|
|
33
33
|
"build": {
|
|
34
|
-
"gitHash": "
|
|
34
|
+
"gitHash": "70cbd17f209ba3461e0b83119abce9394c4cc80b"
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
}
|
|
@@ -521,7 +521,10 @@ const { URL: URL$4 } = kosUiSdk.resolveServiceUrl("FCM-PUMP_SERVICE");
|
|
|
521
521
|
const { postModel: postModel$3 } = kosUiSdk.ServiceFactory.build({
|
|
522
522
|
basePath: `${URL$4}/api/fcm-pump`
|
|
523
523
|
});
|
|
524
|
-
const log$6 = kosUiSdk.KosLog.createLogger({
|
|
524
|
+
const log$6 = kosUiSdk.KosLog.createLogger({
|
|
525
|
+
group: kosUiSdk.LogGroup.service,
|
|
526
|
+
name: "fcm-pump-service"
|
|
527
|
+
});
|
|
525
528
|
const performElectricalTest = async (path) => {
|
|
526
529
|
log$6.debug(
|
|
527
530
|
`performElectricalTest - sending POST request to /api/ext/freestyle/fcm/diagnostics/${path}/electricalTest`
|
|
@@ -675,7 +678,10 @@ var __decorateClass$a = (decorators, target, key, kind) => {
|
|
|
675
678
|
return result;
|
|
676
679
|
};
|
|
677
680
|
const MODEL_TYPE$a = "fcm-pump-model";
|
|
678
|
-
const log$5 = kosUiSdk.KosLog.createLogger({
|
|
681
|
+
const log$5 = kosUiSdk.KosLog.createLogger({
|
|
682
|
+
group: kosUiSdk.LogGroup.model,
|
|
683
|
+
name: "fcm-pump-model"
|
|
684
|
+
});
|
|
679
685
|
let FcmPumpModelImpl = class {
|
|
680
686
|
id;
|
|
681
687
|
logger;
|
|
@@ -1100,7 +1106,10 @@ const { URL: URL$3 } = kosUiSdk.resolveServiceUrl("FREESTYLE-NOZZLE_SERVICE");
|
|
|
1100
1106
|
const { getOne } = kosUiSdk.ServiceFactory.build({
|
|
1101
1107
|
basePath: `${URL$3}/api/freestyle-nozzle`
|
|
1102
1108
|
});
|
|
1103
|
-
const log$3 = kosUiSdk.KosLog.createLogger({
|
|
1109
|
+
const log$3 = kosUiSdk.KosLog.createLogger({
|
|
1110
|
+
group: kosUiSdk.LogGroup.service,
|
|
1111
|
+
name: "freestyle-nozzle-service"
|
|
1112
|
+
});
|
|
1104
1113
|
class NutritionInfoError extends Error {
|
|
1105
1114
|
constructor(message) {
|
|
1106
1115
|
super(message);
|
|
@@ -1220,7 +1229,10 @@ const { URL: URL$2 } = kosUiSdk.resolveServiceUrl("PUMP_SERVICE");
|
|
|
1220
1229
|
const { postModel: postModel$2 } = kosUiSdk.ServiceFactory.build({
|
|
1221
1230
|
basePath: `${URL$2}/api/ext/freestyle/microCalibration`
|
|
1222
1231
|
});
|
|
1223
|
-
const log$2 = kosUiSdk.KosLog.createLogger({
|
|
1232
|
+
const log$2 = kosUiSdk.KosLog.createLogger({
|
|
1233
|
+
group: kosUiSdk.LogGroup.service,
|
|
1234
|
+
name: "freestyle-pump-service"
|
|
1235
|
+
});
|
|
1224
1236
|
const replacePump = async (pumpId, code) => {
|
|
1225
1237
|
log$2.debug(
|
|
1226
1238
|
`replacePump - sending POST request to /api/ext/freestyle/microCalibration/cal/${pumpId}/code/${code}`
|
|
@@ -1285,7 +1297,10 @@ const { URL: URL$1 } = kosUiSdk.resolveServiceUrl("ICE_AGITATOR_SERVICE");
|
|
|
1285
1297
|
const { getAll, postModel: postModel$1 } = kosUiSdk.ServiceFactory.build({
|
|
1286
1298
|
basePath: `${URL$1}/api/ext/freestyle/ice`
|
|
1287
1299
|
});
|
|
1288
|
-
const log$1 = kosUiSdk.KosLog.createLogger({
|
|
1300
|
+
const log$1 = kosUiSdk.KosLog.createLogger({
|
|
1301
|
+
group: kosUiSdk.LogGroup.service,
|
|
1302
|
+
name: "ice-agitator-service"
|
|
1303
|
+
});
|
|
1289
1304
|
const getIceTypes = async (path) => {
|
|
1290
1305
|
log$1.debug("sending GET for ice types");
|
|
1291
1306
|
const response = await getAll({
|
|
@@ -1654,7 +1669,10 @@ const { URL } = kosUiSdk.resolveServiceUrl("SPM-PUMP_SERVICE");
|
|
|
1654
1669
|
const { postModel } = kosUiSdk.ServiceFactory.build({
|
|
1655
1670
|
basePath: `${URL}/api/spm-pump`
|
|
1656
1671
|
});
|
|
1657
|
-
const log = kosUiSdk.KosLog.createLogger({
|
|
1672
|
+
const log = kosUiSdk.KosLog.createLogger({
|
|
1673
|
+
group: kosUiSdk.LogGroup.service,
|
|
1674
|
+
name: "spm-pump-service"
|
|
1675
|
+
});
|
|
1658
1676
|
const performPreCalibrate = async (pump, tracker) => {
|
|
1659
1677
|
log.debug(
|
|
1660
1678
|
`performPreCalibrate - sending POST request to /api/ext/freestyle/microCalibration/pour/${pump}/preCalibrate`
|
|
@@ -2006,7 +2024,10 @@ const AGITATOR_KEYS = ["iceAgitator"];
|
|
|
2006
2024
|
const AGITATOR_FACTORY_MAP = {
|
|
2007
2025
|
iceAgitator: IceAgitator
|
|
2008
2026
|
};
|
|
2009
|
-
const logger = kosUiSdk.KosLog.createLogger({
|
|
2027
|
+
const logger = kosUiSdk.KosLog.createLogger({
|
|
2028
|
+
group: kosUiSdk.LogGroup.model,
|
|
2029
|
+
name: "freestyle-assembly-data-mapper"
|
|
2030
|
+
});
|
|
2010
2031
|
const freestyleAssemblyDataMapper = async (data) => {
|
|
2011
2032
|
const cartridgeAgitators = CartridgeAgitatorContainer.instance().options({}).build();
|
|
2012
2033
|
const remoteTrays = RemoteTrayContainer.instance().options({}).build();
|
|
@@ -2299,4 +2320,4 @@ exports.service$1 = service$3;
|
|
|
2299
2320
|
exports.service$2 = service$2;
|
|
2300
2321
|
exports.service$3 = service$1;
|
|
2301
2322
|
exports.service$4 = service;
|
|
2302
|
-
//# sourceMappingURL=service-
|
|
2323
|
+
//# sourceMappingURL=service-Dfj0KrIU.cjs.map
|