UNPKG

@dpkit/core

Version:

Fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames

1,356 lines (1,355 loc) 41.8 kB
{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Data Resource", "type": "object", "oneOf": [ { "required": ["name", "data"] }, { "required": ["name", "path"] } ], "properties": { "profile": { "propertyOrder": 10, "title": "Profile", "type": "string" }, "name": { "propertyOrder": 20, "title": "Name", "type": "string", "pattern": "^([-a-z0-9._/])+$" }, "path": { "propertyOrder": 30, "title": "Path", "oneOf": [ { "title": "Path", "type": "string", "pattern": "^(?=^[^./~])(^((?!\\.{2}).)*$).*$" }, { "type": "array", "minItems": 1, "items": { "title": "Path", "type": "string", "pattern": "^(?=^[^./~])(^((?!\\.{2}).)*$).*$" } } ] }, "data": { "propertyOrder": 230, "title": "Data" }, "schema": { "propertyOrder": 40, "title": "Table Schema", "type": ["string", "object"], "required": ["fields"], "properties": { "fields": { "type": "array", "minItems": 1, "items": { "title": "Table Schema Field", "type": "object", "oneOf": [ { "type": "object", "title": "String Field", "required": ["name"], "properties": { "name": { "title": "Name", "type": "string" }, "title": { "title": "Title", "type": "string" }, "description": { "title": "Description", "type": "string" }, "example": { "title": "Example", "type": "string" }, "type": { "enum": ["string"] }, "format": { "enum": ["default", "email", "uri", "binary", "uuid"], "default": "default" }, "constraints": { "title": "Constraints", "type": "object", "properties": { "required": { "type": "boolean" }, "unique": { "type": "boolean" }, "pattern": { "type": "string" }, "enum": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string" } }, "minLength": { "type": "integer" }, "maxLength": { "type": "integer" } } }, "rdfType": { "type": "string" } } }, { "type": "object", "title": "Number Field", "required": ["name", "type"], "properties": { "name": { "title": "Name", "type": "string" }, "title": { "title": "Title", "type": "string" }, "description": { "title": "Description", "type": "string" }, "example": { "title": "Example", "type": "string" }, "type": { "enum": ["number"] }, "format": { "enum": ["default"], "default": "default" }, "bareNumber": { "type": "boolean", "title": "bareNumber", "default": true }, "decimalChar": { "type": "string" }, "groupChar": { "type": "string" }, "constraints": { "title": "Constraints", "type": "object", "properties": { "required": { "type": "boolean" }, "unique": { "type": "boolean" }, "enum": { "oneOf": [ { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string" } }, { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "number" } } ] }, "minimum": { "oneOf": [ { "type": "string" }, { "type": "number" } ] }, "maximum": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } } }, "rdfType": { "type": "string" } } }, { "type": "object", "title": "Integer Field", "required": ["name", "type"], "properties": { "name": { "title": "Name", "type": "string" }, "title": { "title": "Title", "type": "string" }, "description": { "title": "Description", "type": "string" }, "example": { "title": "Example", "type": "string" }, "type": { "enum": ["integer"] }, "format": { "enum": ["default"], "default": "default" }, "bareNumber": { "type": "boolean", "title": "bareNumber", "default": true }, "constraints": { "title": "Constraints", "type": "object", "properties": { "required": { "type": "boolean" }, "unique": { "type": "boolean" }, "enum": { "oneOf": [ { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string" } }, { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "integer" } } ] }, "minimum": { "oneOf": [ { "type": "string" }, { "type": "integer" } ] }, "maximum": { "oneOf": [ { "type": "string" }, { "type": "integer" } ] } } }, "rdfType": { "type": "string" } } }, { "type": "object", "title": "Date Field", "required": ["name", "type"], "properties": { "name": { "title": "Name", "type": "string" }, "title": { "title": "Title", "type": "string" }, "description": { "title": "Description", "type": "string" }, "example": { "title": "Example", "type": "string" }, "type": { "enum": ["date"] }, "format": { "default": "default" }, "constraints": { "title": "Constraints", "type": "object", "properties": { "required": { "type": "boolean" }, "unique": { "type": "boolean" }, "enum": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string" } }, "minimum": { "type": "string" }, "maximum": { "type": "string" } } }, "rdfType": { "type": "string" } } }, { "type": "object", "title": "Time Field", "required": ["name", "type"], "properties": { "name": { "title": "Name", "type": "string" }, "title": { "title": "Title", "type": "string" }, "description": { "title": "Description", "type": "string" }, "example": { "title": "Example", "type": "string" }, "type": { "enum": ["time"] }, "format": { "default": "default" }, "constraints": { "title": "Constraints", "type": "object", "properties": { "required": { "type": "boolean" }, "unique": { "type": "boolean" }, "enum": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string" } }, "minimum": { "type": "string" }, "maximum": { "type": "string" } } }, "rdfType": { "type": "string" } } }, { "type": "object", "title": "Date Time Field", "required": ["name", "type"], "properties": { "name": { "title": "Name", "type": "string" }, "title": { "title": "Title", "type": "string" }, "description": { "title": "Description", "type": "string" }, "example": { "title": "Example", "type": "string" }, "type": { "enum": ["datetime"] }, "format": { "default": "default" }, "constraints": { "title": "Constraints", "type": "object", "properties": { "required": { "type": "boolean" }, "unique": { "type": "boolean" }, "enum": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string" } }, "minimum": { "type": "string" }, "maximum": { "type": "string" } } }, "rdfType": { "type": "string" } } }, { "type": "object", "title": "Year Field", "required": ["name", "type"], "properties": { "name": { "title": "Name", "type": "string" }, "title": { "title": "Title", "type": "string" }, "description": { "title": "Description", "type": "string" }, "example": { "title": "Example", "type": "string" }, "type": { "enum": ["year"] }, "format": { "enum": ["default"], "default": "default" }, "constraints": { "title": "Constraints", "type": "object", "properties": { "required": { "type": "boolean" }, "unique": { "type": "boolean" }, "enum": { "oneOf": [ { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string" } }, { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "integer" } } ] }, "minimum": { "oneOf": [ { "type": "string" }, { "type": "integer" } ] }, "maximum": { "oneOf": [ { "type": "string" }, { "type": "integer" } ] } } }, "rdfType": { "type": "string" } } }, { "type": "object", "title": "Year Month Field", "required": ["name", "type"], "properties": { "name": { "title": "Name", "type": "string" }, "title": { "title": "Title", "type": "string" }, "description": { "title": "Description", "type": "string" }, "example": { "title": "Example", "type": "string" }, "type": { "enum": ["yearmonth"] }, "format": { "enum": ["default"], "default": "default" }, "constraints": { "title": "Constraints", "type": "object", "properties": { "required": { "type": "boolean" }, "unique": { "type": "boolean" }, "enum": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string" } }, "minimum": { "type": "string" }, "maximum": { "type": "string" } } }, "rdfType": { "type": "string" } } }, { "type": "object", "title": "Boolean Field", "required": ["name", "type"], "properties": { "name": { "title": "Name", "type": "string" }, "title": { "title": "Title", "type": "string" }, "description": { "title": "Description", "type": "string" }, "example": { "title": "Example", "type": "string" }, "type": { "enum": ["boolean"] }, "format": { "enum": ["default"], "default": "default" }, "trueValues": { "type": "array", "minItems": 1, "items": { "type": "string" }, "default": ["true", "True", "TRUE", "1"] }, "falseValues": { "type": "array", "minItems": 1, "items": { "type": "string" }, "default": ["false", "False", "FALSE", "0"] }, "constraints": { "title": "Constraints", "type": "object", "properties": { "required": { "type": "boolean" }, "enum": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "boolean" } } } }, "rdfType": { "type": "string" } } }, { "type": "object", "title": "Object Field", "required": ["name", "type"], "properties": { "name": { "title": "Name", "type": "string" }, "title": { "title": "Title", "type": "string" }, "description": { "title": "Description", "type": "string" }, "example": { "title": "Example", "type": "string" }, "type": { "enum": ["object"] }, "format": { "enum": ["default"], "default": "default" }, "constraints": { "title": "Constraints", "type": "object", "properties": { "required": { "type": "boolean" }, "unique": { "type": "boolean" }, "enum": { "oneOf": [ { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string" } }, { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "object" } } ] }, "minLength": { "type": "integer" }, "maxLength": { "type": "integer" } } }, "rdfType": { "type": "string" } } }, { "type": "object", "title": "GeoPoint Field", "required": ["name", "type"], "properties": { "name": { "title": "Name", "type": "string" }, "title": { "title": "Title", "type": "string" }, "description": { "title": "Description", "type": "string" }, "example": { "title": "Example", "type": "string" }, "type": { "enum": ["geopoint"] }, "format": { "notes": [ "Implementations `MUST` strip all white space in the default format of `lon, lat`." ], "enum": ["default", "array", "object"], "default": "default" }, "constraints": { "title": "Constraints", "type": "object", "properties": { "required": { "type": "boolean" }, "unique": { "type": "boolean" }, "enum": { "oneOf": [ { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string" } }, { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "array" } }, { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "object" } } ] } } }, "rdfType": { "type": "string" } } }, { "type": "object", "title": "GeoJSON Field", "required": ["name", "type"], "properties": { "name": { "title": "Name", "type": "string" }, "title": { "title": "Title", "type": "string" }, "description": { "title": "Description", "type": "string" }, "example": { "title": "Example", "type": "string" }, "type": { "enum": ["geojson"] }, "format": { "enum": ["default", "topojson"], "default": "default" }, "constraints": { "title": "Constraints", "type": "object", "properties": { "required": { "type": "boolean" }, "unique": { "type": "boolean" }, "enum": { "oneOf": [ { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string" } }, { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "object" } } ] }, "minLength": { "type": "integer" }, "maxLength": { "type": "integer" } } }, "rdfType": { "type": "string" } } }, { "type": "object", "title": "Array Field", "required": ["name", "type"], "properties": { "name": { "title": "Name", "type": "string" }, "title": { "title": "Title", "type": "string" }, "description": { "title": "Description", "type": "string" }, "example": { "title": "Example", "type": "string" }, "type": { "enum": ["array"] }, "format": { "enum": ["default"], "default": "default" }, "constraints": { "title": "Constraints", "type": "object", "properties": { "required": { "type": "boolean" }, "unique": { "type": "boolean" }, "enum": { "oneOf": [ { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string" } }, { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "array" } } ] }, "minLength": { "type": "integer" }, "maxLength": { "type": "integer" } } }, "rdfType": { "type": "string" } } }, { "type": "object", "title": "Duration Field", "required": ["name", "type"], "properties": { "name": { "title": "Name", "type": "string" }, "title": { "title": "Title", "type": "string" }, "description": { "title": "Description", "type": "string" }, "example": { "title": "Example", "type": "string" }, "type": { "enum": ["duration"] }, "format": { "enum": ["default"], "default": "default" }, "constraints": { "title": "Constraints", "type": "object", "properties": { "required": { "type": "boolean" }, "unique": { "type": "boolean" }, "enum": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string" } }, "minimum": { "type": "string" }, "maximum": { "type": "string" } } }, "rdfType": { "type": "string" } } }, { "type": "object", "title": "Any Field", "required": ["name", "type"], "properties": { "name": { "title": "Name", "type": "string" }, "title": { "title": "Title", "type": "string" }, "description": { "title": "Description", "type": "string" }, "example": { "title": "Example", "type": "string" }, "type": { "enum": ["any"] }, "constraints": { "title": "Constraints", "type": "object", "properties": { "required": { "type": "boolean" }, "unique": { "type": "boolean" }, "enum": { "type": "array", "minItems": 1, "uniqueItems": true } } }, "rdfType": { "type": "string" } } } ] } }, "primaryKey": { "oneOf": [ { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string" } }, { "type": "string" } ] }, "foreignKeys": { "type": "array", "minItems": 1, "items": { "title": "Table Schema Foreign Key", "type": "object", "required": ["fields", "reference"], "oneOf": [ { "properties": { "fields": { "type": "array", "items": { "type": "string", "minItems": 1, "uniqueItems": true } }, "reference": { "type": "object", "required": ["resource", "fields"], "properties": { "resource": { "type": "string", "default": "" }, "fields": { "type": "array", "items": { "type": "string" }, "minItems": 1, "uniqueItems": true } } } } }, { "properties": { "fields": { "type": "string" }, "reference": { "type": "object", "required": ["resource", "fields"], "properties": { "resource": { "type": "string", "default": "" }, "fields": { "type": "string" } } } } } ] } }, "missingValues": { "type": "array", "items": { "type": "string" }, "default": [""] } } }, "title": { "title": "Title", "type": "string", "propertyOrder": 50 }, "description": { "title": "Description", "type": "string", "propertyOrder": 60, "format": "textarea" }, "homepage": { "propertyOrder": 70, "title": "Home Page", "type": "string", "format": "uri" }, "sources": { "propertyOrder": 140, "options": { "hidden": true }, "title": "Sources", "type": "array", "minItems": 0, "items": { "title": "Source", "type": "object", "required": ["title"], "properties": { "title": { "title": "Title", "type": "string" }, "path": { "title": "Path", "type": "string", "pattern": "^(?=^[^./~])(^((?!\\.{2}).)*$).*$" }, "email": { "title": "Email", "type": "string", "format": "email" } } } }, "licenses": { "propertyOrder": 150, "options": { "hidden": true }, "title": "Licenses", "type": "array", "minItems": 1, "items": { "title": "License", "type": "object", "anyOf": [ { "required": ["name"] }, { "required": ["path"] } ], "properties": { "name": { "title": "Open Definition license identifier", "type": "string", "pattern": "^([-a-zA-Z0-9._])+$" }, "path": { "title": "Path", "type": "string", "pattern": "^(?=^[^./~])(^((?!\\.{2}).)*$).*$" }, "title": { "title": "Title", "type": "string" } } } }, "dialect": { "propertyOrder": 50, "title": "CSV Dialect", "type": ["string", "object"], "properties": { "csvddfVersion": { "title": "CSV Dialect schema version", "type": "number", "default": 1.2, "examples:": ["{\n \"csvddfVersion\": \"1.2\"\n}\n"] }, "delimiter": { "title": "Delimiter", "type": "string", "default": "," }, "doubleQuote": { "title": "Double Quote", "type": "boolean", "default": true }, "lineTerminator": { "title": "Line Terminator", "type": "string", "default": "\r\n" }, "nullSequence": { "title": "Null Sequence", "type": "string" }, "quoteChar": { "title": "Quote Character", "type": "string", "default": "\"" }, "escapeChar": { "title": "Escape Character", "type": "string" }, "skipInitialSpace": { "title": "Skip Initial Space", "type": "boolean", "default": false }, "header": { "title": "Header", "type": "boolean", "default": true }, "commentChar": { "title": "Comment Character", "type": "string" }, "caseSensitiveHeader": { "title": "Case Sensitive Header", "type": "boolean", "default": false } } }, "format": { "propertyOrder": 80, "title": "Format", "type": "string" }, "mediatype": { "propertyOrder": 90, "title": "Media Type", "type": "string", "pattern": "^(.+)/(.+)$" }, "encoding": { "propertyOrder": 100, "title": "Encoding", "type": "string", "default": "utf-8" }, "bytes": { "propertyOrder": 110, "options": { "hidden": true }, "title": "Bytes", "type": "integer" }, "hash": { "propertyOrder": 120, "options": { "hidden": true }, "title": "Hash", "type": "string", "pattern": "^([^:]+:[a-fA-F0-9]+|[a-fA-F0-9]{32}|)$" } } }