@mano8/astro-media-m8 1.1.0 → 2.0.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 (123) hide show
  1. package/README.md +54 -11
  2. package/dist/src/integration.d.ts.map +1 -1
  3. package/dist/src/integration.js +1 -0
  4. package/dist/src/integration.js.map +1 -1
  5. package/dist/src/runtime/api/categories.d.ts +14 -8
  6. package/dist/src/runtime/api/categories.d.ts.map +1 -1
  7. package/dist/src/runtime/api/categories.js +21 -8
  8. package/dist/src/runtime/api/categories.js.map +1 -1
  9. package/dist/src/runtime/api/index.d.ts +8 -0
  10. package/dist/src/runtime/api/index.d.ts.map +1 -1
  11. package/dist/src/runtime/api/index.js +8 -0
  12. package/dist/src/runtime/api/index.js.map +1 -1
  13. package/dist/src/runtime/api/transfer.d.ts +19 -0
  14. package/dist/src/runtime/api/transfer.d.ts.map +1 -0
  15. package/dist/src/runtime/api/transfer.js +48 -0
  16. package/dist/src/runtime/api/transfer.js.map +1 -0
  17. package/dist/src/runtime/client.d.ts.map +1 -1
  18. package/dist/src/runtime/client.js +7 -1
  19. package/dist/src/runtime/client.js.map +1 -1
  20. package/dist/src/runtime/compatibility.d.ts +6 -6
  21. package/dist/src/runtime/compatibility.d.ts.map +1 -1
  22. package/dist/src/runtime/compatibility.js +59 -7
  23. package/dist/src/runtime/compatibility.js.map +1 -1
  24. package/dist/src/runtime/errors.d.ts +20 -2
  25. package/dist/src/runtime/errors.d.ts.map +1 -1
  26. package/dist/src/runtime/errors.js +53 -2
  27. package/dist/src/runtime/errors.js.map +1 -1
  28. package/dist/src/runtime/hooks/index.d.ts +2 -0
  29. package/dist/src/runtime/hooks/index.d.ts.map +1 -1
  30. package/dist/src/runtime/hooks/index.js +2 -0
  31. package/dist/src/runtime/hooks/index.js.map +1 -1
  32. package/dist/src/runtime/hooks/useMediaCategories.d.ts +30 -0
  33. package/dist/src/runtime/hooks/useMediaCategories.d.ts.map +1 -0
  34. package/dist/src/runtime/hooks/useMediaCategories.js +56 -0
  35. package/dist/src/runtime/hooks/useMediaCategories.js.map +1 -0
  36. package/dist/src/runtime/hooks/useMediaObjects.d.ts.map +1 -1
  37. package/dist/src/runtime/hooks/useMediaObjects.js +14 -2
  38. package/dist/src/runtime/hooks/useMediaObjects.js.map +1 -1
  39. package/dist/src/runtime/hooks/useMediaTransfer.d.ts +42 -0
  40. package/dist/src/runtime/hooks/useMediaTransfer.d.ts.map +1 -0
  41. package/dist/src/runtime/hooks/useMediaTransfer.js +106 -0
  42. package/dist/src/runtime/hooks/useMediaTransfer.js.map +1 -0
  43. package/dist/src/runtime/queryKeys.d.ts +2 -0
  44. package/dist/src/runtime/queryKeys.d.ts.map +1 -1
  45. package/dist/src/runtime/queryKeys.js +2 -0
  46. package/dist/src/runtime/queryKeys.js.map +1 -1
  47. package/dist/src/runtime/react/CategoryManager.d.ts +10 -0
  48. package/dist/src/runtime/react/CategoryManager.d.ts.map +1 -0
  49. package/dist/src/runtime/react/CategoryManager.js +194 -0
  50. package/dist/src/runtime/react/CategoryManager.js.map +1 -0
  51. package/dist/src/runtime/react/CategoryMultiSelect.d.ts +73 -0
  52. package/dist/src/runtime/react/CategoryMultiSelect.d.ts.map +1 -0
  53. package/dist/src/runtime/react/CategoryMultiSelect.js +179 -0
  54. package/dist/src/runtime/react/CategoryMultiSelect.js.map +1 -0
  55. package/dist/src/runtime/react/MediaCategoryTreePane.d.ts +22 -0
  56. package/dist/src/runtime/react/MediaCategoryTreePane.d.ts.map +1 -0
  57. package/dist/src/runtime/react/MediaCategoryTreePane.js +244 -0
  58. package/dist/src/runtime/react/MediaCategoryTreePane.js.map +1 -0
  59. package/dist/src/runtime/react/MediaErrorBoundary.d.ts +53 -0
  60. package/dist/src/runtime/react/MediaErrorBoundary.d.ts.map +1 -0
  61. package/dist/src/runtime/react/MediaErrorBoundary.js +58 -0
  62. package/dist/src/runtime/react/MediaErrorBoundary.js.map +1 -0
  63. package/dist/src/runtime/react/MediaLibrary.d.ts +16 -1
  64. package/dist/src/runtime/react/MediaLibrary.d.ts.map +1 -1
  65. package/dist/src/runtime/react/MediaLibrary.js +75 -110
  66. package/dist/src/runtime/react/MediaLibrary.js.map +1 -1
  67. package/dist/src/runtime/react/MediaObjectViews.d.ts +47 -0
  68. package/dist/src/runtime/react/MediaObjectViews.d.ts.map +1 -0
  69. package/dist/src/runtime/react/MediaObjectViews.js +131 -0
  70. package/dist/src/runtime/react/MediaObjectViews.js.map +1 -0
  71. package/dist/src/runtime/react/MediaTransferPanel.d.ts +17 -0
  72. package/dist/src/runtime/react/MediaTransferPanel.d.ts.map +1 -0
  73. package/dist/src/runtime/react/MediaTransferPanel.js +93 -0
  74. package/dist/src/runtime/react/MediaTransferPanel.js.map +1 -0
  75. package/dist/src/runtime/react/MediaUploadDropzone.d.ts +36 -1
  76. package/dist/src/runtime/react/MediaUploadDropzone.d.ts.map +1 -1
  77. package/dist/src/runtime/react/MediaUploadDropzone.js +63 -3
  78. package/dist/src/runtime/react/MediaUploadDropzone.js.map +1 -1
  79. package/dist/src/runtime/react/ObjectDetail.d.ts.map +1 -1
  80. package/dist/src/runtime/react/ObjectDetail.js +51 -1
  81. package/dist/src/runtime/react/ObjectDetail.js.map +1 -1
  82. package/dist/src/runtime/react/categoryBranch.d.ts +38 -0
  83. package/dist/src/runtime/react/categoryBranch.d.ts.map +1 -0
  84. package/dist/src/runtime/react/categoryBranch.js +37 -0
  85. package/dist/src/runtime/react/categoryBranch.js.map +1 -0
  86. package/dist/src/runtime/react/default-ui/index.d.ts +6 -2
  87. package/dist/src/runtime/react/default-ui/index.d.ts.map +1 -1
  88. package/dist/src/runtime/react/default-ui/index.js +14 -9
  89. package/dist/src/runtime/react/default-ui/index.js.map +1 -1
  90. package/dist/src/runtime/react/index.d.ts +5 -2
  91. package/dist/src/runtime/react/index.d.ts.map +1 -1
  92. package/dist/src/runtime/react/index.js +3 -0
  93. package/dist/src/runtime/react/index.js.map +1 -1
  94. package/dist/src/runtime/react/mediaLibraryLabels.d.ts +93 -0
  95. package/dist/src/runtime/react/mediaLibraryLabels.d.ts.map +1 -0
  96. package/dist/src/runtime/react/mediaLibraryLabels.js +100 -0
  97. package/dist/src/runtime/react/mediaLibraryLabels.js.map +1 -0
  98. package/dist/src/runtime/react/mediaLibraryStyles.d.ts +44 -0
  99. package/dist/src/runtime/react/mediaLibraryStyles.d.ts.map +1 -0
  100. package/dist/src/runtime/react/mediaLibraryStyles.js +82 -0
  101. package/dist/src/runtime/react/mediaLibraryStyles.js.map +1 -0
  102. package/dist/src/runtime/routes.d.ts +2 -0
  103. package/dist/src/runtime/routes.d.ts.map +1 -1
  104. package/dist/src/runtime/routes.js +2 -0
  105. package/dist/src/runtime/routes.js.map +1 -1
  106. package/dist/src/runtime/schemas.d.ts +265 -0
  107. package/dist/src/runtime/schemas.d.ts.map +1 -1
  108. package/dist/src/runtime/schemas.js +173 -6
  109. package/dist/src/runtime/schemas.js.map +1 -1
  110. package/dist/src/runtime/upload/uploadController.d.ts +7 -0
  111. package/dist/src/runtime/upload/uploadController.d.ts.map +1 -1
  112. package/dist/src/runtime/upload/uploadController.js +10 -5
  113. package/dist/src/runtime/upload/uploadController.js.map +1 -1
  114. package/package.json +37 -30
  115. package/registry/r/media-category-tree.json +21 -0
  116. package/registry/r/media-dashboard-overview.json +1 -1
  117. package/registry/r/media-library-tree.json +25 -0
  118. package/registry/r/media-maintenance-panel.json +3 -2
  119. package/registry/r/media-transfer-dialog.json +26 -0
  120. package/registry/r/registry.json +18 -0
  121. package/registry.json +61 -1
  122. package/src/routes/categories.astro +12 -0
  123. package/src/scaffold/styles/media.css +395 -5
@@ -68,6 +68,30 @@ export declare const SortOrderSchema: z.ZodEnum<{
68
68
  desc: "desc";
69
69
  }>;
70
70
  export type SortOrder = z.infer<typeof SortOrderSchema>;
71
+ export declare const MediaObjectCategoryRefSchema: z.ZodObject<{
72
+ id: z.ZodNumber;
73
+ name: z.ZodString;
74
+ path: z.ZodString;
75
+ }, z.core.$strict>;
76
+ export type MediaObjectCategoryRef = z.infer<typeof MediaObjectCategoryRefSchema>;
77
+ export declare const MEDIA_CATEGORY_MAX_DEPTH = 10;
78
+ export type CategoryNode = {
79
+ id: number;
80
+ owner_id: string;
81
+ tenant_id: string | null;
82
+ name: string;
83
+ slug: string;
84
+ parent_id: number | null;
85
+ object_count: number;
86
+ total_object_count: number;
87
+ children: CategoryNode[];
88
+ };
89
+ export declare const CategoryNodeSchema: z.ZodType<CategoryNode, unknown, z.core.$ZodTypeInternals<CategoryNode, unknown>>;
90
+ export declare const CategoryTreeSchema: z.ZodObject<{
91
+ data: z.ZodArray<z.ZodType<CategoryNode, unknown, z.core.$ZodTypeInternals<CategoryNode, unknown>>>;
92
+ count: z.ZodDefault<z.ZodNumber>;
93
+ }, z.core.$strict>;
94
+ export type CategoryTree = z.infer<typeof CategoryTreeSchema>;
71
95
  export declare const MediaObjectPublicSchema: z.ZodObject<{
72
96
  id: z.ZodString;
73
97
  tenant_id: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -117,6 +141,11 @@ export declare const MediaObjectPublicSchema: z.ZodObject<{
117
141
  skipped: "skipped";
118
142
  approved: "approved";
119
143
  }>;
144
+ categories: z.ZodDefault<z.ZodArray<z.ZodObject<{
145
+ id: z.ZodNumber;
146
+ name: z.ZodString;
147
+ path: z.ZodString;
148
+ }, z.core.$strict>>>;
120
149
  created_at: z.ZodString;
121
150
  updated_at: z.ZodString;
122
151
  deleted_at: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -138,6 +167,7 @@ export declare const MediaObjectUpdateSchema: z.ZodObject<{
138
167
  export: "export";
139
168
  receipt: "receipt";
140
169
  }>>;
170
+ category_ids: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodNumber>>>;
141
171
  }, z.core.$strict>;
142
172
  export type MediaObjectUpdate = z.infer<typeof MediaObjectUpdateSchema>;
143
173
  export declare const ObjectListResponseSchema: z.ZodObject<{
@@ -190,6 +220,11 @@ export declare const ObjectListResponseSchema: z.ZodObject<{
190
220
  skipped: "skipped";
191
221
  approved: "approved";
192
222
  }>;
223
+ categories: z.ZodDefault<z.ZodArray<z.ZodObject<{
224
+ id: z.ZodNumber;
225
+ name: z.ZodString;
226
+ path: z.ZodString;
227
+ }, z.core.$strict>>>;
193
228
  created_at: z.ZodString;
194
229
  updated_at: z.ZodString;
195
230
  deleted_at: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -217,6 +252,9 @@ export type ObjectListParams = {
217
252
  cursor?: string;
218
253
  owner_user_id?: string;
219
254
  include_deleted?: boolean;
255
+ category_id?: number;
256
+ include_descendants?: boolean;
257
+ uncategorized?: boolean;
220
258
  };
221
259
  export declare const ScanResultRequestSchema: z.ZodObject<{
222
260
  scan_status: z.ZodEnum<{
@@ -246,6 +284,7 @@ export declare const UploadInitiateRequestSchema: z.ZodObject<{
246
284
  original_filename: z.ZodString;
247
285
  mime_type: z.ZodString;
248
286
  expected_size_bytes: z.ZodNumber;
287
+ category_ids: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
249
288
  }, z.core.$strict>;
250
289
  export type UploadInitiateRequest = z.infer<typeof UploadInitiateRequestSchema>;
251
290
  export declare const UploadInitiateResponseSchema: z.ZodObject<{
@@ -257,6 +296,7 @@ export declare const UploadInitiateResponseSchema: z.ZodObject<{
257
296
  export type UploadInitiateResponse = z.infer<typeof UploadInitiateResponseSchema>;
258
297
  export declare const UploadCompleteRequestSchema: z.ZodObject<{
259
298
  sha256: z.ZodOptional<z.ZodNullable<z.ZodString>>;
299
+ category_ids: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
260
300
  }, z.core.$strict>;
261
301
  export type UploadCompleteRequest = z.infer<typeof UploadCompleteRequestSchema>;
262
302
  export declare const UploadCompleteResponseSchema: z.ZodObject<{
@@ -309,6 +349,11 @@ export declare const UploadCompleteResponseSchema: z.ZodObject<{
309
349
  skipped: "skipped";
310
350
  approved: "approved";
311
351
  }>;
352
+ categories: z.ZodDefault<z.ZodArray<z.ZodObject<{
353
+ id: z.ZodNumber;
354
+ name: z.ZodString;
355
+ path: z.ZodString;
356
+ }, z.core.$strict>>>;
312
357
  created_at: z.ZodString;
313
358
  updated_at: z.ZodString;
314
359
  deleted_at: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -769,26 +814,32 @@ export type UsersActivity = z.infer<typeof UsersActivitySchema>;
769
814
  export declare const CategoryPublicSchema: z.ZodObject<{
770
815
  id: z.ZodNumber;
771
816
  owner_id: z.ZodString;
817
+ tenant_id: z.ZodDefault<z.ZodNullable<z.ZodString>>;
772
818
  name: z.ZodString;
773
819
  slug: z.ZodString;
820
+ parent_id: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
774
821
  }, z.core.$strict>;
775
822
  export type CategoryPublic = z.infer<typeof CategoryPublicSchema>;
776
823
  export declare const CategoriesPublicSchema: z.ZodObject<{
777
824
  data: z.ZodArray<z.ZodObject<{
778
825
  id: z.ZodNumber;
779
826
  owner_id: z.ZodString;
827
+ tenant_id: z.ZodDefault<z.ZodNullable<z.ZodString>>;
780
828
  name: z.ZodString;
781
829
  slug: z.ZodString;
830
+ parent_id: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
782
831
  }, z.core.$strict>>;
783
832
  count: z.ZodNumber;
784
833
  }, z.core.$strict>;
785
834
  export type CategoriesPublic = z.infer<typeof CategoriesPublicSchema>;
786
835
  export declare const CategoryCreateSchema: z.ZodObject<{
787
836
  name: z.ZodString;
837
+ parent_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
788
838
  }, z.core.$strict>;
789
839
  export type CategoryCreate = z.infer<typeof CategoryCreateSchema>;
790
840
  export declare const CategoryUpdateSchema: z.ZodObject<{
791
841
  name: z.ZodString;
842
+ parent_id: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
792
843
  }, z.core.$strict>;
793
844
  export type CategoryUpdate = z.infer<typeof CategoryUpdateSchema>;
794
845
  export declare const ResponseMessageSchema: z.ZodObject<{
@@ -809,4 +860,218 @@ export declare const ResponseModelOrMessageSchema: z.ZodUnion<readonly [z.ZodObj
809
860
  msg: z.ZodString;
810
861
  }, z.core.$strict>]>;
811
862
  export type ResponseModelOrMessage = z.infer<typeof ResponseModelOrMessageSchema>;
863
+ export declare const ExportFormatSchema: z.ZodEnum<{
864
+ manifest: "manifest";
865
+ archive: "archive";
866
+ }>;
867
+ export type ExportFormat = z.infer<typeof ExportFormatSchema>;
868
+ export declare const ManifestObjectEntrySchema: z.ZodObject<{
869
+ id: z.ZodString;
870
+ filename: z.ZodDefault<z.ZodNullable<z.ZodString>>;
871
+ category: z.ZodEnum<{
872
+ avatar: "avatar";
873
+ document: "document";
874
+ asset: "asset";
875
+ chat_attachment: "chat_attachment";
876
+ export: "export";
877
+ receipt: "receipt";
878
+ }>;
879
+ category_paths: z.ZodDefault<z.ZodArray<z.ZodString>>;
880
+ visibility: z.ZodEnum<{
881
+ public: "public";
882
+ private: "private";
883
+ tenant: "tenant";
884
+ sensitive: "sensitive";
885
+ }>;
886
+ size_bytes: z.ZodNumber;
887
+ sha256: z.ZodDefault<z.ZodNullable<z.ZodString>>;
888
+ mime_type: z.ZodString;
889
+ status: z.ZodEnum<{
890
+ pending_upload: "pending_upload";
891
+ uploaded: "uploaded";
892
+ processing: "processing";
893
+ ready: "ready";
894
+ failed: "failed";
895
+ deleted: "deleted";
896
+ rejected: "rejected";
897
+ }>;
898
+ scan_status: z.ZodEnum<{
899
+ pending: "pending";
900
+ clean: "clean";
901
+ infected: "infected";
902
+ quarantined: "quarantined";
903
+ skipped: "skipped";
904
+ }>;
905
+ created_at: z.ZodString;
906
+ updated_at: z.ZodString;
907
+ }, z.core.$strict>;
908
+ export type ManifestObjectEntry = z.infer<typeof ManifestObjectEntrySchema>;
909
+ export declare const ExportManifestSchema: z.ZodObject<{
910
+ category_tree: z.ZodArray<z.ZodType<CategoryNode, unknown, z.core.$ZodTypeInternals<CategoryNode, unknown>>>;
911
+ objects: z.ZodArray<z.ZodObject<{
912
+ id: z.ZodString;
913
+ filename: z.ZodDefault<z.ZodNullable<z.ZodString>>;
914
+ category: z.ZodEnum<{
915
+ avatar: "avatar";
916
+ document: "document";
917
+ asset: "asset";
918
+ chat_attachment: "chat_attachment";
919
+ export: "export";
920
+ receipt: "receipt";
921
+ }>;
922
+ category_paths: z.ZodDefault<z.ZodArray<z.ZodString>>;
923
+ visibility: z.ZodEnum<{
924
+ public: "public";
925
+ private: "private";
926
+ tenant: "tenant";
927
+ sensitive: "sensitive";
928
+ }>;
929
+ size_bytes: z.ZodNumber;
930
+ sha256: z.ZodDefault<z.ZodNullable<z.ZodString>>;
931
+ mime_type: z.ZodString;
932
+ status: z.ZodEnum<{
933
+ pending_upload: "pending_upload";
934
+ uploaded: "uploaded";
935
+ processing: "processing";
936
+ ready: "ready";
937
+ failed: "failed";
938
+ deleted: "deleted";
939
+ rejected: "rejected";
940
+ }>;
941
+ scan_status: z.ZodEnum<{
942
+ pending: "pending";
943
+ clean: "clean";
944
+ infected: "infected";
945
+ quarantined: "quarantined";
946
+ skipped: "skipped";
947
+ }>;
948
+ created_at: z.ZodString;
949
+ updated_at: z.ZodString;
950
+ }, z.core.$strict>>;
951
+ }, z.core.$strict>;
952
+ export type ExportManifest = z.infer<typeof ExportManifestSchema>;
953
+ export declare const ExportJobStatusSchema: z.ZodEnum<{
954
+ processing: "processing";
955
+ failed: "failed";
956
+ queued: "queued";
957
+ completed: "completed";
958
+ }>;
959
+ export type ExportJobStatus = z.infer<typeof ExportJobStatusSchema>;
960
+ export declare const ExportJobPublicSchema: z.ZodObject<{
961
+ id: z.ZodString;
962
+ status: z.ZodEnum<{
963
+ processing: "processing";
964
+ failed: "failed";
965
+ queued: "queued";
966
+ completed: "completed";
967
+ }>;
968
+ object_count: z.ZodNumber;
969
+ total_size_bytes: z.ZodNumber;
970
+ size_bytes: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
971
+ expires_at: z.ZodDefault<z.ZodNullable<z.ZodString>>;
972
+ error: z.ZodDefault<z.ZodNullable<z.ZodString>>;
973
+ created_at: z.ZodString;
974
+ updated_at: z.ZodString;
975
+ download_url: z.ZodDefault<z.ZodNullable<z.ZodString>>;
976
+ }, z.core.$strict>;
977
+ export type ExportJobPublic = z.infer<typeof ExportJobPublicSchema>;
978
+ /** Body of `POST /export`. `filters` reuses `ObjectListParams` (`D-filter`). */
979
+ export type ExportRequest = {
980
+ format: ExportFormat;
981
+ filters?: ObjectListParams;
982
+ };
983
+ export declare const ImportFormatSchema: z.ZodEnum<{
984
+ manifest: "manifest";
985
+ archive: "archive";
986
+ }>;
987
+ export type ImportFormat = z.infer<typeof ImportFormatSchema>;
988
+ export declare const ImportRowStatusSchema: z.ZodEnum<{
989
+ failed: "failed";
990
+ skipped: "skipped";
991
+ created: "created";
992
+ linked: "linked";
993
+ }>;
994
+ export type ImportRowStatus = z.infer<typeof ImportRowStatusSchema>;
995
+ export declare const ImportRowReasonSchema: z.ZodEnum<{
996
+ size_exceeded: "size_exceeded";
997
+ mime_mismatch: "mime_mismatch";
998
+ sha256_mismatch: "sha256_mismatch";
999
+ quota_bytes_exceeded: "quota_bytes_exceeded";
1000
+ quota_objects_exceeded: "quota_objects_exceeded";
1001
+ missing_bytes: "missing_bytes";
1002
+ already_exists: "already_exists";
1003
+ id_conflict: "id_conflict";
1004
+ unsupported_mime: "unsupported_mime";
1005
+ invalid_metadata: "invalid_metadata";
1006
+ storage_error: "storage_error";
1007
+ }>;
1008
+ export type ImportRowReason = z.infer<typeof ImportRowReasonSchema>;
1009
+ export declare const ImportObjectResultSchema: z.ZodObject<{
1010
+ source_id: z.ZodString;
1011
+ filename: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1012
+ status: z.ZodEnum<{
1013
+ failed: "failed";
1014
+ skipped: "skipped";
1015
+ created: "created";
1016
+ linked: "linked";
1017
+ }>;
1018
+ reason: z.ZodDefault<z.ZodNullable<z.ZodEnum<{
1019
+ size_exceeded: "size_exceeded";
1020
+ mime_mismatch: "mime_mismatch";
1021
+ sha256_mismatch: "sha256_mismatch";
1022
+ quota_bytes_exceeded: "quota_bytes_exceeded";
1023
+ quota_objects_exceeded: "quota_objects_exceeded";
1024
+ missing_bytes: "missing_bytes";
1025
+ already_exists: "already_exists";
1026
+ id_conflict: "id_conflict";
1027
+ unsupported_mime: "unsupported_mime";
1028
+ invalid_metadata: "invalid_metadata";
1029
+ storage_error: "storage_error";
1030
+ }>>>;
1031
+ message: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1032
+ media_object_id: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1033
+ category_paths: z.ZodDefault<z.ZodArray<z.ZodString>>;
1034
+ scan_queued: z.ZodDefault<z.ZodBoolean>;
1035
+ }, z.core.$strict>;
1036
+ export type ImportObjectResult = z.infer<typeof ImportObjectResultSchema>;
1037
+ export declare const ImportReportSchema: z.ZodObject<{
1038
+ format: z.ZodEnum<{
1039
+ manifest: "manifest";
1040
+ archive: "archive";
1041
+ }>;
1042
+ categories_created: z.ZodDefault<z.ZodNumber>;
1043
+ categories_reused: z.ZodDefault<z.ZodNumber>;
1044
+ created: z.ZodDefault<z.ZodNumber>;
1045
+ linked: z.ZodDefault<z.ZodNumber>;
1046
+ skipped: z.ZodDefault<z.ZodNumber>;
1047
+ failed: z.ZodDefault<z.ZodNumber>;
1048
+ objects: z.ZodDefault<z.ZodArray<z.ZodObject<{
1049
+ source_id: z.ZodString;
1050
+ filename: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1051
+ status: z.ZodEnum<{
1052
+ failed: "failed";
1053
+ skipped: "skipped";
1054
+ created: "created";
1055
+ linked: "linked";
1056
+ }>;
1057
+ reason: z.ZodDefault<z.ZodNullable<z.ZodEnum<{
1058
+ size_exceeded: "size_exceeded";
1059
+ mime_mismatch: "mime_mismatch";
1060
+ sha256_mismatch: "sha256_mismatch";
1061
+ quota_bytes_exceeded: "quota_bytes_exceeded";
1062
+ quota_objects_exceeded: "quota_objects_exceeded";
1063
+ missing_bytes: "missing_bytes";
1064
+ already_exists: "already_exists";
1065
+ id_conflict: "id_conflict";
1066
+ unsupported_mime: "unsupported_mime";
1067
+ invalid_metadata: "invalid_metadata";
1068
+ storage_error: "storage_error";
1069
+ }>>>;
1070
+ message: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1071
+ media_object_id: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1072
+ category_paths: z.ZodDefault<z.ZodArray<z.ZodString>>;
1073
+ scan_queued: z.ZodDefault<z.ZodBoolean>;
1074
+ }, z.core.$strict>>>;
1075
+ }, z.core.$strict>;
1076
+ export type ImportReport = z.infer<typeof ImportReportSchema>;
812
1077
  //# sourceMappingURL=schemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/runtime/schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/runtime/schemas.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,48 @@ const nullableIsoDate = isoDate.nullable();
38
38
  // ---------------------------------------------------------------------------
39
39
  // Media objects
40
40
  // ---------------------------------------------------------------------------
41
+ // ---------------------------------------------------------------------------
42
+ // User categories (nested, tenant-scoped, M2M — mirrors
43
+ // media_service/db_models/categories.py CategoryNode / MediaObjectCategoryRef)
44
+ // ---------------------------------------------------------------------------
45
+ export const MediaObjectCategoryRefSchema = z
46
+ .object({
47
+ id: z.number().int(),
48
+ name: z.string(),
49
+ path: z.string()
50
+ })
51
+ .strict();
52
+ // Keep this aligned with media-service-m8's default
53
+ // `MEDIA_IMPORT_MAX_CATEGORY_DEPTH`. The bounded schema stops an untrusted
54
+ // response from driving unbounded recursive parsing in the browser.
55
+ export const MEDIA_CATEGORY_MAX_DEPTH = 10;
56
+ function categoryNodeSchemaAtDepth(depth) {
57
+ return z.lazy(() => {
58
+ const children = depth < MEDIA_CATEGORY_MAX_DEPTH
59
+ ? z.array(categoryNodeSchemaAtDepth(depth + 1))
60
+ : z.array(z.never()).max(0, `Category tree cannot exceed ${MEDIA_CATEGORY_MAX_DEPTH} levels.`);
61
+ return z
62
+ .object({
63
+ id: z.number().int(),
64
+ owner_id: uuid,
65
+ tenant_id: uuid.nullable().default(null),
66
+ name: z.string().min(1).max(50),
67
+ slug: z.string().min(1).max(50),
68
+ parent_id: z.number().int().nullable().default(null),
69
+ object_count: z.number().int().nonnegative().default(0),
70
+ total_object_count: z.number().int().nonnegative().default(0),
71
+ children: children.default([])
72
+ })
73
+ .strict();
74
+ });
75
+ }
76
+ export const CategoryNodeSchema = categoryNodeSchemaAtDepth(1);
77
+ export const CategoryTreeSchema = z
78
+ .object({
79
+ data: z.array(CategoryNodeSchema),
80
+ count: z.number().int().nonnegative().default(0)
81
+ })
82
+ .strict();
41
83
  export const MediaObjectPublicSchema = z
42
84
  .object({
43
85
  id: uuid,
@@ -57,6 +99,7 @@ export const MediaObjectPublicSchema = z
57
99
  status: MediaObjectStatusSchema,
58
100
  scan_status: ScanStatusSchema,
59
101
  moderation_status: ModerationStatusSchema,
102
+ categories: z.array(MediaObjectCategoryRefSchema).default([]),
60
103
  created_at: isoDate,
61
104
  updated_at: isoDate,
62
105
  deleted_at: nullableIsoDate.default(null)
@@ -66,7 +109,12 @@ export const MediaObjectUpdateSchema = z
66
109
  .object({
67
110
  visibility: MediaVisibilitySchema.optional(),
68
111
  original_filename: z.string().nullable().optional(),
69
- category: MediaCategorySchema.optional()
112
+ category: MediaCategorySchema.optional(),
113
+ // Set semantics (`U4`): a body carrying `category_ids` replaces the
114
+ // object's whole filing — `[]` unfiles it — while omitting the field
115
+ // leaves the existing filing alone, so it stays optional rather than
116
+ // defaulting to `[]`.
117
+ category_ids: z.array(z.number().int()).max(50).nullable().optional()
70
118
  })
71
119
  .strict();
72
120
  export const ObjectListResponseSchema = z
@@ -96,7 +144,13 @@ export const UploadInitiateRequestSchema = z
96
144
  visibility: MediaVisibilitySchema,
97
145
  original_filename: z.string(),
98
146
  mime_type: z.string(),
99
- expected_size_bytes: z.number().int().nonnegative()
147
+ expected_size_bytes: z.number().int().nonnegative(),
148
+ // Optional user categories to file the completed object into (`U4`); the
149
+ // fixed `category` above is untouched and still drives policy. Optional
150
+ // rather than defaulted so an existing caller that omits it compiles
151
+ // unchanged — the server's own `default_factory=list` covers the wire
152
+ // omission the same way.
153
+ category_ids: z.array(z.number().int()).max(50).optional()
100
154
  })
101
155
  .strict();
102
156
  export const UploadInitiateResponseSchema = z
@@ -109,7 +163,16 @@ export const UploadInitiateResponseSchema = z
109
163
  .strict();
110
164
  export const UploadCompleteRequestSchema = z
111
165
  .object({
112
- sha256: z.string().nullable().optional()
166
+ sha256: z.string().nullable().optional(),
167
+ // Set semantics, and the *second* place a filing can be declared (`U4`):
168
+ // the service replaces whatever `POST /uploads/initiate` staged with this
169
+ // array, and `[]` completes the object filed into nothing. Omitting the
170
+ // key is not the same as sending `[]` — the service re-resolves the
171
+ // session's staged ids on omission, which is what the upload controller
172
+ // relies on today. Declared here because the schema is `.strict()`: the
173
+ // served contract accepts the field, so a caller that means to override
174
+ // at complete time must not have it rejected client-side.
175
+ category_ids: z.array(z.number().int()).max(50).optional()
113
176
  })
114
177
  .strict();
115
178
  export const UploadCompleteResponseSchema = z
@@ -386,14 +449,25 @@ export const UsersActivitySchema = z
386
449
  })
387
450
  .strict();
388
451
  // ---------------------------------------------------------------------------
389
- // Legacy categories
452
+ // Categories — CRUD (list/get/add/edit/delete under `legacyBase`)
390
453
  // ---------------------------------------------------------------------------
454
+ //
455
+ // `get`/`add`/`edit`/`delete` moved off the legacy `{success, data}` envelope
456
+ // onto typed responses when the server controller was extracted
457
+ // (media-service-m8 `58bc3f9`); `CategoryPublic` also grew `parent_id` and
458
+ // `tenant_id` from the nested-category model (`U3`), on every route that
459
+ // returns it, `list` included. `ResponseMessageSchema` /
460
+ // `ResponseModelBaseSchema` / `ResponseModelOrMessageSchema` below are no
461
+ // longer used by `api/categories.ts` for this reason, but stay exported —
462
+ // dropping a published `./schemas` export is a separate, unreviewed break.
391
463
  export const CategoryPublicSchema = z
392
464
  .object({
393
465
  id: z.number().int(),
394
466
  owner_id: uuid,
467
+ tenant_id: uuid.nullable().default(null),
395
468
  name: z.string().min(1).max(50),
396
- slug: z.string().min(1).max(50)
469
+ slug: z.string().min(1).max(50),
470
+ parent_id: z.number().int().nullable().default(null)
397
471
  })
398
472
  .strict();
399
473
  export const CategoriesPublicSchema = z
@@ -404,7 +478,8 @@ export const CategoriesPublicSchema = z
404
478
  .strict();
405
479
  export const CategoryCreateSchema = z
406
480
  .object({
407
- name: z.string().min(1).max(50)
481
+ name: z.string().min(1).max(50),
482
+ parent_id: z.number().int().nullable().optional()
408
483
  })
409
484
  .strict();
410
485
  export const CategoryUpdateSchema = CategoryCreateSchema;
@@ -424,4 +499,96 @@ export const ResponseModelOrMessageSchema = z.union([
424
499
  ResponseModelBaseSchema,
425
500
  ResponseMessageSchema
426
501
  ]);
502
+ // ---------------------------------------------------------------------------
503
+ // Export / import (`U9`/`U10`) — mirrors media_service/schemas/transfer.py.
504
+ // Both directions share one `manifest`/`archive` format vocabulary but use
505
+ // separate object shapes: an export projects rows this service already owns,
506
+ // while an import parses an attacker-controlled file, so the fields an
507
+ // import must never trust (`status`, `scan_status`, timestamps, foreign row
508
+ // ids) are simply absent from the inbound `Import*` shapes below.
509
+ // ---------------------------------------------------------------------------
510
+ export const ExportFormatSchema = z.enum(["manifest", "archive"]);
511
+ export const ManifestObjectEntrySchema = z
512
+ .object({
513
+ id: uuid,
514
+ filename: z.string().nullable().default(null),
515
+ category: MediaCategorySchema,
516
+ category_paths: z.array(z.string()).default([]),
517
+ visibility: MediaVisibilitySchema,
518
+ size_bytes: z.number().int().nonnegative(),
519
+ sha256: z.string().length(64).nullable().default(null),
520
+ mime_type: z.string(),
521
+ status: MediaObjectStatusSchema,
522
+ scan_status: ScanStatusSchema,
523
+ created_at: isoDate,
524
+ updated_at: isoDate
525
+ })
526
+ .strict();
527
+ // The streamed body of a `manifest` export (`GET`/`POST .../export`), parsed
528
+ // whole client-side — the server streams it incrementally, but nothing on
529
+ // this side of the wire needs to.
530
+ export const ExportManifestSchema = z
531
+ .object({
532
+ category_tree: z.array(CategoryNodeSchema),
533
+ objects: z.array(ManifestObjectEntrySchema)
534
+ })
535
+ .strict();
536
+ export const ExportJobStatusSchema = z.enum(["queued", "processing", "completed", "failed"]);
537
+ export const ExportJobPublicSchema = z
538
+ .object({
539
+ id: uuid,
540
+ status: ExportJobStatusSchema,
541
+ object_count: z.number().int().nonnegative(),
542
+ total_size_bytes: z.number().int().nonnegative(),
543
+ size_bytes: z.number().int().nonnegative().nullable().default(null),
544
+ expires_at: nullableIsoDate.default(null),
545
+ error: z.string().nullable().default(null),
546
+ created_at: isoDate,
547
+ updated_at: isoDate,
548
+ // Populated only while the job is `completed` and its archive has not
549
+ // lapsed — a short-lived presigned GET, minted per status read.
550
+ download_url: z.string().nullable().default(null)
551
+ })
552
+ .strict();
553
+ export const ImportFormatSchema = ExportFormatSchema;
554
+ export const ImportRowStatusSchema = z.enum(["created", "linked", "skipped", "failed"]);
555
+ // The first five are `U1`'s upload-reject vocabulary, reused verbatim; the
556
+ // rest name outcomes only an import can have.
557
+ export const ImportRowReasonSchema = z.enum([
558
+ "size_exceeded",
559
+ "mime_mismatch",
560
+ "sha256_mismatch",
561
+ "quota_bytes_exceeded",
562
+ "quota_objects_exceeded",
563
+ "missing_bytes",
564
+ "already_exists",
565
+ "id_conflict",
566
+ "unsupported_mime",
567
+ "invalid_metadata",
568
+ "storage_error"
569
+ ]);
570
+ export const ImportObjectResultSchema = z
571
+ .object({
572
+ source_id: uuid,
573
+ filename: z.string().nullable().default(null),
574
+ status: ImportRowStatusSchema,
575
+ reason: ImportRowReasonSchema.nullable().default(null),
576
+ message: z.string().nullable().default(null),
577
+ media_object_id: uuid.nullable().default(null),
578
+ category_paths: z.array(z.string()).default([]),
579
+ scan_queued: z.boolean().default(false)
580
+ })
581
+ .strict();
582
+ export const ImportReportSchema = z
583
+ .object({
584
+ format: ImportFormatSchema,
585
+ categories_created: z.number().int().nonnegative().default(0),
586
+ categories_reused: z.number().int().nonnegative().default(0),
587
+ created: z.number().int().nonnegative().default(0),
588
+ linked: z.number().int().nonnegative().default(0),
589
+ skipped: z.number().int().nonnegative().default(0),
590
+ failed: z.number().int().nonnegative().default(0),
591
+ objects: z.array(ImportObjectResultSchema).default([])
592
+ })
593
+ .strict();
427
594
  //# sourceMappingURL=schemas.js.map