バージョンが SemVer 範囲を満たすか確認
バージョンが範囲に収まるかを一度で確認できます。1.5.2 は >=1.0.0 <2.0.0 を満たしますが、1.5.0-beta.1 は満たしません。広い範囲に不安定な版がうっかり入り込むことはありません。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
パッケージマネージャーを導入したり文字列比較に頼ったりせず、パッケージのバージョンがセマンティックバージョン範囲に適合するかを確認できます。この機能は厳密な Semantic Versioning 2.0.0 のバージョンを検証し、指定された制約を解析して、真偽値を直接返します。完全一致、不等号比較、caret と tilde の互換範囲、空白で区切る積集合、二重縦線による選択肢に対応しています。不正なバージョンや範囲式は入力エラーとなるため、リリースツール、依存関係監査、デプロイ方針、対話的な問題調査に安心してご利用いただけます。
互換性方針に合う範囲の書式をお選びください
範囲は単にバージョン表記に似た文字列ではなく、ソフトウェアが実際に受け入れられるリリースを示す必要があります。まず 1.4.7 のような完全なセマンティックバージョンを入力し、対応する制約形式をお選びください。1.4.7 のような完全一致範囲は、SemVer の優先順位が同じバージョンだけを受け入れます。
>=1.0.0、<2.0.0、<=3.5.1 などの比較演算子では明示的な境界を設定できます。>=1.0.0 <2.0.0 のように各項を空白で区切ると、すべての条件を満たす必要があります。^1.8.0 || ^2.2.0 のように二重縦線を使うと、複数の選択肢を許可できます。
ビルドメタデータは SemVer に従って検証されますが、優先順位には影響しません。入力には major、minor、patch の各番号が必要であり、省略形や曖昧な形式は推測せず拒否します。返される satisfies は条件式で直接使える真偽値です。
また、応答には入力したバージョンと範囲も含まれるため、ログや画面で評価対象の方針を正確に確認できます。
caret、tilde、プレリリースの動作をご確認ください
caret と tilde の範囲は、よく使われる二つの互換性方針を表します。caret 範囲は通常、左端にあるゼロ以外の要素を変えない更新を許可します。そのため ^1.2.3 は 1.2.3 以上 2.0.0 未満を受け入れます。
major がゼロの場合は範囲が狭くなり、^0.2.3 は 0.3.0 未満、^0.0.3 は 0.0.4 未満です。tilde 範囲は指定した minor 系列内の patch 更新を許可するため、~1.2.3 は 1.2.3 以上 1.3.0 未満となります。
一般的な広い範囲が不安定なビルドを誤って許可しないよう、プレリリースには特別な規則があります。プレリリース版が比較条件一式を満たすには、同じ major、minor、patch を持つプレリリース比較対象がその条件内に必要です。
たとえば 2.0.0-beta.2 は >=2.0.0-beta.1 <2.0.0 を満たせますが、1.5.0-beta.1 は >=1.0.0 <2.0.0 を満たしません。これは一般的なパッケージマネージャーの安全な動作に沿いながら、プレリリース識別子間の厳密な SemVer 優先順位を保ちます。
リリースと依存関係の処理で決定的な確認をご活用ください
バージョン方針を再現可能な判断に変える必要がある場面で、この確認機能が役立ちます。継続的インテグレーションでは、テスト開始前にランタイムのバージョンがパッケージ要件を満たすか確認できます。デプロイサービスでは、承認済みのリリース系列から外れる成果物を拒否できます。
依存関係の台帳では記録済みバージョンを移行目標と照合でき、サポート担当者は議論になった互換性結果をブラウザーで再現できます。実装はネットワーク通信、時刻の参照、乱数生成を行わないため、同じ入力からは常に同じ出力が得られます。数値要素は JavaScript の数値へ変換せず数字列として比較し、安全な整数の上限を超えても正しい結果を維持します。
活用例
ランタイム要件を適用します
ビルドやデプロイを続ける前に、検出されたランタイムまたはツールのバージョンを対応範囲と照合できます。
パッケージ互換性を監査します
パッケージマネージャーを実行せず、導入済み依存関係のバージョンを宣言された互換性方針と照合できます。
リリース選択を調査します
caret、tilde、比較演算子、プレリリースに関する判断を、明確な真偽値で再現できます。
よくある質問
どの範囲演算子に対応していますか?
完全一致、<、<=、>、>=、=、caret、tilde、空白区切りの AND 条件、二重縦線による OR 選択肢に対応しています。
ビルドメタデータは結果に影響しますか?
影響しません。 検証は行いますが、SemVer ではバージョンの優先順位から除外されます。
広い範囲でもプレリリースが不一致になるのはなぜですか?
同じ major、minor、patch を持つプレリリース比較対象が条件一式に含まれる場合だけ、プレリリース版を許可するためです。
省略版やワイルドカード範囲を使用できますか?
使用できません。 バージョンには major、minor、patch が必要で、未対応の省略形式やワイルドカード形式は入力エラーになります。
^1.2.3 のようなキャレット範囲はどこまで含みますか?
1.2.3から、2.0.0の手前までです。メジャー番号が0なら範囲は狭くなり、^0.2.3 は0.3.0の手前、^0.0.3 は0.0.4の手前で止まります。~1.2.3 のようなチルダ範囲は1.3.0の手前までです。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/dev2/package-version-range-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"version":"1.5.2","range":">=1.0.0 <2.0.0"}'const res = await fetch("https://api.kit.forhosting.com/dev2/package-version-range-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"version": "1.5.2",
"range": ">=1.0.0 <2.0.0"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev2/package-version-range-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"version": "1.5.2",
"range": ">=1.0.0 <2.0.0"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev2/package-version-range-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"version":"1.5.2","range":">=1.0.0 <2.0.0"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"version":"1.5.2","range":">=1.0.0 <2.0.0"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev2/package-version-range-check", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"version": "1.5.2",
"range": ">=1.0.0 <2.0.0"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev2.package_version_range_check",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_chars_per_input | 2048 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
リリースと依存関係の処理で決定的な確認をご活用ください
不正な範囲構文は false ではなく invalid_input エラーになります。この違いは重要です。 false は有効な方針がバージョンを拒否したことを示し、エラーは方針自体の修正が必要であることを示します。簡単な確認には対話型実行画面を、判断を自動化へ組み込む場合は $0.002 の API をご利用ください。
技術的な質問
範囲の形式が不正な場合はどうなりますか?
不正な方針を一致しない有効範囲として扱わず、invalid_input エラーを返します。