@muhgholy/next-drive 1.2.0 → 1.4.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 (113) hide show
  1. package/README.md +114 -54
  2. package/dist/client/components/dialog.d.ts +21 -0
  3. package/dist/client/components/dialog.d.ts.map +1 -0
  4. package/dist/client/components/drive/explorer.d.ts +10 -0
  5. package/dist/client/components/drive/explorer.d.ts.map +1 -0
  6. package/dist/client/components/drive/header.d.ts +3 -0
  7. package/dist/client/components/drive/header.d.ts.map +1 -0
  8. package/dist/client/components/drive/path-bar.d.ts +3 -0
  9. package/dist/client/components/drive/path-bar.d.ts.map +1 -0
  10. package/dist/client/components/drive/sidebar.d.ts +3 -0
  11. package/dist/client/components/drive/sidebar.d.ts.map +1 -0
  12. package/dist/client/components/drive/storage/indicator.d.ts +6 -0
  13. package/dist/client/components/drive/storage/indicator.d.ts.map +1 -0
  14. package/dist/client/components/drive/upload.d.ts +6 -0
  15. package/dist/client/components/drive/upload.d.ts.map +1 -0
  16. package/dist/client/components/ui/alert-dialog.d.ts +21 -0
  17. package/dist/client/components/ui/alert-dialog.d.ts.map +1 -0
  18. package/dist/client/components/ui/alert.d.ts +10 -0
  19. package/dist/client/components/ui/alert.d.ts.map +1 -0
  20. package/dist/client/components/ui/button.d.ts +11 -0
  21. package/dist/client/components/ui/button.d.ts.map +1 -0
  22. package/dist/client/components/ui/context-menu.d.ts +28 -0
  23. package/dist/client/components/ui/context-menu.d.ts.map +1 -0
  24. package/dist/client/components/ui/dialog.d.ts +16 -0
  25. package/dist/client/components/ui/dialog.d.ts.map +1 -0
  26. package/dist/client/components/ui/dropdown-menu.d.ts +28 -0
  27. package/dist/client/components/ui/dropdown-menu.d.ts.map +1 -0
  28. package/dist/client/components/ui/input.d.ts +4 -0
  29. package/dist/client/components/ui/input.d.ts.map +1 -0
  30. package/dist/client/components/ui/label.d.ts +5 -0
  31. package/dist/client/components/ui/label.d.ts.map +1 -0
  32. package/dist/client/components/ui/progress.d.ts +7 -0
  33. package/dist/client/components/ui/progress.d.ts.map +1 -0
  34. package/dist/client/components/ui/separator.d.ts +5 -0
  35. package/dist/client/components/ui/separator.d.ts.map +1 -0
  36. package/dist/client/components/ui/sheet.d.ts +26 -0
  37. package/dist/client/components/ui/sheet.d.ts.map +1 -0
  38. package/dist/client/components/ui/tooltip.d.ts +8 -0
  39. package/dist/client/components/ui/tooltip.d.ts.map +1 -0
  40. package/dist/client/context.d.ts +87 -0
  41. package/dist/client/context.d.ts.map +1 -0
  42. package/dist/client/file-chooser.d.ts +14 -0
  43. package/dist/client/file-chooser.d.ts.map +1 -0
  44. package/dist/client/hooks/useUpload.d.ts +8 -0
  45. package/dist/client/hooks/useUpload.d.ts.map +1 -0
  46. package/dist/client/index.d.ts +13 -133
  47. package/dist/client/index.d.ts.map +1 -0
  48. package/dist/client/index.js +401 -602
  49. package/dist/client/index.js.map +1 -1
  50. package/dist/client/utils.d.ts +16 -0
  51. package/dist/client/utils.d.ts.map +1 -0
  52. package/dist/schemas.d.ts +33 -0
  53. package/dist/schemas.d.ts.map +1 -0
  54. package/dist/schemas.js +15 -0
  55. package/dist/schemas.js.map +1 -0
  56. package/dist/server/config.d.ts +6 -0
  57. package/dist/server/config.d.ts.map +1 -0
  58. package/dist/server/controllers/drive.d.ts +55 -0
  59. package/dist/server/controllers/drive.d.ts.map +1 -0
  60. package/dist/server/database/mongoose/schema/drive.d.ts +19 -0
  61. package/dist/server/database/mongoose/schema/drive.d.ts.map +1 -0
  62. package/dist/server/database/mongoose/schema/storage/account.d.ts +12 -0
  63. package/dist/server/database/mongoose/schema/storage/account.d.ts.map +1 -0
  64. package/dist/server/express.d.ts +10 -0
  65. package/dist/server/express.d.ts.map +1 -0
  66. package/dist/server/express.js +1384 -0
  67. package/dist/server/express.js.map +1 -0
  68. package/dist/server/index.d.ts +10 -156
  69. package/dist/server/index.d.ts.map +1 -0
  70. package/dist/server/index.js +68 -110
  71. package/dist/server/index.js.map +1 -1
  72. package/dist/server/providers/google.d.ts +3 -0
  73. package/dist/server/providers/google.d.ts.map +1 -0
  74. package/dist/server/providers/local.d.ts +3 -0
  75. package/dist/server/providers/local.d.ts.map +1 -0
  76. package/dist/server/security/cryptoUtils.d.ts +13 -0
  77. package/dist/server/security/cryptoUtils.d.ts.map +1 -0
  78. package/dist/server/security/mimeFilter.d.ts +6 -0
  79. package/dist/server/security/mimeFilter.d.ts.map +1 -0
  80. package/dist/server/utils/ffmpeg.d.ts +14 -0
  81. package/dist/server/utils/ffmpeg.d.ts.map +1 -0
  82. package/dist/server/utils/folderValidation.d.ts +9 -0
  83. package/dist/server/utils/folderValidation.d.ts.map +1 -0
  84. package/dist/server/utils/imageConvert.d.ts +15 -0
  85. package/dist/server/utils/imageConvert.d.ts.map +1 -0
  86. package/dist/server/utils/metadata.d.ts +23 -0
  87. package/dist/server/utils/metadata.d.ts.map +1 -0
  88. package/dist/server/utils.d.ts +14 -0
  89. package/dist/server/utils.d.ts.map +1 -0
  90. package/dist/server/zod/schemas.d.ts +207 -0
  91. package/dist/server/zod/schemas.d.ts.map +1 -0
  92. package/dist/types/client/index.d.ts +32 -0
  93. package/dist/types/client/index.d.ts.map +1 -0
  94. package/dist/types/lib/database/drive.d.ts +41 -0
  95. package/dist/types/lib/database/drive.d.ts.map +1 -0
  96. package/dist/types/lib/database/index.d.ts +3 -0
  97. package/dist/types/lib/database/index.d.ts.map +1 -0
  98. package/dist/types/lib/database/storage/account.d.ts +15 -0
  99. package/dist/types/lib/database/storage/account.d.ts.map +1 -0
  100. package/dist/types/server/api.d.ts +16 -0
  101. package/dist/types/server/api.d.ts.map +1 -0
  102. package/dist/types/server/config.d.ts +41 -0
  103. package/dist/types/server/config.d.ts.map +1 -0
  104. package/dist/types/server/drive.d.ts +2 -0
  105. package/dist/types/server/drive.d.ts.map +1 -0
  106. package/dist/types/server/express.d.ts +37 -0
  107. package/dist/types/server/express.d.ts.map +1 -0
  108. package/dist/types/server/index.d.ts +4 -0
  109. package/dist/types/server/index.d.ts.map +1 -0
  110. package/dist/types/server/storage.d.ts +29 -0
  111. package/dist/types/server/storage.d.ts.map +1 -0
  112. package/package.json +102 -92
  113. package/dist/index-C4pw1JjP.d.ts +0 -121
package/package.json CHANGED
@@ -1,94 +1,104 @@
1
1
  {
2
- "name": "@muhgholy/next-drive",
3
- "version": "1.2.0",
4
- "description": "File storage and management for Next.js applications",
5
- "type": "module",
6
- "exports": {
7
- "./server": {
8
- "types": "./dist/server/index.d.ts",
9
- "import": "./dist/server/index.js"
10
- },
11
- "./client": {
12
- "types": "./dist/client/index.d.ts",
13
- "import": "./dist/client/index.js"
14
- },
15
- "./client/styles.css": "./dist/client/styles.css"
16
- },
17
- "files": [
18
- "dist"
19
- ],
20
- "scripts": {
21
- "build": "tsup",
22
- "dev": "tsup --watch",
23
- "lint": "eslint \"src/**/*.{ts,tsx}\"",
24
- "typecheck": "tsc --noEmit",
25
- "test": "vitest",
26
- "test:coverage": "vitest --coverage",
27
- "test:integration": "vitest -c vitest.integration.config.ts"
28
- },
29
- "peerDependencies": {
30
- "mongoose": ">=7.0.0",
31
- "next": ">=14.0.0",
32
- "react": ">=18.0.0",
33
- "react-dom": ">=18.0.0"
34
- },
35
- "dependencies": {
36
- "@dnd-kit/core": "^6.3.1",
37
- "@dnd-kit/sortable": "^10.0.0",
38
- "@dnd-kit/utilities": "^3.2.2",
39
- "@radix-ui/react-alert-dialog": "^1.1.15",
40
- "@radix-ui/react-context-menu": "^2.2.16",
41
- "@radix-ui/react-dialog": "^1.1.15",
42
- "@radix-ui/react-dropdown-menu": "^2.1.16",
43
- "@radix-ui/react-label": "^2.1.8",
44
- "@radix-ui/react-progress": "^1.1.8",
45
- "@radix-ui/react-separator": "^1.1.8",
46
- "@radix-ui/react-slot": "^1.2.4",
47
- "@radix-ui/react-tooltip": "^1.2.8",
48
- "class-variance-authority": "^0.7.1",
49
- "clsx": "^2.1.1",
50
- "date-fns": "^4.1.0",
51
- "fluent-ffmpeg": "^2.1.2",
52
- "formidable": "^3.5.4",
53
- "googleapis": "^169.0.0",
54
- "lucide-react": "^0.562.0",
55
- "sharp": "^0.33.0",
56
- "tailwind-merge": "^3.4.0",
57
- "zod": "^3.22.0"
58
- },
59
- "devDependencies": {
60
- "@eslint/js": "^9.39.2",
61
- "@semantic-release/changelog": "^6.0.3",
62
- "@semantic-release/exec": "^7.1.0",
63
- "@semantic-release/git": "^10.0.1",
64
- "@types/fluent-ffmpeg": "^2.1.21",
65
- "@types/formidable": "^3.4.6",
66
- "@types/node": "^20.0.0",
67
- "@types/react": "^18.0.0",
68
- "@types/react-dom": "^18.0.0",
69
- "@vitest/coverage-v8": "^4.0.16",
70
- "eslint": "^8.0.0",
71
- "jsdom": "^27.3.0",
72
- "mongoose": ">=7.0.0",
73
- "semantic-release": "^24.2.9",
74
- "tsup": "^8.0.0",
75
- "typescript": "^5.0.0",
76
- "typescript-eslint": "^8.50.1",
77
- "vitest": "^4.0.16"
78
- },
79
- "keywords": [
80
- "next.js",
81
- "file-storage",
82
- "drive",
83
- "upload",
84
- "file-management"
85
- ],
86
- "publishConfig": {
87
- "access": "public"
88
- },
89
- "license": "MIT",
90
- "repository": {
91
- "type": "git",
92
- "url": "https://github.com/muhgholy/next-drive"
93
- }
2
+ "name": "@muhgholy/next-drive",
3
+ "version": "1.4.0",
4
+ "description": "File storage and management for Next.js applications",
5
+ "type": "module",
6
+ "exports": {
7
+ "./server": {
8
+ "types": "./dist/server/index.d.ts",
9
+ "import": "./dist/server/index.js"
10
+ },
11
+ "./server/express": {
12
+ "types": "./dist/server/express.d.ts",
13
+ "import": "./dist/server/express.js"
14
+ },
15
+ "./client": {
16
+ "types": "./dist/client/index.d.ts",
17
+ "import": "./dist/client/index.js"
18
+ },
19
+ "./schemas": {
20
+ "types": "./dist/schemas.d.ts",
21
+ "import": "./dist/schemas.js"
22
+ },
23
+ "./client/styles.css": "./dist/client/styles.css"
24
+ },
25
+ "files": [
26
+ "dist"
27
+ ],
28
+ "scripts": {
29
+ "build": "tsup && tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json",
30
+ "dev": "tsup --watch",
31
+ "lint": "eslint \"src/**/*.{ts,tsx}\"",
32
+ "typecheck": "tsc --noEmit",
33
+ "test": "vitest",
34
+ "test:coverage": "vitest --coverage",
35
+ "test:integration": "vitest -c vitest.integration.config.ts"
36
+ },
37
+ "peerDependencies": {
38
+ "mongoose": ">=7.0.0",
39
+ "next": ">=14.0.0",
40
+ "react": ">=18.0.0",
41
+ "react-dom": ">=18.0.0"
42
+ },
43
+ "dependencies": {
44
+ "@dnd-kit/core": "^6.3.1",
45
+ "@dnd-kit/sortable": "^10.0.0",
46
+ "@dnd-kit/utilities": "^3.2.2",
47
+ "@radix-ui/react-alert-dialog": "^1.1.15",
48
+ "@radix-ui/react-context-menu": "^2.2.16",
49
+ "@radix-ui/react-dialog": "^1.1.15",
50
+ "@radix-ui/react-dropdown-menu": "^2.1.16",
51
+ "@radix-ui/react-label": "^2.1.8",
52
+ "@radix-ui/react-progress": "^1.1.8",
53
+ "@radix-ui/react-separator": "^1.1.8",
54
+ "@radix-ui/react-slot": "^1.2.4",
55
+ "@radix-ui/react-tooltip": "^1.2.8",
56
+ "class-variance-authority": "^0.7.1",
57
+ "clsx": "^2.1.1",
58
+ "date-fns": "^4.1.0",
59
+ "fluent-ffmpeg": "^2.1.2",
60
+ "formidable": "^3.5.4",
61
+ "googleapis": "^169.0.0",
62
+ "lucide-react": "^0.562.0",
63
+ "sharp": "^0.33.0",
64
+ "tailwind-merge": "^3.4.0",
65
+ "zod": "^3.22.0"
66
+ },
67
+ "devDependencies": {
68
+ "@eslint/js": "^9.39.2",
69
+ "@semantic-release/changelog": "^6.0.3",
70
+ "@semantic-release/exec": "^7.1.0",
71
+ "@semantic-release/git": "^10.0.1",
72
+ "@types/express": "^5.0.6",
73
+ "@types/fluent-ffmpeg": "^2.1.21",
74
+ "@types/formidable": "^3.4.6",
75
+ "@types/node": "^20.0.0",
76
+ "@types/react": "^18.0.0",
77
+ "@types/react-dom": "^18.0.0",
78
+ "@vitest/coverage-v8": "^4.0.16",
79
+ "eslint": "^8.0.0",
80
+ "jsdom": "^27.3.0",
81
+ "mongoose": ">=7.0.0",
82
+ "semantic-release": "^24.2.9",
83
+ "tsc-alias": "^1.8.16",
84
+ "tsup": "^8.0.0",
85
+ "typescript": "^5.0.0",
86
+ "typescript-eslint": "^8.50.1",
87
+ "vitest": "^4.0.16"
88
+ },
89
+ "keywords": [
90
+ "next.js",
91
+ "file-storage",
92
+ "drive",
93
+ "upload",
94
+ "file-management"
95
+ ],
96
+ "publishConfig": {
97
+ "access": "public"
98
+ },
99
+ "license": "MIT",
100
+ "repository": {
101
+ "type": "git",
102
+ "url": "https://github.com/muhgholy/next-drive"
103
+ }
94
104
  }
@@ -1,121 +0,0 @@
1
- import { z } from 'zod';
2
-
3
- type TDatabaseDriveStatus = "READY" | "PROCESSING" | "UPLOADING" | "FAILED";
4
- type TDatabaseDriveMetadataFile = {
5
- type: "FILE";
6
- sizeInBytes: number;
7
- mime: string;
8
- path: string;
9
- width?: number;
10
- height?: number;
11
- duration?: number;
12
- hash?: string;
13
- };
14
- type TDatabaseDriveMetadataFolder = {
15
- type: "FOLDER";
16
- };
17
- type TDatabaseDriveInformation = TDatabaseDriveMetadataFile | TDatabaseDriveMetadataFolder;
18
- type TDatabaseDriveProvider = {
19
- type: 'LOCAL' | 'GOOGLE';
20
- google?: {
21
- id: string;
22
- webViewLink?: string;
23
- iconLink?: string;
24
- thumbnailLink?: string;
25
- };
26
- };
27
- type TDatabaseDriveMetadata = {
28
- [key: string]: unknown;
29
- };
30
- type TDatabaseDrive = {
31
- id: string;
32
- name: string;
33
- parentId: string | null;
34
- order: number;
35
- provider: TDatabaseDriveProvider;
36
- metadata: TDatabaseDriveMetadata;
37
- information: TDatabaseDriveInformation;
38
- status: TDatabaseDriveStatus;
39
- trashedAt: Date | null;
40
- createdAt: Date;
41
- token?: string;
42
- };
43
-
44
- type TDriveAction = 'upload' | 'list' | 'serve' | 'thumbnail' | 'rename' | 'delete' | 'deleteMany' | 'deletePermanent' | 'cancel' | 'createFolder' | 'move' | 'reorder' | 'trash' | 'restore' | 'emptyTrash' | 'purgeTrash' | 'search' | 'duplicates' | 'quota';
45
- interface TDriveAPIResponse<T = unknown> {
46
- status: number;
47
- message: string;
48
- data?: T;
49
- statistic?: {
50
- storage?: {
51
- usedInBytes: number;
52
- quotaInBytes: number;
53
- };
54
- [key: string]: unknown;
55
- };
56
- }
57
- type TDriveThumbnailSize = 'small' | 'medium' | 'large';
58
- type TDriveImageQuality = 'ultralow' | 'low' | 'medium' | 'high' | 'normal';
59
-
60
- type TDriveFile = {
61
- id: string;
62
- file: {
63
- name: string;
64
- mime: string;
65
- size: number;
66
- };
67
- };
68
- type TImageQuality = 'ultralow' | 'low' | 'medium' | 'high' | 'normal';
69
- type TImageFormat = 'webp' | 'jpeg' | 'png';
70
- declare const driveFileSchemaZod: z.ZodObject<{
71
- id: z.ZodString;
72
- file: z.ZodObject<{
73
- name: z.ZodString;
74
- mime: z.ZodString;
75
- size: z.ZodNumber;
76
- }, "strip", z.ZodTypeAny, {
77
- name: string;
78
- mime: string;
79
- size: number;
80
- }, {
81
- name: string;
82
- mime: string;
83
- size: number;
84
- }>;
85
- }, "strip", z.ZodTypeAny, {
86
- id: string;
87
- file: {
88
- name: string;
89
- mime: string;
90
- size: number;
91
- };
92
- }, {
93
- id: string;
94
- file: {
95
- name: string;
96
- mime: string;
97
- size: number;
98
- };
99
- }>;
100
- type TDrivePathItem = {
101
- id: string | null;
102
- name: string;
103
- };
104
- type TDriveQuota = {
105
- usedInBytes: number;
106
- totalInBytes: number;
107
- availableInBytes: number;
108
- percentage: number;
109
- };
110
- type TDriveUploadState = {
111
- id: string;
112
- name: string;
113
- size: number;
114
- status: 'pending' | 'queued' | 'uploading' | 'complete' | 'error' | 'cancelled';
115
- currentChunk: number;
116
- totalChunks: number;
117
- driveId?: string;
118
- error?: string;
119
- };
120
-
121
- export { type TDatabaseDriveProvider as T, type TDatabaseDriveMetadata as a, type TDatabaseDriveInformation as b, type TDatabaseDriveStatus as c, type TDatabaseDrive as d, type TDriveFile as e, type TImageQuality as f, type TImageFormat as g, type TDatabaseDriveMetadataFile as h, type TDatabaseDriveMetadataFolder as i, type TDriveAction as j, type TDriveAPIResponse as k, type TDriveThumbnailSize as l, type TDriveImageQuality as m, type TDrivePathItem as n, type TDriveQuota as o, type TDriveUploadState as p, driveFileSchemaZod as q };