@voiceflow/common 7.9.0 → 7.12.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 (189) hide show
  1. package/build/{constants → common/constants}/environment.d.ts +0 -0
  2. package/build/{constants → common/constants}/environment.js +0 -0
  3. package/build/common/constants/environment.js.map +1 -0
  4. package/build/{constants → common/constants}/index.d.ts +0 -0
  5. package/build/{constants → common/constants}/index.js +0 -0
  6. package/build/common/constants/index.js.map +1 -0
  7. package/build/{constants → common/constants}/intent.d.ts +0 -0
  8. package/build/{constants → common/constants}/intent.js +0 -0
  9. package/build/{constants → common/constants}/intent.js.map +1 -1
  10. package/build/{constants → common/constants}/regexp.d.ts +0 -0
  11. package/build/{constants → common/constants}/regexp.js +0 -0
  12. package/build/common/constants/regexp.js.map +1 -0
  13. package/build/{constants → common/constants}/slot.d.ts +0 -0
  14. package/build/{constants → common/constants}/slot.js +0 -0
  15. package/build/common/constants/slot.js.map +1 -0
  16. package/build/{crypto → common/crypto}/base64.d.ts +0 -0
  17. package/build/{crypto → common/crypto}/base64.js +0 -0
  18. package/build/common/crypto/base64.js.map +1 -0
  19. package/build/{crypto → common/crypto}/index.d.ts +0 -0
  20. package/build/{crypto → common/crypto}/index.js +0 -0
  21. package/build/common/crypto/index.js.map +1 -0
  22. package/build/{crypto → common/crypto}/synchronous.d.ts +0 -0
  23. package/build/{crypto → common/crypto}/synchronous.js +0 -0
  24. package/build/common/crypto/synchronous.js.map +1 -0
  25. package/build/{index.d.ts → common/index.d.ts} +0 -0
  26. package/build/{index.js → common/index.js} +0 -0
  27. package/build/common/index.js.map +1 -0
  28. package/build/{types.d.ts → common/types.d.ts} +0 -0
  29. package/build/{types.js → common/types.js} +0 -0
  30. package/build/common/types.js.map +1 -0
  31. package/build/{utils → common/utils}/array.d.ts +1 -0
  32. package/build/{utils → common/utils}/array.js +13 -1
  33. package/build/common/utils/array.js.map +1 -0
  34. package/build/{utils → common/utils}/emails.d.ts +0 -0
  35. package/build/{utils → common/utils}/emails.js +0 -0
  36. package/build/common/utils/emails.js.map +1 -0
  37. package/build/{utils → common/utils}/functional.d.ts +4 -4
  38. package/build/common/utils/functional.js +64 -0
  39. package/build/common/utils/functional.js.map +1 -0
  40. package/build/{utils → common/utils}/generate.d.ts +0 -0
  41. package/build/{utils → common/utils}/generate.js +0 -0
  42. package/build/common/utils/generate.js.map +1 -0
  43. package/build/{utils → common/utils}/id.d.ts +0 -0
  44. package/build/{utils → common/utils}/id.js +0 -0
  45. package/build/common/utils/id.js.map +1 -0
  46. package/build/{utils → common/utils}/index.d.ts +0 -0
  47. package/build/{utils → common/utils}/index.js +0 -0
  48. package/build/common/utils/index.js.map +1 -0
  49. package/build/{utils → common/utils}/intent.d.ts +0 -0
  50. package/build/{utils → common/utils}/intent.js +0 -0
  51. package/build/common/utils/intent.js.map +1 -0
  52. package/build/{utils → common/utils}/mathjs.d.ts +0 -0
  53. package/build/{utils → common/utils}/mathjs.js +0 -0
  54. package/build/common/utils/mathjs.js.map +1 -0
  55. package/build/{utils → common/utils}/normalized.d.ts +1 -0
  56. package/build/{utils → common/utils}/normalized.js +3 -1
  57. package/build/common/utils/normalized.js.map +1 -0
  58. package/build/{utils → common/utils}/number.d.ts +0 -0
  59. package/build/{utils → common/utils}/number.js +0 -0
  60. package/build/common/utils/number.js.map +1 -0
  61. package/build/{utils → common/utils}/object.d.ts +0 -0
  62. package/build/{utils → common/utils}/object.js +0 -0
  63. package/build/common/utils/object.js.map +1 -0
  64. package/build/{utils → common/utils}/promise.d.ts +0 -0
  65. package/build/{utils → common/utils}/promise.js +0 -0
  66. package/build/common/utils/promise.js.map +1 -0
  67. package/build/{utils → common/utils}/protocol.d.ts +0 -0
  68. package/build/{utils → common/utils}/protocol.js +0 -0
  69. package/build/common/utils/protocol.js.map +1 -0
  70. package/build/{utils → common/utils}/string.d.ts +0 -0
  71. package/build/{utils → common/utils}/string.js +0 -0
  72. package/build/common/utils/string.js.map +1 -0
  73. package/build/{utils → common/utils}/time.d.ts +0 -0
  74. package/build/{utils → common/utils}/time.js +0 -0
  75. package/build/common/utils/time.js.map +1 -0
  76. package/build/{utils → common/utils}/timezones.d.ts +0 -0
  77. package/build/{utils → common/utils}/timezones.js +0 -0
  78. package/build/common/utils/timezones.js.map +1 -0
  79. package/build/{utils → common/utils}/variables.d.ts +0 -0
  80. package/build/{utils → common/utils}/variables.js +0 -0
  81. package/build/common/utils/variables.js.map +1 -0
  82. package/build/esm/constants/environment.d.ts +9 -0
  83. package/build/esm/constants/environment.js +11 -0
  84. package/build/esm/constants/environment.js.map +1 -0
  85. package/build/esm/constants/index.d.ts +4 -0
  86. package/build/esm/constants/index.js +5 -0
  87. package/build/esm/constants/index.js.map +1 -0
  88. package/build/esm/constants/intent.d.ts +4 -0
  89. package/build/esm/constants/intent.js +2 -0
  90. package/build/esm/constants/intent.js.map +1 -0
  91. package/build/esm/constants/regexp.d.ts +10 -0
  92. package/build/esm/constants/regexp.js +16 -0
  93. package/build/esm/constants/regexp.js.map +1 -0
  94. package/build/esm/constants/slot.d.ts +9 -0
  95. package/build/esm/constants/slot.js +7 -0
  96. package/build/esm/constants/slot.js.map +1 -0
  97. package/build/esm/crypto/base64.d.ts +7 -0
  98. package/build/esm/crypto/base64.js +18 -0
  99. package/build/esm/crypto/base64.js.map +1 -0
  100. package/build/esm/crypto/index.d.ts +2 -0
  101. package/build/esm/crypto/index.js +3 -0
  102. package/build/esm/crypto/index.js.map +1 -0
  103. package/build/esm/crypto/synchronous.d.ts +16 -0
  104. package/build/esm/crypto/synchronous.js +39 -0
  105. package/build/esm/crypto/synchronous.js.map +1 -0
  106. package/build/esm/index.d.ts +5 -0
  107. package/build/esm/index.js +7 -0
  108. package/build/esm/index.js.map +1 -0
  109. package/build/esm/types.d.ts +29 -0
  110. package/build/esm/types.js +2 -0
  111. package/build/esm/types.js.map +1 -0
  112. package/build/esm/utils/array.d.ts +26 -0
  113. package/build/esm/utils/array.js +91 -0
  114. package/build/esm/utils/array.js.map +1 -0
  115. package/build/esm/utils/emails.d.ts +2 -0
  116. package/build/esm/utils/emails.js +4 -0
  117. package/build/esm/utils/emails.js.map +1 -0
  118. package/build/esm/utils/functional.d.ts +23 -0
  119. package/build/esm/utils/functional.js +52 -0
  120. package/build/esm/utils/functional.js.map +1 -0
  121. package/build/esm/utils/generate.d.ts +12 -0
  122. package/build/esm/utils/generate.js +31 -0
  123. package/build/esm/utils/generate.js.map +1 -0
  124. package/build/esm/utils/id.d.ts +3 -0
  125. package/build/esm/utils/id.js +5 -0
  126. package/build/esm/utils/id.js.map +1 -0
  127. package/build/esm/utils/index.d.ts +18 -0
  128. package/build/esm/utils/index.js +20 -0
  129. package/build/esm/utils/index.js.map +1 -0
  130. package/build/esm/utils/intent.d.ts +17 -0
  131. package/build/esm/utils/intent.js +34 -0
  132. package/build/esm/utils/intent.js.map +1 -0
  133. package/build/esm/utils/mathjs.d.ts +1 -0
  134. package/build/esm/utils/mathjs.js +59 -0
  135. package/build/esm/utils/mathjs.js.map +1 -0
  136. package/build/esm/utils/normalized.d.ts +46 -0
  137. package/build/esm/utils/normalized.js +71 -0
  138. package/build/esm/utils/normalized.js.map +1 -0
  139. package/build/esm/utils/number.d.ts +4 -0
  140. package/build/esm/utils/number.js +6 -0
  141. package/build/esm/utils/number.js.map +1 -0
  142. package/build/esm/utils/object.d.ts +8 -0
  143. package/build/esm/utils/object.js +77 -0
  144. package/build/esm/utils/object.js.map +1 -0
  145. package/build/esm/utils/promise.d.ts +8 -0
  146. package/build/esm/utils/promise.js +16 -0
  147. package/build/esm/utils/promise.js.map +1 -0
  148. package/build/esm/utils/protocol.d.ts +11 -0
  149. package/build/esm/utils/protocol.js +17 -0
  150. package/build/esm/utils/protocol.js.map +1 -0
  151. package/build/esm/utils/string.d.ts +6 -0
  152. package/build/esm/utils/string.js +11 -0
  153. package/build/esm/utils/string.js.map +1 -0
  154. package/build/esm/utils/time.d.ts +3 -0
  155. package/build/esm/utils/time.js +64 -0
  156. package/build/esm/utils/time.js.map +1 -0
  157. package/build/esm/utils/timezones.d.ts +1 -0
  158. package/build/esm/utils/timezones.js +2030 -0
  159. package/build/{utils → esm/utils}/timezones.js.map +1 -1
  160. package/build/esm/utils/variables.d.ts +7 -0
  161. package/build/esm/utils/variables.js +57 -0
  162. package/build/esm/utils/variables.js.map +1 -0
  163. package/package.json +8 -6
  164. package/build/constants/environment.js.map +0 -1
  165. package/build/constants/index.js.map +0 -1
  166. package/build/constants/regexp.js.map +0 -1
  167. package/build/constants/slot.js.map +0 -1
  168. package/build/crypto/base64.js.map +0 -1
  169. package/build/crypto/index.js.map +0 -1
  170. package/build/crypto/synchronous.js.map +0 -1
  171. package/build/index.js.map +0 -1
  172. package/build/types.js.map +0 -1
  173. package/build/utils/array.js.map +0 -1
  174. package/build/utils/emails.js.map +0 -1
  175. package/build/utils/functional.js +0 -32
  176. package/build/utils/functional.js.map +0 -1
  177. package/build/utils/generate.js.map +0 -1
  178. package/build/utils/id.js.map +0 -1
  179. package/build/utils/index.js.map +0 -1
  180. package/build/utils/intent.js.map +0 -1
  181. package/build/utils/mathjs.js.map +0 -1
  182. package/build/utils/normalized.js.map +0 -1
  183. package/build/utils/number.js.map +0 -1
  184. package/build/utils/object.js.map +0 -1
  185. package/build/utils/promise.js.map +0 -1
  186. package/build/utils/protocol.js.map +0 -1
  187. package/build/utils/string.js.map +0 -1
  188. package/build/utils/time.js.map +0 -1
  189. package/build/utils/variables.js.map +0 -1
@@ -0,0 +1,59 @@
1
+ const getRegex = (variable) => new RegExp(variable, 'gi');
2
+ const EQUAL_REGEX = /(equal\()(.*)(,\s?)(.*)(\))/gi;
3
+ const OR_REGEX = /(or\()(.*)(,\s?)(.*)(\))/gi;
4
+ const AND_REGEX = /(and\()(.*)(,\s?)(.*)(\))/gi;
5
+ const NOT_REGEX = /(not\()(.*)(\))/gi;
6
+ const XOR_REGEX = /(xor\()(.*)(,\s?)(.*)(\))/gi;
7
+ const ADD_REGEX = /(add\()(.*)(,\s?)(.*)(\))/gi;
8
+ const SUBTRACT_REGEX = /(subtract\()(.*)(,\s?)(.*)(\))/gi;
9
+ const MULTIPLY_REGEX = /(multiply\()(.*)(,\s?)(.*)(\))/gi;
10
+ const DIVIDE_REGEX = /(divide\()(.*)(,\s?)(.*)(\))/gi;
11
+ const POW_REGEX = /(pow\()(.*)(,\s?)(.*)(\))/gi;
12
+ const COMPARE_REGEX = /(compare\()(.*)(,\s?)(.*)(\))/gi;
13
+ const EVAL_REGEX = /(evaluate\()(.*)(\))/gi;
14
+ const RANDOM_INT_REGEX = /(randomint\()(\d*)(,?\s)?(\d*)?(\))/gi;
15
+ const RANDOM_REGEX = /(random\()(\d*)(,?\s)?(\d*)?(\))/gi;
16
+ const getMinMax = (v1, v2) => {
17
+ let min = 0;
18
+ let max;
19
+ if (v2) {
20
+ min = v1;
21
+ max = v2;
22
+ }
23
+ else {
24
+ max = v1;
25
+ }
26
+ return { min, max };
27
+ };
28
+ export const parser = (exp) => {
29
+ let sanitized = exp;
30
+ sanitized = sanitized.replace(EQUAL_REGEX, '($2 == $4)');
31
+ sanitized = sanitized.replace(OR_REGEX, '($2 || $4)');
32
+ sanitized = sanitized.replace(AND_REGEX, '($2 && $4)');
33
+ sanitized = sanitized.replace(NOT_REGEX, '!$2');
34
+ sanitized = sanitized.replace(getRegex('sqrt'), 'Math.sqrt');
35
+ sanitized = sanitized.replace(getRegex('sign'), 'Math.sign');
36
+ sanitized = sanitized.replace(getRegex('isNaN'), 'Number.isNaN');
37
+ // Math.floor/round will ignore the second argument(if exist) when compiling
38
+ sanitized = sanitized.replace(getRegex('floor'), 'Math.floor');
39
+ sanitized = sanitized.replace(getRegex('round'), 'Math.round');
40
+ sanitized = sanitized.replace(getRegex('integer'), 'Number.isInteger');
41
+ sanitized = sanitized.replace(XOR_REGEX, '((!$2 && !!$4) || (!!$2 && !$4))');
42
+ sanitized = sanitized.replace(ADD_REGEX, '($2 + $4)');
43
+ sanitized = sanitized.replace(SUBTRACT_REGEX, '($2 - $4)');
44
+ sanitized = sanitized.replace(MULTIPLY_REGEX, '($2 * $4)');
45
+ sanitized = sanitized.replace(DIVIDE_REGEX, '($2 / $4)');
46
+ sanitized = sanitized.replace(POW_REGEX, 'Math.pow($2$3$4)');
47
+ sanitized = sanitized.replace(COMPARE_REGEX, '(($2 == $4) ? 0 : ($2 > $4) ? 1 : -1)');
48
+ sanitized = sanitized.replace(RANDOM_REGEX, (_match, _g1, g2, _g3, g4) => {
49
+ const { min, max } = getMinMax(g2, g4);
50
+ return min || max ? `Math.random() * (${max} - ${min}) + ${min}` : 'Math.random()';
51
+ });
52
+ sanitized = sanitized.replace(RANDOM_INT_REGEX, (_match, _g1, g2, _g3, g4) => {
53
+ const { min, max } = getMinMax(g2, g4);
54
+ return min || max ? `Math.floor(Math.random() * (${max} - ${min} + 1)) + ${min}` : `Math.floor(Math.random())`;
55
+ });
56
+ sanitized = sanitized.replace(EVAL_REGEX, 'eval($2)');
57
+ return sanitized;
58
+ };
59
+ //# sourceMappingURL=mathjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mathjs.js","sourceRoot":"","sources":["../../../src/utils/mathjs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import { Normalized } from "../types";
2
+ export interface ObjectWithId {
3
+ id: number | string;
4
+ }
5
+ export interface RemoveNormalizedByKey {
6
+ <T>(normalized: Normalized<T>, targetKey: string): Normalized<T>;
7
+ <T extends Normalized<any>>(normalized: T, targetKey: string): T;
8
+ }
9
+ export interface GetNormalizedByKey {
10
+ <T>({ byKey }: Normalized<T>, key: string): T;
11
+ <T extends Normalized<any>>({ byKey }: T, key: string): T extends Normalized<infer R> ? R : never;
12
+ }
13
+ export interface SafeGetNormalizedByKey {
14
+ <T>({ byKey }: Normalized<T>, key: string): T | null;
15
+ <T extends Normalized<any>>({ byKey }: T, key: string): T extends Normalized<infer R> ? R | null : never;
16
+ }
17
+ export declare const createEmptyNormalized: () => Normalized<any>;
18
+ export declare const EMPTY: Normalized<any>;
19
+ export declare type GetKey<T> = (obj: T, index?: number, array?: T[]) => string;
20
+ export declare type GetKeyFromMap<T> = (obj: T, index: number, array: T[]) => string;
21
+ export declare const defaultGetKey: <T extends ObjectWithId>(obj: T) => string;
22
+ export declare const safeAdd: <T>(items: T[], obj: T) => T[];
23
+ export declare const safeAddToStart: <T>(items: T[], obj: T) => T[];
24
+ export declare const getByIndex: <T>(items: T[]) => (_: string, index: number) => T;
25
+ export declare const getByKey: <T>(lookup: Record<string, T>) => (key: string) => T;
26
+ export declare const buildLookup: <T>(allKeys: string[], getValue: (key: string, index: number) => T) => Record<string, T>;
27
+ export declare const normalize: <T extends unknown>(items: T[], getKey?: GetKeyFromMap<T> | undefined) => Normalized<T>;
28
+ export declare const denormalize: <T>({ allKeys, byKey }: Normalized<T>) => T[];
29
+ export declare const getNormalizedByKey: GetNormalizedByKey;
30
+ export declare const safeGetNormalizedByKey: SafeGetNormalizedByKey;
31
+ export declare const getAllNormalizedByKeys: <T>({ byKey }: Normalized<T>, keys: string[]) => T[];
32
+ export declare const safeGetAllNormalizedByKeys: <T>({ allKeys, byKey }: Normalized<T>, keys: string[]) => T[];
33
+ export declare const updateNormalizedByKey: <T, N extends Normalized<T>>({ byKey, ...rest }: N, key: string, obj: T) => N;
34
+ export declare const patchNormalizedByKey: <T, N extends Normalized<T>>(normalized: N, key: string, obj: Partial<T>) => N;
35
+ export declare const addNormalizedByKey: <T>(normalized: Normalized<T>, key: string, obj: T) => {
36
+ allKeys: string[];
37
+ byKey: Record<string, T>;
38
+ };
39
+ export declare const addToStartNormalizedByKey: <T>(normalized: Normalized<T>, key: string, obj: T) => {
40
+ allKeys: string[];
41
+ byKey: Record<string, T>;
42
+ };
43
+ export declare const addAllNormalizedByKeys: <T extends unknown, K extends GetKey<T> = (obj: T) => string>(normalized: Normalized<T>, objs: T[], getKey?: K | undefined) => Normalized<T>;
44
+ export declare const removeNormalizedByKey: RemoveNormalizedByKey;
45
+ export declare const reorderKeys: <T>(newKeyArray: string[], byKey: Record<string, T>) => Normalized<T>;
46
+ export declare const removeAllNormalizedByKeys: <T>({ allKeys, byKey }: Normalized<T>, targetKeys: string[]) => Normalized<T>;
@@ -0,0 +1,71 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import { withoutValue } from './array';
13
+ import { stringify } from './functional';
14
+ import { hasProperty } from './object';
15
+ export const createEmptyNormalized = () => ({ byKey: {}, allKeys: [] });
16
+ export const EMPTY = createEmptyNormalized();
17
+ export const defaultGetKey = (obj) => stringify(obj.id);
18
+ export const safeAdd = (items, obj) => (items.includes(obj) ? items : [...items, obj]);
19
+ export const safeAddToStart = (items, obj) => (items.includes(obj) ? items : [obj, ...items]);
20
+ export const getByIndex = (items) => (_, index) => items[index];
21
+ export const getByKey = (lookup) => (key) => lookup[key];
22
+ export const buildLookup = (allKeys, getValue) => allKeys.reduce((acc, key, index) => {
23
+ acc[key] = getValue(key, index);
24
+ return acc;
25
+ }, {});
26
+ export const normalize = (items, getKey) => {
27
+ const allKeys = items.map(getKey !== null && getKey !== void 0 ? getKey : defaultGetKey);
28
+ return {
29
+ byKey: buildLookup(allKeys, getByIndex(items)),
30
+ allKeys,
31
+ };
32
+ };
33
+ export const denormalize = ({ allKeys, byKey }) => allKeys.map((key) => byKey[key]);
34
+ export const getNormalizedByKey = ({ byKey }, key) => byKey[key];
35
+ export const safeGetNormalizedByKey = ({ byKey }, key) => hasProperty(byKey, key) ? byKey[key] : null;
36
+ export const getAllNormalizedByKeys = ({ byKey }, keys) => keys.map((key) => byKey[key]);
37
+ export const safeGetAllNormalizedByKeys = ({ allKeys, byKey }, keys) => allKeys.filter((key) => keys.includes(key)).map((key) => byKey[key]);
38
+ export const updateNormalizedByKey = (_a, key, obj) => {
39
+ var { byKey } = _a, rest = __rest(_a, ["byKey"]);
40
+ return (Object.assign(Object.assign({}, rest), { byKey: Object.assign(Object.assign({}, byKey), { [key]: obj }) }));
41
+ };
42
+ export const patchNormalizedByKey = (normalized, key, obj) => updateNormalizedByKey(normalized, key, Object.assign(Object.assign({}, getNormalizedByKey(normalized, key)), obj));
43
+ export const addNormalizedByKey = (normalized, key, obj) => (Object.assign(Object.assign({}, updateNormalizedByKey(normalized, key, obj)), { allKeys: safeAdd(normalized.allKeys, key) }));
44
+ export const addToStartNormalizedByKey = (normalized, key, obj) => (Object.assign(Object.assign({}, updateNormalizedByKey(normalized, key, obj)), { allKeys: safeAddToStart(normalized.allKeys, key) }));
45
+ export const addAllNormalizedByKeys = (normalized, objs, getKey) => {
46
+ const keyGetter = getKey !== null && getKey !== void 0 ? getKey : defaultGetKey;
47
+ const keys = objs.map(keyGetter);
48
+ return {
49
+ byKey: Object.assign(Object.assign({}, normalized.byKey), objs.reduce((acc, obj) => Object.assign(acc, { [keyGetter(obj)]: obj }), {})),
50
+ allKeys: keys.reduce(safeAdd, normalized.allKeys),
51
+ };
52
+ };
53
+ export const removeNormalizedByKey = ({ allKeys, byKey }, targetKey) => {
54
+ const filteredKeys = withoutValue(allKeys, targetKey);
55
+ return {
56
+ allKeys: filteredKeys,
57
+ byKey: buildLookup(filteredKeys, getByKey(byKey)),
58
+ };
59
+ };
60
+ export const reorderKeys = (newKeyArray, byKey) => ({
61
+ allKeys: newKeyArray,
62
+ byKey,
63
+ });
64
+ export const removeAllNormalizedByKeys = ({ allKeys, byKey }, targetKeys) => {
65
+ const filteredKeys = allKeys.filter((key) => !targetKeys.includes(key));
66
+ return {
67
+ allKeys: filteredKeys,
68
+ byKey: buildLookup(filteredKeys, getByKey(byKey)),
69
+ };
70
+ };
71
+ //# sourceMappingURL=normalized.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalized.js","sourceRoot":"","sources":["../../../src/utils/normalized.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const NON_ALPHANUMERIC_REGEXP: RegExp;
2
+ export declare const convertToWord: (value: number) => string;
3
+ export declare const isInRange: (target: number, min: number, max: number) => boolean;
4
+ export declare const clamp: (value: number, min: number, max: number) => number;
@@ -0,0 +1,6 @@
1
+ import numberToWords from 'number-to-words/src';
2
+ export const NON_ALPHANUMERIC_REGEXP = /\W/g;
3
+ export const convertToWord = (value) => numberToWords.toWords(value).replace(NON_ALPHANUMERIC_REGEXP, ' ');
4
+ export const isInRange = (target, min, max) => target >= min && target <= max;
5
+ export const clamp = (value, min, max) => Math.max(Math.min(value, max), min);
6
+ //# sourceMappingURL=number.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number.js","sourceRoot":"","sources":["../../../src/utils/number.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAEhD,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAE7C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;AAE3H,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAc,EAAE,GAAW,EAAE,GAAW,EAAW,EAAE,CAAC,MAAM,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,CAAC;AAE/G,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW,EAAU,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare const getKeys: <T>(obj: T) => (keyof T)[];
2
+ export declare const pick: <T, K extends keyof T>(obj: T, keys: K[]) => Pick<T, K>;
3
+ export declare const hasProperty: <T, K extends keyof T>(obj: T, key: string | K) => obj is T & Record<K, unknown>;
4
+ export declare const getIn: <T, K extends keyof T>(rawObj: T, key: string | string[] | K, def?: any, index?: number) => rawObj is T & Record<K, unknown>;
5
+ export declare const setIn: (obj: Record<string, unknown>, path: any, value: any) => any;
6
+ export declare const filterEntries: (obj: Record<string, any>, predicate: any) => any;
7
+ export declare const getDiff: (object: Record<string, any>, base: Record<string, any>) => unknown;
8
+ export declare const getTopLevelDiff: (object: any, base: any) => unknown;
@@ -0,0 +1,77 @@
1
+ import _cloneDeep from 'lodash/cloneDeep';
2
+ import _isObject from 'lodash/isObject';
3
+ import _toPath from 'lodash/toPath';
4
+ import _transform from 'lodash/transform';
5
+ export const getKeys = (obj) => Object.keys(obj);
6
+ export const pick = (obj, keys) => keys.reduce((acc, key) => Object.assign(acc, { [key]: obj[key] }), {});
7
+ export const hasProperty = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key);
8
+ export const getIn = (rawObj, key, def, index = 0) => {
9
+ const path = _toPath(key);
10
+ let obj = rawObj;
11
+ let i = index;
12
+ while (obj && i < path.length) {
13
+ obj = obj[path[i++]];
14
+ }
15
+ return obj === undefined ? def : obj;
16
+ };
17
+ export const setIn = (obj, path, value) => {
18
+ const res = {};
19
+ const pathArray = _toPath(path);
20
+ let resVal = res;
21
+ let i = 0;
22
+ for (; i < pathArray.length - 1; i++) {
23
+ const currentPath = pathArray[i];
24
+ const currentObj = getIn(obj, pathArray.slice(0, i + 1));
25
+ if (resVal[currentPath]) {
26
+ resVal = resVal[currentPath];
27
+ }
28
+ else if (currentObj) {
29
+ resVal[currentPath] = _cloneDeep(currentObj);
30
+ resVal = resVal[currentPath];
31
+ }
32
+ else {
33
+ const nextPath = pathArray[i + 1];
34
+ resVal[currentPath] = +nextPath >= 0 ? [] : {};
35
+ resVal = resVal[currentPath];
36
+ }
37
+ }
38
+ if ((i === 0 ? obj : resVal)[pathArray[i]] === value) {
39
+ return obj;
40
+ }
41
+ if (value === undefined) {
42
+ delete resVal[pathArray[i]];
43
+ }
44
+ else {
45
+ resVal[pathArray[i]] = value;
46
+ }
47
+ const result = Object.assign(Object.assign({}, obj), res);
48
+ if (i === 0 && value === undefined) {
49
+ delete result[pathArray[i]];
50
+ }
51
+ return result;
52
+ };
53
+ export const filterEntries = (obj, predicate) => Object.entries(obj).reduce((acc, [key, value]) => {
54
+ if (predicate(key, value)) {
55
+ acc[key] = value;
56
+ }
57
+ return acc;
58
+ }, {});
59
+ export const getDiff = (object, base) => {
60
+ const changes = (object, base) => _transform(object, (result, value, key) => {
61
+ if (value !== base[key]) {
62
+ // eslint-disable-next-line no-param-reassign
63
+ result[key] = _isObject(value) && _isObject(base[key]) ? changes(value, base[key]) : value;
64
+ }
65
+ });
66
+ return changes(object, base);
67
+ };
68
+ export const getTopLevelDiff = (object, base) => {
69
+ const changes = (object, base) => _transform(object, (result, value, key) => {
70
+ if (value !== base[key]) {
71
+ // eslint-disable-next-line no-param-reassign
72
+ result[key] = value;
73
+ }
74
+ });
75
+ return changes(object, base);
76
+ };
77
+ //# sourceMappingURL=object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.js","sourceRoot":"","sources":["../../../src/utils/object.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare const delay: <T extends unknown = boolean>(timeout: number, value?: T) => Promise<T>;
2
+ export declare const rejectIn: (timeout: number) => Promise<never>;
3
+ interface ControlledPromise<T> extends Promise<T> {
4
+ reject: (reason?: any) => void;
5
+ resolve: (value: T) => void;
6
+ }
7
+ export declare const createControlledPromise: <T>() => ControlledPromise<T>;
8
+ export {};
@@ -0,0 +1,16 @@
1
+ export const delay = (timeout, value = true) => new Promise((resolve) => setTimeout(resolve.bind(null, value), timeout));
2
+ export const rejectIn = (timeout) =>
3
+ // eslint-disable-next-line promise/param-names
4
+ new Promise((_resolve, reject) => setTimeout(() => reject(new Error('Rejected by timeout!')), timeout));
5
+ export const createControlledPromise = () => {
6
+ let res;
7
+ let rej;
8
+ const promise = new Promise((resolve, reject) => {
9
+ res = resolve;
10
+ rej = reject;
11
+ });
12
+ promise.reject = rej;
13
+ promise.resolve = res;
14
+ return promise;
15
+ };
16
+ //# sourceMappingURL=promise.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promise.js","sourceRoot":"","sources":["../../../src/utils/promise.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG,CAA0B,OAAe,EAAE,QAAW,IAAS,EAAc,EAAE,CAClG,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAE9E,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,OAAe,EAAkB,EAAE;AAC1D,+CAA+C;AAC/C,IAAI,OAAO,CAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAOjH,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAA4B,EAAE;IACnE,IAAI,GAAuB,CAAC;IAC5B,IAAI,GAA2B,CAAC;IAEhC,MAAM,OAAO,GAAyB,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACvE,GAAG,GAAG,OAAO,CAAC;QACd,GAAG,GAAG,MAAM,CAAC;IACf,CAAC,CAAyB,CAAC;IAE3B,OAAO,CAAC,MAAM,GAAG,GAAI,CAAC;IACtB,OAAO,CAAC,OAAO,GAAG,GAAI,CAAC;IAEvB,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ export declare const createAction: import("typescript-fsa").ActionCreatorFactory;
2
+ export declare const typeFactory: (...parts: string[]) => (name: string) => string;
3
+ export declare class Channel<K extends string> {
4
+ variables: K[];
5
+ build: (params: Record<K, string>) => string;
6
+ constructor(variables: K[], build: (params: Record<K, string>) => string);
7
+ buildMatcher(): string;
8
+ extend<L extends string>(variables: L[], build: (params: Record<L, string>) => string): Channel<K | L>;
9
+ }
10
+ export declare type ChannelParams<T extends Channel<string>> = T extends Channel<infer R> ? Record<R, string> : never;
11
+ export declare const createChannel: <K extends string>(variables: K[], build: (params: Record<K, string>) => string) => Channel<K>;
@@ -0,0 +1,17 @@
1
+ import actionCreatorFactory from 'typescript-fsa';
2
+ export const createAction = actionCreatorFactory();
3
+ export const typeFactory = (...parts) => (name) => [...parts, name].join('.');
4
+ export class Channel {
5
+ constructor(variables, build) {
6
+ this.variables = variables;
7
+ this.build = build;
8
+ }
9
+ buildMatcher() {
10
+ return this.build(this.variables.reduce((acc, key) => Object.assign(acc, { [key]: `:${key}` }), {}));
11
+ }
12
+ extend(variables, build) {
13
+ return new Channel([...this.variables, ...variables], (params) => `${this.build(params)}/${build(params)}`);
14
+ }
15
+ }
16
+ export const createChannel = (variables, build) => new Channel(variables, build);
17
+ //# sourceMappingURL=protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/utils/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,MAAM,gBAAgB,CAAC;AAElD,MAAM,CAAC,MAAM,YAAY,GAAG,oBAAoB,EAAE,CAAC;AAEnD,MAAM,CAAC,MAAM,WAAW,GACtB,CAAC,GAAG,KAAe,EAAE,EAAE,CACvB,CAAC,IAAY,EAAU,EAAE,CACvB,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/B,MAAM,OAAO,OAAO;IAClB,YAAmB,SAAc,EAAS,KAA4C;QAAnE,cAAS,GAAT,SAAS,CAAK;QAAS,UAAK,GAAL,KAAK,CAAuC;IAAG,CAAC;IAE1F,YAAY;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,EAAE,EAAuB,CAAC,CAAC,CAAC;IAC5H,CAAC;IAED,MAAM,CAAmB,SAAc,EAAE,KAA4C;QACnF,OAAO,IAAI,OAAO,CAAQ,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrH,CAAC;CACF;AAID,MAAM,CAAC,MAAM,aAAa,GAAG,CAAmB,SAAc,EAAE,KAA4C,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare const capitalizeFirstLetter: (value: string) => string;
2
+ export declare const capitalizeAllWords: (value: string) => string;
3
+ export declare const arrayStringReplace: (targetString: string, newString: string, stringArray: string[]) => string[];
4
+ export declare const stripHTMLTags: (str: string) => string;
5
+ export declare const removeTrailingUnderscores: (str: string) => string;
6
+ export declare const conditionalReplace: (base: string, pattern: RegExp, value?: string | undefined) => string;
@@ -0,0 +1,11 @@
1
+ const TAGS_REGEXP = /(<([^>]+)>)/gi;
2
+ const TRAILING_UNDERSCORES_REGEXP = /^_+|_+$/g;
3
+ export const capitalizeFirstLetter = (value) => value.charAt(0).toUpperCase() + value.slice(1);
4
+ export const capitalizeAllWords = (value) => value.split(' ').map(capitalizeFirstLetter).join(' ');
5
+ export const arrayStringReplace = (targetString, newString, stringArray) => stringArray.map((string) => string.replace(targetString, newString));
6
+ export const stripHTMLTags = (str) => str.replace(TAGS_REGEXP, '');
7
+ export const removeTrailingUnderscores = (str) => str.replace(TRAILING_UNDERSCORES_REGEXP, '');
8
+ export const conditionalReplace = (base, pattern, value) => {
9
+ return value ? base.replace(pattern, value) : base;
10
+ };
11
+ //# sourceMappingURL=string.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.js","sourceRoot":"","sources":["../../../src/utils/string.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG,eAAe,CAAC;AACpC,MAAM,2BAA2B,GAAG,UAAU,CAAC;AAE/C,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAE/G,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEnH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,YAAoB,EAAE,SAAiB,EAAE,WAAqB,EAAY,EAAE,CAC7G,WAAW,CAAC,GAAG,CAAC,CAAC,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;AAE/E,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAEnF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;AAE/G,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAE,OAAe,EAAE,KAAc,EAAE,EAAE;IAClF,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACrD,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const getCurrentTimestamp: () => number;
2
+ export declare const getTimeDuration: (pastTime: string | number) => string;
3
+ export declare const getAbbrevatedFormat: (time: string) => string;
@@ -0,0 +1,64 @@
1
+ import dayjs from 'dayjs';
2
+ import advancedFormat from 'dayjs/plugin/advancedFormat';
3
+ import customParseFormat from 'dayjs/plugin/customParseFormat';
4
+ import duration from 'dayjs/plugin/duration';
5
+ import minMax from 'dayjs/plugin/minMax';
6
+ import relativeTime from 'dayjs/plugin/relativeTime';
7
+ import updateLocale from 'dayjs/plugin/updateLocale';
8
+ import utc from 'dayjs/plugin/utc';
9
+ dayjs.extend(utc);
10
+ dayjs.extend(duration);
11
+ dayjs.extend(relativeTime);
12
+ dayjs.extend(customParseFormat);
13
+ dayjs.extend(minMax);
14
+ dayjs.extend(advancedFormat);
15
+ dayjs.extend(updateLocale);
16
+ // https://day.js.org/docs/en/customization/relative-time
17
+ dayjs.updateLocale('en', {
18
+ relativeTime: {
19
+ future: 'in %s',
20
+ past: '%s ago',
21
+ s: 'seconds',
22
+ m: 'a minute',
23
+ mm: '%d minutes',
24
+ h: 'an hour',
25
+ hh: '%d hours',
26
+ d: 'a day',
27
+ dd: '%d days',
28
+ M: 'a month',
29
+ MM: '%d months',
30
+ y: 'a year',
31
+ yy: '%d years',
32
+ },
33
+ });
34
+ export const getCurrentTimestamp = () => Math.floor(Date.now() / 1000);
35
+ export const getTimeDuration = (pastTime) => {
36
+ const diff = dayjs().utc().diff(pastTime);
37
+ return dayjs.duration(diff).humanize();
38
+ };
39
+ export const getAbbrevatedFormat = (time) => time
40
+ .split(' ')
41
+ .map((str) => {
42
+ if (str.includes('day')) {
43
+ return 'd';
44
+ }
45
+ if (str.includes('hour')) {
46
+ return 'hr';
47
+ }
48
+ if (str.includes('minute')) {
49
+ return 'm';
50
+ }
51
+ if (str.includes('second')) {
52
+ return 's';
53
+ }
54
+ if (str.includes('a')) {
55
+ return '1';
56
+ }
57
+ if (str.includes('a') || str.includes('few')) {
58
+ return null;
59
+ }
60
+ return str;
61
+ })
62
+ .filter(Boolean)
63
+ .join('');
64
+ //# sourceMappingURL=time.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time.js","sourceRoot":"","sources":["../../../src/utils/time.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,cAAc,MAAM,6BAA6B,CAAC;AACzD,OAAO,iBAAiB,MAAM,gCAAgC,CAAC;AAC/D,OAAO,QAAQ,MAAM,uBAAuB,CAAC;AAC7C,OAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,OAAO,YAAY,MAAM,2BAA2B,CAAC;AACrD,OAAO,YAAY,MAAM,2BAA2B,CAAC;AACrD,OAAO,GAAG,MAAM,kBAAkB,CAAC;AAEnC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAClB,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACvB,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAC3B,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAChC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACrB,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AAC7B,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAE3B,yDAAyD;AACzD,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE;IACvB,YAAY,EAAE;QACZ,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,QAAQ;QACd,CAAC,EAAE,SAAS;QACZ,CAAC,EAAE,UAAU;QACb,EAAE,EAAE,YAAY;QAChB,CAAC,EAAE,SAAS;QACZ,EAAE,EAAE,UAAU;QACd,CAAC,EAAE,OAAO;QACV,EAAE,EAAE,SAAS;QACb,CAAC,EAAE,SAAS;QACZ,EAAE,EAAE,WAAW;QACf,CAAC,EAAE,QAAQ;QACX,EAAE,EAAE,UAAU;KACf;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AAEvE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,QAAyB,EAAE,EAAE;IAC3D,MAAM,IAAI,GAAG,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE1C,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;AACzC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAE,EAAE,CAClD,IAAI;KACD,KAAK,CAAC,GAAG,CAAC;KACV,GAAG,CAAC,CAAC,GAAW,EAAE,EAAE;IACnB,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QACvB,OAAO,GAAG,CAAC;KACZ;IACD,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;QACxB,OAAO,IAAI,CAAC;KACb;IACD,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAC1B,OAAO,GAAG,CAAC;KACZ;IACD,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAC1B,OAAO,GAAG,CAAC;KACZ;IACD,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACrB,OAAO,GAAG,CAAC;KACZ;IACD,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QAC5C,OAAO,IAAI,CAAC;KACb;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;KACD,MAAM,CAAC,OAAO,CAAC;KACf,IAAI,CAAC,EAAE,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const TIMEZONES: string[];