@rovela-ai/sdk 0.5.12 → 0.5.13

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 (34) hide show
  1. package/dist/admin/api/products.d.ts.map +1 -1
  2. package/dist/admin/api/products.js +10 -6
  3. package/dist/admin/api/products.js.map +1 -1
  4. package/dist/admin/components/ProductForm.d.ts.map +1 -1
  5. package/dist/admin/components/ProductForm.js +8 -3
  6. package/dist/admin/components/ProductForm.js.map +1 -1
  7. package/dist/auth/server/customer-service.d.ts.map +1 -1
  8. package/dist/auth/server/customer-service.js +26 -0
  9. package/dist/auth/server/customer-service.js.map +1 -1
  10. package/dist/checkout/server/order-service.d.ts.map +1 -1
  11. package/dist/checkout/server/order-service.js +96 -26
  12. package/dist/checkout/server/order-service.js.map +1 -1
  13. package/dist/checkout/stripe/client.d.ts +2 -1
  14. package/dist/checkout/stripe/client.d.ts.map +1 -1
  15. package/dist/checkout/stripe/client.js +5 -4
  16. package/dist/checkout/stripe/client.js.map +1 -1
  17. package/dist/core/db/queries.d.ts +25 -0
  18. package/dist/core/db/queries.d.ts.map +1 -1
  19. package/dist/core/db/queries.js +43 -0
  20. package/dist/core/db/queries.js.map +1 -1
  21. package/dist/core/server/index.d.ts +1 -0
  22. package/dist/core/server/index.d.ts.map +1 -1
  23. package/dist/core/server/index.js +3 -0
  24. package/dist/core/server/index.js.map +1 -1
  25. package/dist/core/server/sanitize.d.ts +17 -0
  26. package/dist/core/server/sanitize.d.ts.map +1 -0
  27. package/dist/core/server/sanitize.js +67 -0
  28. package/dist/core/server/sanitize.js.map +1 -0
  29. package/dist/core/types.d.ts +16 -5
  30. package/dist/core/types.d.ts.map +1 -1
  31. package/dist/products/components/ProductSpecifications.d.ts.map +1 -1
  32. package/dist/products/components/ProductSpecifications.js +5 -1
  33. package/dist/products/components/ProductSpecifications.js.map +1 -1
  34. package/package.json +3 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EACL,YAAY,EACZ,cAAc,EACd,aAAa,EACb,QAAQ,GACT,MAAM,WAAW,CAAA;AAGlB,YAAY,EACV,SAAS,EACT,cAAc,EACd,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EAEjB,UAAU,EACV,cAAc,EACd,aAAa,EACb,UAAU,EACV,WAAW,EACX,aAAa,EAEb,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,GACZ,MAAM,WAAW,CAAA;AAGlB,OAAO,EAEL,EAAE,EACF,KAAK,EACL,MAAM,EAEN,QAAQ,EAER,eAAe,EACf,iBAAiB,EAEjB,MAAM,EAEN,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,aAAa,EAEb,aAAa,EACb,aAAa,EACb,aAAa,EACb,iBAAiB,EAEjB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EAEf,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EAEf,cAAc,EACd,cAAc,EACd,cAAc,EAEd,UAAU,EACV,aAAa,EACb,cAAc,EACd,wBAAwB,EACxB,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EAEjB,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,EACxB,uBAAuB,EAEvB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,kBAAkB,EAElB,gBAAgB,EAEhB,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EAEf,YAAY,EACZ,cAAc,EAEd,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,OAAO,CAAA;AAEd,YAAY,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAGnD,YAAY,EACV,OAAO,IAAI,SAAS,EACpB,UAAU,EACV,cAAc,IAAI,gBAAgB,EAClC,iBAAiB,EACjB,QAAQ,IAAI,UAAU,EACtB,WAAW,EACX,KAAK,IAAI,OAAO,EAChB,QAAQ,EACR,SAAS,IAAI,WAAW,EACxB,YAAY,EACZ,QAAQ,IAAI,UAAU,EACtB,WAAW,EACX,UAAU,IAAI,YAAY,EAC1B,aAAa,EACb,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,OAAO,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EACL,YAAY,EACZ,cAAc,EACd,aAAa,EACb,QAAQ,GACT,MAAM,WAAW,CAAA;AAGlB,YAAY,EACV,SAAS,EACT,cAAc,EACd,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EAEjB,UAAU,EACV,cAAc,EACd,aAAa,EACb,UAAU,EACV,WAAW,EACX,aAAa,EAEb,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,GACZ,MAAM,WAAW,CAAA;AAGlB,OAAO,EAEL,EAAE,EACF,KAAK,EACL,MAAM,EAEN,QAAQ,EAER,eAAe,EACf,iBAAiB,EAEjB,MAAM,EAEN,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,aAAa,EAEb,aAAa,EACb,aAAa,EACb,aAAa,EACb,iBAAiB,EAEjB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EAEf,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EAEf,cAAc,EACd,cAAc,EACd,cAAc,EAEd,UAAU,EACV,aAAa,EACb,cAAc,EACd,wBAAwB,EACxB,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EAEjB,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,EACxB,uBAAuB,EAEvB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,kBAAkB,EAElB,gBAAgB,EAEhB,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EAEf,YAAY,EACZ,cAAc,EAEd,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,OAAO,CAAA;AAEd,YAAY,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAInD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAG7C,YAAY,EACV,OAAO,IAAI,SAAS,EACpB,UAAU,EACV,cAAc,IAAI,gBAAgB,EAClC,iBAAiB,EACjB,QAAQ,IAAI,UAAU,EACtB,WAAW,EACX,KAAK,IAAI,OAAO,EAChB,QAAQ,EACR,SAAS,IAAI,WAAW,EACxB,YAAY,EACZ,QAAQ,IAAI,UAAU,EACtB,WAAW,EACX,UAAU,IAAI,YAAY,EAC1B,aAAa,EACb,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,OAAO,CAAA"}
@@ -46,4 +46,7 @@ getStoreStats, getLowStockProducts, getLowStockCount, getRecentOrders,
46
46
  findSettings, upsertSettings,
47
47
  // Setup guide — admin onboarding state
48
48
  ensureOnboardingColumn, getOnboardingState, setOnboardingFlag, getSetupGuideSignals, } from '../db';
49
+ // Server-side HTML sanitizer for `html`-typed metafields (rich descriptions).
50
+ // Sanitize at the write boundary (admin product save + catalog import).
51
+ export { sanitizeRichHtml } from './sanitize';
49
52
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,oCAAoC;AACpC,OAAO,EACL,YAAY,EACZ,cAAc,EACd,aAAa,EACb,QAAQ,GACT,MAAM,WAAW,CAAA;AA2BlB,6EAA6E;AAC7E,OAAO;AACL,SAAS;AACT,EAAE,EACF,KAAK,EACL,MAAM;AACN,oEAAoE;AACpE,QAAQ;AACR,SAAS;AACT,eAAe,EACf,iBAAiB;AACjB,SAAS;AACT,MAAM;AACN,qBAAqB;AACrB,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,aAAa;AACb,uBAAuB;AACvB,aAAa,EACb,aAAa,EACb,aAAa,EACb,iBAAiB;AACjB,+BAA+B;AAC/B,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,eAAe;AACf,uBAAuB;AACvB,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,eAAe;AACf,yBAAyB;AACzB,cAAc,EACd,cAAc,EACd,cAAc;AACd,mBAAmB;AACnB,UAAU,EACV,aAAa,EACb,cAAc,EACd,wBAAwB,EACxB,WAAW,EACX,kBAAkB,EAClB,iBAAiB;AACjB,qBAAqB;AACrB,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,EACxB,uBAAuB;AACvB,sBAAsB;AACtB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,kBAAkB;AAClB,SAAS;AACT,gBAAgB;AAChB,QAAQ;AACR,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,eAAe;AACf,iBAAiB;AACjB,YAAY,EACZ,cAAc;AACd,uCAAuC;AACvC,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,OAAO,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,oCAAoC;AACpC,OAAO,EACL,YAAY,EACZ,cAAc,EACd,aAAa,EACb,QAAQ,GACT,MAAM,WAAW,CAAA;AA2BlB,6EAA6E;AAC7E,OAAO;AACL,SAAS;AACT,EAAE,EACF,KAAK,EACL,MAAM;AACN,oEAAoE;AACpE,QAAQ;AACR,SAAS;AACT,eAAe,EACf,iBAAiB;AACjB,SAAS;AACT,MAAM;AACN,qBAAqB;AACrB,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,aAAa;AACb,uBAAuB;AACvB,aAAa,EACb,aAAa,EACb,aAAa,EACb,iBAAiB;AACjB,+BAA+B;AAC/B,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,eAAe;AACf,uBAAuB;AACvB,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,eAAe;AACf,yBAAyB;AACzB,cAAc,EACd,cAAc,EACd,cAAc;AACd,mBAAmB;AACnB,UAAU,EACV,aAAa,EACb,cAAc,EACd,wBAAwB,EACxB,WAAW,EACX,kBAAkB,EAClB,iBAAiB;AACjB,qBAAqB;AACrB,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,EACxB,uBAAuB;AACvB,sBAAsB;AACtB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,kBAAkB;AAClB,SAAS;AACT,gBAAgB;AAChB,QAAQ;AACR,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,eAAe;AACf,iBAAiB;AACjB,YAAY,EACZ,cAAc;AACd,uCAAuC;AACvC,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,OAAO,CAAA;AAId,8EAA8E;AAC9E,wEAAwE;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @rovela/sdk/core/server/sanitize
3
+ *
4
+ * Server-side HTML sanitizer for merchant-authored / imported rich text — e.g.
5
+ * PrestaShop product descriptions stored as `html`-typed metafields (see
6
+ * `Metafield` in core/types). Sanitize at the WRITE boundary (admin product
7
+ * save + catalog import) so the storefront can render the stored value
8
+ * directly. SERVER ONLY — never import this from a client component; it pulls in
9
+ * `sanitize-html` (Node) and must stay out of client bundles.
10
+ */
11
+ /**
12
+ * Sanitize a rich-HTML string down to a safe subset (formatting, lists, links,
13
+ * images, tables). Strips scripts, event handlers, unknown tags, and unsafe URL
14
+ * schemes. Returns '' for empty / non-string input so callers can store it as-is.
15
+ */
16
+ export declare function sanitizeRichHtml(html: unknown): string;
17
+ //# sourceMappingURL=sanitize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../../src/core/server/sanitize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAkDH;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAGtD"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * @rovela/sdk/core/server/sanitize
3
+ *
4
+ * Server-side HTML sanitizer for merchant-authored / imported rich text — e.g.
5
+ * PrestaShop product descriptions stored as `html`-typed metafields (see
6
+ * `Metafield` in core/types). Sanitize at the WRITE boundary (admin product
7
+ * save + catalog import) so the storefront can render the stored value
8
+ * directly. SERVER ONLY — never import this from a client component; it pulls in
9
+ * `sanitize-html` (Node) and must stay out of client bundles.
10
+ */
11
+ import sanitizeHtml from 'sanitize-html';
12
+ // A conservative allowlist covering the formatting real product descriptions
13
+ // use (headings, lists, links, images, tables, basic inline styling) while
14
+ // dropping every scripting / layout-hijack vector.
15
+ const RICH_TEXT_OPTIONS = {
16
+ allowedTags: [
17
+ 'p', 'br', 'hr', 'span', 'div',
18
+ 'strong', 'b', 'em', 'i', 'u', 's', 'small', 'sub', 'sup', 'mark',
19
+ 'ul', 'ol', 'li',
20
+ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6',
21
+ 'blockquote', 'pre', 'code',
22
+ 'a', 'img',
23
+ 'table', 'thead', 'tbody', 'tfoot', 'tr', 'td', 'th', 'caption', 'colgroup', 'col',
24
+ 'figure', 'figcaption',
25
+ ],
26
+ allowedAttributes: {
27
+ // `rel` must be allowed for the forced-rel transform below to survive the
28
+ // attribute filter (sanitize-html filters attributes AFTER transformTags).
29
+ a: ['href', 'title', 'rel'],
30
+ img: ['src', 'alt', 'title', 'width', 'height'],
31
+ td: ['colspan', 'rowspan'],
32
+ th: ['colspan', 'rowspan', 'scope'],
33
+ col: ['span'],
34
+ colgroup: ['span'],
35
+ '*': ['style'],
36
+ },
37
+ // Only a safe subset of inline CSS survives — enough to keep alignment / weight
38
+ // / color from the source without opening `position`/`url()`-based attacks.
39
+ allowedStyles: {
40
+ '*': {
41
+ 'text-align': [/^(left|right|center|justify)$/],
42
+ 'font-weight': [/^(bold|bolder|lighter|normal|[1-9]00)$/],
43
+ 'font-style': [/^(italic|normal)$/],
44
+ 'text-decoration': [/^(underline|line-through|none)$/],
45
+ color: [/^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i, /^rgb\(\s*\d{1,3}\s*,\s*\d{1,3}\s*,\s*\d{1,3}\s*\)$/],
46
+ },
47
+ },
48
+ allowedSchemes: ['http', 'https', 'mailto', 'tel'],
49
+ allowedSchemesByTag: { img: ['http', 'https'] },
50
+ // Harden links against reverse-tabnabbing and SEO abuse.
51
+ transformTags: {
52
+ a: sanitizeHtml.simpleTransform('a', { rel: 'noopener noreferrer nofollow' }, true),
53
+ },
54
+ // Drop the CONTENT of these, not just the tags.
55
+ nonTextTags: ['script', 'style', 'textarea', 'option', 'noscript', 'iframe'],
56
+ };
57
+ /**
58
+ * Sanitize a rich-HTML string down to a safe subset (formatting, lists, links,
59
+ * images, tables). Strips scripts, event handlers, unknown tags, and unsafe URL
60
+ * schemes. Returns '' for empty / non-string input so callers can store it as-is.
61
+ */
62
+ export function sanitizeRichHtml(html) {
63
+ if (typeof html !== 'string' || html.trim() === '')
64
+ return '';
65
+ return sanitizeHtml(html, RICH_TEXT_OPTIONS);
66
+ }
67
+ //# sourceMappingURL=sanitize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../../../src/core/server/sanitize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,YAAY,MAAM,eAAe,CAAA;AAExC,6EAA6E;AAC7E,2EAA2E;AAC3E,mDAAmD;AACnD,MAAM,iBAAiB,GAA0B;IAC/C,WAAW,EAAE;QACX,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK;QAC9B,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM;QACjE,IAAI,EAAE,IAAI,EAAE,IAAI;QAChB,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAClC,YAAY,EAAE,KAAK,EAAE,MAAM;QAC3B,GAAG,EAAE,KAAK;QACV,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK;QAClF,QAAQ,EAAE,YAAY;KACvB;IACD,iBAAiB,EAAE;QACjB,0EAA0E;QAC1E,2EAA2E;QAC3E,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC;QAC3B,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;QAC/C,EAAE,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;QAC1B,EAAE,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC;QACnC,GAAG,EAAE,CAAC,MAAM,CAAC;QACb,QAAQ,EAAE,CAAC,MAAM,CAAC;QAClB,GAAG,EAAE,CAAC,OAAO,CAAC;KACf;IACD,gFAAgF;IAChF,4EAA4E;IAC5E,aAAa,EAAE;QACb,GAAG,EAAE;YACH,YAAY,EAAE,CAAC,+BAA+B,CAAC;YAC/C,aAAa,EAAE,CAAC,wCAAwC,CAAC;YACzD,YAAY,EAAE,CAAC,mBAAmB,CAAC;YACnC,iBAAiB,EAAE,CAAC,iCAAiC,CAAC;YACtD,KAAK,EAAE,CAAC,iCAAiC,EAAE,oDAAoD,CAAC;SACjG;KACF;IACD,cAAc,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC;IAClD,mBAAmB,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;IAC/C,yDAAyD;IACzD,aAAa,EAAE;QACb,CAAC,EAAE,YAAY,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,8BAA8B,EAAE,EAAE,IAAI,CAAC;KACpF;IACD,gDAAgD;IAChD,WAAW,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC;CAC7E,CAAA;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAa;IAC5C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,EAAE,CAAA;IAC7D,OAAO,YAAY,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;AAC9C,CAAC"}
@@ -18,16 +18,27 @@ export type Store = {
18
18
  createdAt: Date;
19
19
  };
20
20
  /**
21
- * A custom product field ("metafield"): an ordered key/label/value triple.
22
- * `key` is a stable slug (unique per product), `label` is the human display,
23
- * `value` is a string. Rendered dynamically in the admin form + storefront —
24
- * no per-field code. Populated by the PrestaShop importer (custom fields +
25
- * specifications) or added by hand in the product editor.
21
+ * Rendering type for a metafield value. Drives the admin editor (number field
22
+ * vs. rich-text area) and the storefront render (plain text vs. sanitized HTML).
23
+ * Omitted = 'text', so every legacy metafield keeps working unchanged.
24
+ * - 'text' plain string (default)
25
+ * - 'number' a numeric value, rendered as text
26
+ * - 'html' sanitized rich HTML (e.g. an imported PrestaShop description)
27
+ */
28
+ export type MetafieldType = 'text' | 'number' | 'html';
29
+ /**
30
+ * A custom product field ("metafield"): an ordered key/label/value triple with
31
+ * an optional `type`. `key` is a stable slug (unique per product), `label` is
32
+ * the human display, `value` is a string. Rendered dynamically in the admin
33
+ * form + storefront — no per-field code. Populated by the PrestaShop importer
34
+ * (custom fields + specifications + rich description) or added by hand in the
35
+ * product editor.
26
36
  */
27
37
  export type Metafield = {
28
38
  key: string;
29
39
  label: string;
30
40
  value: string;
41
+ type?: MetafieldType;
31
42
  };
32
43
  /**
33
44
  * Product with SEO fields for catalog display and search optimization.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProductSpecifications.d.ts","sourceRoot":"","sources":["../../../src/products/components/ProductSpecifications.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAGjD,MAAM,WAAW,0BAA0B;IACzC,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACxB;AAED,wBAAgB,qBAAqB,CAAC,EACpC,UAAU,EACV,SAAS,EACT,OAA0B,GAC3B,EAAE,0BAA0B,kDA4B5B"}
1
+ {"version":3,"file":"ProductSpecifications.d.ts","sourceRoot":"","sources":["../../../src/products/components/ProductSpecifications.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAGjD,MAAM,WAAW,0BAA0B;IACzC,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACxB;AAED,wBAAgB,qBAAqB,CAAC,EACpC,UAAU,EACV,SAAS,EACT,OAA0B,GAC3B,EAAE,0BAA0B,kDAsD5B"}
@@ -10,6 +10,10 @@ export function ProductSpecifications({ metafields, className, heading = 'Specif
10
10
  m.value.trim() !== '');
11
11
  if (items.length === 0)
12
12
  return null;
13
- return (_jsxs("section", { className: className ?? 'mt-8', "aria-label": heading ?? 'Specifications', children: [heading && (_jsx("h2", { className: "font-heading mb-3 text-lg font-semibold", children: heading })), _jsx("dl", { className: "divide-y divide-border overflow-hidden rounded-lg border border-border", children: items.map((m) => (_jsxs("div", { className: "grid grid-cols-3 gap-4 px-4 py-2.5 text-sm", children: [_jsx("dt", { className: "col-span-1 text-muted-foreground", children: m.label }), _jsx("dd", { className: "col-span-2 whitespace-pre-line text-foreground", children: m.value })] }, m.key))) })] }));
13
+ // Rich HTML fields (e.g. an imported description) render full-width as prose;
14
+ // simple text/number fields render as a two-column spec table.
15
+ const rich = items.filter((m) => m.type === 'html');
16
+ const simple = items.filter((m) => m.type !== 'html');
17
+ return (_jsxs("section", { className: className ?? 'mt-8', "aria-label": heading ?? 'Specifications', children: [heading && (_jsx("h2", { className: "font-heading mb-3 text-lg font-semibold", children: heading })), simple.length > 0 && (_jsx("dl", { className: "divide-y divide-border overflow-hidden rounded-lg border border-border", children: simple.map((m) => (_jsxs("div", { className: "grid grid-cols-3 gap-4 px-4 py-2.5 text-sm", children: [_jsx("dt", { className: "col-span-1 text-muted-foreground", children: m.label }), _jsx("dd", { className: "col-span-2 whitespace-pre-line text-foreground", children: m.value })] }, m.key))) })), rich.map((m) => (_jsxs("div", { className: simple.length > 0 ? 'mt-6' : undefined, children: [m.label && (_jsx("h3", { className: "font-heading mb-2 text-base font-semibold", children: m.label })), _jsx("div", { className: "prose prose-sm max-w-none text-foreground", dangerouslySetInnerHTML: { __html: m.value } })] }, m.key)))] }));
14
18
  }
15
19
  //# sourceMappingURL=ProductSpecifications.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProductSpecifications.js","sourceRoot":"","sources":["../../../src/products/components/ProductSpecifications.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAgBZ,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAA;AAS3E,MAAM,UAAU,qBAAqB,CAAC,EACpC,UAAU,EACV,SAAS,EACT,OAAO,GAAG,gBAAgB,GACC;IAC3B,MAAM,GAAG,GAAG,wBAAwB,EAAE,CAAA;IACtC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,mBAAmB,IAAI,EAAE,CAAC,CAAA;IAE/D,MAAM,KAAK,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CACrC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAChB,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ;QAC3B,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CACxB,CAAA;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAEnC,OAAO,CACL,mBAAS,SAAS,EAAE,SAAS,IAAI,MAAM,gBAAc,OAAO,IAAI,gBAAgB,aAC7E,OAAO,IAAI,CACV,aAAI,SAAS,EAAC,yCAAyC,YAAE,OAAO,GAAM,CACvE,EACD,aAAI,SAAS,EAAC,wEAAwE,YACnF,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAChB,eAAiB,SAAS,EAAC,4CAA4C,aACrE,aAAI,SAAS,EAAC,kCAAkC,YAAE,CAAC,CAAC,KAAK,GAAM,EAC/D,aAAI,SAAS,EAAC,gDAAgD,YAAE,CAAC,CAAC,KAAK,GAAM,KAFrE,CAAC,CAAC,GAAG,CAGT,CACP,CAAC,GACC,IACG,CACX,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"ProductSpecifications.js","sourceRoot":"","sources":["../../../src/products/components/ProductSpecifications.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAgBZ,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAA;AAS3E,MAAM,UAAU,qBAAqB,CAAC,EACpC,UAAU,EACV,SAAS,EACT,OAAO,GAAG,gBAAgB,GACC;IAC3B,MAAM,GAAG,GAAG,wBAAwB,EAAE,CAAA;IACtC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,mBAAmB,IAAI,EAAE,CAAC,CAAA;IAE/D,MAAM,KAAK,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CACrC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAChB,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ;QAC3B,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CACxB,CAAA;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAEnC,8EAA8E;IAC9E,+DAA+D;IAC/D,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAA;IACnD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAA;IAErD,OAAO,CACL,mBAAS,SAAS,EAAE,SAAS,IAAI,MAAM,gBAAc,OAAO,IAAI,gBAAgB,aAC7E,OAAO,IAAI,CACV,aAAI,SAAS,EAAC,yCAAyC,YAAE,OAAO,GAAM,CACvE,EAEA,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CACpB,aAAI,SAAS,EAAC,wEAAwE,YACnF,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACjB,eAAiB,SAAS,EAAC,4CAA4C,aACrE,aAAI,SAAS,EAAC,kCAAkC,YAAE,CAAC,CAAC,KAAK,GAAM,EAC/D,aAAI,SAAS,EAAC,gDAAgD,YAAE,CAAC,CAAC,KAAK,GAAM,KAFrE,CAAC,CAAC,GAAG,CAGT,CACP,CAAC,GACC,CACN,EAEA,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACf,eAAiB,SAAS,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,aAC/D,CAAC,CAAC,KAAK,IAAI,CACV,aAAI,SAAS,EAAC,2CAA2C,YAAE,CAAC,CAAC,KAAK,GAAM,CACzE,EAOD,cACE,SAAS,EAAC,2CAA2C,EACrD,uBAAuB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,GAC5C,KAbM,CAAC,CAAC,GAAG,CAcT,CACP,CAAC,IACM,CACX,CAAA;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rovela-ai/sdk",
3
- "version": "0.5.12",
3
+ "version": "0.5.13",
4
4
  "description": "Rovela SDK - Pre-built e-commerce components for AI-powered store generation",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -269,6 +269,7 @@
269
269
  "next-auth": "4.24.13",
270
270
  "recharts": "3.7.0",
271
271
  "resend": "6.9.1",
272
+ "sanitize-html": "^2.14.0",
272
273
  "stripe": "20.3.0",
273
274
  "tailwind-merge": "3.4.0",
274
275
  "zustand": "5.0.10"
@@ -277,6 +278,7 @@
277
278
  "@types/bcryptjs": "2.4.6",
278
279
  "@types/node": "24.10.9",
279
280
  "@types/react": "19.2.10",
281
+ "@types/sanitize-html": "^2.13.0",
280
282
  "drizzle-kit": "0.31.8",
281
283
  "typescript": "5.9.3"
282
284
  },