diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml new file mode 100644 index 0000000..3efdb90 --- /dev/null +++ b/.github/workflows/test.yaml @@ -0,0 +1,19 @@ +name: CI +on: push +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: ireznik/postgis-action@master + with: + postgresql version: "12-master" + postgresql password: "123" + postgresql user: "postgres" + postgresql db: "test" + - uses: actions/checkout@v2 + - name: Install modules + run: yarn + - name: Run tests + run: yarn test + env: + TEST_DATABASE_URL: "postgres://postgres:123@localhost:5432/test" diff --git a/README.md b/README.md index b7cd2ee..2df52ad 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ [![Package on npm](https://img.shields.io/npm/v/postgraphile-plugin-connection-filter-postgis.svg)](https://www.npmjs.com/package/postgraphile-plugin-connection-filter-postgis) [![CircleCI](https://circleci.com/gh/graphile-contrib/postgraphile-plugin-connection-filter-postgis.svg?style=svg)](https://circleci.com/gh/graphile-contrib/postgraphile-plugin-connection-filter-postgis) # postgraphile-plugin-connection-filter-postgis + This plugin exposes additional PostGIS-related fields on the `filter` argument of Connections. ## Usage @@ -12,37 +13,38 @@ Requires `postgraphile@^4.5.0` and the following plugins appended prior to this ## Operators -| PostGIS function | Types | GraphQL field name | -| --- | --- | --- | -| ST_3DIntersects | geometry | intersects3D | -| ST_Contains | geometry | contains | -| ST_ContainsProperly | geometry | containsProperly | -| ST_CoveredBy | geometry, geography | coveredBy | -| ST_Covers | geometry, geography | covers | -| ST_Crosses | geometry | crosses | -| ST_Disjoint | geometry | disjoint | -| ST_Equals | geometry | equals | -| ST_Intersects | geometry, geography | intersects | -| ST_OrderingEquals | geometry | orderingEquals | -| ST_Overlaps | geometry | overlaps | -| ST_Touches | geometry | touches | -| ST_Within | geometry | within | - -| PostGIS operator | Types | GraphQL field name | -| --- | --- | --- | -| = | geometry, geography | exactlyEquals | -| && | geometry, geography | bboxIntersects2D | -| &&& | geometry | bboxIntersectsND | -| &< | geometry | bboxOverlapsOrLeftOf | -| &<\| | geometry | bboxOverlapsOrBelow | -| &> | geometry | bboxOverlapsOrRightOf | -| \|&> | geometry | bboxOverlapsOrAbove | -| << | geometry | bboxLeftOf | -| <<\| | geometry | bboxBelow | -| >> | geometry | bboxRightOf | -| \|>> | geometry | bboxAbove | -| ~ | geometry | bboxContains | -| ~= | geometry | bboxEquals | +| PostGIS function | Types | GraphQL field name | +| ------------------- | ------------------- | ------------------ | +| ST_3DIntersects | geometry | intersects3D | +| ST_Contains | geometry | contains | +| ST_ContainsProperly | geometry | containsProperly | +| ST_CoveredBy | geometry, geography | coveredBy | +| ST_Covers | geometry, geography | covers | +| ST_Crosses | geometry | crosses | +| ST_Disjoint | geometry | disjoint | +| ST_Equals | geometry | equals | +| ST_Intersects | geometry, geography | intersects | +| ST_OrderingEquals | geometry | orderingEquals | +| ST_Overlaps | geometry | overlaps | +| ST_Touches | geometry | touches | +| ST_Within | geometry | within | +| ST_DWithin | + +| PostGIS operator | Types | GraphQL field name | +| ---------------- | ------------------- | ---------------------- | +| = | geometry, geography | exactlyEquals | +| && | geometry, geography | bboxIntersects2D | +| &&& | geometry | bboxIntersectsND | +| &< | geometry | bboxOverlapsOrLeftOf | +| &<\| | geometry | bboxOverlapsOrBelow | +| &> | geometry | bboxOverlapsOrRightOf | +| \|&> | geometry | bboxOverlapsOrAbove | +| << | geometry | bboxLeftOf | +| <<\| | geometry | bboxBelow | +| >> | geometry | bboxRightOf | +| \|>> | geometry | bboxAbove | +| ~ | geometry | bboxContains | +| ~= | geometry | bboxEquals | ## Development diff --git a/__tests__/fixtures/queries/geography.graphql b/__tests__/fixtures/queries/geography.graphql index 21eaac8..ee2dbbb 100644 --- a/__tests__/fixtures/queries/geography.graphql +++ b/__tests__/fixtures/queries/geography.graphql @@ -7,6 +7,7 @@ query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { intersects: $point exactlyEquals: $point bboxIntersects2D: $point + dwithin: $point } geogGeometry: { coveredBy: $point @@ -14,6 +15,7 @@ query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { intersects: $point exactlyEquals: $point bboxIntersects2D: $point + dwithin: $point } geogPoint: { coveredBy: $point @@ -21,6 +23,7 @@ query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { intersects: $point exactlyEquals: $point bboxIntersects2D: $point + dwithin: $point } geogLinestr: { coveredBy: $point @@ -28,6 +31,7 @@ query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { intersects: $point exactlyEquals: $point bboxIntersects2D: $point + dwithin: $point } geogPoly: { coveredBy: $point @@ -35,6 +39,7 @@ query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { intersects: $point exactlyEquals: $point bboxIntersects2D: $point + dwithin: $point } geogMultipoint: { coveredBy: $point @@ -42,6 +47,7 @@ query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { intersects: $point exactlyEquals: $point bboxIntersects2D: $point + dwithin: $point } geogMultilinestr: { coveredBy: $point @@ -49,6 +55,7 @@ query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { intersects: $point exactlyEquals: $point bboxIntersects2D: $point + dwithin: $point } geogMultipoly: { coveredBy: $point @@ -56,6 +63,7 @@ query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { intersects: $point exactlyEquals: $point bboxIntersects2D: $point + dwithin: $point } geogGeometrycollection: { coveredBy: $point @@ -63,6 +71,7 @@ query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { intersects: $point exactlyEquals: $point bboxIntersects2D: $point + dwithin: $point } geogGeometrym: { coveredBy: $point @@ -70,6 +79,7 @@ query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { intersects: $point exactlyEquals: $point bboxIntersects2D: $point + dwithin: $point } geogPointm: { coveredBy: $point @@ -77,6 +87,7 @@ query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { intersects: $point exactlyEquals: $point bboxIntersects2D: $point + dwithin: $point } geogLinestrm: { coveredBy: $point @@ -84,6 +95,7 @@ query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { intersects: $point exactlyEquals: $point bboxIntersects2D: $point + dwithin: $point } geogPolym: { coveredBy: $point @@ -91,6 +103,7 @@ query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { intersects: $point exactlyEquals: $point bboxIntersects2D: $point + dwithin: $point } geogMultipointm: { coveredBy: $point @@ -98,6 +111,7 @@ query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { intersects: $point exactlyEquals: $point bboxIntersects2D: $point + dwithin: $point } geogMultilinestrm: { coveredBy: $point @@ -105,6 +119,7 @@ query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { intersects: $point exactlyEquals: $point bboxIntersects2D: $point + dwithin: $point } geogMultipolym: { coveredBy: $point @@ -112,6 +127,7 @@ query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { intersects: $point exactlyEquals: $point bboxIntersects2D: $point + dwithin: $point } geogGeometrycollectionm: { coveredBy: $point @@ -119,6 +135,7 @@ query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { intersects: $point exactlyEquals: $point bboxIntersects2D: $point + dwithin: $point } } ) { diff --git a/__tests__/fixtures/queries/geometry.graphql b/__tests__/fixtures/queries/geometry.graphql index 50757d2..cd4bd8e 100644 --- a/__tests__/fixtures/queries/geometry.graphql +++ b/__tests__/fixtures/queries/geometry.graphql @@ -1,4 +1,4 @@ -query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { +query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }, $radius: Float = 250 ) { allGisDebugs( filter: { geom: { @@ -28,6 +28,7 @@ query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { bboxAbove: $point bboxContains: $point bboxEquals: $point + dwithin: $point, $radius } geomGeometry: { intersects3D: $point @@ -56,6 +57,7 @@ query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { bboxAbove: $point bboxContains: $point bboxEquals: $point + dwithin: $point, $radius } geomPoint: { intersects3D: $point @@ -84,6 +86,7 @@ query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { bboxAbove: $point bboxContains: $point bboxEquals: $point + dwithin: $point, $radius } geomLinestr: { intersects3D: $point @@ -112,6 +115,7 @@ query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { bboxAbove: $point bboxContains: $point bboxEquals: $point + dwithin: $point, $radius } geomPoly: { intersects3D: $point @@ -140,6 +144,7 @@ query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { bboxAbove: $point bboxContains: $point bboxEquals: $point + dwithin: $point, $radius } geomMultipoint: { intersects3D: $point @@ -168,6 +173,7 @@ query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { bboxAbove: $point bboxContains: $point bboxEquals: $point + dwithin: $point, $radius } geomMultilinestr: { intersects3D: $point @@ -196,6 +202,7 @@ query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { bboxAbove: $point bboxContains: $point bboxEquals: $point + dwithin: $point, $radius } geomMultipoly: { intersects3D: $point @@ -224,6 +231,7 @@ query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { bboxAbove: $point bboxContains: $point bboxEquals: $point + dwithin: $point, $radius } geomGeometrycollection: { intersects3D: $point @@ -252,6 +260,7 @@ query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { bboxAbove: $point bboxContains: $point bboxEquals: $point + dwithin: $point, $radius } geomGeometrym: { intersects3D: $point @@ -280,6 +289,7 @@ query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { bboxAbove: $point bboxContains: $point bboxEquals: $point + dwithin: $point, $radius } geomPointm: { intersects3D: $point @@ -308,6 +318,7 @@ query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { bboxAbove: $point bboxContains: $point bboxEquals: $point + dwithin: $point, $radius } geomLinestrm: { intersects3D: $point @@ -336,6 +347,7 @@ query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { bboxAbove: $point bboxContains: $point bboxEquals: $point + dwithin: $point, $radius } geomPolym: { intersects3D: $point @@ -364,6 +376,7 @@ query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { bboxAbove: $point bboxContains: $point bboxEquals: $point + dwithin: $point, $radius } geomMultipointm: { intersects3D: $point @@ -392,6 +405,7 @@ query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { bboxAbove: $point bboxContains: $point bboxEquals: $point + dwithin: $point, $radius } geomMultilinestrm: { intersects3D: $point @@ -420,6 +434,7 @@ query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { bboxAbove: $point bboxContains: $point bboxEquals: $point + dwithin: $point, $radius } geomMultipolym: { intersects3D: $point @@ -448,6 +463,7 @@ query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { bboxAbove: $point bboxContains: $point bboxEquals: $point + dwithin: $point, $radius } geomGeometrycollectionm: { intersects3D: $point @@ -476,6 +492,7 @@ query AllGisDebugs($point: GeoJSON = { type: "Point", coordinates: [30, 10] }) { bboxAbove: $point bboxContains: $point bboxEquals: $point + dwithin: $point, $radius } } ) { diff --git a/__tests__/integration/schema/__snapshots__/defaultOptions.test.js.snap b/__tests__/integration/schema/__snapshots__/defaultOptions.test.js.snap index 94cdd1e..c526e13 100644 --- a/__tests__/integration/schema/__snapshots__/defaultOptions.test.js.snap +++ b/__tests__/integration/schema/__snapshots__/defaultOptions.test.js.snap @@ -115,6 +115,11 @@ input GeographyGeometryCollectionFilter { \\"\\"\\"No point in the specified geometry is outside.\\"\\"\\" covers: GeoJSON + \\"\\"\\" + Returns true if the geometries are within the specified distance of one another. + \\"\\"\\" + dwithin: GeoJSON + \\"\\"\\"Coordinates and coordinate order are the same as specified geometry.\\"\\"\\" exactlyEquals: GeoJSON @@ -141,6 +146,11 @@ input GeographyGeometryCollectionMFilter { \\"\\"\\"No point in the specified geometry is outside.\\"\\"\\" covers: GeoJSON + \\"\\"\\" + Returns true if the geometries are within the specified distance of one another. + \\"\\"\\" + dwithin: GeoJSON + \\"\\"\\"Coordinates and coordinate order are the same as specified geometry.\\"\\"\\" exactlyEquals: GeoJSON @@ -173,6 +183,11 @@ input GeographyGeometryFilter { \\"\\"\\"No point in the specified geometry is outside.\\"\\"\\" covers: GeoJSON + \\"\\"\\" + Returns true if the geometries are within the specified distance of one another. + \\"\\"\\" + dwithin: GeoJSON + \\"\\"\\"Coordinates and coordinate order are the same as specified geometry.\\"\\"\\" exactlyEquals: GeoJSON @@ -202,6 +217,11 @@ input GeographyGeometryMFilter { \\"\\"\\"No point in the specified geometry is outside.\\"\\"\\" covers: GeoJSON + \\"\\"\\" + Returns true if the geometries are within the specified distance of one another. + \\"\\"\\" + dwithin: GeoJSON + \\"\\"\\"Coordinates and coordinate order are the same as specified geometry.\\"\\"\\" exactlyEquals: GeoJSON @@ -249,6 +269,11 @@ input GeographyInterfaceFilter { \\"\\"\\"No point in the specified geometry is outside.\\"\\"\\" covers: GeoJSON + \\"\\"\\" + Returns true if the geometries are within the specified distance of one another. + \\"\\"\\" + dwithin: GeoJSON + \\"\\"\\"Coordinates and coordinate order are the same as specified geometry.\\"\\"\\" exactlyEquals: GeoJSON @@ -275,6 +300,11 @@ input GeographyLineStringFilter { \\"\\"\\"No point in the specified geometry is outside.\\"\\"\\" covers: GeoJSON + \\"\\"\\" + Returns true if the geometries are within the specified distance of one another. + \\"\\"\\" + dwithin: GeoJSON + \\"\\"\\"Coordinates and coordinate order are the same as specified geometry.\\"\\"\\" exactlyEquals: GeoJSON @@ -301,6 +331,11 @@ input GeographyLineStringMFilter { \\"\\"\\"No point in the specified geometry is outside.\\"\\"\\" covers: GeoJSON + \\"\\"\\" + Returns true if the geometries are within the specified distance of one another. + \\"\\"\\" + dwithin: GeoJSON + \\"\\"\\"Coordinates and coordinate order are the same as specified geometry.\\"\\"\\" exactlyEquals: GeoJSON @@ -339,6 +374,11 @@ input GeographyMultiLineStringFilter { \\"\\"\\"No point in the specified geometry is outside.\\"\\"\\" covers: GeoJSON + \\"\\"\\" + Returns true if the geometries are within the specified distance of one another. + \\"\\"\\" + dwithin: GeoJSON + \\"\\"\\"Coordinates and coordinate order are the same as specified geometry.\\"\\"\\" exactlyEquals: GeoJSON @@ -365,6 +405,11 @@ input GeographyMultiLineStringMFilter { \\"\\"\\"No point in the specified geometry is outside.\\"\\"\\" covers: GeoJSON + \\"\\"\\" + Returns true if the geometries are within the specified distance of one another. + \\"\\"\\" + dwithin: GeoJSON + \\"\\"\\"Coordinates and coordinate order are the same as specified geometry.\\"\\"\\" exactlyEquals: GeoJSON @@ -403,6 +448,11 @@ input GeographyMultiPointFilter { \\"\\"\\"No point in the specified geometry is outside.\\"\\"\\" covers: GeoJSON + \\"\\"\\" + Returns true if the geometries are within the specified distance of one another. + \\"\\"\\" + dwithin: GeoJSON + \\"\\"\\"Coordinates and coordinate order are the same as specified geometry.\\"\\"\\" exactlyEquals: GeoJSON @@ -429,6 +479,11 @@ input GeographyMultiPointMFilter { \\"\\"\\"No point in the specified geometry is outside.\\"\\"\\" covers: GeoJSON + \\"\\"\\" + Returns true if the geometries are within the specified distance of one another. + \\"\\"\\" + dwithin: GeoJSON + \\"\\"\\"Coordinates and coordinate order are the same as specified geometry.\\"\\"\\" exactlyEquals: GeoJSON @@ -467,6 +522,11 @@ input GeographyMultiPolygonFilter { \\"\\"\\"No point in the specified geometry is outside.\\"\\"\\" covers: GeoJSON + \\"\\"\\" + Returns true if the geometries are within the specified distance of one another. + \\"\\"\\" + dwithin: GeoJSON + \\"\\"\\"Coordinates and coordinate order are the same as specified geometry.\\"\\"\\" exactlyEquals: GeoJSON @@ -493,6 +553,11 @@ input GeographyMultiPolygonMFilter { \\"\\"\\"No point in the specified geometry is outside.\\"\\"\\" covers: GeoJSON + \\"\\"\\" + Returns true if the geometries are within the specified distance of one another. + \\"\\"\\" + dwithin: GeoJSON + \\"\\"\\"Coordinates and coordinate order are the same as specified geometry.\\"\\"\\" exactlyEquals: GeoJSON @@ -532,6 +597,11 @@ input GeographyPointFilter { \\"\\"\\"No point in the specified geometry is outside.\\"\\"\\" covers: GeoJSON + \\"\\"\\" + Returns true if the geometries are within the specified distance of one another. + \\"\\"\\" + dwithin: GeoJSON + \\"\\"\\"Coordinates and coordinate order are the same as specified geometry.\\"\\"\\" exactlyEquals: GeoJSON @@ -559,6 +629,11 @@ input GeographyPointMFilter { \\"\\"\\"No point in the specified geometry is outside.\\"\\"\\" covers: GeoJSON + \\"\\"\\" + Returns true if the geometries are within the specified distance of one another. + \\"\\"\\" + dwithin: GeoJSON + \\"\\"\\"Coordinates and coordinate order are the same as specified geometry.\\"\\"\\" exactlyEquals: GeoJSON @@ -600,6 +675,11 @@ input GeographyPolygonFilter { \\"\\"\\"No point in the specified geometry is outside.\\"\\"\\" covers: GeoJSON + \\"\\"\\" + Returns true if the geometries are within the specified distance of one another. + \\"\\"\\" + dwithin: GeoJSON + \\"\\"\\"Coordinates and coordinate order are the same as specified geometry.\\"\\"\\" exactlyEquals: GeoJSON @@ -627,6 +707,11 @@ input GeographyPolygonMFilter { \\"\\"\\"No point in the specified geometry is outside.\\"\\"\\" covers: GeoJSON + \\"\\"\\" + Returns true if the geometries are within the specified distance of one another. + \\"\\"\\" + dwithin: GeoJSON + \\"\\"\\"Coordinates and coordinate order are the same as specified geometry.\\"\\"\\" exactlyEquals: GeoJSON @@ -743,6 +828,11 @@ input GeometryGeometryCollectionFilter { \\"\\"\\"They do not share any space together.\\"\\"\\" disjoint: GeoJSON + \\"\\"\\" + Returns true if the geometries are within the specified distance of one another. + \\"\\"\\" + dwithin: GeoJSON + \\"\\"\\"They represent the same geometry. Directionality is ignored.\\"\\"\\" equals: GeoJSON @@ -855,6 +945,11 @@ input GeometryGeometryCollectionMFilter { \\"\\"\\"They do not share any space together.\\"\\"\\" disjoint: GeoJSON + \\"\\"\\" + Returns true if the geometries are within the specified distance of one another. + \\"\\"\\" + dwithin: GeoJSON + \\"\\"\\"They represent the same geometry. Directionality is ignored.\\"\\"\\" equals: GeoJSON @@ -973,6 +1068,11 @@ input GeometryGeometryFilter { \\"\\"\\"They do not share any space together.\\"\\"\\" disjoint: GeoJSON + \\"\\"\\" + Returns true if the geometries are within the specified distance of one another. + \\"\\"\\" + dwithin: GeoJSON + \\"\\"\\"They represent the same geometry. Directionality is ignored.\\"\\"\\" equals: GeoJSON @@ -1088,6 +1188,11 @@ input GeometryGeometryMFilter { \\"\\"\\"They do not share any space together.\\"\\"\\" disjoint: GeoJSON + \\"\\"\\" + Returns true if the geometries are within the specified distance of one another. + \\"\\"\\" + dwithin: GeoJSON + \\"\\"\\"They represent the same geometry. Directionality is ignored.\\"\\"\\" equals: GeoJSON @@ -1221,6 +1326,11 @@ input GeometryInterfaceFilter { \\"\\"\\"They do not share any space together.\\"\\"\\" disjoint: GeoJSON + \\"\\"\\" + Returns true if the geometries are within the specified distance of one another. + \\"\\"\\" + dwithin: GeoJSON + \\"\\"\\"They represent the same geometry. Directionality is ignored.\\"\\"\\" equals: GeoJSON @@ -1333,6 +1443,11 @@ input GeometryLineStringFilter { \\"\\"\\"They do not share any space together.\\"\\"\\" disjoint: GeoJSON + \\"\\"\\" + Returns true if the geometries are within the specified distance of one another. + \\"\\"\\" + dwithin: GeoJSON + \\"\\"\\"They represent the same geometry. Directionality is ignored.\\"\\"\\" equals: GeoJSON @@ -1445,6 +1560,11 @@ input GeometryLineStringMFilter { \\"\\"\\"They do not share any space together.\\"\\"\\" disjoint: GeoJSON + \\"\\"\\" + Returns true if the geometries are within the specified distance of one another. + \\"\\"\\" + dwithin: GeoJSON + \\"\\"\\"They represent the same geometry. Directionality is ignored.\\"\\"\\" equals: GeoJSON @@ -1569,6 +1689,11 @@ input GeometryMultiLineStringFilter { \\"\\"\\"They do not share any space together.\\"\\"\\" disjoint: GeoJSON + \\"\\"\\" + Returns true if the geometries are within the specified distance of one another. + \\"\\"\\" + dwithin: GeoJSON + \\"\\"\\"They represent the same geometry. Directionality is ignored.\\"\\"\\" equals: GeoJSON @@ -1681,6 +1806,11 @@ input GeometryMultiLineStringMFilter { \\"\\"\\"They do not share any space together.\\"\\"\\" disjoint: GeoJSON + \\"\\"\\" + Returns true if the geometries are within the specified distance of one another. + \\"\\"\\" + dwithin: GeoJSON + \\"\\"\\"They represent the same geometry. Directionality is ignored.\\"\\"\\" equals: GeoJSON @@ -1805,6 +1935,11 @@ input GeometryMultiPointFilter { \\"\\"\\"They do not share any space together.\\"\\"\\" disjoint: GeoJSON + \\"\\"\\" + Returns true if the geometries are within the specified distance of one another. + \\"\\"\\" + dwithin: GeoJSON + \\"\\"\\"They represent the same geometry. Directionality is ignored.\\"\\"\\" equals: GeoJSON @@ -1917,6 +2052,11 @@ input GeometryMultiPointMFilter { \\"\\"\\"They do not share any space together.\\"\\"\\" disjoint: GeoJSON + \\"\\"\\" + Returns true if the geometries are within the specified distance of one another. + \\"\\"\\" + dwithin: GeoJSON + \\"\\"\\"They represent the same geometry. Directionality is ignored.\\"\\"\\" equals: GeoJSON @@ -2041,6 +2181,11 @@ input GeometryMultiPolygonFilter { \\"\\"\\"They do not share any space together.\\"\\"\\" disjoint: GeoJSON + \\"\\"\\" + Returns true if the geometries are within the specified distance of one another. + \\"\\"\\" + dwithin: GeoJSON + \\"\\"\\"They represent the same geometry. Directionality is ignored.\\"\\"\\" equals: GeoJSON @@ -2153,6 +2298,11 @@ input GeometryMultiPolygonMFilter { \\"\\"\\"They do not share any space together.\\"\\"\\" disjoint: GeoJSON + \\"\\"\\" + Returns true if the geometries are within the specified distance of one another. + \\"\\"\\" + dwithin: GeoJSON + \\"\\"\\"They represent the same geometry. Directionality is ignored.\\"\\"\\" equals: GeoJSON @@ -2278,6 +2428,11 @@ input GeometryPointFilter { \\"\\"\\"They do not share any space together.\\"\\"\\" disjoint: GeoJSON + \\"\\"\\" + Returns true if the geometries are within the specified distance of one another. + \\"\\"\\" + dwithin: GeoJSON + \\"\\"\\"They represent the same geometry. Directionality is ignored.\\"\\"\\" equals: GeoJSON @@ -2391,6 +2546,11 @@ input GeometryPointMFilter { \\"\\"\\"They do not share any space together.\\"\\"\\" disjoint: GeoJSON + \\"\\"\\" + Returns true if the geometries are within the specified distance of one another. + \\"\\"\\" + dwithin: GeoJSON + \\"\\"\\"They represent the same geometry. Directionality is ignored.\\"\\"\\" equals: GeoJSON @@ -2518,6 +2678,11 @@ input GeometryPolygonFilter { \\"\\"\\"They do not share any space together.\\"\\"\\" disjoint: GeoJSON + \\"\\"\\" + Returns true if the geometries are within the specified distance of one another. + \\"\\"\\" + dwithin: GeoJSON + \\"\\"\\"They represent the same geometry. Directionality is ignored.\\"\\"\\" equals: GeoJSON @@ -2631,6 +2796,11 @@ input GeometryPolygonMFilter { \\"\\"\\"They do not share any space together.\\"\\"\\" disjoint: GeoJSON + \\"\\"\\" + Returns true if the geometries are within the specified distance of one another. + \\"\\"\\" + dwithin: GeoJSON + \\"\\"\\"They represent the same geometry. Directionality is ignored.\\"\\"\\" equals: GeoJSON diff --git a/package.json b/package.json index a2d6b59..d19cb4f 100644 --- a/package.json +++ b/package.json @@ -18,16 +18,16 @@ }, "devDependencies": { "@graphile/postgis": "0.1.0", - "eslint": "^6.8.0", + "eslint": "^7.8.1", "eslint-config-prettier": "^6.11.0", "eslint-plugin-jest": "^23.8.2", "eslint-plugin-prettier": "^3.1.3", "graphql": "^14.6.0", "jest": "^25.5.0", - "pg": "^7.18.2", + "pg": "^8.3.3", "postgraphile-core": "4.5.0", "postgraphile-plugin-connection-filter": "2.0.0", - "prettier": "1.19.1" + "prettier": "2.1.1" }, "jest": { "testRegex": "__tests__/.*\\.test\\.js$" diff --git a/src/PgConnectionArgFilterPostgisOperatorsPlugin.js b/src/PgConnectionArgFilterPostgisOperatorsPlugin.js index e67a5ea..051191e 100644 --- a/src/PgConnectionArgFilterPostgisOperatorsPlugin.js +++ b/src/PgConnectionArgFilterPostgisOperatorsPlugin.js @@ -137,7 +137,49 @@ module.exports = function PgConnectionArgFilterPostgisOperatorsPlugin(builder) { } } - // Operators + for (const [fn, baseTypeNames, operatorName, description] of [ + [ + "ST_DWithin", + [GEOMETRY, GEOGRAPHY], + "dwithin", + "Returns true if the geometries are within the specified distance of one another.", + ], + ]) { + for (const baseTypeName of baseTypeNames) { + const sqlGisFunction = + pgGISExtension.namespaceName === "public" + ? sql.identifier(fn.toLowerCase()) + : sql.identifier(pgGISExtension.namespaceName, fn.toLowerCase()); + const typeNames = + gqlTypeNamesByGisBaseTypeName[baseTypeName] !== undefined + ? gqlTypeNamesByGisBaseTypeName[baseTypeName] + : [baseTypeName]; + + if (baseTypeName === GEOMETRY) { + specs.push({ + typeNames: typeNames, + operatorName, + description, + resolveType: fieldType => fieldType, + resolve: (identifier, value) => + sql.query`${sqlGisFunction}(${identifier}, ${value})`, + }); + } + + if (baseTypeName === GEOGRAPHY) { + specs.push({ + typeNames: typeNames, + operatorName, + description, + resolveType: fieldType => fieldType, + resolve: (identifier, value) => + sql.query`${sqlGisFunction}(${identifier}, ${value})`, + }); + } + } + } + + // Operators - https://postgis.net/docs/reference.html#Operators for (const [op, baseTypeNames, operatorName, description] of [ [ "=", diff --git a/yarn.lock b/yarn.lock index fc44862..b2fc329 100644 --- a/yarn.lock +++ b/yarn.lock @@ -96,6 +96,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ== +"@babel/helper-plugin-utils@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" + integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== + "@babel/helper-replace-supers@^7.8.6": version "7.9.6" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.9.6.tgz#03149d7e6a5586ab6764996cd31d6981a17e1444" @@ -170,6 +175,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" +"@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" @@ -265,6 +277,22 @@ exec-sh "^0.3.2" minimist "^1.2.0" +"@eslint/eslintrc@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.1.3.tgz#7d1a2b2358552cc04834c0979bd4275362e37085" + integrity sha512-4YVwPkANLeNtRjMekzux1ci8hIaH5eGKktGqR0d3LWsKNn5B2X/1Z6Trxy7jQXl9EBGE6Yj02O+t09FMeRllaA== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + lodash "^4.17.19" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + "@graphile/lru@4.5.0": version "4.5.0" resolved "https://registry.yarnpkg.com/@graphile/lru/-/lru-4.5.0.tgz#e8fe036d322dfe1715675aab171979981e28ac9e" @@ -306,10 +334,10 @@ jest-util "^25.5.0" slash "^3.0.0" -"@jest/core@^25.5.2": - version "25.5.2" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-25.5.2.tgz#d3f49782ad5c09478214ddd45249e5b7663a0328" - integrity sha512-vc7WqwPbFX22EWDbuxJDnWDh5YYyReimgxKO/DYA1wMJd7/PcbUwM4PY7xadRZ2ze8Wi3OtmXP8ZbJEfcWY5Xg== +"@jest/core@^25.5.4": + version "25.5.4" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-25.5.4.tgz#3ef7412f7339210f003cdf36646bbca786efe7b4" + integrity sha512-3uSo7laYxF00Dg/DMgbn4xMJKmDdWvZnf89n8Xj/5/AeQ2dOQmn6b6Hkj/MleyzZWXpwv+WSdYWl4cLsy2JsoA== dependencies: "@jest/console" "^25.5.0" "@jest/reporters" "^25.5.1" @@ -321,14 +349,14 @@ exit "^0.1.2" graceful-fs "^4.2.4" jest-changed-files "^25.5.0" - jest-config "^25.5.2" + jest-config "^25.5.4" jest-haste-map "^25.5.1" jest-message-util "^25.5.0" jest-regex-util "^25.2.6" jest-resolve "^25.5.1" - jest-resolve-dependencies "^25.5.2" - jest-runner "^25.5.2" - jest-runtime "^25.5.2" + jest-resolve-dependencies "^25.5.4" + jest-runner "^25.5.4" + jest-runtime "^25.5.4" jest-snapshot "^25.5.1" jest-util "^25.5.0" jest-validate "^25.5.0" @@ -420,16 +448,16 @@ "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^25.5.2": - version "25.5.2" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-25.5.2.tgz#3d291179de020f42835469fff1de496d6309848a" - integrity sha512-spQjGJ+QTjqB2NcZclkEpStF4uXxfpMfGAsW12dtxfjR9nsxTyTEYt8JUtrpxfYk8R1iTbcwkayekxZPB2MEiw== +"@jest/test-sequencer@^25.5.4": + version "25.5.4" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-25.5.4.tgz#9b4e685b36954c38d0f052e596d28161bdc8b737" + integrity sha512-pTJGEkSeg1EkCO2YWq6hbFvKNXk8ejqlxiOg1jBNLnWrgXOkdY6UmqZpwGFXNnRt9B8nO1uWMzLLZ4eCmhkPNA== dependencies: "@jest/test-result" "^25.5.0" graceful-fs "^4.2.4" jest-haste-map "^25.5.1" - jest-runner "^25.5.2" - jest-runtime "^25.5.2" + jest-runner "^25.5.4" + jest-runtime "^25.5.4" "@jest/transform@^25.5.1": version "25.5.1" @@ -540,9 +568,9 @@ "@types/istanbul-lib-coverage" "*" "@types/istanbul-reports@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz#7a8cbf6a406f36c8add871625b278eaf0b0d255a" - integrity sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA== + version "1.1.2" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz#e875cc689e47bce549ec81f3df5e6f6f11cfaeb2" + integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw== dependencies: "@types/istanbul-lib-coverage" "*" "@types/istanbul-lib-report" "*" @@ -598,32 +626,32 @@ "@types/yargs-parser" "*" "@typescript-eslint/experimental-utils@^2.5.0": - version "2.30.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.30.0.tgz#9845e868c01f3aed66472c561d4b6bac44809dd0" - integrity sha512-L3/tS9t+hAHksy8xuorhOzhdefN0ERPDWmR9CclsIGOUqGKy6tqc/P+SoXeJRye5gazkuPO0cK9MQRnolykzkA== + version "2.34.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz#d3524b644cdb40eebceca67f8cf3e4cc9c8f980f" + integrity sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA== dependencies: "@types/json-schema" "^7.0.3" - "@typescript-eslint/typescript-estree" "2.30.0" + "@typescript-eslint/typescript-estree" "2.34.0" eslint-scope "^5.0.0" eslint-utils "^2.0.0" -"@typescript-eslint/typescript-estree@2.30.0": - version "2.30.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.30.0.tgz#1b8e848b55144270255ffbfe4c63291f8f766615" - integrity sha512-nI5WOechrA0qAhnr+DzqwmqHsx7Ulr/+0H7bWCcClDhhWkSyZR5BmTvnBEyONwJCTWHfc5PAQExX24VD26IAVw== +"@typescript-eslint/typescript-estree@2.34.0": + version "2.34.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz#14aeb6353b39ef0732cc7f1b8285294937cf37d5" + integrity sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg== dependencies: debug "^4.1.1" eslint-visitor-keys "^1.1.0" glob "^7.1.6" is-glob "^4.0.1" lodash "^4.17.15" - semver "^6.3.0" + semver "^7.3.2" tsutils "^3.17.1" abab@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a" - integrity sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg== + version "2.0.4" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.4.tgz#6dfa57b417ca06d21b2478f0e638302f99c2405c" + integrity sha512-Eu9ELJWCz/c1e9gTiCY+FceWxcqzjYEbqMgtndnuSqZSUCOL73TWNK2mHfIj4Cw2E/ongOp+JISVNCmovt2KYQ== acorn-globals@^4.3.2: version "4.3.4" @@ -648,10 +676,10 @@ acorn@^6.0.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== -acorn@^7.1.0, acorn@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf" - integrity sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg== +acorn@^7.1.0, acorn@^7.4.0: + version "7.4.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.0.tgz#e1ad486e6c54501634c6c397c5c121daa383607c" + integrity sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w== ajv@^6.10.0, ajv@^6.10.2, ajv@^6.5.5: version "6.12.2" @@ -663,6 +691,21 @@ ajv@^6.10.0, ajv@^6.10.2, ajv@^6.5.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^6.12.4: + version "6.12.4" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.4.tgz#0614facc4522127fa713445c6bfd3ebd376e2234" + integrity sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + ansi-escapes@^4.2.1: version "4.3.1" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" @@ -820,13 +863,14 @@ babel-plugin-jest-hoist@^25.5.0: "@types/babel__traverse" "^7.0.6" babel-preset-current-node-syntax@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.2.tgz#fb4a4c51fe38ca60fede1dc74ab35eb843cb41d6" - integrity sha512-u/8cS+dEiK1SFILbOC8/rUI3ml9lboKuuMvZ/4aQnQmhecQAgPw5ew066C1ObnEAUmlx7dv/s2z52psWEtLNiw== + version "0.1.3" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.3.tgz#b4b547acddbf963cba555ba9f9cbbb70bfd044da" + integrity sha512-uyexu1sVwcdFnyq9o8UQYsXwXflIh8LvrF5+cKrYam93ned1CStffB3+BEcsxGSgagoA3GEyjDqO4a/58hyPYQ== dependencies: "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-bigint" "^7.8.3" "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" @@ -970,7 +1014,7 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.2: +chalk@^2.0.0, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -987,10 +1031,13 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== +chalk@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" ci-info@^2.0.0: version "2.0.0" @@ -1007,18 +1054,6 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-width@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" - integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== - cliui@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" @@ -1104,7 +1139,7 @@ core-util-is@1.0.2: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -cross-spawn@^6.0.0, cross-spawn@^6.0.5: +cross-spawn@^6.0.0: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== @@ -1124,6 +1159,15 @@ cross-spawn@^7.0.0: shebang-command "^2.0.0" which "^2.0.1" +cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + cssom@^0.4.1: version "0.4.4" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" @@ -1181,7 +1225,7 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= -deep-is@~0.1.3: +deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= @@ -1274,6 +1318,13 @@ end-of-stream@^1.1.0: dependencies: once "^1.4.0" +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -1287,9 +1338,9 @@ escape-string-regexp@^1.0.5: integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= escodegen@^1.11.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.1.tgz#ba01d0c8278b5e95a9a45350142026659027a457" - integrity sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ== + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== dependencies: esprima "^4.0.1" estraverse "^4.2.0" @@ -1306,16 +1357,16 @@ eslint-config-prettier@^6.11.0: get-stdin "^6.0.0" eslint-plugin-jest@^23.8.2: - version "23.8.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-23.8.2.tgz#6f28b41c67ef635f803ebd9e168f6b73858eb8d4" - integrity sha512-xwbnvOsotSV27MtAe7s8uGWOori0nUsrXh2f1EnpmXua8sDfY6VZhHAhHg2sqK7HBNycRQExF074XSZ7DvfoFg== + version "23.20.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-23.20.0.tgz#e1d69c75f639e99d836642453c4e75ed22da4099" + integrity sha512-+6BGQt85OREevBDWCvhqj1yYA4+BFK4XnRZSGJionuEYmcglMZYLNNBBemwzbqUAckURaHdJSBcjHPyrtypZOw== dependencies: "@typescript-eslint/experimental-utils" "^2.5.0" eslint-plugin-prettier@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.3.tgz#ae116a0fc0e598fdae48743a4430903de5b4e6ca" - integrity sha512-+HG5jmu/dN3ZV3T6eCD7a4BlAySdN7mLIbJYo0z1cFQuI+r2DiTJEFeF68ots93PsnrMxbzIZ2S/ieX+mkrBeQ== + version "3.1.4" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.4.tgz#168ab43154e2ea57db992a2cd097c828171f75c2" + integrity sha512-jZDa8z76klRqo+TdGDTFJSavwbnWK2ZpqGKNZ+VvweMW516pDUMmQ2koXvxEE4JhzNvTv+radye/bWGBmA6jmg== dependencies: prettier-linter-helpers "^1.0.0" @@ -1327,12 +1378,13 @@ eslint-scope@^5.0.0: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-utils@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" - integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== +eslint-scope@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.0.tgz#d0f971dfe59c69e0cada684b23d49dbf82600ce5" + integrity sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w== dependencies: - eslint-visitor-keys "^1.1.0" + esrecurse "^4.1.0" + estraverse "^4.1.1" eslint-utils@^2.0.0: version "2.0.0" @@ -1341,27 +1393,41 @@ eslint-utils@^2.0.0: dependencies: eslint-visitor-keys "^1.1.0" +eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + eslint-visitor-keys@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== -eslint@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" - integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== +eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint@^7.8.1: + version "7.8.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.8.1.tgz#e59de3573fb6a5be8ff526c791571646d124a8fa" + integrity sha512-/2rX2pfhyUG0y+A123d0ccXtMm7DV7sH1m3lk9nk2DZ2LReq39FXHueR9xZwshE5MdfSf0xunSaMWRqyIA6M1w== dependencies: "@babel/code-frame" "^7.0.0" + "@eslint/eslintrc" "^0.1.3" ajv "^6.10.0" - chalk "^2.1.0" - cross-spawn "^6.0.5" + chalk "^4.0.0" + cross-spawn "^7.0.2" debug "^4.0.1" doctrine "^3.0.0" - eslint-scope "^5.0.0" - eslint-utils "^1.4.3" - eslint-visitor-keys "^1.1.0" - espree "^6.1.2" - esquery "^1.0.1" + enquirer "^2.3.5" + eslint-scope "^5.1.0" + eslint-utils "^2.1.0" + eslint-visitor-keys "^1.3.0" + espree "^7.3.0" + esquery "^1.2.0" esutils "^2.0.2" file-entry-cache "^5.0.1" functional-red-black-tree "^1.0.1" @@ -1370,40 +1436,38 @@ eslint@^6.8.0: ignore "^4.0.6" import-fresh "^3.0.0" imurmurhash "^0.1.4" - inquirer "^7.0.0" is-glob "^4.0.0" js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.14" + levn "^0.4.1" + lodash "^4.17.19" minimatch "^3.0.4" - mkdirp "^0.5.1" natural-compare "^1.4.0" - optionator "^0.8.3" + optionator "^0.9.1" progress "^2.0.0" - regexpp "^2.0.1" - semver "^6.1.2" - strip-ansi "^5.2.0" - strip-json-comments "^3.0.1" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" table "^5.2.3" text-table "^0.2.0" v8-compile-cache "^2.0.3" -espree@^6.1.2: - version "6.2.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" - integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== +espree@^7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.0.tgz#dc30437cf67947cf576121ebd780f15eeac72348" + integrity sha512-dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw== dependencies: - acorn "^7.1.1" + acorn "^7.4.0" acorn-jsx "^5.2.0" - eslint-visitor-keys "^1.1.0" + eslint-visitor-keys "^1.3.0" esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.0.1: +esquery@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== @@ -1516,15 +1580,6 @@ extend@~3.0.2: resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - extglob@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" @@ -1564,7 +1619,7 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@~2.0.6: +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= @@ -1576,13 +1631,6 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" -figures@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - file-entry-cache@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" @@ -1796,9 +1844,9 @@ graphql@*: integrity sha512-ZyVO1xIF9F+4cxfkdhOJINM+51B06Friuv4M66W7HzUOeFd+vNzUn4vtswYINPi6sysjf1M2Ri/rwZALqgwbaQ== graphql@^14.6.0: - version "14.6.0" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.6.0.tgz#57822297111e874ea12f5cd4419616930cd83e49" - integrity sha512-VKzfvHEKybTKjQVpTFrA5yUq2S9ihcZvfJAtsDBBCuV6wauPu1xl/f9ehgVf0FcEJJs4vz6ysb/ZMkGigQZseg== + version "14.7.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.7.0.tgz#7fa79a80a69be4a31c27dda824dc04dac2035a72" + integrity sha512-l0xWZpoPKpppFzMfvVyFmp9vLN7w/ZZJPefUicMCepfJeQ8sMcztloGYY9DfjVPo6tIUDzU5Hw3MUbIjj9AVVA== dependencies: iterall "^1.2.2" @@ -1892,7 +1940,7 @@ human-signals@^1.1.1: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== -iconv-lite@0.4.24, iconv-lite@^0.4.24: +iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -1904,7 +1952,7 @@ ignore@^4.0.6: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -import-fresh@^3.0.0: +import-fresh@^3.0.0, import-fresh@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== @@ -1938,25 +1986,6 @@ inherits@2: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inquirer@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.1.0.tgz#1298a01859883e17c7264b82870ae1034f92dd29" - integrity sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg== - dependencies: - ansi-escapes "^4.2.1" - chalk "^3.0.0" - cli-cursor "^3.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.15" - mute-stream "0.0.8" - run-async "^2.4.0" - rxjs "^6.5.3" - string-width "^4.1.0" - strip-ansi "^6.0.0" - through "^2.3.6" - ip-regex@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" @@ -2025,6 +2054,11 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-data-descriptor "^1.0.0" kind-of "^6.0.2" +is-docker@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.1.1.tgz#4125a88e44e450d384e09047ede71adc2d144156" + integrity sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw== + is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" @@ -2104,9 +2138,11 @@ is-windows@^1.0.2: integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== is-wsl@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.1.1.tgz#4a1c152d429df3d441669498e2486d3596ebaf1d" - integrity sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog== + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" isarray@1.0.0: version "1.0.0" @@ -2193,12 +2229,12 @@ jest-changed-files@^25.5.0: execa "^3.2.0" throat "^5.0.0" -jest-cli@^25.5.2: - version "25.5.2" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-25.5.2.tgz#44ffb68cc0aa1a4b2971b8bfd07083397232105e" - integrity sha512-jbOJ4oOIJptg5mjNQZWyHkv33sXCIFT2UnkYwlZvyVU/0nz5nmIlIx57iTgHkmeRBp1VkK2qPZhjCDwHmxNKgA== +jest-cli@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-25.5.4.tgz#b9f1a84d1301a92c5c217684cb79840831db9f0d" + integrity sha512-rG8uJkIiOUpnREh1768/N3n27Cm+xPFkSNFO91tgg+8o2rXeVLStz+vkXkGr4UtzH6t1SNbjwoiswd7p4AhHTw== dependencies: - "@jest/core" "^25.5.2" + "@jest/core" "^25.5.4" "@jest/test-result" "^25.5.0" "@jest/types" "^25.5.0" chalk "^3.0.0" @@ -2206,20 +2242,20 @@ jest-cli@^25.5.2: graceful-fs "^4.2.4" import-local "^3.0.2" is-ci "^2.0.0" - jest-config "^25.5.2" + jest-config "^25.5.4" jest-util "^25.5.0" jest-validate "^25.5.0" prompts "^2.0.1" realpath-native "^2.0.0" yargs "^15.3.1" -jest-config@^25.5.2: - version "25.5.2" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-25.5.2.tgz#99319256123df19194da4aa27bb695ace4dfbe6b" - integrity sha512-6KVTvhJYyXQVFMDxMCxqf9IgdI0dhdaIKR9WN9U+w3xcvNEWCgwzK5LaSx6hvthgh/sukJb3bC4jMnIUXkWu+A== +jest-config@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-25.5.4.tgz#38e2057b3f976ef7309b2b2c8dcd2a708a67f02c" + integrity sha512-SZwR91SwcdK6bz7Gco8qL7YY2sx8tFJYzvg216DLihTWf+LKY/DoJXpM9nTzYakSyfblbqeU48p/p7Jzy05Atg== dependencies: "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^25.5.2" + "@jest/test-sequencer" "^25.5.4" "@jest/types" "^25.5.0" babel-jest "^25.5.1" chalk "^3.0.0" @@ -2229,7 +2265,7 @@ jest-config@^25.5.2: jest-environment-jsdom "^25.5.0" jest-environment-node "^25.5.0" jest-get-type "^25.2.6" - jest-jasmine2 "^25.5.2" + jest-jasmine2 "^25.5.4" jest-regex-util "^25.2.6" jest-resolve "^25.5.1" jest-util "^25.5.0" @@ -2315,10 +2351,10 @@ jest-haste-map@^25.5.1: optionalDependencies: fsevents "^2.1.2" -jest-jasmine2@^25.5.2: - version "25.5.2" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-25.5.2.tgz#ea7825e965309ccfa610435f8a23a663339f8e44" - integrity sha512-wRtHAy97F4hafJgnh5CwI/N1tDo7z+urteQAyr3rjK7X3TZWX5hSV4cO7WIBKLDV0kPICCmsGiNYs1caeHD/sQ== +jest-jasmine2@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-25.5.4.tgz#66ca8b328fb1a3c5364816f8958f6970a8526968" + integrity sha512-9acbWEfbmS8UpdcfqnDO+uBUgKa/9hcRh983IHdM+pKmJPL77G0sWAAK0V0kr5LK3a8cSBfkFSoncXwQlRZfkQ== dependencies: "@babel/traverse" "^7.1.0" "@jest/environment" "^25.5.0" @@ -2332,7 +2368,7 @@ jest-jasmine2@^25.5.2: jest-each "^25.5.0" jest-matcher-utils "^25.5.0" jest-message-util "^25.5.0" - jest-runtime "^25.5.2" + jest-runtime "^25.5.4" jest-snapshot "^25.5.1" jest-util "^25.5.0" pretty-format "^25.5.0" @@ -2378,19 +2414,19 @@ jest-mock@^25.5.0: "@jest/types" "^25.5.0" jest-pnp-resolver@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a" - integrity sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ== + version "1.2.2" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" + integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== jest-regex-util@^25.2.6: version "25.2.6" resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-25.2.6.tgz#d847d38ba15d2118d3b06390056028d0f2fd3964" integrity sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw== -jest-resolve-dependencies@^25.5.2: - version "25.5.2" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-25.5.2.tgz#7409d14437497339e0acb88575408f2265c9a58d" - integrity sha512-4xlPp6/SFFZj7g7WkhoKEEWsYqmAK6WcmFFRfDJ0K4T2f/MCJgFEPqv1F88ro6ZJdpOti08CxGku4gBwau/RjQ== +jest-resolve-dependencies@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-25.5.4.tgz#85501f53957c8e3be446e863a74777b5a17397a7" + integrity sha512-yFmbPd+DAQjJQg88HveObcGBA32nqNZ02fjYmtL16t1xw9bAttSn5UGRRhzMHIQbsep7znWvAvnD4kDqOFM0Uw== dependencies: "@jest/types" "^25.5.0" jest-regex-util "^25.2.6" @@ -2411,10 +2447,10 @@ jest-resolve@^25.5.1: resolve "^1.17.0" slash "^3.0.0" -jest-runner@^25.5.2: - version "25.5.2" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-25.5.2.tgz#af9b50736d834b9892fd240e89c984712cf53dd6" - integrity sha512-GvaM0AWSfyer46BEranPSmKoNNW9RqLGnjKftE6I5Ia6cfjdHHeTHAus7Mh9PdjWzGqrXsLSGdErX+4wMvN3rQ== +jest-runner@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-25.5.4.tgz#ffec5df3875da5f5c878ae6d0a17b8e4ecd7c71d" + integrity sha512-V/2R7fKZo6blP8E9BL9vJ8aTU4TH2beuqGNxHbxi6t14XzTb+x90B3FRgdvuHm41GY8ch4xxvf0ATH4hdpjTqg== dependencies: "@jest/console" "^25.5.0" "@jest/environment" "^25.5.0" @@ -2423,23 +2459,23 @@ jest-runner@^25.5.2: chalk "^3.0.0" exit "^0.1.2" graceful-fs "^4.2.4" - jest-config "^25.5.2" + jest-config "^25.5.4" jest-docblock "^25.3.0" jest-haste-map "^25.5.1" - jest-jasmine2 "^25.5.2" + jest-jasmine2 "^25.5.4" jest-leak-detector "^25.5.0" jest-message-util "^25.5.0" jest-resolve "^25.5.1" - jest-runtime "^25.5.2" + jest-runtime "^25.5.4" jest-util "^25.5.0" jest-worker "^25.5.0" source-map-support "^0.5.6" throat "^5.0.0" -jest-runtime@^25.5.2: - version "25.5.2" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-25.5.2.tgz#cf98a455e15f86120a0bf4dbf494b2e54a0a20dc" - integrity sha512-UQTPBnE73qpGMKAXYB2agoC+6hMyT3dWXVL+cYibCFRm0tx2A+0+8wceoivRCtxQGaQr52c+qMRIOIRqmhAgHQ== +jest-runtime@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-25.5.4.tgz#dc981fe2cb2137abcd319e74ccae7f7eeffbfaab" + integrity sha512-RWTt8LeWh3GvjYtASH2eezkc8AehVoWKK20udV6n3/gC87wlTbE1kIA+opCvNWyyPeBs6ptYsc6nyHUb1GlUVQ== dependencies: "@jest/console" "^25.5.0" "@jest/environment" "^25.5.0" @@ -2454,7 +2490,7 @@ jest-runtime@^25.5.2: exit "^0.1.2" glob "^7.1.3" graceful-fs "^4.2.4" - jest-config "^25.5.2" + jest-config "^25.5.4" jest-haste-map "^25.5.1" jest-message-util "^25.5.0" jest-mock "^25.5.0" @@ -2540,13 +2576,13 @@ jest-worker@^25.5.0: supports-color "^7.0.0" jest@^25.5.0: - version "25.5.2" - resolved "https://registry.yarnpkg.com/jest/-/jest-25.5.2.tgz#9b90c64b0d3d1fadb796e4e6f7f7a6c7d5282190" - integrity sha512-uJwrQNpNwhlP4SX3lpvjc5ucOULeWUCQCfrREqvQW5phAy04q5lQPsGM6Z0T1Psdnuf9CkycpoNEL6O3FMGcsg== + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest/-/jest-25.5.4.tgz#f21107b6489cfe32b076ce2adcadee3587acb9db" + integrity sha512-hHFJROBTqZahnO+X+PMtT6G2/ztqAZJveGqz//FnWWHurizkD05PQGzRZOhF3XP6z7SJmL+5tCfW8qV06JypwQ== dependencies: - "@jest/core" "^25.5.2" + "@jest/core" "^25.5.4" import-local "^3.0.2" - jest-cli "^25.5.2" + jest-cli "^25.5.4" js-tokens@^4.0.0: version "4.0.0" @@ -2712,7 +2748,15 @@ leven@^3.1.0: resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== -levn@^0.3.0, levn@~0.3.0: +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= @@ -2777,6 +2821,11 @@ lodash.sortby@^4.7.0: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== +lodash@^4.17.19: + version "4.17.20" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" + integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== + lolex@^5.0.0: version "5.1.2" resolved "https://registry.yarnpkg.com/lolex/-/lolex-5.1.2.tgz#953694d098ce7c07bc5ed6d0e42bc6c0c6d5a367" @@ -2911,11 +2960,6 @@ ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -mute-stream@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== - nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" @@ -3047,7 +3091,7 @@ onetime@^5.1.0: dependencies: mimic-fn "^2.1.0" -optionator@^0.8.1, optionator@^0.8.3: +optionator@^0.8.1: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== @@ -3059,10 +3103,17 @@ optionator@^0.8.1, optionator@^0.8.3: type-check "~0.3.2" word-wrap "~1.2.3" -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" p-each-series@^2.1.0: version "2.1.0" @@ -3160,25 +3211,25 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= -pg-connection-string@0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-0.1.3.tgz#da1847b20940e42ee1492beaf65d49d91b245df7" - integrity sha1-2hhHsglA5C7hSSvq9l1J2RskXfc= +pg-connection-string@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.3.0.tgz#c13fcb84c298d0bfa9ba12b40dd6c23d946f55d6" + integrity sha512-ukMTJXLI7/hZIwTW7hGMZJ0Lj0S2XQBCJ4Shv4y1zgQ/vqVea+FLhzywvPj0ujSuofu+yA4MYHGZPTsgjBgJ+w== pg-int8@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== -pg-packet-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pg-packet-stream/-/pg-packet-stream-1.1.0.tgz#e45c3ae678b901a2873af1e17b92d787962ef914" - integrity sha512-kRBH0tDIW/8lfnnOyTwKD23ygJ/kexQVXZs7gEyBljw4FYqimZFxnMMx50ndZ8In77QgfGuItS5LLclC2TtjYg== +pg-pool@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.2.1.tgz#5f4afc0f58063659aeefa952d36af49fa28b30e0" + integrity sha512-BQDPWUeKenVrMMDN9opfns/kZo4lxmSWhIqo+cSAF7+lfi9ZclQbr9vfnlNaPr8wYF3UYjm5X0yPAhbcgqNOdA== -pg-pool@^2.0.10: - version "2.0.10" - resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-2.0.10.tgz#842ee23b04e86824ce9d786430f8365082d81c4a" - integrity sha512-qdwzY92bHf3nwzIUcj+zJ0Qo5lpG/YxchahxIN8+ZVmXqkahKXsnl2aiJPHLYN9o5mB/leG+Xh6XKxtP7e0sjg== +pg-protocol@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.2.5.tgz#28a1492cde11646ff2d2d06bdee42a3ba05f126c" + integrity sha512-1uYCckkuTfzz/FCefvavRywkowa6M5FohNMF5OjKrqo9PSR8gYc8poVmwwYQaBxhmQdBjhtP514eXy9/Us2xKg== pg-sql2@4.5.0: version "4.5.0" @@ -3200,16 +3251,16 @@ pg-types@^2.1.0: postgres-date "~1.0.4" postgres-interval "^1.1.0" -pg@^7.18.2: - version "7.18.2" - resolved "https://registry.yarnpkg.com/pg/-/pg-7.18.2.tgz#4e219f05a00aff4db6aab1ba02f28ffa4513b0bb" - integrity sha512-Mvt0dGYMwvEADNKy5PMQGlzPudKcKKzJds/VbOeZJpb6f/pI3mmoXX0JksPgI3l3JPP/2Apq7F36O63J7mgveA== +pg@^8.3.3: + version "8.3.3" + resolved "https://registry.yarnpkg.com/pg/-/pg-8.3.3.tgz#0338631ca3c39b4fb425b699d494cab17f5bb7eb" + integrity sha512-wmUyoQM/Xzmo62wgOdQAn5tl7u+IA1ZYK7qbuppi+3E+Gj4hlUxVHjInulieWrd0SfHi/ADriTb5ILJ/lsJrSg== dependencies: buffer-writer "2.0.0" packet-reader "1.0.0" - pg-connection-string "0.1.3" - pg-packet-stream "^1.1.0" - pg-pool "^2.0.10" + pg-connection-string "^2.3.0" + pg-pool "^3.2.1" + pg-protocol "^1.2.5" pg-types "^2.1.0" pgpass "1.x" semver "4.3.2" @@ -3290,6 +3341,11 @@ postgres-interval@^1.1.0, postgres-interval@^1.2.0: dependencies: xtend "^4.0.0" +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" @@ -3302,10 +3358,10 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@1.19.1: - version "1.19.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" - integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== +prettier@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.1.1.tgz#d9485dd5e499daa6cb547023b87a6cf51bee37d6" + integrity sha512-9bY+5ZWCfqj3ghYBLxApy2zf6m+NJo5GzmLTpr9FsApsfjriNnS2dahWReHMi7qNPhhHl9SYHJs2cHZLgexNIw== pretty-format@^25.5.0: version "25.5.0" @@ -3395,10 +3451,10 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexpp@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" - integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== +regexpp@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" + integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== remove-trailing-separator@^1.0.1: version "1.1.0" @@ -3415,19 +3471,19 @@ repeat-string@^1.6.1: resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= -request-promise-core@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.3.tgz#e9a3c081b51380dfea677336061fea879a829ee9" - integrity sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ== +request-promise-core@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" + integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== dependencies: - lodash "^4.17.15" + lodash "^4.17.19" request-promise-native@^1.0.7: - version "1.0.8" - resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.8.tgz#a455b960b826e44e2bf8999af64dff2bfe58cb36" - integrity sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ== + version "1.0.9" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" + integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== dependencies: - request-promise-core "1.1.3" + request-promise-core "1.1.4" stealthy-require "^1.1.1" tough-cookie "^2.3.3" @@ -3501,14 +3557,6 @@ resolve@^1.10.0, resolve@^1.17.0, resolve@^1.3.2: dependencies: path-parse "^1.0.6" -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" @@ -3533,18 +3581,6 @@ rsvp@^4.8.4: resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== -run-async@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== - -rxjs@^6.5.3: - version "6.5.5" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec" - integrity sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ== - dependencies: - tslib "^1.9.0" - safe-buffer@^5.0.1, safe-buffer@^5.1.2: version "5.2.0" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" @@ -3599,11 +3635,16 @@ semver@4.3.2: resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.2.tgz#c7a07158a80bedd052355b770d82d6640f803be7" integrity sha1-x6BxWKgL7dBSNVt3DYLWZA+AO+c= -semver@^6.0.0, semver@^6.1.2, semver@^6.3.0: +semver@^6.0.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^7.2.1, semver@^7.3.2: + version "7.3.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" + integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== + set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -3874,10 +3915,10 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -strip-json-comments@^3.0.1: - version "3.1.0" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180" - integrity sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w== +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== supports-color@^5.3.0: version "5.5.0" @@ -3943,18 +3984,11 @@ throat@^5.0.0: resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== -through@2, through@^2.3.6: +through@2: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - tmpl@1.0.x: version "1.0.4" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" @@ -4021,7 +4055,7 @@ tr46@^1.0.1: dependencies: punycode "^2.1.0" -tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: +tslib@^1.8.1, tslib@^1.9.3: version "1.11.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== @@ -4045,6 +4079,13 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0: resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" @@ -4125,9 +4166,9 @@ v8-compile-cache@^2.0.3: integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== v8-to-istanbul@^4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-4.1.3.tgz#22fe35709a64955f49a08a7c7c959f6520ad6f20" - integrity sha512-sAjOC+Kki6aJVbUOXJbcR0MnbfjvBzwKZazEJymA2IX49uoOdEdk+4fBq5cXgYgiyKtAyrrJNtBZdOeDIF+Fng== + version "4.1.4" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-4.1.4.tgz#b97936f21c0e2d9996d4985e5c5156e9d4e49cd6" + integrity sha512-Rw6vJHj1mbdK8edjR7+zuJrpDtKIgNdAvTSAcpYfgMIw+u2dPDntD3dgN4XQFLU2/fvFQdzj+EeSGfd/jnY5fQ== dependencies: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" @@ -4218,7 +4259,7 @@ which@^2.0.1, which@^2.0.2: dependencies: isexe "^2.0.0" -word-wrap@~1.2.3: +word-wrap@^1.2.3, word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== @@ -4255,9 +4296,9 @@ write@1.0.3: mkdirp "^0.5.1" ws@^7.0.0: - version "7.2.5" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.5.tgz#abb1370d4626a5a9cd79d8de404aa18b3465d10d" - integrity sha512-C34cIU4+DB2vMyAbmEKossWq2ZQDr6QEyuuCzWrM9zfw1sGc0mYiJ0UnG9zzNykt49C2Fi34hvr2vssFQRS6EA== + version "7.3.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8" + integrity sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA== xml-name-validator@^3.0.0: version "3.0.0"