@cloudstudio/editor-sdk
Advanced tools
Comparing version 0.0.5 to 0.0.6
@@ -1,2 +0,2 @@ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["editor-sdk"]=e["editor-sdk"]||{})}(this,function(i){"use strict";var e={};{var t=e;Object.defineProperty(t,"__esModule",{value:!0}),t.CallbackList=t.Event=void 0;{var s=t.Event||(t.Event={});const y={dispose(){}};s.None=Object.assign(function(){return y},{get maxListeners(){return 0},set maxListeners(e){}}),s.map=function(i,n){return Object.assign((t,s,e)=>i(e=>t.call(s,n(e)),void 0,e),{maxListeners:0})}}class _{get length(){return this._callbacks&&this._callbacks.length||0}add(e,t=void 0,s){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(t),Array.isArray(s)&&s.push({dispose:()=>this.remove(e,t)})}remove(s,i=void 0){if(this._callbacks){let t=!1;for(let e=0;e<this._callbacks.length;e++)if(this._callbacks[e]===s){if(this._contexts[e]===i)return this._callbacks.splice(e,1),void this._contexts.splice(e,1);t=!0}if(t)throw new Error("When adding a listener with a context, you should remove it with the same context")}}[Symbol.iterator](){if(!this._callbacks)return[][Symbol.iterator]();const e=this._callbacks.slice(0),i=this._contexts.slice(0);return e.map((t,s)=>(...e)=>t.apply(i[s],e))[Symbol.iterator]()}invoke(...e){const t=[];for(const s of this)try{t.push(s(...e))}catch(e){console.error(e)}return t}isEmpty(){return!this._callbacks||0===this._callbacks.length}dispose(){this._callbacks=void 0,this._contexts=void 0}}t.CallbackList=_}var n,o={},a={};{s=a,Object.defineProperty(s,"__esModule",{value:!0}),s.checkCancelled=s.isCancelled=s.cancelled=s.CancellationTokenSource=s.CancellationToken=void 0;const b=e,C=o,w=Object.freeze(Object.assign(function(e,t){const s=setTimeout(e.bind(t),0);return{dispose(){clearTimeout(s)}}},{maxListeners:0}));(t=n=s.CancellationToken||(s.CancellationToken={})).None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:b.Event.None}),t.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:w});class E{constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this._emitter=void 0))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?w:(this._emitter||(this._emitter=new C.Emitter),this._emitter.event)}}s.CancellationTokenSource=class{get token(){return this._token||(this._token=new E),this._token}cancel(){this._token?this._token!==n.Cancelled&&this._token.cancel():this._token=n.Cancelled}dispose(){this.cancel()}};const R="Cancelled";function r(){return new Error(R)}s.cancelled=r,s.isCancelled=function(e){return!!e&&e.message===R},s.checkCancelled=function(e){if(e&&e.isCancellationRequested)throw r()}}{t=o,Object.defineProperty(t,"__esModule",{value:!0}),t.AsyncEmitter=t.WaitUntilEvent=t.Emitter=void 0;const S=e;class D{constructor(e){this._options=e,this._disposed=!1,this._leakWarnCountdown=0}get event(){return this._event||(this._event=Object.assign((e,t,s)=>{this._callbacks||(this._callbacks=new S.CallbackList),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,t);const i=this.checkMaxListeners(this._event.maxListeners),n={dispose:()=>{i&&i(),n.dispose=D._noop,this._disposed||(this._callbacks.remove(e,t),n.dispose=D._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(s)&&s.push(n),n},{maxListeners:D.LEAK_WARNING_THRESHHOLD})),this._event}checkMaxListeners(e){if(0!==e&&this._callbacks){var t=this._callbacks.length;if(!(t<=e)){var s=this.pushLeakingStack();if(--this._leakWarnCountdown,this._leakWarnCountdown<=0){this._leakWarnCountdown=.5*e;let s,i=0;this._leakingStacks.forEach((e,t)=>{(!s||i<e)&&(s=t,i=e)}),console.warn(`Possible Emitter memory leak detected. ${t} listeners added. Use event.maxListeners to increase the limit (${e}). MOST frequent listener (${i}):`),console.warn(s)}return s}}}pushLeakingStack(){this._leakingStacks||(this._leakingStacks=new Map);const e=(new Error).stack.split("\n").slice(3).join("\n");var t=this._leakingStacks.get(e)||0;return this._leakingStacks.set(e,t+1),()=>this.popLeakingStack(e)}popLeakingStack(e){var t;this._leakingStacks&&(t=this._leakingStacks.get(e)||0,this._leakingStacks.set(e,t-1))}fire(e){this._callbacks&&this._callbacks.invoke(e)}async sequence(e){if(this._callbacks)for(const t of this._callbacks)if(!await e(t))break}dispose(){this._leakingStacks&&(this._leakingStacks.clear(),this._leakingStacks=void 0),this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0),this._disposed=!0}}(t.Emitter=D).LEAK_WARNING_THRESHHOLD=175,D._noop=function(){},(t.WaitUntilEvent||(t.WaitUntilEvent={})).fire=async function(e,t,s=void 0){const i=[],n=Object.assign(t,{waitUntil:e=>{if(Object.isFrozen(i))throw new Error("waitUntil cannot be called asynchronously.");i.push(e)}});try{e.fire(n),Object.freeze(i)}finally{delete n.waitUntil}i.length&&(void 0!==s?await Promise.race([Promise.all(i),new Promise(e=>setTimeout(e,s))]):await Promise.all(i))};const O=a;D,t.AsyncEmitter=class extends D{fire(e,t=O.CancellationToken.None,s){var i=this._callbacks;if(!i)return Promise.resolve();const n=[...i];return this.deliveryQueue?this.deliveryQueue=this.deliveryQueue.then(()=>this.deliver(n,e,t,s)):this.deliveryQueue=this.deliver(n,e,t,s)}async deliver(e,t,s,i){for(const n of e){if(s.isCancellationRequested)return;const r=[],o=Object.assign(t,{waitUntil:e=>{if(Object.isFrozen(r))throw new Error("waitUntil cannot be called asynchronously.");i&&(e=i(e,n)),r.push(e)}});try{n(t),Object.freeze(r)}catch(e){console.error(e)}finally{delete o.waitUntil}if(!r.length)return;try{await Promise.all(r)}catch(e){console.error(e)}}}}}class c{constructor(e,t){this.isMain=e,this.id=t.toString()}}function l(e){return new c(!1,e)}var h,s={CommandService:l("CommandService")},d={};{t=d,Object.defineProperty(t,"__esModule",{value:!0}),t.DisposableCollection=t.Disposable=void 0;const x=o;function p(e){return{dispose:e}}(u=h=t.Disposable||(t.Disposable={})).is=function(e){return!!e&&"object"==typeof e&&"dispose"in e&&"function"==typeof e.dispose},u.create=p,u.NULL=p(()=>{}),t.DisposableCollection=class{constructor(...e){this.disposables=[],this.onDisposeEmitter=new x.Emitter,this.disposingElements=!1,e.forEach(e=>this.push(e))}get onDispose(){return this.onDisposeEmitter.event}checkDisposed(){this.disposed&&!this.disposingElements&&(this.onDisposeEmitter.fire(void 0),this.onDisposeEmitter.dispose())}get disposed(){return 0===this.disposables.length}dispose(){if(!this.disposed&&!this.disposingElements){for(this.disposingElements=!0;!this.disposed;)try{this.disposables.pop().dispose()}catch(e){console.error(e)}this.disposingElements=!1,this.checkDisposed()}}push(t){const s=this.disposables,e=(s.push(t),t.dispose.bind(t)),i=h.create(()=>{var e=s.indexOf(t);-1!==e&&s.splice(e,1),this.checkDisposed()});return t.dispose=()=>{i.dispose(),(t.dispose=e)()},i}pushAll(e){return e.map(e=>this.push(e))}}}var u={},v=(Object.defineProperty(u,"__esModule",{value:!0}),u.Deferred=void 0);v=u.Deferred=class{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}},t=Symbol("RPCProtocol");i.ConnectionClosedError=void 0;{var u=i.ConnectionClosedError||(i.ConnectionClosedError={});const P="RPC_PROTOCOL_CLOSED";u.create=function(e="connection is closed"){return Object.assign(new Error(e),{code:P})},u.is=function(e){return!!e&&"object"==typeof e&&"code"in e&&e.code===P}}class f{constructor(e,t,s){this.channalId=e,this.locals=new Map,this.proxies=new Map,this.lastMessageId=0,this.cancellationTokenSources=new Map,this.pendingRPCReplies=new Map,this.readyDeferred=new v,this.toDispose=new d.DisposableCollection(d.Disposable.create(()=>{})),this.toDispose.push(this.multiplexer=new m(t)),this.multiplexer.onMessage(e=>this.receiveOneMessage(e)),this.toDispose.push(d.Disposable.create(()=>{this.proxies.clear();for(const e of this.pendingRPCReplies.values())e.reject(i.ConnectionClosedError.create());this.pendingRPCReplies.clear()})),this.reviver=(null==s?void 0:s.reviver)||i.ObjectsTransferrer.reviver,this.replacer=(null==s?void 0:s.replacer)||i.ObjectsTransferrer.replacer,this.connect()}async connect(){let t=0;const s=setInterval(()=>{var e=String(++this.lastMessageId);this.multiplexer.send(this.open(e)),300<++t&&clearInterval(s)},200<t?1e3:100);await this.readyDeferred.promise,clearInterval(s)}get isDisposed(){return this.toDispose.disposed}dispose(){this.toDispose.dispose()}getProxy(e){if(this.isDisposed)throw i.ConnectionClosedError.create();let t=this.proxies.get(e.id);return t||(t=this.createProxy(e.id),this.proxies.set(e.id,t)),t}set(e,t){if(this.isDisposed)throw i.ConnectionClosedError.create();return this.locals.set(e.id,t),d.Disposable.is(t)&&this.toDispose.push(t),this.toDispose.push(d.Disposable.create(()=>this.locals.delete(e.id))),t}createProxy(s){var e={get:(e,t)=>(e[t]||(e[t]=(...e)=>this.remoteCall(s,t,e)),e[t])};return new Proxy(Object.create(null),e)}remoteCall(n,r,o){return this.isDisposed?Promise.reject(i.ConnectionClosedError.create()):this.readyDeferred.promise.then(()=>{const e=o.length&&((t=o[o.length-1])&&(t===a.CancellationToken.None||t===a.CancellationToken.Cancelled||(!0===(i=t.isCancellationRequested)||!1===i)&&t.onCancellationRequested))?o.pop():void 0;var t;if(e&&e.isCancellationRequested)return Promise.reject(function(){const e=new Error("Canceled");return e.name=e.message,e}());const s=String(++this.lastMessageId);var i=new v;return e&&(o.push("add.cancellation.token"),e.onCancellationRequested(()=>this.multiplexer.send(this.cancel(s)))),this.pendingRPCReplies.set(s,i),this.multiplexer.send(this.request(s,n,r,o)),i.promise})}receiveOneMessage(t){if(!this.isDisposed)try{var e=JSON.parse(t,this.reviver);if(e.channalId!==this.channalId)return;switch(e.type){case 1:this.receiveRequest(e);break;case 2:this.receiveReply(e);break;case 3:this.receiveReplyErr(e);break;case 4:this.receiveCancel(e);break;case 7:this.receiveOpen(e);break;case 8:this.receiveReady(e)}}catch(e){throw console.log("failed to parse message: "+t),e}}receiveOpen(e){this.readyDeferred.resolve(),this.multiplexer.send(this.replyReady(e.id))}receiveReady(e){this.readyDeferred.resolve()}receiveCancel(e){const t=this.cancellationTokenSources.get(e.id);t&&t.cancel()}receiveRequest(e){const t=e.id;var s,i=e.proxyId;const n=e.args.map(e=>null===e?void 0:e),r=(!(!n.length||"add.cancellation.token"!==n[n.length-1])&&n.pop()&&(s=new a.CancellationTokenSource,this.cancellationTokenSources.set(t,s),n.push(s.token)),this.invokeHandler(i,e.method,n));r.then(e=>{this.cancellationTokenSources.delete(t),this.multiplexer.send(this.replyOK(t,e))},e=>{this.cancellationTokenSources.delete(t),this.multiplexer.send(this.replyErr(t,e))})}receiveReply(e){var t=e.id;const s=this.pendingRPCReplies.get(t);s&&(this.pendingRPCReplies.delete(t),s.resolve(e.res))}receiveReplyErr(t){var s=t.id;const i=this.pendingRPCReplies.get(s);if(i){this.pendingRPCReplies.delete(s);let e=void 0;t.err&&t.err.$isError&&((e=new Error).name=t.err.name,e.message=t.err.message,e.stack=t.err.stack),i.reject(e)}}invokeHandler(e,t,s){try{return Promise.resolve(this.doInvokeHandler(e,t,s))}catch(e){return Promise.reject(e)}}doInvokeHandler(e,t,s){var i=this.locals.get(e);if(!i)throw new Error("Unknown actor "+e);const n=i[t];if("function"!=typeof n)throw new Error("Unknown method "+t+" on actor "+e);return n.apply(i,s)}cancel(e){return`{"type":4,"id":"${e}","channalId":${this.channalId}}`}open(e){return`{"type":7,"id":"${e}","channalId":${this.channalId}}`}request(e,t,s,i){return`{"type":1,"id":"${e}","channalId":${this.channalId},"proxyId":"${t}","method":"${s}","args":${JSON.stringify(i,this.replacer)}}`}replyReady(e){return`{"type":8,"id":"${e}","channalId":${this.channalId}}`}replyOK(e,t){return void 0===t?`{"type":2,"id":"${e}","channalId":${this.channalId}}`:`{"type":2,"id":"${e}","channalId":${this.channalId},"res":${g(t,this.replacer)}}`}replyErr(e,t){return(t="string"==typeof t?new Error(t):t)instanceof Error?`{"type":3,"id":"${e}","channalId":${this.channalId},"err":${g(k(t))}}`:`{"type":3,"id":"${e}","channalId":${this.channalId},"err":null}`}}class m{constructor(e){this.messageEmitter=new o.Emitter,this.toDispose=new d.DisposableCollection,this.connection=e,this.sendAccumulatedBound=this.sendAccumulated.bind(this),this.toDispose.push(d.Disposable.create(()=>this.messagesToSend=[])),this.toDispose.push(this.connection.onMessage(e=>{try{for(const t of JSON.parse(e))this.messageEmitter.fire(t)}catch(e){}})),this.toDispose.push(this.messageEmitter),this.messagesToSend=[]}dispose(){this.toDispose.dispose()}get onMessage(){return this.messageEmitter.event}sendAccumulated(){var e=this.messagesToSend;this.messagesToSend=[],this.connection.send(JSON.stringify(e))}send(e){if(this.toDispose.disposed)throw i.ConnectionClosedError.create();0===this.messagesToSend.length&&setTimeout(this.sendAccumulatedBound,0),this.messagesToSend.push(e)}}function k(e){var t,s;return e instanceof Error?({name:t,message:s}=e,{$isError:!0,name:t,message:s,stack:e.stacktrace||e.stack}):e}function g(e,t){try{return JSON.stringify(e,t)}catch(e){return console.error("error stringifying response: ",e),"null"}}i.ObjectsTransferrer=void 0,(u=i.ObjectsTransferrer||(i.ObjectsTransferrer={})).replacer=function(e,t){return t},u.reviver=function(e,t){return t},i.Emitter=o.Emitter,i.Event=e.Event,i.ProxyIdentifier=c,i.RPCProtocol=t,i.RPCProtocolImpl=f,i.RPC_CONTEXT=s,i.createClient=function(t){const s=new o.Emitter;window.addEventListener("message",e=>s.fire(e.data));let e=0,i=t.parent;for(;window!==i;)e++,i=i.parent;return new f(e,{onMessage:s.event,send:e=>{t.postMessage(e,{targetOrigin:"*"})}})},i.createProxyIdentifier=l,i.createServer=function(){const t=new o.Emitter,i=(window.addEventListener("message",e=>t.fire(e.data)),[]);let e=0,s=window;do{const r=s=s.parent;var n=new f(e,{onMessage:t.event,send:e=>{r.postMessage(e,{targetOrigin:"*"})}});i.push(n),e++}while(top!==s);return{dispose(){for(const e of i)e.dispose()},getProxy(e){return i[i.length-1].getProxy(e)},set(e,t){for(const s of i)s.set(e,t);return t}}},i.transformErrorForSerialization=k,Object.defineProperty(i,"__esModule",{value:!0})}); | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["editor-sdk"]=e["editor-sdk"]||{})}(this,function(i){"use strict";var e={};{var t=e;Object.defineProperty(t,"__esModule",{value:!0}),t.CallbackList=t.Event=void 0;{var s=t.Event||(t.Event={});const y={dispose(){}};s.None=Object.assign(function(){return y},{get maxListeners(){return 0},set maxListeners(e){}}),s.map=function(i,n){return Object.assign((t,s,e)=>i(e=>t.call(s,n(e)),void 0,e),{maxListeners:0})}}class _{get length(){return this._callbacks&&this._callbacks.length||0}add(e,t=void 0,s){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(t),Array.isArray(s)&&s.push({dispose:()=>this.remove(e,t)})}remove(s,i=void 0){if(this._callbacks){let t=!1;for(let e=0;e<this._callbacks.length;e++)if(this._callbacks[e]===s){if(this._contexts[e]===i)return this._callbacks.splice(e,1),void this._contexts.splice(e,1);t=!0}if(t)throw new Error("When adding a listener with a context, you should remove it with the same context")}}[Symbol.iterator](){if(!this._callbacks)return[][Symbol.iterator]();const e=this._callbacks.slice(0),i=this._contexts.slice(0);return e.map((t,s)=>(...e)=>t.apply(i[s],e))[Symbol.iterator]()}invoke(...e){const t=[];for(const s of this)try{t.push(s(...e))}catch(e){console.error(e)}return t}isEmpty(){return!this._callbacks||0===this._callbacks.length}dispose(){this._callbacks=void 0,this._contexts=void 0}}t.CallbackList=_}var n,o={},a={};{s=a,Object.defineProperty(s,"__esModule",{value:!0}),s.checkCancelled=s.isCancelled=s.cancelled=s.CancellationTokenSource=s.CancellationToken=void 0;const b=e,C=o,w=Object.freeze(Object.assign(function(e,t){const s=setTimeout(e.bind(t),0);return{dispose(){clearTimeout(s)}}},{maxListeners:0}));(t=n=s.CancellationToken||(s.CancellationToken={})).None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:b.Event.None}),t.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:w});class E{constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this._emitter=void 0))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?w:(this._emitter||(this._emitter=new C.Emitter),this._emitter.event)}}s.CancellationTokenSource=class{get token(){return this._token||(this._token=new E),this._token}cancel(){this._token?this._token!==n.Cancelled&&this._token.cancel():this._token=n.Cancelled}dispose(){this.cancel()}};const S="Cancelled";function r(){return new Error(S)}s.cancelled=r,s.isCancelled=function(e){return!!e&&e.message===S},s.checkCancelled=function(e){if(e&&e.isCancellationRequested)throw r()}}{t=o,Object.defineProperty(t,"__esModule",{value:!0}),t.AsyncEmitter=t.WaitUntilEvent=t.Emitter=void 0;const R=e;class D{constructor(e){this._options=e,this._disposed=!1,this._leakWarnCountdown=0}get event(){return this._event||(this._event=Object.assign((e,t,s)=>{this._callbacks||(this._callbacks=new R.CallbackList),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,t);const i=this.checkMaxListeners(this._event.maxListeners),n={dispose:()=>{i&&i(),n.dispose=D._noop,this._disposed||(this._callbacks.remove(e,t),n.dispose=D._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(s)&&s.push(n),n},{maxListeners:D.LEAK_WARNING_THRESHHOLD})),this._event}checkMaxListeners(e){if(0!==e&&this._callbacks){var t=this._callbacks.length;if(!(t<=e)){var s=this.pushLeakingStack();if(--this._leakWarnCountdown,this._leakWarnCountdown<=0){this._leakWarnCountdown=.5*e;let s,i=0;this._leakingStacks.forEach((e,t)=>{(!s||i<e)&&(s=t,i=e)}),console.warn(`Possible Emitter memory leak detected. ${t} listeners added. Use event.maxListeners to increase the limit (${e}). MOST frequent listener (${i}):`),console.warn(s)}return s}}}pushLeakingStack(){this._leakingStacks||(this._leakingStacks=new Map);const e=(new Error).stack.split("\n").slice(3).join("\n");var t=this._leakingStacks.get(e)||0;return this._leakingStacks.set(e,t+1),()=>this.popLeakingStack(e)}popLeakingStack(e){var t;this._leakingStacks&&(t=this._leakingStacks.get(e)||0,this._leakingStacks.set(e,t-1))}fire(e){this._callbacks&&this._callbacks.invoke(e)}async sequence(e){if(this._callbacks)for(const t of this._callbacks)if(!await e(t))break}dispose(){this._leakingStacks&&(this._leakingStacks.clear(),this._leakingStacks=void 0),this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0),this._disposed=!0}}(t.Emitter=D).LEAK_WARNING_THRESHHOLD=175,D._noop=function(){},(t.WaitUntilEvent||(t.WaitUntilEvent={})).fire=async function(e,t,s=void 0){const i=[],n=Object.assign(t,{waitUntil:e=>{if(Object.isFrozen(i))throw new Error("waitUntil cannot be called asynchronously.");i.push(e)}});try{e.fire(n),Object.freeze(i)}finally{delete n.waitUntil}i.length&&(void 0!==s?await Promise.race([Promise.all(i),new Promise(e=>setTimeout(e,s))]):await Promise.all(i))};const O=a;D,t.AsyncEmitter=class extends D{fire(e,t=O.CancellationToken.None,s){var i=this._callbacks;if(!i)return Promise.resolve();const n=[...i];return this.deliveryQueue?this.deliveryQueue=this.deliveryQueue.then(()=>this.deliver(n,e,t,s)):this.deliveryQueue=this.deliver(n,e,t,s)}async deliver(e,t,s,i){for(const n of e){if(s.isCancellationRequested)return;const r=[],o=Object.assign(t,{waitUntil:e=>{if(Object.isFrozen(r))throw new Error("waitUntil cannot be called asynchronously.");i&&(e=i(e,n)),r.push(e)}});try{n(t),Object.freeze(r)}catch(e){console.error(e)}finally{delete o.waitUntil}if(!r.length)return;try{await Promise.all(r)}catch(e){console.error(e)}}}}}class c{constructor(e,t){this.isMain=e,this.id=t.toString()}}function l(e){return new c(!1,e)}var h,s={CommandService:l("CommandService"),FileService:l("FileService")},d={};{t=d,Object.defineProperty(t,"__esModule",{value:!0}),t.DisposableCollection=t.Disposable=void 0;const x=o;function p(e){return{dispose:e}}(u=h=t.Disposable||(t.Disposable={})).is=function(e){return!!e&&"object"==typeof e&&"dispose"in e&&"function"==typeof e.dispose},u.create=p,u.NULL=p(()=>{}),t.DisposableCollection=class{constructor(...e){this.disposables=[],this.onDisposeEmitter=new x.Emitter,this.disposingElements=!1,e.forEach(e=>this.push(e))}get onDispose(){return this.onDisposeEmitter.event}checkDisposed(){this.disposed&&!this.disposingElements&&(this.onDisposeEmitter.fire(void 0),this.onDisposeEmitter.dispose())}get disposed(){return 0===this.disposables.length}dispose(){if(!this.disposed&&!this.disposingElements){for(this.disposingElements=!0;!this.disposed;)try{this.disposables.pop().dispose()}catch(e){console.error(e)}this.disposingElements=!1,this.checkDisposed()}}push(t){const s=this.disposables,e=(s.push(t),t.dispose.bind(t)),i=h.create(()=>{var e=s.indexOf(t);-1!==e&&s.splice(e,1),this.checkDisposed()});return t.dispose=()=>{i.dispose(),(t.dispose=e)()},i}pushAll(e){return e.map(e=>this.push(e))}}}var u={},v=(Object.defineProperty(u,"__esModule",{value:!0}),u.Deferred=void 0);v=u.Deferred=class{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}},t=Symbol("RPCProtocol");i.ConnectionClosedError=void 0;{var u=i.ConnectionClosedError||(i.ConnectionClosedError={});const P="RPC_PROTOCOL_CLOSED";u.create=function(e="connection is closed"){return Object.assign(new Error(e),{code:P})},u.is=function(e){return!!e&&"object"==typeof e&&"code"in e&&e.code===P}}class f{constructor(e,t,s){this.channalId=e,this.locals=new Map,this.proxies=new Map,this.lastMessageId=0,this.cancellationTokenSources=new Map,this.pendingRPCReplies=new Map,this.readyDeferred=new v,this.toDispose=new d.DisposableCollection(d.Disposable.create(()=>{})),this.toDispose.push(this.multiplexer=new m(t)),this.multiplexer.onMessage(e=>this.receiveOneMessage(e)),this.toDispose.push(d.Disposable.create(()=>{this.proxies.clear();for(const e of this.pendingRPCReplies.values())e.reject(i.ConnectionClosedError.create());this.pendingRPCReplies.clear()})),this.reviver=(null==s?void 0:s.reviver)||i.ObjectsTransferrer.reviver,this.replacer=(null==s?void 0:s.replacer)||i.ObjectsTransferrer.replacer,this.connect()}async connect(){let t=0;const s=setInterval(()=>{var e=String(++this.lastMessageId);this.multiplexer.send(this.open(e)),300<++t&&clearInterval(s)},200<t?1e3:100);await this.readyDeferred.promise,clearInterval(s)}get isDisposed(){return this.toDispose.disposed}dispose(){this.toDispose.dispose()}getProxy(e){if(this.isDisposed)throw i.ConnectionClosedError.create();let t=this.proxies.get(e.id);return t||(t=this.createProxy(e.id),this.proxies.set(e.id,t)),t}set(e,t){if(this.isDisposed)throw i.ConnectionClosedError.create();return this.locals.set(e.id,t),d.Disposable.is(t)&&this.toDispose.push(t),this.toDispose.push(d.Disposable.create(()=>this.locals.delete(e.id))),t}createProxy(s){var e={get:(e,t)=>(e[t]||(e[t]=(...e)=>this.remoteCall(s,t,e)),e[t])};return new Proxy(Object.create(null),e)}remoteCall(n,r,o){return this.isDisposed?Promise.reject(i.ConnectionClosedError.create()):this.readyDeferred.promise.then(()=>{const e=o.length&&((t=o[o.length-1])&&(t===a.CancellationToken.None||t===a.CancellationToken.Cancelled||(!0===(i=t.isCancellationRequested)||!1===i)&&t.onCancellationRequested))?o.pop():void 0;var t;if(e&&e.isCancellationRequested)return Promise.reject(function(){const e=new Error("Canceled");return e.name=e.message,e}());const s=String(++this.lastMessageId);var i=new v;return e&&(o.push("add.cancellation.token"),e.onCancellationRequested(()=>this.multiplexer.send(this.cancel(s)))),this.pendingRPCReplies.set(s,i),this.multiplexer.send(this.request(s,n,r,o)),i.promise})}receiveOneMessage(t){if(!this.isDisposed)try{var e=JSON.parse(t,this.reviver);if(e.channalId!==this.channalId)return;switch(e.type){case 1:this.receiveRequest(e);break;case 2:this.receiveReply(e);break;case 3:this.receiveReplyErr(e);break;case 4:this.receiveCancel(e);break;case 7:this.receiveOpen(e);break;case 8:this.receiveReady(e)}}catch(e){throw console.log("failed to parse message: "+t),e}}receiveOpen(e){this.readyDeferred.resolve(),this.multiplexer.send(this.replyReady(e.id))}receiveReady(e){this.readyDeferred.resolve()}receiveCancel(e){const t=this.cancellationTokenSources.get(e.id);t&&t.cancel()}receiveRequest(e){const t=e.id;var s,i=e.proxyId;const n=e.args.map(e=>null===e?void 0:e),r=(!(!n.length||"add.cancellation.token"!==n[n.length-1])&&n.pop()&&(s=new a.CancellationTokenSource,this.cancellationTokenSources.set(t,s),n.push(s.token)),this.invokeHandler(i,e.method,n));r.then(e=>{this.cancellationTokenSources.delete(t),this.multiplexer.send(this.replyOK(t,e))},e=>{this.cancellationTokenSources.delete(t),this.multiplexer.send(this.replyErr(t,e))})}receiveReply(e){var t=e.id;const s=this.pendingRPCReplies.get(t);s&&(this.pendingRPCReplies.delete(t),s.resolve(e.res))}receiveReplyErr(t){var s=t.id;const i=this.pendingRPCReplies.get(s);if(i){this.pendingRPCReplies.delete(s);let e=void 0;t.err&&t.err.$isError&&((e=new Error).name=t.err.name,e.message=t.err.message,e.stack=t.err.stack),i.reject(e)}}invokeHandler(e,t,s){try{return Promise.resolve(this.doInvokeHandler(e,t,s))}catch(e){return Promise.reject(e)}}doInvokeHandler(e,t,s){var i=this.locals.get(e);if(!i)throw new Error("Unknown actor "+e);const n=i[t];if("function"!=typeof n)throw new Error("Unknown method "+t+" on actor "+e);return n.apply(i,s)}cancel(e){return`{"type":4,"id":"${e}","channalId":${this.channalId}}`}open(e){return`{"type":7,"id":"${e}","channalId":${this.channalId}}`}request(e,t,s,i){return`{"type":1,"id":"${e}","channalId":${this.channalId},"proxyId":"${t}","method":"${s}","args":${JSON.stringify(i,this.replacer)}}`}replyReady(e){return`{"type":8,"id":"${e}","channalId":${this.channalId}}`}replyOK(e,t){return void 0===t?`{"type":2,"id":"${e}","channalId":${this.channalId}}`:`{"type":2,"id":"${e}","channalId":${this.channalId},"res":${g(t,this.replacer)}}`}replyErr(e,t){return(t="string"==typeof t?new Error(t):t)instanceof Error?`{"type":3,"id":"${e}","channalId":${this.channalId},"err":${g(k(t))}}`:`{"type":3,"id":"${e}","channalId":${this.channalId},"err":null}`}}class m{constructor(e){this.messageEmitter=new o.Emitter,this.toDispose=new d.DisposableCollection,this.connection=e,this.sendAccumulatedBound=this.sendAccumulated.bind(this),this.toDispose.push(d.Disposable.create(()=>this.messagesToSend=[])),this.toDispose.push(this.connection.onMessage(e=>{try{for(const t of JSON.parse(e))this.messageEmitter.fire(t)}catch(e){}})),this.toDispose.push(this.messageEmitter),this.messagesToSend=[]}dispose(){this.toDispose.dispose()}get onMessage(){return this.messageEmitter.event}sendAccumulated(){var e=this.messagesToSend;this.messagesToSend=[],this.connection.send(JSON.stringify(e))}send(e){if(this.toDispose.disposed)throw i.ConnectionClosedError.create();0===this.messagesToSend.length&&setTimeout(this.sendAccumulatedBound,0),this.messagesToSend.push(e)}}function k(e){var t,s;return e instanceof Error?({name:t,message:s}=e,{$isError:!0,name:t,message:s,stack:e.stacktrace||e.stack}):e}function g(e,t){try{return JSON.stringify(e,t)}catch(e){return console.error("error stringifying response: ",e),"null"}}i.ObjectsTransferrer=void 0,(u=i.ObjectsTransferrer||(i.ObjectsTransferrer={})).replacer=function(e,t){return t},u.reviver=function(e,t){return t},i.Emitter=o.Emitter,i.Event=e.Event,i.ProxyIdentifier=c,i.RPCProtocol=t,i.RPCProtocolImpl=f,i.RPC_CONTEXT=s,i.createClient=function(t){const s=new o.Emitter;window.addEventListener("message",e=>s.fire(e.data));let e=0,i=t.parent;for(;window!==i;)e++,i=i.parent;return new f(e,{onMessage:s.event,send:e=>{t.postMessage(e,{targetOrigin:"*"})}})},i.createProxyIdentifier=l,i.createServer=function(){const t=new o.Emitter,i=(window.addEventListener("message",e=>t.fire(e.data)),[]);let e=0,s=window;do{const r=s=s.parent;var n=new f(e,{onMessage:t.event,send:e=>{r.postMessage(e,{targetOrigin:"*"})}});i.push(n),e++}while(top!==s);return{dispose(){for(const e of i)e.dispose()},getProxy(e){return i[i.length-1].getProxy(e)},set(e,t){for(const s of i)s.set(e,t);return t}}},i.transformErrorForSerialization=k,Object.defineProperty(i,"__esModule",{value:!0})}); | ||
//# sourceMappingURL=index.js.map |
@@ -0,1 +1,2 @@ | ||
import { FileDeleteOptions, ICreateFileOptions, IFileContent, IFileStatWithMetadata, IReadFileOptions, IWriteFileOptions } from './files'; | ||
export { Event } from '@malagu/core/lib/common/utils/event'; | ||
@@ -12,5 +13,15 @@ export { Emitter } from '@malagu/core/lib/common/utils/emitter'; | ||
} | ||
export interface FileService { | ||
readFile(resource: string, options?: IReadFileOptions): Promise<IFileContent>; | ||
writeFile(resource: string, content: string, options?: IWriteFileOptions): Promise<IFileStatWithMetadata>; | ||
createFile(resource: string, content?: string, options?: ICreateFileOptions): Promise<IFileStatWithMetadata>; | ||
createFolder(resource: string): Promise<IFileStatWithMetadata>; | ||
del(resource: string, options?: Partial<FileDeleteOptions>): Promise<void>; | ||
exists(resource: string): Promise<boolean>; | ||
copy(source: string, target: string, overwrite: boolean | undefined): Promise<IFileStatWithMetadata>; | ||
} | ||
export declare const RPC_CONTEXT: { | ||
CommandService: ProxyIdentifier<CommandService>; | ||
FileService: ProxyIdentifier<FileService>; | ||
}; | ||
//# sourceMappingURL=interfaces.d.ts.map |
@@ -0,1 +1,2 @@ | ||
import { FileDeleteOptions, ICreateFileOptions, IFileContent, IFileStatWithMetadata, IReadFileOptions, IWriteFileOptions } from './files'; | ||
export { Event } from '@malagu/core/lib/common/utils/event'; | ||
@@ -12,5 +13,15 @@ export { Emitter } from '@malagu/core/lib/common/utils/emitter'; | ||
} | ||
export interface FileService { | ||
readFile(resource: string, options?: IReadFileOptions): Promise<IFileContent>; | ||
writeFile(resource: string, content: string, options?: IWriteFileOptions): Promise<IFileStatWithMetadata>; | ||
createFile(resource: string, content?: string, options?: ICreateFileOptions): Promise<IFileStatWithMetadata>; | ||
createFolder(resource: string): Promise<IFileStatWithMetadata>; | ||
del(resource: string, options?: Partial<FileDeleteOptions>): Promise<void>; | ||
exists(resource: string): Promise<boolean>; | ||
copy(source: string, target: string, overwrite: boolean | undefined): Promise<IFileStatWithMetadata>; | ||
} | ||
export declare const RPC_CONTEXT: { | ||
CommandService: ProxyIdentifier<CommandService>; | ||
FileService: ProxyIdentifier<FileService>; | ||
}; | ||
//# sourceMappingURL=interfaces.d.ts.map |
@@ -15,4 +15,5 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ | ||
export const RPC_CONTEXT = { | ||
CommandService: createProxyIdentifier('CommandService') | ||
CommandService: createProxyIdentifier('CommandService'), | ||
FileService: createProxyIdentifier('FileService') | ||
}; | ||
//# sourceMappingURL=interfaces.js.map |
{ | ||
"name": "@cloudstudio/editor-sdk", | ||
"version": "0.0.5", | ||
"version": "0.0.6", | ||
"description": "Cloud Studio Editor SDK", | ||
@@ -42,3 +42,3 @@ "browser": "dist/index.js", | ||
}, | ||
"gitHead": "ebc828135f9589adbbe6f6b23aec318366a0a17e" | ||
"gitHead": "b437acdbf67ee089b54c276796aaa8f993a47d4b" | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
156946
40
1543