@voiceflow/common 7.9.0 → 7.10.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/build/{constants → common/constants}/environment.d.ts +0 -0
- package/build/{constants → common/constants}/environment.js +0 -0
- package/build/common/constants/environment.js.map +1 -0
- package/build/{constants → common/constants}/index.d.ts +0 -0
- package/build/{constants → common/constants}/index.js +0 -0
- package/build/common/constants/index.js.map +1 -0
- package/build/{constants → common/constants}/intent.d.ts +0 -0
- package/build/{constants → common/constants}/intent.js +0 -0
- package/build/{constants → common/constants}/intent.js.map +1 -1
- package/build/{constants → common/constants}/regexp.d.ts +0 -0
- package/build/{constants → common/constants}/regexp.js +0 -0
- package/build/common/constants/regexp.js.map +1 -0
- package/build/{constants → common/constants}/slot.d.ts +0 -0
- package/build/{constants → common/constants}/slot.js +0 -0
- package/build/common/constants/slot.js.map +1 -0
- package/build/{crypto → common/crypto}/base64.d.ts +0 -0
- package/build/{crypto → common/crypto}/base64.js +0 -0
- package/build/common/crypto/base64.js.map +1 -0
- package/build/{crypto → common/crypto}/index.d.ts +0 -0
- package/build/{crypto → common/crypto}/index.js +0 -0
- package/build/common/crypto/index.js.map +1 -0
- package/build/{crypto → common/crypto}/synchronous.d.ts +0 -0
- package/build/{crypto → common/crypto}/synchronous.js +0 -0
- package/build/common/crypto/synchronous.js.map +1 -0
- package/build/{index.d.ts → common/index.d.ts} +0 -0
- package/build/{index.js → common/index.js} +0 -0
- package/build/common/index.js.map +1 -0
- package/build/{types.d.ts → common/types.d.ts} +0 -0
- package/build/{types.js → common/types.js} +0 -0
- package/build/common/types.js.map +1 -0
- package/build/{utils → common/utils}/array.d.ts +0 -0
- package/build/{utils → common/utils}/array.js +0 -0
- package/build/common/utils/array.js.map +1 -0
- package/build/{utils → common/utils}/emails.d.ts +0 -0
- package/build/{utils → common/utils}/emails.js +0 -0
- package/build/common/utils/emails.js.map +1 -0
- package/build/{utils → common/utils}/functional.d.ts +0 -0
- package/build/{utils → common/utils}/functional.js +0 -0
- package/build/common/utils/functional.js.map +1 -0
- package/build/{utils → common/utils}/generate.d.ts +0 -0
- package/build/{utils → common/utils}/generate.js +0 -0
- package/build/common/utils/generate.js.map +1 -0
- package/build/{utils → common/utils}/id.d.ts +0 -0
- package/build/{utils → common/utils}/id.js +0 -0
- package/build/common/utils/id.js.map +1 -0
- package/build/{utils → common/utils}/index.d.ts +0 -0
- package/build/{utils → common/utils}/index.js +0 -0
- package/build/common/utils/index.js.map +1 -0
- package/build/{utils → common/utils}/intent.d.ts +0 -0
- package/build/{utils → common/utils}/intent.js +0 -0
- package/build/common/utils/intent.js.map +1 -0
- package/build/{utils → common/utils}/mathjs.d.ts +0 -0
- package/build/{utils → common/utils}/mathjs.js +0 -0
- package/build/common/utils/mathjs.js.map +1 -0
- package/build/{utils → common/utils}/normalized.d.ts +0 -0
- package/build/{utils → common/utils}/normalized.js +0 -0
- package/build/common/utils/normalized.js.map +1 -0
- package/build/{utils → common/utils}/number.d.ts +0 -0
- package/build/{utils → common/utils}/number.js +0 -0
- package/build/common/utils/number.js.map +1 -0
- package/build/{utils → common/utils}/object.d.ts +0 -0
- package/build/{utils → common/utils}/object.js +0 -0
- package/build/common/utils/object.js.map +1 -0
- package/build/{utils → common/utils}/promise.d.ts +0 -0
- package/build/{utils → common/utils}/promise.js +0 -0
- package/build/common/utils/promise.js.map +1 -0
- package/build/{utils → common/utils}/protocol.d.ts +0 -0
- package/build/{utils → common/utils}/protocol.js +0 -0
- package/build/common/utils/protocol.js.map +1 -0
- package/build/{utils → common/utils}/string.d.ts +0 -0
- package/build/{utils → common/utils}/string.js +0 -0
- package/build/common/utils/string.js.map +1 -0
- package/build/{utils → common/utils}/time.d.ts +0 -0
- package/build/{utils → common/utils}/time.js +0 -0
- package/build/common/utils/time.js.map +1 -0
- package/build/{utils → common/utils}/timezones.d.ts +0 -0
- package/build/{utils → common/utils}/timezones.js +0 -0
- package/build/common/utils/timezones.js.map +1 -0
- package/build/{utils → common/utils}/variables.d.ts +0 -0
- package/build/{utils → common/utils}/variables.js +0 -0
- package/build/common/utils/variables.js.map +1 -0
- package/build/esm/constants/environment.d.ts +9 -0
- package/build/esm/constants/environment.js +11 -0
- package/build/esm/constants/environment.js.map +1 -0
- package/build/esm/constants/index.d.ts +4 -0
- package/build/esm/constants/index.js +5 -0
- package/build/esm/constants/index.js.map +1 -0
- package/build/esm/constants/intent.d.ts +4 -0
- package/build/esm/constants/intent.js +2 -0
- package/build/esm/constants/intent.js.map +1 -0
- package/build/esm/constants/regexp.d.ts +10 -0
- package/build/esm/constants/regexp.js +16 -0
- package/build/esm/constants/regexp.js.map +1 -0
- package/build/esm/constants/slot.d.ts +9 -0
- package/build/esm/constants/slot.js +7 -0
- package/build/esm/constants/slot.js.map +1 -0
- package/build/esm/crypto/base64.d.ts +7 -0
- package/build/esm/crypto/base64.js +18 -0
- package/build/esm/crypto/base64.js.map +1 -0
- package/build/esm/crypto/index.d.ts +2 -0
- package/build/esm/crypto/index.js +3 -0
- package/build/esm/crypto/index.js.map +1 -0
- package/build/esm/crypto/synchronous.d.ts +16 -0
- package/build/esm/crypto/synchronous.js +39 -0
- package/build/esm/crypto/synchronous.js.map +1 -0
- package/build/esm/index.d.ts +5 -0
- package/build/esm/index.js +7 -0
- package/build/esm/index.js.map +1 -0
- package/build/esm/types.d.ts +29 -0
- package/build/esm/types.js +2 -0
- package/build/esm/types.js.map +1 -0
- package/build/esm/utils/array.d.ts +25 -0
- package/build/esm/utils/array.js +80 -0
- package/build/esm/utils/array.js.map +1 -0
- package/build/esm/utils/emails.d.ts +2 -0
- package/build/esm/utils/emails.js +4 -0
- package/build/esm/utils/emails.js.map +1 -0
- package/build/esm/utils/functional.d.ts +23 -0
- package/build/esm/utils/functional.js +20 -0
- package/build/esm/utils/functional.js.map +1 -0
- package/build/esm/utils/generate.d.ts +12 -0
- package/build/esm/utils/generate.js +31 -0
- package/build/esm/utils/generate.js.map +1 -0
- package/build/esm/utils/id.d.ts +3 -0
- package/build/esm/utils/id.js +5 -0
- package/build/esm/utils/id.js.map +1 -0
- package/build/esm/utils/index.d.ts +18 -0
- package/build/esm/utils/index.js +20 -0
- package/build/esm/utils/index.js.map +1 -0
- package/build/esm/utils/intent.d.ts +17 -0
- package/build/esm/utils/intent.js +34 -0
- package/build/esm/utils/intent.js.map +1 -0
- package/build/esm/utils/mathjs.d.ts +1 -0
- package/build/esm/utils/mathjs.js +59 -0
- package/build/esm/utils/mathjs.js.map +1 -0
- package/build/esm/utils/normalized.d.ts +45 -0
- package/build/esm/utils/normalized.js +70 -0
- package/build/esm/utils/normalized.js.map +1 -0
- package/build/esm/utils/number.d.ts +4 -0
- package/build/esm/utils/number.js +6 -0
- package/build/esm/utils/number.js.map +1 -0
- package/build/esm/utils/object.d.ts +8 -0
- package/build/esm/utils/object.js +77 -0
- package/build/esm/utils/object.js.map +1 -0
- package/build/esm/utils/promise.d.ts +8 -0
- package/build/esm/utils/promise.js +16 -0
- package/build/esm/utils/promise.js.map +1 -0
- package/build/esm/utils/protocol.d.ts +11 -0
- package/build/esm/utils/protocol.js +17 -0
- package/build/esm/utils/protocol.js.map +1 -0
- package/build/esm/utils/string.d.ts +6 -0
- package/build/esm/utils/string.js +11 -0
- package/build/esm/utils/string.js.map +1 -0
- package/build/esm/utils/time.d.ts +3 -0
- package/build/esm/utils/time.js +64 -0
- package/build/esm/utils/time.js.map +1 -0
- package/build/esm/utils/timezones.d.ts +1 -0
- package/build/esm/utils/timezones.js +2030 -0
- package/build/{utils → esm/utils}/timezones.js.map +1 -1
- package/build/esm/utils/variables.d.ts +7 -0
- package/build/esm/utils/variables.js +57 -0
- package/build/esm/utils/variables.js.map +1 -0
- package/package.json +8 -6
- package/build/constants/environment.js.map +0 -1
- package/build/constants/index.js.map +0 -1
- package/build/constants/regexp.js.map +0 -1
- package/build/constants/slot.js.map +0 -1
- package/build/crypto/base64.js.map +0 -1
- package/build/crypto/index.js.map +0 -1
- package/build/crypto/synchronous.js.map +0 -1
- package/build/index.js.map +0 -1
- package/build/types.js.map +0 -1
- package/build/utils/array.js.map +0 -1
- package/build/utils/emails.js.map +0 -1
- package/build/utils/functional.js.map +0 -1
- package/build/utils/generate.js.map +0 -1
- package/build/utils/id.js.map +0 -1
- package/build/utils/index.js.map +0 -1
- package/build/utils/intent.js.map +0 -1
- package/build/utils/mathjs.js.map +0 -1
- package/build/utils/normalized.js.map +0 -1
- package/build/utils/number.js.map +0 -1
- package/build/utils/object.js.map +0 -1
- package/build/utils/promise.js.map +0 -1
- package/build/utils/protocol.js.map +0 -1
- package/build/utils/string.js.map +0 -1
- package/build/utils/time.js.map +0 -1
- package/build/utils/variables.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"synchronous.js","sourceRoot":"","sources":["../../../src/crypto/synchronous.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,IAAI,MAAM,oBAAoB,CAAC;AAOtC,MAAM,WAAW;IAKf,YAAY,EAAE,GAAG,EAAE,GAAG,EAAsB;QAJ5C,mCAA0B;QAE1B,mCAAa;QAGX,uBAAA,IAAI,oBAAQ,GAAG,MAAA,CAAC;QAChB,uBAAA,IAAI,oBAAQ,GAAG,MAAA,CAAC;IAClB,CAAC;IAES,MAAM;QACd,OAAO,uBAAA,IAAI,wBAAK,CAAC;IACnB,CAAC;IAEM,OAAO,CAAC,IAAY,EAAE,MAAc,uBAAA,IAAI,wBAAK;QAClD,OAAO,uBAAA,IAAI,wBAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;IACjD,CAAC;IAEM,WAAW,CAAC,IAAa;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5C,CAAC;IAEM,OAAO,CAAC,IAAY,EAAE,GAAG,GAAG,uBAAA,IAAI,wBAAK;QAC1C,OAAO,uBAAA,IAAI,wBAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IAEM,WAAW,CAAI,IAAY;QAChC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACxC,CAAC;CACF;;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,qEAAqE;AACrE,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export declare type Nullable<T> = T | null;
|
|
2
|
+
export declare type Nullish<T = unknown> = Nullable<T> | undefined;
|
|
3
|
+
export declare type Function<A extends any[] = any[], R = any> = (...args: A) => R;
|
|
4
|
+
export declare type AnyFunction = Function<any[], any>;
|
|
5
|
+
export declare type Callback = Function<[], Eventual<void>>;
|
|
6
|
+
export declare type Eventual<T> = Promise<T> | T;
|
|
7
|
+
export declare type StringifyEnum<T extends string> = T | `${T}`;
|
|
8
|
+
export declare type NormalizedValue<T> = T extends Normalized<infer R> ? R : never;
|
|
9
|
+
export interface Normalized<T> {
|
|
10
|
+
byKey: Record<string, T>;
|
|
11
|
+
allKeys: string[];
|
|
12
|
+
}
|
|
13
|
+
export declare type WithOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
|
|
14
|
+
export declare type WithRequired<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;
|
|
15
|
+
export declare type Writeable<T> = {
|
|
16
|
+
-readonly [P in keyof T]: T[P];
|
|
17
|
+
};
|
|
18
|
+
export declare type NullableRecord<T extends object> = {
|
|
19
|
+
[K in keyof T]: Nullable<T[K]>;
|
|
20
|
+
};
|
|
21
|
+
export declare type NonNullishRecord<T extends object> = Required<{
|
|
22
|
+
[K in keyof T]: NonNullable<T[K]>;
|
|
23
|
+
}>;
|
|
24
|
+
export declare type Struct = Record<string, unknown>;
|
|
25
|
+
/**
|
|
26
|
+
* An object with no keys or values.
|
|
27
|
+
* @see https://github.com/typescript-eslint/typescript-eslint/issues/2063#issuecomment-675156492
|
|
28
|
+
*/
|
|
29
|
+
export declare type EmptyObject = Record<never, never>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export declare const unique: <T>(items: T[]) => T[];
|
|
2
|
+
export declare const without: <T>(items: T[], index: number) => T[];
|
|
3
|
+
export declare const withoutValue: <T>(items: T[], value: T) => T[];
|
|
4
|
+
export declare const withoutValues: <T>(items: T[], values: T[]) => T[];
|
|
5
|
+
export declare const replace: <T>(items: T[], index: number, item: T) => T[];
|
|
6
|
+
export declare const insert: <T>(items: T[], index: number, item: T) => T[];
|
|
7
|
+
export declare const insertAll: <T>(items: T[], index: number, additionalItems: T[]) => T[];
|
|
8
|
+
export declare const append: <T>(items: T[], item: T) => T[];
|
|
9
|
+
export declare const toggleMembership: <T>(items: T[], item: T) => T[];
|
|
10
|
+
export declare const head: <T>(items: T[]) => [T, T[]];
|
|
11
|
+
export declare const tail: <T>(items: T[]) => [T[], T];
|
|
12
|
+
export declare const reorder: <T>(items: T[], fromIndex: number, toIndex: number) => T[];
|
|
13
|
+
export declare const separate: <T>(items: T[], predicate: (item: T, index: number) => boolean) => [T[], T[]];
|
|
14
|
+
export declare const findUnion: <T>(lhs: T[], rhs: T[]) => {
|
|
15
|
+
rhsOnly: T[];
|
|
16
|
+
lhsOnly: T[];
|
|
17
|
+
union: T[];
|
|
18
|
+
};
|
|
19
|
+
export declare const diff: <T>(lhs: T[], rhs: T[]) => T[];
|
|
20
|
+
export declare const hasIdenticalMembers: <T>(lhs: T[], rhs: T[]) => boolean;
|
|
21
|
+
export declare const asyncForEach: <T>(array: T[], callback: (item: T, index: number, array: T[]) => Promise<void>) => Promise<void>;
|
|
22
|
+
export declare const isNullish: (value: unknown) => value is unknown;
|
|
23
|
+
export declare const isNotNullish: <T>(value: T) => value is NonNullable<T>;
|
|
24
|
+
/** @deprecated Use `array.filter(isNotNullish)` instead. */
|
|
25
|
+
export declare const filterOutNullish: <T>(items: readonly T[]) => NonNullable<T>[];
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
export const unique = (items) => Array.from(new Set(items));
|
|
2
|
+
export const without = (items, index) => (index < 0 ? items : [...items.slice(0, index), ...items.slice(index + 1)]);
|
|
3
|
+
export const withoutValue = (items, value) => without(items, items.indexOf(value));
|
|
4
|
+
export const withoutValues = (items, values) => items.filter((item) => !values.includes(item));
|
|
5
|
+
export const replace = (items, index, item) => index < 0 ? items : [...items.slice(0, index), item, ...items.slice(index + 1)];
|
|
6
|
+
export const insert = (items, index, item) => index < 0 ? [item, ...items] : [...items.slice(0, index), item, ...items.slice(index)];
|
|
7
|
+
export const insertAll = (items, index, additionalItems) => index < 0 ? [...additionalItems, ...items] : [...items.slice(0, index), ...additionalItems, ...items.slice(index)];
|
|
8
|
+
export const append = (items, item) => (items.includes(item) ? items : [...items, item]);
|
|
9
|
+
export const toggleMembership = (items, item) => (items.includes(item) ? withoutValue(items, item) : [...items, item]);
|
|
10
|
+
export const head = (items) => {
|
|
11
|
+
const [first, ...rest] = items;
|
|
12
|
+
return [first, rest];
|
|
13
|
+
};
|
|
14
|
+
export const tail = (items) => {
|
|
15
|
+
const last = items[items.length - 1];
|
|
16
|
+
const rest = items.slice(0, -1);
|
|
17
|
+
return [rest, last];
|
|
18
|
+
};
|
|
19
|
+
export const reorder = (items, fromIndex, toIndex) => {
|
|
20
|
+
if (fromIndex < 0 || fromIndex >= items.length) {
|
|
21
|
+
return items;
|
|
22
|
+
}
|
|
23
|
+
if (toIndex < 0) {
|
|
24
|
+
return [items[fromIndex], ...without(items, fromIndex)];
|
|
25
|
+
}
|
|
26
|
+
if (toIndex >= items.length) {
|
|
27
|
+
return [...without(items, fromIndex), items[fromIndex]];
|
|
28
|
+
}
|
|
29
|
+
return insert(without(items, fromIndex), toIndex, items[fromIndex]);
|
|
30
|
+
};
|
|
31
|
+
export const separate = (items, predicate) => items.reduce(([passAcc, failAcc], item, index) => {
|
|
32
|
+
if (predicate(item, index)) {
|
|
33
|
+
passAcc.push(item);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
failAcc.push(item);
|
|
37
|
+
}
|
|
38
|
+
return [passAcc, failAcc];
|
|
39
|
+
}, [[], []]);
|
|
40
|
+
export const findUnion = (lhs, rhs) => {
|
|
41
|
+
const unique = new Set([...lhs, ...rhs]);
|
|
42
|
+
return Array.from(unique).reduce((acc, item) => {
|
|
43
|
+
if (lhs.includes(item)) {
|
|
44
|
+
if (rhs.includes(item)) {
|
|
45
|
+
acc.union.push(item);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
acc.lhsOnly.push(item);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
acc.rhsOnly.push(item);
|
|
53
|
+
}
|
|
54
|
+
return acc;
|
|
55
|
+
}, { rhsOnly: [], lhsOnly: [], union: [] });
|
|
56
|
+
};
|
|
57
|
+
export const diff = (lhs, rhs) => {
|
|
58
|
+
const { lhsOnly, rhsOnly } = findUnion(lhs, rhs);
|
|
59
|
+
return [...lhsOnly, ...rhsOnly];
|
|
60
|
+
};
|
|
61
|
+
export const hasIdenticalMembers = (lhs, rhs) => {
|
|
62
|
+
if (lhs.length !== rhs.length) {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
if (!lhs.length && !rhs.length) {
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
return !lhs.some((value) => !rhs.includes(value));
|
|
69
|
+
};
|
|
70
|
+
export const asyncForEach = async (array, callback) => {
|
|
71
|
+
for (let index = 0; index < array.length; index++) {
|
|
72
|
+
// eslint-disable-next-line callback-return,no-await-in-loop
|
|
73
|
+
await callback(array[index], index, array);
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
export const isNullish = (value) => value === null || value === undefined;
|
|
77
|
+
export const isNotNullish = (value) => value !== null && value !== undefined;
|
|
78
|
+
/** @deprecated Use `array.filter(isNotNullish)` instead. */
|
|
79
|
+
export const filterOutNullish = (items) => items.filter(isNotNullish);
|
|
80
|
+
//# sourceMappingURL=array.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array.js","sourceRoot":"","sources":["../../../src/utils/array.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emails.js","sourceRoot":"","sources":["../../../src/utils/emails.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG,gDAAgD,CAAC;AAEhE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAE9E,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Nullish } from '../types';
|
|
2
|
+
export declare type Transform<T = any, R = T> = (value: T) => R;
|
|
3
|
+
export interface Compose {
|
|
4
|
+
<R, T1>(t0: Transform<T1, R>): (value: T1) => R;
|
|
5
|
+
<R, T1, T2>(t0: Transform<T1, T2>, t1: Transform<T2, R>): (value: T1) => R;
|
|
6
|
+
<R, T1, T2, T3>(t0: Transform<T1, T2>, t1: Transform<T2, T3>, t2: Transform<T3, R>): (value: T1) => R;
|
|
7
|
+
<R, T1, T2, T3, T4>(t0: Transform<T1, T2>, t1: Transform<T2, T3>, t2: Transform<T3, T4>, t3: Transform<T4, R>): (value: T1) => R;
|
|
8
|
+
<R, T1, T2, T3, T4, T5>(t0: Transform<T1, T2>, t1: Transform<T2, T3>, t2: Transform<T3, T4>, t3: Transform<T4, T5>, t4: Transform<T5, R>): (value: T1) => R;
|
|
9
|
+
<R, T1, T2, T3, T4, T5, T6>(t0: Transform<T1, T2>, t1: Transform<T2, T3>, t2: Transform<T3, T4>, t3: Transform<T4, T5>, t4: Transform<T5, T6>, t5: Transform<T6, R>): (value: T1) => R;
|
|
10
|
+
(...transforms: Transform[]): <T extends object>(value: T) => T;
|
|
11
|
+
}
|
|
12
|
+
export declare const compose: Compose;
|
|
13
|
+
export declare type VoidFunction = () => void;
|
|
14
|
+
export declare const noop: VoidFunction;
|
|
15
|
+
export declare const identity: <T>(value: T) => T;
|
|
16
|
+
export declare const stringify: (value: any) => string;
|
|
17
|
+
declare type ChainCallback<A extends any[]> = (...args: A) => void;
|
|
18
|
+
export declare const chain: <A extends any[]>(...fns: Nullish<ChainCallback<A>>[]) => (...args: A) => void;
|
|
19
|
+
export declare const chainVoid: (...fns: Array<Nullish<VoidFunction>>) => () => void;
|
|
20
|
+
export declare const chainAsync: <A extends any[]>(...fns: Nullish<ChainCallback<A>>[]) => (...args: A) => Promise<void>;
|
|
21
|
+
export declare const chainVoidAsync: (...fns: Array<Nullish<VoidFunction>>) => () => Promise<void>;
|
|
22
|
+
export declare const withEffect: <T>(callback: (value: T) => void) => (value: T) => T;
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export const compose = (...transforms) => (value) => [...transforms].reverse().reduce((acc, transform) => transform(acc), value);
|
|
2
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
3
|
+
export const noop = () => { };
|
|
4
|
+
export const identity = (value) => value;
|
|
5
|
+
export const stringify = (value) => (typeof value === 'string' ? value : String(value));
|
|
6
|
+
export const chain = (...fns) => (...args) => fns.forEach((fn) => fn === null || fn === void 0 ? void 0 : fn(...args));
|
|
7
|
+
export const chainVoid = (...fns) => () => chain(...fns)();
|
|
8
|
+
export const chainAsync = (...fns) => async (...args) => {
|
|
9
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
10
|
+
for (const fn of fns) {
|
|
11
|
+
// eslint-disable-next-line no-await-in-loop
|
|
12
|
+
await (fn === null || fn === void 0 ? void 0 : fn(...args));
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
export const chainVoidAsync = (...fns) => () => chainAsync(...fns)();
|
|
16
|
+
export const withEffect = (callback) => (value) => {
|
|
17
|
+
callback(value);
|
|
18
|
+
return value;
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=functional.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functional.js","sourceRoot":"","sources":["../../../src/utils/functional.ts"],"names":[],"mappings":"AAwBA,MAAM,CAAC,MAAM,OAAO,GAClB,CAAC,GAAG,UAAuB,EAAE,EAAE,CAC/B,CAAmB,KAAQ,EAAK,EAAE,CAChC,CAAC,GAAG,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;AAIhF,gEAAgE;AAChE,MAAM,CAAC,MAAM,IAAI,GAAiB,GAAG,EAAE,GAAE,CAAC,CAAC;AAE3C,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAI,KAAQ,EAAK,EAAE,CAAC,KAAK,CAAC;AAElD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAU,EAAU,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAIrG,MAAM,CAAC,MAAM,KAAK,GAChB,CAAkB,GAAG,GAAqC,EAAE,EAAE,CAC9D,CAAC,GAAG,IAAO,EAAQ,EAAE,CACnB,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAG,GAAG,IAAI,CAAC,CAAC,CAAC;AAEvC,MAAM,CAAC,MAAM,SAAS,GACpB,CAAC,GAAG,GAAiC,EAAE,EAAE,CACzC,GAAS,EAAE,CACT,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;AAEpB,MAAM,CAAC,MAAM,UAAU,GACrB,CAAkB,GAAG,GAAqC,EAAE,EAAE,CAC9D,KAAK,EAAE,GAAG,IAAO,EAAiB,EAAE;IAClC,gDAAgD;IAChD,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE;QACpB,4CAA4C;QAC5C,MAAM,CAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAG,GAAG,IAAI,CAAC,CAAA,CAAC;KACrB;AACH,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,cAAc,GACzB,CAAC,GAAG,GAAiC,EAAE,EAAE,CACzC,GAAkB,EAAE,CAClB,UAAU,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;AAEzB,MAAM,CAAC,MAAM,UAAU,GACrB,CAAI,QAA4B,EAAE,EAAE,CACpC,CAAC,KAAQ,EAAE,EAAE;IACX,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhB,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const generateHash: (object: unknown) => string;
|
|
2
|
+
interface Generate {
|
|
3
|
+
hash: (object: unknown) => string;
|
|
4
|
+
oneOf: <T>(options: T[]) => T;
|
|
5
|
+
number: (min?: number, max?: number) => number;
|
|
6
|
+
id: (slug?: boolean) => string;
|
|
7
|
+
string: (length?: number) => string;
|
|
8
|
+
object: <T = string>(entryCount?: number, factory?: () => T) => Record<string, T>;
|
|
9
|
+
array: <T = string>(length?: number, factory?: () => T) => T[];
|
|
10
|
+
}
|
|
11
|
+
export declare const generate: Generate;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { cuid } from './id';
|
|
2
|
+
const CHARACTERS = Array.from({ length: 26 }).map((_, index) => String.fromCharCode(97 + index));
|
|
3
|
+
export const generateHash = (object) => {
|
|
4
|
+
const objectStr = typeof object === 'object' ? JSON.stringify(object) : String(object);
|
|
5
|
+
if (objectStr.length === 0) {
|
|
6
|
+
return '';
|
|
7
|
+
}
|
|
8
|
+
let hash = 0;
|
|
9
|
+
for (let i = 0; i < objectStr.length; i++) {
|
|
10
|
+
const chr = objectStr.charCodeAt(i);
|
|
11
|
+
// eslint-disable-next-line no-bitwise
|
|
12
|
+
hash = (hash << 5) - hash + chr;
|
|
13
|
+
// eslint-disable-next-line no-bitwise
|
|
14
|
+
hash |= 0; // Convert to 32bit integer
|
|
15
|
+
}
|
|
16
|
+
return Math.abs(hash).toString();
|
|
17
|
+
};
|
|
18
|
+
export const generate = {
|
|
19
|
+
hash: generateHash,
|
|
20
|
+
oneOf: (options) => options[generate.number(0, options.length - 1)],
|
|
21
|
+
number: (min = 0, max = 100) => min + Math.floor(Math.random() * (max - min)),
|
|
22
|
+
id: (slug = true) => (slug ? cuid.slug() : cuid()),
|
|
23
|
+
string: (length = 10) => Array.from({ length })
|
|
24
|
+
.map(() => generate.oneOf(CHARACTERS))
|
|
25
|
+
.join(''),
|
|
26
|
+
object: (entryCount = 3, factory = generate.string) => Array.from({ length: entryCount })
|
|
27
|
+
.map(() => [generate.string(), factory()])
|
|
28
|
+
.reduce((acc, [key, value]) => Object.assign(acc, { [key]: value }), {}),
|
|
29
|
+
array: (length = 3, factory = generate.string) => Array.from({ length }).map(() => factory()),
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=generate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/utils/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id.js","sourceRoot":"","sources":["../../../src/utils/id.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,IAAI,EAAE,CAAC;AAEhB,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAW,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export * as array from './array';
|
|
2
|
+
export * as emails from './emails';
|
|
3
|
+
export * as functional from './functional';
|
|
4
|
+
export { generate, generateHash } from './generate';
|
|
5
|
+
export * as id from './id';
|
|
6
|
+
export * as intent from './intent';
|
|
7
|
+
export * as mathjs from './mathjs';
|
|
8
|
+
export * as normalized from './normalized';
|
|
9
|
+
export * as number from './number';
|
|
10
|
+
export * as object from './object';
|
|
11
|
+
export * as promise from './promise';
|
|
12
|
+
export * as protocol from './protocol';
|
|
13
|
+
export * as string from './string';
|
|
14
|
+
export * as time from './time';
|
|
15
|
+
export * as timezones from './timezones';
|
|
16
|
+
export * as variables from './variables';
|
|
17
|
+
export * from './intent';
|
|
18
|
+
export * from './variables';
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export * as array from './array';
|
|
2
|
+
export * as emails from './emails';
|
|
3
|
+
export * as functional from './functional';
|
|
4
|
+
export { generate, generateHash } from './generate';
|
|
5
|
+
export * as id from './id';
|
|
6
|
+
export * as intent from './intent';
|
|
7
|
+
export * as mathjs from './mathjs';
|
|
8
|
+
export * as normalized from './normalized';
|
|
9
|
+
export * as number from './number';
|
|
10
|
+
export * as object from './object';
|
|
11
|
+
export * as promise from './promise';
|
|
12
|
+
export * as protocol from './protocol';
|
|
13
|
+
export * as string from './string';
|
|
14
|
+
export * as time from './time';
|
|
15
|
+
export * as timezones from './timezones';
|
|
16
|
+
export * as variables from './variables';
|
|
17
|
+
// TODO: Remove these exports once we migrate all utils in other repos.
|
|
18
|
+
export * from './intent';
|
|
19
|
+
export * from './variables';
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,MAAM,CAAC;AAC3B,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AAEzC,uEAAuE;AACvE,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { BuiltinSlot } from "../constants";
|
|
2
|
+
export declare const formatIntentName: (name: string) => string;
|
|
3
|
+
export declare const getUtterancesWithSlotNames: ({ slots, utterances, }: {
|
|
4
|
+
slots?: {
|
|
5
|
+
key: string;
|
|
6
|
+
name: string;
|
|
7
|
+
}[] | undefined;
|
|
8
|
+
utterances?: {
|
|
9
|
+
text: string;
|
|
10
|
+
}[] | undefined;
|
|
11
|
+
}) => string[];
|
|
12
|
+
export declare const getSlotType: (slots: BuiltinSlot<string, string>[], slot: {
|
|
13
|
+
name: string;
|
|
14
|
+
type: {
|
|
15
|
+
value?: string;
|
|
16
|
+
};
|
|
17
|
+
}) => string;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { LOWER_CASE_CUSTOM_SLOT_TYPE, SLOT_REGEXP, SPACE_REGEXP } from "../constants";
|
|
2
|
+
export const formatIntentName = (name) => {
|
|
3
|
+
if (!name) {
|
|
4
|
+
return name;
|
|
5
|
+
}
|
|
6
|
+
let formattedName = '';
|
|
7
|
+
// replace white spaces with underscores
|
|
8
|
+
formattedName = name.replace(SPACE_REGEXP, '_');
|
|
9
|
+
// replace numbers with equivalent capital letter. Ex: 0 = A, 1 = B
|
|
10
|
+
formattedName = formattedName.replace(/\d/g, (digit) => String.fromCharCode(parseInt(digit, 10) + 65));
|
|
11
|
+
return formattedName;
|
|
12
|
+
};
|
|
13
|
+
export const getUtterancesWithSlotNames = ({ slots = [], utterances = [], }) => utterances
|
|
14
|
+
.filter((utterance) => { var _a; return !!((_a = utterance.text) === null || _a === void 0 ? void 0 : _a.trim()); })
|
|
15
|
+
.map(({ text }) => text.replace(SLOT_REGEXP, (substring, _name, key) => {
|
|
16
|
+
const slot = slots.find((_slot) => _slot.key === key);
|
|
17
|
+
return (slot === null || slot === void 0 ? void 0 : slot.name) ? `{${slot.name}}` : substring;
|
|
18
|
+
}));
|
|
19
|
+
export const getSlotType = (slots, slot) => {
|
|
20
|
+
var _a, _b;
|
|
21
|
+
let type = slot.name;
|
|
22
|
+
const lowerCaseType = (_b = (_a = slot.type.value) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== null && _b !== void 0 ? _b : '';
|
|
23
|
+
if (!!slot.type.value && lowerCaseType !== LOWER_CASE_CUSTOM_SLOT_TYPE) {
|
|
24
|
+
const builtinSlot = slots.find((_slot) => _slot.label.toLowerCase() === lowerCaseType);
|
|
25
|
+
if (!builtinSlot) {
|
|
26
|
+
type = slot.type.value; // Platform specific slot
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
({ type } = builtinSlot);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return type;
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=intent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intent.js","sourceRoot":"","sources":["../../../src/utils/intent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,2BAA2B,EAAE,WAAW,EAAE,YAAY,EAAE,qBAAoB;AAElG,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAU,EAAE;IACvD,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,IAAI,CAAC;KACb;IAED,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,wCAAwC;IACxC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IAChD,mEAAmE;IACnE,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAEvG,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,EACzC,KAAK,GAAG,EAAE,EACV,UAAU,GAAG,EAAE,GAIhB,EAAY,EAAE,CACb,UAAU;KACP,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,WAAC,OAAA,CAAC,CAAC,CAAA,MAAA,SAAS,CAAC,IAAI,0CAAE,IAAI,EAAE,CAAA,CAAA,EAAA,CAAC;KAC/C,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAChB,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,KAAa,EAAE,GAAW,EAAE,EAAE;IAClE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IAEtD,OAAO,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,EAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACnD,CAAC,CAAC,CACH,CAAC;AAEN,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAoC,EAAE,IAAgD,EAAU,EAAE;;IAC5H,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACrB,MAAM,aAAa,GAAG,MAAA,MAAA,IAAI,CAAC,IAAI,CAAC,KAAK,0CAAE,WAAW,EAAE,mCAAI,EAAE,CAAC;IAE3D,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,aAAa,KAAK,2BAA2B,EAAE;QACtE,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,aAAa,CAAC,CAAC;QAEvF,IAAI,CAAC,WAAW,EAAE;YAChB,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,yBAAyB;SAClD;aAAM;YACL,CAAC,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,CAAC;SAC1B;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const parser: (exp: string) => string;
|
|
@@ -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":"AAAA,MAAM,QAAQ,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAElE,MAAM,WAAW,GAAG,+BAA+B,CAAC;AACpD,MAAM,QAAQ,GAAG,4BAA4B,CAAC;AAC9C,MAAM,SAAS,GAAG,6BAA6B,CAAC;AAChD,MAAM,SAAS,GAAG,mBAAmB,CAAC;AAEtC,MAAM,SAAS,GAAG,6BAA6B,CAAC;AAEhD,MAAM,SAAS,GAAG,6BAA6B,CAAC;AAChD,MAAM,cAAc,GAAG,kCAAkC,CAAC;AAC1D,MAAM,cAAc,GAAG,kCAAkC,CAAC;AAC1D,MAAM,YAAY,GAAG,gCAAgC,CAAC;AAEtD,MAAM,SAAS,GAAG,6BAA6B,CAAC;AAChD,MAAM,aAAa,GAAG,iCAAiC,CAAC;AACxD,MAAM,UAAU,GAAG,wBAAwB,CAAC;AAE5C,MAAM,gBAAgB,GAAG,uCAAuC,CAAC;AACjE,MAAM,YAAY,GAAG,oCAAoC,CAAC;AAE1D,MAAM,SAAS,GAAG,CAAC,EAAU,EAAE,EAAU,EAAE,EAAE;IAC3C,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,GAAG,CAAC;IAER,IAAI,EAAE,EAAE;QACN,GAAG,GAAG,EAAE,CAAC;QACT,GAAG,GAAG,EAAE,CAAC;KACV;SAAM;QACL,GAAG,GAAG,EAAE,CAAC;KACV;IACD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACtB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE;IACpC,IAAI,SAAS,GAAG,GAAG,CAAC;IAEpB,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACzD,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACtD,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACvD,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAEhD,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC;IAC7D,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC;IAC7D,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC;IACjE,4EAA4E;IAC5E,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC;IAC/D,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC;IAC/D,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,kBAAkB,CAAC,CAAC;IAEvE,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,kCAAkC,CAAC,CAAC;IAE7E,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACtD,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAC3D,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAC3D,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAEzD,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;IAC7D,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,uCAAuC,CAAC,CAAC;IAEtF,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;QACvE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAEvC,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,oBAAoB,GAAG,MAAM,GAAG,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC;IACrF,CAAC,CAAC,CAAC;IACH,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;QAC3E,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAEvC,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,+BAA+B,GAAG,MAAM,GAAG,YAAY,GAAG,EAAE,CAAC,CAAC,CAAC,2BAA2B,CAAC;IACjH,CAAC,CAAC,CAAC;IACH,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAEtD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
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 updateNormalizedByKey: <T, N extends Normalized<T>>({ byKey, ...rest }: N, key: string, obj: T) => N;
|
|
33
|
+
export declare const patchNormalizedByKey: <T, N extends Normalized<T>>(normalized: N, key: string, obj: Partial<T>) => N;
|
|
34
|
+
export declare const addNormalizedByKey: <T>(normalized: Normalized<T>, key: string, obj: T) => {
|
|
35
|
+
allKeys: string[];
|
|
36
|
+
byKey: Record<string, T>;
|
|
37
|
+
};
|
|
38
|
+
export declare const addToStartNormalizedByKey: <T>(normalized: Normalized<T>, key: string, obj: T) => {
|
|
39
|
+
allKeys: string[];
|
|
40
|
+
byKey: Record<string, T>;
|
|
41
|
+
};
|
|
42
|
+
export declare const addAllNormalizedByKeys: <T extends unknown, K extends GetKey<T> = (obj: T) => string>(normalized: Normalized<T>, objs: T[], getKey?: K | undefined) => Normalized<T>;
|
|
43
|
+
export declare const removeNormalizedByKey: RemoveNormalizedByKey;
|
|
44
|
+
export declare const reorderKeys: <T>(newKeyArray: string[], byKey: Record<string, T>) => Normalized<T>;
|
|
45
|
+
export declare const removeAllNormalizedByKeys: <T>({ allKeys, byKey }: Normalized<T>, targetKeys: string[]) => Normalized<T>;
|
|
@@ -0,0 +1,70 @@
|
|
|
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 updateNormalizedByKey = (_a, key, obj) => {
|
|
38
|
+
var { byKey } = _a, rest = __rest(_a, ["byKey"]);
|
|
39
|
+
return (Object.assign(Object.assign({}, rest), { byKey: Object.assign(Object.assign({}, byKey), { [key]: obj }) }));
|
|
40
|
+
};
|
|
41
|
+
export const patchNormalizedByKey = (normalized, key, obj) => updateNormalizedByKey(normalized, key, Object.assign(Object.assign({}, getNormalizedByKey(normalized, key)), obj));
|
|
42
|
+
export const addNormalizedByKey = (normalized, key, obj) => (Object.assign(Object.assign({}, updateNormalizedByKey(normalized, key, obj)), { allKeys: safeAdd(normalized.allKeys, key) }));
|
|
43
|
+
export const addToStartNormalizedByKey = (normalized, key, obj) => (Object.assign(Object.assign({}, updateNormalizedByKey(normalized, key, obj)), { allKeys: safeAddToStart(normalized.allKeys, key) }));
|
|
44
|
+
export const addAllNormalizedByKeys = (normalized, objs, getKey) => {
|
|
45
|
+
const keyGetter = getKey !== null && getKey !== void 0 ? getKey : defaultGetKey;
|
|
46
|
+
const keys = objs.map(keyGetter);
|
|
47
|
+
return {
|
|
48
|
+
byKey: Object.assign(Object.assign({}, normalized.byKey), objs.reduce((acc, obj) => Object.assign(acc, { [keyGetter(obj)]: obj }), {})),
|
|
49
|
+
allKeys: keys.reduce(safeAdd, normalized.allKeys),
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
export const removeNormalizedByKey = ({ allKeys, byKey }, targetKey) => {
|
|
53
|
+
const filteredKeys = withoutValue(allKeys, targetKey);
|
|
54
|
+
return {
|
|
55
|
+
allKeys: filteredKeys,
|
|
56
|
+
byKey: buildLookup(filteredKeys, getByKey(byKey)),
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
export const reorderKeys = (newKeyArray, byKey) => ({
|
|
60
|
+
allKeys: newKeyArray,
|
|
61
|
+
byKey,
|
|
62
|
+
});
|
|
63
|
+
export const removeAllNormalizedByKeys = ({ allKeys, byKey }, targetKeys) => {
|
|
64
|
+
const filteredKeys = allKeys.filter((key) => !targetKeys.includes(key));
|
|
65
|
+
return {
|
|
66
|
+
allKeys: filteredKeys,
|
|
67
|
+
byKey: buildLookup(filteredKeys, getByKey(byKey)),
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
//# 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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"}
|