@voiceflow/common 7.15.0 → 7.15.4
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/crypto/index.d.ts +1 -0
- package/build/common/crypto/index.js +3 -1
- package/build/common/crypto/index.js.map +1 -1
- package/build/common/crypto/murmurhash.d.ts +1 -1
- package/build/common/crypto/murmurhash.js +1 -1
- package/build/common/crypto/murmurhash.js.map +1 -1
- package/build/common/utils/index.d.ts +1 -0
- package/build/common/utils/index.js +2 -1
- package/build/common/utils/index.js.map +1 -1
- package/build/common/utils/intent.d.ts +16 -0
- package/build/common/utils/intent.js +113 -1
- package/build/common/utils/intent.js.map +1 -1
- package/build/common/utils/slot.d.ts +6 -0
- package/build/common/utils/slot.js +20 -0
- package/build/common/utils/slot.js.map +1 -0
- package/build/esm/crypto/index.d.ts +1 -0
- package/build/esm/crypto/index.js +1 -0
- package/build/esm/crypto/index.js.map +1 -1
- package/build/esm/crypto/murmurhash.d.ts +1 -1
- package/build/esm/crypto/murmurhash.js +1 -1
- package/build/esm/crypto/murmurhash.js.map +1 -1
- package/build/esm/utils/index.d.ts +1 -0
- package/build/esm/utils/index.js +1 -0
- package/build/esm/utils/index.js.map +1 -1
- package/build/esm/utils/intent.d.ts +16 -0
- package/build/esm/utils/intent.js +106 -0
- package/build/esm/utils/intent.js.map +1 -1
- package/build/esm/utils/slot.d.ts +6 -0
- package/build/esm/utils/slot.js +11 -0
- package/build/esm/utils/slot.js.map +1 -0
- package/package.json +3 -3
|
@@ -3,9 +3,11 @@ 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.Synchronous = exports.Base64 = void 0;
|
|
6
|
+
exports.Synchronous = exports.MurmurHash = exports.Base64 = void 0;
|
|
7
7
|
var base64_1 = require("./base64");
|
|
8
8
|
Object.defineProperty(exports, "Base64", { enumerable: true, get: function () { return __importDefault(base64_1).default; } });
|
|
9
|
+
var murmurhash_1 = require("./murmurhash");
|
|
10
|
+
Object.defineProperty(exports, "MurmurHash", { enumerable: true, get: function () { return __importDefault(murmurhash_1).default; } });
|
|
9
11
|
var synchronous_1 = require("./synchronous");
|
|
10
12
|
Object.defineProperty(exports, "Synchronous", { enumerable: true, get: function () { return __importDefault(synchronous_1).default; } });
|
|
11
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/crypto/index.ts"],"names":[],"mappings":";;;;;;AAAA,mCAA6C;AAApC,iHAAA,OAAO,OAAU;AAC1B,6CAAuD;AAA9C,2HAAA,OAAO,OAAe"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/crypto/index.ts"],"names":[],"mappings":";;;;;;AAAA,mCAA6C;AAApC,iHAAA,OAAO,OAAU;AAC1B,2CAAqD;AAA5C,yHAAA,OAAO,OAAc;AAC9B,6CAAuD;AAA9C,2HAAA,OAAO,OAAe"}
|
|
@@ -4,7 +4,7 @@ exports.MurmurHash = void 0;
|
|
|
4
4
|
const murmurhash_wasm_1 = require("murmurhash-wasm");
|
|
5
5
|
const hex2abc_1 = require("./hex2abc");
|
|
6
6
|
class MurmurHash {
|
|
7
|
-
static hash(key, seed) {
|
|
7
|
+
static hash(key, seed = 0) {
|
|
8
8
|
const hash = murmurhash_wasm_1.MurmurHash3.hash32(key, seed);
|
|
9
9
|
const value = hash.readUInt32BE();
|
|
10
10
|
const hex = value.toString(16);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"murmurhash.js","sourceRoot":"","sources":["../../../src/crypto/murmurhash.ts"],"names":[],"mappings":";;;AAAA,qDAA8C;AAE9C,uCAA2C;AAE3C,MAAa,UAAU;IACd,MAAM,CAAC,IAAI,CAAC,GAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"murmurhash.js","sourceRoot":"","sources":["../../../src/crypto/murmurhash.ts"],"names":[],"mappings":";;;AAAA,qDAA8C;AAE9C,uCAA2C;AAE3C,MAAa,UAAU;IACd,MAAM,CAAC,IAAI,CAAC,GAAW,EAAE,IAAI,GAAG,CAAC;QACtC,MAAM,IAAI,GAAG,6BAAW,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAE/B,OAAO,iBAAO,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;CACF;AARD,gCAQC;AAED,kBAAe,UAAU,CAAC"}
|
|
@@ -10,6 +10,7 @@ export * as number from './number';
|
|
|
10
10
|
export * as object from './object';
|
|
11
11
|
export * as promise from './promise';
|
|
12
12
|
export * as protocol from './protocol';
|
|
13
|
+
export * as slot from './slot';
|
|
13
14
|
export * as string from './string';
|
|
14
15
|
export * as time from './time';
|
|
15
16
|
export * as timezones from './timezones';
|
|
@@ -22,7 +22,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
22
22
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
23
23
|
};
|
|
24
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
-
exports.variables = exports.timezones = exports.time = exports.string = exports.protocol = exports.promise = exports.object = exports.number = exports.normalized = exports.mathjs = exports.intent = exports.id = exports.generateHash = exports.generate = exports.functional = exports.emails = exports.array = void 0;
|
|
25
|
+
exports.variables = exports.timezones = exports.time = exports.string = exports.slot = exports.protocol = exports.promise = exports.object = exports.number = exports.normalized = exports.mathjs = exports.intent = exports.id = exports.generateHash = exports.generate = exports.functional = exports.emails = exports.array = void 0;
|
|
26
26
|
exports.array = __importStar(require("./array"));
|
|
27
27
|
exports.emails = __importStar(require("./emails"));
|
|
28
28
|
exports.functional = __importStar(require("./functional"));
|
|
@@ -37,6 +37,7 @@ exports.number = __importStar(require("./number"));
|
|
|
37
37
|
exports.object = __importStar(require("./object"));
|
|
38
38
|
exports.promise = __importStar(require("./promise"));
|
|
39
39
|
exports.protocol = __importStar(require("./protocol"));
|
|
40
|
+
exports.slot = __importStar(require("./slot"));
|
|
40
41
|
exports.string = __importStar(require("./string"));
|
|
41
42
|
exports.time = __importStar(require("./time"));
|
|
42
43
|
exports.timezones = __importStar(require("./timezones"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAiC;AACjC,mDAAmC;AACnC,2DAA2C;AAC3C,uCAAoD;AAA3C,oGAAA,QAAQ,OAAA;AAAE,wGAAA,YAAY,OAAA;AAC/B,2CAA2B;AAC3B,mDAAmC;AACnC,mDAAmC;AACnC,2DAA2C;AAC3C,mDAAmC;AACnC,mDAAmC;AACnC,qDAAqC;AACrC,uDAAuC;AACvC,mDAAmC;AACnC,+CAA+B;AAC/B,yDAAyC;AACzC,yDAAyC;AAEzC,uEAAuE;AACvE,2CAAyB;AACzB,8CAA4B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAiC;AACjC,mDAAmC;AACnC,2DAA2C;AAC3C,uCAAoD;AAA3C,oGAAA,QAAQ,OAAA;AAAE,wGAAA,YAAY,OAAA;AAC/B,2CAA2B;AAC3B,mDAAmC;AACnC,mDAAmC;AACnC,2DAA2C;AAC3C,mDAAmC;AACnC,mDAAmC;AACnC,qDAAqC;AACrC,uDAAuC;AACvC,+CAA+B;AAC/B,mDAAmC;AACnC,+CAA+B;AAC/B,yDAAyC;AACzC,yDAAyC;AAEzC,uEAAuE;AACvE,2CAAyB;AACzB,8CAA4B"}
|
|
@@ -15,3 +15,19 @@ export declare const getSlotType: (slots: BuiltinSlot<string, string>[], slot: {
|
|
|
15
15
|
value?: string;
|
|
16
16
|
};
|
|
17
17
|
}) => string;
|
|
18
|
+
export declare const VF_ENTITY_REGEXP: RegExp;
|
|
19
|
+
export interface JSONEntity {
|
|
20
|
+
startPos: number;
|
|
21
|
+
endPos: number;
|
|
22
|
+
entity: string;
|
|
23
|
+
}
|
|
24
|
+
export interface JSONUtterance {
|
|
25
|
+
text?: string;
|
|
26
|
+
entities?: JSONEntity[];
|
|
27
|
+
}
|
|
28
|
+
export declare const utteranceEntityPermutations: (utterances: string[], entitiesByID: Record<string, {
|
|
29
|
+
inputs: string[];
|
|
30
|
+
name: string;
|
|
31
|
+
}>, limit?: number) => JSONUtterance[];
|
|
32
|
+
export declare const injectUtteranceSpaces: (originalUtterance: string) => string;
|
|
33
|
+
export declare const cleanVFIntentName: (intentName: string) => string;
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getSlotType = exports.getUtterancesWithSlotNames = exports.formatIntentName = void 0;
|
|
6
|
+
exports.cleanVFIntentName = exports.injectUtteranceSpaces = exports.utteranceEntityPermutations = exports.VF_ENTITY_REGEXP = exports.getSlotType = exports.getUtterancesWithSlotNames = exports.formatIntentName = void 0;
|
|
7
|
+
const sample_1 = __importDefault(require("lodash/sample"));
|
|
4
8
|
const constants_1 = require("../constants");
|
|
9
|
+
const slot_1 = require("./slot");
|
|
5
10
|
const formatIntentName = (name) => {
|
|
6
11
|
if (!name) {
|
|
7
12
|
return name;
|
|
@@ -37,4 +42,111 @@ const getSlotType = (slots, slot) => {
|
|
|
37
42
|
return type;
|
|
38
43
|
};
|
|
39
44
|
exports.getSlotType = getSlotType;
|
|
45
|
+
exports.VF_ENTITY_REGEXP = /{{\[(\w{1,32})]\.(\w{1,32})}}/gi;
|
|
46
|
+
// extension of the String.prototype.replace format
|
|
47
|
+
const continuousReplace = (text, regex, replacer) => {
|
|
48
|
+
// regex without any global flags (g or i)
|
|
49
|
+
const localRegex = new RegExp(regex, '');
|
|
50
|
+
let temp;
|
|
51
|
+
let current = text;
|
|
52
|
+
// keep replacing until there is nothing else to replace (local replaces one instance at a time, this is important to keep positional offset data)
|
|
53
|
+
while (temp !== current) {
|
|
54
|
+
temp = current;
|
|
55
|
+
current = current.replace(localRegex, replacer);
|
|
56
|
+
}
|
|
57
|
+
return current;
|
|
58
|
+
};
|
|
59
|
+
const utteranceEntityPermutations = (utterances, entitiesByID, limit = 22
|
|
60
|
+
// eslint-disable-next-line sonarjs/cognitive-complexity
|
|
61
|
+
) => {
|
|
62
|
+
var _a;
|
|
63
|
+
const newUtterances = [];
|
|
64
|
+
const entityRef = {};
|
|
65
|
+
const addNewUtterance = (utterance) => {
|
|
66
|
+
if (!(utterance === null || utterance === void 0 ? void 0 : utterance.trim()))
|
|
67
|
+
return;
|
|
68
|
+
const entities = [];
|
|
69
|
+
// Find all occurences of {entityName} in training utterances
|
|
70
|
+
const text = continuousReplace(utterance, exports.VF_ENTITY_REGEXP, (_match, entityName, entityID, offset) => {
|
|
71
|
+
var _a, _b, _c;
|
|
72
|
+
const entity = entitiesByID[entityID];
|
|
73
|
+
if (!entity)
|
|
74
|
+
return entityName;
|
|
75
|
+
const sample = (((_a = entityRef[entityID]) === null || _a === void 0 ? void 0 : _a.samples.shift()) || sample_1.default(slot_1.getAllSamples(entity === null || entity === void 0 ? void 0 : entity.inputs)) || entityName).trim();
|
|
76
|
+
if (!((_c = (_b = entityRef[entityID]) === null || _b === void 0 ? void 0 : _b.samples) === null || _c === void 0 ? void 0 : _c.length))
|
|
77
|
+
delete entityRef[entityID];
|
|
78
|
+
// This module should additionally create one full training utterance with positional entity (startPos, endPos, entityName).
|
|
79
|
+
const startPos = offset || 0;
|
|
80
|
+
const endPos = startPos + sample.length - 1;
|
|
81
|
+
entities.push({
|
|
82
|
+
startPos,
|
|
83
|
+
endPos,
|
|
84
|
+
entity: entity.name,
|
|
85
|
+
});
|
|
86
|
+
// Replace the entities with the sample value
|
|
87
|
+
return sample;
|
|
88
|
+
});
|
|
89
|
+
newUtterances.push({
|
|
90
|
+
text,
|
|
91
|
+
entities,
|
|
92
|
+
});
|
|
93
|
+
};
|
|
94
|
+
// find all the entities referenced by this intent
|
|
95
|
+
// first pass over all utterances guarantees every utterance used
|
|
96
|
+
utterances.forEach((utterance) => {
|
|
97
|
+
// find all the entities used in this utterance
|
|
98
|
+
const entityMatches = [...utterance.matchAll(exports.VF_ENTITY_REGEXP)];
|
|
99
|
+
entityMatches.forEach((match) => {
|
|
100
|
+
const entityID = match[2];
|
|
101
|
+
// if this entity hasn't been visited before, initialize the ref and populate samples with all synonyms of the entity
|
|
102
|
+
if (!entityRef[entityID]) {
|
|
103
|
+
entityRef[entityID] = { samples: [], utterances: [] };
|
|
104
|
+
const entity = entitiesByID[entityID];
|
|
105
|
+
if (entity) {
|
|
106
|
+
entityRef[entityID].samples.push(...slot_1.getAllSamples(entity.inputs));
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
entityRef[entityID].utterances.push(utterance);
|
|
110
|
+
});
|
|
111
|
+
addNewUtterance(utterance);
|
|
112
|
+
});
|
|
113
|
+
while (Object.keys(entityRef).length > 0 && newUtterances.length < limit) {
|
|
114
|
+
const entityID = Object.keys(entityRef)[0];
|
|
115
|
+
const utterancesUsingEntity = (_a = entityRef[entityID]) === null || _a === void 0 ? void 0 : _a.utterances;
|
|
116
|
+
if (utterancesUsingEntity === null || utterancesUsingEntity === void 0 ? void 0 : utterancesUsingEntity.length) {
|
|
117
|
+
addNewUtterance(utterancesUsingEntity[newUtterances.length % utterancesUsingEntity.length]);
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
delete entityRef[entityID];
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return newUtterances;
|
|
124
|
+
};
|
|
125
|
+
exports.utteranceEntityPermutations = utteranceEntityPermutations;
|
|
126
|
+
const ALPHANUMERIC_REGEXP = /[\dA-Za-z{}]/;
|
|
127
|
+
// some NLP/NLU models do not allow entity classifications without a space seperator: 'I work at {startupName}flow' => 'I work at {startupName} flow'
|
|
128
|
+
const injectUtteranceSpaces = (originalUtterance) => {
|
|
129
|
+
let spacesAdded = 0;
|
|
130
|
+
let utterance = originalUtterance ? originalUtterance.trim() : '';
|
|
131
|
+
const slots = [...utterance.matchAll(exports.VF_ENTITY_REGEXP)];
|
|
132
|
+
slots.forEach((slot) => {
|
|
133
|
+
let index = slot.index + spacesAdded;
|
|
134
|
+
// Check if space should be added before slot
|
|
135
|
+
if (index > 0 && utterance[index - 1].match(ALPHANUMERIC_REGEXP)) {
|
|
136
|
+
utterance = `${utterance.slice(0, index)} ${utterance.slice(index)}`;
|
|
137
|
+
++spacesAdded;
|
|
138
|
+
++index;
|
|
139
|
+
}
|
|
140
|
+
// Check if space should be added after slot
|
|
141
|
+
if (index + slot[0].length < utterance.length - 1 && utterance[index + slot[0].length].match(ALPHANUMERIC_REGEXP)) {
|
|
142
|
+
utterance = `${utterance.slice(0, index + slot[0].length)} ${utterance.slice(index + slot[0].length)}`;
|
|
143
|
+
++spacesAdded;
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
return utterance;
|
|
147
|
+
};
|
|
148
|
+
exports.injectUtteranceSpaces = injectUtteranceSpaces;
|
|
149
|
+
// VF.HELP -> help
|
|
150
|
+
const cleanVFIntentName = (intentName) => (intentName.startsWith('VF.') ? intentName.slice(3).toLowerCase() : intentName);
|
|
151
|
+
exports.cleanVFIntentName = cleanVFIntentName;
|
|
40
152
|
//# sourceMappingURL=intent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intent.js","sourceRoot":"","sources":["../../../src/utils/intent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"intent.js","sourceRoot":"","sources":["../../../src/utils/intent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const addPrebuiltEntities: <A extends {
|
|
2
|
+
key: string;
|
|
3
|
+
inputs: string[];
|
|
4
|
+
}>(entities: A[], prebuiltEntities: Record<string, string[]>) => A[];
|
|
5
|
+
export declare const getUniqueSamples: (input: string) => string[];
|
|
6
|
+
export declare const getAllSamples: (inputs?: string[]) => string[];
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getAllSamples = exports.getUniqueSamples = exports.addPrebuiltEntities = void 0;
|
|
7
|
+
const uniqBy_1 = __importDefault(require("lodash/uniqBy"));
|
|
8
|
+
const addPrebuiltEntities = (entities, prebuiltEntities) => entities.map((entity) => {
|
|
9
|
+
if (prebuiltEntities[entity.key]) {
|
|
10
|
+
return Object.assign(Object.assign({}, entity), { inputs: [...entity.inputs, ...prebuiltEntities[entity.key]] });
|
|
11
|
+
}
|
|
12
|
+
return entity;
|
|
13
|
+
});
|
|
14
|
+
exports.addPrebuiltEntities = addPrebuiltEntities;
|
|
15
|
+
const getUniqueSamples = (input) => uniqBy_1.default(input.split(','), (sample) => sample.toLowerCase());
|
|
16
|
+
exports.getUniqueSamples = getUniqueSamples;
|
|
17
|
+
// spread all synonyms into string array ['car, automobile', 'plane, jet'] => ['car', 'automobile', 'plane', 'jet']
|
|
18
|
+
const getAllSamples = (inputs = []) => inputs.flatMap((input) => input.split(',')).filter((sample) => !!sample.trim());
|
|
19
|
+
exports.getAllSamples = getAllSamples;
|
|
20
|
+
//# sourceMappingURL=slot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slot.js","sourceRoot":"","sources":["../../../src/utils/slot.ts"],"names":[],"mappings":";;;;;;AAAA,2DAAoC;AAE7B,MAAM,mBAAmB,GAAG,CAA8C,QAAa,EAAE,gBAA0C,EAAO,EAAE,CACjJ,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;IACtB,IAAI,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;QAChC,uCACK,MAAM,KACT,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAC3D;KACH;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC,CAAC;AATQ,QAAA,mBAAmB,uBAS3B;AAEE,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,gBAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;AAAlG,QAAA,gBAAgB,oBAAkF;AAE/G,mHAAmH;AAC5G,MAAM,aAAa,GAAG,CAAC,SAAmB,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AAA3H,QAAA,aAAa,iBAA8G"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/crypto/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/crypto/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { MurmurHash3 } from 'murmurhash-wasm';
|
|
2
2
|
import { hex2abc } from "./hex2abc";
|
|
3
3
|
export class MurmurHash {
|
|
4
|
-
static hash(key, seed) {
|
|
4
|
+
static hash(key, seed = 0) {
|
|
5
5
|
const hash = MurmurHash3.hash32(key, seed);
|
|
6
6
|
const value = hash.readUInt32BE();
|
|
7
7
|
const hex = value.toString(16);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"murmurhash.js","sourceRoot":"","sources":["../../../src/crypto/murmurhash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,kBAAyB;AAE3C,MAAM,OAAO,UAAU;IACd,MAAM,CAAC,IAAI,CAAC,GAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"murmurhash.js","sourceRoot":"","sources":["../../../src/crypto/murmurhash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,kBAAyB;AAE3C,MAAM,OAAO,UAAU;IACd,MAAM,CAAC,IAAI,CAAC,GAAW,EAAE,IAAI,GAAG,CAAC;QACtC,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAE/B,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;CACF;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -10,6 +10,7 @@ export * as number from './number';
|
|
|
10
10
|
export * as object from './object';
|
|
11
11
|
export * as promise from './promise';
|
|
12
12
|
export * as protocol from './protocol';
|
|
13
|
+
export * as slot from './slot';
|
|
13
14
|
export * as string from './string';
|
|
14
15
|
export * as time from './time';
|
|
15
16
|
export * as timezones from './timezones';
|
package/build/esm/utils/index.js
CHANGED
|
@@ -10,6 +10,7 @@ export * as number from './number';
|
|
|
10
10
|
export * as object from './object';
|
|
11
11
|
export * as promise from './promise';
|
|
12
12
|
export * as protocol from './protocol';
|
|
13
|
+
export * as slot from './slot';
|
|
13
14
|
export * as string from './string';
|
|
14
15
|
export * as time from './time';
|
|
15
16
|
export * as timezones from './timezones';
|
|
@@ -1 +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"}
|
|
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,IAAI,MAAM,QAAQ,CAAC;AAC/B,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"}
|
|
@@ -15,3 +15,19 @@ export declare const getSlotType: (slots: BuiltinSlot<string, string>[], slot: {
|
|
|
15
15
|
value?: string;
|
|
16
16
|
};
|
|
17
17
|
}) => string;
|
|
18
|
+
export declare const VF_ENTITY_REGEXP: RegExp;
|
|
19
|
+
export interface JSONEntity {
|
|
20
|
+
startPos: number;
|
|
21
|
+
endPos: number;
|
|
22
|
+
entity: string;
|
|
23
|
+
}
|
|
24
|
+
export interface JSONUtterance {
|
|
25
|
+
text?: string;
|
|
26
|
+
entities?: JSONEntity[];
|
|
27
|
+
}
|
|
28
|
+
export declare const utteranceEntityPermutations: (utterances: string[], entitiesByID: Record<string, {
|
|
29
|
+
inputs: string[];
|
|
30
|
+
name: string;
|
|
31
|
+
}>, limit?: number) => JSONUtterance[];
|
|
32
|
+
export declare const injectUtteranceSpaces: (originalUtterance: string) => string;
|
|
33
|
+
export declare const cleanVFIntentName: (intentName: string) => string;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import _sample from 'lodash/sample';
|
|
1
2
|
import { LOWER_CASE_CUSTOM_SLOT_TYPE, SLOT_REGEXP, SPACE_REGEXP } from "../constants";
|
|
3
|
+
import { getAllSamples } from './slot';
|
|
2
4
|
export const formatIntentName = (name) => {
|
|
3
5
|
if (!name) {
|
|
4
6
|
return name;
|
|
@@ -31,4 +33,108 @@ export const getSlotType = (slots, slot) => {
|
|
|
31
33
|
}
|
|
32
34
|
return type;
|
|
33
35
|
};
|
|
36
|
+
export const VF_ENTITY_REGEXP = /{{\[(\w{1,32})]\.(\w{1,32})}}/gi;
|
|
37
|
+
// extension of the String.prototype.replace format
|
|
38
|
+
const continuousReplace = (text, regex, replacer) => {
|
|
39
|
+
// regex without any global flags (g or i)
|
|
40
|
+
const localRegex = new RegExp(regex, '');
|
|
41
|
+
let temp;
|
|
42
|
+
let current = text;
|
|
43
|
+
// keep replacing until there is nothing else to replace (local replaces one instance at a time, this is important to keep positional offset data)
|
|
44
|
+
while (temp !== current) {
|
|
45
|
+
temp = current;
|
|
46
|
+
current = current.replace(localRegex, replacer);
|
|
47
|
+
}
|
|
48
|
+
return current;
|
|
49
|
+
};
|
|
50
|
+
export const utteranceEntityPermutations = (utterances, entitiesByID, limit = 22
|
|
51
|
+
// eslint-disable-next-line sonarjs/cognitive-complexity
|
|
52
|
+
) => {
|
|
53
|
+
var _a;
|
|
54
|
+
const newUtterances = [];
|
|
55
|
+
const entityRef = {};
|
|
56
|
+
const addNewUtterance = (utterance) => {
|
|
57
|
+
if (!(utterance === null || utterance === void 0 ? void 0 : utterance.trim()))
|
|
58
|
+
return;
|
|
59
|
+
const entities = [];
|
|
60
|
+
// Find all occurences of {entityName} in training utterances
|
|
61
|
+
const text = continuousReplace(utterance, VF_ENTITY_REGEXP, (_match, entityName, entityID, offset) => {
|
|
62
|
+
var _a, _b, _c;
|
|
63
|
+
const entity = entitiesByID[entityID];
|
|
64
|
+
if (!entity)
|
|
65
|
+
return entityName;
|
|
66
|
+
const sample = (((_a = entityRef[entityID]) === null || _a === void 0 ? void 0 : _a.samples.shift()) || _sample(getAllSamples(entity === null || entity === void 0 ? void 0 : entity.inputs)) || entityName).trim();
|
|
67
|
+
if (!((_c = (_b = entityRef[entityID]) === null || _b === void 0 ? void 0 : _b.samples) === null || _c === void 0 ? void 0 : _c.length))
|
|
68
|
+
delete entityRef[entityID];
|
|
69
|
+
// This module should additionally create one full training utterance with positional entity (startPos, endPos, entityName).
|
|
70
|
+
const startPos = offset || 0;
|
|
71
|
+
const endPos = startPos + sample.length - 1;
|
|
72
|
+
entities.push({
|
|
73
|
+
startPos,
|
|
74
|
+
endPos,
|
|
75
|
+
entity: entity.name,
|
|
76
|
+
});
|
|
77
|
+
// Replace the entities with the sample value
|
|
78
|
+
return sample;
|
|
79
|
+
});
|
|
80
|
+
newUtterances.push({
|
|
81
|
+
text,
|
|
82
|
+
entities,
|
|
83
|
+
});
|
|
84
|
+
};
|
|
85
|
+
// find all the entities referenced by this intent
|
|
86
|
+
// first pass over all utterances guarantees every utterance used
|
|
87
|
+
utterances.forEach((utterance) => {
|
|
88
|
+
// find all the entities used in this utterance
|
|
89
|
+
const entityMatches = [...utterance.matchAll(VF_ENTITY_REGEXP)];
|
|
90
|
+
entityMatches.forEach((match) => {
|
|
91
|
+
const entityID = match[2];
|
|
92
|
+
// if this entity hasn't been visited before, initialize the ref and populate samples with all synonyms of the entity
|
|
93
|
+
if (!entityRef[entityID]) {
|
|
94
|
+
entityRef[entityID] = { samples: [], utterances: [] };
|
|
95
|
+
const entity = entitiesByID[entityID];
|
|
96
|
+
if (entity) {
|
|
97
|
+
entityRef[entityID].samples.push(...getAllSamples(entity.inputs));
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
entityRef[entityID].utterances.push(utterance);
|
|
101
|
+
});
|
|
102
|
+
addNewUtterance(utterance);
|
|
103
|
+
});
|
|
104
|
+
while (Object.keys(entityRef).length > 0 && newUtterances.length < limit) {
|
|
105
|
+
const entityID = Object.keys(entityRef)[0];
|
|
106
|
+
const utterancesUsingEntity = (_a = entityRef[entityID]) === null || _a === void 0 ? void 0 : _a.utterances;
|
|
107
|
+
if (utterancesUsingEntity === null || utterancesUsingEntity === void 0 ? void 0 : utterancesUsingEntity.length) {
|
|
108
|
+
addNewUtterance(utterancesUsingEntity[newUtterances.length % utterancesUsingEntity.length]);
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
delete entityRef[entityID];
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return newUtterances;
|
|
115
|
+
};
|
|
116
|
+
const ALPHANUMERIC_REGEXP = /[\dA-Za-z{}]/;
|
|
117
|
+
// some NLP/NLU models do not allow entity classifications without a space seperator: 'I work at {startupName}flow' => 'I work at {startupName} flow'
|
|
118
|
+
export const injectUtteranceSpaces = (originalUtterance) => {
|
|
119
|
+
let spacesAdded = 0;
|
|
120
|
+
let utterance = originalUtterance ? originalUtterance.trim() : '';
|
|
121
|
+
const slots = [...utterance.matchAll(VF_ENTITY_REGEXP)];
|
|
122
|
+
slots.forEach((slot) => {
|
|
123
|
+
let index = slot.index + spacesAdded;
|
|
124
|
+
// Check if space should be added before slot
|
|
125
|
+
if (index > 0 && utterance[index - 1].match(ALPHANUMERIC_REGEXP)) {
|
|
126
|
+
utterance = `${utterance.slice(0, index)} ${utterance.slice(index)}`;
|
|
127
|
+
++spacesAdded;
|
|
128
|
+
++index;
|
|
129
|
+
}
|
|
130
|
+
// Check if space should be added after slot
|
|
131
|
+
if (index + slot[0].length < utterance.length - 1 && utterance[index + slot[0].length].match(ALPHANUMERIC_REGEXP)) {
|
|
132
|
+
utterance = `${utterance.slice(0, index + slot[0].length)} ${utterance.slice(index + slot[0].length)}`;
|
|
133
|
+
++spacesAdded;
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
return utterance;
|
|
137
|
+
};
|
|
138
|
+
// VF.HELP -> help
|
|
139
|
+
export const cleanVFIntentName = (intentName) => (intentName.startsWith('VF.') ? intentName.slice(3).toLowerCase() : intentName);
|
|
34
140
|
//# sourceMappingURL=intent.js.map
|
|
@@ -1 +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"}
|
|
1
|
+
{"version":3,"file":"intent.js","sourceRoot":"","sources":["../../../src/utils/intent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const addPrebuiltEntities: <A extends {
|
|
2
|
+
key: string;
|
|
3
|
+
inputs: string[];
|
|
4
|
+
}>(entities: A[], prebuiltEntities: Record<string, string[]>) => A[];
|
|
5
|
+
export declare const getUniqueSamples: (input: string) => string[];
|
|
6
|
+
export declare const getAllSamples: (inputs?: string[]) => string[];
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import _uniqBy from 'lodash/uniqBy';
|
|
2
|
+
export const addPrebuiltEntities = (entities, prebuiltEntities) => entities.map((entity) => {
|
|
3
|
+
if (prebuiltEntities[entity.key]) {
|
|
4
|
+
return Object.assign(Object.assign({}, entity), { inputs: [...entity.inputs, ...prebuiltEntities[entity.key]] });
|
|
5
|
+
}
|
|
6
|
+
return entity;
|
|
7
|
+
});
|
|
8
|
+
export const getUniqueSamples = (input) => _uniqBy(input.split(','), (sample) => sample.toLowerCase());
|
|
9
|
+
// spread all synonyms into string array ['car, automobile', 'plane, jet'] => ['car', 'automobile', 'plane', 'jet']
|
|
10
|
+
export const getAllSamples = (inputs = []) => inputs.flatMap((input) => input.split(',')).filter((sample) => !!sample.trim());
|
|
11
|
+
//# sourceMappingURL=slot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slot.js","sourceRoot":"","sources":["../../../src/utils/slot.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,eAAe,CAAC;AAEpC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAA8C,QAAa,EAAE,gBAA0C,EAAO,EAAE,CACjJ,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;IACtB,IAAI,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;QAChC,uCACK,MAAM,KACT,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAC3D;KACH;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;AAE/G,mHAAmH;AACnH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,SAAmB,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC"}
|
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.15.
|
|
4
|
+
"version": "7.15.4",
|
|
5
5
|
"author": "Voiceflow",
|
|
6
6
|
"bugs": {
|
|
7
7
|
"url": "https://github.com/voiceflow/libs/issues"
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"cuid": "^2.1.8",
|
|
14
14
|
"dayjs": "^1.10.7",
|
|
15
15
|
"lodash": "^4.17.21",
|
|
16
|
-
"murmurhash-wasm": "^1.
|
|
16
|
+
"murmurhash-wasm": "^1.3.0",
|
|
17
17
|
"number-to-words": "^1.2.4",
|
|
18
18
|
"typescript-fsa": "3.0.0"
|
|
19
19
|
},
|
|
@@ -73,5 +73,5 @@
|
|
|
73
73
|
"test:single": "NODE_ENV=test ts-mocha --paths --config config/tests/mocharc.yml",
|
|
74
74
|
"test:unit": "NODE_ENV=test nyc --report-dir=nyc_coverage_unit ts-mocha --paths --config config/tests/mocharc.yml 'tests/**/*.unit.ts'"
|
|
75
75
|
},
|
|
76
|
-
"gitHead": "
|
|
76
|
+
"gitHead": "a14e7defd4f1636ec94bfa8d220987f36f0cdc7d"
|
|
77
77
|
}
|