@secrecy/lib 1.6.0 → 1.6.1
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.
- package/dist/BaseClient-ca94a07f.d.ts +405 -0
- package/dist/BaseClient.cjs +2 -0
- package/dist/BaseClient.cjs.map +1 -0
- package/dist/BaseClient.d.ts +16 -111
- package/dist/BaseClient.js +2 -506
- package/dist/BaseClient.js.map +1 -0
- package/dist/PopupTools.cjs +2 -0
- package/dist/PopupTools.cjs.map +1 -0
- package/dist/PopupTools.d.ts +5 -4
- package/dist/PopupTools.js +2 -195
- package/dist/PopupTools.js.map +1 -0
- package/dist/ZeusThunder.cjs +2 -0
- package/dist/ZeusThunder.cjs.map +1 -0
- package/dist/ZeusThunder.d.ts +6 -2
- package/dist/ZeusThunder.js +2 -65
- package/dist/ZeusThunder.js.map +1 -0
- package/dist/cache.cjs +2 -0
- package/dist/cache.cjs.map +1 -0
- package/dist/cache.d.ts +22 -4
- package/dist/cache.js +2 -4
- package/dist/cache.js.map +1 -0
- package/dist/client/SecrecyAppClient.cjs +2 -0
- package/dist/client/SecrecyAppClient.cjs.map +1 -0
- package/dist/client/SecrecyAppClient.d.ts +16 -17
- package/dist/client/SecrecyAppClient.js +2 -226
- package/dist/client/SecrecyAppClient.js.map +1 -0
- package/dist/client/SecrecyCloudClient.cjs +2 -0
- package/dist/client/SecrecyCloudClient.cjs.map +1 -0
- package/dist/client/SecrecyCloudClient.d.ts +16 -89
- package/dist/client/SecrecyCloudClient.js +2 -1405
- package/dist/client/SecrecyCloudClient.js.map +1 -0
- package/dist/client/SecrecyDbClient.cjs +2 -0
- package/dist/client/SecrecyDbClient.cjs.map +1 -0
- package/dist/client/SecrecyDbClient.d.ts +16 -48
- package/dist/client/SecrecyDbClient.js +2 -419
- package/dist/client/SecrecyDbClient.js.map +1 -0
- package/dist/client/SecrecyMailClient.cjs +2 -0
- package/dist/client/SecrecyMailClient.cjs.map +1 -0
- package/dist/client/SecrecyMailClient.d.ts +16 -42
- package/dist/client/SecrecyMailClient.js +2 -1022
- package/dist/client/SecrecyMailClient.js.map +1 -0
- package/dist/client/SecrecyPayClient.cjs +2 -0
- package/dist/client/SecrecyPayClient.cjs.map +1 -0
- package/dist/client/SecrecyPayClient.d.ts +16 -28
- package/dist/client/SecrecyPayClient.js +2 -68
- package/dist/client/SecrecyPayClient.js.map +1 -0
- package/dist/client/SecrecyWalletClient.cjs +2 -0
- package/dist/client/SecrecyWalletClient.cjs.map +1 -0
- package/dist/client/SecrecyWalletClient.d.ts +16 -30
- package/dist/client/SecrecyWalletClient.js +2 -73
- package/dist/client/SecrecyWalletClient.js.map +1 -0
- package/dist/client/convert/file.cjs +2 -0
- package/dist/client/convert/file.cjs.map +1 -0
- package/dist/client/convert/file.d.ts +11 -5
- package/dist/client/convert/file.js +2 -33
- package/dist/client/convert/file.js.map +1 -0
- package/dist/client/convert/mail.cjs +2 -0
- package/dist/client/convert/mail.cjs.map +1 -0
- package/dist/client/convert/mail.d.ts +13 -3
- package/dist/client/convert/mail.js +2 -42
- package/dist/client/convert/mail.js.map +1 -0
- package/dist/client/convert/node.cjs +2 -0
- package/dist/client/convert/node.cjs.map +1 -0
- package/dist/client/convert/node.d.ts +18 -9
- package/dist/client/convert/node.js +2 -87
- package/dist/client/convert/node.js.map +1 -0
- package/dist/client/helpers.cjs +2 -0
- package/dist/client/helpers.cjs.map +1 -0
- package/dist/client/helpers.d.ts +16 -28
- package/dist/client/helpers.js +2 -119
- package/dist/client/helpers.js.map +1 -0
- package/dist/client/index.cjs +2 -0
- package/dist/client/index.cjs.map +1 -0
- package/dist/client/index.d.ts +16 -34
- package/dist/client/index.js +2 -46
- package/dist/client/index.js.map +1 -0
- package/dist/client/storage.cjs +2 -0
- package/dist/client/storage.cjs.map +1 -0
- package/dist/client/storage.d.ts +6 -3
- package/dist/client/storage.js +2 -12
- package/dist/client/storage.js.map +1 -0
- package/dist/client/types/File.cjs +1 -0
- package/dist/client/types/File.cjs.map +1 -0
- package/dist/client/types/File.d.ts +9 -5
- package/dist/client/types/File.js +1 -3
- package/dist/client/types/File.js.map +1 -0
- package/dist/client/types/Inputs.cjs +1 -0
- package/dist/client/types/Inputs.cjs.map +1 -0
- package/dist/client/types/Inputs.d.ts +6 -4
- package/dist/client/types/Inputs.js +1 -3
- package/dist/client/types/Inputs.js.map +1 -0
- package/dist/client/types/Node.cjs +1 -0
- package/dist/client/types/Node.cjs.map +1 -0
- package/dist/client/types/Node.d.ts +9 -56
- package/dist/client/types/Node.js +1 -3
- package/dist/client/types/Node.js.map +1 -0
- package/dist/client/types/UserAppNotifications.cjs +1 -0
- package/dist/client/types/UserAppNotifications.cjs.map +1 -0
- package/dist/client/types/UserAppNotifications.d.ts +3 -1
- package/dist/client/types/UserAppNotifications.js +1 -3
- package/dist/client/types/UserAppNotifications.js.map +1 -0
- package/dist/client/types/UserAppSettings.cjs +1 -0
- package/dist/client/types/UserAppSettings.cjs.map +1 -0
- package/dist/client/types/UserAppSettings.d.ts +3 -1
- package/dist/client/types/UserAppSettings.js +1 -3
- package/dist/client/types/UserAppSettings.js.map +1 -0
- package/dist/client/types/index.cjs +2 -0
- package/dist/client/types/index.cjs.map +1 -0
- package/dist/client/types/index.d.ts +86 -30
- package/dist/client/types/index.js +2 -8
- package/dist/client/types/index.js.map +1 -0
- package/dist/client/types/selectors.cjs +2 -0
- package/dist/client/types/selectors.cjs.map +1 -0
- package/dist/client/types/selectors.d.ts +7 -5
- package/dist/client/types/selectors.js +2 -135
- package/dist/client/types/selectors.js.map +1 -0
- package/dist/crypto/file.cjs +2 -0
- package/dist/crypto/file.cjs.map +1 -0
- package/dist/crypto/file.d.ts +8 -6
- package/dist/crypto/file.js +2 -195
- package/dist/crypto/file.js.map +1 -0
- package/dist/crypto/index.cjs +2 -0
- package/dist/crypto/index.cjs.map +1 -0
- package/dist/crypto/index.d.ts +11 -9
- package/dist/crypto/index.js +2 -45
- package/dist/crypto/index.js.map +1 -0
- package/dist/error.cjs +1 -0
- package/dist/error.cjs.map +1 -0
- package/dist/error.d.ts +13 -11
- package/dist/error.js +1 -3
- package/dist/error.js.map +1 -0
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +19 -14
- package/dist/index.js +2 -10
- package/dist/index.js.map +1 -0
- package/dist/minify/index.cjs +2 -0
- package/dist/minify/index.cjs.map +1 -0
- package/dist/minify/index.d.ts +4 -2
- package/dist/minify/index.js +2 -23
- package/dist/minify/index.js.map +1 -0
- package/dist/minify/lz4.cjs +3 -0
- package/dist/minify/lz4.cjs.map +1 -0
- package/dist/minify/lz4.d.ts +7 -5
- package/dist/minify/lz4.js +2 -538
- package/dist/minify/lz4.js.map +1 -0
- package/dist/sodium.cjs +2 -0
- package/dist/sodium.cjs.map +1 -0
- package/dist/sodium.d.ts +5 -3
- package/dist/sodium.js +2 -6
- package/dist/sodium.js.map +1 -0
- package/dist/utils/encoders.cjs +2 -0
- package/dist/utils/encoders.cjs.map +1 -0
- package/dist/utils/encoders.d.ts +6 -4
- package/dist/utils/encoders.js +2 -18
- package/dist/utils/encoders.js.map +1 -0
- package/dist/utils/store-buddy.cjs +2 -0
- package/dist/utils/store-buddy.cjs.map +1 -0
- package/dist/utils/store-buddy.d.ts +4 -3
- package/dist/utils/store-buddy.js +2 -58
- package/dist/utils/store-buddy.js.map +1 -0
- package/dist/utils/time.cjs +2 -0
- package/dist/utils/time.cjs.map +1 -0
- package/dist/utils/time.d.ts +4 -2
- package/dist/utils/time.js +2 -12
- package/dist/utils/time.js.map +1 -0
- package/dist/utils/utils.cjs +2 -0
- package/dist/utils/utils.cjs.map +1 -0
- package/dist/utils/utils.d.ts +6 -4
- package/dist/utils/utils.js +2 -47
- package/dist/utils/utils.js.map +1 -0
- package/dist/worker/md5.cjs +2 -0
- package/dist/worker/md5.cjs.map +1 -0
- package/dist/worker/md5.d.ts +3 -1
- package/dist/worker/md5.js +2 -24
- package/dist/worker/md5.js.map +1 -0
- package/dist/worker/sodium.cjs +2 -0
- package/dist/worker/sodium.cjs.map +1 -0
- package/dist/worker/sodium.d.ts +6 -3
- package/dist/worker/sodium.js +2 -118
- package/dist/worker/sodium.js.map +1 -0
- package/dist/worker/workerCodes.cjs +254 -0
- package/dist/worker/workerCodes.cjs.map +1 -0
- package/dist/worker/workerCodes.d.ts +4 -2
- package/dist/worker/workerCodes.js +4 -5
- package/dist/worker/workerCodes.js.map +1 -0
- package/dist/zeus/const.cjs +2 -0
- package/dist/zeus/const.cjs.map +1 -0
- package/dist/zeus/const.d.ts +5 -3
- package/dist/zeus/const.js +2 -1846
- package/dist/zeus/const.js.map +1 -0
- package/dist/zeus/index.cjs +5 -0
- package/dist/zeus/index.cjs.map +1 -0
- package/dist/zeus/index.d.ts +91 -89
- package/dist/zeus/index.js +5 -642
- package/dist/zeus/index.js.map +1 -0
- package/package.json +2 -2
|
@@ -1,419 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
/* eslint-disable @typescript-eslint/naming-convention */
|
|
4
|
-
|
|
5
|
-
import { encoders } from "../utils/encoders.js";
|
|
6
|
-
import { serialize } from "bson";
|
|
7
|
-
var _thunder = /*#__PURE__*/_classPrivateFieldLooseKey("thunder");
|
|
8
|
-
export class SecrecyDbClient {
|
|
9
|
-
// #client: SecrecyClient;
|
|
10
|
-
|
|
11
|
-
// #keys: KeyPair;
|
|
12
|
-
|
|
13
|
-
constructor(_client, _keys, thunder) {
|
|
14
|
-
Object.defineProperty(this, _thunder, {
|
|
15
|
-
writable: true,
|
|
16
|
-
value: void 0
|
|
17
|
-
});
|
|
18
|
-
// this.#client = client;
|
|
19
|
-
// this.#keys = keys;
|
|
20
|
-
_classPrivateFieldLooseBase(this, _thunder)[_thunder] = thunder;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Get the DbConfig by "env", it can be either "dev" or "prod".
|
|
25
|
-
*/
|
|
26
|
-
async getDbConfig(_ref) {
|
|
27
|
-
let {
|
|
28
|
-
appId,
|
|
29
|
-
env
|
|
30
|
-
} = _ref;
|
|
31
|
-
const {
|
|
32
|
-
dbConfig
|
|
33
|
-
} = await _classPrivateFieldLooseBase(this, _thunder)[_thunder]("query", {
|
|
34
|
-
scalars: {
|
|
35
|
-
Json: encoders.json
|
|
36
|
-
}
|
|
37
|
-
})({
|
|
38
|
-
dbConfig: [{
|
|
39
|
-
appId,
|
|
40
|
-
env
|
|
41
|
-
}, {
|
|
42
|
-
"...on ErrorAccessDenied": {
|
|
43
|
-
__typename: true,
|
|
44
|
-
message: true
|
|
45
|
-
},
|
|
46
|
-
"...on ErrorNotFound": {
|
|
47
|
-
__typename: true,
|
|
48
|
-
message: true
|
|
49
|
-
},
|
|
50
|
-
"...on DbConfigResponse": {
|
|
51
|
-
__typename: true,
|
|
52
|
-
json: true
|
|
53
|
-
}
|
|
54
|
-
}]
|
|
55
|
-
});
|
|
56
|
-
if (!dbConfig) {
|
|
57
|
-
return null;
|
|
58
|
-
}
|
|
59
|
-
if (dbConfig.__typename === "ErrorAccessDenied") {
|
|
60
|
-
return dbConfig;
|
|
61
|
-
}
|
|
62
|
-
if (dbConfig.__typename === "ErrorNotFound") {
|
|
63
|
-
return dbConfig;
|
|
64
|
-
}
|
|
65
|
-
return {
|
|
66
|
-
__typename: "SuccessResponse",
|
|
67
|
-
data: dbConfig.json
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Get the difference recipe between two DB configurations.
|
|
73
|
-
*/
|
|
74
|
-
async dbGetDiff(_ref2) {
|
|
75
|
-
let {
|
|
76
|
-
appId,
|
|
77
|
-
env,
|
|
78
|
-
config
|
|
79
|
-
} = _ref2;
|
|
80
|
-
const {
|
|
81
|
-
dbGetDiff
|
|
82
|
-
} = await _classPrivateFieldLooseBase(this, _thunder)[_thunder]("query", {
|
|
83
|
-
scalars: {
|
|
84
|
-
Json: encoders.json
|
|
85
|
-
}
|
|
86
|
-
})({
|
|
87
|
-
dbGetDiff: [{
|
|
88
|
-
appId,
|
|
89
|
-
env,
|
|
90
|
-
config
|
|
91
|
-
}, {
|
|
92
|
-
"...on ErrorBasic": {
|
|
93
|
-
__typename: true,
|
|
94
|
-
message: true
|
|
95
|
-
},
|
|
96
|
-
"...on ErrorAccessDenied": {
|
|
97
|
-
__typename: true,
|
|
98
|
-
message: true
|
|
99
|
-
},
|
|
100
|
-
"...on DbGetDiffConfigResponse": {
|
|
101
|
-
__typename: true,
|
|
102
|
-
dbGetDiffConfig: {
|
|
103
|
-
env: true,
|
|
104
|
-
current: true,
|
|
105
|
-
next: true,
|
|
106
|
-
diff: true,
|
|
107
|
-
hash: true
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}]
|
|
111
|
-
});
|
|
112
|
-
if (!dbGetDiff) {
|
|
113
|
-
return null;
|
|
114
|
-
}
|
|
115
|
-
if (dbGetDiff.__typename === "ErrorBasic") {
|
|
116
|
-
return dbGetDiff;
|
|
117
|
-
}
|
|
118
|
-
if (dbGetDiff.__typename === "ErrorAccessDenied") {
|
|
119
|
-
return dbGetDiff;
|
|
120
|
-
}
|
|
121
|
-
return {
|
|
122
|
-
__typename: "SuccessResponse",
|
|
123
|
-
data: dbGetDiff.dbGetDiffConfig
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* Set the DbConfig by "env", it can be either "dev" or "prod".
|
|
129
|
-
*
|
|
130
|
-
* Mostly used for hotfixes on production or common changes on development.
|
|
131
|
-
*/
|
|
132
|
-
async setDbConfig(_ref3) {
|
|
133
|
-
let {
|
|
134
|
-
appId,
|
|
135
|
-
env,
|
|
136
|
-
config
|
|
137
|
-
} = _ref3;
|
|
138
|
-
const {
|
|
139
|
-
dbConfigMutation
|
|
140
|
-
} = await _classPrivateFieldLooseBase(this, _thunder)[_thunder]("mutation", {
|
|
141
|
-
scalars: {
|
|
142
|
-
Json: encoders.json
|
|
143
|
-
}
|
|
144
|
-
})({
|
|
145
|
-
dbConfigMutation: [{
|
|
146
|
-
appId,
|
|
147
|
-
env,
|
|
148
|
-
config
|
|
149
|
-
}, {
|
|
150
|
-
"...on ErrorAccessDenied": {
|
|
151
|
-
__typename: true,
|
|
152
|
-
message: true
|
|
153
|
-
},
|
|
154
|
-
"...on ErrorBasic": {
|
|
155
|
-
__typename: true,
|
|
156
|
-
message: true
|
|
157
|
-
},
|
|
158
|
-
"...on DbConfigMutationResponse": {
|
|
159
|
-
__typename: true,
|
|
160
|
-
dbConfigMutation: true
|
|
161
|
-
}
|
|
162
|
-
}]
|
|
163
|
-
});
|
|
164
|
-
if (!dbConfigMutation) {
|
|
165
|
-
return null;
|
|
166
|
-
}
|
|
167
|
-
if (dbConfigMutation.__typename === "ErrorBasic") {
|
|
168
|
-
return dbConfigMutation;
|
|
169
|
-
}
|
|
170
|
-
if (dbConfigMutation.__typename === "ErrorAccessDenied") {
|
|
171
|
-
return dbConfigMutation;
|
|
172
|
-
}
|
|
173
|
-
return {
|
|
174
|
-
__typename: "SuccessResponse",
|
|
175
|
-
data: dbConfigMutation.dbConfigMutation
|
|
176
|
-
};
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
/**
|
|
180
|
-
* Push the dbConfigDev to the dbCongigProd.
|
|
181
|
-
*
|
|
182
|
-
* It requires a diffHash to verify that the developer has validated his changes.
|
|
183
|
-
*/
|
|
184
|
-
async dbConfigPushToProd(_ref4) {
|
|
185
|
-
let {
|
|
186
|
-
appId,
|
|
187
|
-
diffHash
|
|
188
|
-
} = _ref4;
|
|
189
|
-
const {
|
|
190
|
-
dbConfigToProdMutation
|
|
191
|
-
} = await _classPrivateFieldLooseBase(this, _thunder)[_thunder]("mutation", {
|
|
192
|
-
scalars: {
|
|
193
|
-
Json: encoders.json
|
|
194
|
-
}
|
|
195
|
-
})({
|
|
196
|
-
dbConfigToProdMutation: [{
|
|
197
|
-
appId,
|
|
198
|
-
diffHash
|
|
199
|
-
}, {
|
|
200
|
-
"...on ErrorAccessDenied": {
|
|
201
|
-
__typename: true,
|
|
202
|
-
message: true
|
|
203
|
-
},
|
|
204
|
-
"...on ErrorBasic": {
|
|
205
|
-
__typename: true,
|
|
206
|
-
message: true
|
|
207
|
-
},
|
|
208
|
-
"...on DbConfigToProdMutationResponse": {
|
|
209
|
-
__typename: true,
|
|
210
|
-
dbConfigToProdMutation: true
|
|
211
|
-
}
|
|
212
|
-
}]
|
|
213
|
-
});
|
|
214
|
-
if (!dbConfigToProdMutation) {
|
|
215
|
-
return null;
|
|
216
|
-
}
|
|
217
|
-
if (dbConfigToProdMutation.__typename === "ErrorBasic") {
|
|
218
|
-
return dbConfigToProdMutation;
|
|
219
|
-
}
|
|
220
|
-
if (dbConfigToProdMutation.__typename === "ErrorAccessDenied") {
|
|
221
|
-
return dbConfigToProdMutation;
|
|
222
|
-
}
|
|
223
|
-
return {
|
|
224
|
-
__typename: "SuccessResponse",
|
|
225
|
-
data: dbConfigToProdMutation.dbConfigToProdMutation
|
|
226
|
-
};
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
/**
|
|
230
|
-
* Get the value of a field.
|
|
231
|
-
*/
|
|
232
|
-
async get(_ref5) {
|
|
233
|
-
let {
|
|
234
|
-
field,
|
|
235
|
-
appId,
|
|
236
|
-
userId,
|
|
237
|
-
env
|
|
238
|
-
} = _ref5;
|
|
239
|
-
const {
|
|
240
|
-
dbGet
|
|
241
|
-
} = await _classPrivateFieldLooseBase(this, _thunder)[_thunder]("query")({
|
|
242
|
-
dbGet: [{
|
|
243
|
-
field,
|
|
244
|
-
appId,
|
|
245
|
-
userId,
|
|
246
|
-
env
|
|
247
|
-
}, {
|
|
248
|
-
"...on ErrorAccessDenied": {
|
|
249
|
-
__typename: true,
|
|
250
|
-
message: true
|
|
251
|
-
},
|
|
252
|
-
"...on ErrorBasic": {
|
|
253
|
-
__typename: true,
|
|
254
|
-
message: true
|
|
255
|
-
},
|
|
256
|
-
"...on ErrorNotExist": {
|
|
257
|
-
__typename: true,
|
|
258
|
-
message: true
|
|
259
|
-
},
|
|
260
|
-
"...on ErrorNotFound": {
|
|
261
|
-
__typename: true,
|
|
262
|
-
message: true
|
|
263
|
-
},
|
|
264
|
-
"...on DbGetResponse": {
|
|
265
|
-
__typename: true,
|
|
266
|
-
json: true
|
|
267
|
-
}
|
|
268
|
-
}]
|
|
269
|
-
});
|
|
270
|
-
if (!dbGet) {
|
|
271
|
-
return null;
|
|
272
|
-
}
|
|
273
|
-
if (dbGet.__typename === "ErrorAccessDenied") {
|
|
274
|
-
return dbGet;
|
|
275
|
-
}
|
|
276
|
-
if (dbGet.__typename === "ErrorBasic") {
|
|
277
|
-
return dbGet;
|
|
278
|
-
}
|
|
279
|
-
if (dbGet.__typename === "ErrorNotExist") {
|
|
280
|
-
return dbGet;
|
|
281
|
-
}
|
|
282
|
-
if (dbGet.__typename === "ErrorNotFound") {
|
|
283
|
-
return dbGet;
|
|
284
|
-
}
|
|
285
|
-
return {
|
|
286
|
-
__typename: "SuccessResponse",
|
|
287
|
-
data: dbGet.json.res
|
|
288
|
-
};
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
/**
|
|
292
|
-
* Set an user document.
|
|
293
|
-
*/
|
|
294
|
-
async set(_ref6) {
|
|
295
|
-
let {
|
|
296
|
-
value,
|
|
297
|
-
appId,
|
|
298
|
-
env,
|
|
299
|
-
userId
|
|
300
|
-
} = _ref6;
|
|
301
|
-
if (typeof value !== "object") {
|
|
302
|
-
throw new Error(`value should be an object including fields you want to update.`);
|
|
303
|
-
}
|
|
304
|
-
const {
|
|
305
|
-
dbSet
|
|
306
|
-
} = await _classPrivateFieldLooseBase(this, _thunder)[_thunder]("mutation")({
|
|
307
|
-
dbSet: [{
|
|
308
|
-
userId,
|
|
309
|
-
appId,
|
|
310
|
-
env,
|
|
311
|
-
value: serialize(value).toString("base64")
|
|
312
|
-
}, {
|
|
313
|
-
"...on ErrorAccessDenied": {
|
|
314
|
-
__typename: true,
|
|
315
|
-
message: true
|
|
316
|
-
},
|
|
317
|
-
"...on ErrorBasic": {
|
|
318
|
-
__typename: true,
|
|
319
|
-
message: true
|
|
320
|
-
},
|
|
321
|
-
"...on ErrorNotFound": {
|
|
322
|
-
__typename: true,
|
|
323
|
-
message: true
|
|
324
|
-
},
|
|
325
|
-
"...on DbSetResponse": {
|
|
326
|
-
__typename: true,
|
|
327
|
-
dbSet: true
|
|
328
|
-
}
|
|
329
|
-
}]
|
|
330
|
-
});
|
|
331
|
-
if (!dbSet) {
|
|
332
|
-
return null;
|
|
333
|
-
}
|
|
334
|
-
if (dbSet.__typename === "ErrorAccessDenied") {
|
|
335
|
-
return dbSet;
|
|
336
|
-
}
|
|
337
|
-
if (dbSet.__typename === "ErrorNotFound") {
|
|
338
|
-
return dbSet;
|
|
339
|
-
}
|
|
340
|
-
if (dbSet.__typename === "ErrorBasic") {
|
|
341
|
-
return dbSet;
|
|
342
|
-
}
|
|
343
|
-
if (!dbSet.dbSet) {
|
|
344
|
-
return null;
|
|
345
|
-
}
|
|
346
|
-
return {
|
|
347
|
-
__typename: "SuccessResponse",
|
|
348
|
-
data: dbSet.dbSet.res
|
|
349
|
-
};
|
|
350
|
-
}
|
|
351
|
-
|
|
352
|
-
/**
|
|
353
|
-
* Searches for user fields that match the search arguments.
|
|
354
|
-
*/
|
|
355
|
-
async search(_ref7) {
|
|
356
|
-
let {
|
|
357
|
-
appId,
|
|
358
|
-
env,
|
|
359
|
-
search,
|
|
360
|
-
field,
|
|
361
|
-
take,
|
|
362
|
-
skip,
|
|
363
|
-
orderBy
|
|
364
|
-
} = _ref7;
|
|
365
|
-
const {
|
|
366
|
-
dbSearch
|
|
367
|
-
} = await _classPrivateFieldLooseBase(this, _thunder)[_thunder]("query", {
|
|
368
|
-
scalars: {
|
|
369
|
-
Json: encoders.json,
|
|
370
|
-
DateTime: encoders.dateTime,
|
|
371
|
-
BigInt: encoders.bigInt
|
|
372
|
-
}
|
|
373
|
-
})({
|
|
374
|
-
dbSearch: [{
|
|
375
|
-
appId,
|
|
376
|
-
env,
|
|
377
|
-
field,
|
|
378
|
-
search,
|
|
379
|
-
take,
|
|
380
|
-
skip,
|
|
381
|
-
orderBy
|
|
382
|
-
}, {
|
|
383
|
-
"...on ErrorAccessDenied": {
|
|
384
|
-
__typename: true,
|
|
385
|
-
message: true
|
|
386
|
-
},
|
|
387
|
-
"...on ErrorBasic": {
|
|
388
|
-
__typename: true,
|
|
389
|
-
message: true
|
|
390
|
-
},
|
|
391
|
-
"...on ErrorNotExist": {
|
|
392
|
-
__typename: true,
|
|
393
|
-
message: true
|
|
394
|
-
},
|
|
395
|
-
"...on DbSearchResponse": {
|
|
396
|
-
__typename: true,
|
|
397
|
-
json: true
|
|
398
|
-
}
|
|
399
|
-
}]
|
|
400
|
-
});
|
|
401
|
-
if (!dbSearch) {
|
|
402
|
-
return null;
|
|
403
|
-
}
|
|
404
|
-
if (dbSearch.__typename === "ErrorAccessDenied") {
|
|
405
|
-
return dbSearch;
|
|
406
|
-
}
|
|
407
|
-
if (dbSearch.__typename === "ErrorBasic") {
|
|
408
|
-
return dbSearch;
|
|
409
|
-
}
|
|
410
|
-
if (dbSearch.__typename === "ErrorNotExist") {
|
|
411
|
-
return dbSearch;
|
|
412
|
-
}
|
|
413
|
-
return {
|
|
414
|
-
__typename: "SuccessResponse",
|
|
415
|
-
data: dbSearch.json
|
|
416
|
-
};
|
|
417
|
-
}
|
|
418
|
-
}
|
|
419
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJlbmNvZGVycyIsInNlcmlhbGl6ZSIsIlNlY3JlY3lEYkNsaWVudCIsImNvbnN0cnVjdG9yIiwiX2NsaWVudCIsIl9rZXlzIiwidGh1bmRlciIsImdldERiQ29uZmlnIiwiYXBwSWQiLCJlbnYiLCJkYkNvbmZpZyIsInNjYWxhcnMiLCJKc29uIiwianNvbiIsIl9fdHlwZW5hbWUiLCJtZXNzYWdlIiwiZGF0YSIsImRiR2V0RGlmZiIsImNvbmZpZyIsImRiR2V0RGlmZkNvbmZpZyIsImN1cnJlbnQiLCJuZXh0IiwiZGlmZiIsImhhc2giLCJzZXREYkNvbmZpZyIsImRiQ29uZmlnTXV0YXRpb24iLCJkYkNvbmZpZ1B1c2hUb1Byb2QiLCJkaWZmSGFzaCIsImRiQ29uZmlnVG9Qcm9kTXV0YXRpb24iLCJnZXQiLCJmaWVsZCIsInVzZXJJZCIsImRiR2V0IiwicmVzIiwic2V0IiwidmFsdWUiLCJFcnJvciIsImRiU2V0IiwidG9TdHJpbmciLCJzZWFyY2giLCJ0YWtlIiwic2tpcCIsIm9yZGVyQnkiLCJkYlNlYXJjaCIsIkRhdGVUaW1lIiwiZGF0ZVRpbWUiLCJCaWdJbnQiLCJiaWdJbnQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L1NlY3JlY3lEYkNsaWVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cbmltcG9ydCB0eXBlIHsgU2VjcmVjeUNsaWVudCwgU3VjY2Vzc1Jlc3BvbnNlLCBVc2VyRGF0YSB9IGZyb20gXCIuLi9pbmRleC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBLZXlQYWlyIH0gZnJvbSBcIi4uL2NyeXB0by9pbmRleC5qc1wiO1xuaW1wb3J0IHR5cGUge1xuICBFcnJvckFjY2Vzc0RlbmllZCxcbiAgRXJyb3JCYXNpYyxcbiAgRXJyb3JOb3RFeGlzdCxcbiAgRXJyb3JOb3RGb3VuZFxufSBmcm9tIFwiLi4vZXJyb3IuanNcIjtcbmltcG9ydCB7IGVuY29kZXJzIH0gZnJvbSBcIi4uL3V0aWxzL2VuY29kZXJzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IE1vbmdvRGJFbnYsIFRodW5kZXIgfSBmcm9tIFwiLi4vemV1cy9pbmRleC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBEb2N1bWVudCB9IGZyb20gXCJic29uXCI7XG5pbXBvcnQgeyBzZXJpYWxpemUgfSBmcm9tIFwiYnNvblwiO1xuXG5leHBvcnQgY2xhc3MgU2VjcmVjeURiQ2xpZW50IHtcbiAgLy8gI2NsaWVudDogU2VjcmVjeUNsaWVudDtcblxuICAvLyAja2V5czogS2V5UGFpcjtcblxuICAjdGh1bmRlcjogUmV0dXJuVHlwZTx0eXBlb2YgVGh1bmRlcj47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgX2NsaWVudDogU2VjcmVjeUNsaWVudCxcbiAgICBfa2V5czogS2V5UGFpcixcbiAgICB0aHVuZGVyOiBSZXR1cm5UeXBlPHR5cGVvZiBUaHVuZGVyPlxuICApIHtcbiAgICAvLyB0aGlzLiNjbGllbnQgPSBjbGllbnQ7XG4gICAgLy8gdGhpcy4ja2V5cyA9IGtleXM7XG4gICAgdGhpcy4jdGh1bmRlciA9IHRodW5kZXI7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBEYkNvbmZpZyBieSBcImVudlwiLCBpdCBjYW4gYmUgZWl0aGVyIFwiZGV2XCIgb3IgXCJwcm9kXCIuXG4gICAqL1xuICBhc3luYyBnZXREYkNvbmZpZzxUPih7XG4gICAgYXBwSWQsXG4gICAgZW52XG4gIH06IHtcbiAgICBhcHBJZDogc3RyaW5nO1xuICAgIGVudjogTW9uZ29EYkVudjtcbiAgfSk6IFByb21pc2U8U3VjY2Vzc1Jlc3BvbnNlPFQ+IHwgRXJyb3JBY2Nlc3NEZW5pZWQgfCBFcnJvck5vdEZvdW5kIHwgbnVsbD4ge1xuICAgIGNvbnN0IHsgZGJDb25maWcgfSA9IGF3YWl0IHRoaXMuI3RodW5kZXIoXCJxdWVyeVwiLCB7XG4gICAgICBzY2FsYXJzOiB7XG4gICAgICAgIEpzb246IGVuY29kZXJzLmpzb25cbiAgICAgIH1cbiAgICB9KSh7XG4gICAgICBkYkNvbmZpZzogW1xuICAgICAgICB7XG4gICAgICAgICAgYXBwSWQsXG4gICAgICAgICAgZW52XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIi4uLm9uIEVycm9yQWNjZXNzRGVuaWVkXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIi4uLm9uIEVycm9yTm90Rm91bmRcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiLi4ub24gRGJDb25maWdSZXNwb25zZVwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAganNvbjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0pO1xuXG4gICAgaWYgKCFkYkNvbmZpZykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGRiQ29uZmlnLl9fdHlwZW5hbWUgPT09IFwiRXJyb3JBY2Nlc3NEZW5pZWRcIikge1xuICAgICAgcmV0dXJuIGRiQ29uZmlnO1xuICAgIH1cblxuICAgIGlmIChkYkNvbmZpZy5fX3R5cGVuYW1lID09PSBcIkVycm9yTm90Rm91bmRcIikge1xuICAgICAgcmV0dXJuIGRiQ29uZmlnO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBfX3R5cGVuYW1lOiBcIlN1Y2Nlc3NSZXNwb25zZVwiLFxuICAgICAgZGF0YTogZGJDb25maWcuanNvbiBhcyBUXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRpZmZlcmVuY2UgcmVjaXBlIGJldHdlZW4gdHdvIERCIGNvbmZpZ3VyYXRpb25zLlxuICAgKi9cbiAgYXN5bmMgZGJHZXREaWZmPFQ+KHtcbiAgICBhcHBJZCxcbiAgICBlbnYsXG4gICAgY29uZmlnXG4gIH06IHtcbiAgICBhcHBJZDogc3RyaW5nO1xuICAgIGVudjogTW9uZ29EYkVudjtcbiAgICBjb25maWc6IHN0cmluZztcbiAgfSk6IFByb21pc2U8U3VjY2Vzc1Jlc3BvbnNlPFQ+IHwgRXJyb3JBY2Nlc3NEZW5pZWQgfCBFcnJvckJhc2ljIHwgbnVsbD4ge1xuICAgIGNvbnN0IHsgZGJHZXREaWZmIH0gPSBhd2FpdCB0aGlzLiN0aHVuZGVyKFwicXVlcnlcIiwge1xuICAgICAgc2NhbGFyczoge1xuICAgICAgICBKc29uOiBlbmNvZGVycy5qc29uXG4gICAgICB9XG4gICAgfSkoe1xuICAgICAgZGJHZXREaWZmOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBhcHBJZCxcbiAgICAgICAgICBlbnYsXG4gICAgICAgICAgY29uZmlnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIi4uLm9uIEVycm9yQmFzaWNcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiLi4ub24gRXJyb3JBY2Nlc3NEZW5pZWRcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiLi4ub24gRGJHZXREaWZmQ29uZmlnUmVzcG9uc2VcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIGRiR2V0RGlmZkNvbmZpZzoge1xuICAgICAgICAgICAgICBlbnY6IHRydWUsXG4gICAgICAgICAgICAgIGN1cnJlbnQ6IHRydWUsXG4gICAgICAgICAgICAgIG5leHQ6IHRydWUsXG4gICAgICAgICAgICAgIGRpZmY6IHRydWUsXG4gICAgICAgICAgICAgIGhhc2g6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9KTtcblxuICAgIGlmICghZGJHZXREaWZmKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoZGJHZXREaWZmLl9fdHlwZW5hbWUgPT09IFwiRXJyb3JCYXNpY1wiKSB7XG4gICAgICByZXR1cm4gZGJHZXREaWZmO1xuICAgIH1cblxuICAgIGlmIChkYkdldERpZmYuX190eXBlbmFtZSA9PT0gXCJFcnJvckFjY2Vzc0RlbmllZFwiKSB7XG4gICAgICByZXR1cm4gZGJHZXREaWZmO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBfX3R5cGVuYW1lOiBcIlN1Y2Nlc3NSZXNwb25zZVwiLFxuICAgICAgZGF0YTogZGJHZXREaWZmLmRiR2V0RGlmZkNvbmZpZyBhcyBUXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIERiQ29uZmlnIGJ5IFwiZW52XCIsIGl0IGNhbiBiZSBlaXRoZXIgXCJkZXZcIiBvciBcInByb2RcIi5cbiAgICpcbiAgICogTW9zdGx5IHVzZWQgZm9yIGhvdGZpeGVzIG9uIHByb2R1Y3Rpb24gb3IgY29tbW9uIGNoYW5nZXMgb24gZGV2ZWxvcG1lbnQuXG4gICAqL1xuICBhc3luYyBzZXREYkNvbmZpZzxUPih7XG4gICAgYXBwSWQsXG4gICAgZW52LFxuICAgIGNvbmZpZ1xuICB9OiB7XG4gICAgYXBwSWQ6IHN0cmluZztcbiAgICBlbnY6IE1vbmdvRGJFbnY7XG4gICAgY29uZmlnOiBzdHJpbmc7XG4gIH0pOiBQcm9taXNlPFN1Y2Nlc3NSZXNwb25zZTxUPiB8IEVycm9yQWNjZXNzRGVuaWVkIHwgRXJyb3JCYXNpYyB8IG51bGw+IHtcbiAgICBjb25zdCB7IGRiQ29uZmlnTXV0YXRpb24gfSA9IGF3YWl0IHRoaXMuI3RodW5kZXIoXCJtdXRhdGlvblwiLCB7XG4gICAgICBzY2FsYXJzOiB7XG4gICAgICAgIEpzb246IGVuY29kZXJzLmpzb25cbiAgICAgIH1cbiAgICB9KSh7XG4gICAgICBkYkNvbmZpZ011dGF0aW9uOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBhcHBJZCxcbiAgICAgICAgICBlbnYsXG4gICAgICAgICAgY29uZmlnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBcIi4uLm9uIEVycm9yQWNjZXNzRGVuaWVkXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIi4uLm9uIEVycm9yQmFzaWNcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiLi4ub24gRGJDb25maWdNdXRhdGlvblJlc3BvbnNlXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBkYkNvbmZpZ011dGF0aW9uOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSk7XG5cbiAgICBpZiAoIWRiQ29uZmlnTXV0YXRpb24pIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChkYkNvbmZpZ011dGF0aW9uLl9fdHlwZW5hbWUgPT09IFwiRXJyb3JCYXNpY1wiKSB7XG4gICAgICByZXR1cm4gZGJDb25maWdNdXRhdGlvbjtcbiAgICB9XG5cbiAgICBpZiAoZGJDb25maWdNdXRhdGlvbi5fX3R5cGVuYW1lID09PSBcIkVycm9yQWNjZXNzRGVuaWVkXCIpIHtcbiAgICAgIHJldHVybiBkYkNvbmZpZ011dGF0aW9uO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBfX3R5cGVuYW1lOiBcIlN1Y2Nlc3NSZXNwb25zZVwiLFxuICAgICAgZGF0YTogZGJDb25maWdNdXRhdGlvbi5kYkNvbmZpZ011dGF0aW9uIGFzIFRcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFB1c2ggdGhlIGRiQ29uZmlnRGV2IHRvIHRoZSBkYkNvbmdpZ1Byb2QuXG4gICAqXG4gICAqIEl0IHJlcXVpcmVzIGEgZGlmZkhhc2ggdG8gdmVyaWZ5IHRoYXQgdGhlIGRldmVsb3BlciBoYXMgdmFsaWRhdGVkIGhpcyBjaGFuZ2VzLlxuICAgKi9cbiAgYXN5bmMgZGJDb25maWdQdXNoVG9Qcm9kPFQ+KHtcbiAgICBhcHBJZCxcbiAgICBkaWZmSGFzaFxuICB9OiB7XG4gICAgYXBwSWQ6IHN0cmluZztcbiAgICBkaWZmSGFzaDogc3RyaW5nO1xuICB9KTogUHJvbWlzZTxTdWNjZXNzUmVzcG9uc2U8VD4gfCBFcnJvckFjY2Vzc0RlbmllZCB8IEVycm9yQmFzaWMgfCBudWxsPiB7XG4gICAgY29uc3QgeyBkYkNvbmZpZ1RvUHJvZE11dGF0aW9uIH0gPSBhd2FpdCB0aGlzLiN0aHVuZGVyKFwibXV0YXRpb25cIiwge1xuICAgICAgc2NhbGFyczoge1xuICAgICAgICBKc29uOiBlbmNvZGVycy5qc29uXG4gICAgICB9XG4gICAgfSkoe1xuICAgICAgZGJDb25maWdUb1Byb2RNdXRhdGlvbjogW1xuICAgICAgICB7XG4gICAgICAgICAgYXBwSWQsXG4gICAgICAgICAgZGlmZkhhc2hcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiLi4ub24gRXJyb3JBY2Nlc3NEZW5pZWRcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiLi4ub24gRXJyb3JCYXNpY1wiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCIuLi5vbiBEYkNvbmZpZ1RvUHJvZE11dGF0aW9uUmVzcG9uc2VcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIGRiQ29uZmlnVG9Qcm9kTXV0YXRpb246IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9KTtcblxuICAgIGlmICghZGJDb25maWdUb1Byb2RNdXRhdGlvbikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGRiQ29uZmlnVG9Qcm9kTXV0YXRpb24uX190eXBlbmFtZSA9PT0gXCJFcnJvckJhc2ljXCIpIHtcbiAgICAgIHJldHVybiBkYkNvbmZpZ1RvUHJvZE11dGF0aW9uO1xuICAgIH1cblxuICAgIGlmIChkYkNvbmZpZ1RvUHJvZE11dGF0aW9uLl9fdHlwZW5hbWUgPT09IFwiRXJyb3JBY2Nlc3NEZW5pZWRcIikge1xuICAgICAgcmV0dXJuIGRiQ29uZmlnVG9Qcm9kTXV0YXRpb247XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIF9fdHlwZW5hbWU6IFwiU3VjY2Vzc1Jlc3BvbnNlXCIsXG4gICAgICBkYXRhOiBkYkNvbmZpZ1RvUHJvZE11dGF0aW9uLmRiQ29uZmlnVG9Qcm9kTXV0YXRpb24gYXMgVFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB2YWx1ZSBvZiBhIGZpZWxkLlxuICAgKi9cbiAgYXN5bmMgZ2V0PFU+KHtcbiAgICBmaWVsZCxcbiAgICBhcHBJZCxcbiAgICB1c2VySWQsXG4gICAgZW52XG4gIH06IHtcbiAgICBmaWVsZDogc3RyaW5nO1xuICAgIGFwcElkOiBzdHJpbmc7XG4gICAgZW52OiBNb25nb0RiRW52O1xuICAgIHVzZXJJZD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIH0pOiBQcm9taXNlPFxuICAgIHwgU3VjY2Vzc1Jlc3BvbnNlPFU+XG4gICAgfCBFcnJvckFjY2Vzc0RlbmllZFxuICAgIHwgRXJyb3JCYXNpY1xuICAgIHwgRXJyb3JOb3RFeGlzdFxuICAgIHwgRXJyb3JOb3RGb3VuZFxuICAgIHwgbnVsbFxuICA+IHtcbiAgICBjb25zdCB7IGRiR2V0IH0gPSBhd2FpdCB0aGlzLiN0aHVuZGVyKFwicXVlcnlcIikoe1xuICAgICAgZGJHZXQ6IFtcbiAgICAgICAge1xuICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgIGFwcElkLFxuICAgICAgICAgIHVzZXJJZCxcbiAgICAgICAgICBlbnZcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiLi4ub24gRXJyb3JBY2Nlc3NEZW5pZWRcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiLi4ub24gRXJyb3JCYXNpY1wiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCIuLi5vbiBFcnJvck5vdEV4aXN0XCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIi4uLm9uIEVycm9yTm90Rm91bmRcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiLi4ub24gRGJHZXRSZXNwb25zZVwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAganNvbjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0pO1xuXG4gICAgaWYgKCFkYkdldCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGRiR2V0Ll9fdHlwZW5hbWUgPT09IFwiRXJyb3JBY2Nlc3NEZW5pZWRcIikge1xuICAgICAgcmV0dXJuIGRiR2V0O1xuICAgIH1cblxuICAgIGlmIChkYkdldC5fX3R5cGVuYW1lID09PSBcIkVycm9yQmFzaWNcIikge1xuICAgICAgcmV0dXJuIGRiR2V0O1xuICAgIH1cblxuICAgIGlmIChkYkdldC5fX3R5cGVuYW1lID09PSBcIkVycm9yTm90RXhpc3RcIikge1xuICAgICAgcmV0dXJuIGRiR2V0O1xuICAgIH1cblxuICAgIGlmIChkYkdldC5fX3R5cGVuYW1lID09PSBcIkVycm9yTm90Rm91bmRcIikge1xuICAgICAgcmV0dXJuIGRiR2V0O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBfX3R5cGVuYW1lOiBcIlN1Y2Nlc3NSZXNwb25zZVwiLFxuICAgICAgZGF0YTogKGRiR2V0Lmpzb24gYXMgeyByZXM6IFUgfSkucmVzXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgYW4gdXNlciBkb2N1bWVudC5cbiAgICovXG4gIGFzeW5jIHNldDxUIGV4dGVuZHMgVXNlckRhdGEsIFUgZXh0ZW5kcyBEb2N1bWVudD4oe1xuICAgIHZhbHVlLFxuICAgIGFwcElkLFxuICAgIGVudixcbiAgICB1c2VySWRcbiAgfToge1xuICAgIHZhbHVlOiBVO1xuICAgIGFwcElkOiBzdHJpbmc7XG4gICAgZW52OiBNb25nb0RiRW52O1xuICAgIHVzZXJJZD86IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIH0pOiBQcm9taXNlPFxuICAgIFN1Y2Nlc3NSZXNwb25zZTxUPiB8IEVycm9yQWNjZXNzRGVuaWVkIHwgRXJyb3JCYXNpYyB8IEVycm9yTm90Rm91bmQgfCBudWxsXG4gID4ge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYHZhbHVlIHNob3VsZCBiZSBhbiBvYmplY3QgaW5jbHVkaW5nIGZpZWxkcyB5b3Ugd2FudCB0byB1cGRhdGUuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCB7IGRiU2V0IH0gPSBhd2FpdCB0aGlzLiN0aHVuZGVyKFwibXV0YXRpb25cIikoe1xuICAgICAgZGJTZXQ6IFtcbiAgICAgICAge1xuICAgICAgICAgIHVzZXJJZCxcbiAgICAgICAgICBhcHBJZCxcbiAgICAgICAgICBlbnYsXG4gICAgICAgICAgdmFsdWU6IHNlcmlhbGl6ZSh2YWx1ZSkudG9TdHJpbmcoXCJiYXNlNjRcIilcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiLi4ub24gRXJyb3JBY2Nlc3NEZW5pZWRcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiLi4ub24gRXJyb3JCYXNpY1wiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCIuLi5vbiBFcnJvck5vdEZvdW5kXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIi4uLm9uIERiU2V0UmVzcG9uc2VcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIGRiU2V0OiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSk7XG5cbiAgICBpZiAoIWRiU2V0KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoZGJTZXQuX190eXBlbmFtZSA9PT0gXCJFcnJvckFjY2Vzc0RlbmllZFwiKSB7XG4gICAgICByZXR1cm4gZGJTZXQ7XG4gICAgfVxuXG4gICAgaWYgKGRiU2V0Ll9fdHlwZW5hbWUgPT09IFwiRXJyb3JOb3RGb3VuZFwiKSB7XG4gICAgICByZXR1cm4gZGJTZXQ7XG4gICAgfVxuXG4gICAgaWYgKGRiU2V0Ll9fdHlwZW5hbWUgPT09IFwiRXJyb3JCYXNpY1wiKSB7XG4gICAgICByZXR1cm4gZGJTZXQ7XG4gICAgfVxuXG4gICAgaWYgKCFkYlNldC5kYlNldCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIF9fdHlwZW5hbWU6IFwiU3VjY2Vzc1Jlc3BvbnNlXCIsXG4gICAgICBkYXRhOiAoZGJTZXQuZGJTZXQgYXMgeyByZXM6IFQgfSkucmVzXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWFyY2hlcyBmb3IgdXNlciBmaWVsZHMgdGhhdCBtYXRjaCB0aGUgc2VhcmNoIGFyZ3VtZW50cy5cbiAgICovXG4gIGFzeW5jIHNlYXJjaDxUPih7XG4gICAgYXBwSWQsXG4gICAgZW52LFxuICAgIHNlYXJjaCxcbiAgICBmaWVsZCxcbiAgICB0YWtlLFxuICAgIHNraXAsXG4gICAgb3JkZXJCeVxuICB9OiB7XG4gICAgYXBwSWQ6IHN0cmluZztcbiAgICBlbnY6IE1vbmdvRGJFbnY7XG4gICAgZmllbGQ6IHN0cmluZztcbiAgICBzZWFyY2g6IHN0cmluZztcbiAgICB0YWtlPzogbnVtYmVyO1xuICAgIHNraXA/OiBudW1iZXI7XG4gICAgb3JkZXJCeT86IFwiY3JlYXRlZEF0X0FTQ1wiIHwgXCJjcmVhdGVkQXRfREVTQ1wiO1xuICB9KTogUHJvbWlzZTxcbiAgICBTdWNjZXNzUmVzcG9uc2U8VFtdPiB8IEVycm9yQWNjZXNzRGVuaWVkIHwgRXJyb3JCYXNpYyB8IEVycm9yTm90RXhpc3QgfCBudWxsXG4gID4ge1xuICAgIGNvbnN0IHsgZGJTZWFyY2ggfSA9IGF3YWl0IHRoaXMuI3RodW5kZXIoXCJxdWVyeVwiLCB7XG4gICAgICBzY2FsYXJzOiB7XG4gICAgICAgIEpzb246IGVuY29kZXJzLmpzb24sXG4gICAgICAgIERhdGVUaW1lOiBlbmNvZGVycy5kYXRlVGltZSxcbiAgICAgICAgQmlnSW50OiBlbmNvZGVycy5iaWdJbnRcbiAgICAgIH1cbiAgICB9KSh7XG4gICAgICBkYlNlYXJjaDogW1xuICAgICAgICB7XG4gICAgICAgICAgYXBwSWQsXG4gICAgICAgICAgZW52LFxuICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgIHNlYXJjaCxcbiAgICAgICAgICB0YWtlLFxuICAgICAgICAgIHNraXAsXG4gICAgICAgICAgb3JkZXJCeVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCIuLi5vbiBFcnJvckFjY2Vzc0RlbmllZFwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAgbWVzc2FnZTogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCIuLi5vbiBFcnJvckJhc2ljXCI6IHtcbiAgICAgICAgICAgIF9fdHlwZW5hbWU6IHRydWUsXG4gICAgICAgICAgICBtZXNzYWdlOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIi4uLm9uIEVycm9yTm90RXhpc3RcIjoge1xuICAgICAgICAgICAgX190eXBlbmFtZTogdHJ1ZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiLi4ub24gRGJTZWFyY2hSZXNwb25zZVwiOiB7XG4gICAgICAgICAgICBfX3R5cGVuYW1lOiB0cnVlLFxuICAgICAgICAgICAganNvbjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0pO1xuXG4gICAgaWYgKCFkYlNlYXJjaCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGRiU2VhcmNoLl9fdHlwZW5hbWUgPT09IFwiRXJyb3JBY2Nlc3NEZW5pZWRcIikge1xuICAgICAgcmV0dXJuIGRiU2VhcmNoO1xuICAgIH1cblxuICAgIGlmIChkYlNlYXJjaC5fX3R5cGVuYW1lID09PSBcIkVycm9yQmFzaWNcIikge1xuICAgICAgcmV0dXJuIGRiU2VhcmNoO1xuICAgIH1cblxuICAgIGlmIChkYlNlYXJjaC5fX3R5cGVuYW1lID09PSBcIkVycm9yTm90RXhpc3RcIikge1xuICAgICAgcmV0dXJuIGRiU2VhcmNoO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBfX3R5cGVuYW1lOiBcIlN1Y2Nlc3NSZXNwb25zZVwiLFxuICAgICAgZGF0YTogZGJTZWFyY2guanNvbiBhcyB1bmtub3duIGFzIFRbXVxuICAgIH07XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7QUFTQSxTQUFTQSxRQUFRLFFBQVEsc0JBQXNCO0FBRy9DLFNBQVNDLFNBQVMsUUFBUSxNQUFNO0FBQUM7QUFFakMsT0FBTyxNQUFNQyxlQUFlLENBQUM7RUFDM0I7O0VBRUE7O0VBSUFDLFdBQVcsQ0FDVEMsT0FBc0IsRUFDdEJDLEtBQWMsRUFDZEMsT0FBbUMsRUFDbkM7SUFBQTtNQUFBO01BQUE7SUFBQTtJQUNBO0lBQ0E7SUFDQSxnQ0FBSSx3QkFBWUEsT0FBTztFQUN6Qjs7RUFFQTtBQUNGO0FBQ0E7RUFDRSxNQUFNQyxXQUFXLE9BTTBEO0lBQUEsSUFOdEQ7TUFDbkJDLEtBQUs7TUFDTEM7SUFJRixDQUFDO0lBQ0MsTUFBTTtNQUFFQztJQUFTLENBQUMsR0FBRyxNQUFNLGdDQUFJLHNCQUFVLE9BQU8sRUFBRTtNQUNoREMsT0FBTyxFQUFFO1FBQ1BDLElBQUksRUFBRVosUUFBUSxDQUFDYTtNQUNqQjtJQUNGLENBQUMsRUFBRTtNQUNESCxRQUFRLEVBQUUsQ0FDUjtRQUNFRixLQUFLO1FBQ0xDO01BQ0YsQ0FBQyxFQUNEO1FBQ0UseUJBQXlCLEVBQUU7VUFDekJLLFVBQVUsRUFBRSxJQUFJO1VBQ2hCQyxPQUFPLEVBQUU7UUFDWCxDQUFDO1FBQ0QscUJBQXFCLEVBQUU7VUFDckJELFVBQVUsRUFBRSxJQUFJO1VBQ2hCQyxPQUFPLEVBQUU7UUFDWCxDQUFDO1FBQ0Qsd0JBQXdCLEVBQUU7VUFDeEJELFVBQVUsRUFBRSxJQUFJO1VBQ2hCRCxJQUFJLEVBQUU7UUFDUjtNQUNGLENBQUM7SUFFTCxDQUFDLENBQUM7SUFFRixJQUFJLENBQUNILFFBQVEsRUFBRTtNQUNiLE9BQU8sSUFBSTtJQUNiO0lBRUEsSUFBSUEsUUFBUSxDQUFDSSxVQUFVLEtBQUssbUJBQW1CLEVBQUU7TUFD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
|
|
1
|
+
import{encoders as a}from"../utils/encoders.js";import{serialize as c}from"bson";class m{#e;constructor(t,s,e){this.#e=e}async getDbConfig({appId:t,env:s}){const{dbConfig:e}=await this.#e("query",{scalars:{Json:a.json}})({dbConfig:[{appId:t,env:s},{"...on ErrorAccessDenied":{__typename:!0,message:!0},"...on ErrorNotFound":{__typename:!0,message:!0},"...on DbConfigResponse":{__typename:!0,json:!0}}]});return e?e.__typename==="ErrorAccessDenied"||e.__typename==="ErrorNotFound"?e:{__typename:"SuccessResponse",data:e.json}:null}async dbGetDiff({appId:t,env:s,config:e}){const{dbGetDiff:n}=await this.#e("query",{scalars:{Json:a.json}})({dbGetDiff:[{appId:t,env:s,config:e},{"...on ErrorBasic":{__typename:!0,message:!0},"...on ErrorAccessDenied":{__typename:!0,message:!0},"...on DbGetDiffConfigResponse":{__typename:!0,dbGetDiffConfig:{env:!0,current:!0,next:!0,diff:!0,hash:!0}}}]});return n?n.__typename==="ErrorBasic"||n.__typename==="ErrorAccessDenied"?n:{__typename:"SuccessResponse",data:n.dbGetDiffConfig}:null}async setDbConfig({appId:t,env:s,config:e}){const{dbConfigMutation:n}=await this.#e("mutation",{scalars:{Json:a.json}})({dbConfigMutation:[{appId:t,env:s,config:e},{"...on ErrorAccessDenied":{__typename:!0,message:!0},"...on ErrorBasic":{__typename:!0,message:!0},"...on DbConfigMutationResponse":{__typename:!0,dbConfigMutation:!0}}]});return n?n.__typename==="ErrorBasic"||n.__typename==="ErrorAccessDenied"?n:{__typename:"SuccessResponse",data:n.dbConfigMutation}:null}async dbConfigPushToProd({appId:t,diffHash:s}){const{dbConfigToProdMutation:e}=await this.#e("mutation",{scalars:{Json:a.json}})({dbConfigToProdMutation:[{appId:t,diffHash:s},{"...on ErrorAccessDenied":{__typename:!0,message:!0},"...on ErrorBasic":{__typename:!0,message:!0},"...on DbConfigToProdMutationResponse":{__typename:!0,dbConfigToProdMutation:!0}}]});return e?e.__typename==="ErrorBasic"||e.__typename==="ErrorAccessDenied"?e:{__typename:"SuccessResponse",data:e.dbConfigToProdMutation}:null}async get({field:t,appId:s,userId:e,env:n}){const{dbGet:r}=await this.#e("query")({dbGet:[{field:t,appId:s,userId:e,env:n},{"...on ErrorAccessDenied":{__typename:!0,message:!0},"...on ErrorBasic":{__typename:!0,message:!0},"...on ErrorNotExist":{__typename:!0,message:!0},"...on ErrorNotFound":{__typename:!0,message:!0},"...on DbGetResponse":{__typename:!0,json:!0}}]});return r?r.__typename==="ErrorAccessDenied"||r.__typename==="ErrorBasic"||r.__typename==="ErrorNotExist"||r.__typename==="ErrorNotFound"?r:{__typename:"SuccessResponse",data:r.json.res}:null}async set({value:t,appId:s,env:e,userId:n}){if(typeof t!="object")throw new Error("value should be an object including fields you want to update.");const{dbSet:r}=await this.#e("mutation")({dbSet:[{userId:n,appId:s,env:e,value:c(t).toString("base64")},{"...on ErrorAccessDenied":{__typename:!0,message:!0},"...on ErrorBasic":{__typename:!0,message:!0},"...on ErrorNotFound":{__typename:!0,message:!0},"...on DbSetResponse":{__typename:!0,dbSet:!0}}]});return r?r.__typename==="ErrorAccessDenied"||r.__typename==="ErrorNotFound"||r.__typename==="ErrorBasic"?r:r.dbSet?{__typename:"SuccessResponse",data:r.dbSet.res}:null:null}async search({appId:t,env:s,search:e,field:n,take:r,skip:i,orderBy:u}){const{dbSearch:o}=await this.#e("query",{scalars:{Json:a.json,DateTime:a.dateTime,BigInt:a.bigInt}})({dbSearch:[{appId:t,env:s,field:n,search:e,take:r,skip:i,orderBy:u},{"...on ErrorAccessDenied":{__typename:!0,message:!0},"...on ErrorBasic":{__typename:!0,message:!0},"...on ErrorNotExist":{__typename:!0,message:!0},"...on DbSearchResponse":{__typename:!0,json:!0}}]});return o?o.__typename==="ErrorAccessDenied"||o.__typename==="ErrorBasic"||o.__typename==="ErrorNotExist"?o:{__typename:"SuccessResponse",data:o.json}:null}}export{m as SecrecyDbClient};
|
|
2
|
+
//# sourceMappingURL=SecrecyDbClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/client/SecrecyDbClient.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport type { SecrecyClient, SuccessResponse, UserData } from \"../index.js\";\nimport type { KeyPair } from \"../crypto/index.js\";\nimport type {\n ErrorAccessDenied,\n ErrorBasic,\n ErrorNotExist,\n ErrorNotFound\n} from \"../error.js\";\nimport { encoders } from \"../utils/encoders.js\";\nimport type { MongoDbEnv, Thunder } from \"../zeus/index.js\";\nimport type { Document } from \"bson\";\nimport { serialize } from \"bson\";\n\nexport class SecrecyDbClient {\n // #client: SecrecyClient;\n\n // #keys: KeyPair;\n\n #thunder: ReturnType<typeof Thunder>;\n\n constructor(\n _client: SecrecyClient,\n _keys: KeyPair,\n thunder: ReturnType<typeof Thunder>\n ) {\n // this.#client = client;\n // this.#keys = keys;\n this.#thunder = thunder;\n }\n\n /**\n * Get the DbConfig by \"env\", it can be either \"dev\" or \"prod\".\n */\n async getDbConfig<T>({\n appId,\n env\n }: {\n appId: string;\n env: MongoDbEnv;\n }): Promise<SuccessResponse<T> | ErrorAccessDenied | ErrorNotFound | null> {\n const { dbConfig } = await this.#thunder(\"query\", {\n scalars: {\n Json: encoders.json\n }\n })({\n dbConfig: [\n {\n appId,\n env\n },\n {\n \"...on ErrorAccessDenied\": {\n __typename: true,\n message: true\n },\n \"...on ErrorNotFound\": {\n __typename: true,\n message: true\n },\n \"...on DbConfigResponse\": {\n __typename: true,\n json: true\n }\n }\n ]\n });\n\n if (!dbConfig) {\n return null;\n }\n\n if (dbConfig.__typename === \"ErrorAccessDenied\") {\n return dbConfig;\n }\n\n if (dbConfig.__typename === \"ErrorNotFound\") {\n return dbConfig;\n }\n\n return {\n __typename: \"SuccessResponse\",\n data: dbConfig.json as T\n };\n }\n\n /**\n * Get the difference recipe between two DB configurations.\n */\n async dbGetDiff<T>({\n appId,\n env,\n config\n }: {\n appId: string;\n env: MongoDbEnv;\n config: string;\n }): Promise<SuccessResponse<T> | ErrorAccessDenied | ErrorBasic | null> {\n const { dbGetDiff } = await this.#thunder(\"query\", {\n scalars: {\n Json: encoders.json\n }\n })({\n dbGetDiff: [\n {\n appId,\n env,\n config\n },\n {\n \"...on ErrorBasic\": {\n __typename: true,\n message: true\n },\n \"...on ErrorAccessDenied\": {\n __typename: true,\n message: true\n },\n \"...on DbGetDiffConfigResponse\": {\n __typename: true,\n dbGetDiffConfig: {\n env: true,\n current: true,\n next: true,\n diff: true,\n hash: true\n }\n }\n }\n ]\n });\n\n if (!dbGetDiff) {\n return null;\n }\n\n if (dbGetDiff.__typename === \"ErrorBasic\") {\n return dbGetDiff;\n }\n\n if (dbGetDiff.__typename === \"ErrorAccessDenied\") {\n return dbGetDiff;\n }\n\n return {\n __typename: \"SuccessResponse\",\n data: dbGetDiff.dbGetDiffConfig as T\n };\n }\n\n /**\n * Set the DbConfig by \"env\", it can be either \"dev\" or \"prod\".\n *\n * Mostly used for hotfixes on production or common changes on development.\n */\n async setDbConfig<T>({\n appId,\n env,\n config\n }: {\n appId: string;\n env: MongoDbEnv;\n config: string;\n }): Promise<SuccessResponse<T> | ErrorAccessDenied | ErrorBasic | null> {\n const { dbConfigMutation } = await this.#thunder(\"mutation\", {\n scalars: {\n Json: encoders.json\n }\n })({\n dbConfigMutation: [\n {\n appId,\n env,\n config\n },\n {\n \"...on ErrorAccessDenied\": {\n __typename: true,\n message: true\n },\n \"...on ErrorBasic\": {\n __typename: true,\n message: true\n },\n \"...on DbConfigMutationResponse\": {\n __typename: true,\n dbConfigMutation: true\n }\n }\n ]\n });\n\n if (!dbConfigMutation) {\n return null;\n }\n\n if (dbConfigMutation.__typename === \"ErrorBasic\") {\n return dbConfigMutation;\n }\n\n if (dbConfigMutation.__typename === \"ErrorAccessDenied\") {\n return dbConfigMutation;\n }\n\n return {\n __typename: \"SuccessResponse\",\n data: dbConfigMutation.dbConfigMutation as T\n };\n }\n\n /**\n * Push the dbConfigDev to the dbCongigProd.\n *\n * It requires a diffHash to verify that the developer has validated his changes.\n */\n async dbConfigPushToProd<T>({\n appId,\n diffHash\n }: {\n appId: string;\n diffHash: string;\n }): Promise<SuccessResponse<T> | ErrorAccessDenied | ErrorBasic | null> {\n const { dbConfigToProdMutation } = await this.#thunder(\"mutation\", {\n scalars: {\n Json: encoders.json\n }\n })({\n dbConfigToProdMutation: [\n {\n appId,\n diffHash\n },\n {\n \"...on ErrorAccessDenied\": {\n __typename: true,\n message: true\n },\n \"...on ErrorBasic\": {\n __typename: true,\n message: true\n },\n \"...on DbConfigToProdMutationResponse\": {\n __typename: true,\n dbConfigToProdMutation: true\n }\n }\n ]\n });\n\n if (!dbConfigToProdMutation) {\n return null;\n }\n\n if (dbConfigToProdMutation.__typename === \"ErrorBasic\") {\n return dbConfigToProdMutation;\n }\n\n if (dbConfigToProdMutation.__typename === \"ErrorAccessDenied\") {\n return dbConfigToProdMutation;\n }\n\n return {\n __typename: \"SuccessResponse\",\n data: dbConfigToProdMutation.dbConfigToProdMutation as T\n };\n }\n\n /**\n * Get the value of a field.\n */\n async get<U>({\n field,\n appId,\n userId,\n env\n }: {\n field: string;\n appId: string;\n env: MongoDbEnv;\n userId?: string | null | undefined;\n }): Promise<\n | SuccessResponse<U>\n | ErrorAccessDenied\n | ErrorBasic\n | ErrorNotExist\n | ErrorNotFound\n | null\n > {\n const { dbGet } = await this.#thunder(\"query\")({\n dbGet: [\n {\n field,\n appId,\n userId,\n env\n },\n {\n \"...on ErrorAccessDenied\": {\n __typename: true,\n message: true\n },\n \"...on ErrorBasic\": {\n __typename: true,\n message: true\n },\n \"...on ErrorNotExist\": {\n __typename: true,\n message: true\n },\n \"...on ErrorNotFound\": {\n __typename: true,\n message: true\n },\n \"...on DbGetResponse\": {\n __typename: true,\n json: true\n }\n }\n ]\n });\n\n if (!dbGet) {\n return null;\n }\n\n if (dbGet.__typename === \"ErrorAccessDenied\") {\n return dbGet;\n }\n\n if (dbGet.__typename === \"ErrorBasic\") {\n return dbGet;\n }\n\n if (dbGet.__typename === \"ErrorNotExist\") {\n return dbGet;\n }\n\n if (dbGet.__typename === \"ErrorNotFound\") {\n return dbGet;\n }\n\n return {\n __typename: \"SuccessResponse\",\n data: (dbGet.json as { res: U }).res\n };\n }\n\n /**\n * Set an user document.\n */\n async set<T extends UserData, U extends Document>({\n value,\n appId,\n env,\n userId\n }: {\n value: U;\n appId: string;\n env: MongoDbEnv;\n userId?: string | null | undefined;\n }): Promise<\n SuccessResponse<T> | ErrorAccessDenied | ErrorBasic | ErrorNotFound | null\n > {\n if (typeof value !== \"object\") {\n throw new Error(\n `value should be an object including fields you want to update.`\n );\n }\n\n const { dbSet } = await this.#thunder(\"mutation\")({\n dbSet: [\n {\n userId,\n appId,\n env,\n value: serialize(value).toString(\"base64\")\n },\n {\n \"...on ErrorAccessDenied\": {\n __typename: true,\n message: true\n },\n \"...on ErrorBasic\": {\n __typename: true,\n message: true\n },\n \"...on ErrorNotFound\": {\n __typename: true,\n message: true\n },\n \"...on DbSetResponse\": {\n __typename: true,\n dbSet: true\n }\n }\n ]\n });\n\n if (!dbSet) {\n return null;\n }\n\n if (dbSet.__typename === \"ErrorAccessDenied\") {\n return dbSet;\n }\n\n if (dbSet.__typename === \"ErrorNotFound\") {\n return dbSet;\n }\n\n if (dbSet.__typename === \"ErrorBasic\") {\n return dbSet;\n }\n\n if (!dbSet.dbSet) {\n return null;\n }\n\n return {\n __typename: \"SuccessResponse\",\n data: (dbSet.dbSet as { res: T }).res\n };\n }\n\n /**\n * Searches for user fields that match the search arguments.\n */\n async search<T>({\n appId,\n env,\n search,\n field,\n take,\n skip,\n orderBy\n }: {\n appId: string;\n env: MongoDbEnv;\n field: string;\n search: string;\n take?: number;\n skip?: number;\n orderBy?: \"createdAt_ASC\" | \"createdAt_DESC\";\n }): Promise<\n SuccessResponse<T[]> | ErrorAccessDenied | ErrorBasic | ErrorNotExist | null\n > {\n const { dbSearch } = await this.#thunder(\"query\", {\n scalars: {\n Json: encoders.json,\n DateTime: encoders.dateTime,\n BigInt: encoders.bigInt\n }\n })({\n dbSearch: [\n {\n appId,\n env,\n field,\n search,\n take,\n skip,\n orderBy\n },\n {\n \"...on ErrorAccessDenied\": {\n __typename: true,\n message: true\n },\n \"...on ErrorBasic\": {\n __typename: true,\n message: true\n },\n \"...on ErrorNotExist\": {\n __typename: true,\n message: true\n },\n \"...on DbSearchResponse\": {\n __typename: true,\n json: true\n }\n }\n ]\n });\n\n if (!dbSearch) {\n return null;\n }\n\n if (dbSearch.__typename === \"ErrorAccessDenied\") {\n return dbSearch;\n }\n\n if (dbSearch.__typename === \"ErrorBasic\") {\n return dbSearch;\n }\n\n if (dbSearch.__typename === \"ErrorNotExist\") {\n return dbSearch;\n }\n\n return {\n __typename: \"SuccessResponse\",\n data: dbSearch.json as unknown as T[]\n };\n }\n}\n"],"mappings":"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","names":["encoders","serialize","SecrecyDbClient","#thunder","_client","_keys","thunder","appId","env","dbConfig","config","dbGetDiff","dbConfigMutation","diffHash","dbConfigToProdMutation","field","userId","dbGet","value","dbSet","search","take","skip","orderBy","dbSearch"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }var _shortid = require('shortid');var _cachejs = require('../cache.js');var _indexjs = require('../index.js');var _mailjs = require('./convert/mail.js');var _selectorsjs = require('./types/selectors.js');class b{#t;#e;#r;constructor(r,e,t){;b.prototype.__init.call(this);this.#t=r,this.#e=e,this.#r=t}async get({id:r}){const{mail:e}=await this.#r("query",{scalars:{DateTime:{decode:s=>new Date(s),encode:s=>s.toISOString()}}})({mail:[{id:r},{"...on ErrorAccessDenied":{__typename:!0,message:!0},"...on QueryMailResponse":{__typename:!0,mail:_selectorsjs.mailSelector}}]});if(!e)return null;if(e.__typename==="ErrorAccessDenied")return e;if(!e.mail)return null;const t=_mailjs.convertInternalMailToExternal.call(void 0, e.mail,this.#e);return t?{__typename:"SuccessResponse",data:t}:null}async recover({mailId:r}){const{recoverMail:e}=await this.#r("mutation")({recoverMail:[{mailId:r},{"...on ErrorAccessDenied":{__typename:!0,message:!0},"...on ErrorBasic":{__typename:!0,message:!0},"...on RecoverMailResponse":{__typename:!0,recoverMail:!0}}]});return e?e.__typename==="ErrorAccessDenied"||e.__typename==="ErrorBasic"?e:{__typename:"SuccessResponse",data:e.recoverMail}:null}async deletedMails({mailType:r}){const{deletedMails:e}=await this.#r("query",{scalars:{DateTime:{decode:s=>new Date(s),encode:s=>s.toISOString()}}})({deletedMails:[{mailType:r},{"...on ErrorAccessDenied":{__typename:!0,message:!0},"...on DeletedMailsResponse":{__typename:!0,deletedMails:_selectorsjs.mailSelector}}]});if(!e)return null;if(e.__typename==="ErrorAccessDenied")return e;const t=new Array;for(const s of e.deletedMails){const i=_mailjs.convertInternalMailToExternal.call(void 0, s,this.#e);i&&t.push(i)}return{__typename:"SuccessResponse",data:t}}async create(r,e){const t=await this.createDraft(r);if(!t)return{__typename:"SuccessResponse",data:!1};if(t.__typename==="ErrorBasic"||t.__typename==="ErrorAccessDenied")return t;const s=await this.sendDraft(t.data.mailIntegrityId,e);return s?s.__typename==="ErrorAccessDenied"||s.__typename==="ErrorBasic"?s:{__typename:"SuccessResponse",data:s.data}:null}async waitingReceivedMails(){const{user:r}=await this.#r("query")({user:[{},{"...on ErrorNotFound":{__typename:!0,message:!0},"...on UserResponse":{__typename:!0,user:{waitingReceivedMails:{date:!0,attachmentsCount:!0,sender:{id:!0,firstname:!0,lastname:!0,email:!0,publicKey:!0},recipients:{id:!0,firstname:!0,lastname:!0,email:!0,publicKey:!0},temporaryRecipients:{email:!0}}}}}]});return r?r.__typename==="ErrorNotFound"?r:r.user?{__typename:"SuccessResponse",data:r.user.waitingReceivedMails.map(t=>({id:_shortid.generate.call(void 0, ),...t,date:new Date(t.date)}))}:null:null}async updateDraft(r,{body:e,subject:t,files:s,recipientsIds:i,replyTo:m}){const a=await this.draftMails();if(!a)return null;if(a.__typename!=="SuccessResponse")return a;if(!a.data.find(o=>o.mailIntegrityId===r))throw new Error(`Invalid draft ${r}`);let u=null,M=null;(e||t)&&(u=_indexjs.sodium.randombytes_buf(_indexjs.sodium.crypto_generichash_KEYBYTES,"hex"),M=_indexjs.sodium.crypto_generichash(_indexjs.sodium.crypto_generichash_BYTES,JSON.stringify({body:e,subject:t}),u,"hex"));const l=new Array;if(s)for(const o of s){let h=_cachejs.filesCache.get(o.id);if(!h&&(await this.#t.cloud.fileMetadata({id:o.id}),h=_cachejs.filesCache.get(o.id),!h))throw new Error(`File ${o.name} (${o.id}) does not exists`);l.push({id:h.id,fileKey:_indexjs.sodium.to_hex(_indexjs.encryptCryptoBox.call(void 0, _indexjs.sodium.from_string(h.key),this.#e.publicKey,this.#e.privateKey)),name:_indexjs.sodium.to_hex(_indexjs.encryptCryptoBox.call(void 0, _indexjs.sodium.from_string(o.name),this.#e.publicKey,this.#e.privateKey))})}const{updateDraftMail:d}=await this.#r("mutation",{scalars:{Json:{encode:o=>JSON.stringify(o),decode:o=>JSON.parse(o)},DateTime:{decode:o=>new Date(o),encode:o=>o.toISOString()},BigInt:{decode:o=>BigInt(o),encode:o=>o.toString()}}})({updateDraftMail:[{draftId:r,recipients:i,replyTo:m,body:e?_indexjs.sodium.to_hex(_indexjs.encryptCryptoBox.call(void 0, _indexjs.sodium.from_string(e),this.#e.publicKey,this.#e.privateKey)):null,subject:t?_indexjs.sodium.to_hex(_indexjs.encryptCryptoBox.call(void 0, _indexjs.sodium.from_string(t),this.#e.publicKey,this.#e.privateKey)):null,senderFiles:l,hash:M,hashKey:u},{"...on ErrorAccessDenied":{__typename:!0,message:!0},"...on ErrorBasic":{__typename:!0,message:!0},"...on UpdateDraftMailResponse":{__typename:!0,updateDraftMail:_selectorsjs.mailSelector}}]});return d?d.__typename==="ErrorAccessDenied"||d.__typename==="ErrorBasic"?d:d.updateDraftMail?{__typename:"SuccessResponse",data:_mailjs.convertInternalMailToExternal.call(void 0, d.updateDraftMail,this.#e)}:null:null}async deleteDraft(r){const{deleteDraftMail:e}=await this.#r("mutation")({deleteDraftMail:[{draftId:r},{"...on ErrorAccessDenied":{__typename:!0,message:!0},"...on DeleteDraftMailResponse":{__typename:!0,deleteDraftMail:!0}}]});return e?e.__typename==="ErrorAccessDenied"?e:e.deleteDraftMail?{__typename:"SuccessResponse",data:_nullishCoalesce(e.deleteDraftMail, () => (!1))}:null:null}async deleteTrash({ids:r}){const{deleteMailTrash:e}=await this.#r("mutation")({deleteMailTrash:[{ids:r},{"...on ErrorAccessDenied":{__typename:!0,message:!0},"...on DeleteMailTrashResponse":{__typename:!0,deleteMailTrash:!0}}]});return e?e.__typename==="ErrorAccessDenied"?e:e.deleteMailTrash?{__typename:"SuccessResponse",data:e.deleteMailTrash}:null:null}async emptyTrash(){const{emptyMailTrash:r}=await this.#r("mutation")({emptyMailTrash:{"...on ErrorAccessDenied":{__typename:!0,message:!0},"...on EmptyMailTrashResponse":{__typename:!0,emptyMailTrash:!0}}});return r?r.__typename==="ErrorAccessDenied"?r:r.emptyMailTrash?{__typename:"SuccessResponse",data:r.emptyMailTrash}:null:null}async delete({mailId:r}){const{deleteMail:e}=await this.#r("mutation")({deleteMail:[{mailId:r},{"...on ErrorAccessDenied":{__typename:!0,message:!0},"...on DeleteMailResponse":{__typename:!0,deleteMail:!0}}]});return e?e.__typename==="ErrorAccessDenied"?e:{__typename:"SuccessResponse",data:e.deleteMail}:null}async sendDraft(r,e){const t=await this.draftMails();if(!t)return{__typename:"SuccessResponse",data:!1};if(t.__typename!=="SuccessResponse")return{__typename:"SuccessResponse",data:!1};const s=t.data.find(c=>c.mailIntegrityId===r);if(!s)return{__typename:"SuccessResponse",data:!1};const i=new Array,m=new Array;for(const{email:c}of s.temporaryRecipients){if(!c)continue;const u=await this._eachUser(s.files,s.subject,s.body,c);u?i.push(u):m.push(c)}for(const{id:c}of s.recipients){const u=await this._eachUser(s.files,s.subject,s.body,c);u?i.push(u):m.push(c)}const{sendDraftMail:a}=await this.#r("mutation")({sendDraftMail:[{temporaryRecipients:m,recipients:i,draftMailId:s.mailIntegrityId,customMessage:e},{"...on ErrorAccessDenied":{__typename:!0,message:!0},"...on ErrorBasic":{__typename:!0,message:!0},"...on SendDraftMailResponse":{__typename:!0,sendDraftMail:!0}}]});return a?a.__typename==="ErrorAccessDenied"||a.__typename==="ErrorBasic"?a:a.sendDraftMail?{__typename:"SuccessResponse",data:a.sendDraftMail}:null:null}async sendWaitingEmails(){const r=await this.sentMails();if(!r)return{__typename:"SuccessResponse",data:!1};if(r.__typename!=="SuccessResponse")return{__typename:"SuccessResponse",data:!1};const e=r.data.filter(t=>t.temporaryRecipients.length>0);for(const t of e)for(const{email:s}of t.temporaryRecipients)if(!!s)try{const i=await this._eachUser(t.files,t.subject,t.body,s);if(!i)continue;await this.#r("mutation")({sendOneMail:[{mailIntegrityId:t.mailIntegrityId,recipient:i},{"...on ErrorAccessDenied":{__typename:!0,message:!0},"...on ErrorBasic":{__typename:!0,message:!0},"...on RecoverNodeResponse":{__typename:!0,recoverNode:!0}}]})}catch (e3){continue}return{__typename:"SuccessResponse",data:!1}}async createDraft({body:r,subject:e,files:t,recipientsIds:s,replyTo:i}){const m=_indexjs.sodium.randombytes_buf(_indexjs.sodium.crypto_generichash_KEYBYTES,"hex"),a=_indexjs.sodium.crypto_generichash(_indexjs.sodium.crypto_generichash_BYTES,JSON.stringify({body:r,subject:e}),m,"hex"),c=new Array;for(const l of t){let d=_cachejs.filesCache.get(l.id);if(!d&&(await this.#t.cloud.fileMetadata({id:l.id}),d=_cachejs.filesCache.get(l.id),!d))throw new Error(`File ${l.name} (${l.id}) does not exists`);c.push({id:d.id,fileKey:_indexjs.sodium.to_hex(_indexjs.encryptCryptoBox.call(void 0, _indexjs.sodium.from_string(d.key),this.#e.publicKey,this.#e.privateKey)),name:_indexjs.sodium.to_hex(_indexjs.encryptCryptoBox.call(void 0, _indexjs.sodium.from_string(l.name),this.#e.publicKey,this.#e.privateKey))})}const{createDraftMail:u}=await this.#r("mutation",{scalars:{DateTime:{decode:l=>new Date(l),encode:l=>l.toISOString()}}})({createDraftMail:[{recipients:s,replyTo:i,body:_indexjs.sodium.to_hex(_indexjs.encryptCryptoBox.call(void 0, _indexjs.sodium.from_string(r),this.#e.publicKey,this.#e.privateKey)),subject:_indexjs.sodium.to_hex(_indexjs.encryptCryptoBox.call(void 0, _indexjs.sodium.from_string(e),this.#e.publicKey,this.#e.privateKey)),senderFiles:c,hash:a,hashKey:m},{"...on ErrorAccessDenied":{__typename:!0,message:!0},"...on ErrorBasic":{__typename:!0,message:!0},"...on CreateDraftMailResponse":{__typename:!0,createDraftMail:_selectorsjs.mailSelector}}]});return u?u.__typename==="ErrorAccessDenied"||u.__typename==="ErrorBasic"?u:u.createDraftMail?{__typename:"SuccessResponse",data:_mailjs.convertInternalMailToExternal.call(void 0, u.createDraftMail,this.#e)}:null:null}async read({mailId:r}){const{readMail:e}=await this.#r("mutation")({readMail:[{mailId:r},{"...on ErrorAccessDenied":{__typename:!0,message:!0},"...on ErrorBasic":{__typename:!0,message:!0},"...on ErrorNotFound":{__typename:!0,message:!0},"...on ReadMailResponse":{__typename:!0,readMail:!0}}]});return e?e.__typename==="ErrorAccessDenied"||e.__typename==="ErrorBasic"||e.__typename==="ErrorNotFound"?e:e.readMail?{__typename:"SuccessResponse",data:e.readMail}:null:null}async unread({mailId:r}){const{unreadMail:e}=await this.#r("mutation")({unreadMail:[{mailId:r},{"...on ErrorAccessDenied":{__typename:!0,message:!0},"...on ErrorBasic":{__typename:!0,message:!0},"...on ErrorNotFound":{__typename:!0,message:!0},"...on UnreadMailResponse":{__typename:!0,unreadMail:!0}}]});return e?e.__typename==="ErrorAccessDenied"||e.__typename==="ErrorBasic"||e.__typename==="ErrorNotFound"?e:e.unreadMail?{__typename:"SuccessResponse",data:e.unreadMail}:null:null}async receivedMails(){const{user:r}=await this.#r("query",{scalars:{DateTime:{decode:t=>new Date(t),encode:t=>t.toISOString()}}})({user:[{},{"...on ErrorNotFound":{__typename:!0,message:!0},"...on UserResponse":{__typename:!0,user:{receivedMails:_selectorsjs.mailSelector}}}]});if(!r)return null;if(r.__typename==="ErrorNotFound")return r;if(!r.user)return null;const e=new Array;for(const t of r.user.receivedMails){const s=_mailjs.convertInternalMailToExternal.call(void 0, t,this.#e);s&&e.push(s)}return{__typename:"SuccessResponse",data:e}}async sentMails(){const{user:r}=await this.#r("query",{scalars:{DateTime:{decode:t=>new Date(t),encode:t=>t.toISOString()}}})({user:[{},{"...on ErrorNotFound":{__typename:!0,message:!0},"...on UserResponse":{__typename:!0,user:{sentMails:_selectorsjs.mailSelector}}}]});if(!r)return null;if(r.__typename==="ErrorNotFound")return r;if(!r.user)return null;const e=new Array;for(const t of r.user.sentMails){const s=_mailjs.convertInternalMailToExternal.call(void 0, t,this.#e);s&&e.push(s)}return{__typename:"SuccessResponse",data:e}}async draftMails(){const{user:r}=await this.#r("query",{scalars:{DateTime:{decode:t=>new Date(t),encode:t=>t.toISOString()}}})({user:[{},{"...on ErrorNotFound":{__typename:!0,message:!0},"...on UserResponse":{__typename:!0,user:{draftMails:_selectorsjs.mailSelector}}}]});if(!r)return null;if(r.__typename==="ErrorNotFound")return r;if(!r.user)return null;const e=new Array;for(const t of r.user.draftMails){const s=_mailjs.convertInternalMailToExternal.call(void 0, t,this.#e);s&&e.push(s)}return{__typename:"SuccessResponse",data:e}}async unreadReceivedMailsCount(){const{unreadReceivedMailsCount:r}=await this.#r("query")({unreadReceivedMailsCount:{"...on ErrorAccessDenied":{__typename:!0,message:!0},"...on UnreadReceivedMailsCountResponse":{__typename:!0,count:!0}}});return r?r.__typename==="ErrorAccessDenied"?r:{__typename:"SuccessResponse",data:r.count}:null}__init() {this._eachUser=async(r,e,t,s)=>{let i=_cachejs.usersCache.get(s);if(!i||!("publicKey"in i)){try{const a=await this.#t.user({userId:s,withPublicKey:!0});if(!a||a.__typename!=="SuccessResponse")return null;i=a.data}catch (e4){return null}if(!i)return null}if(!("publicKey"in i))throw new Error(`User ${s} have no public key`);const m=new Array;for(const a of r){let c=_cachejs.filesCache.get(a.id);if(!c&&(await this.#t.cloud.fileMetadata({id:a.id}),c=_cachejs.filesCache.get(a.id),!c))throw new Error(`File ${a.name} (${a.id}) does not exists`);const u=c.key;m.push({id:a.id,name:_indexjs.sodium.to_hex(_indexjs.encryptCryptoBox.call(void 0, _indexjs.sodium.from_string(a.name),i.publicKey,this.#e.privateKey)),fileKey:_indexjs.sodium.to_hex(_indexjs.encryptCryptoBox.call(void 0, _indexjs.sodium.from_hex(u),i.publicKey,this.#e.privateKey))})}return{recipientId:i.id,body:_indexjs.sodium.to_hex(_indexjs.encryptCryptoBox.call(void 0, _indexjs.sodium.from_string(t),i.publicKey,this.#e.privateKey)),subject:_indexjs.sodium.to_hex(_indexjs.encryptCryptoBox.call(void 0, _indexjs.sodium.from_string(e),i.publicKey,this.#e.privateKey)),files:m}}}}exports.SecrecyMailClient = b;
|
|
2
|
+
//# sourceMappingURL=SecrecyMailClient.cjs.map
|