@dudousxd/nestjs-media-dashboard 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.
@@ -0,0 +1,3 @@
1
+ export * from './types.js';
2
+ export { apiBase, mediaConsoleClient, type MediaConsoleClient } from './media-console-client.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './types.js';
2
+ export { apiBase, mediaConsoleClient } from './media-console-client.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAA2B,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,40 @@
1
+ import type { CollectionsResponse, DiskListResponse, LibraryDetailResponse, LibraryListResponse, ObjectDetailResponse, ObjectListResponse, Topology, UploadDetailResponse, UploadListResponse } from './types.js';
2
+ declare global {
3
+ interface Window {
4
+ __MEDIA_API__?: string;
5
+ __MEDIA_BASE__?: string;
6
+ }
7
+ }
8
+ /** Where the SPA fetches the JSON API — injected by the UI controller, or a sensible default. */
9
+ export declare function apiBase(): string;
10
+ /** Typed browser client for the /media console JSON API. Rides ambient cookies (host guards). */
11
+ export declare const mediaConsoleClient: {
12
+ topology: () => Promise<Topology>;
13
+ disks: () => Promise<DiskListResponse>;
14
+ objects: (disk: string, params?: {
15
+ prefix?: string;
16
+ cursor?: string;
17
+ limit?: number;
18
+ }) => Promise<ObjectListResponse>;
19
+ object: (disk: string, key: string) => Promise<ObjectDetailResponse>;
20
+ uploads: (params?: {
21
+ disk?: string;
22
+ prefix?: string;
23
+ }) => Promise<UploadListResponse>;
24
+ upload: (id: string) => Promise<UploadDetailResponse>;
25
+ collections: () => Promise<CollectionsResponse>;
26
+ library: (params?: {
27
+ collection?: string;
28
+ disk?: string;
29
+ cursor?: string;
30
+ limit?: number;
31
+ }) => Promise<LibraryListResponse>;
32
+ libraryRecord: (id: string) => Promise<LibraryDetailResponse>;
33
+ deleteObject: (disk: string, key: string) => Promise<void>;
34
+ copyObject: (disk: string, from: string, to: string) => Promise<void>;
35
+ moveObject: (disk: string, from: string, to: string) => Promise<void>;
36
+ abortUpload: (id: string) => Promise<void>;
37
+ deleteLibraryRecord: (id: string) => Promise<void>;
38
+ };
39
+ export type MediaConsoleClient = typeof mediaConsoleClient;
40
+ //# sourceMappingURL=media-console-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-console-client.d.ts","sourceRoot":"","sources":["../../src/client/media-console-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,QAAQ,EACR,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB;CACF;AAED,iGAAiG;AACjG,wBAAgB,OAAO,IAAI,MAAM,CAMhC;AAgCD,iGAAiG;AACjG,eAAO,MAAM,kBAAkB;oBACf,OAAO,CAAC,QAAQ,CAAC;iBACpB,OAAO,CAAC,gBAAgB,CAAC;oBAE5B,MAAM,WACJ;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAC3D,OAAO,CAAC,kBAAkB,CAAC;mBAEf,MAAM,OAAO,MAAM,KAAG,OAAO,CAAC,oBAAoB,CAAC;uBAEhD;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAAQ,OAAO,CAAC,kBAAkB,CAAC;iBAE1E,MAAM,KAAG,OAAO,CAAC,oBAAoB,CAAC;uBAElC,OAAO,CAAC,mBAAmB,CAAC;uBAEnC;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAC9E,OAAO,CAAC,mBAAmB,CAAC;wBACX,MAAM,KAAG,OAAO,CAAC,qBAAqB,CAAC;yBAEtC,MAAM,OAAO,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;uBAErC,MAAM,QAAQ,MAAM,MAAM,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;uBAEhD,MAAM,QAAQ,MAAM,MAAM,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;sBAEjD,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;8BAEd,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;CAEjD,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAC"}
@@ -0,0 +1,54 @@
1
+ /** Where the SPA fetches the JSON API — injected by the UI controller, or a sensible default. */
2
+ export function apiBase() {
3
+ if (typeof window !== 'undefined') {
4
+ if (window.__MEDIA_API__)
5
+ return window.__MEDIA_API__;
6
+ if (window.__MEDIA_BASE__)
7
+ return `${window.__MEDIA_BASE__}/api`;
8
+ }
9
+ return '/media/api';
10
+ }
11
+ function withQuery(path, params) {
12
+ const search = new URLSearchParams();
13
+ for (const [key, value] of Object.entries(params)) {
14
+ if (value !== undefined && value !== '')
15
+ search.set(key, String(value));
16
+ }
17
+ const query = search.toString();
18
+ return query ? `${path}?${query}` : path;
19
+ }
20
+ async function getJson(path) {
21
+ const response = await fetch(`${apiBase()}${path}`, { credentials: 'same-origin' });
22
+ if (!response.ok)
23
+ throw new Error(`${response.status} ${response.statusText}`);
24
+ return response.json();
25
+ }
26
+ async function send(method, path, body) {
27
+ const response = await fetch(`${apiBase()}${path}`, {
28
+ method,
29
+ credentials: 'same-origin',
30
+ ...(body
31
+ ? { headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(body) }
32
+ : {}),
33
+ });
34
+ if (!response.ok)
35
+ throw new Error(`${response.status} ${response.statusText}`);
36
+ }
37
+ /** Typed browser client for the /media console JSON API. Rides ambient cookies (host guards). */
38
+ export const mediaConsoleClient = {
39
+ topology: () => getJson('/topology'),
40
+ disks: () => getJson('/disks'),
41
+ objects: (disk, params = {}) => getJson(withQuery(`/disks/${encodeURIComponent(disk)}/objects`, params)),
42
+ object: (disk, key) => getJson(withQuery(`/disks/${encodeURIComponent(disk)}/object`, { key })),
43
+ uploads: (params = {}) => getJson(withQuery('/uploads', params)),
44
+ upload: (id) => getJson(`/uploads/${encodeURIComponent(id)}`),
45
+ collections: () => getJson('/library/collections'),
46
+ library: (params = {}) => getJson(withQuery('/library', params)),
47
+ libraryRecord: (id) => getJson(`/library/${encodeURIComponent(id)}`),
48
+ deleteObject: (disk, key) => send('DELETE', withQuery(`/disks/${encodeURIComponent(disk)}/object`, { key })),
49
+ copyObject: (disk, from, to) => send('POST', `/disks/${encodeURIComponent(disk)}/copy`, { from, to }),
50
+ moveObject: (disk, from, to) => send('POST', `/disks/${encodeURIComponent(disk)}/move`, { from, to }),
51
+ abortUpload: (id) => send('POST', `/uploads/${encodeURIComponent(id)}/abort`),
52
+ deleteLibraryRecord: (id) => send('DELETE', `/library/${encodeURIComponent(id)}`),
53
+ };
54
+ //# sourceMappingURL=media-console-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-console-client.js","sourceRoot":"","sources":["../../src/client/media-console-client.ts"],"names":[],"mappings":"AAmBA,iGAAiG;AACjG,MAAM,UAAU,OAAO;IACrB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,IAAI,MAAM,CAAC,aAAa;YAAE,OAAO,MAAM,CAAC,aAAa,CAAC;QACtD,IAAI,MAAM,CAAC,cAAc;YAAE,OAAO,GAAG,MAAM,CAAC,cAAc,MAAM,CAAC;IACnE,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,MAAmD;IAClF,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAChC,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3C,CAAC;AAED,KAAK,UAAU,OAAO,CAAI,IAAY;IACpC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;IACpF,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IAC/E,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC;AAED,KAAK,UAAU,IAAI,CACjB,MAAyB,EACzB,IAAY,EACZ,IAA6B;IAE7B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE;QAClD,MAAM;QACN,WAAW,EAAE,aAAa;QAC1B,GAAG,CAAC,IAAI;YACN,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACjF,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;AACjF,CAAC;AAED,iGAAiG;AACjG,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,QAAQ,EAAE,GAAsB,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;IACvD,KAAK,EAAE,GAA8B,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;IACzD,OAAO,EAAE,CACP,IAAY,EACZ,SAA+D,EAAE,EACpC,EAAE,CAC/B,OAAO,CAAC,SAAS,CAAC,UAAU,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC1E,MAAM,EAAE,CAAC,IAAY,EAAE,GAAW,EAAiC,EAAE,CACnE,OAAO,CAAC,SAAS,CAAC,UAAU,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1E,OAAO,EAAE,CAAC,SAA6C,EAAE,EAA+B,EAAE,CACxF,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,EAAE,CAAC,EAAU,EAAiC,EAAE,CACpD,OAAO,CAAC,YAAY,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC;IAC/C,WAAW,EAAE,GAAiC,EAAE,CAAC,OAAO,CAAC,sBAAsB,CAAC;IAChF,OAAO,EAAE,CACP,SAAkF,EAAE,EACtD,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACzE,aAAa,EAAE,CAAC,EAAU,EAAkC,EAAE,CAC5D,OAAO,CAAC,YAAY,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC;IAC/C,YAAY,EAAE,CAAC,IAAY,EAAE,GAAW,EAAiB,EAAE,CACzD,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,UAAU,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IACjF,UAAU,EAAE,CAAC,IAAY,EAAE,IAAY,EAAE,EAAU,EAAiB,EAAE,CACpE,IAAI,CAAC,MAAM,EAAE,UAAU,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IACvE,UAAU,EAAE,CAAC,IAAY,EAAE,IAAY,EAAE,EAAU,EAAiB,EAAE,CACpE,IAAI,CAAC,MAAM,EAAE,UAAU,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IACvE,WAAW,EAAE,CAAC,EAAU,EAAiB,EAAE,CACzC,IAAI,CAAC,MAAM,EAAE,YAAY,kBAAkB,CAAC,EAAE,CAAC,QAAQ,CAAC;IAC1D,mBAAmB,EAAE,CAAC,EAAU,EAAiB,EAAE,CACjD,IAAI,CAAC,QAAQ,EAAE,YAAY,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC;CACvD,CAAC"}
@@ -0,0 +1,100 @@
1
+ export interface DiskCapabilities {
2
+ presign: boolean;
3
+ multipart: boolean;
4
+ publicUrls: boolean;
5
+ list: boolean;
6
+ }
7
+ export interface DiskInfo {
8
+ name: string;
9
+ default: boolean;
10
+ capabilities: DiskCapabilities;
11
+ }
12
+ export interface DiskListResponse {
13
+ disks: DiskInfo[];
14
+ }
15
+ /** A folder prefix (no trailing slash) inside a disk. */
16
+ export interface ObjectFolder {
17
+ name: string;
18
+ prefix: string;
19
+ }
20
+ /** A concrete object inside a disk. */
21
+ export interface ObjectEntry {
22
+ key: string;
23
+ name: string;
24
+ sizeBytes: number | null;
25
+ lastModified: string | null;
26
+ }
27
+ export interface ObjectListResponse {
28
+ folders: ObjectFolder[];
29
+ files: ObjectEntry[];
30
+ cursor?: string;
31
+ }
32
+ export interface ObjectDetailResponse {
33
+ key: string;
34
+ size: number;
35
+ contentType?: string;
36
+ lastModified?: string;
37
+ url: string;
38
+ }
39
+ export interface UploadInfo {
40
+ id: string;
41
+ disk: string;
42
+ key: string;
43
+ offset: number;
44
+ size: number | null;
45
+ percent: number | null;
46
+ parts: number;
47
+ multipart: boolean;
48
+ createdAt?: string;
49
+ }
50
+ export interface UploadListResponse {
51
+ uploads: UploadInfo[];
52
+ }
53
+ export interface UploadPart {
54
+ partNumber: number;
55
+ etag: string;
56
+ }
57
+ export interface UploadDetailResponse {
58
+ upload: UploadInfo;
59
+ parts: UploadPart[];
60
+ }
61
+ export interface CollectionInfo {
62
+ key: string;
63
+ count: number;
64
+ sumSize: number;
65
+ }
66
+ export interface CollectionsResponse {
67
+ collections: CollectionInfo[];
68
+ }
69
+ export interface LibraryRecord {
70
+ id: string;
71
+ ownerType: string;
72
+ ownerId: string;
73
+ collection: string;
74
+ name: string;
75
+ fileName: string;
76
+ mimeType: string;
77
+ size: number;
78
+ disk: string;
79
+ path: string;
80
+ createdAt: string;
81
+ }
82
+ export interface LibraryListResponse {
83
+ records: LibraryRecord[];
84
+ cursor?: string;
85
+ }
86
+ export interface LibraryVariant {
87
+ name: string;
88
+ url: string;
89
+ }
90
+ export interface LibraryDetailResponse {
91
+ record: LibraryRecord;
92
+ variants: LibraryVariant[];
93
+ }
94
+ export interface Topology {
95
+ hasStore: boolean;
96
+ hasUploads: boolean;
97
+ disks: number;
98
+ actions: boolean;
99
+ }
100
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ // The JSON API contract for the /media console. Owned by the client entry so that both the
2
+ // server (which produces these shapes) and any host app (which may want the types) import them
3
+ // from `@dudousxd/nestjs-media-dashboard/client`. Pure types — no runtime.
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,+FAA+F;AAC/F,2EAA2E"}