@payloadcms/plugin-cloud-storage 1.0.13 → 1.0.15

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 (210) hide show
  1. package/.editorconfig +10 -0
  2. package/.eslintrc.js +14 -14
  3. package/.gitignore +248 -0
  4. package/.idea/.gitignore +5 -0
  5. package/.idea/httpRequests/2023-04-07T152957.206.png +0 -0
  6. package/.idea/httpRequests/2023-04-07T153025.403.html +10 -0
  7. package/.idea/httpRequests/2023-04-07T153146.200.png +0 -0
  8. package/.idea/httpRequests/http-client.cookies +1 -0
  9. package/.idea/httpRequests/http-requests-log.http +74 -0
  10. package/.idea/inspectionProfiles/Project_Default.xml +6 -0
  11. package/.idea/jsLinters/eslint.xml +6 -0
  12. package/.idea/modules.xml +8 -0
  13. package/.idea/plugin-cloud-storage.iml +12 -0
  14. package/.idea/vcs.xml +6 -0
  15. package/.idea/workspace.xml +269 -0
  16. package/.prettierignore +1 -0
  17. package/.prettierrc.js +8 -0
  18. package/.vscode/launch.json +28 -0
  19. package/.vscode/settings.json +9 -0
  20. package/LICENSE.md +22 -22
  21. package/README.md +178 -174
  22. package/azure.d.ts +1 -1
  23. package/azure.js +1 -1
  24. package/dev/.env +25 -0
  25. package/dev/.env.example +21 -0
  26. package/dev/build/127.d2c2ffcfff69fabfdd1b.js +1 -0
  27. package/dev/build/16.17dbe03b1d0a96f3e564.js +2 -0
  28. package/dev/build/16.17dbe03b1d0a96f3e564.js.LICENSE.txt +8 -0
  29. package/dev/build/171.bbcbae3ea90468ad0cad.js +2 -0
  30. package/dev/build/171.bbcbae3ea90468ad0cad.js.LICENSE.txt +8 -0
  31. package/dev/build/18.e50c27edff6716f930d9.js +1 -0
  32. package/dev/build/205.33c7a29683ba98de93e0.js +1 -0
  33. package/dev/build/2211c49456cd07331ea9.woff +0 -0
  34. package/dev/build/234.79395f82c18207c13766.js +1 -0
  35. package/dev/build/266.9d4a240b3e0985bd7dd5.js +1 -0
  36. package/dev/build/296.4c5d646257b42c915834.js +1 -0
  37. package/dev/build/304.40dbe690de322c8f7c0d.js +2 -0
  38. package/dev/build/304.40dbe690de322c8f7c0d.js.LICENSE.txt +37 -0
  39. package/dev/build/349.446c12bffd3905085fdb.js +1 -0
  40. package/dev/build/354.5acd04b85b96a9839125.js +1 -0
  41. package/dev/build/40ad7515b8674bb854a1.woff2 +0 -0
  42. package/dev/build/422.086542466cdc9f6a2437.js +2 -0
  43. package/dev/build/422.086542466cdc9f6a2437.js.LICENSE.txt +6 -0
  44. package/dev/build/491.0bfe1bb0ecfe383179aa.js +1 -0
  45. package/dev/build/4d8845b830f4e8e2affb.png +0 -0
  46. package/dev/build/51922ceb71da289688d3.woff2 +0 -0
  47. package/dev/build/522443364fda49e9e0ed.woff2 +0 -0
  48. package/dev/build/531.1c6f53f3b44a3c45b444.js +2 -0
  49. package/dev/build/531.1c6f53f3b44a3c45b444.js.LICENSE.txt +6 -0
  50. package/dev/build/570.f2d9b99706765fbf0225.js +1 -0
  51. package/dev/build/599.570a04990d5806004f61.js +1 -0
  52. package/dev/build/5b718d9772de251a8c0a.woff2 +0 -0
  53. package/dev/build/778.41ae26bcd617861ad586.js +1 -0
  54. package/dev/build/783.0117995f2ff6036d6746.js +1 -0
  55. package/dev/build/787999a6af6a17efbc7c.woff +0 -0
  56. package/dev/build/78b8935fb481e11c92ce.woff +0 -0
  57. package/dev/build/860.7688681d3269f3f16e9a.js +1 -0
  58. package/dev/build/892.1a4ca5ac67d81038ceec.js +1 -0
  59. package/dev/build/896.d8cb1160388dc29d6364.js +1 -0
  60. package/dev/build/8b4ddd0d08500553efde.woff +0 -0
  61. package/dev/build/8f612153248094525d9d.woff +0 -0
  62. package/dev/build/995.cc11e738ff81a85821b4.js +1 -0
  63. package/dev/build/9c7dfd0036f7bd24b053.woff2 +0 -0
  64. package/dev/build/a1cfdc5b5250b7c4b481.woff2 +0 -0
  65. package/dev/build/d7aeda9e48ce098e7b48.woff +0 -0
  66. package/dev/build/e009f21405b4d7e89367.woff2 +0 -0
  67. package/dev/build/e7caa9e17af6ac87d182.woff +0 -0
  68. package/dev/build/ebcc1430049fddb274f8.svg +15 -0
  69. package/dev/build/efe8f6a3b46446cc9135.woff +0 -0
  70. package/dev/build/f53bb8d4b29adc903703.woff2 +0 -0
  71. package/dev/build/index.html +1 -0
  72. package/dev/build/main.a2003d502fbb9aaa3e8d.js +2 -0
  73. package/dev/build/main.a2003d502fbb9aaa3e8d.js.LICENSE.txt +57 -0
  74. package/dev/build/styles.css +1 -0
  75. package/dev/build/styles.fa29d16b0baf5b98a1cf.js +1 -0
  76. package/dev/nodemon.json +8 -0
  77. package/dev/package.json +32 -0
  78. package/dev/src/collections/Media.ts +56 -0
  79. package/dev/src/collections/Users.ts +23 -0
  80. package/dev/src/mocks/fsMock.js +1 -0
  81. package/dev/src/mocks/promisifyMock.js +1 -0
  82. package/dev/src/payload.config.ts +111 -0
  83. package/dev/src/server.ts +26 -0
  84. package/dev/tsconfig.json +20 -0
  85. package/dist/adapters/azure/fileStub.d.ts +2 -0
  86. package/dist/adapters/azure/fileStub.js +4 -0
  87. package/dist/adapters/azure/fileStub.js.map +1 -0
  88. package/dist/adapters/azure/generateURL.d.ts +7 -7
  89. package/dist/adapters/azure/generateURL.js +15 -15
  90. package/dist/adapters/azure/handleDelete.d.ts +9 -9
  91. package/dist/adapters/azure/handleDelete.js +63 -63
  92. package/dist/adapters/azure/handleUpload.d.ts +10 -10
  93. package/dist/adapters/azure/handleUpload.js +80 -65
  94. package/dist/adapters/azure/handleUpload.js.map +1 -1
  95. package/dist/adapters/azure/index.d.ts +8 -8
  96. package/dist/adapters/azure/index.js +42 -42
  97. package/dist/adapters/azure/mock.d.ts +13 -7
  98. package/dist/adapters/azure/mock.js +12 -8
  99. package/dist/adapters/azure/mock.js.map +1 -1
  100. package/dist/adapters/azure/staticHandler.d.ts +9 -9
  101. package/dist/adapters/azure/staticHandler.js +81 -77
  102. package/dist/adapters/azure/staticHandler.js.map +1 -1
  103. package/dist/adapters/azure/webpack.d.ts +2 -2
  104. package/dist/adapters/azure/webpack.js +24 -24
  105. package/dist/adapters/azure/webpack.js.map +1 -1
  106. package/dist/adapters/gcs/generateURL.d.ts +8 -8
  107. package/dist/adapters/gcs/generateURL.js +15 -15
  108. package/dist/adapters/gcs/handleDelete.d.ts +8 -8
  109. package/dist/adapters/gcs/handleDelete.js +62 -62
  110. package/dist/adapters/gcs/handleUpload.d.ts +12 -12
  111. package/dist/adapters/gcs/handleUpload.js +72 -72
  112. package/dist/adapters/gcs/index.d.ts +8 -8
  113. package/dist/adapters/gcs/index.js +35 -35
  114. package/dist/adapters/gcs/mock.d.ts +1 -1
  115. package/dist/adapters/gcs/mock.js +4 -4
  116. package/dist/adapters/gcs/staticHandler.d.ts +10 -10
  117. package/dist/adapters/gcs/staticHandler.js +76 -76
  118. package/dist/adapters/gcs/webpack.d.ts +2 -2
  119. package/dist/adapters/gcs/webpack.js +24 -24
  120. package/dist/adapters/s3/fileStub.d.ts +2 -0
  121. package/dist/adapters/s3/fileStub.js +4 -0
  122. package/dist/adapters/s3/fileStub.js.map +1 -0
  123. package/dist/adapters/s3/generateURL.d.ts +8 -8
  124. package/dist/adapters/s3/generateURL.js +15 -15
  125. package/dist/adapters/s3/handleDelete.d.ts +8 -8
  126. package/dist/adapters/s3/handleDelete.js +63 -63
  127. package/dist/adapters/s3/handleUpload.d.ts +12 -12
  128. package/dist/adapters/s3/handleUpload.js +93 -93
  129. package/dist/adapters/s3/index.d.ts +8 -8
  130. package/dist/adapters/s3/index.js +59 -59
  131. package/dist/adapters/s3/mock.d.ts +8 -8
  132. package/dist/adapters/s3/mock.js +9 -9
  133. package/dist/adapters/s3/staticHandler.d.ts +10 -10
  134. package/dist/adapters/s3/staticHandler.js +80 -80
  135. package/dist/adapters/s3/webpack.d.ts +2 -2
  136. package/dist/adapters/s3/webpack.js +24 -24
  137. package/dist/adapters/s3/webpack.js.map +1 -1
  138. package/dist/fields/getFields.d.ts +11 -11
  139. package/dist/fields/getFields.js +118 -118
  140. package/dist/hooks/afterDelete.d.ts +10 -10
  141. package/dist/hooks/afterDelete.js +88 -88
  142. package/dist/hooks/afterRead.d.ts +12 -12
  143. package/dist/hooks/afterRead.js +79 -79
  144. package/dist/hooks/beforeChange.d.ts +10 -10
  145. package/dist/hooks/beforeChange.js +77 -77
  146. package/dist/index.d.ts +1 -1
  147. package/dist/index.js +5 -5
  148. package/dist/plugin.d.ts +3 -3
  149. package/dist/plugin.js +124 -124
  150. package/dist/types.d.ts +62 -62
  151. package/dist/types.js +2 -2
  152. package/dist/utilities/getFilePrefix.d.ts +5 -5
  153. package/dist/utilities/getFilePrefix.js +80 -80
  154. package/dist/utilities/getIncomingFiles.d.ts +7 -7
  155. package/dist/utilities/getIncomingFiles.js +37 -37
  156. package/dist/utilities/getRangeFromHeader.d.ts +6 -0
  157. package/dist/utilities/getRangeFromHeader.js +67 -0
  158. package/dist/utilities/getRangeFromHeader.js.map +1 -0
  159. package/dist/webpack.d.ts +9 -9
  160. package/dist/webpack.js +39 -39
  161. package/docs/local-dev.md +47 -0
  162. package/eslint-config/index.js +15 -0
  163. package/eslint-config/rules/import.js +38 -0
  164. package/eslint-config/rules/prettier.js +7 -0
  165. package/eslint-config/rules/style.js +21 -0
  166. package/eslint-config/rules/typescript.js +628 -0
  167. package/gcs.d.ts +1 -1
  168. package/gcs.js +1 -1
  169. package/package.json +67 -64
  170. package/s3.d.ts +1 -1
  171. package/s3.js +1 -1
  172. package/src/adapters/azure/emulator/docker-compose.yml +16 -0
  173. package/src/adapters/azure/fileStub.js +1 -0
  174. package/src/adapters/azure/generateURL.ts +13 -0
  175. package/src/adapters/azure/handleDelete.ts +16 -0
  176. package/src/adapters/azure/handleUpload.ts +41 -0
  177. package/src/adapters/azure/index.ts +47 -0
  178. package/src/adapters/azure/mock.js +13 -0
  179. package/src/adapters/azure/staticHandler.ts +38 -0
  180. package/src/adapters/azure/webpack.ts +20 -0
  181. package/src/adapters/gcs/emulator/docker-compose.yml +15 -0
  182. package/src/adapters/gcs/generateURL.ts +16 -0
  183. package/src/adapters/gcs/handleDelete.ts +16 -0
  184. package/src/adapters/gcs/handleUpload.ts +34 -0
  185. package/src/adapters/gcs/index.ts +37 -0
  186. package/src/adapters/gcs/mock.js +3 -0
  187. package/src/adapters/gcs/staticHandler.ts +34 -0
  188. package/src/adapters/gcs/webpack.ts +17 -0
  189. package/src/adapters/s3/emulator/docker-compose.yml +15 -0
  190. package/src/adapters/s3/fileStub.js +1 -0
  191. package/src/adapters/s3/generateURL.ts +14 -0
  192. package/src/adapters/s3/handleDelete.ts +17 -0
  193. package/src/adapters/s3/handleUpload.ts +62 -0
  194. package/src/adapters/s3/index.ts +38 -0
  195. package/src/adapters/s3/mock.js +9 -0
  196. package/src/adapters/s3/staticHandler.ts +40 -0
  197. package/src/adapters/s3/webpack.ts +19 -0
  198. package/src/fields/getFields.ts +155 -0
  199. package/src/hooks/afterDelete.ts +35 -0
  200. package/src/hooks/afterRead.ts +38 -0
  201. package/src/hooks/beforeChange.ts +30 -0
  202. package/src/index.ts +1 -0
  203. package/src/plugin.ts +94 -0
  204. package/src/types.ts +73 -0
  205. package/src/utilities/getFilePrefix.ts +26 -0
  206. package/src/utilities/getIncomingFiles.ts +44 -0
  207. package/src/utilities/getRangeFromHeader.ts +27 -0
  208. package/src/webpack.ts +46 -0
  209. package/tsconfig.json +23 -0
  210. package/yarn.lock +8155 -0
@@ -0,0 +1,111 @@
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
+ '@azure/storage-blob': path.resolve(__dirname, '../../src/adapters/azure/mock.js'),
73
+ '@aws-sdk/client-s3': path.resolve(__dirname, '../../src/adapters/s3/mock.js'),
74
+ '@google-cloud/storage': path.resolve(__dirname, '../../src/adapters/gcs/mock.js'),
75
+ fs: path.resolve(__dirname, './mocks/fsMock.js'),
76
+ },
77
+ },
78
+ }
79
+ return newConfig
80
+ },
81
+ },
82
+ typescript: {
83
+ outputFile: path.resolve(__dirname, 'payload-types.ts'),
84
+ },
85
+ plugins: [
86
+ // @ts-expect-error
87
+ cloudStorage({
88
+ collections: {
89
+ media: {
90
+ adapter,
91
+ },
92
+ },
93
+ }),
94
+ ],
95
+ onInit: async payload => {
96
+ const users = await payload.find({
97
+ collection: 'users',
98
+ limit: 1,
99
+ })
100
+
101
+ if (!users.docs.length) {
102
+ await payload.create({
103
+ collection: 'users',
104
+ data: {
105
+ email: 'dev@payloadcms.com',
106
+ password: 'test',
107
+ },
108
+ })
109
+ }
110
+ },
111
+ })
@@ -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,2 @@
1
+ declare const _default: "file-stub";
2
+ export default _default;
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = 'file-stub';
4
+ //# sourceMappingURL=fileStub.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileStub.js","sourceRoot":"","sources":["../../../src/adapters/azure/fileStub.js"],"names":[],"mappings":";;AAAA,kBAAe,WAAW,CAAA"}
@@ -1,7 +1,7 @@
1
- import type { GenerateURL } from '../../types';
2
- interface Args {
3
- containerName: string;
4
- baseURL: string;
5
- }
6
- export declare const getGenerateURL: ({ containerName, baseURL }: Args) => GenerateURL;
7
- export {};
1
+ import type { GenerateURL } from '../../types';
2
+ interface Args {
3
+ containerName: string;
4
+ baseURL: string;
5
+ }
6
+ export declare const getGenerateURL: ({ containerName, baseURL }: Args) => GenerateURL;
7
+ export {};
@@ -1,16 +1,16 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getGenerateURL = void 0;
7
- var path_1 = __importDefault(require("path"));
8
- var getGenerateURL = function (_a) {
9
- var containerName = _a.containerName, baseURL = _a.baseURL;
10
- return function (_a) {
11
- var filename = _a.filename, _b = _a.prefix, prefix = _b === void 0 ? '' : _b;
12
- return "".concat(baseURL, "/").concat(containerName, "/").concat(path_1.default.posix.join(prefix, filename));
13
- };
14
- };
15
- exports.getGenerateURL = getGenerateURL;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getGenerateURL = void 0;
7
+ var path_1 = __importDefault(require("path"));
8
+ var getGenerateURL = function (_a) {
9
+ var containerName = _a.containerName, baseURL = _a.baseURL;
10
+ return function (_a) {
11
+ var filename = _a.filename, _b = _a.prefix, prefix = _b === void 0 ? '' : _b;
12
+ return "".concat(baseURL, "/").concat(containerName, "/").concat(path_1.default.posix.join(prefix, filename));
13
+ };
14
+ };
15
+ exports.getGenerateURL = getGenerateURL;
16
16
  //# sourceMappingURL=generateURL.js.map
@@ -1,9 +1,9 @@
1
- import type { CollectionConfig } from 'payload/types';
2
- import type { ContainerClient } from '@azure/storage-blob';
3
- import type { HandleDelete } from '../../types';
4
- interface Args {
5
- collection: CollectionConfig;
6
- getStorageClient: () => ContainerClient;
7
- }
8
- export declare const getHandleDelete: ({ getStorageClient }: Args) => HandleDelete;
9
- export {};
1
+ import type { CollectionConfig } from 'payload/types';
2
+ import type { ContainerClient } from '@azure/storage-blob';
3
+ import type { HandleDelete } from '../../types';
4
+ interface Args {
5
+ collection: CollectionConfig;
6
+ getStorageClient: () => ContainerClient;
7
+ }
8
+ export declare const getHandleDelete: ({ getStorageClient }: Args) => HandleDelete;
9
+ export {};
@@ -1,64 +1,64 @@
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
- exports.getHandleDelete = void 0;
43
- var path_1 = __importDefault(require("path"));
44
- var getHandleDelete = function (_a) {
45
- var getStorageClient = _a.getStorageClient;
46
- return function (_a) {
47
- var filename = _a.filename, _b = _a.doc.prefix, prefix = _b === void 0 ? '' : _b;
48
- return __awaiter(void 0, void 0, void 0, function () {
49
- var blockBlobClient;
50
- return __generator(this, function (_c) {
51
- switch (_c.label) {
52
- case 0:
53
- blockBlobClient = getStorageClient().getBlockBlobClient(path_1.default.posix.join(prefix, filename));
54
- return [4 /*yield*/, blockBlobClient.deleteIfExists()];
55
- case 1:
56
- _c.sent();
57
- return [2 /*return*/];
58
- }
59
- });
60
- });
61
- };
62
- };
63
- exports.getHandleDelete = getHandleDelete;
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
+ exports.getHandleDelete = void 0;
43
+ var path_1 = __importDefault(require("path"));
44
+ var getHandleDelete = function (_a) {
45
+ var getStorageClient = _a.getStorageClient;
46
+ return function (_a) {
47
+ var filename = _a.filename, _b = _a.doc.prefix, prefix = _b === void 0 ? '' : _b;
48
+ return __awaiter(void 0, void 0, void 0, function () {
49
+ var blockBlobClient;
50
+ return __generator(this, function (_c) {
51
+ switch (_c.label) {
52
+ case 0:
53
+ blockBlobClient = getStorageClient().getBlockBlobClient(path_1.default.posix.join(prefix, filename));
54
+ return [4 /*yield*/, blockBlobClient.deleteIfExists()];
55
+ case 1:
56
+ _c.sent();
57
+ return [2 /*return*/];
58
+ }
59
+ });
60
+ });
61
+ };
62
+ };
63
+ exports.getHandleDelete = getHandleDelete;
64
64
  //# sourceMappingURL=handleDelete.js.map
@@ -1,10 +1,10 @@
1
- import type { ContainerClient } from '@azure/storage-blob';
2
- import type { CollectionConfig } from 'payload/types';
3
- import type { HandleUpload } from '../../types';
4
- interface Args {
5
- collection: CollectionConfig;
6
- getStorageClient: () => ContainerClient;
7
- prefix?: string;
8
- }
9
- export declare const getHandleUpload: ({ getStorageClient, prefix }: Args) => HandleUpload;
10
- export {};
1
+ import type { ContainerClient } from '@azure/storage-blob';
2
+ import type { CollectionConfig } from 'payload/types';
3
+ import type { HandleUpload } from '../../types';
4
+ interface Args {
5
+ collection: CollectionConfig;
6
+ getStorageClient: () => ContainerClient;
7
+ prefix?: string;
8
+ }
9
+ export declare const getHandleUpload: ({ getStorageClient, prefix }: Args) => HandleUpload;
10
+ export {};
@@ -1,66 +1,81 @@
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
- exports.getHandleUpload = void 0;
43
- var path_1 = __importDefault(require("path"));
44
- var getHandleUpload = function (_a) {
45
- var getStorageClient = _a.getStorageClient, _b = _a.prefix, prefix = _b === void 0 ? '' : _b;
46
- return function (_a) {
47
- var data = _a.data, file = _a.file;
48
- return __awaiter(void 0, void 0, void 0, function () {
49
- var blockBlobClient;
50
- return __generator(this, function (_b) {
51
- switch (_b.label) {
52
- case 0:
53
- blockBlobClient = getStorageClient().getBlockBlobClient(path_1.default.posix.join(prefix, file.filename));
54
- return [4 /*yield*/, blockBlobClient.upload(file.buffer, file.buffer.byteLength, {
55
- blobHTTPHeaders: { blobContentType: file.mimeType },
56
- })];
57
- case 1:
58
- _b.sent();
59
- return [2 /*return*/, data];
60
- }
61
- });
62
- });
63
- };
64
- };
65
- exports.getHandleUpload = getHandleUpload;
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
+ exports.getHandleUpload = void 0;
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
48
+ var getHandleUpload = function (_a) {
49
+ var getStorageClient = _a.getStorageClient, _b = _a.prefix, prefix = _b === void 0 ? '' : _b;
50
+ return function (_a) {
51
+ var data = _a.data, file = _a.file;
52
+ return __awaiter(void 0, void 0, void 0, function () {
53
+ var blockBlobClient, fileBufferOrStream;
54
+ return __generator(this, function (_b) {
55
+ switch (_b.label) {
56
+ case 0:
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];
59
+ return [4 /*yield*/, blockBlobClient.upload(file.buffer, file.buffer.byteLength, {
60
+ blobHTTPHeaders: { blobContentType: file.mimeType },
61
+ })];
62
+ case 1:
63
+ _b.sent();
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];
75
+ }
76
+ });
77
+ });
78
+ };
79
+ };
80
+ exports.getHandleUpload = getHandleUpload;
66
81
  //# sourceMappingURL=handleUpload.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handleUpload.js","sourceRoot":"","sources":["../../../src/adapters/azure/handleUpload.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAuB;AAWhB,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;wBAED,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;;;;KACZ,CAAA;AACH,CAAC,CAAA;AAZY,QAAA,eAAe,mBAY3B"}
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,8 +1,8 @@
1
- import type { Adapter } from '../../types';
2
- export interface Args {
3
- connectionString: string;
4
- containerName: string;
5
- baseURL: string;
6
- allowContainerCreate: boolean;
7
- }
8
- export declare const azureBlobStorageAdapter: ({ connectionString, allowContainerCreate, containerName, baseURL, }: Args) => Adapter;
1
+ import type { Adapter } from '../../types';
2
+ export interface Args {
3
+ connectionString: string;
4
+ containerName: string;
5
+ baseURL: string;
6
+ allowContainerCreate: boolean;
7
+ }
8
+ export declare const azureBlobStorageAdapter: ({ connectionString, allowContainerCreate, containerName, baseURL, }: Args) => Adapter;