@rovela-ai/sdk 0.1.25 → 0.1.27

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 (115) hide show
  1. package/dist/admin/components/CategoryForm.d.ts.map +1 -1
  2. package/dist/admin/components/CategoryForm.js +2 -2
  3. package/dist/admin/components/CategoryForm.js.map +1 -1
  4. package/dist/admin/components/ProductForm.d.ts.map +1 -1
  5. package/dist/admin/components/ProductForm.js +3 -35
  6. package/dist/admin/components/ProductForm.js.map +1 -1
  7. package/dist/admin/components/ProductTable.d.ts.map +1 -1
  8. package/dist/admin/components/ProductTable.js +6 -1
  9. package/dist/admin/components/ProductTable.js.map +1 -1
  10. package/dist/admin/server/admin-service.d.ts +3 -3
  11. package/dist/admin/server/admin-service.d.ts.map +1 -1
  12. package/dist/admin/server/admin-service.js +12 -22
  13. package/dist/admin/server/admin-service.js.map +1 -1
  14. package/dist/auth/server/customer-service.d.ts +2 -2
  15. package/dist/auth/server/customer-service.d.ts.map +1 -1
  16. package/dist/auth/server/customer-service.js +11 -20
  17. package/dist/auth/server/customer-service.js.map +1 -1
  18. package/dist/auth/server/password-reset-service.d.ts +1 -0
  19. package/dist/auth/server/password-reset-service.d.ts.map +1 -1
  20. package/dist/auth/server/password-reset-service.js +5 -7
  21. package/dist/auth/server/password-reset-service.js.map +1 -1
  22. package/dist/auth/server/verification-service.d.ts +1 -0
  23. package/dist/auth/server/verification-service.d.ts.map +1 -1
  24. package/dist/auth/server/verification-service.js +6 -9
  25. package/dist/auth/server/verification-service.js.map +1 -1
  26. package/dist/core/db/client.d.ts +2 -44
  27. package/dist/core/db/client.d.ts.map +1 -1
  28. package/dist/core/db/client.js +2 -106
  29. package/dist/core/db/client.js.map +1 -1
  30. package/dist/core/db/index.d.ts +1 -1
  31. package/dist/core/db/index.d.ts.map +1 -1
  32. package/dist/core/db/index.js +2 -2
  33. package/dist/core/db/index.js.map +1 -1
  34. package/dist/core/db/queries.d.ts +18 -35
  35. package/dist/core/db/queries.d.ts.map +1 -1
  36. package/dist/core/db/queries.js +69 -110
  37. package/dist/core/db/queries.js.map +1 -1
  38. package/dist/core/db/schema.d.ts +1 -137
  39. package/dist/core/db/schema.d.ts.map +1 -1
  40. package/dist/core/db/schema.js +6 -23
  41. package/dist/core/db/schema.js.map +1 -1
  42. package/dist/core/server/index.d.ts +1 -1
  43. package/dist/core/server/index.d.ts.map +1 -1
  44. package/dist/core/server/index.js +1 -3
  45. package/dist/core/server/index.js.map +1 -1
  46. package/dist/core/types.d.ts +0 -5
  47. package/dist/core/types.d.ts.map +1 -1
  48. package/dist/emails/config.d.ts.map +1 -1
  49. package/dist/emails/config.js +11 -17
  50. package/dist/emails/config.js.map +1 -1
  51. package/dist/media/api/delete.d.ts +44 -0
  52. package/dist/media/api/delete.d.ts.map +1 -0
  53. package/dist/media/api/delete.js +134 -0
  54. package/dist/media/api/delete.js.map +1 -0
  55. package/dist/media/api/index.d.ts +17 -0
  56. package/dist/media/api/index.d.ts.map +1 -0
  57. package/dist/media/api/index.js +17 -0
  58. package/dist/media/api/index.js.map +1 -0
  59. package/dist/media/api/presign.d.ts +39 -0
  60. package/dist/media/api/presign.d.ts.map +1 -0
  61. package/dist/media/api/presign.js +138 -0
  62. package/dist/media/api/presign.js.map +1 -0
  63. package/dist/media/components/DropZone.d.ts +18 -0
  64. package/dist/media/components/DropZone.d.ts.map +1 -0
  65. package/dist/media/components/DropZone.js +112 -0
  66. package/dist/media/components/DropZone.js.map +1 -0
  67. package/dist/media/components/ImageGalleryUpload.d.ts +18 -0
  68. package/dist/media/components/ImageGalleryUpload.d.ts.map +1 -0
  69. package/dist/media/components/ImageGalleryUpload.js +156 -0
  70. package/dist/media/components/ImageGalleryUpload.js.map +1 -0
  71. package/dist/media/components/ImageUpload.d.ts +17 -0
  72. package/dist/media/components/ImageUpload.d.ts.map +1 -0
  73. package/dist/media/components/ImageUpload.js +95 -0
  74. package/dist/media/components/ImageUpload.js.map +1 -0
  75. package/dist/media/components/index.d.ts +10 -0
  76. package/dist/media/components/index.d.ts.map +1 -0
  77. package/dist/media/components/index.js +9 -0
  78. package/dist/media/components/index.js.map +1 -0
  79. package/dist/media/config.d.ts +57 -0
  80. package/dist/media/config.d.ts.map +1 -0
  81. package/dist/media/config.js +142 -0
  82. package/dist/media/config.js.map +1 -0
  83. package/dist/media/hooks/index.d.ts +8 -0
  84. package/dist/media/hooks/index.d.ts.map +1 -0
  85. package/dist/media/hooks/index.js +7 -0
  86. package/dist/media/hooks/index.js.map +1 -0
  87. package/dist/media/hooks/useUpload.d.ts +32 -0
  88. package/dist/media/hooks/useUpload.d.ts.map +1 -0
  89. package/dist/media/hooks/useUpload.js +258 -0
  90. package/dist/media/hooks/useUpload.js.map +1 -0
  91. package/dist/media/index.d.ts +57 -0
  92. package/dist/media/index.d.ts.map +1 -0
  93. package/dist/media/index.js +68 -0
  94. package/dist/media/index.js.map +1 -0
  95. package/dist/media/server/delete.d.ts +59 -0
  96. package/dist/media/server/delete.d.ts.map +1 -0
  97. package/dist/media/server/delete.js +176 -0
  98. package/dist/media/server/delete.js.map +1 -0
  99. package/dist/media/server/index.d.ts +10 -0
  100. package/dist/media/server/index.d.ts.map +1 -0
  101. package/dist/media/server/index.js +13 -0
  102. package/dist/media/server/index.js.map +1 -0
  103. package/dist/media/server/presign.d.ts +57 -0
  104. package/dist/media/server/presign.d.ts.map +1 -0
  105. package/dist/media/server/presign.js +112 -0
  106. package/dist/media/server/presign.js.map +1 -0
  107. package/dist/media/server/r2-client.d.ts +30 -0
  108. package/dist/media/server/r2-client.d.ts.map +1 -0
  109. package/dist/media/server/r2-client.js +76 -0
  110. package/dist/media/server/r2-client.js.map +1 -0
  111. package/dist/media/types.d.ts +271 -0
  112. package/dist/media/types.d.ts.map +1 -0
  113. package/dist/media/types.js +52 -0
  114. package/dist/media/types.js.map +1 -0
  115. package/package.json +15 -1
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/emails/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAS1C;;;;;GAKG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAgBlC;AAMD;;;;;GAKG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAKpD;AAED;;;;;;;;;GASG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAgBpD;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAa3D;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAoBvD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/emails/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAS1C;;;;;GAKG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAgBlC;AAMD;;;;;GAKG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAKpD;AAED;;;;;;;;;GASG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAapD;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAa3D;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAiBvD"}
@@ -8,7 +8,7 @@
8
8
  * support email at runtime via the settings page.
9
9
  */
10
10
  import { Resend } from 'resend';
11
- import { findSettings, getTenantId } from '../core/db';
11
+ import { findSettings } from '../core/db';
12
12
  // =============================================================================
13
13
  // Resend Client
14
14
  // =============================================================================
@@ -56,18 +56,15 @@ export async function getFromEmail() {
56
56
  * @returns Store name
57
57
  */
58
58
  export async function getStoreName() {
59
- // Try database first (if tenant context is set)
59
+ // Try database first (each store has its own database)
60
60
  try {
61
- const tenantId = getTenantId();
62
- if (tenantId) {
63
- const settings = await findSettings();
64
- if (settings?.storeName) {
65
- return settings.storeName;
66
- }
61
+ const settings = await findSettings();
62
+ if (settings?.storeName) {
63
+ return settings.storeName;
67
64
  }
68
65
  }
69
66
  catch {
70
- // Not in request context or DB error - fall through to env var
67
+ // DB not available or error - fall through to env var
71
68
  }
72
69
  // Fall back to environment variable
73
70
  return process.env.STORE_NAME || 'Our Store';
@@ -107,18 +104,15 @@ export async function getEmailConfig() {
107
104
  * @returns Support email address
108
105
  */
109
106
  export async function getSupportEmail() {
110
- // Try database first (if tenant context is set)
107
+ // Try database first (each store has its own database)
111
108
  try {
112
- const tenantId = getTenantId();
113
- if (tenantId) {
114
- const settings = await findSettings();
115
- if (settings?.storeEmail) {
116
- return settings.storeEmail;
117
- }
109
+ const settings = await findSettings();
110
+ if (settings?.storeEmail) {
111
+ return settings.storeEmail;
118
112
  }
119
113
  }
120
114
  catch {
121
- // Not in request context or DB error - fall through to env var
115
+ // DB not available or error - fall through to env var
122
116
  }
123
117
  // Fall back to environment variables
124
118
  return (process.env.SUPPORT_EMAIL ||
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/emails/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/emails/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEzC,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF,IAAI,YAAY,GAAkB,IAAI,CAAA;AAEtC;;;;;GAKG;AACH,MAAM,UAAU,SAAS;IACvB,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAA;QAEzC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CACb,kDAAkD;gBAChD,iDAAiD;gBACjD,uBAAuB,CAC1B,CAAA;QACH,CAAC;QAED,YAAY,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAA;IACnC,CAAC;IAED,OAAO,YAAY,CAAA;AACrB,CAAC;AAED,gFAAgF;AAChF,wEAAwE;AACxE,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,qBAAqB,CAAA;IACpE,MAAM,SAAS,GAAG,MAAM,YAAY,EAAE,CAAA;IAEtC,OAAO,GAAG,SAAS,KAAK,KAAK,GAAG,CAAA;AAClC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,uDAAuD;IACvD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAA;QACrC,IAAI,QAAQ,EAAE,SAAS,EAAE,CAAC;YACxB,OAAO,QAAQ,CAAC,SAAS,CAAA;QAC3B,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,sDAAsD;IACxD,CAAC;IAED,oCAAoC;IACpC,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,WAAW,CAAA;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAA;AAC1E,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAClD,YAAY,EAAE;QACd,eAAe,EAAE;KAClB,CAAC,CAAA;IAEF,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE;QACzC,SAAS;QACT,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE;QAC7C,YAAY;QACZ,OAAO,EAAE,WAAW,EAAE;KACvB,CAAA;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,uDAAuD;IACvD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAA;QACrC,IAAI,QAAQ,EAAE,UAAU,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC,UAAU,CAAA;QAC5B,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,sDAAsD;IACxD,CAAC;IAED,qCAAqC;IACrC,OAAO,CACL,OAAO,CAAC,GAAG,CAAC,aAAa;QACzB,OAAO,CAAC,GAAG,CAAC,iBAAiB;QAC7B,qBAAqB,CACtB,CAAA;AACH,CAAC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * @rovela-ai/sdk/media/api/delete
3
+ *
4
+ * API route handler for deleting files from R2 storage.
5
+ *
6
+ * Usage:
7
+ * ```typescript
8
+ * // app/api/media/route.ts
9
+ * export { DELETE } from '@rovela-ai/sdk/media/api/delete'
10
+ * ```
11
+ */
12
+ import { NextRequest, NextResponse } from 'next/server';
13
+ import type { DeleteApiResponse, MediaApiError } from '../types';
14
+ /**
15
+ * DELETE /api/media
16
+ *
17
+ * Delete one or more files from R2 storage.
18
+ *
19
+ * Request Body (single file):
20
+ * {
21
+ * url: string // Public URL of the file to delete
22
+ * }
23
+ *
24
+ * Request Body (multiple files):
25
+ * {
26
+ * urls: string[] // Array of public URLs to delete
27
+ * }
28
+ *
29
+ * Response (single):
30
+ * {
31
+ * success: boolean,
32
+ * error?: string
33
+ * }
34
+ *
35
+ * Response (multiple):
36
+ * {
37
+ * success: boolean,
38
+ * succeeded?: string[],
39
+ * failed?: string[],
40
+ * error?: string
41
+ * }
42
+ */
43
+ export declare function DELETE(request: NextRequest): Promise<NextResponse<DeleteApiResponse | MediaApiError>>;
44
+ //# sourceMappingURL=delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/media/api/delete.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAKvD,OAAO,KAAK,EAAoB,iBAAiB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAuDlF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,MAAM,CAC1B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC,iBAAiB,GAAG,aAAa,CAAC,CAAC,CAqE1D"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * @rovela-ai/sdk/media/api/delete
3
+ *
4
+ * API route handler for deleting files from R2 storage.
5
+ *
6
+ * Usage:
7
+ * ```typescript
8
+ * // app/api/media/route.ts
9
+ * export { DELETE } from '@rovela-ai/sdk/media/api/delete'
10
+ * ```
11
+ */
12
+ import { NextResponse } from 'next/server';
13
+ import { getServerSession } from 'next-auth';
14
+ import { createAuthOptions } from '../../auth/config';
15
+ import { deleteFile, deleteFiles } from '../server/delete';
16
+ import { isMediaConfigured } from '../config';
17
+ // =============================================================================
18
+ // Auth Helper
19
+ // =============================================================================
20
+ async function requireAdmin() {
21
+ const session = await getServerSession(createAuthOptions());
22
+ const user = session?.user;
23
+ if (!user?.role || !['owner', 'admin'].includes(user.role)) {
24
+ return NextResponse.json({ success: false, error: 'Unauthorized', code: 'UNAUTHORIZED' }, { status: 401 });
25
+ }
26
+ return null;
27
+ }
28
+ // =============================================================================
29
+ // Validation
30
+ // =============================================================================
31
+ function validateRequest(body) {
32
+ if (!body || typeof body !== 'object') {
33
+ return { valid: false, error: 'Request body is required' };
34
+ }
35
+ const req = body;
36
+ // Check for single URL
37
+ if (req.url && typeof req.url === 'string') {
38
+ return { valid: true, url: req.url };
39
+ }
40
+ // Check for multiple URLs
41
+ if (req.urls && Array.isArray(req.urls)) {
42
+ const urls = req.urls.filter((u) => typeof u === 'string');
43
+ if (urls.length === 0) {
44
+ return { valid: false, error: 'urls array must contain at least one valid URL' };
45
+ }
46
+ return { valid: true, urls };
47
+ }
48
+ return { valid: false, error: 'url (string) or urls (string[]) is required' };
49
+ }
50
+ // =============================================================================
51
+ // DELETE Handler
52
+ // =============================================================================
53
+ /**
54
+ * DELETE /api/media
55
+ *
56
+ * Delete one or more files from R2 storage.
57
+ *
58
+ * Request Body (single file):
59
+ * {
60
+ * url: string // Public URL of the file to delete
61
+ * }
62
+ *
63
+ * Request Body (multiple files):
64
+ * {
65
+ * urls: string[] // Array of public URLs to delete
66
+ * }
67
+ *
68
+ * Response (single):
69
+ * {
70
+ * success: boolean,
71
+ * error?: string
72
+ * }
73
+ *
74
+ * Response (multiple):
75
+ * {
76
+ * success: boolean,
77
+ * succeeded?: string[],
78
+ * failed?: string[],
79
+ * error?: string
80
+ * }
81
+ */
82
+ export async function DELETE(request) {
83
+ // Check admin auth
84
+ const authError = await requireAdmin();
85
+ if (authError)
86
+ return authError;
87
+ // Check if media is configured
88
+ if (!isMediaConfigured()) {
89
+ return NextResponse.json({
90
+ success: false,
91
+ error: 'Media storage not configured',
92
+ code: 'NOT_CONFIGURED',
93
+ }, { status: 503 });
94
+ }
95
+ try {
96
+ // Parse request body
97
+ const body = await request.json();
98
+ // Validate request
99
+ const validation = validateRequest(body);
100
+ if (!validation.valid) {
101
+ return NextResponse.json({ success: false, error: validation.error || 'Invalid request' }, { status: 400 });
102
+ }
103
+ // Handle single file deletion
104
+ if (validation.url) {
105
+ try {
106
+ await deleteFile(validation.url);
107
+ return NextResponse.json({ success: true });
108
+ }
109
+ catch (error) {
110
+ const message = error instanceof Error ? error.message : 'Failed to delete file';
111
+ return NextResponse.json({ success: false, error: message }, { status: 400 });
112
+ }
113
+ }
114
+ // Handle multiple file deletion
115
+ if (validation.urls) {
116
+ const result = await deleteFiles(validation.urls);
117
+ return NextResponse.json({
118
+ success: result.failed.length === 0,
119
+ succeeded: result.succeeded,
120
+ failed: result.failed,
121
+ });
122
+ }
123
+ return NextResponse.json({ success: false, error: 'No files specified' }, { status: 400 });
124
+ }
125
+ catch (error) {
126
+ console.error('[Media API] Delete error:', error);
127
+ return NextResponse.json({
128
+ success: false,
129
+ error: 'Failed to delete file(s)',
130
+ code: 'DELETE_FAILED',
131
+ }, { status: 500 });
132
+ }
133
+ }
134
+ //# sourceMappingURL=delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/media/api/delete.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @rovela-ai/sdk/media/api
3
+ *
4
+ * API route handlers for media operations.
5
+ *
6
+ * Usage:
7
+ * ```typescript
8
+ * // app/api/media/presign/route.ts
9
+ * export { POST } from '@rovela-ai/sdk/media/api'
10
+ *
11
+ * // app/api/media/route.ts
12
+ * export { DELETE } from '@rovela-ai/sdk/media/api'
13
+ * ```
14
+ */
15
+ export { POST } from './presign';
16
+ export { DELETE } from './delete';
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/media/api/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @rovela-ai/sdk/media/api
3
+ *
4
+ * API route handlers for media operations.
5
+ *
6
+ * Usage:
7
+ * ```typescript
8
+ * // app/api/media/presign/route.ts
9
+ * export { POST } from '@rovela-ai/sdk/media/api'
10
+ *
11
+ * // app/api/media/route.ts
12
+ * export { DELETE } from '@rovela-ai/sdk/media/api'
13
+ * ```
14
+ */
15
+ export { POST } from './presign';
16
+ export { DELETE } from './delete';
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/media/api/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * @rovela-ai/sdk/media/api/presign
3
+ *
4
+ * API route handler for generating presigned upload URLs.
5
+ *
6
+ * Usage:
7
+ * ```typescript
8
+ * // app/api/media/presign/route.ts
9
+ * export { POST } from '@rovela-ai/sdk/media/api/presign'
10
+ * ```
11
+ */
12
+ import { NextRequest, NextResponse } from 'next/server';
13
+ import type { PresignApiResponse, MediaApiError } from '../types';
14
+ /**
15
+ * POST /api/media/presign
16
+ *
17
+ * Generate a presigned URL for uploading a file to R2.
18
+ *
19
+ * Request Body:
20
+ * {
21
+ * filename: string, // Original filename (for extension)
22
+ * contentType: string, // MIME type (must be allowed type)
23
+ * folder: 'products' | 'categories' | 'variants' | 'general',
24
+ * entityId?: string // Optional entity ID for organization
25
+ * }
26
+ *
27
+ * Response:
28
+ * {
29
+ * success: true,
30
+ * data: {
31
+ * uploadUrl: string, // Presigned PUT URL (expires in 5 min)
32
+ * publicUrl: string, // Final accessible URL after upload
33
+ * key: string, // Storage key
34
+ * expiresAt: string // ISO date when URL expires
35
+ * }
36
+ * }
37
+ */
38
+ export declare function POST(request: NextRequest): Promise<NextResponse<PresignApiResponse | MediaApiError>>;
39
+ //# sourceMappingURL=presign.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presign.d.ts","sourceRoot":"","sources":["../../../src/media/api/presign.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAMvD,OAAO,KAAK,EAEV,kBAAkB,EAClB,aAAa,EAEd,MAAM,UAAU,CAAA;AAkFjB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,IAAI,CACxB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC,kBAAkB,GAAG,aAAa,CAAC,CAAC,CAgD3D"}
@@ -0,0 +1,138 @@
1
+ /**
2
+ * @rovela-ai/sdk/media/api/presign
3
+ *
4
+ * API route handler for generating presigned upload URLs.
5
+ *
6
+ * Usage:
7
+ * ```typescript
8
+ * // app/api/media/presign/route.ts
9
+ * export { POST } from '@rovela-ai/sdk/media/api/presign'
10
+ * ```
11
+ */
12
+ import { NextResponse } from 'next/server';
13
+ import { getServerSession } from 'next-auth';
14
+ import { createAuthOptions } from '../../auth/config';
15
+ import { generatePresignedUrl } from '../server/presign';
16
+ import { isMediaConfigured, getUploadConfig } from '../config';
17
+ // =============================================================================
18
+ // Auth Helper
19
+ // =============================================================================
20
+ async function requireAdmin() {
21
+ const session = await getServerSession(createAuthOptions());
22
+ const user = session?.user;
23
+ if (!user?.role || !['owner', 'admin'].includes(user.role)) {
24
+ return NextResponse.json({ success: false, error: 'Unauthorized', code: 'UNAUTHORIZED' }, { status: 401 });
25
+ }
26
+ return null;
27
+ }
28
+ // =============================================================================
29
+ // Validation
30
+ // =============================================================================
31
+ const VALID_FOLDERS = ['products', 'categories', 'variants', 'general'];
32
+ function validateRequest(body) {
33
+ if (!body || typeof body !== 'object') {
34
+ return { valid: false, error: 'Request body is required' };
35
+ }
36
+ const req = body;
37
+ // Validate filename
38
+ if (!req.filename || typeof req.filename !== 'string') {
39
+ return { valid: false, error: 'filename is required' };
40
+ }
41
+ // Validate contentType
42
+ if (!req.contentType || typeof req.contentType !== 'string') {
43
+ return { valid: false, error: 'contentType is required' };
44
+ }
45
+ // Validate folder
46
+ if (!req.folder || typeof req.folder !== 'string') {
47
+ return { valid: false, error: 'folder is required' };
48
+ }
49
+ if (!VALID_FOLDERS.includes(req.folder)) {
50
+ return { valid: false, error: `folder must be one of: ${VALID_FOLDERS.join(', ')}` };
51
+ }
52
+ // Validate entityId (optional)
53
+ if (req.entityId !== undefined && typeof req.entityId !== 'string') {
54
+ return { valid: false, error: 'entityId must be a string' };
55
+ }
56
+ // Validate content type against allowed types
57
+ const uploadConfig = getUploadConfig();
58
+ if (!uploadConfig.allowedTypes.includes(req.contentType)) {
59
+ return {
60
+ valid: false,
61
+ error: `Content type ${req.contentType} is not allowed. Allowed: ${uploadConfig.allowedTypes.join(', ')}`,
62
+ };
63
+ }
64
+ return {
65
+ valid: true,
66
+ data: {
67
+ filename: req.filename,
68
+ contentType: req.contentType,
69
+ folder: req.folder,
70
+ entityId: req.entityId,
71
+ },
72
+ };
73
+ }
74
+ // =============================================================================
75
+ // POST Handler
76
+ // =============================================================================
77
+ /**
78
+ * POST /api/media/presign
79
+ *
80
+ * Generate a presigned URL for uploading a file to R2.
81
+ *
82
+ * Request Body:
83
+ * {
84
+ * filename: string, // Original filename (for extension)
85
+ * contentType: string, // MIME type (must be allowed type)
86
+ * folder: 'products' | 'categories' | 'variants' | 'general',
87
+ * entityId?: string // Optional entity ID for organization
88
+ * }
89
+ *
90
+ * Response:
91
+ * {
92
+ * success: true,
93
+ * data: {
94
+ * uploadUrl: string, // Presigned PUT URL (expires in 5 min)
95
+ * publicUrl: string, // Final accessible URL after upload
96
+ * key: string, // Storage key
97
+ * expiresAt: string // ISO date when URL expires
98
+ * }
99
+ * }
100
+ */
101
+ export async function POST(request) {
102
+ // Check admin auth
103
+ const authError = await requireAdmin();
104
+ if (authError)
105
+ return authError;
106
+ // Check if media is configured
107
+ if (!isMediaConfigured()) {
108
+ return NextResponse.json({
109
+ success: false,
110
+ error: 'Media storage not configured',
111
+ code: 'NOT_CONFIGURED',
112
+ }, { status: 503 });
113
+ }
114
+ try {
115
+ // Parse request body
116
+ const body = await request.json();
117
+ // Validate request
118
+ const validation = validateRequest(body);
119
+ if (!validation.valid || !validation.data) {
120
+ return NextResponse.json({ success: false, error: validation.error || 'Invalid request' }, { status: 400 });
121
+ }
122
+ // Generate presigned URL
123
+ const result = await generatePresignedUrl(validation.data);
124
+ return NextResponse.json({
125
+ success: true,
126
+ data: result,
127
+ });
128
+ }
129
+ catch (error) {
130
+ console.error('[Media API] Presign error:', error);
131
+ return NextResponse.json({
132
+ success: false,
133
+ error: 'Failed to generate upload URL',
134
+ code: 'PRESIGN_FAILED',
135
+ }, { status: 500 });
136
+ }
137
+ }
138
+ //# sourceMappingURL=presign.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presign.js","sourceRoot":"","sources":["../../../src/media/api/presign.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { DropZoneProps } from '../types';
2
+ /**
3
+ * DropZone component for drag-and-drop file selection.
4
+ *
5
+ * @example
6
+ * ```tsx
7
+ * <DropZone
8
+ * onFiles={(files) => handleFiles(files)}
9
+ * multiple
10
+ * accept={['image/jpeg', 'image/png']}
11
+ * >
12
+ * Drop images here
13
+ * </DropZone>
14
+ * ```
15
+ */
16
+ export declare function DropZone({ onFiles, multiple, accept, maxSize, disabled, className, children, }: DropZoneProps): import("react/jsx-runtime").JSX.Element;
17
+ export default DropZone;
18
+ //# sourceMappingURL=DropZone.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DropZone.d.ts","sourceRoot":"","sources":["../../../src/media/components/DropZone.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAG7C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,EACvB,OAAO,EACP,QAAgB,EAChB,MAA2C,EAC3C,OAA4C,EAC5C,QAAgB,EAChB,SAAS,EACT,QAAQ,GACT,EAAE,aAAa,2CAqKf;AAwBD,eAAe,QAAQ,CAAA"}