@payloadcms/plugin-cloud-storage 1.0.3 → 1.0.6

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/README.md CHANGED
@@ -37,6 +37,7 @@ This plugin supports the following adapters:
37
37
 
38
38
  - [Azure Blob Storage](#azure-blob-storage-adapter)
39
39
  - [AWS S3-style Storage](#s3-adapter)
40
+ - [Google Cloud Storage](#gcs-adapter)
40
41
 
41
42
  However, you can create your own adapter for any third-party service you would like to use.
42
43
 
@@ -98,6 +99,28 @@ const adapter = s3Adapter({
98
99
  // Now you can pass this adapter to the plugin
99
100
  ```
100
101
 
102
+ ### GCS Adapter
103
+
104
+ To use the GCS adapter, you need to have `@google-cloud/storage` installed in your project dependencies. To do so, run `yarn add @google-storage/cloud`.
105
+
106
+ From there, create the adapter, passing in all of its required properties:
107
+
108
+ ```js
109
+ import { gcsAdapter } from '@payloadcms/plugin-cloud-storage/gcs';
110
+
111
+ const adapter = gcsAdapter({
112
+ options: {
113
+ // you can choose any method for authentication, and authorization which is being provided by `@google-cloud/storage`
114
+ keyFilename: './gcs-credentials.json',
115
+ //OR
116
+ credentials: JSON.parse(process.env.GCS_CREDENTIALS) // this env variable will have stringify version of your credentials.json file
117
+ },
118
+ bucket: process.env.GCS_BUCKET,
119
+ })
120
+
121
+ // Now you can pass this adapter to the plugin
122
+ ```
123
+
101
124
  ### Payload Access Control
102
125
 
103
126
  Payload ships with access control that runs _even on statically served files_. The same `read` access control property on your `upload`-enabled collections is used, and it allows you to restrict who can request your uploaded files.
package/azure.js CHANGED
@@ -1 +1 @@
1
- exports.azureBlobStorageAdapter = require('./dist/adapters/azure')
1
+ exports.azureBlobStorageAdapter = require('./dist/adapters/azure').azureBlobStorageAdapter
@@ -0,0 +1,8 @@
1
+ import { Storage } from '@google-cloud/storage';
2
+ import type { GenerateURL } from '../../types';
3
+ interface Args {
4
+ gcs: Storage;
5
+ bucket: string;
6
+ }
7
+ export declare const getGenerateURL: ({ gcs, bucket }: Args) => GenerateURL;
8
+ export {};
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getGenerateURL = void 0;
4
+ var getGenerateURL = function (_a) {
5
+ var gcs = _a.gcs, bucket = _a.bucket;
6
+ return function (_a) {
7
+ var filename = _a.filename;
8
+ return gcs.bucket(bucket).file(filename).publicUrl();
9
+ };
10
+ };
11
+ exports.getGenerateURL = getGenerateURL;
12
+ //# sourceMappingURL=generateURL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateURL.js","sourceRoot":"","sources":["../../../src/adapters/gcs/generateURL.ts"],"names":[],"mappings":";;;AAQO,IAAM,cAAc,GACzB,UAAC,EAAqB;QAAnB,GAAG,SAAA,EAAE,MAAM,YAAA;IACd,OAAA,UAAC,EAAY;YAAV,QAAQ,cAAA;QACT,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,CAAA;IACtD,CAAC;AAFD,CAEC,CAAA;AAJU,QAAA,cAAc,kBAIxB"}
@@ -0,0 +1,8 @@
1
+ import { Storage } from '@google-cloud/storage';
2
+ import type { HandleDelete } from '../../types';
3
+ interface Args {
4
+ gcs: Storage;
5
+ bucket: string;
6
+ }
7
+ export declare const getHandleDelete: ({ gcs, bucket }: Args) => HandleDelete;
8
+ export {};
@@ -0,0 +1,59 @@
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 (_) 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
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.getHandleDelete = void 0;
40
+ var getHandleDelete = function (_a) {
41
+ var gcs = _a.gcs, bucket = _a.bucket;
42
+ return function (_a) {
43
+ var filename = _a.filename;
44
+ return __awaiter(void 0, void 0, void 0, function () {
45
+ return __generator(this, function (_b) {
46
+ switch (_b.label) {
47
+ case 0: return [4 /*yield*/, gcs.bucket(bucket).file(filename).delete({
48
+ ignoreNotFound: true,
49
+ })];
50
+ case 1:
51
+ _b.sent();
52
+ return [2 /*return*/];
53
+ }
54
+ });
55
+ });
56
+ };
57
+ };
58
+ exports.getHandleDelete = getHandleDelete;
59
+ //# sourceMappingURL=handleDelete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleDelete.js","sourceRoot":"","sources":["../../../src/adapters/gcs/handleDelete.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQO,IAAM,eAAe,GAAG,UAAC,EAAqB;QAAnB,GAAG,SAAA,EAAE,MAAM,YAAA;IAC3C,OAAO,UAAO,EAAY;YAAV,QAAQ,cAAA;;;;4BACtB,qBAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;4BAC7C,cAAc,EAAE,IAAI;yBACrB,CAAC,EAAA;;wBAFF,SAEE,CAAA;;;;;KACH,CAAA;AACH,CAAC,CAAA;AANY,QAAA,eAAe,mBAM3B"}
@@ -0,0 +1,11 @@
1
+ import { Storage } from '@google-cloud/storage';
2
+ import type { CollectionConfig } from 'payload/types';
3
+ import type { HandleUpload } from '../../types';
4
+ interface Args {
5
+ collection: CollectionConfig;
6
+ bucket: string;
7
+ acl?: 'Private' | 'Public';
8
+ gcs: Storage;
9
+ }
10
+ export declare const getHandleUpload: ({ gcs, bucket, acl }: Args) => HandleUpload;
11
+ export {};
@@ -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 (_) 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
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.getHandleUpload = void 0;
40
+ var getHandleUpload = function (_a) {
41
+ var gcs = _a.gcs, bucket = _a.bucket, acl = _a.acl;
42
+ return function (_a) {
43
+ var data = _a.data, file = _a.file;
44
+ return __awaiter(void 0, void 0, void 0, function () {
45
+ var gcsFile;
46
+ return __generator(this, function (_b) {
47
+ switch (_b.label) {
48
+ case 0:
49
+ gcsFile = gcs.bucket(bucket).file(file.filename);
50
+ return [4 /*yield*/, gcsFile.save(file.buffer, {
51
+ contentType: file.mimeType,
52
+ })];
53
+ case 1:
54
+ _b.sent();
55
+ if (!acl) return [3 /*break*/, 3];
56
+ return [4 /*yield*/, gcsFile["make".concat(acl)]()];
57
+ case 2:
58
+ _b.sent();
59
+ _b.label = 3;
60
+ case 3: return [2 /*return*/, data];
61
+ }
62
+ });
63
+ });
64
+ };
65
+ };
66
+ exports.getHandleUpload = getHandleUpload;
67
+ //# sourceMappingURL=handleUpload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleUpload.js","sourceRoot":"","sources":["../../../src/adapters/gcs/handleUpload.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWO,IAAM,eAAe,GAAG,UAAC,EAA0B;QAAxB,GAAG,SAAA,EAAE,MAAM,YAAA,EAAE,GAAG,SAAA;IAChD,OAAO,UAAO,EAAc;YAAZ,IAAI,UAAA,EAAE,IAAI,UAAA;;;;;;wBAClB,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;wBACtD,qBAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gCAC9B,WAAW,EAAE,IAAI,CAAC,QAAQ;6BAC3B,CAAC,EAAA;;wBAFF,SAEE,CAAA;6BACE,GAAG,EAAH,wBAAG;wBACL,qBAAM,OAAO,CAAC,cAAO,GAAG,CAAE,CAAC,EAAE,EAAA;;wBAA7B,SAA6B,CAAA;;4BAG/B,sBAAO,IAAI,EAAA;;;;KACZ,CAAA;AACH,CAAC,CAAA;AAZY,QAAA,eAAe,mBAY3B"}
@@ -0,0 +1,8 @@
1
+ import { StorageOptions } from '@google-cloud/storage';
2
+ import type { Adapter } from '../../types';
3
+ export interface Args {
4
+ options: StorageOptions;
5
+ bucket: string;
6
+ acl?: 'Private' | 'Public';
7
+ }
8
+ export declare const gcsAdapter: ({ options, bucket, acl }: Args) => Adapter;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.gcsAdapter = void 0;
4
+ var storage_1 = require("@google-cloud/storage");
5
+ var generateURL_1 = require("./generateURL");
6
+ var staticHandler_1 = require("./staticHandler");
7
+ var handleDelete_1 = require("./handleDelete");
8
+ var handleUpload_1 = require("./handleUpload");
9
+ var webpack_1 = require("./webpack");
10
+ var gcsAdapter = function (_a) {
11
+ var options = _a.options, bucket = _a.bucket, acl = _a.acl;
12
+ return function (_a) {
13
+ var collection = _a.collection;
14
+ var gcs = new storage_1.Storage(options);
15
+ return {
16
+ handleUpload: (0, handleUpload_1.getHandleUpload)({
17
+ collection: collection,
18
+ gcs: gcs,
19
+ bucket: bucket,
20
+ acl: acl,
21
+ }),
22
+ handleDelete: (0, handleDelete_1.getHandleDelete)({ gcs: gcs, bucket: bucket }),
23
+ generateURL: (0, generateURL_1.getGenerateURL)({ gcs: gcs, bucket: bucket }),
24
+ staticHandler: (0, staticHandler_1.getHandler)({ gcs: gcs, bucket: bucket }),
25
+ webpack: webpack_1.extendWebpackConfig,
26
+ };
27
+ };
28
+ };
29
+ exports.gcsAdapter = gcsAdapter;
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/gcs/index.ts"],"names":[],"mappings":";;;AAAA,iDAA+D;AAE/D,6CAA8C;AAC9C,iDAA4C;AAC5C,+CAAgD;AAChD,+CAAgD;AAChD,qCAA+C;AAQxC,IAAM,UAAU,GACrB,UAAC,EAA8B;QAA5B,OAAO,aAAA,EAAE,MAAM,YAAA,EAAE,GAAG,SAAA;IACvB,OAAA,UAAC,EAAc;YAAZ,UAAU,gBAAA;QACX,IAAM,GAAG,GAAG,IAAI,iBAAO,CAAC,OAAO,CAAC,CAAA;QAEhC,OAAO;YACL,YAAY,EAAE,IAAA,8BAAe,EAAC;gBAC5B,UAAU,YAAA;gBACV,GAAG,KAAA;gBACH,MAAM,QAAA;gBACN,GAAG,KAAA;aACJ,CAAC;YACF,YAAY,EAAE,IAAA,8BAAe,EAAC,EAAE,GAAG,KAAA,EAAE,MAAM,QAAA,EAAE,CAAC;YAC9C,WAAW,EAAE,IAAA,4BAAc,EAAC,EAAE,GAAG,KAAA,EAAE,MAAM,QAAA,EAAE,CAAC;YAC5C,aAAa,EAAE,IAAA,0BAAU,EAAC,EAAE,GAAG,KAAA,EAAE,MAAM,QAAA,EAAE,CAAC;YAC1C,OAAO,EAAE,6BAAmB;SAC7B,CAAA;IACH,CAAC;AAfD,CAeC,CAAA;AAjBU,QAAA,UAAU,cAiBpB"}
@@ -0,0 +1 @@
1
+ export function Storage(): null;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ exports.Storage = function () {
3
+ return null;
4
+ };
5
+ //# sourceMappingURL=mock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock.js","sourceRoot":"","sources":["../../../src/adapters/gcs/mock.js"],"names":[],"mappings":";AAAA,OAAO,CAAC,OAAO,GAAG;IAChB,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { Storage } from '@google-cloud/storage';
2
+ import type { StaticHandler } from '../../types';
3
+ interface Args {
4
+ gcs: Storage;
5
+ bucket: string;
6
+ }
7
+ export declare const getHandler: ({ gcs, bucket }: Args) => StaticHandler;
8
+ export {};
@@ -0,0 +1,55 @@
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 (_) 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
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.getHandler = void 0;
40
+ var getHandler = function (_a) {
41
+ var gcs = _a.gcs, bucket = _a.bucket;
42
+ return function (req, res, next) { return __awaiter(void 0, void 0, void 0, function () {
43
+ return __generator(this, function (_a) {
44
+ try {
45
+ return [2 /*return*/, gcs.bucket(bucket).file(req.params.filename).createReadStream().pipe(res)];
46
+ }
47
+ catch (err) {
48
+ return [2 /*return*/, next()];
49
+ }
50
+ return [2 /*return*/];
51
+ });
52
+ }); };
53
+ };
54
+ exports.getHandler = getHandler;
55
+ //# sourceMappingURL=staticHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"staticHandler.js","sourceRoot":"","sources":["../../../src/adapters/gcs/staticHandler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQO,IAAM,UAAU,GAAG,UAAC,EAAqB;QAAnB,GAAG,SAAA,EAAE,MAAM,YAAA;IACtC,OAAO,UAAO,GAAG,EAAE,GAAG,EAAE,IAAI;;YAC1B,IAAI;gBACF,sBAAO,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA;aACjF;YAAC,OAAO,GAAY,EAAE;gBACrB,sBAAO,IAAI,EAAE,EAAA;aACd;;;SACF,CAAA;AACH,CAAC,CAAA;AARY,QAAA,UAAU,cAQtB"}
@@ -0,0 +1,2 @@
1
+ import type { Configuration as WebpackConfig } from 'webpack';
2
+ export declare const extendWebpackConfig: (existingWebpackConfig: WebpackConfig) => WebpackConfig;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.extendWebpackConfig = void 0;
18
+ var path_1 = __importDefault(require("path"));
19
+ var extendWebpackConfig = function (existingWebpackConfig) {
20
+ var _a;
21
+ var newConfig = __assign(__assign({}, existingWebpackConfig), { resolve: __assign(__assign({}, (existingWebpackConfig.resolve || {})), { alias: __assign(__assign({}, (((_a = existingWebpackConfig.resolve) === null || _a === void 0 ? void 0 : _a.alias) ? existingWebpackConfig.resolve.alias : {})), { '@google-cloud/storage': path_1.default.resolve(__dirname, './mock.js') }) }) });
22
+ return newConfig;
23
+ };
24
+ exports.extendWebpackConfig = extendWebpackConfig;
25
+ //# sourceMappingURL=webpack.js.map
@@ -0,0 +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;AAbY,QAAA,mBAAmB,uBAa/B"}
package/dist/plugin.js CHANGED
@@ -28,16 +28,14 @@ var getFields_1 = require("./fields/getFields");
28
28
  // This plugin extends all targeted collections by offloading uploaded files
29
29
  // to cloud storage instead of solely storing files locally.
30
30
  // It is based on an adapter approach, where adapters can be written for any cloud provider.
31
- // Adapters are responsible for providing three actions that this plugin will use:
32
- // 1. handleUpload, 2. handleDelete, 3. generateURL
31
+ // Adapters are responsible for providing four actions that this plugin will use:
32
+ // 1. handleUpload, 2. handleDelete, 3. generateURL, 4. staticHandler
33
33
  // Optionally, the adapter can specify any Webpack config overrides if they are necessary.
34
34
  var cloudStorage = function (pluginOptions) {
35
35
  return function (config) {
36
36
  var allCollectionOptions = pluginOptions.collections;
37
37
  var webpack = (0, webpack_1.extendWebpackConfig)({ options: pluginOptions, config: config });
38
- return __assign(__assign({}, config), { admin: {
39
- webpack: webpack,
40
- }, collections: (config.collections || []).map(function (existingCollection) {
38
+ return __assign(__assign({}, config), { admin: __assign(__assign({}, (config.admin || {})), { webpack: webpack }), collections: (config.collections || []).map(function (existingCollection) {
41
39
  var _a, _b;
42
40
  var options = allCollectionOptions[existingCollection.slug];
43
41
  if (options) {
@@ -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,kFAAkF;AAClF,mDAAmD;AAEnD,0FAA0F;AAEnF,IAAM,YAAY,GACvB,UAAC,aAA4B;IAC7B,OAAA,UAAC,MAAc;QACL,IAAa,oBAAoB,GAAK,aAAa,YAAlB,CAAkB;QAE3D,IAAM,OAAO,GAAG,IAAA,6BAAmB,EAAC,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,QAAA,EAAE,CAAC,CAAA;QAEvE,6BACK,MAAM,KACT,KAAK,EAAE;gBACL,OAAO,SAAA;aACR,EACD,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,UAAA,kBAAkB;;gBAC5D,IAAM,OAAO,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;gBAE7D,IAAI,OAAO,EAAE;oBACX,IAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,kBAAkB,EAAE,CAAC,CAAA;oBAEnE,IAAM,MAAM,GAAG,IAAA,qBAAS,EAAC;wBACvB,UAAU,EAAE,kBAAkB;wBAC9B,2BAA2B,EAAE,OAAO,CAAC,2BAA2B;wBAChE,OAAO,SAAA;qBACR,CAAC,CAAA;oBAEF,IAAM,QAAQ,qBACT,CAAC,OAAO,kBAAkB,CAAC,MAAM,KAAK,QAAQ;wBACjD,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC;wBAC/C,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ;wBACpC,CAAC,CAAC,EAAE,CAAC,OACR,CAAA;oBAED,IAAI,CAAC,OAAO,CAAC,2BAA2B,EAAE;wBACxC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;qBACrC;oBAED,6BACK,kBAAkB,KACrB,MAAM,wBACD,CAAC,OAAO,kBAAkB,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KACnF,QAAQ,UAAA,EACR,mBAAmB,EACjB,OAAO,OAAO,CAAC,mBAAmB,KAAK,SAAS;gCAC9C,CAAC,CAAC,OAAO,CAAC,mBAAmB;gCAC7B,CAAC,CAAC,IAAI,KAEZ,KAAK,wBACA,CAAC,kBAAkB,CAAC,KAAK,IAAI,EAAE,CAAC,KACnC,YAAY,kCACP,CAAC,CAAA,MAAA,kBAAkB,CAAC,KAAK,0CAAE,YAAY,KAAI,EAAE,CAAC;gCACjD,IAAA,kCAAmB,EAAC,EAAE,OAAO,SAAA,EAAE,UAAU,EAAE,kBAAkB,EAAE,CAAC;uCAElE,WAAW,kCACN,CAAC,CAAA,MAAA,kBAAkB,CAAC,KAAK,0CAAE,WAAW,KAAI,EAAE,CAAC;gCAChD,IAAA,gCAAkB,EAAC,EAAE,OAAO,SAAA,EAAE,UAAU,EAAE,kBAAkB,EAAE,CAAC;0CAGnE,MAAM,QAAA,IACP;iBACF;gBAED,OAAO,kBAAkB,CAAA;YAC3B,CAAC,CAAC,IACH;IACH,CAAC;AA7DD,CA6DC,CAAA;AA/DU,QAAA,YAAY,gBA+DtB"}
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,MAAc;QACL,IAAa,oBAAoB,GAAK,aAAa,YAAlB,CAAkB;QAE3D,IAAM,OAAO,GAAG,IAAA,6BAAmB,EAAC,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,QAAA,EAAE,CAAC,CAAA;QAEvE,6BACK,MAAM,KACT,KAAK,wBACA,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,KACvB,OAAO,SAAA,KAET,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,UAAA,kBAAkB;;gBAC5D,IAAM,OAAO,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;gBAE7D,IAAI,OAAO,EAAE;oBACX,IAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,kBAAkB,EAAE,CAAC,CAAA;oBAEnE,IAAM,MAAM,GAAG,IAAA,qBAAS,EAAC;wBACvB,UAAU,EAAE,kBAAkB;wBAC9B,2BAA2B,EAAE,OAAO,CAAC,2BAA2B;wBAChE,OAAO,SAAA;qBACR,CAAC,CAAA;oBAEF,IAAM,QAAQ,qBACT,CAAC,OAAO,kBAAkB,CAAC,MAAM,KAAK,QAAQ;wBACjD,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC;wBAC/C,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ;wBACpC,CAAC,CAAC,EAAE,CAAC,OACR,CAAA;oBAED,IAAI,CAAC,OAAO,CAAC,2BAA2B,EAAE;wBACxC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;qBACrC;oBAED,6BACK,kBAAkB,KACrB,MAAM,wBACD,CAAC,OAAO,kBAAkB,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KACnF,QAAQ,UAAA,EACR,mBAAmB,EACjB,OAAO,OAAO,CAAC,mBAAmB,KAAK,SAAS;gCAC9C,CAAC,CAAC,OAAO,CAAC,mBAAmB;gCAC7B,CAAC,CAAC,IAAI,KAEZ,KAAK,wBACA,CAAC,kBAAkB,CAAC,KAAK,IAAI,EAAE,CAAC,KACnC,YAAY,kCACP,CAAC,CAAA,MAAA,kBAAkB,CAAC,KAAK,0CAAE,YAAY,KAAI,EAAE,CAAC;gCACjD,IAAA,kCAAmB,EAAC,EAAE,OAAO,SAAA,EAAE,UAAU,EAAE,kBAAkB,EAAE,CAAC;uCAElE,WAAW,kCACN,CAAC,CAAA,MAAA,kBAAkB,CAAC,KAAK,0CAAE,WAAW,KAAI,EAAE,CAAC;gCAChD,IAAA,gCAAkB,EAAC,EAAE,OAAO,SAAA,EAAE,UAAU,EAAE,kBAAkB,EAAE,CAAC;0CAGnE,MAAM,QAAA,IACP;iBACF;gBAED,OAAO,kBAAkB,CAAA;YAC3B,CAAC,CAAC,IACH;IACH,CAAC;AA9DD,CA8DC,CAAA;AAhEU,QAAA,YAAY,gBAgEtB"}
package/gcs.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './dist/adapters/gcs'
package/gcs.js ADDED
@@ -0,0 +1 @@
1
+ exports.gcsAdapter = require('./dist/adapters/gcs').gcsAdapter
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@payloadcms/plugin-cloud-storage",
3
3
  "description": "The official cloud storage plugin for Payload CMS",
4
- "version": "1.0.3",
4
+ "version": "1.0.6",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "license": "SEE LICENSE IN LICENSE.MD",
@@ -12,7 +12,9 @@
12
12
  },
13
13
  "peerDependencies": {
14
14
  "@aws-sdk/client-s3": "^3.142.0",
15
- "@azure/storage-blob": "^12.11.0"
15
+ "@azure/storage-blob": "^12.11.0",
16
+ "@google-cloud/storage": "^6.4.1",
17
+ "payload": "^1.0.27"
16
18
  },
17
19
  "peerDependenciesMeta": {
18
20
  "@aws-sdk/client-s3": {
@@ -20,6 +22,9 @@
20
22
  },
21
23
  "@azure/storage-blob": {
22
24
  "optional": true
25
+ },
26
+ "@google-cloud/storage": {
27
+ "optional": true
23
28
  }
24
29
  },
25
30
  "files": [
@@ -31,6 +36,7 @@
31
36
  "devDependencies": {
32
37
  "@aws-sdk/client-s3": "^3.142.0",
33
38
  "@azure/storage-blob": "^12.11.0",
39
+ "@google-cloud/storage": "^6.4.1",
34
40
  "@types/express": "^4.17.9",
35
41
  "@typescript-eslint/eslint-plugin": "5.12.1",
36
42
  "@typescript-eslint/parser": "5.12.1",
package/s3.js CHANGED
@@ -1 +1 @@
1
- exports.s3Adapter = require('./dist/adapters/s3')
1
+ exports.s3Adapter = require('./dist/adapters/s3').s3Adapter