When I inspect the AST, I see the typedef showing up multiple times, here is the AST for index.js:
{
"type": "Program",
"body": [
{
"type": "ImportDeclaration",
"specifiers": [
{
"type": "ImportDefaultSpecifier",
"local": {
"type": "Identifier",
"name": "isObject",
"range": [
7,
15
],
"loc": {
"start": {
"line": 1,
"column": 7
},
"end": {
"line": 1,
"column": 15
}
}
},
"range": [
7,
15
],
"loc": {
"start": {
"line": 1,
"column": 7
},
"end": {
"line": 1,
"column": 15
}
}
}
],
"source": {
"type": "Literal",
"value": "lodash.isobject",
"raw": "'lodash.isobject'",
"range": [
21,
38
],
"loc": {
"start": {
"line": 1,
"column": 21
},
"end": {
"line": 1,
"column": 38
}
}
},
"range": [
0,
39
],
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 39
}
},
"trailingComments": [
{
"type": "Block",
"value": "*\n * A container for data that also includes the schema and version.\n * @typedef {Object} DataInfo\n * @property {String} schema The name of the schema\n * @property {(Number|String)} version The version of the schema\n * @property {Object} data An object containing the data\n ",
"range": [
40,
343
],
"loc": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 8,
"column": 3
}
}
},
{
"type": "Block",
"value": "*\n * A schema describing the properties of data.\n * @typedef {Object} Schema\n * @property {String} name The name of the schema\n * @property {Object} columns An object of columns where the key is the unique id for the column and the value is an object of type Column\n ",
"range": [
345,
635
],
"loc": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 15,
"column": 3
}
}
},
{
"type": "Block",
"value": "*\n * A column describing a single property of data.\n * @typedef {Object} Column\n * @property {String} name The name of the column\n * @property {String} type The type of the column\n ",
"range": [
637,
822
],
"loc": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 22,
"column": 3
}
}
},
{
"type": "Block",
"value": "*\n * An array of changes containing items of type Change\n * @typedef {Array} Changes\n ",
"range": [
824,
914
],
"loc": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 27,
"column": 3
}
}
},
{
"type": "Block",
"value": "*\n * A change indicating a modification to a schema or column.\n * @typedef {Object} Change\n * @property {String} id The id of the schema that this change applies to\n * @property {String} change A string indicating the type of change,\n * this can be any of:\n * - schema.create\n * - schema.rename\n * - schema.remove\n * - column.create\n * - column.rename\n * - column.remove\n * - column.typechange\n ",
"range": [
916,
1322
],
"loc": {
"start": {
"line": 29,
"column": 0
},
"end": {
"line": 42,
"column": 3
}
}
},
{
"type": "Block",
"value": "*\n * A result of the validation containing errors when failed.\n * @typedef {Object} ValidationResult\n ",
"range": [
1325,
1434
],
"loc": {
"start": {
"line": 44,
"column": 1
},
"end": {
"line": 47,
"column": 4
}
}
},
{
"type": "Block",
"value": "*\n * A validator that can be used to validate the following objects:\n * - DataInfo\n * - Schema\n * - Changes\n ",
"range": [
1436,
1552
],
"loc": {
"start": {
"line": 49,
"column": 0
},
"end": {
"line": 54,
"column": 3
}
}
}
]
},
{
"type": "Identifier",
"id": {
"type": "Identifier",
"name": "SpecValidator",
"range": [
1559,
1572
],
"loc": {
"start": {
"line": 55,
"column": 6
},
"end": {
"line": 55,
"column": 19
}
}
},
"superClass": null,
"body": {
"type": "ClassBody",
"body": [
{
"type": "MethodDefinition",
"key": {
"type": "Identifier",
"name": "validateDataInfo",
"range": [
1724,
1740
],
"loc": {
"start": {
"line": 61,
"column": 2
},
"end": {
"line": 61,
"column": 18
}
}
},
"value": {
"type": "FunctionExpression",
"id": null,
"params": [
{
"type": "Identifier",
"name": "dataInfo",
"range": [
1741,
1749
],
"loc": {
"start": {
"line": 61,
"column": 19
},
"end": {
"line": 61,
"column": 27
}
}
}
],
"body": {
"type": "BlockStatement",
"body": [
{
"type": "IfStatement",
"test": {
"type": "UnaryExpression",
"operator": "!",
"argument": {
"type": "CallExpression",
"callee": {
"type": "Identifier",
"name": "isObject",
"range": [
1764,
1772
],
"loc": {
"start": {
"line": 62,
"column": 11
},
"end": {
"line": 62,
"column": 19
}
}
},
"arguments": [
{
"type": "Identifier",
"name": "dataInfo",
"range": [
1773,
1781
],
"loc": {
"start": {
"line": 62,
"column": 20
},
"end": {
"line": 62,
"column": 28
}
}
}
],
"range": [
1764,
1782
],
"loc": {
"start": {
"line": 62,
"column": 11
},
"end": {
"line": 62,
"column": 29
}
}
},
"prefix": true,
"range": [
1762,
1782
],
"loc": {
"start": {
"line": 62,
"column": 9
},
"end": {
"line": 62,
"column": 29
}
}
},
"consequent": {
"type": "BlockStatement",
"body": [],
"range": [
1784,
1791
],
"loc": {
"start": {
"line": 62,
"column": 31
},
"end": {
"line": 63,
"column": 5
}
}
},
"alternate": null,
"range": [
1757,
1791
],
"loc": {
"start": {
"line": 62,
"column": 4
},
"end": {
"line": 63,
"column": 5
}
}
}
],
"range": [
1751,
1795
],
"loc": {
"start": {
"line": 61,
"column": 29
},
"end": {
"line": 64,
"column": 3
}
}
},
"generator": false,
"expression": false,
"range": [
1740,
1795
],
"loc": {
"start": {
"line": 61,
"column": 18
},
"end": {
"line": 64,
"column": 3
}
}
},
"kind": "method",
"computed": false,
"range": [
1724,
1795
],
"loc": {
"start": {
"line": 61,
"column": 2
},
"end": {
"line": 64,
"column": 3
}
},
"leadingComments": [
{
"type": "Block",
"value": "*\n * Validate a DataInfo object\n * @param {DataInfo} dataInfo A DataInfo object\n * @return {ValidationResult} A ValidationResult\n ",
"range": [
1577,
1721
],
"loc": {
"start": {
"line": 56,
"column": 2
},
"end": {
"line": 60,
"column": 5
}
}
}
],
"trailingComments": [
{
"type": "Block",
"value": "*\n * Validate a Schema\n * @param {Schema} schema A Schema\n * @return {ValidationResult} A ValidationResult\n ",
"range": [
1799,
1920
],
"loc": {
"start": {
"line": 66,
"column": 2
},
"end": {
"line": 70,
"column": 5
}
}
}
],
"static": false
},
{
"type": "MethodDefinition",
"key": {
"type": "Identifier",
"name": "validateSchema",
"range": [
1923,
1937
],
"loc": {
"start": {
"line": 71,
"column": 2
},
"end": {
"line": 71,
"column": 16
}
}
},
"value": {
"type": "FunctionExpression",
"id": null,
"params": [
{
"type": "Identifier",
"name": "schema",
"range": [
1938,
1944
],
"loc": {
"start": {
"line": 71,
"column": 17
},
"end": {
"line": 71,
"column": 23
}
}
}
],
"body": {
"type": "BlockStatement",
"body": [],
"range": [
1946,
1951
],
"loc": {
"start": {
"line": 71,
"column": 25
},
"end": {
"line": 72,
"column": 3
}
}
},
"generator": false,
"expression": false,
"range": [
1937,
1951
],
"loc": {
"start": {
"line": 71,
"column": 16
},
"end": {
"line": 72,
"column": 3
}
}
},
"kind": "method",
"computed": false,
"range": [
1923,
1951
],
"loc": {
"start": {
"line": 71,
"column": 2
},
"end": {
"line": 72,
"column": 3
}
},
"leadingComments": [
{
"type": "Block",
"value": "*\n * Validate a Schema\n * @param {Schema} schema A Schema\n * @return {ValidationResult} A ValidationResult\n ",
"range": [
1799,
1920
],
"loc": {
"start": {
"line": 66,
"column": 2
},
"end": {
"line": 70,
"column": 5
}
}
}
],
"trailingComments": [
{
"type": "Block",
"value": "*\n * Validate Changes\n * @param {Changes} changes A Changes array\n * @return {ValidationResult} A ValidationResult\n ",
"range": [
1955,
2084
],
"loc": {
"start": {
"line": 74,
"column": 2
},
"end": {
"line": 78,
"column": 5
}
}
}
],
"static": false
},
{
"type": "MethodDefinition",
"key": {
"type": "Identifier",
"name": "validateChanges",
"range": [
2087,
2102
],
"loc": {
"start": {
"line": 79,
"column": 2
},
"end": {
"line": 79,
"column": 17
}
}
},
"value": {
"type": "FunctionExpression",
"id": null,
"params": [
{
"type": "Identifier",
"name": "changes",
"range": [
2103,
2110
],
"loc": {
"start": {
"line": 79,
"column": 18
},
"end": {
"line": 79,
"column": 25
}
}
}
],
"body": {
"type": "BlockStatement",
"body": [],
"range": [
2112,
2117
],
"loc": {
"start": {
"line": 79,
"column": 27
},
"end": {
"line": 80,
"column": 3
}
}
},
"generator": false,
"expression": false,
"range": [
2102,
2117
],
"loc": {
"start": {
"line": 79,
"column": 17
},
"end": {
"line": 80,
"column": 3
}
}
},
"kind": "method",
"computed": false,
"range": [
2087,
2117
],
"loc": {
"start": {
"line": 79,
"column": 2
},
"end": {
"line": 80,
"column": 3
}
},
"leadingComments": [
{
"type": "Block",
"value": "*\n * Validate Changes\n * @param {Changes} changes A Changes array\n * @return {ValidationResult} A ValidationResult\n ",
"range": [
1955,
2084
],
"loc": {
"start": {
"line": 74,
"column": 2
},
"end": {
"line": 78,
"column": 5
}
}
}
],
"static": false
}
],
"range": [
1573,
2119
],
"loc": {
"start": {
"line": 55,
"column": 20
},
"end": {
"line": 81,
"column": 1
}
}
},
"range": [
1553,
2119
],
"loc": {
"start": {
"line": 55,
"column": 0
},
"end": {
"line": 81,
"column": 1
}
},
"leadingComments": [
{
"type": "Block",
"value": "*\n * A container for data that also includes the schema and version.\n * @typedef {Object} DataInfo\n * @property {String} schema The name of the schema\n * @property {(Number|String)} version The version of the schema\n * @property {Object} data An object containing the data\n ",
"range": [
40,
343
],
"loc": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 8,
"column": 3
}
}
},
{
"type": "Block",
"value": "*\n * A schema describing the properties of data.\n * @typedef {Object} Schema\n * @property {String} name The name of the schema\n * @property {Object} columns An object of columns where the key is the unique id for the column and the value is an object of type Column\n ",
"range": [
345,
635
],
"loc": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 15,
"column": 3
}
}
},
{
"type": "Block",
"value": "*\n * A column describing a single property of data.\n * @typedef {Object} Column\n * @property {String} name The name of the column\n * @property {String} type The type of the column\n ",
"range": [
637,
822
],
"loc": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 22,
"column": 3
}
}
},
{
"type": "Block",
"value": "*\n * An array of changes containing items of type Change\n * @typedef {Array} Changes\n ",
"range": [
824,
914
],
"loc": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 27,
"column": 3
}
}
},
{
"type": "Block",
"value": "*\n * A change indicating a modification to a schema or column.\n * @typedef {Object} Change\n * @property {String} id The id of the schema that this change applies to\n * @property {String} change A string indicating the type of change,\n * this can be any of:\n * - schema.create\n * - schema.rename\n * - schema.remove\n * - column.create\n * - column.rename\n * - column.remove\n * - column.typechange\n ",
"range": [
916,
1322
],
"loc": {
"start": {
"line": 29,
"column": 0
},
"end": {
"line": 42,
"column": 3
}
}
},
{
"type": "Block",
"value": "*\n * A result of the validation containing errors when failed.\n * @typedef {Object} ValidationResult\n ",
"range": [
1325,
1434
],
"loc": {
"start": {
"line": 44,
"column": 1
},
"end": {
"line": 47,
"column": 4
}
}
},
{
"type": "Block",
"value": "*\n * A validator that can be used to validate the following objects:\n * - DataInfo\n * - Schema\n * - Changes\n ",
"range": [
1436,
1552
],
"loc": {
"start": {
"line": 49,
"column": 0
},
"end": {
"line": 54,
"column": 3
}
}
}
]
},
{
"type": "Identifier",
"declaration": {
"type": "NewExpression",
"callee": {
"type": "Identifier",
"name": "SpecValidator",
"range": [
2140,
2153
],
"loc": {
"start": {
"line": 83,
"column": 19
},
"end": {
"line": 83,
"column": 32
}
}
},
"arguments": [],
"range": [
2136,
2153
],
"loc": {
"start": {
"line": 83,
"column": 15
},
"end": {
"line": 83,
"column": 32
}
}
},
"range": [
2121,
2154
],
"loc": {
"start": {
"line": 83,
"column": 0
},
"end": {
"line": 83,
"column": 33
}
}
},
{
"type": "ExportDefaultDeclaration",
"declaration": {
"type": "ClassDeclaration",
"id": {
"type": "Identifier",
"name": "SpecValidator",
"range": [
1559,
1572
],
"loc": {
"start": {
"line": 55,
"column": 6
},
"end": {
"line": 55,
"column": 19
}
}
},
"superClass": null,
"body": {
"type": "ClassBody",
"body": [
{
"type": "MethodDefinition",
"key": {
"type": "Identifier",
"name": "validateDataInfo",
"range": [
1724,
1740
],
"loc": {
"start": {
"line": 61,
"column": 2
},
"end": {
"line": 61,
"column": 18
}
}
},
"value": {
"type": "FunctionExpression",
"id": null,
"params": [
{
"type": "Identifier",
"name": "dataInfo",
"range": [
1741,
1749
],
"loc": {
"start": {
"line": 61,
"column": 19
},
"end": {
"line": 61,
"column": 27
}
}
}
],
"body": {
"type": "BlockStatement",
"body": [
{
"type": "IfStatement",
"test": {
"type": "UnaryExpression",
"operator": "!",
"argument": {
"type": "CallExpression",
"callee": {
"type": "Identifier",
"name": "isObject",
"range": [
1764,
1772
],
"loc": {
"start": {
"line": 62,
"column": 11
},
"end": {
"line": 62,
"column": 19
}
}
},
"arguments": [
{
"type": "Identifier",
"name": "dataInfo",
"range": [
1773,
1781
],
"loc": {
"start": {
"line": 62,
"column": 20
},
"end": {
"line": 62,
"column": 28
}
}
}
],
"range": [
1764,
1782
],
"loc": {
"start": {
"line": 62,
"column": 11
},
"end": {
"line": 62,
"column": 29
}
}
},
"prefix": true,
"range": [
1762,
1782
],
"loc": {
"start": {
"line": 62,
"column": 9
},
"end": {
"line": 62,
"column": 29
}
}
},
"consequent": {
"type": "BlockStatement",
"body": [],
"range": [
1784,
1791
],
"loc": {
"start": {
"line": 62,
"column": 31
},
"end": {
"line": 63,
"column": 5
}
}
},
"alternate": null,
"range": [
1757,
1791
],
"loc": {
"start": {
"line": 62,
"column": 4
},
"end": {
"line": 63,
"column": 5
}
}
}
],
"range": [
1751,
1795
],
"loc": {
"start": {
"line": 61,
"column": 29
},
"end": {
"line": 64,
"column": 3
}
}
},
"generator": false,
"expression": false,
"range": [
1740,
1795
],
"loc": {
"start": {
"line": 61,
"column": 18
},
"end": {
"line": 64,
"column": 3
}
}
},
"kind": "method",
"computed": false,
"range": [
1724,
1795
],
"loc": {
"start": {
"line": 61,
"column": 2
},
"end": {
"line": 64,
"column": 3
}
},
"leadingComments": [
{
"type": "Block",
"value": "*\n * Validate a DataInfo object\n * @param {DataInfo} dataInfo A DataInfo object\n * @return {ValidationResult} A ValidationResult\n ",
"range": [
1577,
1721
],
"loc": {
"start": {
"line": 56,
"column": 2
},
"end": {
"line": 60,
"column": 5
}
}
}
],
"trailingComments": [
{
"type": "Block",
"value": "*\n * Validate a Schema\n * @param {Schema} schema A Schema\n * @return {ValidationResult} A ValidationResult\n ",
"range": [
1799,
1920
],
"loc": {
"start": {
"line": 66,
"column": 2
},
"end": {
"line": 70,
"column": 5
}
}
}
],
"static": false
},
{
"type": "MethodDefinition",
"key": {
"type": "Identifier",
"name": "validateSchema",
"range": [
1923,
1937
],
"loc": {
"start": {
"line": 71,
"column": 2
},
"end": {
"line": 71,
"column": 16
}
}
},
"value": {
"type": "FunctionExpression",
"id": null,
"params": [
{
"type": "Identifier",
"name": "schema",
"range": [
1938,
1944
],
"loc": {
"start": {
"line": 71,
"column": 17
},
"end": {
"line": 71,
"column": 23
}
}
}
],
"body": {
"type": "BlockStatement",
"body": [],
"range": [
1946,
1951
],
"loc": {
"start": {
"line": 71,
"column": 25
},
"end": {
"line": 72,
"column": 3
}
}
},
"generator": false,
"expression": false,
"range": [
1937,
1951
],
"loc": {
"start": {
"line": 71,
"column": 16
},
"end": {
"line": 72,
"column": 3
}
}
},
"kind": "method",
"computed": false,
"range": [
1923,
1951
],
"loc": {
"start": {
"line": 71,
"column": 2
},
"end": {
"line": 72,
"column": 3
}
},
"leadingComments": [
{
"type": "Block",
"value": "*\n * Validate a Schema\n * @param {Schema} schema A Schema\n * @return {ValidationResult} A ValidationResult\n ",
"range": [
1799,
1920
],
"loc": {
"start": {
"line": 66,
"column": 2
},
"end": {
"line": 70,
"column": 5
}
}
}
],
"trailingComments": [
{
"type": "Block",
"value": "*\n * Validate Changes\n * @param {Changes} changes A Changes array\n * @return {ValidationResult} A ValidationResult\n ",
"range": [
1955,
2084
],
"loc": {
"start": {
"line": 74,
"column": 2
},
"end": {
"line": 78,
"column": 5
}
}
}
],
"static": false
},
{
"type": "MethodDefinition",
"key": {
"type": "Identifier",
"name": "validateChanges",
"range": [
2087,
2102
],
"loc": {
"start": {
"line": 79,
"column": 2
},
"end": {
"line": 79,
"column": 17
}
}
},
"value": {
"type": "FunctionExpression",
"id": null,
"params": [
{
"type": "Identifier",
"name": "changes",
"range": [
2103,
2110
],
"loc": {
"start": {
"line": 79,
"column": 18
},
"end": {
"line": 79,
"column": 25
}
}
}
],
"body": {
"type": "BlockStatement",
"body": [],
"range": [
2112,
2117
],
"loc": {
"start": {
"line": 79,
"column": 27
},
"end": {
"line": 80,
"column": 3
}
}
},
"generator": false,
"expression": false,
"range": [
2102,
2117
],
"loc": {
"start": {
"line": 79,
"column": 17
},
"end": {
"line": 80,
"column": 3
}
}
},
"kind": "method",
"computed": false,
"range": [
2087,
2117
],
"loc": {
"start": {
"line": 79,
"column": 2
},
"end": {
"line": 80,
"column": 3
}
},
"leadingComments": [
{
"type": "Block",
"value": "*\n * Validate Changes\n * @param {Changes} changes A Changes array\n * @return {ValidationResult} A ValidationResult\n ",
"range": [
1955,
2084
],
"loc": {
"start": {
"line": 74,
"column": 2
},
"end": {
"line": 78,
"column": 5
}
}
}
],
"static": false
}
],
"range": [
1573,
2119
],
"loc": {
"start": {
"line": 55,
"column": 20
},
"end": {
"line": 81,
"column": 1
}
}
},
"range": [
1553,
2119
],
"loc": {
"start": {
"line": 55,
"column": 0
},
"end": {
"line": 81,
"column": 1
}
},
"leadingComments": [
{
"type": "Block",
"value": "*\n * A container for data that also includes the schema and version.\n * @typedef {Object} DataInfo\n * @property {String} schema The name of the schema\n * @property {(Number|String)} version The version of the schema\n * @property {Object} data An object containing the data\n ",
"range": [
40,
343
],
"loc": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 8,
"column": 3
}
}
},
{
"type": "Block",
"value": "*\n * A schema describing the properties of data.\n * @typedef {Object} Schema\n * @property {String} name The name of the schema\n * @property {Object} columns An object of columns where the key is the unique id for the column and the value is an object of type Column\n ",
"range": [
345,
635
],
"loc": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 15,
"column": 3
}
}
},
{
"type": "Block",
"value": "*\n * A column describing a single property of data.\n * @typedef {Object} Column\n * @property {String} name The name of the column\n * @property {String} type The type of the column\n ",
"range": [
637,
822
],
"loc": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 22,
"column": 3
}
}
},
{
"type": "Block",
"value": "*\n * An array of changes containing items of type Change\n * @typedef {Array} Changes\n ",
"range": [
824,
914
],
"loc": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 27,
"column": 3
}
}
},
{
"type": "Block",
"value": "*\n * A change indicating a modification to a schema or column.\n * @typedef {Object} Change\n * @property {String} id The id of the schema that this change applies to\n * @property {String} change A string indicating the type of change,\n * this can be any of:\n * - schema.create\n * - schema.rename\n * - schema.remove\n * - column.create\n * - column.rename\n * - column.remove\n * - column.typechange\n ",
"range": [
916,
1322
],
"loc": {
"start": {
"line": 29,
"column": 0
},
"end": {
"line": 42,
"column": 3
}
}
},
{
"type": "Block",
"value": "*\n * A result of the validation containing errors when failed.\n * @typedef {Object} ValidationResult\n ",
"range": [
1325,
1434
],
"loc": {
"start": {
"line": 44,
"column": 1
},
"end": {
"line": 47,
"column": 4
}
}
},
{
"type": "Block",
"value": "*\n * A validator that can be used to validate the following objects:\n * - DataInfo\n * - Schema\n * - Changes\n ",
"range": [
1436,
1552
],
"loc": {
"start": {
"line": 49,
"column": 0
},
"end": {
"line": 54,
"column": 3
}
}
}
],
"__esdoc__pseudo_export": true,
"trailingComments": []
},
"range": [
2121,
2154
],
"loc": {
"start": {
"line": 83,
"column": 0
},
"end": {
"line": 83,
"column": 33
}
},
"leadingComments": null
},
{
"type": "ExportDefaultDeclaration",
"declaration": {
"type": "VariableDeclaration",
"kind": "let",
"loc": {
"start": {
"line": 83,
"column": 0
},
"end": {
"line": 83,
"column": 33
}
},
"declarations": [
{
"type": "VariableDeclarator",
"id": {
"type": "Identifier",
"name": "specValidator"
},
"init": {
"type": "NewExpression",
"callee": {
"type": "Identifier",
"name": "SpecValidator"
}
}
}
],
"leadingComments": [],
"trailingComments": []
},
"range": [
2121,
2154
],
"loc": {
"start": {
"line": 83,
"column": 0
},
"end": {
"line": 83,
"column": 33
}
}
}
],
"sourceType": "module",
"range": [
0,
2154
],
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 83,
"column": 33
}
},
"comments": [
{
"type": "Block",
"value": "*\n * A container for data that also includes the schema and version.\n * @typedef {Object} DataInfo\n * @property {String} schema The name of the schema\n * @property {(Number|String)} version The version of the schema\n * @property {Object} data An object containing the data\n ",
"range": [
40,
343
],
"loc": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 8,
"column": 3
}
}
},
{
"type": "Block",
"value": "*\n * A schema describing the properties of data.\n * @typedef {Object} Schema\n * @property {String} name The name of the schema\n * @property {Object} columns An object of columns where the key is the unique id for the column and the value is an object of type Column\n ",
"range": [
345,
635
],
"loc": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 15,
"column": 3
}
}
},
{
"type": "Block",
"value": "*\n * A column describing a single property of data.\n * @typedef {Object} Column\n * @property {String} name The name of the column\n * @property {String} type The type of the column\n ",
"range": [
637,
822
],
"loc": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 22,
"column": 3
}
}
},
{
"type": "Block",
"value": "*\n * An array of changes containing items of type Change\n * @typedef {Array} Changes\n ",
"range": [
824,
914
],
"loc": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 27,
"column": 3
}
}
},
{
"type": "Block",
"value": "*\n * A change indicating a modification to a schema or column.\n * @typedef {Object} Change\n * @property {String} id The id of the schema that this change applies to\n * @property {String} change A string indicating the type of change,\n * this can be any of:\n * - schema.create\n * - schema.rename\n * - schema.remove\n * - column.create\n * - column.rename\n * - column.remove\n * - column.typechange\n ",
"range": [
916,
1322
],
"loc": {
"start": {
"line": 29,
"column": 0
},
"end": {
"line": 42,
"column": 3
}
}
},
{
"type": "Block",
"value": "*\n * A result of the validation containing errors when failed.\n * @typedef {Object} ValidationResult\n ",
"range": [
1325,
1434
],
"loc": {
"start": {
"line": 44,
"column": 1
},
"end": {
"line": 47,
"column": 4
}
}
},
{
"type": "Block",
"value": "*\n * A validator that can be used to validate the following objects:\n * - DataInfo\n * - Schema\n * - Changes\n ",
"range": [
1436,
1552
],
"loc": {
"start": {
"line": 49,
"column": 0
},
"end": {
"line": 54,
"column": 3
}
}
},
{
"type": "Block",
"value": "*\n * Validate a DataInfo object\n * @param {DataInfo} dataInfo A DataInfo object\n * @return {ValidationResult} A ValidationResult\n ",
"range": [
1577,
1721
],
"loc": {
"start": {
"line": 56,
"column": 2
},
"end": {
"line": 60,
"column": 5
}
}
},
{
"type": "Block",
"value": "*\n * Validate a Schema\n * @param {Schema} schema A Schema\n * @return {ValidationResult} A ValidationResult\n ",
"range": [
1799,
1920
],
"loc": {
"start": {
"line": 66,
"column": 2
},
"end": {
"line": 70,
"column": 5
}
}
},
{
"type": "Block",
"value": "*\n * Validate Changes\n * @param {Changes} changes A Changes array\n * @return {ValidationResult} A ValidationResult\n ",
"range": [
1955,
2084
],
"loc": {
"start": {
"line": 74,
"column": 2
},
"end": {
"line": 78,
"column": 5
}
}
}
]
}