@shahadpichen/docpush 1.0.19 → 1.0.21
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/react/components/markdown-editor.d.ts.map +1 -1
- package/dist/react/components/markdown-editor.js +47 -1
- package/dist/react/components/markdown-editor.js.map +1 -1
- package/dist/react/components/markdown-viewer.d.ts.map +1 -1
- package/dist/react/components/markdown-viewer.js +11 -1
- package/dist/react/components/markdown-viewer.js.map +1 -1
- package/dist/react/hooks/use-media.d.ts +12 -0
- package/dist/react/hooks/use-media.d.ts.map +1 -0
- package/dist/react/hooks/use-media.js +100 -0
- package/dist/react/hooks/use-media.js.map +1 -0
- package/dist/react/index.d.ts +1 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +3 -1
- package/dist/react/index.js.map +1 -1
- package/dist/server/routes/media.d.ts.map +1 -1
- package/dist/server/routes/media.js +0 -10
- package/dist/server/routes/media.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-editor.d.ts","sourceRoot":"","sources":["../../../src/react/components/markdown-editor.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"markdown-editor.d.ts","sourceRoot":"","sources":["../../../src/react/components/markdown-editor.tsx"],"names":[],"mappings":"AASA,UAAU,mBAAmB;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,cAAc,CAAC,EAAE,cAAmB,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,mBAAmB,2CAsH7F"}
|
|
@@ -41,10 +41,53 @@ const utils_1 = require("../lib/utils");
|
|
|
41
41
|
const markdown_viewer_1 = require("./markdown-viewer");
|
|
42
42
|
const button_1 = require("./ui/button");
|
|
43
43
|
const textarea_1 = require("./ui/textarea");
|
|
44
|
+
const use_media_1 = require("../hooks/use-media");
|
|
44
45
|
function MarkdownEditor({ initialContent = '', onSave, className }) {
|
|
45
46
|
const [content, setContent] = React.useState(initialContent);
|
|
46
47
|
const [showPreview, setShowPreview] = React.useState(false);
|
|
47
|
-
|
|
48
|
+
const [uploadError, setUploadError] = React.useState(null);
|
|
49
|
+
const textareaRef = React.useRef(null);
|
|
50
|
+
const fileInputRef = React.useRef(null);
|
|
51
|
+
const { uploadImage, uploading } = (0, use_media_1.useMedia)();
|
|
52
|
+
const handleImageUpload = async (event) => {
|
|
53
|
+
const file = event.target.files?.[0];
|
|
54
|
+
if (!file)
|
|
55
|
+
return;
|
|
56
|
+
setUploadError(null);
|
|
57
|
+
const result = await uploadImage(file);
|
|
58
|
+
if (result.success && result.markdown) {
|
|
59
|
+
// Insert markdown at cursor position or append to content
|
|
60
|
+
const textarea = textareaRef.current;
|
|
61
|
+
if (textarea) {
|
|
62
|
+
const start = textarea.selectionStart;
|
|
63
|
+
const end = textarea.selectionEnd;
|
|
64
|
+
const newContent = content.substring(0, start) +
|
|
65
|
+
(start > 0 && content[start - 1] !== '\n' ? '\n\n' : '') +
|
|
66
|
+
result.markdown +
|
|
67
|
+
'\n\n' +
|
|
68
|
+
content.substring(end);
|
|
69
|
+
setContent(newContent);
|
|
70
|
+
// Reset cursor position after the inserted markdown
|
|
71
|
+
setTimeout(() => {
|
|
72
|
+
const newCursorPos = start + result.markdown.length + 2;
|
|
73
|
+
textarea.focus();
|
|
74
|
+
textarea.setSelectionRange(newCursorPos, newCursorPos);
|
|
75
|
+
}, 0);
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
// Fallback: append to content
|
|
79
|
+
setContent((prev) => prev + (prev ? '\n\n' : '') + result.markdown);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
else if (result.error) {
|
|
83
|
+
setUploadError(result.error);
|
|
84
|
+
}
|
|
85
|
+
// Reset file input
|
|
86
|
+
if (fileInputRef.current) {
|
|
87
|
+
fileInputRef.current.value = '';
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.cn)('flex h-full flex-col', className), children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-2 border-b p-2", children: [(0, jsx_runtime_1.jsxs)(button_1.Button, { variant: showPreview ? 'ghost' : 'secondary', size: "sm", onClick: () => setShowPreview(false), children: [(0, jsx_runtime_1.jsx)(PencilIcon, { className: "mr-2 h-4 w-4" }), "Edit"] }), (0, jsx_runtime_1.jsxs)(button_1.Button, { variant: showPreview ? 'secondary' : 'ghost', size: "sm", onClick: () => setShowPreview(true), children: [(0, jsx_runtime_1.jsx)(EyeIcon, { className: "mr-2 h-4 w-4" }), "Preview"] }), (0, jsx_runtime_1.jsxs)(button_1.Button, { variant: "ghost", size: "sm", onClick: () => fileInputRef.current?.click(), disabled: uploading || showPreview, children: [(0, jsx_runtime_1.jsx)(ImageIcon, { className: "mr-2 h-4 w-4" }), uploading ? 'Uploading...' : 'Upload Image'] }), onSave && ((0, jsx_runtime_1.jsxs)(button_1.Button, { size: "sm", className: "ml-auto", onClick: () => onSave(content), children: [(0, jsx_runtime_1.jsx)(SaveIcon, { className: "mr-2 h-4 w-4" }), "Save"] }))] }), uploadError && ((0, jsx_runtime_1.jsxs)("div", { className: "border-b bg-red-50 px-4 py-2 text-sm text-red-600", children: [uploadError, (0, jsx_runtime_1.jsx)("button", { onClick: () => setUploadError(null), className: "ml-2 font-semibold hover:underline", children: "Dismiss" })] })), (0, jsx_runtime_1.jsx)("div", { className: "flex-1 overflow-auto", children: showPreview ? ((0, jsx_runtime_1.jsx)(markdown_viewer_1.MarkdownViewer, { content: content, className: "h-full" })) : ((0, jsx_runtime_1.jsx)(textarea_1.Textarea, { ref: textareaRef, value: content, onChange: (e) => setContent(e.target.value), className: "h-full min-h-[400px] resize-none rounded-none border-0 font-mono focus-visible:ring-0", placeholder: "Write your markdown here..." })) }), (0, jsx_runtime_1.jsx)("input", { ref: fileInputRef, type: "file", accept: "image/*", onChange: handleImageUpload, className: "hidden" })] }));
|
|
48
91
|
}
|
|
49
92
|
// Simple icons
|
|
50
93
|
function PencilIcon({ className }) {
|
|
@@ -56,4 +99,7 @@ function EyeIcon({ className }) {
|
|
|
56
99
|
function SaveIcon({ className }) {
|
|
57
100
|
return ((0, jsx_runtime_1.jsx)("svg", { className: className, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: (0, jsx_runtime_1.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8 7H5a2 2 0 00-2 2v9a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-3m-1 4l-3 3m0 0l-3-3m3 3V4" }) }));
|
|
58
101
|
}
|
|
102
|
+
function ImageIcon({ className }) {
|
|
103
|
+
return ((0, jsx_runtime_1.jsx)("svg", { className: className, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: (0, jsx_runtime_1.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z" }) }));
|
|
104
|
+
}
|
|
59
105
|
//# sourceMappingURL=markdown-editor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-editor.js","sourceRoot":"","sources":["../../../src/react/components/markdown-editor.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"markdown-editor.js","sourceRoot":"","sources":["../../../src/react/components/markdown-editor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-viewer.d.ts","sourceRoot":"","sources":["../../../src/react/components/markdown-viewer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"markdown-viewer.d.ts","sourceRoot":"","sources":["../../../src/react/components/markdown-viewer.tsx"],"names":[],"mappings":"AAMA,UAAU,mBAAmB;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,cAAc,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,mBAAmB,2CAyCzE"}
|
|
@@ -38,12 +38,22 @@ exports.MarkdownViewer = MarkdownViewer;
|
|
|
38
38
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
39
39
|
const React = __importStar(require("react"));
|
|
40
40
|
const utils_1 = require("../lib/utils");
|
|
41
|
+
const docpush_provider_1 = require("../context/docpush-provider");
|
|
41
42
|
function MarkdownViewer({ content, className }) {
|
|
43
|
+
const { apiUrl } = (0, docpush_provider_1.useDocPush)();
|
|
42
44
|
// Basic markdown rendering - users can override with react-markdown
|
|
43
45
|
const html = React.useMemo(() => {
|
|
44
46
|
return (content
|
|
45
47
|
// Images: 
|
|
46
|
-
.replace(/!\[([^\]]*)\]\(([^)]+)\)/gim,
|
|
48
|
+
.replace(/!\[([^\]]*)\]\(([^)]+)\)/gim, (match, alt, url) => {
|
|
49
|
+
// Convert relative asset paths to API URLs
|
|
50
|
+
let imageSrc = url;
|
|
51
|
+
if (url.startsWith('./assets/') || url.startsWith('assets/')) {
|
|
52
|
+
const assetPath = url.replace(/^\.\//, '');
|
|
53
|
+
imageSrc = `${apiUrl}/api/media/${assetPath}`;
|
|
54
|
+
}
|
|
55
|
+
return `<img src="${imageSrc}" alt="${alt}" class="max-w-full h-auto rounded-lg my-4" />`;
|
|
56
|
+
})
|
|
47
57
|
// Links: [text](url)
|
|
48
58
|
.replace(/\[([^\]]+)\]\(([^)]+)\)/gim, '<a href="$2" class="text-primary underline">$1</a>')
|
|
49
59
|
.replace(/^### (.*$)/gim, '<h3 class="text-lg font-semibold mt-6 mb-2">$1</h3>')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-viewer.js","sourceRoot":"","sources":["../../../src/react/components/markdown-viewer.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"markdown-viewer.js","sourceRoot":"","sources":["../../../src/react/components/markdown-viewer.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWb,wCAyCC;;AAlDD,6CAA+B;AAC/B,wCAAkC;AAClC,kEAAyD;AAOzD,SAAgB,cAAc,CAAC,EAAE,OAAO,EAAE,SAAS,EAAuB;IACxE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,6BAAU,GAAE,CAAC;IAEhC,oEAAoE;IACpE,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAC9B,OAAO,CACL,OAAO;YACL,sBAAsB;aACrB,OAAO,CAAC,6BAA6B,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YAC1D,2CAA2C;YAC3C,IAAI,QAAQ,GAAG,GAAG,CAAC;YACnB,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7D,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC3C,QAAQ,GAAG,GAAG,MAAM,cAAc,SAAS,EAAE,CAAC;YAChD,CAAC;YACD,OAAO,aAAa,QAAQ,UAAU,GAAG,gDAAgD,CAAC;QAC5F,CAAC,CAAC;YACF,qBAAqB;aACpB,OAAO,CAAC,4BAA4B,EAAE,oDAAoD,CAAC;aAC3F,OAAO,CAAC,eAAe,EAAE,qDAAqD,CAAC;aAC/E,OAAO,CAAC,cAAc,EAAE,qDAAqD,CAAC;aAC9E,OAAO,CAAC,aAAa,EAAE,mDAAmD,CAAC;aAC3E,OAAO,CAAC,kBAAkB,EAAE,qBAAqB,CAAC;aAClD,OAAO,CAAC,cAAc,EAAE,aAAa,CAAC;aACtC,OAAO,CACN,6BAA6B,EAC7B,iFAAiF,CAClF;aACA,OAAO,CAAC,cAAc,EAAE,gEAAgE,CAAC;aACzF,OAAO,CAAC,cAAc,EAAE,0BAA0B,CAAC;aACnD,OAAO,CAAC,SAAS,EAAE,sBAAsB,CAAC;aAC1C,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAC5B,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,CACL,oCACE,SAAS,EAAE,IAAA,UAAE,EAAC,sDAAsD,EAAE,SAAS,CAAC,EAChF,uBAAuB,EAAE,EAAE,MAAM,EAAE,MAAM,IAAI,MAAM,EAAE,GACrD,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
interface UploadResult {
|
|
2
|
+
success: boolean;
|
|
3
|
+
markdown?: string;
|
|
4
|
+
url?: string;
|
|
5
|
+
error?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function useMedia(): {
|
|
8
|
+
uploadImage: (file: File) => Promise<UploadResult>;
|
|
9
|
+
uploading: boolean;
|
|
10
|
+
};
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=use-media.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-media.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/use-media.ts"],"names":[],"mappings":"AAKA,UAAU,YAAY;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAKD,wBAAgB,QAAQ;wBAKP,IAAI,KAAG,OAAO,CAAC,YAAY,CAAC;;EA6D5C"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
+
var ownKeys = function(o) {
|
|
21
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
+
var ar = [];
|
|
23
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
+
return ar;
|
|
25
|
+
};
|
|
26
|
+
return ownKeys(o);
|
|
27
|
+
};
|
|
28
|
+
return function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
})();
|
|
36
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
exports.useMedia = useMedia;
|
|
38
|
+
const React = __importStar(require("react"));
|
|
39
|
+
const docpush_provider_1 = require("../context/docpush-provider");
|
|
40
|
+
const ALLOWED_TYPES = ['image/png', 'image/jpeg', 'image/jpg', 'image/gif', 'image/webp', 'image/svg+xml'];
|
|
41
|
+
const MAX_FILE_SIZE = 5 * 1024 * 1024; // 5MB
|
|
42
|
+
function useMedia() {
|
|
43
|
+
const { apiUrl } = (0, docpush_provider_1.useDocPush)();
|
|
44
|
+
const [uploading, setUploading] = React.useState(false);
|
|
45
|
+
const uploadImage = React.useCallback(async (file) => {
|
|
46
|
+
setUploading(true);
|
|
47
|
+
try {
|
|
48
|
+
// Validate file type
|
|
49
|
+
if (!ALLOWED_TYPES.includes(file.type)) {
|
|
50
|
+
return {
|
|
51
|
+
success: false,
|
|
52
|
+
error: `Invalid file type. Allowed types: PNG, JPEG, GIF, WebP, SVG`,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
// Validate file size
|
|
56
|
+
if (file.size > MAX_FILE_SIZE) {
|
|
57
|
+
return {
|
|
58
|
+
success: false,
|
|
59
|
+
error: `File too large. Maximum size is 5MB`,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
// Read file as ArrayBuffer
|
|
63
|
+
const arrayBuffer = await file.arrayBuffer();
|
|
64
|
+
// Send as raw binary with correct headers
|
|
65
|
+
const response = await fetch(`${apiUrl}/api/media`, {
|
|
66
|
+
method: 'POST',
|
|
67
|
+
headers: {
|
|
68
|
+
'Content-Type': file.type,
|
|
69
|
+
'x-filename': file.name,
|
|
70
|
+
},
|
|
71
|
+
body: arrayBuffer,
|
|
72
|
+
credentials: 'include',
|
|
73
|
+
});
|
|
74
|
+
if (!response.ok) {
|
|
75
|
+
const errorData = await response.json().catch(() => ({ error: 'Upload failed' }));
|
|
76
|
+
return {
|
|
77
|
+
success: false,
|
|
78
|
+
error: errorData.error || `Upload failed with status ${response.status}`,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
const data = await response.json();
|
|
82
|
+
return {
|
|
83
|
+
success: true,
|
|
84
|
+
markdown: data.markdown,
|
|
85
|
+
url: data.url,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
return {
|
|
90
|
+
success: false,
|
|
91
|
+
error: error instanceof Error ? error.message : 'Upload failed',
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
finally {
|
|
95
|
+
setUploading(false);
|
|
96
|
+
}
|
|
97
|
+
}, [apiUrl]);
|
|
98
|
+
return { uploadImage, uploading };
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=use-media.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-media.js","sourceRoot":"","sources":["../../../src/react/hooks/use-media.ts"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeb,4BAkEC;AA/ED,6CAA+B;AAC/B,kEAAyD;AASzD,MAAM,aAAa,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;AAC3G,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM;AAE7C,SAAgB,QAAQ;IACtB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,6BAAU,GAAE,CAAC;IAChC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CACnC,KAAK,EAAE,IAAU,EAAyB,EAAE;QAC1C,YAAY,CAAC,IAAI,CAAC,CAAC;QAEnB,IAAI,CAAC;YACH,qBAAqB;YACrB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,6DAA6D;iBACrE,CAAC;YACJ,CAAC;YAED,qBAAqB;YACrB,IAAI,IAAI,CAAC,IAAI,GAAG,aAAa,EAAE,CAAC;gBAC9B,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,qCAAqC;iBAC7C,CAAC;YACJ,CAAC;YAED,2BAA2B;YAC3B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YAE7C,0CAA0C;YAC1C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,YAAY,EAAE;gBAClD,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,IAAI,CAAC,IAAI;oBACzB,YAAY,EAAE,IAAI,CAAC,IAAI;iBACxB;gBACD,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,SAAS;aACvB,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;gBAClF,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,6BAA6B,QAAQ,CAAC,MAAM,EAAE;iBACzE,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,GAAG,EAAE,IAAI,CAAC,GAAG;aACd,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAChE,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,EACD,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;AACpC,CAAC"}
|
package/dist/react/index.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export { useDocs } from './hooks/use-docs';
|
|
|
14
14
|
export { useDrafts } from './hooks/use-drafts';
|
|
15
15
|
export { useComments } from './hooks/use-comments';
|
|
16
16
|
export { useAuth } from './hooks/use-auth';
|
|
17
|
+
export { useMedia } from './hooks/use-media';
|
|
17
18
|
export { DocPushProvider, useDocPush } from './context/docpush-provider';
|
|
18
19
|
export { cn } from './lib/utils';
|
|
19
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAGpE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGpD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAGpE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGpD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAGzE,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/react/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.cn = exports.useDocPush = exports.DocPushProvider = exports.useAuth = exports.useComments = exports.useDrafts = exports.useDocs = exports.SearchBar = exports.DraftsList = exports.CommentsPanel = exports.MarkdownEditor = exports.MarkdownViewer = exports.DocsSidebar = exports.ScrollBar = exports.ScrollArea = exports.CardContent = exports.CardTitle = exports.CardHeader = exports.Card = exports.badgeVariants = exports.Badge = exports.Textarea = exports.Input = exports.buttonVariants = exports.Button = void 0;
|
|
3
|
+
exports.cn = exports.useDocPush = exports.DocPushProvider = exports.useMedia = exports.useAuth = exports.useComments = exports.useDrafts = exports.useDocs = exports.SearchBar = exports.DraftsList = exports.CommentsPanel = exports.MarkdownEditor = exports.MarkdownViewer = exports.DocsSidebar = exports.ScrollBar = exports.ScrollArea = exports.CardContent = exports.CardTitle = exports.CardHeader = exports.Card = exports.badgeVariants = exports.Badge = exports.Textarea = exports.Input = exports.buttonVariants = exports.Button = void 0;
|
|
4
4
|
// UI Components (shadcn/ui)
|
|
5
5
|
var button_1 = require("./components/ui/button");
|
|
6
6
|
Object.defineProperty(exports, "Button", { enumerable: true, get: function () { return button_1.Button; } });
|
|
@@ -42,6 +42,8 @@ var use_comments_1 = require("./hooks/use-comments");
|
|
|
42
42
|
Object.defineProperty(exports, "useComments", { enumerable: true, get: function () { return use_comments_1.useComments; } });
|
|
43
43
|
var use_auth_1 = require("./hooks/use-auth");
|
|
44
44
|
Object.defineProperty(exports, "useAuth", { enumerable: true, get: function () { return use_auth_1.useAuth; } });
|
|
45
|
+
var use_media_1 = require("./hooks/use-media");
|
|
46
|
+
Object.defineProperty(exports, "useMedia", { enumerable: true, get: function () { return use_media_1.useMedia; } });
|
|
45
47
|
// Context
|
|
46
48
|
var docpush_provider_1 = require("./context/docpush-provider");
|
|
47
49
|
Object.defineProperty(exports, "DocPushProvider", { enumerable: true, get: function () { return docpush_provider_1.DocPushProvider; } });
|
package/dist/react/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":";;;AAAA,4BAA4B;AAC5B,iDAAgE;AAAvD,gGAAA,MAAM,OAAA;AAAE,wGAAA,cAAc,OAAA;AAC/B,+CAA8C;AAArC,8FAAA,KAAK,OAAA;AACd,qDAAoD;AAA3C,oGAAA,QAAQ,OAAA;AACjB,+CAA6D;AAApD,8FAAA,KAAK,OAAA;AAAE,sGAAA,aAAa,OAAA;AAC7B,6CAAgF;AAAvE,4FAAA,IAAI,OAAA;AAAE,kGAAA,UAAU,OAAA;AAAE,iGAAA,SAAS,OAAA;AAAE,mGAAA,WAAW,OAAA;AACjD,2DAAoE;AAA3D,yGAAA,UAAU,OAAA;AAAE,wGAAA,SAAS,OAAA;AAE9B,qBAAqB;AACrB,0DAAwD;AAA/C,2GAAA,WAAW,OAAA;AACpB,gEAA8D;AAArD,iHAAA,cAAc,OAAA;AACvB,gEAA8D;AAArD,iHAAA,cAAc,OAAA;AACvB,8DAA4D;AAAnD,+GAAA,aAAa,OAAA;AACtB,wDAAsD;AAA7C,yGAAA,UAAU,OAAA;AACnB,sDAAoD;AAA3C,uGAAA,SAAS,OAAA;AAElB,QAAQ;AACR,6CAA2C;AAAlC,mGAAA,OAAO,OAAA;AAChB,iDAA+C;AAAtC,uGAAA,SAAS,OAAA;AAClB,qDAAmD;AAA1C,2GAAA,WAAW,OAAA;AACpB,6CAA2C;AAAlC,mGAAA,OAAO,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":";;;AAAA,4BAA4B;AAC5B,iDAAgE;AAAvD,gGAAA,MAAM,OAAA;AAAE,wGAAA,cAAc,OAAA;AAC/B,+CAA8C;AAArC,8FAAA,KAAK,OAAA;AACd,qDAAoD;AAA3C,oGAAA,QAAQ,OAAA;AACjB,+CAA6D;AAApD,8FAAA,KAAK,OAAA;AAAE,sGAAA,aAAa,OAAA;AAC7B,6CAAgF;AAAvE,4FAAA,IAAI,OAAA;AAAE,kGAAA,UAAU,OAAA;AAAE,iGAAA,SAAS,OAAA;AAAE,mGAAA,WAAW,OAAA;AACjD,2DAAoE;AAA3D,yGAAA,UAAU,OAAA;AAAE,wGAAA,SAAS,OAAA;AAE9B,qBAAqB;AACrB,0DAAwD;AAA/C,2GAAA,WAAW,OAAA;AACpB,gEAA8D;AAArD,iHAAA,cAAc,OAAA;AACvB,gEAA8D;AAArD,iHAAA,cAAc,OAAA;AACvB,8DAA4D;AAAnD,+GAAA,aAAa,OAAA;AACtB,wDAAsD;AAA7C,yGAAA,UAAU,OAAA;AACnB,sDAAoD;AAA3C,uGAAA,SAAS,OAAA;AAElB,QAAQ;AACR,6CAA2C;AAAlC,mGAAA,OAAO,OAAA;AAChB,iDAA+C;AAAtC,uGAAA,SAAS,OAAA;AAClB,qDAAmD;AAA1C,2GAAA,WAAW,OAAA;AACpB,6CAA2C;AAAlC,mGAAA,OAAO,OAAA;AAChB,+CAA6C;AAApC,qGAAA,QAAQ,OAAA;AAEjB,UAAU;AACV,+DAAyE;AAAhE,mHAAA,eAAe,OAAA;AAAE,8GAAA,UAAU,OAAA;AAEpC,QAAQ;AACR,qCAAiC;AAAxB,2FAAA,EAAE,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../../src/server/routes/media.ts"],"names":[],"mappings":"AAOA,QAAA,MAAM,MAAM,4CAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../../src/server/routes/media.ts"],"names":[],"mappings":"AAOA,QAAA,MAAM,MAAM,4CAAmB,CAAC;AA0HhC,eAAe,MAAM,CAAC"}
|
|
@@ -19,16 +19,6 @@ const MAX_FILE_SIZE = 5 * 1024 * 1024; // 5MB
|
|
|
19
19
|
*/
|
|
20
20
|
router.post('/', express_1.default.raw({ type: '*/*', limit: MAX_FILE_SIZE }), auth_1.requireEdit, async (req, res, next) => {
|
|
21
21
|
try {
|
|
22
|
-
console.log('Media upload request received');
|
|
23
|
-
console.log('Headers:', req.headers);
|
|
24
|
-
console.log('Body type:', typeof req.body);
|
|
25
|
-
console.log('Body is buffer?', Buffer.isBuffer(req.body));
|
|
26
|
-
if (Buffer.isBuffer(req.body)) {
|
|
27
|
-
console.log('Body length:', req.body.length);
|
|
28
|
-
}
|
|
29
|
-
else {
|
|
30
|
-
console.log('Body content:', req.body);
|
|
31
|
-
}
|
|
32
22
|
const config = req.config;
|
|
33
23
|
// Ensure we have a Buffer
|
|
34
24
|
let buffer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.js","sourceRoot":"","sources":["../../../src/server/routes/media.ts"],"names":[],"mappings":";;;;;AAAA,6CAAyC;AACzC,0DAA6B;AAC7B,sDAA8B;AAE9B,8CAAiD;AACjD,6CAAiD;AAEjD,MAAM,MAAM,GAAG,iBAAO,CAAC,MAAM,EAAE,CAAC;AAEhC,2BAA2B;AAC3B,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAC9E,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM;AAE7C;;;;GAIG;AACH,MAAM,CAAC,IAAI,CACT,GAAG,EACH,iBAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,EAClD,kBAAW,EACX,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IACvB,IAAI,CAAC;QACH,
|
|
1
|
+
{"version":3,"file":"media.js","sourceRoot":"","sources":["../../../src/server/routes/media.ts"],"names":[],"mappings":"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"}
|