<%
/*
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
*/
%>{
  "name": "gremlin",
  "version": "<%= version %>",
  "description": "JavaScript Gremlin Language Variant",
  "author": "Apache TinkerPop team",
  "keywords": [
    "graph",
    "gremlin",
    "tinkerpop",
    "connection",
    "glv",
    "driver",
    "graphdb"
  ],
  "license": "Apache-2.0",
  "dependencies": {
    "ws": "^6.2.2"
  },
  "devDependencies": {
    "chai": "~4.1.2",
    "cucumber": "~4.2.1",
    "grunt": "~1.0.4",
    "grunt-cli": "~1.3.2",
    "grunt-jsdoc": "~2.3.1",
    "mocha": "~5.2.0",
    "colors": "1.4.0"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/apache/tinkerpop.git"
  },
  "homepage": "https://tinkerpop.apache.org/",
  "bugs": {
    "url": "https://issues.apache.org/jira/browse/TINKERPOP"
  },
  "scripts": {
    "test": "./node_modules/mocha/bin/mocha test/unit test/integration -t 5000",
    "features": "./node_modules/.bin/cucumber-js --require test/cucumber ../../../../../gremlin-test/features/",
    "unit-test": "./node_modules/mocha/bin/mocha test/unit"
  },
  "engines": {
    "node": ">=6"
  }
}
