@payloadcms/plugin-cloud-storage 1.1.2 → 3.0.0-alpha.19
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/.eslintrc.js +0 -1
- package/dist/adapters/azure/generateURL.js +4 -19
- package/dist/adapters/azure/handleDelete.js +4 -19
- package/dist/adapters/azure/handleUpload.js +9 -24
- package/dist/adapters/azure/index.d.ts.map +1 -1
- package/dist/adapters/azure/index.js +12 -24
- package/dist/adapters/azure/staticHandler.d.ts.map +1 -1
- package/dist/adapters/azure/staticHandler.js +32 -31
- package/dist/adapters/gcs/generateURL.js +4 -19
- package/dist/adapters/gcs/handleDelete.js +4 -19
- package/dist/adapters/gcs/handleUpload.js +4 -19
- package/dist/adapters/gcs/index.d.ts.map +1 -1
- package/dist/adapters/gcs/index.js +13 -25
- package/dist/adapters/gcs/staticHandler.d.ts.map +1 -1
- package/dist/adapters/gcs/staticHandler.js +33 -28
- package/dist/adapters/s3/generateURL.js +4 -19
- package/dist/adapters/s3/handleDelete.js +4 -19
- package/dist/adapters/s3/handleUpload.js +8 -23
- package/dist/adapters/s3/index.d.ts.map +1 -1
- package/dist/adapters/s3/index.js +13 -64
- package/dist/adapters/s3/staticHandler.d.ts.map +1 -1
- package/dist/adapters/s3/staticHandler.js +32 -31
- package/dist/admin/fields/getFields.js +12 -27
- package/dist/admin/index.js +6 -14
- package/dist/fields/getFields.js +15 -30
- package/dist/hooks/afterDelete.js +2 -12
- package/dist/hooks/afterRead.js +2 -12
- package/dist/hooks/beforeChange.js +4 -14
- package/dist/index.js +2 -12
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +14 -27
- package/dist/types.d.ts +6 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -5
- package/dist/utilities/getFilePrefix.d.ts.map +1 -1
- package/dist/utilities/getFilePrefix.js +7 -15
- package/dist/utilities/getIncomingFiles.js +3 -13
- package/dist/utilities/getRangeFromHeader.js +4 -19
- package/package.json +9 -16
- package/dist/adapters/azure/mock.js +0 -13
- package/dist/adapters/azure/webpack.d.ts +0 -3
- package/dist/adapters/azure/webpack.d.ts.map +0 -1
- package/dist/adapters/azure/webpack.js +0 -35
- package/dist/adapters/gcs/mock.js +0 -13
- package/dist/adapters/gcs/webpack.d.ts +0 -3
- package/dist/adapters/gcs/webpack.d.ts.map +0 -1
- package/dist/adapters/gcs/webpack.js +0 -35
- package/dist/adapters/s3/mock.js +0 -13
- package/dist/adapters/s3/webpack.d.ts +0 -3
- package/dist/adapters/s3/webpack.d.ts.map +0 -1
- package/dist/adapters/s3/webpack.js +0 -52
- package/dist/webpack.d.ts +0 -10
- package/dist/webpack.d.ts.map +0 -1
- package/dist/webpack.js +0 -44
package/.eslintrc.js
CHANGED
|
@@ -1,21 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "getGenerateURL", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return getGenerateURL;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
12
|
-
function _interop_require_default(obj) {
|
|
13
|
-
return obj && obj.__esModule ? obj : {
|
|
14
|
-
default: obj
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
const getGenerateURL = ({ baseURL, containerName })=>({ filename, prefix = '' })=>{
|
|
18
|
-
return `${baseURL}/${containerName}/${_path.default.posix.join(prefix, filename)}`;
|
|
1
|
+
import path from 'path';
|
|
2
|
+
export const getGenerateURL = ({ baseURL, containerName })=>({ filename, prefix = '' })=>{
|
|
3
|
+
return `${baseURL}/${containerName}/${path.posix.join(prefix, filename)}`;
|
|
19
4
|
};
|
|
20
5
|
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZGFwdGVycy9henVyZS9nZW5lcmF0ZVVSTC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuXG5pbXBvcnQgdHlwZSB7IEdlbmVyYXRlVVJMIH0gZnJvbSAnLi4vLi4vdHlwZXMnXG5cbmludGVyZmFjZSBBcmdzIHtcbiAgYmFzZVVSTDogc3RyaW5nXG4gIGNvbnRhaW5lck5hbWU6IHN0cmluZ1xufVxuXG5leHBvcnQgY29uc3QgZ2V0R2VuZXJhdGVVUkwgPVxuICAoeyBiYXNlVVJMLCBjb250YWluZXJOYW1lIH06IEFyZ3MpOiBHZW5lcmF0ZVVSTCA9PlxuICAoeyBmaWxlbmFtZSwgcHJlZml4ID0gJycgfSkgPT4ge1xuICAgIHJldHVybiBgJHtiYXNlVVJMfS8ke2NvbnRhaW5lck5hbWV9LyR7cGF0aC5wb3NpeC5qb2luKHByZWZpeCwgZmlsZW5hbWUpfWBcbiAgfVxuIl0sIm5hbWVzIjpbInBhdGgiLCJnZXRHZW5lcmF0ZVVSTCIsImJhc2VVUkwiLCJjb250YWluZXJOYW1lIiwiZmlsZW5hbWUiLCJwcmVmaXgiLCJwb3NpeCIsImpvaW4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFVBQVUsT0FBTTtBQVN2QixPQUFPLE1BQU1DLGlCQUNYLENBQUMsRUFBRUMsT0FBTyxFQUFFQyxhQUFhLEVBQVEsR0FDakMsQ0FBQyxFQUFFQyxRQUFRLEVBQUVDLFNBQVMsRUFBRSxFQUFFO1FBQ3hCLE9BQU8sQ0FBQyxFQUFFSCxRQUFRLENBQUMsRUFBRUMsY0FBYyxDQUFDLEVBQUVILEtBQUtNLEtBQUssQ0FBQ0MsSUFBSSxDQUFDRixRQUFRRCxVQUFVLENBQUM7SUFDM0UsRUFBQyJ9
|
|
@@ -1,24 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "getHandleDelete", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return getHandleDelete;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
12
|
-
function _interop_require_default(obj) {
|
|
13
|
-
return obj && obj.__esModule ? obj : {
|
|
14
|
-
default: obj
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
const getHandleDelete = ({ getStorageClient })=>{
|
|
1
|
+
import path from 'path';
|
|
2
|
+
export const getHandleDelete = ({ getStorageClient })=>{
|
|
18
3
|
return async ({ doc: { prefix = '' }, filename })=>{
|
|
19
|
-
const blockBlobClient = getStorageClient().getBlockBlobClient(
|
|
4
|
+
const blockBlobClient = getStorageClient().getBlockBlobClient(path.posix.join(prefix, filename));
|
|
20
5
|
await blockBlobClient.deleteIfExists();
|
|
21
6
|
};
|
|
22
7
|
};
|
|
23
8
|
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZGFwdGVycy9henVyZS9oYW5kbGVEZWxldGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb250YWluZXJDbGllbnQgfSBmcm9tICdAYXp1cmUvc3RvcmFnZS1ibG9iJ1xuaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcblxuaW1wb3J0IHR5cGUgeyBIYW5kbGVEZWxldGUgfSBmcm9tICcuLi8uLi90eXBlcydcblxuaW50ZXJmYWNlIEFyZ3Mge1xuICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uQ29uZmlnXG4gIGdldFN0b3JhZ2VDbGllbnQ6ICgpID0+IENvbnRhaW5lckNsaWVudFxufVxuXG5leHBvcnQgY29uc3QgZ2V0SGFuZGxlRGVsZXRlID0gKHsgZ2V0U3RvcmFnZUNsaWVudCB9OiBBcmdzKTogSGFuZGxlRGVsZXRlID0+
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZGFwdGVycy9henVyZS9oYW5kbGVEZWxldGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb250YWluZXJDbGllbnQgfSBmcm9tICdAYXp1cmUvc3RvcmFnZS1ibG9iJ1xuaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcblxuaW1wb3J0IHR5cGUgeyBIYW5kbGVEZWxldGUgfSBmcm9tICcuLi8uLi90eXBlcydcblxuaW50ZXJmYWNlIEFyZ3Mge1xuICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uQ29uZmlnXG4gIGdldFN0b3JhZ2VDbGllbnQ6ICgpID0+IENvbnRhaW5lckNsaWVudFxufVxuXG5leHBvcnQgY29uc3QgZ2V0SGFuZGxlRGVsZXRlID0gKHsgZ2V0U3RvcmFnZUNsaWVudCB9OiBBcmdzKTogSGFuZGxlRGVsZXRlID0+IHtcbiAgcmV0dXJuIGFzeW5jICh7IGRvYzogeyBwcmVmaXggPSAnJyB9LCBmaWxlbmFtZSB9KSA9PiB7XG4gICAgY29uc3QgYmxvY2tCbG9iQ2xpZW50ID0gZ2V0U3RvcmFnZUNsaWVudCgpLmdldEJsb2NrQmxvYkNsaWVudChwYXRoLnBvc2l4LmpvaW4ocHJlZml4LCBmaWxlbmFtZSkpXG4gICAgYXdhaXQgYmxvY2tCbG9iQ2xpZW50LmRlbGV0ZUlmRXhpc3RzKClcbiAgfVxufVxuIl0sIm5hbWVzIjpbInBhdGgiLCJnZXRIYW5kbGVEZWxldGUiLCJnZXRTdG9yYWdlQ2xpZW50IiwiZG9jIiwicHJlZml4IiwiZmlsZW5hbWUiLCJibG9ja0Jsb2JDbGllbnQiLCJnZXRCbG9ja0Jsb2JDbGllbnQiLCJwb3NpeCIsImpvaW4iLCJkZWxldGVJZkV4aXN0cyJdLCJtYXBwaW5ncyI6IkFBR0EsT0FBT0EsVUFBVSxPQUFNO0FBU3ZCLE9BQU8sTUFBTUMsa0JBQWtCLENBQUMsRUFBRUMsZ0JBQWdCLEVBQVE7SUFDeEQsT0FBTyxPQUFPLEVBQUVDLEtBQUssRUFBRUMsU0FBUyxFQUFFLEVBQUUsRUFBRUMsUUFBUSxFQUFFO1FBQzlDLE1BQU1DLGtCQUFrQkosbUJBQW1CSyxrQkFBa0IsQ0FBQ1AsS0FBS1EsS0FBSyxDQUFDQyxJQUFJLENBQUNMLFFBQVFDO1FBQ3RGLE1BQU1DLGdCQUFnQkksY0FBYztJQUN0QztBQUNGLEVBQUMifQ==
|
|
@@ -1,27 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
}
|
|
5
|
-
Object.defineProperty(exports, "getHandleUpload", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return getHandleUpload;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _abortcontroller = require("@azure/abort-controller");
|
|
12
|
-
const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
13
|
-
const _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
14
|
-
const _stream = require("stream");
|
|
15
|
-
function _interop_require_default(obj) {
|
|
16
|
-
return obj && obj.__esModule ? obj : {
|
|
17
|
-
default: obj
|
|
18
|
-
};
|
|
19
|
-
}
|
|
1
|
+
import { AbortController } from '@azure/abort-controller';
|
|
2
|
+
import fs from 'fs';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import { Readable } from 'stream';
|
|
20
5
|
const multipartThreshold = 1024 * 1024 * 50 // 50MB
|
|
21
6
|
;
|
|
22
|
-
const getHandleUpload = ({ getStorageClient, prefix = '' })=>{
|
|
7
|
+
export const getHandleUpload = ({ getStorageClient, prefix = '' })=>{
|
|
23
8
|
return async ({ data, file })=>{
|
|
24
|
-
const fileKey =
|
|
9
|
+
const fileKey = path.posix.join(data.prefix || prefix, file.filename);
|
|
25
10
|
const blockBlobClient = getStorageClient().getBlockBlobClient(fileKey);
|
|
26
11
|
// when there are no temp files, or the upload is less than the threshold size, do not stream files
|
|
27
12
|
if (!file.tempFilePath && file.buffer.length > 0 && file.buffer.length < multipartThreshold) {
|
|
@@ -32,12 +17,12 @@ const getHandleUpload = ({ getStorageClient, prefix = '' })=>{
|
|
|
32
17
|
});
|
|
33
18
|
return data;
|
|
34
19
|
}
|
|
35
|
-
const fileBufferOrStream = file.tempFilePath ?
|
|
20
|
+
const fileBufferOrStream = file.tempFilePath ? fs.createReadStream(file.tempFilePath) : Readable.from(file.buffer);
|
|
36
21
|
await blockBlobClient.uploadStream(fileBufferOrStream, 4 * 1024 * 1024, 4, {
|
|
37
|
-
abortSignal:
|
|
22
|
+
abortSignal: AbortController.timeout(30 * 60 * 1000)
|
|
38
23
|
});
|
|
39
24
|
return data;
|
|
40
25
|
};
|
|
41
26
|
};
|
|
42
27
|
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZGFwdGVycy9henVyZS9oYW5kbGVVcGxvYWQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb250YWluZXJDbGllbnQgfSBmcm9tICdAYXp1cmUvc3RvcmFnZS1ibG9iJ1xuaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHsgQWJvcnRDb250cm9sbGVyIH0gZnJvbSAnQGF6dXJlL2Fib3J0LWNvbnRyb2xsZXInXG5pbXBvcnQgZnMgZnJvbSAnZnMnXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IHsgUmVhZGFibGUgfSBmcm9tICdzdHJlYW0nXG5cbmltcG9ydCB0eXBlIHsgSGFuZGxlVXBsb2FkIH0gZnJvbSAnLi4vLi4vdHlwZXMnXG5cbmludGVyZmFjZSBBcmdzIHtcbiAgY29sbGVjdGlvbjogQ29sbGVjdGlvbkNvbmZpZ1xuICBnZXRTdG9yYWdlQ2xpZW50OiAoKSA9PiBDb250YWluZXJDbGllbnRcbiAgcHJlZml4Pzogc3RyaW5nXG59XG5cbmNvbnN0IG11bHRpcGFydFRocmVzaG9sZCA9IDEwMjQgKiAxMDI0ICogNTAgLy8gNTBNQlxuZXhwb3J0IGNvbnN0IGdldEhhbmRsZVVwbG9hZCA9ICh7IGdldFN0b3JhZ2VDbGllbnQsIHByZWZpeCA9ICcnIH06IEFyZ3MpOiBIYW5kbGVVcGxvYWQgPT4ge1xuICByZXR1cm4gYXN5bmMgKHsgZGF0YSwgZmlsZSB9KSA9PiB7XG4gICAgY29uc3QgZmlsZUtleSA9IHBhdGgucG9zaXguam9pbihkYXRhLnByZWZpeCB8fCBwcmVmaXgsIGZpbGUuZmlsZW5hbWUpXG5cbiAgICBjb25zdCBibG9ja0Jsb2JDbGllbnQgPSBnZXRTdG9yYWdlQ2xpZW50KCkuZ2V0QmxvY2tCbG9iQ2xpZW50KGZpbGVLZXkpXG5cbiAgICAvLyB3aGVuIHRoZXJlIGFyZSBubyB0ZW1wIGZpbGVzLCBvciB0aGUgdXBsb2FkIGlzIGxlc3MgdGhhbiB0aGUgdGhyZXNob2xkIHNpemUsIGRvIG5vdCBzdHJlYW0gZmlsZXNcbiAgICBpZiAoIWZpbGUudGVtcEZpbGVQYXRoICYmIGZpbGUuYnVmZmVyLmxlbmd0aCA+IDAgJiYgZmlsZS5idWZmZXIubGVuZ3RoIDwgbXVsdGlwYXJ0VGhyZXNob2xkKSB7XG4gICAgICBhd2FpdCBibG9ja0Jsb2JDbGllbnQudXBsb2FkKGZpbGUuYnVmZmVyLCBmaWxlLmJ1ZmZlci5ieXRlTGVuZ3RoLCB7XG4gICAgICAgIGJsb2JIVFRQSGVhZGVyczogeyBibG9iQ29udGVudFR5cGU6IGZpbGUubWltZVR5cGUgfSxcbiAgICAgIH0pXG5cbiAgICAgIHJldHVybiBkYXRhXG4gICAgfVxuXG4gICAgY29uc3QgZmlsZUJ1ZmZlck9yU3RyZWFtOiBSZWFkYWJsZSA9IGZpbGUudGVtcEZpbGVQYXRoXG4gICAgICA/
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZGFwdGVycy9henVyZS9oYW5kbGVVcGxvYWQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb250YWluZXJDbGllbnQgfSBmcm9tICdAYXp1cmUvc3RvcmFnZS1ibG9iJ1xuaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHsgQWJvcnRDb250cm9sbGVyIH0gZnJvbSAnQGF6dXJlL2Fib3J0LWNvbnRyb2xsZXInXG5pbXBvcnQgZnMgZnJvbSAnZnMnXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IHsgUmVhZGFibGUgfSBmcm9tICdzdHJlYW0nXG5cbmltcG9ydCB0eXBlIHsgSGFuZGxlVXBsb2FkIH0gZnJvbSAnLi4vLi4vdHlwZXMnXG5cbmludGVyZmFjZSBBcmdzIHtcbiAgY29sbGVjdGlvbjogQ29sbGVjdGlvbkNvbmZpZ1xuICBnZXRTdG9yYWdlQ2xpZW50OiAoKSA9PiBDb250YWluZXJDbGllbnRcbiAgcHJlZml4Pzogc3RyaW5nXG59XG5cbmNvbnN0IG11bHRpcGFydFRocmVzaG9sZCA9IDEwMjQgKiAxMDI0ICogNTAgLy8gNTBNQlxuZXhwb3J0IGNvbnN0IGdldEhhbmRsZVVwbG9hZCA9ICh7IGdldFN0b3JhZ2VDbGllbnQsIHByZWZpeCA9ICcnIH06IEFyZ3MpOiBIYW5kbGVVcGxvYWQgPT4ge1xuICByZXR1cm4gYXN5bmMgKHsgZGF0YSwgZmlsZSB9KSA9PiB7XG4gICAgY29uc3QgZmlsZUtleSA9IHBhdGgucG9zaXguam9pbihkYXRhLnByZWZpeCB8fCBwcmVmaXgsIGZpbGUuZmlsZW5hbWUpXG5cbiAgICBjb25zdCBibG9ja0Jsb2JDbGllbnQgPSBnZXRTdG9yYWdlQ2xpZW50KCkuZ2V0QmxvY2tCbG9iQ2xpZW50KGZpbGVLZXkpXG5cbiAgICAvLyB3aGVuIHRoZXJlIGFyZSBubyB0ZW1wIGZpbGVzLCBvciB0aGUgdXBsb2FkIGlzIGxlc3MgdGhhbiB0aGUgdGhyZXNob2xkIHNpemUsIGRvIG5vdCBzdHJlYW0gZmlsZXNcbiAgICBpZiAoIWZpbGUudGVtcEZpbGVQYXRoICYmIGZpbGUuYnVmZmVyLmxlbmd0aCA+IDAgJiYgZmlsZS5idWZmZXIubGVuZ3RoIDwgbXVsdGlwYXJ0VGhyZXNob2xkKSB7XG4gICAgICBhd2FpdCBibG9ja0Jsb2JDbGllbnQudXBsb2FkKGZpbGUuYnVmZmVyLCBmaWxlLmJ1ZmZlci5ieXRlTGVuZ3RoLCB7XG4gICAgICAgIGJsb2JIVFRQSGVhZGVyczogeyBibG9iQ29udGVudFR5cGU6IGZpbGUubWltZVR5cGUgfSxcbiAgICAgIH0pXG5cbiAgICAgIHJldHVybiBkYXRhXG4gICAgfVxuXG4gICAgY29uc3QgZmlsZUJ1ZmZlck9yU3RyZWFtOiBSZWFkYWJsZSA9IGZpbGUudGVtcEZpbGVQYXRoXG4gICAgICA/IGZzLmNyZWF0ZVJlYWRTdHJlYW0oZmlsZS50ZW1wRmlsZVBhdGgpXG4gICAgICA6IFJlYWRhYmxlLmZyb20oZmlsZS5idWZmZXIpXG5cbiAgICBhd2FpdCBibG9ja0Jsb2JDbGllbnQudXBsb2FkU3RyZWFtKGZpbGVCdWZmZXJPclN0cmVhbSwgNCAqIDEwMjQgKiAxMDI0LCA0LCB7XG4gICAgICBhYm9ydFNpZ25hbDogQWJvcnRDb250cm9sbGVyLnRpbWVvdXQoMzAgKiA2MCAqIDEwMDApLFxuICAgIH0pXG5cbiAgICByZXR1cm4gZGF0YVxuICB9XG59XG4iXSwibmFtZXMiOlsiQWJvcnRDb250cm9sbGVyIiwiZnMiLCJwYXRoIiwiUmVhZGFibGUiLCJtdWx0aXBhcnRUaHJlc2hvbGQiLCJnZXRIYW5kbGVVcGxvYWQiLCJnZXRTdG9yYWdlQ2xpZW50IiwicHJlZml4IiwiZGF0YSIsImZpbGUiLCJmaWxlS2V5IiwicG9zaXgiLCJqb2luIiwiZmlsZW5hbWUiLCJibG9ja0Jsb2JDbGllbnQiLCJnZXRCbG9ja0Jsb2JDbGllbnQiLCJ0ZW1wRmlsZVBhdGgiLCJidWZmZXIiLCJsZW5ndGgiLCJ1cGxvYWQiLCJieXRlTGVuZ3RoIiwiYmxvYkhUVFBIZWFkZXJzIiwiYmxvYkNvbnRlbnRUeXBlIiwibWltZVR5cGUiLCJmaWxlQnVmZmVyT3JTdHJlYW0iLCJjcmVhdGVSZWFkU3RyZWFtIiwiZnJvbSIsInVwbG9hZFN0cmVhbSIsImFib3J0U2lnbmFsIiwidGltZW91dCJdLCJtYXBwaW5ncyI6IkFBR0EsU0FBU0EsZUFBZSxRQUFRLDBCQUF5QjtBQUN6RCxPQUFPQyxRQUFRLEtBQUk7QUFDbkIsT0FBT0MsVUFBVSxPQUFNO0FBQ3ZCLFNBQVNDLFFBQVEsUUFBUSxTQUFRO0FBVWpDLE1BQU1DLHFCQUFxQixPQUFPLE9BQU8sR0FBRyxPQUFPOztBQUNuRCxPQUFPLE1BQU1DLGtCQUFrQixDQUFDLEVBQUVDLGdCQUFnQixFQUFFQyxTQUFTLEVBQUUsRUFBUTtJQUNyRSxPQUFPLE9BQU8sRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEVBQUU7UUFDMUIsTUFBTUMsVUFBVVIsS0FBS1MsS0FBSyxDQUFDQyxJQUFJLENBQUNKLEtBQUtELE1BQU0sSUFBSUEsUUFBUUUsS0FBS0ksUUFBUTtRQUVwRSxNQUFNQyxrQkFBa0JSLG1CQUFtQlMsa0JBQWtCLENBQUNMO1FBRTlELG1HQUFtRztRQUNuRyxJQUFJLENBQUNELEtBQUtPLFlBQVksSUFBSVAsS0FBS1EsTUFBTSxDQUFDQyxNQUFNLEdBQUcsS0FBS1QsS0FBS1EsTUFBTSxDQUFDQyxNQUFNLEdBQUdkLG9CQUFvQjtZQUMzRixNQUFNVSxnQkFBZ0JLLE1BQU0sQ0FBQ1YsS0FBS1EsTUFBTSxFQUFFUixLQUFLUSxNQUFNLENBQUNHLFVBQVUsRUFBRTtnQkFDaEVDLGlCQUFpQjtvQkFBRUMsaUJBQWlCYixLQUFLYyxRQUFRO2dCQUFDO1lBQ3BEO1lBRUEsT0FBT2Y7UUFDVDtRQUVBLE1BQU1nQixxQkFBK0JmLEtBQUtPLFlBQVksR0FDbERmLEdBQUd3QixnQkFBZ0IsQ0FBQ2hCLEtBQUtPLFlBQVksSUFDckNiLFNBQVN1QixJQUFJLENBQUNqQixLQUFLUSxNQUFNO1FBRTdCLE1BQU1ILGdCQUFnQmEsWUFBWSxDQUFDSCxvQkFBb0IsSUFBSSxPQUFPLE1BQU0sR0FBRztZQUN6RUksYUFBYTVCLGdCQUFnQjZCLE9BQU8sQ0FBQyxLQUFLLEtBQUs7UUFDakQ7UUFFQSxPQUFPckI7SUFDVDtBQUNGLEVBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/azure/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAoB,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/azure/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAoB,MAAM,aAAa,CAAA;AAO5D,MAAM,WAAW,IAAI;IACnB,oBAAoB,EAAE,OAAO,CAAA;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,eAAO,MAAM,uBAAuB,wEAKjC,IAAI,KAAG,OAyBT,CAAA"}
|
|
@@ -1,24 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
get: function() {
|
|
8
|
-
return azureBlobStorageAdapter;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _storageblob = require("@azure/storage-blob");
|
|
12
|
-
const _generateURL = require("./generateURL");
|
|
13
|
-
const _handleDelete = require("./handleDelete");
|
|
14
|
-
const _handleUpload = require("./handleUpload");
|
|
15
|
-
const _staticHandler = require("./staticHandler");
|
|
16
|
-
const _webpack = require("./webpack");
|
|
17
|
-
const azureBlobStorageAdapter = ({ allowContainerCreate, baseURL, connectionString, containerName })=>{
|
|
1
|
+
import { BlobServiceClient } from '@azure/storage-blob';
|
|
2
|
+
import { getGenerateURL } from './generateURL';
|
|
3
|
+
import { getHandleDelete } from './handleDelete';
|
|
4
|
+
import { getHandleUpload } from './handleUpload';
|
|
5
|
+
import { getHandler } from './staticHandler';
|
|
6
|
+
export const azureBlobStorageAdapter = ({ allowContainerCreate, baseURL, connectionString, containerName })=>{
|
|
18
7
|
let storageClient = null;
|
|
19
8
|
const getStorageClient = ()=>{
|
|
20
9
|
if (storageClient) return storageClient;
|
|
21
|
-
const blobServiceClient =
|
|
10
|
+
const blobServiceClient = BlobServiceClient.fromConnectionString(connectionString);
|
|
22
11
|
return storageClient = blobServiceClient.getContainerClient(containerName);
|
|
23
12
|
};
|
|
24
13
|
const createContainerIfNotExists = ()=>{
|
|
@@ -28,24 +17,23 @@ const azureBlobStorageAdapter = ({ allowContainerCreate, baseURL, connectionStri
|
|
|
28
17
|
};
|
|
29
18
|
return ({ collection, prefix })=>{
|
|
30
19
|
return {
|
|
31
|
-
generateURL:
|
|
20
|
+
generateURL: getGenerateURL({
|
|
32
21
|
baseURL,
|
|
33
22
|
containerName
|
|
34
23
|
}),
|
|
35
|
-
handleDelete:
|
|
24
|
+
handleDelete: getHandleDelete({
|
|
36
25
|
collection,
|
|
37
26
|
getStorageClient
|
|
38
27
|
}),
|
|
39
|
-
handleUpload:
|
|
28
|
+
handleUpload: getHandleUpload({
|
|
40
29
|
collection,
|
|
41
30
|
getStorageClient,
|
|
42
31
|
prefix
|
|
43
32
|
}),
|
|
44
|
-
staticHandler:
|
|
33
|
+
staticHandler: getHandler({
|
|
45
34
|
collection,
|
|
46
35
|
getStorageClient
|
|
47
36
|
}),
|
|
48
|
-
webpack: _webpack.extendWebpackConfig,
|
|
49
37
|
...allowContainerCreate && {
|
|
50
38
|
onInit: createContainerIfNotExists
|
|
51
39
|
}
|
|
@@ -53,4 +41,4 @@ const azureBlobStorageAdapter = ({ allowContainerCreate, baseURL, connectionStri
|
|
|
53
41
|
};
|
|
54
42
|
};
|
|
55
43
|
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZGFwdGVycy9henVyZS9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbnRhaW5lckNsaWVudCB9IGZyb20gJ0BhenVyZS9zdG9yYWdlLWJsb2InXG5cbmltcG9ydCB7IEJsb2JTZXJ2aWNlQ2xpZW50IH0gZnJvbSAnQGF6dXJlL3N0b3JhZ2UtYmxvYidcblxuaW1wb3J0IHR5cGUgeyBBZGFwdGVyLCBHZW5lcmF0ZWRBZGFwdGVyIH0gZnJvbSAnLi4vLi4vdHlwZXMnXG5cbmltcG9ydCB7IGdldEdlbmVyYXRlVVJMIH0gZnJvbSAnLi9nZW5lcmF0ZVVSTCdcbmltcG9ydCB7IGdldEhhbmRsZURlbGV0ZSB9IGZyb20gJy4vaGFuZGxlRGVsZXRlJ1xuaW1wb3J0IHsgZ2V0SGFuZGxlVXBsb2FkIH0gZnJvbSAnLi9oYW5kbGVVcGxvYWQnXG5pbXBvcnQgeyBnZXRIYW5kbGVyIH0gZnJvbSAnLi9zdGF0aWNIYW5kbGVyJ1xuXG5leHBvcnQgaW50ZXJmYWNlIEFyZ3Mge1xuICBhbGxvd0NvbnRhaW5lckNyZWF0ZTogYm9vbGVhblxuICBiYXNlVVJMOiBzdHJpbmdcbiAgY29ubmVjdGlvblN0cmluZzogc3RyaW5nXG4gIGNvbnRhaW5lck5hbWU6IHN0cmluZ1xufVxuXG5leHBvcnQgY29uc3QgYXp1cmVCbG9iU3RvcmFnZUFkYXB0ZXIgPSAoe1xuICBhbGxvd0NvbnRhaW5lckNyZWF0ZSxcbiAgYmFzZVVSTCxcbiAgY29ubmVjdGlvblN0cmluZyxcbiAgY29udGFpbmVyTmFtZSxcbn06IEFyZ3MpOiBBZGFwdGVyID0+IHtcbiAgbGV0IHN0b3JhZ2VDbGllbnQ6IENvbnRhaW5lckNsaWVudCB8IG51bGwgPSBudWxsXG4gIGNvbnN0IGdldFN0b3JhZ2VDbGllbnQgPSAoKSA9PiB7XG4gICAgaWYgKHN0b3JhZ2VDbGllbnQpIHJldHVybiBzdG9yYWdlQ2xpZW50XG4gICAgY29uc3QgYmxvYlNlcnZpY2VDbGllbnQgPSBCbG9iU2VydmljZUNsaWVudC5mcm9tQ29ubmVjdGlvblN0cmluZyhjb25uZWN0aW9uU3RyaW5nKVxuICAgIHJldHVybiAoc3RvcmFnZUNsaWVudCA9IGJsb2JTZXJ2aWNlQ2xpZW50LmdldENvbnRhaW5lckNsaWVudChjb250YWluZXJOYW1lKSlcbiAgfVxuXG4gIGNvbnN0IGNyZWF0ZUNvbnRhaW5lcklmTm90RXhpc3RzID0gKCkgPT4ge1xuICAgIGdldFN0b3JhZ2VDbGllbnQoKS5jcmVhdGVJZk5vdEV4aXN0cyh7IGFjY2VzczogJ2Jsb2InIH0pXG4gIH1cblxuICByZXR1cm4gKHsgY29sbGVjdGlvbiwgcHJlZml4IH0pOiBHZW5lcmF0ZWRBZGFwdGVyID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgZ2VuZXJhdGVVUkw6IGdldEdlbmVyYXRlVVJMKHsgYmFzZVVSTCwgY29udGFpbmVyTmFtZSB9KSxcbiAgICAgIGhhbmRsZURlbGV0ZTogZ2V0SGFuZGxlRGVsZXRlKHsgY29sbGVjdGlvbiwgZ2V0U3RvcmFnZUNsaWVudCB9KSxcbiAgICAgIGhhbmRsZVVwbG9hZDogZ2V0SGFuZGxlVXBsb2FkKHtcbiAgICAgICAgY29sbGVjdGlvbixcbiAgICAgICAgZ2V0U3RvcmFnZUNsaWVudCxcbiAgICAgICAgcHJlZml4LFxuICAgICAgfSksXG4gICAgICBzdGF0aWNIYW5kbGVyOiBnZXRIYW5kbGVyKHsgY29sbGVjdGlvbiwgZ2V0U3RvcmFnZUNsaWVudCB9KSxcbiAgICAgIC4uLihhbGxvd0NvbnRhaW5lckNyZWF0ZSAmJiB7IG9uSW5pdDogY3JlYXRlQ29udGFpbmVySWZOb3RFeGlzdHMgfSksXG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOlsiQmxvYlNlcnZpY2VDbGllbnQiLCJnZXRHZW5lcmF0ZVVSTCIsImdldEhhbmRsZURlbGV0ZSIsImdldEhhbmRsZVVwbG9hZCIsImdldEhhbmRsZXIiLCJhenVyZUJsb2JTdG9yYWdlQWRhcHRlciIsImFsbG93Q29udGFpbmVyQ3JlYXRlIiwiYmFzZVVSTCIsImNvbm5lY3Rpb25TdHJpbmciLCJjb250YWluZXJOYW1lIiwic3RvcmFnZUNsaWVudCIsImdldFN0b3JhZ2VDbGllbnQiLCJibG9iU2VydmljZUNsaWVudCIsImZyb21Db25uZWN0aW9uU3RyaW5nIiwiZ2V0Q29udGFpbmVyQ2xpZW50IiwiY3JlYXRlQ29udGFpbmVySWZOb3RFeGlzdHMiLCJjcmVhdGVJZk5vdEV4aXN0cyIsImFjY2VzcyIsImNvbGxlY3Rpb24iLCJwcmVmaXgiLCJnZW5lcmF0ZVVSTCIsImhhbmRsZURlbGV0ZSIsImhhbmRsZVVwbG9hZCIsInN0YXRpY0hhbmRsZXIiLCJvbkluaXQiXSwibWFwcGluZ3MiOiJBQUVBLFNBQVNBLGlCQUFpQixRQUFRLHNCQUFxQjtBQUl2RCxTQUFTQyxjQUFjLFFBQVEsZ0JBQWU7QUFDOUMsU0FBU0MsZUFBZSxRQUFRLGlCQUFnQjtBQUNoRCxTQUFTQyxlQUFlLFFBQVEsaUJBQWdCO0FBQ2hELFNBQVNDLFVBQVUsUUFBUSxrQkFBaUI7QUFTNUMsT0FBTyxNQUFNQywwQkFBMEIsQ0FBQyxFQUN0Q0Msb0JBQW9CLEVBQ3BCQyxPQUFPLEVBQ1BDLGdCQUFnQixFQUNoQkMsYUFBYSxFQUNSO0lBQ0wsSUFBSUMsZ0JBQXdDO0lBQzVDLE1BQU1DLG1CQUFtQjtRQUN2QixJQUFJRCxlQUFlLE9BQU9BO1FBQzFCLE1BQU1FLG9CQUFvQlosa0JBQWtCYSxvQkFBb0IsQ0FBQ0w7UUFDakUsT0FBUUUsZ0JBQWdCRSxrQkFBa0JFLGtCQUFrQixDQUFDTDtJQUMvRDtJQUVBLE1BQU1NLDZCQUE2QjtRQUNqQ0osbUJBQW1CSyxpQkFBaUIsQ0FBQztZQUFFQyxRQUFRO1FBQU87SUFDeEQ7SUFFQSxPQUFPLENBQUMsRUFBRUMsVUFBVSxFQUFFQyxNQUFNLEVBQUU7UUFDNUIsT0FBTztZQUNMQyxhQUFhbkIsZUFBZTtnQkFBRU07Z0JBQVNFO1lBQWM7WUFDckRZLGNBQWNuQixnQkFBZ0I7Z0JBQUVnQjtnQkFBWVA7WUFBaUI7WUFDN0RXLGNBQWNuQixnQkFBZ0I7Z0JBQzVCZTtnQkFDQVA7Z0JBQ0FRO1lBQ0Y7WUFDQUksZUFBZW5CLFdBQVc7Z0JBQUVjO2dCQUFZUDtZQUFpQjtZQUN6RCxHQUFJTCx3QkFBd0I7Z0JBQUVrQixRQUFRVDtZQUEyQixDQUFDO1FBQ3BFO0lBQ0Y7QUFDRixFQUFDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"staticHandler.d.ts","sourceRoot":"","sources":["../../../src/adapters/azure/staticHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAIrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAKhD,UAAU,IAAI;IACZ,UAAU,EAAE,gBAAgB,CAAA;IAC5B,gBAAgB,EAAE,MAAM,eAAe,CAAA;CACxC;AAED,eAAO,MAAM,UAAU,qCAAsC,IAAI,KAAG,
|
|
1
|
+
{"version":3,"file":"staticHandler.d.ts","sourceRoot":"","sources":["../../../src/adapters/azure/staticHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAIrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAKhD,UAAU,IAAI;IACZ,UAAU,EAAE,gBAAgB,CAAA;IAC5B,gBAAgB,EAAE,MAAM,eAAe,CAAA;CACxC;AAED,eAAO,MAAM,UAAU,qCAAsC,IAAI,KAAG,aAuCnE,CAAA"}
|
|
@@ -1,43 +1,44 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
})
|
|
5
|
-
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return getHandler;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
12
|
-
const _getFilePrefix = require("../../utilities/getFilePrefix");
|
|
13
|
-
const _getRangeFromHeader = /*#__PURE__*/ _interop_require_default(require("../../utilities/getRangeFromHeader"));
|
|
14
|
-
function _interop_require_default(obj) {
|
|
15
|
-
return obj && obj.__esModule ? obj : {
|
|
16
|
-
default: obj
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
const getHandler = ({ collection, getStorageClient })=>{
|
|
20
|
-
return async (req, res, next)=>{
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import { getFilePrefix } from '../../utilities/getFilePrefix';
|
|
3
|
+
import getRangeFromHeader from '../../utilities/getRangeFromHeader';
|
|
4
|
+
export const getHandler = ({ collection, getStorageClient })=>{
|
|
5
|
+
return async (req, { params })=>{
|
|
21
6
|
try {
|
|
22
|
-
const prefix = await
|
|
7
|
+
const prefix = await getFilePrefix({
|
|
23
8
|
collection,
|
|
24
9
|
req
|
|
25
10
|
});
|
|
26
|
-
const blockBlobClient = getStorageClient().getBlockBlobClient(
|
|
27
|
-
const { end, start } = await (
|
|
11
|
+
const blockBlobClient = getStorageClient().getBlockBlobClient(path.posix.join(prefix, params.filename));
|
|
12
|
+
const { end, start } = await getRangeFromHeader(blockBlobClient, req.headers.get('range'));
|
|
28
13
|
const blob = await blockBlobClient.download(start, end);
|
|
29
14
|
// eslint-disable-next-line no-underscore-dangle
|
|
30
15
|
const response = blob._response;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
16
|
+
// Manually create a ReadableStream for the web from a Node.js stream.
|
|
17
|
+
const readableStream = new ReadableStream({
|
|
18
|
+
start (controller) {
|
|
19
|
+
const nodeStream = blob.readableStreamBody;
|
|
20
|
+
nodeStream.on('data', (chunk)=>{
|
|
21
|
+
controller.enqueue(new Uint8Array(chunk));
|
|
22
|
+
});
|
|
23
|
+
nodeStream.on('end', ()=>{
|
|
24
|
+
controller.close();
|
|
25
|
+
});
|
|
26
|
+
nodeStream.on('error', (err)=>{
|
|
27
|
+
controller.error(err);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
return new Response(readableStream, {
|
|
32
|
+
headers: response.headers.rawHeaders(),
|
|
33
|
+
status: response.status
|
|
34
|
+
});
|
|
37
35
|
} catch (err) {
|
|
38
|
-
|
|
36
|
+
req.payload.logger.error(err);
|
|
37
|
+
return new Response('Internal Server Error', {
|
|
38
|
+
status: 500
|
|
39
|
+
});
|
|
39
40
|
}
|
|
40
41
|
};
|
|
41
42
|
};
|
|
42
43
|
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZGFwdGVycy9henVyZS9zdGF0aWNIYW5kbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29udGFpbmVyQ2xpZW50IH0gZnJvbSAnQGF6dXJlL3N0b3JhZ2UtYmxvYidcbmltcG9ydCB0eXBlIHsgQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5cbmltcG9ydCB0eXBlIHsgU3RhdGljSGFuZGxlciB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBnZXRGaWxlUHJlZml4IH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2dldEZpbGVQcmVmaXgnXG5pbXBvcnQgZ2V0UmFuZ2VGcm9tSGVhZGVyIGZyb20gJy4uLy4uL3V0aWxpdGllcy9nZXRSYW5nZUZyb21IZWFkZXInXG5cbmludGVyZmFjZSBBcmdzIHtcbiAgY29sbGVjdGlvbjogQ29sbGVjdGlvbkNvbmZpZ1xuICBnZXRTdG9yYWdlQ2xpZW50OiAoKSA9PiBDb250YWluZXJDbGllbnRcbn1cblxuZXhwb3J0IGNvbnN0IGdldEhhbmRsZXIgPSAoeyBjb2xsZWN0aW9uLCBnZXRTdG9yYWdlQ2xpZW50IH06IEFyZ3MpOiBTdGF0aWNIYW5kbGVyID0+
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZGFwdGVycy9henVyZS9zdGF0aWNIYW5kbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29udGFpbmVyQ2xpZW50IH0gZnJvbSAnQGF6dXJlL3N0b3JhZ2UtYmxvYidcbmltcG9ydCB0eXBlIHsgQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5cbmltcG9ydCB0eXBlIHsgU3RhdGljSGFuZGxlciB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBnZXRGaWxlUHJlZml4IH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2dldEZpbGVQcmVmaXgnXG5pbXBvcnQgZ2V0UmFuZ2VGcm9tSGVhZGVyIGZyb20gJy4uLy4uL3V0aWxpdGllcy9nZXRSYW5nZUZyb21IZWFkZXInXG5cbmludGVyZmFjZSBBcmdzIHtcbiAgY29sbGVjdGlvbjogQ29sbGVjdGlvbkNvbmZpZ1xuICBnZXRTdG9yYWdlQ2xpZW50OiAoKSA9PiBDb250YWluZXJDbGllbnRcbn1cblxuZXhwb3J0IGNvbnN0IGdldEhhbmRsZXIgPSAoeyBjb2xsZWN0aW9uLCBnZXRTdG9yYWdlQ2xpZW50IH06IEFyZ3MpOiBTdGF0aWNIYW5kbGVyID0+IHtcbiAgcmV0dXJuIGFzeW5jIChyZXEsIHsgcGFyYW1zIH0pID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcHJlZml4ID0gYXdhaXQgZ2V0RmlsZVByZWZpeCh7IGNvbGxlY3Rpb24sIHJlcSB9KVxuICAgICAgY29uc3QgYmxvY2tCbG9iQ2xpZW50ID0gZ2V0U3RvcmFnZUNsaWVudCgpLmdldEJsb2NrQmxvYkNsaWVudChcbiAgICAgICAgcGF0aC5wb3NpeC5qb2luKHByZWZpeCwgcGFyYW1zLmZpbGVuYW1lKSxcbiAgICAgIClcblxuICAgICAgY29uc3QgeyBlbmQsIHN0YXJ0IH0gPSBhd2FpdCBnZXRSYW5nZUZyb21IZWFkZXIoYmxvY2tCbG9iQ2xpZW50LCByZXEuaGVhZGVycy5nZXQoJ3JhbmdlJykpXG5cbiAgICAgIGNvbnN0IGJsb2IgPSBhd2FpdCBibG9ja0Jsb2JDbGllbnQuZG93bmxvYWQoc3RhcnQsIGVuZClcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlcnNjb3JlLWRhbmdsZVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBibG9iLl9yZXNwb25zZVxuXG4gICAgICAvLyBNYW51YWxseSBjcmVhdGUgYSBSZWFkYWJsZVN0cmVhbSBmb3IgdGhlIHdlYiBmcm9tIGEgTm9kZS5qcyBzdHJlYW0uXG4gICAgICBjb25zdCByZWFkYWJsZVN0cmVhbSA9IG5ldyBSZWFkYWJsZVN0cmVhbSh7XG4gICAgICAgIHN0YXJ0KGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICBjb25zdCBub2RlU3RyZWFtID0gYmxvYi5yZWFkYWJsZVN0cmVhbUJvZHlcbiAgICAgICAgICBub2RlU3RyZWFtLm9uKCdkYXRhJywgKGNodW5rKSA9PiB7XG4gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUobmV3IFVpbnQ4QXJyYXkoY2h1bmspKVxuICAgICAgICAgIH0pXG4gICAgICAgICAgbm9kZVN0cmVhbS5vbignZW5kJywgKCkgPT4ge1xuICAgICAgICAgICAgY29udHJvbGxlci5jbG9zZSgpXG4gICAgICAgICAgfSlcbiAgICAgICAgICBub2RlU3RyZWFtLm9uKCdlcnJvcicsIChlcnIpID0+IHtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZXJyb3IoZXJyKVxuICAgICAgICAgIH0pXG4gICAgICAgIH0sXG4gICAgICB9KVxuXG4gICAgICByZXR1cm4gbmV3IFJlc3BvbnNlKHJlYWRhYmxlU3RyZWFtLCB7XG4gICAgICAgIGhlYWRlcnM6IHJlc3BvbnNlLmhlYWRlcnMucmF3SGVhZGVycygpLFxuICAgICAgICBzdGF0dXM6IHJlc3BvbnNlLnN0YXR1cyxcbiAgICAgIH0pXG4gICAgfSBjYXRjaCAoZXJyOiB1bmtub3duKSB7XG4gICAgICByZXEucGF5bG9hZC5sb2dnZXIuZXJyb3IoZXJyKVxuICAgICAgcmV0dXJuIG5ldyBSZXNwb25zZSgnSW50ZXJuYWwgU2VydmVyIEVycm9yJywgeyBzdGF0dXM6IDUwMCB9KVxuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbInBhdGgiLCJnZXRGaWxlUHJlZml4IiwiZ2V0UmFuZ2VGcm9tSGVhZGVyIiwiZ2V0SGFuZGxlciIsImNvbGxlY3Rpb24iLCJnZXRTdG9yYWdlQ2xpZW50IiwicmVxIiwicGFyYW1zIiwicHJlZml4IiwiYmxvY2tCbG9iQ2xpZW50IiwiZ2V0QmxvY2tCbG9iQ2xpZW50IiwicG9zaXgiLCJqb2luIiwiZmlsZW5hbWUiLCJlbmQiLCJzdGFydCIsImhlYWRlcnMiLCJnZXQiLCJibG9iIiwiZG93bmxvYWQiLCJyZXNwb25zZSIsIl9yZXNwb25zZSIsInJlYWRhYmxlU3RyZWFtIiwiUmVhZGFibGVTdHJlYW0iLCJjb250cm9sbGVyIiwibm9kZVN0cmVhbSIsInJlYWRhYmxlU3RyZWFtQm9keSIsIm9uIiwiY2h1bmsiLCJlbnF1ZXVlIiwiVWludDhBcnJheSIsImNsb3NlIiwiZXJyIiwiZXJyb3IiLCJSZXNwb25zZSIsInJhd0hlYWRlcnMiLCJzdGF0dXMiLCJwYXlsb2FkIiwibG9nZ2VyIl0sIm1hcHBpbmdzIjoiQUFHQSxPQUFPQSxVQUFVLE9BQU07QUFJdkIsU0FBU0MsYUFBYSxRQUFRLGdDQUErQjtBQUM3RCxPQUFPQyx3QkFBd0IscUNBQW9DO0FBT25FLE9BQU8sTUFBTUMsYUFBYSxDQUFDLEVBQUVDLFVBQVUsRUFBRUMsZ0JBQWdCLEVBQVE7SUFDL0QsT0FBTyxPQUFPQyxLQUFLLEVBQUVDLE1BQU0sRUFBRTtRQUMzQixJQUFJO1lBQ0YsTUFBTUMsU0FBUyxNQUFNUCxjQUFjO2dCQUFFRztnQkFBWUU7WUFBSTtZQUNyRCxNQUFNRyxrQkFBa0JKLG1CQUFtQkssa0JBQWtCLENBQzNEVixLQUFLVyxLQUFLLENBQUNDLElBQUksQ0FBQ0osUUFBUUQsT0FBT00sUUFBUTtZQUd6QyxNQUFNLEVBQUVDLEdBQUcsRUFBRUMsS0FBSyxFQUFFLEdBQUcsTUFBTWIsbUJBQW1CTyxpQkFBaUJILElBQUlVLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDO1lBRWpGLE1BQU1DLE9BQU8sTUFBTVQsZ0JBQWdCVSxRQUFRLENBQUNKLE9BQU9EO1lBQ25ELGdEQUFnRDtZQUNoRCxNQUFNTSxXQUFXRixLQUFLRyxTQUFTO1lBRS9CLHNFQUFzRTtZQUN0RSxNQUFNQyxpQkFBaUIsSUFBSUMsZUFBZTtnQkFDeENSLE9BQU1TLFVBQVU7b0JBQ2QsTUFBTUMsYUFBYVAsS0FBS1Esa0JBQWtCO29CQUMxQ0QsV0FBV0UsRUFBRSxDQUFDLFFBQVEsQ0FBQ0M7d0JBQ3JCSixXQUFXSyxPQUFPLENBQUMsSUFBSUMsV0FBV0Y7b0JBQ3BDO29CQUNBSCxXQUFXRSxFQUFFLENBQUMsT0FBTzt3QkFDbkJILFdBQVdPLEtBQUs7b0JBQ2xCO29CQUNBTixXQUFXRSxFQUFFLENBQUMsU0FBUyxDQUFDSzt3QkFDdEJSLFdBQVdTLEtBQUssQ0FBQ0Q7b0JBQ25CO2dCQUNGO1lBQ0Y7WUFFQSxPQUFPLElBQUlFLFNBQVNaLGdCQUFnQjtnQkFDbENOLFNBQVNJLFNBQVNKLE9BQU8sQ0FBQ21CLFVBQVU7Z0JBQ3BDQyxRQUFRaEIsU0FBU2dCLE1BQU07WUFDekI7UUFDRixFQUFFLE9BQU9KLEtBQWM7WUFDckIxQixJQUFJK0IsT0FBTyxDQUFDQyxNQUFNLENBQUNMLEtBQUssQ0FBQ0Q7WUFDekIsT0FBTyxJQUFJRSxTQUFTLHlCQUF5QjtnQkFBRUUsUUFBUTtZQUFJO1FBQzdEO0lBQ0Y7QUFDRixFQUFDIn0=
|
|
@@ -1,21 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "getGenerateURL", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return getGenerateURL;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
12
|
-
function _interop_require_default(obj) {
|
|
13
|
-
return obj && obj.__esModule ? obj : {
|
|
14
|
-
default: obj
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
const getGenerateURL = ({ bucket, getStorageClient })=>({ filename, prefix = '' })=>{
|
|
18
|
-
return decodeURIComponent(getStorageClient().bucket(bucket).file(_path.default.posix.join(prefix, filename)).publicUrl());
|
|
1
|
+
import path from 'path';
|
|
2
|
+
export const getGenerateURL = ({ bucket, getStorageClient })=>({ filename, prefix = '' })=>{
|
|
3
|
+
return decodeURIComponent(getStorageClient().bucket(bucket).file(path.posix.join(prefix, filename)).publicUrl());
|
|
19
4
|
};
|
|
20
5
|
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZGFwdGVycy9nY3MvZ2VuZXJhdGVVUkwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdG9yYWdlIH0gZnJvbSAnQGdvb2dsZS1jbG91ZC9zdG9yYWdlJ1xuXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuXG5pbXBvcnQgdHlwZSB7IEdlbmVyYXRlVVJMIH0gZnJvbSAnLi4vLi4vdHlwZXMnXG5cbmludGVyZmFjZSBBcmdzIHtcbiAgYnVja2V0OiBzdHJpbmdcbiAgZ2V0U3RvcmFnZUNsaWVudDogKCkgPT4gU3RvcmFnZVxufVxuXG5leHBvcnQgY29uc3QgZ2V0R2VuZXJhdGVVUkwgPVxuICAoeyBidWNrZXQsIGdldFN0b3JhZ2VDbGllbnQgfTogQXJncyk6IEdlbmVyYXRlVVJMID0+
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZGFwdGVycy9nY3MvZ2VuZXJhdGVVUkwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdG9yYWdlIH0gZnJvbSAnQGdvb2dsZS1jbG91ZC9zdG9yYWdlJ1xuXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuXG5pbXBvcnQgdHlwZSB7IEdlbmVyYXRlVVJMIH0gZnJvbSAnLi4vLi4vdHlwZXMnXG5cbmludGVyZmFjZSBBcmdzIHtcbiAgYnVja2V0OiBzdHJpbmdcbiAgZ2V0U3RvcmFnZUNsaWVudDogKCkgPT4gU3RvcmFnZVxufVxuXG5leHBvcnQgY29uc3QgZ2V0R2VuZXJhdGVVUkwgPVxuICAoeyBidWNrZXQsIGdldFN0b3JhZ2VDbGllbnQgfTogQXJncyk6IEdlbmVyYXRlVVJMID0+XG4gICh7IGZpbGVuYW1lLCBwcmVmaXggPSAnJyB9KSA9PiB7XG4gICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChcbiAgICAgIGdldFN0b3JhZ2VDbGllbnQoKS5idWNrZXQoYnVja2V0KS5maWxlKHBhdGgucG9zaXguam9pbihwcmVmaXgsIGZpbGVuYW1lKSkucHVibGljVXJsKCksXG4gICAgKVxuICB9XG4iXSwibmFtZXMiOlsicGF0aCIsImdldEdlbmVyYXRlVVJMIiwiYnVja2V0IiwiZ2V0U3RvcmFnZUNsaWVudCIsImZpbGVuYW1lIiwicHJlZml4IiwiZGVjb2RlVVJJQ29tcG9uZW50IiwiZmlsZSIsInBvc2l4Iiwiam9pbiIsInB1YmxpY1VybCJdLCJtYXBwaW5ncyI6IkFBRUEsT0FBT0EsVUFBVSxPQUFNO0FBU3ZCLE9BQU8sTUFBTUMsaUJBQ1gsQ0FBQyxFQUFFQyxNQUFNLEVBQUVDLGdCQUFnQixFQUFRLEdBQ25DLENBQUMsRUFBRUMsUUFBUSxFQUFFQyxTQUFTLEVBQUUsRUFBRTtRQUN4QixPQUFPQyxtQkFDTEgsbUJBQW1CRCxNQUFNLENBQUNBLFFBQVFLLElBQUksQ0FBQ1AsS0FBS1EsS0FBSyxDQUFDQyxJQUFJLENBQUNKLFFBQVFELFdBQVdNLFNBQVM7SUFFdkYsRUFBQyJ9
|
|
@@ -1,25 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "getHandleDelete", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return getHandleDelete;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
12
|
-
function _interop_require_default(obj) {
|
|
13
|
-
return obj && obj.__esModule ? obj : {
|
|
14
|
-
default: obj
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
const getHandleDelete = ({ bucket, getStorageClient })=>{
|
|
1
|
+
import path from 'path';
|
|
2
|
+
export const getHandleDelete = ({ bucket, getStorageClient })=>{
|
|
18
3
|
return async ({ doc: { prefix = '' }, filename })=>{
|
|
19
|
-
await getStorageClient().bucket(bucket).file(
|
|
4
|
+
await getStorageClient().bucket(bucket).file(path.posix.join(prefix, filename)).delete({
|
|
20
5
|
ignoreNotFound: true
|
|
21
6
|
});
|
|
22
7
|
};
|
|
23
8
|
};
|
|
24
9
|
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZGFwdGVycy9nY3MvaGFuZGxlRGVsZXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU3RvcmFnZSB9IGZyb20gJ0Bnb29nbGUtY2xvdWQvc3RvcmFnZSdcblxuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcblxuaW1wb3J0IHR5cGUgeyBIYW5kbGVEZWxldGUgfSBmcm9tICcuLi8uLi90eXBlcydcblxuaW50ZXJmYWNlIEFyZ3Mge1xuICBidWNrZXQ6IHN0cmluZ1xuICBnZXRTdG9yYWdlQ2xpZW50OiAoKSA9PiBTdG9yYWdlXG59XG5cbmV4cG9ydCBjb25zdCBnZXRIYW5kbGVEZWxldGUgPSAoeyBidWNrZXQsIGdldFN0b3JhZ2VDbGllbnQgfTogQXJncyk6IEhhbmRsZURlbGV0ZSA9PiB7XG4gIHJldHVybiBhc3luYyAoeyBkb2M6IHsgcHJlZml4ID0gJycgfSwgZmlsZW5hbWUgfSkgPT4ge1xuICAgIGF3YWl0IGdldFN0b3JhZ2VDbGllbnQoKS5idWNrZXQoYnVja2V0KS5maWxlKHBhdGgucG9zaXguam9pbihwcmVmaXgsIGZpbGVuYW1lKSkuZGVsZXRlKHtcbiAgICAgIGlnbm9yZU5vdEZvdW5kOiB0cnVlLFxuICAgIH0pXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJwYXRoIiwiZ2V0SGFuZGxlRGVsZXRlIiwiYnVja2V0IiwiZ2V0U3RvcmFnZUNsaWVudCIsImRvYyIsInByZWZpeCIsImZpbGVuYW1lIiwiZmlsZSIsInBvc2l4Iiwiam9pbiIsImRlbGV0ZSIsImlnbm9yZU5vdEZvdW5kIl0sIm1hcHBpbmdzIjoiQUFFQSxPQUFPQSxVQUFVLE9BQU07QUFTdkIsT0FBTyxNQUFNQyxrQkFBa0IsQ0FBQyxFQUFFQyxNQUFNLEVBQUVDLGdCQUFnQixFQUFRO0lBQ2hFLE9BQU8sT0FBTyxFQUFFQyxLQUFLLEVBQUVDLFNBQVMsRUFBRSxFQUFFLEVBQUVDLFFBQVEsRUFBRTtRQUM5QyxNQUFNSCxtQkFBbUJELE1BQU0sQ0FBQ0EsUUFBUUssSUFBSSxDQUFDUCxLQUFLUSxLQUFLLENBQUNDLElBQUksQ0FBQ0osUUFBUUMsV0FBV0ksTUFBTSxDQUFDO1lBQ3JGQyxnQkFBZ0I7UUFDbEI7SUFDRjtBQUNGLEVBQUMifQ==
|
|
@@ -1,22 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "getHandleUpload", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return getHandleUpload;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
12
|
-
function _interop_require_default(obj) {
|
|
13
|
-
return obj && obj.__esModule ? obj : {
|
|
14
|
-
default: obj
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
const getHandleUpload = ({ acl, bucket, getStorageClient, prefix = '' })=>{
|
|
1
|
+
import path from 'path';
|
|
2
|
+
export const getHandleUpload = ({ acl, bucket, getStorageClient, prefix = '' })=>{
|
|
18
3
|
return async ({ data, file })=>{
|
|
19
|
-
const fileKey =
|
|
4
|
+
const fileKey = path.posix.join(data.prefix || prefix, file.filename);
|
|
20
5
|
const gcsFile = getStorageClient().bucket(bucket).file(fileKey);
|
|
21
6
|
await gcsFile.save(file.buffer, {
|
|
22
7
|
metadata: {
|
|
@@ -30,4 +15,4 @@ const getHandleUpload = ({ acl, bucket, getStorageClient, prefix = '' })=>{
|
|
|
30
15
|
};
|
|
31
16
|
};
|
|
32
17
|
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZGFwdGVycy9nY3MvaGFuZGxlVXBsb2FkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU3RvcmFnZSB9IGZyb20gJ0Bnb29nbGUtY2xvdWQvc3RvcmFnZSdcbmltcG9ydCB0eXBlIHsgQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5cbmltcG9ydCB0eXBlIHsgSGFuZGxlVXBsb2FkIH0gZnJvbSAnLi4vLi4vdHlwZXMnXG5cbmludGVyZmFjZSBBcmdzIHtcbiAgYWNsPzogJ1ByaXZhdGUnIHwgJ1B1YmxpYydcbiAgYnVja2V0OiBzdHJpbmdcbiAgY29sbGVjdGlvbjogQ29sbGVjdGlvbkNvbmZpZ1xuICBnZXRTdG9yYWdlQ2xpZW50OiAoKSA9PiBTdG9yYWdlXG4gIHByZWZpeD86IHN0cmluZ1xufVxuXG5leHBvcnQgY29uc3QgZ2V0SGFuZGxlVXBsb2FkID0gKHtcbiAgYWNsLFxuICBidWNrZXQsXG4gIGdldFN0b3JhZ2VDbGllbnQsXG4gIHByZWZpeCA9ICcnLFxufTogQXJncyk6IEhhbmRsZVVwbG9hZCA9PiB7XG4gIHJldHVybiBhc3luYyAoeyBkYXRhLCBmaWxlIH0pID0+
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZGFwdGVycy9nY3MvaGFuZGxlVXBsb2FkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU3RvcmFnZSB9IGZyb20gJ0Bnb29nbGUtY2xvdWQvc3RvcmFnZSdcbmltcG9ydCB0eXBlIHsgQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5cbmltcG9ydCB0eXBlIHsgSGFuZGxlVXBsb2FkIH0gZnJvbSAnLi4vLi4vdHlwZXMnXG5cbmludGVyZmFjZSBBcmdzIHtcbiAgYWNsPzogJ1ByaXZhdGUnIHwgJ1B1YmxpYydcbiAgYnVja2V0OiBzdHJpbmdcbiAgY29sbGVjdGlvbjogQ29sbGVjdGlvbkNvbmZpZ1xuICBnZXRTdG9yYWdlQ2xpZW50OiAoKSA9PiBTdG9yYWdlXG4gIHByZWZpeD86IHN0cmluZ1xufVxuXG5leHBvcnQgY29uc3QgZ2V0SGFuZGxlVXBsb2FkID0gKHtcbiAgYWNsLFxuICBidWNrZXQsXG4gIGdldFN0b3JhZ2VDbGllbnQsXG4gIHByZWZpeCA9ICcnLFxufTogQXJncyk6IEhhbmRsZVVwbG9hZCA9PiB7XG4gIHJldHVybiBhc3luYyAoeyBkYXRhLCBmaWxlIH0pID0+IHtcbiAgICBjb25zdCBmaWxlS2V5ID0gcGF0aC5wb3NpeC5qb2luKGRhdGEucHJlZml4IHx8IHByZWZpeCwgZmlsZS5maWxlbmFtZSlcblxuICAgIGNvbnN0IGdjc0ZpbGUgPSBnZXRTdG9yYWdlQ2xpZW50KCkuYnVja2V0KGJ1Y2tldCkuZmlsZShmaWxlS2V5KVxuICAgIGF3YWl0IGdjc0ZpbGUuc2F2ZShmaWxlLmJ1ZmZlciwge1xuICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgY29udGVudFR5cGU6IGZpbGUubWltZVR5cGUsXG4gICAgICB9LFxuICAgIH0pXG5cbiAgICBpZiAoYWNsKSB7XG4gICAgICBhd2FpdCBnY3NGaWxlW2BtYWtlJHthY2x9YF0oKVxuICAgIH1cblxuICAgIHJldHVybiBkYXRhXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJwYXRoIiwiZ2V0SGFuZGxlVXBsb2FkIiwiYWNsIiwiYnVja2V0IiwiZ2V0U3RvcmFnZUNsaWVudCIsInByZWZpeCIsImRhdGEiLCJmaWxlIiwiZmlsZUtleSIsInBvc2l4Iiwiam9pbiIsImZpbGVuYW1lIiwiZ2NzRmlsZSIsInNhdmUiLCJidWZmZXIiLCJtZXRhZGF0YSIsImNvbnRlbnRUeXBlIiwibWltZVR5cGUiXSwibWFwcGluZ3MiOiJBQUdBLE9BQU9BLFVBQVUsT0FBTTtBQVl2QixPQUFPLE1BQU1DLGtCQUFrQixDQUFDLEVBQzlCQyxHQUFHLEVBQ0hDLE1BQU0sRUFDTkMsZ0JBQWdCLEVBQ2hCQyxTQUFTLEVBQUUsRUFDTjtJQUNMLE9BQU8sT0FBTyxFQUFFQyxJQUFJLEVBQUVDLElBQUksRUFBRTtRQUMxQixNQUFNQyxVQUFVUixLQUFLUyxLQUFLLENBQUNDLElBQUksQ0FBQ0osS0FBS0QsTUFBTSxJQUFJQSxRQUFRRSxLQUFLSSxRQUFRO1FBRXBFLE1BQU1DLFVBQVVSLG1CQUFtQkQsTUFBTSxDQUFDQSxRQUFRSSxJQUFJLENBQUNDO1FBQ3ZELE1BQU1JLFFBQVFDLElBQUksQ0FBQ04sS0FBS08sTUFBTSxFQUFFO1lBQzlCQyxVQUFVO2dCQUNSQyxhQUFhVCxLQUFLVSxRQUFRO1lBQzVCO1FBQ0Y7UUFFQSxJQUFJZixLQUFLO1lBQ1AsTUFBTVUsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFVixJQUFJLENBQUMsQ0FBQztRQUM3QjtRQUVBLE9BQU9JO0lBQ1Q7QUFDRixFQUFDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/gcs/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAI3D,OAAO,KAAK,EAAE,OAAO,EAAoB,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/gcs/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAI3D,OAAO,KAAK,EAAE,OAAO,EAAoB,MAAM,aAAa,CAAA;AAO5D,MAAM,WAAW,IAAI;IACnB,GAAG,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAA;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,cAAc,CAAA;CACxB;AAED,eAAO,MAAM,UAAU,6BACM,IAAI,KAAG,OAsBjC,CAAA"}
|
|
@@ -1,49 +1,37 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
get: function() {
|
|
8
|
-
return gcsAdapter;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _storage = require("@google-cloud/storage");
|
|
12
|
-
const _generateURL = require("./generateURL");
|
|
13
|
-
const _handleDelete = require("./handleDelete");
|
|
14
|
-
const _handleUpload = require("./handleUpload");
|
|
15
|
-
const _staticHandler = require("./staticHandler");
|
|
16
|
-
const _webpack = require("./webpack");
|
|
17
|
-
const gcsAdapter = ({ acl, bucket, options })=>({ collection, prefix })=>{
|
|
1
|
+
import { Storage } from '@google-cloud/storage';
|
|
2
|
+
import { getGenerateURL } from './generateURL';
|
|
3
|
+
import { getHandleDelete } from './handleDelete';
|
|
4
|
+
import { getHandleUpload } from './handleUpload';
|
|
5
|
+
import { getHandler } from './staticHandler';
|
|
6
|
+
export const gcsAdapter = ({ acl, bucket, options })=>({ collection, prefix })=>{
|
|
18
7
|
let storageClient = null;
|
|
19
8
|
const getStorageClient = ()=>{
|
|
20
9
|
if (storageClient) return storageClient;
|
|
21
|
-
storageClient = new
|
|
10
|
+
storageClient = new Storage(options);
|
|
22
11
|
return storageClient;
|
|
23
12
|
};
|
|
24
13
|
return {
|
|
25
|
-
generateURL:
|
|
14
|
+
generateURL: getGenerateURL({
|
|
26
15
|
bucket,
|
|
27
16
|
getStorageClient
|
|
28
17
|
}),
|
|
29
|
-
handleDelete:
|
|
18
|
+
handleDelete: getHandleDelete({
|
|
30
19
|
bucket,
|
|
31
20
|
getStorageClient
|
|
32
21
|
}),
|
|
33
|
-
handleUpload:
|
|
22
|
+
handleUpload: getHandleUpload({
|
|
34
23
|
acl,
|
|
35
24
|
bucket,
|
|
36
25
|
collection,
|
|
37
26
|
getStorageClient,
|
|
38
27
|
prefix
|
|
39
28
|
}),
|
|
40
|
-
staticHandler:
|
|
29
|
+
staticHandler: getHandler({
|
|
41
30
|
bucket,
|
|
42
31
|
collection,
|
|
43
32
|
getStorageClient
|
|
44
|
-
})
|
|
45
|
-
webpack: _webpack.extendWebpackConfig
|
|
33
|
+
})
|
|
46
34
|
};
|
|
47
35
|
};
|
|
48
36
|
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZGFwdGVycy9nY3MvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdG9yYWdlT3B0aW9ucyB9IGZyb20gJ0Bnb29nbGUtY2xvdWQvc3RvcmFnZSdcblxuaW1wb3J0IHsgU3RvcmFnZSB9IGZyb20gJ0Bnb29nbGUtY2xvdWQvc3RvcmFnZSdcblxuaW1wb3J0IHR5cGUgeyBBZGFwdGVyLCBHZW5lcmF0ZWRBZGFwdGVyIH0gZnJvbSAnLi4vLi4vdHlwZXMnXG5cbmltcG9ydCB7IGdldEdlbmVyYXRlVVJMIH0gZnJvbSAnLi9nZW5lcmF0ZVVSTCdcbmltcG9ydCB7IGdldEhhbmRsZURlbGV0ZSB9IGZyb20gJy4vaGFuZGxlRGVsZXRlJ1xuaW1wb3J0IHsgZ2V0SGFuZGxlVXBsb2FkIH0gZnJvbSAnLi9oYW5kbGVVcGxvYWQnXG5pbXBvcnQgeyBnZXRIYW5kbGVyIH0gZnJvbSAnLi9zdGF0aWNIYW5kbGVyJ1xuXG5leHBvcnQgaW50ZXJmYWNlIEFyZ3Mge1xuICBhY2w/OiAnUHJpdmF0ZScgfCAnUHVibGljJ1xuICBidWNrZXQ6IHN0cmluZ1xuICBvcHRpb25zOiBTdG9yYWdlT3B0aW9uc1xufVxuXG5leHBvcnQgY29uc3QgZ2NzQWRhcHRlciA9XG4gICh7IGFjbCwgYnVja2V0LCBvcHRpb25zIH06IEFyZ3MpOiBBZGFwdGVyID0+XG4gICh7IGNvbGxlY3Rpb24sIHByZWZpeCB9KTogR2VuZXJhdGVkQWRhcHRlciA9PiB7XG4gICAgbGV0IHN0b3JhZ2VDbGllbnQ6IFN0b3JhZ2UgfCBudWxsID0gbnVsbFxuXG4gICAgY29uc3QgZ2V0U3RvcmFnZUNsaWVudCA9ICgpOiBTdG9yYWdlID0+IHtcbiAgICAgIGlmIChzdG9yYWdlQ2xpZW50KSByZXR1cm4gc3RvcmFnZUNsaWVudFxuICAgICAgc3RvcmFnZUNsaWVudCA9IG5ldyBTdG9yYWdlKG9wdGlvbnMpXG4gICAgICByZXR1cm4gc3RvcmFnZUNsaWVudFxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBnZW5lcmF0ZVVSTDogZ2V0R2VuZXJhdGVVUkwoeyBidWNrZXQsIGdldFN0b3JhZ2VDbGllbnQgfSksXG4gICAgICBoYW5kbGVEZWxldGU6IGdldEhhbmRsZURlbGV0ZSh7IGJ1Y2tldCwgZ2V0U3RvcmFnZUNsaWVudCB9KSxcbiAgICAgIGhhbmRsZVVwbG9hZDogZ2V0SGFuZGxlVXBsb2FkKHtcbiAgICAgICAgYWNsLFxuICAgICAgICBidWNrZXQsXG4gICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgIGdldFN0b3JhZ2VDbGllbnQsXG4gICAgICAgIHByZWZpeCxcbiAgICAgIH0pLFxuICAgICAgc3RhdGljSGFuZGxlcjogZ2V0SGFuZGxlcih7IGJ1Y2tldCwgY29sbGVjdGlvbiwgZ2V0U3RvcmFnZUNsaWVudCB9KSxcbiAgICB9XG4gIH1cbiJdLCJuYW1lcyI6WyJTdG9yYWdlIiwiZ2V0R2VuZXJhdGVVUkwiLCJnZXRIYW5kbGVEZWxldGUiLCJnZXRIYW5kbGVVcGxvYWQiLCJnZXRIYW5kbGVyIiwiZ2NzQWRhcHRlciIsImFjbCIsImJ1Y2tldCIsIm9wdGlvbnMiLCJjb2xsZWN0aW9uIiwicHJlZml4Iiwic3RvcmFnZUNsaWVudCIsImdldFN0b3JhZ2VDbGllbnQiLCJnZW5lcmF0ZVVSTCIsImhhbmRsZURlbGV0ZSIsImhhbmRsZVVwbG9hZCIsInN0YXRpY0hhbmRsZXIiXSwibWFwcGluZ3MiOiJBQUVBLFNBQVNBLE9BQU8sUUFBUSx3QkFBdUI7QUFJL0MsU0FBU0MsY0FBYyxRQUFRLGdCQUFlO0FBQzlDLFNBQVNDLGVBQWUsUUFBUSxpQkFBZ0I7QUFDaEQsU0FBU0MsZUFBZSxRQUFRLGlCQUFnQjtBQUNoRCxTQUFTQyxVQUFVLFFBQVEsa0JBQWlCO0FBUTVDLE9BQU8sTUFBTUMsYUFDWCxDQUFDLEVBQUVDLEdBQUcsRUFBRUMsTUFBTSxFQUFFQyxPQUFPLEVBQVEsR0FDL0IsQ0FBQyxFQUFFQyxVQUFVLEVBQUVDLE1BQU0sRUFBRTtRQUNyQixJQUFJQyxnQkFBZ0M7UUFFcEMsTUFBTUMsbUJBQW1CO1lBQ3ZCLElBQUlELGVBQWUsT0FBT0E7WUFDMUJBLGdCQUFnQixJQUFJWCxRQUFRUTtZQUM1QixPQUFPRztRQUNUO1FBRUEsT0FBTztZQUNMRSxhQUFhWixlQUFlO2dCQUFFTTtnQkFBUUs7WUFBaUI7WUFDdkRFLGNBQWNaLGdCQUFnQjtnQkFBRUs7Z0JBQVFLO1lBQWlCO1lBQ3pERyxjQUFjWixnQkFBZ0I7Z0JBQzVCRztnQkFDQUM7Z0JBQ0FFO2dCQUNBRztnQkFDQUY7WUFDRjtZQUNBTSxlQUFlWixXQUFXO2dCQUFFRztnQkFBUUU7Z0JBQVlHO1lBQWlCO1FBQ25FO0lBQ0YsRUFBQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"staticHandler.d.ts","sourceRoot":"","sources":["../../../src/adapters/gcs/staticHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAIrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAIhD,UAAU,IAAI;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,gBAAgB,CAAA;IAC5B,gBAAgB,EAAE,MAAM,OAAO,CAAA;CAChC;AAED,eAAO,MAAM,UAAU,6CAA8C,IAAI,KAAG,
|
|
1
|
+
{"version":3,"file":"staticHandler.d.ts","sourceRoot":"","sources":["../../../src/adapters/gcs/staticHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAIrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAIhD,UAAU,IAAI;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,gBAAgB,CAAA;IAC5B,gBAAgB,EAAE,MAAM,OAAO,CAAA;CAChC;AAED,eAAO,MAAM,UAAU,6CAA8C,IAAI,KAAG,aAqC3E,CAAA"}
|
|
@@ -1,39 +1,44 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
})
|
|
5
|
-
Object.defineProperty(exports, "getHandler", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return getHandler;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
12
|
-
const _getFilePrefix = require("../../utilities/getFilePrefix");
|
|
13
|
-
function _interop_require_default(obj) {
|
|
14
|
-
return obj && obj.__esModule ? obj : {
|
|
15
|
-
default: obj
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
const getHandler = ({ bucket, collection, getStorageClient })=>{
|
|
19
|
-
return async (req, res, next)=>{
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import { getFilePrefix } from '../../utilities/getFilePrefix';
|
|
3
|
+
export const getHandler = ({ bucket, collection, getStorageClient })=>{
|
|
4
|
+
return async (req, { params })=>{
|
|
20
5
|
try {
|
|
21
|
-
const prefix = await
|
|
6
|
+
const prefix = await getFilePrefix({
|
|
22
7
|
collection,
|
|
23
8
|
req
|
|
24
9
|
});
|
|
25
|
-
const file = getStorageClient().bucket(bucket).file(
|
|
10
|
+
const file = getStorageClient().bucket(bucket).file(path.posix.join(prefix, params.filename));
|
|
26
11
|
const [metadata] = await file.getMetadata();
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
12
|
+
// Manually create a ReadableStream for the web from a Node.js stream.
|
|
13
|
+
const readableStream = new ReadableStream({
|
|
14
|
+
start (controller) {
|
|
15
|
+
const nodeStream = file.createReadStream();
|
|
16
|
+
nodeStream.on('data', (chunk)=>{
|
|
17
|
+
controller.enqueue(new Uint8Array(chunk));
|
|
18
|
+
});
|
|
19
|
+
nodeStream.on('end', ()=>{
|
|
20
|
+
controller.close();
|
|
21
|
+
});
|
|
22
|
+
nodeStream.on('error', (err)=>{
|
|
23
|
+
controller.error(err);
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
return new Response(readableStream, {
|
|
28
|
+
headers: new Headers({
|
|
29
|
+
'Content-Length': String(metadata.size),
|
|
30
|
+
'Content-Type': metadata.contentType,
|
|
31
|
+
ETag: metadata.etag
|
|
32
|
+
}),
|
|
33
|
+
status: 200
|
|
31
34
|
});
|
|
32
|
-
return file.createReadStream().pipe(res);
|
|
33
35
|
} catch (err) {
|
|
34
|
-
|
|
36
|
+
req.payload.logger.error(err);
|
|
37
|
+
return new Response('Internal Server Error', {
|
|
38
|
+
status: 500
|
|
39
|
+
});
|
|
35
40
|
}
|
|
36
41
|
};
|
|
37
42
|
};
|
|
38
43
|
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZGFwdGVycy9nY3Mvc3RhdGljSGFuZGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFN0b3JhZ2UgfSBmcm9tICdAZ29vZ2xlLWNsb3VkL3N0b3JhZ2UnXG5pbXBvcnQgdHlwZSB7IENvbGxlY3Rpb25Db25maWcgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuXG5pbXBvcnQgdHlwZSB7IFN0YXRpY0hhbmRsZXIgfSBmcm9tICcuLi8uLi90eXBlcydcblxuaW1wb3J0IHsgZ2V0RmlsZVByZWZpeCB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9nZXRGaWxlUHJlZml4J1xuXG5pbnRlcmZhY2UgQXJncyB7XG4gIGJ1Y2tldDogc3RyaW5nXG4gIGNvbGxlY3Rpb246IENvbGxlY3Rpb25Db25maWdcbiAgZ2V0U3RvcmFnZUNsaWVudDogKCkgPT4gU3RvcmFnZVxufVxuXG5leHBvcnQgY29uc3QgZ2V0SGFuZGxlciA9ICh7IGJ1Y2tldCwgY29sbGVjdGlvbiwgZ2V0U3RvcmFnZUNsaWVudCB9OiBBcmdzKTogU3RhdGljSGFuZGxlciA9PiB7XG4gIHJldHVybiBhc3luYyAocmVxLCB7IHBhcmFtcyB9KSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHByZWZpeCA9IGF3YWl0IGdldEZpbGVQcmVmaXgoeyBjb2xsZWN0aW9uLCByZXEgfSlcbiAgICAgIGNvbnN0IGZpbGUgPSBnZXRTdG9yYWdlQ2xpZW50KCkuYnVja2V0KGJ1Y2tldCkuZmlsZShwYXRoLnBvc2l4LmpvaW4ocHJlZml4LCBwYXJhbXMuZmlsZW5hbWUpKVxuXG4gICAgICBjb25zdCBbbWV0YWRhdGFdID0gYXdhaXQgZmlsZS5nZXRNZXRhZGF0YSgpXG5cbiAgICAgIC8vIE1hbnVhbGx5IGNyZWF0ZSBhIFJlYWRhYmxlU3RyZWFtIGZvciB0aGUgd2ViIGZyb20gYSBOb2RlLmpzIHN0cmVhbS5cbiAgICAgIGNvbnN0IHJlYWRhYmxlU3RyZWFtID0gbmV3IFJlYWRhYmxlU3RyZWFtKHtcbiAgICAgICAgc3RhcnQoY29udHJvbGxlcikge1xuICAgICAgICAgIGNvbnN0IG5vZGVTdHJlYW0gPSBmaWxlLmNyZWF0ZVJlYWRTdHJlYW0oKVxuICAgICAgICAgIG5vZGVTdHJlYW0ub24oJ2RhdGEnLCAoY2h1bmspID0+IHtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShuZXcgVWludDhBcnJheShjaHVuaykpXG4gICAgICAgICAgfSlcbiAgICAgICAgICBub2RlU3RyZWFtLm9uKCdlbmQnLCAoKSA9PiB7XG4gICAgICAgICAgICBjb250cm9sbGVyLmNsb3NlKClcbiAgICAgICAgICB9KVxuICAgICAgICAgIG5vZGVTdHJlYW0ub24oJ2Vycm9yJywgKGVycikgPT4ge1xuICAgICAgICAgICAgY29udHJvbGxlci5lcnJvcihlcnIpXG4gICAgICAgICAgfSlcbiAgICAgICAgfSxcbiAgICAgIH0pXG5cbiAgICAgIHJldHVybiBuZXcgUmVzcG9uc2UocmVhZGFibGVTdHJlYW0sIHtcbiAgICAgICAgaGVhZGVyczogbmV3IEhlYWRlcnMoe1xuICAgICAgICAgICdDb250ZW50LUxlbmd0aCc6IFN0cmluZyhtZXRhZGF0YS5zaXplKSxcbiAgICAgICAgICAnQ29udGVudC1UeXBlJzogbWV0YWRhdGEuY29udGVudFR5cGUsXG4gICAgICAgICAgRVRhZzogbWV0YWRhdGEuZXRhZyxcbiAgICAgICAgfSksXG4gICAgICAgIHN0YXR1czogMjAwLFxuICAgICAgfSlcbiAgICB9IGNhdGNoIChlcnI6IHVua25vd24pIHtcbiAgICAgIHJlcS5wYXlsb2FkLmxvZ2dlci5lcnJvcihlcnIpXG4gICAgICByZXR1cm4gbmV3IFJlc3BvbnNlKCdJbnRlcm5hbCBTZXJ2ZXIgRXJyb3InLCB7IHN0YXR1czogNTAwIH0pXG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOlsicGF0aCIsImdldEZpbGVQcmVmaXgiLCJnZXRIYW5kbGVyIiwiYnVja2V0IiwiY29sbGVjdGlvbiIsImdldFN0b3JhZ2VDbGllbnQiLCJyZXEiLCJwYXJhbXMiLCJwcmVmaXgiLCJmaWxlIiwicG9zaXgiLCJqb2luIiwiZmlsZW5hbWUiLCJtZXRhZGF0YSIsImdldE1ldGFkYXRhIiwicmVhZGFibGVTdHJlYW0iLCJSZWFkYWJsZVN0cmVhbSIsInN0YXJ0IiwiY29udHJvbGxlciIsIm5vZGVTdHJlYW0iLCJjcmVhdGVSZWFkU3RyZWFtIiwib24iLCJjaHVuayIsImVucXVldWUiLCJVaW50OEFycmF5IiwiY2xvc2UiLCJlcnIiLCJlcnJvciIsIlJlc3BvbnNlIiwiaGVhZGVycyIsIkhlYWRlcnMiLCJTdHJpbmciLCJzaXplIiwiY29udGVudFR5cGUiLCJFVGFnIiwiZXRhZyIsInN0YXR1cyIsInBheWxvYWQiLCJsb2dnZXIiXSwibWFwcGluZ3MiOiJBQUdBLE9BQU9BLFVBQVUsT0FBTTtBQUl2QixTQUFTQyxhQUFhLFFBQVEsZ0NBQStCO0FBUTdELE9BQU8sTUFBTUMsYUFBYSxDQUFDLEVBQUVDLE1BQU0sRUFBRUMsVUFBVSxFQUFFQyxnQkFBZ0IsRUFBUTtJQUN2RSxPQUFPLE9BQU9DLEtBQUssRUFBRUMsTUFBTSxFQUFFO1FBQzNCLElBQUk7WUFDRixNQUFNQyxTQUFTLE1BQU1QLGNBQWM7Z0JBQUVHO2dCQUFZRTtZQUFJO1lBQ3JELE1BQU1HLE9BQU9KLG1CQUFtQkYsTUFBTSxDQUFDQSxRQUFRTSxJQUFJLENBQUNULEtBQUtVLEtBQUssQ0FBQ0MsSUFBSSxDQUFDSCxRQUFRRCxPQUFPSyxRQUFRO1lBRTNGLE1BQU0sQ0FBQ0MsU0FBUyxHQUFHLE1BQU1KLEtBQUtLLFdBQVc7WUFFekMsc0VBQXNFO1lBQ3RFLE1BQU1DLGlCQUFpQixJQUFJQyxlQUFlO2dCQUN4Q0MsT0FBTUMsVUFBVTtvQkFDZCxNQUFNQyxhQUFhVixLQUFLVyxnQkFBZ0I7b0JBQ3hDRCxXQUFXRSxFQUFFLENBQUMsUUFBUSxDQUFDQzt3QkFDckJKLFdBQVdLLE9BQU8sQ0FBQyxJQUFJQyxXQUFXRjtvQkFDcEM7b0JBQ0FILFdBQVdFLEVBQUUsQ0FBQyxPQUFPO3dCQUNuQkgsV0FBV08sS0FBSztvQkFDbEI7b0JBQ0FOLFdBQVdFLEVBQUUsQ0FBQyxTQUFTLENBQUNLO3dCQUN0QlIsV0FBV1MsS0FBSyxDQUFDRDtvQkFDbkI7Z0JBQ0Y7WUFDRjtZQUVBLE9BQU8sSUFBSUUsU0FBU2IsZ0JBQWdCO2dCQUNsQ2MsU0FBUyxJQUFJQyxRQUFRO29CQUNuQixrQkFBa0JDLE9BQU9sQixTQUFTbUIsSUFBSTtvQkFDdEMsZ0JBQWdCbkIsU0FBU29CLFdBQVc7b0JBQ3BDQyxNQUFNckIsU0FBU3NCLElBQUk7Z0JBQ3JCO2dCQUNBQyxRQUFRO1lBQ1Y7UUFDRixFQUFFLE9BQU9WLEtBQWM7WUFDckJwQixJQUFJK0IsT0FBTyxDQUFDQyxNQUFNLENBQUNYLEtBQUssQ0FBQ0Q7WUFDekIsT0FBTyxJQUFJRSxTQUFTLHlCQUF5QjtnQkFBRVEsUUFBUTtZQUFJO1FBQzdEO0lBQ0Y7QUFDRixFQUFDIn0=
|