Skip to content

Latest commit

 

History

History
1239 lines (921 loc) · 81.3 KB

CHANGELOG.md

File metadata and controls

1239 lines (921 loc) · 81.3 KB

Changelog

2.3.18

Bug fix

  • Fixed the name of the namespace of the elements added when not found in a PROPFIND request/response 1b2b9cc

2.3.17

Documentation

  • Added some comments for some methods/functions 470c090
  • Added an example to display how to add logs 5eafa1a

Bug fix

  • Fixed the property name (changed from 'inline namespace' to 'attribute namespace') of not found properties in the response of PROPFIND which was causing errors in the parsing of the XML response f215bf7

2.3.16

Other

  • Now provide the stream in the data of the 'openReadStream' and 'openWriteStream' events c72def0

Tests

  • Added tests for security about regex be2190a
  • Exported the 'info.expected(...)' method in the v2 tests 983da9c

Bug fix

  • Fixed some security flaws about Regex d9c7194

2.3.15

Other

  • Removed a missed 'console.log(...)' c549111

Tests

  • Increased the timeout of the tests of the v2 from 6000 ms to 15000 ms b9684be

2.3.14

Other

  • Added a npm command for tslint 25b3dcc
  • Refactored some code 2dba204
  • Updated the code checking 75fcf43
  • Updated the code checking 70abf32
  • Trying to decrease cognitive complexity of 'standardCopy' of the standard methods d8a495f
  • Refactored similar methods of 'VirtualFileSystem' 612c91b
  • Excluded the 'examples' folder of lint 1d68ec3
  • Moved all v1 files into v1 folders 4a1a417
  • Added v1 to the files to ignore for BitHound fe39d58
  • Cleaned the code of Propfind 371228e
  • Upgraded the '.codeclimate.yml' file 07a84ce
  • Excluded v1 from CodeClimate 60a7e2d
  • Excluded v1 from tslint 0f06ed4
  • Updated the dependency version of @types/request and @types/node 3f26a18

Bug fix

  • Fixed the PROPPATCH method => returned LOCKED instead of NOT AUTHORIZED (authentication) 90acbe1
  • Fixed the OPTIONS result ('Allow' header) on the root element 2cec981
  • Fixed a lot of lint errors 7de911b
  • Fixed some tslint errors 8f54de5
  • Fixed compilation errors with request headers which can contain 'string[]' 1fcbbe2

2.3.13

Documentation

  • Updated the README to display the ExpressJS extension 0c9f4af

New features

  • Added extension for ExpressJS 9114666

2.3.12

Other

  • Added support for a new root path in 'executeRequest' 876629a

Bug fix

  • Fixed the example of using the library in Express 4bf7bd3
  • Fixed the wrong example of use in ExpressJS 7777cb4

2.3.11

Documentation

  • Added comments / inline doc for the 'WebDAVServer' class's methods 0e36914

Tests

  • Added tests for the encoding of the URL / displayName in PROPFIND 45e9c56

2.3.10

Documentation

  • Transformed in README.md 'Javascript' into 'JavaScript' to match 'TypeScript' 5d1da18
  • Added Express compatibility explaination in the README b61c7d5

Other

  • Cleaned the code (mainly the imports) cad8d1d
  • Exported the function/method 'executeRequest' to execute requests without the server started fc22c3b

Bug fix

  • Fixed the parsing of the url when it is empty 205e28a

2.3.9

Bug fix

  • Removed the encoding of the 'displayname' tag b151337

2.3.8

Bug fix

  • Fixed the URL encoding on all 'href', 'location' and 'displayname' tags in the XML responses 5d48f22

2.3.7

Bug fix

  • Fixed the special character problem with a more generic solution 6d54bd0

2.3.6

Bug fix

  • Fixed spaces not being encoded 55261d5

2.3.5

Other

  • Removed old/commented code from the Propfind.ts file 40e3792
  • Compiled the change made by @leak4mk0 8e43d93
  • Merge pull request #21 from leak4mk0/patch-1 5943f26

Bug fix

  • Fixed an issue where an error 'e' is ignored after readdir. 716cba6

2.3.4

Tests

  • Added a few more tests for the MOVE method on files da1c79a

Other

  • Modified the behaviour of the PROPFIND method when an error occurs in the child resources a91227b

Bug fix

  • Fixed the '_move' method in the 'PhysicalFileSystem' class 656d0f6

2.3.

Tests

  • Added tests for the new features of the 'addSubTree' method 0f2c1d9

Other

  • Updated the dependencies of the project 48e7287
  • Added the support of a string and a buffer as value in the 'addSubTree' method 3380374

2.3.2

Documentation

  • Fixed the wrong link to the example page in the 'README' file 91c28cd

2.3.1

Bug fix

  • Modified the 'VirtualFileSystemResource' class to test the type of the constructor argument based on it's properties instead of it's constructor 2f012cd

2.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

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

Bug fix

  • Fixed custom properties' attributes removing the property namespace (xmlns) 70c5341

2.2.3

Bug fix

  • Fixed the missing 'lock' argument in the callback of the 'refresh' method of the lock manager returned in the 'FileSystem' class 3dae2aa

2.2.2

Other

  • Removed forgotten 'console.log' 3277908

2.2.1

Other

  • Exported the 'IRange' interface of the 'Range' header parsing 961f1e7

Bug fix

  • Fixed the delete method in the 'PhysicalFileSystem' class da9abf0

2.2.0

New features

  • 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

Tests

  • Added more tests for the 'Range' header of the 'Get' method :
  • Added more server ports to the tests of the v2 :

Other

  • Exported the 'Range' header parser to be usable in the 'GET' and 'HEAD' methods a2aabce

2.1.0

New features

  • Added server wide events 6786998
  • Added file system wide events 9a5688c

Tests

  • Added tests for the events f8d8969
  • Added tests for the ranged GET 647a8c3

Bug fix

2.0.19

Changes

  • Added headers to allow cross domain access to the server 654886c

Bug fix

  • Fixed a bug on the mkcol method 4dcabe7

2.0.18

Changes

  • Removed the decoding in the 'Path' class ad5c8a6

Bug fix

  • Fixed the URL decoding in the 'Path' class to be able to work with fully encoded and partially encoded URL 5a743a9

2.0.17

Changes

  • Removed the URL encoding in the 'href' tags and in the 'displayname' tags 014820b

Other

Bug fix

  • 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

2.0.16

Bug fix

  • Fixed the 'HTTPDigestAuthentication' class of the v1 and v2 to work with the level 0 of the digest authentication 6247297

2.0.15

Bug fix

  • Fixed the 'LOCK' method which needed the 'owner' in the lock properties (which was made optional in the past) 21a4a94

2.0.14

Changes

  • Use 'xml-js-builder' npm package instead of built-in XML manager 15e4f2d

2.0.13

Bug fix

  • Fixed a bug saying that the callback is not a function when calling the 'readDir' method of a file system 57056d0

2.0.12

Bug fix

  • Fixed the standard copy/move methods to copy/move the source content of the resource ec0144e

2.0.11

Changes

  • 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

2.0.10

Changes

  • Modified the class name from '_VirtualFileSystemResource' into 'VirtualFileSystemResource' 8e8b425
  • Modified the class name from '_PhysicalFileSystemResource' into 'PhysicalFileSystemResource' a09fe35

Documentation

  • Added a 2nd example of creating a custom method for the server d191897
  • Added a README to the examples folder 5efdead

Other

Bug fix

  • Fixed the HEAD method crashing when the size of a resource is undefined de276ff

2.0.9

Bug fix

  • Fixed the constructor by copy of the 'LocalPropertyManager' class and the 'LocalLockManager' class a5fb4c0

2.0.8

Bug fix

  • Fixed the persistence (untriggered close event on saving) 7e7f86d

2.0.7

Changes

  • Removed the initial GZip/GUnZip of the persistence => now it is a default behaviour ac1fd34
  • Modified the 'IAutoSave' interface to fit cases ac1fd34

Documentation

  • 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

Bug fix

  • Fixed the 'create' method of the 'FileSystem' class which was not creating more than 1 intermediate 4b1cb25

2.0.6

Changes

  • Modified the LOCK method to make the owner tag optional 7a34231

Bug fix

  • 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

2.0.5

New features

  • 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

Tests

  • Upgraded the tests for the persistence to fail if the an error occurs while saving 7f7a3cd

Bug fix

  • Removed a bad privilege check in the 'listDeepLocks' method of the 'FileSystem' class 2023611

2.0.4

New features

  • 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

Documentation

  • 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

Bug fix

  • Fixed the 'isLocked' method of the 'FileSystem' class to skip privilege checking f201b61
  • Fixed the 'SimplePathPrivilegeManager' class 25a9529

2.0.3

Changes

  • 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

2.0.2

Bug fix

  • Fixed the MOVE method 592d2bc
  • Fixed the 'autoLoad' method to not crash when the 'autoSave' option is missing a03cc96

2.0.1

Documentation

  • Fixed wrong place of the deprecated comment b6ed379

2.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
  • Added the 'ftp' package in the dependencies 3f6c274
  • Updated the .gitignore to ignore the transcripted code folder in the tests e83b463

Bug fix

  • Fixed the 'VirtualFileSystem' unserialization d43f5c9
  • Fixed the urls in PROPFIND, PROPPATCH and LOCK responses not being encoded 7bc8928
  • Added encoding for the url in the PROPPATCH and PROPFIND responses [v1] 30d5bcc
  • Fixed the 'SimplePathPrivilegeManager' implementation 489cf28
  • Fixed the 'HTTPDigestAuthentication' implementation 008af5c
  • Changed the default namespace from 'DAV:' to nothing, allowing to keep out-of-namespace tags in the properties 635ce3f
  • Fixed the 'VirtualFileSystem' 9d3b03e
  • Fixed the MOVE method 2c7a84c
  • Fixed the PROPFIND method 2c7a84c
  • Fixed the response status when the parent was missing 056df31
  • Fixed the 'starter' method of the OPTIONS method tests to be more robust if some more tests are added in the future 6fe546a
  • Fixed the '_delete' method in the 'VirtualFileSystem' class which was not deleting the children of deleted folders e529f71
  • Fixed an unserialization bug (returning undefined as the unserialized data) 467e91c
  • Fixed the serialization [v2] 14b6e4c

1.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

  • Fixed the FSManager uid in the FTP Gateway example 00aed8c
  • Fixed the 'moveTo' method of the 'PhysicalResource' 500eca5

1.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

  • Added an example for the gateway : FTP Gateway 45f1055
  • Added the Gitter link to the README dbbfb12

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

1.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

1.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

  • Fixed a bug when a resource added to the server had no fsManager (= volatile resource) 3c4cd72
  • Fixed a timeout error for the locks 6097857

1.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

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

Tests

  • Added tests for the JSON in the request body 84bd1c9
  • Added tests for the 'Overwrite' header for the 'MOVE' method 4be3904

Other

  • Added a new helper : 'StandardResource.standardMimeType(...)' 695a93a

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

1.7.4

Documentation

  • Changed the code type from 'typescript' to 'javascript' of the code sample in the README 34a19f1

Tests

  • Added tests for the streaming PUT ae0cf70

Bug fix

  • Changed the behavior of the server regarding the 'Content-Length' header in order to use the chunked version of a method everytime 0b675b0

1.7.3

New features

Changes

  • The 'mimeType' method of the implemented resources now return the content type instead of the mime-type only d1247af

Documentation

Other

  • Added a 'Workflow' class to replace similar codes in the project eb22a3d

Bug fix

  • Added the 'Content-Type' and the 'Content-Length' headers to the GET and HEAD methods 787ed4e

1.7.2

Tests

  • Removed support for the unstable version 4.0 version of node 418332a

Other

  • Added a way to add new XML elements at the head of the perent's children in the XML file utility 310b860

Bug fix

  • Now write 'DAV:href' at the head of the parent's children, fixing issues with 'cadaver', 'davfs2', etc... 9d9d512

1.7.1

Tests

  • Improved the tests for the 'source' and 'translate' headers b99024b

Bug fix

  • Fixed a bug with the 'translate' header ccdd7ed

1.7.0

New features

  • 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

  • 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

Tests

  • 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 '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

  • 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

1.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

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

Documentation

  • Added the 'strictMode' server option in the README 24dd02b

Tests

  • Removed useless test in the 'VirtualFSManager' class c4dc8db

Other

  • Removed displays (console.log) efa5449
  • Removed tests for compliance in the PROPFIND method 6298c65

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

1.5.5

Bug fix

1.5.4

Changes

  • Added a local cache for lock discovery in PROPFIND bc744b0

Tests

  • Removed debug display in tests 40fa39a
  • Fixed the way to get the lock-token from a LOCK response in the tests a745c95

Bug fix

  • Fixed recurrent size error in the Propfind method 67d7485
  • Fixed negative values in the lock-token generation 5ad148f

1.5.3

Changes

  • Now skip the tag 'owner' in the PROPFIND response when the lock has no owner content e3d81c8

Bug fix

  • Fixed a bug when serializing a VirtualStoredFile having a content length of 0 c81190d

1.5.2

Bug fix

  • Fixed unremoved resource from parent when calling 'delete' on a VirtualStoredFile a81a906

1.5.1

Changes

  • Added the content uid to the list of the arguments of the 'IVirtualStoredContentManagerMiddleware' methods 4f9cbf1

1.5.0

New features

  • 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

  • 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

Other

  • 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

  • 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

1.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

  • Fixed content un/serialization for virtual files 0a41414
  • Fixed XML error with the 'parse' function d96ea6d

1.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

  • Added the HTTPError class c60f5dd
  • Added the 'ExpectedAFileResourceType' standard error c60f5dd

Bug fix

  • Fixed the error with the type Int8Array with the GET method 7e942c2

1.3.1

New features

  • Implemented the callback on the start method 880dd8a
  • Implemented the server option 'hostname' 0ab2be2
  • Implemented DAV:lockdiscovery in PROPFIND 9009ad1

Changes

  • Made the arguments of the start method optional 880dd8a
  • Added a callback to the start method to 'synchronize' with the server opening e3eb1e0

Documentation

  • Modified the sample to use the callback on the start method 4313cba
  • Added the 'hostname' option in the documentation ef4a3c0

Tests

  • Implemented the server start callback in the whole tests 609f855
  • Added more tests for the start method 516a7fb
  • Fixed the try-catch of the PROPFIND method in the tests 38630f5
  • Added tests for copying the properties (COPY method) 911029f
  • Added tests for moving the properties (MOVE method) 7236e50
  • Added tests for DAV:lockdiscovery 2b9cde8

Bug fix

  • Fixed callback error in the start method ca72e94

1.3.0

New features

  • Implemented the method 'addResourceTree' in the server class to make the resource tree creation easier bda6e6c
  • Implemented the 'If' header check in all methods where it makes sense fab8388
  • Added a refresh method to the Lock class e90274f

Changes

  • Added 'process.nextTick(...)' when possible, except in resources to keep them simple 17187bd

Documentation

  • Modified the sample to use the new way to create the resource tree (with 'addResourceTree') 0beebbe

Tests

  • Added tests for the 'addResourceTree' method 1bf0c47
  • Added the 'If' header test for the LOCK test c4d3ace
  • Added the tests for the Lock refresh c4d3ace
  • Added tests for the 'source' header 8c79901

Other

  • Added a parser for the 'If' header e4e2208

1.2.1

Documentation

  • Specified that the module is compatible from node v4.0.0 to latest bf4fd93

Tests

  • Test node v4.0 058106f
  • Do not support node v0.* d4be29c
  • Upgraded tests syntax for node version 0.* f5f6b5c
  • Reverted the node v0.* changes => not supporting v0.* anymore 099d40b
  • Test Travis on all versions of NodeJS 39d1211

Bug fix

  • Check if 'fs.constants.O_CREAT' exists for node v5.* and lower e23b5d7

1.2.0

New features

  • Added parents lock check 76f3340
  • Added 'source' header to read/write source of the files 842b37a
  • Added the 'canSource' privilege 842b37a
  • Implemented privilege check for most of the WebDAV methods e25fcbc

Changes

  • Upgraded the PUT method c1259de
  • Upgraded the LOCK method 838c51b
  • Changed the '401 Unauthorized' responses status for not allowed opertions to the '403 Forbidden' status e55460e

Documentation

  • Changed interface body into full interface declaration in the documentation bd3c6d7
  • Added a comment to describe 'canSource' in the documentation 7ff9fd9
  • Added the 'canSource' privilege to the documentation a72147f

Tests

  • Added a full range of tests for the UNLOCK method d2d5075
  • Upgraded the LOCK tests 838c51b
  • Upgraded the UNLOCK tests f4f1363
  • Added the 'date' header test 5668628

Other

  • Changed the 'override' word into 'overwrite' which makes more sense f3caaab
  • Removed useless comment 8b5e8c8
  • Converted 'new Error(...)' into the Error 'enum' b2c7bc2
  • Removed useless TODO c65658e

Bug fix

  • Added missing privilege check 3cfdbea

1.1.1

Other

Bug fix

  • Fixed a some bugs about the persistence 0d1c7c1

1.1.0

New features

  • Added persistence management (save and load the state of the server) b79a7ac

Changes

  • Implemented a RootFSManager for the RootResource 6ce240c
  • Added optional the resource name (null or undefined => empty string) e11644d

Documentation

  • Added the persistence section in the documentation db11649

Tests

  • Added some tests for the persistence b3474da

Other

1.0.2

Bug fix

1.0.1

Changes

Documentation

  • Added some documentation f431ca7
  • Fixed '<' by '<' in changelog b766363

Other

  • Cleaned the project 7245ee5
  • Used more restrictive imports in WebDAVServer.ts 327bd78
  • Added export files in main folders of the project for better scallability 66a61c4
  • Added the RFC privileges but not integrated 61b7865

1.0.0

New features

  • Implemented LOCK and UNLOCK methods a76f555
  • Implemented the User management 5e7325a
  • Implemented Basic and Digest HTTP authentication 5e7325a
  • Implemented the structure of the privilege management 5e7325a
  • Implemented some privilege/lock checkers 5e7325a
  • Can now convert multi ':' tag names into namespace when producing XML response 3fbfb17
  • Now check attributes to avoid namespace shortname collision when producing XML response 87f7a68

Changes

  • Upgraded the lock management 299e307
  • Added some errors as standard errors for better error management 8a051b2

Documentation

  • Updated the 'disclaimer' section 364152e
  • Fixed bad alt value for npm badge 3c54594

Tests

  • Updated the tests about XML responses af18fcd
  • Implemented tests for the Authentication 2f02c2b
  • Implemented tests for the LOCK and UNLOCK methods 43f934f

Bug fix

  • Fixed the '<ns1>:<ns2>:<name>' error leading to 'x:<ns2>:<name> xmlns:x='<ns1>' f3e15a4
  • Fixed namespace creation on '<namespace>:<name>' tag names 76d8bb0

0.5.2

Documentation

  • Added TypeScript types to package.json 766088b

Bug fix

0.5.1

Documentation

  • Added what will be included in the future release 6495a73

0.5.0

New features

  • Implemented the COPY method 2f45f4b

Documentation

  • Added the method COPY to the supported methods ccc310f

Tests

  • Cleaned tests with error-macro c167e14
  • Added tests for the COPY method 1629103

Other

  • Cleaned imports on the PhysicalResource class 5115994
  • Added getChildPath() method to FSPath class d1053ec

0.4.0

New features

Changes

  • Added a standard method for writing operation results (other than raw data) depending to the Accept header (XML or JSON) 952f217
  • Delegate response writing to the standard writing method in arg (MethodCallArgs) 24836fc

Tests

  • Added tests for JSON and XML responses for PROPPATCH and PROPFIND 3ab05de

Other

  • Added JSON string production from XML string 34dac98
  • Removed useless import from Options.ts 4c50a08
  • Modified muteNodeNS function name to mutateNodeNS 54b3bf6

0.3.0

New features

  • Implemented the MOVE method 2cb0430

Documentation

  • Added the MOVE method as supported methods b591429

Tests

  • Added tests for PROPPATCH for physical resources and virtual folder e4982dd
  • Added more PROPFIND tests a4c9e63
  • Added tests for the MOVE method 715fbbd
  • Cleaned the code of some tests 49ba519

Other

  • Removed deprecated dev dep. @types/xml-js d30d602
  • Forbid the use of console.* c18bcfb
  • Upgraded the rules for TS checking 0ffc065

Bug fix

  • Fixed divers bugs about PROPFIND 031794c
  • Fixed changes of the move() method on the RootResource class 27a4bc1

0.2.1

New features

Changes

Documentation

Tests

Other

Bug fix

0.2.0

New features

Changes

  • Changed HTTP status when the resource cannot be read d7c5192

Documentation

Tests

Other

  • Added request as dev dep. 08fe206

Bug fix

0.1.3

Bug fix

  • Removed support for POST method 98a75e5

New features

  • Added support for physical file/folder creation 4edab34

Documentation

Tests

  • Added tests for the physical folder 681caba
  • Standarized the multiple tests in a single test file 3cd3934
  • Added GET method test for physical resources d40bba8
  • Filtered test files by *.js bd3488b
  • Added exception display 592ee40

Other

  • Splitted files into one-class files for most of them a341dac

0.1.2

Bug fix

  • Fixed Get method for files with a content equals to null or undefined dc7ff27
  • Added content validation before sending GET response 269bcbf
  • Fixed lint
  • Fixed misspelling 62badc8

Changes

  • Centralized tslint config into tslint.json 2edbce9

Documentation

  • Added CHANGELOG.md to record the changelog e860486
  • Changed bitHound badge 6ad7c8d
  • Added bitHound badge 0dad206

Tests

  • Added more tests for the GET method 1e8b1fd

Other

0.1.1

New feature

  • Now can inherit fsManager from parent a844417
  • Implemented a part of the PhysicalFSManager 9cf0b9f
  • Exported WebDAVServerOptions 0369cbd

Changes

  • Removed the parent argument in resource constructors 093a244
  • Fixed FSManager.instance() call e475b08
  • Added Singleton pattern for managers 2ba4d2c
  • Made optional the 'parent' and 'fsManager' on constructor of resources -> parent is not affected on 'addChild()' call 9c9a3bc
  • Made fsManager argument optional in constructors aa02333

Documentation

Other

  • Added git repository to package.json 52abb55