easyoref 1.12.0 โ 1.13.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/package.json +1 -1
- package/dist/agent/auth.d.ts +0 -11
- package/dist/agent/auth.d.ts.map +0 -1
- package/dist/agent/auth.js +0 -54
- package/dist/agent/auth.js.map +0 -1
- package/dist/agent/dry-run.d.ts +0 -12
- package/dist/agent/dry-run.d.ts.map +0 -1
- package/dist/agent/dry-run.js +0 -229
- package/dist/agent/dry-run.js.map +0 -1
- package/dist/agent/gramjs-monitor.d.ts +0 -13
- package/dist/agent/gramjs-monitor.d.ts.map +0 -1
- package/dist/agent/gramjs-monitor.js +0 -193
- package/dist/agent/gramjs-monitor.js.map +0 -1
- package/dist/agent/graph.d.ts +0 -44
- package/dist/agent/graph.d.ts.map +0 -1
- package/dist/agent/graph.js +0 -709
- package/dist/agent/graph.js.map +0 -1
- package/dist/agent/queue.d.ts +0 -15
- package/dist/agent/queue.d.ts.map +0 -1
- package/dist/agent/queue.js +0 -41
- package/dist/agent/queue.js.map +0 -1
- package/dist/agent/redis.d.ts +0 -8
- package/dist/agent/redis.d.ts.map +0 -1
- package/dist/agent/redis.js +0 -33
- package/dist/agent/redis.js.map +0 -1
- package/dist/agent/store.d.ts +0 -67
- package/dist/agent/store.d.ts.map +0 -1
- package/dist/agent/store.js +0 -83
- package/dist/agent/store.js.map +0 -1
- package/dist/agent/types.d.ts +0 -102
- package/dist/agent/types.d.ts.map +0 -1
- package/dist/agent/types.js +0 -3
- package/dist/agent/types.js.map +0 -1
- package/dist/agent/worker.d.ts +0 -14
- package/dist/agent/worker.d.ts.map +0 -1
- package/dist/agent/worker.js +0 -90
- package/dist/agent/worker.js.map +0 -1
- package/dist/bin.d.ts +0 -17
- package/dist/bin.d.ts.map +0 -1
- package/dist/bin.js +0 -82
- package/dist/bin.js.map +0 -1
- package/dist/bot.d.ts +0 -16
- package/dist/bot.d.ts.map +0 -1
- package/dist/bot.js +0 -600
- package/dist/bot.js.map +0 -1
- package/dist/config.d.ts +0 -114
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -139
- package/dist/config.js.map +0 -1
- package/dist/gif-state.d.ts +0 -17
- package/dist/gif-state.d.ts.map +0 -1
- package/dist/gif-state.js +0 -67
- package/dist/gif-state.js.map +0 -1
- package/dist/i18n.d.ts +0 -49
- package/dist/i18n.d.ts.map +0 -1
- package/dist/i18n.js +0 -229
- package/dist/i18n.js.map +0 -1
- package/dist/init.d.ts +0 -7
- package/dist/init.d.ts.map +0 -1
- package/dist/init.js +0 -163
- package/dist/init.js.map +0 -1
- package/dist/logger.d.ts +0 -14
- package/dist/logger.d.ts.map +0 -1
- package/dist/logger.js +0 -45
- package/dist/logger.js.map +0 -1
- package/dist/service.d.ts +0 -19
- package/dist/service.d.ts.map +0 -1
- package/dist/service.js +0 -165
- package/dist/service.js.map +0 -1
package/dist/config.d.ts
DELETED
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* EasyOref โ Centralized Configuration
|
|
3
|
-
*
|
|
4
|
-
* Primary: config.yaml (searched in cwd, /app, /etc/easyoref)
|
|
5
|
-
* Fallback: environment variables + Docker secrets (for backward compat)
|
|
6
|
-
*
|
|
7
|
-
* See config.yaml.example for all available options.
|
|
8
|
-
*/
|
|
9
|
-
import { type Language } from "./i18n.js";
|
|
10
|
-
export type AlertTypeConfig = "early" | "siren" | "resolved";
|
|
11
|
-
export type GifMode = "funny_cats" | "none";
|
|
12
|
-
/** Raw YAML schema */
|
|
13
|
-
interface ConfigYaml {
|
|
14
|
-
alert_types?: AlertTypeConfig[];
|
|
15
|
-
city_ids?: number[];
|
|
16
|
-
language?: string;
|
|
17
|
-
gif_mode?: string;
|
|
18
|
-
emoji_override?: Partial<Record<AlertTypeConfig, string>>;
|
|
19
|
-
title_override?: Partial<Record<AlertTypeConfig, string>>;
|
|
20
|
-
description_override?: Partial<Record<AlertTypeConfig, string>>;
|
|
21
|
-
observability?: {
|
|
22
|
-
betterstack_token?: string;
|
|
23
|
-
};
|
|
24
|
-
telegram?: {
|
|
25
|
-
bot_token?: string;
|
|
26
|
-
chat_id?: string;
|
|
27
|
-
};
|
|
28
|
-
health_port?: number;
|
|
29
|
-
poll_interval_ms?: number;
|
|
30
|
-
data_dir?: string;
|
|
31
|
-
oref_api_url?: string;
|
|
32
|
-
ai?: ConfigYamlAi;
|
|
33
|
-
}
|
|
34
|
-
interface ConfigYamlAi {
|
|
35
|
-
enabled?: boolean;
|
|
36
|
-
openrouter_api_key?: string;
|
|
37
|
-
openrouter_model?: string;
|
|
38
|
-
redis_url?: string;
|
|
39
|
-
socks5_proxy?: string;
|
|
40
|
-
enrich_delay_ms?: number;
|
|
41
|
-
confidence_threshold?: number;
|
|
42
|
-
window_minutes?: number;
|
|
43
|
-
timeout_minutes?: number;
|
|
44
|
-
mtproto?: {
|
|
45
|
-
api_id?: number;
|
|
46
|
-
api_hash?: string;
|
|
47
|
-
session_string?: string;
|
|
48
|
-
};
|
|
49
|
-
channels?: string[];
|
|
50
|
-
/** Map monitored area prefix โ human-readable region label */
|
|
51
|
-
area_labels?: Record<string, string>;
|
|
52
|
-
}
|
|
53
|
-
/** Config dir in user home โ ~/.easyoref/ */
|
|
54
|
-
export declare const CONFIG_DIR: string;
|
|
55
|
-
export declare const HOME_CONFIG_PATH: string;
|
|
56
|
-
declare function loadYaml(): ConfigYaml;
|
|
57
|
-
declare function parseAlertTypes(raw?: AlertTypeConfig[]): AlertTypeConfig[];
|
|
58
|
-
export declare const config: {
|
|
59
|
-
/** Telegram bot token */
|
|
60
|
-
botToken: string;
|
|
61
|
-
/** Telegram chat ID */
|
|
62
|
-
chatId: string;
|
|
63
|
-
/** City IDs to monitor (resolved to Hebrew names at startup via cities.json) */
|
|
64
|
-
cityIds: number[];
|
|
65
|
-
/**
|
|
66
|
-
* Hebrew area names โ legacy fallback for AREAS env var.
|
|
67
|
-
* Populated at startup from cityIds OR from AREAS env if no cityIds.
|
|
68
|
-
*/
|
|
69
|
-
areas: string[];
|
|
70
|
-
/** Which alert types to send */
|
|
71
|
-
alertTypes: AlertTypeConfig[];
|
|
72
|
-
/** Message language */
|
|
73
|
-
language: Language;
|
|
74
|
-
/** Emoji overrides per alert type */
|
|
75
|
-
emojiOverride: Partial<Record<AlertTypeConfig, string>>;
|
|
76
|
-
/** Title overrides per alert type */
|
|
77
|
-
titleOverride: Partial<Record<AlertTypeConfig, string>>;
|
|
78
|
-
/** Description overrides per alert type */
|
|
79
|
-
descriptionOverride: Partial<Record<AlertTypeConfig, string>>;
|
|
80
|
-
/** Oref API polling interval (ms) */
|
|
81
|
-
pollIntervalMs: number;
|
|
82
|
-
/** Health endpoint port */
|
|
83
|
-
healthPort: number;
|
|
84
|
-
/** Oref API URL */
|
|
85
|
-
orefApiUrl: string;
|
|
86
|
-
/** Better Stack Logtail token */
|
|
87
|
-
logtailToken: string;
|
|
88
|
-
/** GIF mode */
|
|
89
|
-
gifMode: GifMode;
|
|
90
|
-
/** Path for persistent data */
|
|
91
|
-
dataDir: string;
|
|
92
|
-
/** AI enrichment config (YAML key: `ai`) */
|
|
93
|
-
agent: {
|
|
94
|
-
enabled: boolean;
|
|
95
|
-
apiKey: string;
|
|
96
|
-
model: string;
|
|
97
|
-
redisUrl: string;
|
|
98
|
-
socks5Proxy: string;
|
|
99
|
-
enrichDelayMs: number;
|
|
100
|
-
confidenceThreshold: number;
|
|
101
|
-
windowMinutes: number;
|
|
102
|
-
timeoutMinutes: number;
|
|
103
|
-
mtproto: {
|
|
104
|
-
apiId: number;
|
|
105
|
-
apiHash: string;
|
|
106
|
-
sessionString: string;
|
|
107
|
-
};
|
|
108
|
-
channels: string[];
|
|
109
|
-
areaLabels: Record<string, string>;
|
|
110
|
-
};
|
|
111
|
-
};
|
|
112
|
-
/** Exported for testing */
|
|
113
|
-
export { loadYaml as _loadYaml, parseAlertTypes as _parseAlertTypes, type ConfigYaml, };
|
|
114
|
-
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,EAAmB,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAI3D,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;AAC7D,MAAM,MAAM,OAAO,GAAG,YAAY,GAAG,MAAM,CAAC;AAM5C,sBAAsB;AACtB,UAAU,UAAU;IAClB,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1D,cAAc,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1D,oBAAoB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;IAChE,aAAa,CAAC,EAAE;QACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,EAAE,CAAC,EAAE,YAAY,CAAC;CACnB;AAED,UAAU,YAAY;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAID,6CAA6C;AAC7C,eAAO,MAAM,UAAU,QAA+B,CAAC;AACvD,eAAO,MAAM,gBAAgB,QAAkC,CAAC;AAoBhE,iBAAS,QAAQ,IAAI,UAAU,CAe9B;AAgBD,iBAAS,eAAe,CAAC,GAAG,CAAC,EAAE,eAAe,EAAE,GAAG,eAAe,EAAE,CAGnE;AAMD,eAAO,MAAM,MAAM;IACjB,yBAAyB;;IAKzB,uBAAuB;;IAGvB,gFAAgF;;IAGhF;;;OAGG;WACU,MAAM,EAAE;IAErB,gCAAgC;;IAGhC,uBAAuB;;IAMvB,qCAAqC;;IAGrC,qCAAqC;;IAGrC,2CAA2C;;IAG3C,qCAAqC;;IAIrC,2BAA2B;;IAG3B,mBAAmB;;IAMnB,iCAAiC;;IAIjC,eAAe;;IAGf,+BAA+B;;IAG/B,4CAA4C;;;;;;;;;;;;;;;;;;;CAwB7C,CAAC;AAEF,2BAA2B;AAC3B,OAAO,EACL,QAAQ,IAAI,SAAS,EACrB,eAAe,IAAI,gBAAgB,EACnC,KAAK,UAAU,GAChB,CAAC"}
|
package/dist/config.js
DELETED
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* EasyOref โ Centralized Configuration
|
|
3
|
-
*
|
|
4
|
-
* Primary: config.yaml (searched in cwd, /app, /etc/easyoref)
|
|
5
|
-
* Fallback: environment variables + Docker secrets (for backward compat)
|
|
6
|
-
*
|
|
7
|
-
* See config.yaml.example for all available options.
|
|
8
|
-
*/
|
|
9
|
-
import yaml from "js-yaml";
|
|
10
|
-
import { existsSync, readFileSync } from "node:fs";
|
|
11
|
-
import { homedir } from "node:os";
|
|
12
|
-
import { join, resolve } from "node:path";
|
|
13
|
-
import { isValidLanguage } from "./i18n.js";
|
|
14
|
-
const VALID_GIF_MODES = ["funny_cats", "none"];
|
|
15
|
-
const ALL_ALERT_TYPES = ["early", "siren", "resolved"];
|
|
16
|
-
// โโ YAML Loader โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
17
|
-
/** Config dir in user home โ ~/.easyoref/ */
|
|
18
|
-
export const CONFIG_DIR = join(homedir(), ".easyoref");
|
|
19
|
-
export const HOME_CONFIG_PATH = join(CONFIG_DIR, "config.yaml");
|
|
20
|
-
const CONFIG_SEARCH_PATHS = [
|
|
21
|
-
HOME_CONFIG_PATH,
|
|
22
|
-
"config.yaml",
|
|
23
|
-
"config.yml",
|
|
24
|
-
"/app/config.yaml",
|
|
25
|
-
"/etc/easyoref/config.yaml",
|
|
26
|
-
];
|
|
27
|
-
function findConfigFile() {
|
|
28
|
-
const envPath = process.env.EASYOREF_CONFIG;
|
|
29
|
-
if (envPath && existsSync(envPath))
|
|
30
|
-
return envPath;
|
|
31
|
-
for (const p of CONFIG_SEARCH_PATHS) {
|
|
32
|
-
const abs = resolve(p);
|
|
33
|
-
if (existsSync(abs))
|
|
34
|
-
return abs;
|
|
35
|
-
}
|
|
36
|
-
return null;
|
|
37
|
-
}
|
|
38
|
-
function loadYaml() {
|
|
39
|
-
const path = findConfigFile();
|
|
40
|
-
if (path) {
|
|
41
|
-
try {
|
|
42
|
-
const raw = readFileSync(path, "utf-8");
|
|
43
|
-
const parsed = yaml.load(raw);
|
|
44
|
-
// eslint-disable-next-line no-console
|
|
45
|
-
console.log(`[config] Loaded from ${path}`);
|
|
46
|
-
return parsed ?? {};
|
|
47
|
-
}
|
|
48
|
-
catch (err) {
|
|
49
|
-
// eslint-disable-next-line no-console
|
|
50
|
-
console.error(`[config] Failed to parse ${path}:`, err);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
return {};
|
|
54
|
-
}
|
|
55
|
-
// โโ Helpers โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
56
|
-
function readSecret(envKey, secretPaths) {
|
|
57
|
-
for (const p of secretPaths) {
|
|
58
|
-
if (existsSync(p))
|
|
59
|
-
return readFileSync(p, "utf-8").trim();
|
|
60
|
-
}
|
|
61
|
-
return process.env[envKey] ?? "";
|
|
62
|
-
}
|
|
63
|
-
function parseGifMode(raw) {
|
|
64
|
-
const lower = raw.toLowerCase();
|
|
65
|
-
return VALID_GIF_MODES.includes(lower) ? lower : "none";
|
|
66
|
-
}
|
|
67
|
-
function parseAlertTypes(raw) {
|
|
68
|
-
if (!raw || !Array.isArray(raw))
|
|
69
|
-
return ALL_ALERT_TYPES;
|
|
70
|
-
return raw.filter((t) => ALL_ALERT_TYPES.includes(t));
|
|
71
|
-
}
|
|
72
|
-
// โโ Build Config โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
73
|
-
const yml = loadYaml();
|
|
74
|
-
export const config = {
|
|
75
|
-
/** Telegram bot token */
|
|
76
|
-
botToken: yml.telegram?.bot_token ??
|
|
77
|
-
readSecret("BOT_TOKEN", ["/run/secrets/bot_token", "secrets/bot_token"]),
|
|
78
|
-
/** Telegram chat ID */
|
|
79
|
-
chatId: yml.telegram?.chat_id ?? process.env.CHAT_ID ?? "",
|
|
80
|
-
/** City IDs to monitor (resolved to Hebrew names at startup via cities.json) */
|
|
81
|
-
cityIds: yml.city_ids ?? [],
|
|
82
|
-
/**
|
|
83
|
-
* Hebrew area names โ legacy fallback for AREAS env var.
|
|
84
|
-
* Populated at startup from cityIds OR from AREAS env if no cityIds.
|
|
85
|
-
*/
|
|
86
|
-
areas: [],
|
|
87
|
-
/** Which alert types to send */
|
|
88
|
-
alertTypes: parseAlertTypes(yml.alert_types),
|
|
89
|
-
/** Message language */
|
|
90
|
-
language: (() => {
|
|
91
|
-
const raw = (yml.language ?? process.env.LANGUAGE ?? "ru").toLowerCase();
|
|
92
|
-
return isValidLanguage(raw) ? raw : "ru";
|
|
93
|
-
})(),
|
|
94
|
-
/** Emoji overrides per alert type */
|
|
95
|
-
emojiOverride: yml.emoji_override ?? {},
|
|
96
|
-
/** Title overrides per alert type */
|
|
97
|
-
titleOverride: yml.title_override ?? {},
|
|
98
|
-
/** Description overrides per alert type */
|
|
99
|
-
descriptionOverride: yml.description_override ?? {},
|
|
100
|
-
/** Oref API polling interval (ms) */
|
|
101
|
-
pollIntervalMs: yml.poll_interval_ms ?? Number(process.env.OREF_POLL_INTERVAL_MS ?? "2000"),
|
|
102
|
-
/** Health endpoint port */
|
|
103
|
-
healthPort: yml.health_port ?? Number(process.env.HEALTH_PORT ?? "3100"),
|
|
104
|
-
/** Oref API URL */
|
|
105
|
-
orefApiUrl: yml.oref_api_url ??
|
|
106
|
-
process.env.OREF_API_URL ??
|
|
107
|
-
"https://www.oref.org.il/WarningMessages/alert/alerts.json",
|
|
108
|
-
/** Better Stack Logtail token */
|
|
109
|
-
logtailToken: yml.observability?.betterstack_token ?? process.env.LOGTAIL_TOKEN ?? "",
|
|
110
|
-
/** GIF mode */
|
|
111
|
-
gifMode: parseGifMode(yml.gif_mode ?? process.env.GIF_MODE ?? "none"),
|
|
112
|
-
/** Path for persistent data */
|
|
113
|
-
dataDir: yml.data_dir ?? process.env.DATA_DIR ?? join(CONFIG_DIR, "data"),
|
|
114
|
-
/** AI enrichment config (YAML key: `ai`) */
|
|
115
|
-
agent: (() => {
|
|
116
|
-
const ai = yml.ai;
|
|
117
|
-
return {
|
|
118
|
-
enabled: ai?.enabled ?? false,
|
|
119
|
-
apiKey: ai?.openrouter_api_key ?? process.env.OPENROUTER_API_KEY ?? "",
|
|
120
|
-
model: ai?.openrouter_model ?? "google/gemini-3-flash-preview",
|
|
121
|
-
redisUrl: ai?.redis_url ?? process.env.REDIS_URL ?? "redis://localhost:6379",
|
|
122
|
-
socks5Proxy: ai?.socks5_proxy ?? process.env.SOCKS5_PROXY ?? "",
|
|
123
|
-
enrichDelayMs: ai?.enrich_delay_ms ?? 20_000,
|
|
124
|
-
confidenceThreshold: ai?.confidence_threshold ?? 0.7,
|
|
125
|
-
windowMinutes: ai?.window_minutes ?? 2,
|
|
126
|
-
timeoutMinutes: ai?.timeout_minutes ?? 15,
|
|
127
|
-
mtproto: {
|
|
128
|
-
apiId: ai?.mtproto?.api_id ?? Number(process.env.TG_API_ID ?? "0"),
|
|
129
|
-
apiHash: ai?.mtproto?.api_hash ?? process.env.TG_API_HASH ?? "",
|
|
130
|
-
sessionString: ai?.mtproto?.session_string ?? process.env.TG_SESSION ?? "",
|
|
131
|
-
},
|
|
132
|
-
channels: ai?.channels ?? [],
|
|
133
|
-
areaLabels: ai?.area_labels ?? {},
|
|
134
|
-
};
|
|
135
|
-
})(),
|
|
136
|
-
};
|
|
137
|
-
/** Exported for testing */
|
|
138
|
-
export { loadYaml as _loadYaml, parseAlertTypes as _parseAlertTypes, };
|
|
139
|
-
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/gif-state.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* EasyOref โ Persistent GIF Rotation State
|
|
3
|
-
*
|
|
4
|
-
* Stores which GIFs have been shown to avoid repeats.
|
|
5
|
-
* State survives restarts + redeploys via JSON file.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Initialize persistent GIF state.
|
|
9
|
-
* @param dataDir โ directory for state file (created if missing)
|
|
10
|
-
*/
|
|
11
|
-
export declare function initGifState(dataDir: string): void;
|
|
12
|
-
/**
|
|
13
|
-
* Pick a GIF from a pool without repeats.
|
|
14
|
-
* When all GIFs in the pool have been shown, reshuffles.
|
|
15
|
-
*/
|
|
16
|
-
export declare function pickGif(pool: string[], poolKey: string): string;
|
|
17
|
-
//# sourceMappingURL=gif-state.d.ts.map
|
package/dist/gif-state.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gif-state.d.ts","sourceRoot":"","sources":["../src/gif-state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkBH;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CA4BlD;AAWD;;;GAGG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAS/D"}
|
package/dist/gif-state.js
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* EasyOref โ Persistent GIF Rotation State
|
|
3
|
-
*
|
|
4
|
-
* Stores which GIFs have been shown to avoid repeats.
|
|
5
|
-
* State survives restarts + redeploys via JSON file.
|
|
6
|
-
*/
|
|
7
|
-
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
8
|
-
import { join } from "node:path";
|
|
9
|
-
import * as logger from "./logger.js";
|
|
10
|
-
let gifBags = {};
|
|
11
|
-
let stateFilePath = "";
|
|
12
|
-
/**
|
|
13
|
-
* Initialize persistent GIF state.
|
|
14
|
-
* @param dataDir โ directory for state file (created if missing)
|
|
15
|
-
*/
|
|
16
|
-
export function initGifState(dataDir) {
|
|
17
|
-
stateFilePath = join(dataDir, "gif-state.json");
|
|
18
|
-
try {
|
|
19
|
-
mkdirSync(dataDir, { recursive: true });
|
|
20
|
-
}
|
|
21
|
-
catch {
|
|
22
|
-
// dir may already exist
|
|
23
|
-
}
|
|
24
|
-
if (existsSync(stateFilePath)) {
|
|
25
|
-
try {
|
|
26
|
-
const raw = readFileSync(stateFilePath, "utf-8");
|
|
27
|
-
const parsed = JSON.parse(raw);
|
|
28
|
-
if (parsed.version === 1 && parsed.bags) {
|
|
29
|
-
gifBags = parsed.bags;
|
|
30
|
-
logger.info("GIF state loaded", {
|
|
31
|
-
pools: Object.keys(gifBags).length,
|
|
32
|
-
path: stateFilePath,
|
|
33
|
-
});
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
catch {
|
|
38
|
-
logger.warn("Corrupt gif-state.json โ starting fresh");
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
gifBags = {};
|
|
42
|
-
persist();
|
|
43
|
-
}
|
|
44
|
-
function persist() {
|
|
45
|
-
try {
|
|
46
|
-
const state = { version: 1, bags: gifBags };
|
|
47
|
-
writeFileSync(stateFilePath, JSON.stringify(state, null, 2), "utf-8");
|
|
48
|
-
}
|
|
49
|
-
catch (err) {
|
|
50
|
-
logger.warn("Failed to persist GIF state", { error: String(err) });
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Pick a GIF from a pool without repeats.
|
|
55
|
-
* When all GIFs in the pool have been shown, reshuffles.
|
|
56
|
-
*/
|
|
57
|
-
export function pickGif(pool, poolKey) {
|
|
58
|
-
let bag = gifBags[poolKey];
|
|
59
|
-
if (!bag || bag.length === 0) {
|
|
60
|
-
bag = [...pool].sort(() => Math.random() - 0.5);
|
|
61
|
-
gifBags[poolKey] = bag;
|
|
62
|
-
}
|
|
63
|
-
const gif = bag.pop();
|
|
64
|
-
persist();
|
|
65
|
-
return gif;
|
|
66
|
-
}
|
|
67
|
-
//# sourceMappingURL=gif-state.js.map
|
package/dist/gif-state.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gif-state.js","sourceRoot":"","sources":["../src/gif-state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAWtC,IAAI,OAAO,GAAY,EAAE,CAAC;AAC1B,IAAI,aAAa,GAAG,EAAE,CAAC;AAEvB;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAEhD,IAAI,CAAC;QACH,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,wBAAwB;IAC1B,CAAC;IAED,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YACjD,MAAM,MAAM,GAAiB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAiB,CAAC;YAC7D,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBACxC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;gBACtB,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE;oBAC9B,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM;oBAClC,IAAI,EAAE,aAAa;iBACpB,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,OAAO,GAAG,EAAE,CAAC;IACb,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,OAAO;IACd,IAAI,CAAC;QACH,MAAM,KAAK,GAAiB,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC1D,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACxE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrE,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,IAAc,EAAE,OAAe;IACrD,IAAI,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3B,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;QAChD,OAAO,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;IACzB,CAAC;IACD,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,EAAG,CAAC;IACvB,OAAO,EAAE,CAAC;IACV,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/dist/i18n.d.ts
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* EasyOref โ Internationalization (i18n)
|
|
3
|
-
*
|
|
4
|
-
* Supported languages: Russian (ru), English (en), Hebrew (he), Arabic (ar)
|
|
5
|
-
* Default: ru (built for diaspora families)
|
|
6
|
-
*
|
|
7
|
-
* Message format:
|
|
8
|
-
* <b>โ ๏ธ Title</b>
|
|
9
|
-
* Description
|
|
10
|
-
* <blockquote>
|
|
11
|
-
* <b>Key:</b> Value
|
|
12
|
-
* ...
|
|
13
|
-
* </blockquote>
|
|
14
|
-
*/
|
|
15
|
-
export type Language = "ru" | "en" | "he" | "ar";
|
|
16
|
-
export type AlertKind = "early" | "siren" | "resolved";
|
|
17
|
-
export interface AlertMeta {
|
|
18
|
-
emoji: string;
|
|
19
|
-
title: string;
|
|
20
|
-
description: string;
|
|
21
|
-
}
|
|
22
|
-
export interface I18nLabels {
|
|
23
|
-
area: string;
|
|
24
|
-
timeToImpact: string;
|
|
25
|
-
time: string;
|
|
26
|
-
earlyEta: string;
|
|
27
|
-
sirenEta: string;
|
|
28
|
-
}
|
|
29
|
-
export interface LanguagePack {
|
|
30
|
-
alerts: Record<AlertKind, AlertMeta>;
|
|
31
|
-
labels: I18nLabels;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Load and cache translations from pikud-haoref-api.
|
|
35
|
-
* Must be called once at startup (before first alert).
|
|
36
|
-
* Falls back silently to Hebrew names on fetch failure.
|
|
37
|
-
*/
|
|
38
|
-
export declare function initTranslations(): Promise<void>;
|
|
39
|
-
/** Translate comma-separated Hebrew area names to target language */
|
|
40
|
-
export declare function translateAreas(areas: string, lang: Language): string;
|
|
41
|
-
/**
|
|
42
|
-
* Resolve numeric city IDs to Hebrew area names.
|
|
43
|
-
* Call AFTER initTranslations().
|
|
44
|
-
* Unknown IDs are logged as warnings and skipped.
|
|
45
|
-
*/
|
|
46
|
-
export declare function resolveCityIds(ids: number[]): string[];
|
|
47
|
-
export declare function getLanguagePack(lang: Language): LanguagePack;
|
|
48
|
-
export declare function isValidLanguage(s: string): s is Language;
|
|
49
|
-
//# sourceMappingURL=i18n.d.ts.map
|
package/dist/i18n.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAIjD,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;AAEvD,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACrC,MAAM,EAAE,UAAU,CAAC;CACpB;AAgKD;;;;GAIG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAoCtD;AAED,qEAAqE;AACrE,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,CAapE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAYtD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,YAAY,CAE5D;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,IAAI,QAAQ,CAExD"}
|
package/dist/i18n.js
DELETED
|
@@ -1,229 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* EasyOref โ Internationalization (i18n)
|
|
3
|
-
*
|
|
4
|
-
* Supported languages: Russian (ru), English (en), Hebrew (he), Arabic (ar)
|
|
5
|
-
* Default: ru (built for diaspora families)
|
|
6
|
-
*
|
|
7
|
-
* Message format:
|
|
8
|
-
* <b>โ ๏ธ Title</b>
|
|
9
|
-
* Description
|
|
10
|
-
* <blockquote>
|
|
11
|
-
* <b>Key:</b> Value
|
|
12
|
-
* ...
|
|
13
|
-
* </blockquote>
|
|
14
|
-
*/
|
|
15
|
-
// โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
16
|
-
// Language Packs โ structured alert metadata + labels
|
|
17
|
-
// โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
18
|
-
const ruPack = {
|
|
19
|
-
alerts: {
|
|
20
|
-
early: {
|
|
21
|
-
emoji: "โ ๏ธ",
|
|
22
|
-
title: "ะ ะฐะฝะฝะตะต ะฟัะตะดัะฟัะตะถะดะตะฝะธะต",
|
|
23
|
-
description: "ะะฑะฝะฐััะถะตะฝั ะทะฐะฟััะบะธ ัะฐะบะตั ะฟะพ ะะทัะฐะธะปั",
|
|
24
|
-
},
|
|
25
|
-
siren: {
|
|
26
|
-
emoji: "๐จ",
|
|
27
|
-
title: "ะฆะตะฒะฐ ะะดะพะผ",
|
|
28
|
-
description: "",
|
|
29
|
-
},
|
|
30
|
-
resolved: {
|
|
31
|
-
emoji: "๐ฎโ๐จ",
|
|
32
|
-
title: "ะะฝัะธะดะตะฝั ะทะฐะฒะตัััะฝ",
|
|
33
|
-
description: "ะะพะถะฝะพ ะฟะพะบะธะฝััั ะทะฐัะธััะฝะฝะพะต ะฟะพะผะตัะตะฝะธะต.",
|
|
34
|
-
},
|
|
35
|
-
},
|
|
36
|
-
labels: {
|
|
37
|
-
area: "ะ ะฐะนะพะฝ",
|
|
38
|
-
timeToImpact: "ะะพะดะปััะฝะพะต ะฒัะตะผั",
|
|
39
|
-
time: "ะัะตะผั ะพะฟะพะฒะตัะตะฝะธั",
|
|
40
|
-
earlyEta: "~5โ12 ะผะธะฝ",
|
|
41
|
-
sirenEta: "1.5 ะผะธะฝ",
|
|
42
|
-
},
|
|
43
|
-
};
|
|
44
|
-
const enPack = {
|
|
45
|
-
alerts: {
|
|
46
|
-
early: {
|
|
47
|
-
emoji: "โ ๏ธ",
|
|
48
|
-
title: "Early Warning",
|
|
49
|
-
description: "Rocket launches detected. Stay near a protected space.",
|
|
50
|
-
},
|
|
51
|
-
siren: {
|
|
52
|
-
emoji: "๐จ",
|
|
53
|
-
title: "Siren Alert",
|
|
54
|
-
description: "Enter a protected space immediately.",
|
|
55
|
-
},
|
|
56
|
-
resolved: {
|
|
57
|
-
emoji: "๐ฎโ๐จ",
|
|
58
|
-
title: "Incident Over",
|
|
59
|
-
description: "You may leave the protected space.",
|
|
60
|
-
},
|
|
61
|
-
},
|
|
62
|
-
labels: {
|
|
63
|
-
area: "Area",
|
|
64
|
-
timeToImpact: "Time to impact",
|
|
65
|
-
time: "Alert time",
|
|
66
|
-
earlyEta: "~5โ12 min",
|
|
67
|
-
sirenEta: "1.5 min",
|
|
68
|
-
},
|
|
69
|
-
};
|
|
70
|
-
const hePack = {
|
|
71
|
-
alerts: {
|
|
72
|
-
early: {
|
|
73
|
-
emoji: "โ ๏ธ",
|
|
74
|
-
title: "ืืชืจืขื ืืืงืืืช",
|
|
75
|
-
description: "ืืืื ืฉืืืืจืื. ืืืฉืืจื ืืงืจืืช ืืจืื ืืืื.",
|
|
76
|
-
},
|
|
77
|
-
siren: {
|
|
78
|
-
emoji: "๐จ",
|
|
79
|
-
title: "ืฆืืข ืืืื",
|
|
80
|
-
description: "ืืืื ืกื ืืืจืื ืืืื.",
|
|
81
|
-
},
|
|
82
|
-
resolved: {
|
|
83
|
-
emoji: "๐ฎโ๐จ",
|
|
84
|
-
title: "ืืืืจืืข ืืกืชืืื",
|
|
85
|
-
description: "ื ืืชื ืืฆืืช ืืืืจืื ืืืืื.",
|
|
86
|
-
},
|
|
87
|
-
},
|
|
88
|
-
labels: {
|
|
89
|
-
area: "ืืืืจ",
|
|
90
|
-
timeToImpact: "ืืื ืืขืืฃ",
|
|
91
|
-
time: "ืฉืขืช ืืืชืจืขื",
|
|
92
|
-
earlyEta: "~5โ12 ืืงืืช",
|
|
93
|
-
sirenEta: "1.5 ืืงืืช",
|
|
94
|
-
},
|
|
95
|
-
};
|
|
96
|
-
const arPack = {
|
|
97
|
-
alerts: {
|
|
98
|
-
early: {
|
|
99
|
-
emoji: "โ ๏ธ",
|
|
100
|
-
title: "ุฅูุฐุงุฑ ู
ุจูุฑ",
|
|
101
|
-
description: "ุชู
ุฑุตุฏ ุฅุทูุงู ุตูุงุฑูุฎ. ุงุจููุง ุจุงููุฑุจ ู
ู ุงูู
ูุฌุฃ.",
|
|
102
|
-
},
|
|
103
|
-
siren: {
|
|
104
|
-
emoji: "๐จ",
|
|
105
|
-
title: "ุตูุงุฑุฉ ุฅูุฐุงุฑ",
|
|
106
|
-
description: "ุงุฏุฎููุง ุฅูู ุงูู
ูุฌุฃ ููุฑุงู.",
|
|
107
|
-
},
|
|
108
|
-
resolved: {
|
|
109
|
-
emoji: "๐ฎโ๐จ",
|
|
110
|
-
title: "ุงูุชูู ุงูุญุงุฏุซ",
|
|
111
|
-
description: "ูู
ูููู
ู
ุบุงุฏุฑุฉ ุงูู
ูุฌุฃ.",
|
|
112
|
-
},
|
|
113
|
-
},
|
|
114
|
-
labels: {
|
|
115
|
-
area: "ุงูู
ูุทูุฉ",
|
|
116
|
-
timeToImpact: "ููุช ุงููุตูู",
|
|
117
|
-
time: "ููุช ุงูุชูุจูู",
|
|
118
|
-
earlyEta: "~5โ12 ุฏูููุฉ",
|
|
119
|
-
sirenEta: "1.5 ุฏูููุฉ",
|
|
120
|
-
},
|
|
121
|
-
};
|
|
122
|
-
const packs = {
|
|
123
|
-
ru: ruPack,
|
|
124
|
-
en: enPack,
|
|
125
|
-
he: hePack,
|
|
126
|
-
ar: arPack,
|
|
127
|
-
};
|
|
128
|
-
// โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
129
|
-
// Area Name Translation โ loaded from pikud-haoref-api/cities.json
|
|
130
|
-
// โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
131
|
-
const CITIES_JSON_URL = "https://raw.githubusercontent.com/eladnava/pikud-haoref-api/master/cities.json";
|
|
132
|
-
/** Hebrew city name โ { en, ru, ar } */
|
|
133
|
-
const cityMap = new Map();
|
|
134
|
-
/** Hebrew zone name โ { en, ru, ar } */
|
|
135
|
-
const zoneMap = new Map();
|
|
136
|
-
/** City ID โ Hebrew name (for YAML city_ids resolution) */
|
|
137
|
-
const idToNameMap = new Map();
|
|
138
|
-
/**
|
|
139
|
-
* Known bad translations in upstream cities.json.
|
|
140
|
-
* Applied as post-processing corrections after loading.
|
|
141
|
-
* Key: Hebrew name, Value: { lang: corrected_name }
|
|
142
|
-
*/
|
|
143
|
-
const TRANSLATION_FIXES = {
|
|
144
|
-
"ืชื ืืืื - ืืจืื ืืขืืจ ืืืคื": {
|
|
145
|
-
ru: "ะขะตะปั-ะะฒะธะฒ โ ะฎะถะฝัะน ัะฐะนะพะฝ ะธ ะฏััะพ",
|
|
146
|
-
},
|
|
147
|
-
};
|
|
148
|
-
/**
|
|
149
|
-
* Load and cache translations from pikud-haoref-api.
|
|
150
|
-
* Must be called once at startup (before first alert).
|
|
151
|
-
* Falls back silently to Hebrew names on fetch failure.
|
|
152
|
-
*/
|
|
153
|
-
export async function initTranslations() {
|
|
154
|
-
try {
|
|
155
|
-
const res = await fetch(CITIES_JSON_URL);
|
|
156
|
-
if (!res.ok)
|
|
157
|
-
throw new Error(`HTTP ${res.status}`);
|
|
158
|
-
const data = (await res.json());
|
|
159
|
-
for (const c of data) {
|
|
160
|
-
if (!c.name || c.name === "ืืืจ ืืื")
|
|
161
|
-
continue;
|
|
162
|
-
cityMap.set(c.name, { en: c.name_en, ru: c.name_ru, ar: c.name_ar });
|
|
163
|
-
if (c.id)
|
|
164
|
-
idToNameMap.set(c.id, c.name);
|
|
165
|
-
if (c.zone && !zoneMap.has(c.zone)) {
|
|
166
|
-
zoneMap.set(c.zone, { en: c.zone_en, ru: c.zone_ru, ar: c.zone_ar });
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
// Apply known corrections over upstream data
|
|
170
|
-
for (const [heName, fixes] of Object.entries(TRANSLATION_FIXES)) {
|
|
171
|
-
const existing = cityMap.get(heName);
|
|
172
|
-
if (existing) {
|
|
173
|
-
for (const [lang, corrected] of Object.entries(fixes)) {
|
|
174
|
-
existing[lang] = corrected;
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
// eslint-disable-next-line no-console
|
|
179
|
-
console.log(`[i18n] Loaded ${cityMap.size} city + ${zoneMap.size} zone translations`);
|
|
180
|
-
}
|
|
181
|
-
catch (err) {
|
|
182
|
-
// eslint-disable-next-line no-console
|
|
183
|
-
console.warn("[i18n] Failed to load cities.json โ area names will stay in Hebrew", err);
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
/** Translate comma-separated Hebrew area names to target language */
|
|
187
|
-
export function translateAreas(areas, lang) {
|
|
188
|
-
if (lang === "he")
|
|
189
|
-
return areas;
|
|
190
|
-
const key = lang;
|
|
191
|
-
return areas
|
|
192
|
-
.split(", ")
|
|
193
|
-
.map((a) => {
|
|
194
|
-
const city = cityMap.get(a);
|
|
195
|
-
if (city?.[key])
|
|
196
|
-
return city[key];
|
|
197
|
-
const zone = zoneMap.get(a);
|
|
198
|
-
if (zone?.[key])
|
|
199
|
-
return zone[key];
|
|
200
|
-
return a; // fallback: Hebrew as-is
|
|
201
|
-
})
|
|
202
|
-
.join(", ");
|
|
203
|
-
}
|
|
204
|
-
/**
|
|
205
|
-
* Resolve numeric city IDs to Hebrew area names.
|
|
206
|
-
* Call AFTER initTranslations().
|
|
207
|
-
* Unknown IDs are logged as warnings and skipped.
|
|
208
|
-
*/
|
|
209
|
-
export function resolveCityIds(ids) {
|
|
210
|
-
const names = [];
|
|
211
|
-
for (const id of ids) {
|
|
212
|
-
const name = idToNameMap.get(id);
|
|
213
|
-
if (name) {
|
|
214
|
-
names.push(name);
|
|
215
|
-
}
|
|
216
|
-
else {
|
|
217
|
-
// eslint-disable-next-line no-console
|
|
218
|
-
console.warn(`[i18n] Unknown city ID: ${id} โ skipping`);
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
return names;
|
|
222
|
-
}
|
|
223
|
-
export function getLanguagePack(lang) {
|
|
224
|
-
return packs[lang] ?? packs.ru;
|
|
225
|
-
}
|
|
226
|
-
export function isValidLanguage(s) {
|
|
227
|
-
return s === "ru" || s === "en" || s === "he" || s === "ar";
|
|
228
|
-
}
|
|
229
|
-
//# sourceMappingURL=i18n.js.map
|
package/dist/i18n.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"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"}
|
package/dist/init.d.ts
DELETED
package/dist/init.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAsF1C"}
|