@classytic/commerce-sdk 0.1.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.

Potentially problematic release.


This version of @classytic/commerce-sdk might be problematic. Click here for more details.

Files changed (131) hide show
  1. package/LICENSE +14 -0
  2. package/README.md +104 -0
  3. package/dist/adjustment-DTSLM7AN.js +5 -0
  4. package/dist/adjustment-DTSLM7AN.js.map +1 -0
  5. package/dist/analytics/index.d.ts +27 -0
  6. package/dist/analytics/index.js +6 -0
  7. package/dist/analytics/index.js.map +1 -0
  8. package/dist/analytics-DMcD-o8w.d.ts +76 -0
  9. package/dist/api-factory-B_h4RKBm.d.ts +280 -0
  10. package/dist/auth/index.d.ts +39 -0
  11. package/dist/auth/index.js +5 -0
  12. package/dist/auth/index.js.map +1 -0
  13. package/dist/catalog/index.d.ts +479 -0
  14. package/dist/catalog/index.js +9 -0
  15. package/dist/catalog/index.js.map +1 -0
  16. package/dist/chunk-4ZQK3FFN.js +40 -0
  17. package/dist/chunk-4ZQK3FFN.js.map +1 -0
  18. package/dist/chunk-5L6EXDGH.js +465 -0
  19. package/dist/chunk-5L6EXDGH.js.map +1 -0
  20. package/dist/chunk-5ZFW3FEI.js +183 -0
  21. package/dist/chunk-5ZFW3FEI.js.map +1 -0
  22. package/dist/chunk-66OQAZSL.js +94 -0
  23. package/dist/chunk-66OQAZSL.js.map +1 -0
  24. package/dist/chunk-6RYGA6MF.js +123 -0
  25. package/dist/chunk-6RYGA6MF.js.map +1 -0
  26. package/dist/chunk-B6MPVOV7.js +328 -0
  27. package/dist/chunk-B6MPVOV7.js.map +1 -0
  28. package/dist/chunk-BDA2WSJA.js +148 -0
  29. package/dist/chunk-BDA2WSJA.js.map +1 -0
  30. package/dist/chunk-EIVYT3HM.js +126 -0
  31. package/dist/chunk-EIVYT3HM.js.map +1 -0
  32. package/dist/chunk-EPQN7ZKZ.js +27 -0
  33. package/dist/chunk-EPQN7ZKZ.js.map +1 -0
  34. package/dist/chunk-FA7QFJ2G.js +177 -0
  35. package/dist/chunk-FA7QFJ2G.js.map +1 -0
  36. package/dist/chunk-I5TIKUIQ.js +261 -0
  37. package/dist/chunk-I5TIKUIQ.js.map +1 -0
  38. package/dist/chunk-ILQUH444.js +135 -0
  39. package/dist/chunk-ILQUH444.js.map +1 -0
  40. package/dist/chunk-IXMWZJLV.js +616 -0
  41. package/dist/chunk-IXMWZJLV.js.map +1 -0
  42. package/dist/chunk-KZIGRIQG.js +75 -0
  43. package/dist/chunk-KZIGRIQG.js.map +1 -0
  44. package/dist/chunk-OF5M6R2S.js +769 -0
  45. package/dist/chunk-OF5M6R2S.js.map +1 -0
  46. package/dist/chunk-PYYLHUV6.js +3 -0
  47. package/dist/chunk-PYYLHUV6.js.map +1 -0
  48. package/dist/chunk-QO5AGZFP.js +159 -0
  49. package/dist/chunk-QO5AGZFP.js.map +1 -0
  50. package/dist/chunk-QUMTBLNE.js +76 -0
  51. package/dist/chunk-QUMTBLNE.js.map +1 -0
  52. package/dist/chunk-R5Z7NYLH.js +126 -0
  53. package/dist/chunk-R5Z7NYLH.js.map +1 -0
  54. package/dist/chunk-SZYWG5IB.js +75 -0
  55. package/dist/chunk-SZYWG5IB.js.map +1 -0
  56. package/dist/chunk-U3XT35GZ.js +202 -0
  57. package/dist/chunk-U3XT35GZ.js.map +1 -0
  58. package/dist/chunk-UGELTUIZ.js +830 -0
  59. package/dist/chunk-UGELTUIZ.js.map +1 -0
  60. package/dist/chunk-VR36QVX2.js +122 -0
  61. package/dist/chunk-VR36QVX2.js.map +1 -0
  62. package/dist/chunk-WUOQK7BO.js +13 -0
  63. package/dist/chunk-WUOQK7BO.js.map +1 -0
  64. package/dist/chunk-X6PV5MHG.js +582 -0
  65. package/dist/chunk-X6PV5MHG.js.map +1 -0
  66. package/dist/chunk-ZWLMFLLH.js +534 -0
  67. package/dist/chunk-ZWLMFLLH.js.map +1 -0
  68. package/dist/content/index.d.ts +309 -0
  69. package/dist/content/index.js +6 -0
  70. package/dist/content/index.js.map +1 -0
  71. package/dist/core/index.d.ts +107 -0
  72. package/dist/core/index.js +5 -0
  73. package/dist/core/index.js.map +1 -0
  74. package/dist/core/react.d.ts +107 -0
  75. package/dist/core/react.js +5 -0
  76. package/dist/core/react.js.map +1 -0
  77. package/dist/coupon-CHFcw7cd.d.ts +632 -0
  78. package/dist/coupon-zGkvO-Xx.d.ts +129 -0
  79. package/dist/crud.factory-DyKaPHcU.d.ts +181 -0
  80. package/dist/finance/index.d.ts +81 -0
  81. package/dist/finance/index.js +5 -0
  82. package/dist/finance/index.js.map +1 -0
  83. package/dist/finance-BJdfKRw0.d.ts +135 -0
  84. package/dist/index.d.ts +31 -0
  85. package/dist/index.js +29 -0
  86. package/dist/index.js.map +1 -0
  87. package/dist/inventory/index.d.ts +512 -0
  88. package/dist/inventory/index.js +16 -0
  89. package/dist/inventory/index.js.map +1 -0
  90. package/dist/inventory-DCiIZh8P.d.ts +742 -0
  91. package/dist/logistics/index.d.ts +226 -0
  92. package/dist/logistics/index.js +7 -0
  93. package/dist/logistics/index.js.map +1 -0
  94. package/dist/logistics-V8a9lUN3.d.ts +428 -0
  95. package/dist/media-CNLJK93J.d.ts +721 -0
  96. package/dist/movement-7MV3ADY5.js +5 -0
  97. package/dist/movement-7MV3ADY5.js.map +1 -0
  98. package/dist/payment-BRboLqvU.d.ts +127 -0
  99. package/dist/payments/index.d.ts +55 -0
  100. package/dist/payments/index.js +6 -0
  101. package/dist/payments/index.js.map +1 -0
  102. package/dist/platform/index.d.ts +645 -0
  103. package/dist/platform/index.js +8 -0
  104. package/dist/platform/index.js.map +1 -0
  105. package/dist/pos-D1jkkFl0.d.ts +885 -0
  106. package/dist/product-p09zXkXB.d.ts +260 -0
  107. package/dist/purchase-24BGT2HA.js +5 -0
  108. package/dist/purchase-24BGT2HA.js.map +1 -0
  109. package/dist/request-652PS6VR.js +5 -0
  110. package/dist/request-652PS6VR.js.map +1 -0
  111. package/dist/sales/index.d.ts +585 -0
  112. package/dist/sales/index.js +9 -0
  113. package/dist/sales/index.js.map +1 -0
  114. package/dist/server.d.ts +120 -0
  115. package/dist/server.js +27 -0
  116. package/dist/server.js.map +1 -0
  117. package/dist/size-guide-DgjzjM5P.d.ts +554 -0
  118. package/dist/stock-DEApGC-w.d.ts +632 -0
  119. package/dist/stock-OOUW57VQ.js +5 -0
  120. package/dist/stock-OOUW57VQ.js.map +1 -0
  121. package/dist/supplier-OC6JAWV6.js +5 -0
  122. package/dist/supplier-OC6JAWV6.js.map +1 -0
  123. package/dist/transaction/index.d.ts +104 -0
  124. package/dist/transaction/index.js +8 -0
  125. package/dist/transaction/index.js.map +1 -0
  126. package/dist/transaction-BTmoHpWh.d.ts +428 -0
  127. package/dist/transaction-u5oaNuav.d.ts +84 -0
  128. package/dist/transfer-7SYSH3RG.js +5 -0
  129. package/dist/transfer-7SYSH3RG.js.map +1 -0
  130. package/dist/user-data-DdLjAGwO.d.ts +132 -0
  131. package/package.json +146 -0
@@ -0,0 +1,721 @@
1
+ import { R as RequestOptions, A as ApiResponse, P as PaginatedResponse, D as DeleteResponse } from './api-factory-B_h4RKBm.js';
2
+
3
+ /**
4
+ * CMS Types - Aligned with lib/cms-data.ts structure
5
+ */
6
+ type CMSPageStatus = "draft" | "published" | "archived";
7
+ interface CMSMetadata {
8
+ title: string;
9
+ description: string;
10
+ keywords: string[];
11
+ ogImage?: string;
12
+ }
13
+ interface CMSPage<T = Record<string, unknown>> {
14
+ _id?: string;
15
+ name: string;
16
+ slug: string;
17
+ status: CMSPageStatus;
18
+ content: T;
19
+ metadata: CMSMetadata;
20
+ publishedAt?: string;
21
+ createdAt?: string;
22
+ updatedAt?: string;
23
+ }
24
+ interface CMSPagePayload {
25
+ name?: string;
26
+ status?: CMSPageStatus;
27
+ content?: Record<string, unknown>;
28
+ metadata?: Partial<CMSMetadata>;
29
+ }
30
+ interface CTA {
31
+ label: string;
32
+ href: string;
33
+ }
34
+ interface ContactInfo {
35
+ email?: string;
36
+ phone?: string;
37
+ address?: string;
38
+ }
39
+ /**
40
+ * Home Page Content
41
+ */
42
+ interface HomePageContent {
43
+ hero: {
44
+ badge: string;
45
+ headline: string[];
46
+ highlightedWord?: string;
47
+ description: string;
48
+ primaryCTA: CTA;
49
+ secondaryCTA?: CTA;
50
+ image?: string;
51
+ floatingBadge?: {
52
+ value: string;
53
+ label: string;
54
+ };
55
+ };
56
+ marquee: {
57
+ items: string[];
58
+ };
59
+ brandStory: {
60
+ badge: string;
61
+ headline: string[];
62
+ paragraphs: string[];
63
+ stats: Array<{
64
+ value: string;
65
+ label: string;
66
+ }>;
67
+ images: string[];
68
+ cta: CTA;
69
+ };
70
+ featuredProducts: {
71
+ badge: string;
72
+ headline: string;
73
+ description: string;
74
+ cta: CTA;
75
+ };
76
+ testimonials: {
77
+ badge: string;
78
+ headline: string;
79
+ items: Array<{
80
+ id: number;
81
+ name: string;
82
+ location: string;
83
+ rating: number;
84
+ text: string;
85
+ avatar: string;
86
+ }>;
87
+ };
88
+ instagramFeed: {
89
+ badge: string;
90
+ headline: string;
91
+ description: string;
92
+ images: string[];
93
+ cta: CTA;
94
+ };
95
+ features?: {
96
+ items: Array<{
97
+ icon: string;
98
+ title: string;
99
+ description: string;
100
+ }>;
101
+ };
102
+ promoBanner?: {
103
+ headline: string;
104
+ subheadline: string;
105
+ description: string;
106
+ cta: CTA;
107
+ backgroundImage: string;
108
+ };
109
+ lookbook?: {
110
+ badge: string;
111
+ headline: string;
112
+ description: string;
113
+ items: Array<{
114
+ id: number;
115
+ title: string;
116
+ image: string;
117
+ href: string;
118
+ }>;
119
+ };
120
+ newsletter?: {
121
+ headline: string;
122
+ description: string;
123
+ placeholder: string;
124
+ buttonText: string;
125
+ disclaimer: string;
126
+ };
127
+ }
128
+ /**
129
+ * Privacy/Terms/Cookies Page Content (Text pages with sections)
130
+ */
131
+ interface PolicyPageContent {
132
+ title: string;
133
+ lastUpdated: string;
134
+ intro?: string;
135
+ sections: Array<{
136
+ title: string;
137
+ content?: string;
138
+ list?: string[];
139
+ subsections?: Array<{
140
+ title: string;
141
+ content: string;
142
+ }>;
143
+ contact?: ContactInfo;
144
+ }>;
145
+ }
146
+ /**
147
+ * Returns Page Content
148
+ */
149
+ interface ReturnsPageContent {
150
+ title: string;
151
+ subtitle: string;
152
+ steps: Array<{
153
+ icon: string;
154
+ title: string;
155
+ description: string;
156
+ }>;
157
+ sections: Array<{
158
+ type: "policy" | "grid" | "text";
159
+ title: string;
160
+ highlight?: {
161
+ title: string;
162
+ content: string;
163
+ };
164
+ columns?: Array<{
165
+ title: string;
166
+ variant: "success" | "destructive";
167
+ items: string[];
168
+ }>;
169
+ content?: string;
170
+ paragraphs?: Array<string | {
171
+ text: string;
172
+ bold?: boolean;
173
+ suffix?: string;
174
+ }>;
175
+ list?: string[];
176
+ footer?: string;
177
+ }>;
178
+ contactSection: {
179
+ title: string;
180
+ content: string;
181
+ email: string;
182
+ phone: string;
183
+ hours: string;
184
+ };
185
+ }
186
+ /**
187
+ * FAQ Page Content
188
+ */
189
+ interface FAQPageContent {
190
+ title: string;
191
+ subtitle: string;
192
+ categories: Array<{
193
+ title: string;
194
+ items: Array<{
195
+ question: string;
196
+ answer: string;
197
+ }>;
198
+ }>;
199
+ contactSection: {
200
+ title: string;
201
+ description: string;
202
+ email: string;
203
+ phone: string;
204
+ hours: string;
205
+ };
206
+ }
207
+ /**
208
+ * About Page Content
209
+ */
210
+ interface AboutPageContent {
211
+ hero: {
212
+ badge: string;
213
+ headline: string;
214
+ description: string;
215
+ image: string;
216
+ };
217
+ story: {
218
+ title: string;
219
+ paragraphs: string[];
220
+ };
221
+ values: {
222
+ title: string;
223
+ items: Array<{
224
+ icon: string;
225
+ title: string;
226
+ description: string;
227
+ }>;
228
+ };
229
+ stats: Array<{
230
+ value: string;
231
+ label: string;
232
+ }>;
233
+ team: {
234
+ title: string;
235
+ description: string;
236
+ members: Array<{
237
+ name: string;
238
+ role: string;
239
+ image: string;
240
+ bio: string;
241
+ }>;
242
+ };
243
+ cta: {
244
+ title: string;
245
+ description: string;
246
+ buttonText: string;
247
+ buttonLink: string;
248
+ };
249
+ }
250
+ /**
251
+ * Contact Page Content
252
+ * Note: contactInfo icons are static (MapPin, Phone, Mail) - no icon field needed
253
+ */
254
+ interface ContactPageContent {
255
+ title: string;
256
+ subtitle: string;
257
+ contactInfo: Array<{
258
+ title: string;
259
+ lines: string[];
260
+ }>;
261
+ form: {
262
+ title: string;
263
+ description: string;
264
+ fields: Array<{
265
+ name: string;
266
+ label: string;
267
+ type: string;
268
+ placeholder?: string;
269
+ required: boolean;
270
+ options?: string[];
271
+ }>;
272
+ submitText: string;
273
+ };
274
+ faq?: {
275
+ title: string;
276
+ description: string;
277
+ link: string;
278
+ linkText: string;
279
+ };
280
+ socialTitle?: string;
281
+ socials: Array<{
282
+ platform: string;
283
+ handle: string;
284
+ url: string;
285
+ }>;
286
+ map?: {
287
+ title: string;
288
+ embedUrl: string;
289
+ };
290
+ }
291
+ /**
292
+ * Size Guide Page Content
293
+ */
294
+ interface SizeGuidePageContent {
295
+ title: string;
296
+ subtitle: string;
297
+ howToMeasure: {
298
+ title: string;
299
+ description: string;
300
+ measurements: Array<{
301
+ name: string;
302
+ icon: string;
303
+ instruction: string;
304
+ }>;
305
+ };
306
+ sizeTables: Array<{
307
+ category: string;
308
+ description: string;
309
+ headers: string[];
310
+ rows: string[][];
311
+ }>;
312
+ fitTypes: {
313
+ title: string;
314
+ types: Array<{
315
+ name: string;
316
+ description: string;
317
+ recommendation: string;
318
+ }>;
319
+ };
320
+ tips: {
321
+ title: string;
322
+ items: string[];
323
+ };
324
+ helpSection: {
325
+ title: string;
326
+ description: string;
327
+ email: string;
328
+ phone: string;
329
+ };
330
+ }
331
+ /**
332
+ * Shipping & Delivery Page Content
333
+ */
334
+ interface ShippingPageContent {
335
+ title: string;
336
+ subtitle: string;
337
+ deliveryMethods: Array<{
338
+ icon: string;
339
+ name: string;
340
+ duration: string;
341
+ price: string;
342
+ description: string;
343
+ }>;
344
+ deliveryAreas: {
345
+ title: string;
346
+ areas: Array<{
347
+ name: string;
348
+ duration: string;
349
+ cost: string;
350
+ }>;
351
+ };
352
+ orderTracking: {
353
+ title: string;
354
+ description: string;
355
+ steps: Array<{
356
+ title: string;
357
+ description: string;
358
+ }>;
359
+ };
360
+ policies: Array<{
361
+ title: string;
362
+ content: string;
363
+ list?: string[];
364
+ }>;
365
+ faq: Array<{
366
+ question: string;
367
+ answer: string;
368
+ }>;
369
+ contactSection: {
370
+ title: string;
371
+ description: string;
372
+ email: string;
373
+ phone: string;
374
+ hours: string;
375
+ };
376
+ }
377
+ type CMSContentBySlug = {
378
+ home: HomePageContent;
379
+ "privacy-policy": PolicyPageContent;
380
+ "terms-conditions": PolicyPageContent;
381
+ cookies: PolicyPageContent;
382
+ "returns-refunds": ReturnsPageContent;
383
+ faqs: FAQPageContent;
384
+ "about-us": AboutPageContent;
385
+ contact: ContactPageContent;
386
+ "size-guide": SizeGuidePageContent;
387
+ "shipping-delivery": ShippingPageContent;
388
+ };
389
+ type CMSSlug = keyof CMSContentBySlug;
390
+
391
+ /**
392
+ * CMS API - Slug-based content management
393
+ *
394
+ * Two endpoints only:
395
+ * - GET /api/v1/cms/:slug - Fetch page (public)
396
+ * - PATCH /api/v1/cms/:slug - Update page (admin, auto-creates if missing)
397
+ */
398
+
399
+ /**
400
+ * Get CMS page by slug (public)
401
+ * Returns page data or null if not found
402
+ * Gracefully handles 404 errors by returning null instead of throwing
403
+ */
404
+ declare function getCmsPage({ slug, options, }: {
405
+ slug: string;
406
+ options?: RequestOptions;
407
+ }): Promise<ApiResponse<CMSPage | null>>;
408
+ /**
409
+ * Update CMS page by slug (admin)
410
+ * Backend auto-creates if page doesn't exist
411
+ */
412
+ declare function updateCmsPage({ slug, token, data, options, }: {
413
+ slug: string;
414
+ token: string;
415
+ data: CMSPagePayload;
416
+ options?: RequestOptions;
417
+ }): Promise<ApiResponse<CMSPage>>;
418
+
419
+ /**
420
+ * Media Types
421
+ * Simple types for media upload, management, and retrieval
422
+ */
423
+ /**
424
+ * Allowed media folders
425
+ */
426
+ type MediaFolder = "general" | "products" | "categories" | "blog" | "users" | "banners" | "brands";
427
+ /**
428
+ * Image variant names (auto-generated on upload)
429
+ * - thumbnail: 150x200 (for grids, lists)
430
+ * - medium: 600x800 (for detail views)
431
+ */
432
+ type VariantName = "thumbnail" | "medium";
433
+ /**
434
+ * Image dimensions
435
+ */
436
+ interface MediaDimensions {
437
+ width: number;
438
+ height: number;
439
+ }
440
+ /**
441
+ * Image variant (resized version)
442
+ */
443
+ interface MediaVariant {
444
+ name: VariantName;
445
+ url: string;
446
+ width: number;
447
+ height: number;
448
+ }
449
+ /**
450
+ * Media document (image file with metadata)
451
+ */
452
+ interface Media {
453
+ _id: string;
454
+ url: string;
455
+ filename: string;
456
+ folder: MediaFolder;
457
+ alt?: string;
458
+ title?: string;
459
+ size: number;
460
+ dimensions: MediaDimensions;
461
+ variants?: MediaVariant[];
462
+ contentType?: string;
463
+ createdAt: string;
464
+ updatedAt?: string;
465
+ }
466
+ /**
467
+ * Upload single file payload
468
+ */
469
+ interface UploadPayload {
470
+ file: File | Blob;
471
+ folder?: MediaFolder;
472
+ alt?: string;
473
+ title?: string;
474
+ }
475
+ /**
476
+ * Upload multiple files payload
477
+ */
478
+ interface UploadMultiplePayload {
479
+ files: (File | Blob)[];
480
+ folder?: MediaFolder;
481
+ }
482
+ /**
483
+ * Update media payload
484
+ */
485
+ interface UpdateMediaPayload {
486
+ alt?: string;
487
+ title?: string;
488
+ }
489
+ /**
490
+ * Bulk delete payload
491
+ */
492
+ interface BulkDeletePayload {
493
+ ids: string[];
494
+ }
495
+ /**
496
+ * Move files payload
497
+ */
498
+ interface MoveFilesPayload {
499
+ ids: string[];
500
+ targetFolder: MediaFolder;
501
+ }
502
+ /**
503
+ * Query parameters for media listing
504
+ */
505
+ interface MediaQueryParams {
506
+ page?: number;
507
+ limit?: number;
508
+ folder?: MediaFolder;
509
+ search?: string;
510
+ sort?: string;
511
+ }
512
+ /**
513
+ * Bulk delete result
514
+ */
515
+ interface BulkDeleteResult {
516
+ success: string[];
517
+ failed: string[];
518
+ }
519
+ /**
520
+ * Move files result
521
+ */
522
+ interface MoveFilesResult {
523
+ modifiedCount: number;
524
+ }
525
+
526
+ type FetchOptions = Omit<RequestOptions, "token" | "organizationId">;
527
+ /**
528
+ * Media API - Image upload and management
529
+ *
530
+ * Endpoints:
531
+ * - POST /api/media/upload (single file upload)
532
+ * - POST /api/media/upload-multiple (multiple files)
533
+ * - GET /api/media (list with filters)
534
+ * - GET /api/media/:id (get single)
535
+ * - PATCH /api/media/:id (update alt/title)
536
+ * - DELETE /api/media/:id (delete single)
537
+ * - GET /api/media/folders (get allowed folders)
538
+ *
539
+ * Features:
540
+ * - Auto WebP conversion
541
+ * - Auto variants: thumbnail (150x200), medium (600x800)
542
+ * - Max size: 50MB
543
+ * - S3 storage with CDN
544
+ *
545
+ * Usage Examples:
546
+ * - mediaApi.upload({ token: 'xxx', file, folder: 'products' })
547
+ * - mediaApi.getAll({ params: { folder: 'products', limit: 20 }})
548
+ * - mediaApi.update({ token: 'xxx', id: '123', data: { alt: 'New alt' }})
549
+ * - mediaApi.delete({ token: 'xxx', id: '123' })
550
+ */
551
+ declare class MediaApi {
552
+ private readonly baseUrl;
553
+ private readonly defaultCache;
554
+ constructor(config?: {
555
+ basePath?: string;
556
+ cache?: RequestCache;
557
+ });
558
+ /**
559
+ * Upload single file
560
+ * POST /api/media/upload
561
+ *
562
+ * @example
563
+ * const file = event.target.files[0];
564
+ * const result = await mediaApi.upload({
565
+ * token: 'xxx',
566
+ * file,
567
+ * folder: 'products',
568
+ * alt: 'Product image'
569
+ * });
570
+ */
571
+ upload({ token, file, folder, alt, title, options, }: {
572
+ token: string;
573
+ file: File | Blob;
574
+ folder?: MediaFolder;
575
+ alt?: string;
576
+ title?: string;
577
+ options?: FetchOptions;
578
+ }): Promise<ApiResponse<Media>>;
579
+ /**
580
+ * Upload multiple files (max 20)
581
+ * POST /api/media/upload-multiple
582
+ *
583
+ * @example
584
+ * const files = Array.from(event.target.files);
585
+ * const result = await mediaApi.uploadMultiple({
586
+ * token: 'xxx',
587
+ * files,
588
+ * folder: 'products'
589
+ * });
590
+ */
591
+ uploadMultiple({ token, files, folder, options, }: {
592
+ token: string;
593
+ files: (File | Blob)[];
594
+ folder?: MediaFolder;
595
+ options?: FetchOptions;
596
+ }): Promise<ApiResponse<Media[]>>;
597
+ /**
598
+ * Get all media with filtering
599
+ * GET /api/media
600
+ *
601
+ * @example
602
+ * const result = await mediaApi.getAll({
603
+ * token: 'xxx',
604
+ * params: {
605
+ * folder: 'products',
606
+ * search: 'shirt',
607
+ * limit: 20,
608
+ * sort: '-createdAt'
609
+ * }
610
+ * });
611
+ */
612
+ getAll({ token, params, options, }?: {
613
+ token: string;
614
+ params?: MediaQueryParams;
615
+ options?: FetchOptions;
616
+ }): Promise<PaginatedResponse<Media>>;
617
+ /**
618
+ * Get single media by ID
619
+ * GET /api/media/:id
620
+ *
621
+ * @example
622
+ * const result = await mediaApi.getById({ token: 'xxx', id: '123abc' });
623
+ */
624
+ getById({ token, id, options, }: {
625
+ token: string;
626
+ id: string;
627
+ options?: FetchOptions;
628
+ }): Promise<ApiResponse<Media>>;
629
+ /**
630
+ * Update media metadata (alt, title)
631
+ * PATCH /api/media/:id
632
+ *
633
+ * @example
634
+ * await mediaApi.update({
635
+ * token: 'xxx',
636
+ * id: '123',
637
+ * data: { alt: 'New alt text', title: 'New title' }
638
+ * });
639
+ */
640
+ update({ token, id, data, options, }: {
641
+ token: string;
642
+ id: string;
643
+ data: UpdateMediaPayload;
644
+ options?: FetchOptions;
645
+ }): Promise<ApiResponse<Media>>;
646
+ /**
647
+ * Delete single media
648
+ * DELETE /api/media/:id
649
+ *
650
+ * @example
651
+ * await mediaApi.delete({ token: 'xxx', id: '123' });
652
+ */
653
+ delete({ token, id, options, }: {
654
+ token: string;
655
+ id: string;
656
+ options?: FetchOptions;
657
+ }): Promise<DeleteResponse>;
658
+ /**
659
+ * Bulk delete multiple files
660
+ * POST /api/media/bulk-delete
661
+ *
662
+ * @example
663
+ * await mediaApi.bulkDelete({
664
+ * token: 'xxx',
665
+ * ids: ['123', '456', '789']
666
+ * });
667
+ */
668
+ bulkDelete({ token, ids, options, }: {
669
+ token: string;
670
+ ids: string[];
671
+ options?: FetchOptions;
672
+ }): Promise<ApiResponse<BulkDeleteResult>>;
673
+ /**
674
+ * Move files to different folder
675
+ * POST /api/media/move
676
+ *
677
+ * @example
678
+ * await mediaApi.moveToFolder({
679
+ * token: 'xxx',
680
+ * ids: ['123', '456'],
681
+ * targetFolder: 'banners'
682
+ * });
683
+ */
684
+ moveToFolder({ token, data, options, }: {
685
+ token: string;
686
+ data: MoveFilesPayload;
687
+ options?: FetchOptions;
688
+ }): Promise<ApiResponse<MoveFilesResult>>;
689
+ /**
690
+ * Get allowed folders
691
+ * GET /api/media/folders
692
+ *
693
+ * @example
694
+ * const result = await mediaApi.getFolders({ token: 'xxx' });
695
+ * // result.data = ['general', 'products', 'categories', ...]
696
+ */
697
+ getFolders({ token, options, }: {
698
+ token: string;
699
+ options?: FetchOptions;
700
+ }): Promise<ApiResponse<MediaFolder[]>>;
701
+ /**
702
+ * Helper: Get variant URL by name
703
+ * Falls back to original URL if variant not found
704
+ *
705
+ * @example
706
+ * const thumbnailUrl = mediaApi.getVariantUrl(media, 'thumbnail');
707
+ * <img src={thumbnailUrl} />
708
+ */
709
+ getVariantUrl(media: Media, variantName: string): string;
710
+ /**
711
+ * Helper: Get thumbnail URL
712
+ */
713
+ getThumbnailUrl(media: Media): string;
714
+ /**
715
+ * Helper: Get medium URL
716
+ */
717
+ getMediumUrl(media: Media): string;
718
+ }
719
+ declare const mediaApi: MediaApi;
720
+
721
+ export { type AboutPageContent as A, type BulkDeletePayload as B, type CMSPageStatus as C, type FAQPageContent as F, type HomePageContent as H, MediaApi as M, type PolicyPageContent as P, type ReturnsPageContent as R, type SizeGuidePageContent as S, type UploadPayload as U, type VariantName as V, type CMSMetadata as a, type CMSPage as b, type CMSPagePayload as c, type ContactPageContent as d, type ShippingPageContent as e, type CMSContentBySlug as f, getCmsPage as g, type CMSSlug as h, type MediaFolder as i, type MediaDimensions as j, type MediaVariant as k, type Media as l, mediaApi as m, type UploadMultiplePayload as n, type UpdateMediaPayload as o, type MoveFilesPayload as p, type MediaQueryParams as q, type BulkDeleteResult as r, type MoveFilesResult as s, updateCmsPage as u };
@@ -0,0 +1,5 @@
1
+ export { MovementApi, movementApi } from './chunk-SZYWG5IB.js';
2
+ import './chunk-I5TIKUIQ.js';
3
+ import './chunk-VR36QVX2.js';
4
+ //# sourceMappingURL=movement-7MV3ADY5.js.map
5
+ //# sourceMappingURL=movement-7MV3ADY5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"movement-7MV3ADY5.js"}