jsonbinpack
Version:
A space-efficient schema-driven binary JSON serialization format based on JSON Schema
319 lines (318 loc) • 13.5 kB
JSON
{
"type": "object",
"encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
"options": {
"propertyEncodings": {
"name": {
"type": "string",
"encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
"options": {
"minimum": 0
}
},
"on": {
"type": "array",
"encoding": "FLOOR_TYPED_LENGTH_PREFIX",
"options": {
"minimum": 0,
"encoding": {
"type": "string",
"encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
"options": {
"minimum": 0
}
},
"prefixEncodings": []
}
},
"jobs": {
"type": "object",
"encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
"options": {
"propertyEncodings": {
"build": {
"type": "object",
"encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
"options": {
"propertyEncodings": {
"runs-on": {
"type": "string",
"encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
"options": {
"minimum": 0
}
},
"env": {
"type": "object",
"encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
"options": {
"propertyEncodings": {
"build-suite-dir": {
"type": "string",
"encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
"options": {
"minimum": 0
}
}
},
"requiredProperties": [
"build-suite-dir"
],
"booleanRequiredProperties": []
}
},
"steps": {
"type": "array",
"encoding": "FLOOR_TYPED_LENGTH_PREFIX",
"options": {
"minimum": 0,
"encoding": {
"type": "oneOf",
"encoding": "ONEOF_CHOICE_INDEX_PREFIX",
"options": {
"choices": [
{
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"uses"
],
"properties": {
"uses": {
"type": "string",
"minLength": 0
}
},
"minProperties": 1
},
"encoding": {
"type": "object",
"encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
"options": {
"propertyEncodings": {
"uses": {
"type": "string",
"encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
"options": {
"minimum": 0
}
}
},
"requiredProperties": [
"uses"
],
"booleanRequiredProperties": []
}
}
},
{
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"uses",
"with"
],
"properties": {
"uses": {
"type": "string",
"minLength": 0
},
"with": {
"type": "object",
"additionalProperties": false,
"required": [
"node-version"
],
"properties": {
"node-version": {
"type": "string",
"minLength": 0
}
},
"minProperties": 1
}
},
"minProperties": 2
},
"encoding": {
"type": "object",
"encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
"options": {
"propertyEncodings": {
"uses": {
"type": "string",
"encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
"options": {
"minimum": 0
}
},
"with": {
"type": "object",
"encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
"options": {
"propertyEncodings": {
"node-version": {
"type": "string",
"encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
"options": {
"minimum": 0
}
}
},
"requiredProperties": [
"node-version"
],
"booleanRequiredProperties": []
}
}
},
"requiredProperties": [
"uses",
"with"
],
"booleanRequiredProperties": []
}
}
},
{
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"run"
],
"properties": {
"name": {
"type": "string",
"minLength": 0
},
"run": {
"type": "string",
"minLength": 0
}
},
"minProperties": 2
},
"encoding": {
"type": "object",
"encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
"options": {
"propertyEncodings": {
"name": {
"type": "string",
"encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
"options": {
"minimum": 0
}
},
"run": {
"type": "string",
"encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
"options": {
"minimum": 0
}
}
},
"requiredProperties": [
"name",
"run"
],
"booleanRequiredProperties": []
}
}
},
{
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"run",
"working-directory"
],
"properties": {
"name": {
"type": "string",
"minLength": 0
},
"run": {
"type": "string",
"minLength": 0
},
"working-directory": {
"type": "string",
"minLength": 0
}
},
"minProperties": 3
},
"encoding": {
"type": "object",
"encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
"options": {
"propertyEncodings": {
"name": {
"type": "string",
"encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
"options": {
"minimum": 0
}
},
"run": {
"type": "string",
"encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
"options": {
"minimum": 0
}
},
"working-directory": {
"type": "string",
"encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
"options": {
"minimum": 0
}
}
},
"requiredProperties": [
"name",
"run",
"working-directory"
],
"booleanRequiredProperties": []
}
}
}
]
}
},
"prefixEncodings": []
}
}
},
"requiredProperties": [
"env",
"runs-on",
"steps"
],
"booleanRequiredProperties": []
}
}
},
"requiredProperties": [
"build"
],
"booleanRequiredProperties": []
}
}
},
"requiredProperties": [
"jobs",
"name",
"on"
],
"booleanRequiredProperties": []
}
}