@scaleflex/dam-core 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.
Files changed (80) hide show
  1. package/README.md +34 -0
  2. package/dist/api/archive.service.d.ts +44 -0
  3. package/dist/api/archive.service.d.ts.map +1 -0
  4. package/dist/api/archive.test.d.ts +2 -0
  5. package/dist/api/archive.test.d.ts.map +1 -0
  6. package/dist/api/dam-client.d.ts +27 -0
  7. package/dist/api/dam-client.d.ts.map +1 -0
  8. package/dist/api/filerobot-browse.service.d.ts +84 -0
  9. package/dist/api/filerobot-browse.service.d.ts.map +1 -0
  10. package/dist/api/files.service.d.ts +63 -0
  11. package/dist/api/files.service.d.ts.map +1 -0
  12. package/dist/api/files.service.test.d.ts +2 -0
  13. package/dist/api/files.service.test.d.ts.map +1 -0
  14. package/dist/api/folders.service.d.ts +21 -0
  15. package/dist/api/folders.service.d.ts.map +1 -0
  16. package/dist/api/index.d.ts +8 -0
  17. package/dist/api/index.d.ts.map +1 -0
  18. package/dist/api/labels.service.d.ts +10 -0
  19. package/dist/api/labels.service.d.ts.map +1 -0
  20. package/dist/api/variations.service.d.ts +23 -0
  21. package/dist/api/variations.service.d.ts.map +1 -0
  22. package/dist/api/variations.service.test.d.ts +2 -0
  23. package/dist/api/variations.service.test.d.ts.map +1 -0
  24. package/dist/auth/auth.service.d.ts +34 -0
  25. package/dist/auth/auth.service.d.ts.map +1 -0
  26. package/dist/auth/auth.service.test.d.ts +2 -0
  27. package/dist/auth/auth.service.test.d.ts.map +1 -0
  28. package/dist/auth/auth.types.d.ts +44 -0
  29. package/dist/auth/auth.types.d.ts.map +1 -0
  30. package/dist/auth/index.d.ts +3 -0
  31. package/dist/auth/index.d.ts.map +1 -0
  32. package/dist/helpers/cdn.d.ts +50 -0
  33. package/dist/helpers/cdn.d.ts.map +1 -0
  34. package/dist/helpers/cdn.test.d.ts +2 -0
  35. package/dist/helpers/cdn.test.d.ts.map +1 -0
  36. package/dist/helpers/debounce.d.ts +4 -0
  37. package/dist/helpers/debounce.d.ts.map +1 -0
  38. package/dist/helpers/format.d.ts +7 -0
  39. package/dist/helpers/format.d.ts.map +1 -0
  40. package/dist/helpers/format.test.d.ts +2 -0
  41. package/dist/helpers/format.test.d.ts.map +1 -0
  42. package/dist/helpers/index.d.ts +6 -0
  43. package/dist/helpers/index.d.ts.map +1 -0
  44. package/dist/helpers/thumbnail.d.ts +19 -0
  45. package/dist/helpers/thumbnail.d.ts.map +1 -0
  46. package/dist/helpers/thumbnail.test.d.ts +2 -0
  47. package/dist/helpers/thumbnail.test.d.ts.map +1 -0
  48. package/dist/helpers/variations.d.ts +24 -0
  49. package/dist/helpers/variations.d.ts.map +1 -0
  50. package/dist/helpers/variations.test.d.ts +2 -0
  51. package/dist/helpers/variations.test.d.ts.map +1 -0
  52. package/dist/index.cjs +2 -0
  53. package/dist/index.cjs.map +1 -0
  54. package/dist/index.d.ts +6 -0
  55. package/dist/index.d.ts.map +1 -0
  56. package/dist/index.js +1189 -0
  57. package/dist/index.js.map +1 -0
  58. package/dist/store/browse-store.d.ts +199 -0
  59. package/dist/store/browse-store.d.ts.map +1 -0
  60. package/dist/store/browse-store.test.d.ts +2 -0
  61. package/dist/store/browse-store.test.d.ts.map +1 -0
  62. package/dist/store/index.d.ts +4 -0
  63. package/dist/store/index.d.ts.map +1 -0
  64. package/dist/store/local-favourites.d.ts +12 -0
  65. package/dist/store/local-favourites.d.ts.map +1 -0
  66. package/dist/types/api.types.d.ts +99 -0
  67. package/dist/types/api.types.d.ts.map +1 -0
  68. package/dist/types/asset.types.d.ts +20 -0
  69. package/dist/types/asset.types.d.ts.map +1 -0
  70. package/dist/types/filerobot.types.d.ts +133 -0
  71. package/dist/types/filerobot.types.d.ts.map +1 -0
  72. package/dist/types/folder.types.d.ts +10 -0
  73. package/dist/types/folder.types.d.ts.map +1 -0
  74. package/dist/types/index.d.ts +7 -0
  75. package/dist/types/index.d.ts.map +1 -0
  76. package/dist/types/label.types.d.ts +13 -0
  77. package/dist/types/label.types.d.ts.map +1 -0
  78. package/dist/types/variation.types.d.ts +28 -0
  79. package/dist/types/variation.types.d.ts.map +1 -0
  80. package/package.json +31 -0
@@ -0,0 +1,99 @@
1
+ export interface ApiStatusResponse {
2
+ status: 'success' | 'error';
3
+ msg?: string;
4
+ }
5
+ export interface RawFile {
6
+ uuid: string;
7
+ name: string;
8
+ folder?: string;
9
+ type?: string;
10
+ file_type?: string;
11
+ cdn_permalink?: string;
12
+ cdn_url?: string;
13
+ /** Computed thumbnail/poster URLs from the Files API (`select:internal`). */
14
+ info?: {
15
+ thumbnail?: string;
16
+ image_thumbnail?: string;
17
+ video_thumbnail?: string;
18
+ preview?: string;
19
+ };
20
+ size?: number | {
21
+ bytes?: number;
22
+ pretty?: string;
23
+ };
24
+ width?: number;
25
+ height?: number;
26
+ created_at?: string;
27
+ modified_at?: string;
28
+ }
29
+ export interface RawFolder {
30
+ uuid: string;
31
+ name: string;
32
+ path?: string;
33
+ created_at?: string;
34
+ modified_at?: string;
35
+ }
36
+ export interface GetFilesResponse extends ApiStatusResponse {
37
+ files: RawFile[];
38
+ count?: number;
39
+ total?: number;
40
+ }
41
+ export interface GetFoldersResponse extends ApiStatusResponse {
42
+ folders: RawFolder[];
43
+ }
44
+ /** A file variation/rendition as returned by `GET /v5/file/{uuid}/variants`. */
45
+ export interface RawVariation {
46
+ uuid: string;
47
+ file_uuid?: string;
48
+ name: string;
49
+ /** CDN URL to download/embed this variation. */
50
+ url: string;
51
+ /** Thumbnail/preview URL for the variation. */
52
+ preview?: string;
53
+ info?: {
54
+ img_w?: number;
55
+ img_h?: number;
56
+ size?: number;
57
+ img_type?: string;
58
+ /** Background-removed variants are surfaced separately in the UI. */
59
+ remove_background?: boolean;
60
+ };
61
+ added_at?: string;
62
+ updated_at?: string;
63
+ created_by?: string;
64
+ updated_by?: string;
65
+ }
66
+ export interface GetVariationsResponse extends Partial<ApiStatusResponse> {
67
+ variants: RawVariation[];
68
+ }
69
+ /**
70
+ * `GET /v5/settings` envelope. The set of resolution presets lives under the
71
+ * container's cloudimg config; shape varies by deployment, so `getPresets`
72
+ * normalizes defensively. Verify against a live container (Q-AP-ZIP / presets).
73
+ */
74
+ export interface GetSettingsResponse {
75
+ presets?: RawPreset[];
76
+ cloudimg?: {
77
+ presets?: RawPreset[];
78
+ };
79
+ settings?: {
80
+ cloudimg?: {
81
+ presets?: RawPreset[];
82
+ };
83
+ };
84
+ }
85
+ /** A preset is either a bare name or a `{ name, desc, params }` object. */
86
+ export type RawPreset = string | {
87
+ name: string;
88
+ desc?: string;
89
+ params?: Record<string, string>;
90
+ };
91
+ /** Async archive (ZIP) job envelopes — `POST /file-archive`, `GET /file-archive/{id}?status_only=1`. */
92
+ export interface CreateArchiveResponse {
93
+ task_id?: string;
94
+ }
95
+ export interface ArchiveStatusResponse {
96
+ task_status?: 'PENDING' | 'RUNNING' | 'PROCESSING' | 'DONE' | string;
97
+ task_percent?: number;
98
+ }
99
+ //# sourceMappingURL=api.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.types.d.ts","sourceRoot":"","sources":["../../src/types/api.types.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,IAAI,CAAC,EAAE;QACL,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAGF,IAAI,CAAC,EAAE,MAAM,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,OAAO,EAAE,SAAS,EAAE,CAAC;CACtB;AAED,gFAAgF;AAChF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,qEAAqE;QACrE,iBAAiB,CAAC,EAAE,OAAO,CAAC;KAC7B,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAsB,SAAQ,OAAO,CAAC,iBAAiB,CAAC;IACvE,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,SAAS,EAAE,CAAA;KAAE,CAAC;IACrC,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,SAAS,EAAE,CAAA;SAAE,CAAA;KAAE,CAAC;CACrD;AAED,2EAA2E;AAC3E,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC;AAElG,wGAAwG;AACxG,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,YAAY,GAAG,MAAM,GAAG,MAAM,CAAC;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
@@ -0,0 +1,20 @@
1
+ export type AssetType = 'image' | 'video' | 'audio' | 'document' | 'archive' | 'font' | 'model' | 'other';
2
+ export interface Asset {
3
+ uuid: string;
4
+ name: string;
5
+ /** Folder path the asset lives in, e.g. "/marketing/2026". */
6
+ folder: string;
7
+ type: AssetType;
8
+ /** MIME-ish file type as reported by Filerobot, e.g. "image/png". */
9
+ fileType?: string;
10
+ /** Signed CDN permalink, when requested via `fields=cdn_permalink`. */
11
+ cdnUrl?: string;
12
+ /** Best API-provided thumbnail/poster URL (image_/video_thumbnail/thumbnail/preview). */
13
+ thumbnailUrl?: string;
14
+ size?: number;
15
+ width?: number;
16
+ height?: number;
17
+ createdAt?: string;
18
+ modifiedAt?: string;
19
+ }
20
+ //# sourceMappingURL=asset.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset.types.d.ts","sourceRoot":"","sources":["../../src/types/asset.types.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,SAAS,GACjB,OAAO,GACP,OAAO,GACP,OAAO,GACP,UAAU,GACV,SAAS,GACT,MAAM,GACN,OAAO,GACP,OAAO,CAAC;AAEZ,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,SAAS,CAAC;IAChB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yFAAyF;IACzF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
@@ -0,0 +1,133 @@
1
+ export interface AssetInfo {
2
+ img_type?: string;
3
+ img_w?: number;
4
+ img_h?: number;
5
+ duration?: number;
6
+ video_duration?: number;
7
+ video_w?: number;
8
+ video_h?: number;
9
+ thumbnail?: string;
10
+ preview?: string;
11
+ video_thumbnail?: string;
12
+ video_gif?: string;
13
+ image_thumbnail?: string;
14
+ main_colors?: string[];
15
+ main_colors_hex?: string[];
16
+ dominant_color?: string;
17
+ dominant_color_hex?: string;
18
+ color_space?: string;
19
+ metadata?: Record<string, unknown>;
20
+ playlists?: Array<{
21
+ playlists: string[];
22
+ resolution?: string;
23
+ }>;
24
+ }
25
+ export interface AssetMeta {
26
+ /**
27
+ * Asset title. May be a plain string or a localized record keyed by language code
28
+ * (e.g. `{ en: "Sunset", fr: "Coucher de soleil" }`).
29
+ */
30
+ title?: string | Record<string, string>;
31
+ description?: string;
32
+ alt?: string;
33
+ [key: string]: unknown;
34
+ }
35
+ export interface AssetSize {
36
+ bytes: number;
37
+ pretty: string;
38
+ }
39
+ /**
40
+ * The raw Filerobot file object as returned by the v5 Files API. Full fidelity — nested `url`,
41
+ * `size`, `info`, `meta`, `owner`. Note `type` is the API's free-form string (e.g. "image",
42
+ * "application"); the classified {@link AssetType} enum is a separate concern. The UI-only
43
+ * `transformation` field is NOT part of the wire — consumers that attach it (asset-picker)
44
+ * extend this interface.
45
+ */
46
+ export interface FilerobotAsset {
47
+ uuid: string;
48
+ name: string;
49
+ extension: string;
50
+ /** File type string, e.g. "image", "video", "application". */
51
+ type: string;
52
+ /** MIME type string, e.g. "image/jpeg", "video/mp4". */
53
+ mime?: string;
54
+ size: AssetSize;
55
+ url?: {
56
+ public: string;
57
+ cdn: string;
58
+ path: string;
59
+ permalink?: string;
60
+ /** Signed CDN permalink — only present when requested via `fields=cdn_permalink`. */
61
+ cdn_permalink?: string;
62
+ };
63
+ public_id?: string;
64
+ visibility?: string;
65
+ status?: string;
66
+ hash?: string;
67
+ folder_uuid?: string;
68
+ folder?: {
69
+ uuid: string;
70
+ name: string;
71
+ };
72
+ created_at: string;
73
+ modified_at: string;
74
+ tags: Record<string, Array<{
75
+ label: string;
76
+ sid: string;
77
+ }>> | Record<string, {
78
+ label: string;
79
+ sid: string;
80
+ }> | string[];
81
+ labels: string[];
82
+ meta: AssetMeta;
83
+ info: AssetInfo;
84
+ owner?: {
85
+ uuid: string;
86
+ name: string;
87
+ email: string;
88
+ };
89
+ }
90
+ export interface FolderOwner {
91
+ uuid: string;
92
+ name: string;
93
+ email: string;
94
+ photo?: string | null;
95
+ }
96
+ export interface FolderPreviewImage {
97
+ file_uri_cdn: string;
98
+ file_type: string;
99
+ }
100
+ /** The raw Filerobot folder object as returned by the v5 Folders API (full fidelity). */
101
+ export interface FilerobotFolder {
102
+ uuid: string;
103
+ name: string;
104
+ path: string;
105
+ owner?: FolderOwner;
106
+ size?: {
107
+ total_recursive_bytes?: number;
108
+ total_recursive_pretty?: string;
109
+ };
110
+ count?: {
111
+ files_recursive?: number;
112
+ files_direct?: number;
113
+ };
114
+ created_at: string;
115
+ modified_at?: string;
116
+ updated_at?: string;
117
+ visibility?: {
118
+ in_cdn?: {
119
+ actual: string;
120
+ set: string;
121
+ };
122
+ in_dam?: {
123
+ actual: string;
124
+ set: string;
125
+ };
126
+ };
127
+ meta?: Record<string, unknown>;
128
+ decoration?: {
129
+ highlight_color?: string | null;
130
+ has_custom_preview?: boolean | null;
131
+ };
132
+ }
133
+ //# sourceMappingURL=filerobot.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filerobot.types.d.ts","sourceRoot":"","sources":["../../src/types/filerobot.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export interface Folder {
2
+ uuid: string;
3
+ name: string;
4
+ /** Full path, e.g. "/marketing/2026". */
5
+ path: string;
6
+ parentPath?: string;
7
+ createdAt?: string;
8
+ modifiedAt?: string;
9
+ }
10
+ //# sourceMappingURL=folder.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"folder.types.d.ts","sourceRoot":"","sources":["../../src/types/folder.types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
@@ -0,0 +1,7 @@
1
+ export type { Asset, AssetType } from './asset.types';
2
+ export type { Variation, Preset } from './variation.types';
3
+ export type { Folder } from './folder.types';
4
+ export type { Label } from './label.types';
5
+ export type { FilerobotAsset, FilerobotFolder, AssetInfo, AssetMeta, AssetSize, FolderOwner, FolderPreviewImage, } from './filerobot.types';
6
+ export type { ApiStatusResponse, RawFile, RawFolder, GetFilesResponse, GetFoldersResponse, RawVariation, RawPreset, GetVariationsResponse, GetSettingsResponse, CreateArchiveResponse, ArchiveStatusResponse, } from './api.types';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACtD,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3D,YAAY,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAG3C,YAAY,EACV,cAAc,EACd,eAAe,EACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,WAAW,EACX,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,iBAAiB,EACjB,OAAO,EACP,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,aAAa,CAAC"}
@@ -0,0 +1,13 @@
1
+ export interface Label {
2
+ uuid: string;
3
+ /** Short id (e.g. "#a1b2"); file filtering uses this (sans "#"): `q=labels:{sid}`. */
4
+ sid: string;
5
+ name: string;
6
+ /** Display color (hex). */
7
+ color?: string;
8
+ /** Optional shape/icon hint from the backend. */
9
+ shape?: string;
10
+ /** Number of assets carrying this label, when returned. */
11
+ assets_count?: number;
12
+ }
13
+ //# sourceMappingURL=label.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label.types.d.ts","sourceRoot":"","sources":["../../src/types/label.types.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,sFAAsF;IACtF,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * One renditions row shown in the preview's Variations list — the Original, a
3
+ * container resolution **preset** (virtual, applied as `?p=<name>`), a **custom**
4
+ * uploaded variant, or a **background-removed** variant.
5
+ */
6
+ export interface Variation {
7
+ /** Stable id. Custom variants use their wire uuid; presets use `preset-<name>`; original uses the asset uuid. */
8
+ uuid: string;
9
+ name: string;
10
+ /** CDN URL to download/embed this variation. */
11
+ url: string;
12
+ /** Thumbnail/preview URL (falls back to `url` when absent). */
13
+ previewUrl?: string;
14
+ width?: number;
15
+ height?: number;
16
+ size?: number;
17
+ /** MIME-ish/format hint, e.g. "jpeg". */
18
+ format?: string;
19
+ isOriginal: boolean;
20
+ isPreset: boolean;
21
+ bgRemoved: boolean;
22
+ }
23
+ /** A container resolution preset (e.g. `thumbnail_1x`), applied to the original via `?p=<name>`. */
24
+ export interface Preset {
25
+ name: string;
26
+ desc?: string;
27
+ }
28
+ //# sourceMappingURL=variation.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variation.types.d.ts","sourceRoot":"","sources":["../../src/types/variation.types.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,iHAAiH;IACjH,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,oGAAoG;AACpG,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
package/package.json ADDED
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "@scaleflex/dam-core",
3
+ "version": "0.1.0",
4
+ "description": "Headless, framework-agnostic foundation for Scaleflex DAM widgets: auth, REST client, domain types, browse store, and CDN/thumbnail URL helpers. No UI, no Lit, no React — Fetch only.",
5
+ "type": "module",
6
+ "license": "MIT",
7
+ "publishConfig": {
8
+ "access": "public"
9
+ },
10
+ "main": "./dist/index.cjs",
11
+ "module": "./dist/index.js",
12
+ "types": "./dist/index.d.ts",
13
+ "exports": {
14
+ ".": {
15
+ "development": "./src/index.ts",
16
+ "types": "./dist/index.d.ts",
17
+ "import": "./dist/index.js",
18
+ "require": "./dist/index.cjs"
19
+ }
20
+ },
21
+ "files": [
22
+ "dist",
23
+ "README.md"
24
+ ],
25
+ "sideEffects": false,
26
+ "scripts": {
27
+ "build": "vite build",
28
+ "typecheck": "tsc --noEmit -p tsconfig.json",
29
+ "test": "vitest run"
30
+ }
31
+ }