text: "use strict";
  
  function falcor(opts) {
      return new falcor.Model(opts);
  }
  
  /**
   * A filtering method for keys from a falcor json response.  The only gotcha
   * to this method is when the incoming json is undefined, then undefined will
   * be returned.
   *
   * @public
   * @param {Object} json - The json response from a falcor model.
   * @returns {Array} - the keys that are in the model response minus the deref
   * _private_ meta data.
   */
  falcor.keys = function getJSONKeys(json) {
      if (!json) {
          return undefined;
      }
  
      return Object.
          keys(json).
          filter(function(key) {
              return key !== "$__path";
          });
  };
  
  if (typeof Promise === "function") {
      falcor.Promise = Promise;
  } else {
      falcor.Promise = require("promise");
  }
  
  module.exports = falcor;
  
  falcor.Model = require("./Model");
  