@muhgholy/next-drive 4.23.29 → 4.23.31

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 (44) hide show
  1. package/dist/{chunk-DNJRZKAF.js → chunk-7XC5FDGZ.js} +13 -4
  2. package/dist/chunk-7XC5FDGZ.js.map +1 -0
  3. package/dist/{chunk-LTWWPQJA.cjs → chunk-FMJVTKXT.cjs} +13 -3
  4. package/dist/chunk-FMJVTKXT.cjs.map +1 -0
  5. package/dist/{chunk-J2OYAYYA.js → chunk-JEWYPKCM.js} +3 -3
  6. package/dist/{chunk-J2OYAYYA.js.map → chunk-JEWYPKCM.js.map} +1 -1
  7. package/dist/{chunk-QE5EHVVA.cjs → chunk-LN7U7XD7.cjs} +37 -37
  8. package/dist/{chunk-QE5EHVVA.cjs.map → chunk-LN7U7XD7.cjs.map} +1 -1
  9. package/dist/client/components/drive/dropzone.d.ts +8 -0
  10. package/dist/client/components/drive/dropzone.d.ts.map +1 -0
  11. package/dist/client/components/drive/explorer.d.ts.map +1 -1
  12. package/dist/client/components/drive/upload.d.ts +3 -2
  13. package/dist/client/components/drive/upload.d.ts.map +1 -1
  14. package/dist/client/file-chooser.d.ts.map +1 -1
  15. package/dist/client/hooks/use-upload.d.ts +4 -0
  16. package/dist/client/hooks/use-upload.d.ts.map +1 -1
  17. package/dist/client/index.cjs +173 -37
  18. package/dist/client/index.cjs.map +1 -1
  19. package/dist/client/index.css +1 -1
  20. package/dist/client/index.d.ts +2 -1
  21. package/dist/client/index.d.ts.map +1 -1
  22. package/dist/client/index.js +176 -41
  23. package/dist/client/index.js.map +1 -1
  24. package/dist/server/express.cjs +12 -12
  25. package/dist/server/express.js +4 -4
  26. package/dist/server/hono.cjs +12 -12
  27. package/dist/server/hono.js +4 -4
  28. package/dist/server/index.cjs +19 -19
  29. package/dist/server/index.js +2 -2
  30. package/dist/server/tus.d.ts +5 -1
  31. package/dist/server/tus.d.ts.map +1 -1
  32. package/dist/tus-HCMP4OW7.js +3 -0
  33. package/dist/tus-HCMP4OW7.js.map +1 -0
  34. package/dist/tus-W4GOGQBV.cjs +20 -0
  35. package/dist/tus-W4GOGQBV.cjs.map +1 -0
  36. package/dist/types/client/index.d.ts +3 -0
  37. package/dist/types/client/index.d.ts.map +1 -1
  38. package/package.json +1 -1
  39. package/dist/chunk-DNJRZKAF.js.map +0 -1
  40. package/dist/chunk-LTWWPQJA.cjs.map +0 -1
  41. package/dist/tus-35IUZMFV.js +0 -3
  42. package/dist/tus-35IUZMFV.js.map +0 -1
  43. package/dist/tus-PK6UHGE4.cjs +0 -16
  44. package/dist/tus-PK6UHGE4.cjs.map +0 -1
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkLTWWPQJA_cjs = require('./chunk-LTWWPQJA.cjs');
3
+ var chunkFMJVTKXT_cjs = require('./chunk-FMJVTKXT.cjs');
4
4
  var path = require('path');
5
5
  var fs = require('fs');
6
6
  var crypto = require('crypto');
@@ -80,7 +80,7 @@ var handlePublicAction = async (req, res, action, config) => {
80
80
  res.status(400).json({ status: 400, message: "Could not open file: missing or invalid file ID" });
81
81
  return true;
82
82
  }
83
- const drive = await chunkLTWWPQJA_cjs.drive_default.findById(id);
83
+ const drive = await chunkFMJVTKXT_cjs.drive_default.findById(id);
84
84
  if (!drive) {
85
85
  res.status(404).json({ status: 404, message: "File not found or no longer available" });
86
86
  return true;
@@ -109,7 +109,7 @@ var handlePublicAction = async (req, res, action, config) => {
109
109
  return true;
110
110
  }
111
111
  }
112
- const itemProvider = drive.provider?.type === "GOOGLE" ? chunkLTWWPQJA_cjs.GoogleDriveProvider : chunkLTWWPQJA_cjs.LocalStorageProvider;
112
+ const itemProvider = drive.provider?.type === "GOOGLE" ? chunkFMJVTKXT_cjs.GoogleDriveProvider : chunkFMJVTKXT_cjs.LocalStorageProvider;
113
113
  const itemAccountId = drive.storageAccountId ? drive.storageAccountId.toString() : void 0;
114
114
  if (action === "thumbnail") {
115
115
  const stream2 = await itemProvider.getThumbnail(drive, itemAccountId);
@@ -136,7 +136,7 @@ var handlePublicAction = async (req, res, action, config) => {
136
136
  }
137
137
  if (shouldTransform) {
138
138
  try {
139
- const settings = chunkLTWWPQJA_cjs.getImageSettings(fileSize, quality, display, sizePreset, fit, position);
139
+ const settings = chunkFMJVTKXT_cjs.getImageSettings(fileSize, quality, display, sizePreset, fit, position);
140
140
  let targetFormat = format || mime.split("/")[1];
141
141
  if (targetFormat === "jpg") targetFormat = "jpeg";
142
142
  if (!["jpeg", "png", "webp", "avif"].includes(targetFormat)) {
@@ -261,13 +261,13 @@ var handleAuthAction = async (req, res, action, config, owner) => {
261
261
  oAuth2Client.setCredentials(tokens);
262
262
  const oauth2 = googleapis.google.oauth2({ version: "v2", auth: oAuth2Client });
263
263
  const userInfo = await oauth2.userinfo.get();
264
- const existing = await chunkLTWWPQJA_cjs.account_default.findOne({ owner, "metadata.google.email": userInfo.data.email, "metadata.provider": "GOOGLE" });
264
+ const existing = await chunkFMJVTKXT_cjs.account_default.findOne({ owner, "metadata.google.email": userInfo.data.email, "metadata.provider": "GOOGLE" });
265
265
  if (existing) {
266
266
  existing.metadata.google.credentials = tokens;
267
267
  existing.markModified("metadata");
268
268
  await existing.save();
269
269
  } else {
270
- const newAccount = new chunkLTWWPQJA_cjs.account_default({
270
+ const newAccount = new chunkFMJVTKXT_cjs.account_default({
271
271
  owner,
272
272
  name: userInfo.data.name || "Google Drive",
273
273
  metadata: {
@@ -308,7 +308,7 @@ var handleAuthAction = async (req, res, action, config, owner) => {
308
308
  return true;
309
309
  }
310
310
  case "listAccounts": {
311
- const accounts = await chunkLTWWPQJA_cjs.account_default.find({ owner });
311
+ const accounts = await chunkFMJVTKXT_cjs.account_default.find({ owner });
312
312
  res.status(200).json({
313
313
  status: 200,
314
314
  data: {
@@ -324,20 +324,20 @@ var handleAuthAction = async (req, res, action, config, owner) => {
324
324
  }
325
325
  case "removeAccount": {
326
326
  const { id } = req.query;
327
- const account = await chunkLTWWPQJA_cjs.account_default.findOne({ _id: id, owner });
327
+ const account = await chunkFMJVTKXT_cjs.account_default.findOne({ _id: id, owner });
328
328
  if (!account) {
329
329
  res.status(404).json({ status: 404, message: "Could not disconnect: account not found" });
330
330
  return true;
331
331
  }
332
332
  if (account.metadata.provider === "GOOGLE") {
333
333
  try {
334
- await chunkLTWWPQJA_cjs.GoogleDriveProvider.revokeToken(owner, account._id.toString());
334
+ await chunkFMJVTKXT_cjs.GoogleDriveProvider.revokeToken(owner, account._id.toString());
335
335
  } catch (e) {
336
336
  console.error("Failed to revoke Google token:", e);
337
337
  }
338
338
  }
339
- await chunkLTWWPQJA_cjs.account_default.deleteOne({ _id: id, owner });
340
- await chunkLTWWPQJA_cjs.drive_default.deleteMany({ owner, storageAccountId: id });
339
+ await chunkFMJVTKXT_cjs.account_default.deleteOne({ _id: id, owner });
340
+ await chunkFMJVTKXT_cjs.drive_default.deleteMany({ owner, storageAccountId: id });
341
341
  res.status(200).json({ status: 200, message: "Account removed" });
342
342
  return true;
343
343
  }
@@ -442,8 +442,8 @@ var handleDriveAction = async (ctx) => {
442
442
  query.owner = owner;
443
443
  }
444
444
  if (afterId) query._id = { $lt: afterId };
445
- const items = await chunkLTWWPQJA_cjs.drive_default.find(query, {}, { sort: { order: 1, _id: -1 }, limit });
446
- const plainItems = chunkLTWWPQJA_cjs.withSignedUrls(await Promise.all(items.map((item) => item.toClient())), config);
445
+ const items = await chunkFMJVTKXT_cjs.drive_default.find(query, {}, { sort: { order: 1, _id: -1 }, limit });
446
+ const plainItems = chunkFMJVTKXT_cjs.withSignedUrls(await Promise.all(items.map((item) => item.toClient())), config);
447
447
  res.status(200).json({ status: 200, message: "Items retrieved", data: { items: plainItems, hasMore: items.length === limit } });
448
448
  return;
449
449
  }
@@ -468,20 +468,20 @@ var handleDriveAction = async (ctx) => {
468
468
  query.owner = owner;
469
469
  }
470
470
  if (folderId && folderId !== "root") query.parentId = folderId;
471
- const items = await chunkLTWWPQJA_cjs.drive_default.find(query, {}, { limit, sort: { createdAt: -1 } });
472
- const plainItems = chunkLTWWPQJA_cjs.withSignedUrls(await Promise.all(items.map((i) => i.toClient())), config);
471
+ const items = await chunkFMJVTKXT_cjs.drive_default.find(query, {}, { limit, sort: { createdAt: -1 } });
472
+ const plainItems = chunkFMJVTKXT_cjs.withSignedUrls(await Promise.all(items.map((i) => i.toClient())), config);
473
473
  res.status(200).json({ status: 200, message: "Results", data: { items: plainItems } });
474
474
  return;
475
475
  }
476
476
  case "upload": {
477
- await chunkLTWWPQJA_cjs.handleUpload(req, res, { config, owner, authenticated, isRootMode, information, provider, accountId });
477
+ await chunkFMJVTKXT_cjs.handleUpload(req, res, { config, owner, authenticated, isRootMode, information, provider, accountId });
478
478
  return;
479
479
  }
480
480
  case "createFolder": {
481
481
  const folderData = createFolderBodySchema.safeParse(req.body);
482
482
  if (!folderData.success) return void res.status(400).json({ status: 400, message: folderData.error.errors[0].message });
483
483
  const { name, parentId } = folderData.data;
484
- const item = chunkLTWWPQJA_cjs.withSignedUrl(await provider.createFolder(name, parentId ?? null, owner, accountId), config);
484
+ const item = chunkFMJVTKXT_cjs.withSignedUrl(await provider.createFolder(name, parentId ?? null, owner, accountId), config);
485
485
  res.status(201).json({ status: 201, message: "Folder created", data: { item } });
486
486
  return;
487
487
  }
@@ -489,9 +489,9 @@ var handleDriveAction = async (ctx) => {
489
489
  const deleteData = deleteQuerySchema.safeParse(req.query);
490
490
  if (!deleteData.success) return void res.status(400).json({ status: 400, message: "Could not move to trash: invalid ID" });
491
491
  const { id } = deleteData.data;
492
- const drive = await chunkLTWWPQJA_cjs.drive_default.findById(id);
492
+ const drive = await chunkFMJVTKXT_cjs.drive_default.findById(id);
493
493
  if (!drive) return void res.status(404).json({ status: 404, message: "Could not move to trash: item not found" });
494
- const itemProvider = drive.provider?.type === "GOOGLE" ? chunkLTWWPQJA_cjs.GoogleDriveProvider : chunkLTWWPQJA_cjs.LocalStorageProvider;
494
+ const itemProvider = drive.provider?.type === "GOOGLE" ? chunkFMJVTKXT_cjs.GoogleDriveProvider : chunkFMJVTKXT_cjs.LocalStorageProvider;
495
495
  const itemAccountId = drive.storageAccountId ? drive.storageAccountId.toString() : void 0;
496
496
  try {
497
497
  await itemProvider.trash([id], owner, itemAccountId);
@@ -529,7 +529,7 @@ var handleDriveAction = async (ctx) => {
529
529
  }
530
530
  case "trash": {
531
531
  try {
532
- const { provider: trashProvider, accountId: trashAccountId } = await chunkLTWWPQJA_cjs.resolveProvider(req, owner);
532
+ const { provider: trashProvider, accountId: trashAccountId } = await chunkFMJVTKXT_cjs.resolveProvider(req, owner);
533
533
  await trashProvider.syncTrash(owner, trashAccountId);
534
534
  } catch (e) {
535
535
  console.error("Trash sync failed", e);
@@ -540,8 +540,8 @@ var handleDriveAction = async (ctx) => {
540
540
  storageAccountId: accountId || null,
541
541
  trashedAt: { $ne: null }
542
542
  };
543
- const items = await chunkLTWWPQJA_cjs.drive_default.find(query, {}, { sort: { trashedAt: -1 } });
544
- const plainItems = chunkLTWWPQJA_cjs.withSignedUrls(await Promise.all(items.map((item) => item.toClient())), config);
543
+ const items = await chunkFMJVTKXT_cjs.drive_default.find(query, {}, { sort: { trashedAt: -1 } });
544
+ const plainItems = chunkFMJVTKXT_cjs.withSignedUrls(await Promise.all(items.map((item) => item.toClient())), config);
545
545
  res.status(200).json({ status: 200, message: "Trash items", data: { items: plainItems, hasMore: false } });
546
546
  return;
547
547
  }
@@ -549,16 +549,16 @@ var handleDriveAction = async (ctx) => {
549
549
  const restoreData = deleteQuerySchema.safeParse(req.query);
550
550
  if (!restoreData.success) return void res.status(400).json({ status: 400, message: "Could not restore: invalid ID" });
551
551
  const { id } = restoreData.data;
552
- const drive = await chunkLTWWPQJA_cjs.drive_default.findById(id);
552
+ const drive = await chunkFMJVTKXT_cjs.drive_default.findById(id);
553
553
  if (!drive) return void res.status(404).json({ status: 404, message: "Could not restore: item not found" });
554
554
  let targetParentId = drive.parentId;
555
555
  if (targetParentId) {
556
- const parent = await chunkLTWWPQJA_cjs.drive_default.findById(targetParentId);
556
+ const parent = await chunkFMJVTKXT_cjs.drive_default.findById(targetParentId);
557
557
  if (parent?.trashedAt) {
558
558
  targetParentId = null;
559
559
  }
560
560
  }
561
- const itemProvider = drive.provider?.type === "GOOGLE" ? chunkLTWWPQJA_cjs.GoogleDriveProvider : chunkLTWWPQJA_cjs.LocalStorageProvider;
561
+ const itemProvider = drive.provider?.type === "GOOGLE" ? chunkFMJVTKXT_cjs.GoogleDriveProvider : chunkFMJVTKXT_cjs.LocalStorageProvider;
562
562
  const itemAccountId = drive.storageAccountId ? drive.storageAccountId.toString() : void 0;
563
563
  try {
564
564
  await itemProvider.untrash([id], owner, itemAccountId);
@@ -592,7 +592,7 @@ var handleDriveAction = async (ctx) => {
592
592
  console.error(`Failed to move item ${id}`, e);
593
593
  }
594
594
  }
595
- res.status(200).json({ status: 200, message: "Moved", data: { items: chunkLTWWPQJA_cjs.withSignedUrls(items, config) } });
595
+ res.status(200).json({ status: 200, message: "Moved", data: { items: chunkFMJVTKXT_cjs.withSignedUrls(items, config) } });
596
596
  return;
597
597
  }
598
598
  case "reorder": {
@@ -613,7 +613,7 @@ var handleDriveAction = async (ctx) => {
613
613
  if (!isRootMode) {
614
614
  query.owner = owner;
615
615
  }
616
- const existingItems = await chunkLTWWPQJA_cjs.drive_default.find(query, { _id: 1, parentId: 1 });
616
+ const existingItems = await chunkFMJVTKXT_cjs.drive_default.find(query, { _id: 1, parentId: 1 });
617
617
  if (existingItems.length !== ids.length) {
618
618
  return void res.status(404).json({ status: 404, message: "Could not reorder: one or more items were not found" });
619
619
  }
@@ -633,9 +633,9 @@ var handleDriveAction = async (ctx) => {
633
633
  update: { $set: { order } }
634
634
  }
635
635
  }));
636
- await chunkLTWWPQJA_cjs.drive_default.bulkWrite(operations);
637
- const updatedItems = await chunkLTWWPQJA_cjs.drive_default.find(query, {}, { sort: { order: 1 } });
638
- const plainItems = chunkLTWWPQJA_cjs.withSignedUrls(await Promise.all(updatedItems.map((item) => item.toClient())), config);
636
+ await chunkFMJVTKXT_cjs.drive_default.bulkWrite(operations);
637
+ const updatedItems = await chunkFMJVTKXT_cjs.drive_default.find(query, {}, { sort: { order: 1 } });
638
+ const plainItems = chunkFMJVTKXT_cjs.withSignedUrls(await Promise.all(updatedItems.map((item) => item.toClient())), config);
639
639
  res.status(200).json({ status: 200, message: "Reordered", data: { items: plainItems } });
640
640
  return;
641
641
  }
@@ -643,7 +643,7 @@ var handleDriveAction = async (ctx) => {
643
643
  const renameData = renameBodySchema.safeParse({ id: req.query.id, ...req.body });
644
644
  if (!renameData.success) return void res.status(400).json({ status: 400, message: "Could not rename: invalid request data" });
645
645
  const { id, newName } = renameData.data;
646
- const item = chunkLTWWPQJA_cjs.withSignedUrl(await provider.rename(id, newName, owner, accountId), config);
646
+ const item = chunkFMJVTKXT_cjs.withSignedUrl(await provider.rename(id, newName, owner, accountId), config);
647
647
  res.status(200).json({ status: 200, message: "Renamed", data: { item } });
648
648
  return;
649
649
  }
@@ -684,7 +684,7 @@ var driveAPIHandler = async (req, res) => {
684
684
  const action = req.query.action || (req.query.code && req.query.state ? "callback" : void 0);
685
685
  let config;
686
686
  try {
687
- config = chunkLTWWPQJA_cjs.getDriveConfig();
687
+ config = chunkFMJVTKXT_cjs.getDriveConfig();
688
688
  } catch (error) {
689
689
  console.error("[next-drive] Configuration error:", error);
690
690
  res.status(500).json({ status: 500, message: "Drive is not ready: failed to initialize configuration" });
@@ -705,7 +705,7 @@ var driveAPIHandler = async (req, res) => {
705
705
  const googleConfigured = !!(clientId && clientSecret && redirectUri);
706
706
  let authenticated2 = false;
707
707
  try {
708
- await chunkLTWWPQJA_cjs.getDriveInformation({ method: "REQUEST", req });
708
+ await chunkFMJVTKXT_cjs.getDriveInformation({ method: "REQUEST", req });
709
709
  authenticated2 = true;
710
710
  } catch {
711
711
  authenticated2 = false;
@@ -728,7 +728,7 @@ var driveAPIHandler = async (req, res) => {
728
728
  let information;
729
729
  let authenticated = true;
730
730
  try {
731
- information = await chunkLTWWPQJA_cjs.getDriveInformation({ method: "REQUEST", req });
731
+ information = await chunkFMJVTKXT_cjs.getDriveInformation({ method: "REQUEST", req });
732
732
  } catch (err) {
733
733
  if (action === "upload" && config.security?.unauthenticated?.enabled) {
734
734
  information = { key: null, storage: { quotaInBytes: 0 } };
@@ -740,7 +740,7 @@ var driveAPIHandler = async (req, res) => {
740
740
  const { key: owner } = information;
741
741
  const wasAuthHandled = await handleAuthAction(req, res, action, config, owner);
742
742
  if (wasAuthHandled) return;
743
- const { provider, accountId } = await chunkLTWWPQJA_cjs.resolveProvider(req, owner);
743
+ const { provider, accountId } = await chunkFMJVTKXT_cjs.resolveProvider(req, owner);
744
744
  await handleDriveAction({
745
745
  req,
746
746
  res,
@@ -762,5 +762,5 @@ var driveAPIHandler = async (req, res) => {
762
762
 
763
763
  exports.driveAPIHandler = driveAPIHandler;
764
764
  exports.driveFileSchemaZod = driveFileSchemaZod;
765
- //# sourceMappingURL=chunk-QE5EHVVA.cjs.map
766
- //# sourceMappingURL=chunk-QE5EHVVA.cjs.map
765
+ //# sourceMappingURL=chunk-LN7U7XD7.cjs.map
766
+ //# sourceMappingURL=chunk-LN7U7XD7.cjs.map