@rovela-ai/sdk 0.9.2 → 0.10.1
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.
- package/dist/admin/components/AdminNav.d.ts.map +1 -1
- package/dist/admin/components/AdminNav.js +3 -1
- package/dist/admin/components/AdminNav.js.map +1 -1
- package/dist/admin/components/FilesManager.d.ts +5 -0
- package/dist/admin/components/FilesManager.d.ts.map +1 -0
- package/dist/admin/components/FilesManager.js +158 -0
- package/dist/admin/components/FilesManager.js.map +1 -0
- package/dist/admin/components/MediaLibraryPicker.d.ts +14 -0
- package/dist/admin/components/MediaLibraryPicker.d.ts.map +1 -0
- package/dist/admin/components/MediaLibraryPicker.js +95 -0
- package/dist/admin/components/MediaLibraryPicker.js.map +1 -0
- package/dist/admin/components/index.d.ts +4 -0
- package/dist/admin/components/index.d.ts.map +1 -1
- package/dist/admin/components/index.js +5 -0
- package/dist/admin/components/index.js.map +1 -1
- package/dist/admin/index.d.ts +1 -1
- package/dist/admin/index.d.ts.map +1 -1
- package/dist/admin/index.js +2 -0
- package/dist/admin/index.js.map +1 -1
- package/dist/media/api/files.d.ts +32 -0
- package/dist/media/api/files.d.ts.map +1 -0
- package/dist/media/api/files.js +99 -0
- package/dist/media/api/files.js.map +1 -0
- package/dist/media/api/index.d.ts +1 -0
- package/dist/media/api/index.d.ts.map +1 -1
- package/dist/media/api/index.js +1 -0
- package/dist/media/api/index.js.map +1 -1
- package/dist/media/components/ImageGalleryUpload.d.ts.map +1 -1
- package/dist/media/components/ImageGalleryUpload.js +15 -2
- package/dist/media/components/ImageGalleryUpload.js.map +1 -1
- package/dist/media/components/ImageUpload.d.ts.map +1 -1
- package/dist/media/components/ImageUpload.js +16 -2
- package/dist/media/components/ImageUpload.js.map +1 -1
- package/dist/media/index.d.ts +2 -0
- package/dist/media/index.d.ts.map +1 -1
- package/dist/media/index.js +4 -0
- package/dist/media/index.js.map +1 -1
- package/dist/media/server/index.d.ts +1 -0
- package/dist/media/server/index.d.ts.map +1 -1
- package/dist/media/server/index.js +2 -0
- package/dist/media/server/index.js.map +1 -1
- package/dist/media/server/list.d.ts +23 -0
- package/dist/media/server/list.d.ts.map +1 -0
- package/dist/media/server/list.js +62 -0
- package/dist/media/server/list.js.map +1 -0
- package/dist/media/taxonomy.d.ts +106 -0
- package/dist/media/taxonomy.d.ts.map +1 -0
- package/dist/media/taxonomy.js +227 -0
- package/dist/media/taxonomy.js.map +1 -0
- package/package.json +5 -1
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @rovela-ai/sdk/media/taxonomy
|
|
3
|
+
*
|
|
4
|
+
* Asset taxonomy — the single source of truth for classifying every R2
|
|
5
|
+
* object under `stores/{storeId}/...` into a typed `StoreAsset`. Shared by
|
|
6
|
+
* TWO surfaces that list the same storage live (no sync layer by design):
|
|
7
|
+
*
|
|
8
|
+
* - the store admin's Files page (SDK, /admin/files)
|
|
9
|
+
* - the Rovela platform's Assets Library (`lib/assets/categories.ts`
|
|
10
|
+
* re-exports this module — never fork the parse logic there)
|
|
11
|
+
*
|
|
12
|
+
* Well-known prefixes:
|
|
13
|
+
* branding/{logo|favicon} — merchant-uploaded logos (canonical keys, no extension)
|
|
14
|
+
* products/{...} — product photos
|
|
15
|
+
* products/videos/{...} — product videos
|
|
16
|
+
* variants/{...} — variant images (admin upload folder)
|
|
17
|
+
* categories/{...} — category cover images (admin upload folder)
|
|
18
|
+
* locations/{...} — store-location images (admin upload folder)
|
|
19
|
+
* general/{...} — untyped admin uploads
|
|
20
|
+
* chat-attachments/{...} — platform chat / library uploads (any kind)
|
|
21
|
+
* generated/products/{...} — AI-generated product images
|
|
22
|
+
* generated/library/{...} — AI-generated library images
|
|
23
|
+
* generated/{...} — AI-generated section images
|
|
24
|
+
* references/{...} — reference screenshots (system)
|
|
25
|
+
* thumbnail.jpg — post-deploy store thumbnail (system)
|
|
26
|
+
*
|
|
27
|
+
* Adding a category: append the union value, define META, extend
|
|
28
|
+
* `categoryFromInnerPath` (more specific prefixes FIRST). Removing one is a
|
|
29
|
+
* fleet decision — unrecognised keys parse to `null` and are silently
|
|
30
|
+
* skipped by every list surface.
|
|
31
|
+
*/
|
|
32
|
+
export const CATEGORY_META = {
|
|
33
|
+
logo: { id: 'logo', label: 'Logo', origin: 'upload' },
|
|
34
|
+
favicon: { id: 'favicon', label: 'Favicon', origin: 'upload' },
|
|
35
|
+
'product-image': { id: 'product-image', label: 'Product image', origin: 'upload' },
|
|
36
|
+
'product-video': { id: 'product-video', label: 'Product video', origin: 'upload' },
|
|
37
|
+
'category-image': { id: 'category-image', label: 'Category image', origin: 'upload' },
|
|
38
|
+
'location-image': { id: 'location-image', label: 'Location image', origin: 'upload' },
|
|
39
|
+
'general-upload': { id: 'general-upload', label: 'Upload', origin: 'upload' },
|
|
40
|
+
'chat-upload': { id: 'chat-upload', label: 'Upload', origin: 'upload' },
|
|
41
|
+
'ai-generated': { id: 'ai-generated', label: 'AI image', origin: 'ai-generated' },
|
|
42
|
+
'ai-generated-product': {
|
|
43
|
+
id: 'ai-generated-product',
|
|
44
|
+
label: 'AI product image',
|
|
45
|
+
origin: 'ai-generated',
|
|
46
|
+
},
|
|
47
|
+
'ai-generated-library': {
|
|
48
|
+
id: 'ai-generated-library',
|
|
49
|
+
label: 'AI library image',
|
|
50
|
+
origin: 'ai-generated',
|
|
51
|
+
},
|
|
52
|
+
reference: { id: 'reference', label: 'Reference screenshot', origin: 'system' },
|
|
53
|
+
thumbnail: { id: 'thumbnail', label: 'Store thumbnail', origin: 'system' },
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Categories the store ADMIN must never delete: branding assets are wired
|
|
57
|
+
* into env vars + the platform branding helpers (deleting the raw object
|
|
58
|
+
* would leave a dangling logo URL on the deployed store), and system
|
|
59
|
+
* artifacts (references, thumbnail) belong to the platform pipeline.
|
|
60
|
+
*/
|
|
61
|
+
export const ADMIN_PROTECTED_CATEGORIES = new Set([
|
|
62
|
+
'logo',
|
|
63
|
+
'favicon',
|
|
64
|
+
'reference',
|
|
65
|
+
'thumbnail',
|
|
66
|
+
]);
|
|
67
|
+
/**
|
|
68
|
+
* Media chips shared by the admin Files page and the platform Assets
|
|
69
|
+
* Library. "All" first; order is the render order.
|
|
70
|
+
*/
|
|
71
|
+
export const MEDIA_CHIP_FILTERS = [
|
|
72
|
+
{ id: 'all', label: 'All', test: () => true },
|
|
73
|
+
{ id: 'image', label: 'Images', test: (a) => a.kind === 'image' },
|
|
74
|
+
{ id: 'video', label: 'Videos', test: (a) => a.kind === 'video' },
|
|
75
|
+
{
|
|
76
|
+
id: 'branding',
|
|
77
|
+
label: 'Branding',
|
|
78
|
+
test: (a) => a.category === 'logo' || a.category === 'favicon',
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
id: 'products',
|
|
82
|
+
label: 'Products',
|
|
83
|
+
test: (a) => a.category === 'product-image' || a.category === 'product-video',
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
id: 'ai',
|
|
87
|
+
label: 'AI generated',
|
|
88
|
+
test: (a) => a.category === 'ai-generated' ||
|
|
89
|
+
a.category === 'ai-generated-product' ||
|
|
90
|
+
a.category === 'ai-generated-library',
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
id: 'uploads',
|
|
94
|
+
label: 'Uploads',
|
|
95
|
+
test: (a) => a.category === 'chat-upload' ||
|
|
96
|
+
a.category === 'general-upload' ||
|
|
97
|
+
a.category === 'category-image' ||
|
|
98
|
+
a.category === 'location-image',
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
id: 'references',
|
|
102
|
+
label: 'References',
|
|
103
|
+
test: (a) => a.category === 'reference' || a.category === 'thumbnail',
|
|
104
|
+
},
|
|
105
|
+
];
|
|
106
|
+
// ---------------------------------------------------------------------------
|
|
107
|
+
// Key parsing.
|
|
108
|
+
// ---------------------------------------------------------------------------
|
|
109
|
+
/**
|
|
110
|
+
* Image vs video vs other from the file extension. Mirrors the storefront's
|
|
111
|
+
* `isVideoUrl()` rule — URL-extension detection, no MIME.
|
|
112
|
+
*/
|
|
113
|
+
const IMAGE_EXTS = new Set([
|
|
114
|
+
'png', 'jpg', 'jpeg', 'gif', 'webp', 'svg', 'avif', 'ico', 'bmp',
|
|
115
|
+
]);
|
|
116
|
+
const VIDEO_EXTS = new Set(['mp4', 'webm', 'mov', 'm4v']);
|
|
117
|
+
function kindFromKey(key) {
|
|
118
|
+
// Logo / favicon ship without an extension on the canonical key (R2 stores
|
|
119
|
+
// Content-Type as object metadata). Treat as images by category, not extension.
|
|
120
|
+
if (key.endsWith('/branding/logo') || key.endsWith('/branding/favicon')) {
|
|
121
|
+
return 'image';
|
|
122
|
+
}
|
|
123
|
+
const ext = key.toLowerCase().match(/\.([a-z0-9]+)$/)?.[1];
|
|
124
|
+
if (!ext)
|
|
125
|
+
return 'other';
|
|
126
|
+
if (IMAGE_EXTS.has(ext))
|
|
127
|
+
return 'image';
|
|
128
|
+
if (VIDEO_EXTS.has(ext))
|
|
129
|
+
return 'video';
|
|
130
|
+
return 'other';
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Classify the per-store sub-path. Tests in priority order — more specific
|
|
134
|
+
* prefixes (`generated/products/`) MUST come before less specific ones
|
|
135
|
+
* (`generated/`).
|
|
136
|
+
*/
|
|
137
|
+
function categoryFromInnerPath(rest) {
|
|
138
|
+
if (rest === 'branding/logo')
|
|
139
|
+
return 'logo';
|
|
140
|
+
if (rest === 'branding/favicon')
|
|
141
|
+
return 'favicon';
|
|
142
|
+
if (rest === 'thumbnail.jpg')
|
|
143
|
+
return 'thumbnail';
|
|
144
|
+
if (rest.startsWith('products/videos/'))
|
|
145
|
+
return 'product-video';
|
|
146
|
+
if (rest.startsWith('products/'))
|
|
147
|
+
return 'product-image';
|
|
148
|
+
if (rest.startsWith('variants/'))
|
|
149
|
+
return 'product-image';
|
|
150
|
+
if (rest.startsWith('categories/'))
|
|
151
|
+
return 'category-image';
|
|
152
|
+
if (rest.startsWith('locations/'))
|
|
153
|
+
return 'location-image';
|
|
154
|
+
if (rest.startsWith('general/'))
|
|
155
|
+
return 'general-upload';
|
|
156
|
+
if (rest.startsWith('chat-attachments/'))
|
|
157
|
+
return 'chat-upload';
|
|
158
|
+
if (rest.startsWith('generated/products/'))
|
|
159
|
+
return 'ai-generated-product';
|
|
160
|
+
if (rest.startsWith('generated/library/'))
|
|
161
|
+
return 'ai-generated-library';
|
|
162
|
+
if (rest.startsWith('generated/'))
|
|
163
|
+
return 'ai-generated';
|
|
164
|
+
if (rest.startsWith('references/'))
|
|
165
|
+
return 'reference';
|
|
166
|
+
return null;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Pretty-name from the file portion of a key. Strips the leading `{digits}_`
|
|
170
|
+
* collision-buster used by upload routes. Canonical branding / thumbnail
|
|
171
|
+
* paths get hardcoded labels; references keep their `ref-N.jpg` shape.
|
|
172
|
+
*/
|
|
173
|
+
function displayName(category, rest) {
|
|
174
|
+
if (category === 'logo')
|
|
175
|
+
return 'Logo';
|
|
176
|
+
if (category === 'favicon')
|
|
177
|
+
return 'Favicon';
|
|
178
|
+
if (category === 'thumbnail')
|
|
179
|
+
return 'Store thumbnail';
|
|
180
|
+
const leaf = rest.split('/').pop() ?? rest;
|
|
181
|
+
if (category === 'reference')
|
|
182
|
+
return leaf;
|
|
183
|
+
return leaf.replace(/^\d+_/, '');
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Parse one R2 object into a StoreAsset. Returns `null` for keys outside
|
|
187
|
+
* the `stores/{id}/` namespace or with unknown prefixes — callers SKIP
|
|
188
|
+
* nulls so stray objects never surface.
|
|
189
|
+
*/
|
|
190
|
+
export function parseAssetKey({ key, size, lastModified, publicUrlBase, }) {
|
|
191
|
+
const m = key.match(/^stores\/([^/]+)\/(.+)$/);
|
|
192
|
+
if (!m)
|
|
193
|
+
return null;
|
|
194
|
+
const projectId = m[1];
|
|
195
|
+
const rest = m[2];
|
|
196
|
+
const category = categoryFromInnerPath(rest);
|
|
197
|
+
if (!category)
|
|
198
|
+
return null;
|
|
199
|
+
const iso = lastModified instanceof Date
|
|
200
|
+
? lastModified.toISOString()
|
|
201
|
+
: new Date(lastModified).toISOString();
|
|
202
|
+
return {
|
|
203
|
+
key,
|
|
204
|
+
projectId,
|
|
205
|
+
category,
|
|
206
|
+
url: `${publicUrlBase.replace(/\/$/, '')}/${key}`,
|
|
207
|
+
name: displayName(category, rest),
|
|
208
|
+
size,
|
|
209
|
+
lastModified: iso,
|
|
210
|
+
kind: kindFromKey(key),
|
|
211
|
+
origin: CATEGORY_META[category].origin,
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Branding-key sniffer — 'logo' / 'favicon' / null. Used by the platform's
|
|
216
|
+
* generic DELETE route to forward to the branding handlers (which also clear
|
|
217
|
+
* `blueprint.store.{logo|favicon}Url` + PATCH Vercel envs).
|
|
218
|
+
*/
|
|
219
|
+
export function brandingKindFromKey(key) {
|
|
220
|
+
const m = key.match(/^stores\/[^/]+\/branding\/(logo|favicon)$/);
|
|
221
|
+
return m ? m[1] : null;
|
|
222
|
+
}
|
|
223
|
+
/** Authz guard: confirms a key belongs to the given store/project. */
|
|
224
|
+
export function keyBelongsToProject(key, projectId) {
|
|
225
|
+
return key.startsWith(`stores/${projectId}/`);
|
|
226
|
+
}
|
|
227
|
+
//# sourceMappingURL=taxonomy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taxonomy.js","sourceRoot":"","sources":["../../src/media/taxonomy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AA4BH,MAAM,CAAC,MAAM,aAAa,GAAwC;IAChE,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE;IACrD,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE;IAC9D,eAAe,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE;IAClF,eAAe,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE;IAClF,gBAAgB,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE;IACrF,gBAAgB,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE;IACrF,gBAAgB,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE;IAC7E,aAAa,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE;IACvE,cAAc,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE;IACjF,sBAAsB,EAAE;QACtB,EAAE,EAAE,sBAAsB;QAC1B,KAAK,EAAE,kBAAkB;QACzB,MAAM,EAAE,cAAc;KACvB;IACD,sBAAsB,EAAE;QACtB,EAAE,EAAE,sBAAsB;QAC1B,KAAK,EAAE,kBAAkB;QACzB,MAAM,EAAE,cAAc;KACvB;IACD,SAAS,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAE,QAAQ,EAAE;IAC/E,SAAS,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,EAAE;CAC3E,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAA+B,IAAI,GAAG,CAAC;IAC5E,MAAM;IACN,SAAS;IACT,WAAW;IACX,WAAW;CACZ,CAAC,CAAA;AAmCF;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAsB;IACnD,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE;IAC7C,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE;IACjE,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE;IACjE;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,UAAU;QACjB,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS;KAC/D;IACD;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,UAAU;QACjB,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,eAAe,IAAI,CAAC,CAAC,QAAQ,KAAK,eAAe;KAC9E;IACD;QACE,EAAE,EAAE,IAAI;QACR,KAAK,EAAE,cAAc;QACrB,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CACV,CAAC,CAAC,QAAQ,KAAK,cAAc;YAC7B,CAAC,CAAC,QAAQ,KAAK,sBAAsB;YACrC,CAAC,CAAC,QAAQ,KAAK,sBAAsB;KACxC;IACD;QACE,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CACV,CAAC,CAAC,QAAQ,KAAK,aAAa;YAC5B,CAAC,CAAC,QAAQ,KAAK,gBAAgB;YAC/B,CAAC,CAAC,QAAQ,KAAK,gBAAgB;YAC/B,CAAC,CAAC,QAAQ,KAAK,gBAAgB;KAClC;IACD;QACE,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,WAAW,IAAI,CAAC,CAAC,QAAQ,KAAK,WAAW;KACtE;CACF,CAAA;AAED,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;IACzB,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;CACjE,CAAC,CAAA;AACF,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;AAEzD,SAAS,WAAW,CAAC,GAAW;IAC9B,2EAA2E;IAC3E,gFAAgF;IAChF,IAAI,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACxE,OAAO,OAAO,CAAA;IAChB,CAAC;IACD,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC1D,IAAI,CAAC,GAAG;QAAE,OAAO,OAAO,CAAA;IACxB,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,CAAA;IACvC,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,CAAA;IACvC,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,IAAY;IACzC,IAAI,IAAI,KAAK,eAAe;QAAE,OAAO,MAAM,CAAA;IAC3C,IAAI,IAAI,KAAK,kBAAkB;QAAE,OAAO,SAAS,CAAA;IACjD,IAAI,IAAI,KAAK,eAAe;QAAE,OAAO,WAAW,CAAA;IAChD,IAAI,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAAE,OAAO,eAAe,CAAA;IAC/D,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,eAAe,CAAA;IACxD,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,eAAe,CAAA;IACxD,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,gBAAgB,CAAA;IAC3D,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,gBAAgB,CAAA;IAC1D,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,gBAAgB,CAAA;IACxD,IAAI,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC;QAAE,OAAO,aAAa,CAAA;IAC9D,IAAI,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC;QAAE,OAAO,sBAAsB,CAAA;IACzE,IAAI,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC;QAAE,OAAO,sBAAsB,CAAA;IACxE,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,cAAc,CAAA;IACxD,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,WAAW,CAAA;IACtD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAAC,QAAuB,EAAE,IAAY;IACxD,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO,MAAM,CAAA;IACtC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAC5C,IAAI,QAAQ,KAAK,WAAW;QAAE,OAAO,iBAAiB,CAAA;IAEtD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAA;IAC1C,IAAI,QAAQ,KAAK,WAAW;QAAE,OAAO,IAAI,CAAA;IACzC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;AAClC,CAAC;AAaD;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,GAAG,EACH,IAAI,EACJ,YAAY,EACZ,aAAa,GACG;IAChB,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC9C,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IACnB,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACtB,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAEjB,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAA;IAC5C,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAA;IAE1B,MAAM,GAAG,GACP,YAAY,YAAY,IAAI;QAC1B,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE;QAC5B,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAA;IAE1C,OAAO;QACL,GAAG;QACH,SAAS;QACT,QAAQ;QACR,GAAG,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE;QACjD,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC;QACjC,IAAI;QACJ,YAAY,EAAE,GAAG;QACjB,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC;QACtB,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,MAAM;KACvC,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAA;IAChE,OAAO,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAwB,CAAC,CAAC,CAAC,IAAI,CAAA;AAChD,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,mBAAmB,CAAC,GAAW,EAAE,SAAiB;IAChE,OAAO,GAAG,CAAC,UAAU,CAAC,UAAU,SAAS,GAAG,CAAC,CAAA;AAC/C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rovela-ai/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.1",
|
|
4
4
|
"description": "Rovela SDK - Pre-built e-commerce components for AI-powered store generation",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -264,6 +264,10 @@
|
|
|
264
264
|
"types": "./dist/media/server/index.d.ts",
|
|
265
265
|
"import": "./dist/media/server/index.js"
|
|
266
266
|
},
|
|
267
|
+
"./media/taxonomy": {
|
|
268
|
+
"types": "./dist/media/taxonomy.d.ts",
|
|
269
|
+
"import": "./dist/media/taxonomy.js"
|
|
270
|
+
},
|
|
267
271
|
"./media/api": {
|
|
268
272
|
"types": "./dist/media/api/index.d.ts",
|
|
269
273
|
"import": "./dist/media/api/index.js"
|