@soonspacejs/plugin-soonmanager2-sync 2.5.52 → 2.5.53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -12,4 +12,4 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
12
12
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
13
13
  PERFORMANCE OF THIS SOFTWARE.
14
14
  ***************************************************************************** */
15
- function t(t,e,i,s){return new(i||(i=Promise))((function(o,n){function a(t){try{l(s.next(t))}catch(t){n(t)}}function r(t){try{l(s.throw(t))}catch(t){n(t)}}function l(t){var e;t.done?o(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(a,r)}l((s=s.apply(t,e||[])).next())}))}const e="/SceneMetadata.json",i="/db/sign",s="/db/tree_models.json",o="/db/topology_paths.json",n="/db/properties.json",a="/db/animations.json",r="/db/model_visions.json",l="properties";var c;!function(t){t[t.BIDIRECTION=0]="BIDIRECTION",t[t.POSITIVE=1]="POSITIVE",t[t.OPPOSITE=2]="OPPOSITE",t[t.FORBID=3]="FORBID"}(c||(c={}));class h{constructor(t){this.ssp=t,this._path="",this._treeDataMaps=new Map,this.metaData=null,this.treeData=null,this.topologyData=null,this.propertiesData=null,this.animationsData=null,this.modelVisionsData=null}get path(){return this._path}set path(t){const e=this._path;this._path=t,this._path!==e&&this.verifySign()}verifySign(){return t(this,void 0,void 0,(function*(){const{version:t,sceneId:e}=this.metaData=yield this.fetchMetaData();if(t>1){const t=yield this.fetchSign().then((t=>t.text())),[i,s]=t.slice(0,2),o=t.slice(2),n=yield this.fetchTreeData().then((t=>t.clone().text())),{license:a}=this.ssp.viewport,{encryptInfo:{serialNums:r=[]}}=a,l=r.map((t=>t.replace(/\/|=/g,""))).filter((t=>t.charAt(5)===i&&t.charAt(20)===s));for(const t of l){const i=`${e}${n}${t}`;if(a.verify(i,o))break}}}))}resolvePath(t){return`${this._path}${t}`}fetchData(e){return t(this,void 0,void 0,(function*(){const{utils:t}=this.ssp;return t.fetchFile(this.resolvePath(e)).then((t=>t.json()))}))}fetchMetaData(){return t(this,void 0,void 0,(function*(){return this.fetchData("/SceneMetadata.json")}))}fetchSign(){return t(this,void 0,void 0,(function*(){const{utils:t}=this.ssp;return t.fetchFile(this.resolvePath("/db/sign"))}))}fetchTreeData(){return t(this,void 0,void 0,(function*(){const t=this._treeDataMaps.get(this.path);if(t)return t;const{utils:e}=this.ssp,i=e.fetchFile(this.resolvePath("/db/tree_models.json"));return this._treeDataMaps.set(this.path,i),i}))}fetchTopologyData(){return t(this,void 0,void 0,(function*(){return this.fetchData("/db/topology_paths.json")}))}fetchPropertiesData(){return t(this,void 0,void 0,(function*(){return this.fetchData("/db/properties.json").then((t=>d(t,"modelId")))}))}fetchAnimationsData(){return t(this,void 0,void 0,(function*(){return this.fetchData("/db/animations.json").then((t=>d(t,"modelId")))}))}fetchModelVisions(){return t(this,void 0,void 0,(function*(){return this.fetchData("/db/model_visions.json")}))}loadObjects(e){return t(this,void 0,void 0,(function*(){if(!this.treeData)return void console.error("treeData is null");const{syncProperties:i}=e,s=(e,o)=>t(this,void 0,void 0,(function*(){const{ssp:t}=this,{THREE:{Matrix4:n}}=t,{id:a,name:r,renderType:l,path:c,matrix:h}=e,d=(new n).fromArray(h);let u=null;if("3D"===l)if(c)try{u=yield t.loadModel({id:a,name:r,url:this.resolvePath(c),userData:Object.assign({},e)})}catch(t){console.error(t)}else t.utils.warn(`id: ${a} path 为空`);else"GROUP"===l&&(u=t.createGroup({id:a,name:r,userData:Object.assign({},e)}));if(u&&(d.decompose(u.position,u.quaternion,u.scale),o&&t.addObject(u,o),i&&this.propertiesData)){const t=this.propertiesData.get(a);t&&(u.userData.properties=t)}e.children.length>0&&(yield Promise.allSettled(e.children.map((t=>s(t,u)))))}));yield Promise.allSettled(this.treeData.map((t=>s(t,null))))}))}setPath(t){this.path=t}loadScene(e={}){return t(this,void 0,void 0,(function*(){e=Object.assign({syncProperties:!0,syncModelVisions:!0},e),yield Promise.allSettled([(()=>t(this,void 0,void 0,(function*(){e.syncProperties&&(this.propertiesData=yield this.fetchPropertiesData())})))(),(()=>t(this,void 0,void 0,(function*(){if(e.syncModelVisions){const t=yield this.fetchModelVisions();this.modelVisionsData=new Map(Object.entries(t))}})))()]),this.treeData=yield this.fetchTreeData().then((t=>t.clone().json())),yield this.loadObjects(e)}))}getTopologies(){return t(this,void 0,void 0,(function*(){const t=yield this.fetchTopologyData(),e={linkWidth:.1,linkColor:["#00ff00"],nodeRadius:.05,nodeColor:"#0000ff"};return this.topologyData=t.map((t=>Object.assign(Object.assign(Object.assign({},t),{type:"network"}),e))),this.topologyData}))}playAnimationById(e,i=0,s={}){return t(this,void 0,void 0,(function*(){const{utils:{error:t},animation:o,THREE:n}=this.ssp,{onStart:a,onUpdate:r}=s;this.animationsData||(this.animationsData=yield this.fetchAnimationsData());const l=this.ssp.getObjectById(e);if(!l)return void t(`playAnimationById: id 为 ${e} 场景对象未找到`);const c=this.animationsData.get(e);if(c){const s=c[i];if(s)for(let t=0,e=s.keyframes.length;t<e;t++){let e;if(s.keyframes[t-1]){const i=s.keyframes[t-1];e={x:i.x,y:i.y,z:i.z,rotationX:i.rotationX,rotationY:i.rotationY,rotationZ:i.rotationZ,scaleX:i.scaleX,scaleY:i.scaleY,scaleZ:i.scaleZ}}else{const t=new n.Object3D,i=(new n.Matrix4).fromArray(l.userData.matrix);t.applyMatrix4(i),e={x:t.position.x,y:t.position.y,z:t.position.z,rotationX:t.rotation.x,rotationY:t.rotation.y,rotationZ:t.rotation.z,scaleX:t.scale.x,scaleY:t.scale.y,scaleZ:t.scale.z}}const i=s.keyframes[t],{delay:c,duration:h,easing:d,repeat:u,yoyo:p}=i,f={x:i.x,y:i.y,z:i.z,rotationX:i.rotationX,rotationY:i.rotationY,rotationZ:i.rotationZ,scaleX:i.scaleX,scaleY:i.scaleY,scaleZ:i.scaleZ};yield o(e,f,{delay:c,duration:h,mode:d,repeat:-1===u?1/0:u,yoyo:p},((t,e)=>{l.position.set(t.x,t.y,t.z),l.rotation.set(t.rotationX,t.rotationY,t.rotationZ),l.scale.set(t.scaleX,t.scaleY,t.scaleZ),null==r||r(t,e)}),(t=>{null==a||a(t)}))}else t(`id: ${e} 未找到索引为 ${i} 的动画`)}else t(`id: ${e} 未找到动画`)}))}}function d(t,e){const i=new Map;return t.reduce(((t,i)=>{const s=t.get(i[e]);return s?s.push(i):t.set(i[e],[i]),t}),i),i}export{a as ANIMATIONS_DATA_FILE_PATH,e as META_DATA_FILE_PATH,r as MODEL_VISIONS_DATA_FILE_PATH,n as PROPERTIES_DATA_FLEE_PATH,l as PROPERTIES_KEY,i as SIGN_PATH,o as TOPOLOGY_DATA_FILE_PATH,s as TREE_DATA_FILE_PATH,h as default};
15
+ function t(t,e,i,o){return new(i||(i=Promise))((function(s,n){function a(t){try{l(o.next(t))}catch(t){n(t)}}function r(t){try{l(o.throw(t))}catch(t){n(t)}}function l(t){var e;t.done?s(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(a,r)}l((o=o.apply(t,e||[])).next())}))}const e="/SceneMetadata.json",i="/db/sign",o="/db/tree_models.json",s="/db/topology_paths.json",n="/db/properties.json",a="/db/animations.json",r="/db/model_visions.json",l="properties";var c;!function(t){t[t.BIDIRECTION=0]="BIDIRECTION",t[t.POSITIVE=1]="POSITIVE",t[t.OPPOSITE=2]="OPPOSITE",t[t.FORBID=3]="FORBID"}(c||(c={}));class h{constructor(t){this.ssp=t,this._path="",this._treeDataMaps=new Map,this.metaData=null,this.treeData=null,this.topologyData=null,this.propertiesData=null,this.animationsData=null,this.modelVisionsData=null}get path(){return this._path}set path(t){const e=this._path;this._path=t,this._path!==e&&this.verifySign()}verifySign(){return t(this,void 0,void 0,(function*(){const{version:t,sceneId:e}=this.metaData=yield this.fetchMetaData();if(t>1){const t=yield this.fetchSign().then((t=>t.text())),[i,o]=t.slice(0,2),s=t.slice(2),n=yield this.fetchTreeData().then((t=>t.clone().text())),{license:a}=this.ssp.viewport,{encryptInfo:{serialNums:r=[]}}=a,l=r.map((t=>t.replace(/\/|=/g,""))).filter((t=>t.charAt(5)===i&&t.charAt(20)===o));for(const t of l){const i=`${e}${n}${t}`;if(a.verify(i,s))break}}}))}resolvePath(t){return`${this._path}${t}`}fetchData(e){return t(this,void 0,void 0,(function*(){const{utils:t}=this.ssp;return t.fetchFile(this.resolvePath(e)).then((t=>t.json()))}))}fetchMetaData(){return t(this,void 0,void 0,(function*(){return this.fetchData("/SceneMetadata.json")}))}fetchSign(){return t(this,void 0,void 0,(function*(){const{utils:t}=this.ssp;return t.fetchFile(this.resolvePath("/db/sign"))}))}fetchTreeData(){return t(this,void 0,void 0,(function*(){const t=this._treeDataMaps.get(this.path);if(t)return t;const{utils:e}=this.ssp,i=e.fetchFile(this.resolvePath("/db/tree_models.json"));return this._treeDataMaps.set(this.path,i),i}))}fetchTopologyData(){return t(this,void 0,void 0,(function*(){return this.fetchData("/db/topology_paths.json")}))}fetchPropertiesData(){return t(this,void 0,void 0,(function*(){return this.fetchData("/db/properties.json").then((t=>d(t,"modelId")))}))}fetchAnimationsData(){return t(this,void 0,void 0,(function*(){return this.fetchData("/db/animations.json").then((t=>d(t,"modelId")))}))}fetchModelVisions(){return t(this,void 0,void 0,(function*(){return this.fetchData("/db/model_visions.json")}))}loadObjects(e){return t(this,void 0,void 0,(function*(){if(!this.treeData)return void console.error("treeData is null");const{syncProperties:i}=e,o=(e,s)=>t(this,void 0,void 0,(function*(){const{ssp:t}=this,{THREE:{Matrix4:n}}=t,{id:a,name:r,renderType:l,path:c,matrix:h}=e,d=(new n).fromArray(h);let u=null;if("3D"===l)if(c)try{u=yield t.loadModel({id:a,name:r,url:this.resolvePath(c),userData:Object.assign({},e)})}catch(t){console.error(t)}else t.utils.warn(`id: ${a} path 为空`);else"GROUP"===l&&(u=t.createGroup({id:a,name:r,userData:Object.assign({},e)}));if(u&&(d.decompose(u.position,u.quaternion,u.scale),s&&t.addObject(u,s),i&&this.propertiesData)){const t=this.propertiesData.get(a);t&&(u.userData.properties=t)}e.children.length>0&&(yield Promise.allSettled(e.children.map((t=>o(t,u)))))}));yield Promise.allSettled(this.treeData.map((t=>o(t,null))))}))}setPath(t){this.path=t}loadScene(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return t(this,void 0,void 0,(function*(){e=Object.assign({syncProperties:!0,syncModelVisions:!0},e),yield Promise.allSettled([(()=>t(this,void 0,void 0,(function*(){e.syncProperties&&(this.propertiesData=yield this.fetchPropertiesData())})))(),(()=>t(this,void 0,void 0,(function*(){if(e.syncModelVisions){const t=yield this.fetchModelVisions();this.modelVisionsData=new Map(Object.entries(t))}})))()]),this.treeData=yield this.fetchTreeData().then((t=>t.clone().json())),yield this.loadObjects(e)}))}getTopologies(){return t(this,void 0,void 0,(function*(){const t=yield this.fetchTopologyData(),e={linkWidth:.1,linkColor:["#00ff00"],nodeRadius:.05,nodeColor:"#0000ff"};return this.topologyData=t.map((t=>Object.assign(Object.assign(Object.assign({},t),{type:"network"}),e))),this.topologyData}))}playAnimationById(e){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return t(this,void 0,void 0,(function*(){const{utils:{error:t},animation:s,THREE:n}=this.ssp,{onStart:a,onUpdate:r}=o;this.animationsData||(this.animationsData=yield this.fetchAnimationsData());const l=this.ssp.getObjectById(e);if(!l)return void t(`playAnimationById: id 为 ${e} 场景对象未找到`);const c=this.animationsData.get(e);if(c){const o=c[i];if(o)for(let t=0,e=o.keyframes.length;t<e;t++){let e;if(o.keyframes[t-1]){const i=o.keyframes[t-1];e={x:i.x,y:i.y,z:i.z,rotationX:i.rotationX,rotationY:i.rotationY,rotationZ:i.rotationZ,scaleX:i.scaleX,scaleY:i.scaleY,scaleZ:i.scaleZ}}else{const t=new n.Object3D,i=(new n.Matrix4).fromArray(l.userData.matrix);t.applyMatrix4(i),e={x:t.position.x,y:t.position.y,z:t.position.z,rotationX:t.rotation.x,rotationY:t.rotation.y,rotationZ:t.rotation.z,scaleX:t.scale.x,scaleY:t.scale.y,scaleZ:t.scale.z}}const i=o.keyframes[t],{delay:c,duration:h,easing:d,repeat:u,yoyo:p}=i,f={x:i.x,y:i.y,z:i.z,rotationX:i.rotationX,rotationY:i.rotationY,rotationZ:i.rotationZ,scaleX:i.scaleX,scaleY:i.scaleY,scaleZ:i.scaleZ};yield s(e,f,{delay:c,duration:h,mode:d,repeat:-1===u?1/0:u,yoyo:p},((t,e)=>{l.position.set(t.x,t.y,t.z),l.rotation.set(t.rotationX,t.rotationY,t.rotationZ),l.scale.set(t.scaleX,t.scaleY,t.scaleZ),null==r||r(t,e)}),(t=>{null==a||a(t)}))}else t(`id: ${e} 未找到索引为 ${i} 的动画`)}else t(`id: ${e} 未找到动画`)}))}}function d(t,e){const i=new Map;return t.reduce(((t,i)=>{const o=t.get(i[e]);return o?o.push(i):t.set(i[e],[i]),t}),i),i}export{a as ANIMATIONS_DATA_FILE_PATH,e as META_DATA_FILE_PATH,r as MODEL_VISIONS_DATA_FILE_PATH,n as PROPERTIES_DATA_FLEE_PATH,l as PROPERTIES_KEY,i as SIGN_PATH,s as TOPOLOGY_DATA_FILE_PATH,o as TREE_DATA_FILE_PATH,h as default};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@soonspacejs/plugin-soonmanager2-sync",
3
3
  "pluginName": "Soonmanager2SyncPlugin",
4
- "version": "2.5.52",
4
+ "version": "2.5.53",
5
5
  "description": "Sync soonmanager 2.x data plugin for SoonSpace.js",
6
6
  "main": "dist/index.esm.js",
7
7
  "module": "dist/index.esm.js",
@@ -13,5 +13,8 @@
13
13
  ],
14
14
  "author": "xuek",
15
15
  "license": "UNLICENSED",
16
- "gitHead": "23dac225ca5572236615bd98110d906606ca4e27"
16
+ "gitHead": "788700798f632f90aa51e10bf52b0cdd85b84a7c",
17
+ "peerDependencies": {
18
+ "soonspacejs": "2.5.53"
19
+ }
17
20
  }