core.js: Using the vanadium module's public API rather than
requiring files directly in integration tests where possible.

Change-Id: I40e7a4ce6ea661906f4113c11bae1168f9e8ce60
diff --git a/src/security/caveats.js b/src/security/caveats.js
index df780e0..cfd1822 100644
--- a/src/security/caveats.js
+++ b/src/security/caveats.js
@@ -30,6 +30,13 @@
   });
 }
 
+/**
+ * createConstCaveat returns a [Caveat]{@link module:vanadium.security.Caveat}
+ * that validates iff value is true.
+ * @param {boolean} value
+ * @returns module:vanadium.security.Caveat
+ * @memberof module:vanadium.security
+ */
 function createConstCaveat(value) {
   return createCaveat(vdlSecurity.ConstCaveat, value);
 }
diff --git a/src/security/index.js b/src/security/index.js
index f8645f6..5e2dff6 100644
--- a/src/security/index.js
+++ b/src/security/index.js
@@ -42,6 +42,7 @@
   access: require('./access'),
   createExpiryCaveat: require('./caveats').createExpiryCaveat,
   createMethodCaveat: require('./caveats').createMethodCaveat,
+  createConstCaveat: require('./caveats').createConstCaveat,
   unconstrainedUse: require('./caveats').unconstrainedUse,
   createCaveat: require('./caveats').createCaveat,
   unionOfBlessings: require('./blessings-util').unionOfBlessings
diff --git a/src/vdl/kind.js b/src/vdl/kind.js
index 30d01ff..2277f2b 100644
--- a/src/vdl/kind.js
+++ b/src/vdl/kind.js
@@ -16,97 +16,120 @@
 var kind = {
   // Nullable kinds
   /**
+   * @type {string}
    * @const
    */
   ANY: 'any',
   /**
+   * @type {string}
    * @const
    */
   OPTIONAL: 'optional',
   // Scalar kinds
   /**
+   * @type {string}
    * @const
    */
   BOOL: 'bool',
   /**
+   * @type {string}
    * @const
    */
   BYTE: 'byte',
   /**
+   * @type {string}
    * @const
    */
   UINT16: 'uint16',
   /**
+   * @type {string}
    * @const
    */
   UINT32: 'uint32',
   /**
+   * @type {string}
    * @const
    */
   UINT64: 'uint64',
   /**
+   * @type {string}
    * @const
    */
   INT16: 'int16',
   /**
+   * @type {string}
    * @const
    */
   INT32: 'int32',
   /**
+   * @type {string}
    * @const
    */
   INT64: 'int64',
   /**
+   * @type {string}
    * @const
    */
   FLOAT32: 'float32',
   /**
+   * @type {string}
    * @const
    */
   FLOAT64: 'float64',
   /**
+   * @type {string}
    * @const
    */
   COMPLEX64: 'complex64',
   /**
+   * @type {string}
    * @const
    */
   COMPLEX128: 'complex128',
   /**
+   * @type {string}
    * @const
    */
   STRING: 'string',
   /**
+   * @type {string}
    * @const
    */
   ENUM: 'enum',
   /**
+   * @type {string}
    * @const
    */
   TYPEOBJECT: 'typeobject',
   // Composite kinds
   /**
+   * @type {string}
    * @const
    */
   ARRAY: 'array',
   /**
+   * @type {string}
    * @const
    */
   LIST: 'list',
   /**
+   * @type {string}
    * @const
    */
   SET: 'set',
   /**
+   * @type {string}
    * @const
    */
   MAP: 'map',
   /**
+   * @type {string}
    * @const
    */
   STRUCT: 'struct',
   /**
    * Union is like struct, but with only 1 field filled in.
+   * @type {string}
    * @const
    */
   UNION: 'union',
diff --git a/src/vdl/types.js b/src/vdl/types.js
index 23f216e..25eb07b 100644
--- a/src/vdl/types.js
+++ b/src/vdl/types.js
@@ -21,73 +21,89 @@
  */
 var types = {
   /**
+   * @type {module:vanadium.vdl.Type}
    * @const
    */
   ANY: primitiveType(kind.ANY),
   /**
+   * @type {module:vanadium.vdl.Type}
    * @const
    */
   BOOL: primitiveType(kind.BOOL),
   /**
+   * @type {module:vanadium.vdl.Type}
    * @const
    */
   BYTE: primitiveType(kind.BYTE),
   /**
+   * @type {module:vanadium.vdl.Type}
    * @const
    */
   UINT16: primitiveType(kind.UINT16),
   /**
+   * @type {module:vanadium.vdl.Type}
    * @const
    */
   UINT32: primitiveType(kind.UINT32),
   /**
+   * @type {module:vanadium.vdl.Type}
    * @const
    */
   UINT64: primitiveType(kind.UINT64),
   /**
+   * @type {module:vanadium.vdl.Type}
    * @const
    */
   INT16: primitiveType(kind.INT16),
   /**
+   * @type {module:vanadium.vdl.Type}
    * @const
    */
   INT32: primitiveType(kind.INT32),
   /**
+   * @type {module:vanadium.vdl.Type}
    * @const
    */
   INT64: primitiveType(kind.INT64),
   /**
+   * @type {module:vanadium.vdl.Type}
    * @const
    */
   FLOAT32: primitiveType(kind.FLOAT32),
   /**
+   * @type {module:vanadium.vdl.Type}
    * @const
    */
   FLOAT64: primitiveType(kind.FLOAT64),
   /**
+   * @type {module:vanadium.vdl.Type}
    * @const
    */
   COMPLEX64: primitiveType(kind.COMPLEX64),
   /**
+   * @type {module:vanadium.vdl.Type}
    * @const
    */
   COMPLEX128: primitiveType(kind.COMPLEX128),
   /**
+   * @type {module:vanadium.vdl.Type}
    * @const
    */
   STRING: primitiveType(kind.STRING),
   /**
+   * @type {module:vanadium.vdl.Type}
    * @const
    */
   TYPEOBJECT: Type.prototype._type // So that === works for types.TypeObject
 };
 /**
- * Defines the wire error format
+ * @type {module:vanadium.vdl.Type}
  * @const
  */
 types.ERROR = defineOptionalErrorType();
 
 /**
+ * @type {module:vanadium.vdl.Type}
  * @const
  */
 types.JSVALUE = defineJSValueType();
diff --git a/test/integration/test-authorizer.js b/test/integration/test-authorizer.js
index ef9da8e..895ead4 100644
--- a/test/integration/test-authorizer.js
+++ b/test/integration/test-authorizer.js
@@ -2,15 +2,13 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+var vanadium = require('../..');
 var test = require('prova');
-var access = require('../../src/gen-vdl/v.io/v23/security/access');
 var Deferred = require('../../src/lib/deferred');
-var permissionsAuthorizer =
-  require('../../src/security/access/permissions-authorizer');
-var allowEveryoneAuthorizer =
-  require('../../src/security/access/allow-everyone-authorizer');
 var serve = require('./serve');
-
+var access = vanadium.security.access;
+var permissionsAuthorizer = vanadium.security.access.permissionsAuthorizer;
+var allowEveryoneAuthorizer = vanadium.security.access.allowEveryoneAuthorizer;
 
 var service = {
   call: function(ctx, serverCall, arg) {
@@ -18,7 +16,6 @@
   }
 };
 
-
 function createPromiseDispatcher(authorizer, tags) {
   function auth(ctx, call) {
     if (call.method === '__Signature') {
diff --git a/test/integration/test-bless.js b/test/integration/test-bless.js
index 6880bda..1c03b5b 100644
--- a/test/integration/test-bless.js
+++ b/test/integration/test-bless.js
@@ -5,11 +5,10 @@
 var test = require('prova');
 var vanadium = require('../../');
 var config = require('./default-config');
-var caveats = require('../../src/security/caveats');
 var leafDispatcher = require('../../src/rpc/leaf-dispatcher');
-var serve = require('./serve');
 var Blessings = require('../../src/security/blessings');
-var SharedContextKeys = require('../../src/runtime/shared-context-keys');
+var serve = require('./serve');
+var security = vanadium.security;
 
 function validateBlessings(t, blessings) {
   t.ok(blessings instanceof Blessings, 'Blessings have correct type');
@@ -50,7 +49,7 @@
     rt = runtime;
 
     runtime.principal.blessSelf(runtime.getContext(), 'blessedname',
-      caveats.createExpiryCaveat(new Date()),
+      security.createExpiryCaveat(new Date()),
       function(err, blessings) {
       t.error(err);
       validateBlessings(t, blessings);
@@ -63,11 +62,11 @@
   var service = {
     method: function(ctx, serverCall, cb) {
       var secCall = serverCall.securityCall;
-      var rt = ctx.value(SharedContextKeys.RUNTIME);
+      var rt = vanadium.runtimeForContext(ctx);
       var remoteKey = secCall.remoteBlessings.publicKey;
       rt.principal.bless(ctx, remoteKey, secCall.localBlessings,
        'ext', function(err) {
-         t.ok(err, 'Expected at least one caveat must be specfied error');
+         t.ok(err, 'Expected at least one caveat must be specified error');
          cb(null, null);
        });
     }
@@ -90,12 +89,12 @@
 test('Test bless with Caveat from server', function(t) {
   var service = {
     method: function(ctx, serverCall, cb) {
-      var rt = ctx.value(SharedContextKeys.RUNTIME);
+      var rt = vanadium.runtimeForContext(ctx);
       var secCall = serverCall.securityCall;
       var remoteKey = secCall.remoteBlessings.publicKey;
       rt.principal.bless(ctx, remoteKey, secCall.localBlessings,
-       'ext', caveats.createExpiryCaveat(new Date(Date.now() - 1000)),
-       caveats.createConstCaveat(true), function(err, blessings) {
+       'ext', security.createExpiryCaveat(new Date(Date.now() - 1000)),
+       security.createConstCaveat(true), function(err, blessings) {
          t.notOk(err, 'No error expected during bless');
          validateBlessings(t, blessings);
          cb(null, null);
@@ -146,7 +145,7 @@
             call.remoteBlessings.publicKey,
             call.localBlessings,
             'ext',
-            caveats.createExpiryCaveat(fiveSecondsInFuture),
+            security.createExpiryCaveat(fiveSecondsInFuture),
             function(err, blessing) {
               expectedBlessing = blessing;
               cb(err, blessing);
diff --git a/test/integration/test-blessings-util.js b/test/integration/test-blessings-util.js
index 52f907b..0f55cea 100644
--- a/test/integration/test-blessings-util.js
+++ b/test/integration/test-blessings-util.js
@@ -5,7 +5,7 @@
 var test = require('prova');
 var vanadium = require('../../');
 var config = require('./default-config');
-var security = require('../../src/security');
+var security = vanadium.security;
 
 test('Test union of blessings (promise case)', function(t) {
   vanadium.init(config, function(err, runtime) {
diff --git a/test/integration/test-cancellation.js b/test/integration/test-cancellation.js
index a4f40f2..ec9b9c1 100644
--- a/test/integration/test-cancellation.js
+++ b/test/integration/test-cancellation.js
@@ -3,11 +3,12 @@
 // license that can be found in the LICENSE file.
 
 var test = require('prova');
+var vanadium = require('../../');
 var service = require('./get-service');
 var serve = require('./serve');
 var leafDispatcher = require('../../src/rpc/leaf-dispatcher');
 var NO_TIMEOUT = require('../../src/rpc/constants').NO_TIMEOUT;
-var CanceledError = require('../../src/gen-vdl/v.io/v23/verror').CanceledError;
+var CanceledError = vanadium.verror.CanceledError;
 
 var errorId = new CanceledError(null).id;
 
diff --git a/test/integration/test-caveat-validation.js b/test/integration/test-caveat-validation.js
index ba379a7..72feb3d 100644
--- a/test/integration/test-caveat-validation.js
+++ b/test/integration/test-caveat-validation.js
@@ -3,11 +3,11 @@
 // license that can be found in the LICENSE file.
 
 var test = require('prova');
+var vanadium = require('../../');
 var serve = require('./serve');
-var vdl = require('../../src/vdl');
 var leafDispatcher = require('../../src/rpc/leaf-dispatcher');
-
 var testService = require('../vdl-out/v.io/x/js.core/test_service');
+var vdl = vanadium.vdl;
 
 // Service to be invoked
 function aServiceDef() {
diff --git a/test/integration/test-client-call-opts.js b/test/integration/test-client-call-opts.js
index 41c7467..3f83f05 100644
--- a/test/integration/test-client-call-opts.js
+++ b/test/integration/test-client-call-opts.js
@@ -3,9 +3,8 @@
 // license that can be found in the LICENSE file.
 
 var test = require('prova');
-
-var config = require('./default-config');
 var vanadium = require('../../');
+var config = require('./default-config');
 var verror = vanadium.verror;
 
 function end(t, rt, err) {
diff --git a/test/integration/test-js-client-server.js b/test/integration/test-js-client-server.js
index 3a14b2c..e7f175a 100644
--- a/test/integration/test-js-client-server.js
+++ b/test/integration/test-js-client-server.js
@@ -3,10 +3,11 @@
 // license that can be found in the LICENSE file.
 
 var test = require('prova');
+var vanadium = require('../../');
 var serve = require('./serve');
 var leafDispatcher = require('../../src/rpc/leaf-dispatcher');
 var Deferred = require('../../src/lib/deferred');
-var vdl = require('../../src/vdl');
+
 var builtins = require('../../src/vdl/builtins');
 var stringify = require('../../src/vdl/stringify');
 var TypeUtil = require('../../src/vdl/type-util');
@@ -15,6 +16,8 @@
 var typedStreamingServiceVdl =
   require('../vdl-out/javascript-test/services/typed-streaming-service');
 
+var vdl = vanadium.vdl;
+
 // TODO(bprosnitz) Combine CacheService and CacheServicePromises so there
 // isn't as much duplicated code.
 
diff --git a/test/integration/test-namespace.js b/test/integration/test-namespace.js
index e7d6f73..a2cbccb 100644
--- a/test/integration/test-namespace.js
+++ b/test/integration/test-namespace.js
@@ -5,18 +5,18 @@
 var test = require('prova');
 var Promise = require('../../src/lib/promise');
 
-var access = require('../../src/gen-vdl/v.io/v23/security/access');
-var reserved = require('../../src/gen-vdl/v.io/v23/rpc/reserved');
 var config = require('./default-config');
-var MINUTE = 60 * 1000; // a minute
 var Promise = require('../../src/lib/promise');
 var random = require('../../src/lib/random');
 var timeouts = require('./timeouts');
 var vanadium = require('../../');
 var verror = vanadium.verror;
+var access = vanadium.security.access;
+var reserved = vanadium.rpc.reserved;
 
 var namespaceRoot = process.env.V23_NAMESPACE;
 var PREFIX = 'namespace-testing/';
+var MINUTE = 60 * 1000; // a minute
 
 test('Test globbing children - glob(' + PREFIX + '*)', function(assert) {
   var runtime;
diff --git a/test/integration/test-sending-blessings.js b/test/integration/test-sending-blessings.js
index 9388767..6a62c88 100644
--- a/test/integration/test-sending-blessings.js
+++ b/test/integration/test-sending-blessings.js
@@ -3,24 +3,22 @@
 // license that can be found in the LICENSE file.
 
 var test = require('prova');
+var vanadium = require('../../');
 var serve = require('./serve');
 var leafDispatcher = require('../../src/rpc/leaf-dispatcher');
-var runtimeFromContext = require('../../src/runtime/runtime-from-context');
-var types = require('../../src/vdl/types');
-var WireBlessings =
-  require('../../src/gen-vdl/v.io/v23/security').WireBlessings;
-var caveats = require('../../src/security/caveats');
+var WireBlessings = vanadium.security.WireBlessings;
 var Blessings = require('../../src/security/blessings');
-
+var security = vanadium.security;
+var types = vanadium.vdl.types;
 
 var blessingsService = {
   createBlessings: function(ctx, serverCall, publicKey) {
-    var principal = runtimeFromContext(ctx).principal;
+    var principal = vanadium.runtimeForContext(ctx).principal;
     var expiryDate = new Date((new Date()).getTime() + 6000000);
 
     return principal.blessingStore.getDefault(ctx).then(function(defaultBless) {
       return principal.bless(ctx, publicKey, defaultBless, 'friend',
-                           caveats.createExpiryCaveat(expiryDate));
+                           security.createExpiryCaveat(expiryDate));
     });
   },
   verifyBlessings: function(ctx, serverCall) {
diff --git a/test/integration/test-server-glob.js b/test/integration/test-server-glob.js
index c7273a1..cca52c5 100644
--- a/test/integration/test-server-glob.js
+++ b/test/integration/test-server-glob.js
@@ -5,10 +5,9 @@
 var test = require('prova');
 var serve = require('./serve');
 var Promise = require('../../src/lib/promise');
-var naming = require('../../src/gen-vdl/v.io/v23/naming');
-var namespaceUtil = require('../../src/naming/util');
-var verror = require('../../src/gen-vdl/v.io/v23/verror');
-
+var vanadium = require('../../');
+var naming = vanadium.naming;
+var verror = vanadium.verror;
 
 var ALBUMS = [
   'public',
@@ -250,7 +249,7 @@
 
 FullGlobber.prototype.__glob = function(ctx, serverCall, glob, $stream) {
     var mountEntry = new naming.MountEntry({
-      name: namespaceUtil.join(serverCall.securityCall.suffix, glob),
+      name: naming.join(serverCall.securityCall.suffix, glob),
     });
     $stream.write(new naming.GlobReply({
       entry: mountEntry
diff --git a/test/integration/test-service-errors.js b/test/integration/test-service-errors.js
index 061a78f..1e6f31e 100644
--- a/test/integration/test-service-errors.js
+++ b/test/integration/test-service-errors.js
@@ -3,9 +3,10 @@
 // license that can be found in the LICENSE file.
 
 var test = require('prova');
+var vanadium = require('../../');
 var service = require('./get-service');
-var verror = require('../../src/gen-vdl/v.io/v23/verror');
-var VanadiumError = require('../../src/verror/vanadium-error');
+var verror = vanadium.verror;
+var VanadiumError = verror.VanadiumError;
 
 test('Test Go service returning Aborted error - ' +
   'errorThrower.method(callback)', function(assert) {
diff --git a/test/integration/test-service-native.js b/test/integration/test-service-native.js
index 4a7b9a9..242ee53 100644
--- a/test/integration/test-service-native.js
+++ b/test/integration/test-service-native.js
@@ -3,9 +3,10 @@
 // license that can be found in the LICENSE file.
 
 var test = require('prova');
+var vanadium = require('../../');
 var service = require('./get-service');
-var makeError = require('../../src/verror/make-errors');
-var actions = require('../../src/verror/actions');
+var makeError = vanadium.verror.makeError;
+var actions = vanadium.verror.actions;
 
 var E = makeError('randomPrefix.verror', actions.NO_RETRY,
                   '{1} {2}: RandomError: {_}');
diff --git a/test/integration/test-vtrace.js b/test/integration/test-vtrace.js
index ce9bafd..6da7720 100644
--- a/test/integration/test-vtrace.js
+++ b/test/integration/test-vtrace.js
@@ -4,9 +4,10 @@
 
 var test = require('prova');
 var service = require('./get-service');
-var vtrace = require('../../src/vtrace');
+var vanadium = require('../../');
 var serve = require('./serve');
 var leafDispatcher = require('../../src/rpc/leaf-dispatcher');
+var vtrace = vanadium.vtrace;
 
 function findSpan(name, trace) {
   for (var i = 0; i < trace.spans.length; i++) {