ForHosting KIT · أدوات المطورين

التحقق من توافق إصدار الحزمة مع نطاق SemVer

تعتمد ترقية الحزم غالبًا على سؤال يبدو بسيطًا: هل يقع إصدار دلالي محدد ضمن النطاق المكتوب في ملف تعريف أو قاعدة قفل أو سياسة إصدار أو مصفوفة توافق؟ تجيب هذه الأداة وفق ترتيب SemVer الحتمي.

● Betaمجاني · داخل متصفحك
استخدمها من الويبAPIالبريدTelegramالتطبيق قريبًا

وهي تفهم معاملات المقارنة، وشروط التقاطع المفصولة بمسافات، ونطاقات الشرطة، والمحارف الشاملة، والإصدارات الجزئية، والبدائل ذات الخطين العموديين. كما تمنح معرّفات الإصدار التمهيدي وبيانات البناء معناها الدلالي الصحيح، ولذلك تصلح النتيجة لأدوات إدارة الاعتماديات ولا تقتصر على مقارنة رقمية تقريبية.

أدخلوا الإصدار والنطاق المطلوب اختباره

أدخلوا إصدارًا دلاليًا كاملًا مثل <code>2.4.1</code> وتعبير نطاق. يجب أن تتحقق جميع المقارنات المفصولة بمسافات داخل المجموعة الواحدة؛ فالتعبير <code>&gt;=2.0.0 &lt;3.0.0</code> يقبل الإصدارات المستقرة من الإصدار الرئيسي الثاني. افصلوا المجموعات باستعمال <code>||</code> عندما يكفي تحقق أحد الفروع. ويعد الإصدار المطابق تمامًا نطاقًا صالحًا أيضًا. تعيد الأداة الإصدار بعد توحيد صيغته، والنطاق بعد حذف المسافات الخارجية، وقيمة منطقية، ورقم البديل المطابق بدءًا من واحد؛ ويعني الصفر عدم وجود تطابق. تتيح هذه البنية الصريحة إدراج النتيجة في حاجز نشر أو تقرير اعتماديات أو محرر ملفات تعريف أو اختبار من دون تحليل نص وصفي. تظل المدخلات سلاسل نصية لأن تحويل الإصدار كاملًا إلى عدد عشري سيجعل 1.10 يبدو أصغر من 1.9 وسيفقد معلومات الإصدار التمهيدي. تقبل الأداة حرف <code>v</code> في بداية الإصدار الكامل ثم تحذفه عند توحيد الصيغة. أما المكونات غير الصحيحة والبدائل الفارغة والمعرّفات غير الصالحة فتنتج خطأ إدخال محدد النوع بدل نتيجة سالبة غير موثوقة.

استخدموا المقارنات ونطاقات الشرطة والمحارف الشاملة بدقة

يمكن استخدام <code>&gt;</code> و<code>&gt;=</code> و<code>&lt;</code> و<code>&lt;=</code> و<code>=</code>. وتشكل المقارنات المتعددة داخل البديل الواحد تقاطعًا. يشمل التعبير <code>1.2.3 - 2.4.0</code> الحدين الكاملين، بينما يمتد الحد الأعلى الجزئي إلى نهاية عائلة مكوناته؛ لذلك يبدأ <code>1.2 - 2.4</code> من 1.2.0 وينتهي قبل 2.5.0. يمكن كتابة المحرف الشامل بصيغة <code>x</code> أو <code>X</code> أو <code>*</code>. وهكذا يغطي <code>3.x</code> الإصدارات المستقرة من 3.0.0 إلى ما قبل 4.0.0، ويعادل النطاق الجزئي <code>3.2</code> التعبير <code>3.2.x</code>. يجب أن تأتي المحارف الشاملة بعد المكونات المعروفة؛ لذا يرفض <code>1.x.4</code> لأنه لا يصف مجالًا متصلًا. ترفض هذه القدرة عمدًا اختصارات علامة القبعة والتلدة. عبّروا عن تلك الحدود بمقارنات صريحة كي تظل القاعدة المقيمة واضحة بلا التباس في السجلات والسياسات المولدة والفحوص الآلية والمراجعات البشرية.

افهموا ترتيب الأولوية والإصدارات التمهيدية وبيانات البناء

تقارن الإصدارات الدلالية مكونًا بعد آخر، لا بحسب الترتيب الأبجدي. تحسم أرقام الإصدار الرئيسي والفرعي والتصحيح النتيجة أولًا. يسبق الإصدار التمهيدي الإصدار المستقر المقابل، وتقارن معرّفاته المفصولة بنقاط من اليسار إلى اليمين: تقارن المعرّفات الرقمية كأرقام، وتسبق المعرّفات غير الرقمية، ويسبق التسلسل الأقصر عند تساوي بدايتهما. تبقى بيانات البناء بعد <code>+</code> في الناتج موحد الصيغة، لكنها لا تغير الأولوية مطلقًا وفق SemVer. تمنع مديرات الاعتماديات أيضًا اختيار الإصدارات التمهيدية مصادفة. تتبع الأداة هذه القاعدة: لا يحقق الإصدار التمهيدي مجموعة مقارنة إلا إذا تضمنت المجموعة نفسها مقارنة بإصدار تمهيدي له أرقام الإصدار الرئيسي والفرعي والتصحيح ذاتها. فمثلًا يمكن أن يحقق <code>2.0.0-beta.2</code> النطاق <code>&gt;=2.0.0-beta.1 &lt;2.0.0</code>، لكنه لا يدخل نطاقًا شاملًا واسعًا لمجرد تطابق أرقامه الأساسية. كل عملية تقييم محلية وحتمية؛ فلا يجري استعلام أي سجل أو تنزيل أي حزمة أو تخمين أحدث إصدار، وتعيد السلاسل نفسها القرار نفسه دائمًا.

التحقق من إصدارات الاعتماديات المرشحة

قارنوا إصدار الحزمة المقترح بالنطاق المعلن في المشروع المستهلك قبل تغيير ملف القفل.

حماية مسار إصدار البرمجيات

اسمحوا بعناصر النشر أو ارفضوها وفق نافذة توافق صريحة محفوظة في سياسة الإصدار.

تفسير سلوك ملف التعريف

اختبروا الحدود والمحارف الشاملة والبدائل والإصدارات التمهيدية لمعرفة سبب قبول المحلل إصدارًا أو تجاوزه.

ما تكلفة عملية تحقق واحدة عبر API؟

تكلف كل طلبية $0.002. ويمكن تشغيل أداة التحقق الحتمية نفسها مباشرة داخل المتصفح أيضًا.

هل يمكن أن يحتوي النطاق على عدة شروط؟

نعم. افصلوا شروط التقاطع بمسافات، وبدائل الاختيار بالرمز ||.

هل يشمل نطاق الشرطة حديه؟

يشمل الحدين عندما يكونان كاملين. أما الحد الأعلى الجزئي فيتوسع إلى حد حصري أعلى من عائلة مكوناته.

هل تؤثر بيانات البناء في النتيجة؟

لا. تبقى في الإصدار موحد الصيغة، لكنها تهمل عند حساب ترتيب SemVer.

لماذا لا يحقق إصدار تمهيدي نطاقًا واسعًا؟

لا يصبح مؤهلًا إلا إذا ذكرت المجموعة صراحة إصدارًا تمهيديًا له أرقام الإصدار الرئيسي والفرعي والتصحيح نفسها.

هل تدعم الأداة نطاقات علامة القبعة والتلدة؟

لا. استخدموا المقارنات الصريحة أو نطاقات الشرطة أو المحارف الشاملة أو الإصدارات الجزئية أو بدائل ||.

كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.

POSThttps://api.kit.forhosting.com/dev/semver-satisfies

صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.

curl -X POST https://api.kit.forhosting.com/dev/semver-satisfies \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"version":"2.4.1","range":">=2.0.0 <3.0.0"}'
{
  "version": "2.4.1",
  "range": ">=2.0.0 <3.0.0"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.semver_satisfies",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.

لكل طلب$0.002

السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.

HTTPالرمزالمعنى
401unauthorizedمفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك.
402insufficient_balanceرصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة.
404unknown_typeنوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب.
429rate_limitedتجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة.

اطّلع على توثيق KIT الكامل ←