string.is هي مجموعة أدوات مفتوحة المصدر وصديقة للخصوصية للمطورين. يمكنك رؤيته في العمل هنا.

String.is هي أداة تحويل رأي ، مع الأهداف التالية:
تم تأكيد String.is للعمل على Chrome و Safari و Firefox و Edge. لا يتم دعم Internet Explorer.
تثبيت التبعيات:
yarn installقم بإعداد السنانير git:
yarn husky installقم بتشغيل خادم التطوير:
yarn dev... ثم افتح http: // localhost: 3000 في متصفحك.
لتشغيل جميع اختبارات الطبقة ، والتحقق من الاختبارات ، والاختبارات ، والبناء للإنتاج:
yarn allبناء صورة Docker:
yarn docker-buildأو
docker build -t string-is .... ثم قم بتشغيله:
yarn docker-runأو
docker run -p 3000:3000 string-is بدلاً من ذلك ، يمكنك بناء وتشغيله باستخدام docker-compose :
docker-compose up... أو حتى تشغيله مباشرة من Docker Hub:
docker run -p 3000:3000 daveperrett/string-is:latest حاليًا يتم دعم منصات linux/arm64 و linux/amd64 .
يحتوي مجلد src/lib على معظم منطق التحويل ، وهو نوع من النقيات ، مع عدم وجود معرفة رد فعل مطلوبة.
src/lib/identities على معرفات تأخذ سلسلة إدخال وتُرجع مستوى الثقة الذي يكون فيه الإدخال بتنسيق معين. على سبيل المثال ، تُرجع JwtIdentifier رقمًا يشير إلى مستوى الثقة (بين 0 و 100) بأن سلسلة إدخال معينة هي رمز JWT.src/lib/inputs على محلات تحميل سلاسل من تنسيقات مختلفة. على سبيل المثال ، تقوم JsonInput بتوزيع سلسلة JSON وتُرجع كائنًا.src/lib/outputs البيانات المحلية وتنسيقها في تنسيق إخراج محدد. على سبيل المثال ، يأخذ JavaScriptOutput سلسلة JavaScript ، وتنسيقها وفقًا لخيارات التنسيق المقدمة ، وتُرجع النتيجة.src/lib/converters هي إدخال → أزواج الإخراج - الغراء الذي يؤدي التحويل بين التنسيقات. على سبيل المثال ، يأخذ CsvToJsonConverter سلسلة CSV كمدخلات ، وتغذيها في CsvInput لتحليلها ، والأنابيب النتيجة في JsonOutput للتنسيق.لإضافة محول جديد:
identity (تحت SRC/LIB/الهويات) للتنسيق من . في هذه الحالة ، نقوم بتحويل من نص عادي ، ولدينا بالفعل أمر واضح ، لذلك لا نحتاج إلى إضافة هوية جديدة. يجب أن تصدر identity (أ) دالة confidence التي ، بالنظر إلى سلسلة إدخال ، تُرجع رقمًا من 100 يصف الثقة بأن المدخلات المعطاة تتوافق مع الهوية ، و (ب) مجموعة من converters التي يمكن استخدام الهوية معها.identity جديدة في الخطوة (2) ، فتأكد من تصديرها في SRC/LIB/الهويات/الفهرس.output (تحت SRC/LIB/المخرجات) للتنسيق إلى . يجب أن يقوم الإخراج بتصدير وظيفة output والتي ، بالنظر إلى سلسلة إدخال (أو ربما كائن ، اعتمادًا على التحويل الذي يحدث) وكائن options ، سيقوم بتحويل الإدخال إلى سلسلة الإخراج المطلوبة.output جديدًا في الخطوة (4) ، فتأكد من تصديره في SRC/LIB/Outss/INDEX.TS.converter جديدًا (تحت SRC/LIB/Converters) لزوج input + output . يجب على المحول تصدير (أ) وظيفة operation التي تمرر سلسلة الإدخال وكائن options إلى output المناسب ، و (ب) outputId ، والذي يحدد الإخراج المستخدم.converter جديد في الخطوة (6) ، فتأكد من تصديره في SRC/LIB/Converters/Index.ts. تأكد أيضًا من إضافة إدخالات إلى الأماكن/en/pages-converter.json] بحيث يكون للصفحة المقصودة التي تم إنشاؤها تلقائيًا العنوان الصحيح والنص المقدمة والمثال.outputId جديد في الخطوة (6) ، فأضف مكون الإخراج React (تحت SRC/المكونات/المجال/التحويل/المخرجات) لتقديم النوع الجديد من الإخراج. إذا كنت تقوم بإعادة استخدام نوع إخراج موجود (على سبيل المثال ، التحويل إلى JSON أو YAML) ، فيمكنك إعادة استخدام مكون الإخراج الموجود هنا. إذا كانت inputs outputs converters ومكونات التفاعل المناسبة في مكانها وتصديرها بشكل صحيح ، فيجب أن تكون قادرًا على استخدام المحول الجديد الخاص بك ، بالنظر إلى سلسلة الإدخال المناسبة التي تؤدي إلى confidence غير صفرية.
إذا كنت تريد أن تكون واثقًا بنسبة 100 ٪ من أن خصوصيتك محمية ، فيمكنك بسهولة إعداد سلسلة. مثيل لاستخدامك الشخصي أو التنظيمي.
أسرع طريقة لنشر String.is هي استخدام منصة Vercel (إنها مجانية للاستخدام غير التجاري). تحقق من وثائق نشر NEXT.JS لمزيد من التفاصيل. انقر فوق الزر Deploy أدناه لنشر هذا التطبيق باستخدام Vercel:
يعد NetLify و Heroku أيضًا خيارات جيدة للاستضافة المجانية. انقر فوق الزر Deploy أدناه لنشر هذا التطبيق باستخدام Heroku:
لسوء الحظ ، لا يدعم string.is حاليًا عمليات البناء الثابت عبر next export (والتي ستسمح بالاستضافة على مثل S3) ، لأن ميزة i18n التي يستخدمها غير مدعومة حاليًا للبناء الثابتة.
قم بتعيين متغير بيئة NEXT_PUBLIC_BASE_PATH على المسار الفرعي ، ثم قم بإنشاء المشروع قبل النشر. يجب تعيين هذه القيمة في وقت الإنشاء ولا يمكن تغييرها دون إعادة بناء لأن القيمة مضمّنة في حزم من جانب العميل.
على سبيل المثال ، إذا كنت تنشر على https://tools.example.com/string-is ، فستحتاج إلى تعيين NEXT_PUBLIC_BASE_PATH إلى /string-is . لا تحتاج إلى تعيين هذا المتغير إذا كنت تنشر في جذر المجال.
بناء وتشغيل مع Docker:
docker build -t string-is --build-arg NEXT_PUBLIC_BASE_PATH= " /string-is " .
docker run -p 3000:3000 string-is أو بناء وتشغيل مع docker-compose :
export NEXT_PUBLIC_BASE_PATH= " /string-is "
docker-compose up --build String.is يدعم التوطين الكامل. يجب إضافة لغات جديدة تحت locales/ المجلد بتنسيق JSON (انظر locales/en/ على سبيل المثال). تعد اللغة الإنجليزية هي المكان الوحيد المقدم ، لكن دعم اللغات الجديدة مرحب به.
يتضمن String.is دعمًا للتحليلات المعقولة ، وهي خدمة تحليلات ملائمة للخصوصية ، وأقل ملفات تعريف الارتباط. لتمكينه ، قم بتعيين متغير بيئي يحدد المجال:
NEXT_PUBLIC_ANALYTICS_DOMAIN=string.is
يتم تعطيل Analytics افتراضيًا ما لم يتم تعيين process.env.NODE_ENV === 'production' ومجال NEXT_PUBLIC_ANALYTICS_DOMAIN .
بمجرد إجراء تغييراتك:
git checkout -b feature/add-my-new-convertergit push origin feature/add-my-new-converterdavemetrics
انظر الترخيص للحصول على التفاصيل.