{"_id":"oracle-sage","_rev":"34-373d867eeb29456d6eaa2375579fd1a0","name":"oracle-sage","time":{"modified":"2022-06-23T01:34:09.803Z","created":"2015-11-13T22:45:31.328Z","0.0.1":"2015-11-13T22:45:31.328Z","1.0.0":"2015-11-14T20:33:00.785Z","0.0.2":"2015-11-14T20:34:53.029Z","0.1.0":"2016-05-11T04:00:32.907Z","0.1.1":"2016-05-12T16:02:05.414Z","0.1.2":"2017-01-21T08:10:21.689Z","0.1.3":"2017-01-21T08:29:28.657Z","0.2.0":"2017-01-21T09:37:01.453Z","0.2.1":"2017-02-07T21:40:33.625Z","0.3.0":"2017-03-07T09:42:19.481Z","0.3.1":"2017-03-10T05:54:59.969Z","0.3.3":"2017-03-28T12:36:28.270Z","0.3.4":"2017-03-28T13:14:53.568Z","0.3.5":"2017-04-05T05:21:24.317Z","0.4.0":"2017-04-08T03:56:31.293Z","0.4.1":"2017-04-12T00:52:23.277Z","0.5.0":"2018-03-02T23:25:47.998Z","0.5.1":"2018-03-05T01:07:13.653Z","0.5.2":"2018-03-05T01:20:27.276Z","1.0.1":"2018-03-06T19:20:10.084Z","1.0.2":"2018-03-06T19:36:52.378Z","1.0.3":"2018-03-09T23:19:11.816Z","1.1.0":"2018-04-03T22:34:06.532Z","1.1.1":"2018-04-16T14:11:44.905Z","1.1.2":"2018-06-04T21:05:42.373Z","1.1.3":"2018-06-27T18:43:20.692Z","1.1.4":"2018-07-02T13:28:03.251Z","1.1.5":"2018-07-20T17:02:47.024Z"},"maintainers":[{"name":"himrc","email":"mrchess8@gmail.com"},{"name":"soundlogic","email":"jordan.pollard@live.com"}],"dist-tags":{"latest":"1.1.5"},"description":"Promise driven object modeling for OracleDB","readme":"<p align=\"center\">\n  <img src=\"http://i.imgur.com/TR5LYwo.png\" alt=\"sagee\"/>\n</p>\n\n<h1 align=\"center\">Oracle Sage</h1>\n<p align=\"center\">Promise driven OracleDB object modeling for node.js</p>\n\n<!-- START doctoc generated TOC please keep comment here to allow auto update -->\n<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->\n**Table of Contents**\n\n  - [Installation](#installation)\n  - [Debugging](#debugging)\n  - [Connect](#connect)\n  - [Defining Schemas](#defining-schemas)\n  - [Schema Validations](#schema-validations)\n  - [Schema Transforms](#schema-transforms)\n  - [Other Schema Options](#other-schema-options)\n        - [readonly](#readonly)\n        - [sequenceName](#sequencename)\n  - [Initialize](#initialize)\n  - [Creation](#creation)\n  - [Updating](#updating)\n  - [Querying](#querying)\n        - [findById(value)](#findbyidvalue)\n        - [findOne({})](#findone)\n        - [count({})](#count)\n        - [select()](#select)\n  - [Model Methods](#model-methods)\n        - [get](#get)\n        - [set](#set)\n        - [unset](#unset)\n        - [toJSON/setFromJSON](#tojsonsetfromjson)\n        - [destroy](#destroy)\n        - [reload](#reload)\n  - [Model Properties](#model-properties)\n        - [id](#id)\n        - [valid](#valid)\n        - [errors](#errors)\n  - [](#)\n- [Transactions](#transactions)\n    - [Function Style](#function-style)\n        - [commit()](#commit)\n        - [rollback()](#rollback)\n    - [Promise Style](#promise-style)\n        - [commit()](#commit-1)\n        - [rollback()](#rollback-1)\n  - [Extending Models](#extending-models)\n        - [statics({})](#statics)\n        - [methods({})](#methods)\n  - [Associations and Population](#associations-and-population)\n    - [hasOne](#hasone)\n    - [hasMany](#hasmany)\n    - [hasManyThrough](#hasmanythrough)\n    - [hasAndBelongsToMany](#hasandbelongstomany)\n  - [Raw Connection](#raw-connection)\n        - [Connection](#connection)\n        - [Knex](#knex)\n  - [Utilities](#utilities)\n  - [Other Examples](#other-examples)\n  - [Contributing](#contributing)\n  - [License](#license)\n\n<!-- END doctoc generated TOC please keep comment here to allow auto update -->\n\n## Installation\n\n**NOTICE: oracle-sage uses the official node-oracledb module, which is complex to install. Be sure you have followed the official directions to install node-oracledb before installing Sage**\n\n**Oracle Sage supports Node 6+, you can publish a build to support earlier versions of Node by forking the project and modifying the node target in the .babelrc file**\n\nFirst, you must have `node-oracledb` installed. You can find the install instructions at their repository [here](https://github.com/oracle/node-oracledb#-installation).\n\nAfter that, you're good to go! Simply do...\n\n`$ npm install oracle-sage`\n\n```javascript\nvar sage = require('oracle-sage');\n```\n\n\n## Debugging\n\nFor more verbose outputs you can configure `sage.logger`, which is an instance of this popular Winston logger. By default the level is set to 0. If you set the level to `debug` you will get SQL outputs and such.\n\n```javascript\nsage.logger.transports.console.level = 'debug';\n```\n\nNote you can also just drop in your own logger via `sage.logger` directly:\n\n```javascript\nvar sage = require('sage');\nvar myLogger = require('winston');\nsage.logger = myLogger;\n```\n\nWe recommend the Winston logger. This is useful if you have a custom logger configuration, for example one that posts to AWS Cloudwatch. It doesn't necessarily have to be winston, but `sage` uses `logger.info` `logger.warn` `logger.error` `logger.debug`. So as long as your logger can handle those functions, you are all set.\n\n## Connect\n\n```javascript\nvar auth = {\n  user: \"system\",\n  password: \"oracle\"\n}\nsage.connect(\"127.0.0.1:1521/orcl\", auth).then(function() {\n  // do something...\n});\n\n```\n\n## Defining Schemas\n\n```javascript\nvar userSchema = sage.Schema({\n  ID: \"number\",\n  CREATED_AT: {\n    type: \"date\",\n    format: \"MM/DD/YYYY\",\n  },\n  CREATED_DTS: {\n    type: \"timestamp\",\n    format: \"DD/MMM/YYYY hh:mm:ss a\",\n  },\n  USERNAME: {\n    type: \"varchar\"\n    validator: function(value) {\n      return /^[a-zA-Z]+$/.test(value); // test only letters\n    },\n  },\n  GENDER: {\n    type: \"char\",\n    enum: {\n      values: ['M', 'F']\n    }\n  },\n  BIO: \"clob\"\n}, {\n  primaryKey: \"ID\"\n})\n```\n\nSupports types:\n\n- raw\n- number\n- char\n- date\n- varchar\n- clob\n- blob\n\nSpecial features:\n\n- enum\n- validators\n- transforms\n\nMethods:\n\n- getDefinition(field) - Returns a the definition for a given field\n\n\n## Schema Validations\n\nThe following validation properties are supported:\n\n- all types\n  - `required` - do not use this on PK due to a bug for now\n  - `validator(value)` - a custom function validator\n\n- number\n  - `min`\n  - `max`\n- varchar\n  - `minlength`\n  - `maxlength`\n- clob\n  - `minlength`\n  - `maxlength`\n\n```javascript\nvar userSchema = sage.Schema({\n  ID: \"number\",\n  USERNAME: {\n    required: true,\n    type: \"varchar\",\n    maxlength: 12,\n    minlength: 4,\n    validator: function(value) {\n      return /^[a-zA-Z]+$/.test(value); // test only letters\n    }\n  }\n})\n```\n\n## Schema Transforms\n\nTo access the raw output from node-oracledb and apply your own transformations you can use a Schema `transform` function.\nSage usually returns the raw output from oracle-sage except for fields that oracle-db returns as Buffers or Streams.\nSage converts Buffers to uppercase hexadecimal strings and it converts Streams to utf8 strings.\nIf you want more granular control over this conversion then you should use a `transform` function.\n`transform` functions should either return the transformed value or return a promise which resolves with the transformed value.\n\n```javascript\nconst commentSchema = new sage.Schema(\n  {\n    COMMENT_ID: {\n      type: 'raw',\n      transform: buffer => buffer.toString('utf8')\n    },\n    LIKE_COUNT: {\n      type: 'raw',\n    },\n    BODY: {\n      type: 'blob',\n      transform: value => {\n        return new Promise(resolve => {\n          const chunks = [];\n          value.on('data', chunk => {\n            chunks.push(chunk.toString());\n          });\n          value.on('end', () => {\n            resolve(`${chunks.join('')} No you may not.`);\n          });\n        });\n      }\n    },\n  },\n  {\n    primaryKey: 'COMMENT_ID',\n  }\n);\n```\n\n## Other Schema Options\n\n##### readonly\n\nWhen set on a field, during an `update()` call, this field will not be serialized into the update even if it was attempted to be changed.\n\n##### sequenceName\n\nThere is a special case for autoincrement where your Oracle database might not be able to use triggers to toggle autoincrement fields (eg. if you use Hibernate). The circumvent this, add a sequenceName property.\n\n```\nsage.Schema({\n  ID: {\n    type: \"number\",\n    sequenceName: \"SAGE_TEST.SEQUENCE_NO_TRIGGER_SEQUENCE_N\",\n    readonly: true\n  }\n  ...\n}, {\n  primaryKey: \"ID\"\n});\n```\n\nNow whenever you issue a create. A `nextval` will be executed on the sequence during insertion to get the value for the primary key.\n\n## Initialize\n\n```javascript\nvar userTable = \"users\"; // use the table name in the database\nvar User = sage.model(userTable, userSchema);\n```\n\n## Creation\n\n```javascript\nUser.create({ USERNAME: \"example\" });\n```\n\n```javascript\n// EXPERIMENTAL. May not work well with complex column like BLOB\nUser.create([\n  { USERNAME: \"create\" },\n  { USERNAME: \"many\" },\n  { USERNAME: \"at once\" }\n], { hasDbmsErrlog: true }); // This options object is optional\n```\n\nNotes:\n\n- In the schema you can set a field to be `readonly`. This will disable it from being written to on creation.\n\n- Passing an array creates in a single `INSERT ALL ... SELECT * FROM DUAL` statement\n  - There is a flag `hasDbmsErrlog` that if set true, will not fail the query if a constraint/error is hit.\n  - This flag assumes you have an error table for your table, see [this stackoverflow issue](http://stackoverflow.com/questions/13420461/oracle-insert-all-ignore-duplicates)\n\n- There is a special case for autoincrement where you might not be able to use triggers to toggle autoincrement fields (eg. if you use Hibernate). The circumvent this, add a `sequenceName` property.\n\neg.\n\n```javascript\nsage.Schema({\n  ID: {\n    type: \"number\",\n    sequenceName: \"SAGE_TEST.SEQUENCE_NO_TRIGGER_SEQUENCE_N\",\n    readonly: true\n  }\n  ...\n});\n```\n\n## Updating\n\nUpdating will only try to save the \"dirty\" fields. You can only update on schemas where you have defined a `primaryKey`.\n\n```javascript\nUser.findOne({ username: \"example\" }).then(function(user) {\n  user.set(\"username\", \"bob\");\n  user.save().then(function() {\n    // do something\n  });\n})\n```\n\n## Querying\n\nA list of current querying options. Note that querying returns models.\n\n##### findById(value)\n\nFinds model based on `value` against the schema primary key\n\n##### findOne({})\n\nAccepts `{}` which transforms into **AND** conditions. Returns the first item, and the\nis ORDERED BY the schema primary key.\n\nReturns `null` if nothing is found. Otherwise returns a result represented in the model.\n\n```javascript\nUser.findOne({ USERNAME: example, GENDER: 'M'}).then(function(resultModel) {\n  var user = resultModel;\n  user.get('GENDER') // value is \"M\"\n})\n```\n\n##### count({})\n\nAccepts optional `{}` which transforms into **AND** conditions. Returns the count.\n\n```javascript\nUser.count({ USERNAME: example }).then(function(count) { ... })\nUser.count().then(function(count) { ... })\n```\n\n##### select()\n\nA chainable query builder based off Knex. See [Knex](http://knexjs.org/) for the full API usage.\n\nNote you must use the `exec` or `execWithBindParams` to ensure results are returned as a Sage model - using `toString` then `sage.execute` will return raw query results\nThe options used with the `exec` or `execWithBindParams` methods also support options allowed here: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#execute\n\n**Note that right now sage only supports the ARRAY format for knex select if you specify multiple columns. String is OK for single column.**\n\n```javascript\nconst singleColumnExample = 'USERNAME';\nconst multipleColumnExample = ['USERNAME', 'PASSWORD'];\n// for purposes of example we're assuming we are already in a transaction\nconst options = { transaction: t };\n\nUser\n  .select() // same as select('*')\n  .where('USERNAME', 'example')\n  .limit(1)\n  .exec().then(function(resultsAsModels) {\n    resultsAsModels[0].get('USERNAME') // value is \"example\"\n  });\n\nUser\n  .select(\"USERNAME\")\n  .limit(1)\n  .exec(options).then(function(resultsAsModels) {\n    console.log(resultsAsModels);\n  });\n\nUser\n  .select()\n  .whereRaw('USERNAME = :userName')\n  .execWithBindParams(bindParams, options).then(resultsAsModels => {\n    console.log(resultsAsModels);\n  });\n```\n\n## Model Methods\n\n##### get\n\nGet a property.\n\n```javascript\nuser.get('USERNAME'); // returns \"example\" (based off above schema)\n```\n\n##### set\n\nSet a property.\n\n```javascript\nuser.set('USERNAME', 'alice');\nuser.set({ 'USERNAME': 'alice', 'GENDER': 'F');\n```\n##### unset\n\nSets the attribute value to `undefined`. Does NOT delete the attribute.\n\n```javascript\nuser.unset('USERNAME') // username is now undefined\n```\n\n##### toJSON/setFromJSON\n\nSends a lowercased version to client, and will set from a JSON and convert all key fields to uppercase. This are two useful things because OracleDBs are typically uppercase, yet client work is usually lowercase.\n\n```javascript\nuser.toJSON() // outputs json with uppercased keys\nuser.setFromJSON() // will set props based and will uppercase the keys\n```\n\n##### destroy\n\nDelete the record from database\n\n```javascript\nuser.destroy().then(function(){});\n```\n\n##### reload\n\nReload the record from database\n\n```javascript\nuser.reload().then(function(){ ... });\n```\n\n## Model Properties\n\n##### id\n\nQuick way to see the primary key ID of a model.\n\n```javascript\nuser.id // Whatever the primary key value is set to\n```\n\n##### valid\n\n```javascript\nuser.set('USERNAME', 12345);\nuser.valid // false\nuser.set('USERNAME', 'example');\nuser.valid // true\n```\n\n##### errors\n\n```javascript\nuser.errors // []\nuser.set({'USERNAME': 12345, GENDER: 'xyz');\nuser.valid // false\nuser.errors // ['USERNAME fails validator', 'GENDER is not in enum']\n```\n##\n\n# Transactions\n\nCreate a sage transaction to perform several operations before commit.\n\nYou can create transactions either invoking as a Promise, or by passing down\na function.\n\n### Function Style\n\nReturns a Promise. In this style, `commit` and `rollback` resolves the promise. When you use this style as you are forced to apply a `commit()` or `rollback()` in order to resolve the promise.\n\n##### commit()\n\nCommits the transaction and resolves the transaction promise.\n\n##### rollback()\n\nRollback the transaction and resolves the transaction promise.\n\n```javascript\nsage.transaction(function(t) {\n  User.create({ username: \"demo\" }, { transaction: t }).then(function() {\n    t.commit(); // Resolves the promise\n  }).catch(function(err) {\n    t.rollback();\n  });\n}).then(function() {\n  // transaction done!\n});\n```\n\n### Promise Style\n\nThe Promise style is available in the event you need a slightly different syntax. In this style `commit` and `rollback` will return promises. Be careful using this syntax because you may forget to call `commit` or `rollback`, which will leave a connection open.\n\nThe sage transaction concept is identical to the [SequelizeJS Unmanaged transaction](http://docs.sequelizejs.com/en/latest/docs/transactions/#unmanaged-transaction-then-callback).\n\n##### commit()\n\nCommits the transaction. Returns a promise.\n\n##### rollback()\n\nRollback the transaction. Returns a promise.\n\n```javascript\nreturn sage.transaction()\n  .then((t) => {\n    return User.create({ username: \"demo\" }, { transaction: t })\n      .then(() => User.select('*').exec({ transaction: t })) // Example using select\n      .then((results) => User.findById('1', { transaction: t}))\n      .then((user) => {\n        user.set('username', 'Bob')\n        return user.save({ transaction: t});\n      })\n      .then(() => t.commit())\n      .catch((err) => {\n        return t.rollback()\n          .then(() => {\n            throw(err);\n          });\n      });\n});\n```\n\n## Extending Models\n\nYou can add methods both on the constructor and instances of a model.\n\n##### statics({})\n\nAdd functions directly to the constructor.\n\n```javascript\nvar User = sage.model(\"user\");\nUser.statics({\n  findByEmail: function(email) {\n    return new Promise(function(resolve, reject) {\n      User.findOne({ email: email }).then(function(result) {\n        resolve(result);\n      });\n    });\n  }\n})\n\nUser.findByEmail(\"mrchess@example.com\").then(...)\n```\n\n##### methods({})\n\n\nAdd functions directly to an instance.\n\n```javascript\nvar User = sage.model(\"user\");\nUser.methods({\n  fullname: function() {\n    return(this.get('first') + this.get('last'));\n  }\n})\n\nuser = new User({ first: \"Mr\", last: \"chess\" });\nuser.fullname(); // Mrchess\n```\n\n## Associations and Population\n\n- Associations and naming conventions are Rails inspired.\n- You must `.populate()` a model in order to load the associations.\n- Saving will only save the original schema, and does not impact associations.\n\nSupports:\n- [hasOne](http://guides.rubyonrails.org/association_basics.html#has-one-association-reference)\n- [hasMany](http://guides.rubyonrails.org/association_basics.html#the-has-many-association)\n- [hasManyThrough](http://guides.rubyonrails.org/association_basics.html#the-has-many-through-association)\n- [hasAndBelongsToMany](http://guides.rubyonrails.org/association_basics.html#the-has-and-belongs-to-many-association)\n\nThe following examples satisfies the displayed database designs. The pictures are from rails so the field types in the pictures are not the exact Oracles equivilant.\n\n### hasOne\n\n![](http://i.imgur.com/YSv19qq.png)\n\n\n```javascript\nvar supplierSchema = new sage.Schema({\n  id: \"number\",\n  name: \"varchar\"\n  // Note this that you can really call this whatever you want. account, accounts, meta, whatever.\n  account: {\n    type: \"association\",\n    joinType: \"hasOne\",\n    joinsWith: \"accounts\",\n    foreignKeys: {\n      mine: \"id\",\n      theirs: \"supplier_id\"\n    },\n    model: 'accounts'\n}, {\n  primaryKey: \"id\"\n});\n\nvar accountSchema = new sage.Schema({\n  id: \"number\",\n  supplier_id: \"number\",\n  account_number: \"varchar\"\n});\n\n```\n\n### hasMany\n\n![](http://i.imgur.com/t3e1YFf.png)\n\n```javascript\nvar customersSchema = new sage.Schema({\n  id: \"number\",\n  name: \"varchar\"\n  orders: {\n    type: \"association\",\n    joinType: \"hasMany\",\n    joinsWith: \"orders\",\n    foreignKeys: {\n      mine: \"id\",\n      theirs: \"customer_id\"\n    },\n    model: 'orders'\n}, {\n  primaryKey: \"id\"\n});\n\nvar ordersSchema = new sage.Schema({\n  id: \"number\",\n  customer_id: \"number\",\n  order_date: {\n    type: \"date\",\n  format: \"MM/DD/YYYY\"\n  }\n});\n\n```\n\n### hasManyThrough\n\n![](http://i.imgur.com/Bb05jN1.png)\n\n```javascript\nvar physicianSchema = new sage.Schema({\n  id: \"number\",\n  name: \"varchar\"\n  patients: {\n    type: \"association\",\n    joinType: \"hasManyThrough\",\n    joinTable: \"appointments\",\n    joinsWith: \"patients\",\n    foreignKeys: { // foreign keys in the association table\n      mine: 'physician_id',\n      theirs: 'patient_id'\n    },\n    model: 'patients' // what model to cast in to when results are returned\n  }\n}, {\n  primaryKey: \"id\"\n});\n\n// It is not necessary to put the association here unless you want to populate\n// physicians on a patient model\nvar patientSchema = new sage.Schema({\n  id: \"number\",\n  name: \"varchar\"\n}, {\n  primaryKey: \"id\"\n})\n\n// Create the models\nvar Physician = sage.model(\"physicians\", physicianSchema);\nvar Patient = sage.model(\"patients\", patientSchema);\n\n// Example usage\nPhysician.findById(1).then(function(physician) {\n  physician.populate().then(function() {\n    physician.get('patients').length; // value would be how ever many patients were returned\n    var patient = physician.get('patients')[0]; // get the first patient\n    patient.get('name') // return patient name\n  })\n})\n\n```\n\n### hasAndBelongsToMany\n\n![](http://i.imgur.com/fj6KKBB.png)\n\n```javascript\nvar assemblySchema = new sage.Schema({\n  id: \"number\",\n  name: \"varchar\"\n  parts: {\n    type: \"association\",\n    joinType: \"hasAndBelongsToMany\",\n    joinTable: \"assemblies_parts\",\n    joinsWith: \"parts\",\n    foreignKeys: { // foreign keys in the association table\n      mine: 'assembly_id',\n      theirs: 'part_id'\n    },\n    model: 'parts' // what model to cast in to when results are returned\n  }\n}, {\n  primaryKey: \"id\"\n});\n\n// It is not necessary to put the association here unless you want to populate\n// assemblies on a parts model\nvar partsSchema = new sage.Schema({\n  id: \"number\",\n  part_number: \"varchar\"\n}, {\n  primaryKey: \"id\"\n})\n\n// Create the models\nvar Assembly = sage.model(\"assemblies\", assemblySchema);\nvar Part = sage.model(\"parts\", partsSchema);\n\n// Example usage\nAssembly.findById(1).then(function(assemblyModel) {\n  assemblyModel.populate().then(function() {\n    assemblyModel.get('parts'); // array of Part models\n  })\n)}\n\n```\n\n## Raw Connection\n\n##### Connection\n\nYou can directly access a `node-oracledb` [connection.execute()](https://github.com/oracle/node-oracledb/blob/master/doc/api.md#execute) from the pool at:\n\n```javascript\nsage.execute(sql, bindParams, options)\n  .then(resultsAsOracleResultObject => {\n    console.log('Do something.')\n  });\n```\n\nThis is a direct exposure of:\nhttps://github.com/oracle/node-oracledb/blob/master/doc/api.md#-42-connection-methods\n\nDon't worry to release the connection, as the sage `execute` wrapper handles that for you.\n\n\n##### Knex\n\nKnex is directly exposed in sage as well through `sage.knex`.\nSee [Knex](http://knexjs.org/) for the full API usage.\n\nKnex is strictly used for query building. You can use it with the raw connection. For example:\n\n```javascript\nvar query = sage.knex.select().from('user').toString();\nsage.execute(query).then(function(response) {\n  console.log(response)\n});\n```\n\nDon't worry to release the connection, as the sage `execute` wrapper handles that for you.\n\nSee [Knex](http://knexjs.org/) for the full API usage.\n\n## Utilities\n\nThere is a useful utility called `sage.util.resultToJSON(result)`.\n\nYou can pass in a `result` (and optional Schema if using transform functions) from a `sage.execute()` and it will transform the native oracle results into a JSON array that you can pass down to your model. eg.\n\n```javascript\nconst someSQL = 'SELECT * FROM USER';\nsage.execute(someSQL)\n  .then(result => sage.util.resultToJSON(result))\n  .then(resultsAsJson => {\n    const users = _.map(resultsAsJson, (user) => {\n      return new User(user);\n    });\n  });\n```\n\n## Other Examples\n\nBasic example of some common functionality.\n```javascript\nvar user;\n\nUser.create({USERNAME: \"example\"}).then(function() {\n  return User.findOne({USERNAME: \"example\"});\n}).then(function(resultModel) {\n  user = resultModel;\n  user.get('USERNAME'); // example\n  user.set('USERNAME', 'alice');\n  return user.save();\n}).then(function() {\n  user.get('USERNAME'); // alice\n});\n\n```\n\n## Contributing\n\nThe tests suite assumes you have a local Oracle 11g database set up with the following information:\n\n```\nHostname: localhost\nPort: 1521\nService name: xe\nUsername: SAGE_TEST\nPassword: oracle\n```\n\nYou can install a VM here.\nhttps://blogs.oracle.com/opal/entry/the_easiest_way_to_enable\n\n## License\n\nThe MIT License (MIT)\n\nCopyright (c) 2016 Foundation Medicine, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the “Software”), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","versions":{"0.0.2":{"name":"oracle-sage","version":"0.0.2","description":"placeholder for the future module","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"Justin Ho","email":"mrchess8@gmail.com","url":"http://github.com/himrc"},"license":"ISC","_id":"oracle-sage@0.0.2","_shasum":"6da547c7124772aed1b62fffcc43413e9fbb912e","_from":".","_npmVersion":"2.7.5","_nodeVersion":"0.12.2","_npmUser":{"name":"himrc","email":"mrchess8@gmail.com"},"dist":{"shasum":"6da547c7124772aed1b62fffcc43413e9fbb912e","tarball":"https://registry.npmjs.org/oracle-sage/-/oracle-sage-0.0.2.tgz","integrity":"sha512-HAKw6vHtxnFisRbnKI8uHuHSMIY6CKAnC6J5q1UQsQ/xW+9BLvihn/2HoFxaS80JX50eeYZwrazoynNTNxQN5Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFGPY5CmkOZHZ4m5yCIeCB2xVnYSduQFNn3CX2MzYbZ0AiAQoQmmCv8x6+VEhuSzq8F/hJ+C2Qy/Wipg9YKnUJf3gQ=="}]},"maintainers":[{"name":"himrc","email":"mrchess8@gmail.com"}],"directories":{}},"0.1.0":{"name":"oracle-sage","description":"Promise driven object modeling for OracleDB","version":"0.1.0","main":"./build/sage.js","directories":{"test":"test"},"scripts":{"test":"mocha --timeout 30000","watch":"babel src -d build -w"},"license":"MIT","author":{"name":"Justin Ho","email":"mrchess8@gmail.com","url":"http://github.com/himrc"},"dependencies":{"async":"^1.5.2","bluebird":"^3.0.5","knex":"0.9.0","lodash":"^3.10.1","moment":"^2.10.6","object-assign":"^4.0.1","oracledb":"^1.3.0","promise":"^7.1.1","simple-oracledb":"0.0.15"},"devDependencies":{"babel-preset-es2015":"^6.1.4","chai":"^3.5.0"},"bugs":{"url":"https://github.com/FoundationMedicineInc/oracle-sage/issues/new"},"repository":{"type":"git","url":"git+https://github.com/FondationMedicineInc/oracle-sage.git"},"gitHead":"1a44b1831184f0b27b03b4df9c09fd40b7f1d78b","homepage":"https://github.com/FondationMedicineInc/oracle-sage#readme","_id":"oracle-sage@0.1.0","_shasum":"a8cf4631d3289916063cb85aff4413532d4ae3e0","_from":".","_npmVersion":"2.14.9","_nodeVersion":"0.12.10","_npmUser":{"name":"himrc","email":"mrchess8@gmail.com"},"dist":{"shasum":"a8cf4631d3289916063cb85aff4413532d4ae3e0","tarball":"https://registry.npmjs.org/oracle-sage/-/oracle-sage-0.1.0.tgz","integrity":"sha512-HB6d5WzxFkOjHbrJCspXAFDXse+6titv3J946V3QormcTg9ceYyO0T5ePMa6/HaraYW1u4iZoFOXx+M1+zYG6w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG2AVOXbxTFo3qokbXVfw2AyN6lXdya3fN3Cqk6n/J6hAiAFfRCsB6HXQDL1L3jB+wUE5E2G75y5qHPeMpjlM1A72Q=="}]},"maintainers":[{"name":"himrc","email":"mrchess8@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/oracle-sage-0.1.0.tgz_1462939230413_0.8995981570333242"}},"0.1.1":{"name":"oracle-sage","description":"Promise driven object modeling for OracleDB","version":"0.1.1","main":"./build/sage.js","directories":{"test":"test"},"scripts":{"test":"mocha --timeout 30000","watch":"babel src -d build -w"},"license":"MIT","author":{"name":"Justin Ho","email":"mrchess8@gmail.com","url":"http://github.com/himrc"},"dependencies":{"async":"^1.5.2","bluebird":"^3.0.5","knex":"0.9.0","lodash":"^3.10.1","moment":"^2.10.6","object-assign":"^4.0.1","oracledb":"^1.3.0","promise":"^7.1.1","simple-oracledb":"0.0.15"},"devDependencies":{"babel-preset-es2015":"^6.1.4","chai":"^3.5.0"},"bugs":{"url":"https://github.com/FoundationMedicineInc/oracle-sage/issues/new"},"repository":{"type":"git","url":"git+https://github.com/FoundationMedicineInc/oracle-sage.git"},"gitHead":"980785f229424adcbf9c6942fd1c2b5d52bdf265","homepage":"https://github.com/FoundationMedicineInc/oracle-sage#readme","_id":"oracle-sage@0.1.1","_shasum":"583ceac3382eb2fdb08ea432c35c9add48d19819","_from":".","_npmVersion":"2.14.9","_nodeVersion":"0.12.10","_npmUser":{"name":"himrc","email":"mrchess8@gmail.com"},"dist":{"shasum":"583ceac3382eb2fdb08ea432c35c9add48d19819","tarball":"https://registry.npmjs.org/oracle-sage/-/oracle-sage-0.1.1.tgz","integrity":"sha512-L3VNtTiuzp5PeETiBQWxhq9W/EWqytB+r1QTolQJsaxqGYOAbVV0IXaiQtgQp7ZFWgeN6PfiL4Ay7s6KKYNrAg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAi6XYKPgdTvN2jkPlNSF+Z99156+fYjhW9rhY+2x91JAiATUXWZ3346BwrPtCnPmk/I///p/q/GmSC4kz48W7+DhQ=="}]},"maintainers":[{"name":"himrc","email":"mrchess8@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/oracle-sage-0.1.1.tgz_1463068922767_0.6884950757957995"}},"0.1.2":{"name":"oracle-sage","description":"Promise driven object modeling for OracleDB","version":"0.1.2","main":"./build/sage.js","directories":{"test":"test"},"scripts":{"test":"node_modules/mocha/bin/mocha --timeout 30000","watch":"babel src -d build -w"},"license":"MIT","author":{"name":"Justin Ho","email":"mrchess8@gmail.com","url":"http://github.com/himrc"},"dependencies":{"async":"^2.1.2","bluebird":"^3.4.6","knex":"0.12.6 ","lodash":"^4.15.0","moment":"^2.15.1","object-assign":"^4.1.0","oracledb":"1.11.0","promise":"^7.1.1","simple-oracledb":"1.1.21","winston":"^2.2.0"},"devDependencies":{"babel-preset-es2015":"^6.18.0","chai":"^3.5.0","mocha":"^2.3.4"},"bugs":{"url":"https://github.com/FoundationMedicineInc/oracle-sage/issues/new"},"repository":{"type":"git","url":"git+https://github.com/FoundationMedicineInc/oracle-sage.git"},"gitHead":"1023e615d178c6219942ae96095108475110fb31","homepage":"https://github.com/FoundationMedicineInc/oracle-sage#readme","_id":"oracle-sage@0.1.2","_shasum":"482cdb898cc88191f67d3e4a0fba65e9a1f3e967","_from":".","_npmVersion":"4.1.1","_nodeVersion":"6.6.0","_npmUser":{"name":"himrc","email":"mrchess8@gmail.com"},"dist":{"shasum":"482cdb898cc88191f67d3e4a0fba65e9a1f3e967","tarball":"https://registry.npmjs.org/oracle-sage/-/oracle-sage-0.1.2.tgz","integrity":"sha512-s0T1fsSJFGe0HIow6DLlNjSA6df9tRqw9emzjeNeV4NeX+YLC1O8itesLUkjSSiXJBaZ19NTAX4VSjgnXpPx3g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBRg4c2BLNHN4KS/Jzm3nIcjIHrofzUUq/oL50mEf+xAAiBJzJQ/Wgl02xSMmgZnjS60RSKpAkad1Ups0N8MejX48w=="}]},"maintainers":[{"name":"himrc","email":"mrchess8@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/oracle-sage-0.1.2.tgz_1484986219741_0.0495687669608742"}},"0.1.3":{"name":"oracle-sage","description":"Promise driven object modeling for OracleDB","version":"0.1.3","main":"./build/sage.js","directories":{"test":"test"},"scripts":{"test":"node_modules/mocha/bin/mocha --timeout 30000","watch":"babel src -d build -w"},"license":"MIT","author":{"name":"Justin Ho","email":"mrchess8@gmail.com","url":"http://github.com/himrc"},"dependencies":{"async":"^2.1.2","bluebird":"^3.4.6","knex":"0.12.6 ","lodash":"^4.15.0","moment":"^2.15.1","object-assign":"^4.1.0","oracledb":"1.11.0","promise":"^7.1.1","simple-oracledb":"1.1.21","winston":"^2.2.0"},"devDependencies":{"babel-preset-es2015":"^6.18.0","chai":"^3.5.0","mocha":"^2.3.4"},"bugs":{"url":"https://github.com/FoundationMedicineInc/oracle-sage/issues/new"},"repository":{"type":"git","url":"git+https://github.com/FoundationMedicineInc/oracle-sage.git"},"gitHead":"baff8317c09fc5a0f3c89069f17d752a3f320582","homepage":"https://github.com/FoundationMedicineInc/oracle-sage#readme","_id":"oracle-sage@0.1.3","_shasum":"02e2648f4d9722e7e20a585066ad94ce03a12613","_from":".","_npmVersion":"4.1.1","_nodeVersion":"6.6.0","_npmUser":{"name":"himrc","email":"mrchess8@gmail.com"},"dist":{"shasum":"02e2648f4d9722e7e20a585066ad94ce03a12613","tarball":"https://registry.npmjs.org/oracle-sage/-/oracle-sage-0.1.3.tgz","integrity":"sha512-wrwbgoHeyAIoAyNuWyWfCWmcONzkuZcT/8PXe5t8VNfznWyH5/TdwSTO+sHTjshogwOJrdkVprpyl6xwNphdug==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCwzDyVpQf0rqqBHUt49w1DT3P1vnymtqzJ7pHRQqLlZwIhANY7w4orfeC5+ty/SxUyrqq0LapzZgawgYRf7SfLtiXq"}]},"maintainers":[{"name":"himrc","email":"mrchess8@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/oracle-sage-0.1.3.tgz_1484987368049_0.8044934819918126"}},"0.2.0":{"name":"oracle-sage","description":"Promise driven object modeling for OracleDB","version":"0.2.0","main":"./build/sage.js","directories":{"test":"test"},"scripts":{"test":"node_modules/mocha/bin/mocha --timeout 30000","watch":"babel src -d build -w"},"license":"MIT","author":{"name":"Justin Ho","email":"mrchess8@gmail.com","url":"http://github.com/himrc"},"dependencies":{"async":"^2.1.2","bluebird":"^3.4.6","knex":"0.12.6 ","lodash":"^4.15.0","moment":"^2.15.1","object-assign":"^4.1.0","oracledb":"1.11.0","promise":"^7.1.1","simple-oracledb":"1.1.21","winston":"^2.2.0"},"devDependencies":{"babel-preset-es2015":"^6.18.0","chai":"^3.5.0","mocha":"^2.3.4"},"bugs":{"url":"https://github.com/FoundationMedicineInc/oracle-sage/issues/new"},"repository":{"type":"git","url":"git+https://github.com/FoundationMedicineInc/oracle-sage.git"},"gitHead":"93339f5a46216d18824befb9f5fded86d30dc354","homepage":"https://github.com/FoundationMedicineInc/oracle-sage#readme","_id":"oracle-sage@0.2.0","_shasum":"edefe3ec267f3e28bff92cf5ef6d8f25c98fcb91","_from":".","_npmVersion":"4.1.1","_nodeVersion":"6.6.0","_npmUser":{"name":"himrc","email":"mrchess8@gmail.com"},"dist":{"shasum":"edefe3ec267f3e28bff92cf5ef6d8f25c98fcb91","tarball":"https://registry.npmjs.org/oracle-sage/-/oracle-sage-0.2.0.tgz","integrity":"sha512-gdU8n7jwalbscF1sX+SQi16pNp3L4JkdzpoHEvhdGSMJcR9RR5q4f9+jxZ/sKjKTBXrU26Npl1b6be0jyAYpjg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAnZ+KZWAboP1KWdpbH1cM596GckTz5J8rZawbnyJGtAAiA91bIp1o4ONIiTAPyermV9EJoS9aKnOSicNI1MFCquRw=="}]},"maintainers":[{"name":"himrc","email":"mrchess8@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/oracle-sage-0.2.0.tgz_1484991419592_0.5063788674306124"}},"0.2.1":{"name":"oracle-sage","description":"Promise driven object modeling for OracleDB","version":"0.2.1","main":"./build/sage.js","directories":{"test":"test"},"scripts":{"test":"node_modules/mocha/bin/mocha --timeout 30000","watch":"babel src -d build -w"},"license":"MIT","author":{"name":"Justin Ho","email":"mrchess8@gmail.com","url":"http://github.com/himrc"},"dependencies":{"async":"^2.1.2","bluebird":"^3.4.6","knex":"0.12.6 ","lodash":"^4.15.0","moment":"^2.15.1","object-assign":"^4.1.0","oracledb":"1.11.0","promise":"^7.1.1","simple-oracledb":"1.1.21","winston":"^2.2.0"},"devDependencies":{"babel-preset-es2015":"^6.18.0","chai":"^3.5.0","mocha":"^2.3.4"},"bugs":{"url":"https://github.com/FoundationMedicineInc/oracle-sage/issues/new"},"repository":{"type":"git","url":"git+https://github.com/FoundationMedicineInc/oracle-sage.git"},"gitHead":"c11e48a84ae4cd7d120e7533fae9fda1b17347e5","homepage":"https://github.com/FoundationMedicineInc/oracle-sage#readme","_id":"oracle-sage@0.2.1","_shasum":"378e3a3c2ac9a991282b14883f27e8bd76a65458","_from":".","_npmVersion":"4.1.1","_nodeVersion":"6.6.0","_npmUser":{"name":"himrc","email":"mrchess8@gmail.com"},"dist":{"shasum":"378e3a3c2ac9a991282b14883f27e8bd76a65458","tarball":"https://registry.npmjs.org/oracle-sage/-/oracle-sage-0.2.1.tgz","integrity":"sha512-obIm6Jh5oxOSlBCxs1XRlLPYwk1R9UYE30NKNgAi7Q8pjVW0DTtteQhWR11vPULcldvv3oQwUTqCZsyTqdDb7A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDqezyHwF1QJJ5LDekfaj6p/l8unFAq074m09ToggY7WAIhANpLZQlhRZrPnI6nU56plwyJN3Gd/xojXeExMQSLR3ew"}]},"maintainers":[{"name":"himrc","email":"mrchess8@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/oracle-sage-0.2.1.tgz_1486503631673_0.09508807631209493"}},"0.3.0":{"name":"oracle-sage","description":"Promise driven object modeling for OracleDB","version":"0.3.0","main":"./build/sage.js","directories":{"test":"test"},"scripts":{"test":"node_modules/mocha/bin/mocha --recursive --timeout 30000","watch":"babel src -d build -w"},"license":"MIT","author":{"name":"Justin Ho","email":"mrchess8@gmail.com","url":"http://github.com/himrc"},"dependencies":{"async":"^2.1.2","bluebird":"^3.4.6","knex":"0.12.6 ","lodash":"^4.15.0","moment":"^2.15.1","object-assign":"^4.1.0","oracledb":"1.11.0","promise":"^7.1.1","simple-oracledb":"^1.1.59","winston":"^2.2.0"},"devDependencies":{"babel-preset-es2015":"^6.18.0","chai":"^3.5.0","mocha":"^2.3.4"},"bugs":{"url":"https://github.com/FoundationMedicineInc/oracle-sage/issues/new"},"repository":{"type":"git","url":"git+https://github.com/FoundationMedicineInc/oracle-sage.git"},"gitHead":"7f7604f1fd92a7317229427b51e812d504028ae1","homepage":"https://github.com/FoundationMedicineInc/oracle-sage#readme","_id":"oracle-sage@0.3.0","_shasum":"458d4e8d28454afb9aadb9f0ba7fef692745701f","_from":".","_npmVersion":"4.1.1","_nodeVersion":"6.6.0","_npmUser":{"name":"himrc","email":"mrchess8@gmail.com"},"dist":{"shasum":"458d4e8d28454afb9aadb9f0ba7fef692745701f","tarball":"https://registry.npmjs.org/oracle-sage/-/oracle-sage-0.3.0.tgz","integrity":"sha512-KeXBQN4XC30eFkcIt1WRZhtWh8omOgTTH9fvPk/XJg7EVPvIH3Flq9rCY2qgK/CMYA0WIFr6hXeGKhMVA0xEPA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDxYBpi8hf1QY0p5MyCpk8j8klykR8ox6JLAo5iPyk0RAiEA4yVCTyxkHWwT0mOIxiFdloqUgpPRYPSRHeKj6CBFx2Q="}]},"maintainers":[{"name":"himrc","email":"mrchess8@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/oracle-sage-0.3.0.tgz_1488879737430_0.984324854798615"}},"0.3.1":{"name":"oracle-sage","description":"Promise driven object modeling for OracleDB","version":"0.3.1","main":"./build/sage.js","directories":{"test":"test"},"scripts":{"test":"node_modules/mocha/bin/mocha --recursive --timeout 30000","watch":"babel src -d build -w"},"license":"MIT","author":{"name":"Justin Ho","email":"mrchess8@gmail.com","url":"http://github.com/himrc"},"dependencies":{"async":"^2.1.2","bluebird":"^3.4.6","knex":"0.12.6 ","lodash":"^4.15.0","moment":"^2.15.1","object-assign":"^4.1.0","oracledb":"1.11.0","promise":"^7.1.1","simple-oracledb":"^1.1.59","winston":"^2.2.0"},"devDependencies":{"babel-preset-es2015":"^6.18.0","chai":"^3.5.0","mocha":"^2.3.4"},"bugs":{"url":"https://github.com/FoundationMedicineInc/oracle-sage/issues/new"},"repository":{"type":"git","url":"git+https://github.com/FoundationMedicineInc/oracle-sage.git"},"gitHead":"e15cbfe4b18e7dcc1cda6abf54bc99c812debcbd","homepage":"https://github.com/FoundationMedicineInc/oracle-sage#readme","_id":"oracle-sage@0.3.1","_shasum":"043c2dafc94ec35ec0a71e49d2c834980103dddf","_from":".","_npmVersion":"4.1.1","_nodeVersion":"6.6.0","_npmUser":{"name":"himrc","email":"mrchess8@gmail.com"},"dist":{"shasum":"043c2dafc94ec35ec0a71e49d2c834980103dddf","tarball":"https://registry.npmjs.org/oracle-sage/-/oracle-sage-0.3.1.tgz","integrity":"sha512-2PNw4lplOAVhauJH5EGhAFWKv4lgyCu5T89CoJwOZJEx09P0T5gM15Ya3/kGxZfkctecyI6rbsGWltEIopgnGA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH+beHH0Aqf0yv0DSLNzGUoaqLMPQHMBjhpX+cYtiffTAiBImPcJcnQCvapu+ME0IhuhCV3uygT0ljLiAgRyGKgyUA=="}]},"maintainers":[{"name":"himrc","email":"mrchess8@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/oracle-sage-0.3.1.tgz_1489125299252_0.9575894959270954"}},"0.3.3":{"name":"oracle-sage","description":"Promise driven object modeling for OracleDB","version":"0.3.3","main":"./build/sage.js","directories":{"test":"test"},"scripts":{"test":"node_modules/mocha/bin/mocha --recursive --timeout 30000","watch":"babel src -d build -w"},"license":"MIT","author":{"name":"Justin Ho","email":"mrchess8@gmail.com","url":"http://github.com/himrc"},"dependencies":{"async":"^2.1.2","bluebird":"^3.4.6","knex":"0.12.6 ","lodash":"^4.15.0","moment":"^2.15.1","object-assign":"^4.1.0","oracledb":"1.11.0","promise":"^7.1.1","simple-oracledb":"^1.1.59","winston":"^2.2.0"},"devDependencies":{"babel-preset-es2015":"^6.18.0","chai":"^3.5.0","mocha":"^2.3.4"},"bugs":{"url":"https://github.com/FoundationMedicineInc/oracle-sage/issues/new"},"repository":{"type":"git","url":"git+https://github.com/FoundationMedicineInc/oracle-sage.git"},"gitHead":"60ce20b2a990eedf39af11944aeb8e8e0d1a8c44","homepage":"https://github.com/FoundationMedicineInc/oracle-sage#readme","_id":"oracle-sage@0.3.3","_shasum":"1fcb6b221cf362c01ebef2b704e261c1a827bd6a","_from":".","_npmVersion":"4.1.1","_nodeVersion":"6.6.0","_npmUser":{"name":"himrc","email":"mrchess8@gmail.com"},"dist":{"shasum":"1fcb6b221cf362c01ebef2b704e261c1a827bd6a","tarball":"https://registry.npmjs.org/oracle-sage/-/oracle-sage-0.3.3.tgz","integrity":"sha512-dhUp9XPkW781I0E7w8h5c7nKh8y9dM7YzNjtOYYR0vpMhebt5sT9hx7ZOH/9WIT1ncPEbn70ox/L5reBkqgIQQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG2f3h4KFjeD66U+MmPJcglF5+GZUFYMrbYsetip0d7FAiEAxVlfWeOz8NKsjNUNVp72ucpKtPOsjWWufaJpygsbG3o="}]},"maintainers":[{"name":"himrc","email":"mrchess8@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/oracle-sage-0.3.3.tgz_1490704586034_0.487368400208652"}},"0.3.4":{"name":"oracle-sage","description":"Promise driven object modeling for OracleDB","version":"0.3.4","main":"./build/sage.js","directories":{"test":"test"},"scripts":{"test":"node_modules/mocha/bin/mocha --recursive --timeout 30000","watch":"babel src -d build -w"},"license":"MIT","author":{"name":"Justin Ho","email":"mrchess8@gmail.com","url":"http://github.com/himrc"},"dependencies":{"async":"^2.1.2","bluebird":"^3.4.6","knex":"0.12.6 ","lodash":"^4.15.0","moment":"^2.15.1","object-assign":"^4.1.0","oracledb":"1.11.0","promise":"^7.1.1","simple-oracledb":"^1.1.59","winston":"^2.2.0"},"devDependencies":{"babel-preset-es2015":"^6.18.0","chai":"^3.5.0","mocha":"^2.3.4"},"bugs":{"url":"https://github.com/FoundationMedicineInc/oracle-sage/issues/new"},"repository":{"type":"git","url":"git+https://github.com/FoundationMedicineInc/oracle-sage.git"},"gitHead":"3305e54fadcd8b60dc0908a7f1d2c94f0ef1da97","homepage":"https://github.com/FoundationMedicineInc/oracle-sage#readme","_id":"oracle-sage@0.3.4","_shasum":"fe4d0b7e9f59d197a0f7d7f07575c2e63b7781d3","_from":".","_npmVersion":"4.1.1","_nodeVersion":"6.6.0","_npmUser":{"name":"himrc","email":"mrchess8@gmail.com"},"dist":{"shasum":"fe4d0b7e9f59d197a0f7d7f07575c2e63b7781d3","tarball":"https://registry.npmjs.org/oracle-sage/-/oracle-sage-0.3.4.tgz","integrity":"sha512-BVwRKV0mVr0ivHVtoClB2m8IF9RLiOiFslEJoKXUPk8mingGgaqLRpXemCn+slkjxVzO9tiWU+3+VYAB/ohX8g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICJKVOm/BOCzFjQNEj6SPz7TNmJNIDEnq14S5GYOKENmAiEAiYFxy9RMLHrQDXLtF8NiLLSZt0k6H/9KdBhXGktjwqE="}]},"maintainers":[{"name":"himrc","email":"mrchess8@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/oracle-sage-0.3.4.tgz_1490706891412_0.36757494043558836"}},"0.3.5":{"name":"oracle-sage","description":"Promise driven object modeling for OracleDB","version":"0.3.5","main":"./build/sage.js","directories":{"test":"test"},"scripts":{"test":"node_modules/mocha/bin/mocha --recursive --timeout 30000","watch":"babel src -d build -w"},"license":"MIT","author":{"name":"Justin Ho","email":"mrchess8@gmail.com","url":"http://github.com/himrc"},"dependencies":{"async":"^2.1.2","bluebird":"^3.4.6","knex":"0.12.6 ","lodash":"^4.15.0","moment":"^2.15.1","object-assign":"^4.1.0","oracledb":"1.11.0","promise":"^7.1.1","simple-oracledb":"^1.1.59","winston":"^2.2.0"},"devDependencies":{"babel-preset-es2015":"^6.18.0","chai":"^3.5.0","mocha":"^2.3.4"},"bugs":{"url":"https://github.com/FoundationMedicineInc/oracle-sage/issues/new"},"repository":{"type":"git","url":"git+https://github.com/FoundationMedicineInc/oracle-sage.git"},"gitHead":"f816fe33d4361225c50c3635f461f35ce6213fab","homepage":"https://github.com/FoundationMedicineInc/oracle-sage#readme","_id":"oracle-sage@0.3.5","_shasum":"c13e82168b36f85f3d46331f8e1c93dcbeeaadb9","_from":".","_npmVersion":"4.1.1","_nodeVersion":"6.6.0","_npmUser":{"name":"himrc","email":"mrchess8@gmail.com"},"dist":{"shasum":"c13e82168b36f85f3d46331f8e1c93dcbeeaadb9","tarball":"https://registry.npmjs.org/oracle-sage/-/oracle-sage-0.3.5.tgz","integrity":"sha512-v0j/iowxBqXpyFgTu4C8MQn3TO32Bhik/id4mQ6FJupYk+79XBKFBOW9hl7V/rNjx7gtlcQQ3+08PsKaJZN6uQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBz6qsj9TH912OsDQcuA/F+ye2p5P1lLjGxCAGXu2RcSAiEAtFsEVeURG8HHQwkko3KEiu4HPFE6Hh2z9iJA7nA7ncc="}]},"maintainers":[{"name":"himrc","email":"mrchess8@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/oracle-sage-0.3.5.tgz_1491369683508_0.26415301696397364"}},"0.4.0":{"name":"oracle-sage","description":"Promise driven object modeling for OracleDB","version":"0.4.0","main":"./build/sage.js","directories":{"test":"test"},"scripts":{"test":"node_modules/mocha/bin/mocha --recursive --timeout 30000","watch":"babel src -d build -w"},"license":"MIT","author":{"name":"Justin Ho","email":"mrchess8@gmail.com","url":"http://github.com/himrc"},"dependencies":{"async":"^2.1.2","bluebird":"^3.4.6","knex":"0.12.6 ","lodash":"^4.15.0","moment":"^2.15.1","object-assign":"^4.1.0","oracledb":"1.13.0","promise":"^7.1.1","simple-oracledb":"^1.1.59","winston":"^2.2.0"},"devDependencies":{"babel-preset-es2015":"^6.18.0","chai":"^3.5.0","mocha":"^2.3.4"},"bugs":{"url":"https://github.com/FoundationMedicineInc/oracle-sage/issues/new"},"repository":{"type":"git","url":"git+https://github.com/FoundationMedicineInc/oracle-sage.git"},"gitHead":"4c113160365e94930f4be4dcd62f94b02153a182","homepage":"https://github.com/FoundationMedicineInc/oracle-sage#readme","_id":"oracle-sage@0.4.0","_shasum":"1d6b6279988ef85089e8441b791a04a21fbcc277","_from":".","_npmVersion":"4.1.1","_nodeVersion":"6.6.0","_npmUser":{"name":"himrc","email":"mrchess8@gmail.com"},"dist":{"shasum":"1d6b6279988ef85089e8441b791a04a21fbcc277","tarball":"https://registry.npmjs.org/oracle-sage/-/oracle-sage-0.4.0.tgz","integrity":"sha512-gmtl/0e1WtWZWQqlXaiovORM2SqzRHe5Ujyde8QkdAmBwz3twej/gJM78XyuEMeWveW5hREdgzialxN4527dTg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHI+lXLpNlSh+FzC4CDDs+zoTBiBbhL+QOTdejEISHNAAiB/dSgXV7Z+6yCg61jlbg6oNr0Q+e3eyjsT6+ohznJPow=="}]},"maintainers":[{"name":"himrc","email":"mrchess8@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/oracle-sage-0.4.0.tgz_1491623790427_0.34823145321570337"}},"0.4.1":{"name":"oracle-sage","description":"Promise driven object modeling for OracleDB","version":"0.4.1","main":"./build/sage.js","directories":{"test":"test"},"scripts":{"test":"node_modules/mocha/bin/mocha --recursive --timeout 30000","watch":"babel src -d build -w"},"license":"MIT","author":{"name":"Justin Ho","email":"mrchess8@gmail.com","url":"http://github.com/himrc"},"dependencies":{"async":"^2.1.2","bluebird":"^3.4.6","knex":"0.12.6 ","lodash":"^4.15.0","moment":"^2.15.1","object-assign":"^4.1.0","oracledb":"1.13.0","promise":"^7.1.1","simple-oracledb":"^1.1.59","winston":"^2.2.0"},"devDependencies":{"babel-preset-es2015":"^6.18.0","chai":"^3.5.0","mocha":"^2.3.4"},"bugs":{"url":"https://github.com/FoundationMedicineInc/oracle-sage/issues/new"},"repository":{"type":"git","url":"git+https://github.com/FoundationMedicineInc/oracle-sage.git"},"gitHead":"5879c6c75b716f86508072b037b80208ccaf3d3e","homepage":"https://github.com/FoundationMedicineInc/oracle-sage#readme","_id":"oracle-sage@0.4.1","_shasum":"4979e9765ae5eebd532be822c738146ad122991a","_from":".","_npmVersion":"4.1.1","_nodeVersion":"6.6.0","_npmUser":{"name":"himrc","email":"mrchess8@gmail.com"},"dist":{"shasum":"4979e9765ae5eebd532be822c738146ad122991a","tarball":"https://registry.npmjs.org/oracle-sage/-/oracle-sage-0.4.1.tgz","integrity":"sha512-JuJ05ireTz5/Fz1cBE4fgyJZsL0bzUu/WMaHiZpb30dOMvXRZMvWolHTpDZg4GvpBQxeVxMVZIoEI0r6SHVPsg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDe6g54doNEYoPLrrHmWlK1l/G0ehYodmP1E+xGNy2hWQIgTikjT9vXlVh049VIxqYDwGyNxuFFpkSUD7a5bFdQHiQ="}]},"maintainers":[{"name":"himrc","email":"mrchess8@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/oracle-sage-0.4.1.tgz_1491958342424_0.2645098373759538"}},"0.5.0":{"name":"oracle-sage","description":"Promise driven object modeling for OracleDB","version":"0.5.0","main":"./build/sage.js","directories":{"test":"test"},"scripts":{"test":"node_modules/mocha/bin/mocha --recursive --timeout 30000","watch":"babel src -d build -w"},"license":"MIT","author":{"name":"Justin Ho","email":"mrchess8@gmail.com","url":"http://github.com/himrc"},"dependencies":{"async":"^2.1.2","bluebird":"^3.4.6","knex":"0.12.6 ","lodash":"^4.15.0","moment":"^2.15.1","object-assign":"^4.1.0","oracledb":"1.13.0","promise":"^7.1.1","simple-oracledb":"^1.1.59","winston":"^2.2.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-preset-es2015":"^6.18.0","chai":"^3.5.0","mocha":"^2.3.4"},"bugs":{"url":"https://github.com/FoundationMedicineInc/oracle-sage/issues/new"},"repository":{"type":"git","url":"git+https://github.com/FoundationMedicineInc/oracle-sage.git"},"gitHead":"08e3e39cec8f21ebcfe7a2f3aef38e3ba22a090f","homepage":"https://github.com/FoundationMedicineInc/oracle-sage#readme","_id":"oracle-sage@0.5.0","_shasum":"8fc48398cd44a169ebe00137ddbcd54de1c157dd","_from":".","_npmVersion":"4.1.1","_nodeVersion":"6.6.0","_npmUser":{"name":"himrc","email":"mrchess8@gmail.com"},"dist":{"shasum":"8fc48398cd44a169ebe00137ddbcd54de1c157dd","tarball":"https://registry.npmjs.org/oracle-sage/-/oracle-sage-0.5.0.tgz","fileCount":92,"unpackedSize":236708,"integrity":"sha512-bOjDRrxJIfhNuLRAOoResuEalMsTX1X29BGaFoV7JnI3a8YwJVV4Lu8BBIVjGwc4UYCF6kIzRpXmRwscB5vb9Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDmh51nU6AXryFZCKhZnCC+0GoARRQHdaO96xlWyh71EQIgSe7ZTBugjNqVngtDrIY590CT4guoshnfdtQf+Nvi5WA="}]},"maintainers":[{"name":"himrc","email":"mrchess8@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oracle-sage_0.5.0_1520033147875_0.4503430210156494"},"_hasShrinkwrap":false},"0.5.1":{"name":"oracle-sage","description":"Promise driven object modeling for OracleDB","version":"0.5.1","main":"./build/sage.js","directories":{"test":"test"},"scripts":{"test":"node_modules/mocha/bin/mocha --recursive --timeout 30000","watch":"babel src -d build -w"},"license":"MIT","author":{"name":"Justin Ho","email":"mrchess8@gmail.com","url":"http://github.com/himrc"},"dependencies":{"async":"^2.1.2","bluebird":"^3.4.6","knex":"0.12.6 ","lodash":"^4.15.0","moment":"^2.15.1","object-assign":"^4.1.0","oracledb":"1.13.0","promise":"^7.1.1","simple-oracledb":"^1.1.59","winston":"^2.2.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-preset-es2015":"^6.18.0","chai":"^3.5.0","mocha":"^2.3.4"},"bugs":{"url":"https://github.com/FoundationMedicineInc/oracle-sage/issues/new"},"repository":{"type":"git","url":"git+https://github.com/FoundationMedicineInc/oracle-sage.git"},"gitHead":"094b35368f9e93b4f0b7a88257249ad4e3848498","homepage":"https://github.com/FoundationMedicineInc/oracle-sage#readme","_id":"oracle-sage@0.5.1","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"soundlogic","email":"jordan.pollard@live.com"},"dist":{"integrity":"sha512-TpbAB30brq7cpVMwdtWnvIzXVRZsk3BUpBjKNfnJMAd0fjibRBfjD32vX5u14cYsknS1p0jgN7AdA4GpmIGQgw==","shasum":"8c5ae9ed15eeb8a619958f1d358e4fe447b38407","tarball":"https://registry.npmjs.org/oracle-sage/-/oracle-sage-0.5.1.tgz","fileCount":91,"unpackedSize":236132,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGvAUuwzDj6n4hXzqCacqx8I3PbRnjOPhXaJHu1aPq3mAiBQApn+8n+OnUruDF98/U1TC5kfyppgjNNt0lIxweDRkg=="}]},"maintainers":[{"name":"himrc","email":"mrchess8@gmail.com"},{"name":"soundlogic","email":"jordan.pollard@live.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oracle-sage_0.5.1_1520212033569_0.9230758689156482"},"_hasShrinkwrap":false},"0.5.2":{"name":"oracle-sage","description":"Promise driven object modeling for OracleDB","version":"0.5.2","main":"./build/sage.js","directories":{"test":"test"},"scripts":{"test":"node_modules/mocha/bin/mocha --recursive --timeout 30000","watch":"babel src -d build -w"},"license":"MIT","author":{"name":"Justin Ho","email":"mrchess8@gmail.com","url":"http://github.com/himrc"},"dependencies":{"async":"^2.1.2","bluebird":"^3.4.6","knex":"0.12.6 ","lodash":"^4.15.0","moment":"^2.15.1","object-assign":"^4.1.0","oracledb":"1.13.0","promise":"^7.1.1","simple-oracledb":"^1.1.59","winston":"^2.2.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-preset-es2015":"^6.18.0","chai":"^3.5.0","mocha":"^2.3.4"},"bugs":{"url":"https://github.com/FoundationMedicineInc/oracle-sage/issues/new"},"repository":{"type":"git","url":"git+https://github.com/FoundationMedicineInc/oracle-sage.git"},"gitHead":"f88da518b389df0f253134d6a59204a34f8c805f","homepage":"https://github.com/FoundationMedicineInc/oracle-sage#readme","_id":"oracle-sage@0.5.2","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"soundlogic","email":"jordan.pollard@live.com"},"dist":{"integrity":"sha512-vc3IgXAdKCqoowgktRug44GVqqp9MMBZFezR2hZn8z5xFg5c5aLkmMMzN7nlfSj3pGUfAiHw7BOeb+8WpSJ7Pg==","shasum":"54279af8103935e63e7f10b70c6900adc0199769","tarball":"https://registry.npmjs.org/oracle-sage/-/oracle-sage-0.5.2.tgz","fileCount":91,"unpackedSize":236139,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJ3RH0gXVRBjrrepa7R+411m8ciXqav5z2dRdI9Rdd+AIhAOK02dqHc7KOgMuz+SquZBaobla7Ic5Y4lZB7I2F6rD2"}]},"maintainers":[{"name":"himrc","email":"mrchess8@gmail.com"},{"name":"soundlogic","email":"jordan.pollard@live.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oracle-sage_0.5.2_1520212827226_0.7530026062822692"},"_hasShrinkwrap":false},"1.0.1":{"name":"oracle-sage","description":"Promise driven object modeling for OracleDB","version":"1.0.1","main":"./build/sage.js","directories":{"test":"test"},"scripts":{"test":"node_modules/mocha/bin/mocha --recursive --timeout 30000","prepublish":"nsp check && babel ./src --out-dir ./build","watch":"babel src -d build -w"},"license":"MIT","author":{"name":"Justin Ho","email":"mrchess8@gmail.com","url":"http://github.com/himrc"},"peerDependencies":{"oracledb":"^1.13.1 || ^2.1.2"},"dependencies":{"async":"^2.1.2","bluebird":"^3.4.6","knex":"0.12.6 ","lodash":"^4.15.0","moment":"^2.15.1","object-assign":"^4.1.0","promise":"^7.1.1","winston":"^2.2.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-preset-es2015":"^6.18.0","chai":"^3.5.0","mocha":"^2.3.4","nsp":"^3.2.1","oracledb":"^2.1.2"},"bugs":{"url":"https://github.com/FoundationMedicineInc/oracle-sage/issues/new"},"repository":{"type":"git","url":"git+https://github.com/FoundationMedicineInc/oracle-sage.git"},"gitHead":"f1990ed237fefa5aa71e87cc472a0de9e2b28b2a","homepage":"https://github.com/FoundationMedicineInc/oracle-sage#readme","_id":"oracle-sage@1.0.1","_npmVersion":"5.7.1","_nodeVersion":"8.9.0","_npmUser":{"name":"soundlogic","email":"jordan.pollard@live.com"},"dist":{"integrity":"sha512-hUSrnMJDsdv00G4bxYSeP50+QY6AUqZKGzMFRo2WzuBLOdM+ReQw97aDIJRAWHiyzdbUdMvSkHbCx/5d4Kio3w==","shasum":"1d0abef6ae6f5f99cacc6284792fd8df3253e897","tarball":"https://registry.npmjs.org/oracle-sage/-/oracle-sage-1.0.1.tgz","fileCount":76,"unpackedSize":171490,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAG9gyj7SOsIxdcPDLggxENm5Ik/JYzTXxkqIMBXfjIcAiEA33Vo6p/hwdC/XywMbryO0oCK4Zk13IW9vx+OVFaT0WI="}]},"maintainers":[{"name":"himrc","email":"mrchess8@gmail.com"},{"name":"soundlogic","email":"jordan.pollard@live.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oracle-sage_1.0.1_1520364010007_0.02584992077984305"},"_hasShrinkwrap":false},"1.0.2":{"name":"oracle-sage","description":"Promise driven object modeling for OracleDB","version":"1.0.2","main":"./build/sage.js","directories":{"test":"test"},"scripts":{"test":"node_modules/mocha/bin/mocha --recursive --timeout 30000","prepublish":"nsp check && babel ./src --out-dir ./build","watch":"babel src -d build -w"},"license":"MIT","author":{"name":"Justin Ho","email":"mrchess8@gmail.com","url":"http://github.com/himrc"},"peerDependencies":{"oracledb":"^1.13.1 || ^2.1.2"},"dependencies":{"async":"^2.1.2","bluebird":"^3.4.6","knex":"0.12.6 ","lodash":"^4.15.0","moment":"^2.15.1","object-assign":"^4.1.0","promise":"^7.1.1","winston":"^2.2.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-preset-es2015":"^6.18.0","chai":"^3.5.0","mocha":"^2.3.4","nsp":"^3.2.1","oracledb":"^2.1.2"},"bugs":{"url":"https://github.com/FoundationMedicineInc/oracle-sage/issues/new"},"repository":{"type":"git","url":"git+https://github.com/FoundationMedicineInc/oracle-sage.git"},"gitHead":"b50dae50eaf50ea655bf9c7811f2d6b6c8d21fc5","homepage":"https://github.com/FoundationMedicineInc/oracle-sage#readme","_id":"oracle-sage@1.0.2","_npmVersion":"5.7.1","_nodeVersion":"8.9.0","_npmUser":{"name":"soundlogic","email":"jordan.pollard@live.com"},"dist":{"integrity":"sha512-KCwYUL/130esS0H93cw4H76X3nyrHK8rsQM3dBHQno7c8e+zt6sdozqxj4R6lsofTbcjLq+6XtYjgQg7B5d56g==","shasum":"d6982d57a164160cf29d8fb565a28fe9d6133542","tarball":"https://registry.npmjs.org/oracle-sage/-/oracle-sage-1.0.2.tgz","fileCount":17,"unpackedSize":86964,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCDWrhr9BRLmfVjpSeWTIyCHL7ePA8xeBHmbVwYADZFCQIgYFNOYYiqs8OMeNhR9iauuimnfFQmVSD1mdTSa33+aMo="}]},"maintainers":[{"name":"himrc","email":"mrchess8@gmail.com"},{"name":"soundlogic","email":"jordan.pollard@live.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oracle-sage_1.0.2_1520365012213_0.15526655711766324"},"_hasShrinkwrap":false},"1.0.3":{"name":"oracle-sage","description":"Promise driven object modeling for OracleDB","version":"1.0.3","main":"./build/sage.js","directories":{"test":"test"},"scripts":{"test":"node_modules/mocha/bin/mocha --recursive --timeout 30000","prepublish":"nsp check && babel ./src --out-dir ./build","watch":"babel src -d build -w"},"license":"MIT","author":{"name":"Justin Ho","email":"mrchess8@gmail.com","url":"http://github.com/himrc"},"peerDependencies":{"oracledb":"^1.13.1 || ^2.1.2"},"dependencies":{"async":"^2.1.2","bluebird":"^3.4.6","knex":"0.12.6 ","lodash":"^4.15.0","moment":"^2.15.1","object-assign":"^4.1.0","promise":"^7.1.1","winston":"^2.2.0"},"devDependencies":{"babel-cli":"^6.26.0","babel-preset-es2015":"^6.18.0","chai":"^3.5.0","mocha":"^2.3.4","nsp":"^3.2.1","oracledb":"^2.1.2"},"bugs":{"url":"https://github.com/FoundationMedicineInc/oracle-sage/issues/new"},"repository":{"type":"git","url":"git+https://github.com/FoundationMedicineInc/oracle-sage.git"},"gitHead":"3b2fb6b65009f8d6c995fde9df86f7573ba03fd0","homepage":"https://github.com/FoundationMedicineInc/oracle-sage#readme","_id":"oracle-sage@1.0.3","_npmVersion":"5.7.1","_nodeVersion":"8.9.0","_npmUser":{"name":"soundlogic","email":"jordan.pollard@live.com"},"dist":{"integrity":"sha512-DGqOfURT7zRh0odyBbaa34pdk/ELDptMpsa3cYIN6p8+KkXjCzNSLxLVX+Udm7tyDMfbIcBNmPtBToswP7nLEg==","shasum":"13f61b2a00b00df9dde6ffd0473601fe5369a7eb","tarball":"https://registry.npmjs.org/oracle-sage/-/oracle-sage-1.0.3.tgz","fileCount":17,"unpackedSize":86991,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFsW0pUnRGSLahy9HIIr2iIKb9BE1nlQz5hCgWaY/sAoAiAtiuYFWzNDWxWvz32ZOtHvYxZ/42M77n2W2oHTyThPIg=="}]},"maintainers":[{"name":"himrc","email":"mrchess8@gmail.com"},{"name":"soundlogic","email":"jordan.pollard@live.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oracle-sage_1.0.3_1520637551724_0.05027147912930752"},"_hasShrinkwrap":false},"1.1.0":{"name":"oracle-sage","description":"Promise driven object modeling for OracleDB","version":"1.1.0","main":"./build/sage.js","directories":{"test":"test"},"scripts":{"test":"node_modules/mocha/bin/mocha --recursive --timeout 30000","prepublishOnly":"nsp check && babel ./src --out-dir ./build","watch":"babel src -d build -w","build":"babel src -d build","lint":"eslint --fix \"**/*.js\"","prettier":"prettier --single-quote --trailing-comma --write \"**/*.js\""},"husky":{"hooks":{"pre-commit":"nsp check && npm run prettier && npm run build"}},"license":"MIT","author":{"name":"Justin Ho","email":"mrchess8@gmail.com","url":"http://github.com/himrc"},"peerDependencies":{"oracledb":"^1.13.1 || ^2.1.2"},"dependencies":{"@babel/polyfill":"^7.0.0-beta.44","async":"^2.1.2","bluebird":"^3.4.6","knex":"0.12.6 ","lodash":"^4.15.0","moment":"^2.15.1","object-assign":"^4.1.0","promise":"^7.1.1","winston":"^2.2.0"},"devDependencies":{"@babel/cli":"^7.0.0-beta.44","@babel/core":"^7.0.0-beta.44","@babel/plugin-proposal-object-rest-spread":"^7.0.0-beta.44","@babel/preset-env":"^7.0.0-beta.44","chai":"^3.5.0","eslint":"^4.19.1","eslint-config-airbnb":"^16.1.0","eslint-config-prettier":"^2.9.0","eslint-plugin-import":"^2.10.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.7.0","husky":"^0.15.0-rc.13","mocha":"^2.3.4","nsp":"^3.2.1","oracledb":"^2.1.2","prettier":"^1.11.1"},"bugs":{"url":"https://github.com/FoundationMedicineInc/oracle-sage/issues/new"},"repository":{"type":"git","url":"git+https://github.com/FoundationMedicineInc/oracle-sage.git"},"gitHead":"83165b07de0d58bef7873cbbebe2884d12e01453","homepage":"https://github.com/FoundationMedicineInc/oracle-sage#readme","_id":"oracle-sage@1.1.0","_npmVersion":"5.8.0","_nodeVersion":"8.9.0","_npmUser":{"name":"soundlogic","email":"jordan.pollard@live.com"},"dist":{"integrity":"sha512-oV2FAZcOXvVp+6xHPvsSFtJg4mXRdDG7UpXSmbTk1WjjQlHj0EcA4LEaJXGL1qzu4YVN6TyDa4+GIsam8BuPcQ==","shasum":"294cb453dbea9bf0c26d853c7c8908e7f2473fc5","tarball":"https://registry.npmjs.org/oracle-sage/-/oracle-sage-1.1.0.tgz","fileCount":20,"unpackedSize":77331,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCo04LUEP2ZA//INjO0PtFxNd7ggyvQQ3z27Ue+AxG8DgIhALIuBLXDgnxMBwtQJAG70VmBG0AqOUFR86CpOAZzeKaD"}]},"maintainers":[{"name":"himrc","email":"mrchess8@gmail.com"},{"name":"soundlogic","email":"jordan.pollard@live.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oracle-sage_1.1.0_1522794846444_0.4934269339626216"},"_hasShrinkwrap":false},"1.1.1":{"name":"oracle-sage","description":"Promise driven object modeling for OracleDB","version":"1.1.1","main":"./build/sage.js","directories":{"test":"test"},"scripts":{"test":"node_modules/mocha/bin/mocha --recursive --timeout 30000","prepublishOnly":"nsp check && babel ./src --out-dir ./build","watch":"babel src -d build -w","build":"babel src -d build","lint":"eslint --fix \"**/*.js\"","prettier":"prettier --single-quote --trailing-comma --write \"**/*.js\""},"husky":{"hooks":{"pre-commit":"nsp check && npm run prettier && npm run build"}},"license":"MIT","author":{"name":"Justin Ho","email":"mrchess8@gmail.com","url":"http://github.com/himrc"},"peerDependencies":{"oracledb":"^1.13.1 || ^2.1.2"},"dependencies":{"@babel/polyfill":"^7.0.0-beta.44","async":"^2.1.2","bluebird":"^3.4.6","knex":"0.12.6 ","lodash":"^4.15.0","moment":"^2.15.1","object-assign":"^4.1.0","promise":"^7.1.1","winston":"^2.2.0"},"devDependencies":{"@babel/cli":"^7.0.0-beta.44","@babel/core":"^7.0.0-beta.44","@babel/plugin-proposal-object-rest-spread":"^7.0.0-beta.44","@babel/preset-env":"^7.0.0-beta.44","chai":"^3.5.0","eslint":"^4.19.1","eslint-config-airbnb":"^16.1.0","eslint-config-prettier":"^2.9.0","eslint-plugin-import":"^2.10.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.7.0","husky":"^0.15.0-rc.13","mocha":"^2.3.4","nsp":"^3.2.1","oracledb":"^2.1.2","prettier":"^1.11.1"},"bugs":{"url":"https://github.com/FoundationMedicineInc/oracle-sage/issues/new"},"repository":{"type":"git","url":"git+https://github.com/FoundationMedicineInc/oracle-sage.git"},"gitHead":"9711879c1661077958ab1c81ce640b155b715a90","homepage":"https://github.com/FoundationMedicineInc/oracle-sage#readme","_id":"oracle-sage@1.1.1","_npmVersion":"5.8.0","_nodeVersion":"8.9.0","_npmUser":{"name":"soundlogic","email":"jordan.pollard@live.com"},"dist":{"integrity":"sha512-Ik5CL1437YE7VYMQKZ+Jq50ILnM+chNvqtFaLjN6evilYBx3QiC6pjSkdpxKMtGdNhPqiPL/+vcjFZSG+LoWRw==","shasum":"c200635d85c56dbb8c9d23b19177947b716ebedb","tarball":"https://registry.npmjs.org/oracle-sage/-/oracle-sage-1.1.1.tgz","fileCount":20,"unpackedSize":77342,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa1K8iCRA9TVsSAnZWagAAlAsP/RbhGe5xyRiX7T0lBW4Q\nkzWQwwTQihJdQYG+nB5PMargaHqZpHQcwu5QLh/Y/dfzO/aDeWja1yIoV2fs\nC+1iTULLKfgcsNtRNwrYG8Q3D88wMVJiobLRBMXw3FapHgIN0AYCs1XShmFs\niBdWeWsQZMpL9RC0D9ondgn6f9Z690VxUUo1Qonx9SWqs+n2d5g8N+pgVQZJ\nw+fiF6juwdi/V7mFtNdrxHe8x+G2BuDXZwzlMos20yks3W0KL1xv+2VwCVrK\n49Ja/RXXxbwsU4qWKSly3wMfb/hmHUeBuXWgzN8l7eJLGclYJMQ3TGxBF8Ot\nYmfHanBM4dpyFgXSXBCf1W2em49D5LPThr3ecRZyrYqwtIDgXwMZDNR0OXnJ\nM8VG+0x/nBTw4lsQaLWxYaIeJO3AerEXWxppTqS52z6CycZ9eYQlWpdZukHq\nlBLLkqyHSoG1GRuMh6TwGJb4uvG22pHbvpo1i7SHOtehtENd0/4hGY0DWb3j\nf7hu6Nf6oA89t/pmKNm1+NeooaGJc5kigz8WPa7B018Q+MTAAQJ41VvoFTlL\nfllVj1oA55f03o2crGpo2N7kwqUdipfLtkjSKEYK2PVW79g2zXcuAiedaWvl\najzb1r1Qb04CD/7HpwRVpWZTdBttz3pgm78j+9kjHdka+box9hX8sS2FVPe/\n9Dsi\r\n=7kZJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCoCwEDlN5YcWBo6gqM1voYrZrPVSdldy6BF9Wuv+ifawIhALpsUHzfKRPgSNLgAKdM9yVE/F2YrRrWlCNLs9vYQV4Z"}]},"maintainers":[{"name":"himrc","email":"mrchess8@gmail.com"},{"name":"soundlogic","email":"jordan.pollard@live.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oracle-sage_1.1.1_1523887904766_0.09895334223903895"},"_hasShrinkwrap":false},"1.1.2":{"name":"oracle-sage","description":"Promise driven object modeling for OracleDB","version":"1.1.2","main":"./build/sage.js","directories":{"test":"test"},"scripts":{"test":"node_modules/mocha/bin/mocha --recursive --timeout 30000","prepublishOnly":"babel ./src --out-dir ./build","watch":"babel src -d build -w","build":"babel src -d build","lint":"eslint --fix \"**/*.js\"","prettier":"prettier --single-quote --trailing-comma --write \"**/*.js\""},"husky":{"hooks":{"pre-commit":"npm run prettier && npm run build"}},"license":"MIT","author":{"name":"Justin Ho","email":"mrchess8@gmail.com","url":"http://github.com/himrc"},"peerDependencies":{"oracledb":"^1.13.1 || ^2.1.2"},"dependencies":{"@babel/polyfill":"^7.0.0-beta.49","async":"^2.6.1","bluebird":"^3.4.6","knex":"0.12.6 ","lodash":"^4.17.10","moment":"^2.22.2","object-assign":"^4.1.0","promise":"^7.1.1","winston":"^2.4.2"},"devDependencies":{"@babel/cli":"^7.0.0-beta.49","@babel/core":"^7.0.0-beta.49","@babel/plugin-proposal-object-rest-spread":"^7.0.0-beta.49","@babel/preset-env":"^7.0.0-beta.49","chai":"^3.5.0","eslint":"^4.19.1","eslint-config-airbnb":"^16.1.0","eslint-config-prettier":"^2.9.0","eslint-plugin-import":"^2.12.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.9.1","husky":"^0.15.0-rc.13","mocha":"^2.3.4","nsp":"^3.2.1","oracledb":"^2.2.0","prettier":"^1.13.4"},"bugs":{"url":"https://github.com/FoundationMedicineInc/oracle-sage/issues/new"},"repository":{"type":"git","url":"git+https://github.com/FoundationMedicineInc/oracle-sage.git"},"gitHead":"0419f4fafe045e46c501060a1a2d5ea905ba8f97","homepage":"https://github.com/FoundationMedicineInc/oracle-sage#readme","_id":"oracle-sage@1.1.2","_npmVersion":"5.8.0","_nodeVersion":"8.9.0","_npmUser":{"name":"soundlogic","email":"jordan.pollard@live.com"},"dist":{"integrity":"sha512-eT6s1CjA8+kOTIUWl5mBfF+kDp4YKylLsJXtUNiL4kQvZNEL4XG0Ndby/OJaAOMYzBjQaXNSANfNkO3DiG4EjQ==","shasum":"3a048e816cf76d59702cb5618abb1217d6c436bb","tarball":"https://registry.npmjs.org/oracle-sage/-/oracle-sage-1.1.2.tgz","fileCount":20,"unpackedSize":77475,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbFamnCRA9TVsSAnZWagAABX0P/2fcxFPMYN+ys4tPHzRH\nianaYV/U4JBtS7k/ty1G57yEiAw4gJLyBnYdumR8/Yz5FB+pWR34JH6d1D7e\n5Zr8jLyJSrseVrofFhGC2s7mO+Mo3TzgmGug2QTdC8DblMFdUy6yI+R2+9Sw\ngMbz2xeetVr2GEXDoNZUF5BYfHJDuALRc/GYvwGHiVgdQ87dZoVkwdTVtoqj\nPUQSsr4W4YLIfzYLsSMYGLXeIXLLjPfkhbrWIO924N3MQNsrWg9lDjggIOss\nWR/lfMjbfN+RSfMKDLZhsjTrbPDzw0mTQdN7XcDKQsTVDGEcut1nP570eJkS\n7wlA3TcZ7qWJC+V7caqdsnGQI3cQHA0YSzINy2z2/xG+qOxUHp5knN3RLX7g\nuDjXTbb1RouItrA/ShocwsQFGt/qFZTCKGQGEMfc0wxkGOuWks/biEjKoCjC\n5uhtYE49+FGAfacpBtwCygCghlOxOlZYywUlMpGXzkMdB9hiWCRNDr4jw3Ph\nRJIDUfyKlKA+gvPmNuAUXhr02Y0YvgbiaQiPw15JnOJ87UNmAmygSSjjcQPu\nbP8gaaIhBUnYr7dcFXhtG2nAK5959CA0Lq5f/lK2uI9rNx4hLw+TjUtLCpXo\nqCPo7yxgf6dKg7qDTWLVGd/BGhVlFUIZaM8kojA6HBacWvltu+/4wXcrFqox\nB5RZ\r\n=qbMT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCZnXkoru3KM1xHKmt5h4WHZlOe1IyBeSIoGHk6/W4taAIgF5vT7qDYzxTGCzssb6YKuO4OBrqjiNul8B1QHlTmWcM="}]},"maintainers":[{"name":"himrc","email":"mrchess8@gmail.com"},{"name":"soundlogic","email":"jordan.pollard@live.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oracle-sage_1.1.2_1528146342274_0.9667164262124484"},"_hasShrinkwrap":false},"1.1.3":{"name":"oracle-sage","description":"Promise driven object modeling for OracleDB","version":"1.1.3","main":"./build/sage.js","directories":{"test":"test"},"scripts":{"test":"node_modules/mocha/bin/mocha --recursive --timeout 30000","prepublishOnly":"nsp check && babel ./src --out-dir ./build","watch":"babel src -d build -w","build":"babel src -d build","lint":"eslint --fix \"**/*.js\"","prettier":"prettier --single-quote --trailing-comma --write \"**/*.js\""},"husky":{"hooks":{"pre-commit":"nsp check && npm run prettier && npm run build"}},"license":"MIT","author":{"name":"Justin Ho","email":"mrchess8@gmail.com","url":"http://github.com/himrc"},"peerDependencies":{"oracledb":"^1.13.1 || ^2.1.2"},"dependencies":{"@babel/polyfill":"^7.0.0-beta.44","async":"^2.1.2","bluebird":"^3.4.6","knex":"0.12.6 ","lodash":"^4.15.0","moment":"^2.15.1","object-assign":"^4.1.0","promise":"^7.1.1","winston":"^2.2.0"},"devDependencies":{"@babel/cli":"^7.0.0-beta.44","@babel/core":"^7.0.0-beta.44","@babel/plugin-proposal-object-rest-spread":"^7.0.0-beta.44","@babel/preset-env":"^7.0.0-beta.44","chai":"^3.5.0","eslint":"^4.19.1","eslint-config-airbnb":"^16.1.0","eslint-config-prettier":"^2.9.0","eslint-plugin-import":"^2.10.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.7.0","husky":"^0.15.0-rc.13","mocha":"^2.3.4","nsp":"^3.2.1","oracledb":"^2.1.2","prettier":"^1.11.1"},"bugs":{"url":"https://github.com/FoundationMedicineInc/oracle-sage/issues/new"},"repository":{"type":"git","url":"git+https://github.com/FoundationMedicineInc/oracle-sage.git"},"gitHead":"631de00af9c581a79c9e6580f3633183000c797f","homepage":"https://github.com/FoundationMedicineInc/oracle-sage#readme","_id":"oracle-sage@1.1.3","_npmVersion":"6.1.0","_nodeVersion":"10.3.0","_npmUser":{"name":"himrc","email":"mrchess8@gmail.com"},"dist":{"integrity":"sha512-UF3o4qFNTQETElHkOqCYO2y83xGw0TxymRUqw7fm/8E8p8fGrppQLaaNXPd8x2GeRQMLQbV5kXkxsiNnzBdd5Q==","shasum":"c6a89d9ca8d461c139b32f5c8a6e0a5ab01b8d13","tarball":"https://registry.npmjs.org/oracle-sage/-/oracle-sage-1.1.3.tgz","fileCount":20,"unpackedSize":77575,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbM9rICRA9TVsSAnZWagAA3XkP/1ZxAAFHWu15ws0RWnVf\nfHB3gOl2f9Fhkl9xC7qvXRtYjYfUeS147H8CXZfcmVK/WxpnALjwZXkMAB3Z\n9Dk9vJIAPYTkZxSvb9D5NP137CA38lTAS54nidPYBbMFJVOZEcmOg7/Z7V5a\nAp+T2CT617FW7lMm6YNEQ0qdJZENrC8RHc2qMaPmDwyQKCzJsxhrxRFimHOW\no1WDe55HfPWk7o9cWRZfeygaRUIQjzKF8lFPPbc4LG7N8UzLgge9tieP2iHW\nIsvR96KaYt42HWEeEcNpZj2d9avcpgxrr4OYjkCp7VoI8kLe+uNdRwQ18HcB\nBQtpGpwHuLTbpTTWLIRjylrr8GQSpV4OseqrcqwqreIrEnHu9RMY4GeBDsiT\nKUAbwvcuwXbmEOAeiU1rp+qXT4wuW747WlDW1i/M4mEgxu5FoD8kPRp0rvrf\naWRdMRybivk6VH0ls489xLtZ7EeOtfbwj8CCfwTga6Q/6x+k515MyPBwnbdc\nIjRXMIuTHjGKGqHkjBWIWNlvXmZkCyRW8QthziT/hYZdfVBe6wxGc/7RqD4U\nZfkc8W3c3EZzth4y25PiVPkNMpOvnTFiG0m58GrqRQDUu/d85SfvKrUmOLHC\n/JPACEIZnVgo/j9UaQCBTDgzTlRda5frWABZ+ISEF2pgW3fom6IezlwVX4DA\nuOjp\r\n=wRBH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCwTlNo/PTuX+qaCiZNv3m3oYffFTnvgLpeucSNtpNBhAIgIgxy0KLsUFU6RS2H6XsiK+V+Ip8fUlv289qwYhwGRsk="}]},"maintainers":[{"name":"himrc","email":"mrchess8@gmail.com"},{"name":"soundlogic","email":"jordan.pollard@live.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oracle-sage_1.1.3_1530125000589_0.08801710282417297"},"_hasShrinkwrap":false},"1.1.4":{"name":"oracle-sage","description":"Promise driven object modeling for OracleDB","version":"1.1.4","main":"./build/sage.js","directories":{"test":"test"},"scripts":{"test":"node_modules/mocha/bin/mocha --recursive --timeout 30000","prepublishOnly":"babel ./src --out-dir ./build","watch":"babel src -d build -w","build":"babel src -d build","lint":"eslint --fix \"**/*.js\"","prettier":"prettier --single-quote --trailing-comma --write \"**/*.js\""},"husky":{"hooks":{"pre-commit":"npm run prettier && npm run build"}},"license":"MIT","author":{"name":"Justin Ho","email":"mrchess8@gmail.com","url":"http://github.com/himrc"},"peerDependencies":{"oracledb":"^1.13.1 || ^2.1.2"},"dependencies":{"@babel/polyfill":"^7.0.0-beta.49","async":"^2.6.1","bluebird":"^3.4.6","knex":"^0.15.0","lodash":"^4.17.10","moment":"^2.22.2","object-assign":"^4.1.0","promise":"^7.1.1","winston":"^2.4.2"},"devDependencies":{"@babel/cli":"^7.0.0-beta.49","@babel/core":"^7.0.0-beta.49","@babel/plugin-proposal-object-rest-spread":"^7.0.0-beta.49","@babel/preset-env":"^7.0.0-beta.49","chai":"^3.5.0","eslint":"^4.19.1","eslint-config-airbnb":"^16.1.0","eslint-config-prettier":"^2.9.0","eslint-plugin-import":"^2.12.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.9.1","husky":"^0.15.0-rc.13","mocha":"^2.3.4","nsp":"^3.2.1","oracledb":"^2.2.0","prettier":"^1.13.4"},"bugs":{"url":"https://github.com/FoundationMedicineInc/oracle-sage/issues/new"},"repository":{"type":"git","url":"git+https://github.com/FoundationMedicineInc/oracle-sage.git"},"gitHead":"1a28b7a3a6795ba3aa822f844aff4e679cbf536d","homepage":"https://github.com/FoundationMedicineInc/oracle-sage#readme","_id":"oracle-sage@1.1.4","_npmVersion":"5.8.0","_nodeVersion":"8.9.0","_npmUser":{"name":"soundlogic","email":"jordan.pollard@live.com"},"dist":{"integrity":"sha512-CU55YZEl6nqoC+lVNpLW9Mpf+h62IwGOKfouGgfzhvpXD+gFTAFd2otcG95ToVKvP4t29IfbOawwvpqYPJxEkA==","shasum":"a79f34d3e3eb559a150e6d829b4bee1e7b3c19e7","tarball":"https://registry.npmjs.org/oracle-sage/-/oracle-sage-1.1.4.tgz","fileCount":20,"unpackedSize":77943,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbOihjCRA9TVsSAnZWagAABH0QAJp1UOgJGBI3GCDyEmJh\nAj/7BLho2C/Vsu4dnNLBPh+ITdxX3WkyhpppVgxdgGh9hCJ7roJQ/iExJ3+m\nOItt+YnK0v3tlrD/8fx/hr4B73KfeTaobX35KPip/ja61Y3Rx93F5c0aucec\n85EMJvTdNv0vq2J165SiymQbwP6Axu6WPKfoyov05eGvtoTe7ZPXsyuQMH6w\n1qAjBT/zwNXSOLOpGrpKs4HMipfBLt3Q/wyfPcAZyq/Hj/Oiegf9DHOvnv7r\nqp58+RMy+UHl4FKLkVAEySQzNiBEE6EP5wc8DUbmfsbr5Sk0tjP9quKu4/5r\nGEXTERdtZ7I3gkJ+J7TYJ+7ZJ3IzsMZKxvx00fhu+9rTVjuaAPmgBzoh0tOv\nDYIS1mS6PQ3p2xp6CPrG3rDPlg9hen9Oq4kmjhbi15HegM9zVr5LaQ1kuuKl\nmYJKHwN9cvJzJFMZH5YRLVB5wCu+C9hjGfR2DilKlJbXDoal1UypTBx1y1Y1\nzQT86F82506c/cN90YSbsr2NsJoKAl7gi8PucxNh5TboPriWb8z1IXM29lF6\nOBbP8ySBhw8+E+luGE5zD9ZxPB/3qTkzPE6YHiUu7dk+nvqY/Nx2EshV3qie\nFaMU1qAnfRLPjsaNAMwIlGj2bhgtnuR3CUA7jrN/t3NKhxgWcFFZHiLzHZvU\n+dfX\r\n=YFVq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGgWYKEnlMizVzEZ3hJec4eFonowVLf5OZeMv0GuE4NXAiBxBavYacfESQqrmHH8/EQ48a62rar3PBNm0foBN4cgnQ=="}]},"maintainers":[{"name":"himrc","email":"mrchess8@gmail.com"},{"name":"soundlogic","email":"jordan.pollard@live.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oracle-sage_1.1.4_1530538083159_0.47440697898365203"},"_hasShrinkwrap":false},"1.1.5":{"name":"oracle-sage","description":"Promise driven object modeling for OracleDB","version":"1.1.5","main":"./build/sage.js","directories":{"test":"test"},"scripts":{"test":"node_modules/mocha/bin/mocha --recursive --timeout 30000","prepublishOnly":"babel ./src --out-dir ./build","watch":"babel src -d build -w","build":"babel src -d build","lint":"eslint --fix \"**/*.js\"","prettier":"prettier --single-quote --trailing-comma --write \"**/*.js\""},"husky":{"hooks":{"pre-commit":"npm run prettier && npm run build"}},"license":"MIT","author":{"name":"Justin Ho","email":"mrchess8@gmail.com","url":"http://github.com/himrc"},"peerDependencies":{"oracledb":"^1.13.1 || ^2.1.2"},"dependencies":{"@babel/polyfill":"^7.0.0-beta.49","async":"^2.6.1","bluebird":"^3.4.6","knex":"^0.15.0","lodash":"^4.17.10","moment":"^2.22.2","object-assign":"^4.1.0","promise":"^7.1.1","winston":"^2.4.2"},"devDependencies":{"@babel/cli":"^7.0.0-beta.49","@babel/core":"^7.0.0-beta.49","@babel/plugin-proposal-object-rest-spread":"^7.0.0-beta.49","@babel/preset-env":"^7.0.0-beta.49","chai":"^3.5.0","eslint":"^4.19.1","eslint-config-airbnb":"^16.1.0","eslint-config-prettier":"^2.9.0","eslint-plugin-import":"^2.12.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.9.1","husky":"^0.15.0-rc.13","mocha":"^2.3.4","nsp":"^3.2.1","oracledb":"^2.2.0","prettier":"^1.13.4"},"bugs":{"url":"https://github.com/FoundationMedicineInc/oracle-sage/issues/new"},"repository":{"type":"git","url":"git+https://github.com/FoundationMedicineInc/oracle-sage.git"},"gitHead":"e43a1481c63c3487be71c9473745b79fd0cb8595","homepage":"https://github.com/FoundationMedicineInc/oracle-sage#readme","_id":"oracle-sage@1.1.5","_npmVersion":"5.8.0","_nodeVersion":"8.9.0","_npmUser":{"name":"soundlogic","email":"jordan.pollard@live.com"},"dist":{"integrity":"sha512-UhhKqPN8Y9Qj4weqUag3oxD2i+fuwT8qF6mKaTA1/dOTfUkHCllni/dnn7cEenhqAMnBnaVyzfuHTidKWVwOmg==","shasum":"3e1988d75297fddb22c44e4fa64b3cab6b11cb1b","tarball":"https://registry.npmjs.org/oracle-sage/-/oracle-sage-1.1.5.tgz","fileCount":20,"unpackedSize":79554,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbUhW3CRA9TVsSAnZWagAAHOsP/R0eXoMOC7GyJkkuTQH6\nwvxn7oevzcPNfjw7q2MfZ+wv1vw61yuKFdE0ppeVprzlkgMvceorZedygZ/w\nT9X1IgCgpgygmGmM8UQdorJn6+23KKO/u4pN3MhhhdtlhNd/EXLGRHI6U/C0\nQR9hXQJbbIj734a0D3c9nQbde3CUaS04/vn8ojOQ3b+1wa9G4Lr8Q0Zmr0Mv\nWyt/Ha6ordNS1j7bYEekCoRUtxd8s2bJgAkbguQypbnipkoxt3DX1d/FWc/x\nULrAu+tsKKFMbB38bjtMPxzLcolRX5o36Z99OdyupM5VQd+2P0q5/XtT3Jgx\nFNwmVNOOB30Fespwa/gblMP2WssBVkyinOj1ZsEkQ6XTG//hy3b6lEO4MfIC\nYptRW0p2ForJ4O5fPxsa/7WJ7pGZNMeQH9JV8mCii3ZTrzgi90KfGLgHQ8IR\nCzrJSviw9N3c2mrdiys/EGY/hKmj1G57T4ssja1Hd8NBHlRWreLJfF7TzXb4\nt9CNqBhXgEYpvVbz3oJ6sgWifT8ColB3mG98B2ihr+ICJgAqJDn15OHwnplU\n5LPsEVPjGfrFOzHws00ufgWQouT+oC6IRDHhl0/dBpEzIzbPGMDk7ciFgb7u\nDwvUdlTqtcIhWgfCBp+OLIdzoRXLP1rrz/sX1wGVzZ8HyHa9MJmJK+5Tbnlr\nYzQD\r\n=zpty\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGvmtmn/gzH9v79F8NugRr5/NBHtgYdw7Eyx6uP9OO8TAiEA9NRqRSF6OquHIWu046+4SrXBwWqHgbBBApySQIzw+1g="}]},"maintainers":[{"name":"himrc","email":"mrchess8@gmail.com"},{"name":"soundlogic","email":"jordan.pollard@live.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oracle-sage_1.1.5_1532106166956_0.753585051600637"},"_hasShrinkwrap":false}},"author":{"name":"Justin Ho","email":"mrchess8@gmail.com","url":"http://github.com/himrc"},"license":"MIT","readmeFilename":"README.md","homepage":"https://github.com/FoundationMedicineInc/oracle-sage#readme","repository":{"type":"git","url":"git+https://github.com/FoundationMedicineInc/oracle-sage.git"},"bugs":{"url":"https://github.com/FoundationMedicineInc/oracle-sage/issues/new"}}