github-actions-expressions 1.24.1

GitHub Actions expression parser and data types
Documentation
{
  "bool": [
    {
      "expr": "false > true",
      "result": { "kind": "Boolean", "value": false }
    },
    {
      "expr": "false > false",
      "result": { "kind": "Boolean", "value": false }
    },
    {
      "expr": "true > false",
      "result": { "kind": "Boolean", "value": true }
    },
    {
      "expr": "true > true",
      "result": { "kind": "Boolean", "value": false }
    }
  ],
  "number": [
    {
      "expr": "1 > 2",
      "result": { "kind": "Boolean", "value": false }
    },
    {
      "expr": "1 > 1",
      "result": { "kind": "Boolean", "value": false }
    },
    {
      "expr": "2 > 1",
      "result": { "kind": "Boolean", "value": true }
    },
    {
      "expr": "1.002 > 1.001",
      "result": { "kind": "Boolean", "value": true }
    }
  ],
  "string": [
    {
      "expr": "'def' > 'abc'",
      "result": { "kind": "Boolean", "value": true }
    },
    {
      "expr": "'a' > 'b'",
      "result": { "kind": "Boolean", "value": false }
    }
  ],

  "array": [
    {
      "expr": "test > test",
      "contexts": { "test": [] },
      "result": { "kind": "Boolean", "value": false }
    }
  ],

  "object": [
    {
      "expr": "test > test",
      "contexts": { "test": {} },
      "result": { "kind": "Boolean", "value": false }
    }
  ],

  "coerce_bool_number": [
    {
      "expr": "false > 0",
      "result": { "kind": "Boolean", "value": false }
    },
    {
      "expr": "false > -11",
      "result": { "kind": "Boolean", "value": true }
    },
    {
      "expr": "true > 1",
      "result": { "kind": "Boolean", "value": false }
    },
    {
      "expr": "true > 0",
      "result": { "kind": "Boolean", "value": true }
    },
    {
      "expr": "false > NaN",
      "result": { "kind": "Boolean", "value": false }
    },
    {
      "expr": "true > NaN",
      "result": { "kind": "Boolean", "value": false }
    },
    {
      "expr": "false > Infinity",
      "result": { "kind": "Boolean", "value": false }
    },
    {
      "expr": "true > Infinity",
      "result": { "kind": "Boolean", "value": false }
    },
    {
      "expr": "false > -Infinity",
      "result": { "kind": "Boolean", "value": true }
    },
    {
      "expr": "true > -Infinity",
      "result": { "kind": "Boolean", "value": true }
    }
  ],

  "coerce_bool_string": [
    {
      "expr": "false > '0'",
      "result": { "kind": "Boolean", "value": false }
    },
    {
      "expr": "false > '-1'",
      "result": { "kind": "Boolean", "value": true }
    },
    {
      "expr": "true > '1'",
      "result": { "kind": "Boolean", "value": false }
    },
    {
      "expr": "true > '0'",
      "result": { "kind": "Boolean", "value": true }
    }
  ],

  "coerce_bool_null": [
    {
      "expr": "false > null",
      "result": { "kind": "Boolean", "value": false }
    },
    {
      "expr": "true > null",
      "result": { "kind": "Boolean", "value": true }
    }
  ],

  "coerce_bool_object": [
    {
      "expr": "false > test",
      "contexts": { "test": {} },
      "result": { "kind": "Boolean", "value": false }
    },
    {
      "expr": "true > test",
      "contexts": { "test": {} },
      "result": { "kind": "Boolean", "value": false }
    }
  ],

  "coerce_bool_array": [
    {
      "expr": "false > test",
      "contexts": { "test": [] },
      "result": { "kind": "Boolean", "value": false }
    },
    {
      "expr": "true > test",
      "contexts": { "test": [] },
      "result": { "kind": "Boolean", "value": false }
    }
  ],

  "coerce_number_bool": [
    {
      "expr": "1 > false",
      "result": { "kind": "Boolean", "value": true }
    },
    {
      "expr": "0 > false",
      "result": { "kind": "Boolean", "value": false }
    },
    {
      "expr": "2 > true",
      "result": { "kind": "Boolean", "value": true }
    },
    {
      "expr": "1 > true",
      "result": { "kind": "Boolean", "value": false }
    },
    {
      "expr": "NaN > false",
      "result": { "kind": "Boolean", "value": false }
    },
    {
      "expr": "NaN > true",
      "result": { "kind": "Boolean", "value": false }
    },
    {
      "expr": "Infinity > false",
      "result": { "kind": "Boolean", "value": true }
    },
    {
      "expr": "Infinity > true",
      "result": { "kind": "Boolean", "value": true }
    },
    {
      "expr": "-Infinity > false",
      "result": { "kind": "Boolean", "value": false }
    },
    {
      "expr": "-Infinity > true",
      "result": { "kind": "Boolean", "value": false }
    }
  ],

  "coerce_number_string": [
    {
      "expr": "0 > ' 0 '",
      "result": { "kind": "Boolean", "value": false }
    },
    {
      "expr": "0 > ' -1 '",
      "result": { "kind": "Boolean", "value": true }
    },
    {
      "expr": "1 > ' 1 '",
      "result": { "kind": "Boolean", "value": false }
    },
    {
      "expr": "1 > ' 0 '",
      "result": { "kind": "Boolean", "value": true }
    }
  ],

  "coerce_number_null": [
    {
      "expr": "1 > null",
      "result": { "kind": "Boolean", "value": true }
    },
    {
      "expr": "0 > null",
      "result": { "kind": "Boolean", "value": false }
    }
  ],

  "coerce_number_object": [
    {
      "expr": "0 > test",
      "contexts": { "test": {} },
      "result": { "kind": "Boolean", "value": false }
    },
    {
      "expr": "1 > test",
      "contexts": { "test": {} },
      "result": { "kind": "Boolean", "value": false }
    }
  ],

  "coerce_number_array": [
    {
      "expr": "0 > test",
      "contexts": { "test": [] },
      "result": { "kind": "Boolean", "value": false }
    },
    {
      "expr": "1 > test",
      "contexts": { "test": [] },
      "result": { "kind": "Boolean", "value": false }
    }
  ],

  "coerce_string_bool": [
    {
      "expr": "'0' > false",
      "result": { "kind": "Boolean", "value": false }
    },
    {
      "expr": "'1' > false",
      "result": { "kind": "Boolean", "value": true }
    },
    {
      "expr": "'1' > true",
      "result": { "kind": "Boolean", "value": false }
    },
    {
      "expr": "'2' > true",
      "result": { "kind": "Boolean", "value": true }
    }
  ],

  "coerce_string_number": [
    {
      "expr": "' 0 ' > -1",
      "result": { "kind": "Boolean", "value": true }
    },
    {
      "expr": "' 0 ' > 0",
      "result": { "kind": "Boolean", "value": false }
    },
    {
      "expr": "' 1 ' > 0",
      "result": { "kind": "Boolean", "value": true }
    },
    {
      "expr": "' 1 ' > 1",
      "result": { "kind": "Boolean", "value": false }
    }
  ],

  "coerce_string_null": [
    {
      "expr": "'' > null",
      "result": { "kind": "Boolean", "value": false }
    },
    {
      "expr": "'1' > null",
      "result": { "kind": "Boolean", "value": true }
    }
  ],

  "coerce_string_object": [
    {
      "expr": "'' > test",
      "contexts": { "test": {} },
      "result": { "kind": "Boolean", "value": false }
    }
  ],

  "coerce_string_array": [
    {
      "expr": "'' > test",
      "contexts": { "test": [] },
      "result": { "kind": "Boolean", "value": false }
    }
  ],

  "coerce_null_bool": [
    {
      "expr": "null > false",
      "result": { "kind": "Boolean", "value": false }
    },
    {
      "expr": "null > true",
      "result": { "kind": "Boolean", "value": false }
    }
  ],

  "coerce_null_number": [
    {
      "expr": "null > 0",
      "result": { "kind": "Boolean", "value": false }
    },
    {
      "expr": "null > -1",
      "result": { "kind": "Boolean", "value": true }
    }
  ],

  "coerce_null_string": [
    {
      "expr": "null > ' 0 '",
      "result": { "kind": "Boolean", "value": false }
    },
    {
      "expr": "null > ' -1 '",
      "result": { "kind": "Boolean", "value": true }
    }
  ],

  "coerce_null_object": [
    {
      "expr": "null > test",
      "contexts": { "test": {} },
      "result": { "kind": "Boolean", "value": false }
    }
  ],

  "coerce_null_array": [
    {
      "expr": "null > test",
      "contexts": { "test": [] },
      "result": { "kind": "Boolean", "value": false }
    }
  ]
}