@payloadcms/plugin-cloud-storage 1.0.18 → 1.1.0-beta.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.
Files changed (177) hide show
  1. package/.editorconfig +10 -0
  2. package/.gitignore +248 -0
  3. package/.prettierignore +1 -0
  4. package/.prettierrc.js +8 -0
  5. package/.vscode/launch.json +40 -0
  6. package/.vscode/settings.json +9 -0
  7. package/dev/.env +21 -0
  8. package/dev/.env.example +21 -0
  9. package/dev/dist/dev/src/collections/Media.js +56 -0
  10. package/dev/dist/dev/src/collections/Media.js.map +1 -0
  11. package/dev/dist/dev/src/collections/Users.js +23 -0
  12. package/dev/dist/dev/src/collections/Users.js.map +1 -0
  13. package/dev/dist/dev/src/payload.config.js +153 -0
  14. package/dev/dist/dev/src/payload.config.js.map +1 -0
  15. package/dev/dist/dev/src/server.js +26 -0
  16. package/dev/dist/dev/src/server.js.map +1 -0
  17. package/dev/dist/src/adapters/azure/generateURL.js +16 -0
  18. package/dev/dist/src/adapters/azure/generateURL.js.map +1 -0
  19. package/dev/dist/src/adapters/azure/handleDelete.js +64 -0
  20. package/dev/dist/src/adapters/azure/handleDelete.js.map +1 -0
  21. package/dev/dist/src/adapters/azure/handleUpload.js +81 -0
  22. package/dev/dist/src/adapters/azure/handleUpload.js.map +1 -0
  23. package/dev/dist/src/adapters/azure/index.js +43 -0
  24. package/dev/dist/src/adapters/azure/index.js.map +1 -0
  25. package/dev/dist/src/adapters/azure/staticHandler.js +82 -0
  26. package/dev/dist/src/adapters/azure/staticHandler.js.map +1 -0
  27. package/dev/dist/src/adapters/azure/webpack.js +25 -0
  28. package/dev/dist/src/adapters/azure/webpack.js.map +1 -0
  29. package/dev/dist/src/adapters/gcs/generateURL.js +16 -0
  30. package/dev/dist/src/adapters/gcs/generateURL.js.map +1 -0
  31. package/dev/dist/src/adapters/gcs/handleDelete.js +63 -0
  32. package/dev/dist/src/adapters/gcs/handleDelete.js.map +1 -0
  33. package/dev/dist/src/adapters/gcs/handleUpload.js +73 -0
  34. package/dev/dist/src/adapters/gcs/handleUpload.js.map +1 -0
  35. package/dev/dist/src/adapters/gcs/index.js +36 -0
  36. package/dev/dist/src/adapters/gcs/index.js.map +1 -0
  37. package/dev/dist/src/adapters/gcs/staticHandler.js +77 -0
  38. package/dev/dist/src/adapters/gcs/staticHandler.js.map +1 -0
  39. package/dev/dist/src/adapters/gcs/webpack.js +25 -0
  40. package/dev/dist/src/adapters/gcs/webpack.js.map +1 -0
  41. package/dev/dist/src/adapters/s3/generateURL.js +16 -0
  42. package/dev/dist/src/adapters/s3/generateURL.js.map +1 -0
  43. package/dev/dist/src/adapters/s3/handleDelete.js +64 -0
  44. package/dev/dist/src/adapters/s3/handleDelete.js.map +1 -0
  45. package/dev/dist/src/adapters/s3/handleUpload.js +94 -0
  46. package/dev/dist/src/adapters/s3/handleUpload.js.map +1 -0
  47. package/dev/dist/src/adapters/s3/index.js +60 -0
  48. package/dev/dist/src/adapters/s3/index.js.map +1 -0
  49. package/dev/dist/src/adapters/s3/staticHandler.js +82 -0
  50. package/dev/dist/src/adapters/s3/staticHandler.js.map +1 -0
  51. package/dev/dist/src/adapters/s3/webpack.js +25 -0
  52. package/dev/dist/src/adapters/s3/webpack.js.map +1 -0
  53. package/dev/dist/src/fields/getFields.js +119 -0
  54. package/dev/dist/src/fields/getFields.js.map +1 -0
  55. package/dev/dist/src/hooks/afterDelete.js +92 -0
  56. package/dev/dist/src/hooks/afterDelete.js.map +1 -0
  57. package/dev/dist/src/hooks/afterRead.js +80 -0
  58. package/dev/dist/src/hooks/afterRead.js.map +1 -0
  59. package/dev/dist/src/hooks/beforeChange.js +106 -0
  60. package/dev/dist/src/hooks/beforeChange.js.map +1 -0
  61. package/dev/dist/src/index.js +6 -0
  62. package/dev/dist/src/index.js.map +1 -0
  63. package/dev/dist/src/plugin.js +131 -0
  64. package/dev/dist/src/plugin.js.map +1 -0
  65. package/{dist/adapters/s3/fileStub.js → dev/dist/src/types.js} +1 -2
  66. package/dev/dist/src/types.js.map +1 -0
  67. package/dev/dist/src/utilities/getFilePrefix.js +81 -0
  68. package/dev/dist/src/utilities/getFilePrefix.js.map +1 -0
  69. package/dev/dist/src/utilities/getIncomingFiles.js +38 -0
  70. package/dev/dist/src/utilities/getIncomingFiles.js.map +1 -0
  71. package/dev/dist/src/utilities/getRangeFromHeader.js +67 -0
  72. package/dev/dist/src/utilities/getRangeFromHeader.js.map +1 -0
  73. package/dev/dist/src/webpack.js +40 -0
  74. package/dev/dist/src/webpack.js.map +1 -0
  75. package/dev/nodemon.json +8 -0
  76. package/dev/package.json +34 -0
  77. package/dev/src/collections/Media.ts +56 -0
  78. package/dev/src/collections/Users.ts +23 -0
  79. package/dev/src/mocks/fsMock.js +1 -0
  80. package/dev/src/mocks/promisifyMock.js +1 -0
  81. package/dev/src/payload.config.ts +123 -0
  82. package/dev/src/server.ts +26 -0
  83. package/dev/tmp/tmp-1-1688568985997 +0 -0
  84. package/dev/tmp/tmp-2-1687546883112 +0 -0
  85. package/dev/tsconfig.json +20 -0
  86. package/dist/adapters/azure/handleUpload.js +3 -2
  87. package/dist/adapters/azure/handleUpload.js.map +1 -1
  88. package/dist/adapters/azure/mock.d.ts +1 -13
  89. package/dist/adapters/azure/mock.js +4 -11
  90. package/dist/adapters/azure/mock.js.map +1 -1
  91. package/dist/adapters/azure/webpack.js +1 -1
  92. package/dist/adapters/azure/webpack.js.map +1 -1
  93. package/dist/adapters/gcs/handleUpload.js +3 -2
  94. package/dist/adapters/gcs/handleUpload.js.map +1 -1
  95. package/dist/adapters/gcs/index.d.ts +1 -1
  96. package/dist/adapters/gcs/index.js +2 -1
  97. package/dist/adapters/gcs/index.js.map +1 -1
  98. package/dist/adapters/gcs/mock.d.ts +1 -1
  99. package/dist/adapters/gcs/mock.js +4 -3
  100. package/dist/adapters/gcs/mock.js.map +1 -1
  101. package/dist/adapters/s3/handleUpload.js +1 -1
  102. package/dist/adapters/s3/handleUpload.js.map +1 -1
  103. package/dist/adapters/s3/mock.d.ts +1 -8
  104. package/dist/adapters/s3/mock.js +4 -8
  105. package/dist/adapters/s3/mock.js.map +1 -1
  106. package/dist/adapters/s3/webpack.js +1 -1
  107. package/dist/adapters/s3/webpack.js.map +1 -1
  108. package/dist/admin/fields/getFields.d.ts +7 -0
  109. package/dist/admin/fields/getFields.js +102 -0
  110. package/dist/admin/fields/getFields.js.map +1 -0
  111. package/dist/admin/index.d.ts +3 -0
  112. package/dist/admin/index.js +40 -0
  113. package/dist/admin/index.js.map +1 -0
  114. package/dist/fields/getFields.js +1 -1
  115. package/dist/fields/getFields.js.map +1 -1
  116. package/dist/webpack.js +5 -1
  117. package/dist/webpack.js.map +1 -1
  118. package/docs/local-dev.md +47 -0
  119. package/eslint-config/index.js +15 -0
  120. package/eslint-config/rules/import.js +38 -0
  121. package/eslint-config/rules/prettier.js +7 -0
  122. package/eslint-config/rules/style.js +21 -0
  123. package/eslint-config/rules/typescript.js +628 -0
  124. package/package.json +1 -1
  125. package/src/adapters/azure/emulator/docker-compose.yml +16 -0
  126. package/src/adapters/azure/generateURL.ts +13 -0
  127. package/src/adapters/azure/handleDelete.ts +16 -0
  128. package/src/adapters/azure/handleUpload.ts +43 -0
  129. package/src/adapters/azure/index.ts +48 -0
  130. package/src/adapters/azure/mock.js +1 -0
  131. package/src/adapters/azure/staticHandler.ts +38 -0
  132. package/src/adapters/azure/webpack.ts +21 -0
  133. package/src/adapters/gcs/emulator/docker-compose.yml +15 -0
  134. package/src/adapters/gcs/generateURL.ts +16 -0
  135. package/src/adapters/gcs/handleDelete.ts +16 -0
  136. package/src/adapters/gcs/handleUpload.ts +36 -0
  137. package/src/adapters/gcs/index.ts +40 -0
  138. package/src/adapters/gcs/mock.js +1 -0
  139. package/src/adapters/gcs/staticHandler.ts +34 -0
  140. package/src/adapters/gcs/webpack.ts +21 -0
  141. package/src/adapters/s3/emulator/.localstack/cache/machine.json +1 -0
  142. package/src/adapters/s3/emulator/.localstack/cache/server.test.pem +127 -0
  143. package/src/adapters/s3/emulator/.localstack/cache/server.test.pem.crt +99 -0
  144. package/src/adapters/s3/emulator/.localstack/cache/server.test.pem.key +28 -0
  145. package/src/adapters/s3/emulator/.localstack/cache/service-catalog-2_1_1_dev-1_29_149.pickle +0 -0
  146. package/src/adapters/s3/emulator/docker-compose.yml +15 -0
  147. package/src/adapters/s3/generateURL.ts +14 -0
  148. package/src/adapters/s3/handleDelete.ts +17 -0
  149. package/src/adapters/s3/handleUpload.ts +62 -0
  150. package/src/adapters/s3/index.ts +48 -0
  151. package/src/adapters/s3/mock.js +1 -0
  152. package/src/adapters/s3/staticHandler.ts +41 -0
  153. package/src/adapters/s3/webpack.ts +21 -0
  154. package/src/admin/fields/getFields.ts +126 -0
  155. package/src/admin/index.ts +39 -0
  156. package/src/fields/getFields.ts +155 -0
  157. package/src/hooks/afterDelete.ts +35 -0
  158. package/src/hooks/afterRead.ts +38 -0
  159. package/src/hooks/beforeChange.ts +59 -0
  160. package/src/index.ts +1 -0
  161. package/src/plugin.ts +101 -0
  162. package/src/types.ts +79 -0
  163. package/src/utilities/getFilePrefix.ts +26 -0
  164. package/src/utilities/getIncomingFiles.ts +44 -0
  165. package/src/utilities/getRangeFromHeader.ts +27 -0
  166. package/src/webpack.ts +48 -0
  167. package/tsconfig.json +23 -0
  168. package/yarn-error.log +8163 -0
  169. package/yarn.lock +8062 -0
  170. package/dist/adapters/azure/fileStub.d.ts +0 -2
  171. package/dist/adapters/azure/fileStub.js +0 -4
  172. package/dist/adapters/azure/fileStub.js.map +0 -1
  173. package/dist/adapters/s3/fileStub.d.ts +0 -2
  174. package/dist/adapters/s3/fileStub.js.map +0 -1
  175. package/dist/adapters/s3/fsMock.d.ts +0 -3
  176. package/dist/adapters/s3/fsMock.js +0 -3
  177. package/dist/adapters/s3/fsMock.js.map +0 -1
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "payload-plugin-cloud-storage-demo",
3
+ "version": "1.0.0",
4
+ "main": "dist/server.js",
5
+ "license": "MIT",
6
+ "private": true,
7
+ "scripts": {
8
+ "dev:azure": "cross-env PAYLOAD_CONFIG_PATH=src/payload.config.ts PAYLOAD_PUBLIC_CLOUD_STORAGE_ADAPTER=azure nodemon",
9
+ "dev:s3": "cross-env PAYLOAD_CONFIG_PATH=src/payload.config.ts PAYLOAD_PUBLIC_CLOUD_STORAGE_ADAPTER=s3 nodemon",
10
+ "dev:gcs": "cross-env PAYLOAD_CONFIG_PATH=src/payload.config.ts PAYLOAD_PUBLIC_CLOUD_STORAGE_ADAPTER=gcs nodemon",
11
+ "build:payload": "cross-env PAYLOAD_CONFIG_PATH=src/payload.config.ts payload build",
12
+ "build:server": "tsc",
13
+ "build": "yarn build:payload && yarn build:server",
14
+ "serve": "cross-env PAYLOAD_CONFIG_PATH=dist/payload.config.js NODE_ENV=production node dist/server.js",
15
+ "generate:types": "cross-env PAYLOAD_CONFIG_PATH=src/payload.config.ts payload generate:types"
16
+ },
17
+ "dependencies": {
18
+ "@aws-sdk/client-s3": "^3.142.0",
19
+ "@azure/storage-blob": "^12.11.0",
20
+ "@google-cloud/storage": "^6.4.2",
21
+ "dotenv": "^8.2.0",
22
+ "express": "^4.17.1",
23
+ "image-size": "^1.0.2",
24
+ "payload": "^1.7.2",
25
+ "probe-image-size": "^7.2.3"
26
+ },
27
+ "devDependencies": {
28
+ "@types/express": "^4.17.9",
29
+ "cross-env": "^7.0.3",
30
+ "nodemon": "^2.0.6",
31
+ "ts-node": "^9.1.1",
32
+ "typescript": "^4.1.3"
33
+ }
34
+ }
@@ -0,0 +1,56 @@
1
+ /* eslint-disable no-console */
2
+ import type { CollectionConfig, Field } from 'payload/types'
3
+
4
+ const urlField: Field = {
5
+ name: 'url',
6
+ type: 'text',
7
+ hooks: {
8
+ afterRead: [
9
+ ({ value }) => {
10
+ console.log('hello from hook')
11
+ return value
12
+ },
13
+ ],
14
+ },
15
+ }
16
+
17
+ export const Media: CollectionConfig = {
18
+ slug: 'media',
19
+ upload: {
20
+ imageSizes: [
21
+ {
22
+ height: 400,
23
+ width: 400,
24
+ crop: 'center',
25
+ name: 'square',
26
+ },
27
+ {
28
+ width: 900,
29
+ height: 450,
30
+ crop: 'center',
31
+ name: 'sixteenByNineMedium',
32
+ },
33
+ ],
34
+ },
35
+ fields: [
36
+ {
37
+ name: 'alt',
38
+ label: 'Alt Text',
39
+ type: 'text',
40
+ },
41
+
42
+ // The following fields should be able to be merged in to default upload fields
43
+ urlField,
44
+ {
45
+ name: 'sizes',
46
+ type: 'group',
47
+ fields: [
48
+ {
49
+ name: 'square',
50
+ type: 'group',
51
+ fields: [urlField],
52
+ },
53
+ ],
54
+ },
55
+ ],
56
+ }
@@ -0,0 +1,23 @@
1
+ import type { CollectionConfig } from 'payload/types'
2
+
3
+ const Users: CollectionConfig = {
4
+ slug: 'users',
5
+ auth: true,
6
+ access: {
7
+ read: () => true,
8
+ },
9
+ fields: [
10
+ {
11
+ name: 'avatar',
12
+ type: 'upload',
13
+ relationTo: 'media',
14
+ },
15
+ {
16
+ name: 'background',
17
+ type: 'upload',
18
+ relationTo: 'media',
19
+ },
20
+ ],
21
+ }
22
+
23
+ export default Users
@@ -0,0 +1 @@
1
+ module.exports = { fs: { createReadStream: () => null } }
@@ -0,0 +1 @@
1
+ export const promisify = () => {}
@@ -0,0 +1,123 @@
1
+ import { buildConfig } from 'payload/config'
2
+ import path from 'path'
3
+ import Users from './collections/Users'
4
+ import { cloudStorage } from '../../src'
5
+ import { s3Adapter } from '../../src/adapters/s3'
6
+ import { gcsAdapter } from '../../src/adapters/gcs'
7
+ import { azureBlobStorageAdapter } from '../../src/adapters/azure'
8
+ import type { Adapter } from '../../src/types'
9
+ import { Media } from './collections/Media'
10
+
11
+ let adapter: Adapter
12
+ let uploadOptions
13
+
14
+ if (process.env.PAYLOAD_PUBLIC_CLOUD_STORAGE_ADAPTER === 'azure') {
15
+ adapter = azureBlobStorageAdapter({
16
+ connectionString: process.env.AZURE_STORAGE_CONNECTION_STRING,
17
+ containerName: process.env.AZURE_STORAGE_CONTAINER_NAME,
18
+ allowContainerCreate: process.env.AZURE_STORAGE_ALLOW_CONTAINER_CREATE === 'true',
19
+ baseURL: process.env.AZURE_STORAGE_ACCOUNT_BASEURL,
20
+ })
21
+ // uploadOptions = {
22
+ // useTempFiles: true,
23
+ // }
24
+ }
25
+
26
+ if (process.env.PAYLOAD_PUBLIC_CLOUD_STORAGE_ADAPTER === 's3') {
27
+ // The s3 adapter supports using temp files for uploads
28
+ uploadOptions = {
29
+ useTempFiles: true,
30
+ }
31
+
32
+ adapter = s3Adapter({
33
+ config: {
34
+ endpoint: process.env.S3_ENDPOINT,
35
+ forcePathStyle: process.env.S3_FORCE_PATH_STYLE === 'true',
36
+ region: process.env.S3_REGION,
37
+ credentials: {
38
+ accessKeyId: process.env.S3_ACCESS_KEY_ID,
39
+ secretAccessKey: process.env.S3_SECRET_ACCESS_KEY,
40
+ },
41
+ },
42
+ bucket: process.env.S3_BUCKET,
43
+ })
44
+ }
45
+
46
+ if (process.env.PAYLOAD_PUBLIC_CLOUD_STORAGE_ADAPTER === 'gcs') {
47
+ adapter = gcsAdapter({
48
+ options: {
49
+ apiEndpoint: process.env.GCS_ENDPOINT,
50
+ projectId: process.env.GCS_PROJECT_ID,
51
+ },
52
+ bucket: process.env.GCS_BUCKET,
53
+ })
54
+ }
55
+
56
+ export default buildConfig({
57
+ serverURL: 'http://localhost:3000',
58
+ collections: [Media, Users],
59
+ upload: uploadOptions,
60
+ admin: {
61
+ // NOTE - these webpack extensions are only required
62
+ // for development of this plugin.
63
+ // No need to use these aliases within your own projects.
64
+ webpack: config => {
65
+ const newConfig = {
66
+ ...config,
67
+ resolve: {
68
+ ...(config.resolve || {}),
69
+ alias: {
70
+ ...(config.resolve.alias || {}),
71
+ react: path.resolve(__dirname, '../node_modules/react'),
72
+ [path.resolve(__dirname, '../../src/index')]: path.resolve(
73
+ __dirname,
74
+ '../../src/admin/index.ts',
75
+ ),
76
+ [path.resolve(__dirname, '../../src/adapters/s3/index')]: path.resolve(
77
+ __dirname,
78
+ '../../src/adapters/s3/mock.js',
79
+ ),
80
+ [path.resolve(__dirname, '../../src/adapters/gcs/index')]: path.resolve(
81
+ __dirname,
82
+ '../../src/adapters/gcs/mock.js',
83
+ ),
84
+ [path.resolve(__dirname, '../../src/adapters/azure/index')]: path.resolve(
85
+ __dirname,
86
+ '../../src/adapters/azure/mock.js',
87
+ ),
88
+ },
89
+ },
90
+ }
91
+ return newConfig
92
+ },
93
+ },
94
+ typescript: {
95
+ outputFile: path.resolve(__dirname, 'payload-types.ts'),
96
+ },
97
+ plugins: [
98
+ // @ts-expect-error Conflicting types for relative package
99
+ cloudStorage({
100
+ collections: {
101
+ media: {
102
+ adapter,
103
+ },
104
+ },
105
+ }),
106
+ ],
107
+ onInit: async payload => {
108
+ const users = await payload.find({
109
+ collection: 'users',
110
+ limit: 1,
111
+ })
112
+
113
+ if (!users.docs.length) {
114
+ await payload.create({
115
+ collection: 'users',
116
+ data: {
117
+ email: 'dev@payloadcms.com',
118
+ password: 'test',
119
+ },
120
+ })
121
+ }
122
+ },
123
+ })
@@ -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)
Binary file
Binary file
@@ -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
+ }
@@ -50,11 +50,12 @@ var getHandleUpload = function (_a) {
50
50
  return function (_a) {
51
51
  var data = _a.data, file = _a.file;
52
52
  return __awaiter(void 0, void 0, void 0, function () {
53
- var blockBlobClient, fileBufferOrStream;
53
+ var fileKey, blockBlobClient, fileBufferOrStream;
54
54
  return __generator(this, function (_b) {
55
55
  switch (_b.label) {
56
56
  case 0:
57
- blockBlobClient = getStorageClient().getBlockBlobClient(path_1.default.posix.join(prefix, file.filename));
57
+ fileKey = path_1.default.posix.join(data.prefix || prefix, file.filename);
58
+ blockBlobClient = getStorageClient().getBlockBlobClient(fileKey);
58
59
  if (!(!file.tempFilePath && file.buffer.length > 0 && file.buffer.length < multipartThreshold)) return [3 /*break*/, 2];
59
60
  return [4 /*yield*/, blockBlobClient.upload(file.buffer, file.buffer.byteLength, {
60
61
  blobHTTPHeaders: { blobContentType: file.mimeType },
@@ -1 +1 @@
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
+ {"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,OAAO,GAAG,cAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;wBAE/D,eAAe,GAAG,gBAAgB,EAAE,CAAC,kBAAkB,CAC3D,OAAO,CACR,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;AA3BY,QAAA,eAAe,mBA2B3B"}
@@ -1,13 +1 @@
1
- export namespace BlobServiceClient {
2
- function fromConnectionString(): {
3
- getContainerClient: () => {
4
- createIfNotExists: () => null;
5
- };
6
- };
7
- }
8
- export namespace AbortController {
9
- function timeout(): null;
10
- }
11
- export namespace Readable {
12
- function from(): null;
13
- }
1
+ export function azureBlobStorageAdapter(): {};
@@ -1,13 +1,6 @@
1
1
  "use strict";
2
- exports.BlobServiceClient = {
3
- fromConnectionString: function () { return ({
4
- getContainerClient: function () { return ({
5
- createIfNotExists: function () { return null; },
6
- }); },
7
- }); },
8
- };
9
- exports.AbortController = {
10
- timeout: function () { return null; },
11
- };
12
- exports.Readable = { from: function () { return null; } };
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.azureBlobStorageAdapter = void 0;
4
+ var azureBlobStorageAdapter = function () { return ({}); };
5
+ exports.azureBlobStorageAdapter = azureBlobStorageAdapter;
13
6
  //# sourceMappingURL=mock.js.map
@@ -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;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"}
1
+ {"version":3,"file":"mock.js","sourceRoot":"","sources":["../../../src/adapters/azure/mock.js"],"names":[],"mappings":";;;AAAO,IAAM,uBAAuB,GAAG,cAAM,OAAA,CAAC,EAAE,CAAC,EAAJ,CAAI,CAAA;AAApC,QAAA,uBAAuB,2BAAa"}
@@ -18,7 +18,7 @@ exports.extendWebpackConfig = void 0;
18
18
  var path_1 = __importDefault(require("path"));
19
19
  var extendWebpackConfig = function (existingWebpackConfig) {
20
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') }) }) });
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 : {})), { '@payloadcms/plugin-cloud-storage/azure': 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/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"}
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,wCAAwC,EAAE,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,SAGnF,CAAA;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAjBY,QAAA,mBAAmB,uBAiB/B"}
@@ -46,11 +46,12 @@ var getHandleUpload = function (_a) {
46
46
  return function (_a) {
47
47
  var data = _a.data, file = _a.file;
48
48
  return __awaiter(void 0, void 0, void 0, function () {
49
- var gcsFile;
49
+ var fileKey, gcsFile;
50
50
  return __generator(this, function (_b) {
51
51
  switch (_b.label) {
52
52
  case 0:
53
- gcsFile = getStorageClient().bucket(bucket).file(path_1.default.posix.join(prefix, file.filename));
53
+ fileKey = path_1.default.posix.join(data.prefix || prefix, file.filename);
54
+ gcsFile = getStorageClient().bucket(bucket).file(fileKey);
54
55
  return [4 /*yield*/, gcsFile.save(file.buffer, {
55
56
  metadata: {
56
57
  contentType: file.mimeType,
@@ -1 +1 @@
1
- {"version":3,"file":"handleUpload.js","sourceRoot":"","sources":["../../../src/adapters/gcs/handleUpload.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAuB;AAahB,IAAM,eAAe,GAAG,UAAC,EAKzB;QAJL,gBAAgB,sBAAA,EAChB,MAAM,YAAA,EACN,GAAG,SAAA,EACH,cAAW,EAAX,MAAM,mBAAG,EAAE,KAAA;IAEX,OAAO,UAAO,EAAc;YAAZ,IAAI,UAAA,EAAE,IAAI,UAAA;;;;;;wBAClB,OAAO,GAAG,gBAAgB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;wBAC9F,qBAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gCAC9B,QAAQ,EAAE;oCACR,WAAW,EAAE,IAAI,CAAC,QAAQ;iCAC3B;6BACF,CAAC,EAAA;;wBAJF,SAIE,CAAA;6BAEE,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;AApBY,QAAA,eAAe,mBAoB3B"}
1
+ {"version":3,"file":"handleUpload.js","sourceRoot":"","sources":["../../../src/adapters/gcs/handleUpload.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAuB;AAahB,IAAM,eAAe,GAAG,UAAC,EAKzB;QAJL,gBAAgB,sBAAA,EAChB,MAAM,YAAA,EACN,GAAG,SAAA,EACH,cAAW,EAAX,MAAM,mBAAG,EAAE,KAAA;IAEX,OAAO,UAAO,EAAc;YAAZ,IAAI,UAAA,EAAE,IAAI,UAAA;;;;;;wBAClB,OAAO,GAAG,cAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;wBAE/D,OAAO,GAAG,gBAAgB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;wBAC/D,qBAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gCAC9B,QAAQ,EAAE;oCACR,WAAW,EAAE,IAAI,CAAC,QAAQ;iCAC3B;6BACF,CAAC,EAAA;;wBAJF,SAIE,CAAA;6BAEE,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;AAtBY,QAAA,eAAe,mBAsB3B"}
@@ -1,4 +1,4 @@
1
- import { StorageOptions } from '@google-cloud/storage';
1
+ import type { StorageOptions } from '@google-cloud/storage';
2
2
  import type { Adapter } from '../../types';
3
3
  export interface Args {
4
4
  options: StorageOptions;
@@ -15,7 +15,8 @@ var gcsAdapter = function (_a) {
15
15
  var getStorageClient = function () {
16
16
  if (storageClient)
17
17
  return storageClient;
18
- return (storageClient = new storage_1.Storage(options));
18
+ storageClient = new storage_1.Storage(options);
19
+ return storageClient;
19
20
  };
20
21
  return {
21
22
  handleUpload: (0, handleUpload_1.getHandleUpload)({
@@ -1 +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,EAAsB;YAApB,UAAU,gBAAA,EAAE,MAAM,YAAA;QACnB,IAAI,aAAa,GAAmB,IAAI,CAAA;QACxC,IAAM,gBAAgB,GAAG;YACvB,IAAI,aAAa;gBAAE,OAAO,aAAa,CAAA;YACvC,OAAO,CAAC,aAAa,GAAG,IAAI,iBAAO,CAAC,OAAO,CAAC,CAAC,CAAA;QAC/C,CAAC,CAAA;QAED,OAAO;YACL,YAAY,EAAE,IAAA,8BAAe,EAAC;gBAC5B,UAAU,YAAA;gBACV,gBAAgB,kBAAA;gBAChB,MAAM,QAAA;gBACN,GAAG,KAAA;gBACH,MAAM,QAAA;aACP,CAAC;YACF,YAAY,EAAE,IAAA,8BAAe,EAAC,EAAE,gBAAgB,kBAAA,EAAE,MAAM,QAAA,EAAE,CAAC;YAC3D,WAAW,EAAE,IAAA,4BAAc,EAAC,EAAE,gBAAgB,kBAAA,EAAE,MAAM,QAAA,EAAE,CAAC;YACzD,aAAa,EAAE,IAAA,0BAAU,EAAC,EAAE,gBAAgB,kBAAA,EAAE,MAAM,QAAA,EAAE,UAAU,YAAA,EAAE,CAAC;YACnE,OAAO,EAAE,6BAAmB;SAC7B,CAAA;IACH,CAAC;AApBD,CAoBC,CAAA;AAtBU,QAAA,UAAU,cAsBpB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/gcs/index.ts"],"names":[],"mappings":";;;AACA,iDAA+C;AAE/C,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,EAAsB;YAApB,UAAU,gBAAA,EAAE,MAAM,YAAA;QACnB,IAAI,aAAa,GAAmB,IAAI,CAAA;QAExC,IAAM,gBAAgB,GAAG;YACvB,IAAI,aAAa;gBAAE,OAAO,aAAa,CAAA;YACvC,aAAa,GAAG,IAAI,iBAAO,CAAC,OAAO,CAAC,CAAA;YACpC,OAAO,aAAa,CAAA;QACtB,CAAC,CAAA;QAED,OAAO;YACL,YAAY,EAAE,IAAA,8BAAe,EAAC;gBAC5B,UAAU,YAAA;gBACV,gBAAgB,kBAAA;gBAChB,MAAM,QAAA;gBACN,GAAG,KAAA;gBACH,MAAM,QAAA;aACP,CAAC;YACF,YAAY,EAAE,IAAA,8BAAe,EAAC,EAAE,gBAAgB,kBAAA,EAAE,MAAM,QAAA,EAAE,CAAC;YAC3D,WAAW,EAAE,IAAA,4BAAc,EAAC,EAAE,gBAAgB,kBAAA,EAAE,MAAM,QAAA,EAAE,CAAC;YACzD,aAAa,EAAE,IAAA,0BAAU,EAAC,EAAE,gBAAgB,kBAAA,EAAE,MAAM,QAAA,EAAE,UAAU,YAAA,EAAE,CAAC;YACnE,OAAO,EAAE,6BAAmB;SAC7B,CAAA;IACH,CAAC;AAtBD,CAsBC,CAAA;AAxBU,QAAA,UAAU,cAwBpB"}
@@ -1 +1 @@
1
- export function Storage(): null;
1
+ export function gcsAdapter(): {};
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
- exports.Storage = function () {
3
- return null;
4
- };
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.gcsAdapter = void 0;
4
+ var gcsAdapter = function () { return ({}); };
5
+ exports.gcsAdapter = gcsAdapter;
5
6
  //# sourceMappingURL=mock.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"mock.js","sourceRoot":"","sources":["../../../src/adapters/gcs/mock.js"],"names":[],"mappings":";;;AAAO,IAAM,UAAU,GAAG,cAAM,OAAA,CAAC,EAAE,CAAC,EAAJ,CAAI,CAAA;AAAvB,QAAA,UAAU,cAAa"}
@@ -53,7 +53,7 @@ var getHandleUpload = function (_a) {
53
53
  return __generator(this, function (_b) {
54
54
  switch (_b.label) {
55
55
  case 0:
56
- fileKey = path_1.default.posix.join(prefix, file.filename);
56
+ fileKey = path_1.default.posix.join(data.prefix || prefix, file.filename);
57
57
  fileBufferOrStream = file.tempFilePath
58
58
  ? fs_1.default.createReadStream(file.tempFilePath)
59
59
  : file.buffer;
@@ -1 +1 @@
1
- {"version":3,"file":"handleUpload.js","sourceRoot":"","sources":["../../../src/adapters/s3/handleUpload.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAAmB;AACnB,8CAAuB;AAKvB,oDAA6C;AAW7C,IAAM,kBAAkB,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,CAAA,CAAC,OAAO;AAE5C,IAAM,eAAe,GAAG,UAAC,EAKzB;QAJL,gBAAgB,sBAAA,EAChB,MAAM,YAAA,EACN,GAAG,SAAA,EACH,cAAW,EAAX,MAAM,mBAAG,EAAE,KAAA;IAEX,OAAO,UAAO,EAAc;YAAZ,IAAI,UAAA,EAAE,IAAI,UAAA;;;;;;wBAClB,OAAO,GAAG,cAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;wBAEhD,kBAAkB,GAA6B,IAAI,CAAC,YAAY;4BACpE,CAAC,CAAC,YAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC;4BACxC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAA;6BAEX,CAAA,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,kBAAkB,CAAA,EAAjE,wBAAiE;wBACnE,qBAAM,gBAAgB,EAAE,CAAC,SAAS,CAAC;gCACjC,MAAM,EAAE,MAAM;gCACd,GAAG,EAAE,OAAO;gCACZ,IAAI,EAAE,kBAAkB;gCACxB,GAAG,EAAE,GAAG;gCACR,WAAW,EAAE,IAAI,CAAC,QAAQ;6BAC3B,CAAC,EAAA;;wBANF,SAME,CAAA;wBAEF,sBAAO,IAAI,EAAA;;wBAGP,gBAAgB,GAAG,IAAI,oBAAM,CAAC;4BAClC,MAAM,EAAE,gBAAgB,EAAE;4BAC1B,MAAM,EAAE;gCACN,MAAM,EAAE,MAAM;gCACd,GAAG,EAAE,OAAO;gCACZ,IAAI,EAAE,kBAAkB;gCACxB,GAAG,EAAE,GAAG;gCACR,WAAW,EAAE,IAAI,CAAC,QAAQ;6BAC3B;4BACD,SAAS,EAAE,CAAC;4BACZ,QAAQ,EAAE,kBAAkB;yBAC7B,CAAC,CAAA;wBAEF,qBAAM,gBAAgB,CAAC,IAAI,EAAE,EAAA;;wBAA7B,SAA6B,CAAA;wBAE7B,sBAAO,IAAI,EAAA;;;;KACZ,CAAA;AACH,CAAC,CAAA;AA1CY,QAAA,eAAe,mBA0C3B"}
1
+ {"version":3,"file":"handleUpload.js","sourceRoot":"","sources":["../../../src/adapters/s3/handleUpload.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAAmB;AACnB,8CAAuB;AAKvB,oDAA6C;AAW7C,IAAM,kBAAkB,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,CAAA,CAAC,OAAO;AAE5C,IAAM,eAAe,GAAG,UAAC,EAKzB;QAJL,gBAAgB,sBAAA,EAChB,MAAM,YAAA,EACN,GAAG,SAAA,EACH,cAAW,EAAX,MAAM,mBAAG,EAAE,KAAA;IAEX,OAAO,UAAO,EAAc;YAAZ,IAAI,UAAA,EAAE,IAAI,UAAA;;;;;;wBAClB,OAAO,GAAG,cAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;wBAE/D,kBAAkB,GAA6B,IAAI,CAAC,YAAY;4BACpE,CAAC,CAAC,YAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC;4BACxC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAA;6BAEX,CAAA,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,kBAAkB,CAAA,EAAjE,wBAAiE;wBACnE,qBAAM,gBAAgB,EAAE,CAAC,SAAS,CAAC;gCACjC,MAAM,EAAE,MAAM;gCACd,GAAG,EAAE,OAAO;gCACZ,IAAI,EAAE,kBAAkB;gCACxB,GAAG,EAAE,GAAG;gCACR,WAAW,EAAE,IAAI,CAAC,QAAQ;6BAC3B,CAAC,EAAA;;wBANF,SAME,CAAA;wBAEF,sBAAO,IAAI,EAAA;;wBAGP,gBAAgB,GAAG,IAAI,oBAAM,CAAC;4BAClC,MAAM,EAAE,gBAAgB,EAAE;4BAC1B,MAAM,EAAE;gCACN,MAAM,EAAE,MAAM;gCACd,GAAG,EAAE,OAAO;gCACZ,IAAI,EAAE,kBAAkB;gCACxB,GAAG,EAAE,GAAG;gCACR,WAAW,EAAE,IAAI,CAAC,QAAQ;6BAC3B;4BACD,SAAS,EAAE,CAAC;4BACZ,QAAQ,EAAE,kBAAkB;yBAC7B,CAAC,CAAA;wBAEF,qBAAM,gBAAgB,CAAC,IAAI,EAAE,EAAA;;wBAA7B,SAA6B,CAAA;wBAE7B,sBAAO,IAAI,EAAA;;;;KACZ,CAAA;AACH,CAAC,CAAA;AA1CY,QAAA,eAAe,mBA0C3B"}
@@ -1,8 +1 @@
1
- export function S3(): null;
2
- export function Upload(): null;
3
- export function HeadObjectCommand(): null;
4
- export function PutObjectCommand(): null;
5
- export function UploadPartCommand(): null;
6
- export function CreateMultipartUploadCommand(): null;
7
- export function CompleteMultipartUploadCommand(): null;
8
- export function PutObjectTaggingCommand(): null;
1
+ export function s3Adapter(): {};
@@ -1,10 +1,6 @@
1
1
  "use strict";
2
- exports.S3 = function () { return null; };
3
- exports.Upload = function () { return null; };
4
- exports.HeadObjectCommand = function () { return null; };
5
- exports.PutObjectCommand = function () { return null; };
6
- exports.UploadPartCommand = function () { return null; };
7
- exports.CreateMultipartUploadCommand = function () { return null; };
8
- exports.CompleteMultipartUploadCommand = function () { return null; };
9
- exports.PutObjectTaggingCommand = function () { return null; };
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.s3Adapter = void 0;
4
+ var s3Adapter = function () { return ({}); };
5
+ exports.s3Adapter = s3Adapter;
10
6
  //# sourceMappingURL=mock.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mock.js","sourceRoot":"","sources":["../../../src/adapters/s3/mock.js"],"names":[],"mappings":";AAAA,OAAO,CAAC,EAAE,GAAG,cAAM,OAAA,IAAI,EAAJ,CAAI,CAAA;AACvB,OAAO,CAAC,MAAM,GAAG,cAAM,OAAA,IAAI,EAAJ,CAAI,CAAA;AAE3B,OAAO,CAAC,iBAAiB,GAAG,cAAM,OAAA,IAAI,EAAJ,CAAI,CAAA;AACtC,OAAO,CAAC,gBAAgB,GAAG,cAAM,OAAA,IAAI,EAAJ,CAAI,CAAA;AACrC,OAAO,CAAC,iBAAiB,GAAG,cAAM,OAAA,IAAI,EAAJ,CAAI,CAAA;AACtC,OAAO,CAAC,4BAA4B,GAAG,cAAM,OAAA,IAAI,EAAJ,CAAI,CAAA;AACjD,OAAO,CAAC,8BAA8B,GAAG,cAAM,OAAA,IAAI,EAAJ,CAAI,CAAA;AACnD,OAAO,CAAC,uBAAuB,GAAG,cAAM,OAAA,IAAI,EAAJ,CAAI,CAAA"}
1
+ {"version":3,"file":"mock.js","sourceRoot":"","sources":["../../../src/adapters/s3/mock.js"],"names":[],"mappings":";;;AAAO,IAAM,SAAS,GAAG,cAAM,OAAA,CAAC,EAAE,CAAC,EAAJ,CAAI,CAAA;AAAtB,QAAA,SAAS,aAAa"}
@@ -18,7 +18,7 @@ exports.extendWebpackConfig = void 0;
18
18
  var path_1 = __importDefault(require("path"));
19
19
  var extendWebpackConfig = function (existingWebpackConfig) {
20
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, './fsMock.js') }) }) });
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 : {})), { '@payloadcms/plugin-cloud-storage/s3': 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/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,aAAa,CAAC,SAG/C,CAAA;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAnBY,QAAA,mBAAmB,uBAmB/B"}
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,qCAAqC,EAAE,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,SAGhF,CAAA;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAjBY,QAAA,mBAAmB,uBAiB/B"}
@@ -0,0 +1,7 @@
1
+ import type { CollectionConfig, Field } from 'payload/types';
2
+ interface Args {
3
+ collection: CollectionConfig;
4
+ prefix?: string;
5
+ }
6
+ export declare const getFields: ({ collection, prefix }: Args) => Field[];
7
+ export {};
@@ -0,0 +1,102 @@
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 __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
14
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
15
+ if (ar || !(i in from)) {
16
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
17
+ ar[i] = from[i];
18
+ }
19
+ }
20
+ return to.concat(ar || Array.prototype.slice.call(from));
21
+ };
22
+ var __importDefault = (this && this.__importDefault) || function (mod) {
23
+ return (mod && mod.__esModule) ? mod : { "default": mod };
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.getFields = void 0;
27
+ var path_1 = __importDefault(require("path"));
28
+ var getFields = function (_a) {
29
+ var collection = _a.collection, prefix = _a.prefix;
30
+ var baseURLField = {
31
+ name: 'url',
32
+ label: 'URL',
33
+ type: 'text',
34
+ admin: {
35
+ readOnly: true,
36
+ hidden: true,
37
+ },
38
+ };
39
+ var basePrefixField = {
40
+ name: 'prefix',
41
+ type: 'text',
42
+ admin: {
43
+ readOnly: true,
44
+ hidden: true,
45
+ },
46
+ };
47
+ var fields = __spreadArray([], collection.fields, true);
48
+ // Inject a hook into all URL fields to generate URLs
49
+ var existingURLFieldIndex = -1;
50
+ var existingURLField = fields.find(function (existingField, i) {
51
+ if ('name' in existingField && existingField.name === 'url') {
52
+ existingURLFieldIndex = i;
53
+ return true;
54
+ }
55
+ return false;
56
+ });
57
+ if (existingURLFieldIndex > -1) {
58
+ fields.splice(existingURLFieldIndex, 1);
59
+ }
60
+ fields.push(__assign(__assign({}, baseURLField), (existingURLField || {})));
61
+ if (typeof collection.upload === 'object' && collection.upload.imageSizes) {
62
+ var existingSizesFieldIndex_1 = -1;
63
+ var existingSizesField_1 = fields.find(function (existingField, i) {
64
+ if ('name' in existingField && existingField.name === 'sizes') {
65
+ existingSizesFieldIndex_1 = i;
66
+ return true;
67
+ }
68
+ return false;
69
+ });
70
+ if (existingSizesFieldIndex_1 > -1) {
71
+ fields.splice(existingSizesFieldIndex_1, 1);
72
+ }
73
+ var sizesField = __assign(__assign({}, (existingSizesField_1 || {})), { name: 'sizes', type: 'group', admin: {
74
+ hidden: true,
75
+ }, fields: collection.upload.imageSizes.map(function (size) {
76
+ var existingSizeField = existingSizesField_1 === null || existingSizesField_1 === void 0 ? void 0 : existingSizesField_1.fields.find(function (existingField) { return 'name' in existingField && existingField.name === size.name; });
77
+ var existingSizeURLField = existingSizeField === null || existingSizeField === void 0 ? void 0 : existingSizeField.fields.find(function (existingField) { return 'name' in existingField && existingField.name === 'url'; });
78
+ return __assign(__assign({}, existingSizeField), { name: size.name, type: 'group', fields: [
79
+ __assign(__assign({}, (existingSizeURLField || {})), baseURLField),
80
+ ] });
81
+ }) });
82
+ fields.push(sizesField);
83
+ }
84
+ // If prefix is enabled, save it to db
85
+ if (typeof prefix !== 'undefined') {
86
+ var existingPrefixFieldIndex_1 = -1;
87
+ var existingPrefixField = fields.find(function (existingField, i) {
88
+ if ('name' in existingField && existingField.name === 'prefix') {
89
+ existingPrefixFieldIndex_1 = i;
90
+ return true;
91
+ }
92
+ return false;
93
+ });
94
+ if (existingPrefixFieldIndex_1 > -1) {
95
+ fields.splice(existingPrefixFieldIndex_1, 1);
96
+ }
97
+ fields.push(__assign(__assign(__assign({}, basePrefixField), (existingPrefixField || {})), { defaultValue: path_1.default.posix.join(prefix) }));
98
+ }
99
+ return fields;
100
+ };
101
+ exports.getFields = getFields;
102
+ //# sourceMappingURL=getFields.js.map