Cloud Defense Logo

Products

Solutions

Company

Book A Live Demo

Top 10 Examples of "yaml-ast-parser in functional component" in JavaScript

Dive into secure and efficient coding practices with our curated list of the top 10 examples showcasing 'yaml-ast-parser' in functional components in JavaScript. Our advanced machine learning engine meticulously scans each line of code, cross-referencing millions of open source libraries to ensure your implementation is not just functional, but also robust and secure. Elevate your React applications to new heights by mastering the art of handling side effects, API calls, and asynchronous operations with confidence and precision.

constructor(contents, row, col) {
    
    this.ast = loadYaml(contents)
    let lines = this.lines = contents.split(/\n/g, -1)

    this._index = {
      range: new IntervalTree(),
      nodePos: [],
      nodePath: {},
      posToRow: [],
    }
    
    // create index of pos to row,col
    let pos = 0
    for (let s = 0, len=lines.length; s < len; ++s) {
      this._index.posToRow.push([pos, lines[s].length])
      pos += lines[s].length + 1
    }
    this.visit(this.ast)
export default function parseYamlAST(ymlPath) {
  try {
    const contents = fs.readFileSync(ymlPath, 'utf8')
    lineNumbers = [] // reset current AST line Numbers array
    window.CURRENT_AST = {} // reset current AST
    window.CURRENT_AST.PATH = ymlPath
    lineNumbers = getLineNumberInfo(contents)
    // console.log('lineNumbers', lineNumbers)

    const yamlAST = yaml.load(contents)
    const nullYamlValues = []
    const valueWithParent = []
    parseAST(yamlAST, valueWithParent, nullYamlValues)
    // console.log('nullYamlValues', nullYamlValues)
    // console.log('valueWithParent', valueWithParent)
    // console.log(window.CURRENT_AST)

    // TODO: Validate Yaml Fields
    // validateYamlFields(valueWithParent)
    return yamlAST
  } catch (e) {
    return e
  }
}
*onHoverRef(docAnalysis, position) {
        const refValueJsonPath = docAnalysis.GetJsonPathFromJsonReferenceAt(position);
        if (refValueJsonPath) {
            for (const location of docAnalysis.GetDefinitionLocations(refValueJsonPath)) {
                yield {
                    language: "yaml",
                    value: yaml_ast_parser_1.safeDump(location.value, {})
                };
            }
        } // else {console.log("found nothing that looks like a JSON reference"); return null; }
    }
    *onHoverJsonPath(docAnalysis, position) {
function parseYAMLSource(projectSource: ProjectSource, validationContext: ValidationContext): ParsedObjectProjectSource | undefined {
    const root: YAMLNode | undefined = load(projectSource.body);

    if (!root) {
        return undefined;
    }

    root.errors.forEach(error => {
        const severity = error.isWarning ? Severity.Warning : Severity.Error;
        const endPos = getLineEndPosition(error.mark.line + 1, projectSource);
        validationContext.addMessage(new ValidationMessage(severity, error.reason, new MessageLocation(projectSource, new SourcePosition(error.mark.position, error.mark.line + 1, error.mark.column + 1), endPos)));
    });

    if (root.errors.some(error => !error.isWarning)) {
        // returning undefined will lead to ignoring this source file in future steps
        return undefined;
    }
function recursiveObjectExtraction(node: YAMLNode | undefined, object: PlainObject, validationContext: ValidationContext, source: ProjectSource): any {
    // ATTENTION: Typings of the yaml ast parser are wrong
    if (!node) {
        return object;
    }
    switch (node.kind) {
        case Kind.MAP:
            const mapNode = node as YamlMap;
            mapNode.mappings.forEach(val => {
                object[val.key.value] = recursiveObjectExtraction(val.value, {}, validationContext, source);
            });
            return object;
        case Kind.MAPPING:
            throw new Error('Should never be reached since a mapping can not exist without a map.');
        case Kind.SCALAR:
            const scalarNode = node as YAMLScalar;
            // check whether string or number scalar
            if (scalarNode.doubleQuoted || scalarNode.singleQuoted || isNaN(Number(scalarNode.value))) {
                return scalarNode.value;
            } else {
                return Number(scalarNode.value);
            }
        case Kind.SEQ:
function recursiveObjectExtraction(node: YAMLNode | undefined, object: PlainObject, validationContext: ValidationContext, source: ProjectSource): any {
    // ATTENTION: Typings of the yaml ast parser are wrong
    if (!node) {
        return object;
    }
    switch (node.kind) {
        case Kind.MAP:
            const mapNode = node as YamlMap;
            mapNode.mappings.forEach(val => {
                object[val.key.value] = recursiveObjectExtraction(val.value, {}, validationContext, source);
            });
            return object;
        case Kind.MAPPING:
            throw new Error('Should never be reached since a mapping can not exist without a map.');
        case Kind.SCALAR:
            const scalarNode = node as YAMLScalar;
            // check whether string or number scalar
            if (scalarNode.doubleQuoted || scalarNode.singleQuoted || isNaN(Number(scalarNode.value))) {
                return scalarNode.value;
            } else {
                return Number(scalarNode.value);
            }
        case Kind.SEQ:
            const seqNode = node as YAMLSequence;
            return seqNode.items.map(val => recursiveObjectExtraction(val, {}, validationContext, source));
        case Kind.INCLUDE_REF:
            validationContext.addMessage(ValidationMessage.error(`Include references are not supported`, new MessageLocation(source, node.startPosition, node.endPosition)));
            return undefined;
        case Kind.ANCHOR_REF:
function recursiveObjectExtraction(node: YAMLNode | undefined, object: PlainObject, validationContext: ValidationContext, source: ProjectSource): any {
    // ATTENTION: Typings of the yaml ast parser are wrong
    if (!node) {
        return object;
    }
    switch (node.kind) {
        case Kind.MAP:
            const mapNode = node as YamlMap;
            mapNode.mappings.forEach(val => {
                object[val.key.value] = recursiveObjectExtraction(val.value, {}, validationContext, source);
            });
            return object;
        case Kind.MAPPING:
            throw new Error('Should never be reached since a mapping can not exist without a map.');
        case Kind.SCALAR:
            const scalarNode = node as YAMLScalar;
            // check whether string or number scalar
            if (scalarNode.doubleQuoted || scalarNode.singleQuoted || isNaN(Number(scalarNode.value))) {
                return scalarNode.value;
            } else {
                return Number(scalarNode.value);
            }
        case Kind.SEQ:
            const seqNode = node as YAMLSequence;
            return seqNode.items.map(val => recursiveObjectExtraction(val, {}, validationContext, source));
        case Kind.INCLUDE_REF:
            validationContext.addMessage(ValidationMessage.error(`Include references are not supported`, new MessageLocation(source, node.startPosition, node.endPosition)));
            return undefined;
        case Kind.ANCHOR_REF:
            validationContext.addMessage(ValidationMessage.error(`Anchor references are not supported`, new MessageLocation(source, node.startPosition, node.endPosition)));
            return undefined;
parent,
									null,
									instance.endPosition,
									instance.endPosition
							  )
							: this.recursivelyBuildAst(result, item)

					itemNode.location = count++
					result.addItem(itemNode)
				}

				return result
			}
			case Yaml.Kind.SCALAR: {
				const instance = node as YamlScalar
				const type = Yaml.determineScalarType(instance)

				// The name is set either by the sequence or the mapping case.
				const name = null
				const value = instance.value

				// This is a patch for redirecting values with these strings to be boolean nodes because its not supported in the parser.
				const possibleBooleanValues = [
					"y",
					"Y",
					"yes",
					"Yes",
					"YES",
					"n",
					"N",
					"no",
					"No",
indexPositionAndPath(path, parent, node, elementIndex) {
    path = path || '.'
    if (node) {
      if (node.endPosition < node.startPosition) {
        console.error(`unexpected node start/end combination: ${JSON.stringify(node)}`)
      }
    } else if (parent.kind === YAML.Kind.SEQ) {
      let prevItem = null
      if (elementIndex > 0) {
        for (let i=elementIndex-1; i >= 0 && prevItem === null; --i) {
          prevItem = parent.items[i]
        }
      }
      let startPos = (prevItem ? prevItem.endPosition : parent.startPosition) + 1
      let endPos = elementIndex + 1 < parent.items.length ? parent.items[elementIndex+1].startPosition : parent.endPosition
      node = {startPosition: startPos, endPosition: endPos, parent: parent}
    } else if (parent.kind === YAML.Kind.MAPPING) {
      let map = parent.parent
      let startPos, endPos
      if (elementIndex > 0) {
        startPos = map.mappings[elementIndex-1].endPosition
      } else {
        startPos = parent.endPosition
var offset = positionOffset || 0;
    lineColumnFinder = lineColumnFinder || lineColumn(inYaml);
    if (!inYaml) {
        return [noDocError(inYaml)];
    }
    var root;
    try {
        root = yaml.safeLoad(inYaml);
    }
    catch (err) {
        return [loadYamlError(err, inYaml, lineColumnFinder, offset)];
    }
    if (!root) {
        return [noDocError(inYaml)];
    }
    var yamlAST = ast.safeLoad(inYaml, null);
    if (_.isEmpty(rules)) {
        return [];
    }
    var ruleTriggers = [];
    _.forEach(rules, function (rule) {
        var result = rule.test.test(root);
        if (result.matched) {
            var positions = _.flatMap(result.paths, function (path) { return ast_1.astPosition(yamlAST, path, lineColumnFinder, offset); });
            if (_.isEmpty(positions)) {
                var shorterPaths = _.map(result.paths, function (p) { return p.split(".").slice(0, -1).join("."); });
                positions = _.flatMap(shorterPaths, function (path) { return ast_1.astPosition(yamlAST, path, lineColumnFinder, offset); });
            }
            ruleTriggers.push({
                type: rule.type,
                rule: rule.name,
                received: _.map(result.paths, function (p) { return _.get(root, p); })[0],

Is your System Free of Underlying Vulnerabilities?
Find Out Now