@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.
@@ -1,2 +1,3 @@
1
1
  export { default as Base64 } from './base64';
2
+ export { default as MurmurHash } from './murmurhash';
2
3
  export { default as Synchronous } from './synchronous';
@@ -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"}
@@ -1,4 +1,4 @@
1
1
  export declare class MurmurHash {
2
- static hash(key: string, seed: number): string;
2
+ static hash(key: string, seed?: number): string;
3
3
  }
4
4
  export default MurmurHash;
@@ -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,IAAY;QAC1C,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"}
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":";;;AAAA,4CAAkG;AAE3F,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,wBAAY,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;AAZW,QAAA,gBAAgB,oBAY3B;AAEK,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,uBAAW,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;AAfO,QAAA,0BAA0B,8BAejC;AAEC,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,uCAA2B,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;AAfW,QAAA,WAAW,eAetB"}
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,2 +1,3 @@
1
1
  export { default as Base64 } from './base64';
2
+ export { default as MurmurHash } from './murmurhash';
2
3
  export { default as Synchronous } from './synchronous';
@@ -1,3 +1,4 @@
1
1
  export { default as Base64 } from './base64';
2
+ export { default as MurmurHash } from './murmurhash';
2
3
  export { default as Synchronous } from './synchronous';
3
4
  //# sourceMappingURL=index.js.map
@@ -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,4 +1,4 @@
1
1
  export declare class MurmurHash {
2
- static hash(key: string, seed: number): string;
2
+ static hash(key: string, seed?: number): string;
3
3
  }
4
4
  export default MurmurHash;
@@ -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,IAAY;QAC1C,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"}
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';
@@ -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.0",
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.2.2",
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": "a6e4cb2fb4d1144bfae03d7ad42b3cce37cff28a"
76
+ "gitHead": "a14e7defd4f1636ec94bfa8d220987f36f0cdc7d"
77
77
  }