@webda/core 2.4.2 → 3.0.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/lib/application.d.ts +171 -34
- package/lib/application.js +243 -47
- package/lib/application.js.map +1 -1
- package/lib/application.spec.js +44 -8
- package/lib/application.spec.js.map +1 -1
- package/lib/core.d.ts +113 -54
- package/lib/core.js +222 -135
- package/lib/core.js.map +1 -1
- package/lib/core.spec.js +87 -43
- package/lib/core.spec.js.map +1 -1
- package/lib/errors.d.ts +65 -0
- package/lib/errors.js +113 -0
- package/lib/errors.js.map +1 -0
- package/lib/errors.spec.d.ts +1 -0
- package/lib/errors.spec.js +33 -0
- package/lib/errors.spec.js.map +1 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.js +3 -0
- package/lib/index.js.map +1 -1
- package/lib/models/aclmodel.d.ts +4 -4
- package/lib/models/aclmodel.js +10 -6
- package/lib/models/aclmodel.js.map +1 -1
- package/lib/models/aclmodel.spec.js +33 -24
- package/lib/models/aclmodel.spec.js.map +1 -1
- package/lib/models/coremodel.d.ts +284 -92
- package/lib/models/coremodel.js +403 -103
- package/lib/models/coremodel.js.map +1 -1
- package/lib/models/coremodel.spec.js +162 -24
- package/lib/models/coremodel.spec.js.map +1 -1
- package/lib/models/ident.d.ts +20 -6
- package/lib/models/ident.js.map +1 -1
- package/lib/models/ownermodel.d.ts +13 -23
- package/lib/models/ownermodel.js +24 -51
- package/lib/models/ownermodel.js.map +1 -1
- package/lib/models/ownermodel.spec.js +23 -11
- package/lib/models/ownermodel.spec.js.map +1 -1
- package/lib/models/relations.d.ts +167 -0
- package/lib/models/relations.js +113 -0
- package/lib/models/relations.js.map +1 -0
- package/lib/models/rolemodel.d.ts +3 -3
- package/lib/models/rolemodel.js +6 -6
- package/lib/models/rolemodel.js.map +1 -1
- package/lib/models/rolemodel.spec.js +12 -12
- package/lib/models/rolemodel.spec.js.map +1 -1
- package/lib/models/user.d.ts +40 -24
- package/lib/models/user.js +74 -48
- package/lib/models/user.js.map +1 -1
- package/lib/models/user.spec.js +24 -4
- package/lib/models/user.spec.js.map +1 -1
- package/lib/queues/memoryqueue.spec.js +9 -5
- package/lib/queues/memoryqueue.spec.js.map +1 -1
- package/lib/queues/queueservice.js.map +1 -1
- package/lib/router.d.ts +17 -8
- package/lib/router.js +81 -9
- package/lib/router.js.map +1 -1
- package/lib/router.spec.js +89 -5
- package/lib/router.spec.js.map +1 -1
- package/lib/services/asyncevents.spec.js +4 -4
- package/lib/services/authentication.d.ts +21 -22
- package/lib/services/authentication.js +90 -109
- package/lib/services/authentication.js.map +1 -1
- package/lib/services/authentication.spec.js +51 -65
- package/lib/services/authentication.spec.js.map +1 -1
- package/lib/services/binary.d.ts +132 -31
- package/lib/services/binary.js +257 -72
- package/lib/services/binary.js.map +1 -1
- package/lib/services/binary.spec.d.ts +16 -6
- package/lib/services/binary.spec.js +44 -117
- package/lib/services/binary.spec.js.map +1 -1
- package/lib/services/cloudbinary.d.ts +9 -10
- package/lib/services/cloudbinary.js +14 -15
- package/lib/services/cloudbinary.js.map +1 -1
- package/lib/services/cloudbinary.spec.d.ts +2 -2
- package/lib/services/cloudbinary.spec.js +13 -12
- package/lib/services/cloudbinary.spec.js.map +1 -1
- package/lib/services/configuration.js +9 -9
- package/lib/services/configuration.js.map +1 -1
- package/lib/services/configuration.spec.js +5 -7
- package/lib/services/configuration.spec.js.map +1 -1
- package/lib/services/cron.spec.js +3 -4
- package/lib/services/cron.spec.js.map +1 -1
- package/lib/services/cryptoservice.d.ts +2 -2
- package/lib/services/cryptoservice.js +5 -2
- package/lib/services/cryptoservice.js.map +1 -1
- package/lib/services/domainservice.d.ts +113 -0
- package/lib/services/domainservice.js +357 -0
- package/lib/services/domainservice.js.map +1 -0
- package/lib/services/domainservice.spec.d.ts +1 -0
- package/lib/services/domainservice.spec.js +334 -0
- package/lib/services/domainservice.spec.js.map +1 -0
- package/lib/services/echo.d.ts +2 -2
- package/lib/services/echo.js.map +1 -1
- package/lib/services/echo.spec.js +9 -2
- package/lib/services/echo.spec.js.map +1 -1
- package/lib/services/filebinary.d.ts +13 -14
- package/lib/services/filebinary.js +79 -73
- package/lib/services/filebinary.js.map +1 -1
- package/lib/services/filebinary.spec.d.ts +5 -0
- package/lib/services/filebinary.spec.js +222 -11
- package/lib/services/filebinary.spec.js.map +1 -1
- package/lib/services/fileconfiguration.js +4 -4
- package/lib/services/fileconfiguration.js.map +1 -1
- package/lib/services/fileconfiguration.spec.js +23 -24
- package/lib/services/fileconfiguration.spec.js.map +1 -1
- package/lib/services/invitationservice.d.ts +11 -9
- package/lib/services/invitationservice.js +17 -23
- package/lib/services/invitationservice.js.map +1 -1
- package/lib/services/invitationservice.spec.js +43 -40
- package/lib/services/invitationservice.spec.js.map +1 -1
- package/lib/services/kubernetesconfiguration.js +12 -22
- package/lib/services/kubernetesconfiguration.js.map +1 -1
- package/lib/services/kubernetesconfiguration.spec.js +1 -6
- package/lib/services/kubernetesconfiguration.spec.js.map +1 -1
- package/lib/services/mailer.js +1 -1
- package/lib/services/mailer.js.map +1 -1
- package/lib/services/mailer.spec.js +4 -1
- package/lib/services/mailer.spec.js.map +1 -1
- package/lib/services/oauth.d.ts +17 -9
- package/lib/services/oauth.js +30 -4
- package/lib/services/oauth.js.map +1 -1
- package/lib/services/oauth.spec.js +32 -15
- package/lib/services/oauth.spec.js.map +1 -1
- package/lib/services/prometheus.spec.js.map +1 -1
- package/lib/services/proxy.d.ts +9 -8
- package/lib/services/proxy.js +65 -36
- package/lib/services/proxy.js.map +1 -1
- package/lib/services/proxy.spec.js +28 -2
- package/lib/services/proxy.spec.js.map +1 -1
- package/lib/services/resource.d.ts +3 -3
- package/lib/services/resource.js +4 -3
- package/lib/services/resource.js.map +1 -1
- package/lib/services/resource.spec.js +3 -3
- package/lib/services/resource.spec.js.map +1 -1
- package/lib/services/service.d.ts +10 -13
- package/lib/services/service.js +29 -13
- package/lib/services/service.js.map +1 -1
- package/lib/services/service.spec.js +49 -11
- package/lib/services/service.spec.js.map +1 -1
- package/lib/services/version.d.ts +2 -2
- package/lib/services/version.js.map +1 -1
- package/lib/stores/aggregator.js +1 -0
- package/lib/stores/aggregator.js.map +1 -1
- package/lib/stores/aliasstore.d.ts +2 -2
- package/lib/stores/aliasstore.js +15 -4
- package/lib/stores/aliasstore.js.map +1 -1
- package/lib/stores/aliasstore.spec.js +4 -2
- package/lib/stores/aliasstore.spec.js.map +1 -1
- package/lib/stores/file.d.ts +5 -2
- package/lib/stores/file.js +11 -8
- package/lib/stores/file.js.map +1 -1
- package/lib/stores/file.spec.js +21 -34
- package/lib/stores/file.spec.js.map +1 -1
- package/lib/stores/mapper.d.ts +4 -2
- package/lib/stores/mapper.js +18 -11
- package/lib/stores/mapper.js.map +1 -1
- package/lib/stores/mapper.spec.js +6 -3
- package/lib/stores/mapper.spec.js.map +1 -1
- package/lib/stores/memory.d.ts +5 -2
- package/lib/stores/memory.js +11 -9
- package/lib/stores/memory.js.map +1 -1
- package/lib/stores/memory.spec.d.ts +3 -0
- package/lib/stores/memory.spec.js +100 -11
- package/lib/stores/memory.spec.js.map +1 -1
- package/lib/stores/store.d.ts +177 -87
- package/lib/stores/store.js +312 -141
- package/lib/stores/store.js.map +1 -1
- package/lib/stores/store.spec.d.ts +2 -2
- package/lib/stores/store.spec.js +54 -38
- package/lib/stores/store.spec.js.map +1 -1
- package/lib/stores/webdaql/WebdaQLLexer.d.ts +14 -13
- package/lib/stores/webdaql/WebdaQLLexer.js +121 -112
- package/lib/stores/webdaql/WebdaQLLexer.js.map +1 -1
- package/lib/stores/webdaql/WebdaQLParserLexer.d.ts +14 -13
- package/lib/stores/webdaql/WebdaQLParserLexer.js +121 -112
- package/lib/stores/webdaql/WebdaQLParserLexer.js.map +1 -1
- package/lib/stores/webdaql/WebdaQLParserListener.d.ts +15 -3
- package/lib/stores/webdaql/WebdaQLParserParser.d.ts +23 -13
- package/lib/stores/webdaql/WebdaQLParserParser.js +149 -94
- package/lib/stores/webdaql/WebdaQLParserParser.js.map +1 -1
- package/lib/stores/webdaql/WebdaQLParserVisitor.d.ts +9 -2
- package/lib/stores/webdaql/query.d.ts +6 -2
- package/lib/stores/webdaql/query.js +14 -1
- package/lib/stores/webdaql/query.js.map +1 -1
- package/lib/stores/webdaql/query.spec.js +10 -1
- package/lib/stores/webdaql/query.spec.js.map +1 -1
- package/lib/test.d.ts +48 -19
- package/lib/test.js +171 -63
- package/lib/test.js.map +1 -1
- package/lib/unpackedapplication.d.ts +5 -0
- package/lib/unpackedapplication.js +58 -10
- package/lib/unpackedapplication.js.map +1 -1
- package/lib/utils/context.d.ts +76 -29
- package/lib/utils/context.js +91 -55
- package/lib/utils/context.js.map +1 -1
- package/lib/utils/context.spec.d.ts +9 -1
- package/lib/utils/context.spec.js +73 -8
- package/lib/utils/context.spec.js.map +1 -1
- package/lib/utils/cookie.d.ts +4 -5
- package/lib/utils/cookie.js +1 -2
- package/lib/utils/cookie.js.map +1 -1
- package/lib/utils/cookie.spec.js +5 -3
- package/lib/utils/cookie.spec.js.map +1 -1
- package/lib/utils/httpcontext.spec.js +9 -3
- package/lib/utils/httpcontext.spec.js.map +1 -1
- package/lib/utils/serializers.d.ts +46 -17
- package/lib/utils/serializers.js +116 -2
- package/lib/utils/serializers.js.map +1 -1
- package/lib/utils/serializers.spec.js +84 -20
- package/lib/utils/serializers.spec.js.map +1 -1
- package/lib/utils/session.d.ts +14 -8
- package/lib/utils/session.js +14 -3
- package/lib/utils/session.js.map +1 -1
- package/lib/utils/session.spec.js +6 -1
- package/lib/utils/session.spec.js.map +1 -1
- package/package.json +16 -10
- package/test/cachedapp/webda.config.json +6 -1
- package/test/config-cached.json +5 -0
- package/test/config-file-missing-file.json +5 -7
- package/test/config-file-no-reload.json +5 -7
- package/test/config-file-reload.json +5 -7
- package/test/config-kube-reload.json +5 -11
- package/test/config-reload.json +2 -4
- package/test/config.json +12 -2
- package/test/moddas/voidstore.js +1 -1
- package/test/models/ident.js +6 -4
- package/test/models/task.js +4 -4
- package/webda.module.json +1587 -1266
|
@@ -6,7 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import * as fs from "fs";
|
|
8
8
|
import { join } from "path";
|
|
9
|
-
import { CloudBinary, CloudBinaryParameters } from "../index.js";
|
|
9
|
+
import { CloudBinary, CloudBinaryParameters, WebdaError } from "../index.js";
|
|
10
10
|
import { BinaryNotFoundError, MemoryBinaryFile } from "./binary.js";
|
|
11
11
|
import { Inject } from "./service.js";
|
|
12
12
|
export class FileBinaryParameters extends CloudBinaryParameters {
|
|
@@ -16,6 +16,10 @@ export class FileBinaryParameters extends CloudBinaryParameters {
|
|
|
16
16
|
this.folder += "/";
|
|
17
17
|
}
|
|
18
18
|
this.maxSize ?? (this.maxSize = 10 * 1024 * 1024);
|
|
19
|
+
// Remove trailing /
|
|
20
|
+
if (this.url && this.url.endsWith("/")) {
|
|
21
|
+
this.url = this.url.substring(0, this.url.length - 1);
|
|
22
|
+
}
|
|
19
23
|
}
|
|
20
24
|
}
|
|
21
25
|
/**
|
|
@@ -51,52 +55,52 @@ export class FileBinary extends CloudBinary {
|
|
|
51
55
|
fs.mkdirSync(this.parameters.folder, { recursive: true });
|
|
52
56
|
}
|
|
53
57
|
}
|
|
54
|
-
|
|
55
|
-
super.
|
|
56
|
-
//
|
|
57
|
-
|
|
58
|
+
initRoutes() {
|
|
59
|
+
super.initRoutes();
|
|
60
|
+
// We do not want to expose by default
|
|
61
|
+
if (this.parameters.url === undefined) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
// Will redirect to this URL for direct download
|
|
65
|
+
let url = this.parameters.url + "/download/data/{hash}{?token,content-disposition,content-type}";
|
|
58
66
|
let name = this.getOperationName();
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
"
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
"
|
|
70
|
-
description: "Wrong hash"
|
|
71
|
-
}
|
|
67
|
+
this.addRoute(url, ["GET"], this.downloadBinaryLink, {
|
|
68
|
+
put: {
|
|
69
|
+
operationId: `get${name}Binary`,
|
|
70
|
+
description: "Download a binary to an object after challenge",
|
|
71
|
+
summary: "Download a binary",
|
|
72
|
+
responses: {
|
|
73
|
+
"200": {
|
|
74
|
+
description: "Content of binary"
|
|
75
|
+
},
|
|
76
|
+
"403": {
|
|
77
|
+
description: "Wrong hash"
|
|
72
78
|
}
|
|
73
79
|
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
"
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
"
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
"
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
"
|
|
94
|
-
description: "Provided hash does not match"
|
|
95
|
-
}
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
url = this.parameters.url + "/upload/data/{hash}{?token}";
|
|
83
|
+
this.addRoute(url, ["PUT"], this.storeBinary, {
|
|
84
|
+
put: {
|
|
85
|
+
operationId: `put${name}Binary`,
|
|
86
|
+
description: "Upload a binary to an object after challenge",
|
|
87
|
+
summary: "Upload a binary",
|
|
88
|
+
responses: {
|
|
89
|
+
"204": {
|
|
90
|
+
description: ""
|
|
91
|
+
},
|
|
92
|
+
"400": {
|
|
93
|
+
description: "Wrong hash"
|
|
94
|
+
},
|
|
95
|
+
"404": {
|
|
96
|
+
description: "Object does not exist or attachment does not exist"
|
|
97
|
+
},
|
|
98
|
+
"412": {
|
|
99
|
+
description: "Provided hash does not match"
|
|
96
100
|
}
|
|
97
101
|
}
|
|
98
|
-
}
|
|
99
|
-
}
|
|
102
|
+
}
|
|
103
|
+
});
|
|
100
104
|
}
|
|
101
105
|
/**
|
|
102
106
|
* Download a binary with a challenge
|
|
@@ -107,21 +111,22 @@ export class FileBinary extends CloudBinary {
|
|
|
107
111
|
try {
|
|
108
112
|
let dt = await this.cryptoService.jwtVerify(ctx.parameter("token"));
|
|
109
113
|
if (dt.hash !== hash) {
|
|
110
|
-
throw
|
|
114
|
+
throw new WebdaError.Forbidden("Wrong hash");
|
|
111
115
|
}
|
|
112
116
|
}
|
|
113
117
|
catch (err) {
|
|
114
|
-
throw
|
|
118
|
+
throw new WebdaError.Forbidden("Incorrect JWT");
|
|
115
119
|
}
|
|
116
120
|
ctx.writeHead(200, {
|
|
117
121
|
"content-disposition": ctx.parameter("content-disposition"),
|
|
118
122
|
"content-type": ctx.parameter("content-type")
|
|
119
123
|
});
|
|
124
|
+
let map = await this.get({ hash });
|
|
120
125
|
// Fake a binary map for this case
|
|
121
|
-
return new Promise(
|
|
126
|
+
return new Promise((resolve, reject) => {
|
|
122
127
|
const stream = ctx.getStream();
|
|
123
128
|
stream.on("error", reject).on("finish", resolve);
|
|
124
|
-
|
|
129
|
+
map.pipe(stream);
|
|
125
130
|
});
|
|
126
131
|
}
|
|
127
132
|
/**
|
|
@@ -140,7 +145,7 @@ export class FileBinary extends CloudBinary {
|
|
|
140
145
|
async getSignedUrlFromMap(map, expires, context) {
|
|
141
146
|
return `${context
|
|
142
147
|
.getHttpContext()
|
|
143
|
-
.getAbsoluteUrl(this.parameters.
|
|
148
|
+
.getAbsoluteUrl(this.parameters.url + "/download/data/" + map.hash)}?token=${await this.getToken(map.hash, "GET", expires)}&content-type=${map.mimetype}&content-disposition=attachment`;
|
|
144
149
|
}
|
|
145
150
|
/**
|
|
146
151
|
* Get storage path for a hash
|
|
@@ -184,9 +189,7 @@ export class FileBinary extends CloudBinary {
|
|
|
184
189
|
// Get a full URL, this method should be in a Route Object
|
|
185
190
|
// Add a JWT token for 60s
|
|
186
191
|
let token = await this.getToken(body.hash, "PUT");
|
|
187
|
-
return ctx
|
|
188
|
-
.getHttpContext()
|
|
189
|
-
.getAbsoluteUrl(this.parameters.expose.url + "/upload/data/" + body.hash + `?token=${token}`);
|
|
192
|
+
return ctx.getHttpContext().getAbsoluteUrl(this.parameters.url + "/upload/data/" + body.hash + `?token=${token}`);
|
|
190
193
|
}
|
|
191
194
|
/**
|
|
192
195
|
* Will give you the redirect url
|
|
@@ -194,13 +197,12 @@ export class FileBinary extends CloudBinary {
|
|
|
194
197
|
* @ignore
|
|
195
198
|
*/
|
|
196
199
|
async putRedirectUrl(ctx) {
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
let store = ctx.parameter("store");
|
|
200
|
-
let property = ctx.parameter("property");
|
|
200
|
+
const body = await ctx.getInput();
|
|
201
|
+
const { uuid, store, property } = ctx.getParameters();
|
|
201
202
|
let result = { url: await this.getPutUrl(ctx), method: "PUT" };
|
|
202
|
-
if (fs.existsSync(this._getPath(body.hash, store + "_" +
|
|
203
|
+
if (fs.existsSync(this._getPath(body.hash, store + "_" + property + "_" + uuid))) {
|
|
203
204
|
if (!fs.existsSync(this._getPath(body.hash, "data"))) {
|
|
205
|
+
// 232-237
|
|
204
206
|
return result;
|
|
205
207
|
}
|
|
206
208
|
// If the link is already register just return directly ok
|
|
@@ -208,13 +210,13 @@ export class FileBinary extends CloudBinary {
|
|
|
208
210
|
}
|
|
209
211
|
// Get the target object to add the mapping
|
|
210
212
|
let targetStore = this._verifyMapAndStore(ctx);
|
|
211
|
-
let object = await targetStore.get(
|
|
213
|
+
let object = await targetStore.get(uuid, ctx);
|
|
212
214
|
await this.uploadSuccess(object, property, body);
|
|
213
215
|
// Need to store the usage of the file
|
|
214
216
|
if (!fs.existsSync(this._getPath(body.hash))) {
|
|
215
217
|
fs.mkdirSync(this._getPath(body.hash));
|
|
216
218
|
}
|
|
217
|
-
this._touch(this._getPath(body.hash, store + "_" +
|
|
219
|
+
this._touch(this._getPath(body.hash, store + "_" + uuid + "_" + property));
|
|
218
220
|
if (this.challenge(body.hash, body.challenge)) {
|
|
219
221
|
// Return empty as we dont need to upload the data
|
|
220
222
|
return;
|
|
@@ -239,23 +241,23 @@ export class FileBinary extends CloudBinary {
|
|
|
239
241
|
}).getHashes();
|
|
240
242
|
if (ctx.parameter("hash") !== result.hash) {
|
|
241
243
|
this.log("WARN", "Request hash differ", ctx.parameter("hash"), "!==", result.hash);
|
|
242
|
-
throw
|
|
244
|
+
throw new WebdaError.BadRequest("Request hash differ");
|
|
243
245
|
}
|
|
244
246
|
// Verify token
|
|
245
247
|
try {
|
|
246
248
|
let dt = await this.cryptoService.jwtVerify(ctx.parameter("token"));
|
|
247
249
|
if (dt.hash !== result.hash) {
|
|
248
250
|
this.log("WARN", "JWT hash differ", ctx.parameter("hash"), "!==", result.hash);
|
|
249
|
-
throw
|
|
251
|
+
throw new WebdaError.Forbidden("JWT hash differ");
|
|
250
252
|
}
|
|
251
253
|
}
|
|
252
254
|
catch (err) {
|
|
253
255
|
this.log("WARN", "Invalid JWT token");
|
|
254
|
-
throw
|
|
256
|
+
throw new WebdaError.Forbidden("Invalid JWT token");
|
|
255
257
|
}
|
|
256
258
|
if (!fs.existsSync(this._getPath(result.hash))) {
|
|
257
259
|
// The folder should have been create by a previous request
|
|
258
|
-
throw
|
|
260
|
+
throw new WebdaError.PreconditionFailed("No folder for hash " + result.hash);
|
|
259
261
|
}
|
|
260
262
|
let path = this._getPath(result.hash, "data");
|
|
261
263
|
if (!fs.existsSync(path)) {
|
|
@@ -296,12 +298,15 @@ export class FileBinary extends CloudBinary {
|
|
|
296
298
|
/**
|
|
297
299
|
* @override
|
|
298
300
|
*/
|
|
299
|
-
async _cleanUsage(hash, uuid) {
|
|
301
|
+
async _cleanUsage(hash, uuid, attribute) {
|
|
300
302
|
const p = this._getPath(hash);
|
|
301
303
|
if (!fs.existsSync(p))
|
|
302
304
|
return;
|
|
305
|
+
uuid = uuid.startsWith("_") ? uuid : `_${uuid}`;
|
|
303
306
|
let files = fs.readdirSync(p);
|
|
304
|
-
files
|
|
307
|
+
files
|
|
308
|
+
.filter(f => f.endsWith(attribute ? `_${attribute}${uuid}` : `${uuid}`))
|
|
309
|
+
.forEach(f => fs.unlinkSync(this._getPath(hash, f)));
|
|
305
310
|
if (files.length == 3) {
|
|
306
311
|
await this._cleanHash(hash);
|
|
307
312
|
}
|
|
@@ -310,9 +315,9 @@ export class FileBinary extends CloudBinary {
|
|
|
310
315
|
* @inheritdoc
|
|
311
316
|
*/
|
|
312
317
|
async delete(object, property, index) {
|
|
313
|
-
let hash = object[property][index].hash;
|
|
318
|
+
let hash = (index !== undefined ? object[property][index] : object[property]).hash;
|
|
314
319
|
await this.deleteSuccess(object, property, index);
|
|
315
|
-
await this._cleanUsage(hash, object.getUuid());
|
|
320
|
+
await this._cleanUsage(hash, object.getUuid(), property);
|
|
316
321
|
}
|
|
317
322
|
challenge(hash, challenge) {
|
|
318
323
|
let path = this._getPath(hash);
|
|
@@ -322,19 +327,20 @@ export class FileBinary extends CloudBinary {
|
|
|
322
327
|
* @inheritdoc
|
|
323
328
|
*/
|
|
324
329
|
async cascadeDelete(info, uuid) {
|
|
325
|
-
return this._cleanUsage(info.hash,
|
|
330
|
+
return this._cleanUsage(info.hash, uuid);
|
|
326
331
|
}
|
|
327
|
-
async _store(file, object) {
|
|
332
|
+
async _store(file, object, attribute) {
|
|
328
333
|
fs.mkdirSync(this._getPath(file.hash));
|
|
329
|
-
|
|
330
|
-
|
|
334
|
+
const map = await file.get();
|
|
335
|
+
await new Promise((resolve, reject) => {
|
|
336
|
+
map
|
|
331
337
|
.pipe(fs.createWriteStream(this._getPath(file.hash, "data")))
|
|
332
338
|
.on("error", reject)
|
|
333
339
|
.on("finish", resolve);
|
|
334
340
|
});
|
|
335
341
|
// Store the challenge
|
|
336
342
|
this._touch(this._getPath(file.hash, "_" + file.challenge));
|
|
337
|
-
this._touch(this._getPath(file.hash, object.getStore().getName()
|
|
343
|
+
this._touch(this._getPath(file.hash, `${object.getStore().getName()}_${attribute}_${object.getUuid()}`));
|
|
338
344
|
}
|
|
339
345
|
/**
|
|
340
346
|
* @inheritdoc
|
|
@@ -343,13 +349,13 @@ export class FileBinary extends CloudBinary {
|
|
|
343
349
|
await file.getHashes();
|
|
344
350
|
const storeName = object.getStore().getName();
|
|
345
351
|
const fileInfo = file.toBinaryFileInfo();
|
|
346
|
-
this.checkMap(storeName, property);
|
|
352
|
+
this.checkMap(storeName, property, object.__type);
|
|
347
353
|
if (fs.existsSync(this._getPath(file.hash))) {
|
|
348
|
-
this._touch(this._getPath(file.hash, `${storeName}_${object.getUuid()}`));
|
|
354
|
+
this._touch(this._getPath(file.hash, `${storeName}_${property}_${object.getUuid()}`));
|
|
349
355
|
await this.uploadSuccess(object, property, fileInfo);
|
|
350
356
|
return;
|
|
351
357
|
}
|
|
352
|
-
await this._store(file, object);
|
|
358
|
+
await this._store(file, object, property);
|
|
353
359
|
await this.uploadSuccess(object, property, fileInfo);
|
|
354
360
|
}
|
|
355
361
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filebinary.js","sourceRoot":"","sources":["../../src/services/filebinary.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAa,MAAM,UAAU,CAAC;AAEzE,OAAO,EAAiC,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEhG,OAAO,EAAE,MAAM,EAAqB,MAAM,WAAW,CAAC;AAEtD,MAAM,OAAO,oBAAqB,SAAQ,qBAAqB;IAW7D,YAAY,MAAW,EAAE,OAAe;QACtC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC9B,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC;SACpB;QACD,IAAI,CAAC,OAAO,KAAZ,IAAI,CAAC,OAAO,GAAK,EAAE,GAAG,IAAI,GAAG,IAAI,EAAC;IACpC,CAAC;CACF;AACD;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,UAAkE,SAAQ,WAAc;IAMnG;;;;OAIG;IACH,cAAc,CAAC,MAAW;QACxB,OAAO,IAAI,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;YAC1C,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;SAC3D;IACH,CAAC;IAED,WAAW;QACT,KAAK,CAAC,WAAW,EAAE,CAAC;QACpB,8CAA8C;QAC9C,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,GAAG,gEAAgE,CAAC;QACxG,IAAI,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE;YACxC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE;gBACnD,GAAG,EAAE;oBACH,WAAW,EAAE,MAAM,IAAI,QAAQ;oBAC/B,WAAW,EAAE,gDAAgD;oBAC7D,OAAO,EAAE,mBAAmB;oBAC5B,SAAS,EAAE;wBACT,KAAK,EAAE;4BACL,WAAW,EAAE,mBAAmB;yBACjC;wBACD,KAAK,EAAE;4BACL,WAAW,EAAE,YAAY;yBAC1B;qBACF;iBACF;aACF,CAAC,CAAC;SACJ;QACD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;YAC3C,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,GAAG,6BAA6B,CAAC;YACjE,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE;gBAC5C,GAAG,EAAE;oBACH,WAAW,EAAE,MAAM,IAAI,QAAQ;oBAC/B,WAAW,EAAE,8CAA8C;oBAC3D,OAAO,EAAE,iBAAiB;oBAC1B,SAAS,EAAE;wBACT,KAAK,EAAE;4BACL,WAAW,EAAE,EAAE;yBAChB;wBACD,KAAK,EAAE;4BACL,WAAW,EAAE,YAAY;yBAC1B;wBACD,KAAK,EAAE;4BACL,WAAW,EAAE,oDAAoD;yBAClE;wBACD,KAAK,EAAE;4BACL,WAAW,EAAE,8BAA8B;yBAC5C;qBACF;iBACF;aACF,CAAC,CAAC;SACJ;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,GAAY;QACnC,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,iBAAiB,EAAE,CAAC;QACzC,eAAe;QACf,IAAI;YACF,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YACpE,IAAI,EAAE,CAAC,IAAI,KAAK,IAAI,EAAE;gBACpB,MAAM,GAAG,CAAC;aACX;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,GAAG,CAAC;SACX;QACD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;YACjB,qBAAqB,EAAE,GAAG,CAAC,SAAS,CAAC,qBAAqB,CAAC;YAC3D,cAAc,EAAE,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC;SAC9C,CAAC,CAAC;QACH,kCAAkC;QAClC,OAAO,IAAI,OAAO,CAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YACjD,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC;YAC/B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACjD,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAe,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,IAAe;QACxB,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YACxB,MAAM,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;SAC1D;QACD,OAAO,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,GAAc,EAAE,OAAe,EAAE,OAAgB;QACzE,OAAO,GAAG,OAAO;aACd,cAAc,EAAE;aAChB,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,GAAG,iBAAiB,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,MAAM,IAAI,CAAC,QAAQ,CACvG,GAAG,CAAC,IAAI,EACR,KAAK,EACL,OAAO,CACR,iBAAiB,GAAG,CAAC,QAAQ,iCAAiC,CAAC;IAClE,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAC,IAAY,EAAE,UAAkB,SAAS;QAChD,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;SACtC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC;IACvD,CAAC;IAED,MAAM,CAAC,QAAQ,EAAE,IAAI,GAAG,KAAK;QAC3B,IAAI;YACF,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACzG,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;SAClB;QAAC,OAAO,CAAC,EAAE;YACV,eAAe;SAChB;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,MAAqB,EAAE,YAAoB,EAAE;QACxE,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAC/B,EAAE,IAAI,EAAE,MAAM,EAAE,EAChB;YACE,SAAS;SACV,CACF,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,SAAS,CAAC,GAAwB;QACtC,IAAI,IAAI,GAAG,MAAM,GAAG,CAAC,cAAc,EAAE,CAAC;QACtC,0DAA0D;QAC1D,0BAA0B;QAC1B,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAClD,OAAO,GAAG;aACP,cAAc,EAAE;aAChB,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,GAAG,eAAe,GAAG,IAAI,CAAC,IAAI,GAAG,UAAU,KAAK,EAAE,CAAC,CAAC;IAClG,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,cAAc,CAAC,GAAwB;QAC3C,IAAI,IAAI,GAAG,MAAM,GAAG,CAAC,cAAc,EAAE,CAAC;QACtC,IAAI,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACzC,IAAI,MAAM,GAAG,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAC/D,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,EAAE;YAC9D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE;gBACpD,OAAO,MAAM,CAAC;aACf;YACD,0DAA0D;YAC1D,OAAO;SACR;QACD,2CAA2C;QAC3C,IAAI,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,MAAM,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC7C,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACjD,sCAAsC;QACtC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;YAC5C,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SACxC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;QACzD,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;YAC7C,kDAAkD;YAClD,OAAO;SACR;QACD,0CAA0C;QAC1C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,WAAW,CAAC,GAAY;QAC5B,IAAI,IAAI,GAAG,MAAM,GAAG,CAAC,cAAc,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC1E,IAAI,MAAM,GAAG,MAAM,IAAI,gBAAgB,CAAC,IAAI,EAAE;YAC5C,QAAQ,EAAE,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,kBAAkB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACpG,IAAI,EAAE,EAAE;YACR,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;SACvE,CAAC,CAAC,SAAS,EAAE,CAAC;QACf,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,IAAI,EAAE;YACzC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,qBAAqB,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACnF,MAAM,GAAG,CAAC;SACX;QACD,eAAe;QACf,IAAI;YACF,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YACpE,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE;gBAC3B,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC/E,MAAM,GAAG,CAAC;aACX;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;YACtC,MAAM,GAAG,CAAC;SACX;QACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE;YAC9C,2DAA2D;YAC3D,MAAM,GAAG,CAAC;SACX;QACD,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YACxB,gBAAgB;YAChB,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SAC9B;QACD,qBAAqB;QACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,IAAY;QAC9B,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YACxB,OAAO,CAAC,CAAC;SACV;QACD,IAAI,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CAAC,IAAY;QAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;YAAE,OAAO;QAC9B,IAAI;YACF,IAAI,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC9B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YACpD,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SACjB;QAAC,OAAO,GAAG,EAAE,GAAE;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,IAAY,EAAE,IAAY;QAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;YAAE,OAAO;QAC9B,IAAI,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAC9B,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAExF,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;YACrB,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAC7B;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,MAAiB,EAAE,QAAgB,EAAE,KAAa;QAC7D,IAAI,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;QACxC,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QAClD,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,SAAS,CAAC,IAAI,EAAE,SAAS;QACvB,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,IAAI,KAAK,SAAS,EAAE,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,IAAe,EAAE,IAAY;QAC/C,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAgB,EAAE,MAAiB;QAC9C,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACvC,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;iBACf,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;iBAC5D,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;iBACnB,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,sBAAsB;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9F,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,MAAiB,EAAE,QAAgB,EAAE,IAAgB;QAC/D,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACnC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;YAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,SAAS,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;YAC1E,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACrD,OAAO;SACR;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAChC,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY;QAChB,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAClE,CAAC;CACF;AA5VC;IADC,MAAM,CAAC,eAAe,CAAC;iDACK"}
|
|
1
|
+
{"version":3,"file":"filebinary.js","sourceRoot":"","sources":["../../src/services/filebinary.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAa,UAAU,EAAE,MAAM,UAAU,CAAC;AAErF,OAAO,EAAsC,mBAAmB,EAAiB,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEpH,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,MAAM,OAAO,oBAAqB,SAAQ,qBAAqB;IAW7D,YAAY,MAAW,EAAE,OAAsB;QAC7C,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC9B,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC;SACpB;QACD,IAAI,CAAC,OAAO,KAAZ,IAAI,CAAC,OAAO,GAAK,EAAE,GAAG,IAAI,GAAG,IAAI,EAAC;QAClC,oBAAoB;QACpB,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACtC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SACvD;IACH,CAAC;CACF;AACD;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,UAAkE,SAAQ,WAAc;IAMnG;;;;OAIG;IACH,cAAc,CAAC,MAAW;QACxB,OAAO,IAAI,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;YAC1C,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;SAC3D;IACH,CAAC;IAED,UAAU;QACR,KAAK,CAAC,UAAU,EAAE,CAAC;QACnB,sCAAsC;QACtC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,SAAS,EAAE;YACrC,OAAO;SACR;QACD,gDAAgD;QAChD,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,gEAAgE,CAAC;QACjG,IAAI,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE;YACnD,GAAG,EAAE;gBACH,WAAW,EAAE,MAAM,IAAI,QAAQ;gBAC/B,WAAW,EAAE,gDAAgD;gBAC7D,OAAO,EAAE,mBAAmB;gBAC5B,SAAS,EAAE;oBACT,KAAK,EAAE;wBACL,WAAW,EAAE,mBAAmB;qBACjC;oBACD,KAAK,EAAE;wBACL,WAAW,EAAE,YAAY;qBAC1B;iBACF;aACF;SACF,CAAC,CAAC;QAEH,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,6BAA6B,CAAC;QAC1D,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE;YAC5C,GAAG,EAAE;gBACH,WAAW,EAAE,MAAM,IAAI,QAAQ;gBAC/B,WAAW,EAAE,8CAA8C;gBAC3D,OAAO,EAAE,iBAAiB;gBAC1B,SAAS,EAAE;oBACT,KAAK,EAAE;wBACL,WAAW,EAAE,EAAE;qBAChB;oBACD,KAAK,EAAE;wBACL,WAAW,EAAE,YAAY;qBAC1B;oBACD,KAAK,EAAE;wBACL,WAAW,EAAE,oDAAoD;qBAClE;oBACD,KAAK,EAAE;wBACL,WAAW,EAAE,8BAA8B;qBAC5C;iBACF;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,GAAe;QACtC,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,iBAAiB,EAAE,CAAC;QACzC,eAAe;QACf,IAAI;YACF,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YACpE,IAAI,EAAE,CAAC,IAAI,KAAK,IAAI,EAAE;gBACpB,MAAM,IAAI,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;aAC9C;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,IAAI,UAAU,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;SACjD;QACD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;YACjB,qBAAqB,EAAE,GAAG,CAAC,SAAS,CAAC,qBAAqB,CAAC;YAC3D,cAAc,EAAE,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC;SAC9C,CAAC,CAAC;QACH,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAe,CAAC,CAAC;QAChD,kCAAkC;QAClC,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC;YAC/B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACjD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,IAAe;QACxB,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YACxB,MAAM,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;SAC1D;QACD,OAAO,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,GAAc,EAAE,OAAe,EAAE,OAAmB;QAC5E,OAAO,GAAG,OAAO;aACd,cAAc,EAAE;aAChB,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,iBAAiB,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,MAAM,IAAI,CAAC,QAAQ,CAChG,GAAG,CAAC,IAAI,EACR,KAAK,EACL,OAAO,CACR,iBAAiB,GAAG,CAAC,QAAQ,iCAAiC,CAAC;IAClE,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAC,IAAY,EAAE,UAAkB,SAAS;QAChD,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;SACtC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC;IACvD,CAAC;IAED,MAAM,CAAC,QAAQ,EAAE,IAAI,GAAG,KAAK;QAC3B,IAAI;YACF,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACzG,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;SAClB;QAAC,OAAO,CAAC,EAAE;YACV,eAAe;SAChB;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,MAAqB,EAAE,YAAoB,EAAE;QACxE,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAC/B,EAAE,IAAI,EAAE,MAAM,EAAE,EAChB;YACE,SAAS;SACV,CACF,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,SAAS,CAAC,GAA2B;QACzC,IAAI,IAAI,GAAG,MAAM,GAAG,CAAC,cAAc,EAAE,CAAC;QACtC,0DAA0D;QAC1D,0BAA0B;QAC1B,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAClD,OAAO,GAAG,CAAC,cAAc,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,eAAe,GAAG,IAAI,CAAC,IAAI,GAAG,UAAU,KAAK,EAAE,CAAC,CAAC;IACpH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,cAAc,CAAC,GAA2B;QAC9C,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,QAAQ,EAAE,CAAC;QAClC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;QACtD,IAAI,MAAM,GAAG,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAC/D,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,GAAG,GAAG,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE;YAChF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE;gBACpD,UAAU;gBACV,OAAO,MAAM,CAAC;aACf;YACD,0DAA0D;YAC1D,OAAO;SACR;QACD,2CAA2C;QAC3C,IAAI,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,MAAM,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,aAAa,CAAc,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC9D,sCAAsC;QACtC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;YAC5C,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SACxC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC;QAC3E,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;YAC7C,kDAAkD;YAClD,OAAO;SACR;QACD,0CAA0C;QAC1C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,WAAW,CAAC,GAAe;QAC/B,IAAI,IAAI,GAAG,MAAM,GAAG,CAAC,cAAc,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC1E,IAAI,MAAM,GAAG,MAAM,IAAI,gBAAgB,CAAC,IAAI,EAAE;YAC5C,QAAQ,EAAE,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,kBAAkB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACpG,IAAI,EAAE,EAAE;YACR,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;SACvE,CAAC,CAAC,SAAS,EAAE,CAAC;QACf,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,IAAI,EAAE;YACzC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,qBAAqB,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACnF,MAAM,IAAI,UAAU,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;SACxD;QACD,eAAe;QACf,IAAI;YACF,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YACpE,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE;gBAC3B,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC/E,MAAM,IAAI,UAAU,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;aACnD;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;YACtC,MAAM,IAAI,UAAU,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;SACrD;QACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE;YAC9C,2DAA2D;YAC3D,MAAM,IAAI,UAAU,CAAC,kBAAkB,CAAC,qBAAqB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;SAC9E;QACD,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YACxB,gBAAgB;YAChB,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SAC9B;QACD,qBAAqB;QACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,IAAY;QAC9B,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YACxB,OAAO,CAAC,CAAC;SACV;QACD,IAAI,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CAAC,IAAY;QAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;YAAE,OAAO;QAC9B,IAAI;YACF,IAAI,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC9B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YACpD,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SACjB;QAAC,OAAO,GAAG,EAAE,GAAE;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,IAAY,EAAE,IAAY,EAAE,SAAkB;QAC9D,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;YAAE,OAAO;QAC9B,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;QAChD,IAAI,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAC9B,KAAK;aACF,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;aACvE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvD,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;YACrB,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAC7B;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,MAAiB,EAAE,QAAgB,EAAE,KAAc;QAC9D,IAAI,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QACnF,MAAM,IAAI,CAAC,aAAa,CAAc,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC/D,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED,SAAS,CAAC,IAAI,EAAE,SAAS;QACvB,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,IAAI,KAAK,SAAS,EAAE,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,IAAe,EAAE,IAAY;QAC/C,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAgB,EAAE,MAAiB,EAAE,SAAiB;QACjE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACpC,GAAG;iBACA,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;iBAC5D,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;iBACnB,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,sBAAsB;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,IAAI,SAAS,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3G,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,MAAiB,EAAE,QAAgB,EAAE,IAAgB;QAC/D,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;YAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,SAAS,IAAI,QAAQ,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;YACtF,MAAM,IAAI,CAAC,aAAa,CAAc,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAClE,OAAO;SACR;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC1C,MAAM,IAAI,CAAC,aAAa,CAAc,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACpE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY;QAChB,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAClE,CAAC;CACF;AA/VC;IADC,MAAM,CAAC,eAAe,CAAC;iDACK"}
|
|
@@ -11,5 +11,10 @@ declare class FileBinaryTest extends CloudBinaryTest {
|
|
|
11
11
|
cleanNonExisting(): void;
|
|
12
12
|
faultyBinary(): void;
|
|
13
13
|
cov(): void;
|
|
14
|
+
handleBinary(): Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* Test that we can use binary attributes
|
|
17
|
+
*/
|
|
18
|
+
binaryAttributes(): Promise<void>;
|
|
14
19
|
}
|
|
15
20
|
export { FileBinaryTest };
|
|
@@ -6,11 +6,21 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { suite, test } from "@testdeck/mocha";
|
|
8
8
|
import * as assert from "assert";
|
|
9
|
+
import { EventEmitter } from "events";
|
|
9
10
|
import * as fs from "fs";
|
|
11
|
+
import { mkdirSync, writeFileSync } from "fs";
|
|
10
12
|
import pkg from "fs-extra";
|
|
13
|
+
import sinon from "sinon";
|
|
11
14
|
import { Readable } from "stream";
|
|
12
|
-
import {
|
|
15
|
+
import { Core } from "../core.js";
|
|
16
|
+
import { WebdaError } from "../errors.js";
|
|
17
|
+
import { CoreModel } from "../models/coremodel.js";
|
|
18
|
+
import { WebdaTest } from "../test.js";
|
|
19
|
+
import { FileUtils } from "../utils/serializers.js";
|
|
20
|
+
import { BinariesImpl, BinariesItem, Binary, BinaryFile, BinaryService, MemoryBinaryFile } from "./binary.js";
|
|
21
|
+
import { TestBinaryService } from "./binary.spec.js";
|
|
13
22
|
import { CloudBinaryTest } from "./cloudbinary.spec.js";
|
|
23
|
+
import { FileBinary } from "./filebinary.js";
|
|
14
24
|
const { removeSync } = pkg;
|
|
15
25
|
class FaultyBinaryFile extends BinaryFile {
|
|
16
26
|
async get() {
|
|
@@ -62,20 +72,20 @@ let FileBinaryTest = class FileBinaryTest extends CloudBinaryTest {
|
|
|
62
72
|
assert.notStrictEqual(url, undefined);
|
|
63
73
|
await this.execute(ctx, "test.webda.io", "GET", url.substring("http://test.webda.io".length));
|
|
64
74
|
// c59d?token -> d59d?token
|
|
65
|
-
await assert.rejects(() => this.execute(ctx, "test.webda.io", "GET", url.substring("http://test.webda.io".length).replace("c59d?token", "d59d?token")),
|
|
66
|
-
await assert.rejects(() => this.execute(ctx, "test.webda.io", "GET", url.substring("http://test.webda.io".length).replace("eyJhbG", "ezJhbG")),
|
|
75
|
+
await assert.rejects(() => this.execute(ctx, "test.webda.io", "GET", url.substring("http://test.webda.io".length).replace("c59d?token", "d59d?token")), WebdaError.Forbidden);
|
|
76
|
+
await assert.rejects(() => this.execute(ctx, "test.webda.io", "GET", url.substring("http://test.webda.io".length).replace("eyJhbG", "ezJhbG")), WebdaError.Forbidden);
|
|
67
77
|
}
|
|
68
78
|
async verifyMapAndStore() {
|
|
69
79
|
let binary = this.getBinary();
|
|
70
80
|
let ctx = await this.newContext();
|
|
71
81
|
ctx.setPathParameters({ store: "Store", property: "images" });
|
|
72
|
-
assert.throws(() => binary._verifyMapAndStore(ctx),
|
|
82
|
+
assert.throws(() => binary._verifyMapAndStore(ctx), (err) => err.getResponseCode() === 404);
|
|
73
83
|
ctx.setPathParameters({ store: "users", property: "images" });
|
|
74
|
-
assert.strictEqual(binary._verifyMapAndStore(ctx), this.getService("
|
|
84
|
+
assert.strictEqual(binary._verifyMapAndStore(ctx), this.getService("Users"));
|
|
75
85
|
ctx.setPathParameters({ store: "users", property: "images2" });
|
|
76
|
-
assert.throws(() => binary._verifyMapAndStore(ctx),
|
|
86
|
+
assert.throws(() => binary._verifyMapAndStore(ctx), (err) => err.getResponseCode() === 404);
|
|
77
87
|
ctx.setPathParameters({ store: "notexisting", property: "images" });
|
|
78
|
-
assert.throws(() => binary._verifyMapAndStore(ctx),
|
|
88
|
+
assert.throws(() => binary._verifyMapAndStore(ctx), (err) => err.getResponseCode() === 404);
|
|
79
89
|
}
|
|
80
90
|
computeParameters() {
|
|
81
91
|
let binary = this.getBinary();
|
|
@@ -96,26 +106,26 @@ let FileBinaryTest = class FileBinaryTest extends CloudBinaryTest {
|
|
|
96
106
|
token
|
|
97
107
|
});
|
|
98
108
|
ctx.getHttpContext().setBody("PLOP");
|
|
99
|
-
await assert.rejects(() => binary.storeBinary(ctx),
|
|
109
|
+
await assert.rejects(() => binary.storeBinary(ctx), (err) => err.getResponseCode() === 403);
|
|
100
110
|
token = await this.webda.getCrypto().jwtSign({ hash: "PLOP2" });
|
|
101
111
|
ctx.setPathParameters({
|
|
102
112
|
hash,
|
|
103
113
|
token
|
|
104
114
|
});
|
|
105
|
-
await assert.rejects(() => binary.storeBinary(ctx),
|
|
115
|
+
await assert.rejects(() => binary.storeBinary(ctx), (err) => err.getResponseCode() === 403);
|
|
106
116
|
// expired token
|
|
107
117
|
token = await this.webda.getCrypto().jwtSign({ hash, exp: Math.floor(Date.now() / 1000) - 60 * 60 });
|
|
108
118
|
ctx.setPathParameters({
|
|
109
119
|
hash,
|
|
110
120
|
token
|
|
111
121
|
});
|
|
112
|
-
await assert.rejects(() => binary.storeBinary(ctx),
|
|
122
|
+
await assert.rejects(() => binary.storeBinary(ctx), (err) => err.getResponseCode() === 403);
|
|
113
123
|
token = await this.webda.getCrypto().jwtSign({ hash });
|
|
114
124
|
ctx.setPathParameters({
|
|
115
125
|
hash,
|
|
116
126
|
token
|
|
117
127
|
});
|
|
118
|
-
await assert.rejects(() => binary.storeBinary(ctx),
|
|
128
|
+
await assert.rejects(() => binary.storeBinary(ctx), (err) => err.getResponseCode() === 412);
|
|
119
129
|
}
|
|
120
130
|
cleanNonExisting() {
|
|
121
131
|
let binary = this.getBinary();
|
|
@@ -140,6 +150,60 @@ let FileBinaryTest = class FileBinaryTest extends CloudBinaryTest {
|
|
|
140
150
|
fs.unlinkSync("./touch.txt");
|
|
141
151
|
}
|
|
142
152
|
}
|
|
153
|
+
async handleBinary() {
|
|
154
|
+
this.registerService(new FileBinary(Core.get(), "second", {
|
|
155
|
+
folder: "./test/data/binaries"
|
|
156
|
+
}));
|
|
157
|
+
const binaries = Core.get().getServicesOfType(BinaryService);
|
|
158
|
+
const user = Core.get().getModel("WebdaDemo/User");
|
|
159
|
+
assert.strictEqual(Core.get().getBinaryStore(user, "images"), binaries["binary"]);
|
|
160
|
+
binaries["binary"].getParameters().models = {};
|
|
161
|
+
assert.throws(() => Core.get().getBinaryStore(user, "profilePicture"), /No binary store found for WebdaDemo\/User profilePicture/);
|
|
162
|
+
binaries["binary"].getParameters().models = {
|
|
163
|
+
"WebdaDemo/User": ["*"]
|
|
164
|
+
};
|
|
165
|
+
binaries["second"].getParameters().models = {
|
|
166
|
+
"WebdaDemo/User": ["profilePicture"]
|
|
167
|
+
};
|
|
168
|
+
assert.strictEqual(Core.get().getBinaryStore(user, "profilePicture"), binaries["second"]);
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Test that we can use binary attributes
|
|
172
|
+
*/
|
|
173
|
+
async binaryAttributes() {
|
|
174
|
+
const user = Core.get().getModel("WebdaDemo/User");
|
|
175
|
+
const User = await new user().load({}, true).save();
|
|
176
|
+
//User.profilePicture.upload(new MemoryBinaryFile(Buffer.from("PLOP"), <BinaryFileInfo>(<unknown>{})));
|
|
177
|
+
await User.profilePicture.upload(new MemoryBinaryFile(Buffer.from("PLOP"), {}));
|
|
178
|
+
await User.images.upload(new MemoryBinaryFile(Buffer.from("PLOP2"), {}));
|
|
179
|
+
await this.sleep(1000);
|
|
180
|
+
let files = FileUtils.find("./test/data/binaries");
|
|
181
|
+
assert.deepStrictEqual(files, [
|
|
182
|
+
`test/data/binaries/f15c25d20d6b9a631ab6de08cd00035e/MemoryUsers_profilePicture_${User.getUuid()}`,
|
|
183
|
+
"test/data/binaries/f15c25d20d6b9a631ab6de08cd00035e/_9eed42d099ec7ef1eed00a49e8079cd2",
|
|
184
|
+
"test/data/binaries/f15c25d20d6b9a631ab6de08cd00035e/data",
|
|
185
|
+
`test/data/binaries/ff1cee367d40cacc3fe5f23e985c29ae/MemoryUsers_images_${User.getUuid()}`,
|
|
186
|
+
"test/data/binaries/ff1cee367d40cacc3fe5f23e985c29ae/_0a4ef38590e0bd4a8999f1489186bbe9",
|
|
187
|
+
"test/data/binaries/ff1cee367d40cacc3fe5f23e985c29ae/data"
|
|
188
|
+
]);
|
|
189
|
+
await User.profilePicture.delete();
|
|
190
|
+
await this.sleep(1000);
|
|
191
|
+
files = FileUtils.find("./test/data/binaries");
|
|
192
|
+
assert.deepStrictEqual(files, [
|
|
193
|
+
`test/data/binaries/ff1cee367d40cacc3fe5f23e985c29ae/MemoryUsers_images_${User.getUuid()}`,
|
|
194
|
+
"test/data/binaries/ff1cee367d40cacc3fe5f23e985c29ae/_0a4ef38590e0bd4a8999f1489186bbe9",
|
|
195
|
+
"test/data/binaries/ff1cee367d40cacc3fe5f23e985c29ae/data"
|
|
196
|
+
]);
|
|
197
|
+
await User.images[0].upload(new MemoryBinaryFile(Buffer.from("0123456789"), {
|
|
198
|
+
mimetype: "text/plain",
|
|
199
|
+
name: "test.txt",
|
|
200
|
+
size: 10
|
|
201
|
+
}));
|
|
202
|
+
await User.images[0].delete();
|
|
203
|
+
await this.sleep(1000);
|
|
204
|
+
files = FileUtils.find("./test/data/binaries");
|
|
205
|
+
assert.deepStrictEqual(files, []);
|
|
206
|
+
}
|
|
143
207
|
};
|
|
144
208
|
__decorate([
|
|
145
209
|
test
|
|
@@ -174,8 +238,155 @@ __decorate([
|
|
|
174
238
|
__decorate([
|
|
175
239
|
test
|
|
176
240
|
], FileBinaryTest.prototype, "cov", null);
|
|
241
|
+
__decorate([
|
|
242
|
+
test
|
|
243
|
+
], FileBinaryTest.prototype, "handleBinary", null);
|
|
244
|
+
__decorate([
|
|
245
|
+
test
|
|
246
|
+
], FileBinaryTest.prototype, "binaryAttributes", null);
|
|
177
247
|
FileBinaryTest = __decorate([
|
|
178
248
|
suite
|
|
179
249
|
], FileBinaryTest);
|
|
250
|
+
let BinaryAbstractTest = class BinaryAbstractTest extends WebdaTest {
|
|
251
|
+
async cov() {
|
|
252
|
+
let service = new TestBinaryService(undefined, "plop", {});
|
|
253
|
+
let ctx = await this.newContext();
|
|
254
|
+
await assert.rejects(() => service.putRedirectUrl(undefined), (err) => err.getResponseCode() === 404);
|
|
255
|
+
ctx.getHttpContext().setBody({
|
|
256
|
+
hash: "plop"
|
|
257
|
+
});
|
|
258
|
+
await assert.rejects(() => service.httpChallenge(ctx), (err) => err.getResponseCode() === 400);
|
|
259
|
+
ctx = await this.newContext();
|
|
260
|
+
ctx.getHttpContext().setBody({
|
|
261
|
+
challenge: "plop"
|
|
262
|
+
});
|
|
263
|
+
await assert.rejects(() => service.httpChallenge(ctx), (err) => err.getResponseCode() === 400);
|
|
264
|
+
ctx = await this.newContext();
|
|
265
|
+
let binary = this.getService("binary");
|
|
266
|
+
ctx.setPathParameters({
|
|
267
|
+
property: "images",
|
|
268
|
+
store: "users",
|
|
269
|
+
uid: "notfound",
|
|
270
|
+
index: 0
|
|
271
|
+
});
|
|
272
|
+
ctx.getHttpContext().setBody({
|
|
273
|
+
hash: "p",
|
|
274
|
+
challenge: "z"
|
|
275
|
+
});
|
|
276
|
+
await assert.rejects(() => binary.httpChallenge(ctx), (err) => err.getResponseCode() === 404);
|
|
277
|
+
let stubs = [];
|
|
278
|
+
try {
|
|
279
|
+
let model = {
|
|
280
|
+
images: [
|
|
281
|
+
{
|
|
282
|
+
size: 10
|
|
283
|
+
}
|
|
284
|
+
],
|
|
285
|
+
canAct: async () => true,
|
|
286
|
+
checkAct: async () => { }
|
|
287
|
+
};
|
|
288
|
+
stubs.push(sinon.stub(binary, "_verifyMapAndStore").callsFake(() => {
|
|
289
|
+
return {
|
|
290
|
+
get: async () => {
|
|
291
|
+
return model;
|
|
292
|
+
}
|
|
293
|
+
};
|
|
294
|
+
}));
|
|
295
|
+
stubs.push(
|
|
296
|
+
// @ts-ignore
|
|
297
|
+
sinon.stub(binary, "get").callsFake(async () => {
|
|
298
|
+
return {
|
|
299
|
+
pipe: stream => {
|
|
300
|
+
stream.emit("error", new Error("I/O"));
|
|
301
|
+
}
|
|
302
|
+
};
|
|
303
|
+
}));
|
|
304
|
+
await assert.rejects(() => binary.httpRoute(ctx));
|
|
305
|
+
}
|
|
306
|
+
finally {
|
|
307
|
+
stubs.forEach(stub => stub.restore());
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
async handleBinary() {
|
|
311
|
+
const binaryService = this.getService("binary");
|
|
312
|
+
assert.strictEqual(binaryService.handleBinary("WebdaDemo/User", "images"), 2);
|
|
313
|
+
assert.strictEqual(binaryService.handleBinary("WebdaDemo/User", "profilePicture"), 0);
|
|
314
|
+
assert.strictEqual(binaryService.handleBinary("WebdaDemo/User2", "images"), 0);
|
|
315
|
+
binaryService.getParameters().models["*"] = ["images"];
|
|
316
|
+
assert.strictEqual(binaryService.handleBinary("WebdaDemo/User2", "images"), 1);
|
|
317
|
+
assert.strictEqual(binaryService.handleBinary("WebdaDemo/User2", "images2"), -1);
|
|
318
|
+
}
|
|
319
|
+
async binaryMaps() {
|
|
320
|
+
let map = new BinariesImpl().assign(new CoreModel(), "test");
|
|
321
|
+
await assert.rejects(() => map.upload(undefined));
|
|
322
|
+
await assert.throws(() => map.shift());
|
|
323
|
+
await assert.throws(() => map.unshift());
|
|
324
|
+
await assert.throws(() => map.slice());
|
|
325
|
+
await assert.throws(() => map.pop());
|
|
326
|
+
let binary = new Binary("test", new CoreModel());
|
|
327
|
+
await assert.rejects(() => binary.upload(undefined));
|
|
328
|
+
await assert.rejects(() => binary.delete());
|
|
329
|
+
let binaryItem = new BinariesItem(map, new MemoryBinaryFile(Buffer.from("test"), {
|
|
330
|
+
name: "test",
|
|
331
|
+
mimetype: "text/plain",
|
|
332
|
+
size: 4
|
|
333
|
+
}));
|
|
334
|
+
await assert.rejects(() => binaryItem.upload(undefined));
|
|
335
|
+
await assert.rejects(() => binaryItem.delete());
|
|
336
|
+
}
|
|
337
|
+
async streamToBufferError() {
|
|
338
|
+
let stream = new EventEmitter();
|
|
339
|
+
// @ts-ignore
|
|
340
|
+
let p = assert.rejects(() => BinaryService.streamToBuffer(stream), /Bad I\/O/);
|
|
341
|
+
stream.emit("error", new Error("Bad I/O"));
|
|
342
|
+
await p;
|
|
343
|
+
}
|
|
344
|
+
async verifyMapStore() {
|
|
345
|
+
const binaryService = this.getService("binary");
|
|
346
|
+
const ctx = await this.newContext();
|
|
347
|
+
binaryService.handleBinary = () => -1;
|
|
348
|
+
ctx.getParameters().model = "webda/test";
|
|
349
|
+
assert.throws(() => binaryService._verifyMapAndStore(ctx), WebdaError.NotFound);
|
|
350
|
+
}
|
|
351
|
+
async putRedirectUrl() {
|
|
352
|
+
const binaryService = this.getService("binary");
|
|
353
|
+
let ctx = await this.newContext(JSON.stringify({ hash: "123" }));
|
|
354
|
+
ctx.getParameters().uuid = "456";
|
|
355
|
+
ctx.getParameters().store = "Test";
|
|
356
|
+
ctx.getParameters().property = "plop";
|
|
357
|
+
let dataPath = binaryService._getPath("123", "data");
|
|
358
|
+
mkdirSync(binaryService._getPath("123"), { recursive: true });
|
|
359
|
+
writeFileSync(binaryService._getPath("123", "Test_plop_456"), "");
|
|
360
|
+
if (fs.existsSync(dataPath)) {
|
|
361
|
+
fs.unlinkSync(dataPath);
|
|
362
|
+
}
|
|
363
|
+
let res = await binaryService.putRedirectUrl(ctx);
|
|
364
|
+
assert.notStrictEqual(res, undefined);
|
|
365
|
+
writeFileSync(dataPath, "data");
|
|
366
|
+
res = await binaryService.putRedirectUrl(ctx);
|
|
367
|
+
assert.strictEqual(res, undefined);
|
|
368
|
+
}
|
|
369
|
+
};
|
|
370
|
+
__decorate([
|
|
371
|
+
test
|
|
372
|
+
], BinaryAbstractTest.prototype, "cov", null);
|
|
373
|
+
__decorate([
|
|
374
|
+
test
|
|
375
|
+
], BinaryAbstractTest.prototype, "handleBinary", null);
|
|
376
|
+
__decorate([
|
|
377
|
+
test
|
|
378
|
+
], BinaryAbstractTest.prototype, "binaryMaps", null);
|
|
379
|
+
__decorate([
|
|
380
|
+
test
|
|
381
|
+
], BinaryAbstractTest.prototype, "streamToBufferError", null);
|
|
382
|
+
__decorate([
|
|
383
|
+
test
|
|
384
|
+
], BinaryAbstractTest.prototype, "verifyMapStore", null);
|
|
385
|
+
__decorate([
|
|
386
|
+
test
|
|
387
|
+
], BinaryAbstractTest.prototype, "putRedirectUrl", null);
|
|
388
|
+
BinaryAbstractTest = __decorate([
|
|
389
|
+
suite
|
|
390
|
+
], BinaryAbstractTest);
|
|
180
391
|
export { FileBinaryTest };
|
|
181
392
|
//# sourceMappingURL=filebinary.spec.js.map
|