@ckeditor/ckeditor5-adapter-ckfinder 41.4.1 → 42.0.0-alpha.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/README.md CHANGED
@@ -13,6 +13,12 @@ See the ["CKFinder integration" guide](https://ckeditor.com/docs/ckeditor5/lates
13
13
 
14
14
  Check out the {@link features/image-upload/image-upload comprehensive "Image upload overview"} to learn about other ways to upload images into CKEditor 5.
15
15
 
16
+ ## Installation
17
+
18
+ ```bash
19
+ npm install ckeditor5
20
+ ```
21
+
16
22
  ## License
17
23
 
18
24
  Licensed under the terms of [GNU General Public License Version 2 or later](http://www.gnu.org/licenses/gpl.html). For full details about the license, please check the `LICENSE.md` file or [https://ckeditor.com/legal/ckeditor-oss-license](https://ckeditor.com/legal/ckeditor-oss-license).
package/dist/index.js CHANGED
@@ -57,22 +57,31 @@ const tokenCharset = 'abcdefghijklmnopqrstuvwxyz0123456789';
57
57
  return result;
58
58
  }
59
59
 
60
- class CKFinderUploadAdapter extends Plugin {
60
+ /**
61
+ * A plugin that enables file uploads in CKEditor 5 using the CKFinder server–side connector.
62
+ *
63
+ * See the {@glink features/file-management/ckfinder "CKFinder file manager integration"} guide to learn how to configure
64
+ * and use this feature as well as find out more about the full integration with the file manager
65
+ * provided by the {@link module:ckfinder/ckfinder~CKFinder} plugin.
66
+ *
67
+ * Check out the {@glink features/images/image-upload/image-upload comprehensive "Image upload overview"} guide to learn
68
+ * about other ways to upload images into CKEditor 5.
69
+ */ class CKFinderUploadAdapter extends Plugin {
61
70
  /**
62
- * @inheritDoc
63
- */ static get requires() {
71
+ * @inheritDoc
72
+ */ static get requires() {
64
73
  return [
65
74
  FileRepository
66
75
  ];
67
76
  }
68
77
  /**
69
- * @inheritDoc
70
- */ static get pluginName() {
78
+ * @inheritDoc
79
+ */ static get pluginName() {
71
80
  return 'CKFinderUploadAdapter';
72
81
  }
73
82
  /**
74
- * @inheritDoc
75
- */ init() {
83
+ * @inheritDoc
84
+ */ init() {
76
85
  const url = this.editor.config.get('ckfinder.uploadUrl');
77
86
  if (!url) {
78
87
  return;
@@ -85,10 +94,27 @@ class CKFinderUploadAdapter extends Plugin {
85
94
  * Upload adapter for CKFinder.
86
95
  */ class UploadAdapter {
87
96
  /**
88
- * Starts the upload process.
89
- *
90
- * @see module:upload/filerepository~UploadAdapter#upload
91
- */ upload() {
97
+ * FileLoader instance to use during the upload.
98
+ */ loader;
99
+ /**
100
+ * Upload URL.
101
+ */ url;
102
+ /**
103
+ * Locale translation method.
104
+ */ t;
105
+ xhr;
106
+ /**
107
+ * Creates a new adapter instance.
108
+ */ constructor(loader, url, t){
109
+ this.loader = loader;
110
+ this.url = url;
111
+ this.t = t;
112
+ }
113
+ /**
114
+ * Starts the upload process.
115
+ *
116
+ * @see module:upload/filerepository~UploadAdapter#upload
117
+ */ upload() {
92
118
  return this.loader.file.then((file)=>{
93
119
  return new Promise((resolve, reject)=>{
94
120
  this._initRequest();
@@ -98,28 +124,28 @@ class CKFinderUploadAdapter extends Plugin {
98
124
  });
99
125
  }
100
126
  /**
101
- * Aborts the upload process.
102
- *
103
- * @see module:upload/filerepository~UploadAdapter#abort
104
- */ abort() {
127
+ * Aborts the upload process.
128
+ *
129
+ * @see module:upload/filerepository~UploadAdapter#abort
130
+ */ abort() {
105
131
  if (this.xhr) {
106
132
  this.xhr.abort();
107
133
  }
108
134
  }
109
135
  /**
110
- * Initializes the XMLHttpRequest object.
111
- */ _initRequest() {
136
+ * Initializes the XMLHttpRequest object.
137
+ */ _initRequest() {
112
138
  const xhr = this.xhr = new XMLHttpRequest();
113
139
  xhr.open('POST', this.url, true);
114
140
  xhr.responseType = 'json';
115
141
  }
116
142
  /**
117
- * Initializes XMLHttpRequest listeners.
118
- *
119
- * @param resolve Callback function to be called when the request is successful.
120
- * @param reject Callback function to be called when the request cannot be completed.
121
- * @param file File instance to be uploaded.
122
- */ _initListeners(resolve, reject, file) {
143
+ * Initializes XMLHttpRequest listeners.
144
+ *
145
+ * @param resolve Callback function to be called when the request is successful.
146
+ * @param reject Callback function to be called when the request cannot be completed.
147
+ * @param file File instance to be uploaded.
148
+ */ _initListeners(resolve, reject, file) {
123
149
  const xhr = this.xhr;
124
150
  const loader = this.loader;
125
151
  const t = this.t;
@@ -146,10 +172,10 @@ class CKFinderUploadAdapter extends Plugin {
146
172
  }
147
173
  }
148
174
  /**
149
- * Prepares the data and sends the request.
150
- *
151
- * @param file File instance to be uploaded.
152
- */ _sendRequest(file) {
175
+ * Prepares the data and sends the request.
176
+ *
177
+ * @param file File instance to be uploaded.
178
+ */ _sendRequest(file) {
153
179
  // Prepare form data.
154
180
  const data = new FormData();
155
181
  data.append('upload', file);
@@ -157,13 +183,6 @@ class CKFinderUploadAdapter extends Plugin {
157
183
  // Send request.
158
184
  this.xhr.send(data);
159
185
  }
160
- /**
161
- * Creates a new adapter instance.
162
- */ constructor(loader, url, t){
163
- this.loader = loader;
164
- this.url = url;
165
- this.t = t;
166
- }
167
186
  }
168
187
 
169
188
  export { CKFinderUploadAdapter };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["index.js","../src/utils.ts","../src/uploadadapter.ts"],"names":["TOKEN_COOKIE_NAME","TOKEN_LENGTH","tokenCharset","getCsrfToken","token","getCookie","length","generateToken","setCookie","name","toLowerCase","parts","document","cookie","split","part","pair","key","decodeURIComponent","trim","value","encodeURIComponent","result","randValues","Uint8Array","window","crypto","getRandomValues","j","character","charAt","Math","random","toUpperCase","CKFinderUploadAdapter","Plugin","requires","FileRepository","pluginName","init","url","editor","config","get","plugins","createUploadAdapter","loader","UploadAdapter","t","upload","file","then","Promise","resolve","reject","_initRequest","_initListeners","_sendRequest","abort","xhr","XMLHttpRequest","open","responseType","genericError","addEventListener","response","uploaded","error","message","default","evt","lengthComputable","uploadTotal","total","loaded","data","FormData","append","send","constructor"],"mappings":"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","file":"index.js.map","sourcesContent":["import { Plugin } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { FileRepository } from '@ckeditor/ckeditor5-upload/dist/index.js';\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */ /* globals window, document */ /**\n * @module adapter-ckfinder/utils\n */ const TOKEN_COOKIE_NAME = 'ckCsrfToken';\nconst TOKEN_LENGTH = 40;\nconst tokenCharset = 'abcdefghijklmnopqrstuvwxyz0123456789';\n/**\n * Returns the CSRF token value. The value is a hash stored in `document.cookie`\n * under the `ckCsrfToken` key. The CSRF token can be used to secure the communication\n * between the web browser and the CKFinder server.\n */ function getCsrfToken() {\n let token = getCookie(TOKEN_COOKIE_NAME);\n if (!token || token.length != TOKEN_LENGTH) {\n token = generateToken(TOKEN_LENGTH);\n setCookie(TOKEN_COOKIE_NAME, token);\n }\n return token;\n}\n/**\n * Returns the value of the cookie with a given name or `null` if the cookie is not found.\n */ function getCookie(name) {\n name = name.toLowerCase();\n const parts = document.cookie.split(';');\n for (const part of parts){\n const pair = part.split('=');\n const key = decodeURIComponent(pair[0].trim().toLowerCase());\n if (key === name) {\n return decodeURIComponent(pair[1]);\n }\n }\n return null;\n}\n/**\n * Sets the value of the cookie with a given name.\n */ function setCookie(name, value) {\n document.cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value) + ';path=/';\n}\n/**\n * Generates the CSRF token with the given length.\n */ function generateToken(length) {\n let result = '';\n const randValues = new Uint8Array(length);\n window.crypto.getRandomValues(randValues);\n for(let j = 0; j < randValues.length; j++){\n const character = tokenCharset.charAt(randValues[j] % tokenCharset.length);\n result += Math.random() > 0.5 ? character.toUpperCase() : character;\n }\n return result;\n}\n\nclass CKFinderUploadAdapter extends Plugin {\n /**\n * @inheritDoc\n */ static get requires() {\n return [\n FileRepository\n ];\n }\n /**\n * @inheritDoc\n */ static get pluginName() {\n return 'CKFinderUploadAdapter';\n }\n /**\n * @inheritDoc\n */ init() {\n const url = this.editor.config.get('ckfinder.uploadUrl');\n if (!url) {\n return;\n }\n // Register CKFinderAdapter\n this.editor.plugins.get(FileRepository).createUploadAdapter = (loader)=>new UploadAdapter(loader, url, this.editor.t);\n }\n}\n/**\n * Upload adapter for CKFinder.\n */ class UploadAdapter {\n /**\n * Starts the upload process.\n *\n * @see module:upload/filerepository~UploadAdapter#upload\n */ upload() {\n return this.loader.file.then((file)=>{\n return new Promise((resolve, reject)=>{\n this._initRequest();\n this._initListeners(resolve, reject, file);\n this._sendRequest(file);\n });\n });\n }\n /**\n * Aborts the upload process.\n *\n * @see module:upload/filerepository~UploadAdapter#abort\n */ abort() {\n if (this.xhr) {\n this.xhr.abort();\n }\n }\n /**\n * Initializes the XMLHttpRequest object.\n */ _initRequest() {\n const xhr = this.xhr = new XMLHttpRequest();\n xhr.open('POST', this.url, true);\n xhr.responseType = 'json';\n }\n /**\n * Initializes XMLHttpRequest listeners.\n *\n * @param resolve Callback function to be called when the request is successful.\n * @param reject Callback function to be called when the request cannot be completed.\n * @param file File instance to be uploaded.\n */ _initListeners(resolve, reject, file) {\n const xhr = this.xhr;\n const loader = this.loader;\n const t = this.t;\n const genericError = t('Cannot upload file:') + ` ${file.name}.`;\n xhr.addEventListener('error', ()=>reject(genericError));\n xhr.addEventListener('abort', ()=>reject());\n xhr.addEventListener('load', ()=>{\n const response = xhr.response;\n if (!response || !response.uploaded) {\n return reject(response && response.error && response.error.message ? response.error.message : genericError);\n }\n resolve({\n default: response.url\n });\n });\n // Upload progress when it's supported.\n /* istanbul ignore else -- @preserve */ if (xhr.upload) {\n xhr.upload.addEventListener('progress', (evt)=>{\n if (evt.lengthComputable) {\n loader.uploadTotal = evt.total;\n loader.uploaded = evt.loaded;\n }\n });\n }\n }\n /**\n * Prepares the data and sends the request.\n *\n * @param file File instance to be uploaded.\n */ _sendRequest(file) {\n // Prepare form data.\n const data = new FormData();\n data.append('upload', file);\n data.append('ckCsrfToken', getCsrfToken());\n // Send request.\n this.xhr.send(data);\n }\n /**\n * Creates a new adapter instance.\n */ constructor(loader, url, t){\n this.loader = loader;\n this.url = url;\n this.t = t;\n }\n}\n\nexport { CKFinderUploadAdapter };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* globals window, document */\n\n/**\n * @module adapter-ckfinder/utils\n */\n\nconst TOKEN_COOKIE_NAME = 'ckCsrfToken';\nconst TOKEN_LENGTH = 40;\nconst tokenCharset = 'abcdefghijklmnopqrstuvwxyz0123456789';\n\n/**\n * Returns the CSRF token value. The value is a hash stored in `document.cookie`\n * under the `ckCsrfToken` key. The CSRF token can be used to secure the communication\n * between the web browser and the CKFinder server.\n */\nexport function getCsrfToken(): string {\n\tlet token = getCookie( TOKEN_COOKIE_NAME );\n\n\tif ( !token || token.length != TOKEN_LENGTH ) {\n\t\ttoken = generateToken( TOKEN_LENGTH );\n\t\tsetCookie( TOKEN_COOKIE_NAME, token );\n\t}\n\n\treturn token;\n}\n\n/**\n * Returns the value of the cookie with a given name or `null` if the cookie is not found.\n */\nexport function getCookie( name: string ): string | null {\n\tname = name.toLowerCase();\n\tconst parts = document.cookie.split( ';' );\n\n\tfor ( const part of parts ) {\n\t\tconst pair = part.split( '=' );\n\t\tconst key = decodeURIComponent( pair[ 0 ].trim().toLowerCase() );\n\n\t\tif ( key === name ) {\n\t\t\treturn decodeURIComponent( pair[ 1 ] );\n\t\t}\n\t}\n\n\treturn null;\n}\n\n/**\n * Sets the value of the cookie with a given name.\n */\nexport function setCookie( name: string, value: string ): void {\n\tdocument.cookie = encodeURIComponent( name ) + '=' + encodeURIComponent( value ) + ';path=/';\n}\n\n/**\n * Generates the CSRF token with the given length.\n */\nfunction generateToken( length: number ): string {\n\tlet result = '';\n\tconst randValues = new Uint8Array( length );\n\n\twindow.crypto.getRandomValues( randValues );\n\n\tfor ( let j = 0; j < randValues.length; j++ ) {\n\t\tconst character = tokenCharset.charAt( randValues[ j ] % tokenCharset.length );\n\t\tresult += Math.random() > 0.5 ? character.toUpperCase() : character;\n\t}\n\n\treturn result;\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* globals XMLHttpRequest, FormData */\n\n/**\n * @module adapter-ckfinder/uploadadapter\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport {\n\tFileRepository,\n\ttype UploadAdapter as UploadAdapterInterface,\n\ttype FileLoader,\n\ttype UploadResponse\n} from 'ckeditor5/src/upload.js';\nimport type { LocaleTranslate } from 'ckeditor5/src/utils.js';\n\nimport { getCsrfToken } from './utils.js';\n\n/**\n * A plugin that enables file uploads in CKEditor 5 using the CKFinder server–side connector.\n *\n * See the {@glink features/file-management/ckfinder \"CKFinder file manager integration\"} guide to learn how to configure\n * and use this feature as well as find out more about the full integration with the file manager\n * provided by the {@link module:ckfinder/ckfinder~CKFinder} plugin.\n *\n * Check out the {@glink features/images/image-upload/image-upload comprehensive \"Image upload overview\"} guide to learn\n * about other ways to upload images into CKEditor 5.\n */\nexport default class CKFinderUploadAdapter extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ FileRepository ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'CKFinderUploadAdapter' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst url = this.editor.config.get( 'ckfinder.uploadUrl' )! as string;\n\n\t\tif ( !url ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Register CKFinderAdapter\n\t\tthis.editor.plugins.get( FileRepository ).createUploadAdapter = loader => new UploadAdapter( loader, url, this.editor.t );\n\t}\n}\n\n/**\n * Upload adapter for CKFinder.\n */\nclass UploadAdapter implements UploadAdapterInterface {\n\t/**\n\t * FileLoader instance to use during the upload.\n\t */\n\tpublic loader: FileLoader;\n\n\t/**\n\t * Upload URL.\n\t */\n\tpublic url: string;\n\n\t/**\n\t * Locale translation method.\n\t */\n\tpublic t: LocaleTranslate;\n\n\tprivate xhr?: XMLHttpRequest;\n\n\t/**\n\t * Creates a new adapter instance.\n\t */\n\tconstructor( loader: FileLoader, url: string, t: LocaleTranslate ) {\n\t\tthis.loader = loader;\n\t\tthis.url = url;\n\t\tthis.t = t;\n\t}\n\n\t/**\n\t * Starts the upload process.\n\t *\n\t * @see module:upload/filerepository~UploadAdapter#upload\n\t */\n\tpublic upload() {\n\t\treturn this.loader.file.then( file => {\n\t\t\treturn new Promise<UploadResponse>( ( resolve, reject ) => {\n\t\t\t\tthis._initRequest();\n\t\t\t\tthis._initListeners( resolve, reject, file! );\n\t\t\t\tthis._sendRequest( file! );\n\t\t\t} );\n\t\t} );\n\t}\n\n\t/**\n\t * Aborts the upload process.\n\t *\n\t * @see module:upload/filerepository~UploadAdapter#abort\n\t */\n\tpublic abort() {\n\t\tif ( this.xhr ) {\n\t\t\tthis.xhr.abort();\n\t\t}\n\t}\n\n\t/**\n\t * Initializes the XMLHttpRequest object.\n\t */\n\tprivate _initRequest() {\n\t\tconst xhr = this.xhr = new XMLHttpRequest();\n\n\t\txhr.open( 'POST', this.url, true );\n\t\txhr.responseType = 'json';\n\t}\n\n\t/**\n\t * Initializes XMLHttpRequest listeners.\n\t *\n\t * @param resolve Callback function to be called when the request is successful.\n\t * @param reject Callback function to be called when the request cannot be completed.\n\t * @param file File instance to be uploaded.\n\t */\n\tprivate _initListeners(\n\t\tresolve: ( value: UploadResponse ) => void,\n\t\treject: ( reason?: unknown ) => void,\n\t\tfile: File\n\t) {\n\t\tconst xhr = this.xhr!;\n\t\tconst loader = this.loader;\n\t\tconst t = this.t;\n\t\tconst genericError = t( 'Cannot upload file:' ) + ` ${ file.name }.`;\n\n\t\txhr.addEventListener( 'error', () => reject( genericError ) );\n\t\txhr.addEventListener( 'abort', () => reject() );\n\t\txhr.addEventListener( 'load', () => {\n\t\t\tconst response = xhr.response;\n\n\t\t\tif ( !response || !response.uploaded ) {\n\t\t\t\treturn reject( response && response.error && response.error.message ? response.error.message : genericError );\n\t\t\t}\n\n\t\t\tresolve( {\n\t\t\t\tdefault: response.url\n\t\t\t} );\n\t\t} );\n\n\t\t// Upload progress when it's supported.\n\t\t/* istanbul ignore else -- @preserve */\n\t\tif ( xhr.upload ) {\n\t\t\txhr.upload.addEventListener( 'progress', evt => {\n\t\t\t\tif ( evt.lengthComputable ) {\n\t\t\t\t\tloader.uploadTotal = evt.total;\n\t\t\t\t\tloader.uploaded = evt.loaded;\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t}\n\n\t/**\n\t * Prepares the data and sends the request.\n\t *\n\t * @param file File instance to be uploaded.\n\t */\n\tprivate _sendRequest( file: File ) {\n\t\t// Prepare form data.\n\t\tconst data = new FormData();\n\t\tdata.append( 'upload', file );\n\t\tdata.append( 'ckCsrfToken', getCsrfToken() );\n\n\t\t// Send request.\n\t\tthis.xhr!.send( data );\n\t}\n}\n"]}
1
+ {"version":3,"sources":["index.js","../src/utils.ts","../src/uploadadapter.ts"],"names":["TOKEN_COOKIE_NAME","TOKEN_LENGTH","tokenCharset","getCsrfToken","token","getCookie","length","generateToken","setCookie","name","toLowerCase","parts","document","cookie","split","part","pair","key","decodeURIComponent","trim","value","encodeURIComponent","result","randValues","Uint8Array","window","crypto","getRandomValues","j","character","charAt","Math","random","toUpperCase","CKFinderUploadAdapter","Plugin","requires","FileRepository","pluginName","url","editor","config","get","plugins","createUploadAdapter","loader","UploadAdapter","t","xhr","constructor","file","then","Promise","resolve","reject","_initRequest","_initListeners","_sendRequest","abort","XMLHttpRequest","open","responseType","genericError","addEventListener","response","uploaded","error","message","default","upload","evt","lengthComputable","uploadTotal","total","loaded","data","FormData","append","send"],"mappings":"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","file":"index.js.map","sourcesContent":["import { Plugin } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { FileRepository } from '@ckeditor/ckeditor5-upload/dist/index.js';\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */ /* globals window, document */ /**\n * @module adapter-ckfinder/utils\n */ const TOKEN_COOKIE_NAME = 'ckCsrfToken';\nconst TOKEN_LENGTH = 40;\nconst tokenCharset = 'abcdefghijklmnopqrstuvwxyz0123456789';\n/**\n * Returns the CSRF token value. The value is a hash stored in `document.cookie`\n * under the `ckCsrfToken` key. The CSRF token can be used to secure the communication\n * between the web browser and the CKFinder server.\n */ function getCsrfToken() {\n let token = getCookie(TOKEN_COOKIE_NAME);\n if (!token || token.length != TOKEN_LENGTH) {\n token = generateToken(TOKEN_LENGTH);\n setCookie(TOKEN_COOKIE_NAME, token);\n }\n return token;\n}\n/**\n * Returns the value of the cookie with a given name or `null` if the cookie is not found.\n */ function getCookie(name) {\n name = name.toLowerCase();\n const parts = document.cookie.split(';');\n for (const part of parts){\n const pair = part.split('=');\n const key = decodeURIComponent(pair[0].trim().toLowerCase());\n if (key === name) {\n return decodeURIComponent(pair[1]);\n }\n }\n return null;\n}\n/**\n * Sets the value of the cookie with a given name.\n */ function setCookie(name, value) {\n document.cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value) + ';path=/';\n}\n/**\n * Generates the CSRF token with the given length.\n */ function generateToken(length) {\n let result = '';\n const randValues = new Uint8Array(length);\n window.crypto.getRandomValues(randValues);\n for(let j = 0; j < randValues.length; j++){\n const character = tokenCharset.charAt(randValues[j] % tokenCharset.length);\n result += Math.random() > 0.5 ? character.toUpperCase() : character;\n }\n return result;\n}\n\n/**\n * A plugin that enables file uploads in CKEditor 5 using the CKFinder server–side connector.\n *\n * See the {@glink features/file-management/ckfinder \"CKFinder file manager integration\"} guide to learn how to configure\n * and use this feature as well as find out more about the full integration with the file manager\n * provided by the {@link module:ckfinder/ckfinder~CKFinder} plugin.\n *\n * Check out the {@glink features/images/image-upload/image-upload comprehensive \"Image upload overview\"} guide to learn\n * about other ways to upload images into CKEditor 5.\n */ class CKFinderUploadAdapter extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n FileRepository\n ];\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'CKFinderUploadAdapter';\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const url = this.editor.config.get('ckfinder.uploadUrl');\n if (!url) {\n return;\n }\n // Register CKFinderAdapter\n this.editor.plugins.get(FileRepository).createUploadAdapter = (loader)=>new UploadAdapter(loader, url, this.editor.t);\n }\n}\n/**\n * Upload adapter for CKFinder.\n */ class UploadAdapter {\n /**\n\t * FileLoader instance to use during the upload.\n\t */ loader;\n /**\n\t * Upload URL.\n\t */ url;\n /**\n\t * Locale translation method.\n\t */ t;\n xhr;\n /**\n\t * Creates a new adapter instance.\n\t */ constructor(loader, url, t){\n this.loader = loader;\n this.url = url;\n this.t = t;\n }\n /**\n\t * Starts the upload process.\n\t *\n\t * @see module:upload/filerepository~UploadAdapter#upload\n\t */ upload() {\n return this.loader.file.then((file)=>{\n return new Promise((resolve, reject)=>{\n this._initRequest();\n this._initListeners(resolve, reject, file);\n this._sendRequest(file);\n });\n });\n }\n /**\n\t * Aborts the upload process.\n\t *\n\t * @see module:upload/filerepository~UploadAdapter#abort\n\t */ abort() {\n if (this.xhr) {\n this.xhr.abort();\n }\n }\n /**\n\t * Initializes the XMLHttpRequest object.\n\t */ _initRequest() {\n const xhr = this.xhr = new XMLHttpRequest();\n xhr.open('POST', this.url, true);\n xhr.responseType = 'json';\n }\n /**\n\t * Initializes XMLHttpRequest listeners.\n\t *\n\t * @param resolve Callback function to be called when the request is successful.\n\t * @param reject Callback function to be called when the request cannot be completed.\n\t * @param file File instance to be uploaded.\n\t */ _initListeners(resolve, reject, file) {\n const xhr = this.xhr;\n const loader = this.loader;\n const t = this.t;\n const genericError = t('Cannot upload file:') + ` ${file.name}.`;\n xhr.addEventListener('error', ()=>reject(genericError));\n xhr.addEventListener('abort', ()=>reject());\n xhr.addEventListener('load', ()=>{\n const response = xhr.response;\n if (!response || !response.uploaded) {\n return reject(response && response.error && response.error.message ? response.error.message : genericError);\n }\n resolve({\n default: response.url\n });\n });\n // Upload progress when it's supported.\n /* istanbul ignore else -- @preserve */ if (xhr.upload) {\n xhr.upload.addEventListener('progress', (evt)=>{\n if (evt.lengthComputable) {\n loader.uploadTotal = evt.total;\n loader.uploaded = evt.loaded;\n }\n });\n }\n }\n /**\n\t * Prepares the data and sends the request.\n\t *\n\t * @param file File instance to be uploaded.\n\t */ _sendRequest(file) {\n // Prepare form data.\n const data = new FormData();\n data.append('upload', file);\n data.append('ckCsrfToken', getCsrfToken());\n // Send request.\n this.xhr.send(data);\n }\n}\n\nexport { CKFinderUploadAdapter };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* globals window, document */\n\n/**\n * @module adapter-ckfinder/utils\n */\n\nconst TOKEN_COOKIE_NAME = 'ckCsrfToken';\nconst TOKEN_LENGTH = 40;\nconst tokenCharset = 'abcdefghijklmnopqrstuvwxyz0123456789';\n\n/**\n * Returns the CSRF token value. The value is a hash stored in `document.cookie`\n * under the `ckCsrfToken` key. The CSRF token can be used to secure the communication\n * between the web browser and the CKFinder server.\n */\nexport function getCsrfToken(): string {\n\tlet token = getCookie( TOKEN_COOKIE_NAME );\n\n\tif ( !token || token.length != TOKEN_LENGTH ) {\n\t\ttoken = generateToken( TOKEN_LENGTH );\n\t\tsetCookie( TOKEN_COOKIE_NAME, token );\n\t}\n\n\treturn token;\n}\n\n/**\n * Returns the value of the cookie with a given name or `null` if the cookie is not found.\n */\nexport function getCookie( name: string ): string | null {\n\tname = name.toLowerCase();\n\tconst parts = document.cookie.split( ';' );\n\n\tfor ( const part of parts ) {\n\t\tconst pair = part.split( '=' );\n\t\tconst key = decodeURIComponent( pair[ 0 ].trim().toLowerCase() );\n\n\t\tif ( key === name ) {\n\t\t\treturn decodeURIComponent( pair[ 1 ] );\n\t\t}\n\t}\n\n\treturn null;\n}\n\n/**\n * Sets the value of the cookie with a given name.\n */\nexport function setCookie( name: string, value: string ): void {\n\tdocument.cookie = encodeURIComponent( name ) + '=' + encodeURIComponent( value ) + ';path=/';\n}\n\n/**\n * Generates the CSRF token with the given length.\n */\nfunction generateToken( length: number ): string {\n\tlet result = '';\n\tconst randValues = new Uint8Array( length );\n\n\twindow.crypto.getRandomValues( randValues );\n\n\tfor ( let j = 0; j < randValues.length; j++ ) {\n\t\tconst character = tokenCharset.charAt( randValues[ j ] % tokenCharset.length );\n\t\tresult += Math.random() > 0.5 ? character.toUpperCase() : character;\n\t}\n\n\treturn result;\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* globals XMLHttpRequest, FormData */\n\n/**\n * @module adapter-ckfinder/uploadadapter\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport {\n\tFileRepository,\n\ttype UploadAdapter as UploadAdapterInterface,\n\ttype FileLoader,\n\ttype UploadResponse\n} from 'ckeditor5/src/upload.js';\nimport type { LocaleTranslate } from 'ckeditor5/src/utils.js';\n\nimport { getCsrfToken } from './utils.js';\n\n/**\n * A plugin that enables file uploads in CKEditor 5 using the CKFinder server–side connector.\n *\n * See the {@glink features/file-management/ckfinder \"CKFinder file manager integration\"} guide to learn how to configure\n * and use this feature as well as find out more about the full integration with the file manager\n * provided by the {@link module:ckfinder/ckfinder~CKFinder} plugin.\n *\n * Check out the {@glink features/images/image-upload/image-upload comprehensive \"Image upload overview\"} guide to learn\n * about other ways to upload images into CKEditor 5.\n */\nexport default class CKFinderUploadAdapter extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ FileRepository ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'CKFinderUploadAdapter' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst url = this.editor.config.get( 'ckfinder.uploadUrl' )! as string;\n\n\t\tif ( !url ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Register CKFinderAdapter\n\t\tthis.editor.plugins.get( FileRepository ).createUploadAdapter = loader => new UploadAdapter( loader, url, this.editor.t );\n\t}\n}\n\n/**\n * Upload adapter for CKFinder.\n */\nclass UploadAdapter implements UploadAdapterInterface {\n\t/**\n\t * FileLoader instance to use during the upload.\n\t */\n\tpublic loader: FileLoader;\n\n\t/**\n\t * Upload URL.\n\t */\n\tpublic url: string;\n\n\t/**\n\t * Locale translation method.\n\t */\n\tpublic t: LocaleTranslate;\n\n\tprivate xhr?: XMLHttpRequest;\n\n\t/**\n\t * Creates a new adapter instance.\n\t */\n\tconstructor( loader: FileLoader, url: string, t: LocaleTranslate ) {\n\t\tthis.loader = loader;\n\t\tthis.url = url;\n\t\tthis.t = t;\n\t}\n\n\t/**\n\t * Starts the upload process.\n\t *\n\t * @see module:upload/filerepository~UploadAdapter#upload\n\t */\n\tpublic upload() {\n\t\treturn this.loader.file.then( file => {\n\t\t\treturn new Promise<UploadResponse>( ( resolve, reject ) => {\n\t\t\t\tthis._initRequest();\n\t\t\t\tthis._initListeners( resolve, reject, file! );\n\t\t\t\tthis._sendRequest( file! );\n\t\t\t} );\n\t\t} );\n\t}\n\n\t/**\n\t * Aborts the upload process.\n\t *\n\t * @see module:upload/filerepository~UploadAdapter#abort\n\t */\n\tpublic abort() {\n\t\tif ( this.xhr ) {\n\t\t\tthis.xhr.abort();\n\t\t}\n\t}\n\n\t/**\n\t * Initializes the XMLHttpRequest object.\n\t */\n\tprivate _initRequest() {\n\t\tconst xhr = this.xhr = new XMLHttpRequest();\n\n\t\txhr.open( 'POST', this.url, true );\n\t\txhr.responseType = 'json';\n\t}\n\n\t/**\n\t * Initializes XMLHttpRequest listeners.\n\t *\n\t * @param resolve Callback function to be called when the request is successful.\n\t * @param reject Callback function to be called when the request cannot be completed.\n\t * @param file File instance to be uploaded.\n\t */\n\tprivate _initListeners(\n\t\tresolve: ( value: UploadResponse ) => void,\n\t\treject: ( reason?: unknown ) => void,\n\t\tfile: File\n\t) {\n\t\tconst xhr = this.xhr!;\n\t\tconst loader = this.loader;\n\t\tconst t = this.t;\n\t\tconst genericError = t( 'Cannot upload file:' ) + ` ${ file.name }.`;\n\n\t\txhr.addEventListener( 'error', () => reject( genericError ) );\n\t\txhr.addEventListener( 'abort', () => reject() );\n\t\txhr.addEventListener( 'load', () => {\n\t\t\tconst response = xhr.response;\n\n\t\t\tif ( !response || !response.uploaded ) {\n\t\t\t\treturn reject( response && response.error && response.error.message ? response.error.message : genericError );\n\t\t\t}\n\n\t\t\tresolve( {\n\t\t\t\tdefault: response.url\n\t\t\t} );\n\t\t} );\n\n\t\t// Upload progress when it's supported.\n\t\t/* istanbul ignore else -- @preserve */\n\t\tif ( xhr.upload ) {\n\t\t\txhr.upload.addEventListener( 'progress', evt => {\n\t\t\t\tif ( evt.lengthComputable ) {\n\t\t\t\t\tloader.uploadTotal = evt.total;\n\t\t\t\t\tloader.uploaded = evt.loaded;\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t}\n\n\t/**\n\t * Prepares the data and sends the request.\n\t *\n\t * @param file File instance to be uploaded.\n\t */\n\tprivate _sendRequest( file: File ) {\n\t\t// Prepare form data.\n\t\tconst data = new FormData();\n\t\tdata.append( 'upload', file );\n\t\tdata.append( 'ckCsrfToken', getCsrfToken() );\n\n\t\t// Send request.\n\t\tthis.xhr!.send( data );\n\t}\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckeditor/ckeditor5-adapter-ckfinder",
3
- "version": "41.4.1",
3
+ "version": "42.0.0-alpha.0",
4
4
  "description": "CKFinder adapter for CKEditor 5.",
5
5
  "keywords": [
6
6
  "ckeditor",
@@ -13,7 +13,7 @@
13
13
  "type": "module",
14
14
  "main": "src/index.js",
15
15
  "dependencies": {
16
- "ckeditor5": "41.4.1"
16
+ "ckeditor5": "42.0.0-alpha.0"
17
17
  },
18
18
  "author": "CKSource (http://cksource.com/)",
19
19
  "license": "GPL-2.0-or-later",