Befor generating

This commit is contained in:
marys
2026-06-01 13:17:37 +02:00
parent 3383f4bf4a
commit 1aa1b5f625
6756 changed files with 649946 additions and 1 deletions
@@ -0,0 +1,59 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var chai_1 = require("chai");
var YAML = require("../src/");
var util = require("./testUtil");
suite('YAML Syntax', function () {
test('Allow astral characters', function () {
var key = '𝑘𝑒𝑦';
var value = '𝑣𝑎𝑙𝑢𝑒';
var document = YAML.safeLoad(key + ": " + value);
chai_1.assert.deepEqual(document.mappings[0].key.value, key);
chai_1.assert.deepEqual(document.mappings[0].value.value, value);
});
test('Forbid non-printable characters', function () {
testErrors('\x01', [{
line: 1,
column: 0,
message: 'the stream contains non-printable characters',
isWarning: false
}]);
testErrors('\x7f', [{
line: 1,
column: 0,
message: 'the stream contains non-printable characters',
isWarning: false
}]);
testErrors('\x9f', [{
line: 1,
column: 0,
message: 'the stream contains non-printable characters',
isWarning: false
}]);
});
test('Forbid lone surrogates', function () {
testErrors('\udc00\ud800', [{
line: 1,
column: 0,
message: 'the stream contains non-printable characters',
isWarning: false
}]);
});
test('Allow non-printable characters inside quoted scalars', function () {
var key = '"\x7f\x9f\udc00\ud800"';
var document = YAML.safeLoad(key);
chai_1.assert.deepEqual(document.value, '\x7f\x9f\udc00\ud800');
});
test('Forbid control sequences inside quoted scalars', function () {
testErrors('"\x03"', [{
line: 0,
column: 2,
message: 'expected valid JSON character',
isWarning: false
}]);
});
});
function testErrors(input, expectedErrors) {
util.testErrors(input, expectedErrors);
}
//# sourceMappingURL=characterSet.test.js.map
@@ -0,0 +1 @@
{"version":3,"file":"characterSet.test.js","sourceRoot":"","sources":["../../test/characterSet.test.ts"],"names":[],"mappings":";;AAAA,6BAA8B;AAC9B,8BAAgC;AAChC,iCAAmC;AAEnC,KAAK,CAAC,aAAa,EAAE;IACpB,IAAI,CAAC,yBAAyB,EAAE;QAC/B,IAAM,GAAG,GAAG,QAAQ,CAAC;QACrB,IAAM,KAAK,GAAG,YAAY,CAAC;QAC3B,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAI,GAAG,UAAK,KAAO,CAAC,CAAC;QAEnD,aAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACtD,aAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iCAAiC,EAAE;QACvC,UAAU,CAAC,MAAM,EAAE,CAAC;gBACnB,IAAI,EAAE,CAAC;gBACP,MAAM,EAAE,CAAC;gBACT,OAAO,EAAC,8CAA8C;gBACtD,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC,CAAC;QAEJ,UAAU,CAAC,MAAM,EAAE,CAAC;gBACnB,IAAI,EAAE,CAAC;gBACP,MAAM,EAAE,CAAC;gBACT,OAAO,EAAC,8CAA8C;gBACtD,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC,CAAC;QAEJ,UAAU,CAAC,MAAM,EAAE,CAAC;gBACnB,IAAI,EAAE,CAAC;gBACP,MAAM,EAAE,CAAC;gBACT,OAAO,EAAC,8CAA8C;gBACtD,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,wBAAwB,EAAE;QAC9B,UAAU,CAAC,cAAc,EAAE,CAAC;gBAC3B,IAAI,EAAE,CAAC;gBACP,MAAM,EAAE,CAAC;gBACT,OAAO,EAAC,8CAA8C;gBACtD,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sDAAsD,EAAE;QAC5D,IAAM,GAAG,GAAG,wBAAwB,CAAC;QACrC,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAEpC,aAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gDAAgD,EAAE;QACtD,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACrB,IAAI,EAAE,CAAC;gBACP,MAAM,EAAE,CAAC;gBACT,OAAO,EAAC,+BAA+B;gBACvC,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AAEJ,CAAC,CAAC,CAAC;AAEH,oBAAoB,KAAa,EAAE,cAAgC;IAClE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AACxC,CAAC"}
+84
View File
@@ -0,0 +1,84 @@
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var YAML = require("../src/");
var visitor_1 = require("./visitor");
var chai = require("chai");
var assert = chai.assert;
function structure(node) {
return new DuplicateStructureBuilder().accept(node);
}
suite('Loading a single document', function () {
test('should work with document-end delimiters', function () {
var input = "---\nwhatever: true\n...";
var doc = YAML.safeLoad(input);
var expected_structure = YAML.newMap([YAML.newMapping(YAML.newScalar('whatever'), YAML.newScalar('true'))]);
assert.deepEqual(structure(doc), expected_structure);
assert.lengthOf(doc.errors, 0, "Found error(s): " + doc.errors.toString() + " when expecting none.");
});
test('Document end position should be equal to input length', function () {
var input = "\nouter:\ninner:\n ";
var doc1 = YAML.load(input);
assert.deepEqual(doc1.endPosition, input.length);
});
});
suite('Loading multiple documents', function () {
test('should work with document-end delimiters', function () {
var docs = [];
YAML.loadAll("---\nwhatever: true\n...\n---\nwhatever: false\n...", function (d) { return docs.push(d); });
var expected_structure = [
YAML.newMap([YAML.newMapping(YAML.newScalar('whatever'), YAML.newScalar('true'))]),
YAML.newMap([YAML.newMapping(YAML.newScalar('whatever'), YAML.newScalar('false'))])
];
assert.deepEqual(docs.map(function (d) { return structure(d); }), expected_structure);
docs.forEach(function (doc) {
return assert.lengthOf(doc.errors, 0, "Found error(s): " + doc.errors.toString() + " when expecting none.");
});
});
test('Last document end position should be equal to input length', function () {
var input = "\nouter1:\ninner1:\n...\n---\nouter2:\ninner2:\n ";
var documents = [];
YAML.loadAll(input, function (x) { return documents.push(x); });
var doc2 = documents[1];
assert.deepEqual(doc2.endPosition, input.length);
});
});
var DuplicateStructureBuilder = (function (_super) {
__extends(DuplicateStructureBuilder, _super);
function DuplicateStructureBuilder() {
return _super !== null && _super.apply(this, arguments) || this;
}
DuplicateStructureBuilder.prototype.visitScalar = function (node) {
return YAML.newScalar(node.value);
};
DuplicateStructureBuilder.prototype.visitMapping = function (node) {
return YAML.newMapping(this.visitScalar(node.key), this.accept(node.value));
};
DuplicateStructureBuilder.prototype.visitSequence = function (node) {
var _this = this;
var seq = YAML.newSeq();
seq.items = node.items.map(function (n) { return _this.accept(n); });
return seq;
};
DuplicateStructureBuilder.prototype.visitMap = function (node) {
var _this = this;
return YAML.newMap(node.mappings.map(function (n) { return _this.accept(n); }));
};
DuplicateStructureBuilder.prototype.visitAnchorRef = function (node) {
throw new Error("Method not implemented.");
};
DuplicateStructureBuilder.prototype.visitIncludeRef = function (node) {
throw new Error("Method not implemented.");
};
return DuplicateStructureBuilder;
}(visitor_1.AbstractVisitor));
//# sourceMappingURL=loader.test.js.map
@@ -0,0 +1 @@
{"version":3,"file":"loader.test.js","sourceRoot":"","sources":["../../test/loader.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,132 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var chai = require("chai");
var assert = chai.assert;
var scalarInference_1 = require("../src/scalarInference");
var Yaml = require("../src/index");
suite('determineScalarType', function () {
function determineScalarType(scalar) {
return scalarInference_1.determineScalarType(scalar);
}
function safeLoad(input) {
return Yaml.safeLoad(input, {});
}
var _test = test;
suite('Plain Tag Resolution', function () {
function test(name, type, acceptable) {
_test(name, function () {
for (var _i = 0, acceptable_1 = acceptable; _i < acceptable_1.length; _i++) {
var word = acceptable_1[_i];
assert.strictEqual(determineScalarType(safeLoad(word)), type, word);
}
});
}
;
test('boolean', scalarInference_1.ScalarType.bool, ["true", "True", "TRUE", "false", "False", "FALSE"]);
test("null", scalarInference_1.ScalarType.null, ["null", "Null", "NULL", "~", ""]);
_test("null as from an array", function () {
var node = Yaml.newScalar('');
node.plainScalar = true;
assert.strictEqual(determineScalarType(node), scalarInference_1.ScalarType.null, "unquoted empty string");
});
test("integer", scalarInference_1.ScalarType.int, ["0", "0o7", "0x3A", "-19"]);
test("float", scalarInference_1.ScalarType.float, ["0.", "-0.0", ".5", "+12e03", "-2E+05"]);
test("float-infinity", scalarInference_1.ScalarType.float, [".inf", "-.Inf", "+.INF"]);
test("float-NaN", scalarInference_1.ScalarType.float, [".nan", ".NaN", ".NAN"]);
test("string", scalarInference_1.ScalarType.string, ["'true'", "TrUe", "nULl", "''", "'0'", '"1"', '" .5"', ".inF", ".nAn"]);
});
suite('Flow style', function () {
test('still recognizes types', function () {
var node = safeLoad("[ null,\n true,\n 0,\n 0.,\n .inf,\n .nan,\n \"-123\n345\"\n]");
var expected = [scalarInference_1.ScalarType.null, scalarInference_1.ScalarType.bool, scalarInference_1.ScalarType.int, scalarInference_1.ScalarType.float, scalarInference_1.ScalarType.float, scalarInference_1.ScalarType.float, scalarInference_1.ScalarType.string];
assert.deepEqual(node.items.map(function (d) { return determineScalarType(d); }), expected);
});
});
suite('Block styles', function () {
var variations = ['>', '|', '>8', '|+1', '>-', '>+', '|-', '|+'];
test('are always strings', function () {
for (var _i = 0, variations_1 = variations; _i < variations_1.length; _i++) {
var variant = variations_1[_i];
assert.deepEqual(determineScalarType(safeLoad(variant + "\n 123")), scalarInference_1.ScalarType.string);
}
});
});
});
suite('parseYamlInteger', function () {
test('decimal', function () {
assert.strictEqual(scalarInference_1.parseYamlInteger("0"), 0);
assert.strictEqual(scalarInference_1.parseYamlInteger("-19"), -19);
assert.strictEqual(scalarInference_1.parseYamlInteger("+1"), 1);
});
test('hexadecimal', function () {
assert.strictEqual(scalarInference_1.parseYamlInteger("0x3A"), 58);
});
test('octal', function () {
assert.strictEqual(scalarInference_1.parseYamlInteger("0o7"), 7);
});
test('otherwise', function () {
var error;
try {
scalarInference_1.parseYamlInteger("'1'");
}
catch (e) {
error = e;
}
assert(error, "should have thrown");
});
});
suite('parseYamlBoolean', function () {
test('true', function () {
for (var _i = 0, _a = ["true", "True", "TRUE"]; _i < _a.length; _i++) {
var value = _a[_i];
assert.strictEqual(scalarInference_1.parseYamlBoolean(value), true, value);
}
});
test('false', function () {
for (var _i = 0, _a = ["false", "False", "FALSE"]; _i < _a.length; _i++) {
var value = _a[_i];
assert.strictEqual(scalarInference_1.parseYamlBoolean(value), false, value);
}
});
test('otherwise', function () {
var error;
try {
scalarInference_1.parseYamlBoolean("tRUE");
}
catch (e) {
error = e;
}
assert(error, "should have thrown");
});
});
suite('parseYamlFloat', function () {
test('float', function () {
var values = ["0.", "-0.0", ".5", "+12e03", "-2E+05"];
var expected = [0, -0, 0.5, 12000, -200000];
for (var index = 0; index < values.length; index++) {
assert.strictEqual(scalarInference_1.parseYamlFloat(values[index]), expected[index]);
}
});
test('NaN', function () {
for (var _i = 0, _a = [".nan", ".NaN", ".NAN"]; _i < _a.length; _i++) {
var value = _a[_i];
assert(isNaN(scalarInference_1.parseYamlFloat(value)), "isNaN(" + value + ")");
}
});
test('infinity', function () {
assert.strictEqual(scalarInference_1.parseYamlFloat(".inf"), Infinity);
assert.strictEqual(scalarInference_1.parseYamlFloat("-.Inf"), -Infinity);
assert.strictEqual(scalarInference_1.parseYamlFloat(".INF"), Infinity);
});
test('otherwise', function () {
var error;
try {
scalarInference_1.parseYamlFloat("text");
}
catch (e) {
error = e;
}
assert(error, "should have thrown");
});
});
//# sourceMappingURL=scalarInference.test.js.map
File diff suppressed because one or more lines are too long
@@ -0,0 +1,55 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var util = require("./testUtil");
suite('YAML Syntax', function () {
suite('Warnings for tab symbols', function () {
test('test 001', function () {
testErrors("schemas:\n" +
" - !i", [
{
line: 1,
column: 4,
message: "unknown tag <!i>",
isWarning: false
}
]);
});
test('test 002', function () {
testErrors("schemas:\n" +
" - !in", [
{
line: 1,
column: 4,
message: "unknown tag <!in>",
isWarning: false
}
]);
});
test('test 003', function () {
testErrors("schemas:\n" +
" - !inc", [
{
line: 1,
column: 4,
message: "unknown tag <!inc>",
isWarning: false
}
]);
});
test('test 004', function () {
testErrors("schemas:\n" +
" - !incl", [
{
line: 1,
column: 4,
message: "unknown tag <!incl>",
isWarning: false
}
]);
});
});
});
function testErrors(input, expectedErrors) {
util.testErrors(input, expectedErrors);
}
//# sourceMappingURL=stability.test.js.map
@@ -0,0 +1 @@
{"version":3,"file":"stability.test.js","sourceRoot":"","sources":["../../test/stability.test.ts"],"names":[],"mappings":";;AAAA,iCAAoC;AAEpC,KAAK,CAAC,aAAa,EAAE;IAEjB,KAAK,CAAC,0BAA0B,EAAE;QAE9B,IAAI,CAAC,UAAU,EAAE;YACb,UAAU,CACN,YAAY;gBACZ,QAAQ,EACR;gBACI;oBACI,IAAI,EAAE,CAAC;oBACP,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,kBAAkB;oBAC3B,SAAS,EAAE,KAAK;iBACnB;aACJ,CACJ,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,EAAE;YACb,UAAU,CACN,YAAY;gBACZ,SAAS,EACT;gBACI;oBACI,IAAI,EAAE,CAAC;oBACP,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,mBAAmB;oBAC5B,SAAS,EAAE,KAAK;iBACnB;aACJ,CACJ,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,EAAE;YACb,UAAU,CACN,YAAY;gBACZ,UAAU,EACV;gBACI;oBACI,IAAI,EAAE,CAAC;oBACP,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,oBAAoB;oBAC7B,SAAS,EAAE,KAAK;iBACnB;aACJ,CACJ,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,EAAE;YACb,UAAU,CACN,YAAY;gBACZ,WAAW,EACX;gBACI;oBACI,IAAI,EAAE,CAAC;oBACP,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,qBAAqB;oBAC9B,SAAS,EAAE,KAAK;iBACnB;aACJ,CACJ,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,oBAAoB,KAAY,EAAC,cAAgC;IAC7D,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AAC3C,CAAC"}
@@ -0,0 +1,9 @@
import ast = require("../src/yamlAST");
export interface TestError {
message: string;
line: number;
column: number;
isWarning: boolean;
}
export declare function testErrors(input: string, expectedErrors: TestError[]): void;
export declare function safeLoad(input: any): ast.YAMLNode;
+61
View File
@@ -0,0 +1,61 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var chai = require("chai");
var assert = chai.assert;
var index_1 = require("../src/index");
function testErrors(input, expectedErrors) {
var errorsMap = {};
for (var _i = 0, expectedErrors_1 = expectedErrors; _i < expectedErrors_1.length; _i++) {
var e = expectedErrors_1[_i];
var key = e.message + " at line " + e.line + " column " + e.column;
if (e.isWarning) {
key += " (warning)";
}
errorsMap[key] = true;
}
var ast = safeLoad(input);
if (!ast) {
assert.fail("The parser has failed to load YAML AST");
}
var actualErrors = ast.errors;
if (actualErrors.length == 0 && expectedErrors.length == 0) {
assert(true);
return;
}
var unexpectedErrorsMap = {};
for (var _a = 0, actualErrors_1 = actualErrors; _a < actualErrors_1.length; _a++) {
var e = actualErrors_1[_a];
var key = e.reason + " at line " + e.mark.line + " column " + e.mark.column;
if (e.isWarning) {
key += " (warning)";
}
if (!errorsMap[key]) {
unexpectedErrorsMap[key] = e;
}
else {
delete errorsMap[key];
}
}
var missingErrors = Object.keys(errorsMap);
var unexpectedErrorKeys = Object.keys(unexpectedErrorsMap);
if (missingErrors.length == 0 && unexpectedErrorKeys.length == 0) {
assert(true);
return;
}
var messageComponents = [];
if (unexpectedErrorKeys.length > 0) {
messageComponents.push("Unexpected errors:\n" + unexpectedErrorKeys.join('\n'));
}
if (missingErrors.length > 0) {
messageComponents.push("Missing errors:\n" + missingErrors.join('\n'));
}
var testFailureMessage = "\n" + messageComponents.join("\n\n");
assert(false, testFailureMessage);
}
exports.testErrors = testErrors;
;
function safeLoad(input) {
return index_1.safeLoad(input, {});
}
exports.safeLoad = safeLoad;
//# sourceMappingURL=testUtil.js.map
@@ -0,0 +1 @@
{"version":3,"file":"testUtil.js","sourceRoot":"","sources":["../../test/testUtil.ts"],"names":[],"mappings":"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"}
+18
View File
@@ -0,0 +1,18 @@
import * as YAML from '../src/';
export interface NodeVisitor {
visitScalar(node: YAML.YAMLScalar): any;
visitMapping(node: YAML.YAMLMapping): any;
visitSequence(node: YAML.YAMLSequence): any;
visitMap(node: YAML.YamlMap): any;
visitAnchorRef(node: YAML.YAMLAnchorReference): any;
visitIncludeRef(node: YAML.YAMLNode): any;
}
export declare abstract class AbstractVisitor implements NodeVisitor {
accept(node: YAML.YAMLNode): any;
abstract visitScalar(node: YAML.YAMLScalar): any;
abstract visitMapping(node: YAML.YAMLMapping): any;
abstract visitSequence(node: YAML.YAMLSequence): any;
abstract visitMap(node: YAML.YamlMap): any;
abstract visitAnchorRef(node: YAML.YAMLAnchorReference): any;
abstract visitIncludeRef(node: YAML.YAMLNode): any;
}
+33
View File
@@ -0,0 +1,33 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var YAML = require("../src/");
var AbstractVisitor = (function () {
function AbstractVisitor() {
}
AbstractVisitor.prototype.accept = function (node) {
switch (node.kind) {
case YAML.Kind.SCALAR: {
return this.visitScalar(node);
}
case YAML.Kind.MAP: {
return this.visitMap(node);
}
case YAML.Kind.MAPPING: {
return this.visitMapping(node);
}
case YAML.Kind.SEQ: {
return this.visitSequence(node);
}
case YAML.Kind.ANCHOR_REF: {
return this.visitAnchorRef(node);
}
case YAML.Kind.INCLUDE_REF: {
return this.visitIncludeRef(node);
}
}
throw new Error("Kind, " + node.kind + " not implemented.");
};
return AbstractVisitor;
}());
exports.AbstractVisitor = AbstractVisitor;
//# sourceMappingURL=visitor.js.map
@@ -0,0 +1 @@
{"version":3,"file":"visitor.js","sourceRoot":"","sources":["../../test/visitor.ts"],"names":[],"mappings":";;AAAA,8BAA+B;AAW/B;IAAA;IAgCA,CAAC;IA9BG,gCAAM,GAAN,UAAO,IAAmB;QACtB,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAChB,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACpB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAkB,IAAI,CAAC,CAAC;YACnD,CAAC;YACD,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAe,IAAI,CAAC,CAAC;YAC7C,CAAC;YACD,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACrB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAmB,IAAI,CAAC,CAAC;YACrD,CAAC;YACD,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAoB,IAAI,CAAC,CAAC;YACvD,CAAC;YACD,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,cAAc,CAA2B,IAAI,CAAC,CAAC;YAC/D,CAAC;YACD,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,WAAS,IAAI,CAAC,IAAI,sBAAmB,CAAC,CAAC;IAC3D,CAAC;IAOL,sBAAC;AAAD,CAAC,AAhCD,IAgCC;AAhCqB,0CAAe"}
@@ -0,0 +1,35 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var util = require("./testUtil");
suite('YAML Syntax', function () {
suite('Warnings for tab symbols', function () {
test('test 001', function () {
testErrors("schemas:\n" +
"\tsch1:\n", [
{
line: 1,
column: 0,
message: "Using tabs can lead to unpredictable results",
isWarning: true
}
]);
});
test('test 002', function () {
testErrors("level0:\n" +
" level1:\n" +
" level2:\n" +
" \t level3:\n", [
{
line: 3,
column: 2,
message: "Using tabs can lead to unpredictable results",
isWarning: true
}
]);
});
});
});
function testErrors(input, expectedErrors) {
util.testErrors(input, expectedErrors);
}
//# sourceMappingURL=yamlSyntax.test.js.map
@@ -0,0 +1 @@
{"version":3,"file":"yamlSyntax.test.js","sourceRoot":"","sources":["../../test/yamlSyntax.test.ts"],"names":[],"mappings":";;AAAA,iCAAoC;AAEpC,KAAK,CAAC,aAAa,EAAE;IAEjB,KAAK,CAAC,0BAA0B,EAAE;QAE9B,IAAI,CAAC,UAAU,EAAE;YACb,UAAU,CACN,YAAY;gBACZ,WAAW,EACX;gBACI;oBACI,IAAI,EAAE,CAAC;oBACP,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,8CAA8C;oBACvD,SAAS,EAAE,IAAI;iBAClB;aACJ,CACJ,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,EAAE;YACb,UAAU,CACN,WAAW;gBACX,aAAa;gBACb,eAAe;gBACf,iBAAiB,EACjB;gBACI;oBACI,IAAI,EAAE,CAAC;oBACP,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,8CAA8C;oBACvD,SAAS,EAAE,IAAI;iBAClB;aACJ,CACJ,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,oBAAoB,KAAY,EAAC,cAAgC;IAC7D,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AAC3C,CAAC"}