@secrecy/lib 1.0.0-dev.27 → 1.0.0-dev.28

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 (154) hide show
  1. package/dist/BaseClient.d.ts +274 -0
  2. package/dist/BaseClient.js +2227 -0
  3. package/dist/PopupTools.d.ts +17 -0
  4. package/dist/PopupTools.js +213 -0
  5. package/dist/ZeusThunder.d.ts +2 -0
  6. package/dist/ZeusThunder.js +113 -0
  7. package/dist/cache.d.ts +7 -0
  8. package/dist/cache.js +5 -0
  9. package/dist/client/admin/index.d.ts +11 -0
  10. package/dist/client/admin/index.js +198 -0
  11. package/dist/client/convert/file.d.ts +5 -0
  12. package/dist/client/convert/file.js +39 -0
  13. package/dist/client/convert/folder.d.ts +8 -0
  14. package/dist/client/convert/folder.js +264 -0
  15. package/dist/client/convert/mail.d.ts +3 -0
  16. package/dist/client/convert/mail.js +46 -0
  17. package/dist/client/convert/vFile.d.ts +5 -0
  18. package/dist/client/convert/vFile.js +164 -0
  19. package/dist/client/helpers.d.ts +23 -0
  20. package/dist/client/helpers.js +114 -0
  21. package/dist/client/index.d.ts +172 -0
  22. package/dist/client/index.js +6169 -0
  23. package/dist/client/storage.d.ts +7 -0
  24. package/dist/client/storage.js +12 -0
  25. package/dist/client/types/File.d.ts +21 -0
  26. package/dist/client/types/File.js +3 -0
  27. package/dist/client/types/FilesOnUsersOnApplications.d.ts +9 -0
  28. package/dist/client/types/FilesOnUsersOnApplications.js +3 -0
  29. package/dist/client/types/Folder.d.ts +68 -0
  30. package/dist/client/types/Folder.js +7 -0
  31. package/dist/client/types/Inputs.d.ts +21 -0
  32. package/dist/client/types/Inputs.js +3 -0
  33. package/dist/client/types/UserAppNotifications.d.ts +6 -0
  34. package/dist/client/types/UserAppNotifications.js +3 -0
  35. package/dist/client/types/UserAppSettings.d.ts +7 -0
  36. package/dist/client/types/UserAppSettings.js +3 -0
  37. package/dist/client/types/VFile.d.ts +62 -0
  38. package/dist/client/types/VFile.js +4 -0
  39. package/dist/client/types/index.d.ts +154 -0
  40. package/dist/client/types/index.js +10 -0
  41. package/dist/client/types/queries.d.ts +535 -0
  42. package/dist/client/types/queries.js +192 -0
  43. package/dist/crypto/file.d.ts +14 -0
  44. package/dist/crypto/file.js +291 -0
  45. package/dist/crypto/index.d.ts +12 -0
  46. package/dist/crypto/index.js +45 -0
  47. package/dist/error.d.ts +30 -0
  48. package/dist/error.js +3 -0
  49. package/dist/index.d.ts +13 -3857
  50. package/dist/index.js +42 -255
  51. package/dist/minify/index.d.ts +2 -0
  52. package/dist/minify/index.js +28 -0
  53. package/dist/minify/lz4.d.ts +5 -0
  54. package/dist/minify/lz4.js +633 -0
  55. package/dist/sodium.d.ts +3 -0
  56. package/dist/sodium.js +28 -0
  57. package/dist/utils/store-buddy.d.ts +14 -0
  58. package/dist/utils/store-buddy.js +69 -0
  59. package/dist/utils/time.d.ts +10 -0
  60. package/dist/utils/time.js +22 -0
  61. package/dist/utils.d.ts +4 -0
  62. package/dist/utils.js +188 -0
  63. package/dist/worker/__mock__/sodium.worker.d.ts +19 -0
  64. package/dist/worker/__mock__/sodium.worker.js +46 -0
  65. package/dist/worker/md5.d.ts +1 -0
  66. package/dist/worker/md5.js +43 -0
  67. package/dist/worker/sodium.d.ts +3 -0
  68. package/dist/worker/sodium.js +155 -0
  69. package/dist/worker/workerCodes.d.ts +2 -0
  70. package/dist/worker/workerCodes.js +3 -0
  71. package/dist/zeus/const.d.ts +2 -0
  72. package/dist/zeus/const.js +2267 -0
  73. package/dist/zeus/index.d.ts +4043 -0
  74. package/dist/zeus/index.js +549 -0
  75. package/package.json +23 -14
  76. package/__tests__/client/client.test.ts +0 -81
  77. package/__tests__/client/folder.test.ts +0 -302
  78. package/__tests__/client/mail.test.ts +0 -476
  79. package/__tests__/client/timing.test.ts +0 -35
  80. package/__tests__/client/utils.ts +0 -41
  81. package/__tests__/client/vFile.test.ts +0 -207
  82. package/__tests__/index.test.ts +0 -171
  83. package/commitlint.config.cjs +0 -3
  84. package/dist/index.js.map +0 -1
  85. package/dist/index.mjs +0 -255
  86. package/dist/index.mjs.map +0 -1
  87. package/docs/assets/css/main.css +0 -2660
  88. package/docs/assets/images/icons.png +0 -0
  89. package/docs/assets/images/icons@2x.png +0 -0
  90. package/docs/assets/images/widgets.png +0 -0
  91. package/docs/assets/images/widgets@2x.png +0 -0
  92. package/docs/assets/js/main.js +0 -248
  93. package/docs/assets/js/search.js +0 -1
  94. package/docs/classes/baseclient.baseclient-1.html +0 -1165
  95. package/docs/classes/client.secrecyclient.html +0 -2527
  96. package/docs/enums/index.sodium.base64_variants.html +0 -205
  97. package/docs/index.html +0 -198
  98. package/docs/interfaces/client_types.draftmail.html +0 -335
  99. package/docs/interfaces/client_types.filecontentbase.html +0 -231
  100. package/docs/interfaces/client_types.filecontentcloud.html +0 -244
  101. package/docs/interfaces/client_types.filecontentreceivedmail.html +0 -244
  102. package/docs/interfaces/client_types.filecontentsentmail.html +0 -230
  103. package/docs/interfaces/client_types.receivedmail.html +0 -363
  104. package/docs/interfaces/client_types.sentmail.html +0 -335
  105. package/docs/interfaces/crypto.keypair.html +0 -202
  106. package/docs/interfaces/index.sodium.cryptobox.html +0 -185
  107. package/docs/interfaces/index.sodium.cryptokx.html +0 -185
  108. package/docs/interfaces/index.sodium.keypair.html +0 -199
  109. package/docs/interfaces/index.sodium.messagetag.html +0 -185
  110. package/docs/interfaces/index.sodium.secretbox.html +0 -185
  111. package/docs/interfaces/index.sodium.stateaddress.html +0 -171
  112. package/docs/interfaces/index.sodium.stringcryptobox.html +0 -185
  113. package/docs/interfaces/index.sodium.stringcryptokx.html +0 -185
  114. package/docs/interfaces/index.sodium.stringkeypair.html +0 -199
  115. package/docs/interfaces/index.sodium.stringmessagetag.html +0 -185
  116. package/docs/interfaces/index.sodium.stringsecretbox.html +0 -185
  117. package/docs/interfaces/utils_store_buddy.storebuddy.html +0 -333
  118. package/docs/modules/baseclient.html +0 -929
  119. package/docs/modules/cache.html +0 -185
  120. package/docs/modules/client.html +0 -207
  121. package/docs/modules/client_convert_file.html +0 -216
  122. package/docs/modules/client_convert_folder.html +0 -303
  123. package/docs/modules/client_convert_vfile.html +0 -216
  124. package/docs/modules/client_helpers.html +0 -311
  125. package/docs/modules/client_storage.html +0 -167
  126. package/docs/modules/client_types.html +0 -1227
  127. package/docs/modules/client_types_file.html +0 -233
  128. package/docs/modules/client_types_filesonusersonapplications.html +0 -168
  129. package/docs/modules/client_types_folder.html +0 -383
  130. package/docs/modules/client_types_inputs.html +0 -263
  131. package/docs/modules/client_types_mail.html +0 -181
  132. package/docs/modules/client_types_queries.html +0 -199
  133. package/docs/modules/client_types_userappsettings.html +0 -163
  134. package/docs/modules/client_types_vfile.html +0 -364
  135. package/docs/modules/crypto.html +0 -366
  136. package/docs/modules/crypto_file.html +0 -344
  137. package/docs/modules/index.html +0 -779
  138. package/docs/modules/index.sodium.html +0 -6039
  139. package/docs/modules/minify.html +0 -183
  140. package/docs/modules/minify_lz4.html +0 -279
  141. package/docs/modules/popuptools.html +0 -259
  142. package/docs/modules/sodium.html +0 -167
  143. package/docs/modules/utils.html +0 -219
  144. package/docs/modules/utils_store_buddy.html +0 -208
  145. package/docs/modules/utils_time.html +0 -330
  146. package/docs/modules/worker_md5.html +0 -156
  147. package/docs/modules/worker_sodium.html +0 -231
  148. package/docs/modules/worker_workercodes.html +0 -157
  149. package/docs/modules.html +0 -235
  150. package/index.html +0 -21
  151. package/jest.config.ts +0 -27
  152. package/jest.setup.ts +0 -6
  153. package/release.config.cjs +0 -15
  154. package/tsup.config.ts +0 -26
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@secrecy/lib",
3
3
  "author": "Anonymize <anonymize@gmail.com>",
4
4
  "description": "Anonymize Secrecy Library",
5
- "version": "1.0.0-dev.27",
5
+ "version": "1.0.0-dev.28",
6
6
  "repository": {
7
7
  "type": "git",
8
8
  "url": "ssh://git@github.com/xsecrecy/lib.git"
@@ -17,19 +17,12 @@
17
17
  "lib",
18
18
  "secrecy"
19
19
  ],
20
- "main": "dist/index.js",
21
- "module": "dist/index.mjs",
20
+ "type": "module",
21
+ "exports": "./dist/index.js",
22
22
  "types": "dist/index.d.ts",
23
- "exports": {
24
- ".": {
25
- "require": "./dist/index.js",
26
- "import": "./dist/index.mjs"
27
- },
28
- "./*": {
29
- "require": "./dist/*.js",
30
- "import": "./dist/*.mjs"
31
- }
32
- },
23
+ "files": [
24
+ "dist"
25
+ ],
33
26
  "engines": {
34
27
  "node": ">=16.13.0"
35
28
  },
@@ -42,12 +35,24 @@
42
35
  "prepublish": "yarn build",
43
36
  "type-check": "tsc --noEmit",
44
37
  "type-check:watch": "yarn type-check -- --watch",
45
- "build": "tsup",
38
+ "build:types": "tsc --emitDeclarationOnly",
39
+ "clean": "rimraf dist",
40
+ "build": "run-p -l clean build:types babel",
41
+ "babel": "babel src --out-dir dist --extensions \".ts,.tsx\" --source-maps inline",
46
42
  "watch": "yarn build --watch",
47
43
  "zeus": "zeus http://localhost:4000/graphql ./src --ts --es",
48
44
  "prepare": "husky install"
49
45
  },
50
46
  "devDependencies": {
47
+ "@babel/cli": "^7.17.6",
48
+ "@babel/core": "^7.17.5",
49
+ "@babel/plugin-proposal-class-properties": "^7.16.7",
50
+ "@babel/plugin-proposal-object-rest-spread": "^7.17.3",
51
+ "@babel/plugin-syntax-import-meta": "^7.10.4",
52
+ "@babel/plugin-transform-runtime": "^7.17.0",
53
+ "@babel/plugin-transform-typescript": "^7.16.8",
54
+ "@babel/preset-env": "^7.16.11",
55
+ "@babel/preset-typescript": "^7.16.7",
51
56
  "@commitlint/cli": "^16.2.1",
52
57
  "@commitlint/config-conventional": "^16.2.1",
53
58
  "@semantic-release/changelog": "^6.0.1",
@@ -57,6 +62,8 @@
57
62
  "@types/spark-md5": "^3.0.2",
58
63
  "@typescript-eslint/eslint-plugin": "^5.12.1",
59
64
  "@typescript-eslint/parser": "^5.12.1",
65
+ "babel-loader": "^8.2.3",
66
+ "babel-plugin-const-enum": "^1.2.0",
60
67
  "cross-env": "^7.0.3",
61
68
  "eslint": "^8.9.0",
62
69
  "eslint-config-prettier": "^8.4.0",
@@ -65,7 +72,9 @@
65
72
  "husky": "^7.0.4",
66
73
  "jest": "^27.5.1",
67
74
  "jest-fetch-mock": "^3.0.3",
75
+ "npm-run-all": "^4.1.5",
68
76
  "prettier": "^2.5.1",
77
+ "rimraf": "^3.0.2",
69
78
  "ts-jest": "^27.1.3",
70
79
  "ts-node": "^10.5.0",
71
80
  "tsup": "^5.11.13",
@@ -1,81 +0,0 @@
1
- import { chrisId, raphId, chris, raph, axel, axelId } from "./utils.js";
2
- import { setup } from "../../src/index.js";
3
-
4
- beforeAll(setup);
5
-
6
- describe("SecrecyClient", () => {
7
- test("me", async () => {
8
- const chrisMe = await chris.me({ withPublicKey: true });
9
- if (!chrisMe) {
10
- throw new Error("undefined or null: chrisMe");
11
- }
12
- if (chrisMe.__typename === "ErrorNotFound") {
13
- throw new Error("chrisMe not found");
14
- }
15
- expect(chrisMe.data).toMatchObject({
16
- email: "chris@secrecy.me",
17
- firstname: "Christopher",
18
- id: chrisId,
19
- lastname: "Yovanovitch",
20
- phone: "+33783263010",
21
- publicKey: chris.publicKey,
22
- role: "admin"
23
- });
24
- const raphMe = await raph.me({ withPublicKey: true });
25
- if (!raphMe) {
26
- throw new Error("undefined or null: raphMe");
27
- }
28
- if (raphMe.__typename === "ErrorNotFound") {
29
- throw new Error("raphMe not found");
30
- }
31
- expect(raphMe.data).toMatchObject({
32
- email: "raphaelmortier@outlook.fr",
33
- firstname: "Raphaël",
34
- id: raphId,
35
- lastname: "Mortier",
36
- phone: "+33622471563",
37
- publicKey: raph.publicKey,
38
- role: "admin"
39
- });
40
- const axelMe = await axel.me({ withPublicKey: true });
41
- if (!axelMe) {
42
- throw new Error("undefined or null: axelMe");
43
- }
44
- if (axelMe.__typename === "ErrorNotFound") {
45
- throw new Error("axelMe not found");
46
- }
47
- expect(axelMe.data).toMatchObject({
48
- email: "axel.lavoie@gmail.com",
49
- firstname: "Axel",
50
- id: axelId,
51
- lastname: "Lavoie",
52
- phone: "+33627464948",
53
- publicKey: axel.publicKey,
54
- role: "admin"
55
- });
56
- });
57
-
58
- test("limits", async () => {
59
- const limits = await chris.limits();
60
- if (!limits) {
61
- throw new Error("limits not found");
62
- }
63
- if (limits.__typename === "ErrorAccessDenied") {
64
- throw new Error("ErrorAccessDenied");
65
- }
66
- if (limits.__typename === "ErrorLimit") {
67
- throw new Error("ErrorLimit");
68
- }
69
- if (limits.__typename === "ErrorNotExist") {
70
- throw new Error("ErrorNotExist");
71
- }
72
- if (limits.__typename === "ErrorNotFound") {
73
- throw new Error("ErrorNotFound");
74
- }
75
- expect(limits.data).toMatchObject({
76
- cloud: {
77
- maxCount: 10000n
78
- }
79
- });
80
- });
81
- });
@@ -1,302 +0,0 @@
1
- import { chris, raph, raphId } from "./utils.js";
2
- import { Rights, setup } from "../../src/index.js";
3
-
4
- beforeAll(setup);
5
-
6
- beforeAll(async () => {
7
- await Promise.all([chris.emptyCloudTrash(), raph.emptyCloudTrash()]);
8
- });
9
-
10
- describe("SecrecyClient - Folders", () => {
11
- test("wrong folder", async () => {
12
- //wrong folder
13
- const folder = await chris.folder({
14
- id: "id"
15
- });
16
- expect(folder).toBeNull();
17
- });
18
-
19
- test("shareFolder", async () => {
20
- //root folder
21
- const rootFolder = await chris.folder();
22
- expect(rootFolder).not.toBeNull();
23
- if (!rootFolder) {
24
- throw new Error("empty or undefined value: rootFolder");
25
- }
26
-
27
- if (rootFolder.__typename === "ErrorAccessDenied") {
28
- expect(rootFolder.message).toBe("Access denied");
29
- }
30
- if (rootFolder.__typename === "SuccessResponse") {
31
- const cloudFolder = rootFolder.data.subfolders.find(
32
- f => f.name === "cloud"
33
- );
34
- expect(cloudFolder).not.toBeUndefined();
35
- if (!cloudFolder) {
36
- throw new Error("empty or undefined value: cloudFolder");
37
- }
38
-
39
- //create folder
40
- const name = "test_folder_to_share";
41
- const folderToShare = await chris.createFolder({
42
- name,
43
- parentFolderId: cloudFolder.id
44
- });
45
-
46
- expect(folderToShare).not.toBeNull();
47
- if (!folderToShare) {
48
- throw new Error("empty or undefined value: folderToShare");
49
- }
50
-
51
- if (folderToShare.__typename !== "SuccessResponse") {
52
- throw new Error("folderToShare is not a SuccessResponse");
53
- }
54
-
55
- //share folder
56
- const res = await chris.shareFolder({
57
- folderId: folderToShare.data.id,
58
- rights: Rights.write,
59
- userId: raphId
60
- });
61
- expect(res).toStrictEqual({ __typename: "SuccessResponse", data: true });
62
- const allShared = await raph.foldersSharedWithMe();
63
- if (!allShared) {
64
- throw new Error("empty or undefined value: allShared");
65
- }
66
-
67
- if (allShared.__typename === "ErrorAccessDenied") {
68
- throw new Error("Access denied");
69
- }
70
-
71
- if (allShared.__typename === "SuccessResponse") {
72
- const folderShared = allShared.data.find(
73
- f => f.id === folderToShare.data.id
74
- );
75
- expect(folderShared).not.toBeUndefined();
76
- if (!folderShared) {
77
- throw new Error("empty or undefined value: folderShared");
78
- }
79
-
80
- expect(folderShared.name).toBe(name);
81
-
82
- //create folder in shared folder
83
- const nameFolder = "test";
84
- await raph.createFolder({
85
- name: nameFolder,
86
- parentFolderId: folderToShare.data.id
87
- });
88
- const test = await chris.folder({ id: folderToShare.data.id });
89
- await chris.deleteFolder({ id: folderToShare.data.id });
90
- expect(test).not.toBeNull();
91
- if (!test) {
92
- throw new Error("empty or undefined value: test");
93
- }
94
-
95
- if (test.__typename === "ErrorAccessDenied") {
96
- throw new Error("Access denied");
97
- }
98
-
99
- if (test.__typename === "SuccessResponse") {
100
- const folderCreatedByraph = test.data.subfolders.find(
101
- f => f.name === nameFolder
102
- );
103
- expect(folderCreatedByraph).not.toBeUndefined();
104
- if (!folderCreatedByraph) {
105
- throw new Error("empty or undefined value: folderCreatedByraph");
106
- }
107
- expect(folderCreatedByraph.name).toBe(nameFolder);
108
-
109
- //delete sharing
110
- const deleteSharing = await chris.deleteFolderSharing({
111
- folderId: test.data.id,
112
- userId: raphId
113
- });
114
- expect(deleteSharing).toStrictEqual({
115
- __typename: "SuccessResponse",
116
- data: true
117
- });
118
- }
119
- }
120
- }
121
- }, 50000);
122
-
123
- test("deleteFolder", async () => {
124
- //root folder
125
- const rootFolder = await chris.folder();
126
- expect(rootFolder).not.toBeNull();
127
- if (!rootFolder) {
128
- throw new Error("empty or undefined value: rootFolder");
129
- }
130
- if (rootFolder.__typename === "ErrorAccessDenied") {
131
- throw new Error("Access denied");
132
- }
133
- const cloudFolder = rootFolder.data.subfolders.find(
134
- f => f.name === "cloud"
135
- );
136
- expect(cloudFolder).not.toBeUndefined();
137
- if (!cloudFolder) {
138
- throw new Error("empty or undefined value: cloudFolder");
139
- }
140
-
141
- // create folder
142
- const name = "test_folder_to_delete";
143
- const folderToDelete = await chris.createFolder({
144
- name,
145
- parentFolderId: cloudFolder.id
146
- });
147
-
148
- expect(folderToDelete).not.toBeNull();
149
- if (!folderToDelete) {
150
- throw new Error("empty or undefined value: folderToDelete");
151
- }
152
-
153
- if (folderToDelete.__typename !== "SuccessResponse") {
154
- throw new Error("folderToDelete is not a SuccessResponse");
155
- }
156
-
157
- // test breadcrumb
158
- expect(folderToDelete.data.breadcrumb.map(f => f.name)).toEqual([
159
- name,
160
- "cloud",
161
- "root"
162
- ]);
163
-
164
- // delete folder
165
- const deletedFolder = await chris.deleteFolder({
166
- id: folderToDelete.data.id
167
- });
168
- expect(deletedFolder).toStrictEqual({
169
- __typename: "SuccessResponse",
170
- data: true
171
- });
172
- const folderDeleted = await chris.folder({
173
- id: folderToDelete.data.id,
174
- deleted: true
175
- });
176
- expect(folderDeleted).not.toBeNull();
177
- if (!folderDeleted) {
178
- throw new Error("empty or undefined value: folderDeleted");
179
- }
180
- if (folderDeleted.__typename === "ErrorAccessDenied") {
181
- throw new Error("Access denied");
182
- }
183
- expect(folderDeleted.data.deletedAt).not.toBeNull();
184
- const deletedFolders = await chris.deletedFolders();
185
- if (!deletedFolders) {
186
- throw new Error("empty or undefined value: deletedFolders");
187
- }
188
- if (deletedFolders.__typename === "ErrorAccessDenied") {
189
- throw new Error("Access denied");
190
- }
191
- const folderDeletedByChris = deletedFolders.data.find(
192
- f => f.id === folderToDelete.data.id
193
- );
194
- if (!folderDeletedByChris) {
195
- throw new Error("empty or undefined value: folderDeletedByChris");
196
- }
197
- expect(folderDeletedByChris.name).toBe(folderToDelete.data.name);
198
-
199
- //recover folder
200
- const folderToRecover = await chris.recoverFolder({
201
- id: folderDeleted.data.id
202
- });
203
-
204
- expect(folderToRecover).toStrictEqual({
205
- __typename: "SuccessResponse",
206
- data: true
207
- });
208
- const folderRecovered = await chris.folder({
209
- id: folderDeleted.data.id
210
- });
211
-
212
- if (!folderRecovered) {
213
- throw new Error("empty or undefined value: folderRecovered");
214
- }
215
- if (folderRecovered.__typename === "ErrorAccessDenied") {
216
- throw new Error("Access denied");
217
- }
218
- expect(folderRecovered).not.toBeNull();
219
- if (!folderRecovered) {
220
- throw new Error("empty or undefined value: folderRecovered");
221
- }
222
- expect(folderRecovered.data.deletedAt).toBeNull();
223
-
224
- // await expect(
225
- // raph.recoverFolder({ id: folderDeleted.id })
226
- // ).rejects.toThrowError("Invalid plan");
227
-
228
- //delete cloud trash
229
- const deletedFolderCloudTrash = await chris.deleteFolderCloudTrash({
230
- ids: [folderRecovered.data.id]
231
- });
232
- expect(deletedFolderCloudTrash).toBe(true);
233
- }, 50000);
234
-
235
- test("update folder", async () => {
236
- //root folder
237
- const rootFolder = await chris.folder();
238
- expect(rootFolder).not.toBeNull();
239
- if (!rootFolder) {
240
- throw new Error("empty or undefined value: rootFolder");
241
- }
242
- if (rootFolder.__typename === "ErrorAccessDenied") {
243
- throw new Error("Access denied");
244
- }
245
- const cloudFolder = rootFolder.data.subfolders.find(
246
- f => f.name === "cloud"
247
- );
248
- expect(cloudFolder).not.toBeUndefined();
249
- if (!cloudFolder) {
250
- throw new Error("empty or undefined value: cloudFolder");
251
- }
252
-
253
- //create folder
254
- const name = "test_folder_to_update";
255
- const folderToUpdate = await chris.createFolder({
256
- name,
257
- parentFolderId: cloudFolder.id
258
- });
259
-
260
- expect(folderToUpdate).not.toBeNull();
261
- if (!folderToUpdate) {
262
- throw new Error("empty or undefined value: folderToUpdate");
263
- }
264
-
265
- if (folderToUpdate.__typename !== "SuccessResponse") {
266
- throw new Error("folderToUpdate is not a SuccessResponse");
267
- }
268
-
269
- //update folder
270
- const folderUpdated = await chris.updateFolder({
271
- folderId: folderToUpdate.data.id,
272
- name: "test_folder_updated"
273
- });
274
-
275
- expect(folderUpdated).not.toBeNull();
276
- if (!folderUpdated) {
277
- throw new Error("empty or undefined value: folderUpdated");
278
- }
279
-
280
- if (folderUpdated.__typename !== "SuccessResponse") {
281
- throw new Error("folderToUpdate is not a SuccessResponse");
282
- }
283
-
284
- expect(folderUpdated.data.name).toBe("test_folder_updated");
285
-
286
- //delete folder
287
- const deletedFolder = await chris.deleteFolder({
288
- id: folderToUpdate.data.id
289
- });
290
- expect(deletedFolder).toStrictEqual({
291
- __typename: "SuccessResponse",
292
- data: true
293
- });
294
- const deletedFolderCloudTrash = await chris.deleteFolderCloudTrash({
295
- ids: [folderToUpdate.data.id]
296
- });
297
- expect(deletedFolderCloudTrash).toStrictEqual({
298
- __typename: "SuccessResponse",
299
- data: true
300
- });
301
- });
302
- });