iobroker.parcelapp 0.2.18 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -32,19 +32,19 @@ ioBroker adapter that connects to the [parcel.app](https://parcelapp.net) API an
32
32
  ## Requirements
33
33
 
34
34
  - **Node.js >= 20**
35
- - **ioBroker js-controller >= 6.0.11**
36
- - **ioBroker Admin >= 7.6.20**
35
+ - **ioBroker js-controller >= 7.0.7**
36
+ - **ioBroker Admin >= 7.7.22**
37
37
  - **parcel.app Premium subscription** — required for API access
38
38
 
39
39
  ---
40
40
 
41
41
  ## Configuration
42
42
 
43
- | Option | Description | Default |
44
- |--------|-------------|---------|
45
- | **API Key** | Your parcel.app API key (get it at [web.parcelapp.net](https://web.parcelapp.net)) | — |
46
- | **Poll Interval** | How often to fetch updates (minutes) | 10 |
47
- | **Auto-remove delivered** | Remove delivered packages from states automatically. When disabled, they stay until deleted in parcel.app. | Yes |
43
+ | Option | Description | Default |
44
+ | ------------------------- | ---------------------------------------------------------------------------------------------------------- | ------- |
45
+ | **API Key** | Your parcel.app API key (get it at [web.parcelapp.net](https://web.parcelapp.net)) | — |
46
+ | **Poll Interval** | How often to fetch updates (minutes) | 10 |
47
+ | **Auto-remove delivered** | Remove delivered packages from states automatically. When disabled, they stay until deleted in parcel.app. | Yes |
48
48
 
49
49
  Status labels (`Delivered`, `In Transit`, …) and delivery estimates (`today`, `tomorrow`, `in X days`) are rendered in the ioBroker system language.
50
50
 
@@ -81,16 +81,17 @@ parcelapp.0.
81
81
  You can add new deliveries from JavaScript/Blockly scripts:
82
82
 
83
83
  ```javascript
84
- sendTo('parcelapp.0', 'addDelivery', {
85
- tracking_number: '1234567890',
86
- carrier_code: 'dhl',
87
- description: 'My package'
84
+ sendTo("parcelapp.0", "addDelivery", {
85
+ tracking_number: "1234567890",
86
+ carrier_code: "dhl",
87
+ description: "My package",
88
88
  });
89
89
  ```
90
90
 
91
91
  The delivery is added to your parcel.app account and immediately appears in ioBroker after an automatic poll.
92
92
 
93
93
  **Notes:**
94
+
94
95
  - **POST rate limit: 20 deliveries per day** — failed attempts (e.g. wrong `carrier_code`) also count against this limit.
95
96
  - Fresh deliveries usually have no tracking events for **45–90 minutes** after they are added. That's a parcel.app-side delay, not an adapter issue.
96
97
  - **Deleting packages is only possible in the parcel.app app/web UI** — the API has no delete endpoint. With `autoRemoveDelivered` enabled, the adapter still drops delivered packages from ioBroker states automatically.
@@ -100,47 +101,40 @@ The delivery is added to your parcel.app account and immediately appears in ioBr
100
101
  ## Troubleshooting
101
102
 
102
103
  ### Connection test fails
104
+
103
105
  - Verify your API key at [web.parcelapp.net](https://web.parcelapp.net)
104
106
  - Ensure you have an active Premium subscription
105
107
  - Check if your ioBroker instance has internet access
106
108
 
107
109
  ### No deliveries shown
110
+
108
111
  - The API returns cached data — new deliveries may take a few minutes to appear
109
112
  - Check if you have active deliveries in the parcel.app
110
113
 
111
114
  ### Rate limit
115
+
112
116
  - GET (polling): **20 requests per hour** — the minimum poll interval is 5 minutes to stay within this limit
113
117
  - POST (adding deliveries): **20 requests per day**, failed attempts count too
114
118
 
115
119
  ---
116
120
 
117
121
  ## Changelog
122
+ ### 0.3.1 (2026-05-01)
123
+ - Documentation cleanup: shortened older changelog entries.
124
+
125
+ ### 0.3.0 (2026-04-30)
126
+ - Internal cleanup: removed dead `STATUS_LABELS_*` aliases, added `format`/`format:check` scripts, master-sync.
127
+
118
128
  ### 0.2.18 (2026-04-28)
119
- - Audit cleanup against the upstream `ioBroker.example/TypeScript` full standard:
120
- - `@types/node` rolled back from `^25.6.0` to `^20.19.24` so type defs match `engines.node: ">=20"` (otherwise Node 21+-only APIs would type-check on Node 20 and crash at runtime)
121
- - Dependabot now ignores major bumps for `@types/node`, `typescript`, `eslint` so the runtime/toolchain pinning cannot drift via auto-merge
122
- - `nyc` config + `coverage` script added (matches upstream template)
123
- - `prettier.config.mjs` made explicit with project-style overrides (Spaces 2-wide, double quotes) instead of relying on missing config
124
- - Orphan `.github/auto-merge.yml` removed (the active workflow is `automerge-dependabot.yml` using `gh pr merge`, the old yml was never read)
129
+ - Internal cleanup against ioBroker.example/TypeScript standard.
125
130
 
126
131
  ### 0.2.17 (2026-04-28)
127
- - Test setup migrated to the upstream `ioBroker.example/TypeScript` standard: tests now live next to source as `src/**/*.test.ts` and run directly via `ts-node/register`, no separate test-build. Removes `tsconfig.test.json` + `build-test/` per latest-repo review feedback.
132
+ - Internal: test setup migrated to `src/**/*.test.ts` standard.
128
133
 
129
134
  ### 0.2.16 (2026-04-26)
130
- - Min js-controller correction: was incorrectly bumped to `>=7.0.23` in 0.2.15 (Wert kam aus Recherche-Synthese, nicht aus Repochecker-Source). Repochecker-recommended value is `>=6.0.11` — restored.
131
-
132
- ### 0.2.15 (2026-04-26)
133
- - Process-level `unhandledRejection` / `uncaughtException` handlers added as last-line-of-defence against fire-and-forget rejections.
134
- - Stop shipping the `manual-review` release-script plugin — adapter-only consequence.
135
- - Bump min js-controller to `>=7.0.23` (matches latest-repo recommendation).
136
- - Audit-driven boilerplate sync with the other krobi adapters (`.vscode` json5 schemas, `tsconfig.test` looser test rules).
137
- - README footer-link to `CHANGELOG_OLD.md` restored, `CHANGELOG_OLD.md` cleaned up to consistent compact style.
138
-
139
- ### 0.2.14 (2026-04-23)
140
- - Separate test-build output (`build-test/`) from production `build/`, no more duplicated `build/src` + `build/test` tree in published packages.
141
- - Declare `deliveries` folder and `summary` channel as instance objects so their parent exists before per-package states appear.
142
- - Localize status labels and delivery estimates to all 11 ioBroker languages via `system.config.language`; the per-instance `Status Language` option is removed.
143
- - Fix `summary.todayCount` for non-DE/EN languages (filter compared estimate strings against `heute`/`today`, so it always returned zero elsewhere).
135
+ - Min js-controller corrected back to `>=6.0.11` (was incorrectly bumped to `>=7.0.23` in 0.2.15).
136
+
137
+ Older entries are in [CHANGELOG_OLD.md](CHANGELOG_OLD.md).
144
138
 
145
139
  ## Support
146
140
 
@@ -10,7 +10,11 @@
10
10
  "apiKeyInfo": {
11
11
  "type": "staticText",
12
12
  "text": "apiKeyInfo",
13
- "xs": 12, "sm": 12, "md": 12, "lg": 12, "xl": 12,
13
+ "xs": 12,
14
+ "sm": 12,
15
+ "md": 12,
16
+ "lg": 12,
17
+ "xl": 12,
14
18
  "style": {
15
19
  "fontSize": 14,
16
20
  "color": "#666",
@@ -20,7 +24,11 @@
20
24
  "apiKey": {
21
25
  "type": "password",
22
26
  "label": "label_apiKey",
23
- "xs": 12, "sm": 12, "md": 8, "lg": 8, "xl": 8
27
+ "xs": 12,
28
+ "sm": 12,
29
+ "md": 8,
30
+ "lg": 8,
31
+ "xl": 8
24
32
  },
25
33
  "checkConnection": {
26
34
  "newLine": true,
@@ -32,7 +40,11 @@
32
40
  "okText": "msg_connectionOk",
33
41
  "errorText": "msg_connectionFailed"
34
42
  },
35
- "xs": 12, "sm": 12, "md": 4, "lg": 4, "xl": 4
43
+ "xs": 12,
44
+ "sm": 12,
45
+ "md": 4,
46
+ "lg": 4,
47
+ "xl": 4
36
48
  },
37
49
  "pollingHeader": {
38
50
  "newLine": true,
@@ -47,7 +59,11 @@
47
59
  "min": 5,
48
60
  "max": 60,
49
61
  "default": 10,
50
- "xs": 12, "sm": 12, "md": 6, "lg": 6, "xl": 6
62
+ "xs": 12,
63
+ "sm": 12,
64
+ "md": 6,
65
+ "lg": 6,
66
+ "xl": 6
51
67
  },
52
68
  "deliveryHeader": {
53
69
  "newLine": true,
@@ -60,7 +76,11 @@
60
76
  "label": "label_autoRemoveDelivered",
61
77
  "tooltip": "tooltip_autoRemoveDelivered",
62
78
  "default": true,
63
- "xs": 12, "sm": 12, "md": 12, "lg": 12, "xl": 12
79
+ "xs": 12,
80
+ "sm": 12,
81
+ "md": 12,
82
+ "lg": 12,
83
+ "xl": 12
64
84
  },
65
85
  "_supportHeader": {
66
86
  "newLine": true,
@@ -71,7 +91,11 @@
71
91
  "_aboutInfo": {
72
92
  "type": "staticText",
73
93
  "text": "aboutInfo",
74
- "xs": 12, "sm": 12, "md": 12, "lg": 12, "xl": 12,
94
+ "xs": 12,
95
+ "sm": 12,
96
+ "md": 12,
97
+ "lg": 12,
98
+ "xl": 12,
75
99
  "style": {
76
100
  "fontSize": 14,
77
101
  "marginBottom": 16
@@ -84,7 +108,11 @@
84
108
  "button": true,
85
109
  "variant": "outlined",
86
110
  "color": "primary",
87
- "xs": 12, "sm": 6, "md": 4, "lg": 4, "xl": 4
111
+ "xs": 12,
112
+ "sm": 6,
113
+ "md": 4,
114
+ "lg": 4,
115
+ "xl": 4
88
116
  },
89
117
  "_paypalLink": {
90
118
  "type": "staticLink",
@@ -93,7 +121,11 @@
93
121
  "button": true,
94
122
  "variant": "outlined",
95
123
  "color": "primary",
96
- "xs": 12, "sm": 6, "md": 4, "lg": 4, "xl": 4
124
+ "xs": 12,
125
+ "sm": 6,
126
+ "md": 4,
127
+ "lg": 4,
128
+ "xl": 4
97
129
  }
98
130
  }
99
131
  }
@@ -20,8 +20,6 @@ var types_exports = {};
20
20
  __export(types_exports, {
21
21
  FALLBACK_LANGUAGE: () => FALLBACK_LANGUAGE,
22
22
  STATUS_LABELS: () => STATUS_LABELS,
23
- STATUS_LABELS_DE: () => STATUS_LABELS_DE,
24
- STATUS_LABELS_EN: () => STATUS_LABELS_EN,
25
23
  SUPPORTED_LANGUAGES: () => SUPPORTED_LANGUAGES
26
24
  });
27
25
  module.exports = __toCommonJS(types_exports);
@@ -148,16 +146,12 @@ const STATUS_LABELS = {
148
146
  8: "\u5DF2\u767B\u8BB0"
149
147
  }
150
148
  };
151
- const STATUS_LABELS_DE = STATUS_LABELS.de;
152
- const STATUS_LABELS_EN = STATUS_LABELS.en;
153
149
  const SUPPORTED_LANGUAGES = Object.keys(STATUS_LABELS);
154
150
  const FALLBACK_LANGUAGE = "en";
155
151
  // Annotate the CommonJS export names for ESM import in node:
156
152
  0 && (module.exports = {
157
153
  FALLBACK_LANGUAGE,
158
154
  STATUS_LABELS,
159
- STATUS_LABELS_DE,
160
- STATUS_LABELS_EN,
161
155
  SUPPORTED_LANGUAGES
162
156
  });
163
157
  //# sourceMappingURL=types.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/lib/types.ts"],
4
- "sourcesContent": ["/** API response from parcel.app deliveries endpoint */\nexport interface ParcelApiResponse {\n /** Whether the request was successful */\n success: boolean;\n /** Error message if request failed */\n error_message?: string;\n /** Error code if request failed */\n error_code?: string;\n /** List of deliveries */\n deliveries?: ParcelDelivery[];\n}\n\n/** Single delivery from the parcel.app API */\nexport interface ParcelDelivery {\n /** Carrier identifier */\n carrier_code: string;\n /** User-defined description */\n description: string;\n /** Status code (0-8 as string) */\n status_code: string;\n /** Tracking number */\n tracking_number: string;\n /** Extra info (postal code, email) */\n extra_information?: string;\n /** Expected delivery date */\n date_expected?: string;\n /** Expected delivery date end */\n date_expected_end?: string;\n /** Expected delivery Unix timestamp */\n timestamp_expected?: number;\n /** Expected delivery end Unix timestamp */\n timestamp_expected_end?: number;\n /** Tracking events (newest first) */\n events?: ParcelEvent[];\n}\n\n/** Single tracking event */\nexport interface ParcelEvent {\n /** Event description */\n event: string;\n /** Event date string */\n date: string;\n /** Event location */\n location?: string;\n /** Additional details */\n additional?: string;\n}\n\n/** Request body for adding a delivery */\nexport interface AddDeliveryRequest {\n /** Tracking number to add */\n tracking_number: string;\n /** Carrier code */\n carrier_code: string;\n /** User description */\n description: string;\n /** Tracking language */\n language?: string;\n /** Send push confirmation */\n send_push_confirmation?: boolean;\n}\n\n/** Add delivery API response */\nexport interface AddDeliveryResponse {\n /** Whether the delivery was added */\n success: boolean;\n /** Error message if failed */\n error_message?: string;\n}\n\n/** Carrier names mapping (carrier_code \u2192 display name) */\nexport type CarrierMap = Record<string, string>;\n\n/** Delivery status labels for status codes 0-8, keyed by ioBroker language code */\nexport const STATUS_LABELS: Record<string, Record<number, string>> = {\n de: {\n 0: \"Zugestellt\",\n 1: \"Eingefroren\",\n 2: \"Unterwegs\",\n 3: \"Abholung erwartet\",\n 4: \"In Zustellung\",\n 5: \"Nicht gefunden\",\n 6: \"Zustellversuch gescheitert\",\n 7: \"Ausnahme\",\n 8: \"Registriert\",\n },\n en: {\n 0: \"Delivered\",\n 1: \"Frozen\",\n 2: \"In Transit\",\n 3: \"Awaiting Pickup\",\n 4: \"Out for Delivery\",\n 5: \"Not Found\",\n 6: \"Delivery Attempt Failed\",\n 7: \"Exception\",\n 8: \"Info Received\",\n },\n ru: {\n 0: \"\u0414\u043E\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u043E\",\n 1: \"\u0417\u0430\u043C\u043E\u0440\u043E\u0436\u0435\u043D\u043E\",\n 2: \"\u0412 \u043F\u0443\u0442\u0438\",\n 3: \"\u041E\u0436\u0438\u0434\u0430\u0435\u0442 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F\",\n 4: \"\u0414\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442\u0441\u044F\",\n 5: \"\u041D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E\",\n 6: \"\u041D\u0435\u0443\u0434\u0430\u0447\u043D\u0430\u044F \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0430\",\n 7: \"\u0418\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\",\n 8: \"\u0417\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043E\",\n },\n pt: {\n 0: \"Entregue\",\n 1: \"Congelado\",\n 2: \"Em tr\u00E2nsito\",\n 3: \"Aguardando recolha\",\n 4: \"Em entrega\",\n 5: \"N\u00E3o encontrado\",\n 6: \"Tentativa de entrega falhou\",\n 7: \"Exce\u00E7\u00E3o\",\n 8: \"Registado\",\n },\n nl: {\n 0: \"Bezorgd\",\n 1: \"Bevroren\",\n 2: \"Onderweg\",\n 3: \"Wacht op ophaling\",\n 4: \"Wordt bezorgd\",\n 5: \"Niet gevonden\",\n 6: \"Bezorgpoging mislukt\",\n 7: \"Uitzondering\",\n 8: \"Geregistreerd\",\n },\n fr: {\n 0: \"Livr\u00E9\",\n 1: \"Gel\u00E9\",\n 2: \"En transit\",\n 3: \"En attente de retrait\",\n 4: \"En cours de livraison\",\n 5: \"Introuvable\",\n 6: \"\u00C9chec de la livraison\",\n 7: \"Exception\",\n 8: \"Enregistr\u00E9\",\n },\n it: {\n 0: \"Consegnato\",\n 1: \"Congelato\",\n 2: \"In transito\",\n 3: \"In attesa di ritiro\",\n 4: \"In consegna\",\n 5: \"Non trovato\",\n 6: \"Consegna fallita\",\n 7: \"Eccezione\",\n 8: \"Registrato\",\n },\n es: {\n 0: \"Entregado\",\n 1: \"Congelado\",\n 2: \"En tr\u00E1nsito\",\n 3: \"Esperando recogida\",\n 4: \"En reparto\",\n 5: \"No encontrado\",\n 6: \"Intento de entrega fallido\",\n 7: \"Excepci\u00F3n\",\n 8: \"Registrado\",\n },\n pl: {\n 0: \"Dostarczone\",\n 1: \"Zamro\u017Cone\",\n 2: \"W drodze\",\n 3: \"Oczekuje na odbi\u00F3r\",\n 4: \"W dor\u0119czeniu\",\n 5: \"Nie znaleziono\",\n 6: \"Nieudana pr\u00F3ba dor\u0119czenia\",\n 7: \"Wyj\u0105tek\",\n 8: \"Zarejestrowane\",\n },\n uk: {\n 0: \"\u0414\u043E\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u043E\",\n 1: \"\u0417\u0430\u043C\u043E\u0440\u043E\u0436\u0435\u043D\u043E\",\n 2: \"\u0412 \u0434\u043E\u0440\u043E\u0437\u0456\",\n 3: \"\u041E\u0447\u0456\u043A\u0443\u0454 \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043D\u044F\",\n 4: \"\u0414\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0454\u0442\u044C\u0441\u044F\",\n 5: \"\u041D\u0435 \u0437\u043D\u0430\u0439\u0434\u0435\u043D\u043E\",\n 6: \"\u041D\u0435\u0432\u0434\u0430\u043B\u0430 \u0441\u043F\u0440\u043E\u0431\u0430 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438\",\n 7: \"\u0412\u0438\u043D\u044F\u0442\u043E\u043A\",\n 8: \"\u0417\u0430\u0440\u0435\u0454\u0441\u0442\u0440\u043E\u0432\u0430\u043D\u043E\",\n },\n \"zh-cn\": {\n 0: \"\u5DF2\u9001\u8FBE\",\n 1: \"\u5DF2\u51BB\u7ED3\",\n 2: \"\u8FD0\u8F93\u4E2D\",\n 3: \"\u7B49\u5F85\u53D6\u4EF6\",\n 4: \"\u6D3E\u9001\u4E2D\",\n 5: \"\u672A\u627E\u5230\",\n 6: \"\u6D3E\u9001\u5931\u8D25\",\n 7: \"\u5F02\u5E38\",\n 8: \"\u5DF2\u767B\u8BB0\",\n },\n};\n\n/** Backward-compatible aliases (used by tests and legacy imports) */\nexport const STATUS_LABELS_DE = STATUS_LABELS.de;\nexport const STATUS_LABELS_EN = STATUS_LABELS.en;\n\n/** Language codes the adapter generates state labels for */\nexport const SUPPORTED_LANGUAGES = Object.keys(STATUS_LABELS);\n\n/** Fallback language used when system.config.language is outside SUPPORTED_LANGUAGES */\nexport const FALLBACK_LANGUAGE = \"en\";\n\n// Augment the ioBroker global namespace\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace ioBroker {\n interface AdapterConfig {\n /** parcel.app API key */\n apiKey: string;\n /** Polling interval in minutes */\n pollInterval: number;\n /** Automatically remove delivered packages from states */\n autoRemoveDelivered: boolean;\n }\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA0EO,MAAM,gBAAwD;AAAA,EACnE,IAAI;AAAA,IACF,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AAAA,EACA,IAAI;AAAA,IACF,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AAAA,EACA,IAAI;AAAA,IACF,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AAAA,EACA,IAAI;AAAA,IACF,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AAAA,EACA,IAAI;AAAA,IACF,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AAAA,EACA,IAAI;AAAA,IACF,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AAAA,EACA,IAAI;AAAA,IACF,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AAAA,EACA,IAAI;AAAA,IACF,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AAAA,EACA,IAAI;AAAA,IACF,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AAAA,EACA,IAAI;AAAA,IACF,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AAAA,EACA,SAAS;AAAA,IACP,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AACF;AAGO,MAAM,mBAAmB,cAAc;AACvC,MAAM,mBAAmB,cAAc;AAGvC,MAAM,sBAAsB,OAAO,KAAK,aAAa;AAGrD,MAAM,oBAAoB;",
4
+ "sourcesContent": ["/** API response from parcel.app deliveries endpoint */\nexport interface ParcelApiResponse {\n /** Whether the request was successful */\n success: boolean;\n /** Error message if request failed */\n error_message?: string;\n /** Error code if request failed */\n error_code?: string;\n /** List of deliveries */\n deliveries?: ParcelDelivery[];\n}\n\n/** Single delivery from the parcel.app API */\nexport interface ParcelDelivery {\n /** Carrier identifier */\n carrier_code: string;\n /** User-defined description */\n description: string;\n /** Status code (0-8 as string) */\n status_code: string;\n /** Tracking number */\n tracking_number: string;\n /** Extra info (postal code, email) */\n extra_information?: string;\n /** Expected delivery date */\n date_expected?: string;\n /** Expected delivery date end */\n date_expected_end?: string;\n /** Expected delivery Unix timestamp */\n timestamp_expected?: number;\n /** Expected delivery end Unix timestamp */\n timestamp_expected_end?: number;\n /** Tracking events (newest first) */\n events?: ParcelEvent[];\n}\n\n/** Single tracking event */\nexport interface ParcelEvent {\n /** Event description */\n event: string;\n /** Event date string */\n date: string;\n /** Event location */\n location?: string;\n /** Additional details */\n additional?: string;\n}\n\n/** Request body for adding a delivery */\nexport interface AddDeliveryRequest {\n /** Tracking number to add */\n tracking_number: string;\n /** Carrier code */\n carrier_code: string;\n /** User description */\n description: string;\n /** Tracking language */\n language?: string;\n /** Send push confirmation */\n send_push_confirmation?: boolean;\n}\n\n/** Add delivery API response */\nexport interface AddDeliveryResponse {\n /** Whether the delivery was added */\n success: boolean;\n /** Error message if failed */\n error_message?: string;\n}\n\n/** Carrier names mapping (carrier_code \u2192 display name) */\nexport type CarrierMap = Record<string, string>;\n\n/** Delivery status labels for status codes 0-8, keyed by ioBroker language code */\nexport const STATUS_LABELS: Record<string, Record<number, string>> = {\n de: {\n 0: \"Zugestellt\",\n 1: \"Eingefroren\",\n 2: \"Unterwegs\",\n 3: \"Abholung erwartet\",\n 4: \"In Zustellung\",\n 5: \"Nicht gefunden\",\n 6: \"Zustellversuch gescheitert\",\n 7: \"Ausnahme\",\n 8: \"Registriert\",\n },\n en: {\n 0: \"Delivered\",\n 1: \"Frozen\",\n 2: \"In Transit\",\n 3: \"Awaiting Pickup\",\n 4: \"Out for Delivery\",\n 5: \"Not Found\",\n 6: \"Delivery Attempt Failed\",\n 7: \"Exception\",\n 8: \"Info Received\",\n },\n ru: {\n 0: \"\u0414\u043E\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u043E\",\n 1: \"\u0417\u0430\u043C\u043E\u0440\u043E\u0436\u0435\u043D\u043E\",\n 2: \"\u0412 \u043F\u0443\u0442\u0438\",\n 3: \"\u041E\u0436\u0438\u0434\u0430\u0435\u0442 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F\",\n 4: \"\u0414\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442\u0441\u044F\",\n 5: \"\u041D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E\",\n 6: \"\u041D\u0435\u0443\u0434\u0430\u0447\u043D\u0430\u044F \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0430\",\n 7: \"\u0418\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\",\n 8: \"\u0417\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043E\",\n },\n pt: {\n 0: \"Entregue\",\n 1: \"Congelado\",\n 2: \"Em tr\u00E2nsito\",\n 3: \"Aguardando recolha\",\n 4: \"Em entrega\",\n 5: \"N\u00E3o encontrado\",\n 6: \"Tentativa de entrega falhou\",\n 7: \"Exce\u00E7\u00E3o\",\n 8: \"Registado\",\n },\n nl: {\n 0: \"Bezorgd\",\n 1: \"Bevroren\",\n 2: \"Onderweg\",\n 3: \"Wacht op ophaling\",\n 4: \"Wordt bezorgd\",\n 5: \"Niet gevonden\",\n 6: \"Bezorgpoging mislukt\",\n 7: \"Uitzondering\",\n 8: \"Geregistreerd\",\n },\n fr: {\n 0: \"Livr\u00E9\",\n 1: \"Gel\u00E9\",\n 2: \"En transit\",\n 3: \"En attente de retrait\",\n 4: \"En cours de livraison\",\n 5: \"Introuvable\",\n 6: \"\u00C9chec de la livraison\",\n 7: \"Exception\",\n 8: \"Enregistr\u00E9\",\n },\n it: {\n 0: \"Consegnato\",\n 1: \"Congelato\",\n 2: \"In transito\",\n 3: \"In attesa di ritiro\",\n 4: \"In consegna\",\n 5: \"Non trovato\",\n 6: \"Consegna fallita\",\n 7: \"Eccezione\",\n 8: \"Registrato\",\n },\n es: {\n 0: \"Entregado\",\n 1: \"Congelado\",\n 2: \"En tr\u00E1nsito\",\n 3: \"Esperando recogida\",\n 4: \"En reparto\",\n 5: \"No encontrado\",\n 6: \"Intento de entrega fallido\",\n 7: \"Excepci\u00F3n\",\n 8: \"Registrado\",\n },\n pl: {\n 0: \"Dostarczone\",\n 1: \"Zamro\u017Cone\",\n 2: \"W drodze\",\n 3: \"Oczekuje na odbi\u00F3r\",\n 4: \"W dor\u0119czeniu\",\n 5: \"Nie znaleziono\",\n 6: \"Nieudana pr\u00F3ba dor\u0119czenia\",\n 7: \"Wyj\u0105tek\",\n 8: \"Zarejestrowane\",\n },\n uk: {\n 0: \"\u0414\u043E\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u043E\",\n 1: \"\u0417\u0430\u043C\u043E\u0440\u043E\u0436\u0435\u043D\u043E\",\n 2: \"\u0412 \u0434\u043E\u0440\u043E\u0437\u0456\",\n 3: \"\u041E\u0447\u0456\u043A\u0443\u0454 \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043D\u044F\",\n 4: \"\u0414\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0454\u0442\u044C\u0441\u044F\",\n 5: \"\u041D\u0435 \u0437\u043D\u0430\u0439\u0434\u0435\u043D\u043E\",\n 6: \"\u041D\u0435\u0432\u0434\u0430\u043B\u0430 \u0441\u043F\u0440\u043E\u0431\u0430 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438\",\n 7: \"\u0412\u0438\u043D\u044F\u0442\u043E\u043A\",\n 8: \"\u0417\u0430\u0440\u0435\u0454\u0441\u0442\u0440\u043E\u0432\u0430\u043D\u043E\",\n },\n \"zh-cn\": {\n 0: \"\u5DF2\u9001\u8FBE\",\n 1: \"\u5DF2\u51BB\u7ED3\",\n 2: \"\u8FD0\u8F93\u4E2D\",\n 3: \"\u7B49\u5F85\u53D6\u4EF6\",\n 4: \"\u6D3E\u9001\u4E2D\",\n 5: \"\u672A\u627E\u5230\",\n 6: \"\u6D3E\u9001\u5931\u8D25\",\n 7: \"\u5F02\u5E38\",\n 8: \"\u5DF2\u767B\u8BB0\",\n },\n};\n\n/** Language codes the adapter generates state labels for */\nexport const SUPPORTED_LANGUAGES = Object.keys(STATUS_LABELS);\n\n/** Fallback language used when system.config.language is outside SUPPORTED_LANGUAGES */\nexport const FALLBACK_LANGUAGE = \"en\";\n\n// Augment the ioBroker global namespace\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace ioBroker {\n interface AdapterConfig {\n /** parcel.app API key */\n apiKey: string;\n /** Polling interval in minutes */\n pollInterval: number;\n /** Automatically remove delivered packages from states */\n autoRemoveDelivered: boolean;\n }\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA0EO,MAAM,gBAAwD;AAAA,EACnE,IAAI;AAAA,IACF,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AAAA,EACA,IAAI;AAAA,IACF,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AAAA,EACA,IAAI;AAAA,IACF,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AAAA,EACA,IAAI;AAAA,IACF,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AAAA,EACA,IAAI;AAAA,IACF,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AAAA,EACA,IAAI;AAAA,IACF,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AAAA,EACA,IAAI;AAAA,IACF,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AAAA,EACA,IAAI;AAAA,IACF,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AAAA,EACA,IAAI;AAAA,IACF,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AAAA,EACA,IAAI;AAAA,IACF,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AAAA,EACA,SAAS;AAAA,IACP,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AACF;AAGO,MAAM,sBAAsB,OAAO,KAAK,aAAa;AAGrD,MAAM,oBAAoB;",
6
6
  "names": []
7
7
  }
package/io-package.json CHANGED
@@ -1,98 +1,98 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "parcelapp",
4
- "version": "0.2.18",
4
+ "version": "0.3.1",
5
5
  "news": {
6
+ "0.3.1": {
7
+ "en": "Documentation cleanup: shortened older changelog entries.",
8
+ "de": "Dokumentation: ältere Changelog-Einträge gekürzt.",
9
+ "ru": "Документация: сокращены старые записи changelog.",
10
+ "pt": "Documentação: entradas antigas do changelog encurtadas.",
11
+ "nl": "Documentatie: oudere changelog-vermeldingen ingekort.",
12
+ "fr": "Documentation : entrées anciennes du changelog raccourcies.",
13
+ "it": "Documentazione: voci di changelog precedenti accorciate.",
14
+ "es": "Documentación: entradas antiguas del changelog acortadas.",
15
+ "pl": "Dokumentacja: skrócone starsze wpisy changelog.",
16
+ "uk": "Документація: скорочено старі записи changelog.",
17
+ "zh-cn": "文档:缩短旧的 changelog 条目。"
18
+ },
19
+ "0.3.0": {
20
+ "en": "Internal cleanup: dead `STATUS_LABELS_*` aliases removed, format/format:check scripts, master-sync.",
21
+ "de": "Interne Bereinigung: tote `STATUS_LABELS_*`-Aliases raus, format/format:check-Scripts, Master-Sync.",
22
+ "ru": "Внутренняя очистка: удалены мёртвые `STATUS_LABELS_*`-алиасы, скрипты format/format:check, master-sync.",
23
+ "pt": "Limpeza interna: aliases `STATUS_LABELS_*` mortos removidos, scripts format/format:check, master-sync.",
24
+ "nl": "Interne opschoning: dode `STATUS_LABELS_*`-aliases verwijderd, format/format:check-scripts, master-sync.",
25
+ "fr": "Nettoyage interne : alias `STATUS_LABELS_*` morts supprimés, scripts format/format:check, master-sync.",
26
+ "it": "Pulizia interna: alias `STATUS_LABELS_*` morti rimossi, script format/format:check, master-sync.",
27
+ "es": "Limpieza interna: aliases `STATUS_LABELS_*` muertos eliminados, scripts format/format:check, master-sync.",
28
+ "pl": "Wewnętrzne porządki: martwe aliasy `STATUS_LABELS_*` usunięte, skrypty format/format:check, master-sync.",
29
+ "uk": "Внутрішнє прибирання: мертві `STATUS_LABELS_*`-аліаси видалено, скрипти format/format:check, master-sync.",
30
+ "zh-cn": "内部清理:移除已废弃的 `STATUS_LABELS_*` 别名,新增 format/format:check 脚本,master-sync。"
31
+ },
6
32
  "0.2.18": {
7
- "en": "Audit cleanup against the upstream `ioBroker.example/TypeScript` full standard:\n`@types/node` rolled back from `^25.6.0` to `^20.19.24` so type defs match `engines.node: \">=20\"` (otherwise Node 21+-only APIs would type-check on Node 20 and crash at runtime)\nDependabot now ignores major bumps for `@types/node`, `typescript`, `eslint` so the runtime/toolchain pinning cannot drift via auto-merge\n`nyc` config + `coverage` script added (matches upstream template)\n`prettier.config.mjs` made explicit with project-style overrides (Spaces 2-wide, double quotes) instead of relying on missing config\nOrphan `.github/auto-merge.yml` removed (the active workflow is `automerge-dependabot.yml` using `gh pr merge`, the old yml was never read)",
8
- "de": "Audit-Aufräumung gegen den vorgeschalteten `ioBroker.example/TypeScript` Vollstandard:\n`@types/node` rollte zurück von `^25.6.0` zu `^20.19.24` so type defs match `engines.node: \">=20\" ` (sonst Node 21+-only APIs würden Typ-Check auf Node 20 und Crash bei Laufzeit)\nDependabot ignoriert nun große Beulen für `@types/node`, `typescript`, `eslint`, so dass die Runtime/toolchain Pinning nicht über Auto-Merge driften kann\n`nyc` config + `coverage` skript hinzugefügt (matches vor vorlage)\n`prettier.config.mjs` explizit gemacht mit Projekt-Stil Overrides (Spaces 2-wide, doppelte Zitate) anstatt auf fehlende config verlassen\nOrphan `.github/auto-merge.yml` entfernt (der aktive Workflow ist `automerge-dependabot.yml` mit `gh pr merge`, die alte yml wurde nie gelesen)",
9
- "ru": "Очистка аудита по полному стандарту «ioBroker.example/TypeScript»:\n«@types/node» откатился от «^25.6.0» к «^20.19.24», поэтому параметры типа соответствуют «engines.node:>=20» (иначе API Node 21+ будут проверять тип на Node 20 и падать во время выполнения)\nDependabot теперь игнорирует основные удары для «@types/node», «typescript», «eslint», поэтому время выполнения / закрепление цепочки не может дрейфовать через автоматическое слияние\n'nyc' config + 'coverage' script add (совпадает с шаблоном upstream)\n«prettier.config.mjs» в прямом эфире с надстройками в стиле проекта (пространства 2, двойные цитаты) вместо того, чтобы полагаться на отсутствующий конфигуратор\nOrphan '.github/auto-merge.yml' удален (активный рабочий процесс - 'automerge-dependabot.yml' с использованием 'gh pr merge', старый yml никогда не читался)",
10
- "pt": "Limpeza de auditoria contra o padrão completo 'ioBroker.example/TypeScript` upstream:\n`@types/node` rolled back from `^25.6.0` to `^20.19.24` então digite defs match `engines.node: \">=20\"` (caso contrário Node 21+-only APIs iria digitar-check on Node 20 e bater em tempo de execução)\nDependebot agora ignora grandes problemas para `@types/node`, `typescript`, `eslint` para que o spining runtime/toolchain não possa derivar através da fusão automática\n'nyc' config + 'coverage' script adicionado (corresponde ao modelo upstream)\n`prettier.config.mjs` explicitado com sobreposições de estilo de projeto (Espaços 2-largura, aspas duplas) em vez de confiar na configuração ausente\nÓrfão `.github/auto-merge.yml` removido (o fluxo de trabalho ativo é `automerge-dependabot.yml` usando `gh pr merge`, o yml antigo nunca foi lido)",
11
- "nl": "Audit cleanup tegen de upstream .example/TypeScript\nZo type defs komen overeen met de engines.node: \">=20\" (anders zou Node 21+-alleen API's op Node 20 controleren en crashen op runtime)\nDependabot negeert nu grote hobbels voor \n`nyc` config + `coverage` script added (matches upstream template)\nPrettier.config.mjs\nOure.github/auto-merge.yml",
12
- "fr": "Nettoyage de l'audit par rapport à la norme en amont `ioBroker.example/TypeScript`:\n`@types/node` retourné de `^25.6.0` à `^20.19.24` de sorte que le type defs correspond `engines.node: \">=20\"` (autrement, les API de Node 21+ seulement contrôleraient le Node 20 et s'écraseraient au moment de l'exécution)\nDependabot ignore maintenant les bosses principales pour `@types/node`, `typescript`, `estint` de sorte que l'exécution/toolchain pinning ne peut pas dériver par fusion automatique\nscript `nyc` config + `coverage` ajouté (comparaison en amont)\n`prettier.config.mjs` fait explicite avec les redéfinitions de style projet (espaces 2-large, guillemets doubles) au lieu de compter sur la configuration manquante\nOrphan `.github/auto-merge.yml` supprimé (le workflow actif est `automerge-dependabot.yml` en utilisant `gh pr merge`, l'ancien yml n'a jamais été lu)",
13
- "it": "Audit cleanup contro il `ioBroker.example/TypeScript` standard completo:\n`@types/node` rotolato indietro da `^25.6.0` a `^20.19.24` così tipo defs match `engines.node: \">=20\"` (altrimenti Node 21 +-solo API sarebbe digitare-check su Node 20 e crash a runtime)\nDependabot ora ignora urti principali per `@types/node`, `typescript`, `eslint` in modo che il runtime/toolchain pinning non può derivare via auto-merge\n`nyc` config + `coverage` script aggiunto (matches upstream template)\n`prettier.config.mjs` fatto esplicito con overrides di progetto (Spaces 2-wide, doppie citazioni) invece di affidarsi alla configurazione mancante\nOrphan `.github/auto-merge.yml` rimosso (il flusso di lavoro attivo è `automerge-dependabot.yml` utilizzando `gh pr merge`, il vecchio yml non è mai stato letto)",
14
- "es": "Limpieza de auditorías contra el estándar completo del `ioBroker.example/TypeScript`:\n`@types/node` rolled back from `^25.6.0` to `^20.19.24` so type defs match `engines.node: \" prenda=20\" ' (otherwise Node 21+-only APIs would type-check on Node 20 and crash at runtime)\nDependabot hace caso omiso de los principales golpes por `@tipos/nodo`, `tiposcript`, `eslint`, por lo que el tiempo de ejecución/toolchain pinning no puede derivar a través de auto-merge\n`nyc` config + `coverage` script añadido (matches upstream template)\n`prettier.config.mjs` hecho explícito con anulas de estilo de proyecto (Spaces 2-wide, citas dobles) en lugar de confiar en los config desaparecidos\nHuérfano `.github/auto-merge.yml` eliminado (el flujo de trabajo activo es `automerge-dependabot.yml` utilizando `gh pr merge`, el yml antiguo nunca fue leído)",
15
- "pl": "Oczyszczanie audytów w stosunku do pełnego standardu 'iBroker.example / TypeScript':\n'@ types / node' rolled back from '^ 25.6.0' to '^ 20.19.24' so type defs match 'engins.node: \"> = 20\"' (w przeciwnym razie tylko Node 21 + -only API would type- check on Node 20 and crash at runtime)\nDependabot ignoruje teraz główne przeszkody dla '@ types / node', 'typescript', 'eslint', więc przypinanie do łańcucha runtime / toolchain nie może dryfować poprzez automatyczne połączenie\ndodano skrypt 'nyc' config + 'coverage' (dopasowuje szablon początkowy)\n'prettie.config.mjs' jest wyraźna z przekroczeniami w stylu project- style (Spaces 2- szerokie, podwójne cytaty) zamiast polegać na brakującym konfigu\nOrphan '.github / auto- merge.yml' usunięty (aktywny przepływ pracy to 'automaterge- dependiabot.yml' przy użyciu 'gh pr merge', stary yml nigdy nie został przeczytany)",
16
- "uk": "Аудиторське очищення від потоку `ioBroker.example/TypeScript`\n`@types/node` відхилений від `^25.6.0`` до `^20.19.24` так типу defs match `engines.node: \">=20\"` (іншого Node 21+-only APIs буде виданий на Node 20 і аварійний час)\nВ залежності від того, як `slint`, `slint`, `slint`, `eslint`, так що пусковий / toolchain пінінг не може drift через автоматичний мердж\n`nyc` config + `coverage` скрипт додано (змініть шаблон stream)\n`prettier.config.mjs` зробив явний з перенаряддям проекту (Косміка 2-широка, подвійні лапки) замість перекриття на відсутній конфігурації\nOrphan `.github/auto-merge.yml` вилучено (активний робочий процес `automerge-залежніabot.yml` за допомогою `gh pr злиття`, старий yml ніколи не читав)",
17
- "zh-cn": "对照上游`ioBroker.example/TypeScript ' 全面标准进行审计清理:\nQQQ类型/节点 ' 从 QQ25.6.0 ' 滚回 QQ20.19.24' , 这样类型 dafs match ‘engines.node : \"QQ20'(否则节点21+唯一的API会在节点20上进行打字检查,运行时崩溃)\n依赖现在忽略了QQ类型/节点、 \" 类型标记 \" 、 \" 斜线 \" 的重大突起,因此运行时间/工具链夹针不能通过自动浮出水面\n添加“nyc”配置+“覆盖”脚本(上游模板)\n`pretier.config.mjs' 明确了项目样式的覆盖(宽2层,双引号),而不是依赖缺失的配置\n孤儿`.github/自动合并.yml ' 被删除(使用`gh pr 合并 ' 的当前工作流程为`autommerge-dependabot.yml ' ,旧yml从未读过)"
33
+ "en": "Internal cleanup against ioBroker.example/TypeScript standard.",
34
+ "de": "Interne Bereinigung gegen ioBroker.example/TypeScript-Standard.",
35
+ "ru": "Внутренняя очистка по стандарту ioBroker.example/TypeScript.",
36
+ "pt": "Limpeza interna conforme padrão ioBroker.example/TypeScript.",
37
+ "nl": "Interne opschoning volgens ioBroker.example/TypeScript-standaard.",
38
+ "fr": "Nettoyage interne selon le standard ioBroker.example/TypeScript.",
39
+ "it": "Pulizia interna secondo lo standard ioBroker.example/TypeScript.",
40
+ "es": "Limpieza interna según el estándar ioBroker.example/TypeScript.",
41
+ "pl": "Wewnętrzne porządki zgodnie ze standardem ioBroker.example/TypeScript.",
42
+ "uk": "Внутрішнє прибирання за стандартом ioBroker.example/TypeScript.",
43
+ "zh-cn": "依据 ioBroker.example/TypeScript 标准的内部清理。"
18
44
  },
19
45
  "0.2.17": {
20
- "en": "Test setup migrated to the upstream `ioBroker.example/TypeScript` standard: tests now live next to source as `src/**/*.test.ts` and run directly via `ts-node/register`, no separate test-build. Removes `tsconfig.test.json` + `build-test/` per latest-repo review feedback.",
21
- "de": "Test-Setup migriert zum `ioBroker.example/TypeScript` Standard: Tests leben jetzt neben der Quelle als `src/**/*.test.ts` und laufen direkt über `ts-node/register`, kein separater Testaufbau. Entfernt `tsconfig.test.json` + `build-test/` pro neuste Repo-Review-Feedback.",
22
- "ru": "Настройка теста перешла на стандарт выше по течению «ioBroker.example/TypeScript»: тесты теперь живут рядом с исходным кодом как «src/**/*.test.ts» и запускаются непосредственно через «ts-узел/регистр» без отдельной сборки теста. Удалить «tsconfig.test.json» + «build-test/» в соответствии с отзывами о последнем репо.",
23
- "pt": "A configuração de teste migrou para o padrão upstream `ioBroker.example/TypeScript`: testes agora vivem ao lado do código fonte como `src/**/*.test.ts` e são executados diretamente através de `ts-node/register`, sem construção de teste separada. Remove `tsconfig.test.json` + `build-test/` por feedback de revisão de repo mais recente.",
24
- "nl": "Testopstelling is gemigreerd naar de upstream-standaard van de \"ioBroker.\"example/TypeScript Verwijdert .",
25
- "fr": "La configuration des tests a migré vers la norme en amont `ioBroker.example/TypeScript`: les tests sont maintenant en direct à côté de la source sous le nom `src/**/*.test.ts` et sont exécutés directement via `ts-node/register`, aucun test-build séparé. Supprime `tsconfig.test.json` + `build-test/` par les commentaires de la dernière révision.",
26
- "it": "Configurazione del test migrata allo standard `ioBroker.example/TypeScript` a monte: i test ora vivono accanto alla sorgente come `src/**/*.test.ts` e vengono eseguiti direttamente tramite `ts-node/register`, nessun test-build separato. Rimuove `tsconfig.test.json` + `build-test/` per feedback di ultima recensione.",
27
- "es": "Configuración de prueba migrada a la norma de `ioBroker.example/TypeScript` aguas arriba: las pruebas ahora viven al lado de la fuente como `src/**/*.test.ts` y se ejecutan directamente a través de 'ts-node/register', sin prueba separada. Elimina `tsconfig.test.json` + `build-test/` por última respuesta de revisión.",
28
- "pl": "Konfiguracja testowa migrowała do standardu 'iBroker.example / TypeScript': testy teraz żyją obok źródła jako 'src / ** /* .test.ts' i działają bezpośrednio przez 'ts- node / register', bez oddzielnego test- build. Usuwa 'tsconfig.test.json' + 'build- test /' per latest- repo review review feeds. ",
29
- "uk": "Тест-настроювання, що мігрується на дотик `ioBroker.example/TypeScript`` стандарт: тести тепер живуть біля джерела, як `src/*/**/*.test.ts` і запустити безпосередньо через `ts-node/register`, не окремий тест-будівельник. Вилучає `tsconfig.test.json` + `build-test/`/` за останні відгуки.",
30
- "zh-cn": "测试设置迁移到上游`ioBroker.example/TypeScript ' 标准:测试现在作为`src/**/*.test.ts ' 存在于源旁,直接通过`ts-node/register ' 运行,没有单独的测试建设。 删除`tsconfig.test.json ' +`building-test/ ' 每一次最新检索审查反馈."
46
+ "en": "Internal: test setup migrated to `src/**/*.test.ts` standard.",
47
+ "de": "Intern: Test-Setup auf `src/**/*.test.ts`-Standard migriert.",
48
+ "ru": "Внутреннее: тестовая инфраструктура переведена на стандарт `src/**/*.test.ts`.",
49
+ "pt": "Interno: configuração de testes migrada para o padrão `src/**/*.test.ts`.",
50
+ "nl": "Intern: testsetup gemigreerd naar `src/**/*.test.ts`-standaard.",
51
+ "fr": "Interne : configuration de tests migrée au standard `src/**/*.test.ts`.",
52
+ "it": "Interno: setup test migrato allo standard `src/**/*.test.ts`.",
53
+ "es": "Interno: configuración de tests migrada al estándar `src/**/*.test.ts`.",
54
+ "pl": "Wewnętrzne: konfiguracja testów zmigrowana do standardu `src/**/*.test.ts`.",
55
+ "uk": "Внутрішнє: тестова інфраструктура переведена на стандарт `src/**/*.test.ts`.",
56
+ "zh-cn": "内部:测试配置迁移至 `src/**/*.test.ts` 标准。"
31
57
  },
32
58
  "0.2.16": {
33
- "en": "Min js-controller correction: was incorrectly bumped to `>=7.0.23` in 0.2.15 (Wert kam aus Recherche-Synthese, nicht aus Repochecker-Source). Repochecker-recommended value is `>=6.0.11` — restored.",
34
- "de": "Min js-Controller-Korrektur: wurde falsch auf `>=7.0.23` in 0.2.15 (Wert kam aus Recherche-Synthese, nicht aus Repochecker-Source) gesprungen. Repochecker-recommended Wert ist `>=6.0.11` — restauriert.",
35
- "ru": "Коррекция Min js-контроллера: в 0.2.15 она была неправильно увеличена до '>=7.0.23' (Wert kam aus Recherche-Synthese, nicht aus Repochecker-Source). Рекомендуемое значение репочекера ->=6.0.11 - восстановлено.",
36
- "pt": "Min js-controller correção: foi incorretamente bateu para `>=7.0.23` em 0.2.15 (Wert kam aus Recherche-Syntheses, nicht aus Repochecker-Source). O valor recomendado pelo repochecker é `>=6.0.11` — restaurado.",
37
- "nl": "Min js-controller correctie: werd foutief gestoten naar Repochecker aanbevolen waarde is .",
38
- "fr": "La correction de min js-controller : a été incorrectement cognée à `>=7.0.23` dans le 0,2.15 (Wert kam aus Recherche-Synthese, nicht aus Repochecker-Source). La valeur recommandée par Repochecker est `>=6.0.11` restaurée.",
39
- "it": "Min js-controller correzione: è stato erroneamente urtato a `>=7.0.23` in 0.2.15 (Wert kam aus Recherche-Synthese, nicht aus Repochecker-Source). Il valore ricondizionato da repochecker è `>=6.0.11` — restaurato.",
40
- "es": "Min js-controller correction: was incorrectly toped to `=7.0.23` in 0.2.15 (Wert kam aus Recherche-Synthese, nicht aus Repochecker-Source). Repochecker-recomendado valor es `=6.0.11` — restaurado.",
41
- "pl": "Min js- controller correction: was intruly bone to '> = 7.0.23' in 0.2.15 (Wert kam aus Recherche- Synthes, nicht aus Repochecker- Source). Repochecker- zalecana wartość jest '> = 6.0.11' - przywrócona.",
42
- "uk": "Нормативно прибрано до `>=7.0.23` в 0.2.15 (Верт kam aus Recherche-Synthese, nicht aus Repochecker-Source). Repochecker-recommended значення `>=6.0.11` — відновлено.",
43
- "zh-cn": "Min js-controller校正:在0.2.15中被误撞到QQ7.0.23 ' (Wert kam aus ReResearch-Synthese, nicht aus Repochecker-Source)。 复检员推荐值为 6.0.11 ' ——恢复."
59
+ "en": "Min js-controller corrected back to `>=6.0.11` (was incorrectly bumped to `>=7.0.23` in 0.2.15).",
60
+ "de": "Min js-controller zurück auf `>=6.0.11` (war in 0.2.15 fälschlich auf `>=7.0.23` gesetzt).",
61
+ "ru": "Мин. js-controller восстановлен на `>=6.0.11` (в 0.2.15 ошибочно был `>=7.0.23`).",
62
+ "pt": "Mín. js-controller restaurado para `>=6.0.11` (em 0.2.15 estava erroneamente em `>=7.0.23`).",
63
+ "nl": "Min. js-controller hersteld op `>=6.0.11` (was in 0.2.15 ten onrechte `>=7.0.23`).",
64
+ "fr": "Min js-controller rétabli à `>=6.0.11` (était par erreur à `>=7.0.23` en 0.2.15).",
65
+ "it": "Min js-controller ripristinato a `>=6.0.11` (in 0.2.15 era erroneamente `>=7.0.23`).",
66
+ "es": "Mín. js-controller restaurado a `>=6.0.11` (en 0.2.15 estaba incorrectamente en `>=7.0.23`).",
67
+ "pl": "Min. js-controller przywrócony do `>=6.0.11` (w 0.2.15 błędnie ustawiony na `>=7.0.23`).",
68
+ "uk": "Мін. js-controller повернено на `>=6.0.11` 0.2.15 помилково було `>=7.0.23`).",
69
+ "zh-cn": "最低 js-controller 恢复为 `>=6.0.11`(0.2.15 中错误地设置为 `>=7.0.23`)。"
44
70
  },
45
71
  "0.2.15": {
46
- "en": "Process-level unhandledRejection/uncaughtException handlers added as last-line-of-defence. Stop shipping the manual-review release-script plugin. Min js-controller bumped to >=7.0.23. Audit-driven boilerplate sync with the other krobi adapters (.vscode json5 schemas, tsconfig.test looser test rules). CHANGELOG_OLD cleaned up.",
47
- "de": "Process-level unhandledRejection/uncaughtException-Handler als Last-Line-of-Defence hinzugefügt. Das manual-review-Release-Script-Plugin entfällt. js-controller-Mindestversion auf >=7.0.23 angehoben. Audit-getriebener Boilerplate-Sync gegenüber den anderen krobi-Adaptern (.vscode json5-Schemas, tsconfig.test loosere Test-Regeln). CHANGELOG_OLD aufgeräumt.",
48
- "ru": "Process-level unhandledRejection/uncaughtException-обработчики додано як last-line-of-defence. Manual-review release-script plugin більше не постачається. Мінімальна версія js-controller підвищена до >=7.0.23. Audit-керована синхронізація boilerplate з іншими krobi-адаптерами (.vscode json5-схеми, tsconfig.test loose test rules). CHANGELOG_OLD приведено до ладу.",
49
- "pt": "Handlers process-level unhandledRejection/uncaughtException adicionados como last-line-of-defence. O plugin manual-review do release-script foi removido. Versão mínima de js-controller aumentada para >=7.0.23. Sincronização de boilerplate orientada por audit com os outros adaptadores krobi (esquemas json5 do .vscode, regras de teste mais permissivas em tsconfig.test). CHANGELOG_OLD limpo.",
50
- "nl": "Process-level unhandledRejection/uncaughtException-handlers toegevoegd als last-line-of-defence. Het manual-review release-script plugin wordt niet meer meegeleverd. Minimale js-controller versie verhoogd naar >=7.0.23. Audit-gestuurde boilerplate-sync met de andere krobi-adapters (.vscode json5-schemas, tsconfig.test soepelere test-regels). CHANGELOG_OLD opgeruimd.",
51
- "fr": "Handlers process-level unhandledRejection/uncaughtException ajoutés en last-line-of-defence. Le plugin manual-review du release-script n'est plus livré. Version minimale de js-controller portée à >=7.0.23. Synchronisation boilerplate audit-driven avec les autres adaptateurs krobi (schémas json5 .vscode, règles de test plus souples tsconfig.test). CHANGELOG_OLD nettoyé.",
52
- "it": "Handler process-level unhandledRejection/uncaughtException aggiunti come last-line-of-defence. Il plugin manual-review del release-script non viene più distribuito. Versione minima di js-controller alzata a >=7.0.23. Sincronizzazione boilerplate audit-driven con gli altri adapter krobi (schemi json5 .vscode, regole di test più permissive tsconfig.test). CHANGELOG_OLD ripulito.",
53
- "es": "Handlers process-level unhandledRejection/uncaughtException añadidos como last-line-of-defence. El plugin manual-review del release-script ya no se incluye. Versión mínima de js-controller elevada a >=7.0.23. Sincronización de boilerplate guiada por audit con los demás adaptadores krobi (esquemas json5 .vscode, reglas de test más permisivas tsconfig.test). CHANGELOG_OLD limpio.",
54
- "pl": "Handlery process-level unhandledRejection/uncaughtException dodane jako last-line-of-defence. Plugin manual-review release-script nie jest już dostarczany. Minimalna wersja js-controller podniesiona do >=7.0.23. Synchronizacja boilerplate'u audit-driven z pozostałymi adapterami krobi (schematy json5 .vscode, luźniejsze reguły testów tsconfig.test). CHANGELOG_OLD uporządkowany.",
55
- "uk": "Process-level обробники unhandledRejection/uncaughtException додано як last-line-of-defence. Manual-review release-script plugin більше не постачається. Мінімальну версію js-controller підвищено до >=7.0.23. Audit-керована синхронізація boilerplate з іншими krobi-адаптерами (json5-схеми .vscode, м'якші правила тестів tsconfig.test). CHANGELOG_OLD упорядковано.",
56
- "zh-cn": "新增进程级 unhandledRejection/uncaughtException 处理器作为 last-line-of-defence。manual-review release-script 插件不再随包发布。js-controller 最低版本提升至 >=7.0.23。与其他 krobi 适配器进行 audit 驱动的 boilerplate 同步(.vscode json5 schema、tsconfig.test 更宽松的测试规则)。整理 CHANGELOG_OLD。"
72
+ "en": "Crash defense: process-level `unhandledRejection`/`uncaughtException` handlers.",
73
+ "de": "Crash-Schutz: process-level `unhandledRejection`/`uncaughtException`-Handler.",
74
+ "ru": "Защита от сбоев: process-level обработчики `unhandledRejection`/`uncaughtException`.",
75
+ "pt": "Proteção contra falhas: handlers process-level `unhandledRejection`/`uncaughtException`.",
76
+ "nl": "Crashbescherming: process-level `unhandledRejection`/`uncaughtException`-handlers.",
77
+ "fr": "Défense contre les crashs : handlers process-level `unhandledRejection`/`uncaughtException`.",
78
+ "it": "Difesa anti-crash: handler process-level `unhandledRejection`/`uncaughtException`.",
79
+ "es": "Defensa contra fallos: handlers process-level `unhandledRejection`/`uncaughtException`.",
80
+ "pl": "Ochrona przed crashem: handlery process-level `unhandledRejection`/`uncaughtException`.",
81
+ "uk": "Захист від збоїв: process-level обробники `unhandledRejection`/`uncaughtException`.",
82
+ "zh-cn": "崩溃防护:process-level `unhandledRejection`/`uncaughtException` 处理器。"
57
83
  },
58
84
  "0.2.14": {
59
- "en": "Latest-repo review round 2 response. Separate test-build output (build-test/) from production build/. Declare deliveries folder and summary channel as instance objects. Localize status labels and delivery estimates to all 11 ioBroker languages via system.config.language; the per-instance Status Language option is removed. Fix summary.todayCount for non-DE/EN languages.",
60
- "de": "Latest-Repo Review Round 2 Response. Test-Build-Output (build-test/) von der Production build/ getrennt. deliveries-Folder und summary-Channel als Instance-Objects deklariert. Status-Labels und Lieferzeit-Schätzungen werden in alle 11 ioBroker-Sprachen lokalisiert (über system.config.language); die per-Instanz Status-Language-Option entfällt. summary.todayCount für nicht-DE/EN Sprachen behoben.",
61
- "ru": "Відповідь на latest-repo review round 2. Test-build output (build-test/) відокремлено від production build/. deliveries-folder та summary-channel задекларовано як instance objects. Status-labels та оцінки доставки локалізовано на всі 11 мов ioBroker через system.config.language; per-instance Status Language опція видалена. Виправлено summary.todayCount для не-DE/EN мов.",
62
- "pt": "Resposta ao latest-repo review round 2. Saída do test-build (build-test/) separada da produção build/. Pasta deliveries e canal summary declarados como instance objects. Labels de status e estimativas de entrega localizadas em todas as 11 línguas do ioBroker via system.config.language; a opção Status Language por instância foi removida. summary.todayCount corrigido para línguas não-DE/EN.",
63
- "nl": "Respons op latest-repo review round 2. Test-build output (build-test/) gescheiden van productie build/. deliveries-folder en summary-channel gedeclareerd als instance objects. Status-labels en bezorgschattingen gelokaliseerd in alle 11 ioBroker-talen via system.config.language; per-instance Status Language optie is verwijderd. summary.todayCount opgelost voor niet-DE/EN talen.",
64
- "fr": "Réponse au latest-repo review round 2. Sortie du test-build (build-test/) séparée de la production build/. Dossier deliveries et canal summary déclarés comme instance objects. Status-labels et estimations de livraison localisés dans toutes les 11 langues ioBroker via system.config.language; option Status Language par instance supprimée. summary.todayCount corrigé pour langues non-DE/EN.",
65
- "it": "Risposta alla latest-repo review round 2. Output del test-build (build-test/) separato dalla produzione build/. Cartella deliveries e canale summary dichiarati come instance objects. Status-label e stime di consegna localizzati in tutte le 11 lingue ioBroker via system.config.language; opzione Status Language per istanza rimossa. summary.todayCount corretto per lingue non-DE/EN.",
66
- "es": "Respuesta al latest-repo review round 2. Salida del test-build (build-test/) separada de la producción build/. Carpeta deliveries y canal summary declarados como instance objects. Etiquetas de estado y estimaciones de entrega localizadas en los 11 idiomas de ioBroker via system.config.language; opción Status Language por instancia eliminada. summary.todayCount corregido para idiomas no-DE/EN.",
67
- "pl": "Odpowiedź na latest-repo review round 2. Wyjście test-build (build-test/) oddzielone od produkcji build/. Folder deliveries i kanał summary zadeklarowane jako instance objects. Etykiety statusu i szacunki dostawy zlokalizowane we wszystkich 11 językach ioBroker przez system.config.language; opcja Status Language per-instance została usunięta. summary.todayCount naprawione dla języków innych niż DE/EN.",
68
- "uk": "Відповідь на latest-repo review round 2. Test-build output (build-test/) відокремлено від production build/. Folder deliveries та channel summary оголошено як instance objects. Status-мітки та оцінки доставки локалізовано в усіх 11 мовах ioBroker через system.config.language; опцію Status Language per-instance видалено. summary.todayCount виправлено для мов крім DE/EN.",
69
- "zh-cn": "Latest-repo review round 2 的回应。测试构建输出(build-test/)从生产 build/ 分离。deliveries 文件夹和 summary 通道声明为 instance objects。状态标签和到达时间预估通过 system.config.language 本地化为全部 11 ioBroker 语言;移除 per-instance Status Language 选项。修复非 DE/EN 语言下的 summary.todayCount"
70
- },
71
- "0.2.13": {
72
- "en": "Latest-repo review round 1 compliance: common.messagebox=true added because the admin-UI Check Connection and Add Delivery buttons route through onMessage. Runtime behaviour unchanged.",
73
- "de": "Latest-Repo Review Round 1 Compliance: common.messagebox=true gesetzt, weil die Admin-UI-Buttons Check Connection und Add Delivery über onMessage laufen. Runtime-Verhalten unverändert.",
74
- "ru": "Latest-repo review round 1 compliance: common.messagebox=true додано, оскільки кнопки Check Connection та Add Delivery в admin-UI проходять через onMessage. Runtime-поведінка незмінна.",
75
- "pt": "Compliance do latest-repo review round 1: common.messagebox=true adicionado porque os botões Check Connection e Add Delivery do admin-UI passam pelo onMessage. Comportamento em runtime inalterado.",
76
- "nl": "Latest-repo review round 1 compliance: common.messagebox=true toegevoegd omdat de admin-UI Check Connection en Add Delivery knoppen via onMessage lopen. Runtime-gedrag ongewijzigd.",
77
- "fr": "Latest-repo review round 1 compliance: common.messagebox=true ajouté car les boutons Check Connection et Add Delivery de l'admin-UI passent par onMessage. Comportement runtime inchangé.",
78
- "it": "Latest-repo review round 1 compliance: common.messagebox=true aggiunto perché i pulsanti Check Connection e Add Delivery dell'admin-UI passano da onMessage. Comportamento runtime invariato.",
79
- "es": "Latest-repo review round 1 compliance: common.messagebox=true añadido porque los botones Check Connection y Add Delivery de admin-UI pasan por onMessage. Comportamiento en runtime sin cambios.",
80
- "pl": "Latest-repo review round 1 compliance: common.messagebox=true dodane, ponieważ przyciski Check Connection i Add Delivery admin-UI przechodzą przez onMessage. Zachowanie runtime bez zmian.",
81
- "uk": "Latest-repo review round 1 compliance: common.messagebox=true додано, оскільки кнопки Check Connection та Add Delivery в admin-UI проходять через onMessage. Runtime поведінка незмінна.",
82
- "zh-cn": "Latest-repo review round 1 compliance:因 admin-UI 的 Check Connection 与 Add Delivery 按钮经由 onMessage 路由,故添加 common.messagebox=true。运行时行为不变。"
83
- },
84
- "0.2.12": {
85
- "en": "Harden API-drift guards in ParcelClient and StateManager (non-boolean success, non-array deliveries, non-string error_code/error_message, non-object carrier map, non-string delivery fields). 38 new regression tests (128 total).",
86
- "de": "API-Drift-Guards in ParcelClient und StateManager gehärtet (non-boolean success, non-array deliveries, non-string error_code/error_message, non-object carrier map, non-string delivery fields). 38 neue Regression-Tests (128 total).",
87
- "ru": "API-drift guards в ParcelClient та StateManager посилено (non-boolean success, non-array deliveries, non-string error_code/error_message, non-object carrier map, non-string delivery fields). 38 нових regression-тестів (128 всього).",
88
- "pt": "API-drift guards reforçados em ParcelClient e StateManager (success non-boolean, deliveries non-array, error_code/error_message non-string, carrier map non-object, campos non-string). 38 novos regression-tests (128 no total).",
89
- "nl": "API-drift guards in ParcelClient en StateManager versterkt (non-boolean success, non-array deliveries, non-string error_code/error_message, non-object carrier map, non-string delivery fields). 38 nieuwe regressietests (128 totaal).",
90
- "fr": "API-drift guards renforcés dans ParcelClient et StateManager (success non-boolean, deliveries non-array, error_code/error_message non-string, carrier map non-object, champs non-string). 38 nouveaux regression-tests (128 au total).",
91
- "it": "API-drift guards rafforzati in ParcelClient e StateManager (success non-boolean, deliveries non-array, error_code/error_message non-string, carrier map non-object, campi non-string). 38 nuovi regression-test (128 totali).",
92
- "es": "API-drift guards reforzados en ParcelClient y StateManager (success non-boolean, deliveries non-array, error_code/error_message non-string, carrier map non-object, campos non-string). 38 nuevos tests de regresión (128 en total).",
93
- "pl": "API-drift guards wzmocnione w ParcelClient i StateManager (success non-boolean, deliveries non-array, error_code/error_message non-string, carrier map non-object, pola non-string). 38 nowych testów regresji (128 łącznie).",
94
- "uk": "API-drift guards посилено в ParcelClient і StateManager (non-boolean success, non-array deliveries, non-string error_code/error_message, non-object carrier map, non-string delivery fields). 38 нових regression-тестів (128 загалом).",
95
- "zh-cn": "强化 ParcelClient 和 StateManager 的 API-drift guards(非布尔 success、非数组 deliveries、非字符串 error_code/error_message、非对象 carrier map、非字符串 delivery 字段)。新增 38 个 regression 测试(共 128 个)。"
85
+ "en": "Status labels localized via `system.config.language` (11 languages). Fix: `summary.todayCount` for non-DE/EN.",
86
+ "de": "Status-Labels über `system.config.language` lokalisiert (11 Sprachen). Fix: `summary.todayCount` für nicht-DE/EN.",
87
+ "ru": "Метки статуса локализованы через `system.config.language` (11 языков). Fix: `summary.todayCount` для не-DE/EN.",
88
+ "pt": "Rótulos de status localizados via `system.config.language` (11 idiomas). Fix: `summary.todayCount` para não-DE/EN.",
89
+ "nl": "Statuslabels gelokaliseerd via `system.config.language` (11 talen). Fix: `summary.todayCount` voor niet-DE/EN.",
90
+ "fr": "Libellés de statut localisés via `system.config.language` (11 langues). Fix : `summary.todayCount` pour non-DE/EN.",
91
+ "it": "Etichette di stato localizzate via `system.config.language` (11 lingue). Fix: `summary.todayCount` per non-DE/EN.",
92
+ "es": "Etiquetas de estado localizadas vía `system.config.language` (11 idiomas). Fix: `summary.todayCount` para no-DE/EN.",
93
+ "pl": "Etykiety statusu zlokalizowane przez `system.config.language` (11 języków). Fix: `summary.todayCount` dla nie-DE/EN.",
94
+ "uk": "Мітки статусу локалізовано через `system.config.language` (11 мов). Fix: `summary.todayCount` для не-DE/EN.",
95
+ "zh-cn": "状态标签通过 `system.config.language` 本地化(11 种语言)。修复:非 DE/EN `summary.todayCount`。"
96
96
  }
97
97
  },
98
98
  "titleLang": {
@@ -157,12 +157,12 @@
157
157
  },
158
158
  "dependencies": [
159
159
  {
160
- "js-controller": ">=6.0.11"
160
+ "js-controller": ">=7.0.7"
161
161
  }
162
162
  ],
163
163
  "globalDependencies": [
164
164
  {
165
- "admin": ">=7.6.20"
165
+ "admin": ">=7.7.22"
166
166
  }
167
167
  ]
168
168
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.parcelapp",
3
- "version": "0.2.18",
3
+ "version": "0.3.1",
4
4
  "description": "ioBroker adapter for parcel.app — track packages as ioBroker states",
5
5
  "author": {
6
6
  "name": "krobi",
@@ -69,6 +69,8 @@
69
69
  "translate": "translate-adapter",
70
70
  "lint": "eslint",
71
71
  "lint:fix": "eslint --fix",
72
+ "format": "prettier --write .",
73
+ "format:check": "prettier --check .",
72
74
  "release": "release-script"
73
75
  },
74
76
  "nyc": {