iobroker.shoppingroute 0.2.0 → 0.3.0
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 +17 -2
- package/README_DE.md +19 -2
- package/admin/jsonConfig.json +86 -11
- package/build/lib/compatibility.js +1 -1
- package/build/lib/config-tools.js +1 -1
- package/build/lib/market-plan.js +1 -0
- package/build/lib/metrics.js +1 -1
- package/build/lib/model.js +1 -1
- package/build/lib/parser.js +1 -1
- package/build/lib/sorter.js +1 -1
- package/build/lib/statistics.js +1 -1
- package/build/main.js +1 -1
- package/io-package.json +17 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,15 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|

|
|
4
4
|
|
|
5
|
-
**Current version: 0.
|
|
5
|
+
**Current version: 0.3.0**
|
|
6
6
|
|
|
7
|
-
ShoppingRoute sorts
|
|
7
|
+
ShoppingRoute sorts Alexa shopping-list entries by market, product group and each store's individual walking route. Normal shopping items are still sorted only by redistributing visible texts across existing Alexa IDs. Optionally, ShoppingRoute can use Alexa2 to create its own market headings such as `---- ALDI ----`. Once a market is no longer needed, ShoppingRoute completely deletes only that self-managed heading entry. Managed Alexa lists must be set to **Oldest to newest** in the Alexa app.
|
|
8
|
+
|
|
9
|
+
## User guide / Bedienungsanleitung
|
|
10
|
+
|
|
11
|
+
🇬🇧 [**English user guide**](USER_GUIDE_EN.md)
|
|
12
|
+
🇩🇪 [**Deutsche Bedienungsanleitung**](BEDIENUNGSANLEITUNG_DE.md)
|
|
8
13
|
|
|
9
14
|
## Highlights
|
|
10
15
|
|
|
11
16
|
- multiple Alexa lists with per-list priority markets
|
|
12
17
|
- global, per-list and temporary market priorities
|
|
13
18
|
- market aliases and common market-name variants
|
|
19
|
+
- optional automatically managed market headings such as `---- ALDI ----`
|
|
20
|
+
- optional cross-market consolidation using a minimum-item threshold; explicit market requests are never moved
|
|
14
21
|
- configurable product groups and store-specific routes
|
|
15
22
|
- product catalogue with aliases, preferred and available markets
|
|
16
23
|
- quantity parser for digits, number words, packs, half-kilo and `6x` forms
|
|
@@ -32,6 +39,14 @@ See `README_DE.md` for the detailed German documentation.
|
|
|
32
39
|
|
|
33
40
|
## Changelog
|
|
34
41
|
|
|
42
|
+
### 0.3.0 (2026-08-10)
|
|
43
|
+
|
|
44
|
+
- Added optional `---- MARKET ----` headings.
|
|
45
|
+
- A heading stays active until the last real item for that market is completed and is then deleted completely instead of remaining among completed items.
|
|
46
|
+
- Added configurable minimum-items-per-market consolidation for flexible articles.
|
|
47
|
+
- Explicit market phrases always remain assigned to the requested market.
|
|
48
|
+
- Header management uses Alexa2 states (`#New`, `#delete`) and does not create a second Amazon session; normal shopping items are never automatically deleted or completed.
|
|
49
|
+
|
|
35
50
|
### 0.2.0 (2026-08-09)
|
|
36
51
|
|
|
37
52
|
- First stable release of ShoppingRoute.
|
package/README_DE.md
CHANGED
|
@@ -2,15 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|

|
|
4
4
|
|
|
5
|
-
**Aktuelle Version: 0.
|
|
5
|
+
**Aktuelle Version: 0.3.0**
|
|
6
6
|
|
|
7
|
-
ShoppingRoute sortiert
|
|
7
|
+
ShoppingRoute sortiert Alexa-Einkaufslisteneinträge nach Markt, Produktgruppe und dem individuellen Laufweg durch den jeweiligen Markt. Normale Einkaufsartikel werden weiterhin ausschließlich über ihre vorhandenen Alexa-IDs und sichtbaren Texte sortiert. Optional kann ShoppingRoute über Alexa2 eigene Marktüberschriften wie `---- ALDI ----` anlegen. Sobald ein Markt nicht mehr benötigt wird, löscht ShoppingRoute ausschließlich diesen selbst verwalteten Überschriftseintrag wieder vollständig. Die Alexa-App muss für verwaltete Listen auf **„Älteste bis neueste“** gestellt sein.
|
|
8
|
+
|
|
9
|
+
## Bedienungsanleitung / User guide
|
|
10
|
+
|
|
11
|
+
🇩🇪 [**Deutsche Bedienungsanleitung**](BEDIENUNGSANLEITUNG_DE.md)
|
|
12
|
+
🇬🇧 [**English user guide**](USER_GUIDE_EN.md)
|
|
8
13
|
|
|
9
14
|
## Funktionen
|
|
10
15
|
|
|
11
16
|
- mehrere Alexa-Einkaufslisten mit eigenem Prioritätsmarkt
|
|
12
17
|
- globale, listenbezogene und temporäre Marktpriorität
|
|
13
18
|
- Markt-Aliase und automatische Erkennung häufiger Marktvarianten
|
|
19
|
+
- optionale, automatisch verwaltete Marktüberschriften wie `---- ALDI ----`
|
|
20
|
+
- optionale marktübergreifende Zusammenlegung anhand einer Mindestanzahl von Artikeln pro zusätzlichem Markt; explizite Marktangaben bleiben unverändert
|
|
14
21
|
- frei pflegbare Produktgruppen und marktbezogene Laufwege
|
|
15
22
|
- Laufweg nach Tabellenreihenfolge; Reihenfolgen werden automatisch neu nummeriert
|
|
16
23
|
- Artikelstamm mit Aliasen, Produktgruppe, bevorzugtem Markt und verfügbaren Märkten
|
|
@@ -42,6 +49,8 @@ Bei der Marktzuordnung gilt:
|
|
|
42
49
|
6. erster erlaubter Markt aus „Verfügbare Märkte“
|
|
43
50
|
7. Fallback-Markt
|
|
44
51
|
|
|
52
|
+
Anschließend kann 0.3.0 flexible Artikel marktübergreifend zusammenlegen, wenn ein zusätzlicher Markt die konfigurierte Mindestanzahl nicht erreicht. Dafür werden ausschließlich im Artikelstamm hinterlegte alternative verfügbare Märkte verwendet. Explizite Angaben wie `Milch von LIDL` oder `Eier bei ALDI` werden niemals verschoben.
|
|
53
|
+
|
|
45
54
|
## Wichtige Datenpunkte
|
|
46
55
|
|
|
47
56
|
- `info.previewText` – lesbare Sortiervorschau
|
|
@@ -66,6 +75,14 @@ ShoppingRoute wird ab dieser Version unter der **MIT-Lizenz** veröffentlicht. F
|
|
|
66
75
|
|
|
67
76
|
## Changelog
|
|
68
77
|
|
|
78
|
+
### 0.3.0 (2026-08-10)
|
|
79
|
+
|
|
80
|
+
- Optionale Marktüberschriften im Format `---- MARKT ----` ergänzt.
|
|
81
|
+
- Überschriften bleiben aktiv, solange mindestens ein echter Artikel des Marktes offen ist, und werden danach vollständig gelöscht statt unter erledigten Artikeln stehen zu bleiben.
|
|
82
|
+
- Marktübergreifende Zusammenlegung anhand einer konfigurierbaren Mindestanzahl ergänzt.
|
|
83
|
+
- Explizite Marktangaben bleiben von der Zusammenlegung ausnahmslos unberührt.
|
|
84
|
+
- Header-Verwaltung nutzt ausschließlich Alexa2-Datenpunkte (`#New`, `#delete`) und erzeugt keine zweite Amazon-Sitzung; normale Einkaufsartikel werden niemals automatisch gelöscht oder erledigt.
|
|
85
|
+
|
|
69
86
|
### 0.2.0 (2026-08-09)
|
|
70
87
|
|
|
71
88
|
- Erste stabile Veröffentlichung von ShoppingRoute.
|
package/admin/jsonConfig.json
CHANGED
|
@@ -70,6 +70,29 @@
|
|
|
70
70
|
"lg": 4,
|
|
71
71
|
"xl": 3
|
|
72
72
|
},
|
|
73
|
+
"marketHeaders": {
|
|
74
|
+
"type": "checkbox",
|
|
75
|
+
"label": "ui.items.general.items.marketheaders.label",
|
|
76
|
+
"help": "ui.items.general.items.marketheaders.help",
|
|
77
|
+
"newLine": true,
|
|
78
|
+
"xs": 12,
|
|
79
|
+
"sm": 12,
|
|
80
|
+
"md": 6,
|
|
81
|
+
"lg": 4,
|
|
82
|
+
"xl": 3
|
|
83
|
+
},
|
|
84
|
+
"minItemsPerMarket": {
|
|
85
|
+
"type": "number",
|
|
86
|
+
"label": "ui.items.general.items.minitemspermarket.label",
|
|
87
|
+
"help": "ui.items.general.items.minitemspermarket.help",
|
|
88
|
+
"min": 1,
|
|
89
|
+
"max": 99,
|
|
90
|
+
"xs": 12,
|
|
91
|
+
"sm": 12,
|
|
92
|
+
"md": 6,
|
|
93
|
+
"lg": 4,
|
|
94
|
+
"xl": 3
|
|
95
|
+
},
|
|
73
96
|
"fallbackMarket": {
|
|
74
97
|
"type": "selectSendTo",
|
|
75
98
|
"command": "getMarkets",
|
|
@@ -710,17 +733,17 @@
|
|
|
710
733
|
"zh-cn": "常规"
|
|
711
734
|
},
|
|
712
735
|
"ui.items.general.items.betawarning.text": {
|
|
713
|
-
"en": "Safety notice: Start with Dry
|
|
714
|
-
"de": "Sicherheitshinweis: Zuerst mit Dry-Run testen.
|
|
715
|
-
"ru": "Примечание по безопасности: сначала
|
|
716
|
-
"pt": "Aviso de segurança: comece com o modo de simulação
|
|
717
|
-
"nl": "Veiligheidsadvies: begin met de proefmodus
|
|
718
|
-
"fr": "Consigne de sécurité : commencez
|
|
719
|
-
"it": "Avviso di sicurezza:
|
|
720
|
-
"es": "Aviso de seguridad:
|
|
721
|
-
"pl": "Informacja
|
|
722
|
-
"uk": "Примітка
|
|
723
|
-
"zh-cn": "
|
|
736
|
+
"en": "Safety notice: Start with Dry Run enabled. Normal shopping items are still sorted only by redistributing their visible texts. If market headings are enabled, ShoppingRoute creates and deletes only its own ---- MARKET ---- heading entries through Alexa2.",
|
|
737
|
+
"de": "Sicherheitshinweis: Zuerst mit Dry-Run testen. Normale Einkaufsartikel werden weiterhin nur durch Umverteilen ihrer sichtbaren Texte sortiert. Bei aktivierten Marktüberschriften legt und löscht ShoppingRoute über Alexa2 ausschließlich eigene Einträge im Format ---- MARKT ----.",
|
|
738
|
+
"ru": "Примечание по безопасности: сначала используйте пробный режим. Обычные товары по-прежнему сортируются только перераспределением видимых текстов. При включённых заголовках ShoppingRoute через Alexa2 создаёт и удаляет только собственные строки ---- МАГАЗИН ----.",
|
|
739
|
+
"pt": "Aviso de segurança: comece com o modo de simulação. Os itens normais continuam sendo ordenados apenas redistribuindo seus textos visíveis. Com cabeçalhos ativados, o ShoppingRoute cria e exclui via Alexa2 apenas suas próprias entradas ---- MERCADO ----.",
|
|
740
|
+
"nl": "Veiligheidsadvies: begin met de proefmodus. Normale boodschappen worden nog steeds alleen gesorteerd door zichtbare teksten te herverdelen. Met winkelkoppen ingeschakeld maakt en verwijdert ShoppingRoute via Alexa2 uitsluitend eigen ---- WINKEL ---- regels.",
|
|
741
|
+
"fr": "Consigne de sécurité : commencez en mode simulation. Les articles normaux restent triés uniquement par redistribution de leurs textes visibles. Si les en-têtes sont activés, ShoppingRoute crée et supprime via Alexa2 uniquement ses propres entrées ---- MAGASIN ----.",
|
|
742
|
+
"it": "Avviso di sicurezza: iniziare con Dry Run. Gli articoli normali vengono ancora ordinati solo ridistribuendo i testi visibili. Con le intestazioni attive, ShoppingRoute crea ed elimina tramite Alexa2 esclusivamente le proprie voci ---- NEGOZIO ----.",
|
|
743
|
+
"es": "Aviso de seguridad: comience con Dry Run. Los artículos normales siguen ordenándose solo redistribuyendo sus textos visibles. Con encabezados activados, ShoppingRoute crea y elimina mediante Alexa2 únicamente sus propias entradas ---- TIENDA ----.",
|
|
744
|
+
"pl": "Informacja bezpieczeństwa: zacznij od trybu testowego. Zwykłe artykuły nadal są sortowane wyłącznie przez rozdzielanie widocznych tekstów. Po włączeniu nagłówków ShoppingRoute przez Alexa2 tworzy i usuwa wyłącznie własne wpisy ---- SKLEP ----.",
|
|
745
|
+
"uk": "Примітка з безпеки: спочатку використовуйте Dry Run. Звичайні товари й надалі сортуються лише перерозподілом видимих текстів. Якщо заголовки ввімкнено, ShoppingRoute через Alexa2 створює та видаляє лише власні записи ---- МАГАЗИН ----.",
|
|
746
|
+
"zh-cn": "安全提示:请先使用试运行。普通购物项仍只通过重新分配可见文本来排序。启用商店标题后,ShoppingRoute 仅通过 Alexa2 创建和删除自己的 ---- 商店 ---- 标题条目。"
|
|
724
747
|
},
|
|
725
748
|
"ui.items.general.items.alexainstance.label": {
|
|
726
749
|
"en": "Alexa2 instance",
|
|
@@ -1488,6 +1511,58 @@
|
|
|
1488
1511
|
"pl": "Kopie zapasowe i profile sklepów są pobierane bezpośrednio jako pliki JSON lub przywracane z pliku. Zawartości JSON nie trzeba wyświetlać ani edytować. Po imporcie zapisz konfigurację.",
|
|
1489
1512
|
"uk": "Резервні копії та профілі магазинів завантажуються безпосередньо як JSON-файли або відновлюються з файлу. Вміст JSON не потрібно показувати чи редагувати. Після імпорту збережіть конфігурацію.",
|
|
1490
1513
|
"zh-cn": "备份和商店配置文件会直接下载为 JSON 文件,或从文件中恢复。无需显示或编辑 JSON 内容。导入后请保存配置。"
|
|
1514
|
+
},
|
|
1515
|
+
"ui.items.general.items.marketheaders.label": {
|
|
1516
|
+
"en": "Market headings in Alexa list",
|
|
1517
|
+
"de": "Marktüberschriften in der Alexa-Liste",
|
|
1518
|
+
"ru": "Заголовки магазинов в списке Alexa",
|
|
1519
|
+
"pt": "Cabeçalhos de mercados na lista Alexa",
|
|
1520
|
+
"nl": "Winkelkoppen in de Alexa-lijst",
|
|
1521
|
+
"fr": "En-têtes de magasins dans la liste Alexa",
|
|
1522
|
+
"it": "Intestazioni dei negozi nell’elenco Alexa",
|
|
1523
|
+
"es": "Encabezados de tiendas en la lista de Alexa",
|
|
1524
|
+
"pl": "Nagłówki sklepów na liście Alexa",
|
|
1525
|
+
"uk": "Заголовки магазинів у списку Alexa",
|
|
1526
|
+
"zh-cn": "Alexa 列表中的商店标题"
|
|
1527
|
+
},
|
|
1528
|
+
"ui.items.general.items.marketheaders.help": {
|
|
1529
|
+
"en": "Adds entries such as ---- ALDI ----. A heading remains active while at least one real item for that market is open and is deleted completely when the market is no longer needed.",
|
|
1530
|
+
"de": "Fügt Einträge wie ---- ALDI ---- ein. Eine Überschrift bleibt aktiv, solange mindestens ein echter Artikel dieses Marktes offen ist, und wird vollständig gelöscht, sobald der Markt nicht mehr benötigt wird.",
|
|
1531
|
+
"ru": "Добавляет строки вида ---- ALDI ----. Заголовок остаётся активным, пока открыт хотя бы один настоящий товар этого магазина, и полностью удаляется, когда магазин больше не нужен.",
|
|
1532
|
+
"pt": "Adiciona entradas como ---- ALDI ----. O cabeçalho permanece ativo enquanto houver pelo menos um item real aberto nesse mercado e é excluído por completo quando o mercado deixa de ser necessário.",
|
|
1533
|
+
"nl": "Voegt regels zoals ---- ALDI ---- toe. De kop blijft actief zolang minstens één echt artikel voor die winkel openstaat en wordt volledig verwijderd zodra de winkel niet meer nodig is.",
|
|
1534
|
+
"fr": "Ajoute des entrées comme ---- ALDI ----. L’en-tête reste actif tant qu’au moins un article réel de ce magasin est ouvert et est entièrement supprimé lorsque le magasin n’est plus nécessaire.",
|
|
1535
|
+
"it": "Aggiunge voci come ---- ALDI ----. L’intestazione resta attiva finché almeno un articolo reale del negozio è aperto e viene eliminata completamente quando il negozio non serve più.",
|
|
1536
|
+
"es": "Añade entradas como ---- ALDI ----. El encabezado permanece activo mientras quede al menos un artículo real abierto de esa tienda y se elimina por completo cuando la tienda ya no es necesaria.",
|
|
1537
|
+
"pl": "Dodaje wpisy takie jak ---- ALDI ----. Nagłówek pozostaje aktywny, dopóki co najmniej jeden rzeczywisty artykuł tego sklepu jest otwarty, a gdy sklep nie jest już potrzebny, zostaje całkowicie usunięty.",
|
|
1538
|
+
"uk": "Додає записи на кшталт ---- ALDI ----. Заголовок залишається активним, доки відкритий хоча б один справжній товар цього магазину, і повністю видаляється, коли магазин більше не потрібен.",
|
|
1539
|
+
"zh-cn": "添加类似 ---- ALDI ---- 的条目。只要该商店还有至少一个真实商品未完成,标题就保持有效;不再需要该商店时,标题会被彻底删除。"
|
|
1540
|
+
},
|
|
1541
|
+
"ui.items.general.items.minitemspermarket.label": {
|
|
1542
|
+
"en": "Minimum items per additional market",
|
|
1543
|
+
"de": "Mindestanzahl Artikel pro zusätzlichem Markt",
|
|
1544
|
+
"ru": "Минимум товаров для дополнительного магазина",
|
|
1545
|
+
"pt": "Mínimo de itens por mercado adicional",
|
|
1546
|
+
"nl": "Minimum aantal artikelen per extra winkel",
|
|
1547
|
+
"fr": "Nombre minimum d’articles par magasin supplémentaire",
|
|
1548
|
+
"it": "Numero minimo di articoli per negozio aggiuntivo",
|
|
1549
|
+
"es": "Mínimo de artículos por tienda adicional",
|
|
1550
|
+
"pl": "Minimalna liczba artykułów na dodatkowy sklep",
|
|
1551
|
+
"uk": "Мінімальна кількість товарів для додаткового магазину",
|
|
1552
|
+
"zh-cn": "每个额外商店的最少商品数"
|
|
1553
|
+
},
|
|
1554
|
+
"ui.items.general.items.minitemspermarket.help": {
|
|
1555
|
+
"en": "1 disables consolidation. Below the threshold, only articles with configured alternative available markets may be moved. Explicit phrases such as “from LIDL” or “at ALDI” are never moved.",
|
|
1556
|
+
"de": "1 deaktiviert die Zusammenlegung. Unterhalb der Mindestzahl werden nur Artikel verschoben, für die alternative verfügbare Märkte hinterlegt sind. Explizite Angaben wie „von LIDL“ oder „bei ALDI“ werden niemals verschoben.",
|
|
1557
|
+
"ru": "1 отключает объединение. Ниже порога перемещаются только товары с настроенными альтернативными магазинами. Явные указания магазина никогда не изменяются.",
|
|
1558
|
+
"pt": "1 desativa a consolidação. Abaixo do limite, somente itens com mercados alternativos configurados podem ser movidos. Indicações explícitas de mercado nunca são alteradas.",
|
|
1559
|
+
"nl": "1 schakelt samenvoegen uit. Onder de grens worden alleen artikelen met ingestelde alternatieve winkels verplaatst. Expliciete winkelvermeldingen worden nooit verplaatst.",
|
|
1560
|
+
"fr": "1 désactive la consolidation. Sous le seuil, seuls les articles avec des magasins alternatifs configurés peuvent être déplacés. Les indications explicites ne sont jamais modifiées.",
|
|
1561
|
+
"it": "1 disattiva il consolidamento. Sotto la soglia vengono spostati solo gli articoli con negozi alternativi configurati. Le indicazioni esplicite non vengono mai modificate.",
|
|
1562
|
+
"es": "1 desactiva la consolidación. Por debajo del límite solo se mueven artículos con tiendas alternativas configuradas. Las indicaciones explícitas nunca se modifican.",
|
|
1563
|
+
"pl": "1 wyłącza konsolidację. Poniżej progu przenoszone są tylko artykuły z skonfigurowanymi alternatywnymi sklepami. Jawne wskazania sklepu nigdy nie są zmieniane.",
|
|
1564
|
+
"uk": "1 вимикає об’єднання. Нижче порога переміщуються лише товари з налаштованими альтернативними магазинами. Явні вказівки магазину ніколи не змінюються.",
|
|
1565
|
+
"zh-cn": "设为 1 将关闭合并。低于阈值时,只有配置了其他可用商店的商品才会移动。明确指定商店的说法永远不会更改。"
|
|
1491
1566
|
}
|
|
1492
1567
|
}
|
|
1493
1568
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';const
|
|
1
|
+
'use strict';function _0x3c51(){const _0x2e3f41=['3376588vLgely','defineProperty','source-ok','Die\x20bekannte\x20fehlerhafte\x20version-Query\x20wurde\x20in\x20der\x20installierten\x20alexa-remote2-Quelle\x20nicht\x20gefunden;\x20die\x20korrigierte\x20Schreibweise\x20ist\x20vorhanden.','5680395yghsbP','Die\x20installierte\x20alexa-remote2-Quelle\x20konnte\x20nicht\x20eindeutig\x20als\x20kompatibel\x20oder\x20als\x20bekannte\x20fehlerhafte\x20Variante\x20erkannt\x20werden.','48SpJOqs','7264SPZyqt','unknown','25861IbllJL','82BZWCNn','canWriteAlexa','test','1032269hakfzB','5960gRHWzp','Bekannter\x20updateListItem-Fehler\x20gefunden:\x20Leerzeichen\x20vor\x20dem\x20Gleichheitszeichen\x20in\x20der\x20version-Query.','29229YrMEAU','203765LyZdJr','7168pgqvNN','__esModule'];_0x3c51=function(){return _0x2e3f41;};return _0x3c51();}const _0x25a334=_0x53d4;(function(_0x5cd3ed,_0x4623c0){const _0x2ba21c=_0x53d4,_0x57b65b=_0x5cd3ed();while(!![]){try{const _0x19e278=parseInt(_0x2ba21c(0x1b5))/0x1+parseInt(_0x2ba21c(0x1b2))/0x2*(-parseInt(_0x2ba21c(0x1a4))/0x3)+-parseInt(_0x2ba21c(0x1a8))/0x4+parseInt(_0x2ba21c(0x1a5))/0x5*(-parseInt(_0x2ba21c(0x1ae))/0x6)+-parseInt(_0x2ba21c(0x1a6))/0x7*(parseInt(_0x2ba21c(0x1af))/0x8)+parseInt(_0x2ba21c(0x1ac))/0x9+-parseInt(_0x2ba21c(0x1b6))/0xa*(-parseInt(_0x2ba21c(0x1b1))/0xb);if(_0x19e278===_0x4623c0)break;else _0x57b65b['push'](_0x57b65b['shift']());}catch(_0x52574b){_0x57b65b['push'](_0x57b65b['shift']());}}}(_0x3c51,0x89fca));Object[_0x25a334(0x1a9)](exports,_0x25a334(0x1a7),{'value':!![]}),exports['inspectAlexaRemoteSource']=inspectAlexaRemoteSource,exports[_0x25a334(0x1b3)]=canWriteAlexa;function inspectAlexaRemoteSource(_0x4df2b5){const _0x423599=_0x25a334,_0x3bae8e=String(_0x4df2b5||'');if(/\?version\s+=\$\{options\.version\}/[_0x423599(0x1b4)](_0x3bae8e))return{'status':'known-bug','detail':_0x423599(0x1a3)};if(/\?version=\$\{options\.version\}/['test'](_0x3bae8e))return{'status':'source-ok','detail':_0x423599(0x1ab)};return{'status':_0x423599(0x1b0),'detail':_0x423599(0x1ad)};}function _0x53d4(_0x1b3c7d,_0x207f46){_0x1b3c7d=_0x1b3c7d-0x1a3;const _0x3c5162=_0x3c51();let _0x53d4bc=_0x3c5162[_0x1b3c7d];return _0x53d4bc;}function canWriteAlexa(_0x45e043){const _0x3cefeb=_0x25a334;return _0x45e043===_0x3cefeb(0x1aa)||_0x45e043==='live-ok';}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';const
|
|
1
|
+
'use strict';function _0x3dc2(){const _0x502aef=['toISOString','has','batchSize','231FCpRQG','798hcWaHQ','maxWritesPerMinute','order','route','retryBaseMs','ensureMarketRoutes','base','forEach','add','trim','routes','dryRun','52595PngfFk','listName','products','isArray','13966640jAZQzu','localeCompare','sort','debounceMs','config','get','parse','name','parseConfigImport','reindexRoutes','format','316886XgyqrQ','Ungültiges\x20ShoppingRoute-Marktprofil.','productGroups','learningMode','filter','apiSafeMode','market','fallbackMarket','toLocaleLowerCase','markets','11789514EltfPv','shoppingroute-config-v1','reviewItems','maxWriteRetries','category','8VTsusA','map','push','index','528wjlaLS','32395319FkycWX','100720MSrtxq','alexaInstance','importMarketProfile','set','shoppingroute-market-profile-v1','__esModule','lists','1492nrhjkx'];_0x3dc2=function(){return _0x502aef;};return _0x3dc2();}const _0x51607f=_0x293c;(function(_0x731851,_0x36d756){const _0x5df208=_0x293c,_0x2c2afc=_0x731851();while(!![]){try{const _0x4e493e=parseInt(_0x5df208(0x12e))/0x1*(parseInt(_0x5df208(0x13d))/0x2)+-parseInt(_0x5df208(0x14f))/0x3*(parseInt(_0x5df208(0x14a))/0x4)+parseInt(_0x5df208(0x15b))/0x5*(-parseInt(_0x5df208(0x141))/0x6)+-parseInt(_0x5df208(0x14e))/0x7*(-parseInt(_0x5df208(0x143))/0x8)+-parseInt(_0x5df208(0x138))/0x9+-parseInt(_0x5df208(0x15f))/0xa+parseInt(_0x5df208(0x142))/0xb;if(_0x4e493e===_0x36d756)break;else _0x2c2afc['push'](_0x2c2afc['shift']());}catch(_0x396ae8){_0x2c2afc['push'](_0x2c2afc['shift']());}}}(_0x3dc2,0xdae1f));Object['defineProperty'](exports,_0x51607f(0x148),{'value':!![]}),exports['exportConfig']=exportConfig,exports[_0x51607f(0x12b)]=parseConfigImport,exports['buildMarketProfiles']=buildMarketProfiles,exports[_0x51607f(0x145)]=importMarketProfile,exports['groupRoutesByMarket']=groupRoutesByMarket,exports[_0x51607f(0x154)]=ensureMarketRoutes,exports[_0x51607f(0x12c)]=reindexRoutes,exports['normalizeRoutesForAdmin']=normalizeRoutesForAdmin;const EXPORT_KEYS=[_0x51607f(0x144),_0x51607f(0x15c),_0x51607f(0x149),_0x51607f(0x15a),'autoLearnProducts',_0x51607f(0x131),'autoAliasSuggestions',_0x51607f(0x162),'writePauseMs',_0x51607f(0x133),_0x51607f(0x150),_0x51607f(0x14d),'batchPauseMs',_0x51607f(0x13b),_0x51607f(0x153),_0x51607f(0x135),'priorityMarket','temporaryPriorityMarket',_0x51607f(0x130),_0x51607f(0x137),_0x51607f(0x159),_0x51607f(0x15d),_0x51607f(0x13a)];function _0x293c(_0x16e61a,_0x4dc4a5){_0x16e61a=_0x16e61a-0x12b;const _0x3dc25e=_0x3dc2();let _0x293cd8=_0x3dc25e[_0x16e61a];return _0x293cd8;}function exportConfig(_0x3349d2,_0x29cbd9,_0xeea018=new Date()){const _0x4df581=_0x51607f,_0x41a3e0={};for(const _0x4d275a of EXPORT_KEYS){const _0xbb0e8f=_0x3349d2[_0x4d275a];if(_0xbb0e8f!==undefined)_0x41a3e0[_0x4d275a]=structuredClone(_0xbb0e8f);}return{'format':_0x4df581(0x139),'exportedAt':_0xeea018[_0x4df581(0x14b)](),'version':_0x29cbd9,'config':_0x41a3e0};}function parseConfigImport(_0xc12b29){const _0x5c80fa=_0x51607f,_0x4ea5e5=JSON[_0x5c80fa(0x165)](String(_0xc12b29||'')),_0x4c5502=_0x4ea5e5[_0x5c80fa(0x12d)]==='shoppingroute-config-v1'?_0x4ea5e5[_0x5c80fa(0x163)]:_0x4ea5e5;if(!_0x4c5502||typeof _0x4c5502!=='object'||Array[_0x5c80fa(0x15e)](_0x4c5502))throw new Error('Konfigurationsimport\x20enthält\x20kein\x20Objekt.');const _0x277191={};for(const _0x222d57 of EXPORT_KEYS){_0x4c5502[_0x222d57]!==undefined&&(_0x277191[_0x222d57]=structuredClone(_0x4c5502[_0x222d57]));}return _0x277191;}function buildMarketProfiles(_0x214b74,_0x52453e){const _0x4a0a81=_0x51607f;return _0x214b74[_0x4a0a81(0x132)](_0x3c60d8=>_0x3c60d8['name'])[_0x4a0a81(0x161)]((_0x52d3c8,_0x14da26)=>(Number(_0x52d3c8[_0x4a0a81(0x151)])||0x270f)-(Number(_0x14da26[_0x4a0a81(0x151)])||0x270f))[_0x4a0a81(0x13e)](_0x440d20=>({'format':_0x4a0a81(0x147),'market':{..._0x440d20},'route':_0x52453e['filter'](_0x1a8cf6=>_0x1a8cf6[_0x4a0a81(0x134)][_0x4a0a81(0x136)]('de')===_0x440d20[_0x4a0a81(0x166)][_0x4a0a81(0x136)]('de'))[_0x4a0a81(0x13e)]((_0x571ff5,_0x4004c8)=>({..._0x571ff5,'order':(_0x4004c8+0x1)*0xa}))}));}function importMarketProfile(_0x11b1de,_0x317152,_0x350ce4){const _0x2f2be7=_0x51607f,_0x22dbe4=JSON[_0x2f2be7(0x165)](String(_0x11b1de||''));if(_0x22dbe4[_0x2f2be7(0x12d)]!==_0x2f2be7(0x147)||!_0x22dbe4['market']?.[_0x2f2be7(0x166)]||!Array[_0x2f2be7(0x15e)](_0x22dbe4[_0x2f2be7(0x152)]))throw new Error(_0x2f2be7(0x12f));const _0x1e65fb=_0x22dbe4[_0x2f2be7(0x134)][_0x2f2be7(0x166)][_0x2f2be7(0x158)](),_0x306e78=_0x317152[_0x2f2be7(0x132)](_0x1aa8eb=>_0x1aa8eb[_0x2f2be7(0x166)][_0x2f2be7(0x136)]('de')!==_0x1e65fb[_0x2f2be7(0x136)]('de'));_0x306e78['push']({..._0x22dbe4[_0x2f2be7(0x134)],'name':_0x1e65fb}),_0x306e78[_0x2f2be7(0x161)]((_0x133de1,_0x26a8e7)=>(Number(_0x133de1['order'])||0x270f)-(Number(_0x26a8e7['order'])||0x270f));const _0x348c9c=_0x350ce4['filter'](_0x1569d9=>_0x1569d9[_0x2f2be7(0x134)][_0x2f2be7(0x136)]('de')!==_0x1e65fb['toLocaleLowerCase']('de'));return _0x22dbe4[_0x2f2be7(0x152)][_0x2f2be7(0x156)]((_0x4ff9b9,_0x3f3f0f)=>_0x348c9c[_0x2f2be7(0x13f)]({'market':_0x1e65fb,'category':_0x4ff9b9['category'],'order':(_0x3f3f0f+0x1)*0xa})),{'markets':_0x306e78,'routes':_0x348c9c,'market':_0x1e65fb};}function groupRoutesByMarket(_0x2b1242){const _0x5ceb3e=_0x51607f;return _0x2b1242[_0x5ceb3e(0x13e)]((_0x3ed991,_0xa2c8fd)=>({'route':{..._0x3ed991},'index':_0xa2c8fd}))['sort']((_0x6985a,_0x2cb57c)=>{const _0x5d55fb=_0x5ceb3e,_0x3745b7=String(_0x6985a['route'][_0x5d55fb(0x134)]||'')[_0x5d55fb(0x160)](String(_0x2cb57c['route']['market']||''),'de',{'sensitivity':_0x5d55fb(0x155)});return _0x3745b7||_0x6985a[_0x5d55fb(0x140)]-_0x2cb57c[_0x5d55fb(0x140)];})[_0x5ceb3e(0x13e)](_0x54fa0e=>_0x54fa0e[_0x5ceb3e(0x152)]);}function ensureMarketRoutes(_0x383876,_0x239173,_0x41a178){const _0x549d61=_0x51607f,_0x40dd6e=_0x41a178[_0x549d61(0x132)](Boolean)['map'](_0x5a2249=>({..._0x5a2249})),_0x3737ae=new Set(_0x40dd6e['map'](_0x2a8654=>String(_0x2a8654[_0x549d61(0x134)]||'')[_0x549d61(0x158)]()[_0x549d61(0x136)]('de')+'\x00'+String(_0x2a8654[_0x549d61(0x13c)]||'')[_0x549d61(0x158)]()[_0x549d61(0x136)]('de')));let _0x35b092=0x0;const _0x4196eb=_0x383876[_0x549d61(0x132)](_0x2cfdcb=>_0x2cfdcb&&_0x2cfdcb['name']&&_0x2cfdcb['enabled']!==![])['slice']()['sort']((_0x34bfcb,_0x94cf62)=>String(_0x34bfcb[_0x549d61(0x166)])[_0x549d61(0x160)](String(_0x94cf62[_0x549d61(0x166)]),'de',{'sensitivity':'base'})),_0x170ef8=_0x239173[_0x549d61(0x132)](_0x4f4b7e=>_0x4f4b7e&&_0x4f4b7e['name'])[_0x549d61(0x13e)](_0x59267c=>String(_0x59267c[_0x549d61(0x166)])[_0x549d61(0x158)]())['filter'](Boolean);for(const _0x5a6f4c of _0x4196eb){const _0x581a22=String(_0x5a6f4c[_0x549d61(0x166)])[_0x549d61(0x158)](),_0x266d34=_0x581a22[_0x549d61(0x136)]('de');for(const _0x279a04 of _0x170ef8){const _0x198984=_0x266d34+'\x00'+_0x279a04[_0x549d61(0x136)]('de');if(_0x3737ae[_0x549d61(0x14c)](_0x198984))continue;_0x40dd6e['push']({'market':_0x581a22,'category':_0x279a04,'order':0x0}),_0x3737ae[_0x549d61(0x157)](_0x198984),_0x35b092+=0x1;}}return{'routes':reindexRoutes(groupRoutesByMarket(_0x40dd6e)),'added':_0x35b092};}function reindexRoutes(_0x299e93){const _0x4d9ed2=_0x51607f,_0x46c6c5=new Map();return _0x299e93[_0x4d9ed2(0x13e)](_0x41b168=>{const _0x2c52c1=_0x4d9ed2,_0x56d7be=String(_0x41b168['market']||'')[_0x2c52c1(0x136)]('de'),_0x29b363=(_0x46c6c5[_0x2c52c1(0x164)](_0x56d7be)||0x0)+0x1;return _0x46c6c5[_0x2c52c1(0x146)](_0x56d7be,_0x29b363),{..._0x41b168,'order':_0x29b363*0xa};});}function normalizeRoutesForAdmin(_0x2ab57d){const _0x595cb5=_0x51607f;return reindexRoutes(groupRoutesByMarket(_0x2ab57d[_0x595cb5(0x132)](Boolean)));}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';function _0x37ee(_0x2c043f,_0x305218){_0x2c043f=_0x2c043f-0x126;const _0x547dd1=_0x547d();let _0x37ee49=_0x547dd1[_0x2c043f];return _0x37ee49;}function _0x547d(){const _0x4e60bf=['value','max','22946780tjwaWs','length','localeCompare','match','optimizeMarketAssignments','get','size','market','order','3239630iKiWyi','push','470582eNtTVf','4929072HWfKwt','./parser','trim','enabled','filter','9taQKzA','requiredMarkets','parsed','259rCEtKC','availableMarkets','floor','name','completed','----\x20','add','32408rzeWPo','keys','2845604rvUSmV','active','source','sort','isFinite','productText','planMarketHeaderAction','939213tXRiPi','delete','has','defineProperty','base','formatMarketHeader','normalize','parseMarketList','18chNsiU','set','realActiveItems','map'];_0x547d=function(){return _0x4e60bf;};return _0x547d();}const _0x4f4fcb=_0x37ee;(function(_0x426328,_0x14749d){const _0x24051a=_0x37ee,_0x55f681=_0x426328();while(!![]){try{const _0x631904=-parseInt(_0x24051a(0x14a))/0x1+parseInt(_0x24051a(0x131))/0x2*(-parseInt(_0x24051a(0x137))/0x3)+-parseInt(_0x24051a(0x143))/0x4+-parseInt(_0x24051a(0x12f))/0x5+-parseInt(_0x24051a(0x132))/0x6+-parseInt(_0x24051a(0x13a))/0x7*(parseInt(_0x24051a(0x141))/0x8)+parseInt(_0x24051a(0x152))/0x9*(parseInt(_0x24051a(0x126))/0xa);if(_0x631904===_0x14749d)break;else _0x55f681['push'](_0x55f681['shift']());}catch(_0x57e1be){_0x55f681['push'](_0x55f681['shift']());}}}(_0x547d,0x95ca8));Object[_0x4f4fcb(0x14d)](exports,'__esModule',{'value':!![]}),exports[_0x4f4fcb(0x14f)]=formatMarketHeader,exports['marketFromHeader']=marketFromHeader,exports['isMarketHeader']=isMarketHeader,exports[_0x4f4fcb(0x154)]=realActiveItems,exports[_0x4f4fcb(0x12a)]=optimizeMarketAssignments,exports[_0x4f4fcb(0x138)]=requiredMarkets,exports[_0x4f4fcb(0x149)]=planMarketHeaderAction;const parser_1=require(_0x4f4fcb(0x133)),HEADER_PATTERN=/^----\s+(.+?)\s+----$/;function formatMarketHeader(_0x57e721){const _0x1bfd43=_0x4f4fcb;return _0x1bfd43(0x13f)+String(_0x57e721||'')[_0x1bfd43(0x134)]()['toLocaleUpperCase']('de-DE')+'\x20----';}function marketFromHeader(_0x4c308a,_0x5417f7){const _0x2a1fff=_0x4f4fcb,_0x3b8c3b=String(_0x4c308a||'')[_0x2a1fff(0x134)]()[_0x2a1fff(0x129)](HEADER_PATTERN);if(!_0x3b8c3b?.[0x1])return undefined;const _0x3aa696=(0x0,parser_1[_0x2a1fff(0x150)])(_0x3b8c3b[0x1]);return _0x5417f7['find'](_0x54364e=>_0x54364e[_0x2a1fff(0x135)]!==![]&&(0x0,parser_1['normalize'])(_0x54364e['name'])===_0x3aa696)?.[_0x2a1fff(0x13d)];}function isMarketHeader(_0xb4f6c0,_0x754553){const _0x205bab=_0x4f4fcb;return HEADER_PATTERN['test'](String(_0xb4f6c0||'')[_0x205bab(0x134)]());}function realActiveItems(_0x11a93b,_0xe7be8e){const _0x56bbbb=_0x4f4fcb;return _0x11a93b[_0x56bbbb(0x136)](_0x43b8d4=>_0x43b8d4&&_0x43b8d4[_0x56bbbb(0x13e)]===![]&&Boolean(_0x43b8d4['id'])&&Boolean(String(_0x43b8d4['value']||'')['trim']())&&!isMarketHeader(String(_0x43b8d4['value']),_0xe7be8e));}function marketOrderMap(_0x476632){const _0x3df93b=_0x4f4fcb;return new Map(_0x476632[_0x3df93b(0x155)](_0x558ac0=>[_0x558ac0[_0x3df93b(0x13d)],Number[_0x3df93b(0x147)](Number(_0x558ac0[_0x3df93b(0x12e)]))?Number(_0x558ac0['order']):0x270f]));}function rankedMarkets(_0x27a05f,_0x41b47d,_0x3e2ebb){return[...new Set(_0x27a05f)]['sort']((_0x395f26,_0x2bcc73)=>{const _0x43c21f=_0x37ee,_0x12a6e5=(_0x41b47d[_0x43c21f(0x12b)](_0x2bcc73)||0x0)-(_0x41b47d['get'](_0x395f26)||0x0);if(_0x12a6e5!==0x0)return _0x12a6e5;const _0x9880f8=(_0x3e2ebb[_0x43c21f(0x12b)](_0x395f26)||0x270f)-(_0x3e2ebb[_0x43c21f(0x12b)](_0x2bcc73)||0x270f);if(_0x9880f8!==0x0)return _0x9880f8;return _0x395f26[_0x43c21f(0x128)](_0x2bcc73,'de',{'sensitivity':'base'});});}function allowedMarketsForItem(_0x3ab994,_0x5d81c9,_0x5ae9fe){const _0x9ffe99=_0x4f4fcb;if(_0x3ab994[_0x9ffe99(0x139)]['explicitMarket'])return[_0x3ab994[_0x9ffe99(0x139)][_0x9ffe99(0x12d)]];const _0x2cbb89=(0x0,parser_1['findProduct'])(_0x3ab994[_0x9ffe99(0x139)][_0x9ffe99(0x148)],_0x5ae9fe);if(!_0x2cbb89)return[_0x3ab994[_0x9ffe99(0x139)]['market']];const _0x18c018=(0x0,parser_1[_0x9ffe99(0x151)])(_0x2cbb89[_0x9ffe99(0x13b)],_0x5d81c9);if(!_0x18c018[_0x9ffe99(0x127)])return[_0x3ab994['parsed']['market']];return[...new Set([_0x3ab994[_0x9ffe99(0x139)][_0x9ffe99(0x12d)],..._0x18c018])];}function optimizeMarketAssignments(_0xac21ce,_0x2154fb,_0x47253c,_0x16d037,_0x5d056f='',_0x5abbe5=0x1){const _0x20e058=_0x4f4fcb,_0x5d1b97=_0xac21ce['map'](_0x3175b1=>({'source':_0x3175b1,'parsed':(0x0,parser_1['parseItem'])(String(_0x3175b1[_0x20e058(0x156)]),_0x2154fb,_0x47253c,_0x16d037,_0x5d056f)})),_0x497bf9=Math['max'](0x1,Math[_0x20e058(0x13c)](Number(_0x5abbe5)||0x1));if(_0x497bf9<=0x1||_0x5d1b97['length']<=0x1)return _0x5d1b97;const _0x2e3ff5=marketOrderMap(_0x2154fb),_0x56bfbe=new Map(),_0x4a1e58=new Map(),_0x3fed3b=new Map(),_0x4c8d05=new Set();for(const _0x353594 of _0x5d1b97){const _0x4dd397=_0x353594[_0x20e058(0x139)]['market'];_0x56bfbe[_0x20e058(0x153)](_0x4dd397,(_0x56bfbe[_0x20e058(0x12b)](_0x4dd397)||0x0)+0x1);const _0x35e588=_0x3fed3b[_0x20e058(0x12b)](_0x4dd397)||[];_0x35e588['push'](_0x353594),_0x3fed3b[_0x20e058(0x153)](_0x4dd397,_0x35e588);const _0x5df8d5=allowedMarketsForItem(_0x353594,_0x2154fb,_0x47253c);_0x4a1e58[_0x20e058(0x153)](String(_0x353594['source']['id']),_0x5df8d5);if(_0x353594[_0x20e058(0x139)]['explicitMarket']||_0x5df8d5[_0x20e058(0x127)]<=0x1)_0x4c8d05[_0x20e058(0x140)](_0x4dd397);}for(const [_0x2fba90,_0x1040c3]of _0x56bfbe){if(_0x1040c3>=_0x497bf9)_0x4c8d05[_0x20e058(0x140)](_0x2fba90);}if(!_0x4c8d05[_0x20e058(0x12c)]&&_0x56bfbe[_0x20e058(0x12c)]){const _0x5b77da=rankedMarkets(_0x56bfbe[_0x20e058(0x142)](),_0x56bfbe,_0x2e3ff5)[0x0];if(_0x5b77da)_0x4c8d05[_0x20e058(0x140)](_0x5b77da);}const _0x532315=new Map();for(const _0x3f0722 of _0x5d1b97)_0x532315[_0x20e058(0x153)](String(_0x3f0722[_0x20e058(0x145)]['id']),_0x3f0722[_0x20e058(0x139)][_0x20e058(0x12d)]);const _0x685827=[..._0x3fed3b['entries']()]['filter'](([_0x224c10])=>!_0x4c8d05[_0x20e058(0x14c)](_0x224c10))[_0x20e058(0x146)]((_0x359f10,_0x2f2df9)=>{const _0x2a9d03=_0x20e058,_0x37bd91=_0x359f10[0x1][_0x2a9d03(0x127)]-_0x2f2df9[0x1][_0x2a9d03(0x127)];if(_0x37bd91!==0x0)return _0x37bd91;return(_0x2e3ff5[_0x2a9d03(0x12b)](_0x359f10[0x0])||0x270f)-(_0x2e3ff5[_0x2a9d03(0x12b)](_0x2f2df9[0x0])||0x270f);});for(const [_0x117d46,_0x46fbcd]of _0x685827){const _0x3c613d=new Map();let _0x17bc22=!![];for(const _0x1f8010 of _0x46fbcd){const _0x4d86c7=(_0x4a1e58[_0x20e058(0x12b)](String(_0x1f8010['source']['id']))||[_0x117d46])['filter'](_0x30cdd6=>_0x4c8d05[_0x20e058(0x14c)](_0x30cdd6)),_0x4978dc=rankedMarkets(_0x4d86c7,_0x56bfbe,_0x2e3ff5)[0x0];if(!_0x4978dc){_0x17bc22=![];break;}_0x3c613d[_0x20e058(0x153)](String(_0x1f8010[_0x20e058(0x145)]['id']),_0x4978dc);}if(!_0x17bc22){_0x4c8d05[_0x20e058(0x140)](_0x117d46);continue;}for(const _0x1a7c76 of _0x46fbcd){const _0x267adf=String(_0x1a7c76[_0x20e058(0x145)]['id']),_0xabc810=_0x3c613d['get'](_0x267adf);if(!_0xabc810||_0xabc810===_0x117d46)continue;_0x532315[_0x20e058(0x153)](_0x267adf,_0xabc810),_0x56bfbe['set'](_0x117d46,Math[_0x20e058(0x157)](0x0,(_0x56bfbe[_0x20e058(0x12b)](_0x117d46)||0x0)-0x1)),_0x56bfbe[_0x20e058(0x153)](_0xabc810,(_0x56bfbe['get'](_0xabc810)||0x0)+0x1);}}return _0x5d1b97[_0x20e058(0x155)](_0x2af5be=>{const _0x30e9c1=_0x20e058,_0x3a11bc=_0x532315['get'](String(_0x2af5be[_0x30e9c1(0x145)]['id']))||_0x2af5be[_0x30e9c1(0x139)][_0x30e9c1(0x12d)];return _0x3a11bc===_0x2af5be['parsed'][_0x30e9c1(0x12d)]?_0x2af5be:{'source':_0x2af5be['source'],'parsed':{..._0x2af5be['parsed'],'market':_0x3a11bc}};});}function requiredMarkets(_0x232e86,_0x4fbc68,_0x2796b3,_0x1c3333,_0x3287ff='',_0x403079=0x1){const _0x4a4428=_0x4f4fcb,_0xb63082=marketOrderMap(_0x4fbc68),_0x2562be=optimizeMarketAssignments(_0x232e86,_0x4fbc68,_0x2796b3,_0x1c3333,_0x3287ff,_0x403079),_0x3e57b3=new Set(_0x2562be[_0x4a4428(0x155)](_0x55662b=>_0x55662b[_0x4a4428(0x139)][_0x4a4428(0x12d)])[_0x4a4428(0x136)](_0x58a858=>(0x0,parser_1['normalize'])(_0x58a858)!==(0x0,parser_1[_0x4a4428(0x150)])(_0x1c3333)));return[..._0x3e57b3][_0x4a4428(0x146)]((_0x295069,_0x23208e)=>{const _0x87f26d=_0x4a4428,_0x42fde8=(_0xb63082[_0x87f26d(0x12b)](_0x295069)||0x270f)-(_0xb63082['get'](_0x23208e)||0x270f);if(_0x42fde8!==0x0)return _0x42fde8;return _0x295069[_0x87f26d(0x128)](_0x23208e,'de',{'sensitivity':_0x87f26d(0x14e)});});}function planMarketHeaderAction(_0x1d7154,_0xc435d8,_0xe6a456,_0x855ccd,_0x376344){const _0x6e9308=_0x4f4fcb,_0x344a8f=new Set(_0xc435d8['map'](parser_1[_0x6e9308(0x150)])),_0x1469e3=new Map(),_0x357d4f=[];for(const _0x1ceb24 of _0x1d7154){const _0x5dadfc=String(_0x1ceb24?.[_0x6e9308(0x156)]||'')['trim'](),_0x2c1d70=_0x5dadfc[_0x6e9308(0x129)](HEADER_PATTERN);if(!_0x2c1d70?.[0x1])continue;const _0xf82fb6=marketFromHeader(_0x5dadfc,_0xe6a456);if(!_0xf82fb6||(0x0,parser_1[_0x6e9308(0x150)])(_0xf82fb6)===(0x0,parser_1[_0x6e9308(0x150)])(_0x855ccd)){_0x357d4f[_0x6e9308(0x130)]({'market':_0x2c1d70[0x1][_0x6e9308(0x134)](),'item':_0x1ceb24});continue;}const _0x2cefcc=(0x0,parser_1[_0x6e9308(0x150)])(_0xf82fb6),_0x25b5c9=_0x1469e3['get'](_0x2cefcc)||{'market':_0xf82fb6,'active':[],'completed':[]};if(_0x1ceb24[_0x6e9308(0x13e)]===![])_0x25b5c9['active'][_0x6e9308(0x130)](_0x1ceb24);else _0x25b5c9['completed'][_0x6e9308(0x130)](_0x1ceb24);_0x1469e3['set'](_0x2cefcc,_0x25b5c9);}if(_0x357d4f['length']){const _0x5e347e=_0x357d4f[0x0];return{'type':_0x6e9308(0x14b),'market':_0x5e347e[_0x6e9308(0x12d)],'id':String(_0x5e347e['item']['id'])};}if(!_0x376344){for(const _0x272c0f of _0xe6a456){const _0x51bad4=_0x1469e3['get']((0x0,parser_1[_0x6e9308(0x150)])(_0x272c0f[_0x6e9308(0x13d)])),_0x5d52e2=_0x51bad4?.[_0x6e9308(0x144)][0x0]||_0x51bad4?.[_0x6e9308(0x13e)][0x0];if(_0x5d52e2)return{'type':_0x6e9308(0x14b),'market':_0x51bad4?.[_0x6e9308(0x12d)]||_0x272c0f[_0x6e9308(0x13d)],'id':String(_0x5d52e2['id'])};}return null;}for(const _0x43dd92 of _0xc435d8){const _0x126a2f=(0x0,parser_1['normalize'])(_0x43dd92),_0x5f91ed=_0x1469e3[_0x6e9308(0x12b)](_0x126a2f);if(_0x5f91ed?.['active']['length']){if(_0x5f91ed['completed']['length'])return{'type':_0x6e9308(0x14b),'market':_0x43dd92,'id':String(_0x5f91ed['completed'][0x0]['id'])};if(_0x5f91ed[_0x6e9308(0x144)]['length']>0x1)return{'type':'delete','market':_0x43dd92,'id':String(_0x5f91ed[_0x6e9308(0x144)][0x1]['id'])};continue;}if(_0x5f91ed?.['completed']['length'])return{'type':_0x6e9308(0x14b),'market':_0x43dd92,'id':String(_0x5f91ed[_0x6e9308(0x13e)][0x0]['id'])};return{'type':'create','market':_0x43dd92,'value':formatMarketHeader(_0x43dd92)};}for(const _0x5af11b of _0xe6a456){const _0x178800=(0x0,parser_1['normalize'])(_0x5af11b['name']);if((0x0,parser_1[_0x6e9308(0x150)])(_0x5af11b[_0x6e9308(0x13d)])===(0x0,parser_1[_0x6e9308(0x150)])(_0x855ccd)||_0x344a8f['has'](_0x178800))continue;const _0xb5d85c=_0x1469e3[_0x6e9308(0x12b)](_0x178800),_0x1f7b34=_0xb5d85c?.[_0x6e9308(0x144)][0x0]||_0xb5d85c?.[_0x6e9308(0x13e)][0x0];if(_0x1f7b34)return{'type':'delete','market':_0x5af11b[_0x6e9308(0x13d)],'id':String(_0x1f7b34['id'])};}return null;}
|
package/build/lib/metrics.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';const
|
|
1
|
+
'use strict';const _0x1e2d02=_0x118a;(function(_0x270d10,_0x5a03fb){const _0x5a0968=_0x118a,_0x33b233=_0x270d10();while(!![]){try{const _0x57ed54=-parseInt(_0x5a0968(0x145))/0x1*(parseInt(_0x5a0968(0x14e))/0x2)+parseInt(_0x5a0968(0x15e))/0x3*(parseInt(_0x5a0968(0x150))/0x4)+parseInt(_0x5a0968(0x14b))/0x5*(-parseInt(_0x5a0968(0x15f))/0x6)+-parseInt(_0x5a0968(0x14a))/0x7+-parseInt(_0x5a0968(0x157))/0x8+-parseInt(_0x5a0968(0x14f))/0x9*(parseInt(_0x5a0968(0x14c))/0xa)+parseInt(_0x5a0968(0x15c))/0xb*(parseInt(_0x5a0968(0x15b))/0xc);if(_0x57ed54===_0x5a03fb)break;else _0x33b233['push'](_0x33b233['shift']());}catch(_0x16f7ac){_0x33b233['push'](_0x33b233['shift']());}}}(_0x5e98,0x61c62));function _0x5e98(){const _0x2f6855=['27ETXtOZ','1018084fWVHsH','getMonth','max','getDate','compatibilityWrites','getFullYear','sortRuns','5545648ptZtNM','lastSortRun','object','padStart','12McqVMn','21859409ewMPOO','lastAlexaWrite','9VDoIgB','1823340QwNVqt','3rPnYDn','normalizeTrafficMetrics','alexaWrites','localChecks','__esModule','4211305ZGyvbJ','10TPTuJF','808030GDQvHb','date','136860ARbjXN'];_0x5e98=function(){return _0x2f6855;};return _0x5e98();}Object['defineProperty'](exports,_0x1e2d02(0x149),{'value':!![]}),exports['metricDate']=metricDate,exports['emptyTrafficMetrics']=emptyTrafficMetrics,exports[_0x1e2d02(0x146)]=normalizeTrafficMetrics;function metricDate(_0x4adf28=new Date()){const _0x152395=_0x1e2d02,_0x226113=_0x4adf28[_0x152395(0x155)](),_0x1aab7d=String(_0x4adf28[_0x152395(0x151)]()+0x1)[_0x152395(0x15a)](0x2,'0'),_0x2a3c79=String(_0x4adf28[_0x152395(0x153)]())['padStart'](0x2,'0');return _0x226113+'-'+_0x1aab7d+'-'+_0x2a3c79;}function _0x118a(_0x4a3b1c,_0x275ed9){_0x4a3b1c=_0x4a3b1c-0x145;const _0x5e98c3=_0x5e98();let _0x118ae3=_0x5e98c3[_0x4a3b1c];return _0x118ae3;}function emptyTrafficMetrics(_0x226f3c=new Date()){return{'date':metricDate(_0x226f3c),'localChecks':0x0,'plannedChanges':0x0,'sortRuns':0x0,'alexaWrites':0x0,'compatibilityWrites':0x0,'abortedRuns':0x0,'lastAlexaWrite':'','lastSortRun':''};}function normalizeTrafficMetrics(_0x28bf7d,_0x438cad=new Date()){const _0x5aa69b=_0x1e2d02,_0x433233=emptyTrafficMetrics(_0x438cad);if(!_0x28bf7d||typeof _0x28bf7d!==_0x5aa69b(0x159))return _0x433233;const _0x25e642=_0x28bf7d;if(String(_0x25e642[_0x5aa69b(0x14d)]||'')!==_0x433233[_0x5aa69b(0x14d)])return _0x433233;return{'date':_0x433233[_0x5aa69b(0x14d)],'localChecks':Math[_0x5aa69b(0x152)](0x0,Number(_0x25e642[_0x5aa69b(0x148)])||0x0),'plannedChanges':Math['max'](0x0,Number(_0x25e642['plannedChanges'])||0x0),'sortRuns':Math[_0x5aa69b(0x152)](0x0,Number(_0x25e642[_0x5aa69b(0x156)])||0x0),'alexaWrites':Math['max'](0x0,Number(_0x25e642[_0x5aa69b(0x147)])||0x0),'compatibilityWrites':Math['max'](0x0,Number(_0x25e642[_0x5aa69b(0x154)])||0x0),'abortedRuns':Math[_0x5aa69b(0x152)](0x0,Number(_0x25e642['abortedRuns'])||0x0),'lastAlexaWrite':String(_0x25e642[_0x5aa69b(0x15d)]||''),'lastSortRun':String(_0x25e642[_0x5aa69b(0x158)]||'')};}
|
package/build/lib/model.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';
|
|
1
|
+
'use strict';(function(_0x377ad0,_0x5a898c){var _0x5a29be=_0x1428,_0x244154=_0x377ad0();while(!![]){try{var _0xb98b90=parseInt(_0x5a29be(0xa4))/0x1+parseInt(_0x5a29be(0xa3))/0x2*(parseInt(_0x5a29be(0x9d))/0x3)+-parseInt(_0x5a29be(0x9c))/0x4*(parseInt(_0x5a29be(0xa0))/0x5)+parseInt(_0x5a29be(0x9b))/0x6*(parseInt(_0x5a29be(0x9e))/0x7)+-parseInt(_0x5a29be(0xa2))/0x8*(parseInt(_0x5a29be(0x9f))/0x9)+-parseInt(_0x5a29be(0xa1))/0xa+-parseInt(_0x5a29be(0x9a))/0xb;if(_0xb98b90===_0x5a898c)break;else _0x244154['push'](_0x244154['shift']());}catch(_0x194d41){_0x244154['push'](_0x244154['shift']());}}}(_0x4c77,0x8b115));function _0x1428(_0x516405,_0x56dc15){_0x516405=_0x516405-0x9a;var _0x4c77cc=_0x4c77();var _0x1428e8=_0x4c77cc[_0x516405];return _0x1428e8;}function _0x4c77(){var _0x1f1faf=['32LxXJDw','2560254HweUXJ','137298BCLcEU','108uehUsT','221490BmPnSc','2567450OnwHcj','339208axjnBE','2JzwSoe','876836cwMgNu','5841462zxMCwe','150bZjHgG'];_0x4c77=function(){return _0x1f1faf;};return _0x4c77();}Object['defineProperty'](exports,'__esModule',{'value':!![]});
|
package/build/lib/parser.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';const _0x303d1a=_0x2296;(function(_0x4026d4,_0x1ba09c){const _0x1be464=_0x2296,_0x409ca2=_0x4026d4();while(!![]){try{const _0x248177=parseInt(_0x1be464(0x175))/0x1*(parseInt(_0x1be464(0xcd))/0x2)+parseInt(_0x1be464(0x152))/0x3+-parseInt(_0x1be464(0x150))/0x4*(-parseInt(_0x1be464(0x198))/0x5)+parseInt(_0x1be464(0xf8))/0x6*(parseInt(_0x1be464(0xe4))/0x7)+-parseInt(_0x1be464(0x132))/0x8*(parseInt(_0x1be464(0xcc))/0x9)+parseInt(_0x1be464(0xea))/0xa*(-parseInt(_0x1be464(0xef))/0xb)+-parseInt(_0x1be464(0x195))/0xc;if(_0x248177===_0x1ba09c)break;else _0x409ca2['push'](_0x409ca2['shift']());}catch(_0x532670){_0x409ca2['push'](_0x409ca2['shift']());}}}(_0x1ec2,0x86e0e));Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports[_0x303d1a(0x114)]=normalize,exports['normalizeLoose']=normalizeLoose,exports['splitAliases']=splitAliases,exports[_0x303d1a(0x15a)]=marketAliases,exports[_0x303d1a(0x180)]=resolveMarket,exports[_0x303d1a(0x14a)]=stripQuantityDetailed,exports['stripQuantity']=stripQuantity,exports['canonicalProductKey']=canonicalProductKey,exports['findProduct']=findProduct,exports[_0x303d1a(0x1a1)]=guessCategory,exports[_0x303d1a(0x133)]=guessCategorySmart,exports[_0x303d1a(0x124)]=parseMarketList,exports[_0x303d1a(0x148)]=parseItem,exports[_0x303d1a(0xf7)]=suggestAliases;const CATEGORY_RULES=[{'category':'TK-Produkte','terms':['tiefkühl',_0x303d1a(0x11d),_0x303d1a(0x126),'gefrohren',_0x303d1a(0x15b),_0x303d1a(0x147),'pommes',_0x303d1a(0x191)]},{'category':_0x303d1a(0x19f),'terms':[_0x303d1a(0x157),_0x303d1a(0x107),_0x303d1a(0x184),'cornedbeef',_0x303d1a(0x18e),'gewürzgurke',_0x303d1a(0x112),_0x303d1a(0x177),'mais','aioli']},{'category':_0x303d1a(0x1a3),'terms':['h-milch',_0x303d1a(0xd8),_0x303d1a(0x16e),_0x303d1a(0x183),_0x303d1a(0x1a8),_0x303d1a(0x17e),'haferflock','speisestärke',_0x303d1a(0xdb),'öl',_0x303d1a(0xf1)]},{'category':_0x303d1a(0xf3),'terms':[_0x303d1a(0x134),'küchenrolle',_0x303d1a(0xdf),_0x303d1a(0xd0),_0x303d1a(0x1a4),_0x303d1a(0x188),_0x303d1a(0x18d),_0x303d1a(0x1ab),_0x303d1a(0x192),_0x303d1a(0x131),'schwamm','putztuch']},{'category':_0x303d1a(0x127),'terms':[_0x303d1a(0xdd),_0x303d1a(0x1a7),'zahnpasta','zahnbürste','zahnbuerste',_0x303d1a(0x117),'seife','creme',_0x303d1a(0x153),_0x303d1a(0x15f)]},{'category':_0x303d1a(0x13f),'terms':['pinsel',_0x303d1a(0x142),_0x303d1a(0x151),_0x303d1a(0x12f),'katzenfutter','katzenstreu',_0x303d1a(0xf6),'lampe']},{'category':_0x303d1a(0x160),'terms':[_0x303d1a(0x12d),_0x303d1a(0x155),'pepsi',_0x303d1a(0xe0),_0x303d1a(0x143),'sprite','fanta',_0x303d1a(0x12a),'getränk',_0x303d1a(0x113)]},{'category':'Tee/Kaffee','terms':['tee',_0x303d1a(0x1aa),_0x303d1a(0xfe),_0x303d1a(0x1a2)]},{'category':_0x303d1a(0x13d),'terms':[_0x303d1a(0xcf),_0x303d1a(0x15e),_0x303d1a(0xfc),_0x303d1a(0xe5),_0x303d1a(0x193),_0x303d1a(0xd3),'torte','croissant',_0x303d1a(0x10d)]},{'category':_0x303d1a(0x12b),'terms':['schokolade',_0x303d1a(0xe2),_0x303d1a(0x100),_0x303d1a(0x156),_0x303d1a(0xf4),'bonbon',_0x303d1a(0x11b),_0x303d1a(0x122),_0x303d1a(0x123),_0x303d1a(0xda),_0x303d1a(0x14c),_0x303d1a(0x130)]},{'category':_0x303d1a(0x199),'terms':[_0x303d1a(0x19c),_0x303d1a(0xfa),'salami',_0x303d1a(0x182),_0x303d1a(0xee),'wuerst',_0x303d1a(0x108),'speck','frikadelle',_0x303d1a(0xe8),_0x303d1a(0xed),'kartoffelsalat',_0x303d1a(0x129),'gefluegelsalat',_0x303d1a(0xde),_0x303d1a(0x10c),'pizzateig','döner',_0x303d1a(0x141)]},{'category':_0x303d1a(0x111),'terms':['milch',_0x303d1a(0x172),_0x303d1a(0x13e),'käse',_0x303d1a(0x169),'camembert','camenbert','feta',_0x303d1a(0x1ac),_0x303d1a(0x161),'gouda',_0x303d1a(0x11e),_0x303d1a(0x10a),_0x303d1a(0x109),'ei',_0x303d1a(0x12c)]},{'category':_0x303d1a(0x1a0),'terms':[_0x303d1a(0x17a),_0x303d1a(0x1ae),_0x303d1a(0x103),_0x303d1a(0x197),'roulade','hähnchen','haehnchen',_0x303d1a(0xd4),'lachs',_0x303d1a(0x138),'sushi']},{'category':'Obst/Gemüse','terms':[_0x303d1a(0x187),_0x303d1a(0xff),_0x303d1a(0x181),'banane',_0x303d1a(0x13c),'melone',_0x303d1a(0x139),_0x303d1a(0x10e),_0x303d1a(0x13a),'karotte',_0x303d1a(0x19e),_0x303d1a(0x1a9),_0x303d1a(0x1ad),_0x303d1a(0x13b),_0x303d1a(0x164),'zucchini',_0x303d1a(0x14f),_0x303d1a(0x121),'kartoffel',_0x303d1a(0x19b),'knoblauch',_0x303d1a(0x171),_0x303d1a(0x162),'obst',_0x303d1a(0x154),'gemuese','dill',_0x303d1a(0x12e)]}],QUANTITY_UNITS=[_0x303d1a(0x10b),_0x303d1a(0x136),'packung',_0x303d1a(0x194),_0x303d1a(0xe6),_0x303d1a(0xf9),_0x303d1a(0x119),_0x303d1a(0x149),'dose',_0x303d1a(0x107),'becher','glas','gläser',_0x303d1a(0x18c),'kg',_0x303d1a(0x145),'kilogramm','g',_0x303d1a(0x146),'l',_0x303d1a(0x17f),'ml','milliliter','bund',_0x303d1a(0x168),_0x303d1a(0xfb),_0x303d1a(0x18a),_0x303d1a(0x17d),_0x303d1a(0x16f),'kiste',_0x303d1a(0x165),_0x303d1a(0x174),'kartons',_0x303d1a(0xe7),'tuete','tüten',_0x303d1a(0xd6),_0x303d1a(0x163),'säcke',_0x303d1a(0xf2)],NUMBER_WORDS=[_0x303d1a(0xce),'eine','einen','einem','einer',_0x303d1a(0x19d),_0x303d1a(0xd7),_0x303d1a(0x185),_0x303d1a(0x19a),'fünf',_0x303d1a(0x14e),_0x303d1a(0x11c),_0x303d1a(0x16c),_0x303d1a(0xe1),_0x303d1a(0x140),_0x303d1a(0x14b),_0x303d1a(0x166),_0x303d1a(0x118),'zwoelf','dreizehn',_0x303d1a(0x144),_0x303d1a(0x102),'fuenfzehn',_0x303d1a(0x15d),'siebzehn','achtzehn',_0x303d1a(0xe3),_0x303d1a(0x115)];function normalize(_0x3e07e7){const _0x11ab0b=_0x303d1a;return String(_0x3e07e7||'')[_0x11ab0b(0x101)]()[_0x11ab0b(0x11a)](/\s+/g,'\x20')[_0x11ab0b(0x116)](_0x11ab0b(0xdc));}function normalizeLoose(_0x27d48a){const _0x3da2c8=_0x303d1a;return normalize(_0x27d48a)[_0x3da2c8(0x114)](_0x3da2c8(0xf0))['replace'](/[\u0300-\u036f]/g,'')[_0x3da2c8(0x11a)](/ß/g,'ss')['replace'](/[^a-z0-9]+/g,'\x20')[_0x3da2c8(0x101)]();}function splitAliases(_0x5f3bc9){const _0x3daa29=_0x303d1a;return String(_0x5f3bc9||'')['split'](/[;,]/)[_0x3daa29(0xfd)](_0x3376e9=>normalize(_0x3376e9))[_0x3daa29(0x16a)](Boolean);}function _0x1ec2(){const _0x422088=['tomate','mango','Brot/Gebäck','quark','Nonfood','neun','doener','verbandtasche','limonade','vierzehn','kilo','gramm','fischstaeb','parseItem','flaschen','stripQuantityDetailed','zehn','sonnenblumenkern','sort','fuenf','salat','692716CVouoH','fussmatte','3100005KevsCA','rasierer','gemüse','cola','chips','dose',')\x5cs+(?:','aldi','marketAliases','fischstäb','entries','sechzehn','brötchen','kosmetik','Getränke','parmesan','orange','sack','paprika','kisten','elf','endsWith','netz','kaese','filter','slice','sieben',')\x5cs*)?','nudel','rollen','penny','zitrone','joghurt','aliases','karton','42RgALrc','Sonstiges','pesto','aldi\x20sued','aldi\x20nord','fleisch','order','alias','rolle','reis','liter','resolveMarket','aepfel','leberwurst','spaghetti','konserve','drei','terms','apfel','muellbeutel','aldi\x20süd','schachteln','rewe','glaeser','spülmittel','corned\x20beef','explicit','split','eis','waschmittel','toast','packungen','7640328yCBsMp','rewe\x20center','gulasch','5ccuQsF','Wurst/Salate/Teigwaren','vier','zwiebel','aufschnitt','eins','möhre','Konserven','Fleisch/Fisch','guessCategory','cappuccino','H-Milch/Nudeln','müllbeutel','ambiguousMarketSuffix','penny\x20markt','shampoo','penne','moehre','kaffee','spuelmittel','ricotta','gurke','hack','1089FzVXSz','26380ilgqdy','ein','brot','taschentuch','availableMarkets','productText','kuchen','kassler','market','tueten','zwei','h.\x20milch','length','nuesse','speisestaerke','de-DE','duschgel','blätterteig','kuechenrolle','wasser','acht','gummi','neunzehn','14GQTpuN','baguette','paket','tüte','fleischsalat','includes','10foTwDu','\x20bei\x20','get','eiersalat','würst','8598062sQwHcn','NFD','oel','saecke','Haushalt/Hygiene','keks','rewe\x20markt','batterie','suggestAliases','1096278IYdlom','pakete','schinken','schachtel','broetchen','map','espresso','äpfel','haribo','trim','fünfzehn','steak','name','some','^(?:ein\x5cs+)?(?:halbes|halbe|halb)\x5cs+(?:','dosen','bacon','brunch','butter','stück','blaetterteig','apfeltasche','beere','flatMap','^(?:','Milchprodukte','gewuerzgurke','getraenk','normalize','zwanzig','toLocaleLowerCase','deo','zwölf','flasche','replace','mandel','sechs','tiefkuehl','sahne','enabled','lidl','rosenkohl','nuss','nüsse','parseMarketList','prefix','gefroren','Kosmetikartikel','push','geflügelsalat','bier','Schokolade/Naschen','eier','saft','petersilie','fußmatte','kokosraspel','reiniger','10256EZYMjO','guessCategorySmart','toilettenpapier','category','stueck',')\x5cs+','fisch','nektarine','avocado'];_0x1ec2=function(){return _0x422088;};return _0x1ec2();}function unique(_0x2bc39c){return[...new Set(_0x2bc39c['filter'](Boolean))];}function defaultAliasesForMarket(_0x2eb291){const _0x1e7332=_0x303d1a,_0xe788d8=normalizeLoose(_0x2eb291);if(_0xe788d8===_0x1e7332(0x159))return['aldi',_0x1e7332(0x179),_0x1e7332(0x189),_0x1e7332(0x178)];if(_0xe788d8===_0x1e7332(0x120))return[_0x1e7332(0x120)];if(_0xe788d8==='rewe')return[_0x1e7332(0x18b),_0x1e7332(0xf5),_0x1e7332(0x196)];if(_0xe788d8===_0x1e7332(0x170))return['penny',_0x1e7332(0x1a6)];return[];}function marketAliases(_0xe5e704){const _0x28f02d=_0x303d1a,_0x4d4722=[];for(const _0x301e40 of _0xe5e704){if(_0x301e40[_0x28f02d(0x11f)]===![]||!_0x301e40[_0x28f02d(0x104)])continue;const _0x56a953=unique([normalize(_0x301e40[_0x28f02d(0x104)]),...splitAliases(_0x301e40['aliases']),...defaultAliasesForMarket(_0x301e40['name'])[_0x28f02d(0xfd)](normalize)]);for(const _0x549dfc of _0x56a953)_0x4d4722[_0x28f02d(0x128)]({'market':_0x301e40[_0x28f02d(0x104)],'alias':_0x549dfc});}return _0x4d4722[_0x28f02d(0x14d)]((_0x518675,_0x24f310)=>_0x24f310[_0x28f02d(0x17c)][_0x28f02d(0xd9)]-_0x518675[_0x28f02d(0x17c)][_0x28f02d(0xd9)]);}function resolveMarket(_0x1a3206,_0x5287cb){const _0x10e655=_0x303d1a,_0x498a9d=normalize(_0x1a3206||'');if(!_0x498a9d)return undefined;for(const _0x4370e3 of marketAliases(_0x5287cb)){if(_0x4370e3[_0x10e655(0x17c)]===_0x498a9d)return _0x4370e3[_0x10e655(0xd5)];}return undefined;}function _0x2296(_0x17e381,_0xb2e730){_0x17e381=_0x17e381-0xcc;const _0x1ec238=_0x1ec2();let _0x2296e0=_0x1ec238[_0x17e381];return _0x2296e0;}function extractMarket(_0xa978d4,_0x5da300){const _0x467add=_0x303d1a,_0x11f7bc=normalize(_0xa978d4);for(const _0x744cf6 of marketAliases(_0x5da300)){const _0x1c89e0=['\x20von\x20'+_0x744cf6[_0x467add(0x17c)],_0x467add(0xeb)+_0x744cf6[_0x467add(0x17c)]];for(const _0x370e94 of _0x1c89e0){if(_0x11f7bc[_0x467add(0x167)](_0x370e94))return{'productText':_0xa978d4['slice'](0x0,_0xa978d4['length']-_0x370e94[_0x467add(0xd9)])[_0x467add(0x101)](),'market':_0x744cf6[_0x467add(0xd5)],'explicit':!![]};}}const _0x180aff=_0xa978d4['match'](/\s+(?:von|bei)\s+(.+?)\s*$/i);return{'productText':_0xa978d4['trim'](),'explicit':![],'ambiguousMarketSuffix':_0x180aff?.[0x1]?.['trim']()};}function stripQuantityDetailed(_0x1f0204){const _0x58b04b=_0x303d1a,_0x31449b=String(_0x1f0204||'')['trim']();if(!_0x31449b)return{'productText':'','prefix':''};if(/^\d+\s*\/\s*\d+\s+/['test'](_0x31449b))return{'productText':_0x31449b,'prefix':''};const _0xa41cfa=QUANTITY_UNITS['join']('|'),_0x32e08a=NUMBER_WORDS['join']('|'),_0x43a523=[new RegExp(_0x58b04b(0x106)+_0xa41cfa+_0x58b04b(0x137),'i'),new RegExp('^(?:'+_0x32e08a+_0x58b04b(0x158)+_0xa41cfa+_0x58b04b(0x137),'i'),new RegExp(_0x58b04b(0x110)+_0x32e08a+')\x5cs+','i'),new RegExp('^\x5cd+(?:[.,]\x5cd+)?\x5cs*[xX]\x5cs*(?:\x5cd+(?:[.,]\x5cd+)?\x5cs*(?:'+_0xa41cfa+_0x58b04b(0x16d),'i'),new RegExp('^\x5cd+(?:[.,]\x5cd+)?\x5cs*(?:'+_0xa41cfa+_0x58b04b(0x137),'i'),/^\d+(?:[.,]\d+)?\s+/i];for(const _0x1a0901 of _0x43a523){const _0x4a247a=_0x31449b['match'](_0x1a0901);if(_0x4a247a&&_0x4a247a[0x0]&&_0x4a247a[0x0][_0x58b04b(0xd9)]<_0x31449b[_0x58b04b(0xd9)])return{'productText':_0x31449b[_0x58b04b(0x16b)](_0x4a247a[0x0]['length'])['trim'](),'prefix':_0x4a247a[0x0]['trim']()};}return{'productText':_0x31449b,'prefix':''};}function stripQuantity(_0x5f4f42){const _0x473fef=_0x303d1a;return stripQuantityDetailed(_0x5f4f42)[_0x473fef(0xd2)];}function stemKey(_0x465d91){const _0x4681d5=_0x303d1a;let _0xb3a84d=normalizeLoose(_0x465d91)[_0x4681d5(0x11a)](/\s+/g,'');if(_0xb3a84d['length']>0x6&&_0xb3a84d[_0x4681d5(0x167)]('en'))_0xb3a84d=_0xb3a84d['slice'](0x0,-0x1);else{if(_0xb3a84d['length']>0x6&&_0xb3a84d['endsWith']('n'))_0xb3a84d=_0xb3a84d['slice'](0x0,-0x1);}return _0xb3a84d;}function canonicalProductKey(_0x25f008){return stemKey(stripQuantity(_0x25f008));}function productCandidates(_0x4a67c1){const _0x32d7c4=stripQuantityDetailed(_0x4a67c1);return unique([normalize(_0x4a67c1),normalize(_0x32d7c4['productText']),canonicalProductKey(_0x4a67c1),canonicalProductKey(_0x32d7c4['productText'])]);}function findProduct(_0x215b07,_0x28bc78){const _0xe982f1=_0x303d1a,_0x102ac8=productCandidates(_0x215b07);for(const _0x7a306a of _0x28bc78){const _0xe91f92=[_0x7a306a[_0xe982f1(0x104)],...splitAliases(_0x7a306a['aliases'])][_0xe982f1(0x10f)](_0x195316=>[normalize(_0x195316),canonicalProductKey(_0x195316)])[_0xe982f1(0x16a)](Boolean);if(_0x102ac8['some'](_0xeb64ee=>_0xe91f92[_0xe982f1(0xe9)](_0xeb64ee)))return _0x7a306a;}return undefined;}function guessCategory(_0x3c89be){const _0x2c359a=_0x303d1a,_0x4985f9=normalize(stripQuantity(_0x3c89be));for(const _0x3305c4 of CATEGORY_RULES){if(_0x3305c4[_0x2c359a(0x186)][_0x2c359a(0x105)](_0x5ea404=>_0x4985f9['includes'](_0x5ea404)))return _0x3305c4[_0x2c359a(0x135)];}return'Sonstiges';}function significantTokens(_0x27b8e5){const _0xd5365=_0x303d1a;return normalizeLoose(_0x27b8e5)[_0xd5365(0x190)]('\x20')[_0xd5365(0x16a)](_0x393c10=>_0x393c10[_0xd5365(0xd9)]>=0x4)[_0xd5365(0xfd)](_0x3d343a=>_0x3d343a[_0xd5365(0x167)]('en')&&_0x3d343a[_0xd5365(0xd9)]>0x6?_0x3d343a[_0xd5365(0x16b)](0x0,-0x1):_0x3d343a);}function guessCategorySmart(_0x4f711d,_0x42ca40){const _0x4632dc=_0x303d1a,_0x5470d8=guessCategory(_0x4f711d);if(_0x5470d8!==_0x4632dc(0x176))return _0x5470d8;const _0x4b0384=significantTokens(stripQuantity(_0x4f711d));if(!_0x4b0384['length'])return _0x5470d8;const _0x20db01=new Map();for(const _0x2429ac of _0x42ca40){const _0xe51e1a=significantTokens([_0x2429ac[_0x4632dc(0x104)],_0x2429ac['aliases']||'']['join']('\x20')),_0x41865f=_0x4b0384[_0x4632dc(0x16a)](_0x23d7eb=>_0xe51e1a[_0x4632dc(0xe9)](_0x23d7eb))[_0x4632dc(0xd9)];if(_0x41865f>0x0)_0x20db01['set'](_0x2429ac[_0x4632dc(0x135)],(_0x20db01[_0x4632dc(0xec)](_0x2429ac[_0x4632dc(0x135)])||0x0)+_0x41865f);}const _0x3419f7=[..._0x20db01[_0x4632dc(0x15c)]()][_0x4632dc(0x14d)]((_0x1468e0,_0x413238)=>_0x413238[0x1]-_0x1468e0[0x1]);return _0x3419f7[0x0]?.[0x0]||_0x5470d8;}function parseMarketList(_0x463c8f,_0x581816){const _0x39b3d6=_0x303d1a,_0x35d50a=String(_0x463c8f||'')['split'](/[;,]/)['map'](_0x275168=>resolveMarket(_0x275168[_0x39b3d6(0x101)](),_0x581816))[_0x39b3d6(0x16a)](_0x5058f4=>Boolean(_0x5058f4));return unique(_0x35d50a);}function resolveProductMarket(_0x592ee1,_0x451e89,_0x7f4fef,_0x2b4936){const _0x9a3e0e=_0x303d1a,_0x4e3fed=resolveMarket(_0x592ee1?.['defaultMarket'],_0x451e89);if(_0x4e3fed)return _0x4e3fed;const _0xad9009=parseMarketList(_0x592ee1?.[_0x9a3e0e(0xd1)],_0x451e89),_0x450bb4=resolveMarket(_0x2b4936,_0x451e89);if(_0x450bb4&&(!_0xad9009['length']||_0xad9009['includes'](_0x450bb4)))return _0x450bb4;if(_0xad9009[_0x9a3e0e(0xd9)]){const _0xfc88c0=new Map(_0x451e89[_0x9a3e0e(0xfd)](_0x1a5d7d=>[_0x1a5d7d[_0x9a3e0e(0x104)],Number(_0x1a5d7d[_0x9a3e0e(0x17b)])||0x270f]));return[..._0xad9009]['sort']((_0x45d002,_0x44e1ea)=>(_0xfc88c0[_0x9a3e0e(0xec)](_0x45d002)||0x270f)-(_0xfc88c0[_0x9a3e0e(0xec)](_0x44e1ea)||0x270f))[0x0];}return resolveMarket(_0x7f4fef,_0x451e89)||_0x7f4fef;}function parseItem(_0x2c682b,_0x100b38,_0xcebb51,_0x4c4de8,_0x34fd5f=''){const _0x50cb99=_0x303d1a,_0x1d6159=extractMarket(_0x2c682b,_0x100b38),_0x2c303c=stripQuantityDetailed(_0x1d6159[_0x50cb99(0xd2)]),_0x50cfe5=findProduct(_0x1d6159[_0x50cb99(0xd2)],_0xcebb51),_0x22f23d=_0x2c303c[_0x50cb99(0xd2)],_0xb0b647=!_0x1d6159[_0x50cb99(0xd5)]&&!_0x50cfe5&&Boolean(_0x1d6159['ambiguousMarketSuffix']);return{'originalText':_0x2c682b,'productText':_0x22f23d,'productName':_0x50cfe5?.[_0x50cb99(0x104)]||_0x22f23d||_0x1d6159[_0x50cb99(0xd2)],'market':_0x1d6159[_0x50cb99(0xd5)]||(!_0xb0b647?resolveProductMarket(_0x50cfe5,_0x100b38,_0x4c4de8,_0x34fd5f):resolveMarket(_0x4c4de8,_0x100b38)||_0x4c4de8),'category':_0x50cfe5?.[_0x50cb99(0x135)]||guessCategorySmart(_0x1d6159['productText'],_0xcebb51),'knownProduct':Boolean(_0x50cfe5),'explicitMarket':_0x1d6159[_0x50cb99(0x18f)],'quantityPrefix':_0x2c303c[_0x50cb99(0x125)],'ambiguousMarketSuffix':_0xb0b647?_0x1d6159[_0x50cb99(0x1a5)]:undefined};}function suggestAliases(_0x4318d4,_0x106750){const _0x5c7e95=_0x303d1a,_0x2fc88c=stripQuantity(_0x4318d4)['trim']();if(!_0x2fc88c)return[];const _0x36ffac=[_0x106750[_0x5c7e95(0x104)],...splitAliases(_0x106750[_0x5c7e95(0x173)])][_0x5c7e95(0xfd)](normalize);if(_0x36ffac['includes'](normalize(_0x2fc88c)))return[];if(canonicalProductKey(_0x2fc88c)===canonicalProductKey(_0x106750[_0x5c7e95(0x104)]))return[_0x2fc88c];return[];}
|
|
1
|
+
'use strict';const _0x1bb71a=_0x2869;(function(_0x491baa,_0x15c31c){const _0x5532a0=_0x2869,_0x4580d4=_0x491baa();while(!![]){try{const _0x3e867c=parseInt(_0x5532a0(0x21f))/0x1*(parseInt(_0x5532a0(0x218))/0x2)+parseInt(_0x5532a0(0x27f))/0x3+parseInt(_0x5532a0(0x267))/0x4*(-parseInt(_0x5532a0(0x1d6))/0x5)+-parseInt(_0x5532a0(0x24c))/0x6*(-parseInt(_0x5532a0(0x256))/0x7)+parseInt(_0x5532a0(0x273))/0x8*(parseInt(_0x5532a0(0x26d))/0x9)+-parseInt(_0x5532a0(0x225))/0xa*(parseInt(_0x5532a0(0x248))/0xb)+parseInt(_0x5532a0(0x23b))/0xc*(-parseInt(_0x5532a0(0x1cd))/0xd);if(_0x3e867c===_0x15c31c)break;else _0x4580d4['push'](_0x4580d4['shift']());}catch(_0x24ad93){_0x4580d4['push'](_0x4580d4['shift']());}}}(_0x3379,0x21cdb));function _0x3379(){const _0x3fa498=['Obst/Gemüse','map','schwamm','gewuerzgurke','split','deo','obst','^(?:','rolle','wuerst','oel','^\x5cd+(?:[.,]\x5cd+)?\x5cs*(?:','gläser','852324wluPxQ','camembert','includes','kosmetik','geflügelsalat','toast','477bzOBxw','wasser','category','cola','kaese','hähnchen','32664gyIBgG','aldi','konserve','zitrone','zahnbuerste','packungen','terms','defineProperty','batterie','saft','replace','zahnpasta','83616tnPOYr','liter','muellbeutel','suggestAliases','nektarine','length','zwei','sack','zwiebel','ricotta','stripQuantityDetailed','Sonstiges','haribo','duschgel','flaschen','speisestärke','nuesse','pepsi','gemüse','kassler','putztuch','fünf','ambiguousMarketSuffix','salami','stripQuantity','aliases','dosen','frikadelle','eiersalat','\x20von\x20','reis','test','käse','melone','neun','beere',')\x5cs*)?','name','vier','ein','kokosraspel','schachteln','tueten','market','NFD','einen','fischstäb','fleisch','croissant','49790TzMHmX','einer','stueck','match','camenbert','banane','rewe\x20markt','endsWith','de-DE','5WabjaN','tee','sechzehn','gummi','müllbeutel','glas','nuss','alias','gefrohren','cappuccino','haehnchen','entries','TK-Produkte','packung','filter','broetchen','normalizeLoose','butter','mais','sort','eis','resolveMarket','order','stück','cornedbeef','eier','gefluegelsalat','mandel','zahnbürste','join','zwoelf','kartons','leberwurst','kartoffelsalat','pizzateig','fisch','Milchprodukte','dill','Schokolade/Naschen','kilo','moehre','karton','set','spuelmittel','avocado','tomate','\x20bei\x20','parmesan','Brot/Gebäck','fuenf','feta','lampe','kilogramm','brot','rosenkohl','aldi\x20nord','gewürzgurke','getränk','fanta','^\x5cd+(?:[.,]\x5cd+)?\x5cs*[xX]\x5cs*(?:\x5cd+(?:[.,]\x5cd+)?\x5cs*(?:','bund','paket','zwölf','döner','findProduct','gurke','2ePTKXF','nudel','rewe\x20center','spülmittel','kuechenrolle','achtzehn','Getränke','197927pNIdfp','trim','guessCategorySmart','marketAliases','roulade','quark','74890UUEpna','glaeser','bacon','speck','getraenk','fünfzehn','katzenfutter','productText','gouda','parseMarketList','tuete','küchenrolle',')\x5cs+','aldi\x20sued','bonbon','normalize','kaffee','milliliter','säcke','espresso','rollen','nüsse','240WQGbjk','schokolade','apfel','canonicalProductKey','salat','gramm','penny','pinsel','tiefkuehl','blätterteig','vierzehn','some','slice','297wLKDpY','kuchen','mango','prefix','6102UyLgOA','einem','haferflock','reiniger','rasierer','availableMarkets','flatMap','elf','rewe','^(?:ein\x5cs+)?(?:halbes|halbe|halb)\x5cs+(?:','1295bMfiTK','baguette','pakete','Wurst/Salate/Teigwaren'];_0x3379=function(){return _0x3fa498;};return _0x3379();}Object[_0x1bb71a(0x27a)](exports,'__esModule',{'value':!![]}),exports[_0x1bb71a(0x234)]=normalize,exports[_0x1bb71a(0x1e6)]=normalizeLoose,exports['splitAliases']=splitAliases,exports[_0x1bb71a(0x222)]=marketAliases,exports[_0x1bb71a(0x1eb)]=resolveMarket,exports[_0x1bb71a(0x289)]=stripQuantityDetailed,exports[_0x1bb71a(0x1b4)]=stripQuantity,exports[_0x1bb71a(0x23e)]=canonicalProductKey,exports[_0x1bb71a(0x216)]=findProduct,exports['guessCategory']=guessCategory,exports[_0x1bb71a(0x221)]=guessCategorySmart,exports[_0x1bb71a(0x22e)]=parseMarketList,exports['parseItem']=parseItem,exports[_0x1bb71a(0x282)]=suggestAliases;const CATEGORY_RULES=[{'category':_0x1bb71a(0x1e2),'terms':['tiefkühl',_0x1bb71a(0x243),'gefroren',_0x1bb71a(0x1de),_0x1bb71a(0x1ca),'fischstaeb','pommes',_0x1bb71a(0x1ea)]},{'category':'Konserven','terms':['dose',_0x1bb71a(0x1b6),_0x1bb71a(0x275),_0x1bb71a(0x1ee),'corned\x20beef',_0x1bb71a(0x20e),_0x1bb71a(0x25d),'pesto',_0x1bb71a(0x1e8),'aioli']},{'category':'H-Milch/Nudeln','terms':['h-milch','h.\x20milch',_0x1bb71a(0x219),'spaghetti','penne',_0x1bb71a(0x1ba),_0x1bb71a(0x24e),_0x1bb71a(0x28e),'speisestaerke','öl',_0x1bb71a(0x264)]},{'category':'Haushalt/Hygiene','terms':['toilettenpapier',_0x1bb71a(0x230),_0x1bb71a(0x21c),'taschentuch',_0x1bb71a(0x1da),_0x1bb71a(0x281),_0x1bb71a(0x21b),_0x1bb71a(0x201),'waschmittel',_0x1bb71a(0x24f),_0x1bb71a(0x25c),_0x1bb71a(0x1b0)]},{'category':'Kosmetikartikel','terms':[_0x1bb71a(0x28c),'shampoo',_0x1bb71a(0x27e),_0x1bb71a(0x1f2),_0x1bb71a(0x277),_0x1bb71a(0x25f),'seife','creme',_0x1bb71a(0x250),_0x1bb71a(0x26a)]},{'category':'Nonfood','terms':[_0x1bb71a(0x242),'verbandtasche','fussmatte','fußmatte',_0x1bb71a(0x22b),'katzenstreu',_0x1bb71a(0x27b),_0x1bb71a(0x209)]},{'category':_0x1bb71a(0x21e),'terms':[_0x1bb71a(0x27c),_0x1bb71a(0x270),_0x1bb71a(0x1ad),_0x1bb71a(0x26e),'limonade','sprite',_0x1bb71a(0x210),'bier',_0x1bb71a(0x20f),_0x1bb71a(0x229)]},{'category':'Tee/Kaffee','terms':[_0x1bb71a(0x1d7),_0x1bb71a(0x235),_0x1bb71a(0x238),_0x1bb71a(0x1df)]},{'category':_0x1bb71a(0x206),'terms':[_0x1bb71a(0x20b),'brötchen',_0x1bb71a(0x1e5),_0x1bb71a(0x257),_0x1bb71a(0x26c),_0x1bb71a(0x249),'torte',_0x1bb71a(0x1cc),'apfeltasche']},{'category':_0x1bb71a(0x1fc),'terms':[_0x1bb71a(0x23c),_0x1bb71a(0x1d9),_0x1bb71a(0x28b),'chips','keks',_0x1bb71a(0x233),_0x1bb71a(0x1f1),_0x1bb71a(0x1dc),_0x1bb71a(0x23a),_0x1bb71a(0x1ac),'sonnenblumenkern',_0x1bb71a(0x1c4)]},{'category':_0x1bb71a(0x259),'terms':['aufschnitt','schinken',_0x1bb71a(0x1b3),_0x1bb71a(0x1f6),'würst',_0x1bb71a(0x263),_0x1bb71a(0x227),_0x1bb71a(0x228),_0x1bb71a(0x1b7),'fleischsalat',_0x1bb71a(0x1b8),_0x1bb71a(0x1f7),_0x1bb71a(0x26b),_0x1bb71a(0x1f0),_0x1bb71a(0x244),'blaetterteig',_0x1bb71a(0x1f8),_0x1bb71a(0x215),'doener']},{'category':_0x1bb71a(0x1fa),'terms':['milch','joghurt',_0x1bb71a(0x224),_0x1bb71a(0x1bc),_0x1bb71a(0x271),_0x1bb71a(0x268),_0x1bb71a(0x1d1),_0x1bb71a(0x208),_0x1bb71a(0x288),_0x1bb71a(0x205),_0x1bb71a(0x22d),'sahne',_0x1bb71a(0x1e7),'brunch','ei',_0x1bb71a(0x1ef)]},{'category':'Fleisch/Fisch','terms':[_0x1bb71a(0x1cb),'hack','steak','gulasch',_0x1bb71a(0x223),_0x1bb71a(0x272),_0x1bb71a(0x1e0),_0x1bb71a(0x1af),'lachs',_0x1bb71a(0x1f9),'sushi']},{'category':_0x1bb71a(0x25a),'terms':[_0x1bb71a(0x23d),'äpfel','aepfel',_0x1bb71a(0x1d2),_0x1bb71a(0x24a),_0x1bb71a(0x1bd),_0x1bb71a(0x283),_0x1bb71a(0x1bf),_0x1bb71a(0x202),'karotte','möhre',_0x1bb71a(0x1fe),_0x1bb71a(0x217),_0x1bb71a(0x203),'paprika','zucchini',_0x1bb71a(0x23f),_0x1bb71a(0x20c),'kartoffel',_0x1bb71a(0x287),'knoblauch',_0x1bb71a(0x276),'orange',_0x1bb71a(0x260),_0x1bb71a(0x1ae),'gemuese',_0x1bb71a(0x1fb),'petersilie']}],QUANTITY_UNITS=[_0x1bb71a(0x1ed),_0x1bb71a(0x1cf),_0x1bb71a(0x1e3),_0x1bb71a(0x278),_0x1bb71a(0x213),_0x1bb71a(0x258),'flasche',_0x1bb71a(0x28d),'dose',_0x1bb71a(0x1b6),'becher',_0x1bb71a(0x1db),_0x1bb71a(0x266),_0x1bb71a(0x226),'kg',_0x1bb71a(0x1fd),_0x1bb71a(0x20a),'g',_0x1bb71a(0x240),'l',_0x1bb71a(0x280),'ml',_0x1bb71a(0x236),_0x1bb71a(0x212),'netz','schachtel',_0x1bb71a(0x1c5),_0x1bb71a(0x262),_0x1bb71a(0x239),'kiste','kisten',_0x1bb71a(0x1ff),_0x1bb71a(0x1f5),'tüte',_0x1bb71a(0x22f),'tüten',_0x1bb71a(0x1c6),_0x1bb71a(0x286),_0x1bb71a(0x237),'saecke'],NUMBER_WORDS=[_0x1bb71a(0x1c3),'eine',_0x1bb71a(0x1c9),_0x1bb71a(0x24d),_0x1bb71a(0x1ce),'eins',_0x1bb71a(0x285),'drei',_0x1bb71a(0x1c2),_0x1bb71a(0x1b1),_0x1bb71a(0x207),'sechs','sieben','acht',_0x1bb71a(0x1be),'zehn',_0x1bb71a(0x253),_0x1bb71a(0x214),_0x1bb71a(0x1f4),'dreizehn',_0x1bb71a(0x245),_0x1bb71a(0x22a),'fuenfzehn',_0x1bb71a(0x1d8),'siebzehn',_0x1bb71a(0x21d),'neunzehn','zwanzig'];function normalize(_0x1be5ff){const _0x25191c=_0x1bb71a;return String(_0x1be5ff||'')['trim']()['replace'](/\s+/g,'\x20')['toLocaleLowerCase'](_0x25191c(0x1d5));}function normalizeLoose(_0x1db9c1){const _0x231258=_0x1bb71a;return normalize(_0x1db9c1)['normalize'](_0x231258(0x1c8))[_0x231258(0x27d)](/[\u0300-\u036f]/g,'')[_0x231258(0x27d)](/ß/g,'ss')['replace'](/[^a-z0-9]+/g,'\x20')['trim']();}function splitAliases(_0x9292dc){const _0x434ba0=_0x1bb71a;return String(_0x9292dc||'')['split'](/[;,]/)[_0x434ba0(0x25b)](_0x417c21=>normalize(_0x417c21))[_0x434ba0(0x1e4)](Boolean);}function unique(_0x164f99){const _0x22d9ef=_0x1bb71a;return[...new Set(_0x164f99[_0x22d9ef(0x1e4)](Boolean))];}function defaultAliasesForMarket(_0x54f4b1){const _0x1d2756=_0x1bb71a,_0xcb02b2=normalizeLoose(_0x54f4b1);if(_0xcb02b2===_0x1d2756(0x274))return[_0x1d2756(0x274),_0x1d2756(0x20d),'aldi\x20süd',_0x1d2756(0x232)];if(_0xcb02b2==='lidl')return['lidl'];if(_0xcb02b2===_0x1d2756(0x254))return[_0x1d2756(0x254),_0x1d2756(0x1d3),_0x1d2756(0x21a)];if(_0xcb02b2===_0x1d2756(0x241))return[_0x1d2756(0x241),'penny\x20markt'];return[];}function marketAliases(_0x4957e1){const _0x2edc96=_0x1bb71a,_0x40fc25=[];for(const _0x3b5fd3 of _0x4957e1){if(_0x3b5fd3['enabled']===![]||!_0x3b5fd3['name'])continue;const _0x158811=unique([normalize(_0x3b5fd3['name']),...splitAliases(_0x3b5fd3[_0x2edc96(0x1b5)]),...defaultAliasesForMarket(_0x3b5fd3[_0x2edc96(0x1c1)])['map'](normalize)]);for(const _0x59474a of _0x158811)_0x40fc25['push']({'market':_0x3b5fd3[_0x2edc96(0x1c1)],'alias':_0x59474a});}return _0x40fc25['sort']((_0x238580,_0x368686)=>_0x368686[_0x2edc96(0x1dd)][_0x2edc96(0x284)]-_0x238580['alias'][_0x2edc96(0x284)]);}function resolveMarket(_0x46b00b,_0x51fd0c){const _0x23b0a9=_0x1bb71a,_0x360dd0=normalize(_0x46b00b||'');if(!_0x360dd0)return undefined;for(const _0x1033fa of marketAliases(_0x51fd0c)){if(_0x1033fa[_0x23b0a9(0x1dd)]===_0x360dd0)return _0x1033fa[_0x23b0a9(0x1c7)];}return undefined;}function extractMarket(_0x5ae7f6,_0x4d275f){const _0x559e25=_0x1bb71a,_0x533062=normalize(_0x5ae7f6);for(const _0x12d9fb of marketAliases(_0x4d275f)){const _0x2e9713=[_0x559e25(0x1b9)+_0x12d9fb[_0x559e25(0x1dd)],_0x559e25(0x204)+_0x12d9fb[_0x559e25(0x1dd)]];for(const _0x9db9b4 of _0x2e9713){if(_0x533062[_0x559e25(0x1d4)](_0x9db9b4))return{'productText':_0x5ae7f6[_0x559e25(0x247)](0x0,_0x5ae7f6[_0x559e25(0x284)]-_0x9db9b4[_0x559e25(0x284)])[_0x559e25(0x220)](),'market':_0x12d9fb['market'],'explicit':!![]};}}const _0x3f470f=_0x5ae7f6[_0x559e25(0x1d0)](/\s+(?:von|bei)\s+(.+?)\s*$/i);return{'productText':_0x5ae7f6[_0x559e25(0x220)](),'explicit':![],'ambiguousMarketSuffix':_0x3f470f?.[0x1]?.[_0x559e25(0x220)]()};}function stripQuantityDetailed(_0x99bc0){const _0x2373c7=_0x1bb71a,_0xaa1bc0=String(_0x99bc0||'')['trim']();if(!_0xaa1bc0)return{'productText':'','prefix':''};if(/^\d+\s*\/\s*\d+\s+/[_0x2373c7(0x1bb)](_0xaa1bc0))return{'productText':_0xaa1bc0,'prefix':''};const _0x179086=QUANTITY_UNITS['join']('|'),_0x6c579c=NUMBER_WORDS[_0x2373c7(0x1f3)]('|'),_0x287c0f=[new RegExp(_0x2373c7(0x255)+_0x179086+')\x5cs+','i'),new RegExp(_0x2373c7(0x261)+_0x6c579c+')\x5cs+(?:'+_0x179086+_0x2373c7(0x231),'i'),new RegExp(_0x2373c7(0x261)+_0x6c579c+')\x5cs+','i'),new RegExp(_0x2373c7(0x211)+_0x179086+_0x2373c7(0x1c0),'i'),new RegExp(_0x2373c7(0x265)+_0x179086+_0x2373c7(0x231),'i'),/^\d+(?:[.,]\d+)?\s+/i];for(const _0x547a16 of _0x287c0f){const _0x36a34a=_0xaa1bc0['match'](_0x547a16);if(_0x36a34a&&_0x36a34a[0x0]&&_0x36a34a[0x0][_0x2373c7(0x284)]<_0xaa1bc0[_0x2373c7(0x284)])return{'productText':_0xaa1bc0['slice'](_0x36a34a[0x0][_0x2373c7(0x284)])[_0x2373c7(0x220)](),'prefix':_0x36a34a[0x0][_0x2373c7(0x220)]()};}return{'productText':_0xaa1bc0,'prefix':''};}function _0x2869(_0xc873c3,_0x57e69c){_0xc873c3=_0xc873c3-0x1ac;const _0x33793e=_0x3379();let _0x2869d1=_0x33793e[_0xc873c3];return _0x2869d1;}function stripQuantity(_0x41a704){const _0x5f2924=_0x1bb71a;return stripQuantityDetailed(_0x41a704)[_0x5f2924(0x22c)];}function stemKey(_0x187fe7){const _0x51c732=_0x1bb71a;let _0x2b278c=normalizeLoose(_0x187fe7)['replace'](/\s+/g,'');if(_0x2b278c[_0x51c732(0x284)]>0x6&&_0x2b278c[_0x51c732(0x1d4)]('en'))_0x2b278c=_0x2b278c['slice'](0x0,-0x1);else{if(_0x2b278c[_0x51c732(0x284)]>0x6&&_0x2b278c[_0x51c732(0x1d4)]('n'))_0x2b278c=_0x2b278c[_0x51c732(0x247)](0x0,-0x1);}return _0x2b278c;}function canonicalProductKey(_0x9d8250){return stemKey(stripQuantity(_0x9d8250));}function productCandidates(_0x1134f8){const _0x307724=_0x1bb71a,_0x53d929=stripQuantityDetailed(_0x1134f8);return unique([normalize(_0x1134f8),normalize(_0x53d929['productText']),canonicalProductKey(_0x1134f8),canonicalProductKey(_0x53d929[_0x307724(0x22c)])]);}function findProduct(_0x22d8da,_0x46cf2b){const _0x85342f=_0x1bb71a,_0x41b798=productCandidates(_0x22d8da);for(const _0x3a770b of _0x46cf2b){const _0x793734=[_0x3a770b[_0x85342f(0x1c1)],...splitAliases(_0x3a770b['aliases'])][_0x85342f(0x252)](_0x167a7c=>[normalize(_0x167a7c),canonicalProductKey(_0x167a7c)])['filter'](Boolean);if(_0x41b798[_0x85342f(0x246)](_0x1f4ad7=>_0x793734[_0x85342f(0x269)](_0x1f4ad7)))return _0x3a770b;}return undefined;}function guessCategory(_0x5ed954){const _0x33f65b=_0x1bb71a,_0x4d209f=normalize(stripQuantity(_0x5ed954));for(const _0x56e5ca of CATEGORY_RULES){if(_0x56e5ca[_0x33f65b(0x279)]['some'](_0xb1f02d=>_0x4d209f[_0x33f65b(0x269)](_0xb1f02d)))return _0x56e5ca[_0x33f65b(0x26f)];}return _0x33f65b(0x28a);}function significantTokens(_0x42d72a){const _0xa557ee=_0x1bb71a;return normalizeLoose(_0x42d72a)[_0xa557ee(0x25e)]('\x20')[_0xa557ee(0x1e4)](_0x31f37c=>_0x31f37c[_0xa557ee(0x284)]>=0x4)[_0xa557ee(0x25b)](_0x7de39=>_0x7de39[_0xa557ee(0x1d4)]('en')&&_0x7de39[_0xa557ee(0x284)]>0x6?_0x7de39['slice'](0x0,-0x1):_0x7de39);}function guessCategorySmart(_0x1caa2f,_0x3458ef){const _0x251540=_0x1bb71a,_0x39e72b=guessCategory(_0x1caa2f);if(_0x39e72b!=='Sonstiges')return _0x39e72b;const _0x32b481=significantTokens(stripQuantity(_0x1caa2f));if(!_0x32b481[_0x251540(0x284)])return _0x39e72b;const _0x5c6e76=new Map();for(const _0x3edc26 of _0x3458ef){const _0x153cb0=significantTokens([_0x3edc26[_0x251540(0x1c1)],_0x3edc26['aliases']||''][_0x251540(0x1f3)]('\x20')),_0x17dc91=_0x32b481[_0x251540(0x1e4)](_0x171f49=>_0x153cb0[_0x251540(0x269)](_0x171f49))[_0x251540(0x284)];if(_0x17dc91>0x0)_0x5c6e76[_0x251540(0x200)](_0x3edc26[_0x251540(0x26f)],(_0x5c6e76['get'](_0x3edc26['category'])||0x0)+_0x17dc91);}const _0x10ba18=[..._0x5c6e76[_0x251540(0x1e1)]()][_0x251540(0x1e9)]((_0x395223,_0x338341)=>_0x338341[0x1]-_0x395223[0x1]);return _0x10ba18[0x0]?.[0x0]||_0x39e72b;}function parseMarketList(_0x4c6bef,_0xb26a9e){const _0x308be4=_0x1bb71a,_0x345913=String(_0x4c6bef||'')['split'](/[;,]/)['map'](_0x489f4f=>resolveMarket(_0x489f4f['trim'](),_0xb26a9e))[_0x308be4(0x1e4)](_0x8c163c=>Boolean(_0x8c163c));return unique(_0x345913);}function resolveProductMarket(_0x55ac69,_0x572f5a,_0x34ef28,_0x8188cb){const _0x346385=_0x1bb71a,_0x446a09=resolveMarket(_0x55ac69?.['defaultMarket'],_0x572f5a);if(_0x446a09)return _0x446a09;const _0x2b14ef=parseMarketList(_0x55ac69?.[_0x346385(0x251)],_0x572f5a),_0x4b414c=resolveMarket(_0x8188cb,_0x572f5a);if(_0x4b414c&&(!_0x2b14ef[_0x346385(0x284)]||_0x2b14ef['includes'](_0x4b414c)))return _0x4b414c;if(_0x2b14ef['length']){const _0x33b4d5=new Map(_0x572f5a[_0x346385(0x25b)](_0x2c370a=>[_0x2c370a['name'],Number(_0x2c370a[_0x346385(0x1ec)])||0x270f]));return[..._0x2b14ef][_0x346385(0x1e9)]((_0x335586,_0x6f9e5f)=>(_0x33b4d5['get'](_0x335586)||0x270f)-(_0x33b4d5['get'](_0x6f9e5f)||0x270f))[0x0];}return resolveMarket(_0x34ef28,_0x572f5a)||_0x34ef28;}function parseItem(_0x3df08d,_0x1ec34d,_0x29e4df,_0x407720,_0x3d734f=''){const _0x219364=_0x1bb71a,_0x4b3441=extractMarket(_0x3df08d,_0x1ec34d),_0x554910=stripQuantityDetailed(_0x4b3441['productText']),_0x5888a6=findProduct(_0x4b3441[_0x219364(0x22c)],_0x29e4df),_0x542f37=_0x554910[_0x219364(0x22c)],_0x41c1a1=!_0x4b3441[_0x219364(0x1c7)]&&!_0x5888a6&&Boolean(_0x4b3441[_0x219364(0x1b2)]);return{'originalText':_0x3df08d,'productText':_0x542f37,'productName':_0x5888a6?.['name']||_0x542f37||_0x4b3441[_0x219364(0x22c)],'market':_0x4b3441['market']||(!_0x41c1a1?resolveProductMarket(_0x5888a6,_0x1ec34d,_0x407720,_0x3d734f):resolveMarket(_0x407720,_0x1ec34d)||_0x407720),'category':_0x5888a6?.['category']||guessCategorySmart(_0x4b3441[_0x219364(0x22c)],_0x29e4df),'knownProduct':Boolean(_0x5888a6),'explicitMarket':_0x4b3441['explicit'],'quantityPrefix':_0x554910[_0x219364(0x24b)],'ambiguousMarketSuffix':_0x41c1a1?_0x4b3441['ambiguousMarketSuffix']:undefined};}function suggestAliases(_0x462cc4,_0x353575){const _0x226d70=_0x1bb71a,_0x578638=stripQuantity(_0x462cc4)['trim']();if(!_0x578638)return[];const _0x9eed10=[_0x353575['name'],...splitAliases(_0x353575['aliases'])][_0x226d70(0x25b)](normalize);if(_0x9eed10['includes'](normalize(_0x578638)))return[];if(canonicalProductKey(_0x578638)===canonicalProductKey(_0x353575[_0x226d70(0x1c1)]))return[_0x578638];return[];}
|
package/build/lib/sorter.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';const _0x2af2c7=_0x40fa;(function(_0x346f8e,_0x4fbb36){const _0xccde0f=_0x40fa,_0x2f85a9=_0x346f8e();while(!![]){try{const _0x1a675a=-parseInt(_0xccde0f(0x1e4))/0x1*(-parseInt(_0xccde0f(0x1c7))/0x2)+-parseInt(_0xccde0f(0x1e6))/0x3*(parseInt(_0xccde0f(0x1b8))/0x4)+parseInt(_0xccde0f(0x1c5))/0x5+-parseInt(_0xccde0f(0x1c8))/0x6+-parseInt(_0xccde0f(0x1d0))/0x7*(-parseInt(_0xccde0f(0x1d5))/0x8)+parseInt(_0xccde0f(0x1e1))/0x9+-parseInt(_0xccde0f(0x1ee))/0xa;if(_0x1a675a===_0x4fbb36)break;else _0x2f85a9['push'](_0x2f85a9['shift']());}catch(_0x515299){_0x2f85a9['push'](_0x2f85a9['shift']());}}}(_0x29ea,0xd5258));Object[_0x2af2c7(0x1b3)](exports,'__esModule',{'value':!![]}),exports['toTimestamp']=toTimestamp,exports[_0x2af2c7(0x1d6)]=activeItems,exports[_0x2af2c7(0x1e8)]=activeIdSignature,exports[_0x2af2c7(0x1e0)]=sortSlotsOldestFirst,exports['buildDesiredItems']=buildDesiredItems,exports[_0x2af2c7(0x1c6)]=createSortPlan,exports[_0x2af2c7(0x1cd)]=collectUnknownItems,exports[_0x2af2c7(0x1dd)]=mergeUnknownProducts,exports['mergeReviewQueue']=mergeReviewQueue,exports[_0x2af2c7(0x1dc)]=applyReviewActions,exports[_0x2af2c7(0x1f1)]=makePreviewText;const parser_1=require('./parser');function toTimestamp(_0x4f4196){const _0x27a4c2=_0x2af2c7;if(typeof _0x4f4196==='number'&&Number[_0x27a4c2(0x1cc)](_0x4f4196))return _0x4f4196;if(typeof _0x4f4196===_0x27a4c2(0x1ca)&&_0x4f4196[_0x27a4c2(0x1b7)]()){const _0x58f55d=Number(_0x4f4196);if(Number[_0x27a4c2(0x1cc)](_0x58f55d))return _0x58f55d;const _0x4b5235=Date['parse'](_0x4f4196);if(Number[_0x27a4c2(0x1cc)](_0x4b5235))return _0x4b5235;}return 0x0;}function marketOrder(_0x1db925,_0x46b345){const _0x40423f=_0x2af2c7,_0x33555f=_0x1db925[_0x40423f(0x1bb)](_0x100bca=>(0x0,parser_1['normalize'])(_0x100bca[_0x40423f(0x1cf)])===(0x0,parser_1['normalize'])(_0x46b345));return Number[_0x40423f(0x1cc)](Number(_0x33555f?.['order']))?Number(_0x33555f?.['order']):0x270f;}function categoryOrder(_0x39f130,_0x171e5,_0x5c0260){const _0x1f7a52=_0x2af2c7,_0x162323=_0x39f130['filter'](_0x5ef510=>(0x0,parser_1['normalize'])(_0x5ef510[_0x1f7a52(0x1c1)])===(0x0,parser_1[_0x1f7a52(0x1b5)])(_0x171e5)),_0x1112f1=_0x162323['findIndex'](_0x9bc66=>(0x0,parser_1['normalize'])(_0x9bc66['category'])===(0x0,parser_1[_0x1f7a52(0x1b5)])(_0x5c0260));if(_0x1112f1>=0x0)return(_0x1112f1+0x1)*0xa;const _0x203ad4=_0x39f130['find'](_0x1d60b8=>(0x0,parser_1[_0x1f7a52(0x1b5)])(_0x1d60b8[_0x1f7a52(0x1c1)])===(0x0,parser_1[_0x1f7a52(0x1b5)])(_0x171e5)&&(0x0,parser_1['normalize'])(_0x1d60b8['category'])===(0x0,parser_1[_0x1f7a52(0x1b5)])(_0x5c0260));return Number[_0x1f7a52(0x1cc)](Number(_0x203ad4?.[_0x1f7a52(0x1f0)]))?Number(_0x203ad4?.['order']):0x270f;}function activeItems(_0x218f49){const _0x3ecf1e=_0x2af2c7;return _0x218f49[_0x3ecf1e(0x1de)](_0x32eca9=>_0x32eca9&&_0x32eca9[_0x3ecf1e(0x1c2)]===![]&&Boolean(_0x32eca9['id'])&&Boolean(String(_0x32eca9[_0x3ecf1e(0x1e3)]||'')[_0x3ecf1e(0x1b7)]()));}function _0x40fa(_0x373cd8,_0x6d7d8e){_0x373cd8=_0x373cd8-0x1b2;const _0x29eafb=_0x29ea();let _0x40fac9=_0x29eafb[_0x373cd8];return _0x40fac9;}function _0x29ea(){const _0x1d0d7f=['Sonstiges','parsed','defaultMarket','167608NccSfy','activeItems','Änderungen:\x20','firstSeen','has','map','canonicalProductKey','applyReviewActions','mergeUnknownProducts','filter','push','sortSlotsOldestFirst','14234760nKbuoY','key','value','61UhHKTl','localeCompare','6JFvKFZ','createdDateTime','activeIdSignature','split','Aktive\x20Plätze:\x20','length','product','base','22294930owatfv','guessedCategory','order','makePreviewText','join','defineProperty','sort','normalize','productName','trim','2569352OGrLOX','findProduct','marketOrder','find','parseItem','add','category','aliases','accept','market','completed','flatMap','padStart','8694955YMyWHb','createSortPlan','46340KVrZoG','3337764AFmBle','\x20/\x20','string','categoryOrder','isFinite','collectUnknownItems','changed','name','70qeptjg','ambiguousMarketSuffix'];_0x29ea=function(){return _0x1d0d7f;};return _0x29ea();}function activeIdSignature(_0x1b0228){const _0x1f3d40=_0x2af2c7;return activeItems(_0x1b0228)[_0x1f3d40(0x1da)](_0x41a79e=>String(_0x41a79e['id']))[_0x1f3d40(0x1b4)]()['join']('|');}function sortSlotsOldestFirst(_0x91466e){const _0x4a7c9b=_0x2af2c7;return[..._0x91466e][_0x4a7c9b(0x1b4)]((_0x1c02df,_0x4b5635)=>{const _0x2bea9f=_0x4a7c9b,_0x5ef8f5=toTimestamp(_0x1c02df[_0x2bea9f(0x1e7)]),_0x4f8775=toTimestamp(_0x4b5635[_0x2bea9f(0x1e7)]);if(_0x5ef8f5!==_0x4f8775)return _0x5ef8f5-_0x4f8775;return String(_0x1c02df['id'])['localeCompare'](String(_0x4b5635['id']));});}function buildDesiredItems(_0x2dc0a3,_0x6b9970,_0x38de50,_0x4fb531,_0x38b093,_0x395724=''){const _0x12c2f7=_0x2af2c7;return _0x2dc0a3[_0x12c2f7(0x1da)](_0x2e9e82=>{const _0x25077b=_0x12c2f7,_0x5ce9bf=(0x0,parser_1[_0x25077b(0x1bc)])(String(_0x2e9e82['value']),_0x6b9970,_0x4fb531,_0x38b093,_0x395724);return{'source':_0x2e9e82,'parsed':_0x5ce9bf,'marketOrder':marketOrder(_0x6b9970,_0x5ce9bf['market']),'categoryOrder':categoryOrder(_0x38de50,_0x5ce9bf[_0x25077b(0x1c1)],_0x5ce9bf[_0x25077b(0x1be)])};})['sort']((_0x4cb34f,_0x4c4307)=>{const _0xfddb41=_0x12c2f7;if(_0x4cb34f['marketOrder']!==_0x4c4307[_0xfddb41(0x1ba)])return _0x4cb34f[_0xfddb41(0x1ba)]-_0x4c4307['marketOrder'];if(_0x4cb34f['categoryOrder']!==_0x4c4307['categoryOrder'])return _0x4cb34f['categoryOrder']-_0x4c4307[_0xfddb41(0x1cb)];const _0x179482=_0x4cb34f['parsed'][_0xfddb41(0x1be)][_0xfddb41(0x1e5)](_0x4c4307['parsed']['category'],'de',{'sensitivity':_0xfddb41(0x1ed)});if(_0x179482!==0x0&&_0x4cb34f[_0xfddb41(0x1cb)]===0x270f&&_0x4c4307['categoryOrder']===0x270f)return _0x179482;return _0x4cb34f['parsed']['productName'][_0xfddb41(0x1e5)](_0x4c4307[_0xfddb41(0x1d3)][_0xfddb41(0x1b6)],'de',{'sensitivity':'base'});});}function createSortPlan(_0x39d8e2,_0x8c94df,_0x45fd35,_0x1e6ec4,_0x28019a,_0x220a84=''){const _0x1c31ef=_0x2af2c7,_0x12c0e8=activeItems(_0x39d8e2),_0x5ba463=sortSlotsOldestFirst(_0x12c0e8),_0x568676=buildDesiredItems(_0x12c0e8,_0x8c94df,_0x45fd35,_0x1e6ec4,_0x28019a,_0x220a84);return _0x5ba463[_0x1c31ef(0x1da)]((_0x3d0496,_0x489aeb)=>{const _0x1ebcfc=_0x1c31ef,_0x77c090=_0x568676[_0x489aeb],_0x1cbf0e=String(_0x3d0496[_0x1ebcfc(0x1e3)])[_0x1ebcfc(0x1b7)](),_0x7bd442=_0x77c090?.['parsed']['originalText']||_0x1cbf0e;return{'position':_0x489aeb+0x1,'id':String(_0x3d0496['id']),'createdDateTime':toTimestamp(_0x3d0496[_0x1ebcfc(0x1e7)]),'from':_0x1cbf0e,'to':_0x7bd442,'market':_0x77c090?.[_0x1ebcfc(0x1d3)][_0x1ebcfc(0x1c1)]||_0x28019a,'category':_0x77c090?.['parsed']['category']||_0x1ebcfc(0x1d2),'product':_0x77c090?.['parsed']['productName']||_0x7bd442,'changed':_0x1cbf0e!==_0x7bd442};});}function collectUnknownItems(_0xddd125,_0x18ffee,_0x1d0639,_0x5cecb8,_0x237051=''){const _0x43d07a=_0x2af2c7,_0x39198c=new Set(),_0x24e470=[];for(const _0x17cfe0 of activeItems(_0xddd125)){const _0x314c4e=(0x0,parser_1['parseItem'])(String(_0x17cfe0['value']),_0x18ffee,_0x1d0639,_0x5cecb8,_0x237051);if(_0x314c4e['knownProduct'])continue;const _0x4f3a97=(0x0,parser_1[_0x43d07a(0x1db)])(_0x314c4e['productName'])||(0x0,parser_1['normalize'])(_0x314c4e['productName']);if(!_0x4f3a97||_0x39198c['has'](_0x4f3a97))continue;_0x39198c[_0x43d07a(0x1bd)](_0x4f3a97),_0x24e470[_0x43d07a(0x1df)]({'key':_0x4f3a97,'text':_0x314c4e['originalText'],'product':_0x314c4e[_0x43d07a(0x1b6)],'market':_0x314c4e['market'],'guessedCategory':_0x314c4e['category'],'ambiguousMarketSuffix':_0x314c4e[_0x43d07a(0x1d1)]});}return _0x24e470;}function mergeUnknownProducts(_0x6b7380,_0x33bba2,_0x1aa2ab,_0x22c843,_0x5c76aa=''){const _0x6e7dda=_0x2af2c7,_0x548ae9=_0x1aa2ab[_0x6e7dda(0x1da)](_0x5873e1=>({..._0x5873e1})),_0x224900=[],_0x3383f0=new Set(_0x548ae9[_0x6e7dda(0x1c3)](_0x137860=>[_0x137860[_0x6e7dda(0x1cf)],...String(_0x137860['aliases']||'')[_0x6e7dda(0x1e9)](/[;,]/)])['map'](parser_1[_0x6e7dda(0x1db)])['filter'](Boolean)),_0x1e3d46=collectUnknownItems(_0x6b7380,_0x33bba2,_0x548ae9,_0x22c843,_0x5c76aa);for(const _0x41a7e7 of _0x1e3d46){const _0x4b5f96=String(_0x41a7e7[_0x6e7dda(0x1ec)]||'')[_0x6e7dda(0x1b7)](),_0x26ddf5=(0x0,parser_1['canonicalProductKey'])(_0x4b5f96);if(!_0x26ddf5||_0x3383f0[_0x6e7dda(0x1d9)](_0x26ddf5))continue;if(_0x41a7e7[_0x6e7dda(0x1d1)])continue;const _0x3f96bf=(0x0,parser_1[_0x6e7dda(0x1b9)])(_0x4b5f96,_0x548ae9);if(_0x3f96bf)continue;const _0x16f040={'name':_0x4b5f96,'aliases':'','category':_0x41a7e7['guessedCategory']||_0x6e7dda(0x1d2),'defaultMarket':'','availableMarkets':''};_0x548ae9[_0x6e7dda(0x1df)](_0x16f040),_0x224900['push'](_0x16f040),_0x3383f0['add'](_0x26ddf5);}return{'products':_0x548ae9,'learned':_0x224900};}function mergeReviewQueue(_0x512bfe,_0x1f0bef,_0x2c045d=new Date()['toISOString']()){const _0x333ccb=_0x2af2c7,_0xeab3b3=new Map(_0x512bfe['map'](_0x24692d=>[_0x24692d[_0x333ccb(0x1e2)],{..._0x24692d}]));for(const _0x3c57d2 of _0x1f0bef){const _0x11c161=_0xeab3b3['get'](_0x3c57d2['key']);if(_0x11c161?.['action']==='ignore'){_0x11c161['lastSeen']=_0x2c045d,_0xeab3b3['set'](_0x3c57d2[_0x333ccb(0x1e2)],_0x11c161);continue;}_0xeab3b3['set'](_0x3c57d2[_0x333ccb(0x1e2)],{'key':_0x3c57d2[_0x333ccb(0x1e2)],'text':_0x3c57d2['text'],'product':_0x11c161?.[_0x333ccb(0x1ec)]||_0x3c57d2[_0x333ccb(0x1ec)],'guessedCategory':_0x3c57d2[_0x333ccb(0x1ef)],'market':_0x3c57d2[_0x333ccb(0x1c1)],'category':_0x11c161?.['category']||_0x3c57d2[_0x333ccb(0x1ef)],'defaultMarket':_0x11c161?.[_0x333ccb(0x1d4)]||'','aliases':_0x11c161?.['aliases']||'','action':_0x11c161?.['action']||'pending','firstSeen':_0x11c161?.[_0x333ccb(0x1d8)]||_0x2c045d,'lastSeen':_0x2c045d});}return[..._0xeab3b3['values']()][_0x333ccb(0x1b4)]((_0x200404,_0x2613d0)=>_0x200404[_0x333ccb(0x1ec)][_0x333ccb(0x1e5)](_0x2613d0['product'],'de',{'sensitivity':_0x333ccb(0x1ed)}));}function applyReviewActions(_0x36c70e,_0x326df7){const _0x5c0770=_0x2af2c7,_0x232151=_0x36c70e['map'](_0x42c805=>({..._0x42c805})),_0x598141=[],_0x15ac7a=[];for(const _0x4cfd84 of _0x326df7){if(_0x4cfd84['action']!==_0x5c0770(0x1c0)){_0x15ac7a[_0x5c0770(0x1df)]({..._0x4cfd84});continue;}const _0x2ab096=String(_0x4cfd84['product']||'')['trim']();if(!_0x2ab096)continue;const _0x379449=(0x0,parser_1[_0x5c0770(0x1b9)])(_0x2ab096,_0x232151);if(_0x379449){if(_0x4cfd84[_0x5c0770(0x1be)])_0x379449[_0x5c0770(0x1be)]=_0x4cfd84[_0x5c0770(0x1be)];if(_0x4cfd84[_0x5c0770(0x1d4)]!==undefined)_0x379449[_0x5c0770(0x1d4)]=_0x4cfd84[_0x5c0770(0x1d4)];if(_0x4cfd84['aliases']){const _0xdb3469=new Set(String(_0x379449['aliases']||'')[_0x5c0770(0x1e9)](/[;,]/)[_0x5c0770(0x1da)](_0x4a28dc=>_0x4a28dc[_0x5c0770(0x1b7)]())['filter'](Boolean));for(const _0x58a666 of _0x4cfd84[_0x5c0770(0x1bf)]['split'](/[;,]/)['map'](_0x49c931=>_0x49c931[_0x5c0770(0x1b7)]())[_0x5c0770(0x1de)](Boolean))_0xdb3469['add'](_0x58a666);_0x379449[_0x5c0770(0x1bf)]=[..._0xdb3469][_0x5c0770(0x1b2)](',');}_0x598141[_0x5c0770(0x1df)]({..._0x379449});continue;}const _0x578805={'name':_0x2ab096,'aliases':String(_0x4cfd84['aliases']||''),'category':String(_0x4cfd84[_0x5c0770(0x1be)]||_0x4cfd84['guessedCategory']||_0x5c0770(0x1d2)),'defaultMarket':String(_0x4cfd84[_0x5c0770(0x1d4)]||''),'availableMarkets':''};_0x232151[_0x5c0770(0x1df)](_0x578805),_0x598141[_0x5c0770(0x1df)](_0x578805);}return{'products':_0x232151[_0x5c0770(0x1b4)]((_0x1053fd,_0x40555d)=>_0x1053fd['name'][_0x5c0770(0x1e5)](_0x40555d['name'],'de',{'sensitivity':_0x5c0770(0x1ed)})),'remainingReviews':_0x15ac7a,'accepted':_0x598141};}function makePreviewText(_0x352b8e,_0x554a2d){const _0x771817=_0x2af2c7,_0x3b0e3e=['Liste:\x20'+_0x352b8e,_0x771817(0x1ea)+_0x554a2d[_0x771817(0x1eb)],_0x771817(0x1d7)+_0x554a2d[_0x771817(0x1de)](_0x4ac6cb=>_0x4ac6cb['changed'])['length']];for(const _0x214dcd of _0x554a2d){const _0x3cf1eb=_0x214dcd[_0x771817(0x1ce)]?'→':'=';_0x3b0e3e[_0x771817(0x1df)](String(_0x214dcd['position'])[_0x771817(0x1c4)](0x2,'0')+'.\x20'+_0x214dcd['from']+'\x20'+_0x3cf1eb+'\x20'+_0x214dcd['to']+'\x20['+_0x214dcd[_0x771817(0x1c1)]+_0x771817(0x1c9)+_0x214dcd['category']+']');}return _0x3b0e3e[_0x771817(0x1b2)]('\x0a');}
|
|
1
|
+
'use strict';const _0x1f051b=_0x1812;(function(_0x22ddcb,_0x4e5d32){const _0x3d3668=_0x1812,_0x201753=_0x22ddcb();while(!![]){try{const _0x40a66f=parseInt(_0x3d3668(0x1db))/0x1*(-parseInt(_0x3d3668(0x1a1))/0x2)+-parseInt(_0x3d3668(0x1aa))/0x3+parseInt(_0x3d3668(0x19b))/0x4*(-parseInt(_0x3d3668(0x1c2))/0x5)+-parseInt(_0x3d3668(0x1ba))/0x6*(parseInt(_0x3d3668(0x199))/0x7)+-parseInt(_0x3d3668(0x1b4))/0x8+parseInt(_0x3d3668(0x1a2))/0x9*(parseInt(_0x3d3668(0x1be))/0xa)+parseInt(_0x3d3668(0x1d8))/0xb;if(_0x40a66f===_0x4e5d32)break;else _0x201753['push'](_0x201753['shift']());}catch(_0x371742){_0x201753['push'](_0x201753['shift']());}}}(_0x4225,0xf018e));Object[_0x1f051b(0x1df)](exports,_0x1f051b(0x19d),{'value':!![]}),exports['toTimestamp']=toTimestamp,exports[_0x1f051b(0x1bf)]=activeItems,exports[_0x1f051b(0x1de)]=activeIdSignature,exports[_0x1f051b(0x1dd)]=sortSlotsOldestFirst,exports[_0x1f051b(0x1c1)]=buildDesiredItems,exports[_0x1f051b(0x1cd)]=createSortPlan,exports[_0x1f051b(0x19e)]=collectUnknownItems,exports[_0x1f051b(0x1c4)]=mergeUnknownProducts,exports[_0x1f051b(0x1d9)]=mergeReviewQueue,exports[_0x1f051b(0x1c7)]=applyReviewActions,exports['makePreviewText']=makePreviewText;const parser_1=require('./parser'),market_plan_1=require(_0x1f051b(0x1ae));function toTimestamp(_0x1b6767){const _0x5714cc=_0x1f051b;if(typeof _0x1b6767==='number'&&Number[_0x5714cc(0x1a8)](_0x1b6767))return _0x1b6767;if(typeof _0x1b6767===_0x5714cc(0x198)&&_0x1b6767[_0x5714cc(0x1e8)]()){const _0x559417=Number(_0x1b6767);if(Number['isFinite'](_0x559417))return _0x559417;const _0x1eed53=Date[_0x5714cc(0x1c5)](_0x1b6767);if(Number[_0x5714cc(0x1a8)](_0x1eed53))return _0x1eed53;}return 0x0;}function marketOrder(_0x4ed9cc,_0x3e44f4){const _0xecd282=_0x1f051b,_0x103fd7=_0x4ed9cc[_0xecd282(0x1ea)](_0x2215ff=>(0x0,parser_1['normalize'])(_0x2215ff[_0xecd282(0x1b3)])===(0x0,parser_1['normalize'])(_0x3e44f4));return Number[_0xecd282(0x1a8)](Number(_0x103fd7?.[_0xecd282(0x1ac)]))?Number(_0x103fd7?.[_0xecd282(0x1ac)]):0x270f;}function categoryOrder(_0x293240,_0x2803ce,_0x4e847e){const _0x1ce861=_0x1f051b,_0x26a69b=_0x293240['filter'](_0x20be3d=>(0x0,parser_1[_0x1ce861(0x1d4)])(_0x20be3d[_0x1ce861(0x1b5)])===(0x0,parser_1[_0x1ce861(0x1d4)])(_0x2803ce)),_0x349893=_0x26a69b[_0x1ce861(0x1b0)](_0x14956e=>(0x0,parser_1[_0x1ce861(0x1d4)])(_0x14956e[_0x1ce861(0x1bb)])===(0x0,parser_1[_0x1ce861(0x1d4)])(_0x4e847e));if(_0x349893>=0x0)return(_0x349893+0x1)*0xa;const _0x12a4bd=_0x293240['find'](_0x3cc5d8=>(0x0,parser_1[_0x1ce861(0x1d4)])(_0x3cc5d8[_0x1ce861(0x1b5)])===(0x0,parser_1['normalize'])(_0x2803ce)&&(0x0,parser_1[_0x1ce861(0x1d4)])(_0x3cc5d8[_0x1ce861(0x1bb)])===(0x0,parser_1['normalize'])(_0x4e847e));return Number[_0x1ce861(0x1a8)](Number(_0x12a4bd?.['order']))?Number(_0x12a4bd?.[_0x1ce861(0x1ac)]):0x270f;}function activeItems(_0x2fe705){const _0x5daeea=_0x1f051b;return _0x2fe705[_0x5daeea(0x1c8)](_0x2d3a71=>_0x2d3a71&&_0x2d3a71[_0x5daeea(0x1e6)]===![]&&Boolean(_0x2d3a71['id'])&&Boolean(String(_0x2d3a71[_0x5daeea(0x1e4)]||'')['trim']()));}function activeIdSignature(_0x17d72a){const _0x1593fe=_0x1f051b;return activeItems(_0x17d72a)[_0x1593fe(0x1d7)](_0x19384a=>String(_0x19384a['id']))[_0x1593fe(0x1b1)]()['join']('|');}function _0x1812(_0x2019e4,_0x479394){_0x2019e4=_0x2019e4-0x197;const _0x4225b0=_0x4225();let _0x1812ea=_0x4225b0[_0x2019e4];return _0x1812ea;}function sortSlotsOldestFirst(_0x27c6ba){return[..._0x27c6ba]['sort']((_0x11ed6a,_0x168f27)=>{const _0x5a7a6c=_0x1812,_0x28d2c4=toTimestamp(_0x11ed6a['createdDateTime']),_0x2a9288=toTimestamp(_0x168f27[_0x5a7a6c(0x1c0)]);if(_0x28d2c4!==_0x2a9288)return _0x28d2c4-_0x2a9288;return String(_0x11ed6a['id'])[_0x5a7a6c(0x1d2)](String(_0x168f27['id']));});}function buildDesiredItems(_0x4f6be4,_0x44bd18,_0x2d801d,_0x7c2af0,_0x4bb7cb,_0x7b109='',_0x155d75=0x1){const _0x1093cc=_0x1f051b;return(0x0,market_plan_1[_0x1093cc(0x1af)])(_0x4f6be4,_0x44bd18,_0x7c2af0,_0x4bb7cb,_0x7b109,_0x155d75)[_0x1093cc(0x1d7)](({source:_0x5b0812,parsed:_0x171d54})=>{const _0x6d128=_0x1093cc;return{'source':_0x5b0812,'parsed':_0x171d54,'marketOrder':marketOrder(_0x44bd18,_0x171d54[_0x6d128(0x1b5)]),'categoryOrder':categoryOrder(_0x2d801d,_0x171d54[_0x6d128(0x1b5)],_0x171d54['category'])};})['sort']((_0x289ec1,_0x511c2d)=>{const _0x3dbb48=_0x1093cc;if(_0x289ec1[_0x3dbb48(0x1da)]!==_0x511c2d['marketOrder'])return _0x289ec1['marketOrder']-_0x511c2d['marketOrder'];if(_0x289ec1[_0x3dbb48(0x1cb)]!==_0x511c2d[_0x3dbb48(0x1cb)])return _0x289ec1[_0x3dbb48(0x1cb)]-_0x511c2d['categoryOrder'];const _0x54451d=_0x289ec1['parsed']['category'][_0x3dbb48(0x1d2)](_0x511c2d[_0x3dbb48(0x1ca)]['category'],'de',{'sensitivity':_0x3dbb48(0x1ad)});if(_0x54451d!==0x0&&_0x289ec1[_0x3dbb48(0x1cb)]===0x270f&&_0x511c2d[_0x3dbb48(0x1cb)]===0x270f)return _0x54451d;return _0x289ec1[_0x3dbb48(0x1ca)]['productName'][_0x3dbb48(0x1d2)](_0x511c2d[_0x3dbb48(0x1ca)][_0x3dbb48(0x1c9)],'de',{'sensitivity':'base'});});}function createSortPlan(_0x4aab9a,_0x73b940,_0x3df45c,_0xeaaef,_0x9f61b6,_0x4df2b3='',_0x13b4ec=0x1,_0x231c81=![]){const _0x34f49a=_0x1f051b,_0xcaaa8f=activeItems(_0x4aab9a),_0x37bd82=_0xcaaa8f[_0x34f49a(0x1c8)](_0x590947=>!(0x0,market_plan_1[_0x34f49a(0x1b6)])(String(_0x590947[_0x34f49a(0x1e4)]),_0x73b940)),_0x434447=sortSlotsOldestFirst(_0xcaaa8f),_0x365387=buildDesiredItems(_0x37bd82,_0x73b940,_0x3df45c,_0xeaaef,_0x9f61b6,_0x4df2b3,_0x13b4ec),_0x3c1184=[];let _0x500e1f='';for(const _0x3045ec of _0x365387){const _0x17ea7b=_0x3045ec[_0x34f49a(0x1ca)][_0x34f49a(0x1b5)];if(_0x231c81&&(0x0,parser_1['normalize'])(_0x17ea7b)!==(0x0,parser_1['normalize'])(_0x9f61b6)&&(0x0,parser_1['normalize'])(_0x17ea7b)!==(0x0,parser_1['normalize'])(_0x500e1f)){const _0x24e427=(0x0,market_plan_1[_0x34f49a(0x19a)])(_0x17ea7b);_0x3c1184['push']({'text':_0x24e427,'market':_0x17ea7b,'category':'','product':_0x24e427});}_0x3c1184[_0x34f49a(0x1e5)]({'text':_0x3045ec[_0x34f49a(0x1ca)][_0x34f49a(0x1b9)],'market':_0x17ea7b,'category':_0x3045ec[_0x34f49a(0x1ca)]['category'],'product':_0x3045ec[_0x34f49a(0x1ca)][_0x34f49a(0x1c9)]}),_0x500e1f=_0x17ea7b;}if(_0x3c1184[_0x34f49a(0x1e7)]!==_0x434447[_0x34f49a(0x1e7)])return _0x434447['map']((_0x5b9ced,_0x2f0083)=>{const _0x57a517=_0x34f49a,_0x4f0bae=String(_0x5b9ced['value'])[_0x57a517(0x1e8)]();return{'position':_0x2f0083+0x1,'id':String(_0x5b9ced['id']),'createdDateTime':toTimestamp(_0x5b9ced['createdDateTime']),'from':_0x4f0bae,'to':_0x4f0bae,'market':_0x9f61b6,'category':'','product':_0x4f0bae,'changed':![]};});return _0x434447['map']((_0x51ca67,_0x43316b)=>{const _0x9cfeb1=_0x34f49a,_0x5ce3bd=_0x3c1184[_0x43316b],_0x12f39f=String(_0x51ca67[_0x9cfeb1(0x1e4)])[_0x9cfeb1(0x1e8)](),_0x506bcf=_0x5ce3bd?.[_0x9cfeb1(0x1cc)]||_0x12f39f;return{'position':_0x43316b+0x1,'id':String(_0x51ca67['id']),'createdDateTime':toTimestamp(_0x51ca67[_0x9cfeb1(0x1c0)]),'from':_0x12f39f,'to':_0x506bcf,'market':_0x5ce3bd?.[_0x9cfeb1(0x1b5)]||_0x9f61b6,'category':_0x5ce3bd?.['category']||'','product':_0x5ce3bd?.[_0x9cfeb1(0x1d6)]||_0x506bcf,'changed':_0x12f39f!==_0x506bcf};});}function collectUnknownItems(_0x3b6193,_0x238af4,_0x3661c5,_0x467285,_0x291430=''){const _0x3cc316=_0x1f051b,_0x3cf8e5=new Set(),_0xabf5bd=[];for(const _0x24a1e7 of activeItems(_0x3b6193)){if((0x0,market_plan_1[_0x3cc316(0x1b6)])(String(_0x24a1e7[_0x3cc316(0x1e4)]),_0x238af4))continue;const _0x5e7f3a=(0x0,parser_1[_0x3cc316(0x1ce)])(String(_0x24a1e7[_0x3cc316(0x1e4)]),_0x238af4,_0x3661c5,_0x467285,_0x291430);if(_0x5e7f3a[_0x3cc316(0x1b2)])continue;const _0xc88cda=(0x0,parser_1[_0x3cc316(0x1d3)])(_0x5e7f3a[_0x3cc316(0x1c9)])||(0x0,parser_1[_0x3cc316(0x1d4)])(_0x5e7f3a['productName']);if(!_0xc88cda||_0x3cf8e5['has'](_0xc88cda))continue;_0x3cf8e5['add'](_0xc88cda),_0xabf5bd[_0x3cc316(0x1e5)]({'key':_0xc88cda,'text':_0x5e7f3a[_0x3cc316(0x1b9)],'product':_0x5e7f3a['productName'],'market':_0x5e7f3a[_0x3cc316(0x1b5)],'guessedCategory':_0x5e7f3a[_0x3cc316(0x1bb)],'ambiguousMarketSuffix':_0x5e7f3a['ambiguousMarketSuffix']});}return _0xabf5bd;}function mergeUnknownProducts(_0x371b4e,_0x172f22,_0x781718,_0x9c372e,_0x506847=''){const _0xb9c436=_0x1f051b,_0x291039=_0x781718[_0xb9c436(0x1d7)](_0x15ef70=>({..._0x15ef70})),_0xbf5bda=[],_0x14c59f=new Set(_0x291039[_0xb9c436(0x1a5)](_0x3b0b98=>[_0x3b0b98['name'],...String(_0x3b0b98[_0xb9c436(0x1d0)]||'')['split'](/[;,]/)])[_0xb9c436(0x1d7)](parser_1['canonicalProductKey'])[_0xb9c436(0x1c8)](Boolean)),_0x1fa02f=collectUnknownItems(_0x371b4e,_0x172f22,_0x291039,_0x9c372e,_0x506847);for(const _0x415645 of _0x1fa02f){const _0x52e4a8=String(_0x415645[_0xb9c436(0x1d6)]||'')['trim'](),_0x5b7a8a=(0x0,parser_1[_0xb9c436(0x1d3)])(_0x52e4a8);if(!_0x5b7a8a||_0x14c59f[_0xb9c436(0x1a4)](_0x5b7a8a))continue;if(_0x415645[_0xb9c436(0x1dc)])continue;const _0x2a0460=(0x0,parser_1['findProduct'])(_0x52e4a8,_0x291039);if(_0x2a0460)continue;const _0xb68131={'name':_0x52e4a8,'aliases':'','category':_0x415645[_0xb9c436(0x1e1)]||'Sonstiges','defaultMarket':'','availableMarkets':''};_0x291039[_0xb9c436(0x1e5)](_0xb68131),_0xbf5bda[_0xb9c436(0x1e5)](_0xb68131),_0x14c59f[_0xb9c436(0x1a6)](_0x5b7a8a);}return{'products':_0x291039,'learned':_0xbf5bda};}function mergeReviewQueue(_0x59f3e8,_0x4a5154,_0x3a8e1d=new Date()['toISOString']()){const _0x1d600e=_0x1f051b,_0x1dbcca=new Map(_0x59f3e8[_0x1d600e(0x1d7)](_0xb13a68=>[_0xb13a68['key'],{..._0xb13a68}]));for(const _0x4ea866 of _0x4a5154){const _0x34aa01=_0x1dbcca[_0x1d600e(0x197)](_0x4ea866['key']);if(_0x34aa01?.[_0x1d600e(0x19c)]==='ignore'){_0x34aa01[_0x1d600e(0x1e9)]=_0x3a8e1d,_0x1dbcca[_0x1d600e(0x1e0)](_0x4ea866[_0x1d600e(0x1c6)],_0x34aa01);continue;}_0x1dbcca['set'](_0x4ea866[_0x1d600e(0x1c6)],{'key':_0x4ea866['key'],'text':_0x4ea866[_0x1d600e(0x1cc)],'product':_0x34aa01?.[_0x1d600e(0x1d6)]||_0x4ea866[_0x1d600e(0x1d6)],'guessedCategory':_0x4ea866[_0x1d600e(0x1e1)],'market':_0x4ea866['market'],'category':_0x34aa01?.['category']||_0x4ea866[_0x1d600e(0x1e1)],'defaultMarket':_0x34aa01?.[_0x1d600e(0x1b8)]||'','aliases':_0x34aa01?.[_0x1d600e(0x1d0)]||'','action':_0x34aa01?.[_0x1d600e(0x19c)]||'pending','firstSeen':_0x34aa01?.[_0x1d600e(0x1c3)]||_0x3a8e1d,'lastSeen':_0x3a8e1d});}return[..._0x1dbcca[_0x1d600e(0x1a0)]()][_0x1d600e(0x1b1)]((_0x198555,_0x267707)=>_0x198555[_0x1d600e(0x1d6)][_0x1d600e(0x1d2)](_0x267707[_0x1d600e(0x1d6)],'de',{'sensitivity':'base'}));}function applyReviewActions(_0xb2998a,_0x2bd631){const _0x1906ef=_0x1f051b,_0x182e84=_0xb2998a[_0x1906ef(0x1d7)](_0x230d0d=>({..._0x230d0d})),_0x400979=[],_0x1f8a29=[];for(const _0x15394a of _0x2bd631){if(_0x15394a[_0x1906ef(0x19c)]!==_0x1906ef(0x1bd)){_0x1f8a29[_0x1906ef(0x1e5)]({..._0x15394a});continue;}const _0x4a6a9f=String(_0x15394a['product']||'')['trim']();if(!_0x4a6a9f)continue;const _0x4bfb84=(0x0,parser_1[_0x1906ef(0x1b7)])(_0x4a6a9f,_0x182e84);if(_0x4bfb84){if(_0x15394a[_0x1906ef(0x1bb)])_0x4bfb84[_0x1906ef(0x1bb)]=_0x15394a[_0x1906ef(0x1bb)];if(_0x15394a['defaultMarket']!==undefined)_0x4bfb84[_0x1906ef(0x1b8)]=_0x15394a['defaultMarket'];if(_0x15394a[_0x1906ef(0x1d0)]){const _0xea75cc=new Set(String(_0x4bfb84['aliases']||'')[_0x1906ef(0x19f)](/[;,]/)[_0x1906ef(0x1d7)](_0x35bb43=>_0x35bb43[_0x1906ef(0x1e8)]())[_0x1906ef(0x1c8)](Boolean));for(const _0x1630d5 of _0x15394a['aliases']['split'](/[;,]/)[_0x1906ef(0x1d7)](_0x48dad6=>_0x48dad6['trim']())[_0x1906ef(0x1c8)](Boolean))_0xea75cc[_0x1906ef(0x1a6)](_0x1630d5);_0x4bfb84[_0x1906ef(0x1d0)]=[..._0xea75cc][_0x1906ef(0x1bc)](',');}_0x400979[_0x1906ef(0x1e5)]({..._0x4bfb84});continue;}const _0x4e801f={'name':_0x4a6a9f,'aliases':String(_0x15394a[_0x1906ef(0x1d0)]||''),'category':String(_0x15394a['category']||_0x15394a['guessedCategory']||_0x1906ef(0x1a7)),'defaultMarket':String(_0x15394a['defaultMarket']||''),'availableMarkets':''};_0x182e84[_0x1906ef(0x1e5)](_0x4e801f),_0x400979['push'](_0x4e801f);}return{'products':_0x182e84['sort']((_0xcddbc,_0x52289d)=>_0xcddbc[_0x1906ef(0x1b3)][_0x1906ef(0x1d2)](_0x52289d['name'],'de',{'sensitivity':_0x1906ef(0x1ad)})),'remainingReviews':_0x1f8a29,'accepted':_0x400979};}function makePreviewText(_0x2e89b3,_0x33faeb){const _0x1f3793=_0x1f051b,_0x44b6ec=[_0x1f3793(0x1d5)+_0x2e89b3,_0x1f3793(0x1a9)+_0x33faeb['length'],_0x1f3793(0x1cf)+_0x33faeb[_0x1f3793(0x1c8)](_0x53acd0=>_0x53acd0['changed'])['length']];for(const _0x266e32 of _0x33faeb){const _0x8973c1=_0x266e32[_0x1f3793(0x1a3)]?'→':'=';_0x44b6ec[_0x1f3793(0x1e5)](String(_0x266e32[_0x1f3793(0x1e2)])[_0x1f3793(0x1d1)](0x2,'0')+'.\x20'+_0x266e32[_0x1f3793(0x1ab)]+'\x20'+_0x8973c1+'\x20'+_0x266e32['to']+'\x20['+_0x266e32[_0x1f3793(0x1b5)]+_0x1f3793(0x1e3)+_0x266e32[_0x1f3793(0x1bb)]+']');}return _0x44b6ec[_0x1f3793(0x1bc)]('\x0a');}function _0x4225(){const _0x192462=['sortSlotsOldestFirst','activeIdSignature','defineProperty','set','guessedCategory','position','\x20/\x20','value','push','completed','length','trim','lastSeen','find','get','string','133Utlemz','formatMarketHeader','28216JFynSp','action','__esModule','collectUnknownItems','split','values','2516792xhCJAS','54ftbVJW','changed','has','flatMap','add','Sonstiges','isFinite','Aktive\x20Plätze:\x20','3916788GWsTuA','from','order','base','./market-plan','optimizeMarketAssignments','findIndex','sort','knownProduct','name','12469480IciQQm','market','isMarketHeader','findProduct','defaultMarket','originalText','429678fsHORL','category','join','accept','1253230VEtdlP','activeItems','createdDateTime','buildDesiredItems','1055MOckjX','firstSeen','mergeUnknownProducts','parse','key','applyReviewActions','filter','productName','parsed','categoryOrder','text','createSortPlan','parseItem','Änderungen:\x20','aliases','padStart','localeCompare','canonicalProductKey','normalize','Liste:\x20','product','map','79235398AuEmEF','mergeReviewQueue','marketOrder','1wxmNmG','ambiguousMarketSuffix'];_0x4225=function(){return _0x192462;};return _0x4225();}
|
package/build/lib/statistics.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';const
|
|
1
|
+
'use strict';const _0x2647f0=_0x2d6d;(function(_0x53318e,_0x2f6eb1){const _0x2fe7b0=_0x2d6d,_0x1ffa69=_0x53318e();while(!![]){try{const _0x56bdeb=parseInt(_0x2fe7b0(0x1b6))/0x1+-parseInt(_0x2fe7b0(0x1bb))/0x2*(parseInt(_0x2fe7b0(0x1c5))/0x3)+-parseInt(_0x2fe7b0(0x1b4))/0x4*(parseInt(_0x2fe7b0(0x1af))/0x5)+-parseInt(_0x2fe7b0(0x1c0))/0x6*(-parseInt(_0x2fe7b0(0x1ad))/0x7)+-parseInt(_0x2fe7b0(0x1c6))/0x8+-parseInt(_0x2fe7b0(0x1bf))/0x9+parseInt(_0x2fe7b0(0x1b1))/0xa;if(_0x56bdeb===_0x2f6eb1)break;else _0x1ffa69['push'](_0x1ffa69['shift']());}catch(_0x42e3da){_0x1ffa69['push'](_0x1ffa69['shift']());}}}(_0x436b,0xd3ea9));Object[_0x2647f0(0x1be)](exports,'__esModule',{'value':!![]}),exports['emptyUsageStatistics']=emptyUsageStatistics,exports['normalizeUsageStatistics']=normalizeUsageStatistics,exports['recordAddedItem']=recordAddedItem;function emptyUsageStatistics(_0xbecb53=new Date()){const _0x5aa3be=_0x2647f0,_0x14d57a=_0xbecb53[_0x5aa3be(0x1ae)]();return{'startedAt':_0x14d57a,'lastUpdated':_0x14d57a,'totalAddedItems':0x0,'byProduct':{},'byMarket':{},'byCategory':{},'byList':{},'automaticLearned':0x0,'reviewAccepted':0x0,'reviewIgnored':0x0};}function _0x2d6d(_0x443860,_0x1a769d){_0x443860=_0x443860-0x1ad;const _0x436b7a=_0x436b();let _0x2d6d93=_0x436b7a[_0x443860];return _0x2d6d93;}function normalizeUsageStatistics(_0x377667,_0x30ead5=new Date()){const _0x506493=_0x2647f0,_0xc264f=emptyUsageStatistics(_0x30ead5);if(!_0x377667||typeof _0x377667!=='object'||Array[_0x506493(0x1b2)](_0x377667))return _0xc264f;const _0x50c03c=_0x377667;return{'startedAt':String(_0x50c03c[_0x506493(0x1ba)]||_0xc264f[_0x506493(0x1ba)]),'lastUpdated':String(_0x50c03c['lastUpdated']||_0xc264f[_0x506493(0x1b0)]),'totalAddedItems':Math[_0x506493(0x1c2)](0x0,Number(_0x50c03c[_0x506493(0x1b7)])||0x0),'byProduct':{..._0x50c03c[_0x506493(0x1b5)]||{}},'byMarket':{..._0x50c03c[_0x506493(0x1b3)]||{}},'byCategory':{..._0x50c03c['byCategory']||{}},'byList':{..._0x50c03c[_0x506493(0x1bc)]||{}},'automaticLearned':Math['max'](0x0,Number(_0x50c03c[_0x506493(0x1c1)])||0x0),'reviewAccepted':Math['max'](0x0,Number(_0x50c03c['reviewAccepted'])||0x0),'reviewIgnored':Math[_0x506493(0x1c2)](0x0,Number(_0x50c03c[_0x506493(0x1b8)])||0x0)};}function _0x436b(){const _0x5d5ce1=['byMarket','4LGqvfH','byProduct','1520828rcRlOJ','totalAddedItems','reviewIgnored','category','startedAt','2nVQboR','byList','Unbekannt','defineProperty','6993ONOvyG','96mNCWpr','automaticLearned','max','byCategory','productName','4358541dzynFI','166224aceQyX','103523yRyrzi','toISOString','5040145tWpQnS','lastUpdated','15929880HxCUUY','isArray'];_0x436b=function(){return _0x5d5ce1;};return _0x436b();}function increment(_0x511482,_0x4c38ed){const _0x4acd96=_0x2647f0,_0x1830e4=String(_0x4c38ed||'')['trim']()||_0x4acd96(0x1bd);_0x511482[_0x1830e4]=(Number(_0x511482[_0x1830e4])||0x0)+0x1;}function recordAddedItem(_0x1a6f51,_0x1bad06,_0x31fb57){const _0x220ee4=_0x2647f0,_0x2a2ab7=normalizeUsageStatistics(_0x1a6f51);return _0x2a2ab7[_0x220ee4(0x1b7)]+=0x1,_0x2a2ab7[_0x220ee4(0x1b0)]=new Date()[_0x220ee4(0x1ae)](),increment(_0x2a2ab7[_0x220ee4(0x1b5)],_0x31fb57[_0x220ee4(0x1c4)]),increment(_0x2a2ab7[_0x220ee4(0x1b3)],_0x31fb57['market']),increment(_0x2a2ab7[_0x220ee4(0x1c3)],_0x31fb57[_0x220ee4(0x1b9)]),increment(_0x2a2ab7[_0x220ee4(0x1bc)],_0x1bad06),_0x2a2ab7;}
|
package/build/main.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';const _0xf7bcd5=_0x44ef;(function(_0x2f9a30,_0x5eaec5){const _0x4a7b01=_0x44ef,_0x19b5da=_0x2f9a30();while(!![]){try{const _0x35d74b=parseInt(_0x4a7b01(0x120))/0x1*(-parseInt(_0x4a7b01(0x16a))/0x2)+parseInt(_0x4a7b01(0x114))/0x3*(parseInt(_0x4a7b01(0x13b))/0x4)+parseInt(_0x4a7b01(0x15a))/0x5*(parseInt(_0x4a7b01(0x1c7))/0x6)+-parseInt(_0x4a7b01(0x10b))/0x7+-parseInt(_0x4a7b01(0x12b))/0x8*(parseInt(_0x4a7b01(0xcb))/0x9)+-parseInt(_0x4a7b01(0xdb))/0xa+-parseInt(_0x4a7b01(0x1f0))/0xb*(-parseInt(_0x4a7b01(0x117))/0xc);if(_0x35d74b===_0x5eaec5)break;else _0x19b5da['push'](_0x19b5da['shift']());}catch(_0x3898f2){_0x19b5da['push'](_0x19b5da['shift']());}}}(_0x4cb1,0xb42b2));var __createBinding=this&&this[_0xf7bcd5(0x1ae)]||(Object[_0xf7bcd5(0x21b)]?function(_0x3fd6ab,_0x359a03,_0x5598db,_0x15d19b){const _0x23ea02=_0xf7bcd5;if(_0x15d19b===undefined)_0x15d19b=_0x5598db;var _0x16ce2e=Object[_0x23ea02(0x170)](_0x359a03,_0x5598db);(!_0x16ce2e||('get'in _0x16ce2e?!_0x359a03[_0x23ea02(0xfe)]:_0x16ce2e[_0x23ea02(0x127)]||_0x16ce2e[_0x23ea02(0x21a)]))&&(_0x16ce2e={'enumerable':!![],'get':function(){return _0x359a03[_0x5598db];}}),Object[_0x23ea02(0x1ed)](_0x3fd6ab,_0x15d19b,_0x16ce2e);}:function(_0x41f67f,_0x3cb490,_0x575a65,_0x5474b8){if(_0x5474b8===undefined)_0x5474b8=_0x575a65;_0x41f67f[_0x5474b8]=_0x3cb490[_0x575a65];}),__setModuleDefault=this&&this[_0xf7bcd5(0x15b)]||(Object[_0xf7bcd5(0x21b)]?function(_0x9bba38,_0x5ad28d){const _0x1f8118=_0xf7bcd5;Object[_0x1f8118(0x1ed)](_0x9bba38,_0x1f8118(0x106),{'enumerable':!![],'value':_0x5ad28d});}:function(_0x206902,_0x501bfa){const _0x891e28=_0xf7bcd5;_0x206902[_0x891e28(0x106)]=_0x501bfa;}),__importStar=this&&this['__importStar']||(function(){var _0x4de64b=function(_0x3841d5){const _0x4640e0=_0x44ef;return _0x4de64b=Object[_0x4640e0(0xd3)]||function(_0x599080){const _0x3d9e40=_0x4640e0;var _0x273ccb=[];for(var _0x4f6c65 in _0x599080)if(Object[_0x3d9e40(0xc7)][_0x3d9e40(0x193)]['call'](_0x599080,_0x4f6c65))_0x273ccb[_0x273ccb[_0x3d9e40(0x123)]]=_0x4f6c65;return _0x273ccb;},_0x4de64b(_0x3841d5);};return function(_0x16d30e){const _0x5e15a3=_0x44ef;if(_0x16d30e&&_0x16d30e['__esModule'])return _0x16d30e;var _0x3963f8={};if(_0x16d30e!=null){for(var _0x4af3d8=_0x4de64b(_0x16d30e),_0x28a9af=0x0;_0x28a9af<_0x4af3d8[_0x5e15a3(0x123)];_0x28a9af++)if(_0x4af3d8[_0x28a9af]!==_0x5e15a3(0x106))__createBinding(_0x3963f8,_0x16d30e,_0x4af3d8[_0x28a9af]);}return __setModuleDefault(_0x3963f8,_0x16d30e),_0x3963f8;};}());Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['ShoppingRoute']=void 0x0;function _0x4cb1(){const _0x23b7ce=['writePauseMs','control.temporaryPriorityMarket','parseConfigImport','ensureTrafficDay','control.sortNow','command','lastVersionCheck','SHOP','getForeignObjectAsync','Timeout','Alexa-Listen\x20konnten\x20für\x20','Wurst/Salate/Teigwaren','Für\x20den\x20Kompatibilitätstest\x20wird\x20mindestens\x20ein\x20aktiver\x20Listeneintrag\x20benötigt.','createSortPlan','__none__','control.resetStatistics','checkNpmVersion','readFileSync','Marktprofil\x20„','H-Milch/Nudeln','runtimeReviews','alias','scheduleSort','runLiveCompatibilityTest','30qlnlym','learningMode','/Minute\x20erreicht,\x20Pause\x20','status','ShoppingRoute','info.lastError','Kompatibilitätstest:\x20','runtimeRoutes','unknown','automaticLearned','info.statistics','info.plannedChangesToday','\x20–\x20BETA-Sicherheitsblock:\x20keine\x20Alexa-Schreibzugriffe','routes','utf8','string','Alexa-Schreibzugriffe\x20blockiert:\x20Schreibkompatibilität\x20noch\x20nicht\x20bestätigt;\x20control.compatibilityTest\x20ausführen.','info.updateAvailable','info.versionInstalled','abortedRuns','next','canWriteAlexa','version','info.lastPlan','writeCapability','info.activeItemsByList','onReady','info.preview','callback','info.previewText','trim','markets','error','Keine\x20aktive\x20Alexa-Liste\x20konfiguriert.','\x20Änderung(en),\x20','\x20Änderung(en)','Produktgruppen\x20konnten\x20nicht\x20initialisiert\x20werden:\x20','shoppingrouteBackup','defineProperty','control.importConfigJson','get','27918935SnxYWJ','ensureMarketRoutes','info.marketProfiles','info','add','\x20–\x20','Alexa-Schreibzugriffe\x20blockiert:\x20bekannte\x20fehlerhafte\x20alexa-remote2\x20version-Query\x20erkannt.','wait','armSortTimer','live-failed','detail','ShoppingRoute-Konfiguration\x20importiert;\x20Instanz\x20wird\x20durch\x20ioBroker\x20neu\x20gestartet.','\x20in\x20','changed','@iobroker/adapter-core','\x20–\x20npm-Abfrage\x20fehlgeschlagen:\x20','isEnabled','reviewsDirty','alexa2Version','setForeignStateAsync','Ungültige\x20JSON-Antwort','min','fallbackMarket','sortList','dirname','\x20aktive\x20Artikel,\x20','endsWith','alexa-remote2','review','Alexa-Wertedatenpunkt\x20fehlt:\x20','max','base','value','fromEntries','now','info.localChecksToday','traffic','control.enabled','system.adapter.','info.feedbackReport','findPackageVersion','https://registry.npmjs.org/iobroker.shoppingroute','configurable','create','shoppingroute','map','onStateChange','sortingListName','productText','subscribeStates','maxWriteRetries','.items.','findProduct','info.connection','.json','collectUnknownItems','stringify','inspectAlexaRemoteSource','info.unknownItems','clearInterval','prototype','recordAddedItem','alexaRemote2Version','onUnload','36aaviaL','namespace','products','getStateAsync','state','\x20Dry-Run:\x20','keys','Fleisch/Fisch','getOwnPropertyNames','alexaInstance','info.configExport','getMarkets','exportConfig','info.versionBeta','buildMarketProfiles','parseItem','1827810hxclBc','ensureProductGroupsConfig','updateActiveItemCount','sendTo','./lib/parser','Nonfood','TK-Produkte','lastUpdated','.Lists.','updateConfig','control.marketProfileImport','label','statusCode','find','plannedChanges','debounceMs','temporaryPriorityMarket','priorityMarketForList','\x20Änderung(en)\x20geplant','sort','alexa-remote2\x20konnte\x20nicht\x20automatisch\x20geprüft\x20werden:\x20','setEncoding','persistTrafficMetrics','knownActiveIds','processPendingSorts','dist-tags','normalizeTrafficMetrics','enabled','runtimeProducts','noch\x20nicht','\x20Schreibzugriffen\x20(','waitForWriteBudget','getMarketsOptional','beta','apiSafeMode','__esModule','httpJson','Noch\x20nicht\x20ausgeführt.','listConfigs','“\x20importiert.','Sonstiges','Instanzobjekt\x20nicht\x20gefunden:\x20','updateCompatibilityDiagnostics','default','latestBetaVersion','compatibilityDetail','ready','activeIdSignature','3984883vYlaaw',':\x20Liste\x20wurde\x20während\x20der\x20Sortierung\x20ergänzt\x20oder\x20abgehakt.\x20Neue\x20Berechnung\x20folgt.','\x20aktiv','val','resume','remainingReviews','ack','Brot/Gebäck','Der\x20Testeintrag\x20enthält\x20keinen\x20sichtbaren\x20value-Text.','21399GjGYNs','emptyTrafficMetrics','from','12mjFLmz','productsDirty','log','localeCompare','isArray','delete','Alexa-value-Schreibzugriff\x20fehlgeschlagen;\x20Retry\x20','values','info.lastSort','596881uMZQyj','compatibilityWrites','maxWritesPerMinute','length','retryBaseMs','node:fs','Zählt\x20Operationen,\x20keine\x20Netzwerk-Bytes.','writable','mergeReviewQueue','unbekannt','set','1309864lTTUnV','native','Adapter','.value','unload','control.resetTrafficStats','updateFeedbackReport','setError','./adapter/shoppingroute/backup-transfer.html?instance=','Neue\x20Artikel\x20automatisch\x20gelernt:\x20','getLists','\x20–\x20npm\x20beta:\x20','listChangedDuringSort','join','has','reduce','4ylxQOl','accepted','API-Schonmodus:\x20Batch-Pause\x20nach\x20','lastAlexaWrite',':\x20Alexa\x20hat\x20','includes','clearTimeout','getActiveMarkets',':\x20Eintrag\x20wurde\x20während\x20der\x20Sortierung\x20verändert.\x20Neue\x20Berechnung\x20folgt.','lastSortRun','push','Älteste\x20bis\x20neueste\x20/\x20Oldest\x20to\x20newest','Live-Test\x20konnte\x20nicht\x20abgeschlossen\x20werden:\x20','cfg','control.compatibilityTest','info.compatibility','scheduleAll',':\x20bereits\x20sortiert\x20(','readList','info.abortedRunsToday','setTimeout','name','localChecks','off','.\x20Lernmodus:\x20','getForeignStateAsync','data','bind','lists','statistics','ensureRoutesForMarketsAndGroups','196615QIbJik','__setModuleDefault','latest','parse','discoverAlexaLists','recordNewItems','Alexa-Liste\x20nicht\x20gefunden:\x20','live-ok','refreshExports','routesDirty','persistStatistics','\x20–\x20FEHLER:\x20','unshift','info.sortRunsToday','productGroups','info.reviewQueue','2jhTDCo','Haushalt/Hygiene','activeItems','stateChange','added','emptyUsageStatistics','getOwnPropertyDescriptor','date','setForeignObjectAsync','warn','reviewAccepted','control.refreshFeedbackReport','info.aliasSuggestions','info.traffic','alexaWrites','batchPauseMs','slice','pendingLists','onMessage','\x20aktiv)','lastCompatibilityTest','getAlexaLists','—\x20Kein\x20Markt\x20—','info.versionCheck','learned','makePreviewText','alexa2.0','compatibilityTesting','toLocaleLowerCase','toISOString','getForeignObjectsAsync','end','batchSize','node:https','package.json','automatic','updateTemporaryMarketStateOptions','WICHTIG:\x20Die\x20Alexa-App\x20muss\x20für\x20jede\x20verwaltete\x20Liste\x20auf\x20„Älteste\x20bis\x20neueste“\x20gestellt\x20sein.','setStateAsync','persistRuntimeConfig','dryRun','hasOwnProperty','./lib/statistics','listStateId','Kosmetikartikel','reviewItems','sortTimer','activeCountByList','getProductGroups','Listen:\x20','size','message','Produktnamen,\x20Einkaufslistentexte,\x20Aliase\x20und\x20komplette\x20Konfiguration\x20sind\x20absichtlich\x20nicht\x20enthalten.','suggestAliases','mergeUnknownProducts','sortSlotsOldestFirst','Getränke','API-Schonmodus:\x20Schreiblimit\x20','control.clearTemporaryPriorityMarket','info.activeItems','filter','Tee/Kaffee','priorityMarket','setState','sortRuns','getBackupUiUrl','writeTimestamps','versionTimer','__createBinding'];_0x4cb1=function(){return _0x23b7ce;};return _0x4cb1();}function _0x44ef(_0x47bf67,_0x306062){_0x47bf67=_0x47bf67-0xbf;const _0x4cb192=_0x4cb1();let _0x44ef1d=_0x4cb192[_0x47bf67];return _0x44ef1d;}const utils=__importStar(require(_0xf7bcd5(0x1fe))),fs=__importStar(require(_0xf7bcd5(0x125))),path=__importStar(require('node:path')),https=__importStar(require(_0xf7bcd5(0x18b))),compatibility_1=require('./lib/compatibility'),metrics_1=require('./lib/metrics'),sorter_1=require('./lib/sorter'),parser_1=require(_0xf7bcd5(0xdf)),config_tools_1=require('./lib/config-tools'),statistics_1=require(_0xf7bcd5(0x194)),VERSION='0.2.0',DEFAULT_CATEGORIES=['Obst/Gemüse',_0xf7bcd5(0x1a7),_0xf7bcd5(0x112),'Schokolade/Naschen',_0xf7bcd5(0xd2),_0xf7bcd5(0x1ba),'Milchprodukte',_0xf7bcd5(0x16b),_0xf7bcd5(0xe0),'Konserven',_0xf7bcd5(0x1c2),_0xf7bcd5(0x196),_0xf7bcd5(0x1a2),_0xf7bcd5(0xe1),_0xf7bcd5(0x103)];class ShoppingRoute extends utils[_0xf7bcd5(0x12d)]{[_0xf7bcd5(0x198)]=null;[_0xf7bcd5(0x1ad)]=null;[_0xf7bcd5(0x17b)]=new Set();['sortingListName']='';[_0xf7bcd5(0x137)]=![];[_0xf7bcd5(0xf7)]=[];[_0xf7bcd5(0x1c3)]=[];['productsDirty']=![];[_0xf7bcd5(0x201)]=![];[_0xf7bcd5(0x163)]=![];['runtimeRoutes']=[];['compatibilityTesting']=![];[_0xf7bcd5(0x1df)]=_0xf7bcd5(0x1cf);[_0xf7bcd5(0x108)]='Noch\x20nicht\x20geprüft.';['alexa2Version']='unbekannt';[_0xf7bcd5(0xc9)]='unbekannt';[_0xf7bcd5(0x17e)]=_0xf7bcd5(0x100);['traffic']=(0x0,metrics_1[_0xf7bcd5(0x115)])();['statistics']=(0x0,statistics_1[_0xf7bcd5(0x16f)])();['knownActiveIds']=new Map();[_0xf7bcd5(0x199)]=new Map();[_0xf7bcd5(0x1ac)]=[];['temporaryPriorityMarket']='';[_0xf7bcd5(0x107)]='';['lastVersionCheck']='';constructor(_0x1ec6a2={}){const _0x18e4ac=_0xf7bcd5;super({..._0x1ec6a2,'name':_0x18e4ac(0x21c)}),this['on'](_0x18e4ac(0x109),this[_0x18e4ac(0x1e1)]['bind'](this)),this['on'](_0x18e4ac(0x16d),this[_0x18e4ac(0x21e)][_0x18e4ac(0x156)](this)),this['on'](_0x18e4ac(0x19d),this[_0x18e4ac(0x17c)]['bind'](this)),this['on'](_0x18e4ac(0x12f),this[_0x18e4ac(0xca)][_0x18e4ac(0x156)](this));}get[_0xf7bcd5(0x148)](){return this['config'];}get['alexaInstance'](){const _0x48f121=_0xf7bcd5;return String(this['cfg'][_0x48f121(0xd4)]||_0x48f121(0x184))[_0x48f121(0x1e5)]()||_0x48f121(0x184);}get[_0xf7bcd5(0x101)](){const _0x1adb18=_0xf7bcd5,_0x113252=Array['isArray'](this[_0x1adb18(0x148)][_0x1adb18(0x157)])?this[_0x1adb18(0x148)][_0x1adb18(0x157)][_0x1adb18(0x1a6)](_0x2b0182=>_0x2b0182&&_0x2b0182['name']&&_0x2b0182['enabled']!==![]):[];if(_0x113252[_0x1adb18(0x123)]>0x0)return _0x113252;return[{'name':String(this['cfg']['listName']||_0x1adb18(0x1b6))[_0x1adb18(0x1e5)]()||_0x1adb18(0x1b6),'enabled':!![],'priorityMarket':''}];}['listStateId'](_0x190314){const _0x303a40=_0xf7bcd5;return this[_0x303a40(0xd4)]+'.Lists.'+_0x190314+_0x303a40(0xc1);}get['markets'](){const _0x2c0f01=_0xf7bcd5,_0x684094=Array[_0x2c0f01(0x11b)](this[_0x2c0f01(0x148)][_0x2c0f01(0x1e6)])?this['cfg'][_0x2c0f01(0x1e6)]:[];return _0x684094[_0x2c0f01(0x1a6)](_0x177db4=>_0x177db4&&_0x177db4['name']&&_0x177db4[_0x2c0f01(0xf6)]!==![]);}get['routes'](){const _0x40b30b=_0xf7bcd5;return this[_0x40b30b(0x1ce)][_0x40b30b(0x123)]?this[_0x40b30b(0x1ce)]:Array[_0x40b30b(0x11b)](this[_0x40b30b(0x148)][_0x40b30b(0x1d4)])?this['cfg'][_0x40b30b(0x1d4)][_0x40b30b(0x1a6)](Boolean):[];}get['productGroups'](){const _0x271f66=_0xf7bcd5,_0x12c229=Array['isArray'](this[_0x271f66(0x148)][_0x271f66(0x168)])?this['cfg'][_0x271f66(0x168)]:[],_0x98832a=_0x12c229['length']>0x0?_0x12c229:DEFAULT_CATEGORIES[_0x271f66(0x21d)](_0x51f086=>({'name':_0x51f086})),_0x89d280=new Set(),_0x448314=[];for(const _0x552cfc of _0x98832a){const _0x2d5a77=String(_0x552cfc?.[_0x271f66(0x150)]||'')['trim'](),_0x14d9a9=_0x2d5a77['toLocaleLowerCase']('de');if(!_0x2d5a77||_0x89d280['has'](_0x14d9a9))continue;_0x89d280[_0x271f66(0x1f4)](_0x14d9a9),_0x448314[_0x271f66(0x145)]({'name':_0x2d5a77});}return _0x448314[_0x271f66(0xee)]((_0x46985a,_0x28348d)=>_0x46985a['name'][_0x271f66(0x11a)](_0x28348d[_0x271f66(0x150)],'de',{'sensitivity':_0x271f66(0x20f)}));}get[_0xf7bcd5(0xcd)](){const _0x1e6b9c=_0xf7bcd5;return this['runtimeProducts'][_0x1e6b9c(0x1a6)](_0x7483e1=>_0x7483e1&&_0x7483e1[_0x1e6b9c(0x150)]);}get[_0xf7bcd5(0x206)](){const _0x1cec17=_0xf7bcd5;return String(this['cfg'][_0x1cec17(0x206)]||'Ohne\x20Markt')[_0x1cec17(0x1e5)]()||'Ohne\x20Markt';}get[_0xf7bcd5(0x1a8)](){const _0x272e2a=_0xf7bcd5;return String(this[_0x272e2a(0x148)]['priorityMarket']||'')[_0x272e2a(0x1e5)]();}[_0xf7bcd5(0xec)](_0x4160f5){const _0x4ad051=_0xf7bcd5;if(this[_0x4ad051(0xeb)])return this[_0x4ad051(0xeb)];const _0x43b435=this['listConfigs'][_0x4ad051(0xe8)](_0x4c49ac=>_0x4c49ac[_0x4ad051(0x150)]===_0x4160f5);return String(_0x43b435?.[_0x4ad051(0x1a8)]||this['priorityMarket']||'')[_0x4ad051(0x1e5)]();}get[_0xf7bcd5(0x1c8)](){const _0x4d26ef=_0xf7bcd5,_0x523876=String(this[_0x4d26ef(0x148)][_0x4d26ef(0x1c8)]||'')[_0x4d26ef(0x1e5)]();if(_0x523876===_0x4d26ef(0x18d)||_0x523876===_0x4d26ef(0x20c)||_0x523876===_0x4d26ef(0x152))return _0x523876;return this['cfg']['autoLearnProducts']===![]?'off':'automatic';}get['debounceMs'](){const _0x4ebbd3=_0xf7bcd5;return Math[_0x4ebbd3(0x20e)](0xfa,Number(this[_0x4ebbd3(0x148)][_0x4ebbd3(0xea)])||0x1388);}get[_0xf7bcd5(0x1af)](){const _0x2626f8=_0xf7bcd5;return Math[_0x2626f8(0x20e)](0xfa,Number(this['cfg'][_0x2626f8(0x1af)])||0x3e8);}get[_0xf7bcd5(0x192)](){const _0x957640=_0xf7bcd5;return this['cfg'][_0x957640(0x192)]!==![];}get[_0xf7bcd5(0xfd)](){const _0x4f70cb=_0xf7bcd5;return this[_0x4f70cb(0x148)]['apiSafeMode']!==![];}get['maxWritesPerMinute'](){const _0x393856=_0xf7bcd5;return Math[_0x393856(0x20e)](0x1,Number(this[_0x393856(0x148)][_0x393856(0x122)])||0x14);}get['batchSize'](){const _0x34d2c0=_0xf7bcd5;return Math[_0x34d2c0(0x20e)](0x1,Number(this[_0x34d2c0(0x148)][_0x34d2c0(0x18a)])||0xa);}get[_0xf7bcd5(0x179)](){const _0x627f33=_0xf7bcd5;return Math[_0x627f33(0x20e)](0x0,Number(this['cfg']['batchPauseMs'])||0x1388);}get[_0xf7bcd5(0x222)](){const _0x4b0dce=_0xf7bcd5;return Math['max'](0x0,Math[_0x4b0dce(0x205)](0x5,Number(this[_0x4b0dce(0x148)]['maxWriteRetries'])||0x2));}get['retryBaseMs'](){const _0x11b9fb=_0xf7bcd5;return Math[_0x11b9fb(0x20e)](0xfa,Number(this[_0x11b9fb(0x148)]['retryBaseMs'])||0x5dc);}async[_0xf7bcd5(0x1e1)](){const _0x31f61d=_0xf7bcd5;this[_0x31f61d(0xf7)]=(Array[_0x31f61d(0x11b)](this['cfg']['products'])?this[_0x31f61d(0x148)][_0x31f61d(0xcd)]:[])[_0x31f61d(0x1a6)](_0x499ef0=>_0x499ef0&&_0x499ef0[_0x31f61d(0x150)])[_0x31f61d(0x21d)](_0x6f2723=>({..._0x6f2723}))['sort']((_0xac41eb,_0x411488)=>_0xac41eb['name']['localeCompare'](_0x411488['name'],'de',{'sensitivity':_0x31f61d(0x20f)})),this['runtimeReviews']=(Array['isArray'](this['cfg'][_0x31f61d(0x197)])?this['cfg'][_0x31f61d(0x197)]:[])[_0x31f61d(0x21d)](_0x43b2bf=>({..._0x43b2bf})),this['runtimeRoutes']=(0x0,config_tools_1['normalizeRoutesForAdmin'])(Array['isArray'](this['cfg'][_0x31f61d(0x1d4)])?this[_0x31f61d(0x148)][_0x31f61d(0x1d4)][_0x31f61d(0x1a6)](Boolean):[]),this[_0x31f61d(0x163)]=JSON[_0x31f61d(0xc3)](this[_0x31f61d(0x1ce)])!==JSON[_0x31f61d(0xc3)](Array['isArray'](this[_0x31f61d(0x148)][_0x31f61d(0x1d4)])?this['cfg'][_0x31f61d(0x1d4)]:[]),await this['loadTrafficMetrics'](),await this['loadStatistics']();const _0x487645=(0x0,sorter_1['applyReviewActions'])(this['runtimeProducts'],this[_0x31f61d(0x1c3)]);_0x487645[_0x31f61d(0x13c)]['length']&&(this['runtimeProducts']=_0x487645[_0x31f61d(0xcd)],this['runtimeReviews']=_0x487645[_0x31f61d(0x110)],this[_0x31f61d(0x118)]=!![],this[_0x31f61d(0x201)]=!![],this[_0x31f61d(0x158)][_0x31f61d(0x174)]+=_0x487645['accepted']['length'],await this[_0x31f61d(0x164)](),this[_0x31f61d(0x119)][_0x31f61d(0x1f3)]('Aus\x20der\x20Prüfliste\x20übernommen:\x20'+_0x487645[_0x31f61d(0x13c)]['map'](_0x3fe47e=>'„'+_0x3fe47e[_0x31f61d(0x150)]+'“')[_0x31f61d(0x138)](',\x20')+'.'));await this[_0x31f61d(0xdc)](),this[_0x31f61d(0x159)](),await this[_0x31f61d(0x18e)](),await this[_0x31f61d(0x191)](),await this['setStateAsync'](_0x31f61d(0xc0),![],!![]),await this[_0x31f61d(0x190)]('info.lastError','',!![]),await this[_0x31f61d(0x190)](_0x31f61d(0x1d9),VERSION,!![]),await this[_0x31f61d(0x190)](_0x31f61d(0x1b3),![],!![]),await this[_0x31f61d(0x190)](_0x31f61d(0x149),![],!![]),await this['setStateAsync'](_0x31f61d(0x130),![],!![]),await this[_0x31f61d(0x190)](_0x31f61d(0x1be),![],!![]),await this[_0x31f61d(0x190)]('control.exportConfig',![],!![]),await this[_0x31f61d(0x190)]('control.refreshFeedbackReport',![],!![]),await this['setStateAsync'](_0x31f61d(0x1a4),![],!![]);const _0x316a9f=await this[_0x31f61d(0xce)]('control.enabled');if(!_0x316a9f)await this[_0x31f61d(0x190)](_0x31f61d(0x215),!![],!![]);const _0x1c8d0d=await this[_0x31f61d(0xce)](_0x31f61d(0x1b0)),_0x1fbf11=String(_0x1c8d0d?.['val']??this[_0x31f61d(0x148)][_0x31f61d(0xeb)]??'')[_0x31f61d(0x1e5)]();this[_0x31f61d(0xeb)]=_0x1fbf11==='__none__'?'':_0x1fbf11,await this[_0x31f61d(0x190)](_0x31f61d(0x1b0),this[_0x31f61d(0xeb)]||'__none__',!![]),this[_0x31f61d(0x221)]('control.*');for(const _0x37370b of this[_0x31f61d(0x101)])this['subscribeForeignStates'](this['listStateId'](_0x37370b[_0x31f61d(0x150)]));let _0x1f6ec8=![];for(const _0x166f54 of this['listConfigs']){const _0x152389=await this[_0x31f61d(0x154)](this['listStateId'](_0x166f54['name']));if(!_0x152389||typeof _0x152389[_0x31f61d(0x10e)]!=='string'){this[_0x31f61d(0x119)][_0x31f61d(0x173)](_0x31f61d(0x160)+this[_0x31f61d(0x195)](_0x166f54[_0x31f61d(0x150)]));continue;}_0x1f6ec8=!![];try{const _0x50ec6c=JSON[_0x31f61d(0x15d)](_0x152389[_0x31f61d(0x10e)]),_0x4b160b=(0x0,sorter_1['activeItems'])(Array[_0x31f61d(0x11b)](_0x50ec6c)?_0x50ec6c:[]);this[_0x31f61d(0xf2)][_0x31f61d(0x12a)](_0x166f54['name'],new Set(_0x4b160b[_0x31f61d(0x21d)](_0x549392=>String(_0x549392['id'])))),this[_0x31f61d(0x199)][_0x31f61d(0x12a)](_0x166f54[_0x31f61d(0x150)],_0x4b160b[_0x31f61d(0x123)]);}catch{this['knownActiveIds'][_0x31f61d(0x12a)](_0x166f54[_0x31f61d(0x150)],new Set());}}await this['setStateAsync'](_0x31f61d(0xc0),_0x1f6ec8,!![]),await this['updateActiveItemCount']();if(!_0x1f6ec8){await this['setError']('Keine\x20der\x20konfigurierten\x20Alexa-Listen\x20ist\x20lesbar:\x20'+this[_0x31f61d(0x101)]['map'](_0x11cd1b=>_0x11cd1b[_0x31f61d(0x150)])[_0x31f61d(0x138)](',\x20'));return;}await this['runStartupCompatibilityCheck'](),await this['refreshExports'](),await this[_0x31f61d(0x1bf)](),await this['updateFeedbackReport'](),this[_0x31f61d(0x1ad)]=this['setInterval'](()=>void this[_0x31f61d(0x1bf)](),0x6*0x3c*0x3c*0x3e8),this['log'][_0x31f61d(0x173)]('ShoppingRoute\x20'+VERSION+'\x20BETA:\x20Dry-Run\x20ist\x20für\x20Ersttests\x20ausdrücklich\x20empfohlen.'),this[_0x31f61d(0x119)][_0x31f61d(0x1f3)](_0x31f61d(0x19b)+this[_0x31f61d(0x101)][_0x31f61d(0x21d)](_0x4be4b7=>_0x4be4b7[_0x31f61d(0x150)])[_0x31f61d(0x138)](',\x20')+_0x31f61d(0x153)+this['learningMode']+'.'),this[_0x31f61d(0x119)]['info'](_0x31f61d(0x18f)),this[_0x31f61d(0x14b)](0x2bc);}async[_0xf7bcd5(0x15e)](_0x571532=this['alexaInstance']){const _0x32abd4=_0xf7bcd5,_0x1d0ddb=String(_0x571532||this[_0x32abd4(0xd4)])[_0x32abd4(0x1e5)]()||this[_0x32abd4(0xd4)],_0x54bb78=_0x1d0ddb+_0x32abd4(0xe3),_0x5af22a=_0x32abd4(0xc1),_0x3d2a56=new Set();try{const _0x21be47=await this[_0x32abd4(0x188)](_0x1d0ddb+'.Lists.*.json',_0x32abd4(0xcf));for(const _0x2ba55a of Object[_0x32abd4(0xd1)](_0x21be47||{})){if(!_0x2ba55a['startsWith'](_0x54bb78)||!_0x2ba55a[_0x32abd4(0x20a)](_0x5af22a))continue;const _0x5947ee=_0x2ba55a[_0x32abd4(0x17a)](_0x54bb78[_0x32abd4(0x123)],-_0x5af22a[_0x32abd4(0x123)])['trim']();if(_0x5947ee&&!_0x5947ee[_0x32abd4(0x140)]('.'))_0x3d2a56['add'](_0x5947ee);}}catch(_0x35060a){this[_0x32abd4(0x119)]['debug'](_0x32abd4(0x1b9)+_0x1d0ddb+'\x20nicht\x20automatisch\x20gelesen\x20werden:\x20'+String(_0x35060a));}for(const _0xa2a0fc of this[_0x32abd4(0x101)])if(_0xa2a0fc['name'])_0x3d2a56[_0x32abd4(0x1f4)](String(_0xa2a0fc[_0x32abd4(0x150)])[_0x32abd4(0x1e5)]());return[..._0x3d2a56][_0x32abd4(0x1a6)](Boolean)[_0x32abd4(0xee)]((_0x247f9d,_0x40c836)=>_0x247f9d['localeCompare'](_0x40c836,'de',{'sensitivity':_0x32abd4(0x20f)}));}async['onMessage'](_0x226e7d){const _0xedb4d8=_0xf7bcd5;if(!_0x226e7d||!_0x226e7d[_0xedb4d8(0x1e3)])return;if(_0x226e7d[_0xedb4d8(0x1b4)]===_0xedb4d8(0x1ab)){this[_0xedb4d8(0xde)](_0x226e7d[_0xedb4d8(0x116)],_0x226e7d[_0xedb4d8(0x1b4)],{'openUrl':_0xedb4d8(0x133)+encodeURIComponent(this[_0xedb4d8(0xcc)]),'window':_0xedb4d8(0x1ec)},_0x226e7d[_0xedb4d8(0x1e3)]);return;}if(_0x226e7d[_0xedb4d8(0x1b4)]===_0xedb4d8(0x19a)){const _0xb5cfd=this['productGroups'][_0xedb4d8(0x21d)](_0x1b4d19=>({'value':_0x1b4d19[_0xedb4d8(0x150)],'label':_0x1b4d19['name']}))['sort']((_0x121841,_0x5a0016)=>_0x121841['label'][_0xedb4d8(0x11a)](_0x5a0016[_0xedb4d8(0xe6)],'de',{'sensitivity':'base'}));this['sendTo'](_0x226e7d[_0xedb4d8(0x116)],_0x226e7d[_0xedb4d8(0x1b4)],_0xb5cfd,_0x226e7d[_0xedb4d8(0x1e3)]);return;}if(_0x226e7d['command']===_0xedb4d8(0xd6)||_0x226e7d[_0xedb4d8(0x1b4)]==='getMarketsOptional'||_0x226e7d[_0xedb4d8(0x1b4)]===_0xedb4d8(0x142)){const _0x3721e1=_0x226e7d[_0xedb4d8(0x1b4)]===_0xedb4d8(0x142)?this[_0xedb4d8(0x1e6)]['filter'](_0x36b088=>_0x36b088['enabled']!==![]):this[_0xedb4d8(0x1e6)],_0x49f49c=_0x3721e1[_0xedb4d8(0x21d)](_0x123d17=>({'value':_0x123d17[_0xedb4d8(0x150)],'label':_0x123d17[_0xedb4d8(0x150)]}))[_0xedb4d8(0xee)]((_0x13c5fe,_0x483672)=>_0x13c5fe[_0xedb4d8(0xe6)][_0xedb4d8(0x11a)](_0x483672['label'],'de',{'sensitivity':_0xedb4d8(0x20f)}));if(_0x226e7d[_0xedb4d8(0x1b4)]===_0xedb4d8(0xfb))_0x49f49c[_0xedb4d8(0x166)]({'value':'','label':'—'});this['sendTo'](_0x226e7d[_0xedb4d8(0x116)],_0x226e7d[_0xedb4d8(0x1b4)],_0x49f49c,_0x226e7d['callback']);return;}if(_0x226e7d['command']===_0xedb4d8(0x17f)||_0x226e7d['command']===_0xedb4d8(0x135)){const _0x3e6ff0=String(_0x226e7d['message']?.['alexaInstance']||this[_0xedb4d8(0xd4)])[_0xedb4d8(0x1e5)]()||this['alexaInstance'],_0x33faf9=await this['discoverAlexaLists'](_0x3e6ff0),_0x71b070=_0x33faf9[_0xedb4d8(0x21d)](_0x5d0faa=>({'value':_0x5d0faa,'label':_0x5d0faa}));this['sendTo'](_0x226e7d['from'],_0x226e7d[_0xedb4d8(0x1b4)],_0x71b070,_0x226e7d['callback']);}}async[_0xf7bcd5(0x21e)](_0x52039a,_0x1c0190){const _0x2d5e72=_0xf7bcd5;if(!_0x1c0190)return;const _0xda2e3b=this['namespace']+'.';if(_0x52039a===_0xda2e3b+_0x2d5e72(0x1b3)&&!_0x1c0190[_0x2d5e72(0x111)]&&_0x1c0190[_0x2d5e72(0x10e)]===!![]){await this[_0x2d5e72(0x190)](_0x2d5e72(0x1b3),![],!![]),this['scheduleAll'](0x64);return;}if(_0x52039a===_0xda2e3b+_0x2d5e72(0x149)&&!_0x1c0190[_0x2d5e72(0x111)]&&_0x1c0190[_0x2d5e72(0x10e)]===!![]){await this[_0x2d5e72(0x190)](_0x2d5e72(0x149),![],!![]),await this[_0x2d5e72(0x1c6)]();return;}if(_0x52039a===_0xda2e3b+_0x2d5e72(0x130)&&!_0x1c0190[_0x2d5e72(0x111)]&&_0x1c0190['val']===!![]){await this[_0x2d5e72(0x190)](_0x2d5e72(0x130),![],!![]),this[_0x2d5e72(0x214)]=(0x0,metrics_1[_0x2d5e72(0x115)])(),await this[_0x2d5e72(0xf1)]();return;}if(_0x52039a===_0xda2e3b+_0x2d5e72(0x1be)&&!_0x1c0190[_0x2d5e72(0x111)]&&_0x1c0190[_0x2d5e72(0x10e)]===!![]){await this['setStateAsync'](_0x2d5e72(0x1be),![],!![]),this[_0x2d5e72(0x158)]=(0x0,statistics_1[_0x2d5e72(0x16f)])(),await this['persistStatistics']();return;}if(_0x52039a===_0xda2e3b+'control.exportConfig'&&!_0x1c0190[_0x2d5e72(0x111)]&&_0x1c0190['val']===!![]){await this[_0x2d5e72(0x190)]('control.exportConfig',![],!![]),await this[_0x2d5e72(0x162)]();return;}if(_0x52039a===_0xda2e3b+_0x2d5e72(0x175)&&!_0x1c0190['ack']&&_0x1c0190['val']===!![]){await this[_0x2d5e72(0x190)](_0x2d5e72(0x175),![],!![]),await this[_0x2d5e72(0x131)]();return;}if(_0x52039a===_0xda2e3b+'control.clearTemporaryPriorityMarket'&&!_0x1c0190[_0x2d5e72(0x111)]&&_0x1c0190['val']===!![]){await this[_0x2d5e72(0x190)](_0x2d5e72(0x1a4),![],!![]),this['temporaryPriorityMarket']='',await this[_0x2d5e72(0x190)]('control.temporaryPriorityMarket','__none__',!![]),this[_0x2d5e72(0x14b)](0x64);return;}if(_0x52039a===_0xda2e3b+_0x2d5e72(0x1b0)&&!_0x1c0190[_0x2d5e72(0x111)]){const _0x44298e=typeof _0x1c0190['val']==='string'?_0x1c0190['val'][_0x2d5e72(0x1e5)]():'';this[_0x2d5e72(0xeb)]=_0x44298e==='__none__'?'':_0x44298e,await this[_0x2d5e72(0x190)]('control.temporaryPriorityMarket',this[_0x2d5e72(0xeb)]||_0x2d5e72(0x1bd),!![]),this[_0x2d5e72(0x14b)](0x64);return;}if(_0x52039a===_0xda2e3b+_0x2d5e72(0x1ee)&&!_0x1c0190['ack']&&typeof _0x1c0190['val']===_0x2d5e72(0x1d6)&&_0x1c0190[_0x2d5e72(0x10e)]['trim']()){try{const _0x5af4e5=(0x0,config_tools_1[_0x2d5e72(0x1b1)])(_0x1c0190[_0x2d5e72(0x10e)]);await this[_0x2d5e72(0x190)]('control.importConfigJson','',!![]),await this['updateConfig'](_0x5af4e5),this[_0x2d5e72(0x119)][_0x2d5e72(0x1f3)](_0x2d5e72(0x1fb));}catch(_0x4cb829){await this[_0x2d5e72(0x190)](_0x2d5e72(0x1ee),'',!![]),await this[_0x2d5e72(0x132)]('Konfigurationsimport\x20fehlgeschlagen:\x20'+(_0x4cb829 instanceof Error?_0x4cb829[_0x2d5e72(0x19d)]:String(_0x4cb829)));}return;}if(_0x52039a===_0xda2e3b+'control.marketProfileImport'&&!_0x1c0190['ack']&&typeof _0x1c0190[_0x2d5e72(0x10e)]===_0x2d5e72(0x1d6)&&_0x1c0190[_0x2d5e72(0x10e)][_0x2d5e72(0x1e5)]()){try{const _0x25e75f=(0x0,config_tools_1['importMarketProfile'])(_0x1c0190[_0x2d5e72(0x10e)],this[_0x2d5e72(0x1e6)],this['routes']);await this['setStateAsync'](_0x2d5e72(0xe5),'',!![]),await this[_0x2d5e72(0xe4)]({'markets':_0x25e75f['markets'],'routes':_0x25e75f['routes']}),this[_0x2d5e72(0x119)][_0x2d5e72(0x1f3)](_0x2d5e72(0x1c1)+_0x25e75f['market']+_0x2d5e72(0x102));}catch(_0x262681){await this['setStateAsync'](_0x2d5e72(0xe5),'',!![]),await this[_0x2d5e72(0x132)]('Marktprofil-Import\x20fehlgeschlagen:\x20'+(_0x262681 instanceof Error?_0x262681[_0x2d5e72(0x19d)]:String(_0x262681)));}return;}if(_0x52039a===_0xda2e3b+_0x2d5e72(0x215)&&!_0x1c0190[_0x2d5e72(0x111)]){await this['setStateAsync'](_0x2d5e72(0x215),Boolean(_0x1c0190[_0x2d5e72(0x10e)]),!![]);if(_0x1c0190[_0x2d5e72(0x10e)]===!![])this[_0x2d5e72(0x14b)](0xfa);return;}const _0x3c0231=this[_0x2d5e72(0x101)][_0x2d5e72(0xe8)](_0xd584ae=>_0x52039a===this['listStateId'](_0xd584ae[_0x2d5e72(0x150)]));if(_0x3c0231){await this['setStateAsync'](_0x2d5e72(0xc0),!![],!![]);if(this[_0x2d5e72(0x185)])return;if(this[_0x2d5e72(0x21f)]===_0x3c0231[_0x2d5e72(0x150)])this[_0x2d5e72(0x137)]=!![];this[_0x2d5e72(0x1c5)](_0x3c0231[_0x2d5e72(0x150)],this[_0x2d5e72(0xea)]);}}['onUnload'](_0xed296a){const _0x5db966=_0xf7bcd5;if(this['sortTimer'])this[_0x5db966(0x141)](this[_0x5db966(0x198)]);if(this['versionTimer'])this[_0x5db966(0xc6)](this['versionTimer']);void this[_0x5db966(0x1a9)](_0x5db966(0xc0),![],!![]),_0xed296a();}[_0xf7bcd5(0x14b)](_0x257b57){const _0x31d18d=_0xf7bcd5;for(const _0x4e0c42 of this['listConfigs'])this['pendingLists'][_0x31d18d(0x1f4)](_0x4e0c42[_0x31d18d(0x150)]);this[_0x31d18d(0x1f8)](_0x257b57);}['scheduleSort'](_0x4b695b,_0x5a7b7d){const _0xfcc66b=_0xf7bcd5;this[_0xfcc66b(0x17b)]['add'](_0x4b695b),this[_0xfcc66b(0x1f8)](_0x5a7b7d);}[_0xf7bcd5(0x1f8)](_0x499e73){const _0x155127=_0xf7bcd5;if(this[_0x155127(0x198)])this[_0x155127(0x141)](this['sortTimer']);this[_0x155127(0x198)]=this[_0x155127(0x14f)](()=>{const _0x1479bb=_0x155127;this[_0x1479bb(0x198)]=null,void this['processPendingSorts']();},_0x499e73);}async[_0xf7bcd5(0xf3)](){const _0x3b47c3=_0xf7bcd5;if(this[_0x3b47c3(0x21f)])return;while(this[_0x3b47c3(0x17b)][_0x3b47c3(0x19c)]>0x0){const _0xbda64f=this[_0x3b47c3(0x17b)]['values']()[_0x3b47c3(0x1db)]()['value'];if(!_0xbda64f)break;this['pendingLists'][_0x3b47c3(0x11c)](_0xbda64f),await this[_0x3b47c3(0x207)](_0xbda64f);}}async[_0xf7bcd5(0x200)](){const _0x28f9b7=_0xf7bcd5,_0xd9ddc9=await this['getStateAsync'](_0x28f9b7(0x215));return!_0xd9ddc9||_0xd9ddc9['val']!==![];}async['readList'](_0x4ce1d2){const _0x11c164=_0xf7bcd5,_0x5e0604=this[_0x11c164(0x195)](_0x4ce1d2),_0x2bd1ad=await this['getForeignStateAsync'](_0x5e0604);if(!_0x2bd1ad||typeof _0x2bd1ad[_0x11c164(0x10e)]!==_0x11c164(0x1d6)||!_0x2bd1ad[_0x11c164(0x10e)][_0x11c164(0x1e5)]())throw new Error('Datenpunkt\x20'+_0x5e0604+'\x20enthält\x20keine\x20lesbare\x20Liste.');const _0x1dad85=JSON[_0x11c164(0x15d)](_0x2bd1ad['val']);if(!Array[_0x11c164(0x11b)](_0x1dad85))throw new Error(_0x5e0604+'\x20enthält\x20kein\x20JSON-Array.');return _0x1dad85;}async[_0xf7bcd5(0x207)](_0x228c77){const _0x2e381d=_0xf7bcd5;if(this['sortingListName']){this[_0x2e381d(0x17b)]['add'](_0x228c77);return;}if(!await this['isEnabled']())return;this[_0x2e381d(0x21f)]=_0x228c77,this[_0x2e381d(0x137)]=![],await this[_0x2e381d(0x1b2)](),this['traffic']['localChecks']+=0x1,await this[_0x2e381d(0xf1)]();try{const _0x4063f5=await this['readList'](_0x228c77),_0x126501=(0x0,sorter_1['activeItems'])(_0x4063f5);this['activeCountByList'][_0x2e381d(0x12a)](_0x228c77,_0x126501['length']),await this[_0x2e381d(0xdd)](),await this[_0x2e381d(0x15f)](_0x228c77,_0x4063f5);const _0x402029=this[_0x2e381d(0xec)](_0x228c77);let _0x10c0d0=(0x0,sorter_1[_0x2e381d(0xc2)])(_0x4063f5,this[_0x2e381d(0x1e6)],this['products'],this['fallbackMarket'],_0x402029);if(this['learningMode']==='automatic'){const _0xd0f703=(0x0,sorter_1[_0x2e381d(0x1a0)])(_0x4063f5,this['markets'],this['products'],this[_0x2e381d(0x206)],_0x402029);_0xd0f703['learned'][_0x2e381d(0x123)]>0x0&&(this[_0x2e381d(0xf7)]=_0xd0f703['products'],this['productsDirty']=!![],this[_0x2e381d(0x158)][_0x2e381d(0x1d0)]+=_0xd0f703[_0x2e381d(0x182)][_0x2e381d(0x123)],await this['persistStatistics'](),await this[_0x2e381d(0x190)]('info.lastLearnedItems',JSON[_0x2e381d(0xc3)](_0xd0f703[_0x2e381d(0x182)],null,0x2),!![]),this['log'][_0x2e381d(0x1f3)](_0x2e381d(0x134)+_0xd0f703['learned']['map'](_0xdeec79=>'„'+_0xdeec79[_0x2e381d(0x150)]+'“')[_0x2e381d(0x138)](',\x20')+'.'),_0x10c0d0=(0x0,sorter_1['collectUnknownItems'])(_0x4063f5,this[_0x2e381d(0x1e6)],this[_0x2e381d(0xcd)],this['fallbackMarket'],_0x402029));}else{if(this['learningMode']===_0x2e381d(0x20c)){const _0x1b9541=JSON['stringify'](this[_0x2e381d(0x1c3)]);this['runtimeReviews']=(0x0,sorter_1[_0x2e381d(0x128)])(this[_0x2e381d(0x1c3)],_0x10c0d0);if(JSON[_0x2e381d(0xc3)](this[_0x2e381d(0x1c3)])!==_0x1b9541)this['reviewsDirty']=!![];}}await this['setStateAsync'](_0x2e381d(0xc5),JSON[_0x2e381d(0xc3)]({'listName':_0x228c77,'items':_0x10c0d0},null,0x2),!![]),await this['setStateAsync'](_0x2e381d(0x169),JSON[_0x2e381d(0xc3)](this[_0x2e381d(0x1c3)],null,0x2),!![]),await this['updateAliasSuggestions'](_0x4063f5);const _0xb20dd0=(0x0,sorter_1[_0x2e381d(0x1bc)])(_0x4063f5,this[_0x2e381d(0x1e6)],this[_0x2e381d(0x1d4)],this[_0x2e381d(0xcd)],this['fallbackMarket'],_0x402029);await this['setStateAsync'](_0x2e381d(0x1de),JSON[_0x2e381d(0xc3)]({'listName':_0x228c77,'plan':_0xb20dd0},null,0x2),!![]),await this['setStateAsync'](_0x2e381d(0x1e2),JSON[_0x2e381d(0xc3)]({'listName':_0x228c77,'changes':_0xb20dd0[_0x2e381d(0x1a6)](_0x6c6880=>_0x6c6880[_0x2e381d(0x1fd)]),'plan':_0xb20dd0},null,0x2),!![]),await this['setStateAsync'](_0x2e381d(0x1e4),(0x0,sorter_1[_0x2e381d(0x183)])(_0x228c77,_0xb20dd0),!![]);const _0x2d7a61=_0xb20dd0['filter'](_0x19a340=>_0x19a340[_0x2e381d(0x1fd)]),_0x3e3b1b=new Date()[_0x2e381d(0x187)]();_0x2d7a61[_0x2e381d(0x123)]>0x0&&(this['traffic'][_0x2e381d(0xe9)]+=_0x2d7a61[_0x2e381d(0x123)],await this['persistTrafficMetrics']());if(_0x2d7a61[_0x2e381d(0x123)]===0x0){await this['setStateAsync']('info.lastSort',_0x3e3b1b+'\x20–\x20'+_0x228c77+_0x2e381d(0x14c)+_0x126501[_0x2e381d(0x123)]+_0x2e381d(0x17d),!![]),await this[_0x2e381d(0x190)](_0x2e381d(0x1cc),'',!![]);return;}this[_0x2e381d(0x119)][_0x2e381d(0x1f3)](_0x228c77+':\x20'+_0x126501[_0x2e381d(0x123)]+_0x2e381d(0x209)+_0x2d7a61[_0x2e381d(0x123)]+_0x2e381d(0x1ea)+(this[_0x2e381d(0x192)]?'\x20[DRY-RUN]':'')+'.');if(this[_0x2e381d(0x192)]){await this[_0x2e381d(0x190)](_0x2e381d(0x11f),_0x3e3b1b+_0x2e381d(0x1f5)+_0x228c77+_0x2e381d(0xd0)+_0x2d7a61['length']+_0x2e381d(0xed),!![]),await this[_0x2e381d(0x190)](_0x2e381d(0x1cc),'',!![]);return;}if(!(0x0,compatibility_1[_0x2e381d(0x1dc)])(this[_0x2e381d(0x1df)])){const _0x2e4a32=this[_0x2e381d(0x1df)]==='known-bug'?_0x2e381d(0x1f6):this[_0x2e381d(0x1df)]===_0x2e381d(0x1f9)?'Alexa-Schreibzugriffe\x20blockiert:\x20Kompatibilitätstest\x20fehlgeschlagen.':_0x2e381d(0x1d7);await this[_0x2e381d(0x190)]('info.lastSort',_0x3e3b1b+_0x2e381d(0x1d3),!![]),await this[_0x2e381d(0x190)](_0x2e381d(0x1cc),_0x2e4a32,!![]),this[_0x2e381d(0x119)]['error'](_0x2e4a32);return;}this['traffic']['sortRuns']+=0x1,this[_0x2e381d(0x214)][_0x2e381d(0x144)]=new Date()[_0x2e381d(0x187)](),await this[_0x2e381d(0xf1)]();const _0x97393b=(0x0,sorter_1[_0x2e381d(0x10a)])(_0x4063f5);let _0x3c70d9=0x0;for(const _0x3cc736 of _0x2d7a61){const _0x1fa8bb=await this[_0x2e381d(0x14d)](_0x228c77);if((0x0,sorter_1[_0x2e381d(0x10a)])(_0x1fa8bb)!==_0x97393b){this['traffic'][_0x2e381d(0x1da)]+=0x1,await this['persistTrafficMetrics'](),this['pendingLists']['add'](_0x228c77),this[_0x2e381d(0x119)]['warn'](_0x228c77+_0x2e381d(0x10c));return;}const _0x5bd645=(0x0,sorter_1[_0x2e381d(0x16c)])(_0x1fa8bb)['find'](_0x24c1ea=>String(_0x24c1ea['id'])===_0x3cc736['id']);if(!_0x5bd645||String(_0x5bd645[_0x2e381d(0x210)])[_0x2e381d(0x1e5)]()!==_0x3cc736[_0x2e381d(0x116)]){this[_0x2e381d(0x214)][_0x2e381d(0x1da)]+=0x1,await this[_0x2e381d(0xf1)](),this[_0x2e381d(0x17b)][_0x2e381d(0x1f4)](_0x228c77),this['log'][_0x2e381d(0x173)](_0x228c77+_0x2e381d(0x143));return;}const _0x58c44b=this['alexaInstance']+'.Lists.'+_0x228c77+_0x2e381d(0x223)+_0x3cc736['id']+'.value',_0x10287c=await this[_0x2e381d(0x1b7)](_0x58c44b);if(!_0x10287c)throw new Error(_0x2e381d(0x20d)+_0x58c44b);await this['writeAlexaValue'](_0x58c44b,_0x3cc736['to']),_0x3c70d9+=0x1,this[_0x2e381d(0xfd)]&&_0x3c70d9%this[_0x2e381d(0x18a)]===0x0&&_0x3c70d9<_0x2d7a61[_0x2e381d(0x123)]&&this[_0x2e381d(0x179)]>0x0?(this['log']['info'](_0x2e381d(0x13d)+_0x3c70d9+_0x2e381d(0xf9)+this[_0x2e381d(0x179)]+'\x20ms).'),await this[_0x2e381d(0x1f7)](this['batchPauseMs'])):await this['wait'](this['writePauseMs']);}await this['wait'](Math['max'](0x3e8,this['writePauseMs']));const _0x15599e=await this[_0x2e381d(0x14d)](_0x228c77);if((0x0,sorter_1[_0x2e381d(0x10a)])(_0x15599e)!==_0x97393b){this[_0x2e381d(0x214)][_0x2e381d(0x1da)]+=0x1,await this[_0x2e381d(0xf1)](),this[_0x2e381d(0x17b)]['add'](_0x228c77);return;}const _0x436d8e=(0x0,sorter_1[_0x2e381d(0x1bc)])(_0x15599e,this[_0x2e381d(0x1e6)],this['routes'],this[_0x2e381d(0xcd)],this[_0x2e381d(0x206)],_0x402029),_0xd0960b=_0x436d8e['filter'](_0x2f99e3=>_0x2f99e3[_0x2e381d(0x1fd)]);if(_0xd0960b['length']>0x0){const _0x21833b=_0x228c77+_0x2e381d(0x13f)+_0xd0960b[_0x2e381d(0x123)]+'\x20geplante\x20Textänderung(en)\x20nicht\x20bestätigt;\x20kein\x20automatischer\x20Endlos-Retry.';await this['setError'](_0x21833b);return;}await this['setStateAsync'](_0x2e381d(0x11f),new Date()['toISOString']()+_0x2e381d(0x1f5)+_0x228c77+':\x20'+_0x2d7a61['length']+_0x2e381d(0x1e9)+_0x126501[_0x2e381d(0x123)]+_0x2e381d(0x10d),!![]),await this[_0x2e381d(0x190)]('info.lastError','',!![]);}catch(_0x2db719){const _0x20248b=_0x2db719 instanceof Error?_0x2db719['message']:String(_0x2db719);await this['setError'](_0x20248b),this[_0x2e381d(0x119)][_0x2e381d(0x1e7)](_0x20248b);}finally{this['sortingListName']='',await this[_0x2e381d(0x191)](),await this[_0x2e381d(0x162)](),await this[_0x2e381d(0x131)]();if(this[_0x2e381d(0x137)])this['pendingLists']['add'](_0x228c77);if(this['pendingLists'][_0x2e381d(0x19c)]>0x0)this[_0x2e381d(0x1f8)](this[_0x2e381d(0xea)]);}}async['writeAlexaValue'](_0x29835c,_0x143c52){const _0x382053=_0xf7bcd5;let _0x54684f;for(let _0x5efc42=0x0;_0x5efc42<=this[_0x382053(0x222)];_0x5efc42++){try{if(this[_0x382053(0xfd)])await this[_0x382053(0xfa)]();await this[_0x382053(0x203)](_0x29835c,{'val':_0x143c52,'ack':![]}),this['writeTimestamps'][_0x382053(0x145)](Date[_0x382053(0x212)]()),this['traffic'][_0x382053(0x178)]+=0x1,this[_0x382053(0x214)][_0x382053(0x13e)]=new Date()['toISOString'](),await this[_0x382053(0xf1)]();return;}catch(_0xeebbfb){_0x54684f=_0xeebbfb;if(_0x5efc42>=this[_0x382053(0x222)])break;const _0x1ae1af=this[_0x382053(0x124)]*Math['pow'](0x2,_0x5efc42);this[_0x382053(0x119)]['warn'](_0x382053(0x11d)+(_0x5efc42+0x1)+'/'+this[_0x382053(0x222)]+_0x382053(0x1fc)+_0x1ae1af+'\x20ms.'),await this[_0x382053(0x1f7)](_0x1ae1af);}}throw _0x54684f instanceof Error?_0x54684f:new Error(String(_0x54684f));}async[_0xf7bcd5(0xfa)](){const _0x1d9085=_0xf7bcd5;while(!![]){const _0x315bf6=Date[_0x1d9085(0x212)]();this[_0x1d9085(0x1ac)]=this['writeTimestamps']['filter'](_0x31b43b=>_0x315bf6-_0x31b43b<0xea60);if(this['writeTimestamps'][_0x1d9085(0x123)]<this[_0x1d9085(0x122)])return;const _0xc8efd2=Math[_0x1d9085(0x20e)](0x1f4,0xea60-(_0x315bf6-this[_0x1d9085(0x1ac)][0x0])+0x64);this[_0x1d9085(0x119)][_0x1d9085(0x1f3)](_0x1d9085(0x1a3)+this['maxWritesPerMinute']+_0x1d9085(0x1c9)+_0xc8efd2+'\x20ms.'),await this[_0x1d9085(0x1f7)](_0xc8efd2);}}async['updateAliasSuggestions'](_0x35e3cc){const _0x3e9fe9=_0xf7bcd5;if(this['cfg']['autoAliasSuggestions']===![]){await this['setStateAsync'](_0x3e9fe9(0x176),'[]',!![]);return;}const _0x2be788=[];for(const _0x39479c of(0x0,sorter_1['activeItems'])(_0x35e3cc)){const _0x24cae9=(0x0,parser_1[_0x3e9fe9(0xda)])(String(_0x39479c[_0x3e9fe9(0x210)]),this[_0x3e9fe9(0x1e6)],this['products'],this[_0x3e9fe9(0x206)],this[_0x3e9fe9(0x1a8)]),_0x305b91=(0x0,parser_1[_0x3e9fe9(0xbf)])(_0x24cae9[_0x3e9fe9(0x220)],this[_0x3e9fe9(0xcd)]);if(!_0x305b91)continue;for(const _0x142751 of(0x0,parser_1[_0x3e9fe9(0x19f)])(_0x24cae9[_0x3e9fe9(0x220)],_0x305b91))_0x2be788[_0x3e9fe9(0x145)]({'product':_0x305b91[_0x3e9fe9(0x150)],'alias':_0x142751});}const _0x376d46=[...new Map(_0x2be788['map'](_0x1078e7=>[(_0x1078e7['product']+'|'+_0x1078e7[_0x3e9fe9(0x1c4)])[_0x3e9fe9(0x186)]('de'),_0x1078e7]))[_0x3e9fe9(0x11e)]()];await this['setStateAsync']('info.aliasSuggestions',JSON['stringify'](_0x376d46,null,0x2),!![]);}async[_0xf7bcd5(0x15f)](_0x5d7f56,_0x110e17){const _0x2fc3f4=_0xf7bcd5,_0x3fd4b9=(0x0,sorter_1[_0x2fc3f4(0x16c)])(_0x110e17),_0x114dac=this[_0x2fc3f4(0xf2)]['get'](_0x5d7f56),_0x11acd4=new Set(_0x3fd4b9['map'](_0x2d5f78=>String(_0x2d5f78['id'])));if(!_0x114dac){this[_0x2fc3f4(0xf2)][_0x2fc3f4(0x12a)](_0x5d7f56,_0x11acd4);return;}for(const _0x834533 of _0x3fd4b9){if(_0x114dac[_0x2fc3f4(0x139)](String(_0x834533['id'])))continue;const _0x13b3cb=(0x0,parser_1['parseItem'])(String(_0x834533[_0x2fc3f4(0x210)]),this[_0x2fc3f4(0x1e6)],this[_0x2fc3f4(0xcd)],this[_0x2fc3f4(0x206)],this['priorityMarketForList'](_0x5d7f56));this[_0x2fc3f4(0x158)]=(0x0,statistics_1[_0x2fc3f4(0xc8)])(this[_0x2fc3f4(0x158)],_0x5d7f56,_0x13b3cb);}this[_0x2fc3f4(0xf2)]['set'](_0x5d7f56,_0x11acd4),await this[_0x2fc3f4(0x164)]();}async[_0xf7bcd5(0xdd)](){const _0x941c84=_0xf7bcd5,_0x534c69=[...this[_0x941c84(0x199)][_0x941c84(0x11e)]()][_0x941c84(0x13a)]((_0x290d31,_0x51c87e)=>_0x290d31+_0x51c87e,0x0);await this[_0x941c84(0x190)](_0x941c84(0x1a5),_0x534c69,!![]),await this[_0x941c84(0x190)](_0x941c84(0x1e0),JSON[_0x941c84(0xc3)](Object[_0x941c84(0x211)](this['activeCountByList']),null,0x2),!![]);}async['runStartupCompatibilityCheck'](){const _0x167be0=_0xf7bcd5;try{const _0xbcc6d4=await this['getForeignObjectAsync'](_0x167be0(0x216)+this[_0x167be0(0xd4)]),_0x7d7348=_0xbcc6d4?.['common']?.[_0x167be0(0x1dd)];this['alexa2Version']=typeof _0x7d7348===_0x167be0(0x1d6)?_0x7d7348:_0x167be0(0x129);}catch{this['alexa2Version']='unbekannt';}try{const _0x4673d8=require['resolve'](_0x167be0(0x20b)),_0x3bac2d=fs['readFileSync'](_0x4673d8,_0x167be0(0x1d5)),_0x21a62c=(0x0,compatibility_1[_0x167be0(0xc4)])(_0x3bac2d);this[_0x167be0(0x1df)]=_0x21a62c[_0x167be0(0x1ca)],this[_0x167be0(0x108)]=_0x21a62c[_0x167be0(0x1fa)],this[_0x167be0(0xc9)]=this['findPackageVersion'](_0x4673d8,_0x167be0(0x20b));}catch(_0x5849f0){this[_0x167be0(0x1df)]='unknown',this[_0x167be0(0x108)]=_0x167be0(0xef)+(_0x5849f0 instanceof Error?_0x5849f0[_0x167be0(0x19d)]:String(_0x5849f0)),this[_0x167be0(0xc9)]=_0x167be0(0x129);}await this[_0x167be0(0x105)]();}[_0xf7bcd5(0x218)](_0x553da1,_0x6eadaa){const _0x36ed92=_0xf7bcd5;let _0xfb94d7=path[_0x36ed92(0x208)](_0x553da1);for(let _0x3c9872=0x0;_0x3c9872<0x6;_0x3c9872++){const _0xdad194=path['join'](_0xfb94d7,_0x36ed92(0x18c));try{const _0x4708fa=JSON[_0x36ed92(0x15d)](fs[_0x36ed92(0x1c0)](_0xdad194,_0x36ed92(0x1d5)));if(_0x4708fa[_0x36ed92(0x150)]===_0x6eadaa&&_0x4708fa['version'])return _0x4708fa[_0x36ed92(0x1dd)];}catch{}const _0x296a8d=path[_0x36ed92(0x208)](_0xfb94d7);if(_0x296a8d===_0xfb94d7)break;_0xfb94d7=_0x296a8d;}return _0x36ed92(0x129);}async[_0xf7bcd5(0x1c6)](){const _0x4c0cdb=_0xf7bcd5;if(this['compatibilityTesting']||this['sortingListName'])return;this[_0x4c0cdb(0x185)]=!![];try{const _0x243385=this['listConfigs'][0x0]?.[_0x4c0cdb(0x150)];if(!_0x243385)throw new Error(_0x4c0cdb(0x1e8));const _0x7ce6da=await this['readList'](_0x243385),_0x2c10b1=(0x0,sorter_1[_0x4c0cdb(0x1a1)])((0x0,sorter_1['activeItems'])(_0x7ce6da))[0x0];if(!_0x2c10b1)throw new Error(_0x4c0cdb(0x1bb));const _0x568d76=this['alexaInstance']+'.Lists.'+_0x243385+_0x4c0cdb(0x223)+_0x2c10b1['id']+_0x4c0cdb(0x12e),_0x96c21a=await this[_0x4c0cdb(0x154)](_0x568d76),_0xf0b079=String(_0x96c21a?.[_0x4c0cdb(0x10e)]??_0x2c10b1[_0x4c0cdb(0x210)])['trim']();if(!_0xf0b079)throw new Error(_0x4c0cdb(0x113));const _0x46946e=Number(_0x96c21a?.['ts']||0x0);await this['setForeignStateAsync'](_0x568d76,{'val':_0xf0b079,'ack':![]}),this[_0x4c0cdb(0x214)]['alexaWrites']+=0x1,this[_0x4c0cdb(0x214)]['compatibilityWrites']+=0x1,this[_0x4c0cdb(0x214)][_0x4c0cdb(0x13e)]=new Date()[_0x4c0cdb(0x187)](),await this['persistTrafficMetrics']();const _0x2a35e2=Date[_0x4c0cdb(0x212)]()+0x2710;let _0x2b1e75=![];while(Date['now']()<_0x2a35e2){await this[_0x4c0cdb(0x1f7)](0xfa);const _0xe95db0=await this[_0x4c0cdb(0x154)](_0x568d76);if(_0xe95db0&&_0xe95db0['ack']===!![]&&String(_0xe95db0[_0x4c0cdb(0x10e)]??'')[_0x4c0cdb(0x1e5)]()===_0xf0b079&&Number(_0xe95db0['ts']||0x0)>_0x46946e){_0x2b1e75=!![];break;}}_0x2b1e75?(this[_0x4c0cdb(0x1df)]=_0x4c0cdb(0x161),this[_0x4c0cdb(0x108)]='Live-Test\x20erfolgreich:\x20Alexa2\x20hat\x20einen\x20unveränderten\x20value-Schreibzugriff\x20bestätigt.',this[_0x4c0cdb(0x17e)]=new Date()['toISOString']()+'\x20–\x20ERFOLG\x20mit\x20„'+_0xf0b079+'“',await this[_0x4c0cdb(0x190)](_0x4c0cdb(0x1cc),'',!![])):(this['writeCapability']='live-failed',this[_0x4c0cdb(0x108)]='Live-Test\x20fehlgeschlagen:\x20Alexa2\x20hat\x20den\x20value-Schreibzugriff\x20nicht\x20innerhalb\x20von\x2010\x20Sekunden\x20bestätigt.',this[_0x4c0cdb(0x17e)]=new Date()['toISOString']()+'\x20–\x20FEHLGESCHLAGEN\x20mit\x20„'+_0xf0b079+'“',await this[_0x4c0cdb(0x190)](_0x4c0cdb(0x1cc),'Alexa-Schreibkompatibilitätstest\x20fehlgeschlagen;\x20Sortierschreibzugriffe\x20bleiben\x20blockiert.',!![])),await this[_0x4c0cdb(0x105)]();}catch(_0x3eec98){const _0x5a5f4d=_0x3eec98 instanceof Error?_0x3eec98['message']:String(_0x3eec98);this[_0x4c0cdb(0x1df)]='live-failed',this[_0x4c0cdb(0x108)]=_0x4c0cdb(0x147)+_0x5a5f4d,this[_0x4c0cdb(0x17e)]=new Date()[_0x4c0cdb(0x187)]()+_0x4c0cdb(0x165)+_0x5a5f4d,await this[_0x4c0cdb(0x190)](_0x4c0cdb(0x1cc),_0x4c0cdb(0x1cd)+_0x5a5f4d,!![]),await this[_0x4c0cdb(0x105)]();}finally{this['compatibilityTesting']=![];}}async[_0xf7bcd5(0x105)](){const _0x57e23e=_0xf7bcd5;await this['setStateAsync']('info.writeCapability',this[_0x57e23e(0x1df)],!![]),await this['setStateAsync']('info.lastCompatibilityTest',this[_0x57e23e(0x17e)],!![]),await this['setStateAsync'](_0x57e23e(0x14a),JSON['stringify']({'shoppingrouteVersion':VERSION,'beta':!![],'alexaInstance':this[_0x57e23e(0xd4)],'alexa2Version':this[_0x57e23e(0x202)],'alexaRemote2Version':this[_0x57e23e(0xc9)],'lists':this['listConfigs']['map'](_0x2e26dc=>_0x2e26dc['name']),'dryRun':this['dryRun'],'writeCapability':this['writeCapability'],'detail':this[_0x57e23e(0x108)],'lastCompatibilityTest':this[_0x57e23e(0x17e)],'requiredAlexaAppSorting':_0x57e23e(0x146),'checkedAt':new Date()[_0x57e23e(0x187)]()},null,0x2),!![]);}async['updateTemporaryMarketStateOptions'](){const _0x42e7ae=_0xf7bcd5;try{const _0x4b583f={'__none__':_0x42e7ae(0x180)};for(const _0x4f9d2a of[...this[_0x42e7ae(0x1e6)]][_0x42e7ae(0xee)]((_0x48aeea,_0x1616b9)=>_0x48aeea[_0x42e7ae(0x150)]['localeCompare'](_0x1616b9[_0x42e7ae(0x150)],'de',{'sensitivity':_0x42e7ae(0x20f)}))){_0x4b583f[_0x4f9d2a['name']]=_0x4f9d2a[_0x42e7ae(0x150)];}await this['extendObjectAsync'](_0x42e7ae(0x1b0),{'common':{'states':_0x4b583f}});}catch(_0x1bb6ab){this[_0x42e7ae(0x119)]['warn']('Temporäre\x20Markt-Auswahlliste\x20konnte\x20nicht\x20aktualisiert\x20werden:\x20'+(_0x1bb6ab instanceof Error?_0x1bb6ab[_0x42e7ae(0x19d)]:String(_0x1bb6ab)));}}[_0xf7bcd5(0x159)](){const _0x455408=_0xf7bcd5,_0x205b9e=(0x0,config_tools_1[_0x455408(0x1f1)])(this['markets'],this[_0x455408(0x168)],this[_0x455408(0x1ce)]);if(_0x205b9e['added']<=0x0)return;this[_0x455408(0x1ce)]=_0x205b9e[_0x455408(0x1d4)],this[_0x455408(0x163)]=!![],this['log']['info'](_0x205b9e[_0x455408(0x16e)]+'\x20fehlende\x20Laufweg-Zuordnung(en)\x20für\x20neue\x20Märkte/Produktgruppen\x20automatisch\x20ergänzt.');}async['ensureProductGroupsConfig'](){const _0x26f05e=_0xf7bcd5;if(Array[_0x26f05e(0x11b)](this[_0x26f05e(0x148)]['productGroups'])&&this[_0x26f05e(0x148)][_0x26f05e(0x168)]['length']>0x0)return;try{await this['updateConfig']({'productGroups':DEFAULT_CATEGORIES['map'](_0x4f793a=>({'name':_0x4f793a}))});}catch(_0x17a906){this[_0x26f05e(0x119)][_0x26f05e(0x173)](_0x26f05e(0x1eb)+(_0x17a906 instanceof Error?_0x17a906[_0x26f05e(0x19d)]:String(_0x17a906)));}}async[_0xf7bcd5(0x191)](){const _0x3ae1b3=_0xf7bcd5;if(!this[_0x3ae1b3(0x118)]&&!this[_0x3ae1b3(0x201)]&&!this[_0x3ae1b3(0x163)])return;try{const _0x52bb0c=_0x3ae1b3(0x216)+this[_0x3ae1b3(0xcc)],_0xcd9380=await this[_0x3ae1b3(0x1b7)](_0x52bb0c);if(!_0xcd9380)throw new Error(_0x3ae1b3(0x104)+_0x52bb0c);const _0x5ea82d=_0xcd9380['native']||{};_0xcd9380[_0x3ae1b3(0x12c)]={..._0x5ea82d,...this['productsDirty']?{'products':this[_0x3ae1b3(0xf7)][_0x3ae1b3(0x21d)](_0x1fc277=>({..._0x1fc277}))}:{},...this[_0x3ae1b3(0x201)]?{'reviewItems':this['runtimeReviews'][_0x3ae1b3(0x21d)](_0x4812a0=>({..._0x4812a0}))}:{},...this[_0x3ae1b3(0x163)]?{'routes':this[_0x3ae1b3(0x1ce)]['map'](_0x5ef55f=>({..._0x5ef55f}))}:{}},await this[_0x3ae1b3(0x172)](_0x52bb0c,_0xcd9380),this['productsDirty']=![],this['reviewsDirty']=![],this['routesDirty']=![];}catch(_0x28a55d){await this['setStateAsync'](_0x3ae1b3(0x1cc),'Lern-/Konfigurationsdaten\x20konnten\x20nicht\x20gespeichert\x20werden:\x20'+(_0x28a55d instanceof Error?_0x28a55d[_0x3ae1b3(0x19d)]:String(_0x28a55d)),!![]);}}async['refreshExports'](){const _0x17f496=_0xf7bcd5,_0x392ba7={...this['cfg'],'products':this['runtimeProducts'],'routes':this['routes'],'reviewItems':this['runtimeReviews']};await this[_0x17f496(0x190)](_0x17f496(0xd5),JSON[_0x17f496(0xc3)]((0x0,config_tools_1[_0x17f496(0xd7)])(_0x392ba7,VERSION),null,0x2),!![]),await this['setStateAsync'](_0x17f496(0x1f2),JSON[_0x17f496(0xc3)]((0x0,config_tools_1[_0x17f496(0xd9)])(this[_0x17f496(0x1e6)],this['routes']),null,0x2),!![]);}async['loadTrafficMetrics'](){const _0x265253=_0xf7bcd5;try{const _0x494e00=await this[_0x265253(0xce)](_0x265253(0x177));this['traffic']=(0x0,metrics_1[_0x265253(0xf5)])(_0x494e00&&typeof _0x494e00['val']===_0x265253(0x1d6)&&_0x494e00[_0x265253(0x10e)]['trim']()?JSON[_0x265253(0x15d)](_0x494e00[_0x265253(0x10e)]):null);}catch{this[_0x265253(0x214)]=(0x0,metrics_1['emptyTrafficMetrics'])();}await this[_0x265253(0xf1)]();}async[_0xf7bcd5(0x1b2)](){const _0x452ec2=_0xf7bcd5,_0x284632=(0x0,metrics_1[_0x452ec2(0xf5)])(this[_0x452ec2(0x214)]);_0x284632[_0x452ec2(0x171)]!==this[_0x452ec2(0x214)][_0x452ec2(0x171)]&&(this[_0x452ec2(0x214)]=_0x284632,await this[_0x452ec2(0xf1)]());}async['persistTrafficMetrics'](){const _0x5a7df5=_0xf7bcd5;this[_0x5a7df5(0x214)]=(0x0,metrics_1[_0x5a7df5(0xf5)])(this[_0x5a7df5(0x214)]),await this[_0x5a7df5(0x190)](_0x5a7df5(0x213),this['traffic'][_0x5a7df5(0x151)],!![]),await this[_0x5a7df5(0x190)](_0x5a7df5(0x1d2),this[_0x5a7df5(0x214)][_0x5a7df5(0xe9)],!![]),await this[_0x5a7df5(0x190)](_0x5a7df5(0x167),this[_0x5a7df5(0x214)][_0x5a7df5(0x1aa)],!![]),await this[_0x5a7df5(0x190)]('info.alexaWritesToday',this[_0x5a7df5(0x214)]['alexaWrites'],!![]),await this[_0x5a7df5(0x190)]('info.compatibilityWritesToday',this[_0x5a7df5(0x214)][_0x5a7df5(0x121)],!![]),await this[_0x5a7df5(0x190)](_0x5a7df5(0x14e),this['traffic'][_0x5a7df5(0x1da)],!![]),await this[_0x5a7df5(0x190)](_0x5a7df5(0x177),JSON['stringify']({...this['traffic'],'note':_0x5a7df5(0x126)},null,0x2),!![]);}async['loadStatistics'](){const _0x3a4771=_0xf7bcd5;try{const _0x2c0a4b=await this['getStateAsync'](_0x3a4771(0x1d1));this['statistics']=(0x0,statistics_1['normalizeUsageStatistics'])(_0x2c0a4b&&typeof _0x2c0a4b[_0x3a4771(0x10e)]==='string'&&_0x2c0a4b[_0x3a4771(0x10e)][_0x3a4771(0x1e5)]()?JSON['parse'](_0x2c0a4b['val']):null);}catch{this[_0x3a4771(0x158)]=(0x0,statistics_1[_0x3a4771(0x16f)])();}await this[_0x3a4771(0x164)]();}async['persistStatistics'](){const _0x15d254=_0xf7bcd5;this[_0x15d254(0x158)][_0x15d254(0xe2)]=new Date()[_0x15d254(0x187)](),await this[_0x15d254(0x190)](_0x15d254(0x1d1),JSON['stringify'](this[_0x15d254(0x158)],null,0x2),!![]);}async[_0xf7bcd5(0x1bf)](){const _0x510fa2=_0xf7bcd5;try{const _0x115db7=await this[_0x510fa2(0xff)](_0x510fa2(0x219)),_0x4bf6aa=_0x115db7[_0x510fa2(0xf4)]||{},_0x5e42a9=typeof _0x4bf6aa[_0x510fa2(0xfc)]===_0x510fa2(0x1d6)?_0x4bf6aa[_0x510fa2(0xfc)]:'',_0x5225aa=typeof _0x4bf6aa[_0x510fa2(0x15c)]===_0x510fa2(0x1d6)?_0x4bf6aa['latest']:'';this[_0x510fa2(0x107)]=_0x5e42a9||_0x5225aa,this['lastVersionCheck']=new Date()['toISOString'](),await this['setStateAsync'](_0x510fa2(0xd8),this['latestBetaVersion']||'unbekannt',!![]),await this[_0x510fa2(0x190)](_0x510fa2(0x1d8),Boolean(this['latestBetaVersion']&&this[_0x510fa2(0x107)]!==VERSION),!![]),await this['setStateAsync']('info.versionCheck',this[_0x510fa2(0x1b5)]+_0x510fa2(0x136)+(this[_0x510fa2(0x107)]||_0x510fa2(0x129)),!![]);}catch(_0x181f07){this[_0x510fa2(0x1b5)]=new Date()['toISOString'](),await this[_0x510fa2(0x190)](_0x510fa2(0x181),this['lastVersionCheck']+_0x510fa2(0x1ff)+(_0x181f07 instanceof Error?_0x181f07[_0x510fa2(0x19d)]:String(_0x181f07)),!![]);}await this[_0x510fa2(0x131)]();}[_0xf7bcd5(0xff)](_0x2f1402){return new Promise((_0x548bfb,_0x3b8903)=>{const _0x273361=_0x44ef,_0x764c53=https['get'](_0x2f1402,{'headers':{'User-Agent':'ioBroker.shoppingroute/'+VERSION}},_0x1f33eb=>{const _0x53868b=_0x44ef;if((_0x1f33eb['statusCode']||0x1f4)>=0x190){_0x1f33eb[_0x53868b(0x10f)](),_0x3b8903(new Error('HTTP\x20'+_0x1f33eb[_0x53868b(0xe7)]));return;}let _0x33aabb='';_0x1f33eb[_0x53868b(0xf0)](_0x53868b(0x1d5)),_0x1f33eb['on'](_0x53868b(0x155),_0x43f78d=>{_0x33aabb+=_0x43f78d;}),_0x1f33eb['on'](_0x53868b(0x189),()=>{const _0x21d5e2=_0x53868b;try{_0x548bfb(JSON[_0x21d5e2(0x15d)](_0x33aabb));}catch(_0x50e17e){_0x3b8903(_0x50e17e instanceof Error?_0x50e17e:new Error(_0x21d5e2(0x204)));}});});_0x764c53[_0x273361(0x14f)](0x1f40,()=>_0x764c53['destroy'](new Error(_0x273361(0x1b8)))),_0x764c53['on']('error',_0x3b8903);});}async[_0xf7bcd5(0x131)](){const _0x577f53=_0xf7bcd5,_0x147503={'generatedAt':new Date()[_0x577f53(0x187)](),'shoppingrouteVersion':VERSION,'node':process['version'],'alexaInstance':this[_0x577f53(0xd4)],'alexa2Version':this['alexa2Version'],'alexaRemote2Version':this['alexaRemote2Version'],'lists':this[_0x577f53(0x101)]['map'](_0x45b3d8=>({'name':_0x45b3d8[_0x577f53(0x150)],'activeItems':this[_0x577f53(0x199)][_0x577f53(0x1ef)](_0x45b3d8[_0x577f53(0x150)])||0x0})),'dryRun':this[_0x577f53(0x192)],'learningMode':this['learningMode'],'apiSafeMode':this[_0x577f53(0xfd)],'writeCapability':this[_0x577f53(0x1df)],'lastCompatibilityTest':this['lastCompatibilityTest'],'lastError':String((await this[_0x577f53(0xce)](_0x577f53(0x1cc)))?.[_0x577f53(0x10e)]||''),'traffic':this[_0x577f53(0x214)],'update':{'installed':VERSION,'npmBeta':this[_0x577f53(0x107)]||_0x577f53(0x129),'checkedAt':this[_0x577f53(0x1b5)]||_0x577f53(0xf8)},'privacy':_0x577f53(0x19e)};await this[_0x577f53(0x190)](_0x577f53(0x217),JSON[_0x577f53(0xc3)](_0x147503,null,0x2),!![]);}async[_0xf7bcd5(0x132)](_0x3af944){const _0x1a7f21=_0xf7bcd5;await this[_0x1a7f21(0x190)](_0x1a7f21(0x1cc),_0x3af944,!![]);}[_0xf7bcd5(0x1f7)](_0x3a3b55){const _0x521021=_0xf7bcd5;return new Promise(_0x2be61f=>this[_0x521021(0x14f)](_0x2be61f,_0x3a3b55));}static['getDefaultCategories'](){return[...DEFAULT_CATEGORIES];}}exports[_0xf7bcd5(0x1cb)]=ShoppingRoute;if(require['main']!==module)module['exports']=_0xfad040=>new ShoppingRoute(_0xfad040);else((()=>new ShoppingRoute())());
|
|
1
|
+
'use strict';const _0x3c05db=_0x4a37;(function(_0x19f6cf,_0x1ef327){const _0x5c8b05=_0x4a37,_0x379032=_0x19f6cf();while(!![]){try{const _0x1e40dd=-parseInt(_0x5c8b05(0x1b1))/0x1*(-parseInt(_0x5c8b05(0x23b))/0x2)+-parseInt(_0x5c8b05(0x1eb))/0x3*(parseInt(_0x5c8b05(0x234))/0x4)+-parseInt(_0x5c8b05(0x1e7))/0x5+parseInt(_0x5c8b05(0x303))/0x6+parseInt(_0x5c8b05(0x2c0))/0x7+parseInt(_0x5c8b05(0x1c0))/0x8*(-parseInt(_0x5c8b05(0x1be))/0x9)+parseInt(_0x5c8b05(0x2d3))/0xa*(-parseInt(_0x5c8b05(0x2fe))/0xb);if(_0x1e40dd===_0x1ef327)break;else _0x379032['push'](_0x379032['shift']());}catch(_0x4f65a1){_0x379032['push'](_0x379032['shift']());}}}(_0x1fd3,0xe3ce4));var __createBinding=this&&this[_0x3c05db(0x1c5)]||(Object[_0x3c05db(0x1bc)]?function(_0x118ea3,_0x491135,_0x35c7cf,_0x4226a1){const _0x2af69e=_0x3c05db;if(_0x4226a1===undefined)_0x4226a1=_0x35c7cf;var _0x51f8c7=Object[_0x2af69e(0x2c2)](_0x491135,_0x35c7cf);(!_0x51f8c7||(_0x2af69e(0x2a4)in _0x51f8c7?!_0x491135[_0x2af69e(0x1b8)]:_0x51f8c7[_0x2af69e(0x28a)]||_0x51f8c7[_0x2af69e(0x23d)]))&&(_0x51f8c7={'enumerable':!![],'get':function(){return _0x491135[_0x35c7cf];}}),Object[_0x2af69e(0x289)](_0x118ea3,_0x4226a1,_0x51f8c7);}:function(_0x50d86f,_0x4ab240,_0x5ac522,_0x1f7f46){if(_0x1f7f46===undefined)_0x1f7f46=_0x5ac522;_0x50d86f[_0x1f7f46]=_0x4ab240[_0x5ac522];}),__setModuleDefault=this&&this[_0x3c05db(0x1d7)]||(Object[_0x3c05db(0x1bc)]?function(_0x1aa959,_0x59c592){const _0x125baf=_0x3c05db;Object[_0x125baf(0x289)](_0x1aa959,_0x125baf(0x1fc),{'enumerable':!![],'value':_0x59c592});}:function(_0x4ef0f0,_0x3ffed5){const _0x832c81=_0x3c05db;_0x4ef0f0[_0x832c81(0x1fc)]=_0x3ffed5;}),__importStar=this&&this[_0x3c05db(0x2b8)]||(function(){var _0x29759e=function(_0x411fe7){return _0x29759e=Object['getOwnPropertyNames']||function(_0x417555){const _0x7a2be=_0x4a37;var _0x3bff38=[];for(var _0x219536 in _0x417555)if(Object[_0x7a2be(0x2d1)][_0x7a2be(0x2a2)]['call'](_0x417555,_0x219536))_0x3bff38[_0x3bff38[_0x7a2be(0x299)]]=_0x219536;return _0x3bff38;},_0x29759e(_0x411fe7);};return function(_0x2028cb){const _0x169294=_0x4a37;if(_0x2028cb&&_0x2028cb[_0x169294(0x1b8)])return _0x2028cb;var _0x4f328e={};if(_0x2028cb!=null){for(var _0xaa7c7b=_0x29759e(_0x2028cb),_0x4eca63=0x0;_0x4eca63<_0xaa7c7b[_0x169294(0x299)];_0x4eca63++)if(_0xaa7c7b[_0x4eca63]!=='default')__createBinding(_0x4f328e,_0x2028cb,_0xaa7c7b[_0x4eca63]);}return __setModuleDefault(_0x4f328e,_0x2028cb),_0x4f328e;};}());function _0x1fd3(){const _0x549da0=['bind','normalizeRoutesForAdmin','setStateAsync','map','__importStar','unload','end','learningMode','info.alexaWritesToday','TK-Produkte','Aus\x20der\x20Prüfliste\x20übernommen:\x20','retryBaseMs','3477831Kqofyf','toLocaleLowerCase','getOwnPropertyDescriptor','batchPauseMs','type','productGroups','sortList','automatic','changed','mergeUnknownProducts','Für\x20den\x20Kompatibilitätstest\x20wird\x20mindestens\x20ein\x20aktiver\x20Listeneintrag\x20benötigt.','runtimeReviews','info.statistics','Alexa-Datenpunkt\x20für\x20Marktüberschrift\x20fehlt:\x20','control.compatibilityTest','Adapter','control.sortNow','prototype','ensureMarketRoutes','100RzYMGf','applyReviewActions','httpJson','debounceMs','status','.Lists.','checkNpmVersion','apiSafeMode','activeCountByList','unshift','Temporäre\x20Markt-Auswahlliste\x20konnte\x20nicht\x20aktualisiert\x20werden:\x20','ensureProductGroupsConfig','control.importConfigJson','subscribeForeignStates','routes','reviewAccepted','findProduct','refreshExports','info.unknownItems','\x20geplant','discoverAlexaLists','makePreviewText','\x20enthält\x20keine\x20lesbare\x20Liste.','routesDirty','markets','./lib/sorter','info','command','now','updateCompatibilityDiagnostics','abortedRuns','node:fs','native','lastAlexaWrite','applyMarketHeaderAction','join','waitForWriteBudget','info.lastCompatibilityTest','parseConfigImport','\x20–\x20FEHLER:\x20','ioBroker.shoppingroute/','Der\x20Testeintrag\x20enthält\x20keinen\x20sichtbaren\x20value-Text.','alexaRemote2Version','187319CFkLoC','buildMarketProfiles','sort','noch\x20nicht','resume','10345320nofIvo','info.compatibilityWritesToday','.value','info.reviewQueue','runStartupCompatibilityCheck','detail','message','products','cfg','control.refreshFeedbackReport','from','Alexa-Schreibzugriff\x20fehlgeschlagen;\x20Retry\x20','\x20BETA:\x20Dry-Run\x20ist\x20für\x20Ersttests\x20ausdrücklich\x20empfohlen.','Tee/Kaffee','autoLearnProducts','package.json','sortRuns','alexa2Version','alexa2.0','control.marketProfileImport','collectUnknownItems','warn','317tenkgS','setState','sortTimer','control.clearTemporaryPriorityMarket','\x20Dry-Run:\x20Marktüberschrift-Aktion\x20','info.activeItems','config','__esModule','emptyTrafficMetrics','learned','error','create','pow','1179smjiih','loadTrafficMetrics','5464MlArdQ','getStateAsync','armSortTimer','Alexa-Wertedatenpunkt\x20fehlt:\x20','string','__createBinding','info.plannedChangesToday','lastCompatibilityTest','\x20–\x20','scheduleAll','data','control.exportConfig','Alexa-Schreibkompatibilitätstest\x20fehlgeschlagen;\x20Sortierschreibzugriffe\x20bleiben\x20blockiert.','/Minute\x20erreicht,\x20Pause\x20','control.temporaryPriorityMarket','ensureTrafficDay','@iobroker/adapter-core','ready','version','pendingLists','maxWriteRetries','compatibilityWrites','normalizeTrafficMetrics','__setModuleDefault','getActiveMarkets','statusCode','API-Schonmodus:\x20Schreiblimit\x20','common','isArray','autoAliasSuggestions','slice','callback','updateTemporaryMarketStateOptions','ShoppingRoute-Konfiguration\x20importiert;\x20Instanz\x20wird\x20durch\x20ioBroker\x20neu\x20gestartet.','dirname','set','“\x20importiert.','reviewItems','lists','1005030QOUGEl','startsWith','\x20Schreibzugriffen\x20(','wait','36087sUAkin','info.versionBeta','info.updateAvailable','productText','persistStatistics','.#New','\x20nicht\x20automatisch\x20gelesen\x20werden:\x20','Milchprodukte','\x20ms).','getMarketsOptional','updateConfig','\x20ms.','alexaWrites','persistTrafficMetrics','has','SHOP','./lib/parser','default','info.lastLearnedItems','floor','beta','utf8','ShoppingRoute\x20','unknown','control.resetStatistics','setTimeout','log','reviewsDirty','trim','priorityMarketForList','dryRun','stringify','onReady','latest','find','Live-Test\x20fehlgeschlagen:\x20Alexa2\x20hat\x20den\x20value-Schreibzugriff\x20nicht\x20innerhalb\x20von\x2010\x20Sekunden\x20bestätigt.','onUnload','listStateId','writePauseMs','value','./lib/market-plan','alexaInstance','Produktnamen,\x20Einkaufslistentexte,\x20Aliase\x20und\x20komplette\x20Konfiguration\x20sind\x20absichtlich\x20nicht\x20enthalten.','\x20[DRY-RUN]','Noch\x20nicht\x20geprüft.','toISOString','batchSize','Live-Test\x20konnte\x20nicht\x20abgeschlossen\x20werden:\x20','Keine\x20aktive\x20Alexa-Liste\x20konfiguriert.','automaticLearned','control.enabled','runtimeProducts','\x20–\x20BETA-Sicherheitsblock:\x20keine\x20Alexa-Schreibzugriffe','off','Konserven','system.adapter.','processPendingSorts','\x20aktiv','push','product','namespace','values','./adapter/shoppingroute/backup-transfer.html?instance=','add','temporaryPriorityMarket','clearTimeout','sortingListName','writeAlexaState','HTTP\x20','localeCompare','lastVersionCheck','sendTo','stateChange','564WAgfHi','unbekannt','node:path','Getränke','known-bug','\x20Dry-Run:\x20','fallbackMarket','5482UQNSqZ','plannedChanges','configurable','setForeignStateAsync','Alexa-Schreibzugriffe\x20blockiert:\x20Kompatibilitätstest\x20fehlgeschlagen.','info.traffic',':\x20Liste\x20wurde\x20während\x20der\x20Sortierung\x20ergänzt\x20oder\x20abgehakt.\x20Neue\x20Berechnung\x20folgt.','control.resetTrafficStats','persistRuntimeConfig','info.marketProfiles','readFileSync','onStateChange','getForeignObjectAsync','.json','lastSortRun','size','latestBetaVersion','setError','Wurst/Salate/Teigwaren','\x20–\x20npm\x20beta:\x20','name','Noch\x20nicht\x20ausgeführt.','getProductGroups',':\x20Alexa\x20hat\x20','marketHeadersEnabled','minimumItemsPerMarket','./lib/metrics','statistics','getLists','filter','base','knownActiveIds','Fleisch/Fisch','traffic','Instanzobjekt\x20nicht\x20gefunden:\x20','readList','Marktprofil\x20„','accepted','mergeReviewQueue','control.*','val','getForeignStateAsync','runtimeRoutes','priorityMarket','ShoppingRoute','live-failed','updateFeedbackReport','Haushalt/Hygiene','Kompatibilitätstest:\x20','info.feedbackReport','\x20geplante\x20Textänderung(en)\x20nicht\x20bestätigt;\x20kein\x20automatischer\x20Endlos-Retry.','info.lastSort','recordNewItems','destroy','alexa-remote2','./lib/statistics','info.connection','compatibilityDetail','scheduleSort','Älteste\x20bis\x20neueste\x20/\x20Oldest\x20to\x20newest','onMessage','minItemsPerMarket','isMarketHeader','max',':\x20Marktüberschrift\x20','\x20Änderung(en)\x20geplant','runLiveCompatibilityTest','next','versionTimer','review','requiredMarkets','info.lastPlan','isEnabled','writeCapability','updateActiveItemCount','API-Schonmodus:\x20Batch-Pause\x20nach\x20','fromEntries','parse','defineProperty','writable','market','lastUpdated','\x20enthält\x20kein\x20JSON-Array.','Alexa-Schreibzugriffe\x20blockiert:\x20bekannte\x20fehlerhafte\x20alexa-remote2\x20version-Query\x20erkannt.','resolve','listChangedDuringSort','productsDirty','exports','enabled','.items.','compatibilityTesting','\x20aktualisiert','writeTimestamps','parseItem','length','canWriteAlexa','Listen:\x20','info.abortedRunsToday','__none__','info.sortRunsToday','info.lastError','added','\x20Änderung(en),\x20','hasOwnProperty','Nonfood','get','loadStatistics','0.3.0','info.aliasSuggestions','info.configExport','activeItems','listConfigs','Alexa-Schreibzugriffe\x20blockiert:\x20Schreibkompatibilität\x20noch\x20nicht\x20bestätigt;\x20control.compatibilityTest\x20ausführen.','ack','./lib/compatibility','info.compatibility',':\x20Eintrag\x20wurde\x20während\x20der\x20Sortierung\x20verändert.\x20Neue\x20Berechnung\x20folgt.','Schokolade/Naschen','info.versionCheck','shoppingrouteBackup','./lib/config-tools'];_0x1fd3=function(){return _0x549da0;};return _0x1fd3();}Object[_0x3c05db(0x289)](exports,_0x3c05db(0x1b8),{'value':!![]}),exports['ShoppingRoute']=void 0x0;function _0x4a37(_0x2ebafe,_0x3d8d50){_0x2ebafe=_0x2ebafe-0x1a7;const _0x1fd3ee=_0x1fd3();let _0x4a379b=_0x1fd3ee[_0x2ebafe];return _0x4a379b;}const utils=__importStar(require(_0x3c05db(0x1d0))),fs=__importStar(require(_0x3c05db(0x2f2))),path=__importStar(require(_0x3c05db(0x236))),https=__importStar(require('node:https')),compatibility_1=require(_0x3c05db(0x2ad)),metrics_1=require(_0x3c05db(0x255)),sorter_1=require(_0x3c05db(0x2ec)),parser_1=require(_0x3c05db(0x1fb)),market_plan_1=require(_0x3c05db(0x213)),config_tools_1=require(_0x3c05db(0x2b3)),statistics_1=require(_0x3c05db(0x272)),VERSION=_0x3c05db(0x2a6),DEFAULT_CATEGORIES=['Obst/Gemüse',_0x3c05db(0x1a8),'Brot/Gebäck',_0x3c05db(0x2b0),_0x3c05db(0x25b),_0x3c05db(0x24d),_0x3c05db(0x1f2),_0x3c05db(0x26a),_0x3c05db(0x2a3),_0x3c05db(0x221),'H-Milch/Nudeln','Kosmetikartikel',_0x3c05db(0x237),_0x3c05db(0x2bd),'Sonstiges'];class ShoppingRoute extends utils[_0x3c05db(0x2cf)]{['sortTimer']=null;['versionTimer']=null;[_0x3c05db(0x1d3)]=new Set();['sortingListName']='';[_0x3c05db(0x290)]=![];['runtimeProducts']=[];['runtimeReviews']=[];[_0x3c05db(0x291)]=![];['reviewsDirty']=![];[_0x3c05db(0x2ea)]=![];[_0x3c05db(0x265)]=[];['compatibilityTesting']=![];[_0x3c05db(0x284)]=_0x3c05db(0x202);[_0x3c05db(0x274)]=_0x3c05db(0x217);[_0x3c05db(0x1ac)]=_0x3c05db(0x235);['alexaRemote2Version']=_0x3c05db(0x235);[_0x3c05db(0x1c7)]=_0x3c05db(0x250);['traffic']=(0x0,metrics_1['emptyTrafficMetrics'])();[_0x3c05db(0x256)]=(0x0,statistics_1['emptyUsageStatistics'])();[_0x3c05db(0x25a)]=new Map();[_0x3c05db(0x2db)]=new Map();[_0x3c05db(0x297)]=[];['temporaryPriorityMarket']='';['latestBetaVersion']='';[_0x3c05db(0x231)]='';constructor(_0x430af5={}){const _0x33602c=_0x3c05db;super({..._0x430af5,'name':'shoppingroute'}),this['on'](_0x33602c(0x1d1),this[_0x33602c(0x20b)][_0x33602c(0x2b4)](this)),this['on'](_0x33602c(0x233),this['onStateChange']['bind'](this)),this['on'](_0x33602c(0x309),this[_0x33602c(0x277)]['bind'](this)),this['on'](_0x33602c(0x2b9),this[_0x33602c(0x20f)][_0x33602c(0x2b4)](this));}get[_0x3c05db(0x30b)](){const _0x10cba5=_0x3c05db;return this[_0x10cba5(0x1b7)];}get['alexaInstance'](){const _0x439fd3=_0x3c05db;return String(this[_0x439fd3(0x30b)]['alexaInstance']||_0x439fd3(0x1ad))['trim']()||_0x439fd3(0x1ad);}get['listConfigs'](){const _0x2821b3=_0x3c05db,_0x54f9f8=Array[_0x2821b3(0x1dc)](this[_0x2821b3(0x30b)][_0x2821b3(0x1e6)])?this[_0x2821b3(0x30b)][_0x2821b3(0x1e6)][_0x2821b3(0x258)](_0x5ef368=>_0x5ef368&&_0x5ef368[_0x2821b3(0x24f)]&&_0x5ef368[_0x2821b3(0x293)]!==![]):[];if(_0x54f9f8[_0x2821b3(0x299)]>0x0)return _0x54f9f8;return[{'name':String(this['cfg']['listName']||_0x2821b3(0x1fa))[_0x2821b3(0x207)]()||'SHOP','enabled':!![],'priorityMarket':''}];}[_0x3c05db(0x210)](_0x1a6158){const _0x23795f=_0x3c05db;return this[_0x23795f(0x214)]+'.Lists.'+_0x1a6158+'.json';}get[_0x3c05db(0x2eb)](){const _0x45bcc0=_0x3c05db,_0x395451=Array[_0x45bcc0(0x1dc)](this[_0x45bcc0(0x30b)][_0x45bcc0(0x2eb)])?this[_0x45bcc0(0x30b)][_0x45bcc0(0x2eb)]:[];return _0x395451[_0x45bcc0(0x258)](_0x30a3a2=>_0x30a3a2&&_0x30a3a2[_0x45bcc0(0x24f)]&&_0x30a3a2[_0x45bcc0(0x293)]!==![]);}get[_0x3c05db(0x2e1)](){const _0x25953c=_0x3c05db;return this[_0x25953c(0x265)][_0x25953c(0x299)]?this['runtimeRoutes']:Array['isArray'](this['cfg']['routes'])?this[_0x25953c(0x30b)][_0x25953c(0x2e1)][_0x25953c(0x258)](Boolean):[];}get[_0x3c05db(0x2c5)](){const _0x74e2de=_0x3c05db,_0x5d07d7=Array[_0x74e2de(0x1dc)](this[_0x74e2de(0x30b)][_0x74e2de(0x2c5)])?this[_0x74e2de(0x30b)]['productGroups']:[],_0x132a72=_0x5d07d7[_0x74e2de(0x299)]>0x0?_0x5d07d7:DEFAULT_CATEGORIES['map'](_0x5777f6=>({'name':_0x5777f6})),_0x199be5=new Set(),_0x45c336=[];for(const _0x45cf36 of _0x132a72){const _0x632741=String(_0x45cf36?.[_0x74e2de(0x24f)]||'')[_0x74e2de(0x207)](),_0x4e00e4=_0x632741['toLocaleLowerCase']('de');if(!_0x632741||_0x199be5['has'](_0x4e00e4))continue;_0x199be5[_0x74e2de(0x22a)](_0x4e00e4),_0x45c336[_0x74e2de(0x225)]({'name':_0x632741});}return _0x45c336[_0x74e2de(0x300)]((_0x42fa26,_0x5ac31b)=>_0x42fa26[_0x74e2de(0x24f)][_0x74e2de(0x230)](_0x5ac31b[_0x74e2de(0x24f)],'de',{'sensitivity':_0x74e2de(0x259)}));}get[_0x3c05db(0x30a)](){const _0x1b280b=_0x3c05db;return this[_0x1b280b(0x21e)][_0x1b280b(0x258)](_0x2fcdeb=>_0x2fcdeb&&_0x2fcdeb[_0x1b280b(0x24f)]);}get[_0x3c05db(0x23a)](){const _0x1b22de=_0x3c05db;return String(this[_0x1b22de(0x30b)][_0x1b22de(0x23a)]||'Ohne\x20Markt')[_0x1b22de(0x207)]()||'Ohne\x20Markt';}get[_0x3c05db(0x266)](){const _0x22bc60=_0x3c05db;return String(this['cfg'][_0x22bc60(0x266)]||'')[_0x22bc60(0x207)]();}[_0x3c05db(0x208)](_0x2003c2){const _0x7e9003=_0x3c05db;if(this[_0x7e9003(0x22b)])return this['temporaryPriorityMarket'];const _0x1027f7=this[_0x7e9003(0x2aa)][_0x7e9003(0x20d)](_0x2ced56=>_0x2ced56['name']===_0x2003c2);return String(_0x1027f7?.[_0x7e9003(0x266)]||this['priorityMarket']||'')[_0x7e9003(0x207)]();}get[_0x3c05db(0x2bb)](){const _0x9b9d11=_0x3c05db,_0x524644=String(this['cfg'][_0x9b9d11(0x2bb)]||'')[_0x9b9d11(0x207)]();if(_0x524644===_0x9b9d11(0x2c7)||_0x524644===_0x9b9d11(0x280)||_0x524644===_0x9b9d11(0x220))return _0x524644;return this[_0x9b9d11(0x30b)][_0x9b9d11(0x1a9)]===![]?'off':'automatic';}get[_0x3c05db(0x2d6)](){const _0x1fc74d=_0x3c05db;return Math['max'](0xfa,Number(this[_0x1fc74d(0x30b)][_0x1fc74d(0x2d6)])||0x1388);}get[_0x3c05db(0x211)](){const _0x1affa3=_0x3c05db;return Math[_0x1affa3(0x27a)](0xfa,Number(this[_0x1affa3(0x30b)][_0x1affa3(0x211)])||0x3e8);}get['dryRun'](){const _0x4cc849=_0x3c05db;return this[_0x4cc849(0x30b)]['dryRun']!==![];}get['apiSafeMode'](){const _0x8c2738=_0x3c05db;return this['cfg'][_0x8c2738(0x2da)]!==![];}get['maxWritesPerMinute'](){const _0x331e71=_0x3c05db;return Math[_0x331e71(0x27a)](0x1,Number(this['cfg']['maxWritesPerMinute'])||0x14);}get['batchSize'](){const _0x2a6543=_0x3c05db;return Math[_0x2a6543(0x27a)](0x1,Number(this[_0x2a6543(0x30b)]['batchSize'])||0xa);}get[_0x3c05db(0x2c3)](){const _0x4a7729=_0x3c05db;return Math[_0x4a7729(0x27a)](0x0,Number(this['cfg']['batchPauseMs'])||0x1388);}get[_0x3c05db(0x1d4)](){const _0x38e1a8=_0x3c05db;return Math[_0x38e1a8(0x27a)](0x0,Math['min'](0x5,Number(this[_0x38e1a8(0x30b)][_0x38e1a8(0x1d4)])||0x2));}get[_0x3c05db(0x2bf)](){const _0x36bb04=_0x3c05db;return Math[_0x36bb04(0x27a)](0xfa,Number(this[_0x36bb04(0x30b)]['retryBaseMs'])||0x5dc);}get[_0x3c05db(0x253)](){const _0x2bba75=_0x3c05db;return this[_0x2bba75(0x30b)]['marketHeaders']===!![];}get['minimumItemsPerMarket'](){const _0x8decc0=_0x3c05db;return Math[_0x8decc0(0x27a)](0x1,Math[_0x8decc0(0x1fe)](Number(this['cfg'][_0x8decc0(0x278)])||0x1));}async[_0x3c05db(0x20b)](){const _0x225148=_0x3c05db;this[_0x225148(0x21e)]=(Array[_0x225148(0x1dc)](this[_0x225148(0x30b)][_0x225148(0x30a)])?this[_0x225148(0x30b)]['products']:[])[_0x225148(0x258)](_0x3d1a1f=>_0x3d1a1f&&_0x3d1a1f[_0x225148(0x24f)])['map'](_0x586180=>({..._0x586180}))[_0x225148(0x300)]((_0x58c305,_0x3a18f0)=>_0x58c305[_0x225148(0x24f)][_0x225148(0x230)](_0x3a18f0['name'],'de',{'sensitivity':_0x225148(0x259)})),this['runtimeReviews']=(Array[_0x225148(0x1dc)](this[_0x225148(0x30b)][_0x225148(0x1e5)])?this[_0x225148(0x30b)][_0x225148(0x1e5)]:[])['map'](_0x4ebfdd=>({..._0x4ebfdd})),this[_0x225148(0x265)]=(0x0,config_tools_1[_0x225148(0x2b5)])(Array[_0x225148(0x1dc)](this[_0x225148(0x30b)][_0x225148(0x2e1)])?this[_0x225148(0x30b)][_0x225148(0x2e1)][_0x225148(0x258)](Boolean):[]),this[_0x225148(0x2ea)]=JSON[_0x225148(0x20a)](this[_0x225148(0x265)])!==JSON[_0x225148(0x20a)](Array[_0x225148(0x1dc)](this[_0x225148(0x30b)][_0x225148(0x2e1)])?this['cfg']['routes']:[]),await this[_0x225148(0x1bf)](),await this[_0x225148(0x2a5)]();const _0x3f7130=(0x0,sorter_1[_0x225148(0x2d4)])(this[_0x225148(0x21e)],this[_0x225148(0x2cb)]);_0x3f7130[_0x225148(0x260)]['length']&&(this[_0x225148(0x21e)]=_0x3f7130[_0x225148(0x30a)],this[_0x225148(0x2cb)]=_0x3f7130['remainingReviews'],this['productsDirty']=!![],this['reviewsDirty']=!![],this['statistics'][_0x225148(0x2e2)]+=_0x3f7130['accepted']['length'],await this['persistStatistics'](),this[_0x225148(0x205)]['info'](_0x225148(0x2be)+_0x3f7130[_0x225148(0x260)][_0x225148(0x2b7)](_0x353328=>'„'+_0x353328['name']+'“')[_0x225148(0x2f6)](',\x20')+'.'));await this[_0x225148(0x2de)](),this['ensureRoutesForMarketsAndGroups'](),await this['updateTemporaryMarketStateOptions'](),await this[_0x225148(0x243)](),await this[_0x225148(0x2b6)](_0x225148(0x273),![],!![]),await this[_0x225148(0x2b6)](_0x225148(0x29f),'',!![]),await this[_0x225148(0x2b6)]('info.versionInstalled',VERSION,!![]),await this[_0x225148(0x2b6)]('control.sortNow',![],!![]),await this[_0x225148(0x2b6)](_0x225148(0x2ce),![],!![]),await this[_0x225148(0x2b6)]('control.resetTrafficStats',![],!![]),await this[_0x225148(0x2b6)](_0x225148(0x203),![],!![]),await this[_0x225148(0x2b6)](_0x225148(0x1cb),![],!![]),await this[_0x225148(0x2b6)](_0x225148(0x30c),![],!![]),await this['setStateAsync'](_0x225148(0x1b4),![],!![]);const _0x52a99b=await this[_0x225148(0x1c1)](_0x225148(0x21d));if(!_0x52a99b)await this['setStateAsync'](_0x225148(0x21d),!![],!![]);const _0x582f95=await this[_0x225148(0x1c1)]('control.temporaryPriorityMarket'),_0x6f6f65=String(_0x582f95?.['val']??this[_0x225148(0x30b)][_0x225148(0x22b)]??'')['trim']();this['temporaryPriorityMarket']=_0x6f6f65==='__none__'?'':_0x6f6f65,await this[_0x225148(0x2b6)](_0x225148(0x1ce),this['temporaryPriorityMarket']||'__none__',!![]),this['subscribeStates'](_0x225148(0x262));for(const _0x45d991 of this[_0x225148(0x2aa)])this[_0x225148(0x2e0)](this[_0x225148(0x210)](_0x45d991[_0x225148(0x24f)]));let _0x568046=![];for(const _0xf23c1 of this[_0x225148(0x2aa)]){const _0x2aa183=await this[_0x225148(0x264)](this['listStateId'](_0xf23c1[_0x225148(0x24f)]));if(!_0x2aa183||typeof _0x2aa183[_0x225148(0x263)]!=='string'){this[_0x225148(0x205)][_0x225148(0x1b0)]('Alexa-Liste\x20nicht\x20gefunden:\x20'+this[_0x225148(0x210)](_0xf23c1['name']));continue;}_0x568046=!![];try{const _0x49fabf=JSON[_0x225148(0x288)](_0x2aa183[_0x225148(0x263)]),_0x5eaf88=Array[_0x225148(0x1dc)](_0x49fabf)?_0x49fabf:[],_0x571742=(0x0,sorter_1[_0x225148(0x2a9)])(_0x5eaf88),_0x3bc079=(0x0,market_plan_1['realActiveItems'])(_0x5eaf88,this[_0x225148(0x2eb)]);this['knownActiveIds'][_0x225148(0x1e3)](_0xf23c1[_0x225148(0x24f)],new Set(_0x571742['map'](_0x431f9c=>String(_0x431f9c['id'])))),this['activeCountByList'][_0x225148(0x1e3)](_0xf23c1['name'],_0x3bc079[_0x225148(0x299)]);}catch{this[_0x225148(0x25a)][_0x225148(0x1e3)](_0xf23c1['name'],new Set());}}await this['setStateAsync'](_0x225148(0x273),_0x568046,!![]),await this[_0x225148(0x285)]();if(!_0x568046){await this['setError']('Keine\x20der\x20konfigurierten\x20Alexa-Listen\x20ist\x20lesbar:\x20'+this['listConfigs'][_0x225148(0x2b7)](_0x3230a5=>_0x3230a5[_0x225148(0x24f)])[_0x225148(0x2f6)](',\x20'));return;}await this[_0x225148(0x307)](),await this[_0x225148(0x2e4)](),await this[_0x225148(0x2d9)](),await this[_0x225148(0x269)](),this['versionTimer']=this['setInterval'](()=>void this['checkNpmVersion'](),0x6*0x3c*0x3c*0x3e8),this['log']['warn'](_0x225148(0x201)+VERSION+_0x225148(0x1a7)),this['log'][_0x225148(0x2ed)](_0x225148(0x29b)+this[_0x225148(0x2aa)]['map'](_0x20c4a2=>_0x20c4a2[_0x225148(0x24f)])[_0x225148(0x2f6)](',\x20')+'.\x20Lernmodus:\x20'+this['learningMode']+'.'),this['log']['info']('WICHTIG:\x20Die\x20Alexa-App\x20muss\x20für\x20jede\x20verwaltete\x20Liste\x20auf\x20„Älteste\x20bis\x20neueste“\x20gestellt\x20sein.'),this['scheduleAll'](0x2bc);}async['discoverAlexaLists'](_0x3b5b03=this['alexaInstance']){const _0x39222a=_0x3c05db,_0x55d5b6=String(_0x3b5b03||this[_0x39222a(0x214)])[_0x39222a(0x207)]()||this[_0x39222a(0x214)],_0x17ad44=_0x55d5b6+'.Lists.',_0x3c896f=_0x39222a(0x248),_0x371c04=new Set();try{const _0x3cac9d=await this['getForeignObjectsAsync'](_0x55d5b6+'.Lists.*.json','state');for(const _0x522117 of Object['keys'](_0x3cac9d||{})){if(!_0x522117[_0x39222a(0x1e8)](_0x17ad44)||!_0x522117['endsWith'](_0x3c896f))continue;const _0x38995f=_0x522117[_0x39222a(0x1de)](_0x17ad44[_0x39222a(0x299)],-_0x3c896f['length'])['trim']();if(_0x38995f&&!_0x38995f['includes']('.'))_0x371c04[_0x39222a(0x22a)](_0x38995f);}}catch(_0x494726){this['log']['debug']('Alexa-Listen\x20konnten\x20für\x20'+_0x55d5b6+_0x39222a(0x1f1)+String(_0x494726));}for(const _0x295b05 of this[_0x39222a(0x2aa)])if(_0x295b05[_0x39222a(0x24f)])_0x371c04['add'](String(_0x295b05[_0x39222a(0x24f)])[_0x39222a(0x207)]());return[..._0x371c04][_0x39222a(0x258)](Boolean)[_0x39222a(0x300)]((_0x1a81a5,_0x2fb5f8)=>_0x1a81a5[_0x39222a(0x230)](_0x2fb5f8,'de',{'sensitivity':_0x39222a(0x259)}));}async['onMessage'](_0x359f01){const _0x4c53ef=_0x3c05db;if(!_0x359f01||!_0x359f01['callback'])return;if(_0x359f01['command']==='getBackupUiUrl'){this[_0x4c53ef(0x232)](_0x359f01[_0x4c53ef(0x30d)],_0x359f01['command'],{'openUrl':_0x4c53ef(0x229)+encodeURIComponent(this[_0x4c53ef(0x227)]),'window':_0x4c53ef(0x2b2)},_0x359f01[_0x4c53ef(0x1df)]);return;}if(_0x359f01[_0x4c53ef(0x2ee)]===_0x4c53ef(0x251)){const _0xaedc2d=this['productGroups'][_0x4c53ef(0x2b7)](_0x3bdaf6=>({'value':_0x3bdaf6['name'],'label':_0x3bdaf6[_0x4c53ef(0x24f)]}))[_0x4c53ef(0x300)]((_0x22ae82,_0x2f90bf)=>_0x22ae82['label'][_0x4c53ef(0x230)](_0x2f90bf['label'],'de',{'sensitivity':_0x4c53ef(0x259)}));this[_0x4c53ef(0x232)](_0x359f01[_0x4c53ef(0x30d)],_0x359f01[_0x4c53ef(0x2ee)],_0xaedc2d,_0x359f01['callback']);return;}if(_0x359f01[_0x4c53ef(0x2ee)]==='getMarkets'||_0x359f01[_0x4c53ef(0x2ee)]==='getMarketsOptional'||_0x359f01[_0x4c53ef(0x2ee)]===_0x4c53ef(0x1d8)){const _0x474f56=_0x359f01[_0x4c53ef(0x2ee)]===_0x4c53ef(0x1d8)?this['markets']['filter'](_0x7d7b33=>_0x7d7b33[_0x4c53ef(0x293)]!==![]):this[_0x4c53ef(0x2eb)],_0x40a8c5=_0x474f56['map'](_0x5eb430=>({'value':_0x5eb430['name'],'label':_0x5eb430['name']}))[_0x4c53ef(0x300)]((_0x41e6bf,_0xc6d0fc)=>_0x41e6bf['label']['localeCompare'](_0xc6d0fc['label'],'de',{'sensitivity':'base'}));if(_0x359f01[_0x4c53ef(0x2ee)]===_0x4c53ef(0x1f4))_0x40a8c5[_0x4c53ef(0x2dc)]({'value':'','label':'—'});this['sendTo'](_0x359f01[_0x4c53ef(0x30d)],_0x359f01['command'],_0x40a8c5,_0x359f01[_0x4c53ef(0x1df)]);return;}if(_0x359f01[_0x4c53ef(0x2ee)]==='getAlexaLists'||_0x359f01[_0x4c53ef(0x2ee)]===_0x4c53ef(0x257)){const _0x1fa141=String(_0x359f01['message']?.['alexaInstance']||this[_0x4c53ef(0x214)])[_0x4c53ef(0x207)]()||this['alexaInstance'],_0xe783cc=await this[_0x4c53ef(0x2e7)](_0x1fa141),_0x59aa3b=_0xe783cc['map'](_0x4da9bd=>({'value':_0x4da9bd,'label':_0x4da9bd}));this[_0x4c53ef(0x232)](_0x359f01[_0x4c53ef(0x30d)],_0x359f01[_0x4c53ef(0x2ee)],_0x59aa3b,_0x359f01[_0x4c53ef(0x1df)]);}}async[_0x3c05db(0x246)](_0x1e2229,_0x34730a){const _0x1cfdf2=_0x3c05db;if(!_0x34730a)return;const _0x179de0=this[_0x1cfdf2(0x227)]+'.';if(_0x1e2229===_0x179de0+'control.sortNow'&&!_0x34730a[_0x1cfdf2(0x2ac)]&&_0x34730a['val']===!![]){await this['setStateAsync'](_0x1cfdf2(0x2d0),![],!![]),this[_0x1cfdf2(0x1c9)](0x64);return;}if(_0x1e2229===_0x179de0+'control.compatibilityTest'&&!_0x34730a[_0x1cfdf2(0x2ac)]&&_0x34730a[_0x1cfdf2(0x263)]===!![]){await this['setStateAsync'](_0x1cfdf2(0x2ce),![],!![]),await this[_0x1cfdf2(0x27d)]();return;}if(_0x1e2229===_0x179de0+'control.resetTrafficStats'&&!_0x34730a[_0x1cfdf2(0x2ac)]&&_0x34730a[_0x1cfdf2(0x263)]===!![]){await this[_0x1cfdf2(0x2b6)](_0x1cfdf2(0x242),![],!![]),this[_0x1cfdf2(0x25c)]=(0x0,metrics_1[_0x1cfdf2(0x1b9)])(),await this['persistTrafficMetrics']();return;}if(_0x1e2229===_0x179de0+_0x1cfdf2(0x203)&&!_0x34730a[_0x1cfdf2(0x2ac)]&&_0x34730a[_0x1cfdf2(0x263)]===!![]){await this['setStateAsync'](_0x1cfdf2(0x203),![],!![]),this[_0x1cfdf2(0x256)]=(0x0,statistics_1['emptyUsageStatistics'])(),await this[_0x1cfdf2(0x1ef)]();return;}if(_0x1e2229===_0x179de0+_0x1cfdf2(0x1cb)&&!_0x34730a[_0x1cfdf2(0x2ac)]&&_0x34730a[_0x1cfdf2(0x263)]===!![]){await this[_0x1cfdf2(0x2b6)](_0x1cfdf2(0x1cb),![],!![]),await this[_0x1cfdf2(0x2e4)]();return;}if(_0x1e2229===_0x179de0+'control.refreshFeedbackReport'&&!_0x34730a[_0x1cfdf2(0x2ac)]&&_0x34730a['val']===!![]){await this[_0x1cfdf2(0x2b6)]('control.refreshFeedbackReport',![],!![]),await this['updateFeedbackReport']();return;}if(_0x1e2229===_0x179de0+_0x1cfdf2(0x1b4)&&!_0x34730a['ack']&&_0x34730a['val']===!![]){await this[_0x1cfdf2(0x2b6)]('control.clearTemporaryPriorityMarket',![],!![]),this['temporaryPriorityMarket']='',await this[_0x1cfdf2(0x2b6)](_0x1cfdf2(0x1ce),_0x1cfdf2(0x29d),!![]),this[_0x1cfdf2(0x1c9)](0x64);return;}if(_0x1e2229===_0x179de0+_0x1cfdf2(0x1ce)&&!_0x34730a[_0x1cfdf2(0x2ac)]){const _0x1d7e49=typeof _0x34730a['val']==='string'?_0x34730a[_0x1cfdf2(0x263)]['trim']():'';this[_0x1cfdf2(0x22b)]=_0x1d7e49===_0x1cfdf2(0x29d)?'':_0x1d7e49,await this[_0x1cfdf2(0x2b6)]('control.temporaryPriorityMarket',this[_0x1cfdf2(0x22b)]||_0x1cfdf2(0x29d),!![]),this[_0x1cfdf2(0x1c9)](0x64);return;}if(_0x1e2229===_0x179de0+_0x1cfdf2(0x2df)&&!_0x34730a[_0x1cfdf2(0x2ac)]&&typeof _0x34730a['val']===_0x1cfdf2(0x1c4)&&_0x34730a[_0x1cfdf2(0x263)][_0x1cfdf2(0x207)]()){try{const _0x28a23a=(0x0,config_tools_1[_0x1cfdf2(0x2f9)])(_0x34730a[_0x1cfdf2(0x263)]);await this[_0x1cfdf2(0x2b6)](_0x1cfdf2(0x2df),'',!![]),await this[_0x1cfdf2(0x1f5)](_0x28a23a),this[_0x1cfdf2(0x205)]['info'](_0x1cfdf2(0x1e1));}catch(_0x103be1){await this[_0x1cfdf2(0x2b6)]('control.importConfigJson','',!![]),await this['setError']('Konfigurationsimport\x20fehlgeschlagen:\x20'+(_0x103be1 instanceof Error?_0x103be1[_0x1cfdf2(0x309)]:String(_0x103be1)));}return;}if(_0x1e2229===_0x179de0+_0x1cfdf2(0x1ae)&&!_0x34730a['ack']&&typeof _0x34730a[_0x1cfdf2(0x263)]===_0x1cfdf2(0x1c4)&&_0x34730a['val']['trim']()){try{const _0x5cfff5=(0x0,config_tools_1['importMarketProfile'])(_0x34730a['val'],this[_0x1cfdf2(0x2eb)],this[_0x1cfdf2(0x2e1)]);await this['setStateAsync'](_0x1cfdf2(0x1ae),'',!![]),await this[_0x1cfdf2(0x1f5)]({'markets':_0x5cfff5[_0x1cfdf2(0x2eb)],'routes':_0x5cfff5[_0x1cfdf2(0x2e1)]}),this['log']['info'](_0x1cfdf2(0x25f)+_0x5cfff5[_0x1cfdf2(0x28b)]+_0x1cfdf2(0x1e4));}catch(_0x3740fe){await this['setStateAsync'](_0x1cfdf2(0x1ae),'',!![]),await this[_0x1cfdf2(0x24c)]('Marktprofil-Import\x20fehlgeschlagen:\x20'+(_0x3740fe instanceof Error?_0x3740fe[_0x1cfdf2(0x309)]:String(_0x3740fe)));}return;}if(_0x1e2229===_0x179de0+_0x1cfdf2(0x21d)&&!_0x34730a[_0x1cfdf2(0x2ac)]){await this[_0x1cfdf2(0x2b6)](_0x1cfdf2(0x21d),Boolean(_0x34730a[_0x1cfdf2(0x263)]),!![]);if(_0x34730a[_0x1cfdf2(0x263)]===!![])this['scheduleAll'](0xfa);return;}const _0x2ecc04=this[_0x1cfdf2(0x2aa)][_0x1cfdf2(0x20d)](_0x31c0c2=>_0x1e2229===this[_0x1cfdf2(0x210)](_0x31c0c2['name']));if(_0x2ecc04){await this['setStateAsync'](_0x1cfdf2(0x273),!![],!![]);if(this[_0x1cfdf2(0x295)])return;if(this['sortingListName']===_0x2ecc04['name'])this[_0x1cfdf2(0x290)]=!![];this[_0x1cfdf2(0x275)](_0x2ecc04[_0x1cfdf2(0x24f)],this['debounceMs']);}}[_0x3c05db(0x20f)](_0xfacee4){const _0x3f6c6b=_0x3c05db;if(this['sortTimer'])this[_0x3f6c6b(0x22c)](this[_0x3f6c6b(0x1b3)]);if(this[_0x3f6c6b(0x27f)])this['clearInterval'](this[_0x3f6c6b(0x27f)]);void this[_0x3f6c6b(0x1b2)]('info.connection',![],!![]),_0xfacee4();}[_0x3c05db(0x1c9)](_0xa5c3be){const _0x2f94d1=_0x3c05db;for(const _0x282171 of this['listConfigs'])this[_0x2f94d1(0x1d3)][_0x2f94d1(0x22a)](_0x282171[_0x2f94d1(0x24f)]);this[_0x2f94d1(0x1c2)](_0xa5c3be);}[_0x3c05db(0x275)](_0x1b5952,_0x54f482){const _0xebec9=_0x3c05db;this[_0xebec9(0x1d3)]['add'](_0x1b5952),this[_0xebec9(0x1c2)](_0x54f482);}[_0x3c05db(0x1c2)](_0x1087aa){const _0x13c278=_0x3c05db;if(this['sortTimer'])this[_0x13c278(0x22c)](this[_0x13c278(0x1b3)]);this['sortTimer']=this[_0x13c278(0x204)](()=>{const _0x155fe5=_0x13c278;this[_0x155fe5(0x1b3)]=null,void this[_0x155fe5(0x223)]();},_0x1087aa);}async[_0x3c05db(0x223)](){const _0x241a73=_0x3c05db;if(this[_0x241a73(0x22d)])return;while(this['pendingLists'][_0x241a73(0x24a)]>0x0){const _0x3841ef=this[_0x241a73(0x1d3)][_0x241a73(0x228)]()[_0x241a73(0x27e)]()[_0x241a73(0x212)];if(!_0x3841ef)break;this[_0x241a73(0x1d3)]['delete'](_0x3841ef),await this[_0x241a73(0x2c6)](_0x3841ef);}}async[_0x3c05db(0x283)](){const _0x1b5158=_0x3c05db,_0x3b4a8a=await this['getStateAsync'](_0x1b5158(0x21d));return!_0x3b4a8a||_0x3b4a8a['val']!==![];}async['readList'](_0x2f43b5){const _0x371f19=_0x3c05db,_0x3580f9=this['listStateId'](_0x2f43b5),_0x2e44c5=await this[_0x371f19(0x264)](_0x3580f9);if(!_0x2e44c5||typeof _0x2e44c5[_0x371f19(0x263)]!==_0x371f19(0x1c4)||!_0x2e44c5['val']['trim']())throw new Error('Datenpunkt\x20'+_0x3580f9+_0x371f19(0x2e9));const _0x573e2b=JSON[_0x371f19(0x288)](_0x2e44c5['val']);if(!Array['isArray'](_0x573e2b))throw new Error(_0x3580f9+_0x371f19(0x28d));return _0x573e2b;}async['sortList'](_0x4f9daf){const _0x59b011=_0x3c05db;if(this[_0x59b011(0x22d)]){this[_0x59b011(0x1d3)][_0x59b011(0x22a)](_0x4f9daf);return;}if(!await this['isEnabled']())return;this[_0x59b011(0x22d)]=_0x4f9daf,this[_0x59b011(0x290)]=![],await this[_0x59b011(0x1cf)](),this['traffic']['localChecks']+=0x1,await this['persistTrafficMetrics']();try{const _0x3bdf9d=await this[_0x59b011(0x25e)](_0x4f9daf),_0x51b750=(0x0,sorter_1[_0x59b011(0x2a9)])(_0x3bdf9d),_0x402ca7=(0x0,market_plan_1['realActiveItems'])(_0x3bdf9d,this[_0x59b011(0x2eb)]);this['activeCountByList']['set'](_0x4f9daf,_0x402ca7['length']),await this[_0x59b011(0x285)](),await this['recordNewItems'](_0x4f9daf,_0x3bdf9d);const _0x1fa433=this[_0x59b011(0x208)](_0x4f9daf);let _0x3b1304=(0x0,sorter_1[_0x59b011(0x1af)])(_0x3bdf9d,this[_0x59b011(0x2eb)],this[_0x59b011(0x30a)],this[_0x59b011(0x23a)],_0x1fa433);if(this[_0x59b011(0x2bb)]===_0x59b011(0x2c7)){const _0x13f18f=(0x0,sorter_1[_0x59b011(0x2c9)])(_0x3bdf9d,this[_0x59b011(0x2eb)],this[_0x59b011(0x30a)],this['fallbackMarket'],_0x1fa433);_0x13f18f[_0x59b011(0x1ba)][_0x59b011(0x299)]>0x0&&(this[_0x59b011(0x21e)]=_0x13f18f['products'],this[_0x59b011(0x291)]=!![],this[_0x59b011(0x256)][_0x59b011(0x21c)]+=_0x13f18f['learned']['length'],await this[_0x59b011(0x1ef)](),await this['setStateAsync'](_0x59b011(0x1fd),JSON['stringify'](_0x13f18f[_0x59b011(0x1ba)],null,0x2),!![]),this[_0x59b011(0x205)][_0x59b011(0x2ed)]('Neue\x20Artikel\x20automatisch\x20gelernt:\x20'+_0x13f18f[_0x59b011(0x1ba)][_0x59b011(0x2b7)](_0xdeedce=>'„'+_0xdeedce[_0x59b011(0x24f)]+'“')[_0x59b011(0x2f6)](',\x20')+'.'),_0x3b1304=(0x0,sorter_1[_0x59b011(0x1af)])(_0x3bdf9d,this[_0x59b011(0x2eb)],this[_0x59b011(0x30a)],this['fallbackMarket'],_0x1fa433));}else{if(this[_0x59b011(0x2bb)]===_0x59b011(0x280)){const _0x5af4b9=JSON[_0x59b011(0x20a)](this[_0x59b011(0x2cb)]);this['runtimeReviews']=(0x0,sorter_1[_0x59b011(0x261)])(this['runtimeReviews'],_0x3b1304);if(JSON[_0x59b011(0x20a)](this[_0x59b011(0x2cb)])!==_0x5af4b9)this[_0x59b011(0x206)]=!![];}}await this[_0x59b011(0x2b6)](_0x59b011(0x2e5),JSON[_0x59b011(0x20a)]({'listName':_0x4f9daf,'items':_0x3b1304},null,0x2),!![]),await this['setStateAsync'](_0x59b011(0x306),JSON[_0x59b011(0x20a)](this[_0x59b011(0x2cb)],null,0x2),!![]),await this['updateAliasSuggestions'](_0x3bdf9d);const _0x2e4664=(0x0,market_plan_1[_0x59b011(0x281)])(_0x402ca7,this[_0x59b011(0x2eb)],this['products'],this[_0x59b011(0x23a)],_0x1fa433,this[_0x59b011(0x254)]),_0xe2c761=(0x0,market_plan_1['planMarketHeaderAction'])(_0x3bdf9d,_0x2e4664,this['markets'],this['fallbackMarket'],this['marketHeadersEnabled']);if(_0xe2c761){await this['setStateAsync'](_0x59b011(0x282),JSON[_0x59b011(0x20a)]({'listName':_0x4f9daf,'requiredMarkets':_0x2e4664,'headerAction':_0xe2c761},null,0x2),!![]);if(this[_0x59b011(0x209)]){await this[_0x59b011(0x2b6)](_0x59b011(0x26e),new Date()['toISOString']()+_0x59b011(0x1c8)+_0x4f9daf+_0x59b011(0x1b5)+_0xe2c761[_0x59b011(0x2c4)]+'\x20für\x20'+_0xe2c761[_0x59b011(0x28b)]+_0x59b011(0x2e6),!![]),await this[_0x59b011(0x2b6)]('info.lastError','',!![]);return;}if(!(0x0,compatibility_1[_0x59b011(0x29a)])(this['writeCapability'])){const _0x14a66f=this[_0x59b011(0x284)]==='known-bug'?'Alexa-Schreibzugriffe\x20blockiert:\x20bekannte\x20fehlerhafte\x20alexa-remote2\x20version-Query\x20erkannt.':this[_0x59b011(0x284)]===_0x59b011(0x268)?_0x59b011(0x23f):'Alexa-Schreibzugriffe\x20blockiert:\x20Schreibkompatibilität\x20noch\x20nicht\x20bestätigt;\x20control.compatibilityTest\x20ausführen.';await this[_0x59b011(0x2b6)]('info.lastError',_0x14a66f,!![]),this[_0x59b011(0x205)][_0x59b011(0x1bb)](_0x14a66f);return;}await this[_0x59b011(0x2f5)](_0x4f9daf,_0xe2c761),await this[_0x59b011(0x2b6)](_0x59b011(0x26e),new Date()['toISOString']()+_0x59b011(0x1c8)+_0x4f9daf+_0x59b011(0x27b)+_0xe2c761[_0x59b011(0x28b)]+_0x59b011(0x296),!![]),await this[_0x59b011(0x2b6)](_0x59b011(0x29f),'',!![]);return;}const _0x3d6726=(0x0,sorter_1['createSortPlan'])(_0x3bdf9d,this[_0x59b011(0x2eb)],this['routes'],this[_0x59b011(0x30a)],this['fallbackMarket'],_0x1fa433,this['minimumItemsPerMarket'],this[_0x59b011(0x253)]);await this[_0x59b011(0x2b6)](_0x59b011(0x282),JSON[_0x59b011(0x20a)]({'listName':_0x4f9daf,'plan':_0x3d6726},null,0x2),!![]),await this[_0x59b011(0x2b6)]('info.preview',JSON[_0x59b011(0x20a)]({'listName':_0x4f9daf,'changes':_0x3d6726[_0x59b011(0x258)](_0x58f1f7=>_0x58f1f7[_0x59b011(0x2c8)]),'plan':_0x3d6726},null,0x2),!![]),await this[_0x59b011(0x2b6)]('info.previewText',(0x0,sorter_1[_0x59b011(0x2e8)])(_0x4f9daf,_0x3d6726),!![]);const _0x3f8dab=_0x3d6726['filter'](_0xb2a092=>_0xb2a092['changed']),_0x1d7074=new Date()[_0x59b011(0x218)]();_0x3f8dab[_0x59b011(0x299)]>0x0&&(this[_0x59b011(0x25c)][_0x59b011(0x23c)]+=_0x3f8dab['length'],await this['persistTrafficMetrics']());if(_0x3f8dab['length']===0x0){await this['setStateAsync']('info.lastSort',_0x1d7074+_0x59b011(0x1c8)+_0x4f9daf+':\x20bereits\x20sortiert\x20('+_0x51b750[_0x59b011(0x299)]+'\x20aktiv)',!![]),await this['setStateAsync']('info.lastError','',!![]);return;}this[_0x59b011(0x205)][_0x59b011(0x2ed)](_0x4f9daf+':\x20'+_0x51b750['length']+'\x20aktive\x20Artikel,\x20'+_0x3f8dab[_0x59b011(0x299)]+'\x20Änderung(en)'+(this['dryRun']?_0x59b011(0x216):'')+'.');if(this[_0x59b011(0x209)]){await this[_0x59b011(0x2b6)](_0x59b011(0x26e),_0x1d7074+'\x20–\x20'+_0x4f9daf+_0x59b011(0x239)+_0x3f8dab['length']+_0x59b011(0x27c),!![]),await this[_0x59b011(0x2b6)]('info.lastError','',!![]);return;}if(!(0x0,compatibility_1[_0x59b011(0x29a)])(this['writeCapability'])){const _0x3b0fff=this['writeCapability']===_0x59b011(0x238)?_0x59b011(0x28e):this[_0x59b011(0x284)]==='live-failed'?'Alexa-Schreibzugriffe\x20blockiert:\x20Kompatibilitätstest\x20fehlgeschlagen.':_0x59b011(0x2ab);await this[_0x59b011(0x2b6)](_0x59b011(0x26e),_0x1d7074+_0x59b011(0x21f),!![]),await this[_0x59b011(0x2b6)](_0x59b011(0x29f),_0x3b0fff,!![]),this[_0x59b011(0x205)]['error'](_0x3b0fff);return;}this['traffic'][_0x59b011(0x1ab)]+=0x1,this['traffic'][_0x59b011(0x249)]=new Date()[_0x59b011(0x218)](),await this[_0x59b011(0x1f8)]();const _0x34c3ea=(0x0,sorter_1['activeIdSignature'])(_0x3bdf9d);let _0x3fc54e=0x0;for(const _0x2651c9 of _0x3f8dab){const _0x24997e=await this['readList'](_0x4f9daf);if((0x0,sorter_1['activeIdSignature'])(_0x24997e)!==_0x34c3ea){this['traffic'][_0x59b011(0x2f1)]+=0x1,await this[_0x59b011(0x1f8)](),this['pendingLists']['add'](_0x4f9daf),this['log'][_0x59b011(0x1b0)](_0x4f9daf+_0x59b011(0x241));return;}const _0x1e7991=(0x0,sorter_1[_0x59b011(0x2a9)])(_0x24997e)['find'](_0x8bf1a3=>String(_0x8bf1a3['id'])===_0x2651c9['id']);if(!_0x1e7991||String(_0x1e7991[_0x59b011(0x212)])[_0x59b011(0x207)]()!==_0x2651c9['from']){this[_0x59b011(0x25c)]['abortedRuns']+=0x1,await this['persistTrafficMetrics'](),this[_0x59b011(0x1d3)][_0x59b011(0x22a)](_0x4f9daf),this['log']['warn'](_0x4f9daf+_0x59b011(0x2af));return;}const _0x5d83ee=this[_0x59b011(0x214)]+_0x59b011(0x2d8)+_0x4f9daf+_0x59b011(0x294)+_0x2651c9['id']+'.value',_0x54505a=await this[_0x59b011(0x247)](_0x5d83ee);if(!_0x54505a)throw new Error(_0x59b011(0x1c3)+_0x5d83ee);await this[_0x59b011(0x22e)](_0x5d83ee,_0x2651c9['to']),_0x3fc54e+=0x1,this[_0x59b011(0x2da)]&&_0x3fc54e%this[_0x59b011(0x219)]===0x0&&_0x3fc54e<_0x3f8dab[_0x59b011(0x299)]&&this['batchPauseMs']>0x0?(this[_0x59b011(0x205)]['info'](_0x59b011(0x286)+_0x3fc54e+_0x59b011(0x1e9)+this[_0x59b011(0x2c3)]+_0x59b011(0x1f3)),await this[_0x59b011(0x1ea)](this[_0x59b011(0x2c3)])):await this[_0x59b011(0x1ea)](this[_0x59b011(0x211)]);}await this[_0x59b011(0x1ea)](Math[_0x59b011(0x27a)](0x3e8,this['writePauseMs']));const _0x310bd5=await this[_0x59b011(0x25e)](_0x4f9daf);if((0x0,sorter_1['activeIdSignature'])(_0x310bd5)!==_0x34c3ea){this['traffic']['abortedRuns']+=0x1,await this[_0x59b011(0x1f8)](),this['pendingLists']['add'](_0x4f9daf);return;}const _0x238fb7=(0x0,sorter_1['createSortPlan'])(_0x310bd5,this['markets'],this[_0x59b011(0x2e1)],this['products'],this[_0x59b011(0x23a)],_0x1fa433,this[_0x59b011(0x254)],this['marketHeadersEnabled']),_0x2afd29=_0x238fb7['filter'](_0x56675e=>_0x56675e[_0x59b011(0x2c8)]);if(_0x2afd29[_0x59b011(0x299)]>0x0){const _0x57be5e=_0x4f9daf+_0x59b011(0x252)+_0x2afd29['length']+_0x59b011(0x26d);await this['setError'](_0x57be5e);return;}await this[_0x59b011(0x2b6)](_0x59b011(0x26e),new Date()['toISOString']()+_0x59b011(0x1c8)+_0x4f9daf+':\x20'+_0x3f8dab['length']+_0x59b011(0x2a1)+_0x51b750[_0x59b011(0x299)]+_0x59b011(0x224),!![]),await this['setStateAsync']('info.lastError','',!![]);}catch(_0x2c16eb){const _0x44edc6=_0x2c16eb instanceof Error?_0x2c16eb[_0x59b011(0x309)]:String(_0x2c16eb);await this[_0x59b011(0x24c)](_0x44edc6),this['log']['error'](_0x44edc6);}finally{this[_0x59b011(0x22d)]='',await this[_0x59b011(0x243)](),await this['refreshExports'](),await this[_0x59b011(0x269)]();if(this['listChangedDuringSort'])this['pendingLists']['add'](_0x4f9daf);if(this[_0x59b011(0x1d3)]['size']>0x0)this[_0x59b011(0x1c2)](this['debounceMs']);}}async['applyMarketHeaderAction'](_0x5864c6,_0x1d129c){const _0x29789f=_0x3c05db,_0x133e92=_0x1d129c[_0x29789f(0x2c4)]===_0x29789f(0x1bc)?this['alexaInstance']+_0x29789f(0x2d8)+_0x5864c6+_0x29789f(0x1f0):this[_0x29789f(0x214)]+_0x29789f(0x2d8)+_0x5864c6+'.items.'+_0x1d129c['id']+'.#delete',_0x1d2f70=_0x1d129c[_0x29789f(0x2c4)]==='create'?_0x1d129c['value']:!![],_0x1ae067=await this['getForeignObjectAsync'](_0x133e92);if(!_0x1ae067)throw new Error(_0x29789f(0x2cd)+_0x133e92);await this['writeAlexaState'](_0x133e92,_0x1d2f70),this['log'][_0x29789f(0x2ed)](_0x5864c6+_0x29789f(0x27b)+_0x1d129c[_0x29789f(0x28b)]+'\x20–\x20'+_0x1d129c['type']+'.');}async[_0x3c05db(0x22e)](_0x2fd352,_0x53f07d){const _0x337f7c=_0x3c05db;let _0x438fe7;for(let _0x2113f7=0x0;_0x2113f7<=this[_0x337f7c(0x1d4)];_0x2113f7++){try{if(this[_0x337f7c(0x2da)])await this['waitForWriteBudget']();await this['setForeignStateAsync'](_0x2fd352,{'val':_0x53f07d,'ack':![]}),this['writeTimestamps'][_0x337f7c(0x225)](Date[_0x337f7c(0x2ef)]()),this[_0x337f7c(0x25c)][_0x337f7c(0x1f7)]+=0x1,this[_0x337f7c(0x25c)][_0x337f7c(0x2f4)]=new Date()[_0x337f7c(0x218)](),await this[_0x337f7c(0x1f8)]();return;}catch(_0x296296){_0x438fe7=_0x296296;if(_0x2113f7>=this['maxWriteRetries'])break;const _0x18bab4=this[_0x337f7c(0x2bf)]*Math[_0x337f7c(0x1bd)](0x2,_0x2113f7);this['log'][_0x337f7c(0x1b0)](_0x337f7c(0x30e)+(_0x2113f7+0x1)+'/'+this[_0x337f7c(0x1d4)]+'\x20in\x20'+_0x18bab4+_0x337f7c(0x1f6)),await this[_0x337f7c(0x1ea)](_0x18bab4);}}throw _0x438fe7 instanceof Error?_0x438fe7:new Error(String(_0x438fe7));}async[_0x3c05db(0x2f7)](){const _0x358deb=_0x3c05db;while(!![]){const _0x44b99e=Date[_0x358deb(0x2ef)]();this[_0x358deb(0x297)]=this['writeTimestamps']['filter'](_0x594b75=>_0x44b99e-_0x594b75<0xea60);if(this[_0x358deb(0x297)]['length']<this['maxWritesPerMinute'])return;const _0x544911=Math['max'](0x1f4,0xea60-(_0x44b99e-this['writeTimestamps'][0x0])+0x64);this['log'][_0x358deb(0x2ed)](_0x358deb(0x1da)+this['maxWritesPerMinute']+_0x358deb(0x1cd)+_0x544911+_0x358deb(0x1f6)),await this['wait'](_0x544911);}}async['updateAliasSuggestions'](_0x3f0e44){const _0x634344=_0x3c05db;if(this[_0x634344(0x30b)][_0x634344(0x1dd)]===![]){await this[_0x634344(0x2b6)]('info.aliasSuggestions','[]',!![]);return;}const _0x32eecc=[];for(const _0x6949ff of(0x0,sorter_1[_0x634344(0x2a9)])(_0x3f0e44)){if((0x0,market_plan_1['isMarketHeader'])(String(_0x6949ff['value']),this['markets']))continue;const _0x49f4a3=(0x0,parser_1[_0x634344(0x298)])(String(_0x6949ff[_0x634344(0x212)]),this['markets'],this[_0x634344(0x30a)],this[_0x634344(0x23a)],this['priorityMarket']),_0x4e24e0=(0x0,parser_1[_0x634344(0x2e3)])(_0x49f4a3[_0x634344(0x1ee)],this[_0x634344(0x30a)]);if(!_0x4e24e0)continue;for(const _0x54c721 of(0x0,parser_1['suggestAliases'])(_0x49f4a3['productText'],_0x4e24e0))_0x32eecc['push']({'product':_0x4e24e0[_0x634344(0x24f)],'alias':_0x54c721});}const _0x52a1c0=[...new Map(_0x32eecc[_0x634344(0x2b7)](_0x5c32bf=>[(_0x5c32bf[_0x634344(0x226)]+'|'+_0x5c32bf['alias'])[_0x634344(0x2c1)]('de'),_0x5c32bf]))['values']()];await this[_0x634344(0x2b6)](_0x634344(0x2a7),JSON[_0x634344(0x20a)](_0x52a1c0,null,0x2),!![]);}async[_0x3c05db(0x26f)](_0x4c5c84,_0x49e32b){const _0x48a9d0=_0x3c05db,_0x4f27fa=(0x0,sorter_1['activeItems'])(_0x49e32b),_0x267771=this[_0x48a9d0(0x25a)]['get'](_0x4c5c84),_0x58927c=new Set(_0x4f27fa[_0x48a9d0(0x2b7)](_0x43feba=>String(_0x43feba['id'])));if(!_0x267771){this['knownActiveIds'][_0x48a9d0(0x1e3)](_0x4c5c84,_0x58927c);return;}for(const _0x49f2f7 of _0x4f27fa){if(_0x267771[_0x48a9d0(0x1f9)](String(_0x49f2f7['id'])))continue;if((0x0,market_plan_1[_0x48a9d0(0x279)])(String(_0x49f2f7[_0x48a9d0(0x212)]),this['markets']))continue;const _0x130fd6=(0x0,parser_1['parseItem'])(String(_0x49f2f7['value']),this[_0x48a9d0(0x2eb)],this[_0x48a9d0(0x30a)],this['fallbackMarket'],this['priorityMarketForList'](_0x4c5c84));this['statistics']=(0x0,statistics_1['recordAddedItem'])(this[_0x48a9d0(0x256)],_0x4c5c84,_0x130fd6);}this['knownActiveIds'][_0x48a9d0(0x1e3)](_0x4c5c84,_0x58927c),await this[_0x48a9d0(0x1ef)]();}async[_0x3c05db(0x285)](){const _0x38230f=_0x3c05db,_0x343429=[...this[_0x38230f(0x2db)][_0x38230f(0x228)]()]['reduce']((_0xdebabf,_0x20fcb0)=>_0xdebabf+_0x20fcb0,0x0);await this[_0x38230f(0x2b6)](_0x38230f(0x1b6),_0x343429,!![]),await this[_0x38230f(0x2b6)]('info.activeItemsByList',JSON[_0x38230f(0x20a)](Object[_0x38230f(0x287)](this['activeCountByList']),null,0x2),!![]);}async[_0x3c05db(0x307)](){const _0x9c5d13=_0x3c05db;try{const _0x23e2a9=await this[_0x9c5d13(0x247)](_0x9c5d13(0x222)+this['alexaInstance']),_0x3fb115=_0x23e2a9?.[_0x9c5d13(0x1db)]?.['version'];this['alexa2Version']=typeof _0x3fb115==='string'?_0x3fb115:_0x9c5d13(0x235);}catch{this[_0x9c5d13(0x1ac)]=_0x9c5d13(0x235);}try{const _0x4b2c12=require[_0x9c5d13(0x28f)](_0x9c5d13(0x271)),_0x27d4bf=fs[_0x9c5d13(0x245)](_0x4b2c12,_0x9c5d13(0x200)),_0x233095=(0x0,compatibility_1['inspectAlexaRemoteSource'])(_0x27d4bf);this[_0x9c5d13(0x284)]=_0x233095[_0x9c5d13(0x2d7)],this[_0x9c5d13(0x274)]=_0x233095[_0x9c5d13(0x308)],this[_0x9c5d13(0x2fd)]=this['findPackageVersion'](_0x4b2c12,_0x9c5d13(0x271));}catch(_0x5f27ff){this[_0x9c5d13(0x284)]=_0x9c5d13(0x202),this[_0x9c5d13(0x274)]='alexa-remote2\x20konnte\x20nicht\x20automatisch\x20geprüft\x20werden:\x20'+(_0x5f27ff instanceof Error?_0x5f27ff[_0x9c5d13(0x309)]:String(_0x5f27ff)),this['alexaRemote2Version']=_0x9c5d13(0x235);}await this[_0x9c5d13(0x2f0)]();}['findPackageVersion'](_0x2c27d4,_0x8089b5){const _0x3a2c95=_0x3c05db;let _0x531939=path['dirname'](_0x2c27d4);for(let _0x31a3d9=0x0;_0x31a3d9<0x6;_0x31a3d9++){const _0x5a6a9a=path['join'](_0x531939,_0x3a2c95(0x1aa));try{const _0x340b8b=JSON['parse'](fs[_0x3a2c95(0x245)](_0x5a6a9a,_0x3a2c95(0x200)));if(_0x340b8b[_0x3a2c95(0x24f)]===_0x8089b5&&_0x340b8b[_0x3a2c95(0x1d2)])return _0x340b8b[_0x3a2c95(0x1d2)];}catch{}const _0x5916e1=path[_0x3a2c95(0x1e2)](_0x531939);if(_0x5916e1===_0x531939)break;_0x531939=_0x5916e1;}return _0x3a2c95(0x235);}async['runLiveCompatibilityTest'](){const _0x30ec4f=_0x3c05db;if(this['compatibilityTesting']||this['sortingListName'])return;this[_0x30ec4f(0x295)]=!![];try{const _0x5e2fab=this[_0x30ec4f(0x2aa)][0x0]?.['name'];if(!_0x5e2fab)throw new Error(_0x30ec4f(0x21b));const _0x152b54=await this[_0x30ec4f(0x25e)](_0x5e2fab),_0x3ae157=(0x0,sorter_1['sortSlotsOldestFirst'])((0x0,sorter_1['activeItems'])(_0x152b54))[0x0];if(!_0x3ae157)throw new Error(_0x30ec4f(0x2ca));const _0x4afed1=this['alexaInstance']+_0x30ec4f(0x2d8)+_0x5e2fab+'.items.'+_0x3ae157['id']+_0x30ec4f(0x305),_0x23100c=await this['getForeignStateAsync'](_0x4afed1),_0x2def5a=String(_0x23100c?.[_0x30ec4f(0x263)]??_0x3ae157[_0x30ec4f(0x212)])[_0x30ec4f(0x207)]();if(!_0x2def5a)throw new Error(_0x30ec4f(0x2fc));const _0x3a58a9=Number(_0x23100c?.['ts']||0x0);await this[_0x30ec4f(0x23e)](_0x4afed1,{'val':_0x2def5a,'ack':![]}),this[_0x30ec4f(0x25c)][_0x30ec4f(0x1f7)]+=0x1,this['traffic'][_0x30ec4f(0x1d5)]+=0x1,this[_0x30ec4f(0x25c)]['lastAlexaWrite']=new Date()[_0x30ec4f(0x218)](),await this[_0x30ec4f(0x1f8)]();const _0x380dec=Date[_0x30ec4f(0x2ef)]()+0x2710;let _0x498f45=![];while(Date['now']()<_0x380dec){await this[_0x30ec4f(0x1ea)](0xfa);const _0x51daf9=await this[_0x30ec4f(0x264)](_0x4afed1);if(_0x51daf9&&_0x51daf9['ack']===!![]&&String(_0x51daf9['val']??'')[_0x30ec4f(0x207)]()===_0x2def5a&&Number(_0x51daf9['ts']||0x0)>_0x3a58a9){_0x498f45=!![];break;}}_0x498f45?(this[_0x30ec4f(0x284)]='live-ok',this[_0x30ec4f(0x274)]='Live-Test\x20erfolgreich:\x20Alexa2\x20hat\x20einen\x20unveränderten\x20value-Schreibzugriff\x20bestätigt.',this[_0x30ec4f(0x1c7)]=new Date()[_0x30ec4f(0x218)]()+'\x20–\x20ERFOLG\x20mit\x20„'+_0x2def5a+'“',await this[_0x30ec4f(0x2b6)]('info.lastError','',!![])):(this['writeCapability']=_0x30ec4f(0x268),this['compatibilityDetail']=_0x30ec4f(0x20e),this[_0x30ec4f(0x1c7)]=new Date()[_0x30ec4f(0x218)]()+'\x20–\x20FEHLGESCHLAGEN\x20mit\x20„'+_0x2def5a+'“',await this[_0x30ec4f(0x2b6)](_0x30ec4f(0x29f),_0x30ec4f(0x1cc),!![])),await this[_0x30ec4f(0x2f0)]();}catch(_0xee6d62){const _0x2d17a2=_0xee6d62 instanceof Error?_0xee6d62['message']:String(_0xee6d62);this[_0x30ec4f(0x284)]='live-failed',this[_0x30ec4f(0x274)]=_0x30ec4f(0x21a)+_0x2d17a2,this[_0x30ec4f(0x1c7)]=new Date()['toISOString']()+_0x30ec4f(0x2fa)+_0x2d17a2,await this[_0x30ec4f(0x2b6)](_0x30ec4f(0x29f),_0x30ec4f(0x26b)+_0x2d17a2,!![]),await this['updateCompatibilityDiagnostics']();}finally{this[_0x30ec4f(0x295)]=![];}}async[_0x3c05db(0x2f0)](){const _0x52b500=_0x3c05db;await this[_0x52b500(0x2b6)]('info.writeCapability',this['writeCapability'],!![]),await this[_0x52b500(0x2b6)](_0x52b500(0x2f8),this[_0x52b500(0x1c7)],!![]),await this['setStateAsync'](_0x52b500(0x2ae),JSON[_0x52b500(0x20a)]({'shoppingrouteVersion':VERSION,'beta':!![],'alexaInstance':this['alexaInstance'],'alexa2Version':this['alexa2Version'],'alexaRemote2Version':this['alexaRemote2Version'],'lists':this['listConfigs'][_0x52b500(0x2b7)](_0x2b072f=>_0x2b072f['name']),'dryRun':this[_0x52b500(0x209)],'writeCapability':this[_0x52b500(0x284)],'detail':this[_0x52b500(0x274)],'lastCompatibilityTest':this['lastCompatibilityTest'],'requiredAlexaAppSorting':_0x52b500(0x276),'checkedAt':new Date()['toISOString']()},null,0x2),!![]);}async[_0x3c05db(0x1e0)](){const _0x26db2a=_0x3c05db;try{const _0x3b7a7c={'__none__':'—\x20Kein\x20Markt\x20—'};for(const _0xc25d8b of[...this[_0x26db2a(0x2eb)]][_0x26db2a(0x300)]((_0x4b6d6b,_0x4264a0)=>_0x4b6d6b['name'][_0x26db2a(0x230)](_0x4264a0['name'],'de',{'sensitivity':'base'}))){_0x3b7a7c[_0xc25d8b[_0x26db2a(0x24f)]]=_0xc25d8b[_0x26db2a(0x24f)];}await this['extendObjectAsync']('control.temporaryPriorityMarket',{'common':{'states':_0x3b7a7c}});}catch(_0x128f6e){this[_0x26db2a(0x205)][_0x26db2a(0x1b0)](_0x26db2a(0x2dd)+(_0x128f6e instanceof Error?_0x128f6e['message']:String(_0x128f6e)));}}['ensureRoutesForMarketsAndGroups'](){const _0x1b075e=_0x3c05db,_0x3eea21=(0x0,config_tools_1[_0x1b075e(0x2d2)])(this[_0x1b075e(0x2eb)],this[_0x1b075e(0x2c5)],this['runtimeRoutes']);if(_0x3eea21[_0x1b075e(0x2a0)]<=0x0)return;this[_0x1b075e(0x265)]=_0x3eea21[_0x1b075e(0x2e1)],this[_0x1b075e(0x2ea)]=!![],this[_0x1b075e(0x205)][_0x1b075e(0x2ed)](_0x3eea21['added']+'\x20fehlende\x20Laufweg-Zuordnung(en)\x20für\x20neue\x20Märkte/Produktgruppen\x20automatisch\x20ergänzt.');}async['ensureProductGroupsConfig'](){const _0x2647a5=_0x3c05db;if(Array[_0x2647a5(0x1dc)](this[_0x2647a5(0x30b)]['productGroups'])&&this[_0x2647a5(0x30b)]['productGroups'][_0x2647a5(0x299)]>0x0)return;try{await this[_0x2647a5(0x1f5)]({'productGroups':DEFAULT_CATEGORIES[_0x2647a5(0x2b7)](_0x1aeb51=>({'name':_0x1aeb51}))});}catch(_0x16df70){this[_0x2647a5(0x205)]['warn']('Produktgruppen\x20konnten\x20nicht\x20initialisiert\x20werden:\x20'+(_0x16df70 instanceof Error?_0x16df70[_0x2647a5(0x309)]:String(_0x16df70)));}}async['persistRuntimeConfig'](){const _0x47a945=_0x3c05db;if(!this[_0x47a945(0x291)]&&!this[_0x47a945(0x206)]&&!this[_0x47a945(0x2ea)])return;try{const _0x561212=_0x47a945(0x222)+this[_0x47a945(0x227)],_0x52506f=await this[_0x47a945(0x247)](_0x561212);if(!_0x52506f)throw new Error(_0x47a945(0x25d)+_0x561212);const _0x34f332=_0x52506f[_0x47a945(0x2f3)]||{};_0x52506f[_0x47a945(0x2f3)]={..._0x34f332,...this['productsDirty']?{'products':this[_0x47a945(0x21e)]['map'](_0x22e21a=>({..._0x22e21a}))}:{},...this[_0x47a945(0x206)]?{'reviewItems':this['runtimeReviews'][_0x47a945(0x2b7)](_0x53a222=>({..._0x53a222}))}:{},...this['routesDirty']?{'routes':this[_0x47a945(0x265)][_0x47a945(0x2b7)](_0x17fb46=>({..._0x17fb46}))}:{}},await this['setForeignObjectAsync'](_0x561212,_0x52506f),this[_0x47a945(0x291)]=![],this[_0x47a945(0x206)]=![],this[_0x47a945(0x2ea)]=![];}catch(_0x1f2515){await this['setStateAsync'](_0x47a945(0x29f),'Lern-/Konfigurationsdaten\x20konnten\x20nicht\x20gespeichert\x20werden:\x20'+(_0x1f2515 instanceof Error?_0x1f2515[_0x47a945(0x309)]:String(_0x1f2515)),!![]);}}async['refreshExports'](){const _0x567666=_0x3c05db,_0x47457e={...this[_0x567666(0x30b)],'products':this[_0x567666(0x21e)],'routes':this[_0x567666(0x2e1)],'reviewItems':this['runtimeReviews']};await this[_0x567666(0x2b6)](_0x567666(0x2a8),JSON[_0x567666(0x20a)]((0x0,config_tools_1['exportConfig'])(_0x47457e,VERSION),null,0x2),!![]),await this['setStateAsync'](_0x567666(0x244),JSON[_0x567666(0x20a)]((0x0,config_tools_1[_0x567666(0x2ff)])(this[_0x567666(0x2eb)],this[_0x567666(0x2e1)]),null,0x2),!![]);}async[_0x3c05db(0x1bf)](){const _0x296246=_0x3c05db;try{const _0x2f4ebb=await this[_0x296246(0x1c1)](_0x296246(0x240));this[_0x296246(0x25c)]=(0x0,metrics_1['normalizeTrafficMetrics'])(_0x2f4ebb&&typeof _0x2f4ebb['val']===_0x296246(0x1c4)&&_0x2f4ebb['val'][_0x296246(0x207)]()?JSON[_0x296246(0x288)](_0x2f4ebb[_0x296246(0x263)]):null);}catch{this[_0x296246(0x25c)]=(0x0,metrics_1[_0x296246(0x1b9)])();}await this[_0x296246(0x1f8)]();}async[_0x3c05db(0x1cf)](){const _0x52bfd9=_0x3c05db,_0x22318e=(0x0,metrics_1[_0x52bfd9(0x1d6)])(this['traffic']);_0x22318e['date']!==this[_0x52bfd9(0x25c)]['date']&&(this[_0x52bfd9(0x25c)]=_0x22318e,await this[_0x52bfd9(0x1f8)]());}async[_0x3c05db(0x1f8)](){const _0x46945c=_0x3c05db;this['traffic']=(0x0,metrics_1['normalizeTrafficMetrics'])(this[_0x46945c(0x25c)]),await this[_0x46945c(0x2b6)]('info.localChecksToday',this[_0x46945c(0x25c)]['localChecks'],!![]),await this['setStateAsync'](_0x46945c(0x1c6),this[_0x46945c(0x25c)]['plannedChanges'],!![]),await this[_0x46945c(0x2b6)](_0x46945c(0x29e),this[_0x46945c(0x25c)]['sortRuns'],!![]),await this[_0x46945c(0x2b6)](_0x46945c(0x2bc),this[_0x46945c(0x25c)][_0x46945c(0x1f7)],!![]),await this[_0x46945c(0x2b6)](_0x46945c(0x304),this['traffic'][_0x46945c(0x1d5)],!![]),await this[_0x46945c(0x2b6)](_0x46945c(0x29c),this[_0x46945c(0x25c)]['abortedRuns'],!![]),await this['setStateAsync'](_0x46945c(0x240),JSON[_0x46945c(0x20a)]({...this['traffic'],'note':'Zählt\x20Operationen,\x20keine\x20Netzwerk-Bytes.'},null,0x2),!![]);}async[_0x3c05db(0x2a5)](){const _0x2bb7fa=_0x3c05db;try{const _0x1f5cf7=await this['getStateAsync'](_0x2bb7fa(0x2cc));this[_0x2bb7fa(0x256)]=(0x0,statistics_1['normalizeUsageStatistics'])(_0x1f5cf7&&typeof _0x1f5cf7[_0x2bb7fa(0x263)]===_0x2bb7fa(0x1c4)&&_0x1f5cf7[_0x2bb7fa(0x263)][_0x2bb7fa(0x207)]()?JSON['parse'](_0x1f5cf7[_0x2bb7fa(0x263)]):null);}catch{this[_0x2bb7fa(0x256)]=(0x0,statistics_1['emptyUsageStatistics'])();}await this[_0x2bb7fa(0x1ef)]();}async['persistStatistics'](){const _0x574961=_0x3c05db;this[_0x574961(0x256)][_0x574961(0x28c)]=new Date()[_0x574961(0x218)](),await this[_0x574961(0x2b6)](_0x574961(0x2cc),JSON[_0x574961(0x20a)](this[_0x574961(0x256)],null,0x2),!![]);}async[_0x3c05db(0x2d9)](){const _0x31d343=_0x3c05db;try{const _0x3643a2=await this['httpJson']('https://registry.npmjs.org/iobroker.shoppingroute'),_0x3ca02a=_0x3643a2['dist-tags']||{},_0x3b8f96=typeof _0x3ca02a[_0x31d343(0x1ff)]===_0x31d343(0x1c4)?_0x3ca02a['beta']:'',_0x1cd851=typeof _0x3ca02a['latest']===_0x31d343(0x1c4)?_0x3ca02a[_0x31d343(0x20c)]:'';this[_0x31d343(0x24b)]=_0x3b8f96||_0x1cd851,this['lastVersionCheck']=new Date()[_0x31d343(0x218)](),await this['setStateAsync'](_0x31d343(0x1ec),this[_0x31d343(0x24b)]||_0x31d343(0x235),!![]),await this[_0x31d343(0x2b6)](_0x31d343(0x1ed),Boolean(this[_0x31d343(0x24b)]&&this[_0x31d343(0x24b)]!==VERSION),!![]),await this[_0x31d343(0x2b6)](_0x31d343(0x2b1),this[_0x31d343(0x231)]+_0x31d343(0x24e)+(this['latestBetaVersion']||_0x31d343(0x235)),!![]);}catch(_0x449ff4){this[_0x31d343(0x231)]=new Date()[_0x31d343(0x218)](),await this[_0x31d343(0x2b6)]('info.versionCheck',this[_0x31d343(0x231)]+'\x20–\x20npm-Abfrage\x20fehlgeschlagen:\x20'+(_0x449ff4 instanceof Error?_0x449ff4[_0x31d343(0x309)]:String(_0x449ff4)),!![]);}await this[_0x31d343(0x269)]();}[_0x3c05db(0x2d5)](_0x1b0eea){return new Promise((_0x562b43,_0x1365c1)=>{const _0xbc5d25=_0x4a37,_0x457718=https['get'](_0x1b0eea,{'headers':{'User-Agent':_0xbc5d25(0x2fb)+VERSION}},_0x5508c3=>{const _0x446691=_0xbc5d25;if((_0x5508c3[_0x446691(0x1d9)]||0x1f4)>=0x190){_0x5508c3[_0x446691(0x302)](),_0x1365c1(new Error(_0x446691(0x22f)+_0x5508c3['statusCode']));return;}let _0x4f2f7c='';_0x5508c3['setEncoding'](_0x446691(0x200)),_0x5508c3['on'](_0x446691(0x1ca),_0x361cf9=>{_0x4f2f7c+=_0x361cf9;}),_0x5508c3['on'](_0x446691(0x2ba),()=>{const _0x3ad676=_0x446691;try{_0x562b43(JSON[_0x3ad676(0x288)](_0x4f2f7c));}catch(_0x228874){_0x1365c1(_0x228874 instanceof Error?_0x228874:new Error('Ungültige\x20JSON-Antwort'));}});});_0x457718[_0xbc5d25(0x204)](0x1f40,()=>_0x457718[_0xbc5d25(0x270)](new Error('Timeout'))),_0x457718['on']('error',_0x1365c1);});}async['updateFeedbackReport'](){const _0x28d75d=_0x3c05db,_0x360117={'generatedAt':new Date()['toISOString'](),'shoppingrouteVersion':VERSION,'node':process[_0x28d75d(0x1d2)],'alexaInstance':this['alexaInstance'],'alexa2Version':this[_0x28d75d(0x1ac)],'alexaRemote2Version':this['alexaRemote2Version'],'lists':this[_0x28d75d(0x2aa)][_0x28d75d(0x2b7)](_0x49d0f1=>({'name':_0x49d0f1[_0x28d75d(0x24f)],'activeItems':this[_0x28d75d(0x2db)]['get'](_0x49d0f1[_0x28d75d(0x24f)])||0x0})),'dryRun':this[_0x28d75d(0x209)],'learningMode':this['learningMode'],'apiSafeMode':this['apiSafeMode'],'writeCapability':this['writeCapability'],'lastCompatibilityTest':this[_0x28d75d(0x1c7)],'lastError':String((await this[_0x28d75d(0x1c1)](_0x28d75d(0x29f)))?.['val']||''),'traffic':this['traffic'],'update':{'installed':VERSION,'npmBeta':this[_0x28d75d(0x24b)]||'unbekannt','checkedAt':this[_0x28d75d(0x231)]||_0x28d75d(0x301)},'privacy':_0x28d75d(0x215)};await this[_0x28d75d(0x2b6)](_0x28d75d(0x26c),JSON['stringify'](_0x360117,null,0x2),!![]);}async[_0x3c05db(0x24c)](_0x4882f7){const _0x4959ae=_0x3c05db;await this[_0x4959ae(0x2b6)]('info.lastError',_0x4882f7,!![]);}[_0x3c05db(0x1ea)](_0x5cd3c2){const _0x4cbfb4=_0x3c05db;return new Promise(_0x24d706=>this[_0x4cbfb4(0x204)](_0x24d706,_0x5cd3c2));}static['getDefaultCategories'](){return[...DEFAULT_CATEGORIES];}}exports[_0x3c05db(0x267)]=ShoppingRoute;if(require['main']!==module)module[_0x3c05db(0x292)]=_0x2c30aa=>new ShoppingRoute(_0x2c30aa);else((()=>new ShoppingRoute())());
|
package/io-package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "shoppingroute",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.3.0",
|
|
5
5
|
"titleLang": {
|
|
6
6
|
"en": "ShoppingRoute",
|
|
7
7
|
"de": "ShoppingRoute",
|
|
@@ -60,6 +60,19 @@
|
|
|
60
60
|
"icon": "shoppingroute.png",
|
|
61
61
|
"tier": 3,
|
|
62
62
|
"news": {
|
|
63
|
+
"0.3.0": {
|
|
64
|
+
"en": "Development preview for automatic market headings and minimum-items-per-market route consolidation. Explicit market requests always remain unchanged.",
|
|
65
|
+
"de": "Entwicklungsvorschau mit automatischen Marktüberschriften und marktübergreifender Zusammenlegung anhand einer Mindestartikelzahl. Explizite Marktangaben bleiben immer unverändert.",
|
|
66
|
+
"ru": "Предварительная версия с автоматическими заголовками магазинов и объединением маршрута по минимальному количеству товаров. Явно указанные магазины никогда не изменяются.",
|
|
67
|
+
"pt": "Prévia com cabeçalhos automáticos de mercados e consolidação de rota por quantidade mínima de itens. Mercados indicados explicitamente nunca são alterados.",
|
|
68
|
+
"nl": "Ontwikkelversie met automatische winkelkoppen en routeconsolidatie op basis van een minimumaantal artikelen. Expliciet opgegeven winkels blijven altijd ongewijzigd.",
|
|
69
|
+
"fr": "Aperçu de développement avec en-têtes automatiques de magasins et consolidation selon un nombre minimum d’articles. Les magasins explicitement indiqués ne sont jamais modifiés.",
|
|
70
|
+
"it": "Anteprima di sviluppo con intestazioni automatiche dei negozi e consolidamento in base a un numero minimo di articoli. I negozi indicati esplicitamente non vengono mai modificati.",
|
|
71
|
+
"es": "Vista previa con encabezados automáticos de tiendas y consolidación según un número mínimo de artículos. Las tiendas indicadas explícitamente nunca se modifican.",
|
|
72
|
+
"pl": "Wersja rozwojowa z automatycznymi nagłówkami sklepów i konsolidacją na podstawie minimalnej liczby artykułów. Jawnie wskazane sklepy nigdy nie są zmieniane.",
|
|
73
|
+
"uk": "Попередня версія з автоматичними заголовками магазинів і об’єднанням маршруту за мінімальною кількістю товарів. Явно вказані магазини ніколи не змінюються.",
|
|
74
|
+
"zh-cn": "开发预览版:自动商店标题,并按每个商店的最少商品数量合并路线。明确指定的商店永远不会被更改。"
|
|
75
|
+
},
|
|
63
76
|
"0.2.0": {
|
|
64
77
|
"en": "First stable release of ShoppingRoute with complete Admin translations, improved walking-route help, protected npm publishing and verified Alexa2/alexa-remote2 compatibility.",
|
|
65
78
|
"de": "Erste stabile Veröffentlichung von ShoppingRoute mit vollständigen Admin-Übersetzungen, korrigiertem Laufwege-Hilfetext, geschützter npm-Veröffentlichung und geprüfter Alexa2/alexa-remote2-Kompatibilität.",
|
|
@@ -574,7 +587,9 @@
|
|
|
574
587
|
"maxWriteRetries": 2,
|
|
575
588
|
"retryBaseMs": 1500,
|
|
576
589
|
"temporaryPriorityMarket": "",
|
|
577
|
-
"reviewItems": []
|
|
590
|
+
"reviewItems": [],
|
|
591
|
+
"marketHeaders": false,
|
|
592
|
+
"minItemsPerMarket": 1
|
|
578
593
|
},
|
|
579
594
|
"objects": [],
|
|
580
595
|
"instanceObjects": [
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iobroker.shoppingroute",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Smart Alexa shopping-list routing by market, product group and individual store walking route with learning, multi-list support and API protection.",
|
|
5
5
|
"author": "RaviniZib",
|
|
6
6
|
"license": "MIT",
|