# File lib/puppet/indirector/catalog/puppetdb.rb, line 30
  def munge_catalog(catalog, extra_request_data = {})
    profile("Munge catalog", [:puppetdb, :catalog, :munge]) do
      data = profile("Convert catalog to JSON data hash", [:puppetdb, :catalog, :convert_to_hash]) do
        catalog.to_data_hash
      end

      add_parameters_if_missing(data)
      add_namevar_aliases(data, catalog)
      stringify_titles(data)
      stringify_version(data)
      sort_unordered_metaparams(data)
      munge_edges(data)
      synthesize_edges(data, catalog)
      filter_keys(data)
      add_transaction_uuid(data, extra_request_data[:transaction_uuid])
      add_environment(data, extra_request_data[:environment])
      add_producer_timestamp(data, extra_request_data[:producer_timestamp])

      data
    end
  end