{"adoption": {"forks": 263, "observed_at": "2026-08-28T04:04:46.675094+00:00", "stars": 1454}, "canonical_url": "https://ross.abutalabs.com/products/common_utils", "card": {"archived": false, "artifact_type": "library", "description": "Dart common utils library. DateUtil, EncryptUtil, JsonUtil, LogUtil, MoneyUtil, NumUtil, ObjectUtil,  RegexUtil, TextUtil, TimelineUtil, TimerUtil. 包含日期，正则，倒计时，时间轴等工具类。", "domain": ["developer-tools", "cross-platform", "mobile-development"], "enriched": true, "function": ["date-time", "serialization", "logging", "cryptography", "math", "error-handling"], "health_score": 20, "homepage": null, "language": "Dart", "license": "BSD-2-Clause", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["Sky24n/common_utils"], "name": "Sky24n/common_utils", "platform": ["cross-platform"], "pushed_at": "2023-01-09T15:02:18+00:00", "repo": "Sky24n/common_utils", "stars": 1454, "tags": ["dart-package", "utility-classes", "date-formatting", "regex-validation", "money-conversion", "timer", "timeline", "flutter"], "topics": ["dateutil", "logutil", "timerutil", "regexutil", "textutil", "timelineutil", "moneyutil", "numutil", "objectutil", "endecodeutil", "dart", "flutter", "dart-package"], "urls": [], "use_cases": ["format and convert dates in Dart", "validate phone numbers, emails, and ID cards with regex", "convert yuan to fen precisely with money formatting", "perform precise decimal arithmetic without precision loss", "countdown timers and scheduled tasks", "md5 and base64 encode/decode strings", "check if strings, lists, or maps are empty", "format bank card numbers and hide phone digits"], "what_it_is": "A Dart utility library providing common helper classes such as DateUtil, EncryptUtil, JsonUtil, LogUtil, MoneyUtil, NumUtil, ObjectUtil, RegexUtil, TextUtil, TimelineUtil, and TimerUtil. It works in pure Dart projects and underpins the flustars library for Flutter-specific utilities.", "when_to_avoid": ["you need actively maintained utilities with recent updates", "you need Flutter-specific helpers like screen adaptation or shared preferences (use flustars instead)", "you prefer specialized libraries for encryption or date handling with richer APIs"], "when_to_choose": ["you need a broad set of small utility helpers in a Dart or Flutter project", "you want reliable date formatting, regex validation, or money conversion without writing it yourself", "you already use flustars and want its underlying utility package"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/common_utils", "repo": "Sky24n/common_utils", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.675094+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:35:41.297684+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bf5583ce547ac705be66ebced0ddb444406cf72814858bf48194c57e3f8c8d9e", "fetched_at": "2026-08-28T04:04:46.675094+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Sky24n/common_utils"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.675094+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:35:41.297684+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bf5583ce547ac705be66ebced0ddb444406cf72814858bf48194c57e3f8c8d9e", "fetched_at": "2026-08-28T04:04:46.675094+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Sky24n/common_utils"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:35:41.297684+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bf5583ce547ac705be66ebced0ddb444406cf72814858bf48194c57e3f8c8d9e", "fetched_at": "2026-08-28T04:04:46.675094+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Sky24n/common_utils"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.675094+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.675094+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.675094+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:35:41.297684+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bf5583ce547ac705be66ebced0ddb444406cf72814858bf48194c57e3f8c8d9e", "fetched_at": "2026-08-28T04:04:46.675094+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Sky24n/common_utils"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.675094+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.675094+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:35:41.297684+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bf5583ce547ac705be66ebced0ddb444406cf72814858bf48194c57e3f8c8d9e", "fetched_at": "2026-08-28T04:04:46.675094+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Sky24n/common_utils"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.675094+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.675094+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.675094+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:35:41.297684+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bf5583ce547ac705be66ebced0ddb444406cf72814858bf48194c57e3f8c8d9e", "fetched_at": "2026-08-28T04:04:46.675094+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Sky24n/common_utils"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.675094+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:46.675094+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:35:41.297684+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bf5583ce547ac705be66ebced0ddb444406cf72814858bf48194c57e3f8c8d9e", "fetched_at": "2026-08-28T04:04:46.675094+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Sky24n/common_utils"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:35:41.297684+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bf5583ce547ac705be66ebced0ddb444406cf72814858bf48194c57e3f8c8d9e", "fetched_at": "2026-08-28T04:04:46.675094+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Sky24n/common_utils"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:35:41.297684+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bf5583ce547ac705be66ebced0ddb444406cf72814858bf48194c57e3f8c8d9e", "fetched_at": "2026-08-28T04:04:46.675094+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Sky24n/common_utils"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:35:41.297684+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bf5583ce547ac705be66ebced0ddb444406cf72814858bf48194c57e3f8c8d9e", "fetched_at": "2026-08-28T04:04:46.675094+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Sky24n/common_utils"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2914, "days_push": 1332, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}