├── .gitignore ├── .npmignore ├── Proto └── service │ ├── rpc │ ├── arkit_blend_shapes_pb.d.ts │ ├── arkit_blend_shapes_pb.js │ ├── arkit_blend_shapes_pb_service.d.ts │ └── arkit_blend_shapes_pb_service.js │ ├── service.proto │ ├── service_pb.d.ts │ ├── service_pb.js │ ├── service_pb_service.d.ts │ └── service_pb_service.js ├── README.md ├── dist ├── cjs │ └── convai-web-client.js ├── typings │ ├── CharacterUtil.d.ts │ ├── audio_recorder.d.ts │ ├── audio_recorder_processor.d.ts │ ├── convai_client.d.ts │ ├── convai_grpc_client.d.ts │ ├── manageClients.d.ts │ ├── narrativeDesign.d.ts │ ├── streaming_audio_player.d.ts │ └── types.d.ts └── umd │ └── convai-web-client.umd.js ├── package-lock.json ├── package.json ├── tsconfig.json └── webpack.config.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | package-lock.json 3 | /src 4 | /_proto -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | # Ignore all test files 2 | test 3 | 4 | # Ignore all documentation 5 | docs 6 | 7 | # Ignore all log files 8 | *.log 9 | 10 | # Ignore all node modules 11 | node_modules 12 | 13 | # Ignore all configuration files 14 | *.config.js 15 | 16 | install.Unix.sh 17 | 18 | # Ignore src and proto 19 | src/ 20 | Proto/ -------------------------------------------------------------------------------- /Proto/service/rpc/arkit_blend_shapes_pb.d.ts: -------------------------------------------------------------------------------- 1 | // package: service 2 | // file: rpc/arkit_blend_shapes.proto 3 | 4 | import * as jspb from "google-protobuf"; 5 | 6 | export class ARKitBlendShapesData extends jspb.Message { 7 | hasArKitBlendShapes(): boolean; 8 | clearArKitBlendShapes(): void; 9 | getArKitBlendShapes(): ARKitBlendShapes | undefined; 10 | setArKitBlendShapes(value?: ARKitBlendShapes): void; 11 | 12 | serializeBinary(): Uint8Array; 13 | toObject(includeInstance?: boolean): ARKitBlendShapesData.AsObject; 14 | static toObject(includeInstance: boolean, msg: ARKitBlendShapesData): ARKitBlendShapesData.AsObject; 15 | static extensions: {[key: number]: jspb.ExtensionFieldInfo}; 16 | static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; 17 | static serializeBinaryToWriter(message: ARKitBlendShapesData, writer: jspb.BinaryWriter): void; 18 | static deserializeBinary(bytes: Uint8Array): ARKitBlendShapesData; 19 | static deserializeBinaryFromReader(message: ARKitBlendShapesData, reader: jspb.BinaryReader): ARKitBlendShapesData; 20 | } 21 | 22 | export namespace ARKitBlendShapesData { 23 | export type AsObject = { 24 | arKitBlendShapes?: ARKitBlendShapes.AsObject, 25 | } 26 | } 27 | 28 | export class ARKitBlendShapes extends jspb.Message { 29 | getBrowDownLeft(): number; 30 | setBrowDownLeft(value: number): void; 31 | 32 | getBrowDownRight(): number; 33 | setBrowDownRight(value: number): void; 34 | 35 | getBrowInnerUp(): number; 36 | setBrowInnerUp(value: number): void; 37 | 38 | getBrowOuterUpLeft(): number; 39 | setBrowOuterUpLeft(value: number): void; 40 | 41 | getBrowOuterUpRight(): number; 42 | setBrowOuterUpRight(value: number): void; 43 | 44 | getCheekPuff(): number; 45 | setCheekPuff(value: number): void; 46 | 47 | getCheekSquintLeft(): number; 48 | setCheekSquintLeft(value: number): void; 49 | 50 | getCheekSquintRight(): number; 51 | setCheekSquintRight(value: number): void; 52 | 53 | getEyeBlinkLeft(): number; 54 | setEyeBlinkLeft(value: number): void; 55 | 56 | getEyeBlinkRight(): number; 57 | setEyeBlinkRight(value: number): void; 58 | 59 | getEyeLookDownLeft(): number; 60 | setEyeLookDownLeft(value: number): void; 61 | 62 | getEyeLookDownRight(): number; 63 | setEyeLookDownRight(value: number): void; 64 | 65 | getEyeLookInLeft(): number; 66 | setEyeLookInLeft(value: number): void; 67 | 68 | getEyeLookInRight(): number; 69 | setEyeLookInRight(value: number): void; 70 | 71 | getEyeLookOutLeft(): number; 72 | setEyeLookOutLeft(value: number): void; 73 | 74 | getEyeLookOutRight(): number; 75 | setEyeLookOutRight(value: number): void; 76 | 77 | getEyeLookUpLeft(): number; 78 | setEyeLookUpLeft(value: number): void; 79 | 80 | getEyeLookUpRight(): number; 81 | setEyeLookUpRight(value: number): void; 82 | 83 | getEyeSquintLeft(): number; 84 | setEyeSquintLeft(value: number): void; 85 | 86 | getEyeSquintRight(): number; 87 | setEyeSquintRight(value: number): void; 88 | 89 | getEyeWideLeft(): number; 90 | setEyeWideLeft(value: number): void; 91 | 92 | getEyeWideRight(): number; 93 | setEyeWideRight(value: number): void; 94 | 95 | getJawForward(): number; 96 | setJawForward(value: number): void; 97 | 98 | getJawLeft(): number; 99 | setJawLeft(value: number): void; 100 | 101 | getJawOpen(): number; 102 | setJawOpen(value: number): void; 103 | 104 | getJawRight(): number; 105 | setJawRight(value: number): void; 106 | 107 | getMouthClose(): number; 108 | setMouthClose(value: number): void; 109 | 110 | getMouthDimpleLeft(): number; 111 | setMouthDimpleLeft(value: number): void; 112 | 113 | getMouthDimpleRight(): number; 114 | setMouthDimpleRight(value: number): void; 115 | 116 | getMouthFrownLeft(): number; 117 | setMouthFrownLeft(value: number): void; 118 | 119 | getMouthFrownRight(): number; 120 | setMouthFrownRight(value: number): void; 121 | 122 | getMouthFunnel(): number; 123 | setMouthFunnel(value: number): void; 124 | 125 | getMouthLeft(): number; 126 | setMouthLeft(value: number): void; 127 | 128 | getMouthLowerDownLeft(): number; 129 | setMouthLowerDownLeft(value: number): void; 130 | 131 | getMouthLowerDownRight(): number; 132 | setMouthLowerDownRight(value: number): void; 133 | 134 | getMouthPressLeft(): number; 135 | setMouthPressLeft(value: number): void; 136 | 137 | getMouthPressRight(): number; 138 | setMouthPressRight(value: number): void; 139 | 140 | getMouthPucker(): number; 141 | setMouthPucker(value: number): void; 142 | 143 | getMouthRight(): number; 144 | setMouthRight(value: number): void; 145 | 146 | getMouthRollLower(): number; 147 | setMouthRollLower(value: number): void; 148 | 149 | getMouthRollUpper(): number; 150 | setMouthRollUpper(value: number): void; 151 | 152 | getMouthShrugLower(): number; 153 | setMouthShrugLower(value: number): void; 154 | 155 | getMouthShrugUpper(): number; 156 | setMouthShrugUpper(value: number): void; 157 | 158 | getMouthSmileLeft(): number; 159 | setMouthSmileLeft(value: number): void; 160 | 161 | getMouthSmileRight(): number; 162 | setMouthSmileRight(value: number): void; 163 | 164 | getMouthStretchLeft(): number; 165 | setMouthStretchLeft(value: number): void; 166 | 167 | getMouthStretchRight(): number; 168 | setMouthStretchRight(value: number): void; 169 | 170 | getMouthUpperUpLeft(): number; 171 | setMouthUpperUpLeft(value: number): void; 172 | 173 | getMouthUpperUpRight(): number; 174 | setMouthUpperUpRight(value: number): void; 175 | 176 | getNoseSneerLeft(): number; 177 | setNoseSneerLeft(value: number): void; 178 | 179 | getNoseSneerRight(): number; 180 | setNoseSneerRight(value: number): void; 181 | 182 | getTongueOut(): number; 183 | setTongueOut(value: number): void; 184 | 185 | serializeBinary(): Uint8Array; 186 | toObject(includeInstance?: boolean): ARKitBlendShapes.AsObject; 187 | static toObject(includeInstance: boolean, msg: ARKitBlendShapes): ARKitBlendShapes.AsObject; 188 | static extensions: {[key: number]: jspb.ExtensionFieldInfo}; 189 | static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; 190 | static serializeBinaryToWriter(message: ARKitBlendShapes, writer: jspb.BinaryWriter): void; 191 | static deserializeBinary(bytes: Uint8Array): ARKitBlendShapes; 192 | static deserializeBinaryFromReader(message: ARKitBlendShapes, reader: jspb.BinaryReader): ARKitBlendShapes; 193 | } 194 | 195 | export namespace ARKitBlendShapes { 196 | export type AsObject = { 197 | browDownLeft: number, 198 | browDownRight: number, 199 | browInnerUp: number, 200 | browOuterUpLeft: number, 201 | browOuterUpRight: number, 202 | cheekPuff: number, 203 | cheekSquintLeft: number, 204 | cheekSquintRight: number, 205 | eyeBlinkLeft: number, 206 | eyeBlinkRight: number, 207 | eyeLookDownLeft: number, 208 | eyeLookDownRight: number, 209 | eyeLookInLeft: number, 210 | eyeLookInRight: number, 211 | eyeLookOutLeft: number, 212 | eyeLookOutRight: number, 213 | eyeLookUpLeft: number, 214 | eyeLookUpRight: number, 215 | eyeSquintLeft: number, 216 | eyeSquintRight: number, 217 | eyeWideLeft: number, 218 | eyeWideRight: number, 219 | jawForward: number, 220 | jawLeft: number, 221 | jawOpen: number, 222 | jawRight: number, 223 | mouthClose: number, 224 | mouthDimpleLeft: number, 225 | mouthDimpleRight: number, 226 | mouthFrownLeft: number, 227 | mouthFrownRight: number, 228 | mouthFunnel: number, 229 | mouthLeft: number, 230 | mouthLowerDownLeft: number, 231 | mouthLowerDownRight: number, 232 | mouthPressLeft: number, 233 | mouthPressRight: number, 234 | mouthPucker: number, 235 | mouthRight: number, 236 | mouthRollLower: number, 237 | mouthRollUpper: number, 238 | mouthShrugLower: number, 239 | mouthShrugUpper: number, 240 | mouthSmileLeft: number, 241 | mouthSmileRight: number, 242 | mouthStretchLeft: number, 243 | mouthStretchRight: number, 244 | mouthUpperUpLeft: number, 245 | mouthUpperUpRight: number, 246 | noseSneerLeft: number, 247 | noseSneerRight: number, 248 | tongueOut: number, 249 | } 250 | } 251 | 252 | -------------------------------------------------------------------------------- /Proto/service/rpc/arkit_blend_shapes_pb.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @fileoverview 3 | * @enhanceable 4 | * @suppress {messageConventions} JS Compiler reports an error if a variable or 5 | * field starts with 'MSG_' and isn't a translatable message. 6 | * @public 7 | */ 8 | // GENERATED CODE -- DO NOT EDIT! 9 | 10 | var jspb = require('google-protobuf'); 11 | var goog = jspb; 12 | var global = Function('return this')(); 13 | 14 | goog.exportSymbol('proto.service.ARKitBlendShapes', null, global); 15 | goog.exportSymbol('proto.service.ARKitBlendShapesData', null, global); 16 | 17 | /** 18 | * Generated by JsPbCodeGenerator. 19 | * @param {Array=} opt_data Optional initial data array, typically from a 20 | * server response, or constructed directly in Javascript. The array is used 21 | * in place and becomes part of the constructed object. It is not cloned. 22 | * If no data is provided, the constructed object will be empty, but still 23 | * valid. 24 | * @extends {jspb.Message} 25 | * @constructor 26 | */ 27 | proto.service.ARKitBlendShapesData = function(opt_data) { 28 | jspb.Message.initialize(this, opt_data, 0, -1, null, null); 29 | }; 30 | goog.inherits(proto.service.ARKitBlendShapesData, jspb.Message); 31 | if (goog.DEBUG && !COMPILED) { 32 | proto.service.ARKitBlendShapesData.displayName = 'proto.service.ARKitBlendShapesData'; 33 | } 34 | 35 | 36 | if (jspb.Message.GENERATE_TO_OBJECT) { 37 | /** 38 | * Creates an object representation of this proto suitable for use in Soy templates. 39 | * Field names that are reserved in JavaScript and will be renamed to pb_name. 40 | * To access a reserved field use, foo.pb_, eg, foo.pb_default. 41 | * For the list of reserved names please see: 42 | * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. 43 | * @param {boolean=} opt_includeInstance Whether to include the JSPB instance 44 | * for transitional soy proto support: http://goto/soy-param-migration 45 | * @return {!Object} 46 | */ 47 | proto.service.ARKitBlendShapesData.prototype.toObject = function(opt_includeInstance) { 48 | return proto.service.ARKitBlendShapesData.toObject(opt_includeInstance, this); 49 | }; 50 | 51 | 52 | /** 53 | * Static version of the {@see toObject} method. 54 | * @param {boolean|undefined} includeInstance Whether to include the JSPB 55 | * instance for transitional soy proto support: 56 | * http://goto/soy-param-migration 57 | * @param {!proto.service.ARKitBlendShapesData} msg The msg instance to transform. 58 | * @return {!Object} 59 | * @suppress {unusedLocalVariables} f is only used for nested messages 60 | */ 61 | proto.service.ARKitBlendShapesData.toObject = function(includeInstance, msg) { 62 | var f, obj = { 63 | arKitBlendShapes: (f = msg.getArKitBlendShapes()) && proto.service.ARKitBlendShapes.toObject(includeInstance, f) 64 | }; 65 | 66 | if (includeInstance) { 67 | obj.$jspbMessageInstance = msg; 68 | } 69 | return obj; 70 | }; 71 | } 72 | 73 | 74 | /** 75 | * Deserializes binary data (in protobuf wire format). 76 | * @param {jspb.ByteSource} bytes The bytes to deserialize. 77 | * @return {!proto.service.ARKitBlendShapesData} 78 | */ 79 | proto.service.ARKitBlendShapesData.deserializeBinary = function(bytes) { 80 | var reader = new jspb.BinaryReader(bytes); 81 | var msg = new proto.service.ARKitBlendShapesData; 82 | return proto.service.ARKitBlendShapesData.deserializeBinaryFromReader(msg, reader); 83 | }; 84 | 85 | 86 | /** 87 | * Deserializes binary data (in protobuf wire format) from the 88 | * given reader into the given message object. 89 | * @param {!proto.service.ARKitBlendShapesData} msg The message object to deserialize into. 90 | * @param {!jspb.BinaryReader} reader The BinaryReader to use. 91 | * @return {!proto.service.ARKitBlendShapesData} 92 | */ 93 | proto.service.ARKitBlendShapesData.deserializeBinaryFromReader = function(msg, reader) { 94 | while (reader.nextField()) { 95 | if (reader.isEndGroup()) { 96 | break; 97 | } 98 | var field = reader.getFieldNumber(); 99 | switch (field) { 100 | case 1: 101 | var value = new proto.service.ARKitBlendShapes; 102 | reader.readMessage(value,proto.service.ARKitBlendShapes.deserializeBinaryFromReader); 103 | msg.setArKitBlendShapes(value); 104 | break; 105 | default: 106 | reader.skipField(); 107 | break; 108 | } 109 | } 110 | return msg; 111 | }; 112 | 113 | 114 | /** 115 | * Serializes the message to binary data (in protobuf wire format). 116 | * @return {!Uint8Array} 117 | */ 118 | proto.service.ARKitBlendShapesData.prototype.serializeBinary = function() { 119 | var writer = new jspb.BinaryWriter(); 120 | proto.service.ARKitBlendShapesData.serializeBinaryToWriter(this, writer); 121 | return writer.getResultBuffer(); 122 | }; 123 | 124 | 125 | /** 126 | * Serializes the given message to binary data (in protobuf wire 127 | * format), writing to the given BinaryWriter. 128 | * @param {!proto.service.ARKitBlendShapesData} message 129 | * @param {!jspb.BinaryWriter} writer 130 | * @suppress {unusedLocalVariables} f is only used for nested messages 131 | */ 132 | proto.service.ARKitBlendShapesData.serializeBinaryToWriter = function(message, writer) { 133 | var f = undefined; 134 | f = message.getArKitBlendShapes(); 135 | if (f != null) { 136 | writer.writeMessage( 137 | 1, 138 | f, 139 | proto.service.ARKitBlendShapes.serializeBinaryToWriter 140 | ); 141 | } 142 | }; 143 | 144 | 145 | /** 146 | * optional ARKitBlendShapes ar_kit_blend_shapes = 1; 147 | * @return {?proto.service.ARKitBlendShapes} 148 | */ 149 | proto.service.ARKitBlendShapesData.prototype.getArKitBlendShapes = function() { 150 | return /** @type{?proto.service.ARKitBlendShapes} */ ( 151 | jspb.Message.getWrapperField(this, proto.service.ARKitBlendShapes, 1)); 152 | }; 153 | 154 | 155 | /** @param {?proto.service.ARKitBlendShapes|undefined} value */ 156 | proto.service.ARKitBlendShapesData.prototype.setArKitBlendShapes = function(value) { 157 | jspb.Message.setWrapperField(this, 1, value); 158 | }; 159 | 160 | 161 | proto.service.ARKitBlendShapesData.prototype.clearArKitBlendShapes = function() { 162 | this.setArKitBlendShapes(undefined); 163 | }; 164 | 165 | 166 | /** 167 | * Returns whether this field is set. 168 | * @return {!boolean} 169 | */ 170 | proto.service.ARKitBlendShapesData.prototype.hasArKitBlendShapes = function() { 171 | return jspb.Message.getField(this, 1) != null; 172 | }; 173 | 174 | 175 | 176 | /** 177 | * Generated by JsPbCodeGenerator. 178 | * @param {Array=} opt_data Optional initial data array, typically from a 179 | * server response, or constructed directly in Javascript. The array is used 180 | * in place and becomes part of the constructed object. It is not cloned. 181 | * If no data is provided, the constructed object will be empty, but still 182 | * valid. 183 | * @extends {jspb.Message} 184 | * @constructor 185 | */ 186 | proto.service.ARKitBlendShapes = function(opt_data) { 187 | jspb.Message.initialize(this, opt_data, 0, -1, null, null); 188 | }; 189 | goog.inherits(proto.service.ARKitBlendShapes, jspb.Message); 190 | if (goog.DEBUG && !COMPILED) { 191 | proto.service.ARKitBlendShapes.displayName = 'proto.service.ARKitBlendShapes'; 192 | } 193 | 194 | 195 | if (jspb.Message.GENERATE_TO_OBJECT) { 196 | /** 197 | * Creates an object representation of this proto suitable for use in Soy templates. 198 | * Field names that are reserved in JavaScript and will be renamed to pb_name. 199 | * To access a reserved field use, foo.pb_, eg, foo.pb_default. 200 | * For the list of reserved names please see: 201 | * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. 202 | * @param {boolean=} opt_includeInstance Whether to include the JSPB instance 203 | * for transitional soy proto support: http://goto/soy-param-migration 204 | * @return {!Object} 205 | */ 206 | proto.service.ARKitBlendShapes.prototype.toObject = function(opt_includeInstance) { 207 | return proto.service.ARKitBlendShapes.toObject(opt_includeInstance, this); 208 | }; 209 | 210 | 211 | /** 212 | * Static version of the {@see toObject} method. 213 | * @param {boolean|undefined} includeInstance Whether to include the JSPB 214 | * instance for transitional soy proto support: 215 | * http://goto/soy-param-migration 216 | * @param {!proto.service.ARKitBlendShapes} msg The msg instance to transform. 217 | * @return {!Object} 218 | * @suppress {unusedLocalVariables} f is only used for nested messages 219 | */ 220 | proto.service.ARKitBlendShapes.toObject = function(includeInstance, msg) { 221 | var f, obj = { 222 | browDownLeft: +jspb.Message.getFieldWithDefault(msg, 1, 0.0), 223 | browDownRight: +jspb.Message.getFieldWithDefault(msg, 2, 0.0), 224 | browInnerUp: +jspb.Message.getFieldWithDefault(msg, 3, 0.0), 225 | browOuterUpLeft: +jspb.Message.getFieldWithDefault(msg, 4, 0.0), 226 | browOuterUpRight: +jspb.Message.getFieldWithDefault(msg, 5, 0.0), 227 | cheekPuff: +jspb.Message.getFieldWithDefault(msg, 6, 0.0), 228 | cheekSquintLeft: +jspb.Message.getFieldWithDefault(msg, 7, 0.0), 229 | cheekSquintRight: +jspb.Message.getFieldWithDefault(msg, 8, 0.0), 230 | eyeBlinkLeft: +jspb.Message.getFieldWithDefault(msg, 9, 0.0), 231 | eyeBlinkRight: +jspb.Message.getFieldWithDefault(msg, 10, 0.0), 232 | eyeLookDownLeft: +jspb.Message.getFieldWithDefault(msg, 11, 0.0), 233 | eyeLookDownRight: +jspb.Message.getFieldWithDefault(msg, 12, 0.0), 234 | eyeLookInLeft: +jspb.Message.getFieldWithDefault(msg, 13, 0.0), 235 | eyeLookInRight: +jspb.Message.getFieldWithDefault(msg, 14, 0.0), 236 | eyeLookOutLeft: +jspb.Message.getFieldWithDefault(msg, 15, 0.0), 237 | eyeLookOutRight: +jspb.Message.getFieldWithDefault(msg, 16, 0.0), 238 | eyeLookUpLeft: +jspb.Message.getFieldWithDefault(msg, 17, 0.0), 239 | eyeLookUpRight: +jspb.Message.getFieldWithDefault(msg, 18, 0.0), 240 | eyeSquintLeft: +jspb.Message.getFieldWithDefault(msg, 19, 0.0), 241 | eyeSquintRight: +jspb.Message.getFieldWithDefault(msg, 20, 0.0), 242 | eyeWideLeft: +jspb.Message.getFieldWithDefault(msg, 21, 0.0), 243 | eyeWideRight: +jspb.Message.getFieldWithDefault(msg, 22, 0.0), 244 | jawForward: +jspb.Message.getFieldWithDefault(msg, 23, 0.0), 245 | jawLeft: +jspb.Message.getFieldWithDefault(msg, 24, 0.0), 246 | jawOpen: +jspb.Message.getFieldWithDefault(msg, 25, 0.0), 247 | jawRight: +jspb.Message.getFieldWithDefault(msg, 26, 0.0), 248 | mouthClose: +jspb.Message.getFieldWithDefault(msg, 27, 0.0), 249 | mouthDimpleLeft: +jspb.Message.getFieldWithDefault(msg, 28, 0.0), 250 | mouthDimpleRight: +jspb.Message.getFieldWithDefault(msg, 29, 0.0), 251 | mouthFrownLeft: +jspb.Message.getFieldWithDefault(msg, 30, 0.0), 252 | mouthFrownRight: +jspb.Message.getFieldWithDefault(msg, 31, 0.0), 253 | mouthFunnel: +jspb.Message.getFieldWithDefault(msg, 32, 0.0), 254 | mouthLeft: +jspb.Message.getFieldWithDefault(msg, 33, 0.0), 255 | mouthLowerDownLeft: +jspb.Message.getFieldWithDefault(msg, 34, 0.0), 256 | mouthLowerDownRight: +jspb.Message.getFieldWithDefault(msg, 35, 0.0), 257 | mouthPressLeft: +jspb.Message.getFieldWithDefault(msg, 36, 0.0), 258 | mouthPressRight: +jspb.Message.getFieldWithDefault(msg, 37, 0.0), 259 | mouthPucker: +jspb.Message.getFieldWithDefault(msg, 38, 0.0), 260 | mouthRight: +jspb.Message.getFieldWithDefault(msg, 39, 0.0), 261 | mouthRollLower: +jspb.Message.getFieldWithDefault(msg, 40, 0.0), 262 | mouthRollUpper: +jspb.Message.getFieldWithDefault(msg, 41, 0.0), 263 | mouthShrugLower: +jspb.Message.getFieldWithDefault(msg, 42, 0.0), 264 | mouthShrugUpper: +jspb.Message.getFieldWithDefault(msg, 43, 0.0), 265 | mouthSmileLeft: +jspb.Message.getFieldWithDefault(msg, 44, 0.0), 266 | mouthSmileRight: +jspb.Message.getFieldWithDefault(msg, 45, 0.0), 267 | mouthStretchLeft: +jspb.Message.getFieldWithDefault(msg, 46, 0.0), 268 | mouthStretchRight: +jspb.Message.getFieldWithDefault(msg, 47, 0.0), 269 | mouthUpperUpLeft: +jspb.Message.getFieldWithDefault(msg, 48, 0.0), 270 | mouthUpperUpRight: +jspb.Message.getFieldWithDefault(msg, 49, 0.0), 271 | noseSneerLeft: +jspb.Message.getFieldWithDefault(msg, 50, 0.0), 272 | noseSneerRight: +jspb.Message.getFieldWithDefault(msg, 51, 0.0), 273 | tongueOut: +jspb.Message.getFieldWithDefault(msg, 52, 0.0) 274 | }; 275 | 276 | if (includeInstance) { 277 | obj.$jspbMessageInstance = msg; 278 | } 279 | return obj; 280 | }; 281 | } 282 | 283 | 284 | /** 285 | * Deserializes binary data (in protobuf wire format). 286 | * @param {jspb.ByteSource} bytes The bytes to deserialize. 287 | * @return {!proto.service.ARKitBlendShapes} 288 | */ 289 | proto.service.ARKitBlendShapes.deserializeBinary = function(bytes) { 290 | var reader = new jspb.BinaryReader(bytes); 291 | var msg = new proto.service.ARKitBlendShapes; 292 | return proto.service.ARKitBlendShapes.deserializeBinaryFromReader(msg, reader); 293 | }; 294 | 295 | 296 | /** 297 | * Deserializes binary data (in protobuf wire format) from the 298 | * given reader into the given message object. 299 | * @param {!proto.service.ARKitBlendShapes} msg The message object to deserialize into. 300 | * @param {!jspb.BinaryReader} reader The BinaryReader to use. 301 | * @return {!proto.service.ARKitBlendShapes} 302 | */ 303 | proto.service.ARKitBlendShapes.deserializeBinaryFromReader = function(msg, reader) { 304 | while (reader.nextField()) { 305 | if (reader.isEndGroup()) { 306 | break; 307 | } 308 | var field = reader.getFieldNumber(); 309 | switch (field) { 310 | case 1: 311 | var value = /** @type {number} */ (reader.readFloat()); 312 | msg.setBrowDownLeft(value); 313 | break; 314 | case 2: 315 | var value = /** @type {number} */ (reader.readFloat()); 316 | msg.setBrowDownRight(value); 317 | break; 318 | case 3: 319 | var value = /** @type {number} */ (reader.readFloat()); 320 | msg.setBrowInnerUp(value); 321 | break; 322 | case 4: 323 | var value = /** @type {number} */ (reader.readFloat()); 324 | msg.setBrowOuterUpLeft(value); 325 | break; 326 | case 5: 327 | var value = /** @type {number} */ (reader.readFloat()); 328 | msg.setBrowOuterUpRight(value); 329 | break; 330 | case 6: 331 | var value = /** @type {number} */ (reader.readFloat()); 332 | msg.setCheekPuff(value); 333 | break; 334 | case 7: 335 | var value = /** @type {number} */ (reader.readFloat()); 336 | msg.setCheekSquintLeft(value); 337 | break; 338 | case 8: 339 | var value = /** @type {number} */ (reader.readFloat()); 340 | msg.setCheekSquintRight(value); 341 | break; 342 | case 9: 343 | var value = /** @type {number} */ (reader.readFloat()); 344 | msg.setEyeBlinkLeft(value); 345 | break; 346 | case 10: 347 | var value = /** @type {number} */ (reader.readFloat()); 348 | msg.setEyeBlinkRight(value); 349 | break; 350 | case 11: 351 | var value = /** @type {number} */ (reader.readFloat()); 352 | msg.setEyeLookDownLeft(value); 353 | break; 354 | case 12: 355 | var value = /** @type {number} */ (reader.readFloat()); 356 | msg.setEyeLookDownRight(value); 357 | break; 358 | case 13: 359 | var value = /** @type {number} */ (reader.readFloat()); 360 | msg.setEyeLookInLeft(value); 361 | break; 362 | case 14: 363 | var value = /** @type {number} */ (reader.readFloat()); 364 | msg.setEyeLookInRight(value); 365 | break; 366 | case 15: 367 | var value = /** @type {number} */ (reader.readFloat()); 368 | msg.setEyeLookOutLeft(value); 369 | break; 370 | case 16: 371 | var value = /** @type {number} */ (reader.readFloat()); 372 | msg.setEyeLookOutRight(value); 373 | break; 374 | case 17: 375 | var value = /** @type {number} */ (reader.readFloat()); 376 | msg.setEyeLookUpLeft(value); 377 | break; 378 | case 18: 379 | var value = /** @type {number} */ (reader.readFloat()); 380 | msg.setEyeLookUpRight(value); 381 | break; 382 | case 19: 383 | var value = /** @type {number} */ (reader.readFloat()); 384 | msg.setEyeSquintLeft(value); 385 | break; 386 | case 20: 387 | var value = /** @type {number} */ (reader.readFloat()); 388 | msg.setEyeSquintRight(value); 389 | break; 390 | case 21: 391 | var value = /** @type {number} */ (reader.readFloat()); 392 | msg.setEyeWideLeft(value); 393 | break; 394 | case 22: 395 | var value = /** @type {number} */ (reader.readFloat()); 396 | msg.setEyeWideRight(value); 397 | break; 398 | case 23: 399 | var value = /** @type {number} */ (reader.readFloat()); 400 | msg.setJawForward(value); 401 | break; 402 | case 24: 403 | var value = /** @type {number} */ (reader.readFloat()); 404 | msg.setJawLeft(value); 405 | break; 406 | case 25: 407 | var value = /** @type {number} */ (reader.readFloat()); 408 | msg.setJawOpen(value); 409 | break; 410 | case 26: 411 | var value = /** @type {number} */ (reader.readFloat()); 412 | msg.setJawRight(value); 413 | break; 414 | case 27: 415 | var value = /** @type {number} */ (reader.readFloat()); 416 | msg.setMouthClose(value); 417 | break; 418 | case 28: 419 | var value = /** @type {number} */ (reader.readFloat()); 420 | msg.setMouthDimpleLeft(value); 421 | break; 422 | case 29: 423 | var value = /** @type {number} */ (reader.readFloat()); 424 | msg.setMouthDimpleRight(value); 425 | break; 426 | case 30: 427 | var value = /** @type {number} */ (reader.readFloat()); 428 | msg.setMouthFrownLeft(value); 429 | break; 430 | case 31: 431 | var value = /** @type {number} */ (reader.readFloat()); 432 | msg.setMouthFrownRight(value); 433 | break; 434 | case 32: 435 | var value = /** @type {number} */ (reader.readFloat()); 436 | msg.setMouthFunnel(value); 437 | break; 438 | case 33: 439 | var value = /** @type {number} */ (reader.readFloat()); 440 | msg.setMouthLeft(value); 441 | break; 442 | case 34: 443 | var value = /** @type {number} */ (reader.readFloat()); 444 | msg.setMouthLowerDownLeft(value); 445 | break; 446 | case 35: 447 | var value = /** @type {number} */ (reader.readFloat()); 448 | msg.setMouthLowerDownRight(value); 449 | break; 450 | case 36: 451 | var value = /** @type {number} */ (reader.readFloat()); 452 | msg.setMouthPressLeft(value); 453 | break; 454 | case 37: 455 | var value = /** @type {number} */ (reader.readFloat()); 456 | msg.setMouthPressRight(value); 457 | break; 458 | case 38: 459 | var value = /** @type {number} */ (reader.readFloat()); 460 | msg.setMouthPucker(value); 461 | break; 462 | case 39: 463 | var value = /** @type {number} */ (reader.readFloat()); 464 | msg.setMouthRight(value); 465 | break; 466 | case 40: 467 | var value = /** @type {number} */ (reader.readFloat()); 468 | msg.setMouthRollLower(value); 469 | break; 470 | case 41: 471 | var value = /** @type {number} */ (reader.readFloat()); 472 | msg.setMouthRollUpper(value); 473 | break; 474 | case 42: 475 | var value = /** @type {number} */ (reader.readFloat()); 476 | msg.setMouthShrugLower(value); 477 | break; 478 | case 43: 479 | var value = /** @type {number} */ (reader.readFloat()); 480 | msg.setMouthShrugUpper(value); 481 | break; 482 | case 44: 483 | var value = /** @type {number} */ (reader.readFloat()); 484 | msg.setMouthSmileLeft(value); 485 | break; 486 | case 45: 487 | var value = /** @type {number} */ (reader.readFloat()); 488 | msg.setMouthSmileRight(value); 489 | break; 490 | case 46: 491 | var value = /** @type {number} */ (reader.readFloat()); 492 | msg.setMouthStretchLeft(value); 493 | break; 494 | case 47: 495 | var value = /** @type {number} */ (reader.readFloat()); 496 | msg.setMouthStretchRight(value); 497 | break; 498 | case 48: 499 | var value = /** @type {number} */ (reader.readFloat()); 500 | msg.setMouthUpperUpLeft(value); 501 | break; 502 | case 49: 503 | var value = /** @type {number} */ (reader.readFloat()); 504 | msg.setMouthUpperUpRight(value); 505 | break; 506 | case 50: 507 | var value = /** @type {number} */ (reader.readFloat()); 508 | msg.setNoseSneerLeft(value); 509 | break; 510 | case 51: 511 | var value = /** @type {number} */ (reader.readFloat()); 512 | msg.setNoseSneerRight(value); 513 | break; 514 | case 52: 515 | var value = /** @type {number} */ (reader.readFloat()); 516 | msg.setTongueOut(value); 517 | break; 518 | default: 519 | reader.skipField(); 520 | break; 521 | } 522 | } 523 | return msg; 524 | }; 525 | 526 | 527 | /** 528 | * Serializes the message to binary data (in protobuf wire format). 529 | * @return {!Uint8Array} 530 | */ 531 | proto.service.ARKitBlendShapes.prototype.serializeBinary = function() { 532 | var writer = new jspb.BinaryWriter(); 533 | proto.service.ARKitBlendShapes.serializeBinaryToWriter(this, writer); 534 | return writer.getResultBuffer(); 535 | }; 536 | 537 | 538 | /** 539 | * Serializes the given message to binary data (in protobuf wire 540 | * format), writing to the given BinaryWriter. 541 | * @param {!proto.service.ARKitBlendShapes} message 542 | * @param {!jspb.BinaryWriter} writer 543 | * @suppress {unusedLocalVariables} f is only used for nested messages 544 | */ 545 | proto.service.ARKitBlendShapes.serializeBinaryToWriter = function(message, writer) { 546 | var f = undefined; 547 | f = message.getBrowDownLeft(); 548 | if (f !== 0.0) { 549 | writer.writeFloat( 550 | 1, 551 | f 552 | ); 553 | } 554 | f = message.getBrowDownRight(); 555 | if (f !== 0.0) { 556 | writer.writeFloat( 557 | 2, 558 | f 559 | ); 560 | } 561 | f = message.getBrowInnerUp(); 562 | if (f !== 0.0) { 563 | writer.writeFloat( 564 | 3, 565 | f 566 | ); 567 | } 568 | f = message.getBrowOuterUpLeft(); 569 | if (f !== 0.0) { 570 | writer.writeFloat( 571 | 4, 572 | f 573 | ); 574 | } 575 | f = message.getBrowOuterUpRight(); 576 | if (f !== 0.0) { 577 | writer.writeFloat( 578 | 5, 579 | f 580 | ); 581 | } 582 | f = message.getCheekPuff(); 583 | if (f !== 0.0) { 584 | writer.writeFloat( 585 | 6, 586 | f 587 | ); 588 | } 589 | f = message.getCheekSquintLeft(); 590 | if (f !== 0.0) { 591 | writer.writeFloat( 592 | 7, 593 | f 594 | ); 595 | } 596 | f = message.getCheekSquintRight(); 597 | if (f !== 0.0) { 598 | writer.writeFloat( 599 | 8, 600 | f 601 | ); 602 | } 603 | f = message.getEyeBlinkLeft(); 604 | if (f !== 0.0) { 605 | writer.writeFloat( 606 | 9, 607 | f 608 | ); 609 | } 610 | f = message.getEyeBlinkRight(); 611 | if (f !== 0.0) { 612 | writer.writeFloat( 613 | 10, 614 | f 615 | ); 616 | } 617 | f = message.getEyeLookDownLeft(); 618 | if (f !== 0.0) { 619 | writer.writeFloat( 620 | 11, 621 | f 622 | ); 623 | } 624 | f = message.getEyeLookDownRight(); 625 | if (f !== 0.0) { 626 | writer.writeFloat( 627 | 12, 628 | f 629 | ); 630 | } 631 | f = message.getEyeLookInLeft(); 632 | if (f !== 0.0) { 633 | writer.writeFloat( 634 | 13, 635 | f 636 | ); 637 | } 638 | f = message.getEyeLookInRight(); 639 | if (f !== 0.0) { 640 | writer.writeFloat( 641 | 14, 642 | f 643 | ); 644 | } 645 | f = message.getEyeLookOutLeft(); 646 | if (f !== 0.0) { 647 | writer.writeFloat( 648 | 15, 649 | f 650 | ); 651 | } 652 | f = message.getEyeLookOutRight(); 653 | if (f !== 0.0) { 654 | writer.writeFloat( 655 | 16, 656 | f 657 | ); 658 | } 659 | f = message.getEyeLookUpLeft(); 660 | if (f !== 0.0) { 661 | writer.writeFloat( 662 | 17, 663 | f 664 | ); 665 | } 666 | f = message.getEyeLookUpRight(); 667 | if (f !== 0.0) { 668 | writer.writeFloat( 669 | 18, 670 | f 671 | ); 672 | } 673 | f = message.getEyeSquintLeft(); 674 | if (f !== 0.0) { 675 | writer.writeFloat( 676 | 19, 677 | f 678 | ); 679 | } 680 | f = message.getEyeSquintRight(); 681 | if (f !== 0.0) { 682 | writer.writeFloat( 683 | 20, 684 | f 685 | ); 686 | } 687 | f = message.getEyeWideLeft(); 688 | if (f !== 0.0) { 689 | writer.writeFloat( 690 | 21, 691 | f 692 | ); 693 | } 694 | f = message.getEyeWideRight(); 695 | if (f !== 0.0) { 696 | writer.writeFloat( 697 | 22, 698 | f 699 | ); 700 | } 701 | f = message.getJawForward(); 702 | if (f !== 0.0) { 703 | writer.writeFloat( 704 | 23, 705 | f 706 | ); 707 | } 708 | f = message.getJawLeft(); 709 | if (f !== 0.0) { 710 | writer.writeFloat( 711 | 24, 712 | f 713 | ); 714 | } 715 | f = message.getJawOpen(); 716 | if (f !== 0.0) { 717 | writer.writeFloat( 718 | 25, 719 | f 720 | ); 721 | } 722 | f = message.getJawRight(); 723 | if (f !== 0.0) { 724 | writer.writeFloat( 725 | 26, 726 | f 727 | ); 728 | } 729 | f = message.getMouthClose(); 730 | if (f !== 0.0) { 731 | writer.writeFloat( 732 | 27, 733 | f 734 | ); 735 | } 736 | f = message.getMouthDimpleLeft(); 737 | if (f !== 0.0) { 738 | writer.writeFloat( 739 | 28, 740 | f 741 | ); 742 | } 743 | f = message.getMouthDimpleRight(); 744 | if (f !== 0.0) { 745 | writer.writeFloat( 746 | 29, 747 | f 748 | ); 749 | } 750 | f = message.getMouthFrownLeft(); 751 | if (f !== 0.0) { 752 | writer.writeFloat( 753 | 30, 754 | f 755 | ); 756 | } 757 | f = message.getMouthFrownRight(); 758 | if (f !== 0.0) { 759 | writer.writeFloat( 760 | 31, 761 | f 762 | ); 763 | } 764 | f = message.getMouthFunnel(); 765 | if (f !== 0.0) { 766 | writer.writeFloat( 767 | 32, 768 | f 769 | ); 770 | } 771 | f = message.getMouthLeft(); 772 | if (f !== 0.0) { 773 | writer.writeFloat( 774 | 33, 775 | f 776 | ); 777 | } 778 | f = message.getMouthLowerDownLeft(); 779 | if (f !== 0.0) { 780 | writer.writeFloat( 781 | 34, 782 | f 783 | ); 784 | } 785 | f = message.getMouthLowerDownRight(); 786 | if (f !== 0.0) { 787 | writer.writeFloat( 788 | 35, 789 | f 790 | ); 791 | } 792 | f = message.getMouthPressLeft(); 793 | if (f !== 0.0) { 794 | writer.writeFloat( 795 | 36, 796 | f 797 | ); 798 | } 799 | f = message.getMouthPressRight(); 800 | if (f !== 0.0) { 801 | writer.writeFloat( 802 | 37, 803 | f 804 | ); 805 | } 806 | f = message.getMouthPucker(); 807 | if (f !== 0.0) { 808 | writer.writeFloat( 809 | 38, 810 | f 811 | ); 812 | } 813 | f = message.getMouthRight(); 814 | if (f !== 0.0) { 815 | writer.writeFloat( 816 | 39, 817 | f 818 | ); 819 | } 820 | f = message.getMouthRollLower(); 821 | if (f !== 0.0) { 822 | writer.writeFloat( 823 | 40, 824 | f 825 | ); 826 | } 827 | f = message.getMouthRollUpper(); 828 | if (f !== 0.0) { 829 | writer.writeFloat( 830 | 41, 831 | f 832 | ); 833 | } 834 | f = message.getMouthShrugLower(); 835 | if (f !== 0.0) { 836 | writer.writeFloat( 837 | 42, 838 | f 839 | ); 840 | } 841 | f = message.getMouthShrugUpper(); 842 | if (f !== 0.0) { 843 | writer.writeFloat( 844 | 43, 845 | f 846 | ); 847 | } 848 | f = message.getMouthSmileLeft(); 849 | if (f !== 0.0) { 850 | writer.writeFloat( 851 | 44, 852 | f 853 | ); 854 | } 855 | f = message.getMouthSmileRight(); 856 | if (f !== 0.0) { 857 | writer.writeFloat( 858 | 45, 859 | f 860 | ); 861 | } 862 | f = message.getMouthStretchLeft(); 863 | if (f !== 0.0) { 864 | writer.writeFloat( 865 | 46, 866 | f 867 | ); 868 | } 869 | f = message.getMouthStretchRight(); 870 | if (f !== 0.0) { 871 | writer.writeFloat( 872 | 47, 873 | f 874 | ); 875 | } 876 | f = message.getMouthUpperUpLeft(); 877 | if (f !== 0.0) { 878 | writer.writeFloat( 879 | 48, 880 | f 881 | ); 882 | } 883 | f = message.getMouthUpperUpRight(); 884 | if (f !== 0.0) { 885 | writer.writeFloat( 886 | 49, 887 | f 888 | ); 889 | } 890 | f = message.getNoseSneerLeft(); 891 | if (f !== 0.0) { 892 | writer.writeFloat( 893 | 50, 894 | f 895 | ); 896 | } 897 | f = message.getNoseSneerRight(); 898 | if (f !== 0.0) { 899 | writer.writeFloat( 900 | 51, 901 | f 902 | ); 903 | } 904 | f = message.getTongueOut(); 905 | if (f !== 0.0) { 906 | writer.writeFloat( 907 | 52, 908 | f 909 | ); 910 | } 911 | }; 912 | 913 | 914 | /** 915 | * optional float brow_down_left = 1; 916 | * @return {number} 917 | */ 918 | proto.service.ARKitBlendShapes.prototype.getBrowDownLeft = function() { 919 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 1, 0.0)); 920 | }; 921 | 922 | 923 | /** @param {number} value */ 924 | proto.service.ARKitBlendShapes.prototype.setBrowDownLeft = function(value) { 925 | jspb.Message.setProto3FloatField(this, 1, value); 926 | }; 927 | 928 | 929 | /** 930 | * optional float brow_down_right = 2; 931 | * @return {number} 932 | */ 933 | proto.service.ARKitBlendShapes.prototype.getBrowDownRight = function() { 934 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 2, 0.0)); 935 | }; 936 | 937 | 938 | /** @param {number} value */ 939 | proto.service.ARKitBlendShapes.prototype.setBrowDownRight = function(value) { 940 | jspb.Message.setProto3FloatField(this, 2, value); 941 | }; 942 | 943 | 944 | /** 945 | * optional float brow_inner_up = 3; 946 | * @return {number} 947 | */ 948 | proto.service.ARKitBlendShapes.prototype.getBrowInnerUp = function() { 949 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 3, 0.0)); 950 | }; 951 | 952 | 953 | /** @param {number} value */ 954 | proto.service.ARKitBlendShapes.prototype.setBrowInnerUp = function(value) { 955 | jspb.Message.setProto3FloatField(this, 3, value); 956 | }; 957 | 958 | 959 | /** 960 | * optional float brow_outer_up_left = 4; 961 | * @return {number} 962 | */ 963 | proto.service.ARKitBlendShapes.prototype.getBrowOuterUpLeft = function() { 964 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 4, 0.0)); 965 | }; 966 | 967 | 968 | /** @param {number} value */ 969 | proto.service.ARKitBlendShapes.prototype.setBrowOuterUpLeft = function(value) { 970 | jspb.Message.setProto3FloatField(this, 4, value); 971 | }; 972 | 973 | 974 | /** 975 | * optional float brow_outer_up_right = 5; 976 | * @return {number} 977 | */ 978 | proto.service.ARKitBlendShapes.prototype.getBrowOuterUpRight = function() { 979 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 5, 0.0)); 980 | }; 981 | 982 | 983 | /** @param {number} value */ 984 | proto.service.ARKitBlendShapes.prototype.setBrowOuterUpRight = function(value) { 985 | jspb.Message.setProto3FloatField(this, 5, value); 986 | }; 987 | 988 | 989 | /** 990 | * optional float cheek_puff = 6; 991 | * @return {number} 992 | */ 993 | proto.service.ARKitBlendShapes.prototype.getCheekPuff = function() { 994 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 6, 0.0)); 995 | }; 996 | 997 | 998 | /** @param {number} value */ 999 | proto.service.ARKitBlendShapes.prototype.setCheekPuff = function(value) { 1000 | jspb.Message.setProto3FloatField(this, 6, value); 1001 | }; 1002 | 1003 | 1004 | /** 1005 | * optional float cheek_squint_left = 7; 1006 | * @return {number} 1007 | */ 1008 | proto.service.ARKitBlendShapes.prototype.getCheekSquintLeft = function() { 1009 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 7, 0.0)); 1010 | }; 1011 | 1012 | 1013 | /** @param {number} value */ 1014 | proto.service.ARKitBlendShapes.prototype.setCheekSquintLeft = function(value) { 1015 | jspb.Message.setProto3FloatField(this, 7, value); 1016 | }; 1017 | 1018 | 1019 | /** 1020 | * optional float cheek_squint_right = 8; 1021 | * @return {number} 1022 | */ 1023 | proto.service.ARKitBlendShapes.prototype.getCheekSquintRight = function() { 1024 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 8, 0.0)); 1025 | }; 1026 | 1027 | 1028 | /** @param {number} value */ 1029 | proto.service.ARKitBlendShapes.prototype.setCheekSquintRight = function(value) { 1030 | jspb.Message.setProto3FloatField(this, 8, value); 1031 | }; 1032 | 1033 | 1034 | /** 1035 | * optional float eye_blink_left = 9; 1036 | * @return {number} 1037 | */ 1038 | proto.service.ARKitBlendShapes.prototype.getEyeBlinkLeft = function() { 1039 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 9, 0.0)); 1040 | }; 1041 | 1042 | 1043 | /** @param {number} value */ 1044 | proto.service.ARKitBlendShapes.prototype.setEyeBlinkLeft = function(value) { 1045 | jspb.Message.setProto3FloatField(this, 9, value); 1046 | }; 1047 | 1048 | 1049 | /** 1050 | * optional float eye_blink_right = 10; 1051 | * @return {number} 1052 | */ 1053 | proto.service.ARKitBlendShapes.prototype.getEyeBlinkRight = function() { 1054 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 10, 0.0)); 1055 | }; 1056 | 1057 | 1058 | /** @param {number} value */ 1059 | proto.service.ARKitBlendShapes.prototype.setEyeBlinkRight = function(value) { 1060 | jspb.Message.setProto3FloatField(this, 10, value); 1061 | }; 1062 | 1063 | 1064 | /** 1065 | * optional float eye_look_down_left = 11; 1066 | * @return {number} 1067 | */ 1068 | proto.service.ARKitBlendShapes.prototype.getEyeLookDownLeft = function() { 1069 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 11, 0.0)); 1070 | }; 1071 | 1072 | 1073 | /** @param {number} value */ 1074 | proto.service.ARKitBlendShapes.prototype.setEyeLookDownLeft = function(value) { 1075 | jspb.Message.setProto3FloatField(this, 11, value); 1076 | }; 1077 | 1078 | 1079 | /** 1080 | * optional float eye_look_down_right = 12; 1081 | * @return {number} 1082 | */ 1083 | proto.service.ARKitBlendShapes.prototype.getEyeLookDownRight = function() { 1084 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 12, 0.0)); 1085 | }; 1086 | 1087 | 1088 | /** @param {number} value */ 1089 | proto.service.ARKitBlendShapes.prototype.setEyeLookDownRight = function(value) { 1090 | jspb.Message.setProto3FloatField(this, 12, value); 1091 | }; 1092 | 1093 | 1094 | /** 1095 | * optional float eye_look_in_left = 13; 1096 | * @return {number} 1097 | */ 1098 | proto.service.ARKitBlendShapes.prototype.getEyeLookInLeft = function() { 1099 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 13, 0.0)); 1100 | }; 1101 | 1102 | 1103 | /** @param {number} value */ 1104 | proto.service.ARKitBlendShapes.prototype.setEyeLookInLeft = function(value) { 1105 | jspb.Message.setProto3FloatField(this, 13, value); 1106 | }; 1107 | 1108 | 1109 | /** 1110 | * optional float eye_look_in_right = 14; 1111 | * @return {number} 1112 | */ 1113 | proto.service.ARKitBlendShapes.prototype.getEyeLookInRight = function() { 1114 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 14, 0.0)); 1115 | }; 1116 | 1117 | 1118 | /** @param {number} value */ 1119 | proto.service.ARKitBlendShapes.prototype.setEyeLookInRight = function(value) { 1120 | jspb.Message.setProto3FloatField(this, 14, value); 1121 | }; 1122 | 1123 | 1124 | /** 1125 | * optional float eye_look_out_left = 15; 1126 | * @return {number} 1127 | */ 1128 | proto.service.ARKitBlendShapes.prototype.getEyeLookOutLeft = function() { 1129 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 15, 0.0)); 1130 | }; 1131 | 1132 | 1133 | /** @param {number} value */ 1134 | proto.service.ARKitBlendShapes.prototype.setEyeLookOutLeft = function(value) { 1135 | jspb.Message.setProto3FloatField(this, 15, value); 1136 | }; 1137 | 1138 | 1139 | /** 1140 | * optional float eye_look_out_right = 16; 1141 | * @return {number} 1142 | */ 1143 | proto.service.ARKitBlendShapes.prototype.getEyeLookOutRight = function() { 1144 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 16, 0.0)); 1145 | }; 1146 | 1147 | 1148 | /** @param {number} value */ 1149 | proto.service.ARKitBlendShapes.prototype.setEyeLookOutRight = function(value) { 1150 | jspb.Message.setProto3FloatField(this, 16, value); 1151 | }; 1152 | 1153 | 1154 | /** 1155 | * optional float eye_look_up_left = 17; 1156 | * @return {number} 1157 | */ 1158 | proto.service.ARKitBlendShapes.prototype.getEyeLookUpLeft = function() { 1159 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 17, 0.0)); 1160 | }; 1161 | 1162 | 1163 | /** @param {number} value */ 1164 | proto.service.ARKitBlendShapes.prototype.setEyeLookUpLeft = function(value) { 1165 | jspb.Message.setProto3FloatField(this, 17, value); 1166 | }; 1167 | 1168 | 1169 | /** 1170 | * optional float eye_look_up_right = 18; 1171 | * @return {number} 1172 | */ 1173 | proto.service.ARKitBlendShapes.prototype.getEyeLookUpRight = function() { 1174 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 18, 0.0)); 1175 | }; 1176 | 1177 | 1178 | /** @param {number} value */ 1179 | proto.service.ARKitBlendShapes.prototype.setEyeLookUpRight = function(value) { 1180 | jspb.Message.setProto3FloatField(this, 18, value); 1181 | }; 1182 | 1183 | 1184 | /** 1185 | * optional float eye_squint_left = 19; 1186 | * @return {number} 1187 | */ 1188 | proto.service.ARKitBlendShapes.prototype.getEyeSquintLeft = function() { 1189 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 19, 0.0)); 1190 | }; 1191 | 1192 | 1193 | /** @param {number} value */ 1194 | proto.service.ARKitBlendShapes.prototype.setEyeSquintLeft = function(value) { 1195 | jspb.Message.setProto3FloatField(this, 19, value); 1196 | }; 1197 | 1198 | 1199 | /** 1200 | * optional float eye_squint_right = 20; 1201 | * @return {number} 1202 | */ 1203 | proto.service.ARKitBlendShapes.prototype.getEyeSquintRight = function() { 1204 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 20, 0.0)); 1205 | }; 1206 | 1207 | 1208 | /** @param {number} value */ 1209 | proto.service.ARKitBlendShapes.prototype.setEyeSquintRight = function(value) { 1210 | jspb.Message.setProto3FloatField(this, 20, value); 1211 | }; 1212 | 1213 | 1214 | /** 1215 | * optional float eye_wide_left = 21; 1216 | * @return {number} 1217 | */ 1218 | proto.service.ARKitBlendShapes.prototype.getEyeWideLeft = function() { 1219 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 21, 0.0)); 1220 | }; 1221 | 1222 | 1223 | /** @param {number} value */ 1224 | proto.service.ARKitBlendShapes.prototype.setEyeWideLeft = function(value) { 1225 | jspb.Message.setProto3FloatField(this, 21, value); 1226 | }; 1227 | 1228 | 1229 | /** 1230 | * optional float eye_wide_right = 22; 1231 | * @return {number} 1232 | */ 1233 | proto.service.ARKitBlendShapes.prototype.getEyeWideRight = function() { 1234 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 22, 0.0)); 1235 | }; 1236 | 1237 | 1238 | /** @param {number} value */ 1239 | proto.service.ARKitBlendShapes.prototype.setEyeWideRight = function(value) { 1240 | jspb.Message.setProto3FloatField(this, 22, value); 1241 | }; 1242 | 1243 | 1244 | /** 1245 | * optional float jaw_forward = 23; 1246 | * @return {number} 1247 | */ 1248 | proto.service.ARKitBlendShapes.prototype.getJawForward = function() { 1249 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 23, 0.0)); 1250 | }; 1251 | 1252 | 1253 | /** @param {number} value */ 1254 | proto.service.ARKitBlendShapes.prototype.setJawForward = function(value) { 1255 | jspb.Message.setProto3FloatField(this, 23, value); 1256 | }; 1257 | 1258 | 1259 | /** 1260 | * optional float jaw_left = 24; 1261 | * @return {number} 1262 | */ 1263 | proto.service.ARKitBlendShapes.prototype.getJawLeft = function() { 1264 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 24, 0.0)); 1265 | }; 1266 | 1267 | 1268 | /** @param {number} value */ 1269 | proto.service.ARKitBlendShapes.prototype.setJawLeft = function(value) { 1270 | jspb.Message.setProto3FloatField(this, 24, value); 1271 | }; 1272 | 1273 | 1274 | /** 1275 | * optional float jaw_open = 25; 1276 | * @return {number} 1277 | */ 1278 | proto.service.ARKitBlendShapes.prototype.getJawOpen = function() { 1279 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 25, 0.0)); 1280 | }; 1281 | 1282 | 1283 | /** @param {number} value */ 1284 | proto.service.ARKitBlendShapes.prototype.setJawOpen = function(value) { 1285 | jspb.Message.setProto3FloatField(this, 25, value); 1286 | }; 1287 | 1288 | 1289 | /** 1290 | * optional float jaw_right = 26; 1291 | * @return {number} 1292 | */ 1293 | proto.service.ARKitBlendShapes.prototype.getJawRight = function() { 1294 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 26, 0.0)); 1295 | }; 1296 | 1297 | 1298 | /** @param {number} value */ 1299 | proto.service.ARKitBlendShapes.prototype.setJawRight = function(value) { 1300 | jspb.Message.setProto3FloatField(this, 26, value); 1301 | }; 1302 | 1303 | 1304 | /** 1305 | * optional float mouth_close = 27; 1306 | * @return {number} 1307 | */ 1308 | proto.service.ARKitBlendShapes.prototype.getMouthClose = function() { 1309 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 27, 0.0)); 1310 | }; 1311 | 1312 | 1313 | /** @param {number} value */ 1314 | proto.service.ARKitBlendShapes.prototype.setMouthClose = function(value) { 1315 | jspb.Message.setProto3FloatField(this, 27, value); 1316 | }; 1317 | 1318 | 1319 | /** 1320 | * optional float mouth_dimple_left = 28; 1321 | * @return {number} 1322 | */ 1323 | proto.service.ARKitBlendShapes.prototype.getMouthDimpleLeft = function() { 1324 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 28, 0.0)); 1325 | }; 1326 | 1327 | 1328 | /** @param {number} value */ 1329 | proto.service.ARKitBlendShapes.prototype.setMouthDimpleLeft = function(value) { 1330 | jspb.Message.setProto3FloatField(this, 28, value); 1331 | }; 1332 | 1333 | 1334 | /** 1335 | * optional float mouth_dimple_right = 29; 1336 | * @return {number} 1337 | */ 1338 | proto.service.ARKitBlendShapes.prototype.getMouthDimpleRight = function() { 1339 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 29, 0.0)); 1340 | }; 1341 | 1342 | 1343 | /** @param {number} value */ 1344 | proto.service.ARKitBlendShapes.prototype.setMouthDimpleRight = function(value) { 1345 | jspb.Message.setProto3FloatField(this, 29, value); 1346 | }; 1347 | 1348 | 1349 | /** 1350 | * optional float mouth_frown_left = 30; 1351 | * @return {number} 1352 | */ 1353 | proto.service.ARKitBlendShapes.prototype.getMouthFrownLeft = function() { 1354 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 30, 0.0)); 1355 | }; 1356 | 1357 | 1358 | /** @param {number} value */ 1359 | proto.service.ARKitBlendShapes.prototype.setMouthFrownLeft = function(value) { 1360 | jspb.Message.setProto3FloatField(this, 30, value); 1361 | }; 1362 | 1363 | 1364 | /** 1365 | * optional float mouth_frown_right = 31; 1366 | * @return {number} 1367 | */ 1368 | proto.service.ARKitBlendShapes.prototype.getMouthFrownRight = function() { 1369 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 31, 0.0)); 1370 | }; 1371 | 1372 | 1373 | /** @param {number} value */ 1374 | proto.service.ARKitBlendShapes.prototype.setMouthFrownRight = function(value) { 1375 | jspb.Message.setProto3FloatField(this, 31, value); 1376 | }; 1377 | 1378 | 1379 | /** 1380 | * optional float mouth_funnel = 32; 1381 | * @return {number} 1382 | */ 1383 | proto.service.ARKitBlendShapes.prototype.getMouthFunnel = function() { 1384 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 32, 0.0)); 1385 | }; 1386 | 1387 | 1388 | /** @param {number} value */ 1389 | proto.service.ARKitBlendShapes.prototype.setMouthFunnel = function(value) { 1390 | jspb.Message.setProto3FloatField(this, 32, value); 1391 | }; 1392 | 1393 | 1394 | /** 1395 | * optional float mouth_left = 33; 1396 | * @return {number} 1397 | */ 1398 | proto.service.ARKitBlendShapes.prototype.getMouthLeft = function() { 1399 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 33, 0.0)); 1400 | }; 1401 | 1402 | 1403 | /** @param {number} value */ 1404 | proto.service.ARKitBlendShapes.prototype.setMouthLeft = function(value) { 1405 | jspb.Message.setProto3FloatField(this, 33, value); 1406 | }; 1407 | 1408 | 1409 | /** 1410 | * optional float mouth_lower_down_left = 34; 1411 | * @return {number} 1412 | */ 1413 | proto.service.ARKitBlendShapes.prototype.getMouthLowerDownLeft = function() { 1414 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 34, 0.0)); 1415 | }; 1416 | 1417 | 1418 | /** @param {number} value */ 1419 | proto.service.ARKitBlendShapes.prototype.setMouthLowerDownLeft = function(value) { 1420 | jspb.Message.setProto3FloatField(this, 34, value); 1421 | }; 1422 | 1423 | 1424 | /** 1425 | * optional float mouth_lower_down_right = 35; 1426 | * @return {number} 1427 | */ 1428 | proto.service.ARKitBlendShapes.prototype.getMouthLowerDownRight = function() { 1429 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 35, 0.0)); 1430 | }; 1431 | 1432 | 1433 | /** @param {number} value */ 1434 | proto.service.ARKitBlendShapes.prototype.setMouthLowerDownRight = function(value) { 1435 | jspb.Message.setProto3FloatField(this, 35, value); 1436 | }; 1437 | 1438 | 1439 | /** 1440 | * optional float mouth_press_left = 36; 1441 | * @return {number} 1442 | */ 1443 | proto.service.ARKitBlendShapes.prototype.getMouthPressLeft = function() { 1444 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 36, 0.0)); 1445 | }; 1446 | 1447 | 1448 | /** @param {number} value */ 1449 | proto.service.ARKitBlendShapes.prototype.setMouthPressLeft = function(value) { 1450 | jspb.Message.setProto3FloatField(this, 36, value); 1451 | }; 1452 | 1453 | 1454 | /** 1455 | * optional float mouth_press_right = 37; 1456 | * @return {number} 1457 | */ 1458 | proto.service.ARKitBlendShapes.prototype.getMouthPressRight = function() { 1459 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 37, 0.0)); 1460 | }; 1461 | 1462 | 1463 | /** @param {number} value */ 1464 | proto.service.ARKitBlendShapes.prototype.setMouthPressRight = function(value) { 1465 | jspb.Message.setProto3FloatField(this, 37, value); 1466 | }; 1467 | 1468 | 1469 | /** 1470 | * optional float mouth_pucker = 38; 1471 | * @return {number} 1472 | */ 1473 | proto.service.ARKitBlendShapes.prototype.getMouthPucker = function() { 1474 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 38, 0.0)); 1475 | }; 1476 | 1477 | 1478 | /** @param {number} value */ 1479 | proto.service.ARKitBlendShapes.prototype.setMouthPucker = function(value) { 1480 | jspb.Message.setProto3FloatField(this, 38, value); 1481 | }; 1482 | 1483 | 1484 | /** 1485 | * optional float mouth_right = 39; 1486 | * @return {number} 1487 | */ 1488 | proto.service.ARKitBlendShapes.prototype.getMouthRight = function() { 1489 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 39, 0.0)); 1490 | }; 1491 | 1492 | 1493 | /** @param {number} value */ 1494 | proto.service.ARKitBlendShapes.prototype.setMouthRight = function(value) { 1495 | jspb.Message.setProto3FloatField(this, 39, value); 1496 | }; 1497 | 1498 | 1499 | /** 1500 | * optional float mouth_roll_lower = 40; 1501 | * @return {number} 1502 | */ 1503 | proto.service.ARKitBlendShapes.prototype.getMouthRollLower = function() { 1504 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 40, 0.0)); 1505 | }; 1506 | 1507 | 1508 | /** @param {number} value */ 1509 | proto.service.ARKitBlendShapes.prototype.setMouthRollLower = function(value) { 1510 | jspb.Message.setProto3FloatField(this, 40, value); 1511 | }; 1512 | 1513 | 1514 | /** 1515 | * optional float mouth_roll_upper = 41; 1516 | * @return {number} 1517 | */ 1518 | proto.service.ARKitBlendShapes.prototype.getMouthRollUpper = function() { 1519 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 41, 0.0)); 1520 | }; 1521 | 1522 | 1523 | /** @param {number} value */ 1524 | proto.service.ARKitBlendShapes.prototype.setMouthRollUpper = function(value) { 1525 | jspb.Message.setProto3FloatField(this, 41, value); 1526 | }; 1527 | 1528 | 1529 | /** 1530 | * optional float mouth_shrug_lower = 42; 1531 | * @return {number} 1532 | */ 1533 | proto.service.ARKitBlendShapes.prototype.getMouthShrugLower = function() { 1534 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 42, 0.0)); 1535 | }; 1536 | 1537 | 1538 | /** @param {number} value */ 1539 | proto.service.ARKitBlendShapes.prototype.setMouthShrugLower = function(value) { 1540 | jspb.Message.setProto3FloatField(this, 42, value); 1541 | }; 1542 | 1543 | 1544 | /** 1545 | * optional float mouth_shrug_upper = 43; 1546 | * @return {number} 1547 | */ 1548 | proto.service.ARKitBlendShapes.prototype.getMouthShrugUpper = function() { 1549 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 43, 0.0)); 1550 | }; 1551 | 1552 | 1553 | /** @param {number} value */ 1554 | proto.service.ARKitBlendShapes.prototype.setMouthShrugUpper = function(value) { 1555 | jspb.Message.setProto3FloatField(this, 43, value); 1556 | }; 1557 | 1558 | 1559 | /** 1560 | * optional float mouth_smile_left = 44; 1561 | * @return {number} 1562 | */ 1563 | proto.service.ARKitBlendShapes.prototype.getMouthSmileLeft = function() { 1564 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 44, 0.0)); 1565 | }; 1566 | 1567 | 1568 | /** @param {number} value */ 1569 | proto.service.ARKitBlendShapes.prototype.setMouthSmileLeft = function(value) { 1570 | jspb.Message.setProto3FloatField(this, 44, value); 1571 | }; 1572 | 1573 | 1574 | /** 1575 | * optional float mouth_smile_right = 45; 1576 | * @return {number} 1577 | */ 1578 | proto.service.ARKitBlendShapes.prototype.getMouthSmileRight = function() { 1579 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 45, 0.0)); 1580 | }; 1581 | 1582 | 1583 | /** @param {number} value */ 1584 | proto.service.ARKitBlendShapes.prototype.setMouthSmileRight = function(value) { 1585 | jspb.Message.setProto3FloatField(this, 45, value); 1586 | }; 1587 | 1588 | 1589 | /** 1590 | * optional float mouth_stretch_left = 46; 1591 | * @return {number} 1592 | */ 1593 | proto.service.ARKitBlendShapes.prototype.getMouthStretchLeft = function() { 1594 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 46, 0.0)); 1595 | }; 1596 | 1597 | 1598 | /** @param {number} value */ 1599 | proto.service.ARKitBlendShapes.prototype.setMouthStretchLeft = function(value) { 1600 | jspb.Message.setProto3FloatField(this, 46, value); 1601 | }; 1602 | 1603 | 1604 | /** 1605 | * optional float mouth_stretch_right = 47; 1606 | * @return {number} 1607 | */ 1608 | proto.service.ARKitBlendShapes.prototype.getMouthStretchRight = function() { 1609 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 47, 0.0)); 1610 | }; 1611 | 1612 | 1613 | /** @param {number} value */ 1614 | proto.service.ARKitBlendShapes.prototype.setMouthStretchRight = function(value) { 1615 | jspb.Message.setProto3FloatField(this, 47, value); 1616 | }; 1617 | 1618 | 1619 | /** 1620 | * optional float mouth_upper_up_left = 48; 1621 | * @return {number} 1622 | */ 1623 | proto.service.ARKitBlendShapes.prototype.getMouthUpperUpLeft = function() { 1624 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 48, 0.0)); 1625 | }; 1626 | 1627 | 1628 | /** @param {number} value */ 1629 | proto.service.ARKitBlendShapes.prototype.setMouthUpperUpLeft = function(value) { 1630 | jspb.Message.setProto3FloatField(this, 48, value); 1631 | }; 1632 | 1633 | 1634 | /** 1635 | * optional float mouth_upper_up_right = 49; 1636 | * @return {number} 1637 | */ 1638 | proto.service.ARKitBlendShapes.prototype.getMouthUpperUpRight = function() { 1639 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 49, 0.0)); 1640 | }; 1641 | 1642 | 1643 | /** @param {number} value */ 1644 | proto.service.ARKitBlendShapes.prototype.setMouthUpperUpRight = function(value) { 1645 | jspb.Message.setProto3FloatField(this, 49, value); 1646 | }; 1647 | 1648 | 1649 | /** 1650 | * optional float nose_sneer_left = 50; 1651 | * @return {number} 1652 | */ 1653 | proto.service.ARKitBlendShapes.prototype.getNoseSneerLeft = function() { 1654 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 50, 0.0)); 1655 | }; 1656 | 1657 | 1658 | /** @param {number} value */ 1659 | proto.service.ARKitBlendShapes.prototype.setNoseSneerLeft = function(value) { 1660 | jspb.Message.setProto3FloatField(this, 50, value); 1661 | }; 1662 | 1663 | 1664 | /** 1665 | * optional float nose_sneer_right = 51; 1666 | * @return {number} 1667 | */ 1668 | proto.service.ARKitBlendShapes.prototype.getNoseSneerRight = function() { 1669 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 51, 0.0)); 1670 | }; 1671 | 1672 | 1673 | /** @param {number} value */ 1674 | proto.service.ARKitBlendShapes.prototype.setNoseSneerRight = function(value) { 1675 | jspb.Message.setProto3FloatField(this, 51, value); 1676 | }; 1677 | 1678 | 1679 | /** 1680 | * optional float tongue_out = 52; 1681 | * @return {number} 1682 | */ 1683 | proto.service.ARKitBlendShapes.prototype.getTongueOut = function() { 1684 | return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 52, 0.0)); 1685 | }; 1686 | 1687 | 1688 | /** @param {number} value */ 1689 | proto.service.ARKitBlendShapes.prototype.setTongueOut = function(value) { 1690 | jspb.Message.setProto3FloatField(this, 52, value); 1691 | }; 1692 | 1693 | 1694 | goog.object.extend(exports, proto.service); 1695 | -------------------------------------------------------------------------------- /Proto/service/rpc/arkit_blend_shapes_pb_service.d.ts: -------------------------------------------------------------------------------- 1 | // package: service 2 | // file: rpc/arkit_blend_shapes.proto 3 | 4 | -------------------------------------------------------------------------------- /Proto/service/rpc/arkit_blend_shapes_pb_service.js: -------------------------------------------------------------------------------- 1 | // package: service 2 | // file: rpc/arkit_blend_shapes.proto 3 | 4 | -------------------------------------------------------------------------------- /Proto/service/service.proto: -------------------------------------------------------------------------------- 1 | // service.proto 2 | syntax = "proto3"; 3 | package service; 4 | import "rpc/arkit_blend_shapes.proto"; 5 | 6 | service ConvaiService { 7 | rpc Hello(HelloRequest) returns (HelloResponse) {} 8 | rpc HelloStream(stream HelloRequest) returns (stream HelloResponse) {} 9 | 10 | rpc SpeechToText(stream STTRequest) returns (stream STTResponse) {} 11 | 12 | rpc GetResponse(stream GetResponseRequest) returns (stream GetResponseResponse) {} 13 | rpc GetResponseSingle(GetResponseRequestSingle) returns (stream GetResponseResponse) {} 14 | 15 | rpc SubmitFeedback(FeedbackRequest) returns (FeedbackResponse) {} 16 | 17 | } 18 | 19 | message AudioConfig { 20 | int32 sample_rate_hertz = 1; 21 | bool disable_audio = 2; 22 | bool enable_facial_data = 3; 23 | FaceModel face_model = 4; 24 | bool enable_facial_emotion_data = 5; 25 | } 26 | 27 | enum FaceModel { 28 | FACE_MODEL_UNSPECIFIED = 0; 29 | FACE_MODEL_A_2F_MODEL_NAME = 1; 30 | FACE_MODEL_PHONEMES_MODEL_NAME = 2; 31 | FACE_MODEL_OVR_MODEL_NAME = 3; 32 | } 33 | 34 | // The TriggerConfig message is a general container for various types of triggers. 35 | // It includes the trigger type and message, as well as specific metadata based on the trigger type. 36 | // 37 | // Fields: 38 | // trigger_message: Specifies message related to the trigger: "5 Minutes have passed", "Player entered the palace". 39 | message TriggerConfig{ 40 | string trigger_name = 1; 41 | string trigger_message = 2; 42 | } 43 | 44 | // NEXT ID: 7 45 | message ActionConfig { 46 | message Character { 47 | string name = 1; 48 | string bio = 2; 49 | } 50 | message Object { 51 | string name = 1; 52 | string description = 2; 53 | } 54 | repeated string actions = 1; 55 | repeated Character characters = 2; 56 | repeated Object objects = 3; 57 | string classification = 4; 58 | int32 context_level = 5; 59 | // This should be equal to the name of one of the objects in the Objects field. 60 | string current_attention_object = 6; 61 | } 62 | 63 | message STTRequest { 64 | oneof request_type { 65 | AudioConfig audio_config = 1; 66 | bytes audio_chunk = 2; 67 | } 68 | } 69 | 70 | message STTResponse { 71 | string text = 1; 72 | } 73 | 74 | message GetResponseRequest { 75 | message GetResponseConfig { 76 | string character_id = 2; 77 | string api_key = 3; 78 | string session_id = 4; 79 | AudioConfig audio_config = 5; 80 | ActionConfig action_config = 6; 81 | string speaker = 7; 82 | string language_code = 8; 83 | string speaker_id = 9; 84 | 85 | } 86 | message GetResponseData { 87 | oneof input_type { 88 | bytes audio_data = 1; 89 | string text_data = 2; 90 | TriggerConfig trigger_data = 3; 91 | } 92 | } 93 | oneof request_type { 94 | GetResponseConfig get_response_config = 1; 95 | GetResponseData get_response_data = 2; 96 | } 97 | } 98 | 99 | message GetResponseRequestSingle { 100 | GetResponseRequest response_config = 1; 101 | GetResponseRequest response_data = 2; 102 | } 103 | 104 | message GetResponseResponse { 105 | message AudioResponse { 106 | bytes audio_data = 1; 107 | AudioConfig audio_config = 2; 108 | string text_data = 3; 109 | bool end_of_response = 4; 110 | string face_data = 5; 111 | oneof face_data_type { 112 | VisemesData visemes_data = 6; 113 | BlendShapesData blendshapes_data = 7; 114 | } 115 | ARKitBlendShapesData face_emotion = 8; 116 | } 117 | 118 | message ActionResponse { 119 | string action = 1; 120 | } 121 | 122 | message BehaviorTreeResponse { 123 | // Behavior tree code uploaded by user at the time of narration design. 124 | string bt_code = 1; 125 | // Json dump. 126 | string bt_constants = 2; 127 | // Current Narrative section-id for the character. 128 | string narrative_section_id = 3; 129 | } 130 | 131 | message UserTranscript { 132 | string text_data = 1; 133 | bool is_final = 2; 134 | bool end_of_response = 3; 135 | } 136 | string session_id = 1; 137 | oneof response_type { 138 | ActionResponse action_response = 2; 139 | AudioResponse audio_response = 3; 140 | string debug_log = 4; 141 | UserTranscript user_query = 5; 142 | BehaviorTreeResponse bt_response = 6; 143 | string emotion_response = 7; 144 | string interaction_id = 8; 145 | } 146 | } 147 | 148 | message VisemesData { 149 | Viseme visemes = 1; 150 | } 151 | 152 | // Define the Viseme message with all the individual viseme values 153 | message Viseme { 154 | float sil = 1; 155 | float pp = 2; 156 | float ff = 3; 157 | float th = 4; 158 | float dd = 5; 159 | float kk = 6; 160 | float ch = 7; 161 | float ss = 8; 162 | float nn = 9; 163 | float rr = 10; 164 | float aa = 11; 165 | float e = 12; 166 | float ih = 13; 167 | float oh = 14; 168 | float ou = 15; 169 | } 170 | 171 | message BlendShapesData { 172 | string blendshape_data = 1; 173 | } 174 | 175 | message HelloRequest { 176 | string name = 1; 177 | } 178 | message HelloResponse { 179 | string message = 1; 180 | } 181 | 182 | message FeedbackRequest { 183 | message Feedback{ 184 | bool thumbs_up = 1; 185 | string feedback_text = 2; 186 | } 187 | 188 | string interaction_id = 1; 189 | string character_id = 2; 190 | string session_id = 3; 191 | // Feedback for the Text Response. 192 | Feedback text_feedback = 5; 193 | } 194 | 195 | message FeedbackResponse { 196 | string feedback_response = 1; 197 | } -------------------------------------------------------------------------------- /Proto/service/service_pb.d.ts: -------------------------------------------------------------------------------- 1 | // package: service 2 | // file: service.proto 3 | 4 | import * as jspb from "google-protobuf"; 5 | import * as rpc_arkit_blend_shapes_pb from "./rpc/arkit_blend_shapes_pb"; 6 | 7 | export class AudioConfig extends jspb.Message { 8 | getSampleRateHertz(): number; 9 | setSampleRateHertz(value: number): void; 10 | 11 | getDisableAudio(): boolean; 12 | setDisableAudio(value: boolean): void; 13 | 14 | getEnableFacialData(): boolean; 15 | setEnableFacialData(value: boolean): void; 16 | 17 | getFaceModel(): FaceModelMap[keyof FaceModelMap]; 18 | setFaceModel(value: FaceModelMap[keyof FaceModelMap]): void; 19 | 20 | getEnableFacialEmotionData(): boolean; 21 | setEnableFacialEmotionData(value: boolean): void; 22 | 23 | serializeBinary(): Uint8Array; 24 | toObject(includeInstance?: boolean): AudioConfig.AsObject; 25 | static toObject(includeInstance: boolean, msg: AudioConfig): AudioConfig.AsObject; 26 | static extensions: {[key: number]: jspb.ExtensionFieldInfo}; 27 | static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; 28 | static serializeBinaryToWriter(message: AudioConfig, writer: jspb.BinaryWriter): void; 29 | static deserializeBinary(bytes: Uint8Array): AudioConfig; 30 | static deserializeBinaryFromReader(message: AudioConfig, reader: jspb.BinaryReader): AudioConfig; 31 | } 32 | 33 | export namespace AudioConfig { 34 | export type AsObject = { 35 | sampleRateHertz: number, 36 | disableAudio: boolean, 37 | enableFacialData: boolean, 38 | faceModel: FaceModelMap[keyof FaceModelMap], 39 | enableFacialEmotionData: boolean, 40 | } 41 | } 42 | 43 | export class TriggerConfig extends jspb.Message { 44 | getTriggerName(): string; 45 | setTriggerName(value: string): void; 46 | 47 | getTriggerMessage(): string; 48 | setTriggerMessage(value: string): void; 49 | 50 | serializeBinary(): Uint8Array; 51 | toObject(includeInstance?: boolean): TriggerConfig.AsObject; 52 | static toObject(includeInstance: boolean, msg: TriggerConfig): TriggerConfig.AsObject; 53 | static extensions: {[key: number]: jspb.ExtensionFieldInfo}; 54 | static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; 55 | static serializeBinaryToWriter(message: TriggerConfig, writer: jspb.BinaryWriter): void; 56 | static deserializeBinary(bytes: Uint8Array): TriggerConfig; 57 | static deserializeBinaryFromReader(message: TriggerConfig, reader: jspb.BinaryReader): TriggerConfig; 58 | } 59 | 60 | export namespace TriggerConfig { 61 | export type AsObject = { 62 | triggerName: string, 63 | triggerMessage: string, 64 | } 65 | } 66 | 67 | export class ActionConfig extends jspb.Message { 68 | clearActionsList(): void; 69 | getActionsList(): Array; 70 | setActionsList(value: Array): void; 71 | addActions(value: string, index?: number): string; 72 | 73 | clearCharactersList(): void; 74 | getCharactersList(): Array; 75 | setCharactersList(value: Array): void; 76 | addCharacters(value?: ActionConfig.Character, index?: number): ActionConfig.Character; 77 | 78 | clearObjectsList(): void; 79 | getObjectsList(): Array; 80 | setObjectsList(value: Array): void; 81 | addObjects(value?: ActionConfig.Object, index?: number): ActionConfig.Object; 82 | 83 | getClassification(): string; 84 | setClassification(value: string): void; 85 | 86 | getContextLevel(): number; 87 | setContextLevel(value: number): void; 88 | 89 | getCurrentAttentionObject(): string; 90 | setCurrentAttentionObject(value: string): void; 91 | 92 | serializeBinary(): Uint8Array; 93 | toObject(includeInstance?: boolean): ActionConfig.AsObject; 94 | static toObject(includeInstance: boolean, msg: ActionConfig): ActionConfig.AsObject; 95 | static extensions: {[key: number]: jspb.ExtensionFieldInfo}; 96 | static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; 97 | static serializeBinaryToWriter(message: ActionConfig, writer: jspb.BinaryWriter): void; 98 | static deserializeBinary(bytes: Uint8Array): ActionConfig; 99 | static deserializeBinaryFromReader(message: ActionConfig, reader: jspb.BinaryReader): ActionConfig; 100 | } 101 | 102 | export namespace ActionConfig { 103 | export type AsObject = { 104 | actionsList: Array, 105 | charactersList: Array, 106 | objectsList: Array, 107 | classification: string, 108 | contextLevel: number, 109 | currentAttentionObject: string, 110 | } 111 | 112 | export class Character extends jspb.Message { 113 | getName(): string; 114 | setName(value: string): void; 115 | 116 | getBio(): string; 117 | setBio(value: string): void; 118 | 119 | serializeBinary(): Uint8Array; 120 | toObject(includeInstance?: boolean): Character.AsObject; 121 | static toObject(includeInstance: boolean, msg: Character): Character.AsObject; 122 | static extensions: {[key: number]: jspb.ExtensionFieldInfo}; 123 | static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; 124 | static serializeBinaryToWriter(message: Character, writer: jspb.BinaryWriter): void; 125 | static deserializeBinary(bytes: Uint8Array): Character; 126 | static deserializeBinaryFromReader(message: Character, reader: jspb.BinaryReader): Character; 127 | } 128 | 129 | export namespace Character { 130 | export type AsObject = { 131 | name: string, 132 | bio: string, 133 | } 134 | } 135 | 136 | export class Object extends jspb.Message { 137 | getName(): string; 138 | setName(value: string): void; 139 | 140 | getDescription(): string; 141 | setDescription(value: string): void; 142 | 143 | serializeBinary(): Uint8Array; 144 | toObject(includeInstance?: boolean): Object.AsObject; 145 | static toObject(includeInstance: boolean, msg: Object): Object.AsObject; 146 | static extensions: {[key: number]: jspb.ExtensionFieldInfo}; 147 | static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; 148 | static serializeBinaryToWriter(message: Object, writer: jspb.BinaryWriter): void; 149 | static deserializeBinary(bytes: Uint8Array): Object; 150 | static deserializeBinaryFromReader(message: Object, reader: jspb.BinaryReader): Object; 151 | } 152 | 153 | export namespace Object { 154 | export type AsObject = { 155 | name: string, 156 | description: string, 157 | } 158 | } 159 | } 160 | 161 | export class STTRequest extends jspb.Message { 162 | hasAudioConfig(): boolean; 163 | clearAudioConfig(): void; 164 | getAudioConfig(): AudioConfig | undefined; 165 | setAudioConfig(value?: AudioConfig): void; 166 | 167 | hasAudioChunk(): boolean; 168 | clearAudioChunk(): void; 169 | getAudioChunk(): Uint8Array | string; 170 | getAudioChunk_asU8(): Uint8Array; 171 | getAudioChunk_asB64(): string; 172 | setAudioChunk(value: Uint8Array | string): void; 173 | 174 | getRequestTypeCase(): STTRequest.RequestTypeCase; 175 | serializeBinary(): Uint8Array; 176 | toObject(includeInstance?: boolean): STTRequest.AsObject; 177 | static toObject(includeInstance: boolean, msg: STTRequest): STTRequest.AsObject; 178 | static extensions: {[key: number]: jspb.ExtensionFieldInfo}; 179 | static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; 180 | static serializeBinaryToWriter(message: STTRequest, writer: jspb.BinaryWriter): void; 181 | static deserializeBinary(bytes: Uint8Array): STTRequest; 182 | static deserializeBinaryFromReader(message: STTRequest, reader: jspb.BinaryReader): STTRequest; 183 | } 184 | 185 | export namespace STTRequest { 186 | export type AsObject = { 187 | audioConfig?: AudioConfig.AsObject, 188 | audioChunk: Uint8Array | string, 189 | } 190 | 191 | export enum RequestTypeCase { 192 | REQUEST_TYPE_NOT_SET = 0, 193 | AUDIO_CONFIG = 1, 194 | AUDIO_CHUNK = 2, 195 | } 196 | } 197 | 198 | export class STTResponse extends jspb.Message { 199 | getText(): string; 200 | setText(value: string): void; 201 | 202 | serializeBinary(): Uint8Array; 203 | toObject(includeInstance?: boolean): STTResponse.AsObject; 204 | static toObject(includeInstance: boolean, msg: STTResponse): STTResponse.AsObject; 205 | static extensions: {[key: number]: jspb.ExtensionFieldInfo}; 206 | static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; 207 | static serializeBinaryToWriter(message: STTResponse, writer: jspb.BinaryWriter): void; 208 | static deserializeBinary(bytes: Uint8Array): STTResponse; 209 | static deserializeBinaryFromReader(message: STTResponse, reader: jspb.BinaryReader): STTResponse; 210 | } 211 | 212 | export namespace STTResponse { 213 | export type AsObject = { 214 | text: string, 215 | } 216 | } 217 | 218 | export class GetResponseRequest extends jspb.Message { 219 | hasGetResponseConfig(): boolean; 220 | clearGetResponseConfig(): void; 221 | getGetResponseConfig(): GetResponseRequest.GetResponseConfig | undefined; 222 | setGetResponseConfig(value?: GetResponseRequest.GetResponseConfig): void; 223 | 224 | hasGetResponseData(): boolean; 225 | clearGetResponseData(): void; 226 | getGetResponseData(): GetResponseRequest.GetResponseData | undefined; 227 | setGetResponseData(value?: GetResponseRequest.GetResponseData): void; 228 | 229 | getRequestTypeCase(): GetResponseRequest.RequestTypeCase; 230 | serializeBinary(): Uint8Array; 231 | toObject(includeInstance?: boolean): GetResponseRequest.AsObject; 232 | static toObject(includeInstance: boolean, msg: GetResponseRequest): GetResponseRequest.AsObject; 233 | static extensions: {[key: number]: jspb.ExtensionFieldInfo}; 234 | static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; 235 | static serializeBinaryToWriter(message: GetResponseRequest, writer: jspb.BinaryWriter): void; 236 | static deserializeBinary(bytes: Uint8Array): GetResponseRequest; 237 | static deserializeBinaryFromReader(message: GetResponseRequest, reader: jspb.BinaryReader): GetResponseRequest; 238 | } 239 | 240 | export namespace GetResponseRequest { 241 | export type AsObject = { 242 | getResponseConfig?: GetResponseRequest.GetResponseConfig.AsObject, 243 | getResponseData?: GetResponseRequest.GetResponseData.AsObject, 244 | } 245 | 246 | export class GetResponseConfig extends jspb.Message { 247 | getCharacterId(): string; 248 | setCharacterId(value: string): void; 249 | 250 | getApiKey(): string; 251 | setApiKey(value: string): void; 252 | 253 | getSessionId(): string; 254 | setSessionId(value: string): void; 255 | 256 | hasAudioConfig(): boolean; 257 | clearAudioConfig(): void; 258 | getAudioConfig(): AudioConfig | undefined; 259 | setAudioConfig(value?: AudioConfig): void; 260 | 261 | hasActionConfig(): boolean; 262 | clearActionConfig(): void; 263 | getActionConfig(): ActionConfig | undefined; 264 | setActionConfig(value?: ActionConfig): void; 265 | 266 | getSpeaker(): string; 267 | setSpeaker(value: string): void; 268 | 269 | getLanguageCode(): string; 270 | setLanguageCode(value: string): void; 271 | 272 | getSpeakerId(): string; 273 | setSpeakerId(value: string): void; 274 | 275 | serializeBinary(): Uint8Array; 276 | toObject(includeInstance?: boolean): GetResponseConfig.AsObject; 277 | static toObject(includeInstance: boolean, msg: GetResponseConfig): GetResponseConfig.AsObject; 278 | static extensions: {[key: number]: jspb.ExtensionFieldInfo}; 279 | static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; 280 | static serializeBinaryToWriter(message: GetResponseConfig, writer: jspb.BinaryWriter): void; 281 | static deserializeBinary(bytes: Uint8Array): GetResponseConfig; 282 | static deserializeBinaryFromReader(message: GetResponseConfig, reader: jspb.BinaryReader): GetResponseConfig; 283 | } 284 | 285 | export namespace GetResponseConfig { 286 | export type AsObject = { 287 | characterId: string, 288 | apiKey: string, 289 | sessionId: string, 290 | audioConfig?: AudioConfig.AsObject, 291 | actionConfig?: ActionConfig.AsObject, 292 | speaker: string, 293 | languageCode: string, 294 | speakerId: string, 295 | } 296 | } 297 | 298 | export class GetResponseData extends jspb.Message { 299 | hasAudioData(): boolean; 300 | clearAudioData(): void; 301 | getAudioData(): Uint8Array | string; 302 | getAudioData_asU8(): Uint8Array; 303 | getAudioData_asB64(): string; 304 | setAudioData(value: Uint8Array | string): void; 305 | 306 | hasTextData(): boolean; 307 | clearTextData(): void; 308 | getTextData(): string; 309 | setTextData(value: string): void; 310 | 311 | hasTriggerData(): boolean; 312 | clearTriggerData(): void; 313 | getTriggerData(): TriggerConfig | undefined; 314 | setTriggerData(value?: TriggerConfig): void; 315 | 316 | getInputTypeCase(): GetResponseData.InputTypeCase; 317 | serializeBinary(): Uint8Array; 318 | toObject(includeInstance?: boolean): GetResponseData.AsObject; 319 | static toObject(includeInstance: boolean, msg: GetResponseData): GetResponseData.AsObject; 320 | static extensions: {[key: number]: jspb.ExtensionFieldInfo}; 321 | static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; 322 | static serializeBinaryToWriter(message: GetResponseData, writer: jspb.BinaryWriter): void; 323 | static deserializeBinary(bytes: Uint8Array): GetResponseData; 324 | static deserializeBinaryFromReader(message: GetResponseData, reader: jspb.BinaryReader): GetResponseData; 325 | } 326 | 327 | export namespace GetResponseData { 328 | export type AsObject = { 329 | audioData: Uint8Array | string, 330 | textData: string, 331 | triggerData?: TriggerConfig.AsObject, 332 | } 333 | 334 | export enum InputTypeCase { 335 | INPUT_TYPE_NOT_SET = 0, 336 | AUDIO_DATA = 1, 337 | TEXT_DATA = 2, 338 | TRIGGER_DATA = 3, 339 | } 340 | } 341 | 342 | export enum RequestTypeCase { 343 | REQUEST_TYPE_NOT_SET = 0, 344 | GET_RESPONSE_CONFIG = 1, 345 | GET_RESPONSE_DATA = 2, 346 | } 347 | } 348 | 349 | export class GetResponseRequestSingle extends jspb.Message { 350 | hasResponseConfig(): boolean; 351 | clearResponseConfig(): void; 352 | getResponseConfig(): GetResponseRequest | undefined; 353 | setResponseConfig(value?: GetResponseRequest): void; 354 | 355 | hasResponseData(): boolean; 356 | clearResponseData(): void; 357 | getResponseData(): GetResponseRequest | undefined; 358 | setResponseData(value?: GetResponseRequest): void; 359 | 360 | serializeBinary(): Uint8Array; 361 | toObject(includeInstance?: boolean): GetResponseRequestSingle.AsObject; 362 | static toObject(includeInstance: boolean, msg: GetResponseRequestSingle): GetResponseRequestSingle.AsObject; 363 | static extensions: {[key: number]: jspb.ExtensionFieldInfo}; 364 | static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; 365 | static serializeBinaryToWriter(message: GetResponseRequestSingle, writer: jspb.BinaryWriter): void; 366 | static deserializeBinary(bytes: Uint8Array): GetResponseRequestSingle; 367 | static deserializeBinaryFromReader(message: GetResponseRequestSingle, reader: jspb.BinaryReader): GetResponseRequestSingle; 368 | } 369 | 370 | export namespace GetResponseRequestSingle { 371 | export type AsObject = { 372 | responseConfig?: GetResponseRequest.AsObject, 373 | responseData?: GetResponseRequest.AsObject, 374 | } 375 | } 376 | 377 | export class GetResponseResponse extends jspb.Message { 378 | getSessionId(): string; 379 | setSessionId(value: string): void; 380 | 381 | hasActionResponse(): boolean; 382 | clearActionResponse(): void; 383 | getActionResponse(): GetResponseResponse.ActionResponse | undefined; 384 | setActionResponse(value?: GetResponseResponse.ActionResponse): void; 385 | 386 | hasAudioResponse(): boolean; 387 | clearAudioResponse(): void; 388 | getAudioResponse(): GetResponseResponse.AudioResponse | undefined; 389 | setAudioResponse(value?: GetResponseResponse.AudioResponse): void; 390 | 391 | hasDebugLog(): boolean; 392 | clearDebugLog(): void; 393 | getDebugLog(): string; 394 | setDebugLog(value: string): void; 395 | 396 | hasUserQuery(): boolean; 397 | clearUserQuery(): void; 398 | getUserQuery(): GetResponseResponse.UserTranscript | undefined; 399 | setUserQuery(value?: GetResponseResponse.UserTranscript): void; 400 | 401 | hasBtResponse(): boolean; 402 | clearBtResponse(): void; 403 | getBtResponse(): GetResponseResponse.BehaviorTreeResponse | undefined; 404 | setBtResponse(value?: GetResponseResponse.BehaviorTreeResponse): void; 405 | 406 | hasEmotionResponse(): boolean; 407 | clearEmotionResponse(): void; 408 | getEmotionResponse(): string; 409 | setEmotionResponse(value: string): void; 410 | 411 | hasInteractionId(): boolean; 412 | clearInteractionId(): void; 413 | getInteractionId(): string; 414 | setInteractionId(value: string): void; 415 | 416 | getResponseTypeCase(): GetResponseResponse.ResponseTypeCase; 417 | serializeBinary(): Uint8Array; 418 | toObject(includeInstance?: boolean): GetResponseResponse.AsObject; 419 | static toObject(includeInstance: boolean, msg: GetResponseResponse): GetResponseResponse.AsObject; 420 | static extensions: {[key: number]: jspb.ExtensionFieldInfo}; 421 | static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; 422 | static serializeBinaryToWriter(message: GetResponseResponse, writer: jspb.BinaryWriter): void; 423 | static deserializeBinary(bytes: Uint8Array): GetResponseResponse; 424 | static deserializeBinaryFromReader(message: GetResponseResponse, reader: jspb.BinaryReader): GetResponseResponse; 425 | } 426 | 427 | export namespace GetResponseResponse { 428 | export type AsObject = { 429 | sessionId: string, 430 | actionResponse?: GetResponseResponse.ActionResponse.AsObject, 431 | audioResponse?: GetResponseResponse.AudioResponse.AsObject, 432 | debugLog: string, 433 | userQuery?: GetResponseResponse.UserTranscript.AsObject, 434 | btResponse?: GetResponseResponse.BehaviorTreeResponse.AsObject, 435 | emotionResponse: string, 436 | interactionId: string, 437 | } 438 | 439 | export class AudioResponse extends jspb.Message { 440 | getAudioData(): Uint8Array | string; 441 | getAudioData_asU8(): Uint8Array; 442 | getAudioData_asB64(): string; 443 | setAudioData(value: Uint8Array | string): void; 444 | 445 | hasAudioConfig(): boolean; 446 | clearAudioConfig(): void; 447 | getAudioConfig(): AudioConfig | undefined; 448 | setAudioConfig(value?: AudioConfig): void; 449 | 450 | getTextData(): string; 451 | setTextData(value: string): void; 452 | 453 | getEndOfResponse(): boolean; 454 | setEndOfResponse(value: boolean): void; 455 | 456 | getFaceData(): string; 457 | setFaceData(value: string): void; 458 | 459 | hasVisemesData(): boolean; 460 | clearVisemesData(): void; 461 | getVisemesData(): VisemesData | undefined; 462 | setVisemesData(value?: VisemesData): void; 463 | 464 | hasBlendshapesData(): boolean; 465 | clearBlendshapesData(): void; 466 | getBlendshapesData(): BlendShapesData | undefined; 467 | setBlendshapesData(value?: BlendShapesData): void; 468 | 469 | hasFaceEmotion(): boolean; 470 | clearFaceEmotion(): void; 471 | getFaceEmotion(): rpc_arkit_blend_shapes_pb.ARKitBlendShapesData | undefined; 472 | setFaceEmotion(value?: rpc_arkit_blend_shapes_pb.ARKitBlendShapesData): void; 473 | 474 | getFaceDataTypeCase(): AudioResponse.FaceDataTypeCase; 475 | serializeBinary(): Uint8Array; 476 | toObject(includeInstance?: boolean): AudioResponse.AsObject; 477 | static toObject(includeInstance: boolean, msg: AudioResponse): AudioResponse.AsObject; 478 | static extensions: {[key: number]: jspb.ExtensionFieldInfo}; 479 | static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; 480 | static serializeBinaryToWriter(message: AudioResponse, writer: jspb.BinaryWriter): void; 481 | static deserializeBinary(bytes: Uint8Array): AudioResponse; 482 | static deserializeBinaryFromReader(message: AudioResponse, reader: jspb.BinaryReader): AudioResponse; 483 | } 484 | 485 | export namespace AudioResponse { 486 | export type AsObject = { 487 | audioData: Uint8Array | string, 488 | audioConfig?: AudioConfig.AsObject, 489 | textData: string, 490 | endOfResponse: boolean, 491 | faceData: string, 492 | visemesData?: VisemesData.AsObject, 493 | blendshapesData?: BlendShapesData.AsObject, 494 | faceEmotion?: rpc_arkit_blend_shapes_pb.ARKitBlendShapesData.AsObject, 495 | } 496 | 497 | export enum FaceDataTypeCase { 498 | FACE_DATA_TYPE_NOT_SET = 0, 499 | VISEMES_DATA = 6, 500 | BLENDSHAPES_DATA = 7, 501 | } 502 | } 503 | 504 | export class ActionResponse extends jspb.Message { 505 | getAction(): string; 506 | setAction(value: string): void; 507 | 508 | serializeBinary(): Uint8Array; 509 | toObject(includeInstance?: boolean): ActionResponse.AsObject; 510 | static toObject(includeInstance: boolean, msg: ActionResponse): ActionResponse.AsObject; 511 | static extensions: {[key: number]: jspb.ExtensionFieldInfo}; 512 | static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; 513 | static serializeBinaryToWriter(message: ActionResponse, writer: jspb.BinaryWriter): void; 514 | static deserializeBinary(bytes: Uint8Array): ActionResponse; 515 | static deserializeBinaryFromReader(message: ActionResponse, reader: jspb.BinaryReader): ActionResponse; 516 | } 517 | 518 | export namespace ActionResponse { 519 | export type AsObject = { 520 | action: string, 521 | } 522 | } 523 | 524 | export class BehaviorTreeResponse extends jspb.Message { 525 | getBtCode(): string; 526 | setBtCode(value: string): void; 527 | 528 | getBtConstants(): string; 529 | setBtConstants(value: string): void; 530 | 531 | getNarrativeSectionId(): string; 532 | setNarrativeSectionId(value: string): void; 533 | 534 | serializeBinary(): Uint8Array; 535 | toObject(includeInstance?: boolean): BehaviorTreeResponse.AsObject; 536 | static toObject(includeInstance: boolean, msg: BehaviorTreeResponse): BehaviorTreeResponse.AsObject; 537 | static extensions: {[key: number]: jspb.ExtensionFieldInfo}; 538 | static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; 539 | static serializeBinaryToWriter(message: BehaviorTreeResponse, writer: jspb.BinaryWriter): void; 540 | static deserializeBinary(bytes: Uint8Array): BehaviorTreeResponse; 541 | static deserializeBinaryFromReader(message: BehaviorTreeResponse, reader: jspb.BinaryReader): BehaviorTreeResponse; 542 | } 543 | 544 | export namespace BehaviorTreeResponse { 545 | export type AsObject = { 546 | btCode: string, 547 | btConstants: string, 548 | narrativeSectionId: string, 549 | } 550 | } 551 | 552 | export class UserTranscript extends jspb.Message { 553 | getTextData(): string; 554 | setTextData(value: string): void; 555 | 556 | getIsFinal(): boolean; 557 | setIsFinal(value: boolean): void; 558 | 559 | getEndOfResponse(): boolean; 560 | setEndOfResponse(value: boolean): void; 561 | 562 | serializeBinary(): Uint8Array; 563 | toObject(includeInstance?: boolean): UserTranscript.AsObject; 564 | static toObject(includeInstance: boolean, msg: UserTranscript): UserTranscript.AsObject; 565 | static extensions: {[key: number]: jspb.ExtensionFieldInfo}; 566 | static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; 567 | static serializeBinaryToWriter(message: UserTranscript, writer: jspb.BinaryWriter): void; 568 | static deserializeBinary(bytes: Uint8Array): UserTranscript; 569 | static deserializeBinaryFromReader(message: UserTranscript, reader: jspb.BinaryReader): UserTranscript; 570 | } 571 | 572 | export namespace UserTranscript { 573 | export type AsObject = { 574 | textData: string, 575 | isFinal: boolean, 576 | endOfResponse: boolean, 577 | } 578 | } 579 | 580 | export enum ResponseTypeCase { 581 | RESPONSE_TYPE_NOT_SET = 0, 582 | ACTION_RESPONSE = 2, 583 | AUDIO_RESPONSE = 3, 584 | DEBUG_LOG = 4, 585 | USER_QUERY = 5, 586 | BT_RESPONSE = 6, 587 | EMOTION_RESPONSE = 7, 588 | INTERACTION_ID = 8, 589 | } 590 | } 591 | 592 | export class VisemesData extends jspb.Message { 593 | hasVisemes(): boolean; 594 | clearVisemes(): void; 595 | getVisemes(): Viseme | undefined; 596 | setVisemes(value?: Viseme): void; 597 | 598 | serializeBinary(): Uint8Array; 599 | toObject(includeInstance?: boolean): VisemesData.AsObject; 600 | static toObject(includeInstance: boolean, msg: VisemesData): VisemesData.AsObject; 601 | static extensions: {[key: number]: jspb.ExtensionFieldInfo}; 602 | static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; 603 | static serializeBinaryToWriter(message: VisemesData, writer: jspb.BinaryWriter): void; 604 | static deserializeBinary(bytes: Uint8Array): VisemesData; 605 | static deserializeBinaryFromReader(message: VisemesData, reader: jspb.BinaryReader): VisemesData; 606 | } 607 | 608 | export namespace VisemesData { 609 | export type AsObject = { 610 | visemes?: Viseme.AsObject, 611 | } 612 | } 613 | 614 | export class Viseme extends jspb.Message { 615 | getSil(): number; 616 | setSil(value: number): void; 617 | 618 | getPp(): number; 619 | setPp(value: number): void; 620 | 621 | getFf(): number; 622 | setFf(value: number): void; 623 | 624 | getTh(): number; 625 | setTh(value: number): void; 626 | 627 | getDd(): number; 628 | setDd(value: number): void; 629 | 630 | getKk(): number; 631 | setKk(value: number): void; 632 | 633 | getCh(): number; 634 | setCh(value: number): void; 635 | 636 | getSs(): number; 637 | setSs(value: number): void; 638 | 639 | getNn(): number; 640 | setNn(value: number): void; 641 | 642 | getRr(): number; 643 | setRr(value: number): void; 644 | 645 | getAa(): number; 646 | setAa(value: number): void; 647 | 648 | getE(): number; 649 | setE(value: number): void; 650 | 651 | getIh(): number; 652 | setIh(value: number): void; 653 | 654 | getOh(): number; 655 | setOh(value: number): void; 656 | 657 | getOu(): number; 658 | setOu(value: number): void; 659 | 660 | serializeBinary(): Uint8Array; 661 | toObject(includeInstance?: boolean): Viseme.AsObject; 662 | static toObject(includeInstance: boolean, msg: Viseme): Viseme.AsObject; 663 | static extensions: {[key: number]: jspb.ExtensionFieldInfo}; 664 | static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; 665 | static serializeBinaryToWriter(message: Viseme, writer: jspb.BinaryWriter): void; 666 | static deserializeBinary(bytes: Uint8Array): Viseme; 667 | static deserializeBinaryFromReader(message: Viseme, reader: jspb.BinaryReader): Viseme; 668 | } 669 | 670 | export namespace Viseme { 671 | export type AsObject = { 672 | sil: number, 673 | pp: number, 674 | ff: number, 675 | th: number, 676 | dd: number, 677 | kk: number, 678 | ch: number, 679 | ss: number, 680 | nn: number, 681 | rr: number, 682 | aa: number, 683 | e: number, 684 | ih: number, 685 | oh: number, 686 | ou: number, 687 | } 688 | } 689 | 690 | export class BlendShapesData extends jspb.Message { 691 | getBlendshapeData(): string; 692 | setBlendshapeData(value: string): void; 693 | 694 | serializeBinary(): Uint8Array; 695 | toObject(includeInstance?: boolean): BlendShapesData.AsObject; 696 | static toObject(includeInstance: boolean, msg: BlendShapesData): BlendShapesData.AsObject; 697 | static extensions: {[key: number]: jspb.ExtensionFieldInfo}; 698 | static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; 699 | static serializeBinaryToWriter(message: BlendShapesData, writer: jspb.BinaryWriter): void; 700 | static deserializeBinary(bytes: Uint8Array): BlendShapesData; 701 | static deserializeBinaryFromReader(message: BlendShapesData, reader: jspb.BinaryReader): BlendShapesData; 702 | } 703 | 704 | export namespace BlendShapesData { 705 | export type AsObject = { 706 | blendshapeData: string, 707 | } 708 | } 709 | 710 | export class HelloRequest extends jspb.Message { 711 | getName(): string; 712 | setName(value: string): void; 713 | 714 | serializeBinary(): Uint8Array; 715 | toObject(includeInstance?: boolean): HelloRequest.AsObject; 716 | static toObject(includeInstance: boolean, msg: HelloRequest): HelloRequest.AsObject; 717 | static extensions: {[key: number]: jspb.ExtensionFieldInfo}; 718 | static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; 719 | static serializeBinaryToWriter(message: HelloRequest, writer: jspb.BinaryWriter): void; 720 | static deserializeBinary(bytes: Uint8Array): HelloRequest; 721 | static deserializeBinaryFromReader(message: HelloRequest, reader: jspb.BinaryReader): HelloRequest; 722 | } 723 | 724 | export namespace HelloRequest { 725 | export type AsObject = { 726 | name: string, 727 | } 728 | } 729 | 730 | export class HelloResponse extends jspb.Message { 731 | getMessage(): string; 732 | setMessage(value: string): void; 733 | 734 | serializeBinary(): Uint8Array; 735 | toObject(includeInstance?: boolean): HelloResponse.AsObject; 736 | static toObject(includeInstance: boolean, msg: HelloResponse): HelloResponse.AsObject; 737 | static extensions: {[key: number]: jspb.ExtensionFieldInfo}; 738 | static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; 739 | static serializeBinaryToWriter(message: HelloResponse, writer: jspb.BinaryWriter): void; 740 | static deserializeBinary(bytes: Uint8Array): HelloResponse; 741 | static deserializeBinaryFromReader(message: HelloResponse, reader: jspb.BinaryReader): HelloResponse; 742 | } 743 | 744 | export namespace HelloResponse { 745 | export type AsObject = { 746 | message: string, 747 | } 748 | } 749 | 750 | export class FeedbackRequest extends jspb.Message { 751 | getInteractionId(): string; 752 | setInteractionId(value: string): void; 753 | 754 | getCharacterId(): string; 755 | setCharacterId(value: string): void; 756 | 757 | getSessionId(): string; 758 | setSessionId(value: string): void; 759 | 760 | hasTextFeedback(): boolean; 761 | clearTextFeedback(): void; 762 | getTextFeedback(): FeedbackRequest.Feedback | undefined; 763 | setTextFeedback(value?: FeedbackRequest.Feedback): void; 764 | 765 | serializeBinary(): Uint8Array; 766 | toObject(includeInstance?: boolean): FeedbackRequest.AsObject; 767 | static toObject(includeInstance: boolean, msg: FeedbackRequest): FeedbackRequest.AsObject; 768 | static extensions: {[key: number]: jspb.ExtensionFieldInfo}; 769 | static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; 770 | static serializeBinaryToWriter(message: FeedbackRequest, writer: jspb.BinaryWriter): void; 771 | static deserializeBinary(bytes: Uint8Array): FeedbackRequest; 772 | static deserializeBinaryFromReader(message: FeedbackRequest, reader: jspb.BinaryReader): FeedbackRequest; 773 | } 774 | 775 | export namespace FeedbackRequest { 776 | export type AsObject = { 777 | interactionId: string, 778 | characterId: string, 779 | sessionId: string, 780 | textFeedback?: FeedbackRequest.Feedback.AsObject, 781 | } 782 | 783 | export class Feedback extends jspb.Message { 784 | getThumbsUp(): boolean; 785 | setThumbsUp(value: boolean): void; 786 | 787 | getFeedbackText(): string; 788 | setFeedbackText(value: string): void; 789 | 790 | serializeBinary(): Uint8Array; 791 | toObject(includeInstance?: boolean): Feedback.AsObject; 792 | static toObject(includeInstance: boolean, msg: Feedback): Feedback.AsObject; 793 | static extensions: {[key: number]: jspb.ExtensionFieldInfo}; 794 | static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; 795 | static serializeBinaryToWriter(message: Feedback, writer: jspb.BinaryWriter): void; 796 | static deserializeBinary(bytes: Uint8Array): Feedback; 797 | static deserializeBinaryFromReader(message: Feedback, reader: jspb.BinaryReader): Feedback; 798 | } 799 | 800 | export namespace Feedback { 801 | export type AsObject = { 802 | thumbsUp: boolean, 803 | feedbackText: string, 804 | } 805 | } 806 | } 807 | 808 | export class FeedbackResponse extends jspb.Message { 809 | getFeedbackResponse(): string; 810 | setFeedbackResponse(value: string): void; 811 | 812 | serializeBinary(): Uint8Array; 813 | toObject(includeInstance?: boolean): FeedbackResponse.AsObject; 814 | static toObject(includeInstance: boolean, msg: FeedbackResponse): FeedbackResponse.AsObject; 815 | static extensions: {[key: number]: jspb.ExtensionFieldInfo}; 816 | static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; 817 | static serializeBinaryToWriter(message: FeedbackResponse, writer: jspb.BinaryWriter): void; 818 | static deserializeBinary(bytes: Uint8Array): FeedbackResponse; 819 | static deserializeBinaryFromReader(message: FeedbackResponse, reader: jspb.BinaryReader): FeedbackResponse; 820 | } 821 | 822 | export namespace FeedbackResponse { 823 | export type AsObject = { 824 | feedbackResponse: string, 825 | } 826 | } 827 | 828 | export interface FaceModelMap { 829 | FACE_MODEL_UNSPECIFIED: 0; 830 | FACE_MODEL_A_2F_MODEL_NAME: 1; 831 | FACE_MODEL_PHONEMES_MODEL_NAME: 2; 832 | FACE_MODEL_OVR_MODEL_NAME: 3; 833 | } 834 | 835 | export const FaceModel: FaceModelMap; 836 | 837 | -------------------------------------------------------------------------------- /Proto/service/service_pb_service.d.ts: -------------------------------------------------------------------------------- 1 | // package: service 2 | // file: service.proto 3 | 4 | import * as service_pb from "./service_pb"; 5 | import {grpc} from "@improbable-eng/grpc-web"; 6 | 7 | type ConvaiServiceHello = { 8 | readonly methodName: string; 9 | readonly service: typeof ConvaiService; 10 | readonly requestStream: false; 11 | readonly responseStream: false; 12 | readonly requestType: typeof service_pb.HelloRequest; 13 | readonly responseType: typeof service_pb.HelloResponse; 14 | }; 15 | 16 | type ConvaiServiceHelloStream = { 17 | readonly methodName: string; 18 | readonly service: typeof ConvaiService; 19 | readonly requestStream: true; 20 | readonly responseStream: true; 21 | readonly requestType: typeof service_pb.HelloRequest; 22 | readonly responseType: typeof service_pb.HelloResponse; 23 | }; 24 | 25 | type ConvaiServiceSpeechToText = { 26 | readonly methodName: string; 27 | readonly service: typeof ConvaiService; 28 | readonly requestStream: true; 29 | readonly responseStream: true; 30 | readonly requestType: typeof service_pb.STTRequest; 31 | readonly responseType: typeof service_pb.STTResponse; 32 | }; 33 | 34 | type ConvaiServiceGetResponse = { 35 | readonly methodName: string; 36 | readonly service: typeof ConvaiService; 37 | readonly requestStream: true; 38 | readonly responseStream: true; 39 | readonly requestType: typeof service_pb.GetResponseRequest; 40 | readonly responseType: typeof service_pb.GetResponseResponse; 41 | }; 42 | 43 | type ConvaiServiceGetResponseSingle = { 44 | readonly methodName: string; 45 | readonly service: typeof ConvaiService; 46 | readonly requestStream: false; 47 | readonly responseStream: true; 48 | readonly requestType: typeof service_pb.GetResponseRequestSingle; 49 | readonly responseType: typeof service_pb.GetResponseResponse; 50 | }; 51 | 52 | type ConvaiServiceSubmitFeedback = { 53 | readonly methodName: string; 54 | readonly service: typeof ConvaiService; 55 | readonly requestStream: false; 56 | readonly responseStream: false; 57 | readonly requestType: typeof service_pb.FeedbackRequest; 58 | readonly responseType: typeof service_pb.FeedbackResponse; 59 | }; 60 | 61 | export class ConvaiService { 62 | static readonly serviceName: string; 63 | static readonly Hello: ConvaiServiceHello; 64 | static readonly HelloStream: ConvaiServiceHelloStream; 65 | static readonly SpeechToText: ConvaiServiceSpeechToText; 66 | static readonly GetResponse: ConvaiServiceGetResponse; 67 | static readonly GetResponseSingle: ConvaiServiceGetResponseSingle; 68 | static readonly SubmitFeedback: ConvaiServiceSubmitFeedback; 69 | } 70 | 71 | export type ServiceError = { message: string, code: number; metadata: grpc.Metadata } 72 | export type Status = { details: string, code: number; metadata: grpc.Metadata } 73 | 74 | interface UnaryResponse { 75 | cancel(): void; 76 | } 77 | interface ResponseStream { 78 | cancel(): void; 79 | on(type: 'data', handler: (message: T) => void): ResponseStream; 80 | on(type: 'end', handler: (status?: Status) => void): ResponseStream; 81 | on(type: 'status', handler: (status: Status) => void): ResponseStream; 82 | } 83 | interface RequestStream { 84 | write(message: T): RequestStream; 85 | end(): void; 86 | cancel(): void; 87 | on(type: 'end', handler: (status?: Status) => void): RequestStream; 88 | on(type: 'status', handler: (status: Status) => void): RequestStream; 89 | } 90 | interface BidirectionalStream { 91 | write(message: ReqT): BidirectionalStream; 92 | end(): void; 93 | cancel(): void; 94 | on(type: 'data', handler: (message: ResT) => void): BidirectionalStream; 95 | on(type: 'end', handler: (status?: Status) => void): BidirectionalStream; 96 | on(type: 'status', handler: (status: Status) => void): BidirectionalStream; 97 | } 98 | 99 | export class ConvaiServiceClient { 100 | readonly serviceHost: string; 101 | 102 | constructor(serviceHost: string, options?: grpc.RpcOptions); 103 | hello( 104 | requestMessage: service_pb.HelloRequest, 105 | metadata: grpc.Metadata, 106 | callback: (error: ServiceError|null, responseMessage: service_pb.HelloResponse|null) => void 107 | ): UnaryResponse; 108 | hello( 109 | requestMessage: service_pb.HelloRequest, 110 | callback: (error: ServiceError|null, responseMessage: service_pb.HelloResponse|null) => void 111 | ): UnaryResponse; 112 | helloStream(metadata?: grpc.Metadata): BidirectionalStream; 113 | speechToText(metadata?: grpc.Metadata): BidirectionalStream; 114 | getResponse(metadata?: grpc.Metadata): BidirectionalStream; 115 | getResponseSingle(requestMessage: service_pb.GetResponseRequestSingle, metadata?: grpc.Metadata): ResponseStream; 116 | submitFeedback( 117 | requestMessage: service_pb.FeedbackRequest, 118 | metadata: grpc.Metadata, 119 | callback: (error: ServiceError|null, responseMessage: service_pb.FeedbackResponse|null) => void 120 | ): UnaryResponse; 121 | submitFeedback( 122 | requestMessage: service_pb.FeedbackRequest, 123 | callback: (error: ServiceError|null, responseMessage: service_pb.FeedbackResponse|null) => void 124 | ): UnaryResponse; 125 | } 126 | 127 | -------------------------------------------------------------------------------- /Proto/service/service_pb_service.js: -------------------------------------------------------------------------------- 1 | // package: service 2 | // file: service.proto 3 | 4 | var service_pb = require("./service_pb"); 5 | var grpc = require("@improbable-eng/grpc-web").grpc; 6 | 7 | var ConvaiService = (function () { 8 | function ConvaiService() {} 9 | ConvaiService.serviceName = "service.ConvaiService"; 10 | return ConvaiService; 11 | }()); 12 | 13 | ConvaiService.Hello = { 14 | methodName: "Hello", 15 | service: ConvaiService, 16 | requestStream: false, 17 | responseStream: false, 18 | requestType: service_pb.HelloRequest, 19 | responseType: service_pb.HelloResponse 20 | }; 21 | 22 | ConvaiService.HelloStream = { 23 | methodName: "HelloStream", 24 | service: ConvaiService, 25 | requestStream: true, 26 | responseStream: true, 27 | requestType: service_pb.HelloRequest, 28 | responseType: service_pb.HelloResponse 29 | }; 30 | 31 | ConvaiService.SpeechToText = { 32 | methodName: "SpeechToText", 33 | service: ConvaiService, 34 | requestStream: true, 35 | responseStream: true, 36 | requestType: service_pb.STTRequest, 37 | responseType: service_pb.STTResponse 38 | }; 39 | 40 | ConvaiService.GetResponse = { 41 | methodName: "GetResponse", 42 | service: ConvaiService, 43 | requestStream: true, 44 | responseStream: true, 45 | requestType: service_pb.GetResponseRequest, 46 | responseType: service_pb.GetResponseResponse 47 | }; 48 | 49 | ConvaiService.GetResponseSingle = { 50 | methodName: "GetResponseSingle", 51 | service: ConvaiService, 52 | requestStream: false, 53 | responseStream: true, 54 | requestType: service_pb.GetResponseRequestSingle, 55 | responseType: service_pb.GetResponseResponse 56 | }; 57 | 58 | ConvaiService.SubmitFeedback = { 59 | methodName: "SubmitFeedback", 60 | service: ConvaiService, 61 | requestStream: false, 62 | responseStream: false, 63 | requestType: service_pb.FeedbackRequest, 64 | responseType: service_pb.FeedbackResponse 65 | }; 66 | 67 | exports.ConvaiService = ConvaiService; 68 | 69 | function ConvaiServiceClient(serviceHost, options) { 70 | this.serviceHost = serviceHost; 71 | this.options = options || {}; 72 | } 73 | 74 | ConvaiServiceClient.prototype.hello = function hello(requestMessage, metadata, callback) { 75 | if (arguments.length === 2) { 76 | callback = arguments[1]; 77 | } 78 | var client = grpc.unary(ConvaiService.Hello, { 79 | request: requestMessage, 80 | host: this.serviceHost, 81 | metadata: metadata, 82 | transport: this.options.transport, 83 | debug: this.options.debug, 84 | onEnd: function (response) { 85 | if (callback) { 86 | if (response.status !== grpc.Code.OK) { 87 | var err = new Error(response.statusMessage); 88 | err.code = response.status; 89 | err.metadata = response.trailers; 90 | callback(err, null); 91 | } else { 92 | callback(null, response.message); 93 | } 94 | } 95 | } 96 | }); 97 | return { 98 | cancel: function () { 99 | callback = null; 100 | client.close(); 101 | } 102 | }; 103 | }; 104 | 105 | ConvaiServiceClient.prototype.helloStream = function helloStream(metadata) { 106 | var listeners = { 107 | data: [], 108 | end: [], 109 | status: [] 110 | }; 111 | var client = grpc.client(ConvaiService.HelloStream, { 112 | host: this.serviceHost, 113 | metadata: metadata, 114 | transport: this.options.transport 115 | }); 116 | client.onEnd(function (status, statusMessage, trailers) { 117 | listeners.status.forEach(function (handler) { 118 | handler({ code: status, details: statusMessage, metadata: trailers }); 119 | }); 120 | listeners.end.forEach(function (handler) { 121 | handler({ code: status, details: statusMessage, metadata: trailers }); 122 | }); 123 | listeners = null; 124 | }); 125 | client.onMessage(function (message) { 126 | listeners.data.forEach(function (handler) { 127 | handler(message); 128 | }) 129 | }); 130 | client.start(metadata); 131 | return { 132 | on: function (type, handler) { 133 | listeners[type].push(handler); 134 | return this; 135 | }, 136 | write: function (requestMessage) { 137 | client.send(requestMessage); 138 | return this; 139 | }, 140 | end: function () { 141 | client.finishSend(); 142 | }, 143 | cancel: function () { 144 | listeners = null; 145 | client.close(); 146 | } 147 | }; 148 | }; 149 | 150 | ConvaiServiceClient.prototype.speechToText = function speechToText(metadata) { 151 | var listeners = { 152 | data: [], 153 | end: [], 154 | status: [] 155 | }; 156 | var client = grpc.client(ConvaiService.SpeechToText, { 157 | host: this.serviceHost, 158 | metadata: metadata, 159 | transport: this.options.transport 160 | }); 161 | client.onEnd(function (status, statusMessage, trailers) { 162 | listeners.status.forEach(function (handler) { 163 | handler({ code: status, details: statusMessage, metadata: trailers }); 164 | }); 165 | listeners.end.forEach(function (handler) { 166 | handler({ code: status, details: statusMessage, metadata: trailers }); 167 | }); 168 | listeners = null; 169 | }); 170 | client.onMessage(function (message) { 171 | listeners.data.forEach(function (handler) { 172 | handler(message); 173 | }) 174 | }); 175 | client.start(metadata); 176 | return { 177 | on: function (type, handler) { 178 | listeners[type].push(handler); 179 | return this; 180 | }, 181 | write: function (requestMessage) { 182 | client.send(requestMessage); 183 | return this; 184 | }, 185 | end: function () { 186 | client.finishSend(); 187 | }, 188 | cancel: function () { 189 | listeners = null; 190 | client.close(); 191 | } 192 | }; 193 | }; 194 | 195 | ConvaiServiceClient.prototype.getResponse = function getResponse(metadata) { 196 | var listeners = { 197 | data: [], 198 | end: [], 199 | status: [] 200 | }; 201 | var client = grpc.client(ConvaiService.GetResponse, { 202 | host: this.serviceHost, 203 | metadata: metadata, 204 | transport: this.options.transport 205 | }); 206 | client.onEnd(function (status, statusMessage, trailers) { 207 | listeners.status.forEach(function (handler) { 208 | handler({ code: status, details: statusMessage, metadata: trailers }); 209 | }); 210 | listeners.end.forEach(function (handler) { 211 | handler({ code: status, details: statusMessage, metadata: trailers }); 212 | }); 213 | listeners = null; 214 | }); 215 | client.onMessage(function (message) { 216 | listeners.data.forEach(function (handler) { 217 | handler(message); 218 | }) 219 | }); 220 | client.start(metadata); 221 | return { 222 | on: function (type, handler) { 223 | listeners[type].push(handler); 224 | return this; 225 | }, 226 | write: function (requestMessage) { 227 | client.send(requestMessage); 228 | return this; 229 | }, 230 | end: function () { 231 | client.finishSend(); 232 | }, 233 | cancel: function () { 234 | listeners = null; 235 | client.close(); 236 | } 237 | }; 238 | }; 239 | 240 | ConvaiServiceClient.prototype.getResponseSingle = function getResponseSingle(requestMessage, metadata) { 241 | var listeners = { 242 | data: [], 243 | end: [], 244 | status: [] 245 | }; 246 | var client = grpc.invoke(ConvaiService.GetResponseSingle, { 247 | request: requestMessage, 248 | host: this.serviceHost, 249 | metadata: metadata, 250 | transport: this.options.transport, 251 | debug: this.options.debug, 252 | onMessage: function (responseMessage) { 253 | listeners.data.forEach(function (handler) { 254 | handler(responseMessage); 255 | }); 256 | }, 257 | onEnd: function (status, statusMessage, trailers) { 258 | listeners.status.forEach(function (handler) { 259 | handler({ code: status, details: statusMessage, metadata: trailers }); 260 | }); 261 | listeners.end.forEach(function (handler) { 262 | handler({ code: status, details: statusMessage, metadata: trailers }); 263 | }); 264 | listeners = null; 265 | } 266 | }); 267 | return { 268 | on: function (type, handler) { 269 | listeners[type].push(handler); 270 | return this; 271 | }, 272 | cancel: function () { 273 | listeners = null; 274 | client.close(); 275 | } 276 | }; 277 | }; 278 | 279 | ConvaiServiceClient.prototype.submitFeedback = function submitFeedback(requestMessage, metadata, callback) { 280 | if (arguments.length === 2) { 281 | callback = arguments[1]; 282 | } 283 | var client = grpc.unary(ConvaiService.SubmitFeedback, { 284 | request: requestMessage, 285 | host: this.serviceHost, 286 | metadata: metadata, 287 | transport: this.options.transport, 288 | debug: this.options.debug, 289 | onEnd: function (response) { 290 | if (callback) { 291 | if (response.status !== grpc.Code.OK) { 292 | var err = new Error(response.statusMessage); 293 | err.code = response.status; 294 | err.metadata = response.trailers; 295 | callback(err, null); 296 | } else { 297 | callback(null, response.message); 298 | } 299 | } 300 | } 301 | }); 302 | return { 303 | cancel: function () { 304 | callback = null; 305 | client.close(); 306 | } 307 | }; 308 | }; 309 | 310 | exports.ConvaiServiceClient = ConvaiServiceClient; 311 | 312 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Convai-Web-SDK: Interact with your favorite characters from the web browser 2 | 3 | ### Get started 4 | 5 | Following examples use typescript bindings. 6 | 7 | ```ts 8 | import { ConvaiClient } from 'convai-web-sdk'; 9 | import { GetResponseResponse } from "convai-web-sdk/dist/_proto/service/service_pb"; 10 | 11 | // Initiate the convai client. 12 | const convaiClient = useRef(null); 13 | convaiClient.current = new ConvaiClient({ 14 | apiKey: string, //Enter your API Key here, 15 | characterId: string, //Enter your Character ID, 16 | enableAudio: boolean, //No chareacter audio will be played but will be generated. 17 | sessionId: string, //current conversation session. Can be used to retrieve chat history. 18 | languageCode?: string, 19 | textOnlyResponse?: boolean, //Optional parameter for chat only applications (No audio response from chareacter) 20 | micUsage?: boolean, // Option parameter for no microphone usage and access 21 | enableFacialData?: boolean, // Optional for viseme data generation used for lipsync and expression 22 | faceModel?: 3, 23 | narrativeTemplateKeysMap: Map, //dynamically pass variables to the Narrative Design section and triggers 24 | }) 25 | 26 | // Set a response callback. This may fire multiple times as response 27 | // can come in multiple parts. 28 | convaiClient.setResponseCallback((response: GetResponseResponse) => { 29 | // live transcript, only available during audio mode. 30 | if (response.hasUserQuery()) { 31 | var transcript = response!.getUserQuery(); 32 | var isFinal = response!.getIsFinal(); 33 | } 34 | if (response.hasAudioResponse()) { 35 | var audioResponse = response?.getAudioResponse(); 36 | if (audioResponse.hasTextData()) { 37 | // Response text. 38 | console.log(audioResponse?.getTextData()); 39 | } 40 | if (audioResponse.hasAudioData()) { 41 | // Play or process audio response. 42 | var audioByteArray: UInt8Array = audioResponse!.getAudioData_asU8(); 43 | } 44 | } 45 | 46 | // Actions coming soon! 47 | }); 48 | 49 | // Send text input 50 | var text = "How are you?"; 51 | convaiClient.sendTextChunk(text); 52 | 53 | // Send audio chunks. 54 | // Starts audio recording using default microphone. 55 | convaiClient.startAudioChunk(); 56 | 57 | // Stop recording and finish submitting input. 58 | convaiClient.endAudioChunk(); 59 | 60 | // End or Reset a conversation session. 61 | convaiClient.resetSession(); 62 | 63 | ``` 64 | 65 | ### Facial Expressions 66 | 67 | To kickstart facial expression functionality, initialize the `ConvaiClient` with the necessary parameters. The `enableFacialData` flag must be set to `true` to enable facial expression data. 68 | 69 | ```javascript 70 | convaiClient.current = new ConvaiClient({ 71 | apiKey: '', 72 | characterId: '', 73 | enableAudio: true, 74 | enableFacialData: true, 75 | faceModel: 3, // OVR lipsync 76 | }); 77 | ``` 78 | [Further Documentation](https://docs.convai.com/api-docs/plugins-and-integrations/convai-web-sdk/facial-expressions) 79 | 80 | ## Reference Videos 81 | **Convai-Npc World (React Three Fiber):** 82 | * GitHub: [Conv-AI/ThreeJs-World-Tutorial](https://github.com/Conv-AI/ThreeJs-World-Tutorial) 83 | * Tutorial Video: [Watch Video](https://www.youtube.com/watch?v=hOqtVLGXwKU) 84 | * Hosted Link: [Interactive.convai.com](https://interactive.convai.com/) 85 | 86 | ## Real Time Lipsync with Reallusion Characters: 87 | 88 | * GitHub: [Conv-AI/Reallusion-lipsync-web](https://github.com/Conv-AI/Reallusion-lipsync-web) 89 | 90 | ## NPM 91 | [convai-web-sdk](https://www.npmjs.com/package/convai-web-sdk) 92 | -------------------------------------------------------------------------------- /dist/typings/CharacterUtil.d.ts: -------------------------------------------------------------------------------- 1 | declare class AsyncBlockingQueue { 2 | private resolvers; 3 | private promises; 4 | private _add; 5 | enqueue(value: T): void; 6 | dequeue(): Promise; 7 | isEmpty(): boolean; 8 | isBlocked(): boolean; 9 | get length(): number; 10 | [Symbol.asyncIterator](): AsyncIterableIterator; 11 | } 12 | export { AsyncBlockingQueue }; 13 | -------------------------------------------------------------------------------- /dist/typings/audio_recorder.d.ts: -------------------------------------------------------------------------------- 1 | export declare class AudioRecorder { 2 | private audioContext; 3 | private userMedia; 4 | private mediaStream; 5 | private workletNode; 6 | private audioCallback; 7 | private audioWorkletModule; 8 | constructor(); 9 | private convertoFloat32ToInt16; 10 | start(audioCallback: (buffer: ArrayBuffer) => void): void; 11 | stop(): void; 12 | removeMicrophoneAccess(): void; 13 | getMicrophoneAccess(): void; 14 | } 15 | -------------------------------------------------------------------------------- /dist/typings/audio_recorder_processor.d.ts: -------------------------------------------------------------------------------- 1 | export declare var audio_reocrder_processor: string; 2 | -------------------------------------------------------------------------------- /dist/typings/convai_client.d.ts: -------------------------------------------------------------------------------- 1 | import { GetResponseResponse } from '../Proto/service/service_pb'; 2 | import { ActionConfigParamsType, ConvaiGRPCClientConfigType } from './types'; 3 | import * as narrativeDesign from "./narrativeDesign"; 4 | export interface ConvaiClientParams { 5 | apiKey: string; 6 | characterId: string; 7 | speaker: string; 8 | enableAudio: boolean; 9 | speakerId: string; 10 | sessionId: string; 11 | languageCode?: string; 12 | enableFacialData?: boolean; 13 | faceModel?: 0 | 1 | 2 | 3; 14 | narrativeTemplateKeysMap: Map; 15 | textOnlyResponse?: boolean; 16 | micUsage?: boolean; 17 | } 18 | export declare class ConvaiClient { 19 | private sessionId; 20 | private responseCallback; 21 | private errorCallback; 22 | private apiKey; 23 | private characterId; 24 | private speaker; 25 | private speakerId; 26 | private languageCode; 27 | private enableAudio; 28 | private enableAddingChunk; 29 | private finalChunkReceived; 30 | private audioRecorder; 31 | private audioPlayer; 32 | private convaiGrpcClient; 33 | private disableAudioGeneration; 34 | private enableFacialData; 35 | private faceModel; 36 | private micUsage?; 37 | private narrativeTemplateKeysMap; 38 | private actionConfig; 39 | convaiConfig: ConvaiGRPCClientConfigType; 40 | constructor(params: ConvaiClientParams); 41 | private validateBeforeRequest; 42 | resetSession(): void; 43 | setResponseCallback(fn: (response: GetResponseResponse) => void): void; 44 | setErrorCallback(fn: (type: string, statusMessage: string, status: string) => void): void; 45 | sendTextChunk(text: string): void; 46 | startAudioChunk(): void; 47 | invokeTrigger(name: string | null, message?: string | null, preload?: boolean): void; 48 | sendFeedback(interaction_id: string, character_id: string, session_id: string, thumbs_up: boolean, feedback_text: string): void; 49 | endAudioChunk(): void; 50 | toggleAudioVolume(): void; 51 | getAudioVolume(): number; 52 | stopCharacterAudio(): void; 53 | onAudioPlay(fn: () => void): void; 54 | onAudioStop(fn: () => void): void; 55 | pauseAudio(): void; 56 | resumeAudio(): void; 57 | onAudioStateChange(fn: () => void): void; 58 | playAudio(): void; 59 | setActionConfig(actionConfig: ActionConfigParamsType): void; 60 | } 61 | export { narrativeDesign }; 62 | -------------------------------------------------------------------------------- /dist/typings/convai_grpc_client.d.ts: -------------------------------------------------------------------------------- 1 | import { grpc } from '@improbable-eng/grpc-web'; 2 | import { GetResponseResponse } from '../Proto/service/service_pb'; 3 | import { ActionConfigParamsType } from './types'; 4 | export declare class ConvaiGRPCClient { 5 | client: grpc.Client; 6 | private feedbackClient; 7 | apiKey: string; 8 | private languageCode; 9 | private sessionId; 10 | characterId: string; 11 | private speaker; 12 | private inputMode; 13 | private isStarted; 14 | private speakerId; 15 | private disableAudioGeneration; 16 | private enableFacialData; 17 | private faceModel; 18 | private narrativeTemplateKeysMap; 19 | private actionConfigParams; 20 | constructor(apiKey: string, characterId: string, speaker: string, speakerId: string, sessionId: string, responseCallback: (response: GetResponseResponse) => void, errorCallback: (type: string, statusMessage: string, status: string) => void, languageCode: string, disableAudioGeneration: boolean, enableFacialData: boolean, faceModel: 0 | 1 | 2 | 3, narrativeTemplateKeysMap: Map, actionConfig?: ActionConfigParamsType); 21 | close(): void; 22 | invokeTrigger(name: string, message?: string): void; 23 | sendFeedback(interaction_id: string, character_id: string, session_id: string, thumbs_up: boolean, feedback_text: string): void; 24 | sendText(text: string): void; 25 | sendAudioChunk(chunk: ArrayBuffer): void; 26 | finishSend(): void; 27 | private setActionConfig; 28 | private start; 29 | } 30 | export type ConvaiGRPCClientType = ConvaiGRPCClient; 31 | -------------------------------------------------------------------------------- /dist/typings/manageClients.d.ts: -------------------------------------------------------------------------------- 1 | import { ConvaiGRPCClient } from "./convai_grpc_client"; 2 | import { ConvaiGRPCClientConfigType } from "./types"; 3 | export declare const setGrpcConfig: (config: ConvaiGRPCClientConfigType) => void; 4 | export declare const generateNewCurrentClient: (config?: ConvaiGRPCClientConfigType) => void; 5 | export declare const getCurrentClient: (config?: ConvaiGRPCClientConfigType) => ConvaiGRPCClient; 6 | export declare const manageClient: (config: ConvaiGRPCClientConfigType) => void; 7 | -------------------------------------------------------------------------------- /dist/typings/narrativeDesign.d.ts: -------------------------------------------------------------------------------- 1 | declare const createSection: ({ objective, sectionName, behaviorTreeCode, btConstants, apiKey, characterId }: { 2 | objective: any; 3 | sectionName: any; 4 | behaviorTreeCode?: any; 5 | btConstants?: any; 6 | apiKey: any; 7 | characterId: any; 8 | }) => Promise; 9 | declare const editSection: ({ updatedCharacterData, sectionId, apiKey, characterId }: { 10 | updatedCharacterData: any; 11 | sectionId: any; 12 | apiKey: any; 13 | characterId: any; 14 | }) => Promise; 15 | declare const getSection: ({ sectionId, apiKey, characterId }: { 16 | sectionId: any; 17 | apiKey: any; 18 | characterId: any; 19 | }) => Promise; 20 | declare const listSection: ({ apiKey, characterId }: { 21 | apiKey: any; 22 | characterId: any; 23 | }) => Promise; 24 | declare const deleteSection: ({ sectionId, apiKey, characterId }: { 25 | sectionId: any; 26 | apiKey: any; 27 | characterId: any; 28 | }) => Promise; 29 | declare const createTrigger: ({ triggerName, triggerMessage, destinationSection, apiKey, characterId }: { 30 | triggerName: any; 31 | triggerMessage: any; 32 | destinationSection: any; 33 | apiKey: any; 34 | characterId: any; 35 | }) => Promise; 36 | declare const updateTrigger: ({ triggerId, updatedTriggerData, apiKey, characterId }: { 37 | triggerId: any; 38 | updatedTriggerData: any; 39 | apiKey: any; 40 | characterId: any; 41 | }) => Promise; 42 | declare const deleteTrigger: ({ triggerId, apiKey, characterId }: { 43 | triggerId: any; 44 | apiKey: any; 45 | characterId: any; 46 | }) => Promise; 47 | declare const getTrigger: ({ triggerId, apiKey, characterId }: { 48 | triggerId: any; 49 | apiKey: any; 50 | characterId: any; 51 | }) => Promise; 52 | declare const listTriggers: ({ apiKey, characterId }: { 53 | apiKey: any; 54 | characterId: any; 55 | }) => Promise; 56 | export { createSection, editSection, getSection, listSection, deleteSection, createTrigger, updateTrigger, deleteTrigger, getTrigger, listTriggers }; 57 | -------------------------------------------------------------------------------- /dist/typings/streaming_audio_player.d.ts: -------------------------------------------------------------------------------- 1 | export declare class AudioPlayer { 2 | private audioContext; 3 | private sourceNode; 4 | private audioQueue; 5 | private gainNode; 6 | private isMuted; 7 | private isPlaying; 8 | private isPaused; 9 | private pausedAt; 10 | private startTime; 11 | private currentBuffer; 12 | private preloading; 13 | private channels; 14 | private sampleRate; 15 | private onPlay; 16 | private onStop; 17 | private onStateChangeCallback; 18 | constructor(sampleRate: number); 19 | private initializeAudioContext; 20 | preload(): void; 21 | addChunk(data: Uint8Array, sampleRate?: number | null): void; 22 | playAudio(): void; 23 | private playNextChunk; 24 | private playBuffer; 25 | pauseAudio(): void; 26 | resumeAudio(): void; 27 | stopAudio(): void; 28 | private notifyStateChange; 29 | getVolume(): number; 30 | setAudioVolume(volume: number): void; 31 | onPlayStart(fn: () => void): void; 32 | onPlayStop(fn: () => void): void; 33 | onStateChange(fn: (state: string) => void): void; 34 | } 35 | -------------------------------------------------------------------------------- /dist/typings/types.d.ts: -------------------------------------------------------------------------------- 1 | import { ActionConfig } from "../Proto/service/service_pb"; 2 | type ConvaiGRPCClientConfigType = { 3 | apiKey: string; 4 | characterId: string; 5 | speaker: string; 6 | speakerId: string; 7 | sessionId: string; 8 | errorCallback: (type: string, statusMessage: string, status: string) => void; 9 | responseCallback: (response: any) => void; 10 | languageCode: string; 11 | disableAudioGeneration: boolean; 12 | enableFacialData: boolean; 13 | faceModel: 0 | 1 | 2 | 3; 14 | narrativeTemplateKeysMap: any; 15 | actionConfig?: ActionConfigParamsType | null; 16 | }; 17 | type ActionConfigParamsType = { 18 | actions?: string[]; 19 | characters?: ActionConfig.Character[]; 20 | objects?: ActionConfig.Object[]; 21 | classification?: string; 22 | contextLevel?: number; 23 | currentAttentionObject?: string; 24 | }; 25 | export { ConvaiGRPCClientConfigType, ActionConfigParamsType }; 26 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "convai-web-sdk", 3 | "version": "0.1.4", 4 | "lockfileVersion": 3, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "convai-web-sdk", 9 | "version": "0.1.4", 10 | "license": "Apache-2.0", 11 | "devDependencies": { 12 | "@improbable-eng/grpc-web": "^0.15.0", 13 | "@types/node": "^18.15.1", 14 | "google-protobuf": "^3.21.2", 15 | "msr": "^1.3.4", 16 | "terser-webpack-plugin": "^5.3.10", 17 | "ts-loader": "^9.5.0", 18 | "webpack": "^5.76.0", 19 | "webpack-bundle-analyzer": "^4.10.1", 20 | "webpack-cli": "^5.0.1" 21 | } 22 | }, 23 | "node_modules/@discoveryjs/json-ext": { 24 | "version": "0.5.7", 25 | "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", 26 | "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", 27 | "dev": true, 28 | "engines": { 29 | "node": ">=10.0.0" 30 | } 31 | }, 32 | "node_modules/@improbable-eng/grpc-web": { 33 | "version": "0.15.0", 34 | "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.15.0.tgz", 35 | "integrity": "sha512-ERft9/0/8CmYalqOVnJnpdDry28q+j+nAlFFARdjyxXDJ+Mhgv9+F600QC8BR9ygOfrXRlAk6CvST2j+JCpQPg==", 36 | "dev": true, 37 | "dependencies": { 38 | "browser-headers": "^0.4.1" 39 | }, 40 | "peerDependencies": { 41 | "google-protobuf": "^3.14.0" 42 | } 43 | }, 44 | "node_modules/@jridgewell/gen-mapping": { 45 | "version": "0.3.8", 46 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", 47 | "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", 48 | "dev": true, 49 | "license": "MIT", 50 | "dependencies": { 51 | "@jridgewell/set-array": "^1.2.1", 52 | "@jridgewell/sourcemap-codec": "^1.4.10", 53 | "@jridgewell/trace-mapping": "^0.3.24" 54 | }, 55 | "engines": { 56 | "node": ">=6.0.0" 57 | } 58 | }, 59 | "node_modules/@jridgewell/resolve-uri": { 60 | "version": "3.1.2", 61 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", 62 | "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", 63 | "dev": true, 64 | "license": "MIT", 65 | "engines": { 66 | "node": ">=6.0.0" 67 | } 68 | }, 69 | "node_modules/@jridgewell/set-array": { 70 | "version": "1.2.1", 71 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", 72 | "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", 73 | "dev": true, 74 | "license": "MIT", 75 | "engines": { 76 | "node": ">=6.0.0" 77 | } 78 | }, 79 | "node_modules/@jridgewell/source-map": { 80 | "version": "0.3.6", 81 | "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", 82 | "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", 83 | "dev": true, 84 | "license": "MIT", 85 | "dependencies": { 86 | "@jridgewell/gen-mapping": "^0.3.5", 87 | "@jridgewell/trace-mapping": "^0.3.25" 88 | } 89 | }, 90 | "node_modules/@jridgewell/sourcemap-codec": { 91 | "version": "1.5.0", 92 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", 93 | "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", 94 | "dev": true, 95 | "license": "MIT" 96 | }, 97 | "node_modules/@jridgewell/trace-mapping": { 98 | "version": "0.3.25", 99 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", 100 | "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", 101 | "dev": true, 102 | "license": "MIT", 103 | "dependencies": { 104 | "@jridgewell/resolve-uri": "^3.1.0", 105 | "@jridgewell/sourcemap-codec": "^1.4.14" 106 | } 107 | }, 108 | "node_modules/@polka/url": { 109 | "version": "1.0.0-next.25", 110 | "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.25.tgz", 111 | "integrity": "sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==", 112 | "dev": true 113 | }, 114 | "node_modules/@types/eslint": { 115 | "version": "8.56.5", 116 | "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.5.tgz", 117 | "integrity": "sha512-u5/YPJHo1tvkSF2CE0USEkxon82Z5DBy2xR+qfyYNszpX9qcs4sT6uq2kBbj4BXY1+DBGDPnrhMZV3pKWGNukw==", 118 | "dev": true, 119 | "dependencies": { 120 | "@types/estree": "*", 121 | "@types/json-schema": "*" 122 | } 123 | }, 124 | "node_modules/@types/eslint-scope": { 125 | "version": "3.7.7", 126 | "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", 127 | "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", 128 | "dev": true, 129 | "dependencies": { 130 | "@types/eslint": "*", 131 | "@types/estree": "*" 132 | } 133 | }, 134 | "node_modules/@types/estree": { 135 | "version": "1.0.7", 136 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", 137 | "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", 138 | "dev": true, 139 | "license": "MIT" 140 | }, 141 | "node_modules/@types/json-schema": { 142 | "version": "7.0.15", 143 | "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", 144 | "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", 145 | "dev": true 146 | }, 147 | "node_modules/@types/node": { 148 | "version": "18.19.22", 149 | "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.22.tgz", 150 | "integrity": "sha512-p3pDIfuMg/aXBmhkyanPshdfJuX5c5+bQjYLIikPLXAUycEogij/c50n/C+8XOA5L93cU4ZRXtn+dNQGi0IZqQ==", 151 | "dev": true, 152 | "dependencies": { 153 | "undici-types": "~5.26.4" 154 | } 155 | }, 156 | "node_modules/@webassemblyjs/ast": { 157 | "version": "1.14.1", 158 | "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", 159 | "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", 160 | "dev": true, 161 | "license": "MIT", 162 | "dependencies": { 163 | "@webassemblyjs/helper-numbers": "1.13.2", 164 | "@webassemblyjs/helper-wasm-bytecode": "1.13.2" 165 | } 166 | }, 167 | "node_modules/@webassemblyjs/floating-point-hex-parser": { 168 | "version": "1.13.2", 169 | "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", 170 | "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", 171 | "dev": true, 172 | "license": "MIT" 173 | }, 174 | "node_modules/@webassemblyjs/helper-api-error": { 175 | "version": "1.13.2", 176 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", 177 | "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", 178 | "dev": true, 179 | "license": "MIT" 180 | }, 181 | "node_modules/@webassemblyjs/helper-buffer": { 182 | "version": "1.14.1", 183 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", 184 | "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", 185 | "dev": true, 186 | "license": "MIT" 187 | }, 188 | "node_modules/@webassemblyjs/helper-numbers": { 189 | "version": "1.13.2", 190 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", 191 | "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", 192 | "dev": true, 193 | "license": "MIT", 194 | "dependencies": { 195 | "@webassemblyjs/floating-point-hex-parser": "1.13.2", 196 | "@webassemblyjs/helper-api-error": "1.13.2", 197 | "@xtuc/long": "4.2.2" 198 | } 199 | }, 200 | "node_modules/@webassemblyjs/helper-wasm-bytecode": { 201 | "version": "1.13.2", 202 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", 203 | "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", 204 | "dev": true, 205 | "license": "MIT" 206 | }, 207 | "node_modules/@webassemblyjs/helper-wasm-section": { 208 | "version": "1.14.1", 209 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", 210 | "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", 211 | "dev": true, 212 | "license": "MIT", 213 | "dependencies": { 214 | "@webassemblyjs/ast": "1.14.1", 215 | "@webassemblyjs/helper-buffer": "1.14.1", 216 | "@webassemblyjs/helper-wasm-bytecode": "1.13.2", 217 | "@webassemblyjs/wasm-gen": "1.14.1" 218 | } 219 | }, 220 | "node_modules/@webassemblyjs/ieee754": { 221 | "version": "1.13.2", 222 | "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", 223 | "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", 224 | "dev": true, 225 | "license": "MIT", 226 | "dependencies": { 227 | "@xtuc/ieee754": "^1.2.0" 228 | } 229 | }, 230 | "node_modules/@webassemblyjs/leb128": { 231 | "version": "1.13.2", 232 | "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", 233 | "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", 234 | "dev": true, 235 | "license": "Apache-2.0", 236 | "dependencies": { 237 | "@xtuc/long": "4.2.2" 238 | } 239 | }, 240 | "node_modules/@webassemblyjs/utf8": { 241 | "version": "1.13.2", 242 | "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", 243 | "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", 244 | "dev": true, 245 | "license": "MIT" 246 | }, 247 | "node_modules/@webassemblyjs/wasm-edit": { 248 | "version": "1.14.1", 249 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", 250 | "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", 251 | "dev": true, 252 | "license": "MIT", 253 | "dependencies": { 254 | "@webassemblyjs/ast": "1.14.1", 255 | "@webassemblyjs/helper-buffer": "1.14.1", 256 | "@webassemblyjs/helper-wasm-bytecode": "1.13.2", 257 | "@webassemblyjs/helper-wasm-section": "1.14.1", 258 | "@webassemblyjs/wasm-gen": "1.14.1", 259 | "@webassemblyjs/wasm-opt": "1.14.1", 260 | "@webassemblyjs/wasm-parser": "1.14.1", 261 | "@webassemblyjs/wast-printer": "1.14.1" 262 | } 263 | }, 264 | "node_modules/@webassemblyjs/wasm-gen": { 265 | "version": "1.14.1", 266 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", 267 | "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", 268 | "dev": true, 269 | "license": "MIT", 270 | "dependencies": { 271 | "@webassemblyjs/ast": "1.14.1", 272 | "@webassemblyjs/helper-wasm-bytecode": "1.13.2", 273 | "@webassemblyjs/ieee754": "1.13.2", 274 | "@webassemblyjs/leb128": "1.13.2", 275 | "@webassemblyjs/utf8": "1.13.2" 276 | } 277 | }, 278 | "node_modules/@webassemblyjs/wasm-opt": { 279 | "version": "1.14.1", 280 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", 281 | "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", 282 | "dev": true, 283 | "license": "MIT", 284 | "dependencies": { 285 | "@webassemblyjs/ast": "1.14.1", 286 | "@webassemblyjs/helper-buffer": "1.14.1", 287 | "@webassemblyjs/wasm-gen": "1.14.1", 288 | "@webassemblyjs/wasm-parser": "1.14.1" 289 | } 290 | }, 291 | "node_modules/@webassemblyjs/wasm-parser": { 292 | "version": "1.14.1", 293 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", 294 | "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", 295 | "dev": true, 296 | "license": "MIT", 297 | "dependencies": { 298 | "@webassemblyjs/ast": "1.14.1", 299 | "@webassemblyjs/helper-api-error": "1.13.2", 300 | "@webassemblyjs/helper-wasm-bytecode": "1.13.2", 301 | "@webassemblyjs/ieee754": "1.13.2", 302 | "@webassemblyjs/leb128": "1.13.2", 303 | "@webassemblyjs/utf8": "1.13.2" 304 | } 305 | }, 306 | "node_modules/@webassemblyjs/wast-printer": { 307 | "version": "1.14.1", 308 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", 309 | "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", 310 | "dev": true, 311 | "license": "MIT", 312 | "dependencies": { 313 | "@webassemblyjs/ast": "1.14.1", 314 | "@xtuc/long": "4.2.2" 315 | } 316 | }, 317 | "node_modules/@webpack-cli/configtest": { 318 | "version": "2.1.1", 319 | "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", 320 | "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", 321 | "dev": true, 322 | "engines": { 323 | "node": ">=14.15.0" 324 | }, 325 | "peerDependencies": { 326 | "webpack": "5.x.x", 327 | "webpack-cli": "5.x.x" 328 | } 329 | }, 330 | "node_modules/@webpack-cli/info": { 331 | "version": "2.0.2", 332 | "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", 333 | "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", 334 | "dev": true, 335 | "engines": { 336 | "node": ">=14.15.0" 337 | }, 338 | "peerDependencies": { 339 | "webpack": "5.x.x", 340 | "webpack-cli": "5.x.x" 341 | } 342 | }, 343 | "node_modules/@webpack-cli/serve": { 344 | "version": "2.0.5", 345 | "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", 346 | "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", 347 | "dev": true, 348 | "engines": { 349 | "node": ">=14.15.0" 350 | }, 351 | "peerDependencies": { 352 | "webpack": "5.x.x", 353 | "webpack-cli": "5.x.x" 354 | }, 355 | "peerDependenciesMeta": { 356 | "webpack-dev-server": { 357 | "optional": true 358 | } 359 | } 360 | }, 361 | "node_modules/@xtuc/ieee754": { 362 | "version": "1.2.0", 363 | "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", 364 | "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", 365 | "dev": true, 366 | "license": "BSD-3-Clause" 367 | }, 368 | "node_modules/@xtuc/long": { 369 | "version": "4.2.2", 370 | "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", 371 | "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", 372 | "dev": true, 373 | "license": "Apache-2.0" 374 | }, 375 | "node_modules/acorn": { 376 | "version": "8.14.1", 377 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", 378 | "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", 379 | "dev": true, 380 | "license": "MIT", 381 | "bin": { 382 | "acorn": "bin/acorn" 383 | }, 384 | "engines": { 385 | "node": ">=0.4.0" 386 | } 387 | }, 388 | "node_modules/acorn-walk": { 389 | "version": "8.3.2", 390 | "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", 391 | "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", 392 | "dev": true, 393 | "engines": { 394 | "node": ">=0.4.0" 395 | } 396 | }, 397 | "node_modules/ajv": { 398 | "version": "8.17.1", 399 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", 400 | "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", 401 | "dev": true, 402 | "license": "MIT", 403 | "dependencies": { 404 | "fast-deep-equal": "^3.1.3", 405 | "fast-uri": "^3.0.1", 406 | "json-schema-traverse": "^1.0.0", 407 | "require-from-string": "^2.0.2" 408 | }, 409 | "funding": { 410 | "type": "github", 411 | "url": "https://github.com/sponsors/epoberezkin" 412 | } 413 | }, 414 | "node_modules/ajv-formats": { 415 | "version": "2.1.1", 416 | "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", 417 | "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", 418 | "dev": true, 419 | "license": "MIT", 420 | "dependencies": { 421 | "ajv": "^8.0.0" 422 | }, 423 | "peerDependencies": { 424 | "ajv": "^8.0.0" 425 | }, 426 | "peerDependenciesMeta": { 427 | "ajv": { 428 | "optional": true 429 | } 430 | } 431 | }, 432 | "node_modules/ajv-keywords": { 433 | "version": "5.1.0", 434 | "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", 435 | "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", 436 | "dev": true, 437 | "license": "MIT", 438 | "dependencies": { 439 | "fast-deep-equal": "^3.1.3" 440 | }, 441 | "peerDependencies": { 442 | "ajv": "^8.8.2" 443 | } 444 | }, 445 | "node_modules/ansi-styles": { 446 | "version": "4.3.0", 447 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 448 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 449 | "dev": true, 450 | "dependencies": { 451 | "color-convert": "^2.0.1" 452 | }, 453 | "engines": { 454 | "node": ">=8" 455 | }, 456 | "funding": { 457 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 458 | } 459 | }, 460 | "node_modules/braces": { 461 | "version": "3.0.3", 462 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", 463 | "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", 464 | "dev": true, 465 | "license": "MIT", 466 | "dependencies": { 467 | "fill-range": "^7.1.1" 468 | }, 469 | "engines": { 470 | "node": ">=8" 471 | } 472 | }, 473 | "node_modules/browser-headers": { 474 | "version": "0.4.1", 475 | "resolved": "https://registry.npmjs.org/browser-headers/-/browser-headers-0.4.1.tgz", 476 | "integrity": "sha512-CA9hsySZVo9371qEHjHZtYxV2cFtVj5Wj/ZHi8ooEsrtm4vOnl9Y9HmyYWk9q+05d7K3rdoAE0j3MVEFVvtQtg==", 477 | "dev": true 478 | }, 479 | "node_modules/browserslist": { 480 | "version": "4.24.4", 481 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", 482 | "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", 483 | "dev": true, 484 | "funding": [ 485 | { 486 | "type": "opencollective", 487 | "url": "https://opencollective.com/browserslist" 488 | }, 489 | { 490 | "type": "tidelift", 491 | "url": "https://tidelift.com/funding/github/npm/browserslist" 492 | }, 493 | { 494 | "type": "github", 495 | "url": "https://github.com/sponsors/ai" 496 | } 497 | ], 498 | "license": "MIT", 499 | "dependencies": { 500 | "caniuse-lite": "^1.0.30001688", 501 | "electron-to-chromium": "^1.5.73", 502 | "node-releases": "^2.0.19", 503 | "update-browserslist-db": "^1.1.1" 504 | }, 505 | "bin": { 506 | "browserslist": "cli.js" 507 | }, 508 | "engines": { 509 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" 510 | } 511 | }, 512 | "node_modules/buffer-from": { 513 | "version": "1.1.2", 514 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", 515 | "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", 516 | "dev": true, 517 | "license": "MIT" 518 | }, 519 | "node_modules/caniuse-lite": { 520 | "version": "1.0.30001715", 521 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001715.tgz", 522 | "integrity": "sha512-7ptkFGMm2OAOgvZpwgA4yjQ5SQbrNVGdRjzH0pBdy1Fasvcr+KAeECmbCAECzTuDuoX0FCY8KzUxjf9+9kfZEw==", 523 | "dev": true, 524 | "funding": [ 525 | { 526 | "type": "opencollective", 527 | "url": "https://opencollective.com/browserslist" 528 | }, 529 | { 530 | "type": "tidelift", 531 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite" 532 | }, 533 | { 534 | "type": "github", 535 | "url": "https://github.com/sponsors/ai" 536 | } 537 | ], 538 | "license": "CC-BY-4.0" 539 | }, 540 | "node_modules/chalk": { 541 | "version": "4.1.2", 542 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 543 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 544 | "dev": true, 545 | "dependencies": { 546 | "ansi-styles": "^4.1.0", 547 | "supports-color": "^7.1.0" 548 | }, 549 | "engines": { 550 | "node": ">=10" 551 | }, 552 | "funding": { 553 | "url": "https://github.com/chalk/chalk?sponsor=1" 554 | } 555 | }, 556 | "node_modules/chrome-trace-event": { 557 | "version": "1.0.3", 558 | "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", 559 | "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", 560 | "dev": true, 561 | "engines": { 562 | "node": ">=6.0" 563 | } 564 | }, 565 | "node_modules/clone-deep": { 566 | "version": "4.0.1", 567 | "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", 568 | "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", 569 | "dev": true, 570 | "dependencies": { 571 | "is-plain-object": "^2.0.4", 572 | "kind-of": "^6.0.2", 573 | "shallow-clone": "^3.0.0" 574 | }, 575 | "engines": { 576 | "node": ">=6" 577 | } 578 | }, 579 | "node_modules/color-convert": { 580 | "version": "2.0.1", 581 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 582 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 583 | "dev": true, 584 | "dependencies": { 585 | "color-name": "~1.1.4" 586 | }, 587 | "engines": { 588 | "node": ">=7.0.0" 589 | } 590 | }, 591 | "node_modules/color-name": { 592 | "version": "1.1.4", 593 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 594 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 595 | "dev": true 596 | }, 597 | "node_modules/colorette": { 598 | "version": "2.0.20", 599 | "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", 600 | "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", 601 | "dev": true 602 | }, 603 | "node_modules/commander": { 604 | "version": "2.20.3", 605 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", 606 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", 607 | "dev": true, 608 | "license": "MIT" 609 | }, 610 | "node_modules/cross-spawn": { 611 | "version": "7.0.6", 612 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", 613 | "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", 614 | "dev": true, 615 | "license": "MIT", 616 | "dependencies": { 617 | "path-key": "^3.1.0", 618 | "shebang-command": "^2.0.0", 619 | "which": "^2.0.1" 620 | }, 621 | "engines": { 622 | "node": ">= 8" 623 | } 624 | }, 625 | "node_modules/debounce": { 626 | "version": "1.2.1", 627 | "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", 628 | "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", 629 | "dev": true 630 | }, 631 | "node_modules/duplexer": { 632 | "version": "0.1.2", 633 | "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", 634 | "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", 635 | "dev": true 636 | }, 637 | "node_modules/electron-to-chromium": { 638 | "version": "1.5.141", 639 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.141.tgz", 640 | "integrity": "sha512-qS+qH9oqVYc1ooubTiB9l904WVyM6qNYxtOEEGReoZXw3xlqeYdFr5GclNzbkAufWgwWLEPoDi3d9MoRwwIjGw==", 641 | "dev": true, 642 | "license": "ISC" 643 | }, 644 | "node_modules/enhanced-resolve": { 645 | "version": "5.18.1", 646 | "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", 647 | "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", 648 | "dev": true, 649 | "license": "MIT", 650 | "dependencies": { 651 | "graceful-fs": "^4.2.4", 652 | "tapable": "^2.2.0" 653 | }, 654 | "engines": { 655 | "node": ">=10.13.0" 656 | } 657 | }, 658 | "node_modules/envinfo": { 659 | "version": "7.11.1", 660 | "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.1.tgz", 661 | "integrity": "sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==", 662 | "dev": true, 663 | "bin": { 664 | "envinfo": "dist/cli.js" 665 | }, 666 | "engines": { 667 | "node": ">=4" 668 | } 669 | }, 670 | "node_modules/es-module-lexer": { 671 | "version": "1.4.1", 672 | "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", 673 | "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", 674 | "dev": true 675 | }, 676 | "node_modules/escalade": { 677 | "version": "3.2.0", 678 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", 679 | "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", 680 | "dev": true, 681 | "license": "MIT", 682 | "engines": { 683 | "node": ">=6" 684 | } 685 | }, 686 | "node_modules/escape-string-regexp": { 687 | "version": "4.0.0", 688 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 689 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 690 | "dev": true, 691 | "engines": { 692 | "node": ">=10" 693 | }, 694 | "funding": { 695 | "url": "https://github.com/sponsors/sindresorhus" 696 | } 697 | }, 698 | "node_modules/eslint-scope": { 699 | "version": "5.1.1", 700 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", 701 | "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", 702 | "dev": true, 703 | "dependencies": { 704 | "esrecurse": "^4.3.0", 705 | "estraverse": "^4.1.1" 706 | }, 707 | "engines": { 708 | "node": ">=8.0.0" 709 | } 710 | }, 711 | "node_modules/esrecurse": { 712 | "version": "4.3.0", 713 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", 714 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 715 | "dev": true, 716 | "dependencies": { 717 | "estraverse": "^5.2.0" 718 | }, 719 | "engines": { 720 | "node": ">=4.0" 721 | } 722 | }, 723 | "node_modules/esrecurse/node_modules/estraverse": { 724 | "version": "5.3.0", 725 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 726 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 727 | "dev": true, 728 | "engines": { 729 | "node": ">=4.0" 730 | } 731 | }, 732 | "node_modules/estraverse": { 733 | "version": "4.3.0", 734 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", 735 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", 736 | "dev": true, 737 | "engines": { 738 | "node": ">=4.0" 739 | } 740 | }, 741 | "node_modules/events": { 742 | "version": "3.3.0", 743 | "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", 744 | "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", 745 | "dev": true, 746 | "engines": { 747 | "node": ">=0.8.x" 748 | } 749 | }, 750 | "node_modules/fast-deep-equal": { 751 | "version": "3.1.3", 752 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 753 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 754 | "dev": true, 755 | "license": "MIT" 756 | }, 757 | "node_modules/fast-uri": { 758 | "version": "3.0.6", 759 | "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", 760 | "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", 761 | "dev": true, 762 | "funding": [ 763 | { 764 | "type": "github", 765 | "url": "https://github.com/sponsors/fastify" 766 | }, 767 | { 768 | "type": "opencollective", 769 | "url": "https://opencollective.com/fastify" 770 | } 771 | ], 772 | "license": "BSD-3-Clause" 773 | }, 774 | "node_modules/fastest-levenshtein": { 775 | "version": "1.0.16", 776 | "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", 777 | "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", 778 | "dev": true, 779 | "engines": { 780 | "node": ">= 4.9.1" 781 | } 782 | }, 783 | "node_modules/fill-range": { 784 | "version": "7.1.1", 785 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", 786 | "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", 787 | "dev": true, 788 | "license": "MIT", 789 | "dependencies": { 790 | "to-regex-range": "^5.0.1" 791 | }, 792 | "engines": { 793 | "node": ">=8" 794 | } 795 | }, 796 | "node_modules/find-up": { 797 | "version": "4.1.0", 798 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", 799 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", 800 | "dev": true, 801 | "dependencies": { 802 | "locate-path": "^5.0.0", 803 | "path-exists": "^4.0.0" 804 | }, 805 | "engines": { 806 | "node": ">=8" 807 | } 808 | }, 809 | "node_modules/flat": { 810 | "version": "5.0.2", 811 | "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", 812 | "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", 813 | "dev": true, 814 | "bin": { 815 | "flat": "cli.js" 816 | } 817 | }, 818 | "node_modules/function-bind": { 819 | "version": "1.1.2", 820 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", 821 | "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", 822 | "dev": true, 823 | "funding": { 824 | "url": "https://github.com/sponsors/ljharb" 825 | } 826 | }, 827 | "node_modules/glob-to-regexp": { 828 | "version": "0.4.1", 829 | "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", 830 | "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", 831 | "dev": true, 832 | "license": "BSD-2-Clause" 833 | }, 834 | "node_modules/google-protobuf": { 835 | "version": "3.21.2", 836 | "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz", 837 | "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==", 838 | "dev": true 839 | }, 840 | "node_modules/graceful-fs": { 841 | "version": "4.2.11", 842 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", 843 | "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", 844 | "dev": true 845 | }, 846 | "node_modules/gzip-size": { 847 | "version": "6.0.0", 848 | "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", 849 | "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", 850 | "dev": true, 851 | "dependencies": { 852 | "duplexer": "^0.1.2" 853 | }, 854 | "engines": { 855 | "node": ">=10" 856 | }, 857 | "funding": { 858 | "url": "https://github.com/sponsors/sindresorhus" 859 | } 860 | }, 861 | "node_modules/has-flag": { 862 | "version": "4.0.0", 863 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 864 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 865 | "dev": true, 866 | "engines": { 867 | "node": ">=8" 868 | } 869 | }, 870 | "node_modules/hasown": { 871 | "version": "2.0.1", 872 | "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", 873 | "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", 874 | "dev": true, 875 | "dependencies": { 876 | "function-bind": "^1.1.2" 877 | }, 878 | "engines": { 879 | "node": ">= 0.4" 880 | } 881 | }, 882 | "node_modules/html-escaper": { 883 | "version": "2.0.2", 884 | "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", 885 | "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", 886 | "dev": true 887 | }, 888 | "node_modules/import-local": { 889 | "version": "3.1.0", 890 | "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", 891 | "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", 892 | "dev": true, 893 | "dependencies": { 894 | "pkg-dir": "^4.2.0", 895 | "resolve-cwd": "^3.0.0" 896 | }, 897 | "bin": { 898 | "import-local-fixture": "fixtures/cli.js" 899 | }, 900 | "engines": { 901 | "node": ">=8" 902 | }, 903 | "funding": { 904 | "url": "https://github.com/sponsors/sindresorhus" 905 | } 906 | }, 907 | "node_modules/interpret": { 908 | "version": "3.1.1", 909 | "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", 910 | "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", 911 | "dev": true, 912 | "engines": { 913 | "node": ">=10.13.0" 914 | } 915 | }, 916 | "node_modules/is-core-module": { 917 | "version": "2.13.1", 918 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", 919 | "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", 920 | "dev": true, 921 | "dependencies": { 922 | "hasown": "^2.0.0" 923 | }, 924 | "funding": { 925 | "url": "https://github.com/sponsors/ljharb" 926 | } 927 | }, 928 | "node_modules/is-number": { 929 | "version": "7.0.0", 930 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 931 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 932 | "dev": true, 933 | "license": "MIT", 934 | "engines": { 935 | "node": ">=0.12.0" 936 | } 937 | }, 938 | "node_modules/is-plain-object": { 939 | "version": "2.0.4", 940 | "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", 941 | "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", 942 | "dev": true, 943 | "dependencies": { 944 | "isobject": "^3.0.1" 945 | }, 946 | "engines": { 947 | "node": ">=0.10.0" 948 | } 949 | }, 950 | "node_modules/isexe": { 951 | "version": "2.0.0", 952 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 953 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", 954 | "dev": true 955 | }, 956 | "node_modules/isobject": { 957 | "version": "3.0.1", 958 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", 959 | "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", 960 | "dev": true, 961 | "engines": { 962 | "node": ">=0.10.0" 963 | } 964 | }, 965 | "node_modules/jest-worker": { 966 | "version": "27.5.1", 967 | "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", 968 | "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", 969 | "dev": true, 970 | "dependencies": { 971 | "@types/node": "*", 972 | "merge-stream": "^2.0.0", 973 | "supports-color": "^8.0.0" 974 | }, 975 | "engines": { 976 | "node": ">= 10.13.0" 977 | } 978 | }, 979 | "node_modules/jest-worker/node_modules/supports-color": { 980 | "version": "8.1.1", 981 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", 982 | "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", 983 | "dev": true, 984 | "dependencies": { 985 | "has-flag": "^4.0.0" 986 | }, 987 | "engines": { 988 | "node": ">=10" 989 | }, 990 | "funding": { 991 | "url": "https://github.com/chalk/supports-color?sponsor=1" 992 | } 993 | }, 994 | "node_modules/json-parse-even-better-errors": { 995 | "version": "2.3.1", 996 | "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", 997 | "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", 998 | "dev": true 999 | }, 1000 | "node_modules/json-schema-traverse": { 1001 | "version": "1.0.0", 1002 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", 1003 | "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", 1004 | "dev": true, 1005 | "license": "MIT" 1006 | }, 1007 | "node_modules/kind-of": { 1008 | "version": "6.0.3", 1009 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", 1010 | "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", 1011 | "dev": true, 1012 | "engines": { 1013 | "node": ">=0.10.0" 1014 | } 1015 | }, 1016 | "node_modules/loader-runner": { 1017 | "version": "4.3.0", 1018 | "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", 1019 | "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", 1020 | "dev": true, 1021 | "engines": { 1022 | "node": ">=6.11.5" 1023 | } 1024 | }, 1025 | "node_modules/locate-path": { 1026 | "version": "5.0.0", 1027 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", 1028 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", 1029 | "dev": true, 1030 | "dependencies": { 1031 | "p-locate": "^4.1.0" 1032 | }, 1033 | "engines": { 1034 | "node": ">=8" 1035 | } 1036 | }, 1037 | "node_modules/lru-cache": { 1038 | "version": "6.0.0", 1039 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 1040 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 1041 | "dev": true, 1042 | "dependencies": { 1043 | "yallist": "^4.0.0" 1044 | }, 1045 | "engines": { 1046 | "node": ">=10" 1047 | } 1048 | }, 1049 | "node_modules/merge-stream": { 1050 | "version": "2.0.0", 1051 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", 1052 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", 1053 | "dev": true 1054 | }, 1055 | "node_modules/micromatch": { 1056 | "version": "4.0.8", 1057 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", 1058 | "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", 1059 | "dev": true, 1060 | "license": "MIT", 1061 | "dependencies": { 1062 | "braces": "^3.0.3", 1063 | "picomatch": "^2.3.1" 1064 | }, 1065 | "engines": { 1066 | "node": ">=8.6" 1067 | } 1068 | }, 1069 | "node_modules/mime-db": { 1070 | "version": "1.52.0", 1071 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", 1072 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", 1073 | "dev": true, 1074 | "engines": { 1075 | "node": ">= 0.6" 1076 | } 1077 | }, 1078 | "node_modules/mime-types": { 1079 | "version": "2.1.35", 1080 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", 1081 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 1082 | "dev": true, 1083 | "dependencies": { 1084 | "mime-db": "1.52.0" 1085 | }, 1086 | "engines": { 1087 | "node": ">= 0.6" 1088 | } 1089 | }, 1090 | "node_modules/mrmime": { 1091 | "version": "2.0.0", 1092 | "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", 1093 | "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", 1094 | "dev": true, 1095 | "engines": { 1096 | "node": ">=10" 1097 | } 1098 | }, 1099 | "node_modules/msr": { 1100 | "version": "1.3.4", 1101 | "resolved": "https://registry.npmjs.org/msr/-/msr-1.3.4.tgz", 1102 | "integrity": "sha512-vx1gmfKCacOylK5YNSlWWrWcqMfOjSgQQn3rb4NA830LlBrXyWVHJQdbILG4xiK9Xz77K35ve2CLodX2gEzlKA==", 1103 | "dev": true 1104 | }, 1105 | "node_modules/neo-async": { 1106 | "version": "2.6.2", 1107 | "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", 1108 | "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", 1109 | "dev": true 1110 | }, 1111 | "node_modules/node-releases": { 1112 | "version": "2.0.19", 1113 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", 1114 | "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", 1115 | "dev": true, 1116 | "license": "MIT" 1117 | }, 1118 | "node_modules/opener": { 1119 | "version": "1.5.2", 1120 | "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", 1121 | "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", 1122 | "dev": true, 1123 | "bin": { 1124 | "opener": "bin/opener-bin.js" 1125 | } 1126 | }, 1127 | "node_modules/p-limit": { 1128 | "version": "2.3.0", 1129 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", 1130 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", 1131 | "dev": true, 1132 | "dependencies": { 1133 | "p-try": "^2.0.0" 1134 | }, 1135 | "engines": { 1136 | "node": ">=6" 1137 | }, 1138 | "funding": { 1139 | "url": "https://github.com/sponsors/sindresorhus" 1140 | } 1141 | }, 1142 | "node_modules/p-locate": { 1143 | "version": "4.1.0", 1144 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", 1145 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", 1146 | "dev": true, 1147 | "dependencies": { 1148 | "p-limit": "^2.2.0" 1149 | }, 1150 | "engines": { 1151 | "node": ">=8" 1152 | } 1153 | }, 1154 | "node_modules/p-try": { 1155 | "version": "2.2.0", 1156 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 1157 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", 1158 | "dev": true, 1159 | "engines": { 1160 | "node": ">=6" 1161 | } 1162 | }, 1163 | "node_modules/path-exists": { 1164 | "version": "4.0.0", 1165 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 1166 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 1167 | "dev": true, 1168 | "engines": { 1169 | "node": ">=8" 1170 | } 1171 | }, 1172 | "node_modules/path-key": { 1173 | "version": "3.1.1", 1174 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 1175 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 1176 | "dev": true, 1177 | "engines": { 1178 | "node": ">=8" 1179 | } 1180 | }, 1181 | "node_modules/path-parse": { 1182 | "version": "1.0.7", 1183 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 1184 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 1185 | "dev": true 1186 | }, 1187 | "node_modules/picocolors": { 1188 | "version": "1.1.1", 1189 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", 1190 | "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", 1191 | "dev": true, 1192 | "license": "ISC" 1193 | }, 1194 | "node_modules/picomatch": { 1195 | "version": "2.3.1", 1196 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 1197 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 1198 | "dev": true, 1199 | "engines": { 1200 | "node": ">=8.6" 1201 | }, 1202 | "funding": { 1203 | "url": "https://github.com/sponsors/jonschlinkert" 1204 | } 1205 | }, 1206 | "node_modules/pkg-dir": { 1207 | "version": "4.2.0", 1208 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", 1209 | "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", 1210 | "dev": true, 1211 | "dependencies": { 1212 | "find-up": "^4.0.0" 1213 | }, 1214 | "engines": { 1215 | "node": ">=8" 1216 | } 1217 | }, 1218 | "node_modules/randombytes": { 1219 | "version": "2.1.0", 1220 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", 1221 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", 1222 | "dev": true, 1223 | "dependencies": { 1224 | "safe-buffer": "^5.1.0" 1225 | } 1226 | }, 1227 | "node_modules/rechoir": { 1228 | "version": "0.8.0", 1229 | "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", 1230 | "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", 1231 | "dev": true, 1232 | "dependencies": { 1233 | "resolve": "^1.20.0" 1234 | }, 1235 | "engines": { 1236 | "node": ">= 10.13.0" 1237 | } 1238 | }, 1239 | "node_modules/require-from-string": { 1240 | "version": "2.0.2", 1241 | "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", 1242 | "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", 1243 | "dev": true, 1244 | "license": "MIT", 1245 | "engines": { 1246 | "node": ">=0.10.0" 1247 | } 1248 | }, 1249 | "node_modules/resolve": { 1250 | "version": "1.22.8", 1251 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", 1252 | "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", 1253 | "dev": true, 1254 | "dependencies": { 1255 | "is-core-module": "^2.13.0", 1256 | "path-parse": "^1.0.7", 1257 | "supports-preserve-symlinks-flag": "^1.0.0" 1258 | }, 1259 | "bin": { 1260 | "resolve": "bin/resolve" 1261 | }, 1262 | "funding": { 1263 | "url": "https://github.com/sponsors/ljharb" 1264 | } 1265 | }, 1266 | "node_modules/resolve-cwd": { 1267 | "version": "3.0.0", 1268 | "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", 1269 | "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", 1270 | "dev": true, 1271 | "dependencies": { 1272 | "resolve-from": "^5.0.0" 1273 | }, 1274 | "engines": { 1275 | "node": ">=8" 1276 | } 1277 | }, 1278 | "node_modules/resolve-from": { 1279 | "version": "5.0.0", 1280 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", 1281 | "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", 1282 | "dev": true, 1283 | "engines": { 1284 | "node": ">=8" 1285 | } 1286 | }, 1287 | "node_modules/safe-buffer": { 1288 | "version": "5.2.1", 1289 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 1290 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 1291 | "dev": true, 1292 | "funding": [ 1293 | { 1294 | "type": "github", 1295 | "url": "https://github.com/sponsors/feross" 1296 | }, 1297 | { 1298 | "type": "patreon", 1299 | "url": "https://www.patreon.com/feross" 1300 | }, 1301 | { 1302 | "type": "consulting", 1303 | "url": "https://feross.org/support" 1304 | } 1305 | ] 1306 | }, 1307 | "node_modules/schema-utils": { 1308 | "version": "4.3.2", 1309 | "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", 1310 | "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", 1311 | "dev": true, 1312 | "license": "MIT", 1313 | "dependencies": { 1314 | "@types/json-schema": "^7.0.9", 1315 | "ajv": "^8.9.0", 1316 | "ajv-formats": "^2.1.1", 1317 | "ajv-keywords": "^5.1.0" 1318 | }, 1319 | "engines": { 1320 | "node": ">= 10.13.0" 1321 | }, 1322 | "funding": { 1323 | "type": "opencollective", 1324 | "url": "https://opencollective.com/webpack" 1325 | } 1326 | }, 1327 | "node_modules/semver": { 1328 | "version": "7.6.0", 1329 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", 1330 | "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", 1331 | "dev": true, 1332 | "dependencies": { 1333 | "lru-cache": "^6.0.0" 1334 | }, 1335 | "bin": { 1336 | "semver": "bin/semver.js" 1337 | }, 1338 | "engines": { 1339 | "node": ">=10" 1340 | } 1341 | }, 1342 | "node_modules/serialize-javascript": { 1343 | "version": "6.0.2", 1344 | "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", 1345 | "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", 1346 | "dev": true, 1347 | "dependencies": { 1348 | "randombytes": "^2.1.0" 1349 | } 1350 | }, 1351 | "node_modules/shallow-clone": { 1352 | "version": "3.0.1", 1353 | "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", 1354 | "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", 1355 | "dev": true, 1356 | "dependencies": { 1357 | "kind-of": "^6.0.2" 1358 | }, 1359 | "engines": { 1360 | "node": ">=8" 1361 | } 1362 | }, 1363 | "node_modules/shebang-command": { 1364 | "version": "2.0.0", 1365 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 1366 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 1367 | "dev": true, 1368 | "dependencies": { 1369 | "shebang-regex": "^3.0.0" 1370 | }, 1371 | "engines": { 1372 | "node": ">=8" 1373 | } 1374 | }, 1375 | "node_modules/shebang-regex": { 1376 | "version": "3.0.0", 1377 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 1378 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 1379 | "dev": true, 1380 | "engines": { 1381 | "node": ">=8" 1382 | } 1383 | }, 1384 | "node_modules/sirv": { 1385 | "version": "2.0.4", 1386 | "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", 1387 | "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", 1388 | "dev": true, 1389 | "dependencies": { 1390 | "@polka/url": "^1.0.0-next.24", 1391 | "mrmime": "^2.0.0", 1392 | "totalist": "^3.0.0" 1393 | }, 1394 | "engines": { 1395 | "node": ">= 10" 1396 | } 1397 | }, 1398 | "node_modules/source-map": { 1399 | "version": "0.7.4", 1400 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", 1401 | "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", 1402 | "dev": true, 1403 | "engines": { 1404 | "node": ">= 8" 1405 | } 1406 | }, 1407 | "node_modules/source-map-support": { 1408 | "version": "0.5.21", 1409 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", 1410 | "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", 1411 | "dev": true, 1412 | "license": "MIT", 1413 | "dependencies": { 1414 | "buffer-from": "^1.0.0", 1415 | "source-map": "^0.6.0" 1416 | } 1417 | }, 1418 | "node_modules/source-map-support/node_modules/source-map": { 1419 | "version": "0.6.1", 1420 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 1421 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 1422 | "dev": true, 1423 | "license": "BSD-3-Clause", 1424 | "engines": { 1425 | "node": ">=0.10.0" 1426 | } 1427 | }, 1428 | "node_modules/supports-color": { 1429 | "version": "7.2.0", 1430 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 1431 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 1432 | "dev": true, 1433 | "dependencies": { 1434 | "has-flag": "^4.0.0" 1435 | }, 1436 | "engines": { 1437 | "node": ">=8" 1438 | } 1439 | }, 1440 | "node_modules/supports-preserve-symlinks-flag": { 1441 | "version": "1.0.0", 1442 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 1443 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 1444 | "dev": true, 1445 | "engines": { 1446 | "node": ">= 0.4" 1447 | }, 1448 | "funding": { 1449 | "url": "https://github.com/sponsors/ljharb" 1450 | } 1451 | }, 1452 | "node_modules/tapable": { 1453 | "version": "2.2.1", 1454 | "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", 1455 | "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", 1456 | "dev": true, 1457 | "engines": { 1458 | "node": ">=6" 1459 | } 1460 | }, 1461 | "node_modules/terser": { 1462 | "version": "5.39.0", 1463 | "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz", 1464 | "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", 1465 | "dev": true, 1466 | "license": "BSD-2-Clause", 1467 | "dependencies": { 1468 | "@jridgewell/source-map": "^0.3.3", 1469 | "acorn": "^8.8.2", 1470 | "commander": "^2.20.0", 1471 | "source-map-support": "~0.5.20" 1472 | }, 1473 | "bin": { 1474 | "terser": "bin/terser" 1475 | }, 1476 | "engines": { 1477 | "node": ">=10" 1478 | } 1479 | }, 1480 | "node_modules/terser-webpack-plugin": { 1481 | "version": "5.3.14", 1482 | "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", 1483 | "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==", 1484 | "dev": true, 1485 | "license": "MIT", 1486 | "dependencies": { 1487 | "@jridgewell/trace-mapping": "^0.3.25", 1488 | "jest-worker": "^27.4.5", 1489 | "schema-utils": "^4.3.0", 1490 | "serialize-javascript": "^6.0.2", 1491 | "terser": "^5.31.1" 1492 | }, 1493 | "engines": { 1494 | "node": ">= 10.13.0" 1495 | }, 1496 | "funding": { 1497 | "type": "opencollective", 1498 | "url": "https://opencollective.com/webpack" 1499 | }, 1500 | "peerDependencies": { 1501 | "webpack": "^5.1.0" 1502 | }, 1503 | "peerDependenciesMeta": { 1504 | "@swc/core": { 1505 | "optional": true 1506 | }, 1507 | "esbuild": { 1508 | "optional": true 1509 | }, 1510 | "uglify-js": { 1511 | "optional": true 1512 | } 1513 | } 1514 | }, 1515 | "node_modules/to-regex-range": { 1516 | "version": "5.0.1", 1517 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 1518 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 1519 | "dev": true, 1520 | "license": "MIT", 1521 | "dependencies": { 1522 | "is-number": "^7.0.0" 1523 | }, 1524 | "engines": { 1525 | "node": ">=8.0" 1526 | } 1527 | }, 1528 | "node_modules/totalist": { 1529 | "version": "3.0.1", 1530 | "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", 1531 | "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", 1532 | "dev": true, 1533 | "engines": { 1534 | "node": ">=6" 1535 | } 1536 | }, 1537 | "node_modules/ts-loader": { 1538 | "version": "9.5.1", 1539 | "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.1.tgz", 1540 | "integrity": "sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==", 1541 | "dev": true, 1542 | "dependencies": { 1543 | "chalk": "^4.1.0", 1544 | "enhanced-resolve": "^5.0.0", 1545 | "micromatch": "^4.0.0", 1546 | "semver": "^7.3.4", 1547 | "source-map": "^0.7.4" 1548 | }, 1549 | "engines": { 1550 | "node": ">=12.0.0" 1551 | }, 1552 | "peerDependencies": { 1553 | "typescript": "*", 1554 | "webpack": "^5.0.0" 1555 | } 1556 | }, 1557 | "node_modules/typescript": { 1558 | "version": "5.3.3", 1559 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", 1560 | "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", 1561 | "dev": true, 1562 | "peer": true, 1563 | "bin": { 1564 | "tsc": "bin/tsc", 1565 | "tsserver": "bin/tsserver" 1566 | }, 1567 | "engines": { 1568 | "node": ">=14.17" 1569 | } 1570 | }, 1571 | "node_modules/undici-types": { 1572 | "version": "5.26.5", 1573 | "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", 1574 | "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", 1575 | "dev": true 1576 | }, 1577 | "node_modules/update-browserslist-db": { 1578 | "version": "1.1.3", 1579 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", 1580 | "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", 1581 | "dev": true, 1582 | "funding": [ 1583 | { 1584 | "type": "opencollective", 1585 | "url": "https://opencollective.com/browserslist" 1586 | }, 1587 | { 1588 | "type": "tidelift", 1589 | "url": "https://tidelift.com/funding/github/npm/browserslist" 1590 | }, 1591 | { 1592 | "type": "github", 1593 | "url": "https://github.com/sponsors/ai" 1594 | } 1595 | ], 1596 | "license": "MIT", 1597 | "dependencies": { 1598 | "escalade": "^3.2.0", 1599 | "picocolors": "^1.1.1" 1600 | }, 1601 | "bin": { 1602 | "update-browserslist-db": "cli.js" 1603 | }, 1604 | "peerDependencies": { 1605 | "browserslist": ">= 4.21.0" 1606 | } 1607 | }, 1608 | "node_modules/watchpack": { 1609 | "version": "2.4.2", 1610 | "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", 1611 | "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", 1612 | "dev": true, 1613 | "license": "MIT", 1614 | "dependencies": { 1615 | "glob-to-regexp": "^0.4.1", 1616 | "graceful-fs": "^4.1.2" 1617 | }, 1618 | "engines": { 1619 | "node": ">=10.13.0" 1620 | } 1621 | }, 1622 | "node_modules/webpack": { 1623 | "version": "5.99.6", 1624 | "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.99.6.tgz", 1625 | "integrity": "sha512-TJOLrJ6oeccsGWPl7ujCYuc0pIq2cNsuD6GZDma8i5o5Npvcco/z+NKvZSFsP0/x6SShVb0+X2JK/JHUjKY9dQ==", 1626 | "dev": true, 1627 | "license": "MIT", 1628 | "dependencies": { 1629 | "@types/eslint-scope": "^3.7.7", 1630 | "@types/estree": "^1.0.6", 1631 | "@webassemblyjs/ast": "^1.14.1", 1632 | "@webassemblyjs/wasm-edit": "^1.14.1", 1633 | "@webassemblyjs/wasm-parser": "^1.14.1", 1634 | "acorn": "^8.14.0", 1635 | "browserslist": "^4.24.0", 1636 | "chrome-trace-event": "^1.0.2", 1637 | "enhanced-resolve": "^5.17.1", 1638 | "es-module-lexer": "^1.2.1", 1639 | "eslint-scope": "5.1.1", 1640 | "events": "^3.2.0", 1641 | "glob-to-regexp": "^0.4.1", 1642 | "graceful-fs": "^4.2.11", 1643 | "json-parse-even-better-errors": "^2.3.1", 1644 | "loader-runner": "^4.2.0", 1645 | "mime-types": "^2.1.27", 1646 | "neo-async": "^2.6.2", 1647 | "schema-utils": "^4.3.0", 1648 | "tapable": "^2.1.1", 1649 | "terser-webpack-plugin": "^5.3.11", 1650 | "watchpack": "^2.4.1", 1651 | "webpack-sources": "^3.2.3" 1652 | }, 1653 | "bin": { 1654 | "webpack": "bin/webpack.js" 1655 | }, 1656 | "engines": { 1657 | "node": ">=10.13.0" 1658 | }, 1659 | "funding": { 1660 | "type": "opencollective", 1661 | "url": "https://opencollective.com/webpack" 1662 | }, 1663 | "peerDependenciesMeta": { 1664 | "webpack-cli": { 1665 | "optional": true 1666 | } 1667 | } 1668 | }, 1669 | "node_modules/webpack-bundle-analyzer": { 1670 | "version": "4.10.1", 1671 | "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.1.tgz", 1672 | "integrity": "sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==", 1673 | "dev": true, 1674 | "dependencies": { 1675 | "@discoveryjs/json-ext": "0.5.7", 1676 | "acorn": "^8.0.4", 1677 | "acorn-walk": "^8.0.0", 1678 | "commander": "^7.2.0", 1679 | "debounce": "^1.2.1", 1680 | "escape-string-regexp": "^4.0.0", 1681 | "gzip-size": "^6.0.0", 1682 | "html-escaper": "^2.0.2", 1683 | "is-plain-object": "^5.0.0", 1684 | "opener": "^1.5.2", 1685 | "picocolors": "^1.0.0", 1686 | "sirv": "^2.0.3", 1687 | "ws": "^7.3.1" 1688 | }, 1689 | "bin": { 1690 | "webpack-bundle-analyzer": "lib/bin/analyzer.js" 1691 | }, 1692 | "engines": { 1693 | "node": ">= 10.13.0" 1694 | } 1695 | }, 1696 | "node_modules/webpack-bundle-analyzer/node_modules/commander": { 1697 | "version": "7.2.0", 1698 | "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", 1699 | "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", 1700 | "dev": true, 1701 | "engines": { 1702 | "node": ">= 10" 1703 | } 1704 | }, 1705 | "node_modules/webpack-bundle-analyzer/node_modules/is-plain-object": { 1706 | "version": "5.0.0", 1707 | "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", 1708 | "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", 1709 | "dev": true, 1710 | "engines": { 1711 | "node": ">=0.10.0" 1712 | } 1713 | }, 1714 | "node_modules/webpack-cli": { 1715 | "version": "5.1.4", 1716 | "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", 1717 | "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", 1718 | "dev": true, 1719 | "dependencies": { 1720 | "@discoveryjs/json-ext": "^0.5.0", 1721 | "@webpack-cli/configtest": "^2.1.1", 1722 | "@webpack-cli/info": "^2.0.2", 1723 | "@webpack-cli/serve": "^2.0.5", 1724 | "colorette": "^2.0.14", 1725 | "commander": "^10.0.1", 1726 | "cross-spawn": "^7.0.3", 1727 | "envinfo": "^7.7.3", 1728 | "fastest-levenshtein": "^1.0.12", 1729 | "import-local": "^3.0.2", 1730 | "interpret": "^3.1.1", 1731 | "rechoir": "^0.8.0", 1732 | "webpack-merge": "^5.7.3" 1733 | }, 1734 | "bin": { 1735 | "webpack-cli": "bin/cli.js" 1736 | }, 1737 | "engines": { 1738 | "node": ">=14.15.0" 1739 | }, 1740 | "funding": { 1741 | "type": "opencollective", 1742 | "url": "https://opencollective.com/webpack" 1743 | }, 1744 | "peerDependencies": { 1745 | "webpack": "5.x.x" 1746 | }, 1747 | "peerDependenciesMeta": { 1748 | "@webpack-cli/generators": { 1749 | "optional": true 1750 | }, 1751 | "webpack-bundle-analyzer": { 1752 | "optional": true 1753 | }, 1754 | "webpack-dev-server": { 1755 | "optional": true 1756 | } 1757 | } 1758 | }, 1759 | "node_modules/webpack-cli/node_modules/commander": { 1760 | "version": "10.0.1", 1761 | "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", 1762 | "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", 1763 | "dev": true, 1764 | "engines": { 1765 | "node": ">=14" 1766 | } 1767 | }, 1768 | "node_modules/webpack-merge": { 1769 | "version": "5.10.0", 1770 | "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", 1771 | "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", 1772 | "dev": true, 1773 | "dependencies": { 1774 | "clone-deep": "^4.0.1", 1775 | "flat": "^5.0.2", 1776 | "wildcard": "^2.0.0" 1777 | }, 1778 | "engines": { 1779 | "node": ">=10.0.0" 1780 | } 1781 | }, 1782 | "node_modules/webpack-sources": { 1783 | "version": "3.2.3", 1784 | "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", 1785 | "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", 1786 | "dev": true, 1787 | "engines": { 1788 | "node": ">=10.13.0" 1789 | } 1790 | }, 1791 | "node_modules/which": { 1792 | "version": "2.0.2", 1793 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 1794 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 1795 | "dev": true, 1796 | "dependencies": { 1797 | "isexe": "^2.0.0" 1798 | }, 1799 | "bin": { 1800 | "node-which": "bin/node-which" 1801 | }, 1802 | "engines": { 1803 | "node": ">= 8" 1804 | } 1805 | }, 1806 | "node_modules/wildcard": { 1807 | "version": "2.0.1", 1808 | "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", 1809 | "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", 1810 | "dev": true 1811 | }, 1812 | "node_modules/ws": { 1813 | "version": "7.5.10", 1814 | "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", 1815 | "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", 1816 | "dev": true, 1817 | "license": "MIT", 1818 | "engines": { 1819 | "node": ">=8.3.0" 1820 | }, 1821 | "peerDependencies": { 1822 | "bufferutil": "^4.0.1", 1823 | "utf-8-validate": "^5.0.2" 1824 | }, 1825 | "peerDependenciesMeta": { 1826 | "bufferutil": { 1827 | "optional": true 1828 | }, 1829 | "utf-8-validate": { 1830 | "optional": true 1831 | } 1832 | } 1833 | }, 1834 | "node_modules/yallist": { 1835 | "version": "4.0.0", 1836 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 1837 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", 1838 | "dev": true 1839 | } 1840 | } 1841 | } 1842 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "convai-web-sdk", 3 | "description": "Integrate lifelike digital beings into your web applications with real-time conversations, actions, and facial expressions. Supports a variety of voices, languages, and emotions.", 4 | "keywords": [ 5 | "react", 6 | "unity-webgl", 7 | "facial expressions", 8 | "conversational AI", 9 | "interactive web experiences", 10 | "interactive avatars" 11 | ], 12 | "version": "0.1.4", 13 | "homepage": "https://www.convai.com/", 14 | "main": "dist/cjs/convai-web-client.js", 15 | "browser": "dist/umd/convai-web-client.umd.js", 16 | "types": "dist/typings/convai_client.d.ts", 17 | "scripts": { 18 | "clean": "rm -rf dist", 19 | "postbootstrap": "npm run lib:build", 20 | "lib:build": "npm run clean && webpack && cp -r ./_proto ./dist/", 21 | "build-window": "webpack --config webpack.config.js && cp -r ./Proto ./dist/" 22 | }, 23 | "license": "Apache-2.0", 24 | "author": "Convai Technologies Inc.", 25 | "devDependencies": { 26 | "@improbable-eng/grpc-web": "^0.15.0", 27 | "@types/node": "^18.15.1", 28 | "google-protobuf": "^3.21.2", 29 | "msr": "^1.3.4", 30 | "terser-webpack-plugin": "^5.3.10", 31 | "ts-loader": "^9.5.0", 32 | "webpack": "^5.76.0", 33 | "webpack-bundle-analyzer": "^4.10.1", 34 | "webpack-cli": "^5.0.1" 35 | }, 36 | "bugs": { 37 | "url": "https://github.com/Conv-AI/Convai-Web-SDK/issues" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "declaration": true, 4 | "declarationDir": "./dist/typings", 5 | "sourceMap": true, 6 | "module": "esnext", // Compatible with both Node.js and browser 7 | "moduleResolution": "node", // Tell tsc to look in node_modules for modules 8 | "target": "es6", 9 | "lib": ["esnext", "dom"], 10 | "removeComments": true, 11 | "noImplicitReturns": false, 12 | "noImplicitAny": false, 13 | "strictNullChecks": false, 14 | "stripInternal": true, 15 | "noFallthroughCasesInSwitch": true, 16 | "outDir": "dist", 17 | "noEmitOnError": true, 18 | "noUnusedParameters": true 19 | }, 20 | "include": ["src"], 21 | "exclude": ["node_modules", "Proto"] 22 | } 23 | -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const TerserPlugin = require('terser-webpack-plugin'); 3 | const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer'); // Import the plugin 4 | 5 | const LIB_BASE_CONFIG = { 6 | entry: './src/convai_client.ts', 7 | mode: 'production', 8 | module: { 9 | rules: [ 10 | { 11 | test: /\.ts?$/, 12 | use: 'ts-loader', 13 | exclude: /node_modules/, 14 | }, 15 | ], 16 | }, 17 | resolve: { 18 | extensions: ['.ts', '.js'], 19 | }, 20 | }; 21 | 22 | module.exports = [ 23 | { 24 | name: 'lib-commonjs', 25 | ...LIB_BASE_CONFIG, 26 | target: 'node', 27 | optimization: { 28 | minimize: true, 29 | minimizer: [ 30 | new TerserPlugin({ 31 | terserOptions: { 32 | compress: { 33 | drop_console: true, 34 | }, 35 | }, 36 | }), 37 | ], 38 | }, 39 | output: { 40 | path: path.resolve(__dirname, 'dist/cjs'), 41 | filename: `convai-web-client.js`, 42 | libraryTarget: 'commonjs', 43 | globalObject: 'this', 44 | }, 45 | plugins: [ 46 | new BundleAnalyzerPlugin({ analyzerPort: 3001 }), // Add the plugin here 47 | ], 48 | }, 49 | { 50 | name: 'lib-umd', 51 | ...LIB_BASE_CONFIG, 52 | target: 'web', 53 | optimization: { 54 | minimize: true, 55 | minimizer: [ 56 | new TerserPlugin({ 57 | terserOptions: { 58 | compress: { 59 | drop_console: true, 60 | }, 61 | }, 62 | }), 63 | ], 64 | }, 65 | output: { 66 | path: path.resolve(__dirname, 'dist/umd'), 67 | filename: `convai-web-client.umd.js`, 68 | library: 'convai-web-core', 69 | libraryTarget: 'umd', 70 | globalObject: 'this', 71 | }, 72 | plugins: [ 73 | new BundleAnalyzerPlugin({ analyzerPort: 8889 }), // Add the plugin here 74 | ], 75 | }, 76 | ]; 77 | --------------------------------------------------------------------------------