@innovastudio/contentbuilder 1.4.81 → 1.4.83

Sign up to get free protection for your applications and to get access to all the features.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@innovastudio/contentbuilder",
3
3
  "type": "module",
4
- "version": "1.4.81",
4
+ "version": "1.4.83",
5
5
  "description": "",
6
6
  "main": "public/contentbuilder/contentbuilder.esm.js",
7
7
  "files": [
@@ -55,6 +55,7 @@
55
55
  "cropperjs": "^1.5.12",
56
56
  "js-beautify": "^1.14.0",
57
57
  "moveable": "^0.30.0",
58
+ "opus-recorder": "^8.0.5",
58
59
  "rangy": "^1.3.0",
59
60
  "socket.io-client": "^4.7.1",
60
61
  "sortablejs": "^1.14.0",
@@ -1,5 +1,9 @@
1
1
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
2
2
 
3
+ function getDefaultExportFromCjs (x) {
4
+ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
5
+ }
6
+
3
7
  var rangyCore = {exports: {}};
4
8
 
5
9
  /**
@@ -77394,7 +77398,13 @@ class Lib {
77394
77398
  }
77395
77399
  }
77396
77400
 
77397
- // import RecordRTC from 'recordrtc';
77401
+ var recorder_min = {exports: {}};
77402
+
77403
+ (function (module, exports) {
77404
+ !function(e,t){module.exports=t();}("undefined"!=typeof self?self:commonjsGlobal,(function(){return function(e){var t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,o),i.l=!0,i.exports}return o.m=e,o.c=t,o.d=function(e,t,n){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n});},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0});},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)o.d(n,i,function(t){return e[t]}.bind(null,i));return n},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=0)}([function(e,t,o){(function(t){function o(e,t){if(null==e)return {};var o,n,i=function(e,t){if(null==e)return {};var o,n,i={},r=Object.keys(e);for(n=0;n<r.length;n++)o=r[n],t.indexOf(o)>=0||(i[o]=e[o]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)o=r[n],t.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(i[o]=e[o]);}return i}var n=t.AudioContext||t.webkitAudioContext,i=function e(){var t=this,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!e.isRecordingSupported())throw new Error("Recording is not supported in this browser");this.state="inactive",this.config=Object.assign({bufferLength:4096,encoderApplication:2049,encoderFrameSize:20,encoderPath:"encoderWorker.min.js",encoderSampleRate:48e3,maxFramesPerPage:40,mediaTrackConstraints:!0,monitorGain:0,numberOfChannels:1,recordingGain:1,resampleQuality:3,streamPages:!1,wavBitDepth:16,sourceNode:{context:null}},o),this.encodedSamplePosition=0,this.initAudioContext(),this.initialize=this.initWorklet().then((function(){return t.initEncoder()}));};i.isRecordingSupported=function(){var e=t.navigator&&t.navigator.mediaDevices&&t.navigator.mediaDevices.getUserMedia;return n&&e&&t.WebAssembly},i.version="8.0.5",i.prototype.clearStream=function(){this.stream&&(this.stream.getTracks?this.stream.getTracks().forEach((function(e){return e.stop()})):this.stream.stop());},i.prototype.close=function(){return this.monitorGainNode.disconnect(),this.recordingGainNode.disconnect(),this.sourceNode&&this.sourceNode.disconnect(),this.clearStream(),this.encoder&&(this.encoderNode.disconnect(),this.encoder.postMessage({command:"close"})),this.config.sourceNode.context?Promise.resolve():this.audioContext.close()},i.prototype.encodeBuffers=function(e){if("recording"===this.state){for(var t=[],o=0;o<e.numberOfChannels;o++)t[o]=e.getChannelData(o);this.encoder.postMessage({command:"encode",buffers:t});}},i.prototype.initAudioContext=function(){this.audioContext=this.config.sourceNode.context?this.config.sourceNode.context:new n,this.monitorGainNode=this.audioContext.createGain(),this.setMonitorGain(this.config.monitorGain),this.recordingGainNode=this.audioContext.createGain(),this.setRecordingGain(this.config.recordingGain);},i.prototype.initEncoder=function(){var e=this;this.audioContext.audioWorklet?(this.encoderNode=new AudioWorkletNode(this.audioContext,"encoder-worklet",{numberOfOutputs:0}),this.encoder=this.encoderNode.port):(console.log("audioWorklet support not detected. Falling back to scriptProcessor"),this.encodeBuffers=function(){return delete e.encodeBuffers},this.encoderNode=this.audioContext.createScriptProcessor(this.config.bufferLength,this.config.numberOfChannels,this.config.numberOfChannels),this.encoderNode.onaudioprocess=function(t){var o=t.inputBuffer;return e.encodeBuffers(o)},this.encoderNode.connect(this.audioContext.destination),this.encoder=new t.Worker(this.config.encoderPath));},i.prototype.initSourceNode=function(){var e=this;return this.config.sourceNode.context?(this.sourceNode=this.config.sourceNode,Promise.resolve()):t.navigator.mediaDevices.getUserMedia({audio:this.config.mediaTrackConstraints}).then((function(t){e.stream=t,e.sourceNode=e.audioContext.createMediaStreamSource(t);}))},i.prototype.initWorker=function(){var e=this,t=(this.config.streamPages?this.streamPage:this.storePage).bind(this);return this.recordedPages=[],this.totalLength=0,new Promise((function(n){e.encoder.addEventListener("message",(function o(i){var r=i.data;switch(r.message){case"ready":n();break;case"page":e.encodedSamplePosition=r.samplePosition,t(r.page);break;case"done":e.encoder.removeEventListener("message",o),e.finish();}})),e.encoder.start&&e.encoder.start();var i=e.config,r=(i.sourceNode,o(i,["sourceNode"]));e.encoder.postMessage(Object.assign({command:"init",originalSampleRate:e.audioContext.sampleRate,wavSampleRate:e.audioContext.sampleRate},r));}))},i.prototype.initWorklet=function(){return this.audioContext.audioWorklet?this.audioContext.audioWorklet.addModule(this.config.encoderPath):Promise.resolve()},i.prototype.pause=function(e){var t=this;if("recording"===this.state)return this.state="paused",this.recordingGainNode.disconnect(),e&&this.config.streamPages?new Promise((function(e){t.encoder.addEventListener("message",(function o(n){"flushed"===n.data.message&&(t.encoder.removeEventListener("message",o),t.onpause(),e());})),t.encoder.start&&t.encoder.start(),t.encoder.postMessage({command:"flush"});})):(this.onpause(),Promise.resolve())},i.prototype.resume=function(){"paused"===this.state&&(this.state="recording",this.recordingGainNode.connect(this.encoderNode),this.onresume());},i.prototype.setRecordingGain=function(e){this.config.recordingGain=e,this.recordingGainNode&&this.audioContext&&this.recordingGainNode.gain.setTargetAtTime(e,this.audioContext.currentTime,.01);},i.prototype.setMonitorGain=function(e){this.config.monitorGain=e,this.monitorGainNode&&this.audioContext&&this.monitorGainNode.gain.setTargetAtTime(e,this.audioContext.currentTime,.01);},i.prototype.start=function(){var e=this;return "inactive"===this.state?(this.state="loading",this.encodedSamplePosition=0,this.audioContext.resume().then((function(){return e.initialize})).then((function(){return Promise.all([e.initSourceNode(),e.initWorker()])})).then((function(){e.state="recording",e.encoder.postMessage({command:"getHeaderPages"}),e.sourceNode.connect(e.monitorGainNode),e.sourceNode.connect(e.recordingGainNode),e.monitorGainNode.connect(e.audioContext.destination),e.recordingGainNode.connect(e.encoderNode),e.onstart();})).catch((function(t){throw e.state="inactive",t}))):Promise.resolve()},i.prototype.stop=function(){var e=this;return "paused"===this.state||"recording"===this.state?(this.state="inactive",this.recordingGainNode.connect(this.encoderNode),this.monitorGainNode.disconnect(),this.clearStream(),new Promise((function(t){e.encoder.addEventListener("message",(function o(n){"done"===n.data.message&&(e.encoder.removeEventListener("message",o),t());})),e.encoder.start&&e.encoder.start(),e.encoder.postMessage({command:"done"});}))):Promise.resolve()},i.prototype.storePage=function(e){this.recordedPages.push(e),this.totalLength+=e.length;},i.prototype.streamPage=function(e){this.ondataavailable(e);},i.prototype.finish=function(){if(!this.config.streamPages){var e=new Uint8Array(this.totalLength);this.recordedPages.reduce((function(t,o){return e.set(o,t),t+o.length}),0),this.ondataavailable(e);}this.onstop();},i.prototype.ondataavailable=function(){},i.prototype.onpause=function(){},i.prototype.onresume=function(){},i.prototype.onstart=function(){},i.prototype.onstop=function(){},e.exports=i;}).call(this,o(1));},function(e,t){var o;o=function(){return this}();try{o=o||new Function("return this")();}catch(e){"object"==typeof window&&(o=window);}e.exports=o;}])}));
77405
+ }(recorder_min));
77406
+
77407
+ var Recorder = /*@__PURE__*/getDefaultExportFromCjs(recorder_min.exports);
77398
77408
 
77399
77409
  const dom = new Dom();
77400
77410
  class Dictation {
@@ -77822,10 +77832,28 @@ class Dictation {
77822
77832
  stopDictation() {
77823
77833
  if (this.recognition) this.recognition.abort();
77824
77834
  this.aborted = true;
77825
- if (this.recorder) this.recorder.stopRecording();
77826
- if (this.localStream) this.localStream.getAudioTracks().forEach(track => {
77827
- track.stop();
77828
- });
77835
+
77836
+ // Using RecordRTC
77837
+ // if(this.recorder) this.recorder.stopRecording();
77838
+ // if(this.localStream) this.localStream.getAudioTracks().forEach(track => {
77839
+ // track.stop();
77840
+ // });
77841
+
77842
+ if (this.builder.useMediaRecorder) {
77843
+ // Using mediaRecorder
77844
+ if (this.mediaRecorder && this.mediaRecorder.state !== 'inactive') {
77845
+ this.mediaRecorder.stop();
77846
+ this.localStream.getTracks().forEach(track => track.stop()); // Stop the tracks to release the resources
77847
+ }
77848
+ } else {
77849
+ // Using Recorder
77850
+ if (this.recorder) this.recorder.stop();
77851
+ if (this.localStream) this.localStream.getTracks().forEach(track => track.stop()); // Stop the tracks to release the resources
77852
+ }
77853
+
77854
+ if (this.websocket && this.websocket.readyState === WebSocket.OPEN) {
77855
+ this.websocket.close();
77856
+ }
77829
77857
  }
77830
77858
  async startDictation() {
77831
77859
  const inpCommand = this.modalCommand.querySelector('.inp-command');
@@ -77870,25 +77898,46 @@ class Dictation {
77870
77898
  return;
77871
77899
  }
77872
77900
  const sampleRate = 16000;
77901
+ if (this.builder.useMediaRecorder) {
77902
+ // Using mediaRecorder
77903
+ navigator.mediaDevices.getUserMedia({
77904
+ audio: {
77905
+ sampleSize: 16,
77906
+ channelCount: 1,
77907
+ sampleRate: sampleRate
77908
+ }
77909
+ }).then(stream => {
77910
+ this.localStream = stream;
77911
+ this.mediaRecorder = new MediaRecorder(stream);
77912
+ this.mediaRecorder.addEventListener('dataavailable', event => {
77913
+ if (this.aborted) return;
77914
+
77915
+ // console.log(event.data);
77916
+ // if (event.data.size > 0) {
77917
+ // }
77918
+ this.websocket.send(event.data);
77919
+ });
77873
77920
 
77874
- // Using mediaRecorder
77875
- navigator.mediaDevices.getUserMedia({
77876
- audio: {
77877
- sampleSize: 16,
77878
- channelCount: 1,
77879
- sampleRate: sampleRate
77880
- }
77881
- }).then(stream => {
77882
- this.mediaRecorder = new MediaRecorder(stream);
77883
- this.mediaRecorder.addEventListener('dataavailable', event => {
77884
- // console.log(event.data);
77885
- this.websocket.send(event.data);
77921
+ // this.mediaRecorder.start(1000);
77922
+ }).catch(error => {
77923
+ console.log(error);
77886
77924
  });
77887
-
77888
- // this.mediaRecorder.start(1000);
77889
- }).catch(error => {
77890
- console.log(error);
77891
- });
77925
+ } else {
77926
+ // Using Recorder
77927
+ this.recorder = new Recorder({
77928
+ encoderPath: 'https://cdnjs.cloudflare.com/ajax/libs/opus-recorder/8.0.5/encoderWorker.min.js',
77929
+ leaveStreamOpen: true,
77930
+ numberOfChannels: 1,
77931
+ // OPUS options
77932
+ encoderSampleRate: sampleRate,
77933
+ streamPages: true,
77934
+ maxBuffersPerPage: 1
77935
+ });
77936
+ this.recorder.ondataavailable = e => {
77937
+ if (this.aborted) return;
77938
+ this.websocket.send(e.buffer);
77939
+ };
77940
+ }
77892
77941
 
77893
77942
  /*
77894
77943
  // Using RecordRTC
@@ -77922,7 +77971,11 @@ class Dictation {
77922
77971
  if (message.event === 'can-open-mic') {
77923
77972
  //this.recorder.startRecording(); // Using RecordRTC
77924
77973
 
77925
- this.mediaRecorder.start(1000); // Using mediaRecorder
77974
+ if (this.builder.useMediaRecorder) {
77975
+ this.mediaRecorder.start(1000); // Using mediaRecorder
77976
+ } else {
77977
+ this.recorder.start(); // Using Recorder
77978
+ }
77926
77979
 
77927
77980
  // console.log('Start Dictation');
77928
77981
  this.aborted = false;
@@ -78765,6 +78818,7 @@ class ContentBuilder {
78765
78818
  commandPlaceholderText: '',
78766
78819
  enableShortCommands: true,
78767
78820
  speechRecognitionLang: 'en-US',
78821
+ useMediaRecorder: false,
78768
78822
  headlineList: ['We create simple and effective designs.', 'Ultimate Experiences With Story, Emotion, And Purpose.', 'Build Anything Beautifully', 'With Less Stuff and More Compassion', 'We\'re [CompanyName]. Full stack development with a spark of creativity.', 'Transforming your digital experience with [CompanyName]. Achieve your online goals with our customized solutions.', 'Revolutionizing web development with [CompanyName]. Unleash your digital potential with our high-performance solutions.', 'Creative and Inspiring'],
78769
78823
  shortCommandList: {
78770
78824
  undo: ['undo'],