@payloadcms/plugin-cloud-storage 1.0.13 → 1.0.15-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.editorconfig +10 -0
- package/.gitignore +248 -0
- package/.prettierignore +1 -0
- package/.prettierrc.js +8 -0
- package/.vscode/launch.json +40 -0
- package/.vscode/settings.json +9 -0
- package/LICENSE.md +1 -1
- package/README.md +25 -3
- package/dev/.env +21 -0
- package/dev/.env.example +21 -0
- package/dev/nodemon.json +8 -0
- package/dev/package.json +34 -0
- package/dev/src/collections/Media.ts +56 -0
- package/dev/src/collections/Users.ts +23 -0
- package/dev/src/mocks/fsMock.js +1 -0
- package/dev/src/mocks/promisifyMock.js +1 -0
- package/dev/src/payload.config.ts +111 -0
- package/dev/src/server.ts +26 -0
- package/dev/tsconfig.json +20 -0
- package/dist/adapters/azure/fileStub.d.ts +2 -0
- package/dist/adapters/azure/fileStub.js +4 -0
- package/dist/adapters/azure/fileStub.js.map +1 -0
- package/dist/adapters/azure/handleUpload.js +16 -1
- package/dist/adapters/azure/handleUpload.js.map +1 -1
- package/dist/adapters/azure/index.js.map +1 -1
- package/dist/adapters/azure/mock.d.ts +6 -0
- package/dist/adapters/azure/mock.js +4 -0
- package/dist/adapters/azure/mock.js.map +1 -1
- package/dist/adapters/azure/staticHandler.js +19 -15
- package/dist/adapters/azure/staticHandler.js.map +1 -1
- package/dist/adapters/azure/webpack.js +2 -2
- package/dist/adapters/azure/webpack.js.map +1 -1
- package/dist/adapters/gcs/webpack.js +2 -2
- package/dist/adapters/gcs/webpack.js.map +1 -1
- package/dist/adapters/s3/fileStub.d.ts +2 -0
- package/dist/adapters/s3/fileStub.js +4 -0
- package/dist/adapters/s3/fileStub.js.map +1 -0
- package/dist/adapters/s3/staticHandler.js +1 -0
- package/dist/adapters/s3/staticHandler.js.map +1 -1
- package/dist/adapters/s3/webpack.js +2 -2
- package/dist/adapters/s3/webpack.js.map +1 -1
- package/dist/hooks/afterDelete.js +5 -2
- package/dist/hooks/afterDelete.js.map +1 -1
- package/dist/hooks/beforeChange.js +36 -8
- package/dist/hooks/beforeChange.js.map +1 -1
- package/dist/plugin.d.ts +1 -1
- package/dist/plugin.js +10 -4
- package/dist/plugin.js.map +1 -1
- package/dist/types.d.ts +6 -0
- package/dist/utilities/getRangeFromHeader.d.ts +6 -0
- package/dist/utilities/getRangeFromHeader.js +67 -0
- package/dist/utilities/getRangeFromHeader.js.map +1 -0
- package/docs/local-dev.md +47 -0
- package/eslint-config/index.js +15 -0
- package/eslint-config/rules/import.js +38 -0
- package/eslint-config/rules/prettier.js +7 -0
- package/eslint-config/rules/style.js +21 -0
- package/eslint-config/rules/typescript.js +628 -0
- package/package.json +7 -4
- package/src/adapters/azure/emulator/docker-compose.yml +16 -0
- package/src/adapters/azure/fileStub.js +1 -0
- package/src/adapters/azure/generateURL.ts +13 -0
- package/src/adapters/azure/handleDelete.ts +16 -0
- package/src/adapters/azure/handleUpload.ts +41 -0
- package/src/adapters/azure/index.ts +48 -0
- package/src/adapters/azure/mock.js +13 -0
- package/src/adapters/azure/staticHandler.ts +38 -0
- package/src/adapters/azure/webpack.ts +24 -0
- package/src/adapters/gcs/emulator/docker-compose.yml +15 -0
- package/src/adapters/gcs/generateURL.ts +16 -0
- package/src/adapters/gcs/handleDelete.ts +16 -0
- package/src/adapters/gcs/handleUpload.ts +34 -0
- package/src/adapters/gcs/index.ts +37 -0
- package/src/adapters/gcs/mock.js +3 -0
- package/src/adapters/gcs/staticHandler.ts +34 -0
- package/src/adapters/gcs/webpack.ts +21 -0
- package/src/adapters/s3/emulator/.localstack/cache/machine.json +1 -0
- package/src/adapters/s3/emulator/.localstack/cache/server.test.pem +127 -0
- package/src/adapters/s3/emulator/.localstack/cache/server.test.pem.crt +99 -0
- package/src/adapters/s3/emulator/.localstack/cache/server.test.pem.key +28 -0
- package/src/adapters/s3/emulator/.localstack/cache/service-catalog-2_1_1_dev-1_29_149.pickle +0 -0
- package/src/adapters/s3/emulator/docker-compose.yml +15 -0
- package/src/adapters/s3/fileStub.js +1 -0
- package/src/adapters/s3/generateURL.ts +14 -0
- package/src/adapters/s3/handleDelete.ts +17 -0
- package/src/adapters/s3/handleUpload.ts +62 -0
- package/src/adapters/s3/index.ts +38 -0
- package/src/adapters/s3/mock.js +9 -0
- package/src/adapters/s3/staticHandler.ts +41 -0
- package/src/adapters/s3/webpack.ts +23 -0
- package/src/fields/getFields.ts +155 -0
- package/src/hooks/afterDelete.ts +35 -0
- package/src/hooks/afterRead.ts +38 -0
- package/src/hooks/beforeChange.ts +59 -0
- package/src/index.ts +1 -0
- package/src/plugin.ts +101 -0
- package/src/types.ts +79 -0
- package/src/utilities/getFilePrefix.ts +26 -0
- package/src/utilities/getIncomingFiles.ts +44 -0
- package/src/utilities/getRangeFromHeader.ts +27 -0
- package/src/webpack.ts +46 -0
- package/tsconfig.json +23 -0
- package/yarn-error.log +8163 -0
- package/yarn.lock +8062 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import express from 'express'
|
|
2
|
+
import payload from 'payload'
|
|
3
|
+
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
5
|
+
require('dotenv').config()
|
|
6
|
+
|
|
7
|
+
const app = express()
|
|
8
|
+
|
|
9
|
+
// Redirect root to Admin panel
|
|
10
|
+
app.get('/', (_, res) => {
|
|
11
|
+
res.redirect('/admin')
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
// Initialize Payload
|
|
15
|
+
payload.init({
|
|
16
|
+
secret: process.env.PAYLOAD_SECRET,
|
|
17
|
+
mongoURL: process.env.MONGODB_URI,
|
|
18
|
+
express: app,
|
|
19
|
+
onInit: () => {
|
|
20
|
+
payload.logger.info(`Payload Admin URL: ${payload.getAdminURL()}`)
|
|
21
|
+
},
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
// Add your own express routes here
|
|
25
|
+
|
|
26
|
+
app.listen(3000)
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "es5",
|
|
4
|
+
"lib": [
|
|
5
|
+
"dom",
|
|
6
|
+
"dom.iterable",
|
|
7
|
+
"esnext"
|
|
8
|
+
],
|
|
9
|
+
"strict": false,
|
|
10
|
+
"esModuleInterop": true,
|
|
11
|
+
"skipLibCheck": true,
|
|
12
|
+
"outDir": "./dist",
|
|
13
|
+
"rootDir": "../",
|
|
14
|
+
"jsx": "react",
|
|
15
|
+
"sourceMap": true
|
|
16
|
+
},
|
|
17
|
+
"ts-node": {
|
|
18
|
+
"transpileOnly": true
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileStub.js","sourceRoot":"","sources":["../../../src/adapters/azure/fileStub.js"],"names":[],"mappings":";;AAAA,kBAAe,WAAW,CAAA"}
|
|
@@ -41,22 +41,37 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
41
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
42
|
exports.getHandleUpload = void 0;
|
|
43
43
|
var path_1 = __importDefault(require("path"));
|
|
44
|
+
var fs_1 = __importDefault(require("fs"));
|
|
45
|
+
var stream_1 = require("stream");
|
|
46
|
+
var abort_controller_1 = require("@azure/abort-controller");
|
|
47
|
+
var multipartThreshold = 1024 * 1024 * 50; // 50MB
|
|
44
48
|
var getHandleUpload = function (_a) {
|
|
45
49
|
var getStorageClient = _a.getStorageClient, _b = _a.prefix, prefix = _b === void 0 ? '' : _b;
|
|
46
50
|
return function (_a) {
|
|
47
51
|
var data = _a.data, file = _a.file;
|
|
48
52
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
49
|
-
var blockBlobClient;
|
|
53
|
+
var blockBlobClient, fileBufferOrStream;
|
|
50
54
|
return __generator(this, function (_b) {
|
|
51
55
|
switch (_b.label) {
|
|
52
56
|
case 0:
|
|
53
57
|
blockBlobClient = getStorageClient().getBlockBlobClient(path_1.default.posix.join(prefix, file.filename));
|
|
58
|
+
if (!(!file.tempFilePath && file.buffer.length > 0 && file.buffer.length < multipartThreshold)) return [3 /*break*/, 2];
|
|
54
59
|
return [4 /*yield*/, blockBlobClient.upload(file.buffer, file.buffer.byteLength, {
|
|
55
60
|
blobHTTPHeaders: { blobContentType: file.mimeType },
|
|
56
61
|
})];
|
|
57
62
|
case 1:
|
|
58
63
|
_b.sent();
|
|
59
64
|
return [2 /*return*/, data];
|
|
65
|
+
case 2:
|
|
66
|
+
fileBufferOrStream = file.tempFilePath
|
|
67
|
+
? fs_1.default.createReadStream(file.tempFilePath)
|
|
68
|
+
: stream_1.Readable.from(file.buffer);
|
|
69
|
+
return [4 /*yield*/, blockBlobClient.uploadStream(fileBufferOrStream, 4 * 1024 * 1024, 4, {
|
|
70
|
+
abortSignal: abort_controller_1.AbortController.timeout(30 * 60 * 1000),
|
|
71
|
+
})];
|
|
72
|
+
case 3:
|
|
73
|
+
_b.sent();
|
|
74
|
+
return [2 /*return*/, data];
|
|
60
75
|
}
|
|
61
76
|
});
|
|
62
77
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleUpload.js","sourceRoot":"","sources":["../../../src/adapters/azure/handleUpload.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAuB;
|
|
1
|
+
{"version":3,"file":"handleUpload.js","sourceRoot":"","sources":["../../../src/adapters/azure/handleUpload.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAuB;AACvB,0CAAmB;AACnB,iCAAiC;AAEjC,4DAAyD;AAUzD,IAAM,kBAAkB,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,CAAA,CAAC,OAAO;AAC5C,IAAM,eAAe,GAAG,UAAC,EAAuC;QAArC,gBAAgB,sBAAA,EAAE,cAAW,EAAX,MAAM,mBAAG,EAAE,KAAA;IAC7D,OAAO,UAAO,EAAc;YAAZ,IAAI,UAAA,EAAE,IAAI,UAAA;;;;;;wBAClB,eAAe,GAAG,gBAAgB,EAAE,CAAC,kBAAkB,CAC3D,cAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CACvC,CAAA;6BAGG,CAAA,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,kBAAkB,CAAA,EAAvF,wBAAuF;wBACzF,qBAAM,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;gCAChE,eAAe,EAAE,EAAE,eAAe,EAAE,IAAI,CAAC,QAAQ,EAAE;6BACpD,CAAC,EAAA;;wBAFF,SAEE,CAAA;wBAEF,sBAAO,IAAI,EAAA;;wBAGP,kBAAkB,GAAa,IAAI,CAAC,YAAY;4BACpD,CAAC,CAAC,YAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC;4BACxC,CAAC,CAAC,iBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;wBAE9B,qBAAM,eAAe,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,EAAE;gCACzE,WAAW,EAAE,kCAAe,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;6BACrD,CAAC,EAAA;;wBAFF,SAEE,CAAA;wBAEF,sBAAO,IAAI,EAAA;;;;KACZ,CAAA;AACH,CAAC,CAAA;AAzBY,QAAA,eAAe,mBAyB3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/azure/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/azure/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,oDAAuD;AAEvD,iDAA4C;AAC5C,6CAA8C;AAC9C,+CAAgD;AAChD,+CAAgD;AAChD,qCAA+C;AASxC,IAAM,uBAAuB,GAAG,UAAC,EAKjC;QAJL,gBAAgB,sBAAA,EAChB,oBAAoB,0BAAA,EACpB,aAAa,mBAAA,EACb,OAAO,aAAA;IAEP,IAAI,aAAa,GAA2B,IAAI,CAAA;IAChD,IAAM,gBAAgB,GAAG;QACvB,IAAI,aAAa;YAAE,OAAO,aAAa,CAAA;QACvC,IAAM,iBAAiB,GAAG,gCAAiB,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAA;QAClF,OAAO,CAAC,aAAa,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAA;IAC9E,CAAC,CAAA;IAED,IAAM,0BAA0B,GAAG;QACjC,gBAAgB,EAAE,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IAC1D,CAAC,CAAA;IAED,OAAO,UAAC,EAAsB;YAApB,UAAU,gBAAA,EAAE,MAAM,YAAA;QAC1B,kBACE,YAAY,EAAE,IAAA,8BAAe,EAAC;gBAC5B,UAAU,YAAA;gBACV,gBAAgB,kBAAA;gBAChB,MAAM,QAAA;aACP,CAAC,EACF,YAAY,EAAE,IAAA,8BAAe,EAAC,EAAE,UAAU,YAAA,EAAE,gBAAgB,kBAAA,EAAE,CAAC,EAC/D,WAAW,EAAE,IAAA,4BAAc,EAAC,EAAE,aAAa,eAAA,EAAE,OAAO,SAAA,EAAE,CAAC,EACvD,aAAa,EAAE,IAAA,0BAAU,EAAC,EAAE,gBAAgB,kBAAA,EAAE,UAAU,YAAA,EAAE,CAAC,EAC3D,OAAO,EAAE,6BAAmB,IACzB,CAAC,oBAAoB,IAAI,EAAE,MAAM,EAAE,0BAA0B,EAAE,CAAC,EACpE;IACH,CAAC,CAAA;AACH,CAAC,CAAA;AA/BY,QAAA,uBAAuB,2BA+BnC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock.js","sourceRoot":"","sources":["../../../src/adapters/azure/mock.js"],"names":[],"mappings":";AAAA,OAAO,CAAC,iBAAiB,GAAG;IAC1B,oBAAoB,EAAE,cAAM,OAAA,CAAC;QAC3B,kBAAkB,EAAE,cAAM,OAAA,CAAC;YACzB,iBAAiB,EAAE,cAAM,OAAA,IAAI,EAAJ,CAAI;SAC9B,CAAC,EAFwB,CAExB;KACH,CAAC,EAJ0B,CAI1B;CACH,CAAA"}
|
|
1
|
+
{"version":3,"file":"mock.js","sourceRoot":"","sources":["../../../src/adapters/azure/mock.js"],"names":[],"mappings":";AAAA,OAAO,CAAC,iBAAiB,GAAG;IAC1B,oBAAoB,EAAE,cAAM,OAAA,CAAC;QAC3B,kBAAkB,EAAE,cAAM,OAAA,CAAC;YACzB,iBAAiB,EAAE,cAAM,OAAA,IAAI,EAAJ,CAAI;SAC9B,CAAC,EAFwB,CAExB;KACH,CAAC,EAJ0B,CAI1B;CACH,CAAA;AAED,OAAO,CAAC,eAAe,GAAG;IACxB,OAAO,EAAE,cAAM,OAAA,IAAI,EAAJ,CAAI;CACpB,CAAA;AAED,OAAO,CAAC,QAAQ,GAAG,EAAE,IAAI,EAAE,cAAM,OAAA,IAAI,EAAJ,CAAI,EAAE,CAAA"}
|
|
@@ -42,34 +42,38 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
42
42
|
exports.getHandler = void 0;
|
|
43
43
|
var path_1 = __importDefault(require("path"));
|
|
44
44
|
var getFilePrefix_1 = require("../../utilities/getFilePrefix");
|
|
45
|
+
var getRangeFromHeader_1 = __importDefault(require("../../utilities/getRangeFromHeader"));
|
|
45
46
|
var getHandler = function (_a) {
|
|
46
47
|
var getStorageClient = _a.getStorageClient, collection = _a.collection;
|
|
47
48
|
return function (req, res, next) { return __awaiter(void 0, void 0, void 0, function () {
|
|
48
|
-
var prefix, blockBlobClient, blob, err_1;
|
|
49
|
-
return __generator(this, function (
|
|
50
|
-
switch (
|
|
49
|
+
var prefix, blockBlobClient, _a, start, end, blob, response, err_1;
|
|
50
|
+
return __generator(this, function (_b) {
|
|
51
|
+
switch (_b.label) {
|
|
51
52
|
case 0:
|
|
52
|
-
|
|
53
|
+
_b.trys.push([0, 4, , 5]);
|
|
53
54
|
return [4 /*yield*/, (0, getFilePrefix_1.getFilePrefix)({ req: req, collection: collection })];
|
|
54
55
|
case 1:
|
|
55
|
-
prefix =
|
|
56
|
+
prefix = _b.sent();
|
|
56
57
|
blockBlobClient = getStorageClient().getBlockBlobClient(path_1.default.posix.join(prefix, req.params.filename));
|
|
57
|
-
return [4 /*yield*/,
|
|
58
|
+
return [4 /*yield*/, (0, getRangeFromHeader_1.default)(blockBlobClient, req.headers.range)];
|
|
58
59
|
case 2:
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
60
|
+
_a = _b.sent(), start = _a.start, end = _a.end;
|
|
61
|
+
return [4 /*yield*/, blockBlobClient.download(start, end)
|
|
62
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
63
|
+
];
|
|
64
|
+
case 3:
|
|
65
|
+
blob = _b.sent();
|
|
66
|
+
response = blob._response;
|
|
67
|
+
res.header(response.headers.rawHeaders());
|
|
68
|
+
res.status(response.status);
|
|
65
69
|
if (blob === null || blob === void 0 ? void 0 : blob.readableStreamBody) {
|
|
66
70
|
return [2 /*return*/, blob.readableStreamBody.pipe(res)];
|
|
67
71
|
}
|
|
68
72
|
return [2 /*return*/, next()];
|
|
69
|
-
case
|
|
70
|
-
err_1 =
|
|
73
|
+
case 4:
|
|
74
|
+
err_1 = _b.sent();
|
|
71
75
|
return [2 /*return*/, next()];
|
|
72
|
-
case
|
|
76
|
+
case 5: return [2 /*return*/];
|
|
73
77
|
}
|
|
74
78
|
});
|
|
75
79
|
}); };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"staticHandler.js","sourceRoot":"","sources":["../../../src/adapters/azure/staticHandler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"staticHandler.js","sourceRoot":"","sources":["../../../src/adapters/azure/staticHandler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,8CAAuB;AAGvB,+DAA6D;AAC7D,0FAAmE;AAO5D,IAAM,UAAU,GAAG,UAAC,EAAsC;QAApC,gBAAgB,sBAAA,EAAE,UAAU,gBAAA;IACvD,OAAO,UAAO,GAAG,EAAE,GAAG,EAAE,IAAI;;;;;;oBAET,qBAAM,IAAA,6BAAa,EAAC,EAAE,GAAG,KAAA,EAAE,UAAU,YAAA,EAAE,CAAC,EAAA;;oBAAjD,MAAM,GAAG,SAAwC;oBACjD,eAAe,GAAG,gBAAgB,EAAE,CAAC,kBAAkB,CAC3D,cAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAC7C,CAAA;oBAEsB,qBAAM,IAAA,4BAAkB,EAAC,eAAe,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAA;;oBAA7E,KAAiB,SAA4D,EAA3E,KAAK,WAAA,EAAE,GAAG,SAAA;oBAEL,qBAAM,eAAe,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC;wBACvD,gDAAgD;sBADO;;oBAAjD,IAAI,GAAG,SAA0C;oBAEjD,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAA;oBAC/B,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;oBACzC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;oBAE3B,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,kBAAkB,EAAE;wBAC5B,sBAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA;qBACzC;oBAED,sBAAO,IAAI,EAAE,EAAA;;;oBAEb,sBAAO,IAAI,EAAE,EAAA;;;;SAEhB,CAAA;AACH,CAAC,CAAA;AAzBY,QAAA,UAAU,cAyBtB"}
|
|
@@ -17,8 +17,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
exports.extendWebpackConfig = void 0;
|
|
18
18
|
var path_1 = __importDefault(require("path"));
|
|
19
19
|
var extendWebpackConfig = function (existingWebpackConfig) {
|
|
20
|
-
var _a;
|
|
21
|
-
var newConfig = __assign(__assign({}, existingWebpackConfig), { resolve: __assign(__assign({}, (existingWebpackConfig.resolve || {})), {
|
|
20
|
+
var _a, _b;
|
|
21
|
+
var newConfig = __assign(__assign({}, existingWebpackConfig), { resolve: __assign(__assign({}, (existingWebpackConfig.resolve || {})), { fallback: __assign(__assign({}, (((_a = existingWebpackConfig.resolve) === null || _a === void 0 ? void 0 : _a.fallback) ? existingWebpackConfig.resolve.fallback : {})), { stream: false }), alias: __assign(__assign({}, (((_b = existingWebpackConfig.resolve) === null || _b === void 0 ? void 0 : _b.alias) ? existingWebpackConfig.resolve.alias : {})), { stream: path_1.default.resolve(__dirname, './mock.js'), '@azure/storage-blob': path_1.default.resolve(__dirname, './mock.js'), '@azure/abort-controller': path_1.default.resolve(__dirname, './mock.js'), fs: path_1.default.resolve(__dirname, './fileStub.js') }) }) });
|
|
22
22
|
return newConfig;
|
|
23
23
|
};
|
|
24
24
|
exports.extendWebpackConfig = extendWebpackConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webpack.js","sourceRoot":"","sources":["../../../src/adapters/azure/webpack.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,8CAAuB;AAEhB,IAAM,mBAAmB,GAAG,UAAC,qBAAoC;;IACtE,IAAM,SAAS,yBACV,qBAAqB,KACxB,OAAO,wBACF,CAAC,qBAAqB,CAAC,OAAO,IAAI,EAAE,CAAC,KACxC,KAAK,wBACA,CAAC,CAAA,MAAA,qBAAqB,CAAC,OAAO,0CAAE,KAAK,EAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KACpF,qBAAqB,EAAE,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"webpack.js","sourceRoot":"","sources":["../../../src/adapters/azure/webpack.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,8CAAuB;AAEhB,IAAM,mBAAmB,GAAG,UAAC,qBAAoC;;IACtE,IAAM,SAAS,yBACV,qBAAqB,KACxB,OAAO,wBACF,CAAC,qBAAqB,CAAC,OAAO,IAAI,EAAE,CAAC,KACxC,QAAQ,wBACH,CAAC,CAAA,MAAA,qBAAqB,CAAC,OAAO,0CAAE,QAAQ,EAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAC1F,MAAM,EAAE,KAAK,KAEf,KAAK,wBACA,CAAC,CAAA,MAAA,qBAAqB,CAAC,OAAO,0CAAE,KAAK,EAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KACpF,MAAM,EAAE,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,EAC5C,qBAAqB,EAAE,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,EAC3D,yBAAyB,EAAE,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,EAC/D,EAAE,EAAE,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,SAGjD,CAAA;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AApBY,QAAA,mBAAmB,uBAoB/B"}
|
|
@@ -17,8 +17,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
exports.extendWebpackConfig = void 0;
|
|
18
18
|
var path_1 = __importDefault(require("path"));
|
|
19
19
|
var extendWebpackConfig = function (existingWebpackConfig) {
|
|
20
|
-
var _a;
|
|
21
|
-
var newConfig = __assign(__assign({}, existingWebpackConfig), { resolve: __assign(__assign({}, (existingWebpackConfig.resolve || {})), {
|
|
20
|
+
var _a, _b;
|
|
21
|
+
var newConfig = __assign(__assign({}, existingWebpackConfig), { resolve: __assign(__assign({}, (existingWebpackConfig.resolve || {})), { fallback: __assign(__assign({}, (((_a = existingWebpackConfig.resolve) === null || _a === void 0 ? void 0 : _a.fallback) ? existingWebpackConfig.resolve.fallback : {})), { stream: false }), alias: __assign(__assign({}, (((_b = existingWebpackConfig.resolve) === null || _b === void 0 ? void 0 : _b.alias) ? existingWebpackConfig.resolve.alias : {})), { '@google-cloud/storage': path_1.default.resolve(__dirname, './mock.js') }) }) });
|
|
22
22
|
return newConfig;
|
|
23
23
|
};
|
|
24
24
|
exports.extendWebpackConfig = extendWebpackConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webpack.js","sourceRoot":"","sources":["../../../src/adapters/gcs/webpack.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,8CAAuB;AAEhB,IAAM,mBAAmB,GAAG,UAAC,qBAAoC;;IACtE,IAAM,SAAS,yBACV,qBAAqB,KACxB,OAAO,wBACF,CAAC,qBAAqB,CAAC,OAAO,IAAI,EAAE,CAAC,KACxC,KAAK,wBACA,CAAC,CAAA,MAAA,qBAAqB,CAAC,OAAO,0CAAE,KAAK,EAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KACpF,uBAAuB,EAAE,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,SAGlE,CAAA;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"webpack.js","sourceRoot":"","sources":["../../../src/adapters/gcs/webpack.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,8CAAuB;AAEhB,IAAM,mBAAmB,GAAG,UAAC,qBAAoC;;IACtE,IAAM,SAAS,yBACV,qBAAqB,KACxB,OAAO,wBACF,CAAC,qBAAqB,CAAC,OAAO,IAAI,EAAE,CAAC,KACxC,QAAQ,wBACH,CAAC,CAAA,MAAA,qBAAqB,CAAC,OAAO,0CAAE,QAAQ,EAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAC1F,MAAM,EAAE,KAAK,KAEf,KAAK,wBACA,CAAC,CAAA,MAAA,qBAAqB,CAAC,OAAO,0CAAE,KAAK,EAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KACpF,uBAAuB,EAAE,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,SAGlE,CAAA;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAjBY,QAAA,mBAAmB,uBAiB/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileStub.js","sourceRoot":"","sources":["../../../src/adapters/s3/fileStub.js"],"names":[],"mappings":";;AAAA,kBAAe,WAAW,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"staticHandler.js","sourceRoot":"","sources":["../../../src/adapters/s3/staticHandler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAuB;AAKvB,+DAA6D;AAQtD,IAAM,UAAU,GAAG,UAAC,EAA8C;QAA5C,gBAAgB,sBAAA,EAAE,MAAM,YAAA,EAAE,UAAU,gBAAA;IAC/D,OAAO,UAAO,GAAG,EAAE,GAAG,EAAE,IAAI;;;;;;oBAET,qBAAM,IAAA,6BAAa,EAAC,EAAE,GAAG,KAAA,EAAE,UAAU,YAAA,EAAE,CAAC,EAAA;;oBAAjD,MAAM,GAAG,SAAwC;oBAExC,qBAAM,gBAAgB,EAAE,CAAC,SAAS,CAAC;4BAChD,MAAM,EAAE,MAAM;4BACd,GAAG,EAAE,cAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;yBAClD,CAAC,EAAA;;oBAHI,MAAM,GAAG,SAGb;oBAEF,GAAG,CAAC,GAAG,CAAC;wBACN,gBAAgB,EAAE,MAAM,CAAC,aAAa;wBACtC,cAAc,EAAE,MAAM,CAAC,WAAW;wBAClC,IAAI,EAAE,MAAM,CAAC,IAAI;qBAClB,CAAC,CAAA;oBAEF,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,EAAE;wBAChB,sBAAQ,MAAM,CAAC,IAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA;qBAC3C;oBAED,sBAAO,IAAI,EAAE,EAAA;;;oBAEb,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAG,CAAC,CAAA;oBAC7B,sBAAO,IAAI,EAAE,EAAA;;;;SAEhB,CAAA;AACH,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"staticHandler.js","sourceRoot":"","sources":["../../../src/adapters/s3/staticHandler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAuB;AAKvB,+DAA6D;AAQtD,IAAM,UAAU,GAAG,UAAC,EAA8C;QAA5C,gBAAgB,sBAAA,EAAE,MAAM,YAAA,EAAE,UAAU,gBAAA;IAC/D,OAAO,UAAO,GAAG,EAAE,GAAG,EAAE,IAAI;;;;;;oBAET,qBAAM,IAAA,6BAAa,EAAC,EAAE,GAAG,KAAA,EAAE,UAAU,YAAA,EAAE,CAAC,EAAA;;oBAAjD,MAAM,GAAG,SAAwC;oBAExC,qBAAM,gBAAgB,EAAE,CAAC,SAAS,CAAC;4BAChD,MAAM,EAAE,MAAM;4BACd,GAAG,EAAE,cAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;yBAClD,CAAC,EAAA;;oBAHI,MAAM,GAAG,SAGb;oBAEF,GAAG,CAAC,GAAG,CAAC;wBACN,eAAe,EAAE,MAAM,CAAC,YAAY;wBACpC,gBAAgB,EAAE,MAAM,CAAC,aAAa;wBACtC,cAAc,EAAE,MAAM,CAAC,WAAW;wBAClC,IAAI,EAAE,MAAM,CAAC,IAAI;qBAClB,CAAC,CAAA;oBAEF,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,EAAE;wBAChB,sBAAQ,MAAM,CAAC,IAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA;qBAC3C;oBAED,sBAAO,IAAI,EAAE,EAAA;;;oBAEb,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAG,CAAC,CAAA;oBAC7B,sBAAO,IAAI,EAAE,EAAA;;;;SAEhB,CAAA;AACH,CAAC,CAAA;AA3BY,QAAA,UAAU,cA2BtB"}
|
|
@@ -17,8 +17,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
exports.extendWebpackConfig = void 0;
|
|
18
18
|
var path_1 = __importDefault(require("path"));
|
|
19
19
|
var extendWebpackConfig = function (existingWebpackConfig) {
|
|
20
|
-
var _a;
|
|
21
|
-
var newConfig = __assign(__assign({}, existingWebpackConfig), { resolve: __assign(__assign({}, (existingWebpackConfig.resolve || {})), {
|
|
20
|
+
var _a, _b;
|
|
21
|
+
var newConfig = __assign(__assign({}, existingWebpackConfig), { resolve: __assign(__assign({}, (existingWebpackConfig.resolve || {})), { fallback: __assign(__assign({}, (((_a = existingWebpackConfig.resolve) === null || _a === void 0 ? void 0 : _a.fallback) ? existingWebpackConfig.resolve.fallback : {})), { stream: false }), alias: __assign(__assign({}, (((_b = existingWebpackConfig.resolve) === null || _b === void 0 ? void 0 : _b.alias) ? existingWebpackConfig.resolve.alias : {})), { '@aws-sdk/client-s3': path_1.default.resolve(__dirname, './mock.js'), '@aws-sdk/lib-storage': path_1.default.resolve(__dirname, './mock.js'), fs: path_1.default.resolve(__dirname, './fileStub.js') }) }) });
|
|
22
22
|
return newConfig;
|
|
23
23
|
};
|
|
24
24
|
exports.extendWebpackConfig = extendWebpackConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webpack.js","sourceRoot":"","sources":["../../../src/adapters/s3/webpack.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,8CAAuB;AAEhB,IAAM,mBAAmB,GAAG,UAAC,qBAAoC;;IACtE,IAAM,SAAS,yBACV,qBAAqB,KACxB,OAAO,wBACF,CAAC,qBAAqB,CAAC,OAAO,IAAI,EAAE,CAAC,KACxC,KAAK,wBACA,CAAC,CAAA,MAAA,qBAAqB,CAAC,OAAO,0CAAE,KAAK,EAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KACpF,oBAAoB,EAAE,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,EAC1D,sBAAsB,EAAE,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"webpack.js","sourceRoot":"","sources":["../../../src/adapters/s3/webpack.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,8CAAuB;AAEhB,IAAM,mBAAmB,GAAG,UAAC,qBAAoC;;IACtE,IAAM,SAAS,yBACV,qBAAqB,KACxB,OAAO,wBACF,CAAC,qBAAqB,CAAC,OAAO,IAAI,EAAE,CAAC,KACxC,QAAQ,wBACH,CAAC,CAAA,MAAA,qBAAqB,CAAC,OAAO,0CAAE,QAAQ,EAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAC1F,MAAM,EAAE,KAAK,KAEf,KAAK,wBACA,CAAC,CAAA,MAAA,qBAAqB,CAAC,OAAO,0CAAE,KAAK,EAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KACpF,oBAAoB,EAAE,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,EAC1D,sBAAsB,EAAE,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,EAC5D,EAAE,EAAE,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,SAGjD,CAAA;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAnBY,QAAA,mBAAmB,uBAmB/B"}
|
|
@@ -63,10 +63,13 @@ var getAfterDeleteHook = function (_a) {
|
|
|
63
63
|
promises = filesToDelete.map(function (filename) { return __awaiter(void 0, void 0, void 0, function () {
|
|
64
64
|
return __generator(this, function (_a) {
|
|
65
65
|
switch (_a.label) {
|
|
66
|
-
case 0:
|
|
66
|
+
case 0:
|
|
67
|
+
if (!filename) return [3 /*break*/, 2];
|
|
68
|
+
return [4 /*yield*/, adapter.handleDelete({ collection: collection, doc: doc, req: req, filename: filename })];
|
|
67
69
|
case 1:
|
|
68
70
|
_a.sent();
|
|
69
|
-
|
|
71
|
+
_a.label = 2;
|
|
72
|
+
case 2: return [2 /*return*/];
|
|
70
73
|
}
|
|
71
74
|
});
|
|
72
75
|
}); });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"afterDelete.js","sourceRoot":"","sources":["../../src/hooks/afterDelete.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUO,IAAM,kBAAkB,GAAG,UAAC,EAG5B;QAFL,UAAU,gBAAA,EACV,OAAO,aAAA;IAEP,OAAO,UAAO,EAAY;YAAV,GAAG,SAAA,EAAE,GAAG,SAAA;;;;;;;;wBAEd,aAAa;4BACjB,GAAG,CAAC,QAAQ;2BACT,MAAM,CAAC,MAAM,CAAC,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,KAAK,KAAI,EAAE,CAAC,CAAC,GAAG,CAAC,UAAA,eAAe,IAAI,OAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,QAAQ,EAAzB,CAAyB,CAAC,OACrF,CAAA;wBAEK,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,UAAM,QAAQ
|
|
1
|
+
{"version":3,"file":"afterDelete.js","sourceRoot":"","sources":["../../src/hooks/afterDelete.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUO,IAAM,kBAAkB,GAAG,UAAC,EAG5B;QAFL,UAAU,gBAAA,EACV,OAAO,aAAA;IAEP,OAAO,UAAO,EAAY;YAAV,GAAG,SAAA,EAAE,GAAG,SAAA;;;;;;;;wBAEd,aAAa;4BACjB,GAAG,CAAC,QAAQ;2BACT,MAAM,CAAC,MAAM,CAAC,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,KAAK,KAAI,EAAE,CAAC,CAAC,GAAG,CAAC,UAAA,eAAe,IAAI,OAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,QAAQ,EAAzB,CAAyB,CAAC,OACrF,CAAA;wBAEK,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,UAAM,QAAQ;;;;6CAC3C,QAAQ,EAAR,wBAAQ;wCAAE,qBAAM,OAAO,CAAC,YAAY,CAAC,EAAE,UAAU,YAAA,EAAE,GAAG,KAAA,EAAE,GAAG,KAAA,EAAE,QAAQ,UAAA,EAAE,CAAC,EAAA;;wCAA9D,SAA8D,CAAA;;;;;6BAC7E,CAAC,CAAA;wBAEF,qBAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAA;;wBAA3B,SAA2B,CAAA;;;;wBAE3B,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CACtB,uEAAgE,MAAA,UAAU,CAAC,MAAM,0CAAE,QAAQ,sBAAY,GAAG,CAAC,EAAE,MAAG,CACjH,CAAA;wBACD,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAG,CAAC,CAAA;;4BAE/B,sBAAO,GAAG,EAAA;;;;KACX,CAAA;AACH,CAAC,CAAA;AAxBY,QAAA,kBAAkB,sBAwB9B"}
|
|
@@ -41,14 +41,41 @@ var getIncomingFiles_1 = require("../utilities/getIncomingFiles");
|
|
|
41
41
|
var getBeforeChangeHook = function (_a) {
|
|
42
42
|
var collection = _a.collection, adapter = _a.adapter;
|
|
43
43
|
return function (_a) {
|
|
44
|
-
var req = _a.req, data = _a.data;
|
|
44
|
+
var req = _a.req, data = _a.data, originalDoc = _a.originalDoc;
|
|
45
45
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
46
|
-
var files, promises, err_1;
|
|
46
|
+
var files, filesToDelete, deletionPromises, promises, err_1;
|
|
47
47
|
return __generator(this, function (_b) {
|
|
48
48
|
switch (_b.label) {
|
|
49
49
|
case 0:
|
|
50
|
-
_b.trys.push([0,
|
|
50
|
+
_b.trys.push([0, 5, , 6]);
|
|
51
51
|
files = (0, getIncomingFiles_1.getIncomingFiles)({ req: req, data: data });
|
|
52
|
+
if (!(files.length > 0)) return [3 /*break*/, 4];
|
|
53
|
+
if (!originalDoc) return [3 /*break*/, 2];
|
|
54
|
+
filesToDelete = [];
|
|
55
|
+
if (typeof (originalDoc === null || originalDoc === void 0 ? void 0 : originalDoc.filename) === 'string') {
|
|
56
|
+
filesToDelete.push(originalDoc.filename);
|
|
57
|
+
}
|
|
58
|
+
if (typeof originalDoc.sizes === 'object') {
|
|
59
|
+
filesToDelete = filesToDelete.concat(Object.values((originalDoc === null || originalDoc === void 0 ? void 0 : originalDoc.sizes) || []).map(function (resizedFileData) { return resizedFileData === null || resizedFileData === void 0 ? void 0 : resizedFileData.filename; }));
|
|
60
|
+
}
|
|
61
|
+
deletionPromises = filesToDelete.map(function (filename) { return __awaiter(void 0, void 0, void 0, function () {
|
|
62
|
+
return __generator(this, function (_a) {
|
|
63
|
+
switch (_a.label) {
|
|
64
|
+
case 0:
|
|
65
|
+
if (!filename) return [3 /*break*/, 2];
|
|
66
|
+
return [4 /*yield*/, adapter.handleDelete({ collection: collection, doc: originalDoc, req: req, filename: filename })];
|
|
67
|
+
case 1:
|
|
68
|
+
_a.sent();
|
|
69
|
+
_a.label = 2;
|
|
70
|
+
case 2: return [2 /*return*/];
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}); });
|
|
74
|
+
return [4 /*yield*/, Promise.all(deletionPromises)];
|
|
75
|
+
case 1:
|
|
76
|
+
_b.sent();
|
|
77
|
+
_b.label = 2;
|
|
78
|
+
case 2:
|
|
52
79
|
promises = files.map(function (file) { return __awaiter(void 0, void 0, void 0, function () {
|
|
53
80
|
return __generator(this, function (_a) {
|
|
54
81
|
switch (_a.label) {
|
|
@@ -60,15 +87,16 @@ var getBeforeChangeHook = function (_a) {
|
|
|
60
87
|
});
|
|
61
88
|
}); });
|
|
62
89
|
return [4 /*yield*/, Promise.all(promises)];
|
|
63
|
-
case
|
|
90
|
+
case 3:
|
|
64
91
|
_b.sent();
|
|
65
|
-
|
|
66
|
-
case
|
|
92
|
+
_b.label = 4;
|
|
93
|
+
case 4: return [3 /*break*/, 6];
|
|
94
|
+
case 5:
|
|
67
95
|
err_1 = _b.sent();
|
|
68
96
|
req.payload.logger.error("There was an error while uploading files corresponding to the collection ".concat(collection.slug, " with filename ").concat(data.filename, ":"));
|
|
69
97
|
req.payload.logger.error(err_1);
|
|
70
|
-
return [3 /*break*/,
|
|
71
|
-
case
|
|
98
|
+
return [3 /*break*/, 6];
|
|
99
|
+
case 6: return [2 /*return*/, data];
|
|
72
100
|
}
|
|
73
101
|
});
|
|
74
102
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beforeChange.js","sourceRoot":"","sources":["../../src/hooks/beforeChange.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,kEAAgE;AAOzD,IAAM,mBAAmB,GAC9B,UAAC,EAA6B;QAA3B,UAAU,gBAAA,EAAE,OAAO,aAAA;IACtB,OAAA,UAAO,
|
|
1
|
+
{"version":3,"file":"beforeChange.js","sourceRoot":"","sources":["../../src/hooks/beforeChange.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,kEAAgE;AAOzD,IAAM,mBAAmB,GAC9B,UAAC,EAA6B;QAA3B,UAAU,gBAAA,EAAE,OAAO,aAAA;IACtB,OAAA,UAAO,EAA0B;YAAxB,GAAG,SAAA,EAAE,IAAI,UAAA,EAAE,WAAW,iBAAA;;;;;;;wBAErB,KAAK,GAAG,IAAA,mCAAgB,EAAC,EAAE,GAAG,KAAA,EAAE,IAAI,MAAA,EAAE,CAAC,CAAA;6BAEzC,CAAA,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA,EAAhB,wBAAgB;6BAId,WAAW,EAAX,wBAAW;wBACT,aAAa,GAAa,EAAE,CAAA;wBAEhC,IAAI,OAAO,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,CAAA,KAAK,QAAQ,EAAE;4BAC7C,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;yBACzC;wBAED,IAAI,OAAO,WAAW,CAAC,KAAK,KAAK,QAAQ,EAAE;4BACzC,aAAa,GAAG,aAAa,CAAC,MAAM,CAClC,MAAM,CAAC,MAAM,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,KAAI,EAAE,CAAC,CAAC,GAAG,CACzC,UAAA,eAAe,IAAI,OAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,QAAQ,EAAzB,CAAyB,CAC7C,CACF,CAAA;yBACF;wBAEK,gBAAgB,GAAG,aAAa,CAAC,GAAG,CAAC,UAAM,QAAQ;;;;6CACnD,QAAQ,EAAR,wBAAQ;wCACV,qBAAM,OAAO,CAAC,YAAY,CAAC,EAAE,UAAU,YAAA,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,KAAA,EAAE,QAAQ,UAAA,EAAE,CAAC,EAAA;;wCAA3E,SAA2E,CAAA;;;;;6BAE9E,CAAC,CAAA;wBAEF,qBAAM,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAA;;wBAAnC,SAAmC,CAAA;;;wBAG/B,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,UAAM,IAAI;;;4CACnC,qBAAM,OAAO,CAAC,YAAY,CAAC,EAAE,UAAU,YAAA,EAAE,IAAI,MAAA,EAAE,GAAG,KAAA,EAAE,IAAI,MAAA,EAAE,CAAC,EAAA;;wCAA3D,SAA2D,CAAA;;;;6BAC5D,CAAC,CAAA;wBAEF,qBAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAA;;wBAA3B,SAA2B,CAAA;;;;;wBAG7B,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CACtB,mFAA4E,UAAU,CAAC,IAAI,4BAAkB,IAAI,CAAC,QAAQ,MAAG,CAC9H,CAAA;wBACD,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAG,CAAC,CAAA;;4BAE/B,sBAAO,IAAI,EAAA;;;;KACZ;AA7CD,CA6CC,CAAA;AA/CU,QAAA,mBAAmB,uBA+C7B"}
|
package/dist/plugin.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { Config } from 'payload/config';
|
|
2
2
|
import type { PluginOptions } from './types';
|
|
3
|
-
export declare const cloudStorage: (pluginOptions: PluginOptions) => (
|
|
3
|
+
export declare const cloudStorage: (pluginOptions: PluginOptions) => (incomingConfig: Config) => Config;
|
package/dist/plugin.js
CHANGED
|
@@ -68,11 +68,17 @@ var getFields_1 = require("./fields/getFields");
|
|
|
68
68
|
// 1. handleUpload, 2. handleDelete, 3. generateURL, 4. staticHandler
|
|
69
69
|
// Optionally, the adapter can specify any Webpack config overrides if they are necessary.
|
|
70
70
|
var cloudStorage = function (pluginOptions) {
|
|
71
|
-
return function (
|
|
72
|
-
var allCollectionOptions = pluginOptions.collections;
|
|
73
|
-
var
|
|
71
|
+
return function (incomingConfig) {
|
|
72
|
+
var allCollectionOptions = pluginOptions.collections, enabled = pluginOptions.enabled;
|
|
73
|
+
var config = __assign({}, incomingConfig);
|
|
74
|
+
var webpack = (0, webpack_1.extendWebpackConfig)({ options: pluginOptions, config: incomingConfig });
|
|
75
|
+
config.admin = __assign(__assign({}, (config.admin || {})), { webpack: webpack });
|
|
76
|
+
// Return early if disabled. Only webpack config mods are applied.
|
|
77
|
+
if (enabled === false) {
|
|
78
|
+
return config;
|
|
79
|
+
}
|
|
74
80
|
var initFunctions = [];
|
|
75
|
-
return __assign(__assign({}, config), {
|
|
81
|
+
return __assign(__assign({}, config), { collections: (config.collections || []).map(function (existingCollection) {
|
|
76
82
|
var _a, _b;
|
|
77
83
|
var options = allCollectionOptions[existingCollection.slug];
|
|
78
84
|
if (options === null || options === void 0 ? void 0 : options.adapter) {
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,qCAA+C;AAE/C,qDAA0D;AAC1D,mDAAwD;AACxD,gDAA8C;AAE9C,4EAA4E;AAC5E,4DAA4D;AAE5D,4FAA4F;AAC5F,iFAAiF;AACjF,qEAAqE;AAErE,0FAA0F;AAEnF,IAAM,YAAY,GACvB,UAAC,aAA4B;IAC7B,OAAA,UAAC,
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -58,5 +58,11 @@ export interface CollectionOptions {
|
|
|
58
58
|
adapter: Adapter | null;
|
|
59
59
|
}
|
|
60
60
|
export interface PluginOptions {
|
|
61
|
+
/**
|
|
62
|
+
* Whether or not to enable the plugin
|
|
63
|
+
*
|
|
64
|
+
* Default: true
|
|
65
|
+
*/
|
|
66
|
+
enabled?: boolean;
|
|
61
67
|
collections: Record<string, CollectionOptions>;
|
|
62
68
|
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
var range_parser_1 = __importDefault(require("range-parser"));
|
|
43
|
+
var getRangeFromHeader = function (blockBlobClient, rangeHeader) { return __awaiter(void 0, void 0, void 0, function () {
|
|
44
|
+
var fullRange, size, range;
|
|
45
|
+
return __generator(this, function (_a) {
|
|
46
|
+
switch (_a.label) {
|
|
47
|
+
case 0:
|
|
48
|
+
fullRange = { start: 0, end: undefined };
|
|
49
|
+
if (!rangeHeader) {
|
|
50
|
+
return [2 /*return*/, fullRange];
|
|
51
|
+
}
|
|
52
|
+
return [4 /*yield*/, blockBlobClient.getProperties().then(function (props) { return props.contentLength; })];
|
|
53
|
+
case 1:
|
|
54
|
+
size = _a.sent();
|
|
55
|
+
if (size === undefined) {
|
|
56
|
+
return [2 /*return*/, fullRange];
|
|
57
|
+
}
|
|
58
|
+
range = (0, range_parser_1.default)(size, rangeHeader);
|
|
59
|
+
if (range === -1 || range === -2 || range.type !== 'bytes' || range.length !== 1) {
|
|
60
|
+
return [2 /*return*/, fullRange];
|
|
61
|
+
}
|
|
62
|
+
return [2 /*return*/, range[0]];
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}); };
|
|
66
|
+
exports.default = getRangeFromHeader;
|
|
67
|
+
//# sourceMappingURL=getRangeFromHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getRangeFromHeader.js","sourceRoot":"","sources":["../../src/utilities/getRangeFromHeader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,8DAAqC;AAErC,IAAM,kBAAkB,GAAG,UACzB,eAAgC,EAChC,WAAoB;;;;;gBAEd,SAAS,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAA;gBAE9C,IAAI,CAAC,WAAW,EAAE;oBAChB,sBAAO,SAAS,EAAA;iBACjB;gBAEY,qBAAM,eAAe,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,aAAa,EAAnB,CAAmB,CAAC,EAAA;;gBAA/E,IAAI,GAAG,SAAwE;gBACrF,IAAI,IAAI,KAAK,SAAS,EAAE;oBACtB,sBAAO,SAAS,EAAA;iBACjB;gBAEK,KAAK,GAAG,IAAA,sBAAU,EAAC,IAAI,EAAE,WAAW,CAAC,CAAA;gBAC3C,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;oBAChF,sBAAO,SAAS,EAAA;iBACjB;gBAED,sBAAO,KAAK,CAAC,CAAC,CAAC,EAAA;;;KAChB,CAAA;AAED,kBAAe,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Developing with this plugin locally
|
|
2
|
+
|
|
3
|
+
This repository includes a local development environment for local testing and development of this plugin. To run the local sandbox, follow the instructions below.
|
|
4
|
+
|
|
5
|
+
1. Make sure you have Node and a MongoDB to work with
|
|
6
|
+
1. Clone the repo
|
|
7
|
+
1. `yarn` in both the root folder of the repo, and the `./dev` folder
|
|
8
|
+
1. `cd` into `./dev` and run `cp .env.example .env` to create an `.env` file
|
|
9
|
+
1. Open your newly created `./dev/.env` file and _completely_ fill out each property
|
|
10
|
+
|
|
11
|
+
### Azure Adapter Development
|
|
12
|
+
|
|
13
|
+
This repository comes with a Docker emulator for Azure Blob Storage.
|
|
14
|
+
|
|
15
|
+
If you would like to test locally with an emulated blob storage container, you can `cd` into `./src/adapters/azure/emulator` and then run `docker-compose up -d`.
|
|
16
|
+
|
|
17
|
+
The default `./dev/.env.example` file comes pre-loaded with correct `env` variables that correspond to the Azure Docker emulator.
|
|
18
|
+
|
|
19
|
+
Otherwise, if you are not using the emulator, make sure your environment variables within `./dev/.env` are configured for your Azure connection.
|
|
20
|
+
|
|
21
|
+
Finally, to start the Payload dev server with the Azure adapter, run `yarn dev:azure` and then open `http://localhost:3000/admin` in your browser.
|
|
22
|
+
|
|
23
|
+
### S3 Adapter Development
|
|
24
|
+
|
|
25
|
+
This repository also includes a Docker LocalStack emulator for S3. It requires a few more steps to get up and running.
|
|
26
|
+
|
|
27
|
+
To use the S3 emulator, use the following steps:
|
|
28
|
+
|
|
29
|
+
1. Make sure you have `awscli` installed. On Mac, run `brew install awscli` to get started.
|
|
30
|
+
1. Make sure you have an AWS profile created. LocalStack does not verify credentials, so you can create a profile with dummy credentials. However, your `region` will need to match. To create a dummy profile for LocalStack, type `aws configure --profile localstack`. Use the access key and secret from the `./dev/.env.example` and use region `us-east-1`.
|
|
31
|
+
1. Now you can start the Docker container via moving to the `./src/adapters/s3/emulator` folder and running `docker-compose up -d`.
|
|
32
|
+
1. Once the Docker container is running, you can create a new bucket with the following command: `aws --endpoint-url=http://localhost:4566 s3 mb s3://payload-bucket`. Note that our bucket is called `payload-bucket`.
|
|
33
|
+
1. Finally, attach an ACL to the bucket so it is readable: `aws --endpoint-url=http://localhost:4566 s3api put-bucket-acl --bucket payload-bucket --acl public-read`
|
|
34
|
+
|
|
35
|
+
Finally, you can run `yarn dev:s3` and then open `http://localhost:3000/admin` in your browser.
|
|
36
|
+
|
|
37
|
+
### Google Cloud Storage(GCS) Adapter Development
|
|
38
|
+
|
|
39
|
+
This repository comes with a Docker emulator for Google Cloud Storage.
|
|
40
|
+
|
|
41
|
+
If you would like to test locally with an emulated GCS container, you can `cd` into `./src/adapters/gcs/emulator` and then run `docker-compose up -d`.
|
|
42
|
+
|
|
43
|
+
The default `./dev/.env.example` file comes pre-loaded with correct `env` variables that correspond to the GCS Docker emulator.
|
|
44
|
+
|
|
45
|
+
Otherwise, if you are not using the emulator, make sure your environment variables within `./dev/.env` are configured for your Google connection.
|
|
46
|
+
|
|
47
|
+
Finally, to start the Payload dev server with the GCS adapter, run `yarn dev:gcs` and then open `http://localhost:3000/admin` in your browser.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
parser: '@typescript-eslint/parser',
|
|
3
|
+
extends: [
|
|
4
|
+
'airbnb-base',
|
|
5
|
+
require.resolve('./rules/style.js'),
|
|
6
|
+
require.resolve('./rules/import.js'),
|
|
7
|
+
require.resolve('./rules/typescript.js'),
|
|
8
|
+
require.resolve('./rules/prettier.js'),
|
|
9
|
+
],
|
|
10
|
+
env: {
|
|
11
|
+
es6: true,
|
|
12
|
+
browser: true,
|
|
13
|
+
node: true,
|
|
14
|
+
},
|
|
15
|
+
}
|