MOON
Server: Apache
System: Linux 54-179-220-51.cprapid.com 3.10.0-1160.144.1.el7.tuxcare.els4.x86_64 #1 SMP Tue Apr 7 08:40:40 UTC 2026 x86_64
User: thehunarfound (1001)
PHP: 7.4.29
Disabled: NONE
Upload Files
File: /home/thehunarfound/public_html/DMS/node_modules/snyk-policy/lib/parser/index.js
var path = require('path');
var cloneDeep = require('lodash.clonedeep');
var semver = require('semver');
var yaml = require('js-yaml');
var addComments = require('./add-comments');

module.exports = {
  import: imports,
  export: exports,
  demunge: require('./demunge'),
  version: version(),
};

var parsers = {
  v1: require('./v1'),
};

function imports(rawYaml) {
  var data = yaml.safeLoad(rawYaml || '');

  if (!data || typeof data !== 'object') {
    data = {};
  }

  if (!data.version) {
    data.version = version();
  }

  if (data.version === 'v1') {
    data.version = 'v1.0.0';
  }

  var parser = parsers['v' + semver.major(data.version.substr(1))];

  if (!parser) {
    throw new Error('unsupported version: ' + data.version);
  }

  return parser(data);
}

function exports(policy) {
  var data = cloneDeep(policy);

  // remove any private information on the policy
  Object.keys(data).map(function (key) {
    if (key.indexOf('__') === 0) {
      delete data[key];
    }

    if (data[key] == null) { // jshint ignore:line
      delete data[key];
    }

    // strip helper functions
    if (typeof data[key] === 'function') {
      delete data[key];
    }
  });

  // ensure we always update the version of the policy format
  data.version = version();
  // put inline comments into the exported yaml file
  return addComments(yaml.safeDump(data));
}

function version() {
  var filename = path.resolve(__dirname, '..', '..', 'package.json');
  var version = require(filename).version;

  if (version && version !== '0.0.0') {
    return 'v' + version;
  }

  return 'v1.0.0';
}
;;