diff --git a/.eslintignore b/.eslintignore index afe416dc9..5d2b4b945 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,5 +1,4 @@ node_modules node7minus node8plus -__tests__ examples diff --git a/.eslintrc.js b/.eslintrc.js index f2610ce2b..50192f2be 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -10,6 +10,9 @@ module.exports = { node: true, es6: true, }, + globals: { + jasmine: false, + }, rules: { "prettier/prettier": [ "error", diff --git a/packages/graphile-build-pg/__tests__/tags.test.js b/packages/graphile-build-pg/__tests__/tags.test.js index 8c8136090..b6179c139 100644 --- a/packages/graphile-build-pg/__tests__/tags.test.js +++ b/packages/graphile-build-pg/__tests__/tags.test.js @@ -1,25 +1,49 @@ const { parseTags } = require("../src/utils"); - -test('tags are removed correctly', () => { - expect(parseTags(`@deprecated Persons now have first and last name\nThe person's name`).text).toBe(`The person's name`) - expect(parseTags(`@deprecated Persons now have first and last name`).text).toBe(``) - expect(parseTags(`@foo\n@bar\nBaz`).text).toBe(`Baz`) - expect(parseTags(` @foo @bar\nBaz`).text).toBe(` @foo @bar\nBaz`) - expect(parseTags(`@foo\n @bar\nBaz`).text).toBe(` @bar\nBaz`) - expect(parseTags(`@foo@bar Baz`).text).toBe(`@foo@bar Baz`) - expect(parseTags(`Blah blah @deprecated`).text).toBe(`Blah blah @deprecated`) - expect(parseTags(`Blah blah\n@deprecated`).text).toBe(`Blah blah\n@deprecated`) - expect(parseTags(`@jsonField date timestamp\n@jsonField name text\n@jsonField episode enum ONE=1 TWO=2\nBaz`).text).toBe(`Baz`) + +test("tags are removed correctly", () => { + expect( + parseTags( + `@deprecated Persons now have first and last name\nThe person's name` + ).text + ).toBe(`The person's name`); + expect( + parseTags(`@deprecated Persons now have first and last name`).text + ).toBe(``); + expect(parseTags(`@foo\n@bar\nBaz`).text).toBe(`Baz`); + expect(parseTags(` @foo @bar\nBaz`).text).toBe(` @foo @bar\nBaz`); + expect(parseTags(`@foo\n @bar\nBaz`).text).toBe(` @bar\nBaz`); + expect(parseTags(`@foo@bar Baz`).text).toBe(`@foo@bar Baz`); + expect(parseTags(`Blah blah @deprecated`).text).toBe(`Blah blah @deprecated`); + expect(parseTags(`Blah blah\n@deprecated`).text).toBe( + `Blah blah\n@deprecated` + ); + expect( + parseTags( + `@jsonField date timestamp\n@jsonField name text\n@jsonField episode enum ONE=1 TWO=2\nBaz` + ).text + ).toBe(`Baz`); }); -test('tags are extracted correctly', () => { - expect(parseTags(`@deprecated Persons now have first and last name\nThe person's name`).tags).toEqual({deprecated: "Persons now have first and last name"}) - expect(parseTags(`@deprecated Persons now have first and last name`).tags).toEqual({deprecated: "Persons now have first and last name"}) - expect(parseTags(`@foo\n@bar\nBaz`).tags).toEqual({foo: true, bar: true}) - expect(parseTags(` @foo @bar\nBaz`).tags).toEqual({}) - expect(parseTags(`@foo\n @bar\nBaz`).tags).toEqual({foo: true}) - expect(parseTags(`@foo@bar Baz`).tags).toEqual({}) - expect(parseTags(`Blah blah @deprecated`).tags).toEqual({}) - expect(parseTags(`Blah blah\n@deprecated`).tags).toEqual({}) - expect(parseTags(`@jsonField date timestamp\n@jsonField name text\n@jsonField episode enum ONE=1 TWO=2\nBaz`).tags).toEqual({jsonField: ["date timestamp", "name text", "episode enum ONE=1 TWO=2"]}) -}); \ No newline at end of file +test("tags are extracted correctly", () => { + expect( + parseTags( + `@deprecated Persons now have first and last name\nThe person's name` + ).tags + ).toEqual({ deprecated: "Persons now have first and last name" }); + expect( + parseTags(`@deprecated Persons now have first and last name`).tags + ).toEqual({ deprecated: "Persons now have first and last name" }); + expect(parseTags(`@foo\n@bar\nBaz`).tags).toEqual({ foo: true, bar: true }); + expect(parseTags(` @foo @bar\nBaz`).tags).toEqual({}); + expect(parseTags(`@foo\n @bar\nBaz`).tags).toEqual({ foo: true }); + expect(parseTags(`@foo@bar Baz`).tags).toEqual({}); + expect(parseTags(`Blah blah @deprecated`).tags).toEqual({}); + expect(parseTags(`Blah blah\n@deprecated`).tags).toEqual({}); + expect( + parseTags( + `@jsonField date timestamp\n@jsonField name text\n@jsonField episode enum ONE=1 TWO=2\nBaz` + ).tags + ).toEqual({ + jsonField: ["date timestamp", "name text", "episode enum ONE=1 TWO=2"], + }); +}); diff --git a/packages/graphile-build-pg/package.json b/packages/graphile-build-pg/package.json index 21c35d995..a01e1165a 100644 --- a/packages/graphile-build-pg/package.json +++ b/packages/graphile-build-pg/package.json @@ -40,7 +40,7 @@ "graphql-iso-date": "^3.2.0", "jsonwebtoken": "^8.1.1", "lodash": ">=4 <5", - "lru-cache": "4.1.1", + "lru-cache": ">=4 <5", "pg-sql2": "2.1.0", "postgres-interval": "1.1.1" }, diff --git a/packages/graphile-build-pg/src/plugins/PgAllRows.js b/packages/graphile-build-pg/src/plugins/PgAllRows.js index 6ea994c9a..6a509efd7 100644 --- a/packages/graphile-build-pg/src/plugins/PgAllRows.js +++ b/packages/graphile-build-pg/src/plugins/PgAllRows.js @@ -26,7 +26,10 @@ export default (async function PgAllRows( pgAddStartEndCursor: addStartEndCursor, pgOmit: omit, } = build; - const { fieldWithHooks, scope: { isRootQuery } } = context; + const { + fieldWithHooks, + scope: { isRootQuery }, + } = context; if (!isRootQuery) { return fields; } @@ -144,7 +147,9 @@ export default (async function PgAllRows( if (debugSql.enabled) debugSql(text); const result = await pgClient.query(text, values); if (isConnection) { - const { rows: [row] } = result; + const { + rows: [row], + } = result; return addStartEndCursor(row); } else { return result.rows; diff --git a/packages/graphile-build-pg/src/plugins/PgConnectionArgFirstLastBeforeAfter.js b/packages/graphile-build-pg/src/plugins/PgConnectionArgFirstLastBeforeAfter.js index b8991c716..f0ac1877a 100644 --- a/packages/graphile-build-pg/src/plugins/PgConnectionArgFirstLastBeforeAfter.js +++ b/packages/graphile-build-pg/src/plugins/PgConnectionArgFirstLastBeforeAfter.js @@ -7,7 +7,11 @@ export default (function PgConnectionArgs(builder) { builder.hook( "GraphQLObjectType:fields:field:args", (args, build, context) => { - const { extend, getTypeByName, graphql: { GraphQLInt } } = build; + const { + extend, + getTypeByName, + graphql: { GraphQLInt }, + } = build; const { scope: { isPgFieldConnection, diff --git a/packages/graphile-build-pg/src/plugins/PgConnectionArgOrderBy.js b/packages/graphile-build-pg/src/plugins/PgConnectionArgOrderBy.js index 4642b9416..4bb0f2065 100644 --- a/packages/graphile-build-pg/src/plugins/PgConnectionArgOrderBy.js +++ b/packages/graphile-build-pg/src/plugins/PgConnectionArgOrderBy.js @@ -94,7 +94,9 @@ export default (function PgConnectionArgOrderBy(builder) { addArgDataGenerator(function connectionOrderBy({ orderBy: rawOrderBy }) { const orderBy = rawOrderBy - ? Array.isArray(rawOrderBy) ? rawOrderBy : [rawOrderBy] + ? Array.isArray(rawOrderBy) + ? rawOrderBy + : [rawOrderBy] : null; return { pgCursorPrefix: cursorPrefixFromOrderBy(orderBy), diff --git a/packages/graphile-build-pg/src/plugins/PgConnectionTotalCount.js b/packages/graphile-build-pg/src/plugins/PgConnectionTotalCount.js index cb39c625c..1494bb7c4 100644 --- a/packages/graphile-build-pg/src/plugins/PgConnectionTotalCount.js +++ b/packages/graphile-build-pg/src/plugins/PgConnectionTotalCount.js @@ -3,7 +3,11 @@ import type { Plugin } from "graphile-build"; export default (function PgConnectionTotalCount(builder) { builder.hook("GraphQLObjectType:fields", (fields, build, context) => { - const { extend, inflection, graphql: { GraphQLInt } } = build; + const { + extend, + inflection, + graphql: { GraphQLInt }, + } = build; const { scope: { isPgRowConnectionType, pgIntrospection: table }, fieldWithHooks, diff --git a/packages/graphile-build-pg/src/plugins/PgMutationCreatePlugin.js b/packages/graphile-build-pg/src/plugins/PgMutationCreatePlugin.js index 466d3bd37..515a912cb 100644 --- a/packages/graphile-build-pg/src/plugins/PgMutationCreatePlugin.js +++ b/packages/graphile-build-pg/src/plugins/PgMutationCreatePlugin.js @@ -33,7 +33,10 @@ export default (function PgMutationCreatePlugin( pgOmit: omit, pgViaTemporaryTable: viaTemporaryTable, } = build; - const { scope: { isRootMutation }, fieldWithHooks } = context; + const { + scope: { isRootMutation }, + fieldWithHooks, + } = context; if (!isRootMutation) { return fields; } diff --git a/packages/graphile-build-pg/src/plugins/PgMutationPayloadEdgePlugin.js b/packages/graphile-build-pg/src/plugins/PgMutationPayloadEdgePlugin.js index 0dccdb18f..7a38c1d08 100644 --- a/packages/graphile-build-pg/src/plugins/PgMutationPayloadEdgePlugin.js +++ b/packages/graphile-build-pg/src/plugins/PgMutationPayloadEdgePlugin.js @@ -67,7 +67,9 @@ export default (function PgMutationPayloadEdgePlugin(builder) { }) { const orderBy = canOrderBy && rawOrderBy - ? Array.isArray(rawOrderBy) ? rawOrderBy : [rawOrderBy] + ? Array.isArray(rawOrderBy) + ? rawOrderBy + : [rawOrderBy] : null; return { pgQuery: queryBuilder => { @@ -142,7 +144,9 @@ export default (function PgMutationPayloadEdgePlugin(builder) { resolve(data, { orderBy: rawOrderBy }) { const orderBy = canOrderBy && rawOrderBy - ? Array.isArray(rawOrderBy) ? rawOrderBy : [rawOrderBy] + ? Array.isArray(rawOrderBy) + ? rawOrderBy + : [rawOrderBy] : null; const order = orderBy && orderBy.some(item => item.alias) diff --git a/packages/graphile-build-pg/src/plugins/PgMutationProceduresPlugin.js b/packages/graphile-build-pg/src/plugins/PgMutationProceduresPlugin.js index 8e82ae583..f4eabe09c 100644 --- a/packages/graphile-build-pg/src/plugins/PgMutationProceduresPlugin.js +++ b/packages/graphile-build-pg/src/plugins/PgMutationProceduresPlugin.js @@ -11,7 +11,10 @@ export default (function PgMutationProceduresPlugin(builder) { pgOmit: omit, swallowError, } = build; - const { scope: { isRootMutation }, fieldWithHooks } = context; + const { + scope: { isRootMutation }, + fieldWithHooks, + } = context; if (!isRootMutation) { return fields; } diff --git a/packages/graphile-build-pg/src/plugins/PgMutationUpdateDeletePlugin.js b/packages/graphile-build-pg/src/plugins/PgMutationUpdateDeletePlugin.js index 58f4d151b..9aac47eee 100644 --- a/packages/graphile-build-pg/src/plugins/PgMutationUpdateDeletePlugin.js +++ b/packages/graphile-build-pg/src/plugins/PgMutationUpdateDeletePlugin.js @@ -40,7 +40,10 @@ export default (async function PgMutationUpdateDeletePlugin( pgOmit: omit, pgViaTemporaryTable: viaTemporaryTable, } = build; - const { scope: { isRootMutation }, fieldWithHooks } = context; + const { + scope: { isRootMutation }, + fieldWithHooks, + } = context; const { pluralize, singularize, camelCase } = inflection; if (!isRootMutation) { return fields; diff --git a/packages/graphile-build-pg/src/plugins/PgNodeAliasPostGraphile.js b/packages/graphile-build-pg/src/plugins/PgNodeAliasPostGraphile.js index a2a9f8b48..82a6b5f12 100644 --- a/packages/graphile-build-pg/src/plugins/PgNodeAliasPostGraphile.js +++ b/packages/graphile-build-pg/src/plugins/PgNodeAliasPostGraphile.js @@ -3,7 +3,10 @@ import type { Plugin } from "graphile-build"; export default (async function PgNodeAliasPostGraphile(builder) { builder.hook("GraphQLObjectType", (object, build, context) => { - const { setNodeAlias, inflection: { pluralize } } = build; + const { + setNodeAlias, + inflection: { pluralize }, + } = build; const { scope: { isPgRowType, isPgCompoundType, pgIntrospection: table }, } = context; diff --git a/packages/graphile-build-pg/src/plugins/PgOrderAllColumnsPlugin.js b/packages/graphile-build-pg/src/plugins/PgOrderAllColumnsPlugin.js index 85df302be..e54511c7d 100644 --- a/packages/graphile-build-pg/src/plugins/PgOrderAllColumnsPlugin.js +++ b/packages/graphile-build-pg/src/plugins/PgOrderAllColumnsPlugin.js @@ -10,7 +10,9 @@ export default (function PgOrderAllColumnsPlugin(builder) { inflection, pgOmit: omit, } = build; - const { scope: { isPgRowSortEnum, pgIntrospection: table } } = context; + const { + scope: { isPgRowSortEnum, pgIntrospection: table }, + } = context; if (!isPgRowSortEnum || !table || table.kind !== "class") { return values; } diff --git a/packages/graphile-build-pg/src/plugins/PgOrderByPrimaryKeyPlugin.js b/packages/graphile-build-pg/src/plugins/PgOrderByPrimaryKeyPlugin.js index 76983e7d9..657740955 100644 --- a/packages/graphile-build-pg/src/plugins/PgOrderByPrimaryKeyPlugin.js +++ b/packages/graphile-build-pg/src/plugins/PgOrderByPrimaryKeyPlugin.js @@ -7,7 +7,9 @@ export default (function PgOrderByPrimaryKeyPlugin(builder) { extend, pgIntrospectionResultsByKind: introspectionResultsByKind, } = build; - const { scope: { isPgRowSortEnum, pgIntrospection: table } } = context; + const { + scope: { isPgRowSortEnum, pgIntrospection: table }, + } = context; if (!isPgRowSortEnum || !table || table.kind !== "class") { return values; } diff --git a/packages/graphile-build-pg/src/plugins/PgQueryProceduresPlugin.js b/packages/graphile-build-pg/src/plugins/PgQueryProceduresPlugin.js index 4b45b5ccc..e9fee5b46 100644 --- a/packages/graphile-build-pg/src/plugins/PgQueryProceduresPlugin.js +++ b/packages/graphile-build-pg/src/plugins/PgQueryProceduresPlugin.js @@ -20,7 +20,10 @@ export default (function PgQueryProceduresPlugin( pgMakeProcField: makeProcField, pgOmit: omit, } = build; - const { scope: { isRootQuery }, fieldWithHooks } = context; + const { + scope: { isRootQuery }, + fieldWithHooks, + } = context; if (!isRootQuery) { return fields; } diff --git a/packages/graphile-build-pg/src/plugins/PgRowByUniqueConstraint.js b/packages/graphile-build-pg/src/plugins/PgRowByUniqueConstraint.js index c4e9de7f1..fa4c47368 100644 --- a/packages/graphile-build-pg/src/plugins/PgRowByUniqueConstraint.js +++ b/packages/graphile-build-pg/src/plugins/PgRowByUniqueConstraint.js @@ -18,7 +18,10 @@ export default (async function PgRowByUniqueConstraint(builder) { pgQueryFromResolveData: queryFromResolveData, pgOmit: omit, } = build; - const { scope: { isRootQuery }, fieldWithHooks } = context; + const { + scope: { isRootQuery }, + fieldWithHooks, + } = context; if (!isRootQuery) { return fields; } @@ -114,10 +117,9 @@ export default (async function PgRowByUniqueConstraint(builder) { ); const { text, values } = sql.compile(query); if (debugSql.enabled) debugSql(text); - const { rows: [row] } = await pgClient.query( - text, - values - ); + const { + rows: [row], + } = await pgClient.query(text, values); return row; }, }; diff --git a/packages/graphile-build-pg/src/plugins/PgRowNode.js b/packages/graphile-build-pg/src/plugins/PgRowNode.js index 39edf7e6f..dcdefcb2e 100644 --- a/packages/graphile-build-pg/src/plugins/PgRowNode.js +++ b/packages/graphile-build-pg/src/plugins/PgRowNode.js @@ -15,7 +15,9 @@ export default (async function PgRowNode(builder) { pgQueryFromResolveData: queryFromResolveData, pgOmit: omit, } = build; - const { scope: { isPgRowType, pgIntrospection: table } } = context; + const { + scope: { isPgRowType, pgIntrospection: table }, + } = context; if (!isPgRowType || !table.namespace || omit(table, "read")) { return object; } @@ -68,7 +70,9 @@ export default (async function PgRowNode(builder) { ); const { text, values } = sql.compile(query); if (debugSql.enabled) debugSql(text); - const { rows: [row] } = await pgClient.query(text, values); + const { + rows: [row], + } = await pgClient.query(text, values); return row; } ); @@ -90,7 +94,10 @@ export default (async function PgRowNode(builder) { pgQueryFromResolveData: queryFromResolveData, pgOmit: omit, } = build; - const { scope: { isRootQuery }, fieldWithHooks } = context; + const { + scope: { isRootQuery }, + fieldWithHooks, + } = context; if (!isRootQuery || !nodeIdFieldName) { return fields; } @@ -182,10 +189,9 @@ export default (async function PgRowNode(builder) { ); const { text, values } = sql.compile(query); if (debugSql.enabled) debugSql(text); - const { rows: [row] } = await pgClient.query( - text, - values - ); + const { + rows: [row], + } = await pgClient.query(text, values); return row; } catch (e) { return null; diff --git a/packages/graphile-build-pg/src/plugins/PgTypesPlugin.js b/packages/graphile-build-pg/src/plugins/PgTypesPlugin.js index b0b35a7c3..e0af18e5b 100644 --- a/packages/graphile-build-pg/src/plugins/PgTypesPlugin.js +++ b/packages/graphile-build-pg/src/plugins/PgTypesPlugin.js @@ -355,7 +355,9 @@ export default (function PgTypesPlugin( // pgExtendedTypes might change what types we use for things const JSONType = pgExtendedTypes - ? pgLegacyJsonUuid ? GraphQLJson : GraphQLJSON + ? pgLegacyJsonUuid + ? GraphQLJson + : GraphQLJSON : SimpleJSON; const UUIDType = SimpleUUID; // GraphQLUUID const DateType = SimpleDate; // GraphQLDate diff --git a/packages/graphile-build/__tests__/enum.test.js b/packages/graphile-build/__tests__/enum.test.js index 335aa0fed..f87519080 100644 --- a/packages/graphile-build/__tests__/enum.test.js +++ b/packages/graphile-build/__tests__/enum.test.js @@ -1,38 +1,13 @@ -const { - graphql, - GraphQLObjectType, - GraphQLEnumType, - GraphQLInt, - GraphQLString, - GraphQLNonNull, - GraphQLList, -} = require("graphql"); +const { GraphQLEnumType } = require("graphql"); const { printSchema } = require("graphql/utilities"); -const { buildSchema, defaultPlugins, MutationPlugin } = require("../"); - -const base64 = str => new Buffer(String(str)).toString("base64"); -const base64Decode = str => new Buffer(String(str), "base64").toString("utf8"); - -const dummyData = [ - { ID: "foo", CAPS: "FOO" }, - { ID: "bar", CAPS: "BAR" }, - { ID: "baz", CAPS: "BAZ" }, - { ID: "qux", CAPS: "QUX" }, -]; - -const compare = (a, b, ascending) => { - if (a === b) return 0; - if (ascending) { - return a > b ? 1 : -1; - } else { - return a < b ? 1 : -1; - } -}; +const { buildSchema, defaultPlugins } = require("../"); function EnumPlugin(builder) { builder.hook("GraphQLObjectType:fields", (fields, build, context) => { const { extend, newWithHooks } = build; - const { scope: { isRootQuery } } = context; + const { + scope: { isRootQuery }, + } = context; if (!isRootQuery) { return fields; } @@ -58,7 +33,9 @@ function EnumPlugin(builder) { }); builder.hook("GraphQLEnumType:values", (values, build, context) => { const { extend } = build; - const { scope: { isMyEnum } } = context; + const { + scope: { isMyEnum }, + } = context; if (!isMyEnum) { return values; } @@ -68,7 +45,9 @@ function EnumPlugin(builder) { }); builder.hook("GraphQLEnumType:values:value", (value, build, context) => { const { extend } = build; - const { scope: { isMyEnum } } = context; + const { + scope: { isMyEnum }, + } = context; if (isMyEnum && value.value < 4) { return extend(value, { deprecationReason: "We no longer support numbers smaller than PI", diff --git a/packages/graphile-build/__tests__/fieldData.test.js b/packages/graphile-build/__tests__/fieldData.test.js index 5ce915c2f..8b4c19e5e 100644 --- a/packages/graphile-build/__tests__/fieldData.test.js +++ b/packages/graphile-build/__tests__/fieldData.test.js @@ -39,7 +39,10 @@ const DummyConnectionPlugin = async builder => { resolveAlias, getSafeAliasFromAlias, } = build; - const { scope: { isRootQuery }, fieldWithHooks } = context; + const { + scope: { isRootQuery }, + fieldWithHooks, + } = context; if (!isRootQuery) return fields; const Cursor = getTypeByName("Cursor"); const Dummy = newWithHooks( @@ -59,7 +62,11 @@ const DummyConnectionPlugin = async builder => { }); addDataGeneratorForField("random", ({ alias }) => { return { - map: () => ({ [getSafeAliasFromAlias(alias)]: Math.floor(Math.random() * 10000) }), + map: () => ({ + [getSafeAliasFromAlias(alias)]: Math.floor( + Math.random() * 10000 + ), + }), }; }); return { @@ -309,6 +316,7 @@ test("no arguments", async () => { ` ); if (result.errors) { + // eslint-disable-next-line no-console console.log(result.errors.map(e => e.originalError)); } expect(result.errors).toBeFalsy(); @@ -347,6 +355,7 @@ test("sort", async () => { ` ); if (result.errors) { + // eslint-disable-next-line no-console console.log(result.errors.map(e => e.originalError)); } expect(result.errors).toBeFalsy(); @@ -419,6 +428,7 @@ test("sort, after", async () => { ` ); if (result.errors) { + // eslint-disable-next-line no-console console.log(result.errors.map(e => e.originalError)); } expect(result.errors).toBeFalsy(); diff --git a/packages/graphile-build/__tests__/watch.test.js b/packages/graphile-build/__tests__/watch.test.js index af384740c..a143be56f 100644 --- a/packages/graphile-build/__tests__/watch.test.js +++ b/packages/graphile-build/__tests__/watch.test.js @@ -1,11 +1,8 @@ const { graphql, GraphQLObjectType, - GraphQLEnumType, GraphQLInt, - GraphQLString, GraphQLNonNull, - GraphQLList, } = require("graphql"); const { printSchema } = require("graphql/utilities"); const { @@ -42,20 +39,17 @@ const makePluginEtc = (defaultCounter = 0) => { }); }); builder.hook("GraphQLObjectType:fields", (fields, build, context) => { + const { dummyCounter, extend, newWithHooks } = build; const { - dummyCounter, - extend, - getTypeByName, - newWithHooks, - parseResolveInfo, - } = build; - const { scope: { isRootQuery }, fieldWithHooks } = context; + scope: { isRootQuery }, + fieldWithHooks, + } = context; if (!isRootQuery) return fields; const Dummy = newWithHooks( GraphQLObjectType, { name: `Dummy${dummyCounter}`, - fields: ({ addDataGeneratorForField }) => { + fields: () => { return { n: { type: new GraphQLNonNull(GraphQLInt), @@ -69,7 +63,7 @@ const makePluginEtc = (defaultCounter = 0) => { return extend(fields, { dummy: fieldWithHooks( "dummy", - ({ addArgDataGenerator, getDataFromParsedResolveInfoFragment }) => { + () => { return { type: Dummy, resolve() { @@ -90,8 +84,6 @@ const makePluginEtc = (defaultCounter = 0) => { counter = n; }, }; - - return DummyWatchPlugin; }; test("generated schema n = 0, n = 3", async () => { @@ -162,6 +154,7 @@ test("schema is updated when rebuild triggered", async () => { ` ); if (result.errors) { + // eslint-disable-next-line no-console console.log(result.errors.map(e => e.originalError)); } expect(result.errors).toBeFalsy(); diff --git a/packages/graphile-build/package.json b/packages/graphile-build/package.json index 2fd56ca16..cb47c1926 100644 --- a/packages/graphile-build/package.json +++ b/packages/graphile-build/package.json @@ -30,6 +30,7 @@ "debug": ">=2 <3", "graphql-parse-resolve-info": "4.0.0-rc.3", "lodash": ">=4 <5", + "lru-cache": ">=4 <5", "pluralize": "7.0.0" }, "engines": { diff --git a/packages/graphile-build/src/plugins/ClientMutationIdDescriptionPlugin.js b/packages/graphile-build/src/plugins/ClientMutationIdDescriptionPlugin.js index 37fc9e296..bc8694e0d 100644 --- a/packages/graphile-build/src/plugins/ClientMutationIdDescriptionPlugin.js +++ b/packages/graphile-build/src/plugins/ClientMutationIdDescriptionPlugin.js @@ -8,7 +8,10 @@ export default (function ClientMutationIdDescriptionPlugin( "GraphQLInputObjectType:fields:field", (field: { name?: string }, build, context) => { const { extend } = build; - const { scope: { isMutationInput, fieldName }, Self } = context; + const { + scope: { isMutationInput, fieldName }, + Self, + } = context; if ( !isMutationInput || fieldName !== "clientMutationId" || @@ -31,7 +34,10 @@ export default (function ClientMutationIdDescriptionPlugin( "GraphQLObjectType:fields:field", (field: { name?: string }, build, context) => { const { extend } = build; - const { scope: { isMutationPayload, fieldName }, Self } = context; + const { + scope: { isMutationPayload, fieldName }, + Self, + } = context; if ( !isMutationPayload || fieldName !== "clientMutationId" || @@ -54,7 +60,11 @@ export default (function ClientMutationIdDescriptionPlugin( "GraphQLObjectType:fields:field:args", (args: {}, build, context) => { const { extend } = build; - const { scope: { isRootMutation }, Self, field } = context; + const { + scope: { isRootMutation }, + Self, + field, + } = context; if (!isRootMutation || !args.input || args.input.description) { return args; } diff --git a/packages/graphile-build/src/plugins/MutationPayloadQueryPlugin.js b/packages/graphile-build/src/plugins/MutationPayloadQueryPlugin.js index 3081b8de3..a33a15144 100644 --- a/packages/graphile-build/src/plugins/MutationPayloadQueryPlugin.js +++ b/packages/graphile-build/src/plugins/MutationPayloadQueryPlugin.js @@ -11,7 +11,10 @@ export default (function MutationPayloadQueryPlugin(builder) { context ): {} => { const { $$isQuery, extend, getTypeByName } = build; - const { scope: { isMutationPayload }, Self } = context; + const { + scope: { isMutationPayload }, + Self, + } = context; if (!isMutationPayload) { return fields; } diff --git a/packages/graphile-build/src/plugins/MutationPlugin.js b/packages/graphile-build/src/plugins/MutationPlugin.js index f464af1af..ac0eaae67 100644 --- a/packages/graphile-build/src/plugins/MutationPlugin.js +++ b/packages/graphile-build/src/plugins/MutationPlugin.js @@ -17,7 +17,11 @@ function isValidMutation(Mutation) { export default (async function MutationPlugin(builder) { builder.hook("GraphQLSchema", (schema: {}, build) => { - const { newWithHooks, extend, graphql: { GraphQLObjectType } } = build; + const { + newWithHooks, + extend, + graphql: { GraphQLObjectType }, + } = build; const Mutation = newWithHooks( GraphQLObjectType, { diff --git a/packages/graphile-build/src/plugins/NodePlugin.js b/packages/graphile-build/src/plugins/NodePlugin.js index f82d2e807..a3ec50af8 100644 --- a/packages/graphile-build/src/plugins/NodePlugin.js +++ b/packages/graphile-build/src/plugins/NodePlugin.js @@ -43,44 +43,47 @@ export default (function NodePlugin( const nodeIdFieldName: string = inNodeIdFieldName ? String(inNodeIdFieldName) : "id"; - builder.hook("build", (build: Build): Build & BuildExtensionNode => { - const nodeFetcherByTypeName = {}; - const nodeAliasByTypeName = {}; - const nodeTypeNameByAlias = {}; - return build.extend( - build, - { - nodeIdFieldName, - $$nodeType: Symbol("nodeType"), - nodeFetcherByTypeName, - getNodeIdForTypeAndIdentifiers(Type, ...identifiers) { - return base64( - JSON.stringify([this.getNodeAlias(Type), ...identifiers]) - ); - }, - addNodeFetcherForTypeName(typeName, fetcher) { - if (nodeFetcherByTypeName[typeName]) { - throw new Error("There's already a fetcher for this type"); - } - if (!fetcher) { - throw new Error("No fetcher specified"); - } - nodeFetcherByTypeName[typeName] = fetcher; - }, - getNodeAlias(typeName) { - return nodeAliasByTypeName[typeName] || typeName; - }, - getNodeType(alias) { - return this.getTypeByName(nodeTypeNameByAlias[alias] || alias); - }, - setNodeAlias(typeName, alias) { - nodeAliasByTypeName[typeName] = alias; - nodeTypeNameByAlias[alias] = typeName; + builder.hook( + "build", + (build: Build): Build & BuildExtensionNode => { + const nodeFetcherByTypeName = {}; + const nodeAliasByTypeName = {}; + const nodeTypeNameByAlias = {}; + return build.extend( + build, + { + nodeIdFieldName, + $$nodeType: Symbol("nodeType"), + nodeFetcherByTypeName, + getNodeIdForTypeAndIdentifiers(Type, ...identifiers) { + return base64( + JSON.stringify([this.getNodeAlias(Type), ...identifiers]) + ); + }, + addNodeFetcherForTypeName(typeName, fetcher) { + if (nodeFetcherByTypeName[typeName]) { + throw new Error("There's already a fetcher for this type"); + } + if (!fetcher) { + throw new Error("No fetcher specified"); + } + nodeFetcherByTypeName[typeName] = fetcher; + }, + getNodeAlias(typeName) { + return nodeAliasByTypeName[typeName] || typeName; + }, + getNodeType(alias) { + return this.getTypeByName(nodeTypeNameByAlias[alias] || alias); + }, + setNodeAlias(typeName, alias) { + nodeAliasByTypeName[typeName] = alias; + nodeTypeNameByAlias[alias] = typeName; + }, }, - }, - `Adding 'Node' interface support to the Build` - ); - }); + `Adding 'Node' interface support to the Build` + ); + } + ); builder.hook("init", function defineNodeInterfaceType( _: {}, @@ -129,7 +132,9 @@ export default (function NodePlugin( context ) { const { getTypeByName } = build; - const { scope: { isRootQuery } } = context; + const { + scope: { isRootQuery }, + } = context; if (!isRootQuery) { return interfaces; } @@ -148,7 +153,10 @@ export default (function NodePlugin( build: {| ...Build, ...BuildExtensionQuery, ...BuildExtensionNode |}, context: {| ...Context, ...ContextGraphQLObjectTypeFields |} ) => { - const { scope: { isRootQuery }, fieldWithHooks } = context; + const { + scope: { isRootQuery }, + fieldWithHooks, + } = context; if (!isRootQuery) { return fields; } diff --git a/packages/graphile-build/src/plugins/QueryPlugin.js b/packages/graphile-build/src/plugins/QueryPlugin.js index ba235f111..35fd3979a 100644 --- a/packages/graphile-build/src/plugins/QueryPlugin.js +++ b/packages/graphile-build/src/plugins/QueryPlugin.js @@ -6,14 +6,16 @@ export type BuildExtensionQuery = {| |}; export default (async function QueryPlugin(builder) { - builder.hook("build", (build: Build): Build & BuildExtensionQuery => - build.extend( - build, - { - $$isQuery: Symbol("isQuery"), - }, - `Extending Build` - ) + builder.hook( + "build", + (build: Build): Build & BuildExtensionQuery => + build.extend( + build, + { + $$isQuery: Symbol("isQuery"), + }, + `Extending Build` + ) ); builder.hook("GraphQLSchema", (schema: {}, build) => { const { diff --git a/packages/graphile-build/src/plugins/StandardTypesPlugin.js b/packages/graphile-build/src/plugins/StandardTypesPlugin.js index 4ed3ad262..47874d806 100644 --- a/packages/graphile-build/src/plugins/StandardTypesPlugin.js +++ b/packages/graphile-build/src/plugins/StandardTypesPlugin.js @@ -4,28 +4,31 @@ import { Kind } from "graphql/language"; export default (function StandardTypesPlugin(builder) { // XXX: this should be in an "init" plugin, but PgTypesPlugin requires it in build - fix that, then fix this - builder.hook("build", (build: Build): Build => { - const stringType = (name, description) => - new build.graphql.GraphQLScalarType({ - name, - description, - serialize: value => String(value), - parseValue: value => String(value), - parseLiteral: ast => { - if (ast.kind !== Kind.STRING) { - throw new Error("Can only parse string values"); - } - return ast.value; - }, - }); + builder.hook( + "build", + (build: Build): Build => { + const stringType = (name, description) => + new build.graphql.GraphQLScalarType({ + name, + description, + serialize: value => String(value), + parseValue: value => String(value), + parseLiteral: ast => { + if (ast.kind !== Kind.STRING) { + throw new Error("Can only parse string values"); + } + return ast.value; + }, + }); - const Cursor = stringType( - "Cursor", - "A location in a connection that can be used for resuming pagination." - ); - build.addType(Cursor); - return build; - }); + const Cursor = stringType( + "Cursor", + "A location in a connection that can be used for resuming pagination." + ); + build.addType(Cursor); + return build; + } + ); builder.hook("init", (_: {}, build) => { const { newWithHooks, diff --git a/packages/graphile-build/src/plugins/SubscriptionPlugin.js b/packages/graphile-build/src/plugins/SubscriptionPlugin.js index 837361937..63e358b56 100644 --- a/packages/graphile-build/src/plugins/SubscriptionPlugin.js +++ b/packages/graphile-build/src/plugins/SubscriptionPlugin.js @@ -17,7 +17,11 @@ function isValidSubscription(Subscription) { export default (async function SubscriptionPlugin(builder) { builder.hook("GraphQLSchema", (schema: {}, build) => { - const { newWithHooks, extend, graphql: { GraphQLObjectType } } = build; + const { + newWithHooks, + extend, + graphql: { GraphQLObjectType }, + } = build; const Subscription = newWithHooks( GraphQLObjectType, { diff --git a/packages/graphile-utils/__tests__/ExtendSchemaPlugin-pg.test.js b/packages/graphile-utils/__tests__/ExtendSchemaPlugin-pg.test.js index 48bac890e..d5f43c726 100644 --- a/packages/graphile-utils/__tests__/ExtendSchemaPlugin-pg.test.js +++ b/packages/graphile-utils/__tests__/ExtendSchemaPlugin-pg.test.js @@ -55,7 +55,13 @@ it("allows adding a custom single field to PG schema", async () => { `, resolvers: { Query: { - async randomUser(_query, args, context, resolveInfo, { selectGraphQLResultFromTable }) { + async randomUser( + _query, + args, + context, + resolveInfo, + { selectGraphQLResultFromTable } + ) { const rows = await selectGraphQLResultFromTable( sql.fragment`a.users`, (tableAlias, sqlBuilder) => { @@ -208,7 +214,9 @@ it("allows adding a simple mutation field to PG schema", async () => { const { pgClient } = context; await pgClient.query("begin"); try { - const { rows: [user] } = await pgClient.query( + const { + rows: [user], + } = await pgClient.query( `insert into a.users(name, email, bio) values ($1, $2, $3) returning *`, [args.input.name, args.input.email, args.input.bio] ); diff --git a/packages/graphile-utils/__tests__/ExtendSchemaPlugin.test.js b/packages/graphile-utils/__tests__/ExtendSchemaPlugin.test.js index 51604e1fd..1543df8c1 100644 --- a/packages/graphile-utils/__tests__/ExtendSchemaPlugin.test.js +++ b/packages/graphile-utils/__tests__/ExtendSchemaPlugin.test.js @@ -129,7 +129,7 @@ const resolvers = { stopIterator(); return Promise.resolve({ value: undefined, done: true }); }, - throw(e) { + throw(error) { stopIterator(); return Promise.reject(error); }, diff --git a/packages/graphile-utils/src/makeExtendSchemaPlugin.js b/packages/graphile-utils/src/makeExtendSchemaPlugin.js index cd7e87be0..e0c93af36 100644 --- a/packages/graphile-utils/src/makeExtendSchemaPlugin.js +++ b/packages/graphile-utils/src/makeExtendSchemaPlugin.js @@ -5,7 +5,9 @@ export default function makeExtendSchemaPlugin( return builder => { // Add stuff to the schema builder.hook("build", build => { - const { graphql: { GraphQLInputObjectType, GraphQLObjectType } } = build; + const { + graphql: { GraphQLInputObjectType, GraphQLObjectType }, + } = build; const { typeDefs, resolvers = {} } = generator(build); if (!typeDefs || !typeDefs.kind === "Document") { throw new Error( diff --git a/packages/graphql-parse-resolve-info/__tests__/test.test.js b/packages/graphql-parse-resolve-info/__tests__/test.test.js index 5bbd7fb0f..39be3358b 100644 --- a/packages/graphql-parse-resolve-info/__tests__/test.test.js +++ b/packages/graphql-parse-resolve-info/__tests__/test.test.js @@ -11,7 +11,6 @@ const { GraphQLList, GraphQLScalarType, GraphQLSchema, - parse, } = require("graphql"); const { Kind } = require("graphql/language"); @@ -225,7 +224,12 @@ test("basic", async () => { }, variables ).then(d => { - console.log(d); + try { + const { errors } = d; + expect(errors).toBeFalsy(); + } catch (e) { + return reject(e); + } if (o) { resolve(o); } else { @@ -255,7 +259,12 @@ test("directives", async () => { }, variables ).then(d => { - console.log(d); + try { + const { errors } = d; + expect(errors).toBeFalsy(); + } catch (e) { + return reject(e); + } if (o) { resolve(o); } else { diff --git a/packages/postgraphile-core/__tests__/helpers.js b/packages/postgraphile-core/__tests__/helpers.js index 8d8d67c89..910afbeaf 100644 --- a/packages/postgraphile-core/__tests__/helpers.js +++ b/packages/postgraphile-core/__tests__/helpers.js @@ -32,6 +32,7 @@ const withPgClient = async (url, fn) => { try { await client.release(); } catch (e) { + // eslint-disable-next-line no-console console.error("Error releasing pgClient", e); } await pgPool.end(); diff --git a/packages/postgraphile-core/__tests__/integration/mutations.test.js b/packages/postgraphile-core/__tests__/integration/mutations.test.js index 49105d02e..80f36ab9f 100644 --- a/packages/postgraphile-core/__tests__/integration/mutations.test.js +++ b/packages/postgraphile-core/__tests__/integration/mutations.test.js @@ -3,8 +3,6 @@ const { readdirSync, readFile: rawReadFile } = require("fs"); const { graphql } = require("graphql"); const { withPgClient } = require("../helpers"); const { createPostGraphileSchema } = require("../.."); -const { printSchema } = require("graphql/utilities"); -const debug = require("debug")("graphile-build:schema"); function readFile(filename, encoding) { return new Promise((resolve, reject) => { @@ -39,7 +37,7 @@ beforeAll(() => { createPostGraphileSchema(pgClient, ["d"]), ]); // Now for RBAC-enabled tests - await pgClient.query("set role postgraphile_test_authenticator") + await pgClient.query("set role postgraphile_test_authenticator"); const [rbacSchema] = await Promise.all([ createPostGraphileSchema(pgClient, ["a", "b", "c"], {}), ]); @@ -47,7 +45,7 @@ beforeAll(() => { gqlSchema, dSchema, rbacSchema, - } + }; }); // Execute all of the mutations in parallel. We will not wait for them to @@ -58,7 +56,7 @@ beforeAll(() => { mutationResults = mutationFileNames.map(async fileName => { // Wait for the schema to resolve. We need the schema to be introspected // before we can do anything else! - let {gqlSchema, dSchema, rbacSchema} = await gqlSchemaPromise; + let { gqlSchema, dSchema, rbacSchema } = await gqlSchemaPromise; // Get a new Postgres client and run the mutation. return await withPgClient(async pgClient => { // Read the mutation from the file system. @@ -70,11 +68,13 @@ beforeAll(() => { // Add data to the client instance we are using. await pgClient.query(await kitchenSinkData()); - let schemaToUse + let schemaToUse; if (fileName.startsWith("d.")) { schemaToUse = dSchema; } else if (fileName.startsWith("rbac.")) { - await pgClient.query("select set_config('role', 'postgraphile_test_visitor', true), set_config('jwt.claims.user_id', '3', true)"); + await pgClient.query( + "select set_config('role', 'postgraphile_test_visitor', true), set_config('jwt.claims.user_id', '3', true)" + ); schemaToUse = rbacSchema; } else { schemaToUse = gqlSchema; @@ -85,6 +85,7 @@ beforeAll(() => { pgClient: pgClient, }); if (result.errors) { + // eslint-disable-next-line no-console console.log(result.errors.map(e => e.originalError)); } return result; diff --git a/packages/postgraphile-core/__tests__/integration/queries-jwt.test.js b/packages/postgraphile-core/__tests__/integration/queries-jwt.test.js index 53550699f..177e2ee3d 100644 --- a/packages/postgraphile-core/__tests__/integration/queries-jwt.test.js +++ b/packages/postgraphile-core/__tests__/integration/queries-jwt.test.js @@ -1,8 +1,7 @@ const { graphql } = require("graphql"); const { withPgClient } = require("../helpers"); const { createPostGraphileSchema } = require("../.."); -const { readdirSync, readFile: rawReadFile } = require("fs"); -const { resolve: resolvePath } = require("path"); +const { readFile: rawReadFile } = require("fs"); const { printSchema } = require("graphql/utilities"); const debug = require("debug")("graphile-build:schema"); const jwt = require("jsonwebtoken"); @@ -16,8 +15,6 @@ function readFile(filename, encoding) { }); } -const queriesDir = `${__dirname}/../fixtures/queries`; -const queryFileNames = readdirSync(queriesDir); let queryResults = []; const kitchenSinkData = () => @@ -26,12 +23,6 @@ const kitchenSinkData = () => const jwtSecret = "This is static for the tests, use a better one if you set one!"; -const loginMutation = `mutation { - authenticate(input: {a: 1, b: 2, c: 3}) { - jwtToken - } - }`; - const tests = [ { name: "jwt normal", @@ -56,7 +47,11 @@ const tests = [ } }`, schema: "withJwt", - process: ({ data: { authenticate: { jwtToken: str } } }) => { + process: ({ + data: { + authenticate: { jwtToken: str }, + }, + }) => { return Object.assign(jwt.verify(str, jwtSecret), { iat: "[timestamp]", }); @@ -83,10 +78,14 @@ const tests = [ } }`, schema: "withJwt", - process: ({ data: { authenticatePayload: { authPayload } } }) => { + process: ({ + data: { + authenticatePayload: { authPayload }, + }, + }) => { const { jwt: str } = authPayload; return Object.assign({}, authPayload, { - jwt: Object.assign(jwt.verify(authPayload.jwt, jwtSecret), { + jwt: Object.assign(jwt.verify(str, jwtSecret), { iat: "[timestamp]", }), }); @@ -135,6 +134,7 @@ beforeAll(() => { pgClient: pgClient, }); if (result.errors && result.errors.length) { + // eslint-disable-next-line no-console console.log(result.errors.map(e => e.originalError || e)); } return result; diff --git a/packages/postgraphile-core/__tests__/integration/queries.test.js b/packages/postgraphile-core/__tests__/integration/queries.test.js index 3c0ee23b1..9b5c63ff9 100644 --- a/packages/postgraphile-core/__tests__/integration/queries.test.js +++ b/packages/postgraphile-core/__tests__/integration/queries.test.js @@ -131,7 +131,9 @@ beforeAll(() => { await pgClient.query("savepoint test"); if (gqlSchema === gqlSchemas.rbac) { - await pgClient.query("select set_config('role', 'postgraphile_test_visitor', true), set_config('jwt.claims.user_id', '3', true)"); + await pgClient.query( + "select set_config('role', 'postgraphile_test_visitor', true), set_config('jwt.claims.user_id', '3', true)" + ); } try { @@ -140,13 +142,14 @@ beforeAll(() => { pgClient: pgClient, }); if (result.errors) { + // eslint-disable-next-line no-console console.log(result.errors.map(e => e.originalError)); } return result; } finally { await pgClient.query("rollback to savepoint test"); } - } + }; results.push(await process(filename)); } return results; diff --git a/packages/postgraphile-core/__tests__/integration/schema/omit-rename.omitcolumns.test.js b/packages/postgraphile-core/__tests__/integration/schema/omit-rename.omitcolumns.test.js index 992b15b4c..a71596d2d 100644 --- a/packages/postgraphile-core/__tests__/integration/schema/omit-rename.omitcolumns.test.js +++ b/packages/postgraphile-core/__tests__/integration/schema/omit-rename.omitcolumns.test.js @@ -1,26 +1,68 @@ const core = require("./core"); -test("omit create on column", core.test(["d"], {}, ` +test( + "omit create on column", + core.test( + ["d"], + {}, + ` comment on column d.tv_shows.title is E'@omit create'; -`)); +` + ) +); -test("omit update on column", core.test(["d"], {}, ` +test( + "omit update on column", + core.test( + ["d"], + {}, + ` comment on column d.tv_shows.title is E'@omit update'; -`)); +` + ) +); -test("omit read on column", core.test(["d"], {}, ` +test( + "omit read on column", + core.test( + ["d"], + {}, + ` comment on column d.tv_shows.title is E'@omit read,create,update,delete,all,many'; -`)); +` + ) +); -test("omit on column", core.test(["d"], {}, ` +test( + "omit on column", + core.test( + ["d"], + {}, + ` comment on column d.tv_shows.title is E'@omit *'; comment on column d.tv_episodes.title is E'@omit'; -`)); +` + ) +); -test("omit order on column", core.test(["d"], {}, ` +test( + "omit order on column", + core.test( + ["d"], + {}, + ` comment on column d.tv_episodes.title is E'@omit order'; -`)); +` + ) +); -test("omit execute on computed column", core.test(["d"], {}, ` +test( + "omit execute on computed column", + core.test( + ["d"], + {}, + ` comment on function d.person_full_name(d.person) is E'@omit execute'; -`)); +` + ) +); diff --git a/packages/postgraphile-core/__tests__/integration/schema/omit-rename.omitstuff.test.js b/packages/postgraphile-core/__tests__/integration/schema/omit-rename.omitstuff.test.js index 545771726..46dfdf535 100644 --- a/packages/postgraphile-core/__tests__/integration/schema/omit-rename.omitstuff.test.js +++ b/packages/postgraphile-core/__tests__/integration/schema/omit-rename.omitstuff.test.js @@ -1,32 +1,80 @@ const core = require("./core"); -test("omit create, update and delete on table", core.test(["d"], {}, ` +test( + "omit create, update and delete on table", + core.test( + ["d"], + {}, + ` comment on table d.films is E'@omit create,update,delete'; -`)); +` + ) +); -test("omit create on table", core.test(["d"], {}, ` +test( + "omit create on table", + core.test( + ["d"], + {}, + ` comment on table d.films is E'@omit create'; -`)); +` + ) +); -test("omit update on table", core.test(["d"], {}, ` +test( + "omit update on table", + core.test( + ["d"], + {}, + ` comment on table d.films is E'@omit update'; -`)); +` + ) +); -test("omit delete on table", core.test(["d"], {}, ` +test( + "omit delete on table", + core.test( + ["d"], + {}, + ` comment on table d.films is E'@omit delete'; -`)); +` + ) +); -test("omit read on table", core.test(["d"], {}, ` +test( + "omit read on table", + core.test( + ["d"], + {}, + ` comment on table d.films is E'@omit read,all,update,create,delete,many'; -`)); +` + ) +); - -test("omit and omit many on table", core.test(["d"], {}, ` +test( + "omit and omit many on table", + core.test( + ["d"], + {}, + ` comment on table d.films is E'@omit *'; comment on table d.tv_shows is E'@omit'; comment on table d.tv_episodes is E'@omit many'; -`)); +` + ) +); -test("omit order on table", core.test(["d"], {}, ` +test( + "omit order on table", + core.test( + ["d"], + {}, + ` comment on table d.tv_shows is E'@omit order'; -`)); +` + ) +); diff --git a/packages/postgraphile-core/__tests__/integration/schema/rbac.test.js b/packages/postgraphile-core/__tests__/integration/schema/rbac.test.js index e44c0ace9..dd0fd810e 100644 --- a/packages/postgraphile-core/__tests__/integration/schema/rbac.test.js +++ b/packages/postgraphile-core/__tests__/integration/schema/rbac.test.js @@ -1,5 +1,4 @@ const core = require("./core"); -const fs = require("fs"); test( "prints a schema from non-root role, using RBAC permissions", diff --git a/yarn.lock b/yarn.lock index e85f669cb..530b142d0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -55,8 +55,8 @@ to-fast-properties "^2.0.0" JSONStream@^1.0.4: - version "1.3.2" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.2.tgz#c102371b6ec3a7cf3b847ca00c20bb0fce4c6dea" + version "1.3.3" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.3.tgz#27b4b8fbbfeab4e71bcf551e7f27be8d952239bf" dependencies: jsonparse "^1.2.0" through ">=2.2.7 <3" @@ -89,10 +89,6 @@ acorn@^4.0.4: version "4.0.13" resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" -acorn@^5.4.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.4.1.tgz#fdc58d9d17f4a4e98d102ded826a9b9759125102" - acorn@^5.5.0: version "5.5.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9" @@ -138,12 +134,8 @@ ansi-escapes@^1.4.0: resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" ansi-escapes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92" - -ansi-regex@^0.2.0, ansi-regex@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9" + version "3.1.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30" ansi-regex@^2.0.0, ansi-regex@^2.1.1: version "2.1.1" @@ -153,20 +145,22 @@ ansi-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" -ansi-styles@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de" - ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" -ansi-styles@^3.0.0, ansi-styles@^3.2.0: +ansi-styles@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88" dependencies: color-convert "^1.9.0" +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + dependencies: + color-convert "^1.9.0" + anymatch@^1.3.0: version "1.3.2" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" @@ -192,8 +186,8 @@ aproba@^1.0.3: resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" are-we-there-yet@~1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" dependencies: delegates "^1.0.0" readable-stream "^2.0.6" @@ -662,8 +656,8 @@ babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015 babel-template "^6.24.1" babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a" + version "6.26.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" dependencies: babel-plugin-transform-strict-mode "^6.24.1" babel-runtime "^6.26.0" @@ -788,8 +782,8 @@ babel-polyfill@^6.26.0: regenerator-runtime "^0.10.5" babel-preset-env@^1.6.0: - version "1.6.1" - resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.1.tgz#a18b564cc9b9afdf4aae57ae3c1b0d99188e6f48" + version "1.7.0" + resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" dependencies: babel-plugin-check-es2015-constants "^6.22.0" babel-plugin-syntax-trailing-function-commas "^6.22.0" @@ -818,7 +812,7 @@ babel-preset-env@^1.6.0: babel-plugin-transform-es2015-unicode-regex "^6.22.0" babel-plugin-transform-exponentiation-operator "^6.22.0" babel-plugin-transform-regenerator "^6.22.0" - browserslist "^2.1.2" + browserslist "^3.2.6" invariant "^2.2.2" semver "^5.3.0" @@ -935,10 +929,6 @@ balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" -base64url@2.0.0, base64url@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/base64url/-/base64url-2.0.0.tgz#eac16e03ea1438eff9423d69baa36262ed1f70bb" - base@^0.11.1: version "0.11.2" resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" @@ -1010,12 +1000,12 @@ browser-resolve@^1.11.2: dependencies: resolve "1.1.7" -browserslist@^2.1.2: - version "2.11.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.11.1.tgz#02fda29d9a2164b879100126e7b0d0b57e43a7bb" +browserslist@^3.2.6: + version "3.2.8" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" dependencies: - caniuse-lite "^1.0.30000789" - electron-to-chromium "^1.3.30" + caniuse-lite "^1.0.30000844" + electron-to-chromium "^1.3.47" bser@1.0.2: version "1.0.2" @@ -1033,6 +1023,10 @@ buffer-equal-constant-time@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" +buffer-from@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.0.tgz#87fcaa3a298358e0ade6e442cfce840740d1ad04" + buffer-writer@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-1.0.1.tgz#22a936901e3029afcd7547eb4487ceb697a3bf08" @@ -1080,6 +1074,14 @@ camelcase-keys@^2.0.0: camelcase "^2.0.0" map-obj "^1.0.0" +camelcase-keys@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" + dependencies: + camelcase "^4.1.0" + map-obj "^2.0.0" + quick-lru "^1.0.0" + camelcase@^1.0.2: version "1.2.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" @@ -1096,9 +1098,9 @@ camelcase@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" -caniuse-lite@^1.0.30000789: - version "1.0.30000791" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000791.tgz#8e35745efd483a3e23bb7d350990326d2319fc16" +caniuse-lite@^1.0.30000844: + version "1.0.30000865" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000865.tgz#70026616e8afe6e1442f8bb4e1092987d81a2f25" capture-stack-trace@^1.0.0: version "1.0.0" @@ -1115,16 +1117,6 @@ center-align@^0.1.1: align-text "^0.1.3" lazy-cache "^1.0.3" -chalk@0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174" - dependencies: - ansi-styles "^1.1.0" - escape-string-regexp "^1.0.0" - has-ansi "^0.1.0" - strip-ansi "^0.3.0" - supports-color "^0.2.0" - chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" @@ -1135,13 +1127,13 @@ chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.1.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.1.tgz#523fe2678aec7b04e8041909292fe8b17059b796" +chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" dependencies: - ansi-styles "^3.2.0" + ansi-styles "^3.2.1" escape-string-regexp "^1.0.5" - supports-color "^5.2.0" + supports-color "^5.3.0" chardet@^0.4.0: version "0.4.2" @@ -1181,8 +1173,8 @@ chokidar@^2.0.0: fsevents "^1.0.0" ci-info@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.2.tgz#03561259db48d0474c8bdc90f5b47b068b6bbfb4" + version "1.1.3" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.3.tgz#710193264bb05c77b8c90d02f5aaf22216a667b2" circular-json@^0.3.1: version "0.3.3" @@ -1232,8 +1224,8 @@ cliui@^4.0.0: wrap-ansi "^2.0.0" clone@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.3.tgz#298d7e2231660f40c003c2ed3140decf3f53085f" + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" cmd-shim@^2.0.2: version "2.0.2" @@ -1258,14 +1250,14 @@ collection-visit@^1.0.0: object-visit "^1.0.0" color-convert@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" + version "1.9.2" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.2.tgz#49881b8fba67df12a96bdf3f56c0aab9e7913147" dependencies: - color-name "^1.1.1" + color-name "1.1.1" -color-name@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" +color-name@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689" columnify@^1.5.4: version "1.5.4" @@ -1308,21 +1300,23 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" concat-stream@^1.4.10, concat-stream@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" dependencies: + buffer-from "^1.0.0" inherits "^2.0.3" readable-stream "^2.2.2" typedarray "^0.0.6" concurrently@^3.5.0: - version "3.5.1" - resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-3.5.1.tgz#ee8b60018bbe86b02df13e5249453c6ececd2521" + version "3.6.0" + resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-3.6.0.tgz#c25e34b156a9d5bd4f256a0d85f6192438ae481f" dependencies: - chalk "0.5.1" + chalk "^2.4.1" commander "2.6.0" date-fns "^1.23.0" lodash "^4.5.1" + read-pkg "^3.0.0" rx "2.3.24" spawn-command "^0.0.2-1" supports-color "^3.2.3" @@ -1336,70 +1330,70 @@ content-type-parser@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/content-type-parser/-/content-type-parser-1.0.1.tgz#c3e56988c53c65127fb46d4032a3a900246fdc94" -conventional-changelog-angular@^1.6.4: - version "1.6.4" - resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-1.6.4.tgz#47debaf92b75b0bd6b39fcba8f9c70dd97552be6" +conventional-changelog-angular@^1.6.6: + version "1.6.6" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-1.6.6.tgz#b27f2b315c16d0a1f23eb181309d0e6a4698ea0f" dependencies: compare-func "^1.3.1" - q "^1.4.1" + q "^1.5.1" -conventional-changelog-atom@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-0.2.2.tgz#2c7326a8f24686f51500a290ed897d47612be4c3" +conventional-changelog-atom@^0.2.8: + version "0.2.8" + resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-0.2.8.tgz#8037693455990e3256f297320a45fa47ee553a14" dependencies: - q "^1.4.1" + q "^1.5.1" conventional-changelog-cli@^1.3.13: - version "1.3.13" - resolved "https://registry.yarnpkg.com/conventional-changelog-cli/-/conventional-changelog-cli-1.3.13.tgz#8cb5855bc3c684aa8f5dc96e848d1fa5a82eee1e" + version "1.3.22" + resolved "https://registry.yarnpkg.com/conventional-changelog-cli/-/conventional-changelog-cli-1.3.22.tgz#13570fe1728f56f013ff7a88878ff49d5162a405" dependencies: add-stream "^1.0.0" - conventional-changelog "^1.1.15" - lodash "^4.1.0" - meow "^3.7.0" + conventional-changelog "^1.1.24" + lodash "^4.2.1" + meow "^4.0.0" tempfile "^1.1.1" -conventional-changelog-codemirror@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.3.2.tgz#65ef0ab738c40bdf953951edfdb0cb17302606aa" +conventional-changelog-codemirror@^0.3.8: + version "0.3.8" + resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.3.8.tgz#a1982c8291f4ee4d6f2f62817c6b2ecd2c4b7b47" dependencies: - q "^1.4.1" + q "^1.5.1" -conventional-changelog-core@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-2.0.3.tgz#30797b91d5f510188288d5ff54905e5cf4628e3c" +conventional-changelog-core@^2.0.11: + version "2.0.11" + resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-2.0.11.tgz#19b5fbd55a9697773ed6661f4e32030ed7e30287" dependencies: - conventional-changelog-writer "^3.0.2" - conventional-commits-parser "^2.1.3" - dateformat "^1.0.12" + conventional-changelog-writer "^3.0.9" + conventional-commits-parser "^2.1.7" + dateformat "^3.0.0" get-pkg-repo "^1.0.0" - git-raw-commits "^1.3.2" + git-raw-commits "^1.3.6" git-remote-origin-url "^2.0.0" - git-semver-tags "^1.3.2" - lodash "^4.0.0" + git-semver-tags "^1.3.6" + lodash "^4.2.1" normalize-package-data "^2.3.5" - q "^1.4.1" + q "^1.5.1" read-pkg "^1.1.0" read-pkg-up "^1.0.1" through2 "^2.0.0" -conventional-changelog-ember@^0.3.4: - version "0.3.4" - resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-0.3.4.tgz#76240e769b2f5298e78e85cb4eda69ef2f1358d2" +conventional-changelog-ember@^0.3.12: + version "0.3.12" + resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-0.3.12.tgz#b7d31851756d0fcb49b031dffeb6afa93b202400" dependencies: - q "^1.4.1" + q "^1.5.1" -conventional-changelog-eslint@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-1.0.2.tgz#3f9e6b0b60f98042f6f4dfc85a611a50b5e79cf9" +conventional-changelog-eslint@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-1.0.9.tgz#b13cc7e4b472c819450ede031ff1a75c0e3d07d3" dependencies: - q "^1.4.1" + q "^1.5.1" -conventional-changelog-express@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-0.3.2.tgz#f5af4770a31f147986db548b49f9952fc55e3eb6" +conventional-changelog-express@^0.3.6: + version "0.3.6" + resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-0.3.6.tgz#4a6295cb11785059fb09202180d0e59c358b9c2c" dependencies: - q "^1.4.1" + q "^1.5.1" conventional-changelog-jquery@^0.1.0: version "0.1.0" @@ -1413,63 +1407,63 @@ conventional-changelog-jscs@^0.1.0: dependencies: q "^1.4.1" -conventional-changelog-jshint@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-0.3.2.tgz#4d45d2601c944687abceabbc1789323719234cbe" +conventional-changelog-jshint@^0.3.8: + version "0.3.8" + resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-0.3.8.tgz#9051c1ac0767abaf62a31f74d2fe8790e8acc6c8" dependencies: compare-func "^1.3.1" - q "^1.4.1" + q "^1.5.1" -conventional-changelog-preset-loader@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-1.1.4.tgz#5096165f2742a18dc0e33ff2ab9ee08dc9d77f08" +conventional-changelog-preset-loader@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-1.1.8.tgz#40bb0f142cd27d16839ec6c74ee8db418099b373" -conventional-changelog-writer@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-3.0.2.tgz#f3f934028379c0cab90aecfcaf009bf8a187ef14" +conventional-changelog-writer@^3.0.9: + version "3.0.9" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-3.0.9.tgz#4aecdfef33ff2a53bb0cf3b8071ce21f0e994634" dependencies: compare-func "^1.3.1" - conventional-commits-filter "^1.1.3" - dateformat "^1.0.11" + conventional-commits-filter "^1.1.6" + dateformat "^3.0.0" handlebars "^4.0.2" json-stringify-safe "^5.0.1" - lodash "^4.0.0" - meow "^3.3.0" - semver "^5.0.1" + lodash "^4.2.1" + meow "^4.0.0" + semver "^5.5.0" split "^1.0.0" through2 "^2.0.0" -conventional-changelog@^1.1.15: - version "1.1.15" - resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-1.1.15.tgz#a5c3d281efb40f61c7d21eeffb19e6f6a8429df0" - dependencies: - conventional-changelog-angular "^1.6.4" - conventional-changelog-atom "^0.2.2" - conventional-changelog-codemirror "^0.3.2" - conventional-changelog-core "^2.0.3" - conventional-changelog-ember "^0.3.4" - conventional-changelog-eslint "^1.0.2" - conventional-changelog-express "^0.3.2" +conventional-changelog@^1.1.24: + version "1.1.24" + resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-1.1.24.tgz#3d94c29c960f5261c002678315b756cdd3d7d1f0" + dependencies: + conventional-changelog-angular "^1.6.6" + conventional-changelog-atom "^0.2.8" + conventional-changelog-codemirror "^0.3.8" + conventional-changelog-core "^2.0.11" + conventional-changelog-ember "^0.3.12" + conventional-changelog-eslint "^1.0.9" + conventional-changelog-express "^0.3.6" conventional-changelog-jquery "^0.1.0" conventional-changelog-jscs "^0.1.0" - conventional-changelog-jshint "^0.3.2" - conventional-changelog-preset-loader "^1.1.4" + conventional-changelog-jshint "^0.3.8" + conventional-changelog-preset-loader "^1.1.8" -conventional-commits-filter@^1.1.1, conventional-commits-filter@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-1.1.3.tgz#5bf591bc4882fc8c9bd329e5a83ca1fa8721d9fb" +conventional-commits-filter@^1.1.1, conventional-commits-filter@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-1.1.6.tgz#4389cd8e58fe89750c0b5fb58f1d7f0cc8ad3831" dependencies: is-subset "^0.1.1" modify-values "^1.0.0" -conventional-commits-parser@^2.1.1, conventional-commits-parser@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-2.1.3.tgz#fbbfcfe4901ccbae63bb3834f982325e0b7c663f" +conventional-commits-parser@^2.1.1, conventional-commits-parser@^2.1.7: + version "2.1.7" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-2.1.7.tgz#eca45ed6140d72ba9722ee4132674d639e644e8e" dependencies: JSONStream "^1.0.4" is-text-path "^1.0.0" lodash "^4.2.1" - meow "^3.3.0" + meow "^4.0.0" split2 "^2.0.0" through2 "^2.0.0" trim-off-newlines "^1.0.0" @@ -1498,7 +1492,11 @@ copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" -core-js@^2.4.0, core-js@^2.5.0: +core-js@^2.4.0: + version "2.5.7" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" + +core-js@^2.5.0: version "2.5.3" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.3.tgz#8acc38345824f16d8365b7c9b4259168e8ed603e" @@ -1565,12 +1563,9 @@ date-fns@^1.23.0: version "1.29.0" resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.29.0.tgz#12e609cdcb935127311d04d33334e2960a2a54e6" -dateformat@^1.0.11, dateformat@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9" - dependencies: - get-stdin "^4.0.1" - meow "^3.3.0" +dateformat@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" "debug@>=2 <3", debug@^2.1.1, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8: version "2.6.9" @@ -1590,7 +1585,14 @@ debug@^3.0.1, debug@^3.1.0: dependencies: ms "2.0.0" -decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: +decamelize-keys@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" + dependencies: + decamelize "^1.1.0" + map-obj "^1.0.0" + +decamelize@^1.0.0, decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -1602,6 +1604,10 @@ dedent@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + deep-extend@~0.4.0: version "0.4.2" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" @@ -1698,22 +1704,15 @@ ecc-jsbn@~0.1.1: dependencies: jsbn "~0.1.0" -ecdsa-sig-formatter@1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.9.tgz#4bc926274ec3b5abb5016e7e1d60921ac262b2a1" +ecdsa-sig-formatter@1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz#1c595000f04a8897dfb85000892a0f4c33af86c3" dependencies: - base64url "^2.0.0" safe-buffer "^5.0.1" -electron-releases@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/electron-releases/-/electron-releases-2.1.0.tgz#c5614bf811f176ce3c836e368a0625782341fd4e" - -electron-to-chromium@^1.3.30: - version "1.3.30" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.30.tgz#9666f532a64586651fc56a72513692e820d06a80" - dependencies: - electron-releases "^2.1.0" +electron-to-chromium@^1.3.47: + version "1.3.52" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.52.tgz#d2d9f1270ba4a3b967b831c40ef71fb4d9ab5ce0" errno@^0.1.4: version "0.1.4" @@ -1722,12 +1721,12 @@ errno@^0.1.4: prr "~0.0.0" error-ex@^1.2.0, error-ex@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" dependencies: is-arrayish "^0.2.1" -escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -1749,10 +1748,10 @@ eslint-config-prettier@^2.3.0: get-stdin "^5.0.1" eslint-plugin-flowtype@^2.35.0: - version "2.44.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.44.0.tgz#c0610d0018801e1fbe1eaec1c2174de1338ab4ee" + version "2.50.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.50.0.tgz#953e262fa9b5d0fa76e178604892cf60dfb916da" dependencies: - lodash "^4.15.0" + lodash "^4.17.10" eslint-plugin-graphql@2.1.1: version "2.1.1" @@ -1766,13 +1765,20 @@ eslint-plugin-jest@^20.0.3: resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-20.0.3.tgz#ec15eba6ac0ab44a67ebf6e02672ca9d7e7cba29" eslint-plugin-prettier@^2.1.2: - version "2.6.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.6.0.tgz#33e4e228bdb06142d03c560ce04ec23f6c767dd7" + version "2.6.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.6.2.tgz#71998c60aedfa2141f7bfcbf9d1c459bf98b4fad" dependencies: fast-diff "^1.1.1" jest-docblock "^21.0.0" -eslint-scope@^3.7.1, eslint-scope@~3.7.1: +eslint-scope@^3.7.1: + version "3.7.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.3.tgz#bb507200d3d17f60247636160b4826284b108535" + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-scope@~3.7.1: version "3.7.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" dependencies: @@ -1783,49 +1789,7 @@ eslint-visitor-keys@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" -eslint@^4.0.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.17.0.tgz#dc24bb51ede48df629be7031c71d9dc0ee4f3ddf" - dependencies: - ajv "^5.3.0" - babel-code-frame "^6.22.0" - chalk "^2.1.0" - concat-stream "^1.6.0" - cross-spawn "^5.1.0" - debug "^3.1.0" - doctrine "^2.1.0" - eslint-scope "^3.7.1" - eslint-visitor-keys "^1.0.0" - espree "^3.5.2" - esquery "^1.0.0" - esutils "^2.0.2" - file-entry-cache "^2.0.0" - functional-red-black-tree "^1.0.1" - glob "^7.1.2" - globals "^11.0.1" - ignore "^3.3.3" - imurmurhash "^0.1.4" - inquirer "^3.0.6" - is-resolvable "^1.0.0" - js-yaml "^3.9.1" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.4" - minimatch "^3.0.2" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - optionator "^0.8.2" - path-is-inside "^1.0.2" - pluralize "^7.0.0" - progress "^2.0.0" - require-uncached "^1.0.3" - semver "^5.3.0" - strip-ansi "^4.0.0" - strip-json-comments "~2.0.1" - table "^4.0.1" - text-table "~0.2.0" - -eslint@^4.19.1: +eslint@^4.0.0, eslint@^4.19.1: version "4.19.1" resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300" dependencies: @@ -1879,13 +1843,6 @@ eslint_d@5.3.1: resolve "^1.1.7" supports-color "^3.1.2" -espree@^3.5.2: - version "3.5.3" - resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.3.tgz#931e0af64e7fbbed26b050a29daad1fc64799fa6" - dependencies: - acorn "^5.4.0" - acorn-jsx "^3.0.0" - espree@^3.5.4: version "3.5.4" resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" @@ -1898,21 +1855,20 @@ esprima@^2.7.1: resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" esprima@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" esquery@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" + version "1.0.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" dependencies: estraverse "^4.0.0" esrecurse@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" + version "4.2.1" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" dependencies: estraverse "^4.1.0" - object-assign "^4.0.1" estraverse@^1.9.1: version "1.9.3" @@ -1998,8 +1954,8 @@ extend@~3.0.0: resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" external-editor@^2.0.4: - version "2.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.1.0.tgz#3d026a21b7f95b5726387d4200ac160d372c3b48" + version "2.2.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" dependencies: chardet "^0.4.0" iconv-lite "^0.4.17" @@ -2033,8 +1989,8 @@ extsprintf@^1.2.0: resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" fast-deep-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" + version "1.1.0" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" fast-diff@^1.1.1: version "1.1.2" @@ -2233,8 +2189,8 @@ gauge@~2.7.3: wide-align "^1.1.0" get-caller-file@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" + version "1.0.3" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" get-pkg-repo@^1.0.0: version "1.4.0" @@ -2272,13 +2228,13 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -git-raw-commits@^1.3.0, git-raw-commits@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-1.3.2.tgz#0766c14d33566ba0094869697e13b0eb06147c07" +git-raw-commits@^1.3.0, git-raw-commits@^1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-1.3.6.tgz#27c35a32a67777c1ecd412a239a6c19d71b95aff" dependencies: dargs "^4.0.1" lodash.template "^4.0.2" - meow "^3.3.0" + meow "^4.0.0" split2 "^2.0.0" through2 "^2.0.0" @@ -2289,12 +2245,12 @@ git-remote-origin-url@^2.0.0: gitconfiglocal "^1.0.0" pify "^2.3.0" -git-semver-tags@^1.3.0, git-semver-tags@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-1.3.2.tgz#94afa43c9070ae527a3ab86b978e59ae207803cc" +git-semver-tags@^1.3.0, git-semver-tags@^1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-1.3.6.tgz#357ea01f7280794fe0927f2806bee6414d2caba5" dependencies: - meow "^3.3.0" - semver "^5.0.1" + meow "^4.0.0" + semver "^5.5.0" gitconfiglocal@^1.0.0: version "1.0.0" @@ -2334,8 +2290,8 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: path-is-absolute "^1.0.0" globals@^11.0.1: - version "11.3.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.3.0.tgz#e04fdb7b9796d8adac9c8f64c14837b2313378b0" + version "11.7.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.7.0.tgz#a583faa43055b1aca771914bf68258e2fc125673" globals@^11.1.0: version "11.1.0" @@ -2413,10 +2369,10 @@ graphql-request@^1.5.0: cross-fetch "2.0.0" "graphql@>=0.9 <0.14": - version "0.13.1" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-0.13.1.tgz#9b3db3d8e40d1827e4172404bfdd2e4e17a58b55" + version "0.13.2" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-0.13.2.tgz#4c740ae3c222823e7004096f832e7b93b2108270" dependencies: - iterall "^1.2.0" + iterall "^1.2.1" growly@^1.3.0: version "1.3.0" @@ -2453,12 +2409,6 @@ har-validator@~4.2.1: ajv "^4.9.1" har-schema "^1.0.5" -has-ansi@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e" - dependencies: - ansi-regex "^0.2.0" - has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" @@ -2525,8 +2475,8 @@ home-or-tmp@^2.0.0: os-tmpdir "^1.0.1" hosted-git-info@^2.1.4, hosted-git-info@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" + version "2.7.1" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" html-encoding-sniffer@^1.0.1: version "1.0.1" @@ -2547,12 +2497,14 @@ iconv-lite@0.4.13: resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2" iconv-lite@^0.4.17: - version "0.4.19" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" + version "0.4.23" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" + dependencies: + safer-buffer ">= 2.1.2 < 3" ignore@^3.3.3: - version "3.3.7" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021" + version "3.3.10" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" imurmurhash@^0.1.4: version "0.1.4" @@ -2564,6 +2516,10 @@ indent-string@^2.1.0: dependencies: repeating "^2.0.0" +indent-string@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" + inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -2598,12 +2554,18 @@ inquirer@^3.0.6, inquirer@^3.2.2: strip-ansi "^4.0.0" through "^2.3.6" -invariant@^2.2.0, invariant@^2.2.2: +invariant@^2.2.0: version "2.2.2" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" dependencies: loose-envify "^1.0.0" +invariant@^2.2.2: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + dependencies: + loose-envify "^1.0.0" + invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" @@ -2763,8 +2725,8 @@ is-path-cwd@^1.0.0: resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" is-path-in-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" dependencies: is-path-inside "^1.0.0" @@ -2774,7 +2736,7 @@ is-path-inside@^1.0.0: dependencies: path-is-inside "^1.0.1" -is-plain-obj@^1.0.0: +is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" @@ -2915,9 +2877,9 @@ istanbul-reports@^1.1.1: dependencies: handlebars "^4.0.3" -iterall@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.2.1.tgz#59a347ae8001d2d4bc546b8487ca755d61849965" +iterall@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.2.2.tgz#92d70deb8028e0c39ff3164fdbf4d8b088130cd7" jest-changed-files@^20.0.3: version "20.0.3" @@ -3134,15 +3096,15 @@ jest@^20.0.4: dependencies: jest-cli "^20.0.4" -js-string-escape@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef" - js-tokens@^3.0.0, js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" -js-yaml@^3.10.0: +"js-tokens@^3.0.0 || ^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + +js-yaml@^3.10.0, js-yaml@^3.9.1: version "3.12.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" dependencies: @@ -3156,13 +3118,6 @@ js-yaml@^3.7.0: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@^3.9.1: - version "3.10.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" @@ -3200,8 +3155,8 @@ jsesc@~0.5.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" json-parse-better-errors@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz#50183cd1b2d25275de069e9e71b467ac9eab973a" + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" json-schema-traverse@^0.3.0: version "0.3.1" @@ -3244,10 +3199,10 @@ jsonparse@^1.2.0: resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" jsonwebtoken@^8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.1.1.tgz#b04d8bb2ad847bc93238c3c92170ffdbdd1cb2ea" + version "8.3.0" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.3.0.tgz#056c90eee9a65ed6e6c72ddb0a1d325109aaf643" dependencies: - jws "^3.1.4" + jws "^3.1.5" lodash.includes "^4.3.0" lodash.isboolean "^3.0.3" lodash.isinteger "^4.0.4" @@ -3256,7 +3211,6 @@ jsonwebtoken@^8.1.1: lodash.isstring "^4.0.1" lodash.once "^4.0.0" ms "^2.1.1" - xtend "^4.0.1" jsprim@^1.2.2: version "1.4.1" @@ -3267,21 +3221,19 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" -jwa@^1.1.4: - version "1.1.5" - resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.1.5.tgz#a0552ce0220742cd52e153774a32905c30e756e5" +jwa@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.1.6.tgz#87240e76c9808dbde18783cf2264ef4929ee50e6" dependencies: - base64url "2.0.0" buffer-equal-constant-time "1.0.1" - ecdsa-sig-formatter "1.0.9" + ecdsa-sig-formatter "1.0.10" safe-buffer "^5.0.1" -jws@^3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/jws/-/jws-3.1.4.tgz#f9e8b9338e8a847277d6444b1464f61880e050a2" +jws@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/jws/-/jws-3.1.5.tgz#80d12d05b293d1e841e7cb8b4e69e561adcf834f" dependencies: - base64url "^2.0.0" - jwa "^1.1.4" + jwa "^1.1.5" safe-buffer "^5.0.1" kefir@^3.7.3: @@ -3327,8 +3279,8 @@ lcid@^1.0.0: invert-kv "^1.0.0" lerna@^2.0.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/lerna/-/lerna-2.9.0.tgz#303f70bc50b1c4541bdcf54eda13c36fe54401f3" + version "2.11.0" + resolved "https://registry.yarnpkg.com/lerna/-/lerna-2.11.0.tgz#89b5681e286d388dda5bbbdbbf6b84c8094eff65" dependencies: async "^1.5.0" chalk "^2.1.0" @@ -3473,23 +3425,23 @@ lodash.templatesettings@^4.0.0: dependencies: lodash._reinterpolate "~3.0.0" -"lodash@>=4 <5", lodash@^4.0.0, lodash@^4.1.0, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.5.1: - version "4.17.5" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" - -lodash@^4.11.1: +"lodash@>=4 <5", lodash@^4.11.1, lodash@^4.17.10, lodash@^4.17.4, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.5.1: version "4.17.10" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" +lodash@^4.14.0, lodash@^4.2.0: + version "4.17.5" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" + longest@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" loose-envify@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" dependencies: - js-tokens "^3.0.0" + js-tokens "^3.0.0 || ^4.0.0" loud-rejection@^1.0.0: version "1.6.0" @@ -3499,19 +3451,19 @@ loud-rejection@^1.0.0: signal-exit "^3.0.0" lowercase-keys@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" -lru-cache@4.1.1, lru-cache@^4.0.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" +"lru-cache@>=4 <5", lru-cache@^4.0.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c" dependencies: pseudomap "^1.0.2" yallist "^2.1.2" make-dir@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.1.0.tgz#19b4369fe48c116f53c2af95ad102c0e39e85d51" + version "1.3.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" dependencies: pify "^3.0.0" @@ -3529,6 +3481,10 @@ map-obj@^1.0.0, map-obj@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" +map-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" + map-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" @@ -3541,7 +3497,7 @@ mem@^1.1.0: dependencies: mimic-fn "^1.0.0" -meow@^3.3.0, meow@^3.7.0: +meow@^3.3.0: version "3.7.0" resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" dependencies: @@ -3556,6 +3512,20 @@ meow@^3.3.0, meow@^3.7.0: redent "^1.0.0" trim-newlines "^1.0.0" +meow@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/meow/-/meow-4.0.1.tgz#d48598f6f4b1472f35bf6317a95945ace347f975" + dependencies: + camelcase-keys "^4.0.0" + decamelize-keys "^1.0.0" + loud-rejection "^1.0.0" + minimist "^1.1.3" + minimist-options "^3.0.1" + normalize-package-data "^2.3.4" + read-pkg-up "^3.0.0" + redent "^2.0.0" + trim-newlines "^2.0.0" + merge@^1.1.3: version "1.2.0" resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da" @@ -3616,6 +3586,13 @@ minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" +minimist-options@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" @@ -3646,12 +3623,12 @@ mixin-deep@^1.2.0: minimist "0.0.8" modify-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.0.tgz#e2b6cdeb9ce19f99317a53722f3dbf5df5eaaab2" + version "1.0.1" + resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" moment@^2.6.0: - version "2.20.1" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.20.1.tgz#d6eb1a46cbcc14a2b2f9434112c1ff8907f313fd" + version "2.22.2" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.22.2.tgz#3c257f9839fc0e93ff53149632239eb90783ff66" ms@2.0.0: version "2.0.0" @@ -3878,8 +3855,8 @@ p-finally@^1.0.0: resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" p-limit@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c" + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" dependencies: p-try "^1.0.0" @@ -4022,11 +3999,10 @@ pg-types@~1.12.1: postgres-interval "^1.1.0" "pg@>=6.1.0 <8": - version "7.4.1" - resolved "https://registry.yarnpkg.com/pg/-/pg-7.4.1.tgz#f3411c8ddf9f692322fe05e7017a1888e47f78f1" + version "7.4.3" + resolved "https://registry.yarnpkg.com/pg/-/pg-7.4.3.tgz#f7b6f93f5340ecc2596afbb94a13e3d6b609834b" dependencies: buffer-writer "1.0.1" - js-string-escape "1.0.1" packet-reader "0.3.1" pg-connection-string "0.1.3" pg-pool "~2.0.3" @@ -4078,12 +4054,18 @@ postgres-date@~1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.3.tgz#e2d89702efdb258ff9d9cee0fe91bd06975257a8" -postgres-interval@1.1.1, postgres-interval@^1.1.0: +postgres-interval@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.1.1.tgz#acdb0f897b4b1c6e496d9d4e0a853e1c428f06f0" dependencies: xtend "^4.0.0" +postgres-interval@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.1.2.tgz#bf71ff902635f21cb241a013fc421d81d1db15a9" + dependencies: + xtend "^4.0.0" + prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" @@ -4097,8 +4079,8 @@ preserve@^0.2.0: resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" prettier@^1.4.4: - version "1.10.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.10.2.tgz#1af8356d1842276a99a5b5529c82dd9e9ad3cc93" + version "1.13.7" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.13.7.tgz#850f3b8af784a49a6ea2d2eaa7ed1428a34b7281" pretty-format@^20.0.3: version "20.0.3" @@ -4131,7 +4113,7 @@ punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" -q@^1.4.1: +q@^1.4.1, q@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" @@ -4139,6 +4121,10 @@ qs@~6.4.0: version "6.4.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" +quick-lru@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" + randomatic@^1.1.3: version "1.1.7" resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" @@ -4146,7 +4132,16 @@ randomatic@^1.1.3: is-number "^3.0.0" kind-of "^4.0.0" -rc@^1.0.1, rc@^1.1.6, rc@^1.1.7: +rc@^1.0.1, rc@^1.1.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +rc@^1.1.7: version "1.2.5" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.5.tgz#275cd687f6e3b36cc756baa26dfee80a790301fd" dependencies: @@ -4175,6 +4170,13 @@ read-pkg-up@^2.0.0: find-up "^2.0.0" read-pkg "^2.0.0" +read-pkg-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + dependencies: + find-up "^2.0.0" + read-pkg "^3.0.0" + read-pkg@^1.0.0, read-pkg@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" @@ -4199,7 +4201,7 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" -readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2: +readable-stream@^2.0.2, readable-stream@^2.1.4: version "2.3.4" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.4.tgz#c946c3f47fa7d8eabc0b6150f4a12f69a4574071" dependencies: @@ -4211,6 +4213,18 @@ readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4, readable string_decoder "~1.0.3" util-deprecate "~1.0.1" +readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2: + version "2.3.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + readdirp@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" @@ -4227,9 +4241,16 @@ redent@^1.0.0: indent-string "^2.1.0" strip-indent "^1.0.1" +redent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" + dependencies: + indent-string "^3.0.0" + strip-indent "^2.0.0" + regenerate@^1.2.1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f" + version "1.4.0" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" regenerator-runtime@^0.10.5: version "0.10.5" @@ -4418,8 +4439,12 @@ rx@2.3.24: resolved "https://registry.yarnpkg.com/rx/-/rx-2.3.24.tgz#14f950a4217d7e35daa71bbcbe58eff68ea4b2b7" safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" sane@~1.6.0: version "1.6.0" @@ -4437,7 +4462,7 @@ sax@^1.2.1: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" -"semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1: +"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" @@ -4588,19 +4613,27 @@ spawn-command@^0.0.2-1: version "0.0.2-1" resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" -spdx-correct@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" +spdx-correct@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" dependencies: - spdx-license-ids "^1.0.2" + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" -spdx-expression-parse@~1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" +spdx-exceptions@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9" -spdx-license-ids@^1.0.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" +spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87" split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" @@ -4659,7 +4692,7 @@ string-width@^1.0.1, string-width@^1.0.2: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: +"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" dependencies: @@ -4672,16 +4705,16 @@ string_decoder@~1.0.3: dependencies: safe-buffer "~5.1.0" +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + dependencies: + safe-buffer "~5.1.0" + stringstream@~0.0.4: version "0.0.5" resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" -strip-ansi@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.3.0.tgz#25f48ea22ca79187f3174a4db8759347bb126220" - dependencies: - ansi-regex "^0.2.1" - strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" @@ -4714,6 +4747,10 @@ strip-indent@^1.0.1: dependencies: get-stdin "^4.0.1" +strip-indent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" + strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" @@ -4728,10 +4765,6 @@ strong-log-transformer@^1.0.6: moment "^2.6.0" through "^2.3.4" -supports-color@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a" - supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" @@ -4742,9 +4775,9 @@ supports-color@^3.1.2, supports-color@^3.2.3: dependencies: has-flag "^1.0.0" -supports-color@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.2.0.tgz#b0d5333b1184dd3666cbe5aa0b45c5ac7ac17a4a" +supports-color@^5.3.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" dependencies: has-flag "^3.0.0" @@ -4756,7 +4789,7 @@ symbol-tree@^3.2.1: version "3.2.2" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" -table@4.0.2, table@^4.0.1: +table@4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" dependencies: @@ -4910,6 +4943,10 @@ trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" +trim-newlines@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" + trim-off-newlines@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" @@ -4965,8 +5002,8 @@ union-value@^1.0.0: set-value "^0.4.3" universalify@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" unset-value@^1.0.0: version "1.0.0" @@ -5018,10 +5055,14 @@ uuid@^2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" -uuid@^3.0.0, uuid@^3.0.1: +uuid@^3.0.0: version "3.2.1" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" +uuid@^3.0.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + v8flags@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" @@ -5029,11 +5070,11 @@ v8flags@^2.1.1: user-home "^1.1.1" validate-npm-package-license@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" + version "3.0.3" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338" dependencies: - spdx-correct "~1.0.0" - spdx-expression-parse "~1.0.0" + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" verror@1.10.0: version "1.10.0" @@ -5092,17 +5133,23 @@ which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" -which@^1.2.12, which@^1.2.9: +which@^1.2.12: version "1.3.0" resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" dependencies: isexe "^2.0.0" +which@^1.2.9: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + dependencies: + isexe "^2.0.0" + wide-align@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" dependencies: - string-width "^1.0.2" + string-width "^1.0.2 || 2" window-size@0.1.0: version "0.1.0" @@ -5158,8 +5205,8 @@ write-json-file@^2.2.0: write-file-atomic "^2.0.0" write-pkg@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/write-pkg/-/write-pkg-3.1.0.tgz#030a9994cc9993d25b4e75a9f1a1923607291ce9" + version "3.2.0" + resolved "https://registry.yarnpkg.com/write-pkg/-/write-pkg-3.2.0.tgz#0e178fe97820d389a8928bc79535dbe68c2cff21" dependencies: sort-keys "^2.0.0" write-json-file "^2.2.0"