albert-heijn-mcp 1.9.0 → 1.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -375,7 +375,7 @@ Tools that return data also return it as [structured output](https://modelcontex
375
375
  |---|---|
376
376
  | `ah_search_products` | Search one or more keywords at once; Dutch terms work best. Filter by `bonus=true` or by `filters` (organic, vegan, gluten_free and other diets, allergens and labels), and `sort` by price, what you buy most, or Nutri-Score. `category_id` limits it to one category, or lists the category on its own. |
377
377
  | `ah_get_products` | Details for one or more products, by product ID or by `barcodes` (the number under a barcode). `include_nutritional_info=true` adds the nutrition table. |
378
- | `ah_get_categories` | AH's product categories and their subcategories, for `category_id` in `ah_search_products`. |
378
+ | `ah_get_categories` | AH's top-level product categories, or a category's subcategories with their product counts, for `category_id` in `ah_search_products`. |
379
379
  | `ah_get_product_alternatives` | Similar products and substitutes AH suggests for a product. |
380
380
  | `ah_get_bonus_offers` | This week's bonus offers, or next week's with `period=next`. `previously_bought=true` limits them to products you bought before (AH's "Eerder gekocht"). Can filter by keyword. |
381
381
  | `ah_get_bonus_group_products` | The individual products behind a group deal such as "2+1 gratis". |
@@ -3,8 +3,8 @@ import { describeError } from "../log.js";
3
3
  // The API expects the official iOS app. If AH starts rejecting requests,
4
4
  // update the version and user agent to the current app release first.
5
5
  export const CLIENT_NAME = "appie-ios";
6
- const CLIENT_VERSION = "9.28";
7
- const USER_AGENT = "Appie/9.28 (iPhone17,3; iPhone; CPU OS 26_1 like Mac OS X)";
6
+ const CLIENT_VERSION = "9.48";
7
+ const USER_AGENT = "Appie/9.48 (iPhone17,3; iPhone; CPU OS 26_1 like Mac OS X)";
8
8
  const BASE_URL = "https://api.ah.nl";
9
9
  const TIMEOUT_MS = 30_000;
10
10
  /**
@@ -50,6 +50,10 @@ export async function getProductAlternatives(c, id, size) {
50
50
  }
51
51
  /** Largest page AH serves. */
52
52
  const MAX_PAGE = 100;
53
+ /** One page of AH's product search. */
54
+ function searchPage(c, params) {
55
+ return c.request(`/mobile-services/product/search/v2?${params}`);
56
+ }
53
57
  /** Searches by keyword; returns at most size products. */
54
58
  export async function searchProducts(c, query, size, opts = {}) {
55
59
  const properties = opts.properties ?? [];
@@ -70,7 +74,7 @@ export async function searchProducts(c, query, size, opts = {}) {
70
74
  params.set("filters", `property=${properties.join(",")}`);
71
75
  else if (opts.bonus)
72
76
  params.set("filters", "bonus=Bonus");
73
- const res = await c.request(`/mobile-services/product/search/v2?${params}`);
77
+ const res = await searchPage(c, params);
74
78
  let products = res.products ?? [];
75
79
  if (opts.bonus)
76
80
  products = products.filter((p) => p.isBonus);
@@ -82,18 +86,19 @@ export async function searchProducts(c, query, size, opts = {}) {
82
86
  }
83
87
  return products.slice(0, size);
84
88
  }
85
- export async function getProduct(c, id) {
86
- const res = await c.request(`/mobile-services/product/detail/v4/fir/${id}`);
87
- return res.productCard;
88
- }
89
89
  /** Ids per productsByIds call that keep the request URL a safe length. */
90
90
  export const PRODUCT_IDS_BATCH = 50;
91
- /** Returns products in the order of ids. */
91
+ /** Returns products in the order of ids, PRODUCT_IDS_BATCH per request; ids AH doesn't know are left out. */
92
92
  export async function productsByIds(c, ids) {
93
- const params = new URLSearchParams({ sortOn: "INPUT_PRODUCT_IDS" });
94
- for (const id of ids)
95
- params.append("ids", String(id));
96
- return (await c.request(`/mobile-services/product/search/v2/products?${params}`)) ?? [];
93
+ const products = [];
94
+ // One batch at a time, so a long list doesn't send AH a burst of requests.
95
+ for (let i = 0; i < ids.length; i += PRODUCT_IDS_BATCH) {
96
+ const params = new URLSearchParams({ sortOn: "INPUT_PRODUCT_IDS" });
97
+ for (const id of ids.slice(i, i + PRODUCT_IDS_BATCH))
98
+ params.append("ids", String(id));
99
+ products.push(...((await c.request(`/mobile-services/product/search/v2/products?${params}`)) ?? []));
100
+ }
101
+ return products;
97
102
  }
98
103
  /** First nutrition table (usually per 100 g/ml), or undefined if AH has none. */
99
104
  export async function getNutrition(c, id) {
@@ -172,21 +177,53 @@ export async function productIdByBarcode(c, barcode) {
172
177
  throw err;
173
178
  }
174
179
  }
175
- /** Top-level categories, or the subcategories of parentId. */
176
- export async function getCategories(c, parentId) {
177
- if (!parentId) {
178
- const res = await c.request("/mobile-services/v1/product-shelves/categories");
179
- return (res ?? []).map(({ id, name }) => ({ id, name }));
180
- }
181
- try {
182
- const res = await c.request(`/mobile-services/v1/product-shelves/categories/${parentId}/sub-categories`);
183
- return (res?.children ?? []).map(({ id, name }) => ({ id, name }));
184
- }
185
- catch (err) {
186
- // A leaf category, or an id that isn't one.
187
- if (hasStatus(err, 404))
188
- return [];
189
- throw err;
190
- }
180
+ /**
181
+ * AH's top-level categories (the aisles of ah.nl). The API has no list of them since the product-shelves
182
+ * endpoints were removed, and the search facets only name a sample of narrower categories.
183
+ */
184
+ export const TOP_CATEGORIES = [
185
+ { id: 6401, name: "Groente, aardappelen" },
186
+ { id: 20885, name: "Fruit, verse sappen" },
187
+ { id: 1301, name: "Maaltijden, salades" },
188
+ { id: 9344, name: "Vlees" },
189
+ { id: 1651, name: "Vis" },
190
+ { id: 20128, name: "Vegetarisch, vegan en plantaardig" },
191
+ { id: 5481, name: "Vleeswaren" },
192
+ { id: 1192, name: "Kaas" },
193
+ { id: 1730, name: "Zuivel, eieren" },
194
+ { id: 1355, name: "Bakkerij" },
195
+ { id: 4246, name: "Glutenvrij" },
196
+ { id: 20824, name: "Borrel, chips, snacks" },
197
+ { id: 1796, name: "Pasta, rijst, wereldkeuken" },
198
+ { id: 6409, name: "Soepen, sauzen, kruiden, olie" },
199
+ { id: 20129, name: "Koek, snoep, chocolade" },
200
+ { id: 6405, name: "Ontbijtgranen, beleg" },
201
+ { id: 2457, name: "Tussendoortjes" },
202
+ { id: 5881, name: "Diepvries" },
203
+ { id: 1043, name: "Koffie, thee" },
204
+ { id: 20130, name: "Frisdrank, sappen, water" },
205
+ { id: 6406, name: "Bier, wijn, aperitieven" },
206
+ { id: 11717, name: "Gezondheid en sport" },
207
+ { id: 1045, name: "Drogisterij" },
208
+ { id: 18521, name: "Baby en kind" },
209
+ { id: 1165, name: "Huishouden" },
210
+ { id: 18519, name: "Huisdier" },
211
+ { id: 1057, name: "Koken, tafelen, vrije tijd" },
212
+ ];
213
+ const TOP_CATEGORY_IDS = new Set(TOP_CATEGORIES.map((t) => t.id));
214
+ /**
215
+ * Subcategories of parentId: the narrower categories its products fall into. AH's categories overlap, so one
216
+ * can show up under several parents. undefined if parentId has no products (not a category id).
217
+ */
218
+ export async function getSubcategories(c, parentId) {
219
+ const res = await searchPage(c, new URLSearchParams({ query: "", page: "0", size: "1", taxonomyId: String(parentId) }));
220
+ const total = res.page?.totalElements ?? 0;
221
+ if (total === 0)
222
+ return undefined;
223
+ const options = res.filters?.find((f) => f.id === "taxonomy")?.options ?? [];
224
+ // The facet also names the category itself and every category holding all its products (its ancestors).
225
+ return options
226
+ .map((o) => ({ id: Number(o.id), name: o.label, products: o.count }))
227
+ .filter((o) => Number.isInteger(o.id) && o.id > 0 && o.id !== parentId && !TOP_CATEGORY_IDS.has(o.id) && o.products < total);
191
228
  }
192
229
  //# sourceMappingURL=products.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"products.js","sourceRoot":"","sources":["../../src/ahapi/products.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"products.js","sourceRoot":"","sources":["../../src/ahapi/products.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- import { getNutrition, getProduct, getCategories, getProductAlternatives, hasValidCheckDigit, normalizeBarcode, productIdByBarcode, searchProducts, } from "../ahapi/index.js";
2
+ import { getNutrition, getProductAlternatives, getSubcategories, hasValidCheckDigit, normalizeBarcode, productIdByBarcode, productsByIds, searchProducts, TOP_CATEGORIES, } from "../ahapi/index.js";
3
3
  import { addAuthedTool, nonFatal, orDefault, parallel, structured, withRetry } from "./common.js";
4
4
  import { detailProduct, productDetail, productSummary, summarizeProduct } from "./views.js";
5
5
  const MAX_QUERIES = 10;
@@ -210,18 +210,45 @@ export function registerProductTools(server, ctx) {
210
210
  add(id);
211
211
  if (results.length === 0)
212
212
  throw new Error("provide at least one product ID or barcode");
213
- // 3. Product details.
214
- await parallel(wanted.length, 5, async (i) => {
215
- const { id, barcode, at } = wanted[i];
216
- const key = String(id);
217
- results[at] = await nonFatal(async () => {
218
- const p = await ctx.products.getOrLoad(key, () => withRetry("ah_get_products", () => getProduct(c, id)));
219
- const nutrition = include_nutritional_info
220
- ? await ctx.nutrition.getOrLoad(key, () => withRetry("ah_get_products", () => getNutrition(c, id)))
221
- : undefined;
222
- return { ...detailProduct(p, nutrition), barcode };
223
- }, (err) => ({ id, barcode, error: err.message }));
224
- });
213
+ // 3. Product details, the uncached ones in one request, alongside the nutrition, which needs only the ids.
214
+ // Products are held here rather than re-read from the cache, where an entry can expire before it is used.
215
+ const found = new Map();
216
+ const missing = [];
217
+ for (const { id } of wanted) {
218
+ const p = ctx.products.get(String(id));
219
+ if (p)
220
+ found.set(id, p);
221
+ else
222
+ missing.push(id);
223
+ }
224
+ const nutrition = new Map();
225
+ const [fetchError] = await Promise.all([
226
+ missing.length === 0
227
+ ? undefined
228
+ : nonFatal(async () => {
229
+ for (const p of await withRetry("ah_get_products", () => productsByIds(c, missing))) {
230
+ found.set(p.webshopId, p);
231
+ ctx.products.set(String(p.webshopId), p);
232
+ }
233
+ return undefined;
234
+ }, (err) => err),
235
+ include_nutritional_info &&
236
+ parallel(wanted.length, 5, async (i) => {
237
+ const { id } = wanted[i];
238
+ const load = () => ctx.nutrition.getOrLoad(String(id), () => withRetry("ah_get_products", () => getNutrition(c, id)));
239
+ nutrition.set(id, await nonFatal(load, (err) => err));
240
+ }),
241
+ ]);
242
+ for (const { id, barcode, at } of wanted) {
243
+ const p = found.get(id);
244
+ const n = nutrition.get(id);
245
+ if (!p)
246
+ results[at] = { id, barcode, error: fetchError?.message ?? `Albert Heijn has no product with ID ${id}` };
247
+ else if (n instanceof Error)
248
+ results[at] = { id, barcode, error: n.message };
249
+ else
250
+ results[at] = { ...detailProduct(p, n), barcode };
251
+ }
225
252
  return structured({ products: results });
226
253
  });
227
254
  addAuthedTool(server, ctx, {
@@ -248,25 +275,23 @@ export function registerProductTools(server, ctx) {
248
275
  name: "ah_get_categories",
249
276
  title: "Albert Heijn: Product Categories",
250
277
  kind: "readOnly",
251
- description: "List Albert Heijn's product categories (the aisles of ah.nl), e.g. 'Groente, aardappelen' or 'Kaas'. " +
252
- "Without parent_id returns the top-level categories; with a parent_id, its subcategories. " +
278
+ description: "List Albert Heijn's product categories, e.g. 'Groente, aardappelen' or 'Kaas'. " +
279
+ "Without parent_id returns the top-level categories (the aisles of ah.nl); with a parent_id, its subcategories " +
280
+ "with their product counts. Categories overlap, so a subcategory can also appear under other parents. " +
253
281
  "Pass a category id as category_id to ah_search_products to search or list products in it.",
254
282
  input: {
255
283
  parent_id: z.number().int().positive().optional().describe("Category id whose subcategories to list"),
256
284
  },
257
- output: { categories: z.array(z.object({ id: z.number(), name: z.string() })) },
285
+ output: { categories: z.array(z.object({ id: z.number(), name: z.string(), products: z.number().optional() })) },
258
286
  }, async (c, { parent_id }) => {
259
- const categories = await ctx.categories.getOrLoad(String(parent_id ?? ""), () => withRetry("ah_get_categories", () => getCategories(c, parent_id)),
260
- // Not kept when empty: at the top level that's likely a hiccup at AH, and for a parent_id AH answers a
261
- // leaf and a wrong id alike.
262
- (list) => list.length > 0);
263
- let message;
264
- if (!categories.length) {
265
- message = parent_id
266
- ? `Category ${parent_id} has no subcategories (or is not a category id).`
267
- : "AH returned no product categories.";
268
- }
269
- return structured({ categories }, message);
287
+ if (!parent_id)
288
+ return structured({ categories: [...TOP_CATEGORIES] });
289
+ const categories = await ctx.categories.getOrLoad(String(parent_id), () => withRetry("ah_get_categories", () => getSubcategories(c, parent_id)),
290
+ // Not kept when empty or unknown: that may be a hiccup at AH rather than a leaf or a wrong id.
291
+ (list) => Boolean(list?.length));
292
+ if (!categories)
293
+ return structured({ categories: [] }, `No products are in category ${parent_id}: it is not a category id, or AH returned nothing for it.`);
294
+ return structured({ categories }, categories.length ? undefined : `Category ${parent_id} has no subcategories.`);
270
295
  });
271
296
  }
272
297
  /** Cached, retried product search. */
@@ -1 +1 @@
1
- {"version":3,"file":"products.js","sourceRoot":"","sources":["../../src/tools/products.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAEL,YAAY,EACZ,UAAU,EACV,aAAa,EACb,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAIlB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAoB,SAAS,EAAE,MAAM,aAAa,CAAC;AACpH,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE5F,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B,wCAAwC;AACxC,MAAM,OAAO,GAAG;IACd,OAAO,EAAE,eAAe;IACxB,aAAa,EAAE,eAAe;IAC9B,GAAG,EAAE,UAAU;IACf,MAAM,EAAE,WAAW;IACnB,KAAK,EAAE,+BAA+B;IACtC,UAAU,EAAE,8BAA8B;IAC1C,SAAS,EAAE,8BAA8B;IACzC,OAAO,EAAE,2BAA2B;IACpC,QAAQ,EAAE,4BAA4B;IACtC,WAAW,EAAE,oCAAoC;IACjD,YAAY,EAAE,qCAAqC;IACnD,SAAS,EAAE,kCAAkC;IAC7C,QAAQ,EAAE,oCAAoC;IAC9C,QAAQ,EAAE,mCAAmC;IAC7C,WAAW,EAAE,oCAAoC;IACjD,QAAQ,EAAE,kCAAkC;IAC5C,SAAS,EAAE,iCAAiC;IAC5C,cAAc,EAAE,0CAA0C;IAC1D,WAAW,EAAE,mCAAmC;IAChD,WAAW,EAAE,sCAAsC;IACnD,YAAY,EAAE,qCAAqC;IACnD,UAAU,EAAE,oCAAoC;IAChD,aAAa,EAAE,qCAAqC;CAC5C,CAAC;AAGX,MAAM,KAAK,GAAG;IACZ,SAAS,EAAE,WAAW;IACtB,cAAc,EAAE,cAAc;IAC9B,cAAc,EAAE,cAAc;IAC9B,WAAW,EAAE,oBAAoB;IACjC,UAAU,EAAE,YAAY;CACqB,CAAC;AAGhD,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,GAAgB;IACtE,aAAa,CACX,MAAM,EACN,GAAG,EACH;QACE,IAAI,EAAE,oBAAoB;QAC1B,KAAK,EAAE,+BAA+B;QACtC,IAAI,EAAE,UAAU;QAChB,WAAW,EACT,+DAA+D;YAC/D,gFAAgF;YAChF,8CAA8C;YAC9C,0FAA0F;YAC1F,iEAAiE;YACjE,6FAA6F;YAC7F,qHAAqH;YACrH,6GAA6G;YAC7G,iGAAiG;YACjG,oHAAoH;YACpH,6GAA6G;YAC7G,qEAAqE;YACrE,gGAAgG;QAClG,KAAK,EAAE;YACL,OAAO,EAAE,CAAC;iBACP,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,EAAE;iBACV,QAAQ,CAAC,yFAAyF,CAAC;YACtG,KAAK,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,QAAQ,CAAC,6EAA6E,CAAC;YAC1F,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;YAC3F,OAAO,EAAE,CAAC;iBACP,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAA0B,CAAC,CAAC;iBAC5D,QAAQ,EAAE;iBACV,QAAQ,CAAC,gEAAgE,CAAC;YAC7E,IAAI,EAAE,CAAC;iBACJ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAsB,CAAC;iBAC7C,QAAQ,EAAE;iBACV,QAAQ,CAAC,kCAAkC,CAAC;YAC/C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;SACvH;QACD,MAAM,EAAE;YACN,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;SACnH;KACF,EACD,KAAK,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE;QACjE,IAAI,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QACpF,iEAAiE;QACjE,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW;YAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9C,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QAC5F,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAExE,MAAM,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACjC,KAAK;YACL,OAAO,EAAE,EAA2C;YACpD,KAAK,EAAE,SAA+B;SACvC,CAAC,CAAC,CAAC;QACJ,MAAM,IAAI,GAAkB;YAC1B,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;YACrB,UAAU,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;YACrE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,WAAW,CAAC;YAChC,UAAU,EAAE,WAAW;SACxB,CAAC;QACF,MAAM,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YACvC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;YACtB,MAAM,QAAQ,CACZ,KAAK,IAAI,EAAE;gBACT,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YACpF,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;gBACN,CAAC,CAAC,KAAK,GAAI,GAAa,CAAC,OAAO,CAAC;YACnC,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,UAAU,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3C,CAAC,CACF,CAAC;IAEF,aAAa,CACX,MAAM,EACN,GAAG,EACH;QACE,IAAI,EAAE,iBAAiB;QACvB,KAAK,EAAE,+BAA+B;QACtC,IAAI,EAAE,UAAU;QAChB,WAAW,EACT,mFAAmF;YACnF,yGAAyG;YACzG,gFAAgF;YAChF,sGAAsG;YACtG,kHAAkH;QACpH,KAAK,EAAE;YACL,WAAW,EAAE,CAAC;iBACX,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;iBACvB,GAAG,CAAC,EAAE,CAAC;iBACP,QAAQ,EAAE;iBACV,QAAQ,CAAC,+HAA+H,CAAC;YAC5I,QAAQ,EAAE,CAAC;iBACR,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,GAAG,CAAC,EAAE,CAAC;iBACP,QAAQ,EAAE;iBACV,QAAQ,CAAC,oGAAoG,CAAC;YACjH,wBAAwB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;SACxG;QACD,MAAM,EAAE;YACN,QAAQ,EAAE,CAAC,CAAC,KAAK,CACf,CAAC,CAAC,KAAK,CAAC;gBACN,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;gBACxD,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;aAC3F,CAAC,CACH;SACF;KACF,EACD,KAAK,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,wBAAwB,EAAE,EAAE,EAAE;QAE/D,MAAM,OAAO,GAAG,wBAAwB,eAAe,oBAAoB,CAAC;QAE5E,sGAAsG;QACtG,+DAA+D;QAC/D,wDAAwD;QACxD,MAAM,SAAS,GAAG,IAAI,GAAG,EAA6B,CAAC;QACvD,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,MAAM,KAAK,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7C,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACvC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,IAAK,CAAC,CAAC;YACrD,6DAA6D;YAC7D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,IAAK,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,OAAO,GAAG,eAAe,CAAC;YAClG,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,SAA+B,EAAE,KAAK,EAAE,SAA+B,EAAE,CAAC;YAC1H,IAAI,IAAI,IAAI,CAAC,MAAM;gBAAE,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC/C,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QACH,MAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YAC1C,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;YACpB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM;gBAAE,OAAO;YAC/B,MAAM,QAAQ,CACZ,KAAK,IAAI,EAAE;gBACT,yDAAyD;gBACzD,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC1F,wDAAwD;gBACxD,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;gBACpB,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBACjD,IAAI,CAAC,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;oBACvB,CAAC,CAAC,EAAE,GAAG,MAAM,MAAM,EAAE,CAAC;oBACtB,IAAI,IAAI,IAAI,CAAC,CAAC,EAAE,KAAK,SAAS;wBAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC/D,CAAC;gBACD,IAAI,CAAC,CAAC,CAAC,EAAE;oBAAE,CAAC,CAAC,KAAK,GAAG,8CAA8C,CAAC,CAAC,OAAO,EAAE,CAAC;YACjF,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;gBACN,CAAC,CAAC,KAAK,GAAI,GAAa,CAAC,OAAO,CAAC;YACnC,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,uGAAuG;QACvG,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAmD,EAAE,CAAC;QAClE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;QACrC,MAAM,GAAG,GAAG,CAAC,EAAU,EAAE,OAAgB,EAAE,EAAE;YAC3C,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACpB,8EAA8E;gBAC9E,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,kDAAkD,EAAE,CAAC,CAAC;gBACxH,OAAO;YACT,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,IAAI,MAAM,CAAC,MAAM,IAAI,eAAe,EAAE,CAAC;gBACrC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACnB,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC9C,OAAO;YACT,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3C,CAAC,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAK,CAAE,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,kDAAkD,EAAE,CAAC,CAAC;YAC3I,CAAC;iBACI,IAAI,CAAC,CAAC,IAAI;gBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;iBACjE,IAAI,CAAC,CAAC,EAAE;gBAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;;gBAC/B,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAM,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,KAAK,MAAM,EAAE,IAAI,WAAW,IAAI,EAAE;YAAE,IAAI,EAAE,GAAG,CAAC;gBAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACxD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAExF,sBAAsB;QACtB,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YAC3C,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;YACvC,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;YACvB,OAAO,CAAC,EAAE,CAAC,GAAG,MAAM,QAAQ,CAC1B,KAAK,IAAI,EAAE;gBACT,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;gBACzG,MAAM,SAAS,GAAG,wBAAwB;oBACxC,CAAC,CAAC,MAAM,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;oBACnG,CAAC,CAAC,SAAS,CAAC;gBACd,OAAO,EAAE,GAAG,aAAa,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;YACrD,CAAC,EACD,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAC1D,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,UAAU,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3C,CAAC,CACF,CAAC;IAEF,aAAa,CACX,MAAM,EACN,GAAG,EACH;QACE,IAAI,EAAE,6BAA6B;QACnC,KAAK,EAAE,oCAAoC;QAC3C,IAAI,EAAE,UAAU;QAChB,WAAW,EACT,mGAAmG;YACnG,mEAAmE;YACnE,gDAAgD;QAClD,KAAK,EAAE;YACL,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,kEAAkE,CAAC;YACzG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;SACnG;QACD,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE;KAC9C,EACD,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QAChB,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACpE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE,EAAE,GAAG,EAAE,CAChG,SAAS,CAAC,6BAA6B,EAAE,GAAG,EAAE,CAAC,sBAAsB,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CACjG,CAAC;QACF,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,2CAA2C,IAAI,CAAC,UAAU,GAAG,CAAC;QAChH,OAAO,UAAU,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC/E,CAAC,CACF,CAAC;IAEF,aAAa,CACX,MAAM,EACN,GAAG,EACH;QACE,IAAI,EAAE,mBAAmB;QACzB,KAAK,EAAE,kCAAkC;QACzC,IAAI,EAAE,UAAU;QAChB,WAAW,EACT,uGAAuG;YACvG,2FAA2F;YAC3F,2FAA2F;QAC7F,KAAK,EAAE;YACL,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;SACtG;QACD,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE;KAChF,EACD,KAAK,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;QACzB,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,SAAS,CAC/C,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,EACvB,GAAG,EAAE,CAAC,SAAS,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QACvE,uGAAuG;QACvG,6BAA6B;QAC7B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAC1B,CAAC;QACF,IAAI,OAA2B,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACvB,OAAO,GAAG,SAAS;gBACjB,CAAC,CAAC,YAAY,SAAS,kDAAkD;gBACzE,CAAC,CAAC,oCAAoC,CAAC;QAC3C,CAAC;QACD,OAAO,UAAU,CAAC,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC,CACF,CAAC;AACJ,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,MAAM,CAAC,GAAgB,EAAE,CAAW,EAAE,KAAa,EAAE,KAAa,EAAE,IAAmB;IACrG,6EAA6E;IAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,OAAO,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,CAChF,SAAS,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAC7E,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"products.js","sourceRoot":"","sources":["../../src/tools/products.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "albert-heijn-mcp",
3
- "version": "1.9.0",
3
+ "version": "1.9.1",
4
4
  "description": "Unofficial MCP server for Albert Heijn: products, bonus deals, Allerhande recipes, your shopping list and orders in any AI assistant",
5
5
  "keywords": [
6
6
  "mcp",