@leyyo/localization 1.1.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.
Files changed (111) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +417 -0
  3. package/dist/base/base-localization.handler.d.ts +22 -0
  4. package/dist/base/base-localization.handler.js +35 -0
  5. package/dist/base/base-localization.handler.js.map +1 -0
  6. package/dist/base/index.d.ts +2 -0
  7. package/dist/base/index.js +19 -0
  8. package/dist/base/index.js.map +1 -0
  9. package/dist/base/index.types.d.ts +57 -0
  10. package/dist/base/index.types.js +3 -0
  11. package/dist/base/index.types.js.map +1 -0
  12. package/dist/config/index.d.ts +2 -0
  13. package/dist/config/index.js +19 -0
  14. package/dist/config/index.js.map +1 -0
  15. package/dist/config/index.types.d.ts +22 -0
  16. package/dist/config/index.types.js +3 -0
  17. package/dist/config/index.types.js.map +1 -0
  18. package/dist/config/localization.config.d.ts +2 -0
  19. package/dist/config/localization.config.js +27 -0
  20. package/dist/config/localization.config.js.map +1 -0
  21. package/dist/country/country-code.d.ts +10 -0
  22. package/dist/country/country-code.js +19 -0
  23. package/dist/country/country-code.js.map +1 -0
  24. package/dist/country/country.handler.d.ts +2 -0
  25. package/dist/country/country.handler.js +51 -0
  26. package/dist/country/country.handler.js.map +1 -0
  27. package/dist/country/country.map.d.ts +3 -0
  28. package/dist/country/country.map.js +257 -0
  29. package/dist/country/country.map.js.map +1 -0
  30. package/dist/country/index.d.ts +3 -0
  31. package/dist/country/index.js +20 -0
  32. package/dist/country/index.js.map +1 -0
  33. package/dist/country/index.types.d.ts +66 -0
  34. package/dist/country/index.types.js +3 -0
  35. package/dist/country/index.types.js.map +1 -0
  36. package/dist/exchange/exchange-code.d.ts +10 -0
  37. package/dist/exchange/exchange-code.js +23 -0
  38. package/dist/exchange/exchange-code.js.map +1 -0
  39. package/dist/exchange/exchange.handler.d.ts +2 -0
  40. package/dist/exchange/exchange.handler.js +55 -0
  41. package/dist/exchange/exchange.handler.js.map +1 -0
  42. package/dist/exchange/exchange.map.d.ts +3 -0
  43. package/dist/exchange/exchange.map.js +172 -0
  44. package/dist/exchange/exchange.map.js.map +1 -0
  45. package/dist/exchange/index.d.ts +3 -0
  46. package/dist/exchange/index.js +20 -0
  47. package/dist/exchange/index.js.map +1 -0
  48. package/dist/exchange/index.types.d.ts +85 -0
  49. package/dist/exchange/index.types.js +3 -0
  50. package/dist/exchange/index.types.js.map +1 -0
  51. package/dist/index.d.ts +7 -0
  52. package/dist/index.js +24 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/internal.d.ts +1 -0
  55. package/dist/internal.js +6 -0
  56. package/dist/internal.js.map +1 -0
  57. package/dist/language/index.d.ts +3 -0
  58. package/dist/language/index.js +20 -0
  59. package/dist/language/index.js.map +1 -0
  60. package/dist/language/index.types.d.ts +17 -0
  61. package/dist/language/index.types.js +3 -0
  62. package/dist/language/index.types.js.map +1 -0
  63. package/dist/language/language-code.d.ts +7 -0
  64. package/dist/language/language-code.js +33 -0
  65. package/dist/language/language-code.js.map +1 -0
  66. package/dist/language/language.handler.d.ts +12 -0
  67. package/dist/language/language.handler.js +32 -0
  68. package/dist/language/language.handler.js.map +1 -0
  69. package/dist/language/language.map.d.ts +3 -0
  70. package/dist/language/language.map.js +190 -0
  71. package/dist/language/language.map.js.map +1 -0
  72. package/dist/locale/index.d.ts +3 -0
  73. package/dist/locale/index.js +20 -0
  74. package/dist/locale/index.js.map +1 -0
  75. package/dist/locale/index.types.d.ts +60 -0
  76. package/dist/locale/index.types.js +3 -0
  77. package/dist/locale/index.types.js.map +1 -0
  78. package/dist/locale/locale-code.d.ts +9 -0
  79. package/dist/locale/locale-code.js +25 -0
  80. package/dist/locale/locale-code.js.map +1 -0
  81. package/dist/locale/locale.handler.d.ts +18 -0
  82. package/dist/locale/locale.handler.js +44 -0
  83. package/dist/locale/locale.handler.js.map +1 -0
  84. package/dist/locale/locale.map.d.ts +3 -0
  85. package/dist/locale/locale.map.js +202 -0
  86. package/dist/locale/locale.map.js.map +1 -0
  87. package/dist/parser/index.d.ts +2 -0
  88. package/dist/parser/index.js +19 -0
  89. package/dist/parser/index.js.map +1 -0
  90. package/dist/parser/index.types.d.ts +179 -0
  91. package/dist/parser/index.types.js +3 -0
  92. package/dist/parser/index.types.js.map +1 -0
  93. package/dist/parser/localization.parser.d.ts +2 -0
  94. package/dist/parser/localization.parser.js +363 -0
  95. package/dist/parser/localization.parser.js.map +1 -0
  96. package/dist/timezone/index.d.ts +3 -0
  97. package/dist/timezone/index.js +20 -0
  98. package/dist/timezone/index.js.map +1 -0
  99. package/dist/timezone/index.types.d.ts +137 -0
  100. package/dist/timezone/index.types.js +3 -0
  101. package/dist/timezone/index.types.js.map +1 -0
  102. package/dist/timezone/timezone-code.d.ts +9 -0
  103. package/dist/timezone/timezone-code.js +109 -0
  104. package/dist/timezone/timezone-code.js.map +1 -0
  105. package/dist/timezone/timezone.handler.d.ts +2 -0
  106. package/dist/timezone/timezone.handler.js +94 -0
  107. package/dist/timezone/timezone.handler.js.map +1 -0
  108. package/dist/timezone/timezone.map.d.ts +3 -0
  109. package/dist/timezone/timezone.map.js +608 -0
  110. package/dist/timezone/timezone.map.js.map +1 -0
  111. package/package.json +68 -0
@@ -0,0 +1,363 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.localizationParser = void 0;
37
+ const config_1 = require("../config");
38
+ const uaParser = __importStar(require("ua-parser-js"));
39
+ const geoIp = __importStar(require("geoip-lite"));
40
+ const timezone_1 = require("../timezone");
41
+ const country_1 = require("../country");
42
+ const exchange_1 = require("../exchange");
43
+ class LocalizationParser {
44
+ /**
45
+ * Parses header values
46
+ * */
47
+ parse(req) {
48
+ const ctx = {};
49
+ try {
50
+ const opt = config_1.localizationConfig;
51
+ const token = this._readFromHeader(req === null || req === void 0 ? void 0 : req.headers, ...opt.authorizationKeys);
52
+ const acceptLanguage = this._readFromHeader(req === null || req === void 0 ? void 0 : req.headers, ...opt.acceptLanguageKeys);
53
+ const ipAddress = this._readFromHeader(req === null || req === void 0 ? void 0 : req.headers, ...opt.ipAddressKeys);
54
+ const application = this._readFromHeader(req === null || req === void 0 ? void 0 : req.headers, ...opt.applicationKeys);
55
+ const referer = this._readFromHeader(req === null || req === void 0 ? void 0 : req.headers, ...opt.refererKeys);
56
+ const userAgent = this._readFromHeader(req === null || req === void 0 ? void 0 : req.headers, ...opt.userAgentKeys);
57
+ const correlationId = this._readFromHeader(req === null || req === void 0 ? void 0 : req.headers, ...opt.correlationKeys);
58
+ if (token) {
59
+ ctx.token = token;
60
+ }
61
+ if (correlationId) {
62
+ ctx.correlation = correlationId;
63
+ }
64
+ if (acceptLanguage) {
65
+ ctx.language = acceptLanguage;
66
+ this._processAcceptLanguage(ctx);
67
+ }
68
+ if (application) {
69
+ ctx.application = application;
70
+ this._processApplication(ctx);
71
+ }
72
+ if (referer) {
73
+ ctx.referer = referer;
74
+ this._processReferer(ctx);
75
+ }
76
+ if (userAgent) {
77
+ ctx.agent = userAgent;
78
+ this._parseUserAgent(ctx);
79
+ }
80
+ if (ipAddress) {
81
+ ctx.location = { key: ipAddress.key, ip: this._findIpAddress(ipAddress.header) };
82
+ if (ctx.location.ip) {
83
+ this._processLocation(ctx);
84
+ }
85
+ }
86
+ }
87
+ catch (e) {
88
+ ctx.error = e;
89
+ }
90
+ return ctx;
91
+ }
92
+ /**
93
+ * Get value from header by multiple header keys
94
+ * */
95
+ _readFromHeader(headers, ...keys) {
96
+ for (const key of keys) {
97
+ let value = headers[key];
98
+ switch (typeof value) {
99
+ case "string":
100
+ value = value.trim();
101
+ if (value) {
102
+ return { header: value, key };
103
+ }
104
+ break;
105
+ case "number":
106
+ return { header: value.toString(10), key };
107
+ case "boolean":
108
+ return { header: value ? 'true' : 'false', key };
109
+ case 'object':
110
+ if (Array.isArray(value) && value.length > 0) {
111
+ for (let val of value) {
112
+ val = val.trim();
113
+ if (val) {
114
+ return { header: val, key };
115
+ }
116
+ }
117
+ }
118
+ break;
119
+ }
120
+ }
121
+ return undefined;
122
+ }
123
+ _processAcceptLanguage(ctx) {
124
+ var _a;
125
+ if (!((_a = ctx.language) === null || _a === void 0 ? void 0 : _a.header)) {
126
+ return;
127
+ }
128
+ let locale = ctx.language.header.split(',').pop().trim();
129
+ if (locale === '') {
130
+ locale = undefined;
131
+ }
132
+ let code;
133
+ if (locale) {
134
+ if (locale.includes('-')) {
135
+ code = locale.split('-').shift().trim();
136
+ if (code === '') {
137
+ code = undefined;
138
+ }
139
+ }
140
+ }
141
+ const weights = this._parseAndSortLanguageTags(ctx.language.header);
142
+ if (!code && weights.length > 0) {
143
+ code = weights.shift()[0];
144
+ }
145
+ let effective;
146
+ if (code && config_1.localizationConfig.languageReplacer[code] !== undefined) {
147
+ effective = config_1.localizationConfig.languageReplacer[code];
148
+ }
149
+ if (locale) {
150
+ ctx.language.locale = locale;
151
+ }
152
+ if (code) {
153
+ ctx.language.code = code;
154
+ }
155
+ if (effective) {
156
+ ctx.language.effective = effective;
157
+ }
158
+ if (weights.length > 0) {
159
+ ctx.language.weighted = {};
160
+ weights.forEach(tuple => {
161
+ ctx.language.weighted[tuple[0]] = tuple[1];
162
+ });
163
+ }
164
+ }
165
+ /**
166
+ * Builds application instance
167
+ * */
168
+ _processApplication(ctx) {
169
+ var _a;
170
+ if (!((_a = ctx.application) === null || _a === void 0 ? void 0 : _a.header)) {
171
+ return;
172
+ }
173
+ if (!config_1.localizationConfig.applicationDelimiter) {
174
+ return;
175
+ }
176
+ if (!ctx.application.header.indexOf(config_1.localizationConfig.applicationDelimiter)) {
177
+ return;
178
+ }
179
+ // com.company.app:2.3.0
180
+ const parts = ctx.application.header.split(config_1.localizationConfig.applicationDelimiter);
181
+ ctx.application.name = parts[0].trim();
182
+ ctx.application.version = parts[1] ? parts[1].trim() : '';
183
+ if (ctx.application.name === '') {
184
+ delete ctx.application.name;
185
+ }
186
+ if (ctx.application.version === '') {
187
+ delete ctx.application.version;
188
+ }
189
+ }
190
+ /**
191
+ * Finds IP address
192
+ * */
193
+ _findIpAddress(val) {
194
+ val = val ? String(val) : undefined;
195
+ if (!val) {
196
+ return undefined;
197
+ }
198
+ if (!val.indexOf(',')) {
199
+ return val;
200
+ }
201
+ const parts = val.split(',');
202
+ for (let part of parts) {
203
+ part = part ? String(part) : undefined;
204
+ if (part) {
205
+ return part;
206
+ }
207
+ }
208
+ return undefined;
209
+ }
210
+ /**
211
+ * Finds domain of referer
212
+ * */
213
+ _findDomain(referer) {
214
+ if (!referer) {
215
+ return undefined;
216
+ }
217
+ try {
218
+ const domain = new URL(referer).host;
219
+ if (domain) {
220
+ return domain;
221
+ }
222
+ }
223
+ catch (e) {
224
+ // none
225
+ }
226
+ return undefined;
227
+ }
228
+ /**
229
+ * Builds referer instance
230
+ * */
231
+ _processReferer(ctx) {
232
+ var _a;
233
+ if (!((_a = ctx.referer) === null || _a === void 0 ? void 0 : _a.header)) {
234
+ return;
235
+ }
236
+ ctx.referer.domain = this._findDomain(ctx.referer.header);
237
+ if (!ctx.referer.domain) {
238
+ delete ctx.referer.domain;
239
+ }
240
+ }
241
+ /**
242
+ * Builds corresponding instance via user agent
243
+ * */
244
+ _parseUserAgent(ctx) {
245
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
246
+ if (!((_a = ctx.agent) === null || _a === void 0 ? void 0 : _a.header)) {
247
+ return;
248
+ }
249
+ if (ctx.agent.header.startsWith('PostmanRuntime')) {
250
+ const parts = ctx.agent.header.split('/');
251
+ ctx.agent.browser = {
252
+ name: parts[0],
253
+ major: parts[1],
254
+ };
255
+ ctx.agent.device = {
256
+ type: 'testing',
257
+ vendor: 'Postman',
258
+ };
259
+ return;
260
+ }
261
+ const parser = new uaParser.UAParser();
262
+ parser.setUA(ctx.agent.header);
263
+ const result = parser.getResult();
264
+ if (result && typeof result === 'object') {
265
+ ctx.agent.browser = {
266
+ name: (_b = result.browser) === null || _b === void 0 ? void 0 : _b.name,
267
+ major: (_c = result.browser) === null || _c === void 0 ? void 0 : _c.version,
268
+ };
269
+ ctx.agent.engine = {
270
+ name: (_d = result.engine) === null || _d === void 0 ? void 0 : _d.name,
271
+ version: (_e = result.engine) === null || _e === void 0 ? void 0 : _e.version,
272
+ };
273
+ ctx.agent.os = {
274
+ name: (_f = result.os) === null || _f === void 0 ? void 0 : _f.name,
275
+ version: (_g = result.os) === null || _g === void 0 ? void 0 : _g.version,
276
+ };
277
+ ctx.agent.device = {
278
+ vendor: (_h = result.device) === null || _h === void 0 ? void 0 : _h.vendor,
279
+ type: (_j = result.device) === null || _j === void 0 ? void 0 : _j.type,
280
+ model: (_k = result.device) === null || _k === void 0 ? void 0 : _k.model,
281
+ };
282
+ ctx.agent.cpu = {
283
+ architecture: (_l = result.cpu) === null || _l === void 0 ? void 0 : _l.architecture,
284
+ };
285
+ }
286
+ }
287
+ /**
288
+ * Builds location instance
289
+ * */
290
+ _processLocation(ctx) {
291
+ var _a, _b;
292
+ if (!((_a = ctx.location) === null || _a === void 0 ? void 0 : _a.ip)) {
293
+ return;
294
+ }
295
+ const geo = geoIp.lookup(ctx.location.ip);
296
+ if (geo && typeof geo === 'object') {
297
+ ctx.location.country = geo.country;
298
+ ctx.location.timezone = geo.timezone;
299
+ ctx.location.region = geo.region;
300
+ ctx.location.city = geo.city;
301
+ ctx.location.metro = geo.metro;
302
+ if (ctx.location.timezone) {
303
+ const raw = timezone_1.timezoneHandler.get(ctx.location.timezone);
304
+ if (raw) {
305
+ ctx.location.timezone = raw.code;
306
+ if (!ctx.location.country && Array.isArray(raw.countries)) {
307
+ ctx.location.country = raw.countries[0];
308
+ }
309
+ ctx.location.sdt = raw.sdt;
310
+ if (raw.sdt !== raw.dst) {
311
+ ctx.location.dst = raw.dst;
312
+ }
313
+ }
314
+ }
315
+ if (ctx.location.country) {
316
+ if (!((_b = ctx.language) === null || _b === void 0 ? void 0 : _b.code)) {
317
+ const langs = country_1.countryHandler.getLanguages(ctx.location.country);
318
+ if (Array.isArray(langs)) {
319
+ if (!ctx.language) {
320
+ ctx.language = { code: langs[0] };
321
+ }
322
+ else {
323
+ ctx.language.code = langs[0];
324
+ }
325
+ }
326
+ }
327
+ const currencies = exchange_1.exchangeHandler.findByCountry(ctx.location.country);
328
+ if (Array.isArray(currencies)) {
329
+ ctx.location.exchange = currencies[0];
330
+ }
331
+ }
332
+ }
333
+ }
334
+ _parseLangPart(parts) {
335
+ let [lang, quality] = parts.split(';');
336
+ if (typeof lang !== 'string') {
337
+ return undefined;
338
+ }
339
+ lang = lang.trim();
340
+ if (lang === '') {
341
+ return undefined;
342
+ }
343
+ if (typeof quality !== 'string') {
344
+ return [lang, 1];
345
+ }
346
+ try {
347
+ return [lang, quality ? parseFloat(quality.split('=')[1]) : 1.0];
348
+ }
349
+ catch (e) {
350
+ return [lang, 1];
351
+ }
352
+ }
353
+ _parseAndSortLanguageTags(given) {
354
+ return given
355
+ .split(',')
356
+ .map(p => this._parseLangPart(p.replace(/\s+/, '')))
357
+ .filter(tuple => tuple !== undefined)
358
+ .sort((a, b) => b[1] - a[1]);
359
+ }
360
+ }
361
+ // noinspection JSUnusedGlobalSymbols
362
+ exports.localizationParser = new LocalizationParser();
363
+ //# sourceMappingURL=localization.parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localization.parser.js","sourceRoot":"","sources":["../../src/parser/localization.parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './timezone-code';
2
+ export * from './index.types';
3
+ export * from './timezone.handler';
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./timezone-code"), exports);
18
+ __exportStar(require("./index.types"), exports);
19
+ __exportStar(require("./timezone.handler"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/timezone/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,gDAA8B;AAC9B,qDAAmC"}
@@ -0,0 +1,137 @@
1
+ import type { TimezoneCode } from "./timezone-code";
2
+ import type { BaseLocalizationHandlerLike, BaseLocalizationHandlerRaw, BaseLocalizationHandlerView } from "../base";
3
+ import { CountryCode } from "../country";
4
+ /**
5
+ * Timezone raw format
6
+ * @interface
7
+ * */
8
+ export interface TimezoneRaw extends BaseLocalizationHandlerRaw {
9
+ /**
10
+ * Parent/related timezone code for timezone
11
+ * It's used for only alias timezones
12
+ *
13
+ * @type {TimezoneCode}
14
+ * */
15
+ p?: TimezoneCode;
16
+ /**
17
+ * SDT
18
+ *
19
+ * @type {number}
20
+ * */
21
+ s?: number;
22
+ /**
23
+ * DST
24
+ *
25
+ * @type {number}
26
+ * */
27
+ w?: number;
28
+ /**
29
+ * Countries which use this timezone
30
+ *
31
+ * @type {Array<CountryCode>}
32
+ * */
33
+ c?: Array<CountryCode>;
34
+ }
35
+ /**
36
+ * Timezone hours for saving time
37
+ * @interface
38
+ * */
39
+ export interface TimezoneHours {
40
+ /**
41
+ * Hours of SDT (Standard Time)
42
+ *
43
+ * @type {number}
44
+ * */
45
+ sdt: number;
46
+ /**
47
+ * Hours of DST (Daylight Saving Time)
48
+ *
49
+ * @type {number}
50
+ * */
51
+ dst: number;
52
+ }
53
+ /**
54
+ * Timezone view
55
+ * @interface
56
+ * */
57
+ export interface TimezoneView extends BaseLocalizationHandlerView<TimezoneCode>, TimezoneHours {
58
+ /**
59
+ * Parent/related timezone code for given timezone
60
+ * It's used for only alias timezones
61
+ *
62
+ * @type {TimezoneCode}
63
+ * */
64
+ parent?: TimezoneCode;
65
+ /**
66
+ * Countries which use this timezone
67
+ *
68
+ * @type {Array<CountryCode>}
69
+ * */
70
+ countries: Array<CountryCode>;
71
+ }
72
+ /**
73
+ * Timezone handler
74
+ * @interface
75
+ * */
76
+ export interface TimezoneHandlerLike extends BaseLocalizationHandlerLike<TimezoneCode, TimezoneView, TimezoneRaw> {
77
+ /**
78
+ * Returns SDT or DST for given timezone and saving time preference
79
+ *
80
+ * @param {TimezoneCode} code - timezone code
81
+ * @param {boolean} dst - is daylight saving time? if yes: dst, else sdt
82
+ * @return {number} - diff hours
83
+ * */
84
+ getHour(code: TimezoneCode, dst?: boolean): number;
85
+ /**
86
+ * Returns SDT (Standard Time) for given timezone
87
+ *
88
+ * @param {TimezoneCode} code - timezone code
89
+ * @return {number} - diff hours
90
+ * */
91
+ getSdt(code: TimezoneCode): number;
92
+ /**
93
+ * Alias for {@link #getSdt}
94
+ * */
95
+ getStandard(code: TimezoneCode): number;
96
+ /**
97
+ * Returns DST (Daylight Saving Time) for given timezone
98
+ *
99
+ * @param {TimezoneCode} code - timezone code
100
+ * @return {number} - diff hours
101
+ * */
102
+ getDst(code: TimezoneCode): number;
103
+ /**
104
+ * Alias for {@link #getDst}
105
+ * */
106
+ getDaylightSaving(code: TimezoneCode): number;
107
+ /**
108
+ * Returns SDT and DST for given timezone
109
+ *
110
+ * @param {TimezoneCode} code - timezone code
111
+ * @return {TimezoneHours} - diff hours objects
112
+ * */
113
+ getHours(code: TimezoneCode): TimezoneHours;
114
+ /**
115
+ * Returns parent/related timezone code for timezone
116
+ * - It's used for only alias timezones
117
+ * - If timezone is not alias, it returns itself
118
+ *
119
+ * @param {TimezoneCode} code - timezone code
120
+ * @return {TimezoneCode} - timezone code
121
+ * */
122
+ getParent(code: TimezoneCode): TimezoneCode;
123
+ /**
124
+ * Countries which use this timezone
125
+ *
126
+ * @param {TimezoneCode} code - timezone code
127
+ * @return {Array<CountryCode>}
128
+ * */
129
+ getCountries(code: TimezoneCode): Array<CountryCode>;
130
+ /**
131
+ * Returns is alias or not for a given timezone
132
+ *
133
+ * @param {TimezoneCode} code - timezone code
134
+ * @return {boolean} - is alias?
135
+ * */
136
+ isAlias(code: TimezoneCode): boolean;
137
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=index.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.types.js","sourceRoot":"","sources":["../../src/timezone/index.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ declare const literals: readonly ["EST", "CST6CDT", "MST7MDT", "PST8PDT", "EST5EDT", "MST", "Asia/Urumqi", "WET", "CET", "MET", "EET", "Africa/Bamako", "Africa/Banjul", "Africa/Conakry", "Africa/Dakar", "Africa/Freetown", "Africa/Lome", "Africa/Nouakchott", "Africa/Ouagadougou", "Africa/Timbuktu", "Atlantic/St_Helena", "Egypt", "Africa/Maseru", "Africa/Mbabane", "Africa/Bangui", "Africa/Brazzaville", "Africa/Douala", "Africa/Kinshasa", "Africa/Libreville", "Africa/Luanda", "Africa/Malabo", "Africa/Niamey", "Africa/Porto-Novo", "Africa/Blantyre", "Africa/Bujumbura", "Africa/Gaborone", "Africa/Harare", "Africa/Kigali", "Africa/Lubumbashi", "Africa/Lusaka", "Africa/Addis_Ababa", "Africa/Asmara", "Africa/Asmera", "Africa/Dar_es_Salaam", "Africa/Djibouti", "Africa/Kampala", "Africa/Mogadishu", "Indian/Antananarivo", "Indian/Comoro", "Indian/Mayotte", "Libya", "America/Atka", "US/Aleutian", "US/Alaska", "America/Buenos_Aires", "America/Argentina/ComodRivadavia", "America/Catamarca", "America/Cordoba", "America/Rosario", "America/Jujuy", "America/Mendoza", "America/Coral_Harbour", "US/Central", "America/Aruba", "America/Kralendijk", "America/Lower_Princes", "America/Shiprock", "Navajo", "US/Mountain", "US/Michigan", "Canada/Mountain", "Canada/Atlantic", "Cuba", "America/Fort_Wayne", "America/Indianapolis", "US/East-Indiana", "America/Knox_IN", "US/Indiana-Starke", "Jamaica", "America/Louisville", "US/Pacific", "Brazil/West", "Mexico/BajaSur", "Mexico/General", "US/Eastern", "Brazil/DeNoronha", "America/Godthab", "America/Cayman", "US/Arizona", "America/Anguilla", "America/Antigua", "America/Dominica", "America/Grenada", "America/Guadeloupe", "America/Marigot", "America/Montserrat", "America/St_Barthelemy", "America/St_Kitts", "America/St_Lucia", "America/St_Thomas", "America/St_Vincent", "America/Tortola", "America/Virgin", "Canada/Saskatchewan", "America/Porto_Acre", "Brazil/Acre", "Chile/Continental", "Brazil/East", "Canada/Newfoundland", "America/Ensenada", "America/Santa_Isabel", "Mexico/BajaNorte", "America/Montreal", "Canada/Eastern", "Canada/Pacific", "Canada/Yukon", "Canada/Central", "Asia/Ashkhabad", "Asia/Phnom_Penh", "Asia/Vientiane", "Asia/Dacca", "Asia/Muscat", "Asia/Saigon", "Hongkong", "Asia/Tel_Aviv", "Israel", "Asia/Katmandu", "Asia/Calcutta", "Asia/Macao", "Asia/Ujung_Pandang", "Europe/Nicosia", "Asia/Bahrain", "Asia/Aden", "Asia/Kuwait", "ROK", "Asia/Chongqing", "Asia/Chungking", "Asia/Harbin", "PRC", "Singapore", "ROC", "Iran", "Asia/Thimbu", "Japan", "Asia/Ulan_Bator", "Asia/Kashgar", "Asia/Rangoon", "Atlantic/Faeroe", "Iceland", "Australia/South", "Australia/Queensland", "Australia/Yancowinna", "Australia/North", "Australia/Tasmania", "Australia/LHI", "Australia/Victoria", "Australia/West", "Australia/ACT", "Australia/Canberra", "Australia/NSW", "Etc/GMT+0", "Etc/GMT-0", "Etc/GMT0", "Etc/Greenwich", "GMT", "GMT+0", "GMT-0", "GMT0", "Greenwich", "Etc/UCT", "Etc/Universal", "Etc/Zulu", "UCT", "Universal", "UTC", "Zulu", "Europe/Ljubljana", "Europe/Podgorica", "Europe/Sarajevo", "Europe/Skopje", "Europe/Zagreb", "Europe/Tiraspol", "Eire", "Europe/Mariehamn", "Asia/Istanbul", "Turkey", "Portugal", "Europe/Belfast", "Europe/Guernsey", "Europe/Isle_of_Man", "Europe/Jersey", "GB", "GB-Eire", "W-SU", "Arctic/Longyearbyen", "Atlantic/Jan_Mayen", "Europe/Bratislava", "Europe/San_Marino", "Europe/Vatican", "Poland", "Europe/Busingen", "Europe/Vaduz", "Antarctica/McMurdo", "Antarctica/South_Pole", "NZ", "NZ-CHAT", "Pacific/Truk", "Pacific/Yap", "Chile/EasterIsland", "Pacific/Saipan", "Pacific/Johnston", "US/Hawaii", "Kwajalein", "Pacific/Midway", "Pacific/Samoa", "US/Samoa", "Pacific/Ponape", "HST", "Asia/Riyadh87", "Asia/Riyadh88", "Asia/Riyadh89", "Canada/East-Saskatchewan", "Mideast/Riyadh87", "Mideast/Riyadh88", "Mideast/Riyadh89", "US/Pacific-New", "Antarctica/Palmer", "Europe/Simferopol", "Europe/Berlin", "America/Punta_Arenas", "Asia/Kolkata", "Antarctica/Troll", "Etc/GMT+1", "Etc/GMT+12", "Etc/GMT+2", "Etc/GMT+3", "Etc/GMT+4", "Etc/GMT+5", "Etc/GMT+6", "Etc/GMT+7", "Etc/GMT+8", "Etc/GMT+9", "Etc/GMT+10", "Etc/GMT+11", "Etc/GMT-1", "Etc/GMT-10", "Etc/GMT-11", "Etc/GMT-12", "Etc/GMT-13", "Etc/GMT-14", "Etc/GMT-2", "Etc/GMT-3", "Etc/GMT-4", "Etc/GMT-5", "Etc/GMT-6", "Etc/GMT-7", "Etc/GMT-8", "Etc/GMT-9", "Australia/Lord_Howe", "America/Scoresbysund", "Atlantic/Azores", "Atlantic/Cape_Verde", "America/Noronha", "Atlantic/South_Georgia", "America/Araguaina", "America/Argentina/Buenos_Aires", "America/Argentina/Catamarca", "America/Argentina/Cordoba", "America/Argentina/Jujuy", "America/Argentina/La_Rioja", "America/Argentina/Mendoza", "America/Argentina/Rio_Gallegos", "America/Argentina/Salta", "America/Argentina/San_Juan", "America/Argentina/San_Luis", "America/Argentina/Tucuman", "America/Argentina/Ushuaia", "America/Bahia", "America/Belem", "America/Cayenne", "America/Fortaleza", "America/Maceio", "America/Miquelon", "America/Montevideo", "America/Nuuk", "America/Paramaribo", "America/Recife", "America/Santarem", "America/Sao_Paulo", "Antarctica/Rothera", "Atlantic/Stanley", "America/St_Johns", "America/Asuncion", "America/Barbados", "America/Blanc-Sablon", "America/Boa_Vista", "America/Campo_Grande", "America/Caracas", "America/Cuiaba", "America/Curacao", "America/Glace_Bay", "America/Goose_Bay", "America/Guyana", "America/Halifax", "America/La_Paz", "America/Manaus", "America/Martinique", "America/Moncton", "America/Port_of_Spain", "America/Porto_Velho", "America/Puerto_Rico", "America/Santiago", "America/Santo_Domingo", "America/Thule", "Atlantic/Bermuda", "America/Atikokan", "America/Bogota", "America/Cancun", "America/Detroit", "America/Eirunepe", "America/Grand_Turk", "America/Guayaquil", "America/Havana", "America/Indiana/Indianapolis", "America/Indiana/Marengo", "America/Indiana/Petersburg", "America/Indiana/Vevay", "America/Indiana/Vincennes", "America/Indiana/Winamac", "America/Iqaluit", "America/Jamaica", "America/Kentucky/Louisville", "America/Kentucky/Monticello", "America/Lima", "America/Nassau", "America/New_York", "America/Nipigon", "America/Panama", "America/Pangnirtung", "America/Port-au-Prince", "America/Rio_Branco", "America/Thunder_Bay", "America/Toronto", "America/Bahia_Banderas", "America/Belize", "America/Chicago", "America/Costa_Rica", "America/El_Salvador", "America/Guatemala", "America/Indiana/Knox", "America/Indiana/Tell_City", "America/Managua", "America/Matamoros", "America/Menominee", "America/Merida", "America/Mexico_City", "America/Monterrey", "America/North_Dakota/Beulah", "America/North_Dakota/Center", "America/North_Dakota/New_Salem", "America/Rainy_River", "America/Rankin_Inlet", "America/Regina", "America/Resolute", "America/Swift_Current", "America/Tegucigalpa", "America/Winnipeg", "Pacific/Easter", "Pacific/Galapagos", "America/Boise", "America/Cambridge_Bay", "America/Chihuahua", "America/Creston", "America/Dawson", "America/Dawson_Creek", "America/Denver", "America/Edmonton", "America/Fort_Nelson", "America/Hermosillo", "America/Inuvik", "America/Mazatlan", "America/Ojinaga", "America/Phoenix", "America/Whitehorse", "America/Yellowknife", "America/Los_Angeles", "America/Tijuana", "America/Vancouver", "Pacific/Pitcairn", "America/Anchorage", "America/Juneau", "America/Metlakatla", "America/Nome", "America/Sitka", "America/Yakutat", "Pacific/Gambier", "Pacific/Marquesas", "America/Adak", "Pacific/Honolulu", "Pacific/Rarotonga", "Pacific/Tahiti", "Pacific/Niue", "Pacific/Pago_Pago", "Africa/Abidjan", "Africa/Accra", "Africa/Bissau", "Africa/Monrovia", "Africa/Sao_Tome", "America/Danmarkshavn", "Atlantic/Canary", "Atlantic/Faroe", "Atlantic/Madeira", "Atlantic/Reykjavik", "Etc/GMT", "Etc/UTC", "Europe/Lisbon", "Europe/London", "Factory", "Africa/Algiers", "Africa/Casablanca", "Africa/Ceuta", "Africa/El_Aaiun", "Africa/Lagos", "Africa/Ndjamena", "Africa/Tunis", "Europe/Amsterdam", "Europe/Andorra", "Europe/Belgrade", "Europe/Brussels", "Europe/Budapest", "Europe/Copenhagen", "Europe/Dublin", "Europe/Gibraltar", "Europe/Luxembourg", "Europe/Madrid", "Europe/Malta", "Europe/Monaco", "Europe/Oslo", "Europe/Paris", "Europe/Prague", "Europe/Rome", "Europe/Stockholm", "Europe/Tirane", "Europe/Vienna", "Europe/Warsaw", "Europe/Zurich", "Antarctica/DumontDUrville", "Antarctica/Macquarie", "Asia/Ust-Nera", "Asia/Vladivostok", "Australia/Brisbane", "Australia/Currie", "Australia/Hobart", "Australia/Lindeman", "Australia/Melbourne", "Australia/Sydney", "Pacific/Chuuk", "Pacific/Guam", "Pacific/Port_Moresby", "Antarctica/Casey", "Asia/Magadan", "Asia/Sakhalin", "Asia/Srednekolymsk", "Pacific/Bougainville", "Pacific/Efate", "Pacific/Guadalcanal", "Pacific/Kosrae", "Pacific/Norfolk", "Pacific/Noumea", "Pacific/Pohnpei", "Asia/Anadyr", "Asia/Kamchatka", "Pacific/Auckland", "Pacific/Fiji", "Pacific/Funafuti", "Pacific/Kwajalein", "Pacific/Majuro", "Pacific/Nauru", "Pacific/Tarawa", "Pacific/Wake", "Pacific/Wallis", "Pacific/Chatham", "Pacific/Apia", "Pacific/Enderbury", "Pacific/Fakaofo", "Pacific/Tongatapu", "Pacific/Kiritimati", "Africa/Cairo", "Africa/Johannesburg", "Africa/Khartoum", "Africa/Maputo", "Africa/Tripoli", "Africa/Windhoek", "Asia/Amman", "Asia/Beirut", "Asia/Damascus", "Asia/Famagusta", "Asia/Gaza", "Asia/Hebron", "Asia/Jerusalem", "Asia/Nicosia", "Europe/Athens", "Europe/Bucharest", "Europe/Chisinau", "Europe/Helsinki", "Europe/Kaliningrad", "Europe/Kiev", "Europe/Riga", "Europe/Sofia", "Europe/Tallinn", "Europe/Uzhgorod", "Europe/Vilnius", "Europe/Zaporozhye", "Africa/Juba", "Africa/Nairobi", "Antarctica/Syowa", "Asia/Baghdad", "Asia/Qatar", "Asia/Riyadh", "Europe/Istanbul", "Europe/Kirov", "Europe/Minsk", "Europe/Moscow", "Asia/Tehran", "Asia/Baku", "Asia/Dubai", "Asia/Tbilisi", "Asia/Yerevan", "Europe/Astrakhan", "Europe/Samara", "Europe/Saratov", "Europe/Ulyanovsk", "Europe/Volgograd", "Indian/Mahe", "Indian/Mauritius", "Indian/Reunion", "Asia/Kabul", "Antarctica/Mawson", "Asia/Aqtau", "Asia/Aqtobe", "Asia/Ashgabat", "Asia/Atyrau", "Asia/Dushanbe", "Asia/Karachi", "Asia/Oral", "Asia/Qyzylorda", "Asia/Samarkand", "Asia/Tashkent", "Asia/Yekaterinburg", "Indian/Kerguelen", "Indian/Maldives", "Asia/Colombo", "Asia/Kathmandu", "Antarctica/Vostok", "Asia/Almaty", "Asia/Bishkek", "Asia/Dhaka", "Asia/Omsk", "Asia/Qostanay", "Asia/Thimphu", "Indian/Chagos", "Asia/Yangon", "Indian/Cocos", "Antarctica/Davis", "Asia/Bangkok", "Asia/Barnaul", "Asia/Ho_Chi_Minh", "Asia/Hovd", "Asia/Jakarta", "Asia/Krasnoyarsk", "Asia/Novokuznetsk", "Asia/Novosibirsk", "Asia/Pontianak", "Asia/Tomsk", "Indian/Christmas", "Asia/Brunei", "Asia/Choibalsan", "Asia/Hong_Kong", "Asia/Irkutsk", "Asia/Kuala_Lumpur", "Asia/Kuching", "Asia/Macau", "Asia/Makassar", "Asia/Manila", "Asia/Shanghai", "Asia/Singapore", "Asia/Taipei", "Asia/Ulaanbaatar", "Australia/Perth", "Australia/Eucla", "Asia/Chita", "Asia/Dili", "Asia/Jayapura", "Asia/Khandyga", "Asia/Pyongyang", "Asia/Seoul", "Asia/Tokyo", "Asia/Yakutsk", "Pacific/Palau", "Australia/Adelaide", "Australia/Broken_Hill", "Australia/Darwin"];
2
+ /**
3
+ * Locale codes
4
+ *
5
+ * Pattern: [Language Code]-[Country Code]
6
+ * */
7
+ export type TimezoneCode = typeof literals[number];
8
+ export declare const TimezoneCodeItems: ReadonlyArray<TimezoneCode>;
9
+ export {};