@ckeditor/ckeditor5-cloud-services 37.0.1 → 37.1.0
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/build/cloud-services.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md.
|
|
4
|
-
*/(()=>{var e={704:(e,t,r)=>{e.exports=r(79)("./src/core.js")},209:(e,t,r)=>{e.exports=r(79)("./src/utils.js")},79:e=>{"use strict";e.exports=CKEditor5.dll}},t={};function r(
|
|
4
|
+
*/(()=>{var e={86:()=>{},704:(e,t,r)=>{e.exports=r(79)("./src/core.js")},209:(e,t,r)=>{e.exports=r(79)("./src/utils.js")},79:e=>{"use strict";e.exports=CKEditor5.dll}},t={};function r(o){var s=t[o];if(void 0!==s)return s.exports;var n=t[o]={exports:{}};return e[o](n,n.exports,r),n.exports}r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};(()=>{"use strict";r.r(o),r.d(o,{CloudServices:()=>v,CloudServicesCore:()=>g,TokenUrl:()=>E.TokenUrl});var e=r(704),t=r(209),s=Object.defineProperty,n=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable,l=(e,t,r)=>t in e?s(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,u=(e,t)=>{for(var r in t||(t={}))i.call(t,r)&&l(e,r,t[r]);if(n)for(var r of n(t))a.call(t,r)&&l(e,r,t[r]);return e};const h={autoRefresh:!0},d=36e5;class c extends((0,t.ObservableMixin)()){constructor(e,r={}){if(super(),!e)throw new t.CKEditorError("token-missing-token-url",this);r.initValue&&this._validateTokenValue(r.initValue),this.set("value",r.initValue),this._refresh="function"==typeof e?e:()=>{return r=e,new Promise(((e,o)=>{const s=new XMLHttpRequest;s.open("GET",r),s.addEventListener("load",(()=>{const r=s.status,n=s.response;return r<200||r>299?o(new t.CKEditorError("token-cannot-download-new-token",null)):e(n)})),s.addEventListener("error",(()=>o(new Error("Network Error")))),s.addEventListener("abort",(()=>o(new Error("Abort")))),s.send()}));var r},this._options=u(u({},h),r)}init(){return new Promise(((e,t)=>{this.value?(this._options.autoRefresh&&this._registerRefreshTokenTimeout(),e(this)):this.refreshToken().then(e).catch(t)}))}refreshToken(){return this._refresh().then((e=>(this._validateTokenValue(e),this.set("value",e),this._options.autoRefresh&&this._registerRefreshTokenTimeout(),this)))}destroy(){clearTimeout(this._tokenRefreshTimeout)}_validateTokenValue(e){const r="string"==typeof e,o=!/^".*"$/.test(e),s=r&&3===e.split(".").length;if(!o||!s)throw new t.CKEditorError("token-not-in-jwt-format",this)}_registerRefreshTokenTimeout(){const e=this._getTokenRefreshTimeoutTime();clearTimeout(this._tokenRefreshTimeout),this._tokenRefreshTimeout=setTimeout((()=>{this.refreshToken()}),e)}_getTokenRefreshTimeoutTime(){try{const[,e]=this.value.split("."),{exp:t}=JSON.parse(atob(e));if(!t)return d;return Math.floor((1e3*t-Date.now())/2)}catch(e){return d}}static create(e,t={}){return new c(e,t).init()}}const p=/^data:(\S*?);base64,/;class f extends((0,t.EmitterMixin)()){constructor(e,r,o){if(super(),!e)throw new t.CKEditorError("fileuploader-missing-file",null);if(!r)throw new t.CKEditorError("fileuploader-missing-token",null);if(!o)throw new t.CKEditorError("fileuploader-missing-api-address",null);this.file=function(e){if("string"!=typeof e)return!1;const t=e.match(p);return!(!t||!t.length)}(e)?function(e,r=512){try{const t=e.match(p)[1],o=atob(e.replace(p,"")),s=[];for(let e=0;e<o.length;e+=r){const t=o.slice(e,e+r),n=new Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);s.push(new Uint8Array(n))}return new Blob(s,{type:t})}catch(e){throw new t.CKEditorError("fileuploader-decoding-image-data-error",null)}}(e):e,this._token=r,this._apiAddress=o}onProgress(e){return this.on("progress",((t,r)=>e(r))),this}onError(e){return this.once("error",((t,r)=>e(r))),this}abort(){this.xhr.abort()}send(){return this._prepareRequest(),this._attachXHRListeners(),this._sendRequest()}_prepareRequest(){const e=new XMLHttpRequest;e.open("POST",this._apiAddress),e.setRequestHeader("Authorization",this._token.value),e.responseType="json",this.xhr=e}_attachXHRListeners(){const e=this.xhr,t=e=>()=>this.fire("error",e);e.addEventListener("error",t("Network Error")),e.addEventListener("abort",t("Abort")),e.upload&&e.upload.addEventListener("progress",(e=>{e.lengthComputable&&this.fire("progress",{total:e.total,uploaded:e.loaded})})),e.addEventListener("load",(()=>{const t=e.status,r=e.response;if(t<200||t>299)return this.fire("error",r.message||r.error)}))}_sendRequest(){const e=new FormData,r=this.xhr;return e.append("file",this.file),new Promise(((o,s)=>{r.addEventListener("load",(()=>{const e=r.status,n=r.response;return e<200||e>299?n.message?s(new t.CKEditorError("fileuploader-uploading-data-failed",this,{message:n.message})):s(n.error):o(n)})),r.addEventListener("error",(()=>s(new Error("Network Error")))),r.addEventListener("abort",(()=>s(new Error("Abort")))),r.send(e)}))}}class w{constructor(e,r){if(!e)throw new t.CKEditorError("uploadgateway-missing-token",null);if(!r)throw new t.CKEditorError("uploadgateway-missing-api-address",null);this._token=e,this._apiAddress=r}upload(e){return new f(e,this._token,this._apiAddress)}}class g extends e.ContextPlugin{static get pluginName(){return"CloudServicesCore"}createToken(e,t){return new c(e,t)}createUploadGateway(e,t){return new w(e,t)}}var k=(e,t,r)=>new Promise(((o,s)=>{var n=e=>{try{a(r.next(e))}catch(e){s(e)}},i=e=>{try{a(r.throw(e))}catch(e){s(e)}},a=e=>e.done?o(e.value):Promise.resolve(e.value).then(n,i);a((r=r.apply(e,t)).next())}));class v extends e.ContextPlugin{constructor(){super(...arguments),this.token=null,this._tokens=new Map}static get pluginName(){return"CloudServices"}static get requires(){return[g]}init(){return k(this,null,(function*(){const e=this.context.config.get("cloudServices")||{};for(const[t,r]of Object.entries(e))this[t]=r;if(!this.tokenUrl)return void(this.token=null);const t=this.context.plugins.get("CloudServicesCore");this.token=yield t.createToken(this.tokenUrl).init(),this._tokens.set(this.tokenUrl,this.token)}))}registerTokenUrl(e){return k(this,null,(function*(){if(this._tokens.has(e))return this.getTokenFor(e);const t=this.context.plugins.get("CloudServicesCore"),r=yield t.createToken(e).init();return this._tokens.set(e,r),r}))}getTokenFor(e){const r=this._tokens.get(e);if(!r)throw new t.CKEditorError("cloudservices-token-not-registered",this);return r}destroy(){super.destroy();for(const e of this._tokens.values())e.destroy()}}var E=r(86)})(),(window.CKEditor5=window.CKEditor5||{}).cloudServices=o})();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ckeditor/ckeditor5-cloud-services",
|
|
3
|
-
"version": "37.0
|
|
3
|
+
"version": "37.1.0",
|
|
4
4
|
"description": "CKEditor 5's Cloud Services integration layer.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ckeditor",
|
|
@@ -11,14 +11,14 @@
|
|
|
11
11
|
],
|
|
12
12
|
"main": "src/index.js",
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"ckeditor5": "^37.0
|
|
14
|
+
"ckeditor5": "^37.1.0"
|
|
15
15
|
},
|
|
16
16
|
"devDependencies": {
|
|
17
|
-
"@ckeditor/ckeditor5-core": "^37.0
|
|
18
|
-
"@ckeditor/ckeditor5-dev-utils": "^
|
|
19
|
-
"@ckeditor/ckeditor5-editor-classic": "^37.0
|
|
20
|
-
"@ckeditor/ckeditor5-theme-lark": "^37.0
|
|
21
|
-
"@ckeditor/ckeditor5-utils": "^37.0
|
|
17
|
+
"@ckeditor/ckeditor5-core": "^37.1.0",
|
|
18
|
+
"@ckeditor/ckeditor5-dev-utils": "^37.0.0",
|
|
19
|
+
"@ckeditor/ckeditor5-editor-classic": "^37.1.0",
|
|
20
|
+
"@ckeditor/ckeditor5-theme-lark": "^37.1.0",
|
|
21
|
+
"@ckeditor/ckeditor5-utils": "^37.1.0",
|
|
22
22
|
"typescript": "^4.8.4",
|
|
23
23
|
"webpack": "^5.58.1",
|
|
24
24
|
"webpack-cli": "^4.9.0"
|
|
@@ -93,7 +93,7 @@ export default class FileUploader extends EmitterMixin() {
|
|
|
93
93
|
};
|
|
94
94
|
xhr.addEventListener('error', onError('Network Error'));
|
|
95
95
|
xhr.addEventListener('abort', onError('Abort'));
|
|
96
|
-
/* istanbul ignore else */
|
|
96
|
+
/* istanbul ignore else -- @preserve */
|
|
97
97
|
if (xhr.upload) {
|
|
98
98
|
xhr.upload.addEventListener('progress', event => {
|
|
99
99
|
if (event.lengthComputable) {
|