From fc389ccfee05fd44ec2060c5b735ba136a74c2a9 Mon Sep 17 00:00:00 2001 From: Roger Butler Date: Tue, 24 Nov 2015 14:18:17 -0500 Subject: [PATCH] Initial code commit --- .gitignore | 27 +++++ CHANGES | 1 + ConfigureToBuild.txt | 1 + Contribution Agreement.pdf | Bin 0 -> 128424 bytes LICENSE | 31 +++++ OpenVEILAddon.cpp | 188 +++++++++++++++++++++++++++++ OpenVEILAddon.h | 136 +++++++++++++++++++++ README.md | 13 +- addon.cc | 40 ++++++ addon.js | 6 + binding.gyp | 32 +++++ build.cmd | 2 + configureenv.cmd | 1 + node_modules/bindings/README.md | 97 +++++++++++++++ node_modules/bindings/bindings.js | 166 +++++++++++++++++++++++++ node_modules/bindings/package.json | 55 +++++++++ package.json | 11 ++ 17 files changed, 805 insertions(+), 2 deletions(-) create mode 100644 .gitignore create mode 100644 CHANGES create mode 100644 ConfigureToBuild.txt create mode 100644 Contribution Agreement.pdf create mode 100644 LICENSE create mode 100644 OpenVEILAddon.cpp create mode 100644 OpenVEILAddon.h create mode 100644 addon.cc create mode 100644 addon.js create mode 100644 binding.gyp create mode 100644 build.cmd create mode 100644 configureenv.cmd create mode 100644 node_modules/bindings/README.md create mode 100644 node_modules/bindings/bindings.js create mode 100644 node_modules/bindings/package.json create mode 100644 package.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4aedc2a --- /dev/null +++ b/.gitignore @@ -0,0 +1,27 @@ +lib +obj +ipch +x64 +*.user +bin +Debug +Release +Debug.vc12 +Release.vc12 +Debug.vc14 +Release.vc14 +Symbols +Win32 +*.bak +*.old +*.aps +*.layout +*.pdb +Build +*.suo +CryptoToAdd +build/ +*~ +*.sdf +*.opensdf +*.log diff --git a/CHANGES b/CHANGES new file mode 100644 index 0000000..3a02ad4 --- /dev/null +++ b/CHANGES @@ -0,0 +1 @@ +Initial release of the Node.JS language bindings to OpenVEIL (7.0.18) diff --git a/ConfigureToBuild.txt b/ConfigureToBuild.txt new file mode 100644 index 0000000..60d1d5f --- /dev/null +++ b/ConfigureToBuild.txt @@ -0,0 +1 @@ +npm config set python c:\python27\python.exe \ No newline at end of file diff --git a/Contribution Agreement.pdf b/Contribution Agreement.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f61315fa66105b71dac82e9cca5aed02ac84e38a GIT binary patch literal 128424 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�ChA-#&U~55WmBqQ17=U5-Z({v?%*eAmj@UuT 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

sz&5mKn2_SVvdy~k!Q!AwOGva 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ν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 OpenVEILAddon::constructor; + +OpenVEILAddon::OpenVEILAddon() { + _value = ::ServiceLocator()->try_get_instance("/KeyVEILConnector"); +} + +OpenVEILAddon::~OpenVEILAddon() { +} + +void OpenVEILAddon::Init(Handle exports) { + Isolate* isolate = Isolate::GetCurrent(); + + // Prepare constructor template + Local tpl = FunctionTemplate::New(isolate, New); + tpl->SetClassName(String::NewFromUtf8(isolate, "OpenVEIL")); + tpl->InstanceTemplate()->SetInternalFieldCount(1); + + // Prototype + NODE_SET_PROTOTYPE_METHOD(tpl, "genericConnect", GenericConnect); + NODE_SET_PROTOTYPE_METHOD(tpl, "kvConnect", KvConnect); + NODE_SET_PROTOTYPE_METHOD(tpl, "disconnect", Disconnect); + NODE_SET_PROTOTYPE_METHOD(tpl, "isConnected", IsConnected); + NODE_SET_PROTOTYPE_METHOD(tpl, "sendJsonRequest", SendJsonRequest); + NODE_SET_PROTOTYPE_METHOD(tpl, "sendRequest", SendRequest); + + constructor.Reset(isolate, tpl->GetFunction()); + exports->Set(String::NewFromUtf8(isolate, "OpenVEIL"), + tpl->GetFunction()); +} + +void OpenVEILAddon::New(const FunctionCallbackInfo& args) { + Isolate* isolate = Isolate::GetCurrent(); + HandleScope scope(isolate); + + if (args.IsConstructCall()) { + // Invoked as constructor: `new MyObject(...)` + //double value = args[0]->IsUndefined() ? 0 : args[0]->NumberValue(); + OpenVEILAddon* obj = new OpenVEILAddon(/*value*/); + obj->Wrap(args.This()); + args.GetReturnValue().Set(args.This()); + } + else { + // Invoked as plain function `MyObject(...)`, turn into construct call. + const int argc = 1; + Local argv[argc] = { args[0] }; + Local cons = Local::New(isolate, constructor); + args.GetReturnValue().Set(cons->NewInstance(argc, argv)); + } +} + +static tsAscii StringToTsAscii(v8::Local& string) +{ + tsAscii tmp; + const int length = string->Utf8Length() + 1; // Add one for trailing zero byte. + tmp.resize(length); + string->WriteOneByte((uint8_t*)tmp.rawData(), /* start */ 0, length); + return tmp; +} + +void OpenVEILAddon::GenericConnect(const v8::FunctionCallbackInfo& args) +{ + Isolate* isolate = Isolate::GetCurrent(); + HandleScope scope(isolate); + OpenVEILAddon* obj = ObjectWrap::Unwrap(args.Holder()); + + if (args.Length() < 3) + { + isolate->ThrowException(Exception::TypeError( + String::NewFromUtf8(isolate, "Wrong number of arguments"))); + return; + } + + int retVal = obj->genericConnect(StringToTsAscii(args[0]->ToString()), StringToTsAscii(args[1]->ToString()), StringToTsAscii(args[2]->ToString())); + args.GetReturnValue().Set(Number::New(isolate, retVal)); +} +void OpenVEILAddon::KvConnect(const v8::FunctionCallbackInfo& args) +{ + Isolate* isolate = Isolate::GetCurrent(); + HandleScope scope(isolate); + OpenVEILAddon* obj = ObjectWrap::Unwrap(args.Holder()); + + if (args.Length() < 3) + { + isolate->ThrowException(Exception::TypeError( + String::NewFromUtf8(isolate, "Wrong number of arguments"))); + return; + } + + int retVal = obj->kvConnect(StringToTsAscii(args[0]->ToString()), StringToTsAscii(args[1]->ToString()), StringToTsAscii(args[2]->ToString())); + args.GetReturnValue().Set(Number::New(isolate, retVal)); +} +void OpenVEILAddon::Disconnect(const v8::FunctionCallbackInfo& args) +{ + Isolate* isolate = Isolate::GetCurrent(); + HandleScope scope(isolate); + OpenVEILAddon* obj = ObjectWrap::Unwrap(args.Holder()); + obj->disconnect(); +} +void OpenVEILAddon::IsConnected(const v8::FunctionCallbackInfo& args) +{ + Isolate* isolate = Isolate::GetCurrent(); + HandleScope scope(isolate); + OpenVEILAddon* obj = ObjectWrap::Unwrap(args.Holder()); + args.GetReturnValue().Set(Boolean::New(isolate, obj->isConnected())); +} +void OpenVEILAddon::SendJsonRequest(const v8::FunctionCallbackInfo& args) +{ + Isolate* isolate = Isolate::GetCurrent(); + HandleScope scope(isolate); + OpenVEILAddon* obj = ObjectWrap::Unwrap(args.Holder()); + + if (args.Length() < 3) + { + isolate->ThrowException(Exception::TypeError( + String::NewFromUtf8(isolate, "Wrong number of arguments"))); + return; + } + + tsAscii outData; + int status = 0; + bool retVal = obj->sendJsonRequest(StringToTsAscii(args[0]->ToString()), StringToTsAscii(args[1]->ToString()), StringToTsAscii(args[2]->ToString()), outData, status); + + Local outObj = Object::New(isolate); + outObj->Set(String::NewFromUtf8(isolate, "status"), Number::New(isolate, status)); + outObj->Set(String::NewFromUtf8(isolate, "retVal"), Boolean::New(isolate, retVal)); + outObj->Set(String::NewFromUtf8(isolate, "outData"), String::NewFromUtf8(isolate, outData.c_str())); + + args.GetReturnValue().Set(outObj); +} +void OpenVEILAddon::SendRequest(const v8::FunctionCallbackInfo& args) +{ + Isolate* isolate = Isolate::GetCurrent(); + HandleScope scope(isolate); + OpenVEILAddon* obj = ObjectWrap::Unwrap(args.Holder()); + + if (args.Length() < 3) + { + isolate->ThrowException(Exception::TypeError( + String::NewFromUtf8(isolate, "Wrong number of arguments"))); + return; + } + + tsAscii outData; + int status = 0; + bool retVal = obj->sendRequest(StringToTsAscii(args[0]->ToString()), StringToTsAscii(args[1]->ToString()), StringToTsAscii(args[2]->ToString()), outData, status); + + Local outObj = Object::New(isolate); + outObj->Set(String::NewFromUtf8(isolate, "status"), Number::New(isolate, status)); + outObj->Set(String::NewFromUtf8(isolate, "retVal"), Boolean::New(isolate, retVal)); + outObj->Set(String::NewFromUtf8(isolate, "outData"), String::NewFromUtf8(isolate, outData.c_str())); + + args.GetReturnValue().Set(outObj); +} + diff --git a/OpenVEILAddon.h b/OpenVEILAddon.h new file mode 100644 index 0000000..7dbb582 --- /dev/null +++ b/OpenVEILAddon.h @@ -0,0 +1,136 @@ +// Copyright (c) 2015, TecSec, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of TecSec nor the names of the contributors may be +// used to endorse or promote products derived from this software +// without specific prior written permission. +// +// ALTERNATIVELY, provided that this notice is retained in full, this product +// may be distributed under the terms of the GNU General Public License (GPL), +// in which case the provisions of the GPL apply INSTEAD OF those given above. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +// DISCLAIMED. IN NO EVENT SHALL TECSEC BE LIABLE FOR ANY +// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// + +#ifndef __OPENVEILADDON_H__ +#define __OPENVEILADDON_H__ + +#include "OpenVEIL.h" +#include +#include + +class OpenVEILAddon : public node::ObjectWrap +{ +public: + static void Init(v8::Handle exports); + +private: + explicit OpenVEILAddon(); + ~OpenVEILAddon(); + + std::shared_ptr _value; + int genericConnect(const tsAscii& url, const tsAscii& username, const tsAscii& password) + { + if (!isReady()) + { + return connStatus_NoServer; + } + + return _value->genericConnectToServer(url, username, password); + } + int kvConnect(const tsAscii& url, const tsAscii& username, const tsAscii& password) + { + if (!isReady()) + { + return connStatus_NoServer; + } + + return _value->connect(url, username, password); + } + void disconnect() + { + if (isConnected()) + { + _value->disconnect(); + } + } + bool isConnected() + { + if (isReady()) + { + return _value->isConnected(); + } + else + { + return false; + } + } + bool sendJsonRequest(const tsAscii& verb, const tsAscii& cmd, const tsAscii& inData, tsAscii& outData, int& status) + { + if (isReady()) + { + JSONObject inObj, outObj; + + if (inObj.FromJSON(inData.c_str()) <= 0) + return false; + + bool retVal = _value->sendJsonRequest(verb, cmd, inObj, outObj, status); + outData = outObj.ToJSON(); + return retVal; + } + else + { + return false; + } + } + bool sendRequest(const tsAscii& verb, const tsAscii& cmd, const tsAscii& inData, tsAscii& outData, int& status) + { + if (isReady()) + { + tsData inObj, outObj; + + inObj = inData.Base64ToData(); + + bool retVal = _value->sendRequest(verb, cmd, inObj, outObj, status); + outData = outObj.ToBase64(); + return retVal; + } + else + { + return false; + } + } + bool isReady() + { + return !!_value; + } + + + static void New(const v8::FunctionCallbackInfo& args); + static void GenericConnect(const v8::FunctionCallbackInfo& args); + static void KvConnect(const v8::FunctionCallbackInfo& args); + static void Disconnect(const v8::FunctionCallbackInfo& args); + static void IsConnected(const v8::FunctionCallbackInfo& args); + static void SendJsonRequest(const v8::FunctionCallbackInfo& args); + static void SendRequest(const v8::FunctionCallbackInfo& args); + static v8::Persistent constructor; + +}; + +#endif // __OPENVEILADDON_H__ \ No newline at end of file diff --git a/README.md b/README.md index 5b24381..7e8124d 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,11 @@ -# OpenVEILNodeJS -Node.JS bindings for OpenVEIL +# Node.JS language bindings to OpenVEIL +======================================= + +This is the orginal release of the Node.JS language bindings to the OpenVEIL product into open source. + +This project uses the node-gyp build process from node.js. + +Documentation is not available yet. Sorry. + +To become a contributor to this project please look at the document called +"Contribution Agreement.pdf". \ No newline at end of file diff --git a/addon.cc b/addon.cc new file mode 100644 index 0000000..0805fab --- /dev/null +++ b/addon.cc @@ -0,0 +1,40 @@ +// Copyright (c) 2015, TecSec, Inc. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of TecSec nor the names of the contributors may be +// used to endorse or promote products derived from this software +// without specific prior written permission. +// +// ALTERNATIVELY, provided that this notice is retained in full, this product +// may be distributed under the terms of the GNU General Public License (GPL), +// in which case the provisions of the GPL apply INSTEAD OF those given above. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +// DISCLAIMED. IN NO EVENT SHALL TECSEC BE LIABLE FOR ANY +// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// + +#include +#include "OpenVEILAddon.h" + +using namespace v8; + +void InitAll(Handle exports) { + OpenVEILAddon::Init(exports); +} + +NODE_MODULE(OpenVEIL, InitAll) diff --git a/addon.js b/addon.js new file mode 100644 index 0000000..7bfd826 --- /dev/null +++ b/addon.js @@ -0,0 +1,6 @@ +var addon = require('bindings')('OpenVEIL'); + +var obj = new addon.OpenVEIL(); + +console.log( obj.isConnected() ); +obj.disconnect(); \ No newline at end of file diff --git a/binding.gyp b/binding.gyp new file mode 100644 index 0000000..126912e --- /dev/null +++ b/binding.gyp @@ -0,0 +1,32 @@ +{ + "targets" : [{ + "target_name" : "OpenVEIL", + "sources" : ["OpenVEILAddon.cpp", "OpenVEILAddon.h", "addon.cc"], + "include_dirs" : ["c:/tecsec/OpenVEIL_7-0/vc14/include"], + 'conditions' : [ + ['OS=="win"', { + 'cflags' : [ + '/EHsc', + '/GR', + ], + 'cflags_cc!': [ '-fno-rtti' ], + 'link_settings': { + 'libraries': ['c:/tecsec/OpenVEIL_7-0/vc14/lib/OpenVEILCore.lib'], + }, + 'msvs_settings': { + 'VCCLCompilerTool': { + 'ExceptionHandling': '2', + 'DisableSpecificWarnings': [ '4530', '4506' ], + }, + }, + }, { + # OS != "win" + 'cflags' : [ + '-Werror', + ] + } + ] + ] + } + ] +} diff --git a/build.cmd b/build.cmd new file mode 100644 index 0000000..d6c9d24 --- /dev/null +++ b/build.cmd @@ -0,0 +1,2 @@ +call node-gyp configure --python c:\python2.7 +call node-gyp build --python c:\python2.7 diff --git a/configureenv.cmd b/configureenv.cmd new file mode 100644 index 0000000..bb5a29f --- /dev/null +++ b/configureenv.cmd @@ -0,0 +1 @@ +set PYTHON=c:\python27 diff --git a/node_modules/bindings/README.md b/node_modules/bindings/README.md new file mode 100644 index 0000000..585cf51 --- /dev/null +++ b/node_modules/bindings/README.md @@ -0,0 +1,97 @@ +node-bindings +============= +### Helper module for loading your native module's .node file + +This is a helper module for authors of Node.js native addon modules. +It is basically the "swiss army knife" of `require()`ing your native module's +`.node` file. + +Throughout the course of Node's native addon history, addons have ended up being +compiled in a variety of different places, depending on which build tool and which +version of node was used. To make matters worse, now the _gyp_ build tool can +produce either a _Release_ or _Debug_ build, each being built into different +locations. + +This module checks _all_ the possible locations that a native addon would be built +at, and returns the first one that loads successfully. + + +Installation +------------ + +Install with `npm`: + +``` bash +$ npm install bindings +``` + +Or add it to the `"dependencies"` section of your _package.json_ file. + + +Example +------- + +`require()`ing the proper bindings file for the current node version, platform +and architecture is as simple as: + +``` js +var bindings = require('bindings')('binding.node') + +// Use your bindings defined in your C files +bindings.your_c_function() +``` + + +Nice Error Output +----------------- + +When the `.node` file could not be loaded, `node-bindings` throws an Error with +a nice error message telling you exactly what was tried. You can also check the +`err.tries` Array property. + +``` +Error: Could not load the bindings file. Tried: + → /Users/nrajlich/ref/build/binding.node + → /Users/nrajlich/ref/build/Debug/binding.node + → /Users/nrajlich/ref/build/Release/binding.node + → /Users/nrajlich/ref/out/Debug/binding.node + → /Users/nrajlich/ref/Debug/binding.node + → /Users/nrajlich/ref/out/Release/binding.node + → /Users/nrajlich/ref/Release/binding.node + → /Users/nrajlich/ref/build/default/binding.node + → /Users/nrajlich/ref/compiled/0.8.2/darwin/x64/binding.node + at bindings (/Users/nrajlich/ref/node_modules/bindings/bindings.js:84:13) + at Object. (/Users/nrajlich/ref/lib/ref.js:5:47) + at Module._compile (module.js:449:26) + at Object.Module._extensions..js (module.js:467:10) + at Module.load (module.js:356:32) + at Function.Module._load (module.js:312:12) + ... +``` + + +License +------- + +(The MIT License) + +Copyright (c) 2012 Nathan Rajlich <nathan@tootallnate.net> + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/bindings/bindings.js b/node_modules/bindings/bindings.js new file mode 100644 index 0000000..93dcf85 --- /dev/null +++ b/node_modules/bindings/bindings.js @@ -0,0 +1,166 @@ + +/** + * Module dependencies. + */ + +var fs = require('fs') + , path = require('path') + , join = path.join + , dirname = path.dirname + , exists = fs.existsSync || path.existsSync + , defaults = { + arrow: process.env.NODE_BINDINGS_ARROW || ' → ' + , compiled: process.env.NODE_BINDINGS_COMPILED_DIR || 'compiled' + , platform: process.platform + , arch: process.arch + , version: process.versions.node + , bindings: 'bindings.node' + , try: [ + // node-gyp's linked version in the "build" dir + [ 'module_root', 'build', 'bindings' ] + // node-waf and gyp_addon (a.k.a node-gyp) + , [ 'module_root', 'build', 'Debug', 'bindings' ] + , [ 'module_root', 'build', 'Release', 'bindings' ] + // Debug files, for development (legacy behavior, remove for node v0.9) + , [ 'module_root', 'out', 'Debug', 'bindings' ] + , [ 'module_root', 'Debug', 'bindings' ] + // Release files, but manually compiled (legacy behavior, remove for node v0.9) + , [ 'module_root', 'out', 'Release', 'bindings' ] + , [ 'module_root', 'Release', 'bindings' ] + // Legacy from node-waf, node <= 0.4.x + , [ 'module_root', 'build', 'default', 'bindings' ] + // Production "Release" buildtype binary (meh...) + , [ 'module_root', 'compiled', 'version', 'platform', 'arch', 'bindings' ] + ] + } + +/** + * The main `bindings()` function loads the compiled bindings for a given module. + * It uses V8's Error API to determine the parent filename that this function is + * being invoked from, which is then used to find the root directory. + */ + +function bindings (opts) { + + // Argument surgery + if (typeof opts == 'string') { + opts = { bindings: opts } + } else if (!opts) { + opts = {} + } + opts.__proto__ = defaults + + // Get the module root + if (!opts.module_root) { + opts.module_root = exports.getRoot(exports.getFileName()) + } + + // Ensure the given bindings name ends with .node + if (path.extname(opts.bindings) != '.node') { + opts.bindings += '.node' + } + + var tries = [] + , i = 0 + , l = opts.try.length + , n + , b + , err + + for (; i=1.2.1 <1.3.0", + "_npmVersion": "1.4.14", + "_npmUser": { + "name": "tootallnate", + "email": "nathan@tootallnate.net" + }, + "maintainers": [ + { + "name": "TooTallNate", + "email": "nathan@tootallnate.net" + }, + { + "name": "tootallnate", + "email": "nathan@tootallnate.net" + } + ], + "dist": { + "shasum": "14ad6113812d2d37d72e67b4cacb4bb726505f11", + "tarball": "http://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz" + }, + "directories": {}, + "_resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz" +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..03cd46e --- /dev/null +++ b/package.json @@ -0,0 +1,11 @@ +{ + "name": "OpenVEIL", + "version": "7.0.0", + "description": "OpenVEIL Addon for Node.js", + "main": "build/Release/OpenVEIL.node", + "private": true, + "gypfile": true, + "dependencies": { + "bindings": "~1.2.1" + } +}