@sentroy-co/client-sdk 2.2.1 → 2.4.2

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 (44) hide show
  1. package/README.md +157 -1
  2. package/dist/http.d.ts +13 -2
  3. package/dist/http.d.ts.map +1 -1
  4. package/dist/http.js +22 -6
  5. package/dist/http.js.map +1 -1
  6. package/dist/index.d.ts +1 -0
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +5 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/react/MediaManager.d.ts +13 -1
  11. package/dist/react/MediaManager.d.ts.map +1 -1
  12. package/dist/react/MediaManager.js +24 -8
  13. package/dist/react/MediaManager.js.map +1 -1
  14. package/dist/react/MediaManagerTrigger.d.ts +63 -0
  15. package/dist/react/MediaManagerTrigger.d.ts.map +1 -0
  16. package/dist/react/MediaManagerTrigger.js +81 -0
  17. package/dist/react/MediaManagerTrigger.js.map +1 -0
  18. package/dist/react/index.d.ts +2 -1
  19. package/dist/react/index.d.ts.map +1 -1
  20. package/dist/react/index.js +4 -1
  21. package/dist/react/index.js.map +1 -1
  22. package/dist/react/lib/Lightbox.d.ts.map +1 -1
  23. package/dist/react/lib/Lightbox.js +7 -1
  24. package/dist/react/lib/Lightbox.js.map +1 -1
  25. package/dist/react/lib/utils.d.ts +14 -0
  26. package/dist/react/lib/utils.d.ts.map +1 -1
  27. package/dist/react/lib/utils.js +36 -0
  28. package/dist/react/lib/utils.js.map +1 -1
  29. package/dist/thumbnails.d.ts +67 -0
  30. package/dist/thumbnails.d.ts.map +1 -0
  31. package/dist/thumbnails.js +106 -0
  32. package/dist/thumbnails.js.map +1 -0
  33. package/dist/types.d.ts +10 -2
  34. package/dist/types.d.ts.map +1 -1
  35. package/package.json +1 -1
  36. package/src/http.ts +26 -8
  37. package/src/index.ts +8 -0
  38. package/src/react/MediaManager.tsx +38 -8
  39. package/src/react/MediaManagerTrigger.tsx +260 -0
  40. package/src/react/index.ts +5 -0
  41. package/src/react/lib/Lightbox.tsx +8 -1
  42. package/src/react/lib/utils.ts +34 -0
  43. package/src/thumbnails.ts +128 -0
  44. package/src/types.ts +10 -2
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MediaManagerTrigger = MediaManagerTrigger;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const react_dom_1 = require("react-dom");
7
+ const MediaManager_1 = require("./MediaManager");
8
+ const utils_1 = require("./lib/utils");
9
+ function MediaManagerTrigger(props) {
10
+ const { trigger, maxItems = 1, onSelect, title = "Select media", description, open: controlledOpen, onOpenChange, modalClassName, triggerClassName, confirmLabel = "Use selection", cancelLabel = "Cancel", disabled = false, ...mmProps } = props;
11
+ const [internalOpen, setInternalOpen] = (0, react_1.useState)(false);
12
+ const [selected, setSelected] = (0, react_1.useState)([]);
13
+ const [mounted, setMounted] = (0, react_1.useState)(false);
14
+ // SSR guard — portal yalnızca client'ta.
15
+ (0, react_1.useEffect)(() => {
16
+ setMounted(true);
17
+ }, []);
18
+ const isControlled = controlledOpen !== undefined;
19
+ const open = isControlled ? controlledOpen : internalOpen;
20
+ const setOpen = (0, react_1.useCallback)((v) => {
21
+ if (!isControlled)
22
+ setInternalOpen(v);
23
+ onOpenChange?.(v);
24
+ if (!v)
25
+ setSelected([]);
26
+ }, [isControlled, onOpenChange]);
27
+ // ESC — modal'ı kapat.
28
+ (0, react_1.useEffect)(() => {
29
+ if (!open)
30
+ return;
31
+ const onKey = (e) => {
32
+ if (e.key === "Escape") {
33
+ e.preventDefault();
34
+ setOpen(false);
35
+ }
36
+ };
37
+ document.addEventListener("keydown", onKey);
38
+ return () => document.removeEventListener("keydown", onKey);
39
+ }, [open, setOpen]);
40
+ // Body scroll lock — modal açıkken arka planda scroll olmasın.
41
+ (0, react_1.useEffect)(() => {
42
+ if (!open)
43
+ return;
44
+ const original = document.body.style.overflow;
45
+ document.body.style.overflow = "hidden";
46
+ return () => {
47
+ document.body.style.overflow = original;
48
+ };
49
+ }, [open]);
50
+ const handleConfirm = (0, react_1.useCallback)(() => {
51
+ onSelect(selected);
52
+ setOpen(false);
53
+ }, [onSelect, selected, setOpen]);
54
+ const handleTriggerClick = (0, react_1.useCallback)(() => {
55
+ if (disabled)
56
+ return;
57
+ setOpen(true);
58
+ }, [disabled, setOpen]);
59
+ // Trigger — span'a click handler bağla. Consumer'ın trigger'ı zaten
60
+ // button olabilir; bu durumda nested button HTML invalid olur ama
61
+ // tarayıcılar tolere eder. İstenirse triggerClassName ile span yerine
62
+ // başka semantik kullanılabilir (consumer kendi trigger'ında onClick
63
+ // override edemez — modal handler'ı her zaman çalışır).
64
+ const triggerNode = ((0, jsx_runtime_1.jsx)("span", { role: "button", tabIndex: disabled ? -1 : 0, "aria-haspopup": "dialog", "aria-expanded": open, "aria-disabled": disabled, onClick: handleTriggerClick, onKeyDown: (e) => {
65
+ if (disabled)
66
+ return;
67
+ if (e.key === "Enter" || e.key === " ") {
68
+ e.preventDefault();
69
+ setOpen(true);
70
+ }
71
+ }, className: (0, utils_1.cn)("inline-block", disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer", triggerClassName), children: trigger }));
72
+ const modalNode = open && mounted ? ((0, jsx_runtime_1.jsxs)("div", { className: "fixed inset-0 z-[100] flex items-center justify-center p-4", role: "dialog", "aria-modal": "true", "aria-labelledby": "sentroy-mm-title", children: [(0, jsx_runtime_1.jsx)("div", { className: "absolute inset-0 bg-black/60 backdrop-blur-sm", onClick: () => setOpen(false) }), (0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.cn)("relative z-10 flex h-[85vh] w-full max-w-5xl flex-col gap-3 rounded-xl border bg-background p-4 shadow-2xl", modalClassName), children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-start justify-between gap-2", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex flex-col gap-0.5", children: [(0, jsx_runtime_1.jsx)("h2", { id: "sentroy-mm-title", className: "text-base font-semibold", children: title }), description && ((0, jsx_runtime_1.jsx)("p", { className: "text-xs text-muted-foreground", children: description }))] }), (0, jsx_runtime_1.jsx)("button", { type: "button", onClick: () => setOpen(false), className: "rounded-md p-1 text-muted-foreground hover:bg-muted/50", "aria-label": "Close", children: (0, jsx_runtime_1.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: (0, jsx_runtime_1.jsx)("path", { d: "M18 6L6 18M6 6l12 12" }) }) })] }), (0, jsx_runtime_1.jsx)("div", { className: "min-h-0 flex-1 overflow-hidden", children: (0, jsx_runtime_1.jsx)(MediaManager_1.MediaManager, { ...mmProps, multiple: maxItems > 1, maxItems: maxItems, onChange: setSelected, className: (0, utils_1.cn)("h-full", mmProps.className) }) }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between gap-2 border-t pt-3", children: [(0, jsx_runtime_1.jsx)("div", { className: "text-xs text-muted-foreground", children: selected.length === 0
73
+ ? maxItems === 1
74
+ ? "Select an item"
75
+ : `Select up to ${maxItems} items`
76
+ : maxItems === 1
77
+ ? "1 item selected"
78
+ : `${selected.length} / ${maxItems} selected` }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-2", children: [(0, jsx_runtime_1.jsx)("button", { type: "button", onClick: () => setOpen(false), className: "rounded-md border px-3 py-1.5 text-xs hover:bg-muted/50", children: cancelLabel }), (0, jsx_runtime_1.jsx)("button", { type: "button", onClick: handleConfirm, disabled: selected.length === 0, className: "rounded-md bg-foreground px-3 py-1.5 text-xs font-medium text-background transition-opacity hover:opacity-90 disabled:opacity-50", children: confirmLabel })] })] })] })] })) : null;
79
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [triggerNode, mounted && modalNode ? (0, react_dom_1.createPortal)(modalNode, document.body) : null] }));
80
+ }
81
+ //# sourceMappingURL=MediaManagerTrigger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaManagerTrigger.js","sourceRoot":"","sources":["../../src/react/MediaManagerTrigger.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export { MediaManager, type MediaManagerProps, type MediaManagerClassNames, } from "./MediaManager";
2
+ export { MediaManagerTrigger, type MediaManagerTriggerProps, } from "./MediaManagerTrigger";
2
3
  export { Lightbox, type LightboxProps } from "./lib/Lightbox";
3
- export { cn, formatBytes, detectKind, KIND_LABELS, type MediaKind, } from "./lib/utils";
4
+ export { cn, formatBytes, detectKind, matchAccept, KIND_LABELS, type MediaKind, } from "./lib/utils";
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,GAC5B,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC7D,OAAO,EACL,EAAE,EACF,WAAW,EACX,UAAU,EACV,WAAW,EACX,KAAK,SAAS,GACf,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,GAC5B,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,GAC9B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC7D,OAAO,EACL,EAAE,EACF,WAAW,EACX,UAAU,EACV,WAAW,EACX,WAAW,EACX,KAAK,SAAS,GACf,MAAM,aAAa,CAAA"}
@@ -1,13 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.KIND_LABELS = exports.detectKind = exports.formatBytes = exports.cn = exports.Lightbox = exports.MediaManager = void 0;
3
+ exports.KIND_LABELS = exports.matchAccept = exports.detectKind = exports.formatBytes = exports.cn = exports.Lightbox = exports.MediaManagerTrigger = exports.MediaManager = void 0;
4
4
  var MediaManager_1 = require("./MediaManager");
5
5
  Object.defineProperty(exports, "MediaManager", { enumerable: true, get: function () { return MediaManager_1.MediaManager; } });
6
+ var MediaManagerTrigger_1 = require("./MediaManagerTrigger");
7
+ Object.defineProperty(exports, "MediaManagerTrigger", { enumerable: true, get: function () { return MediaManagerTrigger_1.MediaManagerTrigger; } });
6
8
  var Lightbox_1 = require("./lib/Lightbox");
7
9
  Object.defineProperty(exports, "Lightbox", { enumerable: true, get: function () { return Lightbox_1.Lightbox; } });
8
10
  var utils_1 = require("./lib/utils");
9
11
  Object.defineProperty(exports, "cn", { enumerable: true, get: function () { return utils_1.cn; } });
10
12
  Object.defineProperty(exports, "formatBytes", { enumerable: true, get: function () { return utils_1.formatBytes; } });
11
13
  Object.defineProperty(exports, "detectKind", { enumerable: true, get: function () { return utils_1.detectKind; } });
14
+ Object.defineProperty(exports, "matchAccept", { enumerable: true, get: function () { return utils_1.matchAccept; } });
12
15
  Object.defineProperty(exports, "KIND_LABELS", { enumerable: true, get: function () { return utils_1.KIND_LABELS; } });
13
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":";;;AAAA,+CAIuB;AAHrB,4GAAA,YAAY,OAAA;AAId,2CAA6D;AAApD,oGAAA,QAAQ,OAAA;AACjB,qCAMoB;AALlB,2FAAA,EAAE,OAAA;AACF,oGAAA,WAAW,OAAA;AACX,mGAAA,UAAU,OAAA;AACV,oGAAA,WAAW,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":";;;AAAA,+CAIuB;AAHrB,4GAAA,YAAY,OAAA;AAId,6DAG8B;AAF5B,0HAAA,mBAAmB,OAAA;AAGrB,2CAA6D;AAApD,oGAAA,QAAQ,OAAA;AACjB,qCAOoB;AANlB,2FAAA,EAAE,OAAA;AACF,oGAAA,WAAW,OAAA;AACX,mGAAA,UAAU,OAAA;AACV,oGAAA,WAAW,OAAA;AACX,oGAAA,WAAW,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Lightbox.d.ts","sourceRoot":"","sources":["../../../src/react/lib/Lightbox.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAGxC;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,KAAK,CAAA;IACZ,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,OAAO,EACP,MAAM,EACN,MAAM,EACN,SAAS,GACV,EAAE,aAAa,2CAuIf"}
1
+ {"version":3,"file":"Lightbox.d.ts","sourceRoot":"","sources":["../../../src/react/lib/Lightbox.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAIxC;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,KAAK,CAAA;IACZ,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,OAAO,EACP,MAAM,EACN,MAAM,EACN,SAAS,GACV,EAAE,aAAa,2CA6If"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Lightbox = Lightbox;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
+ const thumbnails_1 = require("../../thumbnails");
6
7
  const utils_1 = require("./utils");
7
8
  function Lightbox({ media, onClose, onPrev, onNext, className, }) {
8
9
  (0, react_1.useEffect)(() => {
@@ -22,7 +23,12 @@ function Lightbox({ media, onClose, onPrev, onNext, className, }) {
22
23
  };
23
24
  }, [onClose, onPrev, onNext]);
24
25
  const kind = (0, utils_1.detectKind)(media);
25
- const url = media.url || media.downloadUrl;
26
+ // Lightbox modal büyük preview ama 4K/orijinal gerekmez. Image
27
+ // için "preview" preset (~960px) kullan, video/audio/diğerlerinde
28
+ // orijinal URL'i akıt.
29
+ const url = kind === "image"
30
+ ? (0, thumbnails_1.pickPresetThumbnailUrl)(media, "preview") ?? media.url ?? media.downloadUrl
31
+ : media.url ?? media.downloadUrl;
26
32
  return ((0, jsx_runtime_1.jsxs)("div", { role: "dialog", "aria-modal": "true", onClick: (e) => {
27
33
  if (e.target === e.currentTarget)
28
34
  onClose();
@@ -1 +1 @@
1
- {"version":3,"file":"Lightbox.js","sourceRoot":"","sources":["../../../src/react/lib/Lightbox.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Lightbox.js","sourceRoot":"","sources":["../../../src/react/lib/Lightbox.tsx"],"names":[],"mappings":"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"}
@@ -14,4 +14,18 @@ export declare function detectKind(file: {
14
14
  }): MediaKind;
15
15
  export type MediaKind = "image" | "video" | "audio" | "pdf" | "doc" | "archive" | "code" | "other";
16
16
  export declare const KIND_LABELS: Record<MediaKind, string>;
17
+ /**
18
+ * `<input accept="...">` semantics — pattern listesi virgülle ayrılır,
19
+ * her parça:
20
+ * - `image/*` → MIME wildcard (image/png, image/jpeg ✓)
21
+ * - `image/png` → MIME exact match
22
+ * - `.png` → file extension (case-insensitive)
23
+ *
24
+ * Hiçbir parça eşleşmezse false. Accept boş/undefined olursa caller
25
+ * filter'ı atlamalı — bu fonksiyon o yüzden boş string'i false döner.
26
+ */
27
+ export declare function matchAccept(file: {
28
+ mimeType?: string | null;
29
+ fileName?: string;
30
+ }, accept: string): boolean;
17
31
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/react/lib/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,EAAE,CAChB,GAAG,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,GACpD,MAAM,CAER;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,SAAI,GAAG,MAAM,CAU/D;AAED;0DAC0D;AAC1D,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,SAAS,CAsBZ;AAED,MAAM,MAAM,SAAS,GACjB,OAAO,GACP,OAAO,GACP,OAAO,GACP,KAAK,GACL,KAAK,GACL,SAAS,GACT,MAAM,GACN,OAAO,CAAA;AAEX,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CASjD,CAAA"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/react/lib/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,EAAE,CAChB,GAAG,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,GACpD,MAAM,CAER;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,SAAI,GAAG,MAAM,CAU/D;AAED;0DAC0D;AAC1D,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,SAAS,CAsBZ;AAED,MAAM,MAAM,SAAS,GACjB,OAAO,GACP,OAAO,GACP,OAAO,GACP,KAAK,GACL,KAAK,GACL,SAAS,GACT,MAAM,GACN,OAAO,CAAA;AAEX,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CASjD,CAAA;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,EACrD,MAAM,EAAE,MAAM,GACb,OAAO,CAmBT"}
@@ -4,6 +4,7 @@ exports.KIND_LABELS = void 0;
4
4
  exports.cn = cn;
5
5
  exports.formatBytes = formatBytes;
6
6
  exports.detectKind = detectKind;
7
+ exports.matchAccept = matchAccept;
7
8
  /**
8
9
  * Minimal class name combiner — clsx + twMerge gibi davranır ama
9
10
  * dependency yok. Falsy filtrele, dedup yapma. Tema override'larında
@@ -59,4 +60,39 @@ exports.KIND_LABELS = {
59
60
  code: "Code",
60
61
  other: "Other",
61
62
  };
63
+ /**
64
+ * `<input accept="...">` semantics — pattern listesi virgülle ayrılır,
65
+ * her parça:
66
+ * - `image/*` → MIME wildcard (image/png, image/jpeg ✓)
67
+ * - `image/png` → MIME exact match
68
+ * - `.png` → file extension (case-insensitive)
69
+ *
70
+ * Hiçbir parça eşleşmezse false. Accept boş/undefined olursa caller
71
+ * filter'ı atlamalı — bu fonksiyon o yüzden boş string'i false döner.
72
+ */
73
+ function matchAccept(file, accept) {
74
+ const patterns = accept
75
+ .split(",")
76
+ .map((s) => s.trim().toLowerCase())
77
+ .filter(Boolean);
78
+ if (patterns.length === 0)
79
+ return false;
80
+ const mt = (file.mimeType ?? "").toLowerCase();
81
+ const fn = (file.fileName ?? "").toLowerCase();
82
+ for (const p of patterns) {
83
+ if (p.startsWith(".")) {
84
+ if (fn.endsWith(p))
85
+ return true;
86
+ }
87
+ else if (p.endsWith("/*")) {
88
+ const prefix = p.slice(0, -1); // "image/*" → "image/"
89
+ if (mt.startsWith(prefix))
90
+ return true;
91
+ }
92
+ else if (p === mt) {
93
+ return true;
94
+ }
95
+ }
96
+ return false;
97
+ }
62
98
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/react/lib/utils.ts"],"names":[],"mappings":";;;AAMA,gBAIC;AAED,kCAUC;AAID,gCAyBC;AAnDD;;;;;GAKG;AACH,SAAgB,EAAE,CAChB,GAAG,IAAkD;IAErD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACvC,CAAC;AAED,SAAgB,WAAW,CAAC,KAAa,EAAE,QAAQ,GAAG,CAAC;IACrD,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAA;IACxB,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAC3C,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,IAAI,CAAC,GAAG,KAAK,CAAA;IACb,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,CAAC,IAAI,IAAI,CAAA;QACT,CAAC,EAAE,CAAA;IACL,CAAC;IACD,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;AACvE,CAAC;AAED;0DAC0D;AAC1D,SAAgB,UAAU,CAAC,IAG1B;IACC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;IAC9C,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;IACvE,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAA;IAC3C,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAA;IAC3C,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAA;IAC3C,IAAI,EAAE,KAAK,iBAAiB,IAAI,GAAG,KAAK,KAAK;QAAE,OAAO,KAAK,CAAA;IAC3D,IACE,uDAAuD,CAAC,IAAI,CAAC,GAAG,CAAC;QACjE,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,EACjC,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,2BAA2B,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAA;IAC3D,IACE,oEAAoE,CAAC,IAAI,CACvE,GAAG,CACJ,EACD,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAYY,QAAA,WAAW,GAA8B;IACpD,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,UAAU;IACf,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;CACf,CAAA"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/react/lib/utils.ts"],"names":[],"mappings":";;;AAMA,gBAIC;AAED,kCAUC;AAID,gCAyBC;AAiCD,kCAsBC;AA1GD;;;;;GAKG;AACH,SAAgB,EAAE,CAChB,GAAG,IAAkD;IAErD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACvC,CAAC;AAED,SAAgB,WAAW,CAAC,KAAa,EAAE,QAAQ,GAAG,CAAC;IACrD,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAA;IACxB,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAC3C,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,IAAI,CAAC,GAAG,KAAK,CAAA;IACb,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,CAAC,IAAI,IAAI,CAAA;QACT,CAAC,EAAE,CAAA;IACL,CAAC;IACD,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;AACvE,CAAC;AAED;0DAC0D;AAC1D,SAAgB,UAAU,CAAC,IAG1B;IACC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;IAC9C,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;IACvE,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAA;IAC3C,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAA;IAC3C,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAA;IAC3C,IAAI,EAAE,KAAK,iBAAiB,IAAI,GAAG,KAAK,KAAK;QAAE,OAAO,KAAK,CAAA;IAC3D,IACE,uDAAuD,CAAC,IAAI,CAAC,GAAG,CAAC;QACjE,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,EACjC,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,2BAA2B,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAA;IAC3D,IACE,oEAAoE,CAAC,IAAI,CACvE,GAAG,CACJ,EACD,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAYY,QAAA,WAAW,GAA8B;IACpD,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,UAAU;IACf,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;CACf,CAAA;AAED;;;;;;;;;GASG;AACH,SAAgB,WAAW,CACzB,IAAqD,EACrD,MAAc;IAEd,MAAM,QAAQ,GAAG,MAAM;SACpB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAClC,MAAM,CAAC,OAAO,CAAC,CAAA;IAClB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IACvC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;IAC9C,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;IAC9C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAA;QACjC,CAAC;aAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA,CAAC,uBAAuB;YACrD,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;gBAAE,OAAO,IAAI,CAAA;QACxC,CAAC;aAAM,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;YACpB,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Media thumbnail URL helpers — display target'ına göre uygun boyutta
3
+ * URL döndürür. Orijinal kaliteyi avatar/grid card gibi küçük yerlerde
4
+ * göstermek bandwidth ve render cost açısından mantıksız.
5
+ *
6
+ * CDN tarafı upload sırasında image'lar için pre-generated thumbnail'lar
7
+ * üretir (`imageMeta.thumbnails[]`). Bu helper:
8
+ * 1. Hedef boyutu kapsayacak en küçük thumbnail'ı seçer (yoksa en büyük).
9
+ * 2. Thumbnail URL'i exposed ise direkt onu kullanır.
10
+ * 3. Değilse `media.url`'in CDN prefix'ine `thumbnail.fileName` ekleyerek
11
+ * URL inşa eder ({cdn-base}/{bucketId}/{thumbnail.fileName}).
12
+ * 4. Hiçbir public URL yoksa download endpoint'ini `?quality=N` ile döner.
13
+ * 5. En kötü durumda media.downloadUrl ya da undefined.
14
+ */
15
+ import type { Media } from "./types";
16
+ /**
17
+ * Yardımcı fonksiyona verilebilecek minimum Media subset — Media tipinin
18
+ * tamamını import etmek istemeyen consumer'lar için.
19
+ */
20
+ export type ThumbnailSourceMedia = Pick<Media, "url" | "downloadUrl" | "imageMeta" | "type">;
21
+ /**
22
+ * Display hedef boyutuna göre uygun thumbnail URL'sini döndür.
23
+ *
24
+ * @param media Sentroy media object (list / get / upload result).
25
+ * @param targetPx Display'in maksimum boyutu (genişlik veya yükseklik) px.
26
+ * Retina için `2x` ile çağırın: `pickThumbnailUrl(m, 56*2)`.
27
+ *
28
+ * @returns URL string ya da hiçbir şey üretilemezse `undefined`.
29
+ *
30
+ * @example
31
+ * ```tsx
32
+ * const avatarUrl = pickThumbnailUrl(media, 56 * 2) // 112px target
33
+ * <img src={avatarUrl} className="size-14 rounded-full" />
34
+ * ```
35
+ *
36
+ * @example
37
+ * ```tsx
38
+ * const cardUrl = pickThumbnailUrl(media, 320)
39
+ * const fullUrl = media.url // grid'te küçük, lightbox'ta orijinal
40
+ * ```
41
+ */
42
+ export declare function pickThumbnailUrl(media: ThumbnailSourceMedia, targetPx: number): string | undefined;
43
+ /**
44
+ * Yaygın preset boyutları — semantik isimle çağırmak isteyen consumer
45
+ * için kısayol. Retina-aware: avatar ufacık olduğundan @2x; orta boy
46
+ * preview için orijinal yerine ~640.
47
+ *
48
+ * Manuel `targetPx` vermek istemediğinde:
49
+ * `pickPresetThumbnailUrl(media, "avatar")`.
50
+ */
51
+ export declare const THUMBNAIL_PRESETS: {
52
+ /** Avatar / round chip — 28-64px display, 2x retina için ~120 hedef. */
53
+ readonly avatar: 128;
54
+ /** List/grid card — 200-300px display, ~500 hedef. */
55
+ readonly card: 500;
56
+ /** Modal preview — büyük ama orijinali yormayan ~960. */
57
+ readonly preview: 960;
58
+ /** Hero / fullbleed — 1280-1920 display, neredeyse orijinal. */
59
+ readonly hero: 1600;
60
+ };
61
+ export type ThumbnailPreset = keyof typeof THUMBNAIL_PRESETS;
62
+ /**
63
+ * `pickThumbnailUrl`'in semantik kısayolu — display amacını isimle ifade
64
+ * et, helper preset → px mapping'ini halletsin.
65
+ */
66
+ export declare function pickPresetThumbnailUrl(media: ThumbnailSourceMedia, preset: ThumbnailPreset): string | undefined;
67
+ //# sourceMappingURL=thumbnails.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thumbnails.d.ts","sourceRoot":"","sources":["../src/thumbnails.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAkB,MAAM,SAAS,CAAA;AAEpD;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,KAAK,EACL,KAAK,GAAG,aAAa,GAAG,WAAW,GAAG,MAAM,CAC7C,CAAA;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,oBAAoB,EAC3B,QAAQ,EAAE,MAAM,GACf,MAAM,GAAG,SAAS,CA6CpB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB;IAC5B,wEAAwE;;IAExE,sDAAsD;;IAEtD,yDAAyD;;IAEzD,gEAAgE;;CAExD,CAAA;AAEV,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,iBAAiB,CAAA;AAE5D;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,oBAAoB,EAC3B,MAAM,EAAE,eAAe,GACtB,MAAM,GAAG,SAAS,CAEpB"}
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ /**
3
+ * Media thumbnail URL helpers — display target'ına göre uygun boyutta
4
+ * URL döndürür. Orijinal kaliteyi avatar/grid card gibi küçük yerlerde
5
+ * göstermek bandwidth ve render cost açısından mantıksız.
6
+ *
7
+ * CDN tarafı upload sırasında image'lar için pre-generated thumbnail'lar
8
+ * üretir (`imageMeta.thumbnails[]`). Bu helper:
9
+ * 1. Hedef boyutu kapsayacak en küçük thumbnail'ı seçer (yoksa en büyük).
10
+ * 2. Thumbnail URL'i exposed ise direkt onu kullanır.
11
+ * 3. Değilse `media.url`'in CDN prefix'ine `thumbnail.fileName` ekleyerek
12
+ * URL inşa eder ({cdn-base}/{bucketId}/{thumbnail.fileName}).
13
+ * 4. Hiçbir public URL yoksa download endpoint'ini `?quality=N` ile döner.
14
+ * 5. En kötü durumda media.downloadUrl ya da undefined.
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.THUMBNAIL_PRESETS = void 0;
18
+ exports.pickThumbnailUrl = pickThumbnailUrl;
19
+ exports.pickPresetThumbnailUrl = pickPresetThumbnailUrl;
20
+ /**
21
+ * Display hedef boyutuna göre uygun thumbnail URL'sini döndür.
22
+ *
23
+ * @param media Sentroy media object (list / get / upload result).
24
+ * @param targetPx Display'in maksimum boyutu (genişlik veya yükseklik) px.
25
+ * Retina için `2x` ile çağırın: `pickThumbnailUrl(m, 56*2)`.
26
+ *
27
+ * @returns URL string ya da hiçbir şey üretilemezse `undefined`.
28
+ *
29
+ * @example
30
+ * ```tsx
31
+ * const avatarUrl = pickThumbnailUrl(media, 56 * 2) // 112px target
32
+ * <img src={avatarUrl} className="size-14 rounded-full" />
33
+ * ```
34
+ *
35
+ * @example
36
+ * ```tsx
37
+ * const cardUrl = pickThumbnailUrl(media, 320)
38
+ * const fullUrl = media.url // grid'te küçük, lightbox'ta orijinal
39
+ * ```
40
+ */
41
+ function pickThumbnailUrl(media, targetPx) {
42
+ // Image değilse veya thumbnail listesi boşsa — orijinal URL.
43
+ const thumbs = media.imageMeta?.thumbnails;
44
+ if (!thumbs || thumbs.length === 0 || media.type !== "image") {
45
+ return media.url ?? media.downloadUrl;
46
+ }
47
+ if (!targetPx || targetPx <= 0) {
48
+ return media.url ?? media.downloadUrl;
49
+ }
50
+ // En yakın "kapsayan" thumbnail — width >= target olan en küçük; yoksa
51
+ // en büyük (target'tan küçük olsa bile en az bozulmayı verir).
52
+ const sorted = [...thumbs].sort((a, b) => a.width - b.width);
53
+ const fit = sorted.find((t) => t.width >= targetPx) ?? sorted[sorted.length - 1];
54
+ // Backend bazı endpoint'lerde thumbnail'ın kendi URL'ini de döndüyor
55
+ // (CdnUploadResult.imageMeta.thumbnails[].url). Tipte opsiyonel olarak
56
+ // değil ama runtime'da gelirse direkt kullanırız.
57
+ const fitWithUrl = fit;
58
+ if (typeof fitWithUrl.url === "string" && fitWithUrl.url.length > 0) {
59
+ return fitWithUrl.url;
60
+ }
61
+ // Pattern fallback: original URL'in son `/`'ından sonraki kısmı atıp
62
+ // thumbnail'ın fileName'ini ekle. Backend pattern'ı:
63
+ // {cdn}/{bucketId}/{originalFileName} ← media.url
64
+ // {cdn}/{bucketId}/{thumbnailFileName} ← inşa edilen
65
+ if (media.url) {
66
+ const slash = media.url.lastIndexOf("/");
67
+ if (slash >= 0) {
68
+ // Query string varsa düşür — thumbnail için anlamsız.
69
+ const base = media.url.substring(0, slash + 1);
70
+ const cleanBase = base.split("?")[0];
71
+ return cleanBase + fit.fileName;
72
+ }
73
+ }
74
+ // Public URL hiç yoksa proxy download endpoint'ini quality=N ile çağır.
75
+ if (media.downloadUrl) {
76
+ const sep = media.downloadUrl.includes("?") ? "&" : "?";
77
+ return `${media.downloadUrl}${sep}quality=${fit.width}`;
78
+ }
79
+ return undefined;
80
+ }
81
+ /**
82
+ * Yaygın preset boyutları — semantik isimle çağırmak isteyen consumer
83
+ * için kısayol. Retina-aware: avatar ufacık olduğundan @2x; orta boy
84
+ * preview için orijinal yerine ~640.
85
+ *
86
+ * Manuel `targetPx` vermek istemediğinde:
87
+ * `pickPresetThumbnailUrl(media, "avatar")`.
88
+ */
89
+ exports.THUMBNAIL_PRESETS = {
90
+ /** Avatar / round chip — 28-64px display, 2x retina için ~120 hedef. */
91
+ avatar: 128,
92
+ /** List/grid card — 200-300px display, ~500 hedef. */
93
+ card: 500,
94
+ /** Modal preview — büyük ama orijinali yormayan ~960. */
95
+ preview: 960,
96
+ /** Hero / fullbleed — 1280-1920 display, neredeyse orijinal. */
97
+ hero: 1600,
98
+ };
99
+ /**
100
+ * `pickThumbnailUrl`'in semantik kısayolu — display amacını isimle ifade
101
+ * et, helper preset → px mapping'ini halletsin.
102
+ */
103
+ function pickPresetThumbnailUrl(media, preset) {
104
+ return pickThumbnailUrl(media, exports.THUMBNAIL_PRESETS[preset]);
105
+ }
106
+ //# sourceMappingURL=thumbnails.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thumbnails.js","sourceRoot":"","sources":["../src/thumbnails.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;AAkCH,4CAgDC;AA2BD,wDAKC;AArGD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAgB,gBAAgB,CAC9B,KAA2B,EAC3B,QAAgB;IAEhB,6DAA6D;IAC7D,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,UAAU,CAAA;IAC1C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC7D,OAAO,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,WAAW,CAAA;IACvC,CAAC;IACD,IAAI,CAAC,QAAQ,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,WAAW,CAAA;IACvC,CAAC;IAED,uEAAuE;IACvE,+DAA+D;IAC/D,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAA;IAC5D,MAAM,GAAG,GACP,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAEtE,qEAAqE;IACrE,uEAAuE;IACvE,kDAAkD;IAClD,MAAM,UAAU,GAAG,GAAwC,CAAA;IAC3D,IAAI,OAAO,UAAU,CAAC,GAAG,KAAK,QAAQ,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpE,OAAO,UAAU,CAAC,GAAG,CAAA;IACvB,CAAC;IAED,qEAAqE;IACrE,qDAAqD;IACrD,wDAAwD;IACxD,0DAA0D;IAC1D,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;QACd,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QACxC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,sDAAsD;YACtD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;YAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YACpC,OAAO,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAA;QACjC,CAAC;IACH,CAAC;IAED,wEAAwE;IACxE,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;QACvD,OAAO,GAAG,KAAK,CAAC,WAAW,GAAG,GAAG,WAAW,GAAG,CAAC,KAAK,EAAE,CAAA;IACzD,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;;GAOG;AACU,QAAA,iBAAiB,GAAG;IAC/B,wEAAwE;IACxE,MAAM,EAAE,GAAG;IACX,sDAAsD;IACtD,IAAI,EAAE,GAAG;IACT,yDAAyD;IACzD,OAAO,EAAE,GAAG;IACZ,gEAAgE;IAChE,IAAI,EAAE,IAAI;CACF,CAAA;AAIV;;;GAGG;AACH,SAAgB,sBAAsB,CACpC,KAA2B,EAC3B,MAAuB;IAEvB,OAAO,gBAAgB,CAAC,KAAK,EAAE,yBAAiB,CAAC,MAAM,CAAC,CAAC,CAAA;AAC3D,CAAC"}
package/dist/types.d.ts CHANGED
@@ -10,8 +10,16 @@ export interface SentroyClientConfig {
10
10
  baseUrl: string;
11
11
  /** Company slug */
12
12
  companySlug: string;
13
- /** Access token (stk_...). Same token works for mail + storage. */
14
- accessToken: string;
13
+ /**
14
+ * Access token (`stk_...`). Same token works for mail + storage.
15
+ *
16
+ * Optional: when omitted, the client uses **cookie auth**
17
+ * (`credentials: "include"` on every fetch) — useful for browser code
18
+ * running inside the Sentroy site itself, where the user's session
19
+ * cookie is already valid against `sentroy.com`. End users never have
20
+ * to paste an API key when the SDK is embedded in our own UI.
21
+ */
22
+ accessToken?: string;
15
23
  /** Request timeout in milliseconds (default: 30000) */
16
24
  timeout?: number;
17
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC;;;;;;;OAOG;IACH,OAAO,EAAE,MAAM,CAAA;IACf,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAID,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,IAAI,EAAE,CAAC,CAAA;IACP,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAID,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAA;IACrD,WAAW,EAAE,OAAO,CAAA;IACpB,YAAY,EAAE,OAAO,CAAA;IACrB,aAAa,EAAE,OAAO,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAID,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB;AAID,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAE7D,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,eAAe,CAAA;IACrB,OAAO,EAAE,eAAe,CAAA;IACxB,QAAQ,EAAE,eAAe,CAAA;IACzB,QAAQ,CAAC,EAAE,eAAe,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAID,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,cAAc,CAAA;IACpB,EAAE,EAAE,cAAc,EAAE,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,EAAE,OAAO,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,cAAc,CAAA;IACpB,EAAE,EAAE,cAAc,EAAE,CAAA;IACpB,EAAE,EAAE,cAAc,EAAE,CAAA;IACpB,OAAO,EAAE,cAAc,GAAG,IAAI,CAAA;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,WAAW,EAAE,cAAc,EAAE,CAAA;IAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAID,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,kFAAkF;IAClF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAID,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,OAAO,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAID,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAA;AAE1E,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,WAAW,GAAG,UAAU,GAAG,QAAQ,CAAA;IAChD,UAAU,EAAE,cAAc,EAAE,CAAA;CAC7B;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,SAAS,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,cAAc,CAAA;IAC1B;gFAC4E;IAC5E,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,KAAK,EAAE,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAChB;AAID;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,0DAA0D;AAC1D,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,6DAA6D;AAC7D,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,SAAS,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,YAAY,CAAA;IACnB,OAAO,EAAE,kBAAkB,EAAE,CAAA;IAC7B,MAAM,EAAE,kBAAkB,EAAE,CAAA;CAC7B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentroy-co/client-sdk",
3
- "version": "2.2.1",
3
+ "version": "2.4.2",
4
4
  "description": "TypeScript SDK for the Sentroy platform — REST resources + React components.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/http.ts CHANGED
@@ -13,10 +13,17 @@ export class SentroyError extends Error {
13
13
 
14
14
  export class HttpClient {
15
15
  private baseUrl: string
16
- private token: string
16
+ /**
17
+ * Bearer access token. Tanımsızsa Authorization header eklenmez ve
18
+ * `credentials: "include"` ile cookie auth kullanılır — bu mod Sentroy
19
+ * site içinden (sentroy.com / mail.sentroy.com / storage.sentroy.com)
20
+ * MediaManager gibi React component'leri kullanırken caller'ın access
21
+ * token üretmesine gerek bırakmaz; mevcut session cookie'si yeter.
22
+ */
23
+ private token: string | undefined
17
24
  private timeout: number
18
25
 
19
- constructor(baseUrl: string, token: string, timeout = 30_000) {
26
+ constructor(baseUrl: string, token: string | undefined, timeout = 30_000) {
20
27
  this.baseUrl = baseUrl.replace(/\/+$/, "")
21
28
  this.token = token
22
29
  this.timeout = timeout
@@ -34,9 +41,19 @@ export class HttpClient {
34
41
  return url.toString()
35
42
  }
36
43
 
44
+ private authHeaders(): Record<string, string> {
45
+ return this.token ? { Authorization: `Bearer ${this.token}` } : {}
46
+ }
47
+
48
+ /** Cookie modunda credentials include; bearer modunda omit. */
49
+ private get fetchCredentials(): RequestCredentials {
50
+ return this.token ? "omit" : "include"
51
+ }
52
+
37
53
  /**
38
54
  * Raw fetch — JSON parse etmez, Response döner. Binary endpoint'ler
39
- * (media download) için kullanılır. Authorization header eklenir.
55
+ * (media download) için kullanılır. Authorization header eklenir veya
56
+ * cookie auth ile çalışılır.
40
57
  */
41
58
  async fetchRaw(
42
59
  path: string,
@@ -48,7 +65,8 @@ export class HttpClient {
48
65
  try {
49
66
  return await fetch(url, {
50
67
  method: init?.method || "GET",
51
- headers: { Authorization: `Bearer ${this.token}` },
68
+ headers: this.authHeaders(),
69
+ credentials: this.fetchCredentials,
52
70
  signal: controller.signal,
53
71
  })
54
72
  } finally {
@@ -69,9 +87,7 @@ export class HttpClient {
69
87
  const timer = setTimeout(() => controller.abort(), this.timeout)
70
88
 
71
89
  try {
72
- const headers: Record<string, string> = {
73
- Authorization: `Bearer ${this.token}`,
74
- }
90
+ const headers: Record<string, string> = { ...this.authHeaders() }
75
91
  if (options?.body) {
76
92
  headers["Content-Type"] = "application/json"
77
93
  }
@@ -80,6 +96,7 @@ export class HttpClient {
80
96
  method,
81
97
  headers,
82
98
  body: options?.body ? JSON.stringify(options.body) : undefined,
99
+ credentials: this.fetchCredentials,
83
100
  signal: controller.signal,
84
101
  })
85
102
 
@@ -131,7 +148,8 @@ export class HttpClient {
131
148
  try {
132
149
  const res = await fetch(url, {
133
150
  method: "POST",
134
- headers: { Authorization: `Bearer ${this.token}` },
151
+ headers: this.authHeaders(),
152
+ credentials: this.fetchCredentials,
135
153
  body: form,
136
154
  signal: controller.signal,
137
155
  })
package/src/index.ts CHANGED
@@ -104,3 +104,11 @@ export type {
104
104
  } from "./types"
105
105
 
106
106
  export { SentroyError } from "./http"
107
+
108
+ export {
109
+ pickThumbnailUrl,
110
+ pickPresetThumbnailUrl,
111
+ THUMBNAIL_PRESETS,
112
+ type ThumbnailPreset,
113
+ type ThumbnailSourceMedia,
114
+ } from "./thumbnails"