├── .gitignore ├── README.md ├── gschema.js ├── index.js ├── package-lock.json ├── package.json ├── sample_schemas ├── github.json ├── graphbrainz.json ├── shopify_introspection.json └── spotify_graphql.json └── server ├── public ├── arrowdown.png ├── es6-promise │ └── 4.0.5 │ │ └── es6-promise.auto.min.js ├── fetch │ └── 0.9.0 │ │ └── fetch.min.js ├── npm │ ├── graphiql@0.12.0 │ │ ├── graphiql.css │ │ └── graphiql.min.js │ └── micromodal │ │ └── dist │ │ └── micromodal.min.js └── react │ └── 15.4.2 │ ├── react-dom.min.js │ └── react.min.js ├── renderGraphiQL.js ├── server.js └── view └── index.html /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | /tmp 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # graphqlschema2payload 2 | This little piece of software helps to recreate GraphQL payloads from a GraphQL Schema. 3 | It works by visiting the Schema and resolving all types. 4 | Its main purpose is to create tests that can be used for QA or pentesting. 5 | 6 | ## Install 7 | 8 | ``` 9 | npm install 10 | ``` 11 | 12 | ## Server Version 13 | 14 | The server version integrates [GraphiQL](https://github.com/graphql/graphiql) interface and populates the editor with an automatically 15 | generate template from the schema. 16 | 17 | 1. Launch the server: 18 | ```npm start``` 19 | 20 | 2. Visit http://localhost:4000/ 21 | 22 | 3. Add the remote URL and optional Headers (Ie. Authorization Bearer) separated by lines (eg. https://bahnql.herokuapp.com/graphql). 23 | ![image](https://user-images.githubusercontent.com/1196560/50766648-50a7e000-127a-11e9-859f-d246cda20c16.png) 24 | 25 | 4. Click Continue in order to let GraphiQL fetch the Schema via the local server. Local server also instantiates GSchema which automatically extracts templates from gqlSchema. 26 | 27 | 5. Use the dropdown menus *Query* and *Mutations* to populate the editor with a specific template. 28 | 29 | ![image](https://user-images.githubusercontent.com/1196560/50769657-ecd6e480-1284-11e9-8722-26926dafa92f.png) 30 | 31 | 6. Edit the template with the arguments. 32 | 33 | 7. Execute the query and get the response from the remote URL. 34 | 35 | ![image](https://user-images.githubusercontent.com/1196560/50769782-6373e200-1285-11e9-8786-f1320a030bdc.png) 36 | 37 | 38 | ## CLI Version Usage: 39 | 40 | The CLI version helps exploring the GQL Schema. 41 | 42 | ``` 43 | Usage: node ./index.js [-r] [-q] [-m] [-a] [-f filename_schema]|[[-p] -u http://URL [-H 'NAME1=VALUE1|NAME2=VALUE2']] [action_name] 44 | -q : prints all queries 45 | -m : prints all mutations 46 | -f : schema path 47 | -a : print all actions 48 | -u : url to download grapql schema 49 | -H : Header to add. Use format like NAME1=VALUE1|NAME2=VALUE2 for multiple pairs 50 | -p : print downloaded schema [to save it somewhere use redirection >/output_schema.json ] 51 | -r : prints the POST payload to be used as template for testing - NB: No Arguments Value Given. user needs to add them by hand - 52 | 53 | ``` 54 | 55 | eg. download one of https://github.com/APIs-guru/graphql-voyager/tree/master/demo/presets/ 56 | ``` 57 | node index.js -f ./sample_schemas/graphbrainz.json.json -a 58 | ``` 59 | 60 | eg. Download Schema using introspection and print all query names: 61 | ``` 62 | node index.js -u 'https://api.github.com/graphql' -H 'Authorization= bearer TOKEN' -q 63 | ``` 64 | 65 | 66 | # Examples 67 | http://apis.guru/graphql-apis/ 68 | 69 | # TODO 70 | - add compatibility to previous graphql versions. 71 | EG. : 72 | ``` 73 | https://pokeapi-graphiql.herokuapp.com/ 74 | 75 | ``` 76 | -------------------------------------------------------------------------------- /gschema.js: -------------------------------------------------------------------------------- 1 | var debug = function() {}; 2 | if (process.env.DEBUG) { 3 | debug = function() { 4 | console.debug.apply(console, arguments) 5 | } 6 | } 7 | var gql = require('graphql'); 8 | var introspectionQuery = require('graphql/utilities/introspectionQuery.js'); 9 | var gqdef = require('graphql/type/definition') 10 | var {buildClientSchema, buildSchema} = require("graphql/utilities"); 11 | var {visit, visitWithTypeInfo} = require('graphql/language/visitor'); 12 | var {parse} = require('graphql/language/parser'); 13 | 14 | 15 | var isNamedType = function(obj, name) { 16 | if (obj && gql[`GraphQL${name}Type`]) { 17 | typeConstructor = gql[`GraphQL${name}Type`]; 18 | if (obj.type) { 19 | if (obj.type.constructor === typeConstructor 20 | || (obj.type.ofType && obj.type.ofType.constructor === typeConstructor)) { 21 | return true; 22 | } 23 | } else { 24 | if (obj.constructor === typeConstructor) { 25 | return true; 26 | } 27 | } 28 | } 29 | return false; 30 | } 31 | var isGQScalar = function isGQScalar(obj) { 32 | return isNamedType(obj, 'Scalar'); 33 | } 34 | 35 | var isGQEnum = function isGQEnum(obj) { 36 | return isNamedType(obj, 'Enum'); 37 | } 38 | 39 | var isGQObject = function isGQObject(obj) { 40 | return isNamedType(obj, 'Object'); 41 | } 42 | var isListType = function isGQObject(obj) { 43 | return isNamedType(obj, 'List'); 44 | } 45 | var isInterfaceType = function isGQObject(obj) { 46 | return isNamedType(obj, 'Interface'); 47 | } 48 | var isUnionType = function isGQObject(obj) { 49 | return isNamedType(obj, 'Union'); 50 | } 51 | var isNonNullType = function isGQObject(obj) { 52 | return isNamedType(obj, 'NonNull'); 53 | } 54 | 55 | var isGQType = function isGQType(type) { 56 | return (isScalarType(type) 57 | || isObjectType(type) 58 | || isEnumType(type) 59 | || isInputObjectType(type) 60 | || isListType(type) 61 | || isInterfaceType(type) 62 | || isUnionType(type) 63 | || isNonNullType(type) 64 | ); 65 | } 66 | 67 | function isScalarType(type) { 68 | return type instanceof gql.GraphQLScalarType; 69 | } 70 | function isObjectType(type) { 71 | return type instanceof gql.GraphQLObjectType; 72 | } 73 | function isEnumType(type) { 74 | return type instanceof gql.GraphQLEnumType; 75 | } 76 | function isInputObjectType(type) { 77 | return type instanceof gql.GraphQLInputObjectType; 78 | } 79 | 80 | 81 | function printTopCall(query_name,query_arguments,content){ 82 | return `\n{\n ${query_name} ${query_arguments} {\n${content} }\n}`; 83 | } 84 | /** 85 | SCHEMA can be a JSON Object OR an instance of GraphQLSchema. 86 | */ 87 | var GSchema = function(SCHEMA) { 88 | try { 89 | if(SCHEMA instanceof gql.GraphQLSchema){ 90 | this.schema = SCHEMA; 91 | }else{ 92 | // Get SCHEMA from JSON. 93 | if (typeof (SCHEMA.data) !== 'undefined' && SCHEMA.data.__schema) { 94 | this._internal_schema = SCHEMA.data.__schema; 95 | } else { 96 | this._internal_schema = SCHEMA.__schema; 97 | } 98 | 99 | // Get SCHEMA from JSON. 100 | if (typeof (SCHEMA.data) !== 'undefined') { 101 | SCHEMA = SCHEMA.data 102 | } 103 | this.schema = buildClientSchema(SCHEMA) 104 | } 105 | } catch (e) { 106 | console.log(e) 107 | this.schema = buildSchema(SCHEMA); 108 | } 109 | /* 110 | // Get SCHEMA from JSON. 111 | if (typeof (SCHEMA.data) !== 'undefined' && SCHEMA.data.__schema) { 112 | this.schema = SCHEMA.data.__schema 113 | } else { 114 | this.schema = SCHEMA.__schema 115 | }*/ 116 | 117 | } 118 | 119 | GSchema.introspectionQuery = introspectionQuery.introspectionQuery; 120 | GSchema.prototype.getGQType = function(obj) { 121 | var tmp_type = obj; 122 | var tmp_oftype = obj.type; 123 | if (isGQType(tmp_oftype)) { 124 | tmp_type = this.schema.getType(tmp_oftype.name); 125 | } else { 126 | while ( /*!tmp_type && */ tmp_oftype.ofType) { 127 | tmp_oftype = tmp_oftype.ofType; 128 | tmp_type = this.schema.getType(tmp_oftype.name); 129 | } 130 | } 131 | return tmp_type; 132 | } 133 | 134 | // GSchema.prototype.get_types = function get_types() { 135 | // return this.schema.getTypeMap(); 136 | // } 137 | // 138 | // GSchema.prototype.get_scalar_types = function get_scalar_types() { 139 | // return this.get_types().filter(e => { 140 | // if (e.kind === 'SCALAR' || e.kind === 'ENUM') return e.name 141 | // }).map(e => e.name); 142 | // } 143 | 144 | /*** 145 | returns getters 146 | 147 | */ 148 | GSchema.prototype.get_queries = function get_queries() { 149 | const query = this.schema.getQueryType(); 150 | return query && query.getFields() || {}; 151 | } 152 | 153 | /*** 154 | returns setters 155 | */ 156 | GSchema.prototype.get_mutations = function get_mutations() { 157 | const mutation = this.schema.getMutationType() 158 | return mutation && mutation.getFields() || {}; 159 | } 160 | 161 | GSchema.prototype.get_type = function get_type(type_obj) { 162 | var typename = type_obj; 163 | if (typeof typename !== 'string' && typename.name) { 164 | typename = typename.name; 165 | } 166 | if (typeof typename === 'string') { 167 | var tmp_type = this.schema.getType(typename); 168 | if (!tmp_type && type_obj.type) { 169 | tmp_type = this.getGQType(type_obj); 170 | } 171 | return tmp_type; 172 | } 173 | else 174 | return typename; 175 | } 176 | var str = ''; 177 | 178 | function wrap_by_type(val,type) { 179 | switch(type){ 180 | case "String": 181 | return `"${val}"`; 182 | case "Int": 183 | return `-9999`; 184 | case "Boolean": 185 | return `true`; 186 | default: 187 | return `#${val}`; 188 | } 189 | } 190 | 191 | GSchema.prototype.print_arguments = function print_arguments(field_object, tabs) { 192 | return (field_object.args && field_object.args.length > 0 ? '( ' + field_object.args.map(el => { 193 | var constructorName; 194 | if (el.type) { 195 | var required = (el.type+'').endsWith('!'); 196 | var inferred_type = this.getGQType(el); 197 | if (el.type.constructor.name.indexOf('Type') !== -1) { 198 | constructorName = el.type.constructor.name; 199 | } 200 | if (el.type.ofType && el.type.ofType.constructor.name.indexOf('Type') !== -1) { 201 | constructorName = el.type.ofType.constructor.name 202 | } 203 | } 204 | if (constructorName === 'GraphQLInputObjectType') { 205 | if (el.type._fields) { 206 | constructorName += el.type + ' ' + JSON.stringify(el.type._fields, null, 2); 207 | } else if (el.type && el.type.ofType) { 208 | constructorName += JSON.stringify(el.type.ofType._fields, null, 2); 209 | } 210 | 211 | } 212 | return el.name + `:${wrap_by_type("PLACEH_"+el.name,inferred_type.name)} #${required?"[Required]":""} ${inferred_type.name} \n${tabs}` 213 | }).join(' , ') + ')' : ''); 214 | } 215 | 216 | 217 | GSchema.prototype.expand_type = function expand_type(type, level) { 218 | level = level || 1; 219 | var tabs = ' '.repeat(level) 220 | var tmp_type = this.get_type(type); 221 | 222 | if (!tmp_type) { 223 | return; 224 | } 225 | if (this.visited_types.indexOf(tmp_type.name) !== -1) { 226 | str += `${tabs}# ${tmp_type.name} type circular object, already expanded\n`; 227 | return false; 228 | } 229 | 230 | if (this.visited_types.indexOf(tmp_type.name) === -1) { 231 | this.visited_types.push(tmp_type.name); 232 | debug("PUSHING:", tmp_type.name); 233 | } 234 | if ( /*!isGQObject(tmp_type) &&*/ tmp_type.getFields) { 235 | var fields_obj = tmp_type.getFields(); 236 | 237 | Object.keys(fields_obj).forEach(field_key => { 238 | var field_object = fields_obj[field_key]; 239 | var inferred_type = this.getGQType(field_object) 240 | 241 | if (isGQEnum(field_object)) { 242 | debug("ENUM!", field_object + '<<<'); 243 | str += `${tabs}${field_object.name} #ENUM -> \n${inferred_type.getValues().map(el => { 244 | return `${tabs} # ${el.name}\n` 245 | }).join('')}`; 246 | } else if (isGQScalar(field_object) || isGQScalar(inferred_type)) { 247 | debug("!", field_object.name + '>>>>>>>>>>>>>>>>>>>>>>>>>>'); 248 | 249 | str += `${tabs}${field_object.name} # ${inferred_type.name}\n`; 250 | } else /* if (isGQObject(field_object))*/ { 251 | debug("OBJECT!, entering in..", field_object,inferred_type) 252 | var str_pos = str.length; 253 | str += `${tabs}${field_object.name} ${this.print_arguments(field_object, tabs)} { #Type ${inferred_type.name}\n`; 254 | if (inferred_type) { 255 | var tmp = this.expand_type(field_object, ++level); 256 | // Commenting out the object if it results as recursive case 257 | // leaving it as info for the tester 258 | if (tmp === false) { 259 | var tmp_str = str.substr(str_pos); 260 | str = str.substr(0, str_pos); 261 | str += tmp_str.replace(/^ +/gm, `${tabs}#`); 262 | str += `${tabs}#}\n`; 263 | return; 264 | } 265 | } 266 | str += `${tabs}}\n`; 267 | } 268 | }); 269 | } else if (isGQEnum(tmp_type)) { 270 | str += tmp_type.getValues().map(el => { 271 | return `${tabs} # ${el.name}\n`; 272 | }).join('') 273 | debug("ENUMERATION>> ", tmp_type + '<<<') 274 | return; 275 | } else { 276 | debug("OTHER >> ", tmp_type , '<<<') 277 | } 278 | //if(this.visited_types.indexOf(tmp_type.name) !== -1) 279 | // this.visited_types.pop(); 280 | } 281 | 282 | GSchema.prototype.build_query = function build_query(name) { 283 | var q_content = this.get_queries()[name]; 284 | if(!q_content){ 285 | return this.build_mutation(name); 286 | } 287 | return this.build_entry(q_content); 288 | } 289 | 290 | GSchema.prototype.build_entry = function build_entry(q_content) { 291 | this.visited_types = []; 292 | //console.log(q_content) 293 | if (!q_content) { 294 | console.error(`Error: Can't find ${name} in this graphql Schema`); 295 | return ""; 296 | } 297 | 298 | if (true /*q_content.args && q_content.args.length === 0*/ ) { 299 | this.expand_type(q_content, 2); 300 | // var q_string = `\n{\n ${q_content.name} ${this.print_arguments(q_content)} {\n${str} }\n}`; 301 | var q_string = printTopCall(q_content.name,this.print_arguments(q_content, ' '),str); 302 | str = ''; 303 | return q_string; 304 | } 305 | }; 306 | 307 | GSchema.prototype.build_mutation = function build_mutation(name) { 308 | var q_content = this.get_mutations()[name]; 309 | return 'mutation ' + this.build_entry(q_content); 310 | }; 311 | 312 | GSchema.prototype.build_queries = function build_query() { 313 | return Object.keys(this.get_queries()).map(e => this.build_query(e)) 314 | .concat(Object.keys(this.get_mutations()).map(e => this.build_mutation(e))); 315 | }; 316 | module.exports = GSchema; 317 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | var DEBUG=process.env.DEBUG 2 | var repl = require('repl') 3 | 4 | var fetch = require('node-fetch'); 5 | var gschema = require("./gschema"); 6 | 7 | const fs = require('fs'); 8 | /* 9 | Minimal cli argument parser 10 | # get_argument("-x") > true||false 11 | # get_argument("-f:") > next parameter||false 12 | 13 | */ 14 | function get_argument(name) { 15 | var args = process.argv; 16 | if (name.endsWith(':')) { 17 | name = name.slice(0, -1); 18 | var expectArg = true; 19 | } 20 | var index = args.indexOf(name); 21 | if (index !== -1) { 22 | args.splice(index, 1); 23 | if (!expectArg) { 24 | return true; 25 | } else { 26 | return args.splice(index, 1)[0]; 27 | } 28 | } 29 | return false; 30 | } 31 | 32 | 33 | var args = process.argv; 34 | var show_queries = get_argument("-q"); 35 | var show_mutations = get_argument("-m"); 36 | var print_all = get_argument("-a"); 37 | var execute_request = get_argument("-r"); 38 | var file_schema = get_argument('-f:'); 39 | var remote_schema = get_argument('-u:'); 40 | var print_schema = get_argument("-p"); 41 | var header = get_argument('-H:'); 42 | if (get_argument("-h") || (!file_schema && !remote_schema)) { 43 | console.log(`Usage: ${args[1]} [-q] [-m] [-a] [-f filename_schema]|[[-p] -u http://URL [-H 'NAME1=VALUE1|NAME2=VALUE2']] [action_name] 44 | -q : prints all queries 45 | -m : prints all mutations 46 | -f : schema path 47 | -u : url to download grapql schema 48 | -H : Header to add. Use format like NAME1=VALUE1|NAME2=VALUE2 49 | -a : print all actions 50 | -p : print downloaded schema [to save it somewhere use redirection >/output_schema.json ] 51 | -r : prints the POST payload to be used as template for testing - NB: No Arguments Value Given user needs to add them by hand - 52 | `); 53 | process.exit() 54 | } 55 | (async function() { 56 | if (file_schema) { 57 | try { 58 | var SCHEMA = JSON.parse(fs.readFileSync(file_schema) + ''); 59 | } catch (e) { 60 | console.error("Error:", e); 61 | //process.exit() 62 | var SCHEMA = fs.readFileSync(file_schema) + ''; 63 | } 64 | } else if (remote_schema) { 65 | var headers = { 66 | 'Content-Type': 'application/json' 67 | } 68 | if (header) { 69 | header.split('|').reduce((acc, el) => { 70 | var pair = el.split('='); 71 | acc[pair[0]] = pair[1] 72 | return acc; 73 | }, headers); 74 | } 75 | response = await fetch(remote_schema, { 76 | method: 'POST', 77 | headers: headers, 78 | body: JSON.stringify({"query":gschema.introspectionQuery}) 79 | }); 80 | SCHEMA = await response.json(); 81 | if(print_schema) 82 | console.log(JSON.stringify(SCHEMA,null,2)) 83 | SCHEMA = SCHEMA; 84 | } 85 | 86 | var g = new gschema(SCHEMA); 87 | 88 | if (show_queries) { 89 | console.log(Object.keys(g.get_queries())) 90 | } 91 | if (show_mutations) { 92 | console.log(Object.keys(g.get_mutations())) 93 | } 94 | if (print_all) { 95 | console.log(g.build_queries().join('\n')); 96 | } 97 | if(args[2] && execute_request){ 98 | const payload = JSON.stringify({variables: null,query:g.build_query(args[2])},null, 2); 99 | console.log(payload); 100 | process.exit(1); 101 | } 102 | if (args[2]) 103 | console.log(g.build_query(args[2])); 104 | })(); -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "gqschema2payload", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "JSONStream": { 8 | "version": "1.3.5", 9 | "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", 10 | "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", 11 | "requires": { 12 | "jsonparse": "^1.2.0", 13 | "through": ">=2.2.7 <3" 14 | } 15 | }, 16 | "accepts": { 17 | "version": "1.3.5", 18 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", 19 | "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", 20 | "requires": { 21 | "mime-types": "~2.1.18", 22 | "negotiator": "0.6.1" 23 | } 24 | }, 25 | "acorn": { 26 | "version": "6.0.5", 27 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.5.tgz", 28 | "integrity": "sha512-i33Zgp3XWtmZBMNvCr4azvOFeWVw1Rk6p3hfi3LUDvIFraOMywb1kAtrbi+med14m4Xfpqm3zRZMT+c0FNE7kg==" 29 | }, 30 | "acorn-dynamic-import": { 31 | "version": "4.0.0", 32 | "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", 33 | "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==" 34 | }, 35 | "acorn-node": { 36 | "version": "1.6.2", 37 | "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.6.2.tgz", 38 | "integrity": "sha512-rIhNEZuNI8ibQcL7ANm/mGyPukIaZsRNX9psFNQURyJW0nu6k8wjSDld20z6v2mDBWqX13pIEnk9gGZJHIlEXg==", 39 | "requires": { 40 | "acorn": "^6.0.2", 41 | "acorn-dynamic-import": "^4.0.0", 42 | "acorn-walk": "^6.1.0", 43 | "xtend": "^4.0.1" 44 | } 45 | }, 46 | "acorn-walk": { 47 | "version": "6.1.1", 48 | "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.1.1.tgz", 49 | "integrity": "sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw==" 50 | }, 51 | "array-filter": { 52 | "version": "0.0.1", 53 | "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", 54 | "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=" 55 | }, 56 | "array-flatten": { 57 | "version": "1.1.1", 58 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 59 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" 60 | }, 61 | "array-map": { 62 | "version": "0.0.0", 63 | "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", 64 | "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=" 65 | }, 66 | "array-reduce": { 67 | "version": "0.0.0", 68 | "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", 69 | "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=" 70 | }, 71 | "asn1.js": { 72 | "version": "4.10.1", 73 | "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", 74 | "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", 75 | "requires": { 76 | "bn.js": "^4.0.0", 77 | "inherits": "^2.0.1", 78 | "minimalistic-assert": "^1.0.0" 79 | } 80 | }, 81 | "assert": { 82 | "version": "1.4.1", 83 | "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", 84 | "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", 85 | "requires": { 86 | "util": "0.10.3" 87 | }, 88 | "dependencies": { 89 | "inherits": { 90 | "version": "2.0.1", 91 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", 92 | "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" 93 | }, 94 | "util": { 95 | "version": "0.10.3", 96 | "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", 97 | "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", 98 | "requires": { 99 | "inherits": "2.0.1" 100 | } 101 | } 102 | } 103 | }, 104 | "balanced-match": { 105 | "version": "1.0.0", 106 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 107 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" 108 | }, 109 | "base64-js": { 110 | "version": "1.3.0", 111 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", 112 | "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" 113 | }, 114 | "bn.js": { 115 | "version": "4.11.8", 116 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", 117 | "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" 118 | }, 119 | "body-parser": { 120 | "version": "1.18.3", 121 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", 122 | "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", 123 | "requires": { 124 | "bytes": "3.0.0", 125 | "content-type": "~1.0.4", 126 | "debug": "2.6.9", 127 | "depd": "~1.1.2", 128 | "http-errors": "~1.6.3", 129 | "iconv-lite": "0.4.23", 130 | "on-finished": "~2.3.0", 131 | "qs": "6.5.2", 132 | "raw-body": "2.3.3", 133 | "type-is": "~1.6.16" 134 | } 135 | }, 136 | "brace-expansion": { 137 | "version": "1.1.11", 138 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 139 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 140 | "requires": { 141 | "balanced-match": "^1.0.0", 142 | "concat-map": "0.0.1" 143 | } 144 | }, 145 | "brorand": { 146 | "version": "1.1.0", 147 | "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", 148 | "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" 149 | }, 150 | "browser-pack": { 151 | "version": "6.1.0", 152 | "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", 153 | "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", 154 | "requires": { 155 | "JSONStream": "^1.0.3", 156 | "combine-source-map": "~0.8.0", 157 | "defined": "^1.0.0", 158 | "safe-buffer": "^5.1.1", 159 | "through2": "^2.0.0", 160 | "umd": "^3.0.0" 161 | } 162 | }, 163 | "browser-resolve": { 164 | "version": "1.11.3", 165 | "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", 166 | "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", 167 | "requires": { 168 | "resolve": "1.1.7" 169 | }, 170 | "dependencies": { 171 | "resolve": { 172 | "version": "1.1.7", 173 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", 174 | "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" 175 | } 176 | } 177 | }, 178 | "browserify": { 179 | "version": "16.2.3", 180 | "resolved": "https://registry.npmjs.org/browserify/-/browserify-16.2.3.tgz", 181 | "integrity": "sha512-zQt/Gd1+W+IY+h/xX2NYMW4orQWhqSwyV+xsblycTtpOuB27h1fZhhNQuipJ4t79ohw4P4mMem0jp/ZkISQtjQ==", 182 | "requires": { 183 | "JSONStream": "^1.0.3", 184 | "assert": "^1.4.0", 185 | "browser-pack": "^6.0.1", 186 | "browser-resolve": "^1.11.0", 187 | "browserify-zlib": "~0.2.0", 188 | "buffer": "^5.0.2", 189 | "cached-path-relative": "^1.0.0", 190 | "concat-stream": "^1.6.0", 191 | "console-browserify": "^1.1.0", 192 | "constants-browserify": "~1.0.0", 193 | "crypto-browserify": "^3.0.0", 194 | "defined": "^1.0.0", 195 | "deps-sort": "^2.0.0", 196 | "domain-browser": "^1.2.0", 197 | "duplexer2": "~0.1.2", 198 | "events": "^2.0.0", 199 | "glob": "^7.1.0", 200 | "has": "^1.0.0", 201 | "htmlescape": "^1.1.0", 202 | "https-browserify": "^1.0.0", 203 | "inherits": "~2.0.1", 204 | "insert-module-globals": "^7.0.0", 205 | "labeled-stream-splicer": "^2.0.0", 206 | "mkdirp": "^0.5.0", 207 | "module-deps": "^6.0.0", 208 | "os-browserify": "~0.3.0", 209 | "parents": "^1.0.1", 210 | "path-browserify": "~0.0.0", 211 | "process": "~0.11.0", 212 | "punycode": "^1.3.2", 213 | "querystring-es3": "~0.2.0", 214 | "read-only-stream": "^2.0.0", 215 | "readable-stream": "^2.0.2", 216 | "resolve": "^1.1.4", 217 | "shasum": "^1.0.0", 218 | "shell-quote": "^1.6.1", 219 | "stream-browserify": "^2.0.0", 220 | "stream-http": "^2.0.0", 221 | "string_decoder": "^1.1.1", 222 | "subarg": "^1.0.0", 223 | "syntax-error": "^1.1.1", 224 | "through2": "^2.0.0", 225 | "timers-browserify": "^1.0.1", 226 | "tty-browserify": "0.0.1", 227 | "url": "~0.11.0", 228 | "util": "~0.10.1", 229 | "vm-browserify": "^1.0.0", 230 | "xtend": "^4.0.0" 231 | } 232 | }, 233 | "browserify-aes": { 234 | "version": "1.2.0", 235 | "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", 236 | "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", 237 | "requires": { 238 | "buffer-xor": "^1.0.3", 239 | "cipher-base": "^1.0.0", 240 | "create-hash": "^1.1.0", 241 | "evp_bytestokey": "^1.0.3", 242 | "inherits": "^2.0.1", 243 | "safe-buffer": "^5.0.1" 244 | } 245 | }, 246 | "browserify-cipher": { 247 | "version": "1.0.1", 248 | "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", 249 | "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", 250 | "requires": { 251 | "browserify-aes": "^1.0.4", 252 | "browserify-des": "^1.0.0", 253 | "evp_bytestokey": "^1.0.0" 254 | } 255 | }, 256 | "browserify-des": { 257 | "version": "1.0.2", 258 | "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", 259 | "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", 260 | "requires": { 261 | "cipher-base": "^1.0.1", 262 | "des.js": "^1.0.0", 263 | "inherits": "^2.0.1", 264 | "safe-buffer": "^5.1.2" 265 | } 266 | }, 267 | "browserify-rsa": { 268 | "version": "4.0.1", 269 | "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", 270 | "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", 271 | "requires": { 272 | "bn.js": "^4.1.0", 273 | "randombytes": "^2.0.1" 274 | } 275 | }, 276 | "browserify-sign": { 277 | "version": "4.0.4", 278 | "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", 279 | "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", 280 | "requires": { 281 | "bn.js": "^4.1.1", 282 | "browserify-rsa": "^4.0.0", 283 | "create-hash": "^1.1.0", 284 | "create-hmac": "^1.1.2", 285 | "elliptic": "^6.0.0", 286 | "inherits": "^2.0.1", 287 | "parse-asn1": "^5.0.0" 288 | } 289 | }, 290 | "browserify-zlib": { 291 | "version": "0.2.0", 292 | "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", 293 | "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", 294 | "requires": { 295 | "pako": "~1.0.5" 296 | } 297 | }, 298 | "buffer": { 299 | "version": "5.2.1", 300 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", 301 | "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", 302 | "requires": { 303 | "base64-js": "^1.0.2", 304 | "ieee754": "^1.1.4" 305 | } 306 | }, 307 | "buffer-from": { 308 | "version": "1.1.1", 309 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", 310 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" 311 | }, 312 | "buffer-xor": { 313 | "version": "1.0.3", 314 | "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", 315 | "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" 316 | }, 317 | "builtin-status-codes": { 318 | "version": "3.0.0", 319 | "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", 320 | "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" 321 | }, 322 | "bytes": { 323 | "version": "3.0.0", 324 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", 325 | "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" 326 | }, 327 | "cached-path-relative": { 328 | "version": "1.0.2", 329 | "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.2.tgz", 330 | "integrity": "sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg==" 331 | }, 332 | "cipher-base": { 333 | "version": "1.0.4", 334 | "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", 335 | "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", 336 | "requires": { 337 | "inherits": "^2.0.1", 338 | "safe-buffer": "^5.0.1" 339 | } 340 | }, 341 | "combine-source-map": { 342 | "version": "0.8.0", 343 | "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", 344 | "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", 345 | "requires": { 346 | "convert-source-map": "~1.1.0", 347 | "inline-source-map": "~0.6.0", 348 | "lodash.memoize": "~3.0.3", 349 | "source-map": "~0.5.3" 350 | } 351 | }, 352 | "concat-map": { 353 | "version": "0.0.1", 354 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 355 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 356 | }, 357 | "concat-stream": { 358 | "version": "1.6.2", 359 | "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", 360 | "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", 361 | "requires": { 362 | "buffer-from": "^1.0.0", 363 | "inherits": "^2.0.3", 364 | "readable-stream": "^2.2.2", 365 | "typedarray": "^0.0.6" 366 | } 367 | }, 368 | "console-browserify": { 369 | "version": "1.1.0", 370 | "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", 371 | "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", 372 | "requires": { 373 | "date-now": "^0.1.4" 374 | } 375 | }, 376 | "constants-browserify": { 377 | "version": "1.0.0", 378 | "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", 379 | "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" 380 | }, 381 | "content-disposition": { 382 | "version": "0.5.2", 383 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", 384 | "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" 385 | }, 386 | "content-type": { 387 | "version": "1.0.4", 388 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 389 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" 390 | }, 391 | "convert-source-map": { 392 | "version": "1.1.3", 393 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", 394 | "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=" 395 | }, 396 | "cookie": { 397 | "version": "0.3.1", 398 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", 399 | "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" 400 | }, 401 | "cookie-signature": { 402 | "version": "1.0.6", 403 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 404 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 405 | }, 406 | "core-util-is": { 407 | "version": "1.0.2", 408 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 409 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 410 | }, 411 | "create-ecdh": { 412 | "version": "4.0.3", 413 | "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", 414 | "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", 415 | "requires": { 416 | "bn.js": "^4.1.0", 417 | "elliptic": "^6.0.0" 418 | } 419 | }, 420 | "create-hash": { 421 | "version": "1.2.0", 422 | "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", 423 | "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", 424 | "requires": { 425 | "cipher-base": "^1.0.1", 426 | "inherits": "^2.0.1", 427 | "md5.js": "^1.3.4", 428 | "ripemd160": "^2.0.1", 429 | "sha.js": "^2.4.0" 430 | } 431 | }, 432 | "create-hmac": { 433 | "version": "1.1.7", 434 | "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", 435 | "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", 436 | "requires": { 437 | "cipher-base": "^1.0.3", 438 | "create-hash": "^1.1.0", 439 | "inherits": "^2.0.1", 440 | "ripemd160": "^2.0.0", 441 | "safe-buffer": "^5.0.1", 442 | "sha.js": "^2.4.8" 443 | } 444 | }, 445 | "crypto-browserify": { 446 | "version": "3.12.0", 447 | "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", 448 | "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", 449 | "requires": { 450 | "browserify-cipher": "^1.0.0", 451 | "browserify-sign": "^4.0.0", 452 | "create-ecdh": "^4.0.0", 453 | "create-hash": "^1.1.0", 454 | "create-hmac": "^1.1.0", 455 | "diffie-hellman": "^5.0.0", 456 | "inherits": "^2.0.1", 457 | "pbkdf2": "^3.0.3", 458 | "public-encrypt": "^4.0.0", 459 | "randombytes": "^2.0.0", 460 | "randomfill": "^1.0.3" 461 | } 462 | }, 463 | "date-now": { 464 | "version": "0.1.4", 465 | "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", 466 | "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=" 467 | }, 468 | "debug": { 469 | "version": "2.6.9", 470 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 471 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 472 | "requires": { 473 | "ms": "2.0.0" 474 | } 475 | }, 476 | "defined": { 477 | "version": "1.0.0", 478 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", 479 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" 480 | }, 481 | "depd": { 482 | "version": "1.1.2", 483 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", 484 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" 485 | }, 486 | "deps-sort": { 487 | "version": "2.0.0", 488 | "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz", 489 | "integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=", 490 | "requires": { 491 | "JSONStream": "^1.0.3", 492 | "shasum": "^1.0.0", 493 | "subarg": "^1.0.0", 494 | "through2": "^2.0.0" 495 | } 496 | }, 497 | "des.js": { 498 | "version": "1.0.0", 499 | "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", 500 | "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", 501 | "requires": { 502 | "inherits": "^2.0.1", 503 | "minimalistic-assert": "^1.0.0" 504 | } 505 | }, 506 | "destroy": { 507 | "version": "1.0.4", 508 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", 509 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" 510 | }, 511 | "detective": { 512 | "version": "5.1.0", 513 | "resolved": "https://registry.npmjs.org/detective/-/detective-5.1.0.tgz", 514 | "integrity": "sha512-TFHMqfOvxlgrfVzTEkNBSh9SvSNX/HfF4OFI2QFGCyPm02EsyILqnUeb5P6q7JZ3SFNTBL5t2sePRgrN4epUWQ==", 515 | "requires": { 516 | "acorn-node": "^1.3.0", 517 | "defined": "^1.0.0", 518 | "minimist": "^1.1.1" 519 | } 520 | }, 521 | "diffie-hellman": { 522 | "version": "5.0.3", 523 | "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", 524 | "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", 525 | "requires": { 526 | "bn.js": "^4.1.0", 527 | "miller-rabin": "^4.0.0", 528 | "randombytes": "^2.0.0" 529 | } 530 | }, 531 | "domain-browser": { 532 | "version": "1.2.0", 533 | "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", 534 | "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" 535 | }, 536 | "duplexer2": { 537 | "version": "0.1.4", 538 | "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", 539 | "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", 540 | "requires": { 541 | "readable-stream": "^2.0.2" 542 | } 543 | }, 544 | "ee-first": { 545 | "version": "1.1.1", 546 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 547 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 548 | }, 549 | "elliptic": { 550 | "version": "6.4.1", 551 | "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", 552 | "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", 553 | "requires": { 554 | "bn.js": "^4.4.0", 555 | "brorand": "^1.0.1", 556 | "hash.js": "^1.0.0", 557 | "hmac-drbg": "^1.0.0", 558 | "inherits": "^2.0.1", 559 | "minimalistic-assert": "^1.0.0", 560 | "minimalistic-crypto-utils": "^1.0.0" 561 | } 562 | }, 563 | "encodeurl": { 564 | "version": "1.0.2", 565 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 566 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" 567 | }, 568 | "escape-html": { 569 | "version": "1.0.3", 570 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 571 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" 572 | }, 573 | "etag": { 574 | "version": "1.8.1", 575 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 576 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" 577 | }, 578 | "events": { 579 | "version": "2.1.0", 580 | "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz", 581 | "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==" 582 | }, 583 | "evp_bytestokey": { 584 | "version": "1.0.3", 585 | "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", 586 | "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", 587 | "requires": { 588 | "md5.js": "^1.3.4", 589 | "safe-buffer": "^5.1.1" 590 | } 591 | }, 592 | "express": { 593 | "version": "4.16.4", 594 | "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", 595 | "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", 596 | "requires": { 597 | "accepts": "~1.3.5", 598 | "array-flatten": "1.1.1", 599 | "body-parser": "1.18.3", 600 | "content-disposition": "0.5.2", 601 | "content-type": "~1.0.4", 602 | "cookie": "0.3.1", 603 | "cookie-signature": "1.0.6", 604 | "debug": "2.6.9", 605 | "depd": "~1.1.2", 606 | "encodeurl": "~1.0.2", 607 | "escape-html": "~1.0.3", 608 | "etag": "~1.8.1", 609 | "finalhandler": "1.1.1", 610 | "fresh": "0.5.2", 611 | "merge-descriptors": "1.0.1", 612 | "methods": "~1.1.2", 613 | "on-finished": "~2.3.0", 614 | "parseurl": "~1.3.2", 615 | "path-to-regexp": "0.1.7", 616 | "proxy-addr": "~2.0.4", 617 | "qs": "6.5.2", 618 | "range-parser": "~1.2.0", 619 | "safe-buffer": "5.1.2", 620 | "send": "0.16.2", 621 | "serve-static": "1.13.2", 622 | "setprototypeof": "1.1.0", 623 | "statuses": "~1.4.0", 624 | "type-is": "~1.6.16", 625 | "utils-merge": "1.0.1", 626 | "vary": "~1.1.2" 627 | } 628 | }, 629 | "finalhandler": { 630 | "version": "1.1.1", 631 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", 632 | "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", 633 | "requires": { 634 | "debug": "2.6.9", 635 | "encodeurl": "~1.0.2", 636 | "escape-html": "~1.0.3", 637 | "on-finished": "~2.3.0", 638 | "parseurl": "~1.3.2", 639 | "statuses": "~1.4.0", 640 | "unpipe": "~1.0.0" 641 | } 642 | }, 643 | "forwarded": { 644 | "version": "0.1.2", 645 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", 646 | "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" 647 | }, 648 | "fresh": { 649 | "version": "0.5.2", 650 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 651 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" 652 | }, 653 | "fs.realpath": { 654 | "version": "1.0.0", 655 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 656 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" 657 | }, 658 | "function-bind": { 659 | "version": "1.1.1", 660 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 661 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" 662 | }, 663 | "get-assigned-identifiers": { 664 | "version": "1.2.0", 665 | "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", 666 | "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==" 667 | }, 668 | "glob": { 669 | "version": "7.1.3", 670 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", 671 | "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", 672 | "requires": { 673 | "fs.realpath": "^1.0.0", 674 | "inflight": "^1.0.4", 675 | "inherits": "2", 676 | "minimatch": "^3.0.4", 677 | "once": "^1.3.0", 678 | "path-is-absolute": "^1.0.0" 679 | } 680 | }, 681 | "graphql": { 682 | "version": "14.0.2", 683 | "resolved": "https://registry.npmjs.org/graphql/-/graphql-14.0.2.tgz", 684 | "integrity": "sha512-gUC4YYsaiSJT1h40krG3J+USGlwhzNTXSb4IOZljn9ag5Tj+RkoXrWp+Kh7WyE3t1NCfab5kzCuxBIvOMERMXw==", 685 | "requires": { 686 | "iterall": "^1.2.2" 687 | } 688 | }, 689 | "has": { 690 | "version": "1.0.3", 691 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 692 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 693 | "requires": { 694 | "function-bind": "^1.1.1" 695 | } 696 | }, 697 | "hash-base": { 698 | "version": "3.0.4", 699 | "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", 700 | "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", 701 | "requires": { 702 | "inherits": "^2.0.1", 703 | "safe-buffer": "^5.0.1" 704 | } 705 | }, 706 | "hash.js": { 707 | "version": "1.1.7", 708 | "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", 709 | "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", 710 | "requires": { 711 | "inherits": "^2.0.3", 712 | "minimalistic-assert": "^1.0.1" 713 | } 714 | }, 715 | "hmac-drbg": { 716 | "version": "1.0.1", 717 | "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", 718 | "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", 719 | "requires": { 720 | "hash.js": "^1.0.3", 721 | "minimalistic-assert": "^1.0.0", 722 | "minimalistic-crypto-utils": "^1.0.1" 723 | } 724 | }, 725 | "htmlescape": { 726 | "version": "1.1.1", 727 | "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", 728 | "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=" 729 | }, 730 | "http-errors": { 731 | "version": "1.6.3", 732 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", 733 | "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", 734 | "requires": { 735 | "depd": "~1.1.2", 736 | "inherits": "2.0.3", 737 | "setprototypeof": "1.1.0", 738 | "statuses": ">= 1.4.0 < 2" 739 | } 740 | }, 741 | "https-browserify": { 742 | "version": "1.0.0", 743 | "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", 744 | "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" 745 | }, 746 | "iconv-lite": { 747 | "version": "0.4.23", 748 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", 749 | "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", 750 | "requires": { 751 | "safer-buffer": ">= 2.1.2 < 3" 752 | } 753 | }, 754 | "ieee754": { 755 | "version": "1.1.12", 756 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", 757 | "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==" 758 | }, 759 | "inflight": { 760 | "version": "1.0.6", 761 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 762 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 763 | "requires": { 764 | "once": "^1.3.0", 765 | "wrappy": "1" 766 | } 767 | }, 768 | "inherits": { 769 | "version": "2.0.3", 770 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 771 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 772 | }, 773 | "inline-source-map": { 774 | "version": "0.6.2", 775 | "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", 776 | "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", 777 | "requires": { 778 | "source-map": "~0.5.3" 779 | } 780 | }, 781 | "insert-module-globals": { 782 | "version": "7.2.0", 783 | "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.0.tgz", 784 | "integrity": "sha512-VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw==", 785 | "requires": { 786 | "JSONStream": "^1.0.3", 787 | "acorn-node": "^1.5.2", 788 | "combine-source-map": "^0.8.0", 789 | "concat-stream": "^1.6.1", 790 | "is-buffer": "^1.1.0", 791 | "path-is-absolute": "^1.0.1", 792 | "process": "~0.11.0", 793 | "through2": "^2.0.0", 794 | "undeclared-identifiers": "^1.1.2", 795 | "xtend": "^4.0.0" 796 | } 797 | }, 798 | "ipaddr.js": { 799 | "version": "1.8.0", 800 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", 801 | "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=" 802 | }, 803 | "is-buffer": { 804 | "version": "1.1.6", 805 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", 806 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" 807 | }, 808 | "isarray": { 809 | "version": "1.0.0", 810 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 811 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 812 | }, 813 | "iterall": { 814 | "version": "1.2.2", 815 | "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.2.2.tgz", 816 | "integrity": "sha512-yynBb1g+RFUPY64fTrFv7nsjRrENBQJaX2UL+2Szc9REFrSNm1rpSXHGzhmAy7a9uv3vlvgBlXnf9RqmPH1/DA==" 817 | }, 818 | "json-stable-stringify": { 819 | "version": "0.0.1", 820 | "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", 821 | "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", 822 | "requires": { 823 | "jsonify": "~0.0.0" 824 | } 825 | }, 826 | "jsonify": { 827 | "version": "0.0.0", 828 | "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", 829 | "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" 830 | }, 831 | "jsonparse": { 832 | "version": "1.3.1", 833 | "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", 834 | "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" 835 | }, 836 | "labeled-stream-splicer": { 837 | "version": "2.0.1", 838 | "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.1.tgz", 839 | "integrity": "sha512-MC94mHZRvJ3LfykJlTUipBqenZz1pacOZEMhhQ8dMGcDHs0SBE5GbsavUXV7YtP3icBW17W0Zy1I0lfASmo9Pg==", 840 | "requires": { 841 | "inherits": "^2.0.1", 842 | "isarray": "^2.0.4", 843 | "stream-splicer": "^2.0.0" 844 | }, 845 | "dependencies": { 846 | "isarray": { 847 | "version": "2.0.4", 848 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.4.tgz", 849 | "integrity": "sha512-GMxXOiUirWg1xTKRipM0Ek07rX+ubx4nNVElTJdNLYmNO/2YrDkgJGw9CljXn+r4EWiDQg/8lsRdHyg2PJuUaA==" 850 | } 851 | } 852 | }, 853 | "lodash.memoize": { 854 | "version": "3.0.4", 855 | "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", 856 | "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=" 857 | }, 858 | "md5.js": { 859 | "version": "1.3.5", 860 | "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", 861 | "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", 862 | "requires": { 863 | "hash-base": "^3.0.0", 864 | "inherits": "^2.0.1", 865 | "safe-buffer": "^5.1.2" 866 | } 867 | }, 868 | "media-typer": { 869 | "version": "0.3.0", 870 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 871 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" 872 | }, 873 | "merge-descriptors": { 874 | "version": "1.0.1", 875 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 876 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" 877 | }, 878 | "methods": { 879 | "version": "1.1.2", 880 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 881 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" 882 | }, 883 | "miller-rabin": { 884 | "version": "4.0.1", 885 | "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", 886 | "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", 887 | "requires": { 888 | "bn.js": "^4.0.0", 889 | "brorand": "^1.0.1" 890 | } 891 | }, 892 | "mime": { 893 | "version": "1.4.1", 894 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", 895 | "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" 896 | }, 897 | "mime-db": { 898 | "version": "1.37.0", 899 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", 900 | "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==" 901 | }, 902 | "mime-types": { 903 | "version": "2.1.21", 904 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", 905 | "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", 906 | "requires": { 907 | "mime-db": "~1.37.0" 908 | } 909 | }, 910 | "minimalistic-assert": { 911 | "version": "1.0.1", 912 | "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", 913 | "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" 914 | }, 915 | "minimalistic-crypto-utils": { 916 | "version": "1.0.1", 917 | "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", 918 | "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" 919 | }, 920 | "minimatch": { 921 | "version": "3.0.4", 922 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 923 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 924 | "requires": { 925 | "brace-expansion": "^1.1.7" 926 | } 927 | }, 928 | "minimist": { 929 | "version": "1.2.0", 930 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 931 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" 932 | }, 933 | "mkdirp": { 934 | "version": "0.5.1", 935 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 936 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 937 | "requires": { 938 | "minimist": "0.0.8" 939 | }, 940 | "dependencies": { 941 | "minimist": { 942 | "version": "0.0.8", 943 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 944 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" 945 | } 946 | } 947 | }, 948 | "module-deps": { 949 | "version": "6.2.0", 950 | "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.0.tgz", 951 | "integrity": "sha512-hKPmO06so6bL/ZvqVNVqdTVO8UAYsi3tQWlCa+z9KuWhoN4KDQtb5hcqQQv58qYiDE21wIvnttZEPiDgEbpwbA==", 952 | "requires": { 953 | "JSONStream": "^1.0.3", 954 | "browser-resolve": "^1.7.0", 955 | "cached-path-relative": "^1.0.0", 956 | "concat-stream": "~1.6.0", 957 | "defined": "^1.0.0", 958 | "detective": "^5.0.2", 959 | "duplexer2": "^0.1.2", 960 | "inherits": "^2.0.1", 961 | "parents": "^1.0.0", 962 | "readable-stream": "^2.0.2", 963 | "resolve": "^1.4.0", 964 | "stream-combiner2": "^1.1.1", 965 | "subarg": "^1.0.0", 966 | "through2": "^2.0.0", 967 | "xtend": "^4.0.0" 968 | } 969 | }, 970 | "ms": { 971 | "version": "2.0.0", 972 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 973 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 974 | }, 975 | "negotiator": { 976 | "version": "0.6.1", 977 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", 978 | "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" 979 | }, 980 | "node-fetch": { 981 | "version": "2.3.0", 982 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.3.0.tgz", 983 | "integrity": "sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA==" 984 | }, 985 | "on-finished": { 986 | "version": "2.3.0", 987 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", 988 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", 989 | "requires": { 990 | "ee-first": "1.1.1" 991 | } 992 | }, 993 | "once": { 994 | "version": "1.4.0", 995 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 996 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 997 | "requires": { 998 | "wrappy": "1" 999 | } 1000 | }, 1001 | "os-browserify": { 1002 | "version": "0.3.0", 1003 | "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", 1004 | "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" 1005 | }, 1006 | "pako": { 1007 | "version": "1.0.7", 1008 | "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.7.tgz", 1009 | "integrity": "sha512-3HNK5tW4x8o5mO8RuHZp3Ydw9icZXx0RANAOMzlMzx7LVXhMJ4mo3MOBpzyd7r/+RUu8BmndP47LXT+vzjtWcQ==" 1010 | }, 1011 | "parents": { 1012 | "version": "1.0.1", 1013 | "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", 1014 | "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", 1015 | "requires": { 1016 | "path-platform": "~0.11.15" 1017 | } 1018 | }, 1019 | "parse-asn1": { 1020 | "version": "5.1.1", 1021 | "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", 1022 | "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", 1023 | "requires": { 1024 | "asn1.js": "^4.0.0", 1025 | "browserify-aes": "^1.0.0", 1026 | "create-hash": "^1.1.0", 1027 | "evp_bytestokey": "^1.0.0", 1028 | "pbkdf2": "^3.0.3" 1029 | } 1030 | }, 1031 | "parseurl": { 1032 | "version": "1.3.2", 1033 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", 1034 | "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" 1035 | }, 1036 | "path-browserify": { 1037 | "version": "0.0.1", 1038 | "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", 1039 | "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" 1040 | }, 1041 | "path-is-absolute": { 1042 | "version": "1.0.1", 1043 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1044 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" 1045 | }, 1046 | "path-parse": { 1047 | "version": "1.0.6", 1048 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", 1049 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" 1050 | }, 1051 | "path-platform": { 1052 | "version": "0.11.15", 1053 | "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", 1054 | "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=" 1055 | }, 1056 | "path-to-regexp": { 1057 | "version": "0.1.7", 1058 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 1059 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" 1060 | }, 1061 | "pbkdf2": { 1062 | "version": "3.0.17", 1063 | "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", 1064 | "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", 1065 | "requires": { 1066 | "create-hash": "^1.1.2", 1067 | "create-hmac": "^1.1.4", 1068 | "ripemd160": "^2.0.1", 1069 | "safe-buffer": "^5.0.1", 1070 | "sha.js": "^2.4.8" 1071 | } 1072 | }, 1073 | "process": { 1074 | "version": "0.11.10", 1075 | "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", 1076 | "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" 1077 | }, 1078 | "process-nextick-args": { 1079 | "version": "2.0.0", 1080 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", 1081 | "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" 1082 | }, 1083 | "proxy-addr": { 1084 | "version": "2.0.4", 1085 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", 1086 | "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", 1087 | "requires": { 1088 | "forwarded": "~0.1.2", 1089 | "ipaddr.js": "1.8.0" 1090 | } 1091 | }, 1092 | "public-encrypt": { 1093 | "version": "4.0.3", 1094 | "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", 1095 | "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", 1096 | "requires": { 1097 | "bn.js": "^4.1.0", 1098 | "browserify-rsa": "^4.0.0", 1099 | "create-hash": "^1.1.0", 1100 | "parse-asn1": "^5.0.0", 1101 | "randombytes": "^2.0.1", 1102 | "safe-buffer": "^5.1.2" 1103 | } 1104 | }, 1105 | "punycode": { 1106 | "version": "1.4.1", 1107 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 1108 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" 1109 | }, 1110 | "qs": { 1111 | "version": "6.5.2", 1112 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", 1113 | "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" 1114 | }, 1115 | "querystring": { 1116 | "version": "0.2.0", 1117 | "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", 1118 | "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" 1119 | }, 1120 | "querystring-es3": { 1121 | "version": "0.2.1", 1122 | "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", 1123 | "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" 1124 | }, 1125 | "randombytes": { 1126 | "version": "2.0.6", 1127 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", 1128 | "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", 1129 | "requires": { 1130 | "safe-buffer": "^5.1.0" 1131 | } 1132 | }, 1133 | "randomfill": { 1134 | "version": "1.0.4", 1135 | "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", 1136 | "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", 1137 | "requires": { 1138 | "randombytes": "^2.0.5", 1139 | "safe-buffer": "^5.1.0" 1140 | } 1141 | }, 1142 | "range-parser": { 1143 | "version": "1.2.0", 1144 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", 1145 | "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" 1146 | }, 1147 | "raw-body": { 1148 | "version": "2.3.3", 1149 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", 1150 | "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", 1151 | "requires": { 1152 | "bytes": "3.0.0", 1153 | "http-errors": "1.6.3", 1154 | "iconv-lite": "0.4.23", 1155 | "unpipe": "1.0.0" 1156 | } 1157 | }, 1158 | "read-only-stream": { 1159 | "version": "2.0.0", 1160 | "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", 1161 | "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", 1162 | "requires": { 1163 | "readable-stream": "^2.0.2" 1164 | } 1165 | }, 1166 | "readable-stream": { 1167 | "version": "2.3.6", 1168 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", 1169 | "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", 1170 | "requires": { 1171 | "core-util-is": "~1.0.0", 1172 | "inherits": "~2.0.3", 1173 | "isarray": "~1.0.0", 1174 | "process-nextick-args": "~2.0.0", 1175 | "safe-buffer": "~5.1.1", 1176 | "string_decoder": "~1.1.1", 1177 | "util-deprecate": "~1.0.1" 1178 | }, 1179 | "dependencies": { 1180 | "string_decoder": { 1181 | "version": "1.1.1", 1182 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 1183 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 1184 | "requires": { 1185 | "safe-buffer": "~5.1.0" 1186 | } 1187 | } 1188 | } 1189 | }, 1190 | "resolve": { 1191 | "version": "1.9.0", 1192 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.9.0.tgz", 1193 | "integrity": "sha512-TZNye00tI67lwYvzxCxHGjwTNlUV70io54/Ed4j6PscB8xVfuBJpRenI/o6dVk0cY0PYTY27AgCoGGxRnYuItQ==", 1194 | "requires": { 1195 | "path-parse": "^1.0.6" 1196 | } 1197 | }, 1198 | "ripemd160": { 1199 | "version": "2.0.2", 1200 | "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", 1201 | "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", 1202 | "requires": { 1203 | "hash-base": "^3.0.0", 1204 | "inherits": "^2.0.1" 1205 | } 1206 | }, 1207 | "safe-buffer": { 1208 | "version": "5.1.2", 1209 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1210 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 1211 | }, 1212 | "safer-buffer": { 1213 | "version": "2.1.2", 1214 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 1215 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 1216 | }, 1217 | "send": { 1218 | "version": "0.16.2", 1219 | "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", 1220 | "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", 1221 | "requires": { 1222 | "debug": "2.6.9", 1223 | "depd": "~1.1.2", 1224 | "destroy": "~1.0.4", 1225 | "encodeurl": "~1.0.2", 1226 | "escape-html": "~1.0.3", 1227 | "etag": "~1.8.1", 1228 | "fresh": "0.5.2", 1229 | "http-errors": "~1.6.2", 1230 | "mime": "1.4.1", 1231 | "ms": "2.0.0", 1232 | "on-finished": "~2.3.0", 1233 | "range-parser": "~1.2.0", 1234 | "statuses": "~1.4.0" 1235 | } 1236 | }, 1237 | "serve-static": { 1238 | "version": "1.13.2", 1239 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", 1240 | "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", 1241 | "requires": { 1242 | "encodeurl": "~1.0.2", 1243 | "escape-html": "~1.0.3", 1244 | "parseurl": "~1.3.2", 1245 | "send": "0.16.2" 1246 | } 1247 | }, 1248 | "setprototypeof": { 1249 | "version": "1.1.0", 1250 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", 1251 | "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" 1252 | }, 1253 | "sha.js": { 1254 | "version": "2.4.11", 1255 | "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", 1256 | "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", 1257 | "requires": { 1258 | "inherits": "^2.0.1", 1259 | "safe-buffer": "^5.0.1" 1260 | } 1261 | }, 1262 | "shasum": { 1263 | "version": "1.0.2", 1264 | "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", 1265 | "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", 1266 | "requires": { 1267 | "json-stable-stringify": "~0.0.0", 1268 | "sha.js": "~2.4.4" 1269 | } 1270 | }, 1271 | "shell-quote": { 1272 | "version": "1.6.1", 1273 | "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", 1274 | "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", 1275 | "requires": { 1276 | "array-filter": "~0.0.0", 1277 | "array-map": "~0.0.0", 1278 | "array-reduce": "~0.0.0", 1279 | "jsonify": "~0.0.0" 1280 | } 1281 | }, 1282 | "simple-concat": { 1283 | "version": "1.0.0", 1284 | "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", 1285 | "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=" 1286 | }, 1287 | "source-map": { 1288 | "version": "0.5.7", 1289 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 1290 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" 1291 | }, 1292 | "statuses": { 1293 | "version": "1.4.0", 1294 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", 1295 | "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" 1296 | }, 1297 | "stream-browserify": { 1298 | "version": "2.0.1", 1299 | "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", 1300 | "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", 1301 | "requires": { 1302 | "inherits": "~2.0.1", 1303 | "readable-stream": "^2.0.2" 1304 | } 1305 | }, 1306 | "stream-combiner2": { 1307 | "version": "1.1.1", 1308 | "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", 1309 | "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", 1310 | "requires": { 1311 | "duplexer2": "~0.1.0", 1312 | "readable-stream": "^2.0.2" 1313 | } 1314 | }, 1315 | "stream-http": { 1316 | "version": "2.8.3", 1317 | "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", 1318 | "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", 1319 | "requires": { 1320 | "builtin-status-codes": "^3.0.0", 1321 | "inherits": "^2.0.1", 1322 | "readable-stream": "^2.3.6", 1323 | "to-arraybuffer": "^1.0.0", 1324 | "xtend": "^4.0.0" 1325 | } 1326 | }, 1327 | "stream-splicer": { 1328 | "version": "2.0.0", 1329 | "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz", 1330 | "integrity": "sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM=", 1331 | "requires": { 1332 | "inherits": "^2.0.1", 1333 | "readable-stream": "^2.0.2" 1334 | } 1335 | }, 1336 | "string_decoder": { 1337 | "version": "1.2.0", 1338 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.2.0.tgz", 1339 | "integrity": "sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w==", 1340 | "requires": { 1341 | "safe-buffer": "~5.1.0" 1342 | } 1343 | }, 1344 | "subarg": { 1345 | "version": "1.0.0", 1346 | "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", 1347 | "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", 1348 | "requires": { 1349 | "minimist": "^1.1.0" 1350 | } 1351 | }, 1352 | "syntax-error": { 1353 | "version": "1.4.0", 1354 | "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", 1355 | "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", 1356 | "requires": { 1357 | "acorn-node": "^1.2.0" 1358 | } 1359 | }, 1360 | "through": { 1361 | "version": "2.3.8", 1362 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 1363 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" 1364 | }, 1365 | "through2": { 1366 | "version": "2.0.5", 1367 | "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", 1368 | "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", 1369 | "requires": { 1370 | "readable-stream": "~2.3.6", 1371 | "xtend": "~4.0.1" 1372 | } 1373 | }, 1374 | "timers-browserify": { 1375 | "version": "1.4.2", 1376 | "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", 1377 | "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", 1378 | "requires": { 1379 | "process": "~0.11.0" 1380 | } 1381 | }, 1382 | "to-arraybuffer": { 1383 | "version": "1.0.1", 1384 | "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", 1385 | "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" 1386 | }, 1387 | "tty-browserify": { 1388 | "version": "0.0.1", 1389 | "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", 1390 | "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==" 1391 | }, 1392 | "type-is": { 1393 | "version": "1.6.16", 1394 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", 1395 | "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", 1396 | "requires": { 1397 | "media-typer": "0.3.0", 1398 | "mime-types": "~2.1.18" 1399 | } 1400 | }, 1401 | "typedarray": { 1402 | "version": "0.0.6", 1403 | "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", 1404 | "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" 1405 | }, 1406 | "umd": { 1407 | "version": "3.0.3", 1408 | "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", 1409 | "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==" 1410 | }, 1411 | "undeclared-identifiers": { 1412 | "version": "1.1.2", 1413 | "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.2.tgz", 1414 | "integrity": "sha512-13EaeocO4edF/3JKime9rD7oB6QI8llAGhgn5fKOPyfkJbRb6NFv9pYV6dFEmpa4uRjKeBqLZP8GpuzqHlKDMQ==", 1415 | "requires": { 1416 | "acorn-node": "^1.3.0", 1417 | "get-assigned-identifiers": "^1.2.0", 1418 | "simple-concat": "^1.0.0", 1419 | "xtend": "^4.0.1" 1420 | } 1421 | }, 1422 | "unpipe": { 1423 | "version": "1.0.0", 1424 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 1425 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" 1426 | }, 1427 | "url": { 1428 | "version": "0.11.0", 1429 | "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", 1430 | "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", 1431 | "requires": { 1432 | "punycode": "1.3.2", 1433 | "querystring": "0.2.0" 1434 | }, 1435 | "dependencies": { 1436 | "punycode": { 1437 | "version": "1.3.2", 1438 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", 1439 | "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" 1440 | } 1441 | } 1442 | }, 1443 | "util": { 1444 | "version": "0.10.4", 1445 | "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", 1446 | "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", 1447 | "requires": { 1448 | "inherits": "2.0.3" 1449 | } 1450 | }, 1451 | "util-deprecate": { 1452 | "version": "1.0.2", 1453 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1454 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 1455 | }, 1456 | "utils-merge": { 1457 | "version": "1.0.1", 1458 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 1459 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" 1460 | }, 1461 | "vary": { 1462 | "version": "1.1.2", 1463 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 1464 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" 1465 | }, 1466 | "vm-browserify": { 1467 | "version": "1.1.0", 1468 | "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", 1469 | "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==" 1470 | }, 1471 | "wrappy": { 1472 | "version": "1.0.2", 1473 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1474 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 1475 | }, 1476 | "xtend": { 1477 | "version": "4.0.1", 1478 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", 1479 | "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" 1480 | } 1481 | } 1482 | } 1483 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "gqschema2payload", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "node --max_old_space_size=2000000 server/server.js", 9 | "cli": "node --max_old_space_size=2000000 index.js" 10 | }, 11 | "author": "Stefano Di Paola ", 12 | "license": "ISC", 13 | "dependencies": { 14 | "express": "^4.16.4", 15 | "graphql": "^14.0.2", 16 | "node-fetch": "^2.3.0" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /server/public/arrowdown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mindedsecurity/graphqlschema2payload/d9b8e0368204100125ebdcde6655bd1dbc068922/server/public/arrowdown.png -------------------------------------------------------------------------------- /server/public/es6-promise/4.0.5/es6-promise.auto.min.js: -------------------------------------------------------------------------------- 1 | !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.ES6Promise=e()}(this,function(){"use strict";function t(t){return"function"==typeof t||"object"==typeof t&&null!==t}function e(t){return"function"==typeof t}function n(t){I=t}function r(t){J=t}function o(){return function(){return process.nextTick(a)}}function i(){return"undefined"!=typeof H?function(){H(a)}:c()}function s(){var t=0,e=new V(a),n=document.createTextNode("");return e.observe(n,{characterData:!0}),function(){n.data=t=++t%2}}function u(){var t=new MessageChannel;return t.port1.onmessage=a,function(){return t.port2.postMessage(0)}}function c(){var t=setTimeout;return function(){return t(a,1)}}function a(){for(var t=0;t-1?e:t}function f(t,e){if(e=e||{},this.url=t,this.credentials=e.credentials||"omit",this.headers=new r(e.headers),this.method=u(e.method||"GET"),this.mode=e.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&e.body)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(e.body)}function h(t){var e=new FormData;return t.trim().split("&").forEach(function(t){if(t){var r=t.split("="),o=r.shift().replace(/\+/g," "),n=r.join("=").replace(/\+/g," ");e.append(decodeURIComponent(o),decodeURIComponent(n))}}),e}function d(t){var e=new r,o=t.getAllResponseHeaders().trim().split("\n");return o.forEach(function(t){var r=t.trim().split(":"),o=r.shift().trim(),n=r.join(":").trim();e.append(o,n)}),e}function l(t,e){e||(e={}),this._initBody(t),this.type="default",this.url=null,this.status=e.status,this.ok=this.status>=200&&this.status<300,this.statusText=e.statusText,this.headers=e.headers instanceof r?e.headers:new r(e.headers),this.url=e.url||""}if(!self.fetch){r.prototype.append=function(r,o){r=t(r),o=e(o);var n=this.map[r];n||(n=[],this.map[r]=n),n.push(o)},r.prototype["delete"]=function(e){delete this.map[t(e)]},r.prototype.get=function(e){var r=this.map[t(e)];return r?r[0]:null},r.prototype.getAll=function(e){return this.map[t(e)]||[]},r.prototype.has=function(e){return this.map.hasOwnProperty(t(e))},r.prototype.set=function(r,o){this.map[t(r)]=[e(o)]},r.prototype.forEach=function(t,e){Object.getOwnPropertyNames(this.map).forEach(function(r){this.map[r].forEach(function(o){t.call(e,o,r,this)},this)},this)};var p={blob:"FileReader"in self&&"Blob"in self&&function(){try{return new Blob,!0}catch(t){return!1}}(),formData:"FormData"in self},c=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];a.call(f.prototype),a.call(l.prototype),self.Headers=r,self.Request=f,self.Response=l,self.fetch=function(t,e){var r;return r=f.prototype.isPrototypeOf(t)&&!e?t:new f(t,e),new Promise(function(t,e){function o(){return"responseURL"in n?n.responseURL:/^X-Request-URL:/m.test(n.getAllResponseHeaders())?n.getResponseHeader("X-Request-URL"):void 0}var n=new XMLHttpRequest;n.onload=function(){var r=1223===n.status?204:n.status;if(100>r||r>599)return void e(new TypeError("Network request failed"));var s={status:r,statusText:n.statusText,headers:d(n),url:o()},i="response"in n?n.response:n.responseText;t(new l(i,s))},n.onerror=function(){e(new TypeError("Network request failed"))},n.open(r.method,r.url,!0),"include"===r.credentials&&(n.withCredentials=!0),"responseType"in n&&p.blob&&(n.responseType="blob"),r.headers.forEach(function(t,e){n.setRequestHeader(e,t)}),n.send("undefined"==typeof r._bodyInit?null:r._bodyInit)})},self.fetch.polyfill=!0}}(); -------------------------------------------------------------------------------- /server/public/npm/graphiql@0.12.0/graphiql.css: -------------------------------------------------------------------------------- 1 | .graphiql-container, 2 | .graphiql-container button, 3 | .graphiql-container input { 4 | color: #141823; 5 | font-family: 6 | system, 7 | -apple-system, 8 | 'San Francisco', 9 | '.SFNSDisplay-Regular', 10 | 'Segoe UI', 11 | Segoe, 12 | 'Segoe WP', 13 | 'Helvetica Neue', 14 | helvetica, 15 | 'Lucida Grande', 16 | arial, 17 | sans-serif; 18 | font-size: 14px; 19 | } 20 | 21 | .graphiql-container { 22 | display: -webkit-box; 23 | display: -ms-flexbox; 24 | display: flex; 25 | -webkit-box-orient: horizontal; 26 | -webkit-box-direction: normal; 27 | -ms-flex-direction: row; 28 | flex-direction: row; 29 | height: 100%; 30 | margin: 0; 31 | overflow: hidden; 32 | width: 100%; 33 | } 34 | 35 | .graphiql-container .editorWrap { 36 | display: -webkit-box; 37 | display: -ms-flexbox; 38 | display: flex; 39 | -webkit-box-orient: vertical; 40 | -webkit-box-direction: normal; 41 | -ms-flex-direction: column; 42 | flex-direction: column; 43 | -webkit-box-flex: 1; 44 | -ms-flex: 1; 45 | flex: 1; 46 | overflow-x: hidden; 47 | } 48 | 49 | .graphiql-container .title { 50 | font-size: 18px; 51 | } 52 | 53 | .graphiql-container .title em { 54 | font-family: georgia; 55 | font-size: 19px; 56 | } 57 | 58 | .graphiql-container .topBarWrap { 59 | display: -webkit-box; 60 | display: -ms-flexbox; 61 | display: flex; 62 | -webkit-box-orient: horizontal; 63 | -webkit-box-direction: normal; 64 | -ms-flex-direction: row; 65 | flex-direction: row; 66 | } 67 | 68 | .graphiql-container .topBar { 69 | -webkit-box-align: center; 70 | -ms-flex-align: center; 71 | align-items: center; 72 | background: -webkit-gradient(linear, left top, left bottom, from(#f7f7f7), to(#e2e2e2)); 73 | background: linear-gradient(#f7f7f7, #e2e2e2); 74 | border-bottom: 1px solid #d0d0d0; 75 | cursor: default; 76 | display: -webkit-box; 77 | display: -ms-flexbox; 78 | display: flex; 79 | -webkit-box-orient: horizontal; 80 | -webkit-box-direction: normal; 81 | -ms-flex-direction: row; 82 | flex-direction: row; 83 | -webkit-box-flex: 1; 84 | -ms-flex: 1; 85 | flex: 1; 86 | height: 34px; 87 | overflow-y: visible; 88 | padding: 7px 14px 6px; 89 | -webkit-user-select: none; 90 | -moz-user-select: none; 91 | -ms-user-select: none; 92 | user-select: none; 93 | } 94 | 95 | .graphiql-container .toolbar { 96 | overflow-x: visible; 97 | display: -webkit-box; 98 | display: -ms-flexbox; 99 | display: flex; 100 | } 101 | 102 | .graphiql-container .docExplorerShow, 103 | .graphiql-container .historyShow { 104 | background: -webkit-gradient(linear, left top, left bottom, from(#f7f7f7), to(#e2e2e2)); 105 | background: linear-gradient(#f7f7f7, #e2e2e2); 106 | border-radius: 0; 107 | border-bottom: 1px solid #d0d0d0; 108 | border-right: none; 109 | border-top: none; 110 | color: #3B5998; 111 | cursor: pointer; 112 | font-size: 14px; 113 | margin: 0; 114 | outline: 0; 115 | padding: 2px 20px 0 18px; 116 | } 117 | 118 | .graphiql-container .docExplorerShow { 119 | border-left: 1px solid rgba(0, 0, 0, 0.2); 120 | } 121 | 122 | .graphiql-container .historyShow { 123 | border-right: 1px solid rgba(0, 0, 0, 0.2); 124 | border-left: 0; 125 | } 126 | 127 | .graphiql-container .docExplorerShow:before { 128 | border-left: 2px solid #3B5998; 129 | border-top: 2px solid #3B5998; 130 | content: ''; 131 | display: inline-block; 132 | height: 9px; 133 | margin: 0 3px -1px 0; 134 | position: relative; 135 | -webkit-transform: rotate(-45deg); 136 | transform: rotate(-45deg); 137 | width: 9px; 138 | } 139 | 140 | .graphiql-container .editorBar { 141 | display: -webkit-box; 142 | display: -ms-flexbox; 143 | display: flex; 144 | -webkit-box-orient: horizontal; 145 | -webkit-box-direction: normal; 146 | -ms-flex-direction: row; 147 | flex-direction: row; 148 | -webkit-box-flex: 1; 149 | -ms-flex: 1; 150 | flex: 1; 151 | } 152 | 153 | .graphiql-container .queryWrap { 154 | display: -webkit-box; 155 | display: -ms-flexbox; 156 | display: flex; 157 | -webkit-box-orient: vertical; 158 | -webkit-box-direction: normal; 159 | -ms-flex-direction: column; 160 | flex-direction: column; 161 | -webkit-box-flex: 1; 162 | -ms-flex: 1; 163 | flex: 1; 164 | } 165 | 166 | .graphiql-container .resultWrap { 167 | border-left: solid 1px #e0e0e0; 168 | display: -webkit-box; 169 | display: -ms-flexbox; 170 | display: flex; 171 | -webkit-box-orient: vertical; 172 | -webkit-box-direction: normal; 173 | -ms-flex-direction: column; 174 | flex-direction: column; 175 | -webkit-box-flex: 1; 176 | -ms-flex: 1; 177 | flex: 1; 178 | position: relative; 179 | } 180 | 181 | .graphiql-container .docExplorerWrap, 182 | .graphiql-container .historyPaneWrap { 183 | background: white; 184 | -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.15); 185 | box-shadow: 0 0 8px rgba(0, 0, 0, 0.15); 186 | position: relative; 187 | z-index: 3; 188 | } 189 | 190 | .graphiql-container .historyPaneWrap { 191 | min-width: 230px; 192 | z-index: 5; 193 | } 194 | 195 | .graphiql-container .docExplorerResizer { 196 | cursor: col-resize; 197 | height: 100%; 198 | left: -5px; 199 | position: absolute; 200 | top: 0; 201 | width: 10px; 202 | z-index: 10; 203 | } 204 | 205 | .graphiql-container .docExplorerHide { 206 | cursor: pointer; 207 | font-size: 18px; 208 | margin: -7px -8px -6px 0; 209 | padding: 18px 16px 15px 12px; 210 | } 211 | 212 | .graphiql-container div .query-editor { 213 | -webkit-box-flex: 1; 214 | -ms-flex: 1; 215 | flex: 1; 216 | position: relative; 217 | } 218 | 219 | .graphiql-container .variable-editor { 220 | display: -webkit-box; 221 | display: -ms-flexbox; 222 | display: flex; 223 | -webkit-box-orient: vertical; 224 | -webkit-box-direction: normal; 225 | -ms-flex-direction: column; 226 | flex-direction: column; 227 | height: 30px; 228 | position: relative; 229 | } 230 | 231 | .graphiql-container .variable-editor-title { 232 | background: #eeeeee; 233 | border-bottom: 1px solid #d6d6d6; 234 | border-top: 1px solid #e0e0e0; 235 | color: #777; 236 | font-variant: small-caps; 237 | font-weight: bold; 238 | letter-spacing: 1px; 239 | line-height: 14px; 240 | padding: 6px 0 8px 43px; 241 | text-transform: lowercase; 242 | -webkit-user-select: none; 243 | -moz-user-select: none; 244 | -ms-user-select: none; 245 | user-select: none; 246 | } 247 | 248 | .graphiql-container .codemirrorWrap { 249 | -webkit-box-flex: 1; 250 | -ms-flex: 1; 251 | flex: 1; 252 | height: 100%; 253 | position: relative; 254 | } 255 | 256 | .graphiql-container .result-window { 257 | -webkit-box-flex: 1; 258 | -ms-flex: 1; 259 | flex: 1; 260 | height: 100%; 261 | position: relative; 262 | } 263 | 264 | .graphiql-container .footer { 265 | background: #f6f7f8; 266 | border-left: 1px solid #e0e0e0; 267 | border-top: 1px solid #e0e0e0; 268 | margin-left: 12px; 269 | position: relative; 270 | } 271 | 272 | .graphiql-container .footer:before { 273 | background: #eeeeee; 274 | bottom: 0; 275 | content: " "; 276 | left: -13px; 277 | position: absolute; 278 | top: -1px; 279 | width: 12px; 280 | } 281 | 282 | /* No `.graphiql-container` here so themes can overwrite */ 283 | .result-window .CodeMirror { 284 | background: #f6f7f8; 285 | } 286 | 287 | .graphiql-container .result-window .CodeMirror-gutters { 288 | background-color: #eeeeee; 289 | border-color: #e0e0e0; 290 | cursor: col-resize; 291 | } 292 | 293 | .graphiql-container .result-window .CodeMirror-foldgutter, 294 | .graphiql-container .result-window .CodeMirror-foldgutter-open:after, 295 | .graphiql-container .result-window .CodeMirror-foldgutter-folded:after { 296 | padding-left: 3px; 297 | } 298 | 299 | .graphiql-container .toolbar-button { 300 | background: #fdfdfd; 301 | background: -webkit-gradient(linear, left top, left bottom, from(#f9f9f9), to(#ececec)); 302 | background: linear-gradient(#f9f9f9, #ececec); 303 | border-radius: 3px; 304 | -webkit-box-shadow: 305 | inset 0 0 0 1px rgba(0,0,0,0.20), 306 | 0 1px 0 rgba(255,255,255, 0.7), 307 | inset 0 1px #fff; 308 | box-shadow: 309 | inset 0 0 0 1px rgba(0,0,0,0.20), 310 | 0 1px 0 rgba(255,255,255, 0.7), 311 | inset 0 1px #fff; 312 | color: #555; 313 | cursor: pointer; 314 | display: inline-block; 315 | margin: 0 5px; 316 | padding: 3px 11px 5px; 317 | text-decoration: none; 318 | text-overflow: ellipsis; 319 | white-space: nowrap; 320 | max-width: 150px; 321 | } 322 | 323 | .graphiql-container .toolbar-button:active { 324 | background: -webkit-gradient(linear, left top, left bottom, from(#ececec), to(#d5d5d5)); 325 | background: linear-gradient(#ececec, #d5d5d5); 326 | -webkit-box-shadow: 327 | 0 1px 0 rgba(255, 255, 255, 0.7), 328 | inset 0 0 0 1px rgba(0,0,0,0.10), 329 | inset 0 1px 1px 1px rgba(0, 0, 0, 0.12), 330 | inset 0 0 5px rgba(0, 0, 0, 0.1); 331 | box-shadow: 332 | 0 1px 0 rgba(255, 255, 255, 0.7), 333 | inset 0 0 0 1px rgba(0,0,0,0.10), 334 | inset 0 1px 1px 1px rgba(0, 0, 0, 0.12), 335 | inset 0 0 5px rgba(0, 0, 0, 0.1); 336 | } 337 | 338 | .graphiql-container .toolbar-button.error { 339 | background: -webkit-gradient(linear, left top, left bottom, from(#fdf3f3), to(#e6d6d7)); 340 | background: linear-gradient(#fdf3f3, #e6d6d7); 341 | color: #b00; 342 | } 343 | 344 | .graphiql-container .toolbar-button-group { 345 | margin: 0 5px; 346 | white-space: nowrap; 347 | } 348 | 349 | .graphiql-container .toolbar-button-group > * { 350 | margin: 0; 351 | } 352 | 353 | .graphiql-container .toolbar-button-group > *:not(:last-child) { 354 | border-top-right-radius: 0; 355 | border-bottom-right-radius: 0; 356 | } 357 | 358 | .graphiql-container .toolbar-button-group > *:not(:first-child) { 359 | border-top-left-radius: 0; 360 | border-bottom-left-radius: 0; 361 | margin-left: -1px; 362 | } 363 | 364 | .graphiql-container .execute-button-wrap { 365 | height: 34px; 366 | margin: 0 14px 0 28px; 367 | position: relative; 368 | } 369 | 370 | .graphiql-container .execute-button { 371 | background: -webkit-gradient(linear, left top, left bottom, from(#fdfdfd), to(#d2d3d6)); 372 | background: linear-gradient(#fdfdfd, #d2d3d6); 373 | border-radius: 17px; 374 | border: 1px solid rgba(0,0,0,0.25); 375 | -webkit-box-shadow: 0 1px 0 #fff; 376 | box-shadow: 0 1px 0 #fff; 377 | cursor: pointer; 378 | fill: #444; 379 | height: 34px; 380 | margin: 0; 381 | padding: 0; 382 | width: 34px; 383 | } 384 | 385 | .graphiql-container .execute-button svg { 386 | pointer-events: none; 387 | } 388 | 389 | .graphiql-container .execute-button:active { 390 | background: -webkit-gradient(linear, left top, left bottom, from(#e6e6e6), to(#c3c3c3)); 391 | background: linear-gradient(#e6e6e6, #c3c3c3); 392 | -webkit-box-shadow: 393 | 0 1px 0 #fff, 394 | inset 0 0 2px rgba(0, 0, 0, 0.2), 395 | inset 0 0 6px rgba(0, 0, 0, 0.1); 396 | box-shadow: 397 | 0 1px 0 #fff, 398 | inset 0 0 2px rgba(0, 0, 0, 0.2), 399 | inset 0 0 6px rgba(0, 0, 0, 0.1); 400 | } 401 | 402 | .graphiql-container .execute-button:focus { 403 | outline: 0; 404 | } 405 | 406 | .graphiql-container .toolbar-menu, 407 | .graphiql-container .toolbar-select { 408 | position: relative; 409 | } 410 | 411 | .graphiql-container .execute-options, 412 | .graphiql-container .toolbar-menu-items, 413 | .graphiql-container .toolbar-select-options { 414 | background: #fff; 415 | -webkit-box-shadow: 416 | 0 0 0 1px rgba(0,0,0,0.1), 417 | 0 2px 4px rgba(0,0,0,0.25); 418 | box-shadow: 419 | 0 0 0 1px rgba(0,0,0,0.1), 420 | 0 2px 4px rgba(0,0,0,0.25); 421 | margin: 0; 422 | padding: 6px 0; 423 | position: absolute; 424 | z-index: 100; 425 | } 426 | 427 | .graphiql-container .execute-options { 428 | min-width: 100px; 429 | top: 37px; 430 | left: -1px; 431 | } 432 | 433 | .graphiql-container .toolbar-menu-items { 434 | left: 1px; 435 | margin-top: -1px; 436 | min-width: 110%; 437 | top: 100%; 438 | visibility: hidden; 439 | } 440 | 441 | .graphiql-container .toolbar-menu-items.open { 442 | visibility: visible; 443 | } 444 | 445 | .graphiql-container .toolbar-select-options { 446 | left: 0; 447 | min-width: 100%; 448 | top: -5px; 449 | visibility: hidden; 450 | } 451 | 452 | .graphiql-container .toolbar-select-options.open { 453 | visibility: visible; 454 | } 455 | 456 | .graphiql-container .execute-options > li, 457 | .graphiql-container .toolbar-menu-items > li, 458 | .graphiql-container .toolbar-select-options > li { 459 | cursor: pointer; 460 | display: block; 461 | margin: none; 462 | max-width: 300px; 463 | overflow: hidden; 464 | padding: 2px 20px 4px 11px; 465 | text-overflow: ellipsis; 466 | white-space: nowrap; 467 | } 468 | 469 | .graphiql-container .execute-options > li.selected, 470 | .graphiql-container .toolbar-menu-items > li.hover, 471 | .graphiql-container .toolbar-menu-items > li:active, 472 | .graphiql-container .toolbar-menu-items > li:hover, 473 | .graphiql-container .toolbar-select-options > li.hover, 474 | .graphiql-container .toolbar-select-options > li:active, 475 | .graphiql-container .toolbar-select-options > li:hover, 476 | .graphiql-container .history-contents > p:hover, 477 | .graphiql-container .history-contents > p:active { 478 | background: #e10098; 479 | color: #fff; 480 | } 481 | 482 | .graphiql-container .toolbar-select-options > li > svg { 483 | display: inline; 484 | fill: #666; 485 | margin: 0 -6px 0 6px; 486 | pointer-events: none; 487 | vertical-align: middle; 488 | } 489 | 490 | .graphiql-container .toolbar-select-options > li.hover > svg, 491 | .graphiql-container .toolbar-select-options > li:active > svg, 492 | .graphiql-container .toolbar-select-options > li:hover > svg { 493 | fill: #fff; 494 | } 495 | 496 | .graphiql-container .CodeMirror-scroll { 497 | overflow-scrolling: touch; 498 | } 499 | 500 | .graphiql-container .CodeMirror { 501 | color: #141823; 502 | font-family: 503 | 'Consolas', 504 | 'Inconsolata', 505 | 'Droid Sans Mono', 506 | 'Monaco', 507 | monospace; 508 | font-size: 13px; 509 | height: 100%; 510 | left: 0; 511 | position: absolute; 512 | top: 0; 513 | width: 100%; 514 | } 515 | 516 | .graphiql-container .CodeMirror-lines { 517 | padding: 20px 0; 518 | } 519 | 520 | .CodeMirror-hint-information .content { 521 | box-orient: vertical; 522 | color: #141823; 523 | display: -webkit-box; 524 | display: -ms-flexbox; 525 | display: flex; 526 | font-family: system, -apple-system, 'San Francisco', '.SFNSDisplay-Regular', 'Segoe UI', Segoe, 'Segoe WP', 'Helvetica Neue', helvetica, 'Lucida Grande', arial, sans-serif; 527 | font-size: 13px; 528 | line-clamp: 3; 529 | line-height: 16px; 530 | max-height: 48px; 531 | overflow: hidden; 532 | text-overflow: -o-ellipsis-lastline; 533 | } 534 | 535 | .CodeMirror-hint-information .content p:first-child { 536 | margin-top: 0; 537 | } 538 | 539 | .CodeMirror-hint-information .content p:last-child { 540 | margin-bottom: 0; 541 | } 542 | 543 | .CodeMirror-hint-information .infoType { 544 | color: #CA9800; 545 | cursor: pointer; 546 | display: inline; 547 | margin-right: 0.5em; 548 | } 549 | 550 | .autoInsertedLeaf.cm-property { 551 | -webkit-animation-duration: 6s; 552 | animation-duration: 6s; 553 | -webkit-animation-name: insertionFade; 554 | animation-name: insertionFade; 555 | border-bottom: 2px solid rgba(255, 255, 255, 0); 556 | border-radius: 2px; 557 | margin: -2px -4px -1px; 558 | padding: 2px 4px 1px; 559 | } 560 | 561 | @-webkit-keyframes insertionFade { 562 | from, to { 563 | background: rgba(255, 255, 255, 0); 564 | border-color: rgba(255, 255, 255, 0); 565 | } 566 | 567 | 15%, 85% { 568 | background: #fbffc9; 569 | border-color: #f0f3c0; 570 | } 571 | } 572 | 573 | @keyframes insertionFade { 574 | from, to { 575 | background: rgba(255, 255, 255, 0); 576 | border-color: rgba(255, 255, 255, 0); 577 | } 578 | 579 | 15%, 85% { 580 | background: #fbffc9; 581 | border-color: #f0f3c0; 582 | } 583 | } 584 | 585 | div.CodeMirror-lint-tooltip { 586 | background-color: white; 587 | border-radius: 2px; 588 | border: 0; 589 | color: #141823; 590 | -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.45); 591 | box-shadow: 0 1px 3px rgba(0, 0, 0, 0.45); 592 | font-family: 593 | system, 594 | -apple-system, 595 | 'San Francisco', 596 | '.SFNSDisplay-Regular', 597 | 'Segoe UI', 598 | Segoe, 599 | 'Segoe WP', 600 | 'Helvetica Neue', 601 | helvetica, 602 | 'Lucida Grande', 603 | arial, 604 | sans-serif; 605 | font-size: 13px; 606 | line-height: 16px; 607 | max-width: 430px; 608 | opacity: 0; 609 | padding: 8px 10px; 610 | -webkit-transition: opacity 0.15s; 611 | transition: opacity 0.15s; 612 | white-space: pre-wrap; 613 | } 614 | 615 | div.CodeMirror-lint-tooltip > * { 616 | padding-left: 23px; 617 | } 618 | 619 | div.CodeMirror-lint-tooltip > * + * { 620 | margin-top: 12px; 621 | } 622 | 623 | /* COLORS */ 624 | 625 | .graphiql-container .CodeMirror-foldmarker { 626 | border-radius: 4px; 627 | background: #08f; 628 | background: -webkit-gradient(linear, left top, left bottom, from(#43A8FF), to(#0F83E8)); 629 | background: linear-gradient(#43A8FF, #0F83E8); 630 | -webkit-box-shadow: 631 | 0 1px 1px rgba(0, 0, 0, 0.2), 632 | inset 0 0 0 1px rgba(0, 0, 0, 0.1); 633 | box-shadow: 634 | 0 1px 1px rgba(0, 0, 0, 0.2), 635 | inset 0 0 0 1px rgba(0, 0, 0, 0.1); 636 | color: white; 637 | font-family: arial; 638 | font-size: 12px; 639 | line-height: 0; 640 | margin: 0 3px; 641 | padding: 0px 4px 1px; 642 | text-shadow: 0 -1px rgba(0, 0, 0, 0.1); 643 | } 644 | 645 | .graphiql-container div.CodeMirror span.CodeMirror-matchingbracket { 646 | color: #555; 647 | text-decoration: underline; 648 | } 649 | 650 | .graphiql-container div.CodeMirror span.CodeMirror-nonmatchingbracket { 651 | color: #f00; 652 | } 653 | 654 | /* Comment */ 655 | .cm-comment { 656 | color: #999; 657 | } 658 | 659 | /* Punctuation */ 660 | .cm-punctuation { 661 | color: #555; 662 | } 663 | 664 | /* Keyword */ 665 | .cm-keyword { 666 | color: #B11A04; 667 | } 668 | 669 | /* OperationName, FragmentName */ 670 | .cm-def { 671 | color: #D2054E; 672 | } 673 | 674 | /* FieldName */ 675 | .cm-property { 676 | color: #1F61A0; 677 | } 678 | 679 | /* FieldAlias */ 680 | .cm-qualifier { 681 | color: #1C92A9; 682 | } 683 | 684 | /* ArgumentName and ObjectFieldName */ 685 | .cm-attribute { 686 | color: #8B2BB9; 687 | } 688 | 689 | /* Number */ 690 | .cm-number { 691 | color: #2882F9; 692 | } 693 | 694 | /* String */ 695 | .cm-string { 696 | color: #D64292; 697 | } 698 | 699 | /* Boolean */ 700 | .cm-builtin { 701 | color: #D47509; 702 | } 703 | 704 | /* EnumValue */ 705 | .cm-string-2 { 706 | color: #0B7FC7; 707 | } 708 | 709 | /* Variable */ 710 | .cm-variable { 711 | color: #397D13; 712 | } 713 | 714 | /* Directive */ 715 | .cm-meta { 716 | color: #B33086; 717 | } 718 | 719 | /* Type */ 720 | .cm-atom { 721 | color: #CA9800; 722 | } 723 | /* BASICS */ 724 | 725 | .CodeMirror { 726 | /* Set height, width, borders, and global font properties here */ 727 | color: black; 728 | font-family: monospace; 729 | height: 300px; 730 | } 731 | 732 | /* PADDING */ 733 | 734 | .CodeMirror-lines { 735 | padding: 4px 0; /* Vertical padding around content */ 736 | } 737 | .CodeMirror pre { 738 | padding: 0 4px; /* Horizontal padding of content */ 739 | } 740 | 741 | .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { 742 | background-color: white; /* The little square between H and V scrollbars */ 743 | } 744 | 745 | /* GUTTER */ 746 | 747 | .CodeMirror-gutters { 748 | border-right: 1px solid #ddd; 749 | background-color: #f7f7f7; 750 | white-space: nowrap; 751 | } 752 | .CodeMirror-linenumbers {} 753 | .CodeMirror-linenumber { 754 | color: #999; 755 | min-width: 20px; 756 | padding: 0 3px 0 5px; 757 | text-align: right; 758 | white-space: nowrap; 759 | } 760 | 761 | .CodeMirror-guttermarker { color: black; } 762 | .CodeMirror-guttermarker-subtle { color: #999; } 763 | 764 | /* CURSOR */ 765 | 766 | .CodeMirror .CodeMirror-cursor { 767 | border-left: 1px solid black; 768 | } 769 | /* Shown when moving in bi-directional text */ 770 | .CodeMirror div.CodeMirror-secondarycursor { 771 | border-left: 1px solid silver; 772 | } 773 | .CodeMirror.cm-fat-cursor div.CodeMirror-cursor { 774 | background: #7e7; 775 | border: 0; 776 | width: auto; 777 | } 778 | .CodeMirror.cm-fat-cursor div.CodeMirror-cursors { 779 | z-index: 1; 780 | } 781 | 782 | .cm-animate-fat-cursor { 783 | -webkit-animation: blink 1.06s steps(1) infinite; 784 | animation: blink 1.06s steps(1) infinite; 785 | border: 0; 786 | width: auto; 787 | } 788 | @-webkit-keyframes blink { 789 | 0% { background: #7e7; } 790 | 50% { background: none; } 791 | 100% { background: #7e7; } 792 | } 793 | @keyframes blink { 794 | 0% { background: #7e7; } 795 | 50% { background: none; } 796 | 100% { background: #7e7; } 797 | } 798 | 799 | /* Can style cursor different in overwrite (non-insert) mode */ 800 | div.CodeMirror-overwrite div.CodeMirror-cursor {} 801 | 802 | .cm-tab { display: inline-block; text-decoration: inherit; } 803 | 804 | .CodeMirror-ruler { 805 | border-left: 1px solid #ccc; 806 | position: absolute; 807 | } 808 | 809 | /* DEFAULT THEME */ 810 | 811 | .cm-s-default .cm-keyword {color: #708;} 812 | .cm-s-default .cm-atom {color: #219;} 813 | .cm-s-default .cm-number {color: #164;} 814 | .cm-s-default .cm-def {color: #00f;} 815 | .cm-s-default .cm-variable, 816 | .cm-s-default .cm-punctuation, 817 | .cm-s-default .cm-property, 818 | .cm-s-default .cm-operator {} 819 | .cm-s-default .cm-variable-2 {color: #05a;} 820 | .cm-s-default .cm-variable-3 {color: #085;} 821 | .cm-s-default .cm-comment {color: #a50;} 822 | .cm-s-default .cm-string {color: #a11;} 823 | .cm-s-default .cm-string-2 {color: #f50;} 824 | .cm-s-default .cm-meta {color: #555;} 825 | .cm-s-default .cm-qualifier {color: #555;} 826 | .cm-s-default .cm-builtin {color: #30a;} 827 | .cm-s-default .cm-bracket {color: #997;} 828 | .cm-s-default .cm-tag {color: #170;} 829 | .cm-s-default .cm-attribute {color: #00c;} 830 | .cm-s-default .cm-header {color: blue;} 831 | .cm-s-default .cm-quote {color: #090;} 832 | .cm-s-default .cm-hr {color: #999;} 833 | .cm-s-default .cm-link {color: #00c;} 834 | 835 | .cm-negative {color: #d44;} 836 | .cm-positive {color: #292;} 837 | .cm-header, .cm-strong {font-weight: bold;} 838 | .cm-em {font-style: italic;} 839 | .cm-link {text-decoration: underline;} 840 | .cm-strikethrough {text-decoration: line-through;} 841 | 842 | .cm-s-default .cm-error {color: #f00;} 843 | .cm-invalidchar {color: #f00;} 844 | 845 | .CodeMirror-composing { border-bottom: 2px solid; } 846 | 847 | /* Default styles for common addons */ 848 | 849 | div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;} 850 | div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;} 851 | .CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); } 852 | .CodeMirror-activeline-background {background: #e8f2ff;} 853 | 854 | /* STOP */ 855 | 856 | /* The rest of this file contains styles related to the mechanics of 857 | the editor. You probably shouldn't touch them. */ 858 | 859 | .CodeMirror { 860 | background: white; 861 | overflow: hidden; 862 | position: relative; 863 | } 864 | 865 | .CodeMirror-scroll { 866 | height: 100%; 867 | /* 30px is the magic margin used to hide the element's real scrollbars */ 868 | /* See overflow: hidden in .CodeMirror */ 869 | margin-bottom: -30px; margin-right: -30px; 870 | outline: none; /* Prevent dragging from highlighting the element */ 871 | overflow: scroll !important; /* Things will break if this is overridden */ 872 | padding-bottom: 30px; 873 | position: relative; 874 | } 875 | .CodeMirror-sizer { 876 | border-right: 30px solid transparent; 877 | position: relative; 878 | } 879 | 880 | /* The fake, visible scrollbars. Used to force redraw during scrolling 881 | before actual scrolling happens, thus preventing shaking and 882 | flickering artifacts. */ 883 | .CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { 884 | display: none; 885 | position: absolute; 886 | z-index: 6; 887 | } 888 | .CodeMirror-vscrollbar { 889 | overflow-x: hidden; 890 | overflow-y: scroll; 891 | right: 0; top: 0; 892 | } 893 | .CodeMirror-hscrollbar { 894 | bottom: 0; left: 0; 895 | overflow-x: scroll; 896 | overflow-y: hidden; 897 | } 898 | .CodeMirror-scrollbar-filler { 899 | right: 0; bottom: 0; 900 | } 901 | .CodeMirror-gutter-filler { 902 | left: 0; bottom: 0; 903 | } 904 | 905 | .CodeMirror-gutters { 906 | min-height: 100%; 907 | position: absolute; left: 0; top: 0; 908 | z-index: 3; 909 | } 910 | .CodeMirror-gutter { 911 | display: inline-block; 912 | height: 100%; 913 | margin-bottom: -30px; 914 | vertical-align: top; 915 | white-space: normal; 916 | /* Hack to make IE7 behave */ 917 | *zoom:1; 918 | *display:inline; 919 | } 920 | .CodeMirror-gutter-wrapper { 921 | background: none !important; 922 | border: none !important; 923 | position: absolute; 924 | z-index: 4; 925 | } 926 | .CodeMirror-gutter-background { 927 | position: absolute; 928 | top: 0; bottom: 0; 929 | z-index: 4; 930 | } 931 | .CodeMirror-gutter-elt { 932 | cursor: default; 933 | position: absolute; 934 | z-index: 4; 935 | } 936 | .CodeMirror-gutter-wrapper { 937 | -webkit-user-select: none; 938 | -moz-user-select: none; 939 | -ms-user-select: none; 940 | user-select: none; 941 | } 942 | 943 | .CodeMirror-lines { 944 | cursor: text; 945 | min-height: 1px; /* prevents collapsing before first draw */ 946 | } 947 | .CodeMirror pre { 948 | -webkit-tap-highlight-color: transparent; 949 | /* Reset some styles that the rest of the page might have set */ 950 | background: transparent; 951 | border-radius: 0; 952 | border-width: 0; 953 | color: inherit; 954 | font-family: inherit; 955 | font-size: inherit; 956 | -webkit-font-variant-ligatures: none; 957 | font-variant-ligatures: none; 958 | line-height: inherit; 959 | margin: 0; 960 | overflow: visible; 961 | position: relative; 962 | white-space: pre; 963 | word-wrap: normal; 964 | z-index: 2; 965 | } 966 | .CodeMirror-wrap pre { 967 | word-wrap: break-word; 968 | white-space: pre-wrap; 969 | word-break: normal; 970 | } 971 | 972 | .CodeMirror-linebackground { 973 | position: absolute; 974 | left: 0; right: 0; top: 0; bottom: 0; 975 | z-index: 0; 976 | } 977 | 978 | .CodeMirror-linewidget { 979 | overflow: auto; 980 | position: relative; 981 | z-index: 2; 982 | } 983 | 984 | .CodeMirror-widget {} 985 | 986 | .CodeMirror-code { 987 | outline: none; 988 | } 989 | 990 | /* Force content-box sizing for the elements where we expect it */ 991 | .CodeMirror-scroll, 992 | .CodeMirror-sizer, 993 | .CodeMirror-gutter, 994 | .CodeMirror-gutters, 995 | .CodeMirror-linenumber { 996 | -webkit-box-sizing: content-box; 997 | box-sizing: content-box; 998 | } 999 | 1000 | .CodeMirror-measure { 1001 | height: 0; 1002 | overflow: hidden; 1003 | position: absolute; 1004 | visibility: hidden; 1005 | width: 100%; 1006 | } 1007 | 1008 | .CodeMirror-cursor { position: absolute; } 1009 | .CodeMirror-measure pre { position: static; } 1010 | 1011 | div.CodeMirror-cursors { 1012 | position: relative; 1013 | visibility: hidden; 1014 | z-index: 3; 1015 | } 1016 | div.CodeMirror-dragcursors { 1017 | visibility: visible; 1018 | } 1019 | 1020 | .CodeMirror-focused div.CodeMirror-cursors { 1021 | visibility: visible; 1022 | } 1023 | 1024 | .CodeMirror-selected { background: #d9d9d9; } 1025 | .CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; } 1026 | .CodeMirror-crosshair { cursor: crosshair; } 1027 | .CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; } 1028 | .CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; } 1029 | .CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; } 1030 | 1031 | .cm-searching { 1032 | background: #ffa; 1033 | background: rgba(255, 255, 0, .4); 1034 | } 1035 | 1036 | /* IE7 hack to prevent it from returning funny offsetTops on the spans */ 1037 | .CodeMirror span { *vertical-align: text-bottom; } 1038 | 1039 | /* Used to force a border model for a node */ 1040 | .cm-force-border { padding-right: .1px; } 1041 | 1042 | @media print { 1043 | /* Hide the cursor when printing */ 1044 | .CodeMirror div.CodeMirror-cursors { 1045 | visibility: hidden; 1046 | } 1047 | } 1048 | 1049 | /* See issue #2901 */ 1050 | .cm-tab-wrap-hack:after { content: ''; } 1051 | 1052 | /* Help users use markselection to safely style text background */ 1053 | span.CodeMirror-selectedtext { background: none; } 1054 | 1055 | .CodeMirror-dialog { 1056 | background: inherit; 1057 | color: inherit; 1058 | left: 0; right: 0; 1059 | overflow: hidden; 1060 | padding: .1em .8em; 1061 | position: absolute; 1062 | z-index: 15; 1063 | } 1064 | 1065 | .CodeMirror-dialog-top { 1066 | border-bottom: 1px solid #eee; 1067 | top: 0; 1068 | } 1069 | 1070 | .CodeMirror-dialog-bottom { 1071 | border-top: 1px solid #eee; 1072 | bottom: 0; 1073 | } 1074 | 1075 | .CodeMirror-dialog input { 1076 | background: transparent; 1077 | border: 1px solid #d3d6db; 1078 | color: inherit; 1079 | font-family: monospace; 1080 | outline: none; 1081 | width: 20em; 1082 | } 1083 | 1084 | .CodeMirror-dialog button { 1085 | font-size: 70%; 1086 | } 1087 | .graphiql-container .doc-explorer { 1088 | background: white; 1089 | } 1090 | 1091 | .graphiql-container .doc-explorer-title-bar, 1092 | .graphiql-container .history-title-bar { 1093 | cursor: default; 1094 | display: -webkit-box; 1095 | display: -ms-flexbox; 1096 | display: flex; 1097 | height: 34px; 1098 | line-height: 14px; 1099 | padding: 8px 8px 5px; 1100 | position: relative; 1101 | -webkit-user-select: none; 1102 | -moz-user-select: none; 1103 | -ms-user-select: none; 1104 | user-select: none; 1105 | } 1106 | 1107 | .graphiql-container .doc-explorer-title, 1108 | .graphiql-container .history-title { 1109 | -webkit-box-flex: 1; 1110 | -ms-flex: 1; 1111 | flex: 1; 1112 | font-weight: bold; 1113 | overflow-x: hidden; 1114 | padding: 10px 0 10px 10px; 1115 | text-align: center; 1116 | text-overflow: ellipsis; 1117 | -webkit-user-select: initial; 1118 | -moz-user-select: initial; 1119 | -ms-user-select: initial; 1120 | user-select: initial; 1121 | white-space: nowrap; 1122 | } 1123 | 1124 | .graphiql-container .doc-explorer-back { 1125 | color: #3B5998; 1126 | cursor: pointer; 1127 | margin: -7px 0 -6px -8px; 1128 | overflow-x: hidden; 1129 | padding: 17px 12px 16px 16px; 1130 | text-overflow: ellipsis; 1131 | white-space: nowrap; 1132 | } 1133 | 1134 | .doc-explorer-narrow .doc-explorer-back { 1135 | width: 0; 1136 | } 1137 | 1138 | .graphiql-container .doc-explorer-back:before { 1139 | border-left: 2px solid #3B5998; 1140 | border-top: 2px solid #3B5998; 1141 | content: ''; 1142 | display: inline-block; 1143 | height: 9px; 1144 | margin: 0 3px -1px 0; 1145 | position: relative; 1146 | -webkit-transform: rotate(-45deg); 1147 | transform: rotate(-45deg); 1148 | width: 9px; 1149 | } 1150 | 1151 | .graphiql-container .doc-explorer-rhs { 1152 | position: relative; 1153 | } 1154 | 1155 | .graphiql-container .doc-explorer-contents, 1156 | .graphiql-container .history-contents { 1157 | background-color: #ffffff; 1158 | border-top: 1px solid #d6d6d6; 1159 | bottom: 0; 1160 | left: 0; 1161 | overflow-y: auto; 1162 | padding: 20px 15px; 1163 | position: absolute; 1164 | right: 0; 1165 | top: 47px; 1166 | } 1167 | 1168 | .graphiql-container .doc-explorer-contents { 1169 | min-width: 300px; 1170 | } 1171 | 1172 | .graphiql-container .doc-type-description p:first-child , 1173 | .graphiql-container .doc-type-description blockquote:first-child { 1174 | margin-top: 0; 1175 | } 1176 | 1177 | .graphiql-container .doc-explorer-contents a { 1178 | cursor: pointer; 1179 | text-decoration: none; 1180 | } 1181 | 1182 | .graphiql-container .doc-explorer-contents a:hover { 1183 | text-decoration: underline; 1184 | } 1185 | 1186 | .graphiql-container .doc-value-description > :first-child { 1187 | margin-top: 4px; 1188 | } 1189 | 1190 | .graphiql-container .doc-value-description > :last-child { 1191 | margin-bottom: 4px; 1192 | } 1193 | 1194 | .graphiql-container .doc-category { 1195 | margin: 20px 0; 1196 | } 1197 | 1198 | .graphiql-container .doc-category-title { 1199 | border-bottom: 1px solid #e0e0e0; 1200 | color: #777; 1201 | cursor: default; 1202 | font-size: 14px; 1203 | font-variant: small-caps; 1204 | font-weight: bold; 1205 | letter-spacing: 1px; 1206 | margin: 0 -15px 10px 0; 1207 | padding: 10px 0; 1208 | -webkit-user-select: none; 1209 | -moz-user-select: none; 1210 | -ms-user-select: none; 1211 | user-select: none; 1212 | } 1213 | 1214 | .graphiql-container .doc-category-item { 1215 | margin: 12px 0; 1216 | color: #555; 1217 | } 1218 | 1219 | .graphiql-container .keyword { 1220 | color: #B11A04; 1221 | } 1222 | 1223 | .graphiql-container .type-name { 1224 | color: #CA9800; 1225 | } 1226 | 1227 | .graphiql-container .field-name { 1228 | color: #1F61A0; 1229 | } 1230 | 1231 | .graphiql-container .field-short-description { 1232 | color: #999; 1233 | margin-left: 5px; 1234 | overflow: hidden; 1235 | text-overflow: ellipsis; 1236 | } 1237 | 1238 | .graphiql-container .enum-value { 1239 | color: #0B7FC7; 1240 | } 1241 | 1242 | .graphiql-container .arg-name { 1243 | color: #8B2BB9; 1244 | } 1245 | 1246 | .graphiql-container .arg { 1247 | display: block; 1248 | margin-left: 1em; 1249 | } 1250 | 1251 | .graphiql-container .arg:first-child:last-child, 1252 | .graphiql-container .arg:first-child:nth-last-child(2), 1253 | .graphiql-container .arg:first-child:nth-last-child(2) ~ .arg { 1254 | display: inherit; 1255 | margin: inherit; 1256 | } 1257 | 1258 | .graphiql-container .arg:first-child:nth-last-child(2):after { 1259 | content: ', '; 1260 | } 1261 | 1262 | .graphiql-container .arg-default-value { 1263 | color: #43A047; 1264 | } 1265 | 1266 | .graphiql-container .doc-deprecation { 1267 | background: #fffae8; 1268 | -webkit-box-shadow: inset 0 0 1px #bfb063; 1269 | box-shadow: inset 0 0 1px #bfb063; 1270 | color: #867F70; 1271 | line-height: 16px; 1272 | margin: 8px -8px; 1273 | max-height: 80px; 1274 | overflow: hidden; 1275 | padding: 8px; 1276 | border-radius: 3px; 1277 | } 1278 | 1279 | .graphiql-container .doc-deprecation:before { 1280 | content: 'Deprecated:'; 1281 | color: #c79b2e; 1282 | cursor: default; 1283 | display: block; 1284 | font-size: 9px; 1285 | font-weight: bold; 1286 | letter-spacing: 1px; 1287 | line-height: 1; 1288 | padding-bottom: 5px; 1289 | text-transform: uppercase; 1290 | -webkit-user-select: none; 1291 | -moz-user-select: none; 1292 | -ms-user-select: none; 1293 | user-select: none; 1294 | } 1295 | 1296 | .graphiql-container .doc-deprecation > :first-child { 1297 | margin-top: 0; 1298 | } 1299 | 1300 | .graphiql-container .doc-deprecation > :last-child { 1301 | margin-bottom: 0; 1302 | } 1303 | 1304 | .graphiql-container .show-btn { 1305 | -webkit-appearance: initial; 1306 | display: block; 1307 | border-radius: 3px; 1308 | border: solid 1px #ccc; 1309 | text-align: center; 1310 | padding: 8px 12px 10px; 1311 | width: 100%; 1312 | -webkit-box-sizing: border-box; 1313 | box-sizing: border-box; 1314 | background: #fbfcfc; 1315 | color: #555; 1316 | cursor: pointer; 1317 | } 1318 | 1319 | .graphiql-container .search-box { 1320 | border-bottom: 1px solid #d3d6db; 1321 | display: block; 1322 | font-size: 14px; 1323 | margin: -15px -15px 12px 0; 1324 | position: relative; 1325 | } 1326 | 1327 | .graphiql-container .search-box:before { 1328 | content: '\26b2'; 1329 | cursor: pointer; 1330 | display: block; 1331 | font-size: 24px; 1332 | position: absolute; 1333 | top: -2px; 1334 | -webkit-transform: rotate(-45deg); 1335 | transform: rotate(-45deg); 1336 | -webkit-user-select: none; 1337 | -moz-user-select: none; 1338 | -ms-user-select: none; 1339 | user-select: none; 1340 | } 1341 | 1342 | .graphiql-container .search-box .search-box-clear { 1343 | background-color: #d0d0d0; 1344 | border-radius: 12px; 1345 | color: #fff; 1346 | cursor: pointer; 1347 | font-size: 11px; 1348 | padding: 1px 5px 2px; 1349 | position: absolute; 1350 | right: 3px; 1351 | top: 8px; 1352 | -webkit-user-select: none; 1353 | -moz-user-select: none; 1354 | -ms-user-select: none; 1355 | user-select: none; 1356 | } 1357 | 1358 | .graphiql-container .search-box .search-box-clear:hover { 1359 | background-color: #b9b9b9; 1360 | } 1361 | 1362 | .graphiql-container .search-box > input { 1363 | border: none; 1364 | -webkit-box-sizing: border-box; 1365 | box-sizing: border-box; 1366 | font-size: 14px; 1367 | outline: none; 1368 | padding: 6px 24px 8px 20px; 1369 | width: 100%; 1370 | } 1371 | 1372 | .graphiql-container .error-container { 1373 | font-weight: bold; 1374 | left: 0; 1375 | letter-spacing: 1px; 1376 | opacity: 0.5; 1377 | position: absolute; 1378 | right: 0; 1379 | text-align: center; 1380 | text-transform: uppercase; 1381 | top: 50%; 1382 | -webkit-transform: translate(0, -50%); 1383 | transform: translate(0, -50%); 1384 | } 1385 | .CodeMirror-foldmarker { 1386 | color: blue; 1387 | cursor: pointer; 1388 | font-family: arial; 1389 | line-height: .3; 1390 | text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px; 1391 | } 1392 | .CodeMirror-foldgutter { 1393 | width: .7em; 1394 | } 1395 | .CodeMirror-foldgutter-open, 1396 | .CodeMirror-foldgutter-folded { 1397 | cursor: pointer; 1398 | } 1399 | .CodeMirror-foldgutter-open:after { 1400 | content: "\25BE"; 1401 | } 1402 | .CodeMirror-foldgutter-folded:after { 1403 | content: "\25B8"; 1404 | } 1405 | .graphiql-container .history-contents, 1406 | .graphiql-container .history-contents input { 1407 | font-family: 'Consolas', 'Inconsolata', 'Droid Sans Mono', 'Monaco', monospace; 1408 | padding: 0; 1409 | } 1410 | 1411 | .graphiql-container .history-contents p { 1412 | -webkit-box-align: center; 1413 | -ms-flex-align: center; 1414 | align-items: center; 1415 | display: -webkit-box; 1416 | display: -ms-flexbox; 1417 | display: flex; 1418 | font-size: 12px; 1419 | overflow: hidden; 1420 | text-overflow: ellipsis; 1421 | white-space: nowrap; 1422 | margin: 0; 1423 | padding: 8px; 1424 | border-bottom: 1px solid #e0e0e0; 1425 | } 1426 | 1427 | .graphiql-container .history-contents p.editable { 1428 | padding-bottom: 6px; 1429 | padding-top: 7px; 1430 | } 1431 | 1432 | .graphiql-container .history-contents input { 1433 | -webkit-box-flex: 1; 1434 | -ms-flex-positive: 1; 1435 | flex-grow: 1; 1436 | font-size: 12px; 1437 | } 1438 | 1439 | .graphiql-container .history-contents p:hover { 1440 | cursor: pointer; 1441 | } 1442 | 1443 | .graphiql-container .history-contents p span.history-label { 1444 | -webkit-box-flex: 1; 1445 | -ms-flex-positive: 1; 1446 | flex-grow: 1; 1447 | overflow: hidden; 1448 | text-overflow: ellipsis; 1449 | }.CodeMirror-info { 1450 | background: white; 1451 | border-radius: 2px; 1452 | -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.45); 1453 | box-shadow: 0 1px 3px rgba(0, 0, 0, 0.45); 1454 | -webkit-box-sizing: border-box; 1455 | box-sizing: border-box; 1456 | color: #555; 1457 | font-family: 1458 | system, 1459 | -apple-system, 1460 | 'San Francisco', 1461 | '.SFNSDisplay-Regular', 1462 | 'Segoe UI', 1463 | Segoe, 1464 | 'Segoe WP', 1465 | 'Helvetica Neue', 1466 | helvetica, 1467 | 'Lucida Grande', 1468 | arial, 1469 | sans-serif; 1470 | font-size: 13px; 1471 | line-height: 16px; 1472 | margin: 8px -8px; 1473 | max-width: 400px; 1474 | opacity: 0; 1475 | overflow: hidden; 1476 | padding: 8px 8px; 1477 | position: fixed; 1478 | -webkit-transition: opacity 0.15s; 1479 | transition: opacity 0.15s; 1480 | z-index: 50; 1481 | } 1482 | 1483 | .CodeMirror-info :first-child { 1484 | margin-top: 0; 1485 | } 1486 | 1487 | .CodeMirror-info :last-child { 1488 | margin-bottom: 0; 1489 | } 1490 | 1491 | .CodeMirror-info p { 1492 | margin: 1em 0; 1493 | } 1494 | 1495 | .CodeMirror-info .info-description { 1496 | color: #777; 1497 | line-height: 16px; 1498 | margin-top: 1em; 1499 | max-height: 80px; 1500 | overflow: hidden; 1501 | } 1502 | 1503 | .CodeMirror-info .info-deprecation { 1504 | background: #fffae8; 1505 | -webkit-box-shadow: inset 0 1px 1px -1px #bfb063; 1506 | box-shadow: inset 0 1px 1px -1px #bfb063; 1507 | color: #867F70; 1508 | line-height: 16px; 1509 | margin: -8px; 1510 | margin-top: 8px; 1511 | max-height: 80px; 1512 | overflow: hidden; 1513 | padding: 8px; 1514 | } 1515 | 1516 | .CodeMirror-info .info-deprecation-label { 1517 | color: #c79b2e; 1518 | cursor: default; 1519 | display: block; 1520 | font-size: 9px; 1521 | font-weight: bold; 1522 | letter-spacing: 1px; 1523 | line-height: 1; 1524 | padding-bottom: 5px; 1525 | text-transform: uppercase; 1526 | -webkit-user-select: none; 1527 | -moz-user-select: none; 1528 | -ms-user-select: none; 1529 | user-select: none; 1530 | } 1531 | 1532 | .CodeMirror-info .info-deprecation-label + * { 1533 | margin-top: 0; 1534 | } 1535 | 1536 | .CodeMirror-info a { 1537 | text-decoration: none; 1538 | } 1539 | 1540 | .CodeMirror-info a:hover { 1541 | text-decoration: underline; 1542 | } 1543 | 1544 | .CodeMirror-info .type-name { 1545 | color: #CA9800; 1546 | } 1547 | 1548 | .CodeMirror-info .field-name { 1549 | color: #1F61A0; 1550 | } 1551 | 1552 | .CodeMirror-info .enum-value { 1553 | color: #0B7FC7; 1554 | } 1555 | 1556 | .CodeMirror-info .arg-name { 1557 | color: #8B2BB9; 1558 | } 1559 | 1560 | .CodeMirror-info .directive-name { 1561 | color: #B33086; 1562 | } 1563 | .CodeMirror-jump-token { 1564 | text-decoration: underline; 1565 | cursor: pointer; 1566 | } 1567 | /* The lint marker gutter */ 1568 | .CodeMirror-lint-markers { 1569 | width: 16px; 1570 | } 1571 | 1572 | .CodeMirror-lint-tooltip { 1573 | background-color: infobackground; 1574 | border-radius: 4px 4px 4px 4px; 1575 | border: 1px solid black; 1576 | color: infotext; 1577 | font-family: monospace; 1578 | font-size: 10pt; 1579 | max-width: 600px; 1580 | opacity: 0; 1581 | overflow: hidden; 1582 | padding: 2px 5px; 1583 | position: fixed; 1584 | -webkit-transition: opacity .4s; 1585 | transition: opacity .4s; 1586 | white-space: pre-wrap; 1587 | z-index: 100; 1588 | } 1589 | 1590 | .CodeMirror-lint-mark-error, .CodeMirror-lint-mark-warning { 1591 | background-position: left bottom; 1592 | background-repeat: repeat-x; 1593 | } 1594 | 1595 | .CodeMirror-lint-mark-error { 1596 | background-image: 1597 | url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg==") 1598 | ; 1599 | } 1600 | 1601 | .CodeMirror-lint-mark-warning { 1602 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII="); 1603 | } 1604 | 1605 | .CodeMirror-lint-marker-error, .CodeMirror-lint-marker-warning { 1606 | background-position: center center; 1607 | background-repeat: no-repeat; 1608 | cursor: pointer; 1609 | display: inline-block; 1610 | height: 16px; 1611 | position: relative; 1612 | vertical-align: middle; 1613 | width: 16px; 1614 | } 1615 | 1616 | .CodeMirror-lint-message-error, .CodeMirror-lint-message-warning { 1617 | background-position: top left; 1618 | background-repeat: no-repeat; 1619 | padding-left: 18px; 1620 | } 1621 | 1622 | .CodeMirror-lint-marker-error, .CodeMirror-lint-message-error { 1623 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAHlBMVEW7AAC7AACxAAC7AAC7AAAAAAC4AAC5AAD///+7AAAUdclpAAAABnRSTlMXnORSiwCK0ZKSAAAATUlEQVR42mWPOQ7AQAgDuQLx/z8csYRmPRIFIwRGnosRrpamvkKi0FTIiMASR3hhKW+hAN6/tIWhu9PDWiTGNEkTtIOucA5Oyr9ckPgAWm0GPBog6v4AAAAASUVORK5CYII="); 1624 | } 1625 | 1626 | .CodeMirror-lint-marker-warning, .CodeMirror-lint-message-warning { 1627 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII="); 1628 | } 1629 | 1630 | .CodeMirror-lint-marker-multiple { 1631 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC"); 1632 | background-position: right bottom; 1633 | background-repeat: no-repeat; 1634 | width: 100%; height: 100%; 1635 | } 1636 | .graphiql-container .spinner-container { 1637 | height: 36px; 1638 | left: 50%; 1639 | position: absolute; 1640 | top: 50%; 1641 | -webkit-transform: translate(-50%, -50%); 1642 | transform: translate(-50%, -50%); 1643 | width: 36px; 1644 | z-index: 10; 1645 | } 1646 | 1647 | .graphiql-container .spinner { 1648 | -webkit-animation: rotation .6s infinite linear; 1649 | animation: rotation .6s infinite linear; 1650 | border-bottom: 6px solid rgba(150, 150, 150, .15); 1651 | border-left: 6px solid rgba(150, 150, 150, .15); 1652 | border-radius: 100%; 1653 | border-right: 6px solid rgba(150, 150, 150, .15); 1654 | border-top: 6px solid rgba(150, 150, 150, .8); 1655 | display: inline-block; 1656 | height: 24px; 1657 | position: absolute; 1658 | vertical-align: middle; 1659 | width: 24px; 1660 | } 1661 | 1662 | @-webkit-keyframes rotation { 1663 | from { -webkit-transform: rotate(0deg); transform: rotate(0deg); } 1664 | to { -webkit-transform: rotate(359deg); transform: rotate(359deg); } 1665 | } 1666 | 1667 | @keyframes rotation { 1668 | from { -webkit-transform: rotate(0deg); transform: rotate(0deg); } 1669 | to { -webkit-transform: rotate(359deg); transform: rotate(359deg); } 1670 | } 1671 | .CodeMirror-hints { 1672 | background: white; 1673 | -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.45); 1674 | box-shadow: 0 1px 3px rgba(0, 0, 0, 0.45); 1675 | font-family: 'Consolas', 'Inconsolata', 'Droid Sans Mono', 'Monaco', monospace; 1676 | font-size: 13px; 1677 | list-style: none; 1678 | margin-left: -6px; 1679 | margin: 0; 1680 | max-height: 14.5em; 1681 | overflow-y: auto; 1682 | overflow: hidden; 1683 | padding: 0; 1684 | position: absolute; 1685 | z-index: 10; 1686 | } 1687 | 1688 | .CodeMirror-hint { 1689 | border-top: solid 1px #f7f7f7; 1690 | color: #141823; 1691 | cursor: pointer; 1692 | margin: 0; 1693 | max-width: 300px; 1694 | overflow: hidden; 1695 | padding: 2px 6px; 1696 | white-space: pre; 1697 | } 1698 | 1699 | li.CodeMirror-hint-active { 1700 | background-color: #08f; 1701 | border-top-color: white; 1702 | color: white; 1703 | } 1704 | 1705 | .CodeMirror-hint-information { 1706 | border-top: solid 1px #c0c0c0; 1707 | max-width: 300px; 1708 | padding: 4px 6px; 1709 | position: relative; 1710 | z-index: 1; 1711 | } 1712 | 1713 | .CodeMirror-hint-information:first-child { 1714 | border-bottom: solid 1px #c0c0c0; 1715 | border-top: none; 1716 | margin-bottom: -1px; 1717 | } 1718 | 1719 | .CodeMirror-hint-deprecation { 1720 | background: #fffae8; 1721 | -webkit-box-shadow: inset 0 1px 1px -1px #bfb063; 1722 | box-shadow: inset 0 1px 1px -1px #bfb063; 1723 | color: #867F70; 1724 | font-family: 1725 | system, 1726 | -apple-system, 1727 | 'San Francisco', 1728 | '.SFNSDisplay-Regular', 1729 | 'Segoe UI', 1730 | Segoe, 1731 | 'Segoe WP', 1732 | 'Helvetica Neue', 1733 | helvetica, 1734 | 'Lucida Grande', 1735 | arial, 1736 | sans-serif; 1737 | font-size: 13px; 1738 | line-height: 16px; 1739 | margin-top: 4px; 1740 | max-height: 80px; 1741 | overflow: hidden; 1742 | padding: 6px; 1743 | } 1744 | 1745 | .CodeMirror-hint-deprecation .deprecation-label { 1746 | color: #c79b2e; 1747 | cursor: default; 1748 | display: block; 1749 | font-size: 9px; 1750 | font-weight: bold; 1751 | letter-spacing: 1px; 1752 | line-height: 1; 1753 | padding-bottom: 5px; 1754 | text-transform: uppercase; 1755 | -webkit-user-select: none; 1756 | -moz-user-select: none; 1757 | -ms-user-select: none; 1758 | user-select: none; 1759 | } 1760 | 1761 | .CodeMirror-hint-deprecation .deprecation-label + * { 1762 | margin-top: 0; 1763 | } 1764 | 1765 | .CodeMirror-hint-deprecation :last-child { 1766 | margin-bottom: 0; 1767 | } 1768 | -------------------------------------------------------------------------------- /server/public/npm/micromodal/dist/micromodal.min.js: -------------------------------------------------------------------------------- 1 | !function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o():"function"==typeof define&&define.amd?define(o):e.MicroModal=o()}(this,function(){"use strict" 2 | var e=function(e,o){if(!(e instanceof o))throw new TypeError("Cannot call a class as a function")},o=function(){function e(e,o){for(var t=0;t0&&this.registerTriggers.apply(this,t(r)),this.onClick=this.onClick.bind(this),this.onKeydown=this.onKeydown.bind(this)}return o(n,[{key:"registerTriggers",value:function(){for(var e=this,o=arguments.length,t=Array(o),i=0;i'),!1},l=function(e){if(e.length<=0)return console.warn("MicroModal v0.3.1: ❗Please specify at least one %c'micromodal-trigger'","background-color: #f8f9fa;color: #50596c;font-weight: bold;","data attribute."),console.warn("%cExample:","background-color: #f8f9fa;color: #50596c;font-weight: bold;",''),!1},c=function(e,o){if(l(e),!o)return!0 18 | for(var t in o)s(t) 19 | return!0} 20 | return{init:function(e){var o=Object.assign({},{openTrigger:"data-micromodal-trigger"},e),i=[].concat(t(document.querySelectorAll("["+o.openTrigger+"]"))),a=r(i,o.openTrigger) 21 | if(!0!==o.debugMode||!1!==c(i,a))for(var s in a){var l=a[s] 22 | o.targetModal=s,o.triggers=[].concat(t(l)),new n(o)}},show:function(e,o){var t=o||{} 23 | t.targetModal=e,!0===t.debugMode&&!1===s(e)||(a=new n(t),a.showModal())},close:function(){a.closeModal()}}}()}) 24 | -------------------------------------------------------------------------------- /server/public/react/15.4.2/react.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * React v15.4.2 3 | * 4 | * Copyright 2013-present, Facebook, Inc. 5 | * All rights reserved. 6 | * 7 | * This source code is licensed under the BSD-style license found in the 8 | * LICENSE file in the root directory of this source tree. An additional grant 9 | * of patent rights can be found in the PATENTS file in the same directory. 10 | * 11 | */ 12 | !function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.React=t()}}(function(){return function t(e,n,r){function o(u,a){if(!n[u]){if(!e[u]){var s="function"==typeof require&&require;if(!a&&s)return s(u,!0);if(i)return i(u,!0);var c=new Error("Cannot find module '"+u+"'");throw c.code="MODULE_NOT_FOUND",c}var l=n[u]={exports:{}};e[u][0].call(l.exports,function(t){var n=e[u][1][t];return o(n?n:t)},l,l.exports,t,e,n,r)}return n[u].exports}for(var i="function"==typeof require&&require,u=0;u1){for(var h=Array(v),m=0;m1){for(var g=Array(b),E=0;E>"),O={array:u("array"),bool:u("boolean"),func:u("function"),number:u("number"),object:u("object"),string:u("string"),symbol:u("symbol"),any:a(),arrayOf:s,element:c(),instanceOf:l,node:y(),objectOf:p,oneOf:f,oneOfType:d,shape:v};o.prototype=Error.prototype,e.exports=O},{12:12,14:14,19:19,23:23,26:26,9:9}],14:[function(t,e,n){"use strict";var r="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";e.exports=r},{}],15:[function(t,e,n){"use strict";function r(t,e,n){this.props=t,this.context=e,this.refs=s,this.updater=n||a}function o(){}var i=t(27),u=t(6),a=t(11),s=t(24);o.prototype=u.prototype,r.prototype=new o,r.prototype.constructor=r,i(r.prototype,u.prototype),r.prototype.isPureReactComponent=!0,e.exports=r},{11:11,24:24,27:27,6:6}],16:[function(t,e,n){"use strict";var r=t(27),o=t(3),i=r({__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{ReactCurrentOwner:t(7)}},o);e.exports=i},{27:27,3:3,7:7}],17:[function(t,e,n){"use strict";e.exports="15.4.2"},{}],18:[function(t,e,n){"use strict";var r=!1;e.exports=r},{}],19:[function(t,e,n){"use strict";function r(t){var e=t&&(o&&t[o]||t[i]);if("function"==typeof e)return e}var o="function"==typeof Symbol&&Symbol.iterator,i="@@iterator";e.exports=r},{}],20:[function(t,e,n){"use strict";function r(t){return i.isValidElement(t)?void 0:o("143"),t}var o=t(21),i=t(9);t(25);e.exports=r},{21:21,25:25,9:9}],21:[function(t,e,n){"use strict";function r(t){for(var e=arguments.length-1,n="Minified React error #"+t+"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant="+t,r=0;r tag. 11 | /** 12 | * Copyright (c) 2015-present, Facebook, Inc. 13 | * All rights reserved. 14 | * 15 | * This source code is licensed under the BSD-style license found in the 16 | * LICENSE file in the root directory of this source tree. An additional grant 17 | * of patent rights can be found in the PATENTS file in the same directory. 18 | * 19 | * strict 20 | */ 21 | 22 | function safeSerialize(data) { 23 | return data ? JSON.stringify(data).replace(/\//g, '\\/') : 'undefined'; 24 | } 25 | 26 | /** 27 | * When express-graphql receives a request which does not Accept JSON, but does 28 | * Accept HTML, it may present GraphiQL, the in-browser GraphQL explorer IDE. 29 | * 30 | * When shown, it will be pre-populated with the result of having executed the 31 | * requested query. 32 | */ 33 | function renderGraphiQL(data) { 34 | var queryString = data.query; 35 | var variablesString = data.variables ? JSON.stringify(data.variables, null, 2) : null; 36 | var resultString = data.result ? JSON.stringify(data.result, null, 2) : null; 37 | var operationName = data.operationName; 38 | 39 | return readFileSync(__dirname + '/view/index.html').toString().replace(/\$\{GRAPHIQL_VERSION\}/g, GRAPHIQL_VERSION); 40 | } -------------------------------------------------------------------------------- /server/server.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var express = require('express'); 4 | var bodyParser = require('body-parser') 5 | 6 | var gschema = require('../gschema.js'); 7 | 8 | var fetch = require('node-fetch'); 9 | 10 | 11 | var _renderGraphiQL = require('./renderGraphiQL'); 12 | 13 | 14 | var gschema_obj; 15 | 16 | var app = express(); 17 | 18 | app.use('/static', express.static(__dirname + '/public')); 19 | 20 | // parse application/x-www-form-urlencoded 21 | app.use(bodyParser.urlencoded({ 22 | limit: '50mb', 23 | extended: true 24 | })) 25 | 26 | // parse application/json 27 | app.use(bodyParser.json( 28 | {limit: '50mb'} 29 | )); 30 | 31 | 32 | /** 33 | * All information about a GraphQL request. 34 | */ 35 | 36 | function graphqlMiddleware(request, response) { 37 | 38 | var query = void 0; 39 | var variables = void 0; 40 | var operationName = void 0; 41 | 42 | var result = { 43 | data: {} 44 | } 45 | 46 | var payload = (0, _renderGraphiQL.renderGraphiQL)({ 47 | query: query, 48 | variables: variables, 49 | operationName: operationName, 50 | result: result 51 | }); 52 | return sendResponse(response, 'text/html', payload); 53 | } 54 | 55 | /** 56 | Fetcher for the GraphQL Schema that will be used by GSchema. 57 | This is a solution using GSchema on the server side that simplifies the whole implementation (aka Quick and dirty :>). 58 | */ 59 | function schemaFetcher(req, res) { 60 | var remote_schema = req.body.remote_url; 61 | var additional_headers = req.body.headers && JSON.parse(req.body.headers); 62 | var data = req.body; 63 | var headers = { 64 | 'Content-Type': 'application/json' 65 | } 66 | if (additional_headers) { 67 | Object.getOwnPropertyNames(additional_headers).forEach(key => { 68 | headers[key] = additional_headers[key] 69 | }) 70 | } 71 | 72 | fetch(remote_schema, { 73 | method: 'POST', 74 | headers: headers, 75 | body: JSON.stringify({ 76 | "query": gschema.introspectionQuery 77 | }) 78 | }).then(response => { 79 | if (response.status === 200) 80 | return response.json(); 81 | else { 82 | throw Error('Status: ' + response.status); 83 | } 84 | }).then(text => { 85 | gschema_obj = new gschema(text); 86 | var response_obj = JSON.stringify({ 87 | "queries": Object.keys(gschema_obj.get_queries()), 88 | "mutations": Object.keys(gschema_obj.get_mutations()) 89 | }); 90 | sendResponse(res, "application/json", response_obj); 91 | }).catch(err => sendResponse(res, "application/data", err + '')); 92 | } 93 | 94 | /** 95 | Fetcher for the GraphQL Schema that will be used by GSchema. 96 | This is a solution using GSchema on the server side that simplifies the whole implementation (aka Quick and dirty :>). 97 | */ 98 | function queryFetcher(req, res) { 99 | var query_name = req.query.name; 100 | if(!gschema_obj){ 101 | return res.end("No Schema"); 102 | } 103 | res.end(gschema_obj.build_query(query_name)); 104 | } 105 | 106 | 107 | /** 108 | Proxy function to execute requests on remote GraphQL Server 109 | */ 110 | function remoteFetcher(req, res) { 111 | var remote_schema = req.query.remote_url; 112 | var additional_headers = req.query.headers && JSON.parse(req.query.headers); 113 | var data = req.body; 114 | var headers = { 115 | 'Content-Type': 'application/json' 116 | } 117 | if (additional_headers) { 118 | Object.getOwnPropertyNames(additional_headers).forEach(key => { 119 | headers[key] = additional_headers[key] 120 | }) 121 | } 122 | 123 | fetch(remote_schema, { 124 | method: 'POST', 125 | headers: headers, 126 | body: JSON.stringify(data) 127 | }).then(response => { 128 | if (response.status === 200) 129 | return response.text(); 130 | else { 131 | console.log(response) 132 | throw Error('Status: ' + response.status); 133 | } 134 | } 135 | ).then(text => sendResponse(res, "application/json", text)).catch(err => { 136 | sendResponse(res, "application/data", err.stack + ''); 137 | console.error(err) 138 | }); 139 | } 140 | 141 | /** 142 | * Helper function for sending a response using only the core Node server APIs. 143 | */ 144 | function sendResponse(response, type, data) { 145 | var chunk = new Buffer(data, 'utf8'); 146 | response.setHeader('Content-Type', type + '; charset=utf-8'); 147 | response.setHeader('Content-Length', String(chunk.length)); 148 | response.end(chunk); 149 | } 150 | 151 | app.get('/', graphqlMiddleware); 152 | app.get('/gschema/queryFetcher', queryFetcher); 153 | app.post('/gschema/schemaFetcher', schemaFetcher); 154 | app.post('/fetcher', remoteFetcher); 155 | app.listen(4000, () => console.log('Express GraphQL Server Now Running On localhost:4000/')); 156 | 157 | -------------------------------------------------------------------------------- /server/view/index.html: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | GraphQLSchema2Payload 14 | 15 | 16 | 17 | 180 | 182 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 223 | 224 | 225 |
226 | 227 | Queries: 228 | Mutations: 229 |
230 | 231 | 251 | 252 | 299 | 358 |
Loading...
359 | 451 | 452 | --------------------------------------------------------------------------------