{
  "_id": "6adf5f5993f02b9aed978f7b",
  "Package": "sicher",
  "Type": "Package",
  "Title": "Runtime Type Checking",
  "Version": "0.3.0",
  "Authors@R": "person(given = c(\"Mohamed\", \"El\", \"Fodil\"),\nfamily = \"Ihaddaden\",\nrole = c(\"aut\", \"cre\"),\nemail = \"ihaddaden.fodeil@gmail.com\")",
  "Description": "Provides a lightweight runtime type system for 'R' that\nenables developers to declare and enforce variable types during\nexecution. Inspired by 'TypeScript', the package introduces\nintuitive syntax for annotating variables and validating data\nstructures, helping catch type-related errors early and making\n'R' code more robust and easier to maintain.",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "URL": "https://github.com/feddelegrand7/sicher",
  "BugReports": "https://github.com/feddelegrand7/sicher/issues",
  "RoxygenNote": "7.3.2",
  "Repository": "https://feddelegrand7.r-universe.dev",
  "Date/Publication": "2026-10-26 13:23:36 UTC",
  "RemoteUrl": "https://github.com/feddelegrand7/sicher",
  "RemoteRef": "HEAD",
  "RemoteSha": "1aa7fc857badf2ce3dbb52aaadf4c9cf152e06bd",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-26 13:46:22 UTC",
    "User": "root"
  },
  "Author": "Mohamed El Fodil Ihaddaden [aut, cre]",
  "Maintainer": "Mohamed El Fodil Ihaddaden <ihaddaden.fodeil@gmail.com>",
  "_user": "feddelegrand7",
  "_type": "src",
  "_file": "sicher_0.3.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/637857cf481e26bd8b569bd744cd71e74efd341ce2a8fa9812667ffa68a211b5",
  "_filesize": 1094966,
  "_sha256": "637857cf481e26bd8b569bd744cd71e74efd341ce2a8fa9812667ffa68a211b5",
  "_expires": "2027-02-03T14:10:30.000Z",
  "_created": "2026-10-26T13:46:22.000Z",
  "_published": "2026-10-26T14:10:32.968Z",
  "_upstream": "https://github.com/feddelegrand7/sicher",
  "_status": "success",
  "_maintainer": {
    "name": "Mohamed El Fodil Ihaddaden",
    "email": "ihaddaden.fodeil@gmail.com",
    "login": "feddelegrand7",
    "description": "",
    "uuid": 28841210
  },
  "_jobs": [
    {
      "job": 121609074154,
      "time": 114,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12656525713"
    },
    {
      "job": 121609074282,
      "time": 101,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12655891333"
    },
    {
      "job": 121609074227,
      "time": 69,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12657960232"
    },
    {
      "job": 121609074105,
      "time": 128,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12657935165"
    },
    {
      "job": 121607573098,
      "time": 168,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12656100939"
    },
    {
      "job": 121609074265,
      "time": 94,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "12657100056"
    },
    {
      "job": 121609074199,
      "time": 76,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12655741541"
    },
    {
      "job": 121609074232,
      "time": 68,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12655476834"
    },
    {
      "job": 121609074123,
      "time": 81,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12656271078"
    }
  ],
  "_buildurl": "https://github.com/r-universe/feddelegrand7/actions/runs/40333114538",
  "_commit": {
    "id": "1aa7fc857badf2ce3dbb52aaadf4c9cf152e06bd",
    "author": "Ihaddaden Mohamed El Fodil <ihaddaden.fodeil@gmail.com>",
    "committer": "GitHub <noreply@github.com>",
    "message": "Update README.md",
    "time": 1793021016
  },
  "_distro": "resolute",
  "_host": "GitHub-Actions",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.0.0",
      "role": "Depends"
    },
    {
      "package": "glue",
      "version": ">= 1.8.0",
      "role": "Imports"
    },
    {
      "package": "methods",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "jsonlite",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    }
  ],
  "_owner": "feddelegrand7",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-11",
      "n": 24
    },
    {
      "week": "2026-12",
      "n": 8
    },
    {
      "week": "2026-13",
      "n": 10
    },
    {
      "week": "2026-14",
      "n": 9
    },
    {
      "week": "2026-23",
      "n": 2
    },
    {
      "week": "2026-42",
      "n": 1
    },
    {
      "week": "2026-44",
      "n": 2
    }
  ],
  "_tags": [],
  "_stars": 10,
  "_contributors": [
    {
      "user": "copilot",
      "count": 17,
      "uuid": 198982749
    },
    {
      "user": "feddelegrand7",
      "count": 10,
      "uuid": 28841210
    }
  ],
  "_userbio": {
    "uuid": 28841210,
    "type": "user",
    "name": "Ihaddaden Mohamed El Fodil",
    "followers": 168
  },
  "_downloads": {
    "count": 287,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/sicher"
  },
  "_devurl": "https://github.com/feddelegrand7/sicher",
  "_searchresults": 9,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/sicher.html",
    "LICENSE"
  ],
  "_homeurl": "https://github.com/feddelegrand7/sicher",
  "_realowner": "feddelegrand7",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.0",
      "date": "2026-03-31"
    },
    {
      "version": "0.1.1",
      "date": "2026-06-04"
    },
    {
      "version": "0.2.0",
      "date": "2026-10-16"
    }
  ],
  "_exports": [
    "%:%",
    "%<-%",
    "Alias",
    "Any",
    "Between",
    "Bool",
    "brand",
    "Brand",
    "Check",
    "check_type",
    "Coerce",
    "create_dataframe_type",
    "create_list_type",
    "create_type",
    "DataFrame",
    "Date",
    "DateTime",
    "Default",
    "Describe",
    "DiscriminatedUnion",
    "Double",
    "dump_as",
    "Enum",
    "Environment",
    "extend",
    "Factor",
    "field_errors",
    "Function",
    "FunctionOf",
    "HasMethods",
    "infer_type",
    "InstanceOf",
    "Integer",
    "is_type",
    "KeyOf",
    "Lazy",
    "List",
    "ListOf",
    "Literal",
    "match_type",
    "Matches",
    "MatrixOf",
    "MaxLength",
    "MinLength",
    "NonEmpty",
    "NonNA",
    "NonNegative",
    "Null",
    "Nullable",
    "Numeric",
    "Omit",
    "Optional",
    "parse_as",
    "parse_env",
    "Partial",
    "Pick",
    "Pipe",
    "Positive",
    "problem_json",
    "Readonly",
    "Record",
    "Refine",
    "Required",
    "safe_parse",
    "Scalar",
    "String",
    "to_json",
    "to_json_schema",
    "Transform",
    "Tuple",
    "type_of",
    "typed_function",
    "Unique",
    "untype",
    "validate_json",
    "Whole"
  ],
  "_help": [
    {
      "page": "sub-.sicher_type",
      "title": "Vector Size Operator for sicher_type",
      "topics": [
        "[.sicher_type"
      ]
    },
    {
      "page": "grapes-colon-grapes",
      "title": "Type annotation operator",
      "topics": [
        "%:%"
      ]
    },
    {
      "page": "grapes-set-grapes",
      "title": "Type-checked assignment operator",
      "topics": [
        "%<-%"
      ]
    },
    {
      "page": "Alias",
      "title": "Give a field an external name",
      "topics": [
        "Alias"
      ]
    },
    {
      "page": "Any",
      "title": "Built-in Any Type",
      "topics": [
        "Any"
      ]
    },
    {
      "page": "Between",
      "title": "Between — closed-interval numeric range constraint",
      "topics": [
        "Between"
      ]
    },
    {
      "page": "Bool",
      "title": "Built-in Boolean Type",
      "topics": [
        "Bool"
      ]
    },
    {
      "page": "branded-types",
      "title": "Branded types",
      "topics": [
        "Brand",
        "brand",
        "branded-types"
      ]
    },
    {
      "page": "Check",
      "title": "Rules that report problems at a chosen location",
      "topics": [
        "Check"
      ]
    },
    {
      "page": "check_type",
      "title": "Type Checking Function",
      "topics": [
        "check_type"
      ]
    },
    {
      "page": "Coerce",
      "title": "Coerce values before checking them",
      "topics": [
        "Coerce"
      ]
    },
    {
      "page": "create_dataframe_type",
      "title": "Create a Data Frame Type with Column Specification",
      "topics": [
        "create_dataframe_type"
      ]
    },
    {
      "page": "create_list_type",
      "title": "Create a List Type with Specific Structure",
      "topics": [
        "create_list_type"
      ]
    },
    {
      "page": "create_type",
      "title": "Create a Custom Type",
      "topics": [
        "create_type"
      ]
    },
    {
      "page": "DataFrame",
      "title": "Built-in DataFrame Type",
      "topics": [
        "DataFrame"
      ]
    },
    {
      "page": "Date",
      "title": "Built-in Date Type",
      "topics": [
        "Date"
      ]
    },
    {
      "page": "DateTime",
      "title": "Built-in DateTime Type",
      "topics": [
        "DateTime"
      ]
    },
    {
      "page": "Default",
      "title": "Default value for a type",
      "topics": [
        "Default"
      ]
    },
    {
      "page": "Describe",
      "title": "Describe a type",
      "topics": [
        "Describe"
      ]
    },
    {
      "page": "DiscriminatedUnion",
      "title": "Discriminated Union Type Factory",
      "topics": [
        "DiscriminatedUnion"
      ]
    },
    {
      "page": "Double",
      "title": "Built-in Double Type",
      "topics": [
        "Double"
      ]
    },
    {
      "page": "dump_as",
      "title": "Prepare a value for output",
      "topics": [
        "dump_as"
      ]
    },
    {
      "page": "Enum",
      "title": "Enum Type Factory",
      "topics": [
        "Enum"
      ]
    },
    {
      "page": "Environment",
      "title": "Built-in Environment Type",
      "topics": [
        "Environment"
      ]
    },
    {
      "page": "extend",
      "title": "Extend a structured list type with additional fields",
      "topics": [
        "extend"
      ]
    },
    {
      "page": "Factor",
      "title": "Factor Type Factory",
      "topics": [
        "Factor"
      ]
    },
    {
      "page": "field_errors",
      "title": "Error messages grouped by field",
      "topics": [
        "field_errors"
      ]
    },
    {
      "page": "Function",
      "title": "Built-in Function Type",
      "topics": [
        "Function"
      ]
    },
    {
      "page": "FunctionOf",
      "title": "Function Type Factory",
      "topics": [
        "FunctionOf"
      ]
    },
    {
      "page": "HasMethods",
      "title": "Types for objects that have certain methods",
      "topics": [
        "HasMethods"
      ]
    },
    {
      "page": "infer_type",
      "title": "Infer a Type from an R Object",
      "topics": [
        "infer_type"
      ]
    },
    {
      "page": "InstanceOf",
      "title": "Instance-of type",
      "topics": [
        "InstanceOf"
      ]
    },
    {
      "page": "Integer",
      "title": "Built-in Integer Type",
      "topics": [
        "Integer"
      ]
    },
    {
      "page": "intersection-operator",
      "title": "Intersection Type Operator",
      "topics": [
        "&.sicher_type",
        "&.sicher_union",
        "intersection-operator"
      ]
    },
    {
      "page": "is_type",
      "title": "Test whether a value matches a type",
      "topics": [
        "is_type"
      ]
    },
    {
      "page": "Lazy",
      "title": "Lazy (recursive) types",
      "topics": [
        "Lazy"
      ]
    },
    {
      "page": "length-modifiers",
      "title": "MinLength / MaxLength modifiers",
      "topics": [
        "length-modifiers",
        "MaxLength",
        "MinLength"
      ]
    },
    {
      "page": "List",
      "title": "Built-in List Type",
      "topics": [
        "List"
      ]
    },
    {
      "page": "ListOf",
      "title": "Create a homogeneous list type",
      "topics": [
        "ListOf"
      ]
    },
    {
      "page": "Literal",
      "title": "Literal Type Factory",
      "topics": [
        "Literal"
      ]
    },
    {
      "page": "match_type",
      "title": "Exhaustive matching on the cases of a type",
      "topics": [
        "match_type"
      ]
    },
    {
      "page": "Matches",
      "title": "Matches — regex-constrained string type",
      "topics": [
        "Matches"
      ]
    },
    {
      "page": "MatrixOf",
      "title": "Matrix Type Factory",
      "topics": [
        "MatrixOf"
      ]
    },
    {
      "page": "NonEmpty",
      "title": "NonEmpty modifier — require a non-empty value",
      "topics": [
        "NonEmpty"
      ]
    },
    {
      "page": "NonNA",
      "title": "NonNA modifier — reject values containing NAs",
      "topics": [
        "NonNA"
      ]
    },
    {
      "page": "NonNegative",
      "title": "Built-in NonNegative Type",
      "topics": [
        "NonNegative"
      ]
    },
    {
      "page": "Null",
      "title": "Built-in Null Type",
      "topics": [
        "Null"
      ]
    },
    {
      "page": "Nullable",
      "title": "Create a nullable type variant",
      "topics": [
        "Nullable"
      ]
    },
    {
      "page": "Numeric",
      "title": "Built-in Numeric Type",
      "topics": [
        "Numeric"
      ]
    },
    {
      "page": "object-helpers",
      "title": "Object type utilities: Pick, Omit, Partial, Required, KeyOf",
      "topics": [
        "KeyOf",
        "object-helpers",
        "Omit",
        "Partial",
        "Pick",
        "Required"
      ]
    },
    {
      "page": "Optional",
      "title": "Create an optional (nullable) type variant",
      "topics": [
        "Optional"
      ]
    },
    {
      "page": "parse_as",
      "title": "Parse a value against a type",
      "topics": [
        "parse_as",
        "safe_parse"
      ]
    },
    {
      "page": "parse_env",
      "title": "Read settings from environment variables",
      "topics": [
        "parse_env"
      ]
    },
    {
      "page": "Positive",
      "title": "Built-in Positive Type",
      "topics": [
        "Positive"
      ]
    },
    {
      "page": "print.sicher_parse_result",
      "title": "Print method for sicher_parse_result",
      "topics": [
        "print.sicher_parse_result"
      ]
    },
    {
      "page": "print.sicher_readonly",
      "title": "Print method for sicher_readonly",
      "topics": [
        "print.sicher_readonly"
      ]
    },
    {
      "page": "print.sicher_type",
      "title": "Print method for sicher_type",
      "topics": [
        "print.sicher_type"
      ]
    },
    {
      "page": "print.sicher_typed_annotation",
      "title": "Print method for sicher_typed_annotation",
      "topics": [
        "print.sicher_typed_annotation"
      ]
    },
    {
      "page": "print.sicher_typed_function",
      "title": "Print method for sicher_typed_function",
      "topics": [
        "print.sicher_typed_function"
      ]
    },
    {
      "page": "print.sicher_union",
      "title": "Print method for sicher_union",
      "topics": [
        "print.sicher_union"
      ]
    },
    {
      "page": "problem_json",
      "title": "Problem details for HTTP APIs",
      "topics": [
        "problem_json"
      ]
    },
    {
      "page": "Readonly",
      "title": "Create a readonly type variant",
      "topics": [
        "Readonly"
      ]
    },
    {
      "page": "Record",
      "title": "Record Type Factory",
      "topics": [
        "Record"
      ]
    },
    {
      "page": "Refine",
      "title": "Refine a type with a custom rule",
      "topics": [
        "Refine"
      ]
    },
    {
      "page": "Scalar",
      "title": "Create a scalar (length-1) type variant",
      "topics": [
        "Scalar"
      ]
    },
    {
      "page": "String",
      "title": "Built-in String Type",
      "topics": [
        "String"
      ]
    },
    {
      "page": "to_json",
      "title": "Convert a value to JSON",
      "topics": [
        "to_json"
      ]
    },
    {
      "page": "to_json_schema",
      "title": "Convert a type to JSON Schema",
      "topics": [
        "to_json_schema"
      ]
    },
    {
      "page": "transforms",
      "title": "Transform values after checking them",
      "topics": [
        "Pipe",
        "Transform",
        "transforms"
      ]
    },
    {
      "page": "Tuple",
      "title": "Tuple Type Factory",
      "topics": [
        "Tuple"
      ]
    },
    {
      "page": "type_of",
      "title": "Get the declared type of a typed variable",
      "topics": [
        "type_of"
      ]
    },
    {
      "page": "typed_function",
      "title": "Create a type-checked function",
      "topics": [
        "typed_function"
      ]
    },
    {
      "page": "union-operator",
      "title": "Union Type Operator",
      "topics": [
        "union-operator",
        "|.sicher_type",
        "|.sicher_union"
      ]
    },
    {
      "page": "Unique",
      "title": "Unique modifier",
      "topics": [
        "Unique"
      ]
    },
    {
      "page": "untype",
      "title": "Remove the type from a typed variable",
      "topics": [
        "untype"
      ]
    },
    {
      "page": "validate_json",
      "title": "Parse and validate JSON",
      "topics": [
        "validate_json"
      ]
    },
    {
      "page": "Whole",
      "title": "Built-in Whole Type",
      "topics": [
        "Whole"
      ]
    }
  ],
  "_readme": "https://github.com/feddelegrand7/sicher/raw/HEAD/README.md",
  "_rundeps": [
    "glue"
  ],
  "_score": 4.544068044350276,
  "_indexed": true,
  "_nocasepkg": "sicher",
  "_universes": [
    "feddelegrand7"
  ],
  "_previous": "0.2.0",
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.3.0",
      "date": "2026-10-26T13:48:20.000Z",
      "distro": "resolute",
      "commit": "1aa7fc857badf2ce3dbb52aaadf4c9cf152e06bd",
      "fileid": "https://r2.ropensci.org/e4d7bbfd1bcdde9316bde0584c17adccad08c5237bf31ad2f9ae0018c44e324a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/feddelegrand7/actions/runs/40333114538"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.3.0",
      "date": "2026-10-26T13:48:05.000Z",
      "distro": "resolute",
      "commit": "1aa7fc857badf2ce3dbb52aaadf4c9cf152e06bd",
      "fileid": "https://r2.ropensci.org/5b8c1ba8132bb48a06babb496cdaf8b717b2762873eed28280765ed5fb4c53ad",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/feddelegrand7/actions/runs/40333114538"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.3.0",
      "date": "2026-10-26T14:09:01.000Z",
      "commit": "1aa7fc857badf2ce3dbb52aaadf4c9cf152e06bd",
      "fileid": "https://r2.ropensci.org/67fd63e8e4cd0539b4e431b4f475d4dbd9c556fe7e8c22b77a3f1ef4164daf47",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/feddelegrand7/actions/runs/40333114538"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.3.0",
      "date": "2026-10-26T14:09:41.000Z",
      "commit": "1aa7fc857badf2ce3dbb52aaadf4c9cf152e06bd",
      "fileid": "https://r2.ropensci.org/1e3b7c152b0a5906f115c9965850ff654b0d6df7c43a5db448e176d6c3d51ace",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/feddelegrand7/actions/runs/40333114538"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.3.0",
      "date": "2026-10-26T13:48:16.000Z",
      "commit": "1aa7fc857badf2ce3dbb52aaadf4c9cf152e06bd",
      "fileid": "https://r2.ropensci.org/086e75b63d9146a942b266ed339acec5efc14dbc924b2b1d8bed28bff7c51ee9",
      "status": "success",
      "buildurl": "https://github.com/r-universe/feddelegrand7/actions/runs/40333114538"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.3.0",
      "date": "2026-10-26T13:47:30.000Z",
      "commit": "1aa7fc857badf2ce3dbb52aaadf4c9cf152e06bd",
      "fileid": "https://r2.ropensci.org/c4598d772f94ca724d89dc2e3f071b10e5993c38cf963128680bbc60bbc258cc",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/feddelegrand7/actions/runs/40333114538"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.3.0",
      "date": "2026-10-26T13:47:28.000Z",
      "commit": "1aa7fc857badf2ce3dbb52aaadf4c9cf152e06bd",
      "fileid": "https://r2.ropensci.org/8113cbf8e91b9133d8dbff8d6f7436438e15227b780723a98f16fa9a142c6e46",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/feddelegrand7/actions/runs/40333114538"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.3.0",
      "date": "2026-10-26T13:47:34.000Z",
      "commit": "1aa7fc857badf2ce3dbb52aaadf4c9cf152e06bd",
      "fileid": "https://r2.ropensci.org/ddb06787590e812c54fecf6f44237f83fd2e2c50e7ff21d9f1703a0e7d06a715",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/feddelegrand7/actions/runs/40333114538"
    }
  ]
}