Skip to content

v2.3.0

Latest
Compare
Choose a tag to compare
@AdrienCastex AdrienCastex released this 20 Aug 12:06
· 188 commits to master since this release

New features

  • Added the storage manager to allow to limit the storage 74094e3
  • Added a method in the server to give the listing of resources 18f0e3a
  • Added a 'autoSave' method to the server to start the auto-save without starting the HTTP server 481413d
  • Added 'before-*' file system events 8763396
  • Added support for the sequence/multipart, start and end types of the 'Range' header in the 'GET' method dd23bfc
  • Added 'Range' support in the 'HEAD' method to better fit the 'GET' response without body 6ebfd98
  • Added server wide events 6786998
  • Added file system wide events 9a5688c
  • Allow to override the privilege checking in the context to allow special operations (list all locks, for instance) b96fde6
  • Added the 'isLocked' method in the 'Resource' class and in the 'ContextualFileSystem' class 7e3a142
  • Modified the 'FileSystem' class and the serialization method to skip/allow non-serializable file system (skip the serialization of a fs if 'fs.serializer()' returns null/undefined) 43acf3f

Changes

  • Added headers to allow cross domain access to the server 654886c
  • Removed the decoding in the 'Path' class ad5c8a6
  • Removed the URL encoding in the 'href' tags and in the 'displayname' tags 014820b
  • Use 'xml-js-builder' npm package instead of built-in XML manager 15e4f2d
  • Modified the 'VirtualSerializer' class serialize 'resources' into a property of the serialized object instead of being the serialized object 2833836
  • Added the 'VirtualSerializerVersions' and 'PhysicalSerializerVersions' object to provide a list of versions of the serializers 2833836
  • Modified the class name from '_VirtualFileSystemResource' into 'VirtualFileSystemResource' 8e8b425
  • Modified the class name from '_PhysicalFileSystemResource' into 'PhysicalFileSystemResource' a09fe35
  • Removed the initial GZip/GUnZip of the persistence => now it is a default behaviour ac1fd34
  • Modified the 'IAutoSave' interface to fit cases ac1fd34
  • Modified the LOCK method to make the owner tag optional 7a34231
  • The default behaviour of the 'size' method in the 'FileSystem' class is now to return 'undefined' as value (= cannot tell the size) 4aed15f
  • Made the 'Content-Length' header optional in the response when no size can be obtained 0f1cdcd

Documentation

  • Added a 2nd example of creating a custom method for the server d191897
  • Added a README to the examples folder 5efdead
  • Added the use of the method in the 'Custom Method' example c9f34e3
  • Added a note to the README of the 'Custom Method' example e58fdaf
  • Added the 'Custom Method' example eadb2b8
  • Added comments to describe methods of the 'FileSystem' class and the 'FileSystemSerializer' interface for better code completion details e95de1a
  • Fixed the missing description of the 2nd example in the README 218d907
  • Added the '@webdav-server' npm packages information in the README d80b6ab
  • Fixed wrong place of the deprecated comment b6ed379

Tests

  • Added the ability to fail a streaming request in the tests (v2) 6eb0cd0
  • Added tests for the quotas d191d72
  • Added tests for the 'server.listResources(...)' method 0caed21
  • Added more tests for the 'Range' header of the 'Get' method :
  • Added more server ports to the tests of the v2 :
  • Added tests for the events f8d8969
  • Added tests for the ranged GET 647a8c3
  • Upgraded the tests for the persistence to fail if the an error occurs while saving 7f7a3cd

Other

  • Removed forgotten 'console.log' 3277908
  • Exported the 'IRange' interface of the 'Range' header parsing 961f1e7
  • Exported the 'Range' header parser to be usable in the 'GET' and 'HEAD' methods a2aabce
  • Excluded the folder experiment :
  • Cleaned the code :
  • Removed the 'no-conditional-assignment' lint 03105d9

Bug fix

  • Fixed custom properties' attributes removing the property namespace (xmlns) 70c5341
  • Fixed the missing 'lock' argument in the callback of the 'refresh' method of the lock manager returned in the 'FileSystem' class 3dae2aa
  • Fixed the delete method in the 'PhysicalFileSystem' class da9abf0
  • Fixed the GET Range 3b2d11f
  • Fixed a bug on the mkcol method 4dcabe7
  • Fixed the URL decoding in the 'Path' class to be able to work with fully encoded and partially encoded URL 5a743a9
  • Fixed wrong content length when the content contains special characters + Specified the encoding when writing to the response body (UTF-8) + Minimified the 'Content-Type' header in the 'writeBody' method of the 'RequestContext' class c12096a
  • Fixed the 'HTTPDigestAuthentication' class of the v1 and v2 to work with the level 0 of the digest authentication 6247297
  • Fixed the 'LOCK' method which needed the 'owner' in the lock properties (which was made optional in the past) 21a4a94
  • Fixed a bug saying that the callback is not a function when calling the 'readDir' method of a file system 57056d0
  • Fixed the standard copy/move methods to copy/move the source content of the resource ec0144e
  • Fixed the HEAD method crashing when the size of a resource is undefined de276ff
  • Fixed the constructor by copy of the 'LocalPropertyManager' class and the 'LocalLockManager' class a5fb4c0
  • Fixed the persistence (untriggered close event on saving) 7e7f86d
  • Fixed the 'create' method of the 'FileSystem' class which was not creating more than 1 intermediate 4b1cb25
  • Fixed the 'SimplePathPrivilegeManager' class to add sub-rights when calling the 'setRights' method aaeed0c
  • Fixed a bad privilege check in the 'FileSystem' class which asked write rights for reading available locks of a resource feb1fe0
  • Removed a bad privilege check in the 'listDeepLocks' method of the 'FileSystem' class 2023611
  • Fixed the 'isLocked' method of the 'FileSystem' class to skip privilege checking f201b61
  • Fixed the 'SimplePathPrivilegeManager' class 25a9529
  • Fixed the MOVE method 592d2bc
  • Fixed the 'autoLoad' method to not crash when the 'autoSave' option is missing a03cc96