core-3nweb-client-lib 0.44.12 → 0.45.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.
Files changed (201) hide show
  1. package/build/core/asmail/msg/opener.js +1 -1
  2. package/build/core/asmail/msg/packer.js +1 -1
  3. package/build/core/index.d.ts +2 -2
  4. package/build/core/keyring/correspondent-keys.js +1 -1
  5. package/build/core/keyring/index.js +1 -1
  6. package/build/core/startup/sign-in.d.ts +1 -1
  7. package/build/core/startup/sign-up.d.ts +1 -1
  8. package/build/core/storage/index.d.ts +1 -1
  9. package/build/lib-client/key-derivation.d.ts +1 -1
  10. package/build/lib-client/xsp-fs/node-persistence.js +1 -1
  11. package/build/tests/caps-api/asmail/specs/events.d.ts +2 -0
  12. package/build/tests/caps-api/asmail/specs/events.js +63 -0
  13. package/build/tests/caps-api/asmail/specs/send-to-wrong-address.d.ts +2 -0
  14. package/build/tests/caps-api/asmail/specs/send-to-wrong-address.js +68 -0
  15. package/build/tests/caps-api/asmail/specs/send-with-attacment-from-storage.d.ts +2 -0
  16. package/build/tests/caps-api/asmail/specs/send-with-attacment-from-storage.js +259 -0
  17. package/build/tests/caps-api/asmail/specs/send-without-attachments.d.ts +2 -0
  18. package/build/tests/caps-api/asmail/specs/send-without-attachments.js +90 -0
  19. package/build/tests/caps-api/asmail/test-utils.d.ts +12 -0
  20. package/build/tests/caps-api/asmail/test-utils.js +60 -0
  21. package/build/tests/caps-api/asmail.js +86 -0
  22. package/build/tests/caps-api/file-sink-checks/different-cases.d.ts +2 -0
  23. package/build/tests/caps-api/file-sink-checks/different-cases.js +47 -0
  24. package/build/tests/caps-api/file-sink-checks/splice.d.ts +2 -0
  25. package/build/tests/caps-api/file-sink-checks/splice.js +122 -0
  26. package/build/tests/caps-api/file-sink-checks/truncate.d.ts +2 -0
  27. package/build/tests/caps-api/file-sink-checks/truncate.js +122 -0
  28. package/build/tests/caps-api/fs-checks/local-to-synced-linking/link.d.ts +2 -0
  29. package/build/tests/caps-api/fs-checks/local-to-synced-linking/link.js +82 -0
  30. package/build/tests/caps-api/fs-checks/local-to-synced-linking/reversed-linking.d.ts +2 -0
  31. package/build/tests/caps-api/fs-checks/local-to-synced-linking/reversed-linking.js +50 -0
  32. package/build/tests/caps-api/fs-checks/not-versioned/deleteFile.d.ts +2 -0
  33. package/build/tests/caps-api/fs-checks/not-versioned/deleteFile.js +73 -0
  34. package/build/tests/caps-api/fs-checks/not-versioned/deleteFolder.d.ts +2 -0
  35. package/build/tests/caps-api/fs-checks/not-versioned/deleteFolder.js +75 -0
  36. package/build/tests/caps-api/fs-checks/not-versioned/getByteSink.d.ts +2 -0
  37. package/build/tests/caps-api/fs-checks/not-versioned/getByteSink.js +96 -0
  38. package/build/tests/caps-api/fs-checks/not-versioned/getByteSource.d.ts +2 -0
  39. package/build/tests/caps-api/fs-checks/not-versioned/getByteSource.js +67 -0
  40. package/build/tests/caps-api/fs-checks/not-versioned/getXAttr.d.ts +2 -0
  41. package/build/tests/caps-api/fs-checks/not-versioned/getXAttr.js +77 -0
  42. package/build/tests/caps-api/fs-checks/not-versioned/link.d.ts +2 -0
  43. package/build/tests/caps-api/fs-checks/not-versioned/link.js +115 -0
  44. package/build/tests/caps-api/fs-checks/not-versioned/listFolder.d.ts +2 -0
  45. package/build/tests/caps-api/fs-checks/not-versioned/listFolder.js +129 -0
  46. package/build/tests/caps-api/fs-checks/not-versioned/listXAttrs.d.ts +2 -0
  47. package/build/tests/caps-api/fs-checks/not-versioned/listXAttrs.js +73 -0
  48. package/build/tests/caps-api/fs-checks/not-versioned/makeFolder.d.ts +2 -0
  49. package/build/tests/caps-api/fs-checks/not-versioned/makeFolder.js +95 -0
  50. package/build/tests/caps-api/fs-checks/not-versioned/move.d.ts +2 -0
  51. package/build/tests/caps-api/fs-checks/not-versioned/move.js +127 -0
  52. package/build/tests/caps-api/fs-checks/not-versioned/readBytes.d.ts +2 -0
  53. package/build/tests/caps-api/fs-checks/not-versioned/readBytes.js +80 -0
  54. package/build/tests/caps-api/fs-checks/not-versioned/readJSONFile.d.ts +2 -0
  55. package/build/tests/caps-api/fs-checks/not-versioned/readJSONFile.js +59 -0
  56. package/build/tests/caps-api/fs-checks/not-versioned/readLink.d.ts +2 -0
  57. package/build/tests/caps-api/fs-checks/not-versioned/readLink.js +39 -0
  58. package/build/tests/caps-api/fs-checks/not-versioned/readTxtFile.d.ts +2 -0
  59. package/build/tests/caps-api/fs-checks/not-versioned/readTxtFile.js +54 -0
  60. package/build/tests/caps-api/fs-checks/not-versioned/readonlyFile.d.ts +2 -0
  61. package/build/tests/caps-api/fs-checks/not-versioned/readonlyFile.js +55 -0
  62. package/build/tests/caps-api/fs-checks/not-versioned/readonlySubRoot.d.ts +2 -0
  63. package/build/tests/caps-api/fs-checks/not-versioned/readonlySubRoot.js +55 -0
  64. package/build/tests/caps-api/fs-checks/not-versioned/select.d.ts +2 -0
  65. package/build/tests/caps-api/fs-checks/not-versioned/select.js +119 -0
  66. package/build/tests/caps-api/fs-checks/not-versioned/stat.d.ts +2 -0
  67. package/build/tests/caps-api/fs-checks/not-versioned/stat.js +96 -0
  68. package/build/tests/caps-api/fs-checks/not-versioned/updateXAttrs.d.ts +2 -0
  69. package/build/tests/caps-api/fs-checks/not-versioned/updateXAttrs.js +126 -0
  70. package/build/tests/caps-api/fs-checks/not-versioned/writableFile.d.ts +2 -0
  71. package/build/tests/caps-api/fs-checks/not-versioned/writableFile.js +79 -0
  72. package/build/tests/caps-api/fs-checks/not-versioned/writableSubRoot.d.ts +2 -0
  73. package/build/tests/caps-api/fs-checks/not-versioned/writableSubRoot.js +90 -0
  74. package/build/tests/caps-api/fs-checks/not-versioned/writeBytes.d.ts +2 -0
  75. package/build/tests/caps-api/fs-checks/not-versioned/writeBytes.js +137 -0
  76. package/build/tests/caps-api/fs-checks/not-versioned/writeJSONFile.d.ts +2 -0
  77. package/build/tests/caps-api/fs-checks/not-versioned/writeJSONFile.js +101 -0
  78. package/build/tests/caps-api/fs-checks/not-versioned/writeTxtFile.d.ts +2 -0
  79. package/build/tests/caps-api/fs-checks/not-versioned/writeTxtFile.js +100 -0
  80. package/build/tests/caps-api/fs-checks/sync-on-one-dev/startUpload.d.ts +2 -0
  81. package/build/tests/caps-api/fs-checks/sync-on-one-dev/startUpload.js +187 -0
  82. package/build/tests/caps-api/fs-checks/sync-on-one-dev/stat.d.ts +2 -0
  83. package/build/tests/caps-api/fs-checks/sync-on-one-dev/stat.js +70 -0
  84. package/build/tests/caps-api/fs-checks/sync-on-one-dev/status.d.ts +2 -0
  85. package/build/tests/caps-api/fs-checks/sync-on-one-dev/status.js +53 -0
  86. package/build/tests/caps-api/fs-checks/sync-on-one-dev/upload.d.ts +2 -0
  87. package/build/tests/caps-api/fs-checks/sync-on-one-dev/upload.js +194 -0
  88. package/build/tests/caps-api/fs-checks/sync-with-two-devs/conflicts.d.ts +2 -0
  89. package/build/tests/caps-api/fs-checks/sync-with-two-devs/conflicts.js +396 -0
  90. package/build/tests/caps-api/fs-checks/sync-with-two-devs/update-propagation.d.ts +2 -0
  91. package/build/tests/caps-api/fs-checks/sync-with-two-devs/update-propagation.js +229 -0
  92. package/build/tests/caps-api/fs-checks/test-utils.d.ts +34 -0
  93. package/build/tests/caps-api/fs-checks/test-utils.js +95 -0
  94. package/build/tests/caps-api/fs-checks/versioned/archiveCurrent.d.ts +2 -0
  95. package/build/tests/caps-api/fs-checks/versioned/archiveCurrent.js +73 -0
  96. package/build/tests/caps-api/fs-checks/versioned/getByteSink.d.ts +2 -0
  97. package/build/tests/caps-api/fs-checks/versioned/getByteSink.js +122 -0
  98. package/build/tests/caps-api/fs-checks/versioned/getByteSource.d.ts +2 -0
  99. package/build/tests/caps-api/fs-checks/versioned/getByteSource.js +71 -0
  100. package/build/tests/caps-api/fs-checks/versioned/listFolder.d.ts +2 -0
  101. package/build/tests/caps-api/fs-checks/versioned/listFolder.js +109 -0
  102. package/build/tests/caps-api/fs-checks/versioned/listVersions.d.ts +2 -0
  103. package/build/tests/caps-api/fs-checks/versioned/listVersions.js +48 -0
  104. package/build/tests/caps-api/fs-checks/versioned/readBytes.d.ts +2 -0
  105. package/build/tests/caps-api/fs-checks/versioned/readBytes.js +90 -0
  106. package/build/tests/caps-api/fs-checks/versioned/readJSONFile.d.ts +2 -0
  107. package/build/tests/caps-api/fs-checks/versioned/readJSONFile.js +60 -0
  108. package/build/tests/caps-api/fs-checks/versioned/readTxtFile.d.ts +2 -0
  109. package/build/tests/caps-api/fs-checks/versioned/readTxtFile.js +56 -0
  110. package/build/tests/caps-api/fs-checks/versioned/stat.d.ts +2 -0
  111. package/build/tests/caps-api/fs-checks/versioned/stat.js +80 -0
  112. package/build/tests/caps-api/fs-checks/versioned/watchFile.d.ts +2 -0
  113. package/build/tests/caps-api/fs-checks/versioned/watchFile.js +64 -0
  114. package/build/tests/caps-api/fs-checks/versioned/writeBytes.d.ts +2 -0
  115. package/build/tests/caps-api/fs-checks/versioned/writeBytes.js +128 -0
  116. package/build/tests/caps-api/fs-checks/versioned/writeJSONFile.d.ts +2 -0
  117. package/build/tests/caps-api/fs-checks/versioned/writeJSONFile.js +111 -0
  118. package/build/tests/caps-api/fs-checks/versioned/writeTxtFile.d.ts +2 -0
  119. package/build/tests/caps-api/fs-checks/versioned/writeTxtFile.js +107 -0
  120. package/build/tests/caps-api/fs-checks/with-core-restarts/xattrs.d.ts +2 -0
  121. package/build/tests/caps-api/fs-checks/with-core-restarts/xattrs.js +50 -0
  122. package/build/tests/caps-api/keyrings.js +69 -0
  123. package/build/tests/caps-api/mailerid.d.ts +1 -0
  124. package/build/tests/caps-api/mailerid.js +59 -0
  125. package/build/tests/caps-api/startup/signin-empty-cache.d.ts +1 -0
  126. package/build/tests/caps-api/startup/signin-empty-cache.js +108 -0
  127. package/build/tests/caps-api/startup/signin-with-cache.d.ts +1 -0
  128. package/build/tests/caps-api/startup/signin-with-cache.js +83 -0
  129. package/build/tests/caps-api/startup/signup-with-token.d.ts +1 -0
  130. package/build/tests/caps-api/startup/signup-with-token.js +53 -0
  131. package/build/tests/caps-api/startup/signup.d.ts +1 -0
  132. package/build/tests/caps-api/startup/signup.js +86 -0
  133. package/build/tests/caps-api/storage.d.ts +1 -0
  134. package/build/tests/caps-api/storage.js +225 -0
  135. package/build/tests/computer.3nweb.core/id-manager.d.ts +1 -0
  136. package/build/tests/computer.3nweb.core/id-manager.js +78 -0
  137. package/build/tests/computer.3nweb.core/inbox/msg-indexing.d.ts +1 -0
  138. package/build/tests/computer.3nweb.core/inbox/msg-indexing.js +145 -0
  139. package/build/tests/computer.3nweb.core/keyrings.d.ts +1 -0
  140. package/build/tests/computer.3nweb.core/keyrings.js +64 -0
  141. package/build/tests/computer.3nweb.core/test-utils.d.ts +21 -0
  142. package/build/tests/computer.3nweb.core/test-utils.js +92 -0
  143. package/build/tests/jasmine.d.ts +1 -0
  144. package/build/tests/jasmine.js +45 -0
  145. package/build/tests/libs-for-tests/bytes-equal.d.ts +1 -0
  146. package/build/tests/libs-for-tests/bytes-equal.js +32 -0
  147. package/build/tests/libs-for-tests/caps-ipc-wrap.d.ts +11 -0
  148. package/build/tests/libs-for-tests/caps-ipc-wrap.js +55 -0
  149. package/build/tests/libs-for-tests/core-runner.d.ts +39 -0
  150. package/build/tests/libs-for-tests/core-runner.js +231 -0
  151. package/build/tests/libs-for-tests/jasmine-utils.d.ts +13 -0
  152. package/build/tests/libs-for-tests/jasmine-utils.js +110 -0
  153. package/build/tests/libs-for-tests/json-equal.d.ts +1 -0
  154. package/build/tests/libs-for-tests/json-equal.js +78 -0
  155. package/build/tests/libs-for-tests/services-runner.d.ts +18 -0
  156. package/build/tests/libs-for-tests/services-runner.js +64 -0
  157. package/build/tests/libs-for-tests/setups.d.ts +51 -0
  158. package/build/tests/libs-for-tests/setups.js +305 -0
  159. package/build/tests/libs-for-tests/spec-module.d.ts +16 -0
  160. package/build/tests/libs-for-tests/spec-module.js +92 -0
  161. package/build/tests/libs-for-tests/startup.d.ts +1 -0
  162. package/build/tests/libs-for-tests/startup.js +29 -0
  163. package/build/tests/libs-for-tests/watching.d.ts +7 -0
  164. package/build/tests/libs-for-tests/watching.js +33 -0
  165. package/build/tests/units/canonical-address.d.ts +1 -0
  166. package/build/tests/units/canonical-address.js +41 -0
  167. package/build/tests/units/device-fs.d.ts +1 -0
  168. package/build/tests/units/device-fs.js +70 -0
  169. package/build/tests/units/folder-node-serialization.d.ts +1 -0
  170. package/build/tests/units/folder-node-serialization.js +74 -0
  171. package/build/tests/units/mid-sigs-NaCl-Ed.d.ts +1 -0
  172. package/build/tests/units/mid-sigs-NaCl-Ed.js +123 -0
  173. package/build/tests/units/number-line.d.ts +1 -0
  174. package/build/tests/units/number-line.js +63 -0
  175. package/build/tests/units/obj-folders.d.ts +1 -0
  176. package/build/tests/units/obj-folders.js +152 -0
  177. package/package.json +11 -3
  178. package/postinstall.js +1 -1
  179. package/build/cryptors.d.ts +0 -1
  180. package/build/cryptors.js +0 -34
  181. package/build/lib-client/cryptor/cryptor-in-worker.d.ts +0 -20
  182. package/build/lib-client/cryptor/cryptor-in-worker.js +0 -357
  183. package/build/lib-client/cryptor/cryptor-wasm.js +0 -1
  184. package/build/lib-client/cryptor/cryptor.d.ts +0 -30
  185. package/build/lib-client/cryptor/cryptor.js +0 -44
  186. package/build/lib-client/cryptor/cryptor.wasm +0 -0
  187. package/build/lib-client/cryptor/in-proc-js.d.ts +0 -2
  188. package/build/lib-client/cryptor/in-proc-js.js +0 -57
  189. package/build/lib-client/cryptor/in-proc-wasm.d.ts +0 -2
  190. package/build/lib-client/cryptor/in-proc-wasm.js +0 -176
  191. package/build/lib-client/cryptor/serialization-for-wasm.d.ts +0 -35
  192. package/build/lib-client/cryptor/serialization-for-wasm.js +0 -57
  193. package/build/lib-client/cryptor/wasm-mp1-modules.d.ts +0 -5
  194. package/build/lib-client/cryptor/wasm-mp1-modules.js +0 -78
  195. package/build/lib-client/cryptor/worker-js.js +0 -131
  196. package/build/lib-client/cryptor/worker-wasm.js +0 -37
  197. package/build/protos/cryptor.proto.js +0 -1804
  198. /package/build/lib-client/{cryptor/cryptor-work-labels.d.ts → cryptor-work-labels.d.ts} +0 -0
  199. /package/build/lib-client/{cryptor/cryptor-work-labels.js → cryptor-work-labels.js} +0 -0
  200. /package/build/{lib-client/cryptor/worker-js.d.ts → tests/caps-api/asmail.d.ts} +0 -0
  201. /package/build/{lib-client/cryptor/worker-wasm.d.ts → tests/caps-api/keyrings.d.ts} +0 -0
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ /*
3
+ Copyright (C) 2016, 2018, 2020 3NSoft Inc.
4
+
5
+ This program is free software: you can redistribute it and/or modify it under
6
+ the terms of the GNU General Public License as published by the Free Software
7
+ Foundation, either version 3 of the License, or (at your option) any later
8
+ version.
9
+
10
+ This program is distributed in the hope that it will be useful, but
11
+ WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13
+ See the GNU General Public License for more details.
14
+
15
+ You should have received a copy of the GNU General Public License along with
16
+ this program. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.specs = void 0;
20
+ exports.specs = {
21
+ description: '.makeFolder',
22
+ its: []
23
+ };
24
+ let it = { expectation: 'creates in existing parent' };
25
+ it.func = async function (s) {
26
+ const { testFS } = s;
27
+ let fName = 'folder';
28
+ expect(await testFS.checkFolderPresence(fName)).toBe(false);
29
+ await testFS.makeFolder(fName);
30
+ expect(await testFS.checkFolderPresence(fName)).toBe(true);
31
+ };
32
+ exports.specs.its.push(it);
33
+ it = {
34
+ expectation: 'is a no-op, when folder exists, and a call is not exclusive'
35
+ };
36
+ it.func = async function (s) {
37
+ const { testFS } = s;
38
+ for (let fName of ['folder2', 'parent2/folder2']) {
39
+ expect(await testFS.checkFolderPresence(fName)).toBe(false);
40
+ await testFS.makeFolder(fName);
41
+ expect(await testFS.checkFolderPresence(fName)).toBe(true);
42
+ await testFS.makeFolder(fName)
43
+ .catch(() => {
44
+ fail('non exclusive creation should not throw');
45
+ });
46
+ expect(await testFS.checkFolderPresence(fName)).toBe(true);
47
+ }
48
+ };
49
+ exports.specs.its.push(it);
50
+ it = { expectation: 'exclusive creation fails if folder exists' };
51
+ it.func = async function (s) {
52
+ const { testFS } = s;
53
+ for (let fName of ['folder3', 'parent3/folder3']) {
54
+ expect(await testFS.checkFolderPresence(fName)).toBe(false);
55
+ await testFS.makeFolder(fName);
56
+ expect(await testFS.checkFolderPresence(fName)).toBe(true);
57
+ await testFS.makeFolder(fName, true)
58
+ .then(() => {
59
+ fail('Exclusive creation of folder fails to throw.');
60
+ }, (e) => {
61
+ if (!e.alreadyExists) {
62
+ fail('incorrect exception');
63
+ }
64
+ });
65
+ }
66
+ };
67
+ exports.specs.its.push(it);
68
+ it = { expectation: 'creates parent folder(s) on the way' };
69
+ it.func = async function (s) {
70
+ const { testFS } = s;
71
+ let fName = 'folder';
72
+ let grParent = 'grand-parent';
73
+ let parent2 = 'grand-parent/parent2';
74
+ let path = `${parent2}/${fName}`;
75
+ expect(await testFS.checkFolderPresence(grParent)).toBe(false);
76
+ expect(await testFS.checkFolderPresence(parent2)).toBe(false);
77
+ expect(await testFS.checkFolderPresence(path)).toBe(false);
78
+ await testFS.makeFolder(path);
79
+ expect(await testFS.checkFolderPresence(path)).toBe(true);
80
+ };
81
+ exports.specs.its.push(it);
82
+ it = { expectation: 'can handle concurrent creation' };
83
+ it.func = async function (s) {
84
+ const { testFS } = s;
85
+ let path = 'concurrent/a/b/c/d/e/f/g/h';
86
+ expect(await testFS.checkFolderPresence(path)).toBe(false);
87
+ let concurrentTasks = [];
88
+ for (let i = 0; i < 10; i += 1) {
89
+ concurrentTasks.push(testFS.makeFolder(path));
90
+ }
91
+ await Promise.all(concurrentTasks);
92
+ expect(await testFS.checkFolderPresence(path)).toBe(true);
93
+ };
94
+ exports.specs.its.push(it);
95
+ Object.freeze(exports);
@@ -0,0 +1,2 @@
1
+ import { SpecDescribe } from '../../../libs-for-tests/spec-module';
2
+ export declare const specs: SpecDescribe;
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ /*
3
+ Copyright (C) 2016, 2018, 2020, 2025 3NSoft Inc.
4
+
5
+ This program is free software: you can redistribute it and/or modify it under
6
+ the terms of the GNU General Public License as published by the Free Software
7
+ Foundation, either version 3 of the License, or (at your option) any later
8
+ version.
9
+
10
+ This program is distributed in the hope that it will be useful, but
11
+ WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13
+ See the GNU General Public License for more details.
14
+
15
+ You should have received a copy of the GNU General Public License along with
16
+ this program. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.specs = void 0;
20
+ exports.specs = {
21
+ description: '.move',
22
+ its: []
23
+ };
24
+ let it = { expectation: 'cannot move non-existing element' };
25
+ it.func = async function (s) {
26
+ const { testFS } = s;
27
+ for (let src of ['non/existing/thing', 'thing']) {
28
+ await testFS.move(src, 'thing2')
29
+ .then(() => {
30
+ fail('move should fail, when source path does not exist');
31
+ }, (exc) => {
32
+ expect(exc.notFound).toBe(true);
33
+ });
34
+ }
35
+ };
36
+ exports.specs.its.push(it);
37
+ it = { expectation: 'cannot move when destination path already exists' };
38
+ it.func = async function (s) {
39
+ const { testFS } = s;
40
+ let src = 'folder1/file';
41
+ let srcFileContent = '1st file';
42
+ await testFS.writeTxtFile(src, srcFileContent);
43
+ for (let dst of ['folder2/file2', 'folder1/file2']) {
44
+ await testFS.writeTxtFile(dst, '2nd file');
45
+ expect(await testFS.readTxtFile(dst)).not.toBe(srcFileContent);
46
+ await testFS.move(src, dst)
47
+ .then(() => {
48
+ fail('move should fail, when destination path already exists');
49
+ }, (exc) => {
50
+ expect(exc.alreadyExists).toBe(true);
51
+ });
52
+ expect(await testFS.readTxtFile(dst)).not.toBe(srcFileContent, 'existing destination path should stay intact');
53
+ }
54
+ };
55
+ exports.specs.its.push(it);
56
+ it = { expectation: 'moves element in the same folder' };
57
+ it.func = async function (s) {
58
+ const { testFS } = s;
59
+ // moving folder
60
+ let src = 'folder3/folder';
61
+ let dst = 'folder3/folder-moved';
62
+ await testFS.makeFolder(src);
63
+ expect(await testFS.checkFolderPresence(src)).toBe(true);
64
+ expect(await testFS.checkFolderPresence(dst)).toBe(false);
65
+ await testFS.move(src, dst);
66
+ expect(await testFS.checkFolderPresence(src)).toBe(false);
67
+ expect(await testFS.checkFolderPresence(dst)).toBe(true);
68
+ // moving file
69
+ src = 'folder3/file';
70
+ dst = 'folder3/file-moved';
71
+ await testFS.writeTxtFile(src, 'file to move');
72
+ expect(await testFS.checkFilePresence(src)).toBe(true);
73
+ expect(await testFS.checkFilePresence(dst)).toBe(false);
74
+ await testFS.move(src, dst);
75
+ expect(await testFS.checkFilePresence(src)).toBe(false);
76
+ expect(await testFS.checkFilePresence(dst)).toBe(true);
77
+ };
78
+ exports.specs.its.push(it);
79
+ it = { expectation: 'moves element to a different folder' };
80
+ it.func = async function (s) {
81
+ const { testFS } = s;
82
+ // moving folder
83
+ let src = 'folder4/folder';
84
+ let dst = 'folder5/folder-moved';
85
+ await testFS.makeFolder(src);
86
+ expect(await testFS.checkFolderPresence(src)).toBe(true);
87
+ expect(await testFS.checkFolderPresence(dst)).toBe(false);
88
+ await testFS.move(src, dst);
89
+ expect(await testFS.checkFolderPresence(src)).toBe(false);
90
+ expect(await testFS.checkFolderPresence(dst)).toBe(true);
91
+ // moving file
92
+ src = 'folder4/file';
93
+ dst = 'folder5/file-moved';
94
+ await testFS.writeTxtFile(src, 'file to move');
95
+ expect(await testFS.checkFilePresence(src)).toBe(true);
96
+ expect(await testFS.checkFilePresence(dst)).toBe(false);
97
+ await testFS.move(src, dst);
98
+ expect(await testFS.checkFilePresence(src)).toBe(false);
99
+ expect(await testFS.checkFilePresence(dst)).toBe(true);
100
+ };
101
+ exports.specs.its.push(it);
102
+ it = { expectation: 'creates parent section(s) in destination path' };
103
+ it.func = async function (s) {
104
+ const { testFS } = s;
105
+ // moving folder
106
+ let src = 'folder6/folder';
107
+ let dstParent = 'folder6.dst/sub-folder';
108
+ let dst = `${dstParent}/folder-moved`;
109
+ await testFS.makeFolder(src);
110
+ expect(await testFS.checkFolderPresence(src)).toBe(true);
111
+ expect(await testFS.checkFolderPresence(dstParent)).toBe(false);
112
+ await testFS.move(src, dst);
113
+ expect(await testFS.checkFolderPresence(src)).toBe(false);
114
+ expect(await testFS.checkFolderPresence(dst)).toBe(true);
115
+ // moving file
116
+ src = 'folder6/file';
117
+ dstParent = 'folder6.dst-2/sub-folder-2';
118
+ dst = `${dstParent}/file-moved`;
119
+ await testFS.writeTxtFile(src, 'file to move');
120
+ expect(await testFS.checkFilePresence(src)).toBe(true);
121
+ expect(await testFS.checkFolderPresence(dstParent)).toBe(false);
122
+ await testFS.move(src, dst);
123
+ expect(await testFS.checkFilePresence(src)).toBe(false);
124
+ expect(await testFS.checkFilePresence(dst)).toBe(true);
125
+ };
126
+ exports.specs.its.push(it);
127
+ Object.freeze(exports);
@@ -0,0 +1,2 @@
1
+ import { SpecDescribe } from '../../../libs-for-tests/spec-module';
2
+ export declare const specs: SpecDescribe;
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ /*
3
+ Copyright (C) 2016, 2018, 2020 3NSoft Inc.
4
+
5
+ This program is free software: you can redistribute it and/or modify it under
6
+ the terms of the GNU General Public License as published by the Free Software
7
+ Foundation, either version 3 of the License, or (at your option) any later
8
+ version.
9
+
10
+ This program is distributed in the hope that it will be useful, but
11
+ WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13
+ See the GNU General Public License for more details.
14
+
15
+ You should have received a copy of the GNU General Public License along with
16
+ this program. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.specs = void 0;
20
+ const random_node_1 = require("../../../../lib-common/random-node");
21
+ const bytes_equal_1 = require("../../../libs-for-tests/bytes-equal");
22
+ exports.specs = {
23
+ description: '.readBytes',
24
+ its: []
25
+ };
26
+ let it = { expectation: 'fails to read non-existent file' };
27
+ it.func = async function (s) {
28
+ const { testFS } = s;
29
+ let fName = 'unknown-file';
30
+ expect(await testFS.checkFilePresence(fName)).toBe(false);
31
+ await testFS.readBytes(fName)
32
+ .then(() => {
33
+ fail('reading bytes must fail, when file does not exist');
34
+ }, (err) => {
35
+ expect(err.notFound).toBe(true);
36
+ if (!err.notFound) {
37
+ throw err;
38
+ }
39
+ });
40
+ };
41
+ exports.specs.its.push(it);
42
+ it = { expectation: 'reads whole file' };
43
+ it.func = async function (s) {
44
+ const { testFS } = s;
45
+ let originalBytes = (0, random_node_1.bytesSync)(12 * 1024 + 3);
46
+ let fName = 'file1';
47
+ await testFS.writeBytes(fName, originalBytes);
48
+ let bytes = await testFS.readBytes(fName);
49
+ expect((0, bytes_equal_1.bytesEqual)(bytes, originalBytes)).withContext('file read should produce array with all bytes').toBe(true);
50
+ fName = 'file2';
51
+ await testFS.writeBytes(fName, new Uint8Array(0));
52
+ bytes = await testFS.readBytes(fName);
53
+ expect(bytes).withContext('reading empty file should produce undefined').toBeUndefined();
54
+ };
55
+ exports.specs.its.push(it);
56
+ it = { expectation: 'reads part of the file' };
57
+ it.func = async function (s) {
58
+ const { testFS } = s;
59
+ let fName = 'file3';
60
+ let originalBytes = (0, random_node_1.bytesSync)(12 * 1024 + 333);
61
+ await testFS.writeBytes(fName, originalBytes);
62
+ let bytes = await testFS.readBytes(fName, 12, 3456);
63
+ expect((0, bytes_equal_1.bytesEqual)(bytes, originalBytes.subarray(12, 3456))).withContext('should read from a proper file interior').toBe(true);
64
+ bytes = await testFS.readBytes(fName, 12 * 1024);
65
+ expect((0, bytes_equal_1.bytesEqual)(bytes, originalBytes.subarray(12 * 1024))).withContext('read should start from interior and go to file\'s end').toBe(true);
66
+ bytes = await testFS.readBytes(fName, 12 * 1024, 1024 * 1024);
67
+ expect((0, bytes_equal_1.bytesEqual)(bytes, originalBytes.subarray(12 * 1024))).withContext('when end parameter is greater than file size, bytes up to files end must be read').toBe(true);
68
+ bytes = await testFS.readBytes(fName, undefined, 123);
69
+ expect((0, bytes_equal_1.bytesEqual)(bytes, originalBytes)).withContext('when start parameter is not given, end should also be ignored').toBe(true);
70
+ bytes = await testFS.readBytes(fName, 1024 * 1024, 1024 * 1024 + 4);
71
+ expect(bytes).withContext('when start is greater than file size, undefined must be returned').toBeUndefined();
72
+ bytes = await testFS.readBytes(fName, 1024 * 1024);
73
+ expect(bytes).withContext('when start is greater than file size, undefined must be returned').toBeUndefined();
74
+ await testFS.readBytes(fName, -1).then(() => fail('negative parameters should cause throwing up'), () => { });
75
+ await testFS.readBytes(fName, 1, -2).then(() => fail('negative parameters should cause throwing up'), () => { });
76
+ bytes = await testFS.readBytes(fName, 1234, 100);
77
+ expect(bytes).withContext('when end is smaller than start , undefined must be returned').toBeUndefined();
78
+ };
79
+ exports.specs.its.push(it);
80
+ Object.freeze(exports);
@@ -0,0 +1,2 @@
1
+ import { SpecDescribe } from '../../../libs-for-tests/spec-module';
2
+ export declare const specs: SpecDescribe;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ /*
3
+ Copyright (C) 2016, 2018, 2020 3NSoft Inc.
4
+
5
+ This program is free software: you can redistribute it and/or modify it under
6
+ the terms of the GNU General Public License as published by the Free Software
7
+ Foundation, either version 3 of the License, or (at your option) any later
8
+ version.
9
+
10
+ This program is distributed in the hope that it will be useful, but
11
+ WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13
+ See the GNU General Public License for more details.
14
+
15
+ You should have received a copy of the GNU General Public License along with
16
+ this program. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.specs = void 0;
20
+ const json_equal_1 = require("../../../libs-for-tests/json-equal");
21
+ exports.specs = {
22
+ description: '.readJSONFile',
23
+ its: []
24
+ };
25
+ let it = { expectation: 'fails to read non-existent file' };
26
+ it.func = async function (s) {
27
+ const { testFS } = s;
28
+ let fName = 'unknown-file';
29
+ expect(await testFS.checkFilePresence(fName)).toBe(false);
30
+ await testFS.readJSONFile(fName)
31
+ .then(() => {
32
+ fail('reading json must fail, when file does not exist');
33
+ }, (err) => {
34
+ expect(err.notFound).toBe(true);
35
+ if (!err.notFound) {
36
+ throw err;
37
+ }
38
+ });
39
+ };
40
+ exports.specs.its.push(it);
41
+ it = { expectation: 'reads json file' };
42
+ it.func = async function (s) {
43
+ const { testFS } = s;
44
+ let original = { a: 'foo', b: true, 'df-df': 23 };
45
+ let fName = 'file1';
46
+ await testFS.writeJSONFile(fName, original);
47
+ let json = await testFS.readJSONFile(fName);
48
+ expect((0, json_equal_1.deepEqual)(json, original)).withContext('file read should produce original json').toBe(true);
49
+ fName = 'file2';
50
+ await testFS.writeBytes(fName, new Uint8Array(0));
51
+ await testFS.readJSONFile(fName)
52
+ .then(() => {
53
+ fail('reading empty file should fail, as empty is not valid json');
54
+ }, (exc) => {
55
+ expect(exc).toBeTruthy();
56
+ });
57
+ };
58
+ exports.specs.its.push(it);
59
+ Object.freeze(exports);
@@ -0,0 +1,2 @@
1
+ import { SpecDescribe } from '../../../libs-for-tests/spec-module';
2
+ export declare const specs: SpecDescribe;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ /*
3
+ Copyright (C) 2016, 2018, 2020 3NSoft Inc.
4
+
5
+ This program is free software: you can redistribute it and/or modify it under
6
+ the terms of the GNU General Public License as published by the Free Software
7
+ Foundation, either version 3 of the License, or (at your option) any later
8
+ version.
9
+
10
+ This program is distributed in the hope that it will be useful, but
11
+ WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13
+ See the GNU General Public License for more details.
14
+
15
+ You should have received a copy of the GNU General Public License along with
16
+ this program. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.specs = void 0;
20
+ exports.specs = {
21
+ description: '.readLink',
22
+ its: []
23
+ };
24
+ let it = { expectation: 'cannot read non-existing link' };
25
+ it.func = async function (s) {
26
+ const { testFS } = s;
27
+ let fName = 'non-existing-link';
28
+ try {
29
+ await testFS.readLink(fName);
30
+ fail('reading non-existing link must fail');
31
+ }
32
+ catch (exc) {
33
+ expect(exc.notFound).toBe(true);
34
+ if (!exc.notFound) {
35
+ throw exc;
36
+ }
37
+ }
38
+ };
39
+ exports.specs.its.push(it);
@@ -0,0 +1,2 @@
1
+ import { SpecDescribe } from '../../../libs-for-tests/spec-module';
2
+ export declare const specs: SpecDescribe;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ /*
3
+ Copyright (C) 2016, 2018, 2020 3NSoft Inc.
4
+
5
+ This program is free software: you can redistribute it and/or modify it under
6
+ the terms of the GNU General Public License as published by the Free Software
7
+ Foundation, either version 3 of the License, or (at your option) any later
8
+ version.
9
+
10
+ This program is distributed in the hope that it will be useful, but
11
+ WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13
+ See the GNU General Public License for more details.
14
+
15
+ You should have received a copy of the GNU General Public License along with
16
+ this program. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.specs = void 0;
20
+ exports.specs = {
21
+ description: '.readTxtFile',
22
+ its: []
23
+ };
24
+ let it = { expectation: 'fails to read non-existent file' };
25
+ it.func = async function (s) {
26
+ const { testFS } = s;
27
+ let fName = 'unknown-file';
28
+ expect(await testFS.checkFilePresence(fName)).toBe(false);
29
+ await testFS.readTxtFile(fName)
30
+ .then(() => {
31
+ fail('reading text must fail, when file does not exist');
32
+ }, (err) => {
33
+ expect(err.notFound).toBe(true);
34
+ if (!err.notFound) {
35
+ throw err;
36
+ }
37
+ });
38
+ };
39
+ exports.specs.its.push(it);
40
+ it = { expectation: 'reads json file' };
41
+ it.func = async function (s) {
42
+ const { testFS } = s;
43
+ let original = 'Should I be at BlackHat conference or working?';
44
+ let fName = 'file1';
45
+ await testFS.writeTxtFile(fName, original);
46
+ let txt = await testFS.readTxtFile(fName);
47
+ expect(txt).withContext('file read should produce original text').toBe(original);
48
+ fName = 'file2';
49
+ await testFS.writeBytes(fName, new Uint8Array(0));
50
+ txt = await testFS.readTxtFile(fName);
51
+ expect(txt).toBe('');
52
+ };
53
+ exports.specs.its.push(it);
54
+ Object.freeze(exports);
@@ -0,0 +1,2 @@
1
+ import { SpecDescribe } from '../../../libs-for-tests/spec-module';
2
+ export declare const specs: SpecDescribe;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ /*
3
+ Copyright (C) 2016, 2018, 2020 3NSoft Inc.
4
+
5
+ This program is free software: you can redistribute it and/or modify it under
6
+ the terms of the GNU General Public License as published by the Free Software
7
+ Foundation, either version 3 of the License, or (at your option) any later
8
+ version.
9
+
10
+ This program is distributed in the hope that it will be useful, but
11
+ WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13
+ See the GNU General Public License for more details.
14
+
15
+ You should have received a copy of the GNU General Public License along with
16
+ this program. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.specs = void 0;
20
+ exports.specs = {
21
+ description: '.readonlyFile',
22
+ its: []
23
+ };
24
+ let it = { expectation: 'fails for non-existent file' };
25
+ it.func = async function (s) {
26
+ const { testFS } = s;
27
+ let fName = 'unknown-file';
28
+ expect(await testFS.checkFilePresence(fName)).toBe(false);
29
+ try {
30
+ await testFS.readonlyFile(fName);
31
+ fail('getting file object must fail, when file does not exist');
32
+ }
33
+ catch (err) {
34
+ expect(err.notFound).toBe(true);
35
+ if (!err.notFound) {
36
+ throw err;
37
+ }
38
+ }
39
+ };
40
+ exports.specs.its.push(it);
41
+ it = { expectation: 'gives file object' };
42
+ it.func = async function (s) {
43
+ const { testFS } = s;
44
+ let original = 'Should I be at BlackHat conference or working?';
45
+ let fName = 'file';
46
+ await testFS.writeTxtFile(fName, original);
47
+ let file = await testFS.readonlyFile(fName);
48
+ expect(typeof file).toBe('object');
49
+ expect(file.writable).toBe(false);
50
+ expect(!!file.v).toBe(!!testFS.v);
51
+ expect(file.name).withContext('file object should have file name').toBe(fName);
52
+ expect(file.isNew).withContext('readonly file must exist').toBe(false);
53
+ };
54
+ exports.specs.its.push(it);
55
+ Object.freeze(exports);
@@ -0,0 +1,2 @@
1
+ import { SpecDescribe } from '../../../libs-for-tests/spec-module';
2
+ export declare const specs: SpecDescribe;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ /*
3
+ Copyright (C) 2016, 2018, 2020 3NSoft Inc.
4
+
5
+ This program is free software: you can redistribute it and/or modify it under
6
+ the terms of the GNU General Public License as published by the Free Software
7
+ Foundation, either version 3 of the License, or (at your option) any later
8
+ version.
9
+
10
+ This program is distributed in the hope that it will be useful, but
11
+ WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13
+ See the GNU General Public License for more details.
14
+
15
+ You should have received a copy of the GNU General Public License along with
16
+ this program. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.specs = void 0;
20
+ exports.specs = {
21
+ description: '.readonlySubRoot',
22
+ its: []
23
+ };
24
+ let it = { expectation: 'creates sub-root based on existing folder' };
25
+ it.func = async function (s) {
26
+ const { testFS } = s;
27
+ let path = 'sub-root';
28
+ await testFS.makeFolder(path);
29
+ expect(await testFS.checkFolderPresence(path)).toBe(true);
30
+ let subRoot = await testFS.readonlySubRoot(path);
31
+ expect(subRoot).toBeTruthy();
32
+ expect(subRoot.writable).toBe(false);
33
+ expect(!!subRoot.v).toBe(!!testFS.v);
34
+ const lst = await subRoot.listFolder('');
35
+ expect(Array.isArray(lst)).toBe(true);
36
+ };
37
+ exports.specs.its.push(it);
38
+ it = { expectation: 'fails to create a sub-root, whenfolder is missing' };
39
+ it.func = async function (s) {
40
+ const { testFS } = s;
41
+ let path = 'sub-root2';
42
+ expect(await testFS.checkFolderPresence(path)).toBe(false);
43
+ try {
44
+ await testFS.readonlySubRoot(path);
45
+ fail('making a readonly sub-root on a missing folder should fail');
46
+ }
47
+ catch (exc) {
48
+ expect(exc.notFound).toBe(true);
49
+ if (!exc.notFound) {
50
+ throw exc;
51
+ }
52
+ }
53
+ };
54
+ exports.specs.its.push(it);
55
+ Object.freeze(exports);
@@ -0,0 +1,2 @@
1
+ import { SpecDescribe } from '../../../libs-for-tests/spec-module';
2
+ export declare const specs: SpecDescribe;