@voiceflow/common 7.19.3 → 7.20.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/common/types.d.ts +4 -0
- package/build/common/utils/array.d.ts +3 -2
- package/build/common/utils/array.js +5 -3
- package/build/common/utils/array.js.map +1 -1
- package/build/common/utils/object.d.ts +16 -4
- package/build/common/utils/object.js +26 -7
- package/build/common/utils/object.js.map +1 -1
- package/build/esm/types.d.ts +4 -0
- package/build/esm/utils/array.d.ts +3 -2
- package/build/esm/utils/array.js +3 -2
- package/build/esm/utils/array.js.map +1 -1
- package/build/esm/utils/object.d.ts +16 -4
- package/build/esm/utils/object.js +23 -6
- package/build/esm/utils/object.js.map +1 -1
- package/package.json +2 -2
package/build/common/types.d.ts
CHANGED
|
@@ -22,6 +22,10 @@ export declare type NonNullishRecord<T extends object> = Required<{
|
|
|
22
22
|
[K in keyof T]: NonNullable<T[K]>;
|
|
23
23
|
}>;
|
|
24
24
|
export declare type Struct = Record<string, unknown>;
|
|
25
|
+
export declare type AnyRecord = Record<string, any>;
|
|
26
|
+
export declare type DeepPartial<T> = {
|
|
27
|
+
[P in keyof T]?: T extends object ? DeepPartial<T[P]> : T;
|
|
28
|
+
};
|
|
25
29
|
/**
|
|
26
30
|
* An object with no keys or values.
|
|
27
31
|
* @see https://github.com/typescript-eslint/typescript-eslint/issues/2063#issuecomment-675156492
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ArrayUnionToIntersection } from "../types";
|
|
1
|
+
import { AnyRecord, ArrayUnionToIntersection } from "../types";
|
|
2
2
|
export declare const unique: <T>(items: T[]) => T[];
|
|
3
3
|
export declare const without: <T>(items: T[], index: number) => T[];
|
|
4
4
|
export declare const withoutValue: <T>(items: T[], value: T) => T[];
|
|
@@ -12,6 +12,7 @@ export declare const head: <T>(items: T[]) => [T, T[]];
|
|
|
12
12
|
export declare const tail: <T>(items: T[]) => [T[], T];
|
|
13
13
|
export declare const reorder: <T>(items: T[], fromIndex: number, toIndex: number) => T[];
|
|
14
14
|
export declare const separate: <T>(items: T[], predicate: (item: T, index: number) => boolean) => [T[], T[]];
|
|
15
|
+
export declare const createMap: <T extends AnyRecord, K extends string | number = string>(array: T[], getKey: (value: T) => string) => Record<K, T>;
|
|
15
16
|
export declare const findUnion: <T>(lhs: T[], rhs: T[]) => {
|
|
16
17
|
rhsOnly: T[];
|
|
17
18
|
lhsOnly: T[];
|
|
@@ -24,5 +25,5 @@ export declare const isNullish: (value: unknown) => value is unknown;
|
|
|
24
25
|
export declare const isNotNullish: <T>(value: T) => value is NonNullable<T>;
|
|
25
26
|
/** @deprecated Use `array.filter(isNotNullish)` instead. */
|
|
26
27
|
export declare const filterOutNullish: <T>(items: readonly T[]) => NonNullable<T>[];
|
|
27
|
-
export declare const filterAndGetLastRemovedValue: <T>(list: T[],
|
|
28
|
+
export declare const filterAndGetLastRemovedValue: <T>(list: T[], filter: (item: T) => boolean) => [T[], T | null];
|
|
28
29
|
export declare const inferUnion: <T extends ArrayLike<unknown>>(array: T) => import("../types").SafeArray<T[number], T>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.inferUnion = exports.filterAndGetLastRemovedValue = exports.filterOutNullish = exports.isNotNullish = exports.isNullish = exports.asyncForEach = exports.hasIdenticalMembers = exports.diff = exports.findUnion = exports.separate = exports.reorder = exports.tail = exports.head = exports.toggleMembership = exports.append = exports.insertAll = exports.insert = exports.replace = exports.withoutValues = exports.withoutValue = exports.without = exports.unique = void 0;
|
|
3
|
+
exports.inferUnion = exports.filterAndGetLastRemovedValue = exports.filterOutNullish = exports.isNotNullish = exports.isNullish = exports.asyncForEach = exports.hasIdenticalMembers = exports.diff = exports.findUnion = exports.createMap = exports.separate = exports.reorder = exports.tail = exports.head = exports.toggleMembership = exports.append = exports.insertAll = exports.insert = exports.replace = exports.withoutValues = exports.withoutValue = exports.without = exports.unique = void 0;
|
|
4
4
|
const unique = (items) => Array.from(new Set(items));
|
|
5
5
|
exports.unique = unique;
|
|
6
6
|
const without = (items, index) => (index < 0 ? items : [...items.slice(0, index), ...items.slice(index + 1)]);
|
|
@@ -53,6 +53,8 @@ const separate = (items, predicate) => items.reduce(([passAcc, failAcc], item, i
|
|
|
53
53
|
return [passAcc, failAcc];
|
|
54
54
|
}, [[], []]);
|
|
55
55
|
exports.separate = separate;
|
|
56
|
+
const createMap = (array, getKey) => array.reduce((acc, item) => Object.assign(acc, { [getKey(item)]: item }), {});
|
|
57
|
+
exports.createMap = createMap;
|
|
56
58
|
const findUnion = (lhs, rhs) => {
|
|
57
59
|
const unique = new Set([...lhs, ...rhs]);
|
|
58
60
|
return Array.from(unique).reduce((acc, item) => {
|
|
@@ -101,10 +103,10 @@ exports.isNotNullish = isNotNullish;
|
|
|
101
103
|
const filterOutNullish = (items) => items.filter(exports.isNotNullish);
|
|
102
104
|
exports.filterOutNullish = filterOutNullish;
|
|
103
105
|
// mostly just saves us needing to traverse an array twice
|
|
104
|
-
const filterAndGetLastRemovedValue = (list,
|
|
106
|
+
const filterAndGetLastRemovedValue = (list, filter) => {
|
|
105
107
|
let lastItem = null;
|
|
106
108
|
const filteredList = list.filter((a) => {
|
|
107
|
-
if (
|
|
109
|
+
if (filter(a))
|
|
108
110
|
return true;
|
|
109
111
|
lastItem = a;
|
|
110
112
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array.js","sourceRoot":"","sources":["../../../src/utils/array.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"array.js","sourceRoot":"","sources":["../../../src/utils/array.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,20 @@
|
|
|
1
|
+
import { AnyRecord, DeepPartial, Struct } from "../types";
|
|
2
|
+
export declare const selectField: <K extends string | number>(field: K) => <T extends { [key in K]: any; }>(obj: T) => T[K];
|
|
3
|
+
export declare const selectID: <T extends {
|
|
4
|
+
id: any;
|
|
5
|
+
}>(obj: T) => T["id"];
|
|
6
|
+
export declare const selectKey: <T extends {
|
|
7
|
+
key: any;
|
|
8
|
+
}>(obj: T) => T["key"];
|
|
9
|
+
export declare const selectValue: <T extends {
|
|
10
|
+
value: any;
|
|
11
|
+
}>(obj: T) => T["value"];
|
|
12
|
+
export declare const isObject: (obj: unknown) => obj is Struct;
|
|
1
13
|
export declare const getKeys: <T>(obj: T) => (keyof T)[];
|
|
2
14
|
export declare const pick: <T, K extends keyof T>(obj: T, keys: K[]) => Pick<T, K>;
|
|
3
15
|
export declare const hasProperty: <T, K extends string | keyof T>(obj: T, key: K) => obj is T & Record<K, unknown>;
|
|
4
16
|
export declare const getIn: <T, K extends string | keyof T>(rawObj: T, key: K | K[], def?: any, index?: number) => rawObj is T & Record<K, unknown>;
|
|
5
|
-
export declare const setIn: (obj:
|
|
6
|
-
export declare const filterEntries: (obj:
|
|
7
|
-
export declare const getDiff: (object:
|
|
8
|
-
export declare const getTopLevelDiff: (object:
|
|
17
|
+
export declare const setIn: (obj: AnyRecord, path: any, value: any) => any;
|
|
18
|
+
export declare const filterEntries: <T extends AnyRecord>(obj: T, predicate: (key: keyof T, value: T[keyof T]) => boolean) => Partial<T>;
|
|
19
|
+
export declare const getDiff: <S extends AnyRecord>(object: S, base: S, compare?: <T>(left: T, right: T) => boolean) => DeepPartial<S>;
|
|
20
|
+
export declare const getTopLevelDiff: <S extends AnyRecord>(object: S, base: S, compare?: <T>(left: T, right: T) => boolean) => Partial<S>;
|
|
@@ -3,11 +3,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getTopLevelDiff = exports.getDiff = exports.filterEntries = exports.setIn = exports.getIn = exports.hasProperty = exports.pick = exports.getKeys = void 0;
|
|
6
|
+
exports.getTopLevelDiff = exports.getDiff = exports.filterEntries = exports.setIn = exports.getIn = exports.hasProperty = exports.pick = exports.getKeys = exports.isObject = exports.selectValue = exports.selectKey = exports.selectID = exports.selectField = void 0;
|
|
7
7
|
const cloneDeep_1 = __importDefault(require("lodash/cloneDeep"));
|
|
8
8
|
const isObject_1 = __importDefault(require("lodash/isObject"));
|
|
9
9
|
const toPath_1 = __importDefault(require("lodash/toPath"));
|
|
10
10
|
const transform_1 = __importDefault(require("lodash/transform"));
|
|
11
|
+
const selectField = (field) => (obj) => obj[field];
|
|
12
|
+
exports.selectField = selectField;
|
|
13
|
+
exports.selectID = (0, exports.selectField)('id');
|
|
14
|
+
exports.selectKey = (0, exports.selectField)('key');
|
|
15
|
+
exports.selectValue = (0, exports.selectField)('value');
|
|
16
|
+
const isObject = (obj) => obj !== null && typeof obj === 'object';
|
|
17
|
+
exports.isObject = isObject;
|
|
11
18
|
const getKeys = (obj) => Object.keys(obj);
|
|
12
19
|
exports.getKeys = getKeys;
|
|
13
20
|
const pick = (obj, keys) => keys.reduce((acc, key) => Object.assign(acc, { [key]: obj[key] }), {});
|
|
@@ -71,19 +78,31 @@ const filterEntries = (obj, predicate) => Object.entries(obj).reduce((acc, [key,
|
|
|
71
78
|
return acc;
|
|
72
79
|
}, {});
|
|
73
80
|
exports.filterEntries = filterEntries;
|
|
74
|
-
const
|
|
81
|
+
const defaultCompare = (left, right) => left === right;
|
|
82
|
+
const getDiff = (object, base, compare = defaultCompare) => {
|
|
75
83
|
const changes = (object, base) => (0, transform_1.default)(object, (result, value, key) => {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
84
|
+
var _a;
|
|
85
|
+
if (!compare(value, base[key])) {
|
|
86
|
+
if ((0, isObject_1.default)(value) && (0, isObject_1.default)(base[key])) {
|
|
87
|
+
// eslint-disable-next-line no-param-reassign
|
|
88
|
+
result[key] = changes(value, base[key]);
|
|
89
|
+
if (Object.keys((_a = result[key]) !== null && _a !== void 0 ? _a : {}).length === 0) {
|
|
90
|
+
// eslint-disable-next-line no-param-reassign
|
|
91
|
+
delete result[key];
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
// eslint-disable-next-line no-param-reassign
|
|
96
|
+
result[key] = value;
|
|
97
|
+
}
|
|
79
98
|
}
|
|
80
99
|
});
|
|
81
100
|
return changes(object, base);
|
|
82
101
|
};
|
|
83
102
|
exports.getDiff = getDiff;
|
|
84
|
-
const getTopLevelDiff = (object, base) => {
|
|
103
|
+
const getTopLevelDiff = (object, base, compare = defaultCompare) => {
|
|
85
104
|
const changes = (object, base) => (0, transform_1.default)(object, (result, value, key) => {
|
|
86
|
-
if (value
|
|
105
|
+
if (!compare(value, base[key])) {
|
|
87
106
|
// eslint-disable-next-line no-param-reassign
|
|
88
107
|
result[key] = value;
|
|
89
108
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object.js","sourceRoot":"","sources":["../../../src/utils/object.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"object.js","sourceRoot":"","sources":["../../../src/utils/object.ts"],"names":[],"mappings":"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"}
|
package/build/esm/types.d.ts
CHANGED
|
@@ -22,6 +22,10 @@ export declare type NonNullishRecord<T extends object> = Required<{
|
|
|
22
22
|
[K in keyof T]: NonNullable<T[K]>;
|
|
23
23
|
}>;
|
|
24
24
|
export declare type Struct = Record<string, unknown>;
|
|
25
|
+
export declare type AnyRecord = Record<string, any>;
|
|
26
|
+
export declare type DeepPartial<T> = {
|
|
27
|
+
[P in keyof T]?: T extends object ? DeepPartial<T[P]> : T;
|
|
28
|
+
};
|
|
25
29
|
/**
|
|
26
30
|
* An object with no keys or values.
|
|
27
31
|
* @see https://github.com/typescript-eslint/typescript-eslint/issues/2063#issuecomment-675156492
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ArrayUnionToIntersection } from "../types";
|
|
1
|
+
import { AnyRecord, ArrayUnionToIntersection } from "../types";
|
|
2
2
|
export declare const unique: <T>(items: T[]) => T[];
|
|
3
3
|
export declare const without: <T>(items: T[], index: number) => T[];
|
|
4
4
|
export declare const withoutValue: <T>(items: T[], value: T) => T[];
|
|
@@ -12,6 +12,7 @@ export declare const head: <T>(items: T[]) => [T, T[]];
|
|
|
12
12
|
export declare const tail: <T>(items: T[]) => [T[], T];
|
|
13
13
|
export declare const reorder: <T>(items: T[], fromIndex: number, toIndex: number) => T[];
|
|
14
14
|
export declare const separate: <T>(items: T[], predicate: (item: T, index: number) => boolean) => [T[], T[]];
|
|
15
|
+
export declare const createMap: <T extends AnyRecord, K extends string | number = string>(array: T[], getKey: (value: T) => string) => Record<K, T>;
|
|
15
16
|
export declare const findUnion: <T>(lhs: T[], rhs: T[]) => {
|
|
16
17
|
rhsOnly: T[];
|
|
17
18
|
lhsOnly: T[];
|
|
@@ -24,5 +25,5 @@ export declare const isNullish: (value: unknown) => value is unknown;
|
|
|
24
25
|
export declare const isNotNullish: <T>(value: T) => value is NonNullable<T>;
|
|
25
26
|
/** @deprecated Use `array.filter(isNotNullish)` instead. */
|
|
26
27
|
export declare const filterOutNullish: <T>(items: readonly T[]) => NonNullable<T>[];
|
|
27
|
-
export declare const filterAndGetLastRemovedValue: <T>(list: T[],
|
|
28
|
+
export declare const filterAndGetLastRemovedValue: <T>(list: T[], filter: (item: T) => boolean) => [T[], T | null];
|
|
28
29
|
export declare const inferUnion: <T extends ArrayLike<unknown>>(array: T) => import("../types").SafeArray<T[number], T>;
|
package/build/esm/utils/array.js
CHANGED
|
@@ -37,6 +37,7 @@ export const separate = (items, predicate) => items.reduce(([passAcc, failAcc],
|
|
|
37
37
|
}
|
|
38
38
|
return [passAcc, failAcc];
|
|
39
39
|
}, [[], []]);
|
|
40
|
+
export const createMap = (array, getKey) => array.reduce((acc, item) => Object.assign(acc, { [getKey(item)]: item }), {});
|
|
40
41
|
export const findUnion = (lhs, rhs) => {
|
|
41
42
|
const unique = new Set([...lhs, ...rhs]);
|
|
42
43
|
return Array.from(unique).reduce((acc, item) => {
|
|
@@ -78,10 +79,10 @@ export const isNotNullish = (value) => value !== null && value !== undefined;
|
|
|
78
79
|
/** @deprecated Use `array.filter(isNotNullish)` instead. */
|
|
79
80
|
export const filterOutNullish = (items) => items.filter(isNotNullish);
|
|
80
81
|
// mostly just saves us needing to traverse an array twice
|
|
81
|
-
export const filterAndGetLastRemovedValue = (list,
|
|
82
|
+
export const filterAndGetLastRemovedValue = (list, filter) => {
|
|
82
83
|
let lastItem = null;
|
|
83
84
|
const filteredList = list.filter((a) => {
|
|
84
|
-
if (
|
|
85
|
+
if (filter(a))
|
|
85
86
|
return true;
|
|
86
87
|
lastItem = a;
|
|
87
88
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array.js","sourceRoot":"","sources":["../../../src/utils/array.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"array.js","sourceRoot":"","sources":["../../../src/utils/array.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,20 @@
|
|
|
1
|
+
import { AnyRecord, DeepPartial, Struct } from "../types";
|
|
2
|
+
export declare const selectField: <K extends string | number>(field: K) => <T extends { [key in K]: any; }>(obj: T) => T[K];
|
|
3
|
+
export declare const selectID: <T extends {
|
|
4
|
+
id: any;
|
|
5
|
+
}>(obj: T) => T["id"];
|
|
6
|
+
export declare const selectKey: <T extends {
|
|
7
|
+
key: any;
|
|
8
|
+
}>(obj: T) => T["key"];
|
|
9
|
+
export declare const selectValue: <T extends {
|
|
10
|
+
value: any;
|
|
11
|
+
}>(obj: T) => T["value"];
|
|
12
|
+
export declare const isObject: (obj: unknown) => obj is Struct;
|
|
1
13
|
export declare const getKeys: <T>(obj: T) => (keyof T)[];
|
|
2
14
|
export declare const pick: <T, K extends keyof T>(obj: T, keys: K[]) => Pick<T, K>;
|
|
3
15
|
export declare const hasProperty: <T, K extends string | keyof T>(obj: T, key: K) => obj is T & Record<K, unknown>;
|
|
4
16
|
export declare const getIn: <T, K extends string | keyof T>(rawObj: T, key: K | K[], def?: any, index?: number) => rawObj is T & Record<K, unknown>;
|
|
5
|
-
export declare const setIn: (obj:
|
|
6
|
-
export declare const filterEntries: (obj:
|
|
7
|
-
export declare const getDiff: (object:
|
|
8
|
-
export declare const getTopLevelDiff: (object:
|
|
17
|
+
export declare const setIn: (obj: AnyRecord, path: any, value: any) => any;
|
|
18
|
+
export declare const filterEntries: <T extends AnyRecord>(obj: T, predicate: (key: keyof T, value: T[keyof T]) => boolean) => Partial<T>;
|
|
19
|
+
export declare const getDiff: <S extends AnyRecord>(object: S, base: S, compare?: <T>(left: T, right: T) => boolean) => DeepPartial<S>;
|
|
20
|
+
export declare const getTopLevelDiff: <S extends AnyRecord>(object: S, base: S, compare?: <T>(left: T, right: T) => boolean) => Partial<S>;
|
|
@@ -2,6 +2,11 @@ import _cloneDeep from 'lodash/cloneDeep';
|
|
|
2
2
|
import _isObject from 'lodash/isObject';
|
|
3
3
|
import _toPath from 'lodash/toPath';
|
|
4
4
|
import _transform from 'lodash/transform';
|
|
5
|
+
export const selectField = (field) => (obj) => obj[field];
|
|
6
|
+
export const selectID = selectField('id');
|
|
7
|
+
export const selectKey = selectField('key');
|
|
8
|
+
export const selectValue = selectField('value');
|
|
9
|
+
export const isObject = (obj) => obj !== null && typeof obj === 'object';
|
|
5
10
|
export const getKeys = (obj) => Object.keys(obj);
|
|
6
11
|
export const pick = (obj, keys) => keys.reduce((acc, key) => Object.assign(acc, { [key]: obj[key] }), {});
|
|
7
12
|
export const hasProperty = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key);
|
|
@@ -59,18 +64,30 @@ export const filterEntries = (obj, predicate) => Object.entries(obj).reduce((acc
|
|
|
59
64
|
}
|
|
60
65
|
return acc;
|
|
61
66
|
}, {});
|
|
62
|
-
|
|
67
|
+
const defaultCompare = (left, right) => left === right;
|
|
68
|
+
export const getDiff = (object, base, compare = defaultCompare) => {
|
|
63
69
|
const changes = (object, base) => _transform(object, (result, value, key) => {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
70
|
+
var _a;
|
|
71
|
+
if (!compare(value, base[key])) {
|
|
72
|
+
if (_isObject(value) && _isObject(base[key])) {
|
|
73
|
+
// eslint-disable-next-line no-param-reassign
|
|
74
|
+
result[key] = changes(value, base[key]);
|
|
75
|
+
if (Object.keys((_a = result[key]) !== null && _a !== void 0 ? _a : {}).length === 0) {
|
|
76
|
+
// eslint-disable-next-line no-param-reassign
|
|
77
|
+
delete result[key];
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
// eslint-disable-next-line no-param-reassign
|
|
82
|
+
result[key] = value;
|
|
83
|
+
}
|
|
67
84
|
}
|
|
68
85
|
});
|
|
69
86
|
return changes(object, base);
|
|
70
87
|
};
|
|
71
|
-
export const getTopLevelDiff = (object, base) => {
|
|
88
|
+
export const getTopLevelDiff = (object, base, compare = defaultCompare) => {
|
|
72
89
|
const changes = (object, base) => _transform(object, (result, value, key) => {
|
|
73
|
-
if (value
|
|
90
|
+
if (!compare(value, base[key])) {
|
|
74
91
|
// eslint-disable-next-line no-param-reassign
|
|
75
92
|
result[key] = value;
|
|
76
93
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object.js","sourceRoot":"","sources":["../../../src/utils/object.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"object.js","sourceRoot":"","sources":["../../../src/utils/object.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@voiceflow/common",
|
|
3
3
|
"description": "Junk drawer of utility functions",
|
|
4
|
-
"version": "7.
|
|
4
|
+
"version": "7.20.0",
|
|
5
5
|
"author": "Voiceflow",
|
|
6
6
|
"bugs": {
|
|
7
7
|
"url": "https://github.com/voiceflow/libs/issues"
|
|
@@ -72,5 +72,5 @@
|
|
|
72
72
|
"test:single": "NODE_ENV=test ts-mocha --paths --config config/tests/mocharc.yml",
|
|
73
73
|
"test:unit": "NODE_ENV=test nyc --report-dir=nyc_coverage_unit ts-mocha --paths --config config/tests/mocharc.yml 'tests/**/*.unit.ts'"
|
|
74
74
|
},
|
|
75
|
-
"gitHead": "
|
|
75
|
+
"gitHead": "6ef213499ff07a7a36a7002f49ebc19d8454a44c"
|
|
76
76
|
}
|