Releases: OpenMarshal/npm-WebDAV-Server
Releases · OpenMarshal/npm-WebDAV-Server
v2.3.0
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](https://github.com/OpenMarshal/npm-WebDAV-Server...
v2.0.0
New features
- Version 2!
- Added the body written through the 'writeBody(...)' method as property of the 'RequestContext' class 266e900
- Added the attributes to the stored properties affected by PROPPATCH f8f6e00
- Added the reverse operation in the PROPPATCH method to fit the RFC (1 error => reverse changes) f14cde3
- Added an error in the 'Errors' bundle to say that the user has not enough privilege f488ecc
- Modified the 'Workflow' class to stop some executions when possible if the workflow ended e0e4232
- Implemented the 'SimplePathPrivilegeManager' class to manage privileges based on the path 6656596
- Implemented the PrivilegeManager [v2] 4c526b8
- Implemented the v2 6e58ac6
- The XML helper will now throw a more meaningful error message when the 'find(...)' method doesn't find the XMLElement, helping for debugging b49c35a
- Added the depth to the 'Lock' class fbeeb71
Changes
- Changed to check by reference by default when seeking for a file system e39fd71
- Added the user as argument in the privilege managers 8908c87
- Splitted the 'RequestContext' class into 'RequestContext', 'ExternalRequestContext' and 'HTTPRequestContext' faf8581
- Added a constructor to help unserialization in the 'LocalPropertyManager' class and the 'LocalLockManager' class0e78d10 Fixed the 'PhysicalFileSystem' class f8b3b46
- The user used by the 'createExternal(...)' static method of the 'RequestContext' class is now a super-admin user unreferenced by the user manager 50e1194
- Made the callback optional in the 'addSubTree' of the 'FileSystem' class d81a883
- Removed the event system from the server 882ca71
- Made the 'treeFilePath' server option of 'autoLoad' optional (default value is the 'treeFilePath' of 'autoSave') 386f04a
- Changed the type of the 'privilegeManager' server option from the old 'IPrivilegeManager' to the new 'PrivilegeManager' 386f04a
- Added the 'CreateExternalContext' method to the server class to ease the creation of external contexts 358e2ee
- Changed the type of the 'path' argument of the methods in 'FileSystem', 'ContextualFileSystem' and 'Resource' from 'Path' to 'Path | string' to be more easy to use 5c987c6
- Added the 'PrivilegeManagerInfo' interface 4d29192
- Added the 'destinationPath' to the 'RenameInfo' interface 4d29192
- Added the 'setCodeFromError' method and the 'defaultStatusCode' method to the 'RequestContext' class 8cf9a53
- Added an error class for unserialization error (when the serializer is not found) f488ecc
- Added some standard errors to the 'Errors' bundle 37afaaa
Documentation
- Upgraded the README 29086af
- Fixed the README example 77c44cd
- Fixed the example 'Web Resource' 75ff834
- Deprecated the v1 'WebDAVServer' class 2c609e7
- Added the 'webResource' example for the v2 d406d81
- Splitted the 'examples' folder into 'v1' and 'v2' :
Tests
- Fixed the tests to use the new 'RequestContext' implementation 6d41b1b
- Added a 'nbReservedSocketPerTest' in the test framework of the v2 72696ad
- Added tests for the PROPPATCH method [v2] 2be8b93
- Added test for the MOVE and COPY methods [v2] 0c5e114
- Added tests for the 'addSubTree' method of the server/file systems [v2] 5d5d3a2
- Added tests for the HEAD method 651f797
- Added tests for the MKCOL method d895732
- Added tests for the DELETE method 59e4201
- Upgraded the test framework of the v2 a9edc7e
- Added test for the persistence [v2] deb443b
- Added test for the LOCK and UNLOCK methods [v2] 37f17a0
- Fixed the tests for node.js:5 and node.js:4 b43ba41
- Modified the tests to use 'server.rootFileSystem()' method instead of the removed 'server.rootFileSystem' property 7c7874c
- Updated the test commands to compile the TypeScript, run the tests for the v2, then run the tests for the v2 3f6c274
- Added tests for the lock/unlock methods (v2) 70717b2
- Added tests for the OPTIONS method (v2) 6e5981a
- Added tests for the readDir/propfind on a directory (v2) 9ce23d1
- Added tests for the read/write get/put methods (v2) b801535
- Added tests for the server management (v2) 735e2ed
- Added TypeScript tests for better test developments f5b48a7
- Upgraded the test framework to be more clean and ease the making of new tests 74c381c
- Splitted the 'test' folder into 'v1' and 'v2' ac88f11
Other
- Cleaned the code 1a46154
- Updated the '@types/node' dev dependency 6491270
- Exported the 'PrivilegeManager' class and the 'SimplePathPrivilegeManager' class f258c99
- Added the 'Forbidden' standard error a209249
- Implemented the lock check 0b41e28
- Implemented the privilege checks 0b41e28
- Removed the FTP packages in the npm dependencies 3733df7
- Removed the old files from when the v2 was contained in one file 04762e9
- Removed the empty 'requirePrivilege' methods in the 'RequestContext' class 8cf9a53
- Moved the 'FTPFileSystem' class to the '@webdav-server/ftp' package 5c04125
- Exported the v1 within the v1 scope too 1cc4a03
- Exported the v2 90a6556
- Fixed Travis CI missing 'tsc' d4850b7
- Modified the 'tsconfig.json' file to make TypeScript compile with comments by default 6e7acd8
- Added the TS types for the 'request' package *[3f6c274](ht...
v1.9.1
New features
- Implemented the physical gateway and its FSManager d0aa8c8
- Implemented the static methods 'standardMoveWithoutCopy', 'standardMoveByCopy', 'standardFindChildByName', 'standardFindChildren' and 'standardAddToParent' in the 'StandardResource' class 2bb7a4b
Changes
- Compiled the TypeScript code with comments :
- Use the 'standardMoveByCopy' in 'standardMoveTo' static method as a default behavior 2bb7a4b
- Implemented a default method for 'moveTo' in the 'StandardResource' class 2bb7a4b
- Removed the 'moveTo' method in the 'VirtualResource' class to use the default implementation in 'StandardResource' 1a38d52
Documentation
- Added an example of a physical gateway 9123bf6
Tests
- Fixed a wrong test when a move is made by copy in the 'ResourceTester' class 1b5e3a1
- Fixed the 'movePhysical' test 48723ee
Other
- Fixed the package.json of the FTP gateway example d17ac14
Bug fix
v1.9.0
New features
- A 'FSManager.serialize(...)' returning 'undefined' or 'null' will lead to skip the serialization of the resource f5e06ae
- Added the 'finalSize' to the 'write(...)' method of resources when available :
- Added a 'MustIgnore' error which can make the server to skip some checks (mostly lock tests) :
- Added the ability to a resource to provide its own sub-tree based on the requested path (Gateway) :
Changes
- Cleaned the code d55ab4d
- The user is now optional for lock creation leading to skip the user checking when testing the user privileges :
- Added the 'XMLElement' methods 'findText() : string' and 'findTexts() : string[]' 164022b
- Now export the 'XML', 'IfParser' and 'Workflow' to allow easier resource/FSManager creation :
Documentation
Tests
- Fixed a broken test with the 'DAV:lockdiscovery' 9d5b3c9
Other
- Improved the XML 'name to namespace' feature 164022b
Bug fix
- Fixed the 'moveTo(...)' which was calling the the 'rename(...)' method even when the oldName and newName were equal 05fd08c
- Fixed ResourceTester error 083a5c0
- Modified the 'FSPath' to remove '//' sequences ('//' => '/') 0315270
- Fixed the example of the Custom Web Resource, which was not loading the 'webdav-server' module but the 'lib/index.js' of the root folder 00661a0
v1.8.2
New features
- Implemented an 'autoLoad' method in the server to help loading files saved by the 'autoSave' 5acdf13
- Added the static method 'loadFromPath(...)' in the 'PhysicalFolder' class to allow easy resource tree loading based on a url b8c5ca0
Documentation
- Used the 'autoLoad' method to load the content in the 'customWebResource' example f0365f2
- Added the 'loadPhysicalFolder' example 7ed6c7a
- Added the 'examples' folder in the list of links in the README 595bcf1
- Fixed the 'Custom Web Resource' example d9b3761
Other
- Upgraded the 'webdav-server' version needed in the example 'customWebResource' to 1.8.2 9af7d93
- Moved the 'autoSave' signature (in the server options) to an external interface fcb22cf
Bug fix
- Fixed the wrong signature of the 'autoSave.streamProvider' server option d80491a
v1.8.1
Documentation
- Added an example folder to provide real/full examples 14cdf33
- Added the example : Custom Web Resource 14cdf33
- Replaced test from the 'Project information' section in the README by a list of links be2c77a
Other
- Implemented the lock tests for the 'ResourceTester' cb90c9f
- Added a missing option for the 'ResourceTester' b007f28
- Fixed code format 40dba6b
- Removed useless exports from 'BeforeAfter.ts' file be66fb5
Bug fix
v1.8.0
New features
- Added the ability to parse JSON in the request body cf0debb
- Added the 'Allow' header to all the methods and filter the allowed methods according to the existence of the requested resource and its 'ResourceType' 7db537e
- Added the server options 'serverName' and 'version' to display in the 'Server' HTTP header fd4158b
- Added the 'Server' header to the responses e015847
- Added a 'displayName' optional method in the 'IResource' interface c9812d6
- Added support to HTTPS 4781457
- Added resource events in the system 83bb59e
- Added an 'autoSave' mode to the server to embed a robust way to save the state of the server bd2f12f
- Implemented a 'SimplePathPrivilegeManager' to manage easily user privileges (pretty bare) b5b81f3
- Changed the response code/message (to 401 Unauthorized) to ask the client to authenticate the user 14e7c76
- Added the 'all' privilege in the 'BasicPrivilege' type 318e526
- Added support for the 'translate' header (alias of the 'source' header) 2d9627e
- Added support for ranged GET requests 5bee991
Changes
- Moved the 'Allow' response header from the 'OPTIONS' method to all the methods e015847
- Use the 'displayName' method when available as text for the 'DAV:displayname' XML element in the PROPFIND response body c9812d6
- Removed the 'setName' parameter of the 'StandardResource.standardMoveTo(...)' static method to use instead the 'IResource.rename(...)' method c3f8b6a
- Removed the unused 'isOnTheSameFSWith' and 'isSame' methods of the 'IResource' interface 8660bbf
- The 'mimeType' method of the implemented resources now return the content type instead of the mime-type only d1247af
- Use the 'HTTPDigestAuthentication' instance by default instead of a 'HTTPBasicAuthentication' instance in the server's options 0795df3
- Changed 'addUser' of the 'SimpleUserManager' class to return the created user 155ea74
- Added the 'Content-Length' header and the 'Accept-Ranges' header in the HEAD method 992620b
- Added the 'DAV:location' tag to the propfind response 3df40bb
Documentation
- Changed the code type from 'typescript' to 'javascript' of the code sample in the README 34a19f1
- Simplified the README.md 0bc3801
Tests
- Added tests for the JSON in the request body 84bd1c9
- Added tests for the 'Overwrite' header for the 'MOVE' method 4be3904
- Added tests for the streaming PUT ae0cf70
- Removed support for the unstable version 4.0 version of node 418332a
- Improved the tests for the 'source' and 'translate' headers b99024b
- Use a 'HTTPBasicAuthentication' as a default authentication system for tests dde8001
- Added tests for the server events 759befc
- Added tests for the 'translate' header 30ea0d3
Other
- Added a new helper : 'StandardResource.standardMimeType(...)' 695a93a
- Added a 'Workflow' class to replace similar codes in the project eb22a3d
- Added a way to add new XML elements at the head of the perent's children in the XML file utility 310b860
- Added a 'SimpleBasicPrivilege' type to represent the possibilities of the 'SimplePrivilegeManager' classes 218af11
- Added the 'MethodCallArgs' type to a function definition (for better code clarity) 2175459
- Added the export of the 'SimplePathPrivilegeManager' class b6548aa
- Added the 'autoSave' option eef40f0
- Removed duplicates in the code of the 'ResourceTester' class b254f51
- Changed the order of the imports to be more stable on future changes 0ad2594
- Removed useless imports/exports which could cause circular dependencies 4e14885
- Centralized the 'source' header check in the 'MethodCallArgs' class 163914f
Bug fix
- Fixed the '404' status always in the responses of the 'PROPRFIND' method even when empty f1243e7
- Fixed the overwrite behavior in the 'StandardResource.standardMoveTo' static method 8b1caad
- Changed the behavior of the server regarding the 'Content-Length' header in order to use the chunked version of a method everytime 0b675b0
- Added the 'Content-Type' and the 'Content-Length' headers to the GET and HEAD methods 787ed4e
- Now write 'DAV:href' at the head of the parent's children, fixing issues with 'cadaver', 'davfs2', etc... 9d9d512
- Fixed a bug with the 'translate' header ccdd7ed
- Changed the Unlock response status code/message when unauthorized (to 403 Forbidden) 65423c8
- Fixed bugs in the 'HTTPBasicAuthentication' and the 'HTTPDigestAuthentication' classes 4e8c78c
- Fixed PROPPATCH and PROPFIND xml parsing errors when the request body was not valid e7fed58
v1.6.0
New features
- Now PROPFIND can filter properties depending on the request body (according to the RFC) 7af0e36
- Added a 'strictMode' to let more flexibilities to the communications client/server
- Implemented the new chunked version of the PUT method 7f605b1
- Added the 'deallocate' method to the virtual stored resource management 7506c3c
- Added a middleware for the 'SimpleVirtualStoredContentManager' class a322b75
Changes
- Added the 'DAV' header with the values '1,2' => class 1 + 2 supported (RFC) 27abc4e
- Add a trailing '/' to the resource path of collections (folders) in the 'DAV:href' tag (response) 7af0e36
- Removed the 'DAV' in the OPTION method file to provide it to all responses 63aa8a3
- Added more compliance with the WebDAV RFC (body checking, errors returned, etc...) 46cbef7
- Added xmlns attribute for 'DAV:' presence in a tag name 3bc3f07
- Replaced the middleware 'stream.Writable' into a 'stream.Transform' for the VirtualStoredFile 36bc500
- Modified the HEAD method implementation to avoid the use of the 'read' method of the resources 25d120b
- Removed the un/serialization of the locks in the FSManagers 2786bea
- Now throw an Error when the 'SimpleVirtualStoredContentManager' instance is not initialized, helping for debugging c3eb727
- The member 'managerUID' can now be accessed from outside of the error class 'ManagerNotFound' 6378c48
- Added the content uid to the list of the arguments of the 'IVirtualStoredContentManagerMiddleware' methods 4f9cbf1
- Added a local cache for lock discovery in PROPFIND bc744b0
- Now skip the tag 'owner' in the PROPFIND response when the lock has no owner content e3d81c8
Documentation
- Added the 'strictMode' server option in the README 24dd02b
Tests
- Removed useless test in the 'VirtualFSManager' class c4dc8db
- Removed debug display in tests 40fa39a
- Fixed the way to get the lock-token from a LOCK response in the tests a745c95
Other
- Removed displays (console.log) efa5449
- Removed tests for compliance in the PROPFIND method 6298c65
- Splitted the 'WebDAVServer' class file into smaller files 1f1d13c
- Splitted the 'ResourceTester' class file into smaller files 8f8af70
- Added a dot (.) at the end of the text of each common error 1daac87
- Used more standard errors 155035c
Bug fix
- Fixed a potential '//' at the end of the path of a resource 27abc4e
- Fixed an XML bug leading to an infinite loop 3bc3f07
- Fixed the issue of not applying to the name of XML elements the default namespace aa793d5
- Added event inheritance in the 'VirtualStoredFile' class eaefedc
- Cleaned the 'lib' folder e2e054c
- Added the un/serialization of the property 'contentUid' for the 'VirtualStoredFile' class 62556f5
- Fixed CodeClimate issues (code formatting) 325f30f
- Fixed recurrent size error in the Propfind method 67d7485
- Fixed negative values in the lock-token generation 5ad148f
- Fixed unremoved resource from parent when calling 'delete' on a VirtualStoredFile a81a906
- Fixed a bug when serializing a VirtualStoredFile having a content length of 0 c81190d
- Added missing exports e8aa467
v1.4.0
New features
- Implemented a virtual stored resource, able to delegate its content to a content manager f3fff2b
- Implemented a resource tester to make the resource development easier and more stable 36414fc
Changes
- Now return an error when requesting the size or mime-type of a virtual or physical folder 12bdd45
- Added a UID for the IUser interface 6c2b0be
- Use the UID of the user instead of the reference to compare the users 6c2b0be
- Removed the 'canLock' and 'canRemoveLock' methods from the resources 3902d35
- Implemented 'stream.Readable' and 'stream.Writable' for the 'write' and 'read' methods of resources instead of using a 'Int8Array' :
Documentation
- Modified the sample in the README file to match the new 'write' method in the resources 9f1b0f0
Tests
- Added tests for the virtual stored resources using the resource tester cdd56d0
- Added ResourceTester tests for the virtual and physical resources aea18ee
- Adapted the tests to the 'stream.Readable' and the 'stream.Writable' addings 2d30e39
- Increased the timeout value for the tests 4f73875
- Modified the '*.content = ' into '.write(...) in the tests b81f383
Other
- Added the ResourceTester class to the resource exports 92903ff
- Standardized the 'moveTo' method of resources c6868fa
- Modified the 'moveTo' method of the virtual and physical resources to be more reliable 44b38fe
- Changed from 'dev-watch' to 'tsc' to compile 9f1f60c
- Added 'process.nextTick(...)' for the serialization helper cbaa8f6
Bug fix
v1.3.2
New features
- Added the ability to switch to the chunked version of a command (method) when possible 71c7073
- Added the server option 'canChunk' 6396a81
- Implemented the chunked version of the PUT method 5923925
Documentation
- Added the server option 'canChunk' in the documentation 470b15e
Tests
- Added the tests for the chunked packets 06b9c56
Other
Bug fix
- Fixed the error with the type Int8Array with the GET method 7e942c2