diff --git a/client-tauri/src/App.tsx b/client-tauri/src/App.tsx
index 338324903..ce88cddae 100644
--- a/client-tauri/src/App.tsx
+++ b/client-tauri/src/App.tsx
@@ -12,22 +12,16 @@ import NavBar from "./components/NavBar";
import "bootstrap/dist/css/bootstrap.min.css";
import { Container } from "react-bootstrap";
-import i18n from "i18next";
import { useTranslation, initReactI18next } from "react-i18next";
import LanguageDetector from "i18next-browser-languagedetector";
-import ar from "./locales/ar.json";
-import en from "./locales/en.json";
+
+import i18n, { options } from "@stirling-pdf/shared-operations/src/i18next.config";
+
+i18n.use(LanguageDetector)
+ .use(initReactI18next).init(options) // passes i18n down to react-i18next
import "./general.css";
-i18n
- .use(LanguageDetector)
- .use(initReactI18next) // passes i18n down to react-i18next
- .init({
- fallbackLng: "en",
- resources: { ar,en },
- });
-
export default function App() {
return (
diff --git a/client-tauri/src/components/toolbar/LanguagePicker.tsx b/client-tauri/src/components/toolbar/LanguagePicker.tsx
index 16b5bb866..8680450ab 100644
--- a/client-tauri/src/components/toolbar/LanguagePicker.tsx
+++ b/client-tauri/src/components/toolbar/LanguagePicker.tsx
@@ -7,6 +7,7 @@ function generateSublist() {
const { i18n } = useTranslation();
const out: JSX.Element[] = [];
const languages = i18n.options.resources;
+
for (const key in languages) {
const lang: any = languages[key].translation;
const staticKey = key;
diff --git a/client-tauri/src/locales/ar.json b/client-tauri/src/locales/ar.json
deleted file mode 100644
index c18135482..000000000
--- a/client-tauri/src/locales/ar.json
+++ /dev/null
@@ -1,853 +0,0 @@
-{
- "translation": {
- "language": {
- "name":"العربية",
- "flag": "🇸🇦",
- "direction": "rtl"
- },
- "pdfPrompt": "اختر PDF",
- "multiPdfPrompt": "اختر ملفات PDF (2+)",
- "multiPdfDropPrompt": "حدد (أو اسحب وأفلت) جميع ملفات PDF التي تحتاجها",
- "imgPrompt": "اختر صورة",
- "genericSubmit": "إرسال",
- "processTimeWarning": "تحذير: يمكن أن تستغرق هذه العملية ما يصل إلى دقيقة حسب حجم الملف",
- "pageOrderPrompt": "ترتيب الصفحات (أدخل قائمة بأرقام الصفحات مفصولة بفواصل):",
- "goToPage": "اذهب",
- "true": "\u0635\u062D\u064A\u062D",
- "false": "\u062E\u0637\u0623",
- "unknown": "\u063A\u064A\u0631 \u0645\u0639\u0631\u0648\u0641",
- "save": "\u062D\u0641\u0638",
- "close": "\u0625\u063A\u0644\u0627\u0642",
- "filesSelected": "الملفات المحددة",
- "noFavourites": "لم تتم إضافة أي مفضلات",
- "bored": "الانتظار بالملل؟",
- "alphabet": "\u0627\u0644\u0623\u0628\u062C\u062F\u064A\u0629",
- "downloadPdf": "تنزيل PDF",
- "text": "نص",
- "font": "الخط",
- "selectFillter": "- حدد -",
- "pageNum": "رقم الصفحة",
- "sizes": {
- "small": "Small",
- "medium": "Medium",
- "large": "Large",
- "x-large": "X-Large"
- },
- "error": {
- "pdfPassword": "The PDF Document is passworded and either the password was not provided or was incorrect"
- },
- "delete": "Delete",
- "username": "Username",
- "password": "Password",
- "welcome": "Welcome",
- "property": "Property",
- "black": "Black",
- "white": "White",
- "red": "Red",
- "green": "Green",
- "blue": "Blue",
- "custom": "Custom...",
- "changedCredsMessage": "Credentials changed!",
- "notAuthenticatedMessage": "User not authenticated.",
- "userNotFoundMessage": "User not found.",
- "incorrectPasswordMessage": "Current password is incorrect.",
- "usernameExistsMessage": "New Username already exists.",
- "navbar": {
- "convert": "تحويل",
- "security": "الأمان",
- "other": "أخرى",
- "darkmode": "الوضع الداكن",
- "pageOps": "عمليات الصفحة",
- "settings": "\u0625\u0639\u062F\u0627\u062F\u0627\u062A"
- },
- "settings": {
- "title": "\u0627\u0644\u0625\u0639\u062F\u0627\u062F\u0627\u062A",
- "update": "\u0627\u0644\u062A\u062D\u062F\u064A\u062B \u0645\u062A\u0627\u062D",
- "appVersion": "\u0625\u0635\u062F\u0627\u0631 \u0627\u0644\u062A\u0637\u0628\u064A\u0642:",
- "downloadOption": {
- "1": "\u0641\u062A\u062D \u0641\u064A \u0646\u0641\u0633 \u0627\u0644\u0646\u0627\u0641\u0630\u0629",
- "2": "\u0641\u062A\u062D \u0641\u064A \u0646\u0627\u0641\u0630\u0629 \u062C\u062F\u064A\u062F\u0629",
- "3": "\u062A\u0646\u0632\u064A\u0644 \u0627\u0644\u0645\u0644\u0641",
- "title": "\u062A\u062D\u062F\u064A\u062F \u062E\u064A\u0627\u0631 \u0627\u0644\u062A\u0646\u0632\u064A\u0644 (\u0644\u0644\u062A\u0646\u0632\u064A\u0644\u0627\u062A \u0630\u0627\u062A \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0648\u0627\u062D\u062F \u063A\u064A\u0631 \u0627\u0644\u0645\u0636\u063A\u0648\u0637):"
- },
- "zipThreshold": "\u0645\u0644\u0641\u0627\u062A \u0645\u0636\u063A\u0648\u0637\u0629 \u0639\u0646\u062F \u062A\u062C\u0627\u0648\u0632 \u0639\u062F\u062F \u0627\u0644\u0645\u0644\u0641\u0627\u062A \u0627\u0644\u062A\u064A \u062A\u0645 \u062A\u0646\u0632\u064A\u0644\u0647\u0627",
- "signOut": "Sign Out",
- "accountSettings": "Account Settings"
- },
- "changeCreds": {
- "title": "Change Credentials",
- "header": "Update Your Account Details",
- "changeUserAndPassword": "You are using default login credentials. Please enter a new password (and username if wanted)",
- "newUsername": "New Username",
- "oldPassword": "Current Password",
- "newPassword": "New Password",
- "confirmNewPassword": "Confirm New Password",
- "submit": "Submit Changes"
- },
- "account": {
- "title": "Account Settings",
- "accountSettings": "Account Settings",
- "adminSettings": "Admin Settings - View and Add Users",
- "userControlSettings": "User Control Settings",
- "changeUsername": "Change Username",
- "password": "Confirmation Password",
- "oldPassword": "Old password",
- "newPassword": "New Password",
- "changePassword": "Change Password",
- "confirmNewPassword": "Confirm New Password",
- "signOut": "Sign Out",
- "yourApiKey": "Your API Key",
- "syncTitle": "Sync browser settings with Account",
- "settingsCompare": "Settings Comparison:",
- "property": "Property",
- "webBrowserSettings": "Web Browser Setting",
- "syncToBrowser": "Sync Account -> Browser",
- "syncToAccount": "Sync Account <- Browser"
- },
- "adminUserSettings": {
- "title": "User Control Settings",
- "header": "Admin User Control Settings",
- "admin": "Admin",
- "user": "User",
- "addUser": "Add New User",
- "roles": "Roles",
- "role": "Role",
- "actions": "Actions",
- "apiUser": "Limited API User",
- "webOnlyUser": "Web Only User",
- "forceChange": "Force user to change username/password on login",
- "submit": "Save User"
- },
- "home": {
- "desc": "متجرك الشامل المستضاف محليًا لجميع احتياجات PDF الخاصة بك.",
- "searchBar": "Search for features...",
- "viewPdf": {
- "title": "View PDF",
- "desc": "View, annotate, add text or images"
- },
- "multiTool": {
- "title": "أداة متعددة PDF",
- "desc": "دمج الصفحات وتدويرها وإعادة ترتيبها وإزالتها"
- },
- "merge": {
- "title": "دمج ملفات",
- "desc": "دمج ملفات PDF متعددة في ملف واحد بسهولة."
- },
- "split": {
- "title": "انقسام ملفات",
- "desc": "تقسيم ملفات PDF إلى مستندات متعددة"
- },
- "rotate": {
- "title": "تدوير ملفات",
- "desc": "قم بتدوير ملفات PDF الخاصة بك بسهولة."
- },
- "imageToPdf": {
- "title": "صورة إلى PDF",
- "desc": "تحويل الصور (PNG ، JPEG ، GIF) إلى PDF."
- },
- "pdfToImage": {
- "title": "تحويل PDF إلى صورة",
- "desc": "تحويل ملف PDF إلى صورة. (PNG ، JPEG ، GIF)"
- },
- "pdfOrganiser": {
- "title": "منظم",
- "desc": "إزالة / إعادة ترتيب الصفحات بأي ترتيب"
- },
- "addImage": {
- "title": "إضافة صورة إلى ملف PDF",
- "desc": "إضافة صورة إلى موقع معين في PDF (العمل قيد التقدم)"
- },
- "watermark": {
- "title": "إضافة علامة مائية",
- "desc": "أضف علامة مائية مخصصة إلى مستند PDF الخاص بك."
- },
- "permissions": {
- "title": "تغيير الأذونات",
- "desc": "قم بتغيير أذونات مستند PDF الخاص بك"
- },
- "removePages": {
- "title": "إزالة الصفحات",
- "desc": "حذف الصفحات غير المرغوب فيها من مستند PDF الخاص بك."
- },
- "addPassword": {
- "title": "إضافة كلمة مرور",
- "desc": "تشفير مستند PDF الخاص بك بكلمة مرور."
- },
- "removePassword": {
- "title": "إزالة كلمة المرور",
- "desc": "إزالة الحماية بكلمة مرور من مستند PDF الخاص بك."
- },
- "compressPdfs": {
- "title": "ضغط ملفات",
- "desc": "ضغط ملفات PDF لتقليل حجم الملف."
- },
- "changeMetadata": {
- "title": "\u062A\u063A\u064A\u064A\u0631 \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A \u0627\u0644\u0648\u0635\u0641\u064A\u0629",
- "desc": "\u062A\u063A\u064A\u064A\u0631 / \u0625\u0632\u0627\u0644\u0629 / \u0625\u0636\u0627\u0641\u0629 \u0628\u064A\u0627\u0646\u0627\u062A \u0623\u0648\u0644\u064A\u0629 \u0645\u0646 \u0645\u0633\u062A\u0646\u062F PDF"
- },
- "fileToPDF": {
- "title": "\u062A\u062D\u0648\u064A\u0644 \u0627\u0644\u0645\u0644\u0641 \u0625\u0644\u0649 PDF",
- "desc": "\u062A\u062D\u0648\u064A\u0644 \u0623\u064A \u0645\u0644\u0641 \u062A\u0642\u0631\u064A\u0628\u0627 \u0625\u0644\u0649 PDF (DOCX \u0648PNG \u0648XLS \u0648PPT \u0648TXT \u0648\u0627\u0644\u0645\u0632\u064A\u062F)"
- },
- "ocr": {
- "title": "\u062A\u0634\u063A\u064A\u0644 OCR \u0639\u0644\u0649 PDF \u0648 / \u0623\u0648 \u0645\u0633\u062D \u0636\u0648\u0626\u064A",
- "desc": "\u064A\u0642\u0648\u0645 \u0628\u0631\u0646\u0627\u0645\u062C \u0627\u0644\u062A\u0646\u0638\u064A\u0641 \u0628\u0645\u0633\u062D \u0648\u0627\u0643\u062A\u0634\u0627\u0641 \u0627\u0644\u0646\u0635 \u0645\u0646 \u0627\u0644\u0635\u0648\u0631 \u062F\u0627\u062E\u0644 \u0645\u0644\u0641 PDF \u0648\u064A\u0639\u064A\u062F \u0625\u0636\u0627\u0641\u062A\u0647 \u0643\u0646\u0635"
- },
- "extractImages": {
- "title": "\u0627\u0633\u062A\u062E\u0631\u0627\u062C \u0627\u0644\u0635\u0648\u0631",
- "desc": "\u064A\u0633\u062A\u062E\u0631\u062C \u062C\u0645\u064A\u0639 \u0627\u0644\u0635\u0648\u0631 \u0645\u0646 \u0645\u0644\u0641 PDF \u0648\u064A\u062D\u0641\u0638\u0647\u0627 \u0641\u064A \u0627\u0644\u0631\u0645\u0632 \u0627\u0644\u0628\u0631\u064A\u062F\u064A"
- },
- "pdfToPDFA": {
- "title": "\u062A\u062D\u0648\u064A\u0644 \u0645\u0644\u0641\u0627\u062A PDF \u0625\u0644\u0649 PDF / A",
- "desc": "\u062A\u062D\u0648\u064A\u0644 PDF \u0625\u0644\u0649 PDF / A \u0644\u0644\u062A\u062E\u0632\u064A\u0646 \u0637\u0648\u064A\u0644 \u0627\u0644\u0645\u062F\u0649"
- },
- "PDFToWord": {
- "title": "تحويل PDF إلى Word",
- "desc": "تحويل PDF إلى تنسيقات Word (DOC و DOCX و ODT)"
- },
- "PDFToPresentation": {
- "title": "PDF للعرض التقديمي",
- "desc": "تحويل PDF إلى تنسيقات عرض تقديمي (PPT و PPTX و ODP)"
- },
- "PDFToText": {
- "title": "تحويل PDF إلى نص / RTF",
- "desc": "تحويل PDF إلى تنسيق نص أو RTF"
- },
- "PDFToHTML": {
- "title": "تحويل PDF إلى HTML",
- "desc": "تحويل PDF إلى تنسيق HTML"
- },
- "PDFToXML": {
- "title": "تحويل PDF إلى XML",
- "desc": "تحويل PDF إلى تنسيق XML"
- },
- "ScannerImageSplit": {
- "title": "كشف / انقسام الصور الممسوحة ضوئيًا",
- "desc": "تقسيم عدة صور من داخل صورة / ملف PDF"
- },
- "sign": {
- "title": "تسجيل الدخول",
- "desc": "إضافة التوقيع إلى PDF عن طريق الرسم أو النص أو الصورة"
- },
- "flatten": {
- "title": "تسطيح",
- "desc": "قم بإزالة كافة العناصر والنماذج التفاعلية من ملف PDF"
- },
- "repair": {
- "title": "إصلاح",
- "desc": "يحاول إصلاح ملف PDF تالف / معطل"
- },
- "removeBlanks": {
- "title": "إزالة الصفحات الفارغة",
- "desc": "يكتشف ويزيل الصفحات الفارغة من المستند"
- },
- "compare": {
- "title": "قارن",
- "desc": "يقارن ويظهر الاختلافات بين 2 من مستندات PDF"
- },
- "certSign": {
- "title": "Sign with Certificate",
- "desc": "Signs a PDF with a Certificate/Key (PEM/P12)"
- },
- "pageLayout": {
- "title": "Multi-Page Layout",
- "desc": "Merge multiple pages of a PDF document into a single page"
- },
- "scalePages": {
- "title": "Adjust page size/scale",
- "desc": "Change the size/scale of page and/or its contents."
- },
- "pipeline": {
- "title": "Pipeline (Advanced)",
- "desc": "Run multiple actions on PDFs by defining pipeline scripts"
- },
- "add-page-numbers": {
- "title": "Add Page Numbers",
- "desc": "Add Page numbers throughout a document in a set location"
- },
- "auto-rename": {
- "title": "Auto Rename PDF File",
- "desc": "Auto renames a PDF file based on its detected header"
- },
- "adjust-contrast": {
- "title": "Adjust Colors/Contrast",
- "desc": "Adjust Contrast, Saturation and Brightness of a PDF"
- },
- "crop": {
- "title": "Crop PDF",
- "desc": "Crop a PDF to reduce its size (maintains text!)"
- },
- "autoSplitPDF": {
- "title": "Auto Split Pages",
- "desc": "Auto Split Scanned PDF with physical scanned page splitter QR Code"
- },
- "sanitizePdf": {
- "title": "Sanitize",
- "desc": "Remove scripts and other elements from PDF files"
- },
- "URLToPDF": {
- "title": "URL/Website To PDF",
- "desc": "Converts any http(s)URL to PDF"
- },
- "HTMLToPDF": {
- "title": "HTML to PDF",
- "desc": "Converts any HTML file or zip to PDF"
- },
- "MarkdownToPDF": {
- "title": "Markdown to PDF",
- "desc": "Converts any Markdown file to PDF"
- },
- "getPdfInfo": {
- "title": "Get ALL Info on PDF",
- "desc": "Grabs any and all information possible on PDFs"
- },
- "extractPage": {
- "title": "Extract page(s)",
- "desc": "Extracts select pages from PDF"
- },
- "PdfToSinglePage": {
- "title": "PDF to Single Large Page",
- "desc": "Merges all PDF pages into one large single page"
- },
- "showJS": {
- "title": "Show Javascript",
- "desc": "Searches and displays any JS injected into a PDF"
- },
- "autoRedact": {
- "title": "Auto Redact",
- "desc": "Auto Redacts(Blacks out) text in a PDF based on input text"
- }
- },
- "viewPdf": {
- "tags": "view,read,annotate,text,image",
- "title": "View PDF",
- "header": "View PDF"
- },
- "multiTool": {
- "tags": "Multi Tool,Multi operation,UI,click drag,front end,client side",
- "title": "أداة متعددة PDF",
- "header": "أداة متعددة PDF"
- },
- "merge": {
- "tags": "merge,Page operations,Back end,server side",
- "title": "دمج",
- "header": "دمج ملفات PDF متعددة (2+)",
- "sortByName": "Sort by name",
- "sortByDate": "Sort by date",
- "submit": "دمج"
- },
- "split": {
- "tags": "Page operations,divide,Multi Page,cut,server side",
- "title": "انقسام PDF",
- "header": "تقسيم PDF",
- "desc": {
- "1": "الأرقام التي تحددها هي رقم الصفحة التي تريد تقسيمها",
- "2": "على هذا النحو ، سيؤدي تحديد 1،3،7-8 إلى تقسيم مستند من 10 صفحات إلى 6 PDFS منفصلة مع:",
- "3": "المستند رقم 1: الصفحة 1",
- "4": "المستند رقم 2: الصفحتان 2 و 3",
- "5": "المستند رقم 3: الصفحة 4 و 5 و 6",
- "6": "المستند رقم 4: الصفحة 7",
- "7": "المستند رقم 5: الصفحة 8",
- "8": "المستند رقم 6: الصفحتان 9 و 10"
- },
- "splitPages": "أدخل الصفحات المراد تقسيمها:",
- "submit": "Split"
- },
- "rotate": {
- "tags": "server side",
- "title": "تدوير PDF",
- "header": "تدوير PDF",
- "selectAngle": "حدد زاوية الدوران (بمضاعفات 90 درجة):",
- "submit": "استدارة"
- },
- "imageToPdf": {
- "tags": "conversion,img,jpg,picture,photo"
- },
- "pdfToImage": {
- "tags": "conversion,img,jpg,picture,photo",
- "title": "تحويل PDF إلى صورة",
- "header": "تحويل PDF إلى صورة",
- "selectText": "تنسيق الصورة",
- "singleOrMultiple": "\u0646\u0648\u0639 \u0646\u062A\u064A\u062C\u0629 \u0627\u0644\u0635\u0648\u0631\u0629",
- "single": "\u0635\u0648\u0631\u0629 \u0648\u0627\u062D\u062F\u0629 \u0643\u0628\u064A\u0631\u0629",
- "multi": "\u0635\u0648\u0631 \u0645\u062A\u0639\u062F\u062F\u0629",
- "colorType": "\u0646\u0648\u0639 \u0627\u0644\u0644\u0648\u0646",
- "color": "\u0627\u0644\u0644\u0648\u0646",
- "grey": "\u062A\u062F\u0631\u062C \u0627\u0644\u0631\u0645\u0627\u062F\u064A",
- "blackwhite": "\u0623\u0628\u064A\u0636 \u0648\u0623\u0633\u0648\u062F (\u0642\u062F \u064A\u0641\u0642\u062F \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A!)",
- "submit": "تحول"
- },
- "pdfOrganiser": {
- "tags": "duplex,even,odd,sort,move",
- "title": "منظم الصفحة",
- "header": "منظم صفحات PDF",
- "submit": "إعادة ترتيب الصفحات"
- },
- "addImage": {
- "tags": "img,jpg,picture,photo",
- "title": "إضافة صورة",
- "header": "إضافة صورة إلى PDF",
- "everyPage": "كل صفحة؟",
- "upload": "إضافة صورة",
- "submit": "إضافة صورة"
- },
- "watermark": {
- "tags": "Text,repeating,label,own,copyright,trademark,img,jpg,picture,photo",
- "title": "إضافة علامة مائية",
- "header": "إضافة علامة مائية",
- "selectText": {
- "1": "حدد PDF لإضافة العلامة المائية إلى:",
- "2": "نص العلامة المائية:",
- "3": "حجم الخط:",
- "4": "دوران (0-360):",
- "5": "widthSpacer (مسافة بين كل علامة مائية أفقيًا):",
- "6": "heightSpacer (مسافة بين كل علامة مائية عموديًا):",
- "7": "\u0627\u0644\u062A\u0639\u062A\u064A\u0645 (0\u066A - 100\u066A):",
- "8": "Watermark Type:",
- "9": "Watermark Image:"
- },
- "submit": "إضافة علامة مائية"
- },
- "permissions": {
- "tags": "read,write,edit,print",
- "title": "تغيير الأذونات",
- "header": "تغيير الأذونات",
- "warning": "تحذير من أن تكون هذه الأذونات غير قابلة للتغيير ، يوصى بتعيينها بكلمة مرور عبر صفحة إضافة كلمة المرور",
- "selectText": {
- "1": "حدد ملف PDF لتغيير الأذونات",
- "2": "أذونات لتعيينها",
- "3": "منع تجميع المستند",
- "4": "منع استخراج المحتوى",
- "5": "منع الاستخراج للوصول",
- "6": "منع ملء النموذج",
- "7": "منع التعديل",
- "8": "منع تعديل التعليق التوضيحي",
- "9": "منع الطباعة",
- "10": "منع طباعة التنسيقات المختلفة"
- },
- "submit": "تغيير"
- },
- "removePages": {
- "tags": "Remove pages,delete pages"
- },
- "addPassword": {
- "tags": "secure,security",
- "title": "إضافة كلمة مرور",
- "header": "إضافة كلمة مرور (تشفير)",
- "selectText": {
- "1": "حدد ملف PDF للتشفير",
- "2": "كلمة المرور",
- "3": "طول مفتاح التشفير",
- "4": "القيم الأعلى تكون أقوى ، لكن القيم الأقل لها توافق أفضل.",
- "5": "أذونات للتعيين",
- "6": "منع تجميع المستند",
- "7": "منع استخراج المحتوى",
- "8": "منع الاستخراج للوصول",
- "9": "منع ملء النموذج",
- "10": "منع التعديل",
- "11": "منع تعديل التعليقات التوضيحية",
- "12": "منع الطباعة",
- "13": "منع طباعة تنسيقات مختلفة",
- "14": "Owner Password",
- "15": "Restricts what can be done with the document once it is opened (Not supported by all readers)",
- "16": "Restricts the opening of the document itself"
- },
- "submit": "تشفير"
- },
- "removePassword": {
- "tags": "secure,Decrypt,security,unpassword,delete password",
- "title": "إزالة كلمة المرور",
- "header": "إزالة كلمة المرور (فك التشفير)",
- "selectText": {
- "1": "حدد PDF لفك التشفير",
- "2": "كلمة المرور"
- },
- "submit": "إزالة"
- },
- "compressPdfs": {
- "tags": "squish,small,tiny"
- },
- "fileToPDF": {
- "tags": "transformation,format,document,picture,slide,text,conversion,office,docs,word,excel,powerpoint",
- "title": "\u0645\u0644\u0641 \u0625\u0644\u0649 PDF",
- "header": "\u062A\u062D\u0648\u064A\u0644 \u0623\u064A \u0645\u0644\u0641 \u0625\u0644\u0649 PDF",
- "credit": "\u062A\u0633\u062A\u062E\u062F\u0645 \u0647\u0630\u0647 \u0627\u0644\u062E\u062F\u0645\u0629 \u0644\u064A\u0628\u0631 \u0623\u0648\u0641\u064A\u0633 \u0648\u0623\u0648\u0646\u0648\u0643\u0648\u0646\u0641 \u0644\u062A\u062D\u0648\u064A\u0644 \u0627\u0644\u0645\u0644\u0641\u0627\u062A.",
- "supportedFileTypes": "\u064A\u062C\u0628 \u0623\u0646 \u062A\u062A\u0636\u0645\u0646 \u0623\u0646\u0648\u0627\u0639 \u0627\u0644\u0645\u0644\u0641\u0627\u062A \u0627\u0644\u0645\u062F\u0639\u0648\u0645\u0629 \u0645\u0627 \u064A\u0644\u064A \u0648\u0644\u0643\u0646 \u0644\u0644\u062D\u0635\u0648\u0644 \u0639\u0644\u0649 \u0642\u0627\u0626\u0645\u0629 \u0645\u062D\u062F\u062B\u0629 \u0643\u0627\u0645\u0644\u0629 \u0628\u0627\u0644\u062A\u0646\u0633\u064A\u0642\u0627\u062A \u0627\u0644\u0645\u062F\u0639\u0648\u0645\u0629 \u060C \u064A\u0631\u062C\u0649 \u0627\u0644\u0631\u062C\u0648\u0639 \u0625\u0644\u0649 \u0648\u062B\u0627\u0626\u0642 LibreOffice",
- "submit": "\u062A\u062D\u0648\u064A\u0644 \u0625\u0644\u0649 PDF"
- },
- "ocr": {
- "tags": "recognition,text,image,scan,read,identify,detection,editable",
- "title": "\u0627\u0644\u062A\u0639\u0631\u0641 \u0627\u0644\u0636\u0648\u0626\u064A \u0639\u0644\u0649 \u0627\u0644\u062D\u0631\u0648\u0641 / \u062A\u0646\u0638\u064A\u0641 \u0627\u0644\u0645\u0633\u062D \u0627\u0644\u0636\u0648\u0626\u064A",
- "header": "\u0645\u0633\u062D \u0627\u0644\u0645\u0633\u062D \u0627\u0644\u0636\u0648\u0626\u064A / \u0627\u0644\u062A\u0639\u0631\u0641 \u0627\u0644\u0636\u0648\u0626\u064A \u0639\u0644\u0649 \u0627\u0644\u062D\u0631\u0648\u0641 (\u0627\u0644\u062A\u0639\u0631\u0641 \u0627\u0644\u0636\u0648\u0626\u064A \u0639\u0644\u0649 \u0627\u0644\u062D\u0631\u0648\u0641)",
- "selectText": {
- "1": "\u062D\u062F\u062F \u0627\u0644\u0644\u063A\u0627\u062A \u0627\u0644\u062A\u064A \u0633\u064A\u062A\u0645 \u0627\u0643\u062A\u0634\u0627\u0641\u0647\u0627 \u062F\u0627\u062E\u0644 \u0645\u0644\u0641 PDF (\u0627\u0644\u0644\u063A\u0627\u062A \u0627\u0644\u0645\u062F\u0631\u062C\u0629 \u0647\u064A \u062A\u0644\u0643 \u0627\u0644\u062A\u064A \u062A\u0645 \u0627\u0643\u062A\u0634\u0627\u0641\u0647\u0627 \u062D\u0627\u0644\u064A\u064B\u0627):",
- "2": "\u0625\u0646\u062A\u0627\u062C \u0645\u0644\u0641 \u0646\u0635\u064A \u064A\u062D\u062A\u0648\u064A \u0639\u0644\u0649 \u0646\u0635 OCR \u0628\u062C\u0627\u0646\u0628 \u0645\u0644\u0641 PDF \u0627\u0644\u0630\u064A \u062A\u0645 \u0625\u0639\u062F\u0627\u062F\u0647 \u0628\u0648\u0627\u0633\u0637\u0629 OCR",
- "3": "\u062A\u0645 \u0645\u0633\u062D \u0627\u0644\u0635\u0641\u062D\u0627\u062A \u0627\u0644\u0635\u062D\u064A\u062D\u0629 \u0636\u0648\u0626\u064A\u064B\u0627 \u0628\u0632\u0627\u0648\u064A\u0629 \u0645\u0646\u062D\u0631\u0641\u0629 \u0639\u0646 \u0637\u0631\u064A\u0642 \u062A\u062F\u0648\u064A\u0631\u0647\u0627 \u0645\u0631\u0629 \u0623\u062E\u0631\u0649 \u0641\u064A \u0645\u0643\u0627\u0646\u0647\u0627",
- "4": "\u0635\u0641\u062D\u0629 \u0646\u0638\u064A\u0641\u0629 \u0644\u0630\u0644\u0643 \u0645\u0646 \u063A\u064A\u0631 \u0627\u0644\u0645\u062D\u062A\u0645\u0644 \u0623\u0646 \u064A\u062C\u062F OCR \u0646\u0635\u064B\u0627 \u0641\u064A \u0636\u0648\u0636\u0627\u0621 \u0627\u0644\u062E\u0644\u0641\u064A\u0629. (\u0644\u0627 \u064A\u0648\u062C\u062F \u062A\u063A\u064A\u064A\u0631 \u0641\u064A \u0627\u0644\u0625\u062E\u0631\u0627\u062C)",
- "5": "\u0635\u0641\u062D\u0629 \u0646\u0638\u064A\u0641\u0629 \u060C \u0644\u0630\u0644\u0643 \u0645\u0646 \u063A\u064A\u0631 \u0627\u0644\u0645\u062D\u062A\u0645\u0644 \u0623\u0646 \u064A\u062C\u062F OCR \u0646\u0635\u064B\u0627 \u0641\u064A \u0636\u0648\u0636\u0627\u0621 \u0627\u0644\u062E\u0644\u0641\u064A\u0629 \u060C \u0648\u064A\u062D\u0627\u0641\u0638 \u0639\u0644\u0649 \u0627\u0644\u062A\u0646\u0638\u064A\u0641 \u0641\u064A \u0627\u0644\u0625\u062E\u0631\u0627\u062C.",
- "6": "\u064A\u062A\u062C\u0627\u0647\u0644 \u0627\u0644\u0635\u0641\u062D\u0627\u062A \u0627\u0644\u062A\u064A \u062A\u062D\u062A\u0648\u064A \u0639\u0644\u0649 \u0646\u0635 \u062A\u0641\u0627\u0639\u0644\u064A \u060C \u0641\u0642\u0637 \u0635\u0641\u062D\u0627\u062A OCRs \u0627\u0644\u062A\u064A \u0647\u064A \u0635\u0648\u0631",
- "7": "\u0641\u0631\u0636 \u0627\u0644\u062A\u0639\u0631\u0641 \u0627\u0644\u0636\u0648\u0626\u064A \u0639\u0644\u0649 \u0627\u0644\u062D\u0631\u0648\u0641 \u060C \u0633\u064A\u0624\u062F\u064A \u0627\u0644\u062A\u0639\u0631\u0641 \u0627\u0644\u0636\u0648\u0626\u064A \u0639\u0644\u0649 \u0627\u0644\u062D\u0631\u0648\u0641 \u0639\u0644\u0649 \u0643\u0644 \u0635\u0641\u062D\u0629 \u0625\u0644\u0649 \u0625\u0632\u0627\u0644\u0629 \u062C\u0645\u064A\u0639 \u0639\u0646\u0627\u0635\u0631 \u0627\u0644\u0646\u0635 \u0627\u0644\u0623\u0635\u0644\u064A",
- "8": "\u0639\u0627\u062F\u064A (\u062E\u0637\u0623 \u0625\u0630\u0627 \u0643\u0627\u0646 PDF \u064A\u062D\u062A\u0648\u064A \u0639\u0644\u0649 \u0646\u0635)",
- "9": "\u0625\u0639\u062F\u0627\u062F\u0627\u062A \u0625\u0636\u0627\u0641\u064A\u0629",
- "10": "\u0648\u0636\u0639 \u0627\u0644\u062A\u0639\u0631\u0641 \u0627\u0644\u0636\u0648\u0626\u064A \u0639\u0644\u0649 \u0627\u0644\u062D\u0631\u0648\u0641",
- "11": "إزالة الصور بعد التعرف الضوئي على الحروف (يزيل كل الصور ، يكون مفيدًا فقط إذا كان جزءًا من خطوة التحويل)",
- "12": "نوع العرض (متقدم)"
- },
- "help": "\u064A\u0631\u062C\u0649 \u0642\u0631\u0627\u0621\u0629 \u0647\u0630\u0647 \u0627\u0644\u0648\u062B\u0627\u0626\u0642 \u062D\u0648\u0644 \u0643\u064A\u0641\u064A\u0629 \u0627\u0633\u062A\u062E\u062F\u0627\u0645 \u0647\u0630\u0627 \u0644\u0644\u063A\u0627\u062A \u0623\u062E\u0631\u0649 \u0648 / \u0623\u0648 \u0627\u0644\u0627\u0633\u062A\u062E\u062F\u0627\u0645 \u0644\u064A\u0633 \u0641\u064A \u0639\u0627\u0645\u0644 \u0627\u0644\u0625\u0631\u0633\u0627\u0621",
- "credit": "\u062A\u0633\u062A\u062E\u062F\u0645 \u0647\u0630\u0647 \u0627\u0644\u062E\u062F\u0645\u0629 OCRmyPDF \u0648 Tesseract \u0644 OCR.",
- "submit": "\u0645\u0639\u0627\u0644\u062C\u0629 PDF \u0628\u0627\u0633\u062A\u062E\u062F\u0627\u0645 OCR"
- },
- "extractImages": {
- "tags": "picture,photo,save,archive,zip,capture,grab",
- "title": "\u0627\u0633\u062A\u062E\u0631\u0627\u062C \u0627\u0644\u0635\u0648\u0631",
- "header": "\u0627\u0633\u062A\u062E\u0631\u0627\u062C \u0627\u0644\u0635\u0648\u0631",
- "selectText": "\u062D\u062F\u062F \u062A\u0646\u0633\u064A\u0642 \u0627\u0644\u0635\u0648\u0631\u0629 \u0644\u062A\u062D\u0648\u064A\u0644 \u0627\u0644\u0635\u0648\u0631 \u0627\u0644\u0645\u0633\u062A\u062E\u0631\u062C\u0629 \u0625\u0644\u0649",
- "submit": "\u0627\u0633\u062A\u062E\u0631\u0627\u062C"
- },
- "pdfToPDFA": {
- "tags": "archive,long-term,standard,conversion,storage,preservation",
- "title": "PDF \u0625\u0644\u0649 PDF / A",
- "header": "PDF \u0625\u0644\u0649 PDF / A",
- "credit": "\u062A\u0633\u062A\u062E\u062F\u0645 \u0647\u0630\u0647 \u0627\u0644\u062E\u062F\u0645\u0629 OCRmyPDF \u0644\u062A\u062D\u0648\u064A\u0644 PDF / A.",
- "submit": "\u062A\u062D\u0648\u064A\u0644"
- },
- "PDFToWord": {
- "tags": "doc,docx,odt,word,transformation,format,conversion,office,microsoft,docfile",
- "title": "تحويل PDF إلى Word",
- "header": "تحويل PDF إلى Word",
- "selectText": {
- "1": "تنسيق ملف الإخراج"
- },
- "credit": "تستخدم هذه الخدمة LibreOffice لتحويل الملفات.",
- "submit": "تحويل"
- },
- "PDFToPresentation": {
- "tags": "slides,show,office,microsoft",
- "title": "PDF للعرض التقديمي",
- "header": "PDF للعرض التقديمي",
- "selectText": {
- "1": "تنسيق ملف الإخراج"
- },
- "credit": "تستخدم هذه الخدمة LibreOffice لتحويل الملف.",
- "submit": "تحويل"
- },
- "PDFToText": {
- "tags": "richformat,richtextformat,rich text format",
- "title": "تحويل PDF إلى نص / RTF",
- "header": "تحويل PDF إلى نص / RTF",
- "selectText": {
- "1": "تنسيق ملف الإخراج"
- },
- "credit": "تستخدم هذه الخدمة LibreOffice لتحويل الملفات.",
- "submit": "تحويل"
- },
- "PDFToHTML": {
- "tags": "web content,browser friendly",
- "title": "PDF إلى HTML",
- "header": "PDF إلى HTML",
- "credit": "تستخدم هذه الخدمة LibreOffice لتحويل الملفات.",
- "submit": "تحويل"
- },
- "PDFToXML": {
- "tags": "data-extraction,structured-content,interop,transformation,convert",
- "title": "تحويل PDF إلى XML",
- "header": "تحويل PDF إلى XML",
- "credit": "تستخدم هذه الخدمة LibreOffice لتحويل الملفات.",
- "submit": "تحويل"
- },
- "ScannerImageSplit": {
- "tags": "separate,auto-detect,scans,multi-photo,organize",
- "selectText": {
- "1": "عتبة الزاوية:",
- "2": "تعيين الحد الأدنى للزاوية المطلقة المطلوبة لتدوير الصورة (افتراضي: 10).",
- "3": "التسامح:",
- "4": "يحدد نطاق تباين اللون حول لون الخلفية المقدر (الافتراضي: 30).",
- "5": "أدنى مساحة:",
- "6": "تعيين الحد الأدنى لمنطقة الصورة (الافتراضي: 10000).",
- "7": "الحد الأدنى لمنطقة المحيط:",
- "8": "تعيين الحد الأدنى لمنطقة المحيط للصورة",
- "9": "حجم الحدود:",
- "10": "يضبط حجم الحدود المضافة والمزالة لمنع الحدود البيضاء في الإخراج (الافتراضي: 1)."
- }
- },
- "sign": {
- "tags": "authorize,initials,drawn-signature,text-sign,image-signature",
- "title": "تسجيل الدخول",
- "header": "توقيع ملفات PDF",
- "upload": "تحميل الصورة",
- "draw": "رسم التوقيع",
- "text": "Text Input",
- "clear": "واضح",
- "add": "إضافة"
- },
- "flatten": {
- "tags": "static,deactivate,non-interactive,streamline",
- "title": "تسطيح",
- "header": "تسوية ملفات PDF",
- "submit": "تسطيح"
- },
- "repair": {
- "tags": "fix,restore,correction,recover",
- "title": "إصلاح",
- "header": "إصلاح ملفات PDF",
- "submit": "الإصلاح"
- },
- "removeBlanks": {
- "tags": "cleanup,streamline,non-content,organize",
- "title": "إزالة الفراغات",
- "header": "إزالة الصفحات الفارغة",
- "threshold": "العتبة:",
- "thresholdDesc": "الحد الفاصل لتحديد مدى بياض البكسل الأبيض",
- "whitePercent": "نسبة الأبيض (٪):",
- "whitePercentDesc": "النسبة المئوية للصفحة التي يجب أن تكون بيضاء لتتم إزالتها",
- "submit": "إزالة الفراغات"
- },
- "compare": {
- "tags": "differentiate,contrast,changes,analysis",
- "title": "يقارن",
- "header": "قارن ملفات PDF",
- "document": {
- "1": "المستند 1",
- "2": "المستند 2"
- },
- "submit": "يقارن"
- },
- "certSign": {
- "tags": "authenticate,PEM,P12,official,encrypt",
- "title": "توقيع الشهادة",
- "header": "قم بتوقيع ملف PDF بشهادتك (العمل قيد التقدم)",
- "selectPDF": "حدد ملف PDF للتوقيع:",
- "selectKey": "حدد ملف المفتاح الخاص (تنسيق PKCS ",
- "selectCert": "حدد ملف الشهادة الخاص بك (تنسيق X.509 ، يمكن أن يكون .pem أو .der):",
- "selectP12": "حدد ملف تخزين المفاتيح PKCS ",
- "certType": "نوع الشهادة",
- "password": "أدخل ملف تخزين المفاتيح أو كلمة المرور الخاصة (إن وجدت):",
- "showSig": "إظهار التوقيع",
- "reason": "السبب",
- "location": "الموقع",
- "name": "الاسم",
- "submit": "تسجيل PDF"
- },
- "pageLayout": {
- "tags": "merge,composite,single-view,organize",
- "title": "Multi Page Layout",
- "header": "Multi Page Layout",
- "pagesPerSheet": "Pages per sheet:",
- "addBorder": "Add Borders",
- "submit": "Submit"
- },
- "scalePages": {
- "tags": "resize,modify,dimension,adapt",
- "title": "Adjust page-scale",
- "header": "Adjust page-scale",
- "pageSize": "Size of a page of the document.",
- "scaleFactor": "Zoom level (crop) of a page.",
- "submit": "Submit"
- },
- "pipeline": {
- "tags": "automate,sequence,scripted,batch-process",
- "title": "Pipeline"
- },
- "add-page-numbers": {
- "tags": "paginate,label,organize,index"
- },
- "auto-rename": {
- "tags": "auto-detect,header-based,organize,relabel",
- "title": "Auto Rename",
- "header": "Auto Rename PDF",
- "submit": "Auto Rename"
- },
- "adjust-contrast": {
- "tags": "color-correction,tune,modify,enhance"
- },
- "crop": {
- "tags": "trim,shrink,edit,shape",
- "title": "Crop",
- "header": "Crop Image",
- "submit": "Submit"
- },
- "autoSplitPDF": {
- "tags": "QR-based,separate,scan-segment,organize",
- "title": "Auto Split PDF",
- "header": "Auto Split PDF",
- "description": "Print, Insert, Scan, upload, and let us auto-separate your documents. No manual work sorting needed.",
- "selectText": {
- "1": "Print out some divider sheets from below (Black and white is fine).",
- "2": "Scan all your documents at once by inserting the divider sheet between them.",
- "3": "Upload the single large scanned PDF file and let Stirling PDF handle the rest.",
- "4": "Divider pages are automatically detected and removed, guaranteeing a neat final document."
- },
- "formPrompt": "Submit PDF containing Stirling-PDF Page dividers:",
- "duplexMode": "Duplex Mode (Front and back scanning)",
- "dividerDownload1": "Download 'Auto Splitter Divider (minimal).pdf'",
- "dividerDownload2": "Download 'Auto Splitter Divider (with instructions).pdf'",
- "submit": "Submit"
- },
- "sanitizePdf": {
- "tags": "clean,secure,safe,remove-threats"
- },
- "URLToPDF": {
- "tags": "web-capture,save-page,web-to-doc,archive",
- "title": "URL To PDF",
- "header": "URL To PDF",
- "submit": "Convert",
- "credit": "Uses WeasyPrint"
- },
- "HTMLToPDF": {
- "tags": "markup,web-content,transformation,convert",
- "title": "HTML To PDF",
- "header": "HTML To PDF",
- "help": "Accepts HTML files and ZIPs containing html/css/images etc required",
- "submit": "Convert",
- "credit": "Uses WeasyPrint"
- },
- "MarkdownToPDF": {
- "tags": "markup,web-content,transformation,convert",
- "title": "Markdown To PDF",
- "header": "Markdown To PDF",
- "submit": "Convert",
- "help": "Work in progress",
- "credit": "Uses WeasyPrint"
- },
- "getPdfInfo": {
- "tags": "infomation,data,stats,statistics",
- "title": "Get Info on PDF",
- "header": "Get Info on PDF",
- "submit": "Get Info",
- "downloadJson": "Download JSON"
- },
- "extractPage": {
- "tags": "extract"
- },
- "PdfToSinglePage": {
- "tags": "single page"
- },
- "showJS": {
- "tags": "JS",
- "title": "Show Javascript",
- "header": "Show Javascript",
- "downloadJS": "Download Javascript",
- "submit": "Show"
- },
- "login": {
- "title": "Sign in",
- "signin": "Sign in",
- "rememberme": "Remember me",
- "invalid": "Invalid username or password.",
- "locked": "Your account has been locked.",
- "signinTitle": "Please sign in"
- },
- "autoRedact": {
- "title": "Auto Redact",
- "header": "Auto Redact",
- "colorLabel": "Colour",
- "textsToRedactLabel": "Text to Redact (line-separated)",
- "textsToRedactPlaceholder": "e.g. \\nConfidential \\nTop-Secret",
- "useRegexLabel": "Use Regex",
- "wholeWordSearchLabel": "Whole Word Search",
- "customPaddingLabel": "Custom Extra Padding",
- "convertPDFToImageLabel": "Convert PDF to PDF-Image (Used to remove text behind the box)",
- "submitButton": "Submit"
- },
- "pdfToSinglePage": {
- "title": "PDF To Single Page",
- "header": "PDF To Single Page",
- "submit": "Convert To Single Page"
- },
- "pageExtracter": {
- "title": "Extract Pages",
- "header": "Extract Pages",
- "submit": "Extract"
- },
- "sanitizePDF": {
- "title": "Sanitize PDF",
- "header": "Sanitize a PDF file",
- "selectText": {
- "1": "Remove JavaScript actions",
- "2": "Remove embedded files",
- "3": "Remove metadata",
- "4": "Remove links",
- "5": "Remove fonts"
- },
- "submit": "Sanitize PDF"
- },
- "addPageNumbers": {
- "title": "Add Page Numbers",
- "header": "Add Page Numbers",
- "selectText": {
- "1": "Select PDF file:",
- "2": "Margin Size",
- "3": "Position",
- "4": "Starting Number",
- "5": "Pages to Number",
- "6": "Custom Text"
- },
- "customTextDesc": "Custom Text",
- "numberPagesDesc": "Which pages to number, default 'all', also accepts 1-5 or 2,5,9 etc",
- "customNumberDesc": "Defaults to {n}, also accepts 'Page {n} of {total}', 'Text-{n}', '{filename}-{n}",
- "submit": "Add Page Numbers"
- },
- "adjustContrast": {
- "title": "Adjust Contrast",
- "header": "Adjust Contrast",
- "contrast": "Contrast:",
- "brightness": "Brightness:",
- "saturation": "Saturation:",
- "download": "Download"
- },
- "compress": {
- "title": "ضغط",
- "header": "ضغط ملف PDF",
- "credit": "تستخدم هذه الخدمة OCRmyPDF لضغط / تحسين PDF.",
- "selectText": {
- "1": "الوضع اليدوي - من 1 إلى 4",
- "2": "مستوى التحسين:",
- "3": "4 (رهيب للصور النصية)",
- "4": "الوضع التلقائي - يضبط الجودة تلقائيًا للحصول على ملف PDF بالحجم المحدد",
- "5": "حجم PDF المتوقع (على سبيل المثال 25 ميجا بايت ، 10.8 ميجا بايت ، 25 كيلو بايت)"
- },
- "submit": "ضغطضغط"
- },
- "pageRemover": {
- "title": "مزيل الصفحة",
- "header": "مزيل صفحة PDF",
- "pagesToDelete": "الصفحات المراد حذفها (أدخل قائمة بأرقام الصفحات مفصولة بفواصل):",
- "submit": "حذف الصفحات"
- },
- "imageToPDF": {
- "title": "صورة إلى PDF",
- "header": "صورة إلى PDF",
- "submit": "تحول",
- "selectLabel": "Image Fit Options",
- "fillPage": "Fill Page",
- "fitDocumentToImage": "Fit Page to Image",
- "maintainAspectRatio": "Maintain Aspect Ratios",
- "selectText": {
- "2": "\u062F\u0648\u0631\u0627\u0646 PDF \u062A\u0644\u0642\u0627\u0626\u064A\u064B\u0627",
- "3": "\u0627\u0644\u0645\u0646\u0637\u0642 \u0627\u0644\u0645\u062A\u0639\u062F\u062F \u0644\u0644\u0645\u0644\u0641\u0627\u062A (\u0645\u0641\u0639\u0651\u0644 \u0641\u0642\u0637 \u0625\u0630\u0627 \u0643\u0646\u062A \u062A\u0639\u0645\u0644 \u0645\u0639 \u0635\u0648\u0631 \u0645\u062A\u0639\u062F\u062F\u0629)",
- "4": "\u062F\u0645\u062C \u0641\u064A \u0645\u0644\u0641 PDF \u0648\u0627\u062D\u062F",
- "5": "\u062A\u062D\u0648\u064A\u0644 \u0625\u0644\u0649 \u0645\u0644\u0641\u0627\u062A PDF \u0645\u0646\u0641\u0635\u0644\u0629"
- }
- },
- "changeMetadata": {
- "title": "\u0627\u0644\u0639\u0646\u0648\u0627\u0646:",
- "header": "\u062A\u063A\u064A\u064A\u0631 \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A \u0627\u0644\u0648\u0635\u0641\u064A\u0629",
- "selectText": {
- "1": "\u064A\u0631\u062C\u0649 \u062A\u0639\u062F\u064A\u0644 \u0627\u0644\u0645\u062A\u063A\u064A\u0631\u0627\u062A \u0627\u0644\u062A\u064A \u062A\u0631\u063A\u0628 \u0641\u064A \u062A\u063A\u064A\u064A\u0631\u0647\u0627",
- "2": "\u062D\u0630\u0641 \u0643\u0644 \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A \u0627\u0644\u0623\u0648\u0644\u064A\u0629",
- "3": "\u0625\u0638\u0647\u0627\u0631 \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A \u0627\u0644\u0623\u0648\u0644\u064A\u0629 \u0627\u0644\u0645\u062E\u0635\u0635\u0629:",
- "4": "\u0628\u064A\u0627\u0646\u0627\u062A \u0648\u0635\u0641\u064A\u0629 \u0623\u062E\u0631\u0649:",
- "5": "\u0625\u0636\u0627\u0641\u0629 \u0625\u062F\u062E\u0627\u0644 \u0628\u064A\u0627\u0646\u0627\u062A \u0623\u0648\u0644\u064A\u0629 \u0645\u062E\u0635\u0635"
- },
- "author": "\u0627\u0644\u0645\u0624\u0644\u0641:",
- "creationDate": "\u062A\u0627\u0631\u064A\u062E \u0627\u0644\u0625\u0646\u0634\u0627\u0621 (yyyy / MM / dd HH: mm: ss):",
- "creator": "\u0627\u0644\u0645\u0646\u0634\u0626:",
- "keywords": "\u0627\u0644\u0643\u0644\u0645\u0627\u062A \u0627\u0644\u0631\u0626\u064A\u0633\u064A\u0629:",
- "modDate": "\u062A\u0627\u0631\u064A\u062E \u0627\u0644\u062A\u0639\u062F\u064A\u0644 (yyyy / MM / dd HH: mm: ss):",
- "producer": "\u0627\u0644\u0645\u0646\u062A\u062C:",
- "subject": "\u0627\u0644\u0645\u0648\u0636\u0648\u0639:",
- "trapped": "\u0645\u062D\u0627\u0635\u0631:",
- "submit": "\u062A\u063A\u064A\u064A\u0631"
- }
- }
-}
\ No newline at end of file
diff --git a/client-tauri/src/locales/en.json b/client-tauri/src/locales/en.json
deleted file mode 100644
index 806f4a451..000000000
--- a/client-tauri/src/locales/en.json
+++ /dev/null
@@ -1,854 +0,0 @@
-{
- "translation": {
- "language": {
- "name":"English (UK)",
- "flag": "🇬🇧",
- "direction": "ltr"
- },
- "pdfPrompt": "Select PDF(s)",
- "multiPdfPrompt": "Select PDFs (2+)",
- "multiPdfDropPrompt": "Select (or drag & drop) all PDFs you require",
- "imgPrompt": "Select Image(s)",
- "genericSubmit": "Submit",
- "processTimeWarning": "Warning: This process can take up to a minute depending on file-size",
- "pageOrderPrompt": "Custom Page Order (Enter a comma-separated list of page numbers or Functions like 2n+1) :",
- "goToPage": "Go",
- "true": "True",
- "false": "False",
- "unknown": "Unknown",
- "save": "Save",
- "close": "Close",
- "filesSelected": "files selected",
- "noFavourites": "No favourites added",
- "bored": "Bored Waiting?",
- "alphabet": "Alphabet",
- "downloadPdf": "Download PDF",
- "text": "Text",
- "font": "Font",
- "selectFillter": "-- Select --",
- "pageNum": "Page Number ",
- "sizes": {
- "small": "Small",
- "medium": "Medium",
- "large": "Large",
- "x-large": "X-Large"
- },
- "error": {
- "pdfPassword": "The PDF Document is passworded and either the password was not provided or was incorrect"
- },
- "delete": "Delete",
- "username": "Username",
- "password": "Password",
- "welcome": "Welcome",
- "property": "Property",
- "black": "Black",
- "white": "White",
- "red": "Red",
- "green": "Green",
- "blue": "Blue",
- "custom": "Custom...",
- "changedCredsMessage": "Credentials changed!",
- "notAuthenticatedMessage": "User not authenticated.",
- "userNotFoundMessage": "User not found.",
- "incorrectPasswordMessage": "Current password is incorrect.",
- "usernameExistsMessage": "New Username already exists.",
- "navbar": {
- "convert": "Convert",
- "security": "Security",
- "other": "Miscellaneous",
- "darkmode": "Dark Mode",
- "pageOps": "Page Operations",
- "settings": "Settings"
- },
- "settings": {
- "title": "Settings",
- "update": "Update available",
- "appVersion": "App Version:",
- "downloadOption": {
- "1": "Open in same window",
- "2": "Open in new window",
- "3": "Download file",
- "title": "Choose download option (For single file non zip downloads):"
- },
- "zipThreshold": "Zip files when the number of downloaded files exceeds",
- "signOut": "Sign Out",
- "accountSettings": "Account Settings"
- },
- "changeCreds": {
- "title": "Change Credentials",
- "header": "Update Your Account Details",
- "changeUserAndPassword": "You are using default login credentials. Please enter a new password (and username if wanted)",
- "newUsername": "New Username",
- "oldPassword": "Current Password",
- "newPassword": "New Password",
- "confirmNewPassword": "Confirm New Password",
- "submit": "Submit Changes"
- },
- "account": {
- "title": "Account Settings",
- "accountSettings": "Account Settings",
- "adminSettings": "Admin Settings - View and Add Users",
- "userControlSettings": "User Control Settings",
- "changeUsername": "Change Username",
- "password": "Confirmation Password",
- "oldPassword": "Old password",
- "newPassword": "New Password",
- "changePassword": "Change Password",
- "confirmNewPassword": "Confirm New Password",
- "signOut": "Sign Out",
- "yourApiKey": "Your API Key",
- "syncTitle": "Sync browser settings with Account",
- "settingsCompare": "Settings Comparison:",
- "property": "Property",
- "webBrowserSettings": "Web Browser Setting",
- "syncToBrowser": "Sync Account -> Browser",
- "syncToAccount": "Sync Account <- Browser"
- },
- "adminUserSettings": {
- "title": "User Control Settings",
- "header": "Admin User Control Settings",
- "admin": "Admin",
- "user": "User",
- "addUser": "Add New User",
- "roles": "Roles",
- "role": "Role",
- "actions": "Actions",
- "apiUser": "Limited API User",
- "webOnlyUser": "Web Only User",
- "forceChange": "Force user to change username/password on login",
- "submit": "Save User"
- },
- "home": {
- "desc": "Your locally hosted one-stop-shop for all your PDF needs.",
- "searchBar": "Search for features...",
- "viewPdf": {
- "title": "View PDF",
- "desc": "View, annotate, add text or images"
- },
- "multiTool": {
- "title": "PDF Multi Tool",
- "desc": "Merge, Rotate, Rearrange, and Remove pages"
- },
- "merge": {
- "title": "Merge",
- "desc": "Easily merge multiple PDFs into one."
- },
- "split": {
- "title": "Split",
- "desc": "Split PDFs into multiple documents"
- },
- "rotate": {
- "title": "Rotate",
- "desc": "Easily rotate your PDFs."
- },
- "imageToPdf": {
- "title": "Image to PDF",
- "desc": "Convert a image (PNG, JPEG, GIF) to PDF."
- },
- "pdfToImage": {
- "title": "PDF to Image",
- "desc": "Convert a PDF to a image. (PNG, JPEG, GIF)"
- },
- "pdfOrganiser": {
- "title": "Organise",
- "desc": "Remove/Rearrange pages in any order"
- },
- "addImage": {
- "title": "Add image",
- "desc": "Adds a image onto a set location on the PDF"
- },
- "watermark": {
- "title": "Add Watermark",
- "desc": "Add a custom watermark to your PDF document."
- },
- "permissions": {
- "title": "Change Permissions",
- "desc": "Change the permissions of your PDF document"
- },
- "removePages": {
- "title": "Remove",
- "desc": "Delete unwanted pages from your PDF document."
- },
- "addPassword": {
- "title": "Add Password",
- "desc": "Encrypt your PDF document with a password."
- },
- "removePassword": {
- "title": "Remove Password",
- "desc": "Remove password protection from your PDF document."
- },
- "compressPdfs": {
- "title": "Compress",
- "desc": "Compress PDFs to reduce their file size."
- },
- "changeMetadata": {
- "title": "Change Metadata",
- "desc": "Change/Remove/Add metadata from a PDF document"
- },
- "fileToPDF": {
- "title": "Convert file to PDF",
- "desc": "Convert nearly any file to PDF (DOCX, PNG, XLS, PPT, TXT and more)"
- },
- "ocr": {
- "title": "OCR / Cleanup scans",
- "desc": "Cleanup scans and detects text from images within a PDF and re-adds it as text."
- },
- "extractImages": {
- "title": "Extract Images",
- "desc": "Extracts all images from a PDF and saves them to zip"
- },
- "pdfToPDFA": {
- "title": "PDF to PDF/A",
- "desc": "Convert PDF to PDF/A for long-term storage"
- },
- "PDFToWord": {
- "title": "PDF to Word",
- "desc": "Convert PDF to Word formats (DOC, DOCX and ODT)"
- },
- "PDFToPresentation": {
- "title": "PDF to Presentation",
- "desc": "Convert PDF to Presentation formats (PPT, PPTX and ODP)"
- },
- "PDFToText": {
- "title": "PDF to RTF (Text)",
- "desc": "Convert PDF to Text or RTF format"
- },
- "PDFToHTML": {
- "title": "PDF to HTML",
- "desc": "Convert PDF to HTML format"
- },
- "PDFToXML": {
- "title": "PDF to XML",
- "desc": "Convert PDF to XML format"
- },
- "ScannerImageSplit": {
- "title": "Detect/Split Scanned photos",
- "desc": "Splits multiple photos from within a photo/PDF"
- },
- "sign": {
- "title": "Sign",
- "desc": "Adds signature to PDF by drawing, text or image"
- },
- "flatten": {
- "title": "Flatten",
- "desc": "Remove all interactive elements and forms from a PDF"
- },
- "repair": {
- "title": "Repair",
- "desc": "Tries to repair a corrupt/broken PDF"
- },
- "removeBlanks": {
- "title": "Remove Blank pages",
- "desc": "Detects and removes blank pages from a document"
- },
- "compare": {
- "title": "Compare",
- "desc": "Compares and shows the differences between 2 PDF Documents"
- },
- "certSign": {
- "title": "Sign with Certificate",
- "desc": "Signs a PDF with a Certificate/Key (PEM/P12)"
- },
- "pageLayout": {
- "title": "Multi-Page Layout",
- "desc": "Merge multiple pages of a PDF document into a single page"
- },
- "scalePages": {
- "title": "Adjust page size/scale",
- "desc": "Change the size/scale of a page and/or its contents."
- },
- "pipeline": {
- "title": "Pipeline (Advanced)",
- "desc": "Run multiple actions on PDFs by defining pipeline scripts"
- },
- "add-page-numbers": {
- "title": "Add Page Numbers",
- "desc": "Add Page numbers throughout a document in a set location"
- },
- "auto-rename": {
- "title": "Auto Rename PDF File",
- "desc": "Auto renames a PDF file based on its detected header "
- },
- "adjust-contrast": {
- "title": "Adjust Colors/Contrast",
- "desc": "Adjust Contrast, Saturation and Brightness of a PDF"
- },
- "crop": {
- "title": "Crop PDF",
- "desc": "Crop a PDF to reduce its size (maintains text!)"
- },
- "autoSplitPDF": {
- "title": "Auto Split Pages",
- "desc": "Auto Split Scanned PDF with physical scanned page splitter QR Code"
- },
- "sanitizePdf": {
- "title": "Sanitize",
- "desc": "Remove scripts and other elements from PDF files"
- },
- "URLToPDF": {
- "title": "URL/Website To PDF",
- "desc": "Converts any http(s)URL to PDF"
- },
- "HTMLToPDF": {
- "title": "HTML to PDF",
- "desc": "Converts any HTML file or zip to PDF"
- },
- "MarkdownToPDF": {
- "title": "Markdown to PDF",
- "desc": "Converts any Markdown file to PDF"
- },
- "getPdfInfo": {
- "title": "Get ALL Info on PDF",
- "desc": "Grabs any and all information possible on PDFs"
- },
- "extractPage": {
- "title": "Extract page(s)",
- "desc": "Extracts select pages from PDF"
- },
- "PdfToSinglePage": {
- "title": "PDF to Single Large Page",
- "desc": "Merges all PDF pages into one large single page"
- },
- "showJS": {
- "title": "Show Javascript",
- "desc": "Searches and displays any JS injected into a PDF"
- },
- "autoRedact": {
- "title": "Auto Redact",
- "desc": "Auto Redacts(Blacks out) text in a PDF based on input text"
- }
- },
- "viewPdf": {
- "tags": "view,read,annotate,text,image",
- "title": "View PDF",
- "header": "View PDF"
- },
- "multiTool": {
- "tags": "Multi Tool,Multi operation,UI,click drag,front end,client side,interactive,intractable,move",
- "title": "PDF Multi Tool",
- "header": "PDF Multi Tool"
- },
- "merge": {
- "tags": "merge,Page operations,Back end,server side",
- "title": "Merge",
- "header": "Merge multiple PDFs (2+)",
- "sortByName": "Sort by name",
- "sortByDate": "Sort by date",
- "submit": "Merge"
- },
- "split": {
- "tags": "Page operations,divide,Multi Page,cut,server side ",
- "title": "Split PDF",
- "header": "Split PDF",
- "desc": {
- "1": "The numbers you select are the page number you wish to do a split on",
- "2": "As such selecting 1,3,7-8 would split a 10 page document into 6 separate PDFS with:",
- "3": "Document ",
- "4": "Document ",
- "5": "Document ",
- "6": "Document ",
- "7": "Document ",
- "8": "Document "
- },
- "splitPages": "Enter pages to split on:",
- "submit": "Split"
- },
- "rotate": {
- "tags": "server side",
- "title": "Rotate PDF",
- "header": "Rotate PDF",
- "selectAngle": "Select rotation angle (in multiples of 90 degrees):",
- "submit": "Rotate"
- },
- "imageToPdf": {
- "tags": "conversion,img,jpg,picture,photo"
- },
- "pdfToImage": {
- "tags": "conversion,img,jpg,picture,photo",
- "title": "PDF to Image",
- "header": "PDF to Image",
- "selectText": "Image Format",
- "singleOrMultiple": "Page to Image result type",
- "single": "Single Big Image Combing all pages",
- "multi": "Multiple Images, one image per page",
- "colorType": "Colour type",
- "color": "Colour",
- "grey": "Greyscale",
- "blackwhite": "Black and White (May lose data!)",
- "submit": "Convert"
- },
- "pdfOrganiser": {
- "tags": "duplex,even,odd,sort,move",
- "title": "Page Organiser",
- "header": "PDF Page Organiser",
- "submit": "Rearrange Pages"
- },
- "addImage": {
- "tags": "img,jpg,picture,photo",
- "title": "Add Image",
- "header": "Add image to PDF",
- "everyPage": "Every Page?",
- "upload": "Add image",
- "submit": "Add image"
- },
- "watermark": {
- "tags": "Text,repeating,label,own,copyright,trademark,img,jpg,picture,photo",
- "title": "Add Watermark",
- "header": "Add Watermark",
- "selectText": {
- "1": "Select PDF to add watermark to:",
- "2": "Watermark Text:",
- "3": "Font Size:",
- "4": "Rotation (0-360):",
- "5": "widthSpacer (Space between each watermark horizontally):",
- "6": "heightSpacer (Space between each watermark vertically):",
- "7": "Opacity (0% - 100%):",
- "8": "Watermark Type:",
- "9": "Watermark Image:"
- },
- "submit": "Add Watermark"
- },
- "permissions": {
- "tags": "read,write,edit,print",
- "title": "Change Permissions",
- "header": "Change Permissions",
- "warning": "Warning to have these permissions be unchangeable it is recommended to set them with a password via the add-password page",
- "selectText": {
- "1": "Select PDF to change permissions",
- "2": "Permissions to set",
- "3": "Prevent assembly of document",
- "4": "Prevent content extraction",
- "5": "Prevent extraction for accessibility",
- "6": "Prevent filling in form",
- "7": "Prevent modification",
- "8": "Prevent annotation modification",
- "9": "Prevent printing",
- "10": "Prevent printing different formats"
- },
- "submit": "Change"
- },
- "removePages": {
- "tags": "Remove pages,delete pages"
- },
- "addPassword": {
- "tags": "secure,security",
- "title": "Add Password",
- "header": "Add password (Encrypt)",
- "selectText": {
- "1": "Select PDF to encrypt",
- "2": "User Password",
- "3": "Encryption Key Length",
- "4": "Higher values are stronger, but lower values have better compatibility.",
- "5": "Permissions to set (Recommended to be used along with Owner password)",
- "6": "Prevent assembly of document",
- "7": "Prevent content extraction",
- "8": "Prevent extraction for accessibility",
- "9": "Prevent filling in form",
- "10": "Prevent modification",
- "11": "Prevent annotation modification",
- "12": "Prevent printing",
- "13": "Prevent printing different formats",
- "14": "Owner Password",
- "15": "Restricts what can be done with the document once it is opened (Not supported by all readers)",
- "16": "Restricts the opening of the document itself"
- },
- "submit": "Encrypt"
- },
- "removePassword": {
- "tags": "secure,Decrypt,security,unpassword,delete password",
- "title": "Remove password",
- "header": "Remove password (Decrypt)",
- "selectText": {
- "1": "Select PDF to Decrypt",
- "2": "Password"
- },
- "submit": "Remove"
- },
- "compressPdfs": {
- "tags": "squish,small,tiny"
- },
- "fileToPDF": {
- "tags": "transformation,format,document,picture,slide,text,conversion,office,docs,word,excel,powerpoint",
- "title": "File to PDF",
- "header": "Convert any file to PDF",
- "credit": "This service uses LibreOffice and Unoconv for file conversion.",
- "supportedFileTypes": "Supported file types should include the below however for a full updated list of supported formats, please refer to the LibreOffice documentation",
- "submit": "Convert to PDF"
- },
- "ocr": {
- "tags": "recognition,text,image,scan,read,identify,detection,editable",
- "title": "OCR / Scan Cleanup",
- "header": "Cleanup Scans / OCR (Optical Character Recognition)",
- "selectText": {
- "1": "Select languages that are to be detected within the PDF (Ones listed are the ones currently detected):",
- "2": "Produce text file containing OCR text alongside the OCR'ed PDF",
- "3": "Correct pages were scanned at a skewed angle by rotating them back into place",
- "4": "Clean page so its less likely that OCR will find text in background noise. (No output change)",
- "5": "Clean page so its less likely that OCR will find text in background noise, maintains cleanup in output.",
- "6": "Ignores pages that have interactive text on them, only OCRs pages that are images",
- "7": "Force OCR, will OCR Every page removing all original text elements",
- "8": "Normal (Will error if PDF contains text)",
- "9": "Additional Settings",
- "10": "OCR Mode",
- "11": "Remove images after OCR (Removes ALL images, only useful if part of conversion step)",
- "12": "Render Type (Advanced)"
- },
- "help": "Please read this documentation on how to use this for other languages and/or use not in docker",
- "credit": "This service uses OCRmyPDF and Tesseract for OCR.",
- "submit": "Process PDF with OCR"
- },
- "extractImages": {
- "tags": "picture,photo,save,archive,zip,capture,grab",
- "title": "Extract Images",
- "header": "Extract Images",
- "selectText": "Select image format to convert extracted images to",
- "submit": "Extract"
- },
- "pdfToPDFA": {
- "tags": "archive,long-term,standard,conversion,storage,preservation",
- "title": "PDF To PDF/A",
- "header": "PDF To PDF/A",
- "credit": "This service uses OCRmyPDF for PDF/A conversion",
- "submit": "Convert"
- },
- "PDFToWord": {
- "tags": "doc,docx,odt,word,transformation,format,conversion,office,microsoft,docfile",
- "title": "PDF to Word",
- "header": "PDF to Word",
- "selectText": {
- "1": "Output file format"
- },
- "credit": "This service uses LibreOffice for file conversion.",
- "submit": "Convert"
- },
- "PDFToPresentation": {
- "tags": "slides,show,office,microsoft",
- "title": "PDF to Presentation",
- "header": "PDF to Presentation",
- "selectText": {
- "1": "Output file format"
- },
- "credit": "This service uses LibreOffice for file conversion.",
- "submit": "Convert"
- },
- "PDFToText": {
- "tags": "richformat,richtextformat,rich text format",
- "title": "PDF to RTF (Text)",
- "header": "PDF to RTF (Text)",
- "selectText": {
- "1": "Output file format"
- },
- "credit": "This service uses LibreOffice for file conversion.",
- "submit": "Convert"
- },
- "PDFToHTML": {
- "tags": "web content,browser friendly",
- "title": "PDF to HTML",
- "header": "PDF to HTML",
- "credit": "This service uses LibreOffice for file conversion.",
- "submit": "Convert"
- },
- "PDFToXML": {
- "tags": "data-extraction,structured-content,interop,transformation,convert",
- "title": "PDF to XML",
- "header": "PDF to XML",
- "credit": "This service uses LibreOffice for file conversion.",
- "submit": "Convert"
- },
- "ScannerImageSplit": {
- "tags": "separate,auto-detect,scans,multi-photo,organize",
- "selectText": {
- "1": "Angle Threshold:",
- "2": "Sets the minimum absolute angle required for the image to be rotated (default: 10).",
- "3": "Tolerance:",
- "4": "Determines the range of color variation around the estimated background color (default: 30).",
- "5": "Minimum Area:",
- "6": "Sets the minimum area threshold for a photo (default: 10000).",
- "7": "Minimum Contour Area:",
- "8": "Sets the minimum contour area threshold for a photo",
- "9": "Border Size:",
- "10": "Sets the size of the border added and removed to prevent white borders in the output (default: 1)."
- }
- },
- "sign": {
- "tags": "authorize,initials,drawn-signature,text-sign,image-signature",
- "title": "Sign",
- "header": "Sign PDFs",
- "upload": "Upload Image",
- "draw": "Draw Signature",
- "text": "Text Input",
- "clear": "Clear",
- "add": "Add"
- },
- "flatten": {
- "tags": "static,deactivate,non-interactive,streamline",
- "title": "Flatten",
- "header": "Flatten PDFs",
- "submit": "Flatten"
- },
- "repair": {
- "tags": "fix,restore,correction,recover",
- "title": "Repair",
- "header": "Repair PDFs",
- "submit": "Repair"
- },
- "removeBlanks": {
- "tags": "cleanup,streamline,non-content,organize",
- "title": "Remove Blanks",
- "header": "Remove Blank Pages",
- "threshold": "Pixel Whiteness Threshold:",
- "thresholdDesc": "Threshold for determining how white a white pixel must be to be classed as 'White'. 0 ",
- "whitePercent": "White Percent (%):",
- "whitePercentDesc": "Percent of page that must be 'white' pixels to be removed",
- "submit": "Remove Blanks"
- },
- "compare": {
- "tags": "differentiate,contrast,changes,analysis",
- "title": "Compare",
- "header": "Compare PDFs",
- "document": {
- "1": "Document 1",
- "2": "Document 2"
- },
- "submit": "Compare"
- },
- "certSign": {
- "tags": "authenticate,PEM,P12,official,encrypt",
- "title": "Certificate Signing",
- "header": "Sign a PDF with your certificate (Work in progress)",
- "selectPDF": "Select a PDF File for Signing: ",
- "selectKey": "Select Your Private Key File (PKCS",
- "selectCert": "Select Your Certificate File (X.509 format, could be .pem or .der): ",
- "selectP12": "Select Your PKCS",
- "certType": "Certificate Type",
- "password": "Enter Your Keystore or Private Key Password (If Any): ",
- "showSig": "Show Signature",
- "reason": "Reason",
- "location": "Location",
- "name": "Name ",
- "submit": "Sign PDF"
- },
- "pageLayout": {
- "tags": "merge,composite,single-view,organize",
- "title": "Multi Page Layout",
- "header": "Multi Page Layout",
- "pagesPerSheet": "Pages per sheet:",
- "addBorder": "Add Borders",
- "submit": "Submit"
- },
- "scalePages": {
- "tags": "resize,modify,dimension,adapt",
- "title": "Adjust page-scale",
- "header": "Adjust page-scale",
- "pageSize": "Size of a page of the document.",
- "scaleFactor": "Zoom level (crop) of a page.",
- "submit": "Submit"
- },
- "pipeline": {
- "tags": "automate,sequence,scripted,batch-process",
- "title": "Pipeline"
- },
- "add-page-numbers": {
- "tags": "paginate,label,organize,index"
- },
- "auto-rename": {
- "tags": "auto-detect,header-based,organize,relabel",
- "title": "Auto Rename",
- "header": "Auto Rename PDF",
- "submit": "Auto Rename"
- },
- "adjust-contrast": {
- "tags": "color-correction,tune,modify,enhance"
- },
- "crop": {
- "tags": "trim,shrink,edit,shape",
- "title": "Crop",
- "header": "Crop Image",
- "submit": "Submit"
- },
- "autoSplitPDF": {
- "tags": "QR-based,separate,scan-segment,organize",
- "title": "Auto Split PDF",
- "header": "Auto Split PDF",
- "description": "Print, Insert, Scan, upload, and let us auto-separate your documents. No manual work sorting needed.",
- "selectText": {
- "1": "Print out some divider sheets from below (Black and white is fine).",
- "2": "Scan all your documents at once by inserting the divider sheet between them.",
- "3": "Upload the single large scanned PDF file and let Stirling PDF handle the rest.",
- "4": "Divider pages are automatically detected and removed, guaranteeing a neat final document."
- },
- "formPrompt": "Submit PDF containing Stirling-PDF Page dividers:",
- "duplexMode": "Duplex Mode (Front and back scanning)",
- "dividerDownload1": "Download 'Auto Splitter Divider (minimal).pdf'",
- "dividerDownload2": "Download 'Auto Splitter Divider (with instructions).pdf'",
- "submit": "Submit"
- },
- "sanitizePdf": {
- "tags": "clean,secure,safe,remove-threats"
- },
- "URLToPDF": {
- "tags": "web-capture,save-page,web-to-doc,archive",
- "title": "URL To PDF",
- "header": "URL To PDF",
- "submit": "Convert",
- "credit": "Uses WeasyPrint"
- },
- "HTMLToPDF": {
- "tags": "markup,web-content,transformation,convert",
- "title": "HTML To PDF",
- "header": "HTML To PDF",
- "help": "Accepts HTML files and ZIPs containing html/css/images etc required",
- "submit": "Convert",
- "credit": "Uses WeasyPrint"
- },
- "MarkdownToPDF": {
- "tags": "markup,web-content,transformation,convert",
- "title": "Markdown To PDF",
- "header": "Markdown To PDF",
- "submit": "Convert",
- "help": "Work in progress",
- "credit": "Uses WeasyPrint"
- },
- "getPdfInfo": {
- "tags": "infomation,data,stats,statistics",
- "title": "Get Info on PDF",
- "header": "Get Info on PDF",
- "submit": "Get Info",
- "downloadJson": "Download JSON"
- },
- "extractPage": {
- "tags": "extract"
- },
- "PdfToSinglePage": {
- "tags": "single page"
- },
- "showJS": {
- "tags": "Redact,Hide,black out,black,marker,hidden",
- "title": "Show Javascript",
- "header": "Show Javascript",
- "downloadJS": "Download Javascript",
- "submit": "Show"
- },
- "login": {
- "title": "Sign in",
- "signin": "Sign in",
- "rememberme": "Remember me",
- "invalid": "Invalid username or password.",
- "locked": "Your account has been locked.",
- "signinTitle": "Please sign in"
- },
- "autoRedact": {
- "title": "Auto Redact",
- "header": "Auto Redact",
- "colorLabel": "Colour",
- "textsToRedactLabel": "Text to Redact (line-separated)",
- "textsToRedactPlaceholder": "e.g. \\nConfidential \\nTop-Secret",
- "useRegexLabel": "Use Regex",
- "wholeWordSearchLabel": "Whole Word Search",
- "customPaddingLabel": "Custom Extra Padding",
- "convertPDFToImageLabel": "Convert PDF to PDF-Image (Used to remove text behind the box)",
- "submitButton": "Submit"
- },
- "pdfToSinglePage": {
- "title": "PDF To Single Page",
- "header": "PDF To Single Page",
- "submit": "Convert To Single Page"
- },
- "pageExtracter": {
- "title": "Extract Pages",
- "header": "Extract Pages",
- "submit": "Extract"
- },
- "sanitizePDF": {
- "title": "Sanitize PDF",
- "header": "Sanitize a PDF file",
- "selectText": {
- "1": "Remove JavaScript actions",
- "2": "Remove embedded files",
- "3": "Remove metadata",
- "4": "Remove links",
- "5": "Remove fonts"
- },
- "submit": "Sanitize PDF"
- },
- "addPageNumbers": {
- "title": "Add Page Numbers",
- "header": "Add Page Numbers",
- "selectText": {
- "1": "Select PDF file:",
- "2": "Margin Size",
- "3": "Position",
- "4": "Starting Number",
- "5": "Pages to Number",
- "6": "Custom Text"
- },
- "customTextDesc": "Custom Text",
- "numberPagesDesc": "Which pages to number, default 'all', also accepts 1-5 or 2,5,9 etc",
- "customNumberDesc": "Defaults to {n}, also accepts 'Page {n} of {total}', 'Text-{n}', '{filename}-{n}",
- "submit": "Add Page Numbers"
- },
- "adjustContrast": {
- "title": "Adjust Contrast",
- "header": "Adjust Contrast",
- "contrast": "Contrast:",
- "brightness": "Brightness:",
- "saturation": "Saturation:",
- "download": "Download"
- },
- "compress": {
- "title": "Compress",
- "header": "Compress PDF",
- "credit": "This service uses Ghostscript for PDF Compress/Optimisation.",
- "selectText": {
- "1": "Manual Mode - From 1 to 4",
- "2": "Optimization level:",
- "3": "4 (Terrible for text images)",
- "4": "Auto mode - Auto adjusts quality to get PDF to exact size",
- "5": "Expected PDF Size (e.g. 25MB, 10.8MB, 25KB) "
- },
- "submit": "Compress"
- },
- "pageRemover": {
- "title": "Page Remover",
- "header": "PDF Page remover",
- "pagesToDelete": "Pages to delete (Enter a comma-separated list of page numbers) :",
- "submit": "Delete Pages"
- },
- "imageToPDF": {
- "title": "Image to PDF",
- "header": "Image to PDF",
- "submit": "Convert",
- "selectLabel": "Image Fit Options",
- "fillPage": "Fill Page",
- "fitDocumentToImage": "Fit Page to Image",
- "maintainAspectRatio": "Maintain Aspect Ratios",
- "selectText": {
- "2": "Auto rotate PDF",
- "3": "Multi file logic (Only enabled if working with multiple images)",
- "4": "Merge into single PDF",
- "5": "Convert to separate PDFs"
- }
- },
- "changeMetadata": {
- "title": "Title:",
- "header": "Change Metadata",
- "selectText": {
- "1": "Please edit the variables you wish to change",
- "2": "Delete all metadata",
- "3": "Show Custom Metadata:",
- "4": "Other Metadata:",
- "5": "Add Custom Metadata Entry"
- },
- "author": "Author:",
- "creationDate": "Creation Date (yyyy/MM/dd HH:mm:ss):",
- "creator": "Creator:",
- "keywords": "Keywords:",
- "modDate": "Modification Date (yyyy/MM/dd HH:mm:ss):",
- "producer": "Producer:",
- "subject": "Subject:",
- "trapped": "Trapped:",
- "submit": "Change"
- }
- }
-}
-
diff --git a/client-tauri/src/pages/page-operations/Impose.tsx b/client-tauri/src/pages/page-operations/Impose.tsx
index 5700b427e..9120faeb6 100644
--- a/client-tauri/src/pages/page-operations/Impose.tsx
+++ b/client-tauri/src/pages/page-operations/Impose.tsx
@@ -1,6 +1,6 @@
import DynamicParameterFields from "../../components/DynamicParameterFields";
-import { ImposeParamConstraints } from "@stirling-pdf/shared-operations/src/functions/impose";
+// import { ImposeParamConstraints } from "@stirling-pdf/shared-operations/src/functions/impose";
import { useTranslation } from "react-i18next";
function Impose() {
@@ -9,7 +9,7 @@ function Impose() {
{t("pageLayout.header")}
);
diff --git a/package-lock.json b/package-lock.json
index 479de5d32..91e8bd86a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1094,8 +1094,7 @@
"node_modules/@jridgewell/sourcemap-codec": {
"version": "1.4.15",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
- "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
- "dev": true
+ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
},
"node_modules/@jridgewell/trace-mapping": {
"version": "0.3.21",
@@ -1338,7 +1337,6 @@
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
"integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
- "dev": true,
"dependencies": {
"@nodelib/fs.stat": "2.0.5",
"run-parallel": "^1.1.9"
@@ -1351,7 +1349,6 @@
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
"integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
- "dev": true,
"engines": {
"node": ">= 8"
}
@@ -1360,7 +1357,6 @@
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
"integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
- "dev": true,
"dependencies": {
"@nodelib/fs.scandir": "2.1.5",
"fastq": "^1.6.0"
@@ -1469,7 +1465,6 @@
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-5.1.0.tgz",
"integrity": "sha512-lpA3RZ9PdIG7qqhEfv79tBffNaoDuukFDrmhLqg9ifv99u/ehn+lOg30x2zmhf8AQqQUZaMk/B9fZraQ6/acDQ==",
- "dev": true,
"dependencies": {
"slash": "^4.0.0"
},
@@ -1489,7 +1484,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz",
"integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==",
- "dev": true,
"engines": {
"node": ">=12"
},
@@ -1501,7 +1495,6 @@
"version": "25.0.7",
"resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.7.tgz",
"integrity": "sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==",
- "dev": true,
"dependencies": {
"@rollup/pluginutils": "^5.0.1",
"commondir": "^1.0.1",
@@ -1526,7 +1519,6 @@
"version": "5.0.5",
"resolved": "https://registry.npmjs.org/@rollup/plugin-inject/-/plugin-inject-5.0.5.tgz",
"integrity": "sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==",
- "dev": true,
"dependencies": {
"@rollup/pluginutils": "^5.0.1",
"estree-walker": "^2.0.2",
@@ -1548,7 +1540,6 @@
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz",
"integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==",
- "dev": true,
"dependencies": {
"@rollup/pluginutils": "^5.1.0"
},
@@ -1610,6 +1601,58 @@
}
}
},
+ "node_modules/@rollup/plugin-run": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-run/-/plugin-run-3.0.2.tgz",
+ "integrity": "sha512-pgQcDA34u6C+8Yr0FSd2T7iN2UTQe8zJ+1pbceNJ9MkvGrN0sz4D6Mzg3eYkGrbV4zC7H5QvwlzC1GqH4PrSrg==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "14.18.30"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^2.0.0||^3.0.0||^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@rollup/plugin-run/node_modules/@types/node": {
+ "version": "14.18.30",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.30.tgz",
+ "integrity": "sha512-8OEyg4oc/CqN5+LbInKNLA8MfbGzbC+k8lVPePXazuwEVrVeQ9gwMDX00HJwWbC7syc1FWRU6Mow0Lm+mibHAQ==",
+ "dev": true
+ },
+ "node_modules/@rollup/plugin-typescript": {
+ "version": "11.1.6",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-11.1.6.tgz",
+ "integrity": "sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==",
+ "dev": true,
+ "dependencies": {
+ "@rollup/pluginutils": "^5.1.0",
+ "resolve": "^1.22.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^2.14.0||^3.0.0||^4.0.0",
+ "tslib": "*",
+ "typescript": ">=3.7.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
+ },
+ "tslib": {
+ "optional": true
+ }
+ }
+ },
"node_modules/@rollup/plugin-virtual": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/@rollup/plugin-virtual/-/plugin-virtual-3.0.2.tgz",
@@ -1630,7 +1673,6 @@
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz",
"integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==",
- "dev": true,
"dependencies": {
"@types/estree": "^1.0.0",
"estree-walker": "^2.0.2",
@@ -1648,6 +1690,175 @@
}
}
},
+ "node_modules/@rollup/rollup-android-arm-eabi": {
+ "version": "4.9.6",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.6.tgz",
+ "integrity": "sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-android-arm64": {
+ "version": "4.9.6",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.6.tgz",
+ "integrity": "sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-arm64": {
+ "version": "4.9.6",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.6.tgz",
+ "integrity": "sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-x64": {
+ "version": "4.9.6",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.6.tgz",
+ "integrity": "sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.9.6",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.6.tgz",
+ "integrity": "sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.9.6",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.6.tgz",
+ "integrity": "sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
+ "version": "4.9.6",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.6.tgz",
+ "integrity": "sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.9.6",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.6.tgz",
+ "integrity": "sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
+ "version": "4.9.6",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.6.tgz",
+ "integrity": "sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-musl": {
+ "version": "4.9.6",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.6.tgz",
+ "integrity": "sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.9.6",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.6.tgz",
+ "integrity": "sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.9.6",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.6.tgz",
+ "integrity": "sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
+ "version": "4.9.6",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.6.tgz",
+ "integrity": "sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
"node_modules/@sideway/address": {
"version": "4.1.4",
"resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz",
@@ -2187,8 +2398,7 @@
"node_modules/@types/estree": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
- "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
- "dev": true
+ "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw=="
},
"node_modules/@types/express": {
"version": "4.17.21",
@@ -2212,6 +2422,23 @@
"@types/send": "*"
}
},
+ "node_modules/@types/fs-extra": {
+ "version": "8.1.5",
+ "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.5.tgz",
+ "integrity": "sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/glob": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz",
+ "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==",
+ "dependencies": {
+ "@types/minimatch": "*",
+ "@types/node": "*"
+ }
+ },
"node_modules/@types/hoist-non-react-statics": {
"version": "3.3.5",
"resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz",
@@ -2237,6 +2464,11 @@
"resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
"integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w=="
},
+ "node_modules/@types/minimatch": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz",
+ "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA=="
+ },
"node_modules/@types/multer": {
"version": "1.4.11",
"resolved": "https://registry.npmjs.org/@types/multer/-/multer-1.4.11.tgz",
@@ -2793,16 +3025,54 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
"integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
- "dev": true,
"engines": {
"node": ">=8"
}
},
+ "node_modules/asn1.js": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz",
+ "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==",
+ "dependencies": {
+ "bn.js": "^4.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0",
+ "safer-buffer": "^2.1.0"
+ }
+ },
+ "node_modules/asn1.js/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "node_modules/assert": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz",
+ "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "is-nan": "^1.3.2",
+ "object-is": "^1.1.5",
+ "object.assign": "^4.1.4",
+ "util": "^0.12.5"
+ }
+ },
"node_modules/async": {
"version": "3.2.5",
"resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz",
"integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg=="
},
+ "node_modules/available-typed-arrays": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
+ "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/b4a": {
"version": "1.6.4",
"resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz",
@@ -2856,6 +3126,11 @@
"resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz",
"integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ=="
},
+ "node_modules/bn.js": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
+ "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ=="
+ },
"node_modules/body-parser": {
"version": "1.20.1",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
@@ -2922,7 +3197,6 @@
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
"dependencies": {
"fill-range": "^7.0.1"
},
@@ -2930,6 +3204,89 @@
"node": ">=8"
}
},
+ "node_modules/brorand": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+ "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w=="
+ },
+ "node_modules/browser-resolve": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz",
+ "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==",
+ "dependencies": {
+ "resolve": "^1.17.0"
+ }
+ },
+ "node_modules/browserify-aes": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
+ "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
+ "dependencies": {
+ "buffer-xor": "^1.0.3",
+ "cipher-base": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.3",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/browserify-cipher": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
+ "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
+ "dependencies": {
+ "browserify-aes": "^1.0.4",
+ "browserify-des": "^1.0.0",
+ "evp_bytestokey": "^1.0.0"
+ }
+ },
+ "node_modules/browserify-des": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
+ "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
+ "dependencies": {
+ "cipher-base": "^1.0.1",
+ "des.js": "^1.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "node_modules/browserify-rsa": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz",
+ "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==",
+ "dependencies": {
+ "bn.js": "^5.0.0",
+ "randombytes": "^2.0.1"
+ }
+ },
+ "node_modules/browserify-sign": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.2.tgz",
+ "integrity": "sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==",
+ "dependencies": {
+ "bn.js": "^5.2.1",
+ "browserify-rsa": "^4.1.0",
+ "create-hash": "^1.2.0",
+ "create-hmac": "^1.1.7",
+ "elliptic": "^6.5.4",
+ "inherits": "^2.0.4",
+ "parse-asn1": "^5.1.6",
+ "readable-stream": "^3.6.2",
+ "safe-buffer": "^5.2.1"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/browserify-zlib": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
+ "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
+ "dependencies": {
+ "pako": "~1.0.5"
+ }
+ },
"node_modules/browserslist": {
"version": "4.22.2",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz",
@@ -2998,6 +3355,11 @@
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
},
+ "node_modules/buffer-xor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+ "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ=="
+ },
"node_modules/builtin-modules": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
@@ -3010,6 +3372,11 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/builtin-status-codes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
+ "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ=="
+ },
"node_modules/busboy": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
@@ -3152,6 +3519,15 @@
"node": ">=10"
}
},
+ "node_modules/cipher-base": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
+ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
"node_modules/classnames": {
"version": "2.5.1",
"resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz",
@@ -3201,11 +3577,15 @@
"color-support": "bin.js"
}
},
+ "node_modules/colorette": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz",
+ "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g=="
+ },
"node_modules/commondir": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
- "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
- "dev": true
+ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg=="
},
"node_modules/compress-commons": {
"version": "5.0.1",
@@ -3224,8 +3604,7 @@
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
- "devOptional": true
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
},
"node_modules/concat-stream": {
"version": "1.6.2",
@@ -3380,12 +3759,22 @@
"url": "https://github.com/chalk/supports-color?sponsor=1"
}
},
+ "node_modules/console-browserify": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz",
+ "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA=="
+ },
"node_modules/console-control-strings": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
"integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==",
"optional": true
},
+ "node_modules/constants-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
+ "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ=="
+ },
"node_modules/content-disposition": {
"version": "0.5.4",
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
@@ -3561,11 +3950,49 @@
"node": ">= 12.0.0"
}
},
+ "node_modules/create-ecdh": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz",
+ "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==",
+ "dependencies": {
+ "bn.js": "^4.1.0",
+ "elliptic": "^6.5.3"
+ }
+ },
+ "node_modules/create-ecdh/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "node_modules/create-hash": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
+ "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
+ "dependencies": {
+ "cipher-base": "^1.0.1",
+ "inherits": "^2.0.1",
+ "md5.js": "^1.3.4",
+ "ripemd160": "^2.0.1",
+ "sha.js": "^2.4.0"
+ }
+ },
+ "node_modules/create-hmac": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
+ "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
+ "dependencies": {
+ "cipher-base": "^1.0.3",
+ "create-hash": "^1.1.0",
+ "inherits": "^2.0.1",
+ "ripemd160": "^2.0.0",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ }
+ },
"node_modules/create-require": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
- "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
- "dev": true
+ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ=="
},
"node_modules/cross-spawn": {
"version": "7.0.3",
@@ -3581,6 +4008,27 @@
"node": ">= 8"
}
},
+ "node_modules/crypto-browserify": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
+ "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
+ "dependencies": {
+ "browserify-cipher": "^1.0.0",
+ "browserify-sign": "^4.0.0",
+ "create-ecdh": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "create-hmac": "^1.1.0",
+ "diffie-hellman": "^5.0.0",
+ "inherits": "^2.0.1",
+ "pbkdf2": "^3.0.3",
+ "public-encrypt": "^4.0.0",
+ "randombytes": "^2.0.0",
+ "randomfill": "^1.0.3"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/csstype": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
@@ -3659,6 +4107,22 @@
"node": ">= 0.4"
}
},
+ "node_modules/define-properties": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
+ "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
+ "dependencies": {
+ "define-data-property": "^1.0.1",
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/delegates": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
@@ -3681,6 +4145,15 @@
"node": ">=6"
}
},
+ "node_modules/des.js": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz",
+ "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==",
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
"node_modules/destroy": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
@@ -3708,11 +4181,25 @@
"node": ">=0.3.1"
}
},
+ "node_modules/diffie-hellman": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
+ "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
+ "dependencies": {
+ "bn.js": "^4.1.0",
+ "miller-rabin": "^4.0.0",
+ "randombytes": "^2.0.0"
+ }
+ },
+ "node_modules/diffie-hellman/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
"node_modules/dir-glob": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
"integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
- "dev": true,
"dependencies": {
"path-type": "^4.0.0"
},
@@ -3741,6 +4228,17 @@
"csstype": "^3.0.2"
}
},
+ "node_modules/domain-browser": {
+ "version": "4.23.0",
+ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-4.23.0.tgz",
+ "integrity": "sha512-ArzcM/II1wCCujdCNyQjXrAFwS4mrLh4C7DZWlaI8mdh7h3BfKdNd3bKXITfl2PT9FtfQqaGvhi1vPRQPimjGA==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://bevry.me/fund"
+ }
+ },
"node_modules/dynamic-dedupe": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/dynamic-dedupe/-/dynamic-dedupe-0.3.0.tgz",
@@ -3767,6 +4265,25 @@
"integrity": "sha512-5UUkr3k3CZ/k+9Sw7vaaIMyOzMC0XbPyprKI3n0tbKDqkzTDOjK4izm7DxlkueRMim6ZZQ1ja9F7hoFVplHihA==",
"dev": true
},
+ "node_modules/elliptic": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
+ "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
+ "dependencies": {
+ "bn.js": "^4.11.9",
+ "brorand": "^1.1.0",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.1",
+ "inherits": "^2.0.4",
+ "minimalistic-assert": "^1.0.1",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "node_modules/elliptic/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
"node_modules/emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
@@ -4118,8 +4635,7 @@
"node_modules/estree-walker": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
- "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
- "dev": true
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
},
"node_modules/esutils": {
"version": "2.0.3",
@@ -4138,6 +4654,23 @@
"node": ">= 0.6"
}
},
+ "node_modules/events": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "engines": {
+ "node": ">=0.8.x"
+ }
+ },
+ "node_modules/evp_bytestokey": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
+ "dependencies": {
+ "md5.js": "^1.3.4",
+ "safe-buffer": "^5.1.1"
+ }
+ },
"node_modules/express": {
"version": "4.18.2",
"resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
@@ -4231,7 +4764,6 @@
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
"integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
- "dev": true,
"dependencies": {
"@nodelib/fs.stat": "^2.0.2",
"@nodelib/fs.walk": "^1.2.3",
@@ -4247,7 +4779,6 @@
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
"dependencies": {
"is-glob": "^4.0.1"
},
@@ -4313,7 +4844,6 @@
"version": "1.16.0",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz",
"integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==",
- "dev": true,
"dependencies": {
"reusify": "^1.0.4"
}
@@ -4347,7 +4877,6 @@
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dev": true,
"dependencies": {
"to-regex-range": "^5.0.1"
},
@@ -4389,7 +4918,6 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
"integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "dev": true,
"dependencies": {
"locate-path": "^6.0.0",
"path-exists": "^4.0.0"
@@ -4478,6 +5006,14 @@
"integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==",
"dev": true
},
+ "node_modules/for-each": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "dependencies": {
+ "is-callable": "^1.1.3"
+ }
+ },
"node_modules/foreground-child": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
@@ -4527,6 +5063,19 @@
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
},
+ "node_modules/fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=6 <7 || >=8"
+ }
+ },
"node_modules/fs-minipass": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
@@ -4785,12 +5334,48 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/has-tostringtag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
+ "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
+ "dependencies": {
+ "has-symbols": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/has-unicode": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
"integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==",
"optional": true
},
+ "node_modules/hash-base": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
+ "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
+ "dependencies": {
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.6.0",
+ "safe-buffer": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/hash.js": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+ "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.1"
+ }
+ },
"node_modules/hasown": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
@@ -4802,6 +5387,16 @@
"node": ">= 0.4"
}
},
+ "node_modules/hmac-drbg": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+ "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
+ "dependencies": {
+ "hash.js": "^1.0.3",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
"node_modules/hoist-non-react-statics": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
@@ -4833,6 +5428,11 @@
"node": ">= 0.8"
}
},
+ "node_modules/https-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
+ "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg=="
+ },
"node_modules/https-proxy-agent": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
@@ -4923,7 +5523,6 @@
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz",
"integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==",
- "dev": true,
"engines": {
"node": ">= 4"
}
@@ -5039,6 +5638,21 @@
"resolved": "https://registry.npmjs.org/is-any-array/-/is-any-array-2.0.1.tgz",
"integrity": "sha512-UtilS7hLRu++wb/WBAw9bNuP1Eg04Ivn1vERJck8zJthEvXCBEBpGR/33u/xLKWEQf95803oalHrVDptcAvFdQ=="
},
+ "node_modules/is-arguments": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
+ "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-array-type": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-array-type/-/is-array-type-1.0.0.tgz",
@@ -5071,11 +5685,21 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/is-callable": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-core-module": {
"version": "2.13.1",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
"integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
- "dev": true,
"dependencies": {
"hasown": "^2.0.0"
},
@@ -5087,7 +5711,6 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -5112,11 +5735,24 @@
"node": ">=8"
}
},
+ "node_modules/is-generator-function": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
+ "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-glob": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dev": true,
"dependencies": {
"is-extglob": "^2.1.1"
},
@@ -5138,11 +5774,25 @@
"integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==",
"dev": true
},
+ "node_modules/is-nan": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz",
+ "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==",
+ "dependencies": {
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true,
"engines": {
"node": ">=0.12.0"
}
@@ -5156,15 +5806,36 @@
"node": ">=8"
}
},
+ "node_modules/is-plain-object": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz",
+ "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/is-reference": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz",
"integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==",
- "dev": true,
"dependencies": {
"@types/estree": "*"
}
},
+ "node_modules/is-typed-array": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz",
+ "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==",
+ "dependencies": {
+ "which-typed-array": "^1.1.11"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
@@ -5176,6 +5847,14 @@
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
"dev": true
},
+ "node_modules/isomorphic-timers-promises": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/isomorphic-timers-promises/-/isomorphic-timers-promises-1.0.1.tgz",
+ "integrity": "sha512-u4sej9B1LPSxTGKB/HiuzvEQnXH0ECYkSVQU39koSwmFAxhlEAFl9RdTvLv4TOTQUgBS5O3O5fwUxk6byBZ+IQ==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/jackspeak": {
"version": "2.3.6",
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz",
@@ -5279,6 +5958,14 @@
"node": ">=6"
}
},
+ "node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
"node_modules/jsqr": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/jsqr/-/jsqr-1.4.0.tgz",
@@ -5348,7 +6035,6 @@
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
"integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "dev": true,
"dependencies": {
"p-locate": "^5.0.0"
},
@@ -5394,7 +6080,6 @@
"version": "0.30.5",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz",
"integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
- "dev": true,
"dependencies": {
"@jridgewell/sourcemap-codec": "^1.4.15"
},
@@ -5432,6 +6117,16 @@
"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
"dev": true
},
+ "node_modules/md5.js": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
+ "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
+ "dependencies": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
"node_modules/media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
@@ -5463,7 +6158,6 @@
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
"integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "dev": true,
"engines": {
"node": ">= 8"
}
@@ -5480,7 +6174,6 @@
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
"integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
- "dev": true,
"dependencies": {
"braces": "^3.0.2",
"picomatch": "^2.3.1"
@@ -5489,6 +6182,23 @@
"node": ">=8.6"
}
},
+ "node_modules/miller-rabin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
+ "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
+ "dependencies": {
+ "bn.js": "^4.0.0",
+ "brorand": "^1.0.1"
+ },
+ "bin": {
+ "miller-rabin": "bin/miller-rabin"
+ }
+ },
+ "node_modules/miller-rabin/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
"node_modules/mime": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
@@ -5531,6 +6241,16 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/minimalistic-assert": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
+ },
+ "node_modules/minimalistic-crypto-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+ "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg=="
+ },
"node_modules/minimatch": {
"version": "9.0.3",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
@@ -5998,6 +6718,48 @@
"integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
"dev": true
},
+ "node_modules/node-stdlib-browser": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/node-stdlib-browser/-/node-stdlib-browser-1.2.0.tgz",
+ "integrity": "sha512-VSjFxUhRhkyed8AtLwSCkMrJRfQ3e2lGtG3sP6FEgaLKBBbxM/dLfjRe1+iLhjvyLFW3tBQ8+c0pcOtXGbAZJg==",
+ "dependencies": {
+ "assert": "^2.0.0",
+ "browser-resolve": "^2.0.0",
+ "browserify-zlib": "^0.2.0",
+ "buffer": "^5.7.1",
+ "console-browserify": "^1.1.0",
+ "constants-browserify": "^1.0.0",
+ "create-require": "^1.1.1",
+ "crypto-browserify": "^3.11.0",
+ "domain-browser": "^4.22.0",
+ "events": "^3.0.0",
+ "https-browserify": "^1.0.0",
+ "isomorphic-timers-promises": "^1.0.1",
+ "os-browserify": "^0.3.0",
+ "path-browserify": "^1.0.1",
+ "pkg-dir": "^5.0.0",
+ "process": "^0.11.10",
+ "punycode": "^1.4.1",
+ "querystring-es3": "^0.2.1",
+ "readable-stream": "^3.6.0",
+ "stream-browserify": "^3.0.0",
+ "stream-http": "^3.2.0",
+ "string_decoder": "^1.0.0",
+ "timers-browserify": "^2.0.4",
+ "tty-browserify": "0.0.1",
+ "url": "^0.11.0",
+ "util": "^0.12.4",
+ "vm-browserify": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/node-stdlib-browser/node_modules/punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ=="
+ },
"node_modules/noms": {
"version": "0.0.0",
"resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz",
@@ -6083,6 +6845,46 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/object-is": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz",
+ "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object.assign": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz",
+ "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==",
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/on-finished": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
@@ -6119,11 +6921,15 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/os-browserify": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
+ "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A=="
+ },
"node_modules/p-limit": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
"integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dev": true,
"dependencies": {
"yocto-queue": "^0.1.0"
},
@@ -6138,7 +6944,6 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
"integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "dev": true,
"dependencies": {
"p-limit": "^3.0.2"
},
@@ -6166,6 +6971,18 @@
"node": ">=6"
}
},
+ "node_modules/parse-asn1": {
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz",
+ "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==",
+ "dependencies": {
+ "asn1.js": "^5.2.0",
+ "browserify-aes": "^1.0.0",
+ "evp_bytestokey": "^1.0.0",
+ "pbkdf2": "^3.0.3",
+ "safe-buffer": "^5.1.1"
+ }
+ },
"node_modules/parseurl": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
@@ -6183,7 +7000,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true,
"engines": {
"node": ">=8"
}
@@ -6192,7 +7008,6 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
- "devOptional": true,
"engines": {
"node": ">=0.10.0"
}
@@ -6209,8 +7024,7 @@
"node_modules/path-parse": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
},
"node_modules/path-scurry": {
"version": "1.10.1",
@@ -6246,7 +7060,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
"integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
- "dev": true,
"engines": {
"node": ">=8"
}
@@ -6260,6 +7073,21 @@
"node": ">=8"
}
},
+ "node_modules/pbkdf2": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz",
+ "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==",
+ "dependencies": {
+ "create-hash": "^1.1.2",
+ "create-hmac": "^1.1.4",
+ "ripemd160": "^2.0.1",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ },
+ "engines": {
+ "node": ">=0.12"
+ }
+ },
"node_modules/pdf-lib": {
"version": "1.17.1",
"resolved": "https://registry.npmjs.org/pdf-lib/-/pdf-lib-1.17.1.tgz",
@@ -6297,7 +7125,6 @@
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dev": true,
"engines": {
"node": ">=8.6"
},
@@ -6305,6 +7132,17 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
+ "node_modules/pkg-dir": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz",
+ "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==",
+ "dependencies": {
+ "find-up": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/pkgroll": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/pkgroll/-/pkgroll-2.0.1.tgz",
@@ -6376,6 +7214,14 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/process": {
+ "version": "0.11.10",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
+ "engines": {
+ "node": ">= 0.6.0"
+ }
+ },
"node_modules/process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
@@ -6415,6 +7261,24 @@
"node": ">= 0.10"
}
},
+ "node_modules/public-encrypt": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
+ "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
+ "dependencies": {
+ "bn.js": "^4.1.0",
+ "browserify-rsa": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "parse-asn1": "^5.0.0",
+ "randombytes": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "node_modules/public-encrypt/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
"node_modules/punycode": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
@@ -6438,11 +7302,18 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/querystring-es3": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
+ "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==",
+ "engines": {
+ "node": ">=0.4.x"
+ }
+ },
"node_modules/queue-microtask": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
"integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "dev": true,
"funding": [
{
"type": "github",
@@ -6463,6 +7334,23 @@
"resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz",
"integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag=="
},
+ "node_modules/randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "dependencies": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "node_modules/randomfill": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
+ "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
+ "dependencies": {
+ "randombytes": "^2.0.5",
+ "safe-buffer": "^5.1.0"
+ }
+ },
"node_modules/range-parser": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
@@ -6705,7 +7593,6 @@
"version": "1.22.8",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
"integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
- "dev": true,
"dependencies": {
"is-core-module": "^2.13.0",
"path-parse": "^1.0.7",
@@ -6731,7 +7618,6 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
"integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
- "dev": true,
"engines": {
"iojs": ">=1.0.0",
"node": ">=0.10.0"
@@ -6777,6 +7663,15 @@
"url": "https://github.com/sponsors/isaacs"
}
},
+ "node_modules/ripemd160": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
+ "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
+ "dependencies": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1"
+ }
+ },
"node_modules/robust-orientation": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/robust-orientation/-/robust-orientation-1.2.1.tgz",
@@ -6830,11 +7725,82 @@
"fsevents": "~2.3.2"
}
},
+ "node_modules/rollup-plugin-copy": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-copy/-/rollup-plugin-copy-3.5.0.tgz",
+ "integrity": "sha512-wI8D5dvYovRMx/YYKtUNt3Yxaw4ORC9xo6Gt9t22kveWz1enG9QrhVlagzwrxSC455xD1dHMKhIJkbsQ7d48BA==",
+ "dependencies": {
+ "@types/fs-extra": "^8.0.1",
+ "colorette": "^1.1.0",
+ "fs-extra": "^8.1.0",
+ "globby": "10.0.1",
+ "is-plain-object": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8.3"
+ }
+ },
+ "node_modules/rollup-plugin-copy/node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/rollup-plugin-copy/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/rollup-plugin-copy/node_modules/globby": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz",
+ "integrity": "sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==",
+ "dependencies": {
+ "@types/glob": "^7.1.1",
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.0.3",
+ "glob": "^7.1.3",
+ "ignore": "^5.1.1",
+ "merge2": "^1.2.3",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/rollup-plugin-copy/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/run-parallel": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
"integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "dev": true,
"funding": [
{
"type": "github",
@@ -7002,11 +7968,28 @@
"node": ">= 0.4"
}
},
+ "node_modules/setimmediate": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+ "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="
+ },
"node_modules/setprototypeof": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
},
+ "node_modules/sha.js": {
+ "version": "2.4.11",
+ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+ "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ },
+ "bin": {
+ "sha.js": "bin.js"
+ }
+ },
"node_modules/shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -7091,7 +8074,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
"integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true,
"engines": {
"node": ">=8"
}
@@ -7137,6 +8119,26 @@
"node": ">= 0.8"
}
},
+ "node_modules/stream-browserify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz",
+ "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==",
+ "dependencies": {
+ "inherits": "~2.0.4",
+ "readable-stream": "^3.5.0"
+ }
+ },
+ "node_modules/stream-http": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz",
+ "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==",
+ "dependencies": {
+ "builtin-status-codes": "^3.0.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.6.0",
+ "xtend": "^4.0.2"
+ }
+ },
"node_modules/streamsearch": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
@@ -7275,7 +8277,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "dev": true,
"engines": {
"node": ">= 0.4"
},
@@ -7381,6 +8382,17 @@
"resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz",
"integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug=="
},
+ "node_modules/timers-browserify": {
+ "version": "2.0.12",
+ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz",
+ "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==",
+ "dependencies": {
+ "setimmediate": "^1.0.4"
+ },
+ "engines": {
+ "node": ">=0.6.0"
+ }
+ },
"node_modules/to-fast-properties": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
@@ -7394,7 +8406,6 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
"dependencies": {
"is-number": "^7.0.0"
},
@@ -7607,6 +8618,11 @@
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
"integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
},
+ "node_modules/tty-browserify": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz",
+ "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw=="
+ },
"node_modules/two-product": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/two-product/-/two-product-1.0.2.tgz",
@@ -7690,6 +8706,14 @@
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
"integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="
},
+ "node_modules/universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
"node_modules/unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
@@ -7746,6 +8770,46 @@
"punycode": "^2.1.0"
}
},
+ "node_modules/url": {
+ "version": "0.11.3",
+ "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz",
+ "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==",
+ "dependencies": {
+ "punycode": "^1.4.1",
+ "qs": "^6.11.2"
+ }
+ },
+ "node_modules/url/node_modules/punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ=="
+ },
+ "node_modules/url/node_modules/qs": {
+ "version": "6.11.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz",
+ "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==",
+ "dependencies": {
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/util": {
+ "version": "0.12.5",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
+ "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "is-arguments": "^1.0.4",
+ "is-generator-function": "^1.0.7",
+ "is-typed-array": "^1.1.3",
+ "which-typed-array": "^1.1.2"
+ }
+ },
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
@@ -7839,6 +8903,21 @@
}
}
},
+ "node_modules/vite-plugin-node-polyfills": {
+ "version": "0.19.0",
+ "resolved": "https://registry.npmjs.org/vite-plugin-node-polyfills/-/vite-plugin-node-polyfills-0.19.0.tgz",
+ "integrity": "sha512-AhdVxAmVnd1doUlIRGUGV6ZRPfB9BvIwDF10oCOmL742IsvsFIAV4tSMxSfu5e0Px0QeJLgWVOSbtHIvblzqMw==",
+ "dependencies": {
+ "@rollup/plugin-inject": "^5.0.5",
+ "node-stdlib-browser": "^1.2.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/davidmyersdev"
+ },
+ "peerDependencies": {
+ "vite": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0"
+ }
+ },
"node_modules/vite-plugin-top-level-await": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/vite-plugin-top-level-await/-/vite-plugin-top-level-await-1.4.1.tgz",
@@ -7852,6 +8931,11 @@
"vite": ">=2.8"
}
},
+ "node_modules/vm-browserify": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
+ "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ=="
+ },
"node_modules/void-elements": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz",
@@ -7917,6 +9001,24 @@
"node": ">= 8"
}
},
+ "node_modules/which-typed-array": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz",
+ "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==",
+ "dependencies": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.4",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/wide-align": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
@@ -8095,7 +9197,6 @@
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
"integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
- "dev": true,
"engines": {
"node": ">=10"
},
@@ -8122,6 +9223,9 @@
"license": "ISC",
"dependencies": {
"@esbuild/win32-x64": "^0.19.10",
+ "@rollup/plugin-alias": "^5.1.0",
+ "@rollup/plugin-commonjs": "^25.0.7",
+ "@rollup/plugin-json": "^6.1.0",
"@types/archiver": "^6.0.1",
"@types/express": "^4.17.21",
"@types/multer": "^1.4.10",
@@ -8133,12 +9237,18 @@
"jsqr": "^1.4.0",
"multer": "^1.4.5-lts.1",
"pdf-lib": "^1.17.1",
- "tsconfig-paths": "^4.2.0"
+ "rollup-plugin-copy": "^3.5.0",
+ "tsconfig-paths": "^4.2.0",
+ "vite-plugin-node-polyfills": "^0.19.0",
+ "vite-plugin-top-level-await": "^1.4.1"
},
"devDependencies": {
+ "@rollup/plugin-run": "^3.0.2",
+ "@rollup/plugin-typescript": "^11.1.6",
"copyfiles": "^2.4.1",
"pkgroll": "^2.0.1",
"rimraf": "^5.0.5",
+ "rollup": "^4.9.6",
"ts-node-dev": "^2.0.0",
"typescript": "^5.2.2"
},
@@ -8154,6 +9264,38 @@
"@types/readdir-glob": "*"
}
},
+ "server-node/node_modules/rollup": {
+ "version": "4.9.6",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.6.tgz",
+ "integrity": "sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==",
+ "dev": true,
+ "dependencies": {
+ "@types/estree": "1.0.5"
+ },
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=18.0.0",
+ "npm": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "@rollup/rollup-android-arm-eabi": "4.9.6",
+ "@rollup/rollup-android-arm64": "4.9.6",
+ "@rollup/rollup-darwin-arm64": "4.9.6",
+ "@rollup/rollup-darwin-x64": "4.9.6",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.9.6",
+ "@rollup/rollup-linux-arm64-gnu": "4.9.6",
+ "@rollup/rollup-linux-arm64-musl": "4.9.6",
+ "@rollup/rollup-linux-riscv64-gnu": "4.9.6",
+ "@rollup/rollup-linux-x64-gnu": "4.9.6",
+ "@rollup/rollup-linux-x64-musl": "4.9.6",
+ "@rollup/rollup-win32-arm64-msvc": "4.9.6",
+ "@rollup/rollup-win32-ia32-msvc": "4.9.6",
+ "@rollup/rollup-win32-x64-msvc": "4.9.6",
+ "fsevents": "~2.3.2"
+ }
+ },
"shared-operations": {
"name": "@stirling-pdf/shared-operations",
"version": "0.0.0",
diff --git a/server-node/package.json b/server-node/package.json
index dd862aa1c..554d002a2 100644
--- a/server-node/package.json
+++ b/server-node/package.json
@@ -5,45 +5,48 @@
"type": "module",
"exports": "./dist/index.js",
"imports": {
- "#pdfcpu": "../../shared-operations/src/wasm/pdfcpu/pdfcpu-wrapper.server.js"
+ "#pdfcpu": "@stirling-pdf/shared-operations/src/wasm/pdfcpu/pdfcpu-wrapper.server.js"
},
"optionalDependencies": {
- "canvas": "^2.11.2"
+ "canvas": "^2.11.2"
},
"scripts": {
- "dev": "npx tsx watch src/index.ts",
- "build": "npm run prebuild && pkgroll && npm run postbuild",
- "start": "node ./dist/index.js",
-
- "prebuild": "rimraf ./dist",
- "postbuild": "npm run copy-locales && npm run copy-pdfcpu",
- "copy-locales": "copyfiles -u 3 ../shared-operations/src/locales/**/*.json dist",
- "copy-pdfcpu": "copyfiles -u 5 ../shared-operations/src/wasm/pdfcpu/pdfcpu.wasm dist"
+ "dev": "rollup -c -w",
+ "build": "rollup -c --forceExit",
+ "start": "node ./dist/bundle.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
- "@esbuild/win32-x64": "^0.19.10",
- "@types/archiver": "^6.0.1",
- "@types/express": "^4.17.21",
- "@types/multer": "^1.4.10",
- "@wasmer/wasmfs": "^0.12.0",
- "archiver": "^6.0.1",
- "express": "^4.18.2",
- "express-fileupload": "^1.4.2",
- "joi": "^17.11.0",
- "jsqr": "^1.4.0",
- "multer": "^1.4.5-lts.1",
- "pdf-lib": "^1.17.1",
- "tsconfig-paths": "^4.2.0"
+ "@esbuild/win32-x64": "^0.19.10",
+ "@rollup/plugin-alias": "^5.1.0",
+ "@rollup/plugin-commonjs": "^25.0.7",
+ "@rollup/plugin-json": "^6.1.0",
+ "@types/archiver": "^6.0.1",
+ "@types/express": "^4.17.21",
+ "@types/multer": "^1.4.10",
+ "@wasmer/wasmfs": "^0.12.0",
+ "archiver": "^6.0.1",
+ "express": "^4.18.2",
+ "express-fileupload": "^1.4.2",
+ "joi": "^17.11.0",
+ "jsqr": "^1.4.0",
+ "multer": "^1.4.5-lts.1",
+ "pdf-lib": "^1.17.1",
+ "rollup-plugin-copy": "^3.5.0",
+ "tsconfig-paths": "^4.2.0",
+ "vite-plugin-node-polyfills": "^0.19.0",
+ "vite-plugin-top-level-await": "^1.4.1"
},
"devDependencies": {
- "copyfiles": "^2.4.1",
- "pkgroll": "^2.0.1",
- "rimraf": "^5.0.5",
- "ts-node-dev": "^2.0.0",
- "typescript": "^5.2.2"
+ "@rollup/plugin-run": "^3.0.2",
+ "@rollup/plugin-typescript": "^11.1.6",
+ "copyfiles": "^2.4.1",
+ "pkgroll": "^2.0.1",
+ "rimraf": "^5.0.5",
+ "rollup": "^4.9.6",
+ "ts-node-dev": "^2.0.0",
+ "typescript": "^5.2.2"
}
- }
-
\ No newline at end of file
+}
diff --git a/server-node/rollup.config.js b/server-node/rollup.config.js
new file mode 100644
index 000000000..615b9a5d6
--- /dev/null
+++ b/server-node/rollup.config.js
@@ -0,0 +1,28 @@
+import run from "@rollup/plugin-run";
+import typescript from '@rollup/plugin-typescript';
+import json from '@rollup/plugin-json';
+import copy from 'rollup-plugin-copy'
+
+
+const isDev = process.env.NODE_ENV !== "production";
+
+export default {
+ input: "src/index.ts",
+ output: {
+ file: "dist/bundle.js",
+ format: "es",
+ },
+ watch: {
+ include: [ './src/**', '../shared-operations/src/**' ]
+ },
+ plugins: [
+ json(),
+ typescript(),
+ copy({
+ targets: [
+ { src: '../shared-operations/public', dest: 'dist' },
+ ]
+ }),
+ isDev && run()
+ ],
+};
\ No newline at end of file
diff --git a/server-node/src/index.ts b/server-node/src/index.ts
index cfd8928ec..0e1a85c85 100644
--- a/server-node/src/index.ts
+++ b/server-node/src/index.ts
@@ -14,5 +14,5 @@ app.listen(PORT, () => {
});
process.on('unhandledRejection', (reason, promise) => {
- console.error('Unhandled Rejection at:', promise, 'reason:', reason);
+ console.error('Unhandled Rejection at:', promise, 'reason:', reason);
});
diff --git a/server-node/tsconfig.json b/server-node/tsconfig.json
index 907983c38..c32ef5428 100644
--- a/server-node/tsconfig.json
+++ b/server-node/tsconfig.json
@@ -11,7 +11,7 @@
// "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */
/* Language and Environment */
- "target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
+ // "target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
// "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
// "jsx": "preserve", /* Specify what JSX code is generated. */
// "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */
@@ -26,11 +26,12 @@
/* Modules */
"module": "ES2020", /* Specify what module code is generated. */
- // "rootDir": "./", /* Specify the root folder within your source files. */
+ "rootDir": "../", /* Specify the root folder within your source files. */
"moduleResolution": "Node", /* Specify how TypeScript looks up a file from a given module specifier. */
"baseUrl": "./src", /* Specify the base directory to resolve non-relative module names. */
"paths": {
- "#pdfcpu": ["../../shared-operations/src/wasm/pdfcpu/pdfcpu-wrapper.server"],
+ "#pdfcpu": ["@stirling-pdf/shared-operations/src/wasm/pdfcpu/pdfcpu-wrapper.server"],
+ "@stirling-pdf/*": [ "../../*" ]
}, /* Specify a set of entries that re-map imports to additional lookup locations. */
// "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
// "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */
@@ -46,7 +47,7 @@
// "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */
/* JavaScript Support */
- // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */
+ "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */
// "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
// "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */
@@ -111,11 +112,12 @@
},
"include": [
"src",
- "declarations/*.d.ts"
-, "../shared-operations/src/wasm/pdfcpu/PdfcpuWrapper.d.ts" ],
+ "declarations/*.d.ts",
+ "../shared-operations/src/wasm/pdfcpu/PdfcpuWrapper.d.ts"
+ ],
"ts-node": {
"experimentalSpecifierResolution": "node",
"transpileOnly": true,
- "esm": true,
- },
+ "esm": true
+ }
}
diff --git a/shared-operations/package.json b/shared-operations/package.json
index 8e8f38c8c..ea4c3e36c 100644
--- a/shared-operations/package.json
+++ b/shared-operations/package.json
@@ -3,9 +3,6 @@
"version": "0.0.0",
"main": "index.ts",
"type": "module",
- "scripts": {
- "test": "echo \"Error: no test specified\" && exit 1"
- },
"imports": {
"#pdfcpu": "./src/wasm/pdfcpu/pdfcpu-wrapper.server.js"
},
diff --git a/shared-operations/src/locales/common/en.json b/shared-operations/public/locales/common/en.json
similarity index 100%
rename from shared-operations/src/locales/common/en.json
rename to shared-operations/public/locales/common/en.json
diff --git a/shared-operations/src/locales/impose/en.json b/shared-operations/public/locales/impose/en.json
similarity index 100%
rename from shared-operations/src/locales/impose/en.json
rename to shared-operations/public/locales/impose/en.json
diff --git a/shared-operations/src/wasm/pdfcpu/pdfcpu.wasm b/shared-operations/public/wasm/pdfcpu/pdfcpu.wasm
similarity index 100%
rename from shared-operations/src/wasm/pdfcpu/pdfcpu.wasm
rename to shared-operations/public/wasm/pdfcpu/pdfcpu.wasm
diff --git a/shared-operations/src/i18next.config.ts b/shared-operations/src/i18next.config.ts
index 4bd9a3de7..ef0f9a911 100644
--- a/shared-operations/src/i18next.config.ts
+++ b/shared-operations/src/i18next.config.ts
@@ -2,7 +2,9 @@ import i18next from "i18next";
import resourcesToBackend from "i18next-resources-to-backend";
i18next
- .use(resourcesToBackend((language, namespace) => import(`./locales/${namespace}/${language}.json`)))
+ .use(resourcesToBackend((language, namespace) => import(`./public/locales/${namespace}/${language}.json`, {
+ assert: { type: "json" },
+ })))
.init({
// debug: true,
ns: ["common"], // Preload this namespace, no need to add the others, they will load once their module is loaded
diff --git a/shared-operations/src/wasm/pdfcpu/pdfcpu-wrapper.server.js b/shared-operations/src/wasm/pdfcpu/pdfcpu-wrapper.server.js
index 8001daff9..e3539ae68 100644
--- a/shared-operations/src/wasm/pdfcpu/pdfcpu-wrapper.server.js
+++ b/shared-operations/src/wasm/pdfcpu/pdfcpu-wrapper.server.js
@@ -2,7 +2,7 @@ import { WasmFs } from '@wasmer/wasmfs';
import path from "path";
import { fileURLToPath } from 'url';
-let nodeWasmLocation = path.dirname(fileURLToPath(import.meta.url));
+let nodeWasmLocation = "./dist/public/wasm/pdfcpu/"; // TODO: Replace with __dirname
let fs;
const wasmfs = new WasmFs();
diff --git a/shared-operations/tsconfig.json b/shared-operations/tsconfig.json
index 34721fe9d..5ea10b16c 100644
--- a/shared-operations/tsconfig.json
+++ b/shared-operations/tsconfig.json
@@ -1,5 +1,6 @@
{
"compilerOptions": {
+ "module": "Node16",
"esModuleInterop": true,
"baseUrl": "./src", /* Specify the base directory to resolve non-relative module names. */
"paths": {