diff --git a/.gitignore b/.gitignore index f06235c..84f3869 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ -node_modules dist +node_modules +*.tsbuildinfo diff --git a/.prettierrc.js b/.prettierrc.js index e3fe533..9e27fc2 100644 --- a/.prettierrc.js +++ b/.prettierrc.js @@ -1,3 +1,3 @@ -module.exports = { +export default { trailingComma: "es5" } diff --git a/README.md b/README.md index cd90567..296dd38 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ have specific needs please get in touch! ## Usage -This plugin requires PostGraphile **v4.4.0** or higher to function correctly. +This plugin requires PostGraphile **v5.0.0-rc.6** or higher to function correctly. Add PostGIS to your database: @@ -43,8 +43,18 @@ CREATE EXTENSION IF NOT EXISTS postgis WITH SCHEMA public; Load the plugin: -``` -postgraphile --append-plugins @graphile/postgis +```ts +import { PostgisPreset } from "@graphile/postgis"; + +const preset: GraphileConfig.Preset = { + extends: [ + // ... Amber/V4/etc presets + PostgisPreset, + ], + // ... +}; + +export default preset; ``` #### Querying and mutating diff --git a/__tests__/__snapshots__/schema.minimal_dimensional.test.ts.snap b/__tests__/__snapshots__/schema.minimal_dimensional.test.ts.snap index e78c169..0e51446 100644 --- a/__tests__/__snapshots__/schema.minimal_dimensional.test.ts.snap +++ b/__tests__/__snapshots__/schema.minimal_dimensional.test.ts.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`prints a schema with this plugin 1`] = ` """All input for the create \`Foo\` mutation.""" @@ -27,7 +27,7 @@ type CreateFooPayload { """An edge for our \`Foo\`. May be used by Relay 1.""" fooEdge( """The method to use when ordering \`Foo\`.""" - orderBy: [FoosOrderBy!] = [PRIMARY_KEY_ASC] + orderBy: [FoosOrderBy!]! = [PRIMARY_KEY_ASC] ): FoosEdge """ @@ -78,7 +78,7 @@ type DeleteFooPayload { """An edge for our \`Foo\`. May be used by Relay 1.""" fooEdge( """The method to use when ordering \`Foo\`.""" - orderBy: [FoosOrderBy!] = [PRIMARY_KEY_ASC] + orderBy: [FoosOrderBy!]! = [PRIMARY_KEY_ASC] ): FoosEdge """ @@ -125,7 +125,7 @@ type FoosConnection { """ A list of edges which contains the \`Foo\` and cursor to aid in pagination. """ - edges: [FoosEdge!]! + edges: [FoosEdge]! """A list of \`Foo\` objects.""" nodes: [Foo]! @@ -171,59 +171,6 @@ interface GeometryGeometry { srid: Int! } -type GeometryGeometryCollection implements GeometryGeometry & GeometryInterface { - geojson: GeoJSON - geometries: [GeometryGeometry] - srid: Int! -} - -"""All geometry types implement this interface""" -interface GeometryInterface { - """Converts the object to GeoJSON""" - geojson: GeoJSON - - """Spatial reference identifier (SRID)""" - srid: Int! -} - -type GeometryLineString implements GeometryGeometry & GeometryInterface { - geojson: GeoJSON - points: [GeometryPoint] - srid: Int! -} - -type GeometryMultiLineString implements GeometryGeometry & GeometryInterface { - geojson: GeoJSON - lines: [GeometryLineString] - srid: Int! -} - -type GeometryMultiPoint implements GeometryGeometry & GeometryInterface { - geojson: GeoJSON - points: [GeometryPoint] - srid: Int! -} - -type GeometryMultiPolygon implements GeometryGeometry & GeometryInterface { - geojson: GeoJSON - polygons: [GeometryPolygon] - srid: Int! -} - -type GeometryPoint implements GeometryGeometry & GeometryInterface { - geojson: GeoJSON - srid: Int! - x: Float! - y: Float! -} - -type GeometryPolygon implements GeometryGeometry & GeometryInterface { - exterior: GeometryLineString - geojson: GeoJSON - interiors: [GeometryLineString] - srid: Int! -} - """ The root mutation type which contains root level fields which mutate data. """ @@ -328,6 +275,8 @@ type Query implements Node { """The globally unique \`ID\` to be used in selecting a single \`Foo\`.""" nodeId: ID! ): Foo + + """Get a single \`Foo\`.""" fooById(id: Int!): Foo """Fetches an object given its globally unique \`ID\`.""" @@ -396,7 +345,7 @@ type UpdateFooPayload { """An edge for our \`Foo\`. May be used by Relay 1.""" fooEdge( """The method to use when ordering \`Foo\`.""" - orderBy: [FoosOrderBy!] = [PRIMARY_KEY_ASC] + orderBy: [FoosOrderBy!]! = [PRIMARY_KEY_ASC] ): FoosEdge """ @@ -404,5 +353,4 @@ type UpdateFooPayload { """ query: Query } - `; diff --git a/__tests__/__snapshots__/schema.minimal_type.test.ts.snap b/__tests__/__snapshots__/schema.minimal_type.test.ts.snap index 71a7adf..05a2f71 100644 --- a/__tests__/__snapshots__/schema.minimal_type.test.ts.snap +++ b/__tests__/__snapshots__/schema.minimal_type.test.ts.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`prints a schema with this plugin 1`] = ` """All input for the create \`Foo\` mutation.""" @@ -27,7 +27,7 @@ type CreateFooPayload { """An edge for our \`Foo\`. May be used by Relay 1.""" fooEdge( """The method to use when ordering \`Foo\`.""" - orderBy: [FoosOrderBy!] = [PRIMARY_KEY_ASC] + orderBy: [FoosOrderBy!]! = [PRIMARY_KEY_ASC] ): FoosEdge """ @@ -78,7 +78,7 @@ type DeleteFooPayload { """An edge for our \`Foo\`. May be used by Relay 1.""" fooEdge( """The method to use when ordering \`Foo\`.""" - orderBy: [FoosOrderBy!] = [PRIMARY_KEY_ASC] + orderBy: [FoosOrderBy!]! = [PRIMARY_KEY_ASC] ): FoosEdge """ @@ -125,7 +125,7 @@ type FoosConnection { """ A list of edges which contains the \`Foo\` and cursor to aid in pagination. """ - edges: [FoosEdge!]! + edges: [FoosEdge]! """A list of \`Foo\` objects.""" nodes: [Foo]! @@ -291,6 +291,8 @@ type Query implements Node { """The globally unique \`ID\` to be used in selecting a single \`Foo\`.""" nodeId: ID! ): Foo + + """Get a single \`Foo\`.""" fooById(id: Int!): Foo """Fetches an object given its globally unique \`ID\`.""" @@ -359,7 +361,7 @@ type UpdateFooPayload { """An edge for our \`Foo\`. May be used by Relay 1.""" fooEdge( """The method to use when ordering \`Foo\`.""" - orderBy: [FoosOrderBy!] = [PRIMARY_KEY_ASC] + orderBy: [FoosOrderBy!]! = [PRIMARY_KEY_ASC] ): FoosEdge """ @@ -367,5 +369,4 @@ type UpdateFooPayload { """ query: Query } - `; diff --git a/__tests__/__snapshots__/schema.minimal_type_and_srid.test.ts.snap b/__tests__/__snapshots__/schema.minimal_type_and_srid.test.ts.snap index 3fddaa5..187073b 100644 --- a/__tests__/__snapshots__/schema.minimal_type_and_srid.test.ts.snap +++ b/__tests__/__snapshots__/schema.minimal_type_and_srid.test.ts.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`prints a schema with this plugin 1`] = ` """All input for the create \`Foo\` mutation.""" @@ -27,7 +27,7 @@ type CreateFooPayload { """An edge for our \`Foo\`. May be used by Relay 1.""" fooEdge( """The method to use when ordering \`Foo\`.""" - orderBy: [FoosOrderBy!] = [PRIMARY_KEY_ASC] + orderBy: [FoosOrderBy!]! = [PRIMARY_KEY_ASC] ): FoosEdge """ @@ -78,7 +78,7 @@ type DeleteFooPayload { """An edge for our \`Foo\`. May be used by Relay 1.""" fooEdge( """The method to use when ordering \`Foo\`.""" - orderBy: [FoosOrderBy!] = [PRIMARY_KEY_ASC] + orderBy: [FoosOrderBy!]! = [PRIMARY_KEY_ASC] ): FoosEdge """ @@ -125,7 +125,7 @@ type FoosConnection { """ A list of edges which contains the \`Foo\` and cursor to aid in pagination. """ - edges: [FoosEdge!]! + edges: [FoosEdge]! """A list of \`Foo\` objects.""" nodes: [Foo]! @@ -291,6 +291,8 @@ type Query implements Node { """The globally unique \`ID\` to be used in selecting a single \`Foo\`.""" nodeId: ID! ): Foo + + """Get a single \`Foo\`.""" fooById(id: Int!): Foo """Fetches an object given its globally unique \`ID\`.""" @@ -359,7 +361,7 @@ type UpdateFooPayload { """An edge for our \`Foo\`. May be used by Relay 1.""" fooEdge( """The method to use when ordering \`Foo\`.""" - orderBy: [FoosOrderBy!] = [PRIMARY_KEY_ASC] + orderBy: [FoosOrderBy!]! = [PRIMARY_KEY_ASC] ): FoosEdge """ @@ -367,5 +369,4 @@ type UpdateFooPayload { """ query: Query } - `; diff --git a/__tests__/__snapshots__/schema.minimal_unconstrained.test.ts.snap b/__tests__/__snapshots__/schema.minimal_unconstrained.test.ts.snap index fc111c4..8aab2ab 100644 --- a/__tests__/__snapshots__/schema.minimal_unconstrained.test.ts.snap +++ b/__tests__/__snapshots__/schema.minimal_unconstrained.test.ts.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`prints a schema with this plugin 1`] = ` """All input for the create \`Foo\` mutation.""" @@ -27,7 +27,7 @@ type CreateFooPayload { """An edge for our \`Foo\`. May be used by Relay 1.""" fooEdge( """The method to use when ordering \`Foo\`.""" - orderBy: [FoosOrderBy!] = [PRIMARY_KEY_ASC] + orderBy: [FoosOrderBy!]! = [PRIMARY_KEY_ASC] ): FoosEdge """ @@ -78,7 +78,7 @@ type DeleteFooPayload { """An edge for our \`Foo\`. May be used by Relay 1.""" fooEdge( """The method to use when ordering \`Foo\`.""" - orderBy: [FoosOrderBy!] = [PRIMARY_KEY_ASC] + orderBy: [FoosOrderBy!]! = [PRIMARY_KEY_ASC] ): FoosEdge """ @@ -125,7 +125,7 @@ type FoosConnection { """ A list of edges which contains the \`Foo\` and cursor to aid in pagination. """ - edges: [FoosEdge!]! + edges: [FoosEdge]! """A list of \`Foo\` objects.""" nodes: [Foo]! @@ -162,66 +162,6 @@ The \`GeoJSON\` scalar type represents GeoJSON values as specified by[RFC 7946]( """ scalar GeoJSON -"""All geometry XY types implement this interface""" -interface GeometryGeometry { - """Converts the object to GeoJSON""" - geojson: GeoJSON - - """Spatial reference identifier (SRID)""" - srid: Int! -} - -type GeometryGeometryCollection implements GeometryGeometry & GeometryInterface { - geojson: GeoJSON - geometries: [GeometryGeometry] - srid: Int! -} - -type GeometryGeometryCollectionM implements GeometryGeometryM & GeometryInterface { - geojson: GeoJSON - geometries: [GeometryGeometryM] - srid: Int! -} - -type GeometryGeometryCollectionZ implements GeometryGeometryZ & GeometryInterface { - geojson: GeoJSON - geometries: [GeometryGeometryZ] - srid: Int! -} - -type GeometryGeometryCollectionZM implements GeometryGeometryZM & GeometryInterface { - geojson: GeoJSON - geometries: [GeometryGeometryZM] - srid: Int! -} - -"""All geometry XYM types implement this interface""" -interface GeometryGeometryM { - """Converts the object to GeoJSON""" - geojson: GeoJSON - - """Spatial reference identifier (SRID)""" - srid: Int! -} - -"""All geometry XYZ types implement this interface""" -interface GeometryGeometryZ { - """Converts the object to GeoJSON""" - geojson: GeoJSON - - """Spatial reference identifier (SRID)""" - srid: Int! -} - -"""All geometry XYZM types implement this interface""" -interface GeometryGeometryZM { - """Converts the object to GeoJSON""" - geojson: GeoJSON - - """Spatial reference identifier (SRID)""" - srid: Int! -} - """All geometry types implement this interface""" interface GeometryInterface { """Converts the object to GeoJSON""" @@ -231,160 +171,6 @@ interface GeometryInterface { srid: Int! } -type GeometryLineString implements GeometryGeometry & GeometryInterface { - geojson: GeoJSON - points: [GeometryPoint] - srid: Int! -} - -type GeometryLineStringM implements GeometryGeometryM & GeometryInterface { - geojson: GeoJSON - points: [GeometryPointM] - srid: Int! -} - -type GeometryLineStringZ implements GeometryGeometryZ & GeometryInterface { - geojson: GeoJSON - points: [GeometryPointZ] - srid: Int! -} - -type GeometryLineStringZM implements GeometryGeometryZM & GeometryInterface { - geojson: GeoJSON - points: [GeometryPointZM] - srid: Int! -} - -type GeometryMultiLineString implements GeometryGeometry & GeometryInterface { - geojson: GeoJSON - lines: [GeometryLineString] - srid: Int! -} - -type GeometryMultiLineStringM implements GeometryGeometryM & GeometryInterface { - geojson: GeoJSON - lines: [GeometryLineStringM] - srid: Int! -} - -type GeometryMultiLineStringZ implements GeometryGeometryZ & GeometryInterface { - geojson: GeoJSON - lines: [GeometryLineStringZ] - srid: Int! -} - -type GeometryMultiLineStringZM implements GeometryGeometryZM & GeometryInterface { - geojson: GeoJSON - lines: [GeometryLineStringZM] - srid: Int! -} - -type GeometryMultiPoint implements GeometryGeometry & GeometryInterface { - geojson: GeoJSON - points: [GeometryPoint] - srid: Int! -} - -type GeometryMultiPointM implements GeometryGeometryM & GeometryInterface { - geojson: GeoJSON - points: [GeometryPointM] - srid: Int! -} - -type GeometryMultiPointZ implements GeometryGeometryZ & GeometryInterface { - geojson: GeoJSON - points: [GeometryPointZ] - srid: Int! -} - -type GeometryMultiPointZM implements GeometryGeometryZM & GeometryInterface { - geojson: GeoJSON - points: [GeometryPointZM] - srid: Int! -} - -type GeometryMultiPolygon implements GeometryGeometry & GeometryInterface { - geojson: GeoJSON - polygons: [GeometryPolygon] - srid: Int! -} - -type GeometryMultiPolygonM implements GeometryGeometryM & GeometryInterface { - geojson: GeoJSON - polygons: [GeometryPolygonM] - srid: Int! -} - -type GeometryMultiPolygonZ implements GeometryGeometryZ & GeometryInterface { - geojson: GeoJSON - polygons: [GeometryPolygonZ] - srid: Int! -} - -type GeometryMultiPolygonZM implements GeometryGeometryZM & GeometryInterface { - geojson: GeoJSON - polygons: [GeometryPolygonZM] - srid: Int! -} - -type GeometryPoint implements GeometryGeometry & GeometryInterface { - geojson: GeoJSON - srid: Int! - x: Float! - y: Float! -} - -type GeometryPointM implements GeometryGeometryM & GeometryInterface { - geojson: GeoJSON - srid: Int! - x: Float! - y: Float! -} - -type GeometryPointZ implements GeometryGeometryZ & GeometryInterface { - geojson: GeoJSON - srid: Int! - x: Float! - y: Float! - z: Float! -} - -type GeometryPointZM implements GeometryGeometryZM & GeometryInterface { - geojson: GeoJSON - srid: Int! - x: Float! - y: Float! - z: Float! -} - -type GeometryPolygon implements GeometryGeometry & GeometryInterface { - exterior: GeometryLineString - geojson: GeoJSON - interiors: [GeometryLineString] - srid: Int! -} - -type GeometryPolygonM implements GeometryGeometryM & GeometryInterface { - exterior: GeometryLineStringM - geojson: GeoJSON - interiors: [GeometryLineStringM] - srid: Int! -} - -type GeometryPolygonZ implements GeometryGeometryZ & GeometryInterface { - exterior: GeometryLineStringZ - geojson: GeoJSON - interiors: [GeometryLineStringZ] - srid: Int! -} - -type GeometryPolygonZM implements GeometryGeometryZM & GeometryInterface { - exterior: GeometryLineStringZM - geojson: GeoJSON - interiors: [GeometryLineStringZM] - srid: Int! -} - """ The root mutation type which contains root level fields which mutate data. """ @@ -489,6 +275,8 @@ type Query implements Node { """The globally unique \`ID\` to be used in selecting a single \`Foo\`.""" nodeId: ID! ): Foo + + """Get a single \`Foo\`.""" fooById(id: Int!): Foo """Fetches an object given its globally unique \`ID\`.""" @@ -557,7 +345,7 @@ type UpdateFooPayload { """An edge for our \`Foo\`. May be used by Relay 1.""" fooEdge( """The method to use when ordering \`Foo\`.""" - orderBy: [FoosOrderBy!] = [PRIMARY_KEY_ASC] + orderBy: [FoosOrderBy!]! = [PRIMARY_KEY_ASC] ): FoosEdge """ @@ -565,5 +353,4 @@ type UpdateFooPayload { """ query: Query } - `; diff --git a/__tests__/__snapshots__/schema.test.ts.snap b/__tests__/__snapshots__/schema.test.ts.snap index 58cc6e5..dbe5b5b 100644 --- a/__tests__/__snapshots__/schema.test.ts.snap +++ b/__tests__/__snapshots__/schema.test.ts.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`prints a schema with this plugin 1`] = ` """All input for the create \`GisDebug\` mutation.""" @@ -27,7 +27,7 @@ type CreateGisDebugPayload { """An edge for our \`GisDebug\`. May be used by Relay 1.""" gisDebugEdge( """The method to use when ordering \`GisDebug\`.""" - orderBy: [GisDebugsOrderBy!] = [PRIMARY_KEY_ASC] + orderBy: [GisDebugsOrderBy!]! = [PRIMARY_KEY_ASC] ): GisDebugsEdge """ @@ -78,7 +78,7 @@ type DeleteGisDebugPayload { """An edge for our \`GisDebug\`. May be used by Relay 1.""" gisDebugEdge( """The method to use when ordering \`GisDebug\`.""" - orderBy: [GisDebugsOrderBy!] = [PRIMARY_KEY_ASC] + orderBy: [GisDebugsOrderBy!]! = [PRIMARY_KEY_ASC] ): GisDebugsEdge """ @@ -973,7 +973,7 @@ type GisDebugsConnection { """ A list of edges which contains the \`GisDebug\` and cursor to aid in pagination. """ - edges: [GisDebugsEdge!]! + edges: [GisDebugsEdge]! """A list of \`GisDebug\` objects.""" nodes: [GisDebug]! @@ -1239,6 +1239,8 @@ type Query implements Node { """The globally unique \`ID\` to be used in selecting a single \`GisDebug\`.""" nodeId: ID! ): GisDebug + + """Get a single \`GisDebug\`.""" gisDebugById(id: Int!): GisDebug """Fetches an object given its globally unique \`ID\`.""" @@ -1307,7 +1309,7 @@ type UpdateGisDebugPayload { """An edge for our \`GisDebug\`. May be used by Relay 1.""" gisDebugEdge( """The method to use when ordering \`GisDebug\`.""" - orderBy: [GisDebugsOrderBy!] = [PRIMARY_KEY_ASC] + orderBy: [GisDebugsOrderBy!]! = [PRIMARY_KEY_ASC] ): GisDebugsEdge """ @@ -1315,5 +1317,4 @@ type UpdateGisDebugPayload { """ query: Query } - `; diff --git a/__tests__/helpers.ts b/__tests__/helpers.ts index 58e2a27..950bafd 100644 --- a/__tests__/helpers.ts +++ b/__tests__/helpers.ts @@ -1,4 +1,9 @@ import * as pg from "pg"; +import PostgisPreset from "../src"; +import { makeSchema } from "postgraphile/graphile-build"; +import { makePgService } from "postgraphile/adaptors/pg"; +import { PostGraphileAmberPreset } from "postgraphile/presets/amber"; +import { makeV4Preset } from "postgraphile/presets/v4"; export async function withPgPool( cb: (pool: pg.Pool) => Promise @@ -39,3 +44,15 @@ export async function withTransaction( } }); } + +export async function makePostGraphileSchema(pool: pg.Pool, schemas: string[]) { + return await makeSchema({ + extends: [PostGraphileAmberPreset, makeV4Preset({}), PostgisPreset], + pgServices: [ + makePgService({ + pool, + schemas, + }), + ], + }); +} diff --git a/__tests__/integration/__snapshots__/queries.test.ts.snap b/__tests__/integration/__snapshots__/queries.test.ts.snap index d162fcc..f68d4a3 100644 --- a/__tests__/integration/__snapshots__/queries.test.ts.snap +++ b/__tests__/integration/__snapshots__/queries.test.ts.snap @@ -1,14 +1,38 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`geog.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geog": Object { +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geog": { "__typename": "GeographyGeometryCollection", - "geojson": "{\\"type\\":\\"GeometryCollection\\",\\"geometries\\":[{\\"type\\":\\"Point\\",\\"coordinates\\":[4,6]},{\\"type\\":\\"LineString\\",\\"coordinates\\":[[4,6],[7,10]]}]}", + "geojson": { + "geometries": [ + { + "coordinates": [ + 4, + 6, + ], + "type": "Point", + }, + { + "coordinates": [ + [ + 4, + 6, + ], + [ + 7, + 10, + ], + ], + "type": "LineString", + }, + ], + "type": "GeometryCollection", + }, }, }, ], @@ -18,14 +42,20 @@ Object { `; exports[`geog_geometry.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geogGeometry": Object { +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geogGeometry": { "__typename": "GeographyPoint", - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10]}", + "geojson": { + "coordinates": [ + 30, + 10, + ], + "type": "Point", + }, "latitude": 10, "longitude": 30, }, @@ -37,14 +67,20 @@ Object { `; exports[`geog_geometrym.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geogGeometrym": Object { +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geogGeometrym": { "__typename": "GeographyPointM", - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10]}", + "geojson": { + "coordinates": [ + 30, + 10, + ], + "type": "Point", + }, "latitude": 10, "longitude": 30, }, @@ -56,14 +92,21 @@ Object { `; exports[`geog_geometryz.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geogGeometryz": Object { +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geogGeometryz": { "__typename": "GeographyPointZ", - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10,80]}", + "geojson": { + "coordinates": [ + 30, + 10, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 10, "longitude": 30, @@ -76,14 +119,21 @@ Object { `; exports[`geog_geometryzm.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geogGeometryzm": Object { +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geogGeometryzm": { "__typename": "GeographyPointZM", - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10,80]}", + "geojson": { + "coordinates": [ + 30, + 10, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 10, "longitude": 30, @@ -96,26 +146,60 @@ Object { `; exports[`geog_linestring.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geogLinestring": Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[30,10],[10,30],[40,40]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geogLinestring": { + "geojson": { + "coordinates": [ + [ + 30, + 10, + ], + [ + 10, + 30, + ], + [ + 40, + 40, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 30, + 10, + ], + "type": "Point", + }, "latitude": 10, "longitude": 30, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,30]}", + { + "geojson": { + "coordinates": [ + 10, + 30, + ], + "type": "Point", + }, "latitude": 30, "longitude": 10, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,40]}", + { + "geojson": { + "coordinates": [ + 40, + 40, + ], + "type": "Point", + }, "latitude": 40, "longitude": 40, }, @@ -129,26 +213,60 @@ Object { `; exports[`geog_linestringm.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geogLinestringm": Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[30,10],[10,30],[40,40]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geogLinestringm": { + "geojson": { + "coordinates": [ + [ + 30, + 10, + ], + [ + 10, + 30, + ], + [ + 40, + 40, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 30, + 10, + ], + "type": "Point", + }, "latitude": 10, "longitude": 30, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,30]}", + { + "geojson": { + "coordinates": [ + 10, + 30, + ], + "type": "Point", + }, "latitude": 30, "longitude": 10, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,40]}", + { + "geojson": { + "coordinates": [ + 40, + 40, + ], + "type": "Point", + }, "latitude": 40, "longitude": 40, }, @@ -162,28 +280,68 @@ Object { `; exports[`geog_linestringz.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geogLinestringz": Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[30,10,80],[10,30,80],[40,40,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10,80]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geogLinestringz": { + "geojson": { + "coordinates": [ + [ + 30, + 10, + 80, + ], + [ + 10, + 30, + 80, + ], + [ + 40, + 40, + 80, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 30, + 10, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 10, "longitude": 30, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,30,80]}", + { + "geojson": { + "coordinates": [ + 10, + 30, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 30, "longitude": 10, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,40,80]}", + { + "geojson": { + "coordinates": [ + 40, + 40, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 40, "longitude": 40, @@ -198,28 +356,68 @@ Object { `; exports[`geog_linestringzm.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geogLinestringzm": Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[30,10,80],[10,30,80],[40,40,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10,80]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geogLinestringzm": { + "geojson": { + "coordinates": [ + [ + 30, + 10, + 80, + ], + [ + 10, + 30, + 80, + ], + [ + 40, + 40, + 80, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 30, + 10, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 10, "longitude": 30, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,30,80]}", + { + "geojson": { + "coordinates": [ + 10, + 30, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 30, "longitude": 10, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,40,80]}", + { + "geojson": { + "coordinates": [ + 40, + 40, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 40, "longitude": 40, @@ -234,54 +432,168 @@ Object { `; exports[`geog_multilinestring.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geogMultilinestring": Object { - "geojson": "{\\"type\\":\\"MultiLineString\\",\\"coordinates\\":[[[10,10],[20,20],[10,40]],[[40,40],[30,30],[40,20],[30,10]]]}", - "lines": Array [ - Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[10,10],[20,20],[10,40]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,10]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geogMultilinestring": { + "geojson": { + "coordinates": [ + [ + [ + 10, + 10, + ], + [ + 20, + 20, + ], + [ + 10, + 40, + ], + ], + [ + [ + 40, + 40, + ], + [ + 30, + 30, + ], + [ + 40, + 20, + ], + [ + 30, + 10, + ], + ], + ], + "type": "MultiLineString", + }, + "lines": [ + { + "geojson": { + "coordinates": [ + [ + 10, + 10, + ], + [ + 20, + 20, + ], + [ + 10, + 40, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 10, + 10, + ], + "type": "Point", + }, "latitude": 10, "longitude": 10, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,20]}", + { + "geojson": { + "coordinates": [ + 20, + 20, + ], + "type": "Point", + }, "latitude": 20, "longitude": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,40]}", + { + "geojson": { + "coordinates": [ + 10, + 40, + ], + "type": "Point", + }, "latitude": 40, "longitude": 10, }, ], }, - Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[40,40],[30,30],[40,20],[30,10]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,40]}", + { + "geojson": { + "coordinates": [ + [ + 40, + 40, + ], + [ + 30, + 30, + ], + [ + 40, + 20, + ], + [ + 30, + 10, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 40, + 40, + ], + "type": "Point", + }, "latitude": 40, "longitude": 40, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,30]}", + { + "geojson": { + "coordinates": [ + 30, + 30, + ], + "type": "Point", + }, "latitude": 30, "longitude": 30, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,20]}", + { + "geojson": { + "coordinates": [ + 40, + 20, + ], + "type": "Point", + }, "latitude": 20, "longitude": 40, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10]}", + { + "geojson": { + "coordinates": [ + 30, + 10, + ], + "type": "Point", + }, "latitude": 10, "longitude": 30, }, @@ -297,54 +609,168 @@ Object { `; exports[`geog_multilinestringm.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geogMultilinestringm": Object { - "geojson": "{\\"type\\":\\"MultiLineString\\",\\"coordinates\\":[[[10,10],[20,20],[10,40]],[[40,40],[30,30],[40,20],[30,10]]]}", - "lines": Array [ - Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[10,10],[20,20],[10,40]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,10]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geogMultilinestringm": { + "geojson": { + "coordinates": [ + [ + [ + 10, + 10, + ], + [ + 20, + 20, + ], + [ + 10, + 40, + ], + ], + [ + [ + 40, + 40, + ], + [ + 30, + 30, + ], + [ + 40, + 20, + ], + [ + 30, + 10, + ], + ], + ], + "type": "MultiLineString", + }, + "lines": [ + { + "geojson": { + "coordinates": [ + [ + 10, + 10, + ], + [ + 20, + 20, + ], + [ + 10, + 40, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 10, + 10, + ], + "type": "Point", + }, "latitude": 10, "longitude": 10, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,20]}", + { + "geojson": { + "coordinates": [ + 20, + 20, + ], + "type": "Point", + }, "latitude": 20, "longitude": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,40]}", + { + "geojson": { + "coordinates": [ + 10, + 40, + ], + "type": "Point", + }, "latitude": 40, "longitude": 10, }, ], }, - Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[40,40],[30,30],[40,20],[30,10]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,40]}", + { + "geojson": { + "coordinates": [ + [ + 40, + 40, + ], + [ + 30, + 30, + ], + [ + 40, + 20, + ], + [ + 30, + 10, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 40, + 40, + ], + "type": "Point", + }, "latitude": 40, "longitude": 40, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,30]}", + { + "geojson": { + "coordinates": [ + 30, + 30, + ], + "type": "Point", + }, "latitude": 30, "longitude": 30, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,20]}", + { + "geojson": { + "coordinates": [ + 40, + 20, + ], + "type": "Point", + }, "latitude": 20, "longitude": 40, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10]}", + { + "geojson": { + "coordinates": [ + 30, + 10, + ], + "type": "Point", + }, "latitude": 10, "longitude": 30, }, @@ -360,60 +786,195 @@ Object { `; exports[`geog_multilinestringz.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geogMultilinestringz": Object { - "geojson": "{\\"type\\":\\"MultiLineString\\",\\"coordinates\\":[[[10,10,80],[20,20,80],[10,40,80]],[[40,40,80],[30,30,80],[40,20,80],[30,10,80]]]}", - "lines": Array [ - Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[10,10,80],[20,20,80],[10,40,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,10,80]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geogMultilinestringz": { + "geojson": { + "coordinates": [ + [ + [ + 10, + 10, + 80, + ], + [ + 20, + 20, + 80, + ], + [ + 10, + 40, + 80, + ], + ], + [ + [ + 40, + 40, + 80, + ], + [ + 30, + 30, + 80, + ], + [ + 40, + 20, + 80, + ], + [ + 30, + 10, + 80, + ], + ], + ], + "type": "MultiLineString", + }, + "lines": [ + { + "geojson": { + "coordinates": [ + [ + 10, + 10, + 80, + ], + [ + 20, + 20, + 80, + ], + [ + 10, + 40, + 80, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 10, + 10, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 10, "longitude": 10, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,20,80]}", + { + "geojson": { + "coordinates": [ + 20, + 20, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 20, "longitude": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,40,80]}", + { + "geojson": { + "coordinates": [ + 10, + 40, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 40, "longitude": 10, }, ], }, - Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[40,40,80],[30,30,80],[40,20,80],[30,10,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,40,80]}", + { + "geojson": { + "coordinates": [ + [ + 40, + 40, + 80, + ], + [ + 30, + 30, + 80, + ], + [ + 40, + 20, + 80, + ], + [ + 30, + 10, + 80, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 40, + 40, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 40, "longitude": 40, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,30,80]}", + { + "geojson": { + "coordinates": [ + 30, + 30, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 30, "longitude": 30, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,20,80]}", + { + "geojson": { + "coordinates": [ + 40, + 20, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 20, "longitude": 40, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10,80]}", + { + "geojson": { + "coordinates": [ + 30, + 10, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 10, "longitude": 30, @@ -430,60 +991,195 @@ Object { `; exports[`geog_multilinestringzm.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geogMultilinestringzm": Object { - "geojson": "{\\"type\\":\\"MultiLineString\\",\\"coordinates\\":[[[10,10,80],[20,20,80],[10,40,80]],[[40,40,80],[30,30,80],[40,20,80],[30,10,80]]]}", - "lines": Array [ - Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[10,10,80],[20,20,80],[10,40,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,10,80]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geogMultilinestringzm": { + "geojson": { + "coordinates": [ + [ + [ + 10, + 10, + 80, + ], + [ + 20, + 20, + 80, + ], + [ + 10, + 40, + 80, + ], + ], + [ + [ + 40, + 40, + 80, + ], + [ + 30, + 30, + 80, + ], + [ + 40, + 20, + 80, + ], + [ + 30, + 10, + 80, + ], + ], + ], + "type": "MultiLineString", + }, + "lines": [ + { + "geojson": { + "coordinates": [ + [ + 10, + 10, + 80, + ], + [ + 20, + 20, + 80, + ], + [ + 10, + 40, + 80, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 10, + 10, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 10, "longitude": 10, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,20,80]}", + { + "geojson": { + "coordinates": [ + 20, + 20, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 20, "longitude": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,40,80]}", + { + "geojson": { + "coordinates": [ + 10, + 40, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 40, "longitude": 10, }, ], }, - Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[40,40,80],[30,30,80],[40,20,80],[30,10,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,40,80]}", + { + "geojson": { + "coordinates": [ + [ + 40, + 40, + 80, + ], + [ + 30, + 30, + 80, + ], + [ + 40, + 20, + 80, + ], + [ + 30, + 10, + 80, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 40, + 40, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 40, "longitude": 40, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,30,80]}", + { + "geojson": { + "coordinates": [ + 30, + 30, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 30, "longitude": 30, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,20,80]}", + { + "geojson": { + "coordinates": [ + 40, + 20, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 20, "longitude": 40, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10,80]}", + { + "geojson": { + "coordinates": [ + 30, + 10, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 10, "longitude": 30, @@ -500,31 +1196,75 @@ Object { `; exports[`geog_multipoint.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geogMultipoint": Object { - "geojson": "{\\"type\\":\\"MultiPoint\\",\\"coordinates\\":[[10,40],[40,30],[20,20],[30,10]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,40]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geogMultipoint": { + "geojson": { + "coordinates": [ + [ + 10, + 40, + ], + [ + 40, + 30, + ], + [ + 20, + 20, + ], + [ + 30, + 10, + ], + ], + "type": "MultiPoint", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 10, + 40, + ], + "type": "Point", + }, "latitude": 40, "longitude": 10, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,30]}", + { + "geojson": { + "coordinates": [ + 40, + 30, + ], + "type": "Point", + }, "latitude": 30, "longitude": 40, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,20]}", + { + "geojson": { + "coordinates": [ + 20, + 20, + ], + "type": "Point", + }, "latitude": 20, "longitude": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10]}", + { + "geojson": { + "coordinates": [ + 30, + 10, + ], + "type": "Point", + }, "latitude": 10, "longitude": 30, }, @@ -538,31 +1278,75 @@ Object { `; exports[`geog_multipointm.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geogMultipointm": Object { - "geojson": "{\\"type\\":\\"MultiPoint\\",\\"coordinates\\":[[10,40],[40,30],[20,20],[30,10]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,40]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geogMultipointm": { + "geojson": { + "coordinates": [ + [ + 10, + 40, + ], + [ + 40, + 30, + ], + [ + 20, + 20, + ], + [ + 30, + 10, + ], + ], + "type": "MultiPoint", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 10, + 40, + ], + "type": "Point", + }, "latitude": 40, "longitude": 10, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,30]}", + { + "geojson": { + "coordinates": [ + 40, + 30, + ], + "type": "Point", + }, "latitude": 30, "longitude": 40, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,20]}", + { + "geojson": { + "coordinates": [ + 20, + 20, + ], + "type": "Point", + }, "latitude": 20, "longitude": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10]}", + { + "geojson": { + "coordinates": [ + 30, + 10, + ], + "type": "Point", + }, "latitude": 10, "longitude": 30, }, @@ -576,34 +1360,86 @@ Object { `; exports[`geog_multipointz.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geogMultipointz": Object { - "geojson": "{\\"type\\":\\"MultiPoint\\",\\"coordinates\\":[[10,40,80],[40,30,80],[20,20,80],[30,10,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,40,80]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geogMultipointz": { + "geojson": { + "coordinates": [ + [ + 10, + 40, + 80, + ], + [ + 40, + 30, + 80, + ], + [ + 20, + 20, + 80, + ], + [ + 30, + 10, + 80, + ], + ], + "type": "MultiPoint", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 10, + 40, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 40, "longitude": 10, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,30,80]}", + { + "geojson": { + "coordinates": [ + 40, + 30, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 30, "longitude": 40, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,20,80]}", + { + "geojson": { + "coordinates": [ + 20, + 20, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 20, "longitude": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10,80]}", + { + "geojson": { + "coordinates": [ + 30, + 10, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 10, "longitude": 30, @@ -618,34 +1454,86 @@ Object { `; exports[`geog_multipointzm.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geogMultipointzm": Object { - "geojson": "{\\"type\\":\\"MultiPoint\\",\\"coordinates\\":[[10,40,80],[40,30,80],[20,20,80],[30,10,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,40,80]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geogMultipointzm": { + "geojson": { + "coordinates": [ + [ + 10, + 40, + 80, + ], + [ + 40, + 30, + 80, + ], + [ + 20, + 20, + 80, + ], + [ + 30, + 10, + 80, + ], + ], + "type": "MultiPoint", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 10, + 40, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 40, "longitude": 10, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,30,80]}", + { + "geojson": { + "coordinates": [ + 40, + 30, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 30, "longitude": 40, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,20,80]}", + { + "geojson": { + "coordinates": [ + 20, + 20, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 20, "longitude": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10,80]}", + { + "geojson": { + "coordinates": [ + 30, + 10, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 10, "longitude": 30, @@ -660,101 +1548,393 @@ Object { `; exports[`geog_multipolygon.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geogMultipolygon": Object { - "geojson": "{\\"type\\":\\"MultiPolygon\\",\\"coordinates\\":[[[[40,40],[20,45],[45,30],[40,40]]],[[[20,35],[10,30],[10,10],[30,5],[45,20],[20,35]],[[30,20],[20,15],[20,25],[30,20]]]]}", - "polygons": Array [ - Object { - "exterior": Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[40,40],[20,45],[45,30],[40,40]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,40]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geogMultipolygon": { + "geojson": { + "coordinates": [ + [ + [ + [ + 40, + 40, + ], + [ + 20, + 45, + ], + [ + 45, + 30, + ], + [ + 40, + 40, + ], + ], + ], + [ + [ + [ + 20, + 35, + ], + [ + 10, + 30, + ], + [ + 10, + 10, + ], + [ + 30, + 5, + ], + [ + 45, + 20, + ], + [ + 20, + 35, + ], + ], + [ + [ + 30, + 20, + ], + [ + 20, + 15, + ], + [ + 20, + 25, + ], + [ + 30, + 20, + ], + ], + ], + ], + "type": "MultiPolygon", + }, + "polygons": [ + { + "exterior": { + "geojson": { + "coordinates": [ + [ + 40, + 40, + ], + [ + 20, + 45, + ], + [ + 45, + 30, + ], + [ + 40, + 40, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 40, + 40, + ], + "type": "Point", + }, "latitude": 40, "longitude": 40, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,45]}", + { + "geojson": { + "coordinates": [ + 20, + 45, + ], + "type": "Point", + }, "latitude": 45, "longitude": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[45,30]}", + { + "geojson": { + "coordinates": [ + 45, + 30, + ], + "type": "Point", + }, "latitude": 30, "longitude": 45, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,40]}", + { + "geojson": { + "coordinates": [ + 40, + 40, + ], + "type": "Point", + }, "latitude": 40, "longitude": 40, }, ], }, - "geojson": "{\\"type\\":\\"Polygon\\",\\"coordinates\\":[[[40,40],[20,45],[45,30],[40,40]]]}", - "interiors": Array [], - }, - Object { - "exterior": Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[20,35],[10,30],[10,10],[30,5],[45,20],[20,35]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,35]}", + "geojson": { + "coordinates": [ + [ + [ + 40, + 40, + ], + [ + 20, + 45, + ], + [ + 45, + 30, + ], + [ + 40, + 40, + ], + ], + ], + "type": "Polygon", + }, + "interiors": [], + }, + { + "exterior": { + "geojson": { + "coordinates": [ + [ + 20, + 35, + ], + [ + 10, + 30, + ], + [ + 10, + 10, + ], + [ + 30, + 5, + ], + [ + 45, + 20, + ], + [ + 20, + 35, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 20, + 35, + ], + "type": "Point", + }, "latitude": 35, "longitude": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,30]}", + { + "geojson": { + "coordinates": [ + 10, + 30, + ], + "type": "Point", + }, "latitude": 30, "longitude": 10, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,10]}", + { + "geojson": { + "coordinates": [ + 10, + 10, + ], + "type": "Point", + }, "latitude": 10, "longitude": 10, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,5]}", + { + "geojson": { + "coordinates": [ + 30, + 5, + ], + "type": "Point", + }, "latitude": 5, "longitude": 30, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[45,20]}", + { + "geojson": { + "coordinates": [ + 45, + 20, + ], + "type": "Point", + }, "latitude": 20, "longitude": 45, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,35]}", + { + "geojson": { + "coordinates": [ + 20, + 35, + ], + "type": "Point", + }, "latitude": 35, "longitude": 20, }, ], }, - "geojson": "{\\"type\\":\\"Polygon\\",\\"coordinates\\":[[[20,35],[10,30],[10,10],[30,5],[45,20],[20,35]],[[30,20],[20,15],[20,25],[30,20]]]}", - "interiors": Array [ - Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[30,20],[20,15],[20,25],[30,20]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,20]}", + "geojson": { + "coordinates": [ + [ + [ + 20, + 35, + ], + [ + 10, + 30, + ], + [ + 10, + 10, + ], + [ + 30, + 5, + ], + [ + 45, + 20, + ], + [ + 20, + 35, + ], + ], + [ + [ + 30, + 20, + ], + [ + 20, + 15, + ], + [ + 20, + 25, + ], + [ + 30, + 20, + ], + ], + ], + "type": "Polygon", + }, + "interiors": [ + { + "geojson": { + "coordinates": [ + [ + 30, + 20, + ], + [ + 20, + 15, + ], + [ + 20, + 25, + ], + [ + 30, + 20, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 30, + 20, + ], + "type": "Point", + }, "latitude": 20, "longitude": 30, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,15]}", + { + "geojson": { + "coordinates": [ + 20, + 15, + ], + "type": "Point", + }, "latitude": 15, "longitude": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,25]}", + { + "geojson": { + "coordinates": [ + 20, + 25, + ], + "type": "Point", + }, "latitude": 25, "longitude": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,20]}", + { + "geojson": { + "coordinates": [ + 30, + 20, + ], + "type": "Point", + }, "latitude": 20, "longitude": 30, }, @@ -772,101 +1952,393 @@ Object { `; exports[`geog_multipolygonm.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geogMultipolygonm": Object { - "geojson": "{\\"type\\":\\"MultiPolygon\\",\\"coordinates\\":[[[[40,40],[20,45],[45,30],[40,40]]],[[[20,35],[10,30],[10,10],[30,5],[45,20],[20,35]],[[30,20],[20,15],[20,25],[30,20]]]]}", - "polygons": Array [ - Object { - "exterior": Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[40,40],[20,45],[45,30],[40,40]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,40]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geogMultipolygonm": { + "geojson": { + "coordinates": [ + [ + [ + [ + 40, + 40, + ], + [ + 20, + 45, + ], + [ + 45, + 30, + ], + [ + 40, + 40, + ], + ], + ], + [ + [ + [ + 20, + 35, + ], + [ + 10, + 30, + ], + [ + 10, + 10, + ], + [ + 30, + 5, + ], + [ + 45, + 20, + ], + [ + 20, + 35, + ], + ], + [ + [ + 30, + 20, + ], + [ + 20, + 15, + ], + [ + 20, + 25, + ], + [ + 30, + 20, + ], + ], + ], + ], + "type": "MultiPolygon", + }, + "polygons": [ + { + "exterior": { + "geojson": { + "coordinates": [ + [ + 40, + 40, + ], + [ + 20, + 45, + ], + [ + 45, + 30, + ], + [ + 40, + 40, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 40, + 40, + ], + "type": "Point", + }, "latitude": 40, "longitude": 40, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,45]}", + { + "geojson": { + "coordinates": [ + 20, + 45, + ], + "type": "Point", + }, "latitude": 45, "longitude": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[45,30]}", + { + "geojson": { + "coordinates": [ + 45, + 30, + ], + "type": "Point", + }, "latitude": 30, "longitude": 45, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,40]}", + { + "geojson": { + "coordinates": [ + 40, + 40, + ], + "type": "Point", + }, "latitude": 40, "longitude": 40, }, ], }, - "geojson": "{\\"type\\":\\"Polygon\\",\\"coordinates\\":[[[40,40],[20,45],[45,30],[40,40]]]}", - "interiors": Array [], - }, - Object { - "exterior": Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[20,35],[10,30],[10,10],[30,5],[45,20],[20,35]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,35]}", + "geojson": { + "coordinates": [ + [ + [ + 40, + 40, + ], + [ + 20, + 45, + ], + [ + 45, + 30, + ], + [ + 40, + 40, + ], + ], + ], + "type": "Polygon", + }, + "interiors": [], + }, + { + "exterior": { + "geojson": { + "coordinates": [ + [ + 20, + 35, + ], + [ + 10, + 30, + ], + [ + 10, + 10, + ], + [ + 30, + 5, + ], + [ + 45, + 20, + ], + [ + 20, + 35, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 20, + 35, + ], + "type": "Point", + }, "latitude": 35, "longitude": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,30]}", + { + "geojson": { + "coordinates": [ + 10, + 30, + ], + "type": "Point", + }, "latitude": 30, "longitude": 10, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,10]}", + { + "geojson": { + "coordinates": [ + 10, + 10, + ], + "type": "Point", + }, "latitude": 10, "longitude": 10, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,5]}", + { + "geojson": { + "coordinates": [ + 30, + 5, + ], + "type": "Point", + }, "latitude": 5, "longitude": 30, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[45,20]}", + { + "geojson": { + "coordinates": [ + 45, + 20, + ], + "type": "Point", + }, "latitude": 20, "longitude": 45, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,35]}", + { + "geojson": { + "coordinates": [ + 20, + 35, + ], + "type": "Point", + }, "latitude": 35, "longitude": 20, }, ], }, - "geojson": "{\\"type\\":\\"Polygon\\",\\"coordinates\\":[[[20,35],[10,30],[10,10],[30,5],[45,20],[20,35]],[[30,20],[20,15],[20,25],[30,20]]]}", - "interiors": Array [ - Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[30,20],[20,15],[20,25],[30,20]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,20]}", + "geojson": { + "coordinates": [ + [ + [ + 20, + 35, + ], + [ + 10, + 30, + ], + [ + 10, + 10, + ], + [ + 30, + 5, + ], + [ + 45, + 20, + ], + [ + 20, + 35, + ], + ], + [ + [ + 30, + 20, + ], + [ + 20, + 15, + ], + [ + 20, + 25, + ], + [ + 30, + 20, + ], + ], + ], + "type": "Polygon", + }, + "interiors": [ + { + "geojson": { + "coordinates": [ + [ + 30, + 20, + ], + [ + 20, + 15, + ], + [ + 20, + 25, + ], + [ + 30, + 20, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 30, + 20, + ], + "type": "Point", + }, "latitude": 20, "longitude": 30, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,15]}", + { + "geojson": { + "coordinates": [ + 20, + 15, + ], + "type": "Point", + }, "latitude": 15, "longitude": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,25]}", + { + "geojson": { + "coordinates": [ + 20, + 25, + ], + "type": "Point", + }, "latitude": 25, "longitude": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,20]}", + { + "geojson": { + "coordinates": [ + 30, + 20, + ], + "type": "Point", + }, "latitude": 20, "longitude": 30, }, @@ -884,114 +2356,462 @@ Object { `; exports[`geog_multipolygonz.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geogMultipolygonz": Object { - "geojson": "{\\"type\\":\\"MultiPolygon\\",\\"coordinates\\":[[[[40,40,80],[20,45,80],[45,30,80],[40,40,80]]],[[[20,35,80],[10,30,80],[10,10,80],[30,5,80],[45,20,80],[20,35,80]],[[30,20,80],[20,15,80],[20,25,80],[30,20,80]]]]}", - "polygons": Array [ - Object { - "exterior": Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[40,40,80],[20,45,80],[45,30,80],[40,40,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,40,80]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geogMultipolygonz": { + "geojson": { + "coordinates": [ + [ + [ + [ + 40, + 40, + 80, + ], + [ + 20, + 45, + 80, + ], + [ + 45, + 30, + 80, + ], + [ + 40, + 40, + 80, + ], + ], + ], + [ + [ + [ + 20, + 35, + 80, + ], + [ + 10, + 30, + 80, + ], + [ + 10, + 10, + 80, + ], + [ + 30, + 5, + 80, + ], + [ + 45, + 20, + 80, + ], + [ + 20, + 35, + 80, + ], + ], + [ + [ + 30, + 20, + 80, + ], + [ + 20, + 15, + 80, + ], + [ + 20, + 25, + 80, + ], + [ + 30, + 20, + 80, + ], + ], + ], + ], + "type": "MultiPolygon", + }, + "polygons": [ + { + "exterior": { + "geojson": { + "coordinates": [ + [ + 40, + 40, + 80, + ], + [ + 20, + 45, + 80, + ], + [ + 45, + 30, + 80, + ], + [ + 40, + 40, + 80, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 40, + 40, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 40, "longitude": 40, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,45,80]}", + { + "geojson": { + "coordinates": [ + 20, + 45, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 45, "longitude": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[45,30,80]}", + { + "geojson": { + "coordinates": [ + 45, + 30, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 30, "longitude": 45, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,40,80]}", + { + "geojson": { + "coordinates": [ + 40, + 40, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 40, "longitude": 40, }, ], }, - "geojson": "{\\"type\\":\\"Polygon\\",\\"coordinates\\":[[[40,40,80],[20,45,80],[45,30,80],[40,40,80]]]}", - "interiors": Array [], - }, - Object { - "exterior": Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[20,35,80],[10,30,80],[10,10,80],[30,5,80],[45,20,80],[20,35,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,35,80]}", + "geojson": { + "coordinates": [ + [ + [ + 40, + 40, + 80, + ], + [ + 20, + 45, + 80, + ], + [ + 45, + 30, + 80, + ], + [ + 40, + 40, + 80, + ], + ], + ], + "type": "Polygon", + }, + "interiors": [], + }, + { + "exterior": { + "geojson": { + "coordinates": [ + [ + 20, + 35, + 80, + ], + [ + 10, + 30, + 80, + ], + [ + 10, + 10, + 80, + ], + [ + 30, + 5, + 80, + ], + [ + 45, + 20, + 80, + ], + [ + 20, + 35, + 80, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 20, + 35, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 35, "longitude": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,30,80]}", + { + "geojson": { + "coordinates": [ + 10, + 30, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 30, "longitude": 10, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,10,80]}", + { + "geojson": { + "coordinates": [ + 10, + 10, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 10, "longitude": 10, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,5,80]}", + { + "geojson": { + "coordinates": [ + 30, + 5, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 5, "longitude": 30, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[45,20,80]}", + { + "geojson": { + "coordinates": [ + 45, + 20, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 20, "longitude": 45, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,35,80]}", + { + "geojson": { + "coordinates": [ + 20, + 35, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 35, "longitude": 20, }, ], }, - "geojson": "{\\"type\\":\\"Polygon\\",\\"coordinates\\":[[[20,35,80],[10,30,80],[10,10,80],[30,5,80],[45,20,80],[20,35,80]],[[30,20,80],[20,15,80],[20,25,80],[30,20,80]]]}", - "interiors": Array [ - Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[30,20,80],[20,15,80],[20,25,80],[30,20,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,20,80]}", + "geojson": { + "coordinates": [ + [ + [ + 20, + 35, + 80, + ], + [ + 10, + 30, + 80, + ], + [ + 10, + 10, + 80, + ], + [ + 30, + 5, + 80, + ], + [ + 45, + 20, + 80, + ], + [ + 20, + 35, + 80, + ], + ], + [ + [ + 30, + 20, + 80, + ], + [ + 20, + 15, + 80, + ], + [ + 20, + 25, + 80, + ], + [ + 30, + 20, + 80, + ], + ], + ], + "type": "Polygon", + }, + "interiors": [ + { + "geojson": { + "coordinates": [ + [ + 30, + 20, + 80, + ], + [ + 20, + 15, + 80, + ], + [ + 20, + 25, + 80, + ], + [ + 30, + 20, + 80, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 30, + 20, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 20, "longitude": 30, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,15,80]}", + { + "geojson": { + "coordinates": [ + 20, + 15, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 15, "longitude": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,25,80]}", + { + "geojson": { + "coordinates": [ + 20, + 25, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 25, "longitude": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,20,80]}", + { + "geojson": { + "coordinates": [ + 30, + 20, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 20, "longitude": 30, @@ -1010,114 +2830,462 @@ Object { `; exports[`geog_multipolygonzm.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geogMultipolygonzm": Object { - "geojson": "{\\"type\\":\\"MultiPolygon\\",\\"coordinates\\":[[[[40,40,80],[20,45,80],[45,30,80],[40,40,80]]],[[[20,35,80],[10,30,80],[10,10,80],[30,5,80],[45,20,80],[20,35,80]],[[30,20,80],[20,15,80],[20,25,80],[30,20,80]]]]}", - "polygons": Array [ - Object { - "exterior": Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[40,40,80],[20,45,80],[45,30,80],[40,40,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,40,80]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geogMultipolygonzm": { + "geojson": { + "coordinates": [ + [ + [ + [ + 40, + 40, + 80, + ], + [ + 20, + 45, + 80, + ], + [ + 45, + 30, + 80, + ], + [ + 40, + 40, + 80, + ], + ], + ], + [ + [ + [ + 20, + 35, + 80, + ], + [ + 10, + 30, + 80, + ], + [ + 10, + 10, + 80, + ], + [ + 30, + 5, + 80, + ], + [ + 45, + 20, + 80, + ], + [ + 20, + 35, + 80, + ], + ], + [ + [ + 30, + 20, + 80, + ], + [ + 20, + 15, + 80, + ], + [ + 20, + 25, + 80, + ], + [ + 30, + 20, + 80, + ], + ], + ], + ], + "type": "MultiPolygon", + }, + "polygons": [ + { + "exterior": { + "geojson": { + "coordinates": [ + [ + 40, + 40, + 80, + ], + [ + 20, + 45, + 80, + ], + [ + 45, + 30, + 80, + ], + [ + 40, + 40, + 80, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 40, + 40, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 40, "longitude": 40, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,45,80]}", + { + "geojson": { + "coordinates": [ + 20, + 45, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 45, "longitude": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[45,30,80]}", + { + "geojson": { + "coordinates": [ + 45, + 30, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 30, "longitude": 45, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,40,80]}", + { + "geojson": { + "coordinates": [ + 40, + 40, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 40, "longitude": 40, }, ], }, - "geojson": "{\\"type\\":\\"Polygon\\",\\"coordinates\\":[[[40,40,80],[20,45,80],[45,30,80],[40,40,80]]]}", - "interiors": Array [], - }, - Object { - "exterior": Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[20,35,80],[10,30,80],[10,10,80],[30,5,80],[45,20,80],[20,35,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,35,80]}", + "geojson": { + "coordinates": [ + [ + [ + 40, + 40, + 80, + ], + [ + 20, + 45, + 80, + ], + [ + 45, + 30, + 80, + ], + [ + 40, + 40, + 80, + ], + ], + ], + "type": "Polygon", + }, + "interiors": [], + }, + { + "exterior": { + "geojson": { + "coordinates": [ + [ + 20, + 35, + 80, + ], + [ + 10, + 30, + 80, + ], + [ + 10, + 10, + 80, + ], + [ + 30, + 5, + 80, + ], + [ + 45, + 20, + 80, + ], + [ + 20, + 35, + 80, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 20, + 35, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 35, "longitude": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,30,80]}", + { + "geojson": { + "coordinates": [ + 10, + 30, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 30, "longitude": 10, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,10,80]}", + { + "geojson": { + "coordinates": [ + 10, + 10, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 10, "longitude": 10, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,5,80]}", + { + "geojson": { + "coordinates": [ + 30, + 5, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 5, "longitude": 30, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[45,20,80]}", + { + "geojson": { + "coordinates": [ + 45, + 20, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 20, "longitude": 45, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,35,80]}", + { + "geojson": { + "coordinates": [ + 20, + 35, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 35, "longitude": 20, }, ], }, - "geojson": "{\\"type\\":\\"Polygon\\",\\"coordinates\\":[[[20,35,80],[10,30,80],[10,10,80],[30,5,80],[45,20,80],[20,35,80]],[[30,20,80],[20,15,80],[20,25,80],[30,20,80]]]}", - "interiors": Array [ - Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[30,20,80],[20,15,80],[20,25,80],[30,20,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,20,80]}", + "geojson": { + "coordinates": [ + [ + [ + 20, + 35, + 80, + ], + [ + 10, + 30, + 80, + ], + [ + 10, + 10, + 80, + ], + [ + 30, + 5, + 80, + ], + [ + 45, + 20, + 80, + ], + [ + 20, + 35, + 80, + ], + ], + [ + [ + 30, + 20, + 80, + ], + [ + 20, + 15, + 80, + ], + [ + 20, + 25, + 80, + ], + [ + 30, + 20, + 80, + ], + ], + ], + "type": "Polygon", + }, + "interiors": [ + { + "geojson": { + "coordinates": [ + [ + 30, + 20, + 80, + ], + [ + 20, + 15, + 80, + ], + [ + 20, + 25, + 80, + ], + [ + 30, + 20, + 80, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 30, + 20, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 20, "longitude": 30, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,15,80]}", + { + "geojson": { + "coordinates": [ + 20, + 15, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 15, "longitude": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,25,80]}", + { + "geojson": { + "coordinates": [ + 20, + 25, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 25, "longitude": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,20,80]}", + { + "geojson": { + "coordinates": [ + 30, + 20, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 20, "longitude": 30, @@ -1136,13 +3304,19 @@ Object { `; exports[`geog_point.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geogPoint": Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geogPoint": { + "geojson": { + "coordinates": [ + 30, + 10, + ], + "type": "Point", + }, "latitude": 10, "longitude": 30, }, @@ -1154,13 +3328,19 @@ Object { `; exports[`geog_pointm.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geogPointm": Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geogPointm": { + "geojson": { + "coordinates": [ + 30, + 10, + ], + "type": "Point", + }, "latitude": 10, "longitude": 30, }, @@ -1172,13 +3352,20 @@ Object { `; exports[`geog_pointz.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geogPointz": Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10,80]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geogPointz": { + "geojson": { + "coordinates": [ + 30, + 10, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 10, "longitude": 30, @@ -1191,13 +3378,20 @@ Object { `; exports[`geog_pointzm.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geogPointzm": Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10,80]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geogPointzm": { + "geojson": { + "coordinates": [ + 30, + 10, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 10, "longitude": 30, @@ -1210,64 +3404,206 @@ Object { `; exports[`geog_polygon.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geogPolygon": Object { - "exterior": Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[35,10],[45,45],[15,40],[10,20],[35,10]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[35,10]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geogPolygon": { + "exterior": { + "geojson": { + "coordinates": [ + [ + 35, + 10, + ], + [ + 45, + 45, + ], + [ + 15, + 40, + ], + [ + 10, + 20, + ], + [ + 35, + 10, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 35, + 10, + ], + "type": "Point", + }, "latitude": 10, "longitude": 35, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[45,45]}", + { + "geojson": { + "coordinates": [ + 45, + 45, + ], + "type": "Point", + }, "latitude": 45, "longitude": 45, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[15,40]}", + { + "geojson": { + "coordinates": [ + 15, + 40, + ], + "type": "Point", + }, "latitude": 40, "longitude": 15, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,20]}", + { + "geojson": { + "coordinates": [ + 10, + 20, + ], + "type": "Point", + }, "latitude": 20, "longitude": 10, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[35,10]}", + { + "geojson": { + "coordinates": [ + 35, + 10, + ], + "type": "Point", + }, "latitude": 10, "longitude": 35, }, ], }, - "geojson": "{\\"type\\":\\"Polygon\\",\\"coordinates\\":[[[35,10],[45,45],[15,40],[10,20],[35,10]],[[20,30],[35,35],[30,20],[20,30]]]}", - "interiors": Array [ - Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[20,30],[35,35],[30,20],[20,30]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,30]}", + "geojson": { + "coordinates": [ + [ + [ + 35, + 10, + ], + [ + 45, + 45, + ], + [ + 15, + 40, + ], + [ + 10, + 20, + ], + [ + 35, + 10, + ], + ], + [ + [ + 20, + 30, + ], + [ + 35, + 35, + ], + [ + 30, + 20, + ], + [ + 20, + 30, + ], + ], + ], + "type": "Polygon", + }, + "interiors": [ + { + "geojson": { + "coordinates": [ + [ + 20, + 30, + ], + [ + 35, + 35, + ], + [ + 30, + 20, + ], + [ + 20, + 30, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 20, + 30, + ], + "type": "Point", + }, "latitude": 30, "longitude": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[35,35]}", + { + "geojson": { + "coordinates": [ + 35, + 35, + ], + "type": "Point", + }, "latitude": 35, "longitude": 35, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,20]}", + { + "geojson": { + "coordinates": [ + 30, + 20, + ], + "type": "Point", + }, "latitude": 20, "longitude": 30, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,30]}", + { + "geojson": { + "coordinates": [ + 20, + 30, + ], + "type": "Point", + }, "latitude": 30, "longitude": 20, }, @@ -1283,64 +3619,206 @@ Object { `; exports[`geog_polygonm.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geogPolygonm": Object { - "exterior": Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[35,10],[45,45],[15,40],[10,20],[35,10]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[35,10]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geogPolygonm": { + "exterior": { + "geojson": { + "coordinates": [ + [ + 35, + 10, + ], + [ + 45, + 45, + ], + [ + 15, + 40, + ], + [ + 10, + 20, + ], + [ + 35, + 10, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 35, + 10, + ], + "type": "Point", + }, "latitude": 10, "longitude": 35, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[45,45]}", + { + "geojson": { + "coordinates": [ + 45, + 45, + ], + "type": "Point", + }, "latitude": 45, "longitude": 45, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[15,40]}", + { + "geojson": { + "coordinates": [ + 15, + 40, + ], + "type": "Point", + }, "latitude": 40, "longitude": 15, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,20]}", + { + "geojson": { + "coordinates": [ + 10, + 20, + ], + "type": "Point", + }, "latitude": 20, "longitude": 10, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[35,10]}", + { + "geojson": { + "coordinates": [ + 35, + 10, + ], + "type": "Point", + }, "latitude": 10, "longitude": 35, }, ], }, - "geojson": "{\\"type\\":\\"Polygon\\",\\"coordinates\\":[[[35,10],[45,45],[15,40],[10,20],[35,10]],[[20,30],[35,35],[30,20],[20,30]]]}", - "interiors": Array [ - Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[20,30],[35,35],[30,20],[20,30]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,30]}", + "geojson": { + "coordinates": [ + [ + [ + 35, + 10, + ], + [ + 45, + 45, + ], + [ + 15, + 40, + ], + [ + 10, + 20, + ], + [ + 35, + 10, + ], + ], + [ + [ + 20, + 30, + ], + [ + 35, + 35, + ], + [ + 30, + 20, + ], + [ + 20, + 30, + ], + ], + ], + "type": "Polygon", + }, + "interiors": [ + { + "geojson": { + "coordinates": [ + [ + 20, + 30, + ], + [ + 35, + 35, + ], + [ + 30, + 20, + ], + [ + 20, + 30, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 20, + 30, + ], + "type": "Point", + }, "latitude": 30, "longitude": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[35,35]}", + { + "geojson": { + "coordinates": [ + 35, + 35, + ], + "type": "Point", + }, "latitude": 35, "longitude": 35, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,20]}", + { + "geojson": { + "coordinates": [ + 30, + 20, + ], + "type": "Point", + }, "latitude": 20, "longitude": 30, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,30]}", + { + "geojson": { + "coordinates": [ + 20, + 30, + ], + "type": "Point", + }, "latitude": 30, "longitude": 20, }, @@ -1356,74 +3834,243 @@ Object { `; exports[`geog_polygonz.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geogPolygonz": Object { - "exterior": Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[35,10,80],[45,45,80],[15,40,80],[10,20,80],[35,10,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[35,10,80]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geogPolygonz": { + "exterior": { + "geojson": { + "coordinates": [ + [ + 35, + 10, + 80, + ], + [ + 45, + 45, + 80, + ], + [ + 15, + 40, + 80, + ], + [ + 10, + 20, + 80, + ], + [ + 35, + 10, + 80, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 35, + 10, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 10, "longitude": 35, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[45,45,80]}", + { + "geojson": { + "coordinates": [ + 45, + 45, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 45, "longitude": 45, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[15,40,80]}", + { + "geojson": { + "coordinates": [ + 15, + 40, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 40, "longitude": 15, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,20,80]}", + { + "geojson": { + "coordinates": [ + 10, + 20, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 20, "longitude": 10, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[35,10,80]}", + { + "geojson": { + "coordinates": [ + 35, + 10, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 10, "longitude": 35, }, ], }, - "geojson": "{\\"type\\":\\"Polygon\\",\\"coordinates\\":[[[35,10,80],[45,45,80],[15,40,80],[10,20,80],[35,10,80]],[[20,30,80],[35,35,80],[30,20,80],[20,30,80]]]}", - "interiors": Array [ - Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[20,30,80],[35,35,80],[30,20,80],[20,30,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,30,80]}", - "height": 80, - "latitude": 30, - "longitude": 20, - }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[35,35,80]}", - "height": 80, - "latitude": 35, - "longitude": 35, - }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,20,80]}", - "height": 80, - "latitude": 20, - "longitude": 30, - }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,30,80]}", - "height": 80, - "latitude": 30, + "geojson": { + "coordinates": [ + [ + [ + 35, + 10, + 80, + ], + [ + 45, + 45, + 80, + ], + [ + 15, + 40, + 80, + ], + [ + 10, + 20, + 80, + ], + [ + 35, + 10, + 80, + ], + ], + [ + [ + 20, + 30, + 80, + ], + [ + 35, + 35, + 80, + ], + [ + 30, + 20, + 80, + ], + [ + 20, + 30, + 80, + ], + ], + ], + "type": "Polygon", + }, + "interiors": [ + { + "geojson": { + "coordinates": [ + [ + 20, + 30, + 80, + ], + [ + 35, + 35, + 80, + ], + [ + 30, + 20, + 80, + ], + [ + 20, + 30, + 80, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 20, + 30, + 80, + ], + "type": "Point", + }, + "height": 80, + "latitude": 30, + "longitude": 20, + }, + { + "geojson": { + "coordinates": [ + 35, + 35, + 80, + ], + "type": "Point", + }, + "height": 80, + "latitude": 35, + "longitude": 35, + }, + { + "geojson": { + "coordinates": [ + 30, + 20, + 80, + ], + "type": "Point", + }, + "height": 80, + "latitude": 20, + "longitude": 30, + }, + { + "geojson": { + "coordinates": [ + 20, + 30, + 80, + ], + "type": "Point", + }, + "height": 80, + "latitude": 30, "longitude": 20, }, ], @@ -1438,72 +4085,241 @@ Object { `; exports[`geog_polygonzm.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geogPolygonzm": Object { - "exterior": Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[35,10,80],[45,45,80],[15,40,80],[10,20,80],[35,10,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[35,10,80]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geogPolygonzm": { + "exterior": { + "geojson": { + "coordinates": [ + [ + 35, + 10, + 80, + ], + [ + 45, + 45, + 80, + ], + [ + 15, + 40, + 80, + ], + [ + 10, + 20, + 80, + ], + [ + 35, + 10, + 80, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 35, + 10, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 10, "longitude": 35, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[45,45,80]}", + { + "geojson": { + "coordinates": [ + 45, + 45, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 45, "longitude": 45, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[15,40,80]}", + { + "geojson": { + "coordinates": [ + 15, + 40, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 40, "longitude": 15, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,20,80]}", + { + "geojson": { + "coordinates": [ + 10, + 20, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 20, "longitude": 10, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[35,10,80]}", + { + "geojson": { + "coordinates": [ + 35, + 10, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 10, "longitude": 35, }, ], }, - "geojson": "{\\"type\\":\\"Polygon\\",\\"coordinates\\":[[[35,10,80],[45,45,80],[15,40,80],[10,20,80],[35,10,80]],[[20,30,80],[35,35,80],[30,20,80],[20,30,80]]]}", - "interiors": Array [ - Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[20,30,80],[35,35,80],[30,20,80],[20,30,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,30,80]}", + "geojson": { + "coordinates": [ + [ + [ + 35, + 10, + 80, + ], + [ + 45, + 45, + 80, + ], + [ + 15, + 40, + 80, + ], + [ + 10, + 20, + 80, + ], + [ + 35, + 10, + 80, + ], + ], + [ + [ + 20, + 30, + 80, + ], + [ + 35, + 35, + 80, + ], + [ + 30, + 20, + 80, + ], + [ + 20, + 30, + 80, + ], + ], + ], + "type": "Polygon", + }, + "interiors": [ + { + "geojson": { + "coordinates": [ + [ + 20, + 30, + 80, + ], + [ + 35, + 35, + 80, + ], + [ + 30, + 20, + 80, + ], + [ + 20, + 30, + 80, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 20, + 30, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 30, "longitude": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[35,35,80]}", + { + "geojson": { + "coordinates": [ + 35, + 35, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 35, "longitude": 35, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,20,80]}", + { + "geojson": { + "coordinates": [ + 30, + 20, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 20, "longitude": 30, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,30,80]}", + { + "geojson": { + "coordinates": [ + 20, + 30, + 80, + ], + "type": "Point", + }, "height": 80, "latitude": 30, "longitude": 20, @@ -1520,14 +4336,38 @@ Object { `; exports[`geom.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geom": Object { +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geom": { "__typename": "GeometryGeometryCollection", - "geojson": "{\\"type\\":\\"GeometryCollection\\",\\"geometries\\":[{\\"type\\":\\"Point\\",\\"coordinates\\":[4,6]},{\\"type\\":\\"LineString\\",\\"coordinates\\":[[4,6],[7,10]]}]}", + "geojson": { + "geometries": [ + { + "coordinates": [ + 4, + 6, + ], + "type": "Point", + }, + { + "coordinates": [ + [ + 4, + 6, + ], + [ + 7, + 10, + ], + ], + "type": "LineString", + }, + ], + "type": "GeometryCollection", + }, }, }, ], @@ -1537,14 +4377,20 @@ Object { `; exports[`geom_geometry.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geomGeometry": Object { +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geomGeometry": { "__typename": "GeometryPoint", - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10]}", + "geojson": { + "coordinates": [ + 30, + 10, + ], + "type": "Point", + }, "x": 30, "y": 10, }, @@ -1556,14 +4402,20 @@ Object { `; exports[`geom_geometrym.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geomGeometrym": Object { +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geomGeometrym": { "__typename": "GeometryPointM", - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10]}", + "geojson": { + "coordinates": [ + 30, + 10, + ], + "type": "Point", + }, "x": 30, "y": 10, }, @@ -1575,14 +4427,21 @@ Object { `; exports[`geom_geometryz.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geomGeometryz": Object { +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geomGeometryz": { "__typename": "GeometryPointZ", - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10,80]}", + "geojson": { + "coordinates": [ + 30, + 10, + 80, + ], + "type": "Point", + }, "x": 30, "y": 10, "z": 80, @@ -1595,14 +4454,21 @@ Object { `; exports[`geom_geometryzm.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geomGeometryzm": Object { +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geomGeometryzm": { "__typename": "GeometryPointZM", - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10,80]}", + "geojson": { + "coordinates": [ + 30, + 10, + 80, + ], + "type": "Point", + }, "x": 30, "y": 10, "z": 80, @@ -1615,26 +4481,60 @@ Object { `; exports[`geom_linestring.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geomLinestring": Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[30,10],[10,30],[40,40]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geomLinestring": { + "geojson": { + "coordinates": [ + [ + 30, + 10, + ], + [ + 10, + 30, + ], + [ + 40, + 40, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 30, + 10, + ], + "type": "Point", + }, "x": 30, "y": 10, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,30]}", + { + "geojson": { + "coordinates": [ + 10, + 30, + ], + "type": "Point", + }, "x": 10, "y": 30, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,40]}", + { + "geojson": { + "coordinates": [ + 40, + 40, + ], + "type": "Point", + }, "x": 40, "y": 40, }, @@ -1648,26 +4548,60 @@ Object { `; exports[`geom_linestringm.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geomLinestringm": Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[30,10],[10,30],[40,40]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geomLinestringm": { + "geojson": { + "coordinates": [ + [ + 30, + 10, + ], + [ + 10, + 30, + ], + [ + 40, + 40, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 30, + 10, + ], + "type": "Point", + }, "x": 30, "y": 10, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,30]}", + { + "geojson": { + "coordinates": [ + 10, + 30, + ], + "type": "Point", + }, "x": 10, "y": 30, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,40]}", + { + "geojson": { + "coordinates": [ + 40, + 40, + ], + "type": "Point", + }, "x": 40, "y": 40, }, @@ -1681,28 +4615,68 @@ Object { `; exports[`geom_linestringz.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geomLinestringz": Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[30,10,80],[10,30,80],[40,40,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10,80]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geomLinestringz": { + "geojson": { + "coordinates": [ + [ + 30, + 10, + 80, + ], + [ + 10, + 30, + 80, + ], + [ + 40, + 40, + 80, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 30, + 10, + 80, + ], + "type": "Point", + }, "x": 30, "y": 10, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,30,80]}", + { + "geojson": { + "coordinates": [ + 10, + 30, + 80, + ], + "type": "Point", + }, "x": 10, "y": 30, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,40,80]}", + { + "geojson": { + "coordinates": [ + 40, + 40, + 80, + ], + "type": "Point", + }, "x": 40, "y": 40, "z": 80, @@ -1717,28 +4691,68 @@ Object { `; exports[`geom_linestringzm.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geomLinestringzm": Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[30,10,80],[10,30,80],[40,40,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10,80]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geomLinestringzm": { + "geojson": { + "coordinates": [ + [ + 30, + 10, + 80, + ], + [ + 10, + 30, + 80, + ], + [ + 40, + 40, + 80, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 30, + 10, + 80, + ], + "type": "Point", + }, "x": 30, "y": 10, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,30,80]}", + { + "geojson": { + "coordinates": [ + 10, + 30, + 80, + ], + "type": "Point", + }, "x": 10, "y": 30, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,40,80]}", + { + "geojson": { + "coordinates": [ + 40, + 40, + 80, + ], + "type": "Point", + }, "x": 40, "y": 40, "z": 80, @@ -1753,54 +4767,168 @@ Object { `; exports[`geom_multilinestring.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geomMultilinestring": Object { - "geojson": "{\\"type\\":\\"MultiLineString\\",\\"coordinates\\":[[[10,10],[20,20],[10,40]],[[40,40],[30,30],[40,20],[30,10]]]}", - "lines": Array [ - Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[10,10],[20,20],[10,40]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,10]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geomMultilinestring": { + "geojson": { + "coordinates": [ + [ + [ + 10, + 10, + ], + [ + 20, + 20, + ], + [ + 10, + 40, + ], + ], + [ + [ + 40, + 40, + ], + [ + 30, + 30, + ], + [ + 40, + 20, + ], + [ + 30, + 10, + ], + ], + ], + "type": "MultiLineString", + }, + "lines": [ + { + "geojson": { + "coordinates": [ + [ + 10, + 10, + ], + [ + 20, + 20, + ], + [ + 10, + 40, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 10, + 10, + ], + "type": "Point", + }, "x": 10, "y": 10, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,20]}", + { + "geojson": { + "coordinates": [ + 20, + 20, + ], + "type": "Point", + }, "x": 20, "y": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,40]}", + { + "geojson": { + "coordinates": [ + 10, + 40, + ], + "type": "Point", + }, "x": 10, "y": 40, }, ], }, - Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[40,40],[30,30],[40,20],[30,10]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,40]}", + { + "geojson": { + "coordinates": [ + [ + 40, + 40, + ], + [ + 30, + 30, + ], + [ + 40, + 20, + ], + [ + 30, + 10, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 40, + 40, + ], + "type": "Point", + }, "x": 40, "y": 40, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,30]}", + { + "geojson": { + "coordinates": [ + 30, + 30, + ], + "type": "Point", + }, "x": 30, "y": 30, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,20]}", + { + "geojson": { + "coordinates": [ + 40, + 20, + ], + "type": "Point", + }, "x": 40, "y": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10]}", + { + "geojson": { + "coordinates": [ + 30, + 10, + ], + "type": "Point", + }, "x": 30, "y": 10, }, @@ -1816,54 +4944,168 @@ Object { `; exports[`geom_multilinestringm.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geomMultilinestringm": Object { - "geojson": "{\\"type\\":\\"MultiLineString\\",\\"coordinates\\":[[[10,10],[20,20],[10,40]],[[40,40],[30,30],[40,20],[30,10]]]}", - "lines": Array [ - Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[10,10],[20,20],[10,40]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,10]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geomMultilinestringm": { + "geojson": { + "coordinates": [ + [ + [ + 10, + 10, + ], + [ + 20, + 20, + ], + [ + 10, + 40, + ], + ], + [ + [ + 40, + 40, + ], + [ + 30, + 30, + ], + [ + 40, + 20, + ], + [ + 30, + 10, + ], + ], + ], + "type": "MultiLineString", + }, + "lines": [ + { + "geojson": { + "coordinates": [ + [ + 10, + 10, + ], + [ + 20, + 20, + ], + [ + 10, + 40, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 10, + 10, + ], + "type": "Point", + }, "x": 10, "y": 10, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,20]}", + { + "geojson": { + "coordinates": [ + 20, + 20, + ], + "type": "Point", + }, "x": 20, "y": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,40]}", + { + "geojson": { + "coordinates": [ + 10, + 40, + ], + "type": "Point", + }, "x": 10, "y": 40, }, ], }, - Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[40,40],[30,30],[40,20],[30,10]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,40]}", + { + "geojson": { + "coordinates": [ + [ + 40, + 40, + ], + [ + 30, + 30, + ], + [ + 40, + 20, + ], + [ + 30, + 10, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 40, + 40, + ], + "type": "Point", + }, "x": 40, "y": 40, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,30]}", + { + "geojson": { + "coordinates": [ + 30, + 30, + ], + "type": "Point", + }, "x": 30, "y": 30, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,20]}", + { + "geojson": { + "coordinates": [ + 40, + 20, + ], + "type": "Point", + }, "x": 40, "y": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10]}", + { + "geojson": { + "coordinates": [ + 30, + 10, + ], + "type": "Point", + }, "x": 30, "y": 10, }, @@ -1879,60 +5121,195 @@ Object { `; exports[`geom_multilinestringz.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geomMultilinestringz": Object { - "geojson": "{\\"type\\":\\"MultiLineString\\",\\"coordinates\\":[[[10,10,80],[20,20,80],[10,40,80]],[[40,40,80],[30,30,80],[40,20,80],[30,10,80]]]}", - "lines": Array [ - Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[10,10,80],[20,20,80],[10,40,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,10,80]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geomMultilinestringz": { + "geojson": { + "coordinates": [ + [ + [ + 10, + 10, + 80, + ], + [ + 20, + 20, + 80, + ], + [ + 10, + 40, + 80, + ], + ], + [ + [ + 40, + 40, + 80, + ], + [ + 30, + 30, + 80, + ], + [ + 40, + 20, + 80, + ], + [ + 30, + 10, + 80, + ], + ], + ], + "type": "MultiLineString", + }, + "lines": [ + { + "geojson": { + "coordinates": [ + [ + 10, + 10, + 80, + ], + [ + 20, + 20, + 80, + ], + [ + 10, + 40, + 80, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 10, + 10, + 80, + ], + "type": "Point", + }, "x": 10, "y": 10, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,20,80]}", + { + "geojson": { + "coordinates": [ + 20, + 20, + 80, + ], + "type": "Point", + }, "x": 20, "y": 20, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,40,80]}", + { + "geojson": { + "coordinates": [ + 10, + 40, + 80, + ], + "type": "Point", + }, "x": 10, "y": 40, "z": 80, }, ], }, - Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[40,40,80],[30,30,80],[40,20,80],[30,10,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,40,80]}", + { + "geojson": { + "coordinates": [ + [ + 40, + 40, + 80, + ], + [ + 30, + 30, + 80, + ], + [ + 40, + 20, + 80, + ], + [ + 30, + 10, + 80, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 40, + 40, + 80, + ], + "type": "Point", + }, "x": 40, "y": 40, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,30,80]}", + { + "geojson": { + "coordinates": [ + 30, + 30, + 80, + ], + "type": "Point", + }, "x": 30, "y": 30, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,20,80]}", + { + "geojson": { + "coordinates": [ + 40, + 20, + 80, + ], + "type": "Point", + }, "x": 40, "y": 20, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10,80]}", + { + "geojson": { + "coordinates": [ + 30, + 10, + 80, + ], + "type": "Point", + }, "x": 30, "y": 10, "z": 80, @@ -1949,60 +5326,195 @@ Object { `; exports[`geom_multilinestringzm.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geomMultilinestringzm": Object { - "geojson": "{\\"type\\":\\"MultiLineString\\",\\"coordinates\\":[[[10,10,80],[20,20,80],[10,40,80]],[[40,40,80],[30,30,80],[40,20,80],[30,10,80]]]}", - "lines": Array [ - Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[10,10,80],[20,20,80],[10,40,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,10,80]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geomMultilinestringzm": { + "geojson": { + "coordinates": [ + [ + [ + 10, + 10, + 80, + ], + [ + 20, + 20, + 80, + ], + [ + 10, + 40, + 80, + ], + ], + [ + [ + 40, + 40, + 80, + ], + [ + 30, + 30, + 80, + ], + [ + 40, + 20, + 80, + ], + [ + 30, + 10, + 80, + ], + ], + ], + "type": "MultiLineString", + }, + "lines": [ + { + "geojson": { + "coordinates": [ + [ + 10, + 10, + 80, + ], + [ + 20, + 20, + 80, + ], + [ + 10, + 40, + 80, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 10, + 10, + 80, + ], + "type": "Point", + }, "x": 10, "y": 10, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,20,80]}", + { + "geojson": { + "coordinates": [ + 20, + 20, + 80, + ], + "type": "Point", + }, "x": 20, "y": 20, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,40,80]}", + { + "geojson": { + "coordinates": [ + 10, + 40, + 80, + ], + "type": "Point", + }, "x": 10, "y": 40, "z": 80, }, ], }, - Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[40,40,80],[30,30,80],[40,20,80],[30,10,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,40,80]}", + { + "geojson": { + "coordinates": [ + [ + 40, + 40, + 80, + ], + [ + 30, + 30, + 80, + ], + [ + 40, + 20, + 80, + ], + [ + 30, + 10, + 80, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 40, + 40, + 80, + ], + "type": "Point", + }, "x": 40, "y": 40, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,30,80]}", + { + "geojson": { + "coordinates": [ + 30, + 30, + 80, + ], + "type": "Point", + }, "x": 30, "y": 30, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,20,80]}", + { + "geojson": { + "coordinates": [ + 40, + 20, + 80, + ], + "type": "Point", + }, "x": 40, "y": 20, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10,80]}", + { + "geojson": { + "coordinates": [ + 30, + 10, + 80, + ], + "type": "Point", + }, "x": 30, "y": 10, "z": 80, @@ -2019,31 +5531,75 @@ Object { `; exports[`geom_multipoint.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geomMultipoint": Object { - "geojson": "{\\"type\\":\\"MultiPoint\\",\\"coordinates\\":[[10,40],[40,30],[20,20],[30,10]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,40]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geomMultipoint": { + "geojson": { + "coordinates": [ + [ + 10, + 40, + ], + [ + 40, + 30, + ], + [ + 20, + 20, + ], + [ + 30, + 10, + ], + ], + "type": "MultiPoint", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 10, + 40, + ], + "type": "Point", + }, "x": 10, "y": 40, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,30]}", + { + "geojson": { + "coordinates": [ + 40, + 30, + ], + "type": "Point", + }, "x": 40, "y": 30, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,20]}", + { + "geojson": { + "coordinates": [ + 20, + 20, + ], + "type": "Point", + }, "x": 20, "y": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10]}", + { + "geojson": { + "coordinates": [ + 30, + 10, + ], + "type": "Point", + }, "x": 30, "y": 10, }, @@ -2057,31 +5613,75 @@ Object { `; exports[`geom_multipointm.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geomMultipointm": Object { - "geojson": "{\\"type\\":\\"MultiPoint\\",\\"coordinates\\":[[10,40],[40,30],[20,20],[30,10]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,40]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geomMultipointm": { + "geojson": { + "coordinates": [ + [ + 10, + 40, + ], + [ + 40, + 30, + ], + [ + 20, + 20, + ], + [ + 30, + 10, + ], + ], + "type": "MultiPoint", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 10, + 40, + ], + "type": "Point", + }, "x": 10, "y": 40, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,30]}", + { + "geojson": { + "coordinates": [ + 40, + 30, + ], + "type": "Point", + }, "x": 40, "y": 30, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,20]}", + { + "geojson": { + "coordinates": [ + 20, + 20, + ], + "type": "Point", + }, "x": 20, "y": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10]}", + { + "geojson": { + "coordinates": [ + 30, + 10, + ], + "type": "Point", + }, "x": 30, "y": 10, }, @@ -2095,34 +5695,86 @@ Object { `; exports[`geom_multipointz.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geomMultipointz": Object { - "geojson": "{\\"type\\":\\"MultiPoint\\",\\"coordinates\\":[[10,40,80],[40,30,80],[20,20,80],[30,10,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,40,80]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geomMultipointz": { + "geojson": { + "coordinates": [ + [ + 10, + 40, + 80, + ], + [ + 40, + 30, + 80, + ], + [ + 20, + 20, + 80, + ], + [ + 30, + 10, + 80, + ], + ], + "type": "MultiPoint", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 10, + 40, + 80, + ], + "type": "Point", + }, "x": 10, "y": 40, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,30,80]}", + { + "geojson": { + "coordinates": [ + 40, + 30, + 80, + ], + "type": "Point", + }, "x": 40, "y": 30, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,20,80]}", + { + "geojson": { + "coordinates": [ + 20, + 20, + 80, + ], + "type": "Point", + }, "x": 20, "y": 20, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10,80]}", + { + "geojson": { + "coordinates": [ + 30, + 10, + 80, + ], + "type": "Point", + }, "x": 30, "y": 10, "z": 80, @@ -2137,34 +5789,86 @@ Object { `; exports[`geom_multipointzm.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geomMultipointzm": Object { - "geojson": "{\\"type\\":\\"MultiPoint\\",\\"coordinates\\":[[10,40,80],[40,30,80],[20,20,80],[30,10,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,40,80]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geomMultipointzm": { + "geojson": { + "coordinates": [ + [ + 10, + 40, + 80, + ], + [ + 40, + 30, + 80, + ], + [ + 20, + 20, + 80, + ], + [ + 30, + 10, + 80, + ], + ], + "type": "MultiPoint", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 10, + 40, + 80, + ], + "type": "Point", + }, "x": 10, "y": 40, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,30,80]}", + { + "geojson": { + "coordinates": [ + 40, + 30, + 80, + ], + "type": "Point", + }, "x": 40, "y": 30, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,20,80]}", + { + "geojson": { + "coordinates": [ + 20, + 20, + 80, + ], + "type": "Point", + }, "x": 20, "y": 20, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10,80]}", + { + "geojson": { + "coordinates": [ + 30, + 10, + 80, + ], + "type": "Point", + }, "x": 30, "y": 10, "z": 80, @@ -2179,101 +5883,393 @@ Object { `; exports[`geom_multipolygon.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geomMultipolygon": Object { - "geojson": "{\\"type\\":\\"MultiPolygon\\",\\"coordinates\\":[[[[40,40],[20,45],[45,30],[40,40]]],[[[20,35],[10,30],[10,10],[30,5],[45,20],[20,35]],[[30,20],[20,15],[20,25],[30,20]]]]}", - "polygons": Array [ - Object { - "exterior": Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[40,40],[20,45],[45,30],[40,40]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,40]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geomMultipolygon": { + "geojson": { + "coordinates": [ + [ + [ + [ + 40, + 40, + ], + [ + 20, + 45, + ], + [ + 45, + 30, + ], + [ + 40, + 40, + ], + ], + ], + [ + [ + [ + 20, + 35, + ], + [ + 10, + 30, + ], + [ + 10, + 10, + ], + [ + 30, + 5, + ], + [ + 45, + 20, + ], + [ + 20, + 35, + ], + ], + [ + [ + 30, + 20, + ], + [ + 20, + 15, + ], + [ + 20, + 25, + ], + [ + 30, + 20, + ], + ], + ], + ], + "type": "MultiPolygon", + }, + "polygons": [ + { + "exterior": { + "geojson": { + "coordinates": [ + [ + 40, + 40, + ], + [ + 20, + 45, + ], + [ + 45, + 30, + ], + [ + 40, + 40, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 40, + 40, + ], + "type": "Point", + }, "x": 40, "y": 40, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,45]}", + { + "geojson": { + "coordinates": [ + 20, + 45, + ], + "type": "Point", + }, "x": 20, "y": 45, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[45,30]}", + { + "geojson": { + "coordinates": [ + 45, + 30, + ], + "type": "Point", + }, "x": 45, "y": 30, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,40]}", + { + "geojson": { + "coordinates": [ + 40, + 40, + ], + "type": "Point", + }, "x": 40, "y": 40, }, ], }, - "geojson": "{\\"type\\":\\"Polygon\\",\\"coordinates\\":[[[40,40],[20,45],[45,30],[40,40]]]}", - "interiors": Array [], - }, - Object { - "exterior": Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[20,35],[10,30],[10,10],[30,5],[45,20],[20,35]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,35]}", + "geojson": { + "coordinates": [ + [ + [ + 40, + 40, + ], + [ + 20, + 45, + ], + [ + 45, + 30, + ], + [ + 40, + 40, + ], + ], + ], + "type": "Polygon", + }, + "interiors": [], + }, + { + "exterior": { + "geojson": { + "coordinates": [ + [ + 20, + 35, + ], + [ + 10, + 30, + ], + [ + 10, + 10, + ], + [ + 30, + 5, + ], + [ + 45, + 20, + ], + [ + 20, + 35, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 20, + 35, + ], + "type": "Point", + }, "x": 20, "y": 35, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,30]}", + { + "geojson": { + "coordinates": [ + 10, + 30, + ], + "type": "Point", + }, "x": 10, "y": 30, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,10]}", + { + "geojson": { + "coordinates": [ + 10, + 10, + ], + "type": "Point", + }, "x": 10, "y": 10, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,5]}", + { + "geojson": { + "coordinates": [ + 30, + 5, + ], + "type": "Point", + }, "x": 30, "y": 5, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[45,20]}", + { + "geojson": { + "coordinates": [ + 45, + 20, + ], + "type": "Point", + }, "x": 45, "y": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,35]}", + { + "geojson": { + "coordinates": [ + 20, + 35, + ], + "type": "Point", + }, "x": 20, "y": 35, }, ], }, - "geojson": "{\\"type\\":\\"Polygon\\",\\"coordinates\\":[[[20,35],[10,30],[10,10],[30,5],[45,20],[20,35]],[[30,20],[20,15],[20,25],[30,20]]]}", - "interiors": Array [ - Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[30,20],[20,15],[20,25],[30,20]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,20]}", + "geojson": { + "coordinates": [ + [ + [ + 20, + 35, + ], + [ + 10, + 30, + ], + [ + 10, + 10, + ], + [ + 30, + 5, + ], + [ + 45, + 20, + ], + [ + 20, + 35, + ], + ], + [ + [ + 30, + 20, + ], + [ + 20, + 15, + ], + [ + 20, + 25, + ], + [ + 30, + 20, + ], + ], + ], + "type": "Polygon", + }, + "interiors": [ + { + "geojson": { + "coordinates": [ + [ + 30, + 20, + ], + [ + 20, + 15, + ], + [ + 20, + 25, + ], + [ + 30, + 20, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 30, + 20, + ], + "type": "Point", + }, "x": 30, "y": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,15]}", + { + "geojson": { + "coordinates": [ + 20, + 15, + ], + "type": "Point", + }, "x": 20, "y": 15, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,25]}", + { + "geojson": { + "coordinates": [ + 20, + 25, + ], + "type": "Point", + }, "x": 20, "y": 25, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,20]}", + { + "geojson": { + "coordinates": [ + 30, + 20, + ], + "type": "Point", + }, "x": 30, "y": 20, }, @@ -2291,101 +6287,393 @@ Object { `; exports[`geom_multipolygonm.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geomMultipolygonm": Object { - "geojson": "{\\"type\\":\\"MultiPolygon\\",\\"coordinates\\":[[[[40,40],[20,45],[45,30],[40,40]]],[[[20,35],[10,30],[10,10],[30,5],[45,20],[20,35]],[[30,20],[20,15],[20,25],[30,20]]]]}", - "polygons": Array [ - Object { - "exterior": Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[40,40],[20,45],[45,30],[40,40]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,40]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geomMultipolygonm": { + "geojson": { + "coordinates": [ + [ + [ + [ + 40, + 40, + ], + [ + 20, + 45, + ], + [ + 45, + 30, + ], + [ + 40, + 40, + ], + ], + ], + [ + [ + [ + 20, + 35, + ], + [ + 10, + 30, + ], + [ + 10, + 10, + ], + [ + 30, + 5, + ], + [ + 45, + 20, + ], + [ + 20, + 35, + ], + ], + [ + [ + 30, + 20, + ], + [ + 20, + 15, + ], + [ + 20, + 25, + ], + [ + 30, + 20, + ], + ], + ], + ], + "type": "MultiPolygon", + }, + "polygons": [ + { + "exterior": { + "geojson": { + "coordinates": [ + [ + 40, + 40, + ], + [ + 20, + 45, + ], + [ + 45, + 30, + ], + [ + 40, + 40, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 40, + 40, + ], + "type": "Point", + }, "x": 40, "y": 40, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,45]}", + { + "geojson": { + "coordinates": [ + 20, + 45, + ], + "type": "Point", + }, "x": 20, "y": 45, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[45,30]}", + { + "geojson": { + "coordinates": [ + 45, + 30, + ], + "type": "Point", + }, "x": 45, "y": 30, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,40]}", + { + "geojson": { + "coordinates": [ + 40, + 40, + ], + "type": "Point", + }, "x": 40, "y": 40, }, ], }, - "geojson": "{\\"type\\":\\"Polygon\\",\\"coordinates\\":[[[40,40],[20,45],[45,30],[40,40]]]}", - "interiors": Array [], - }, - Object { - "exterior": Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[20,35],[10,30],[10,10],[30,5],[45,20],[20,35]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,35]}", + "geojson": { + "coordinates": [ + [ + [ + 40, + 40, + ], + [ + 20, + 45, + ], + [ + 45, + 30, + ], + [ + 40, + 40, + ], + ], + ], + "type": "Polygon", + }, + "interiors": [], + }, + { + "exterior": { + "geojson": { + "coordinates": [ + [ + 20, + 35, + ], + [ + 10, + 30, + ], + [ + 10, + 10, + ], + [ + 30, + 5, + ], + [ + 45, + 20, + ], + [ + 20, + 35, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 20, + 35, + ], + "type": "Point", + }, "x": 20, "y": 35, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,30]}", + { + "geojson": { + "coordinates": [ + 10, + 30, + ], + "type": "Point", + }, "x": 10, "y": 30, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,10]}", + { + "geojson": { + "coordinates": [ + 10, + 10, + ], + "type": "Point", + }, "x": 10, "y": 10, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,5]}", + { + "geojson": { + "coordinates": [ + 30, + 5, + ], + "type": "Point", + }, "x": 30, "y": 5, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[45,20]}", + { + "geojson": { + "coordinates": [ + 45, + 20, + ], + "type": "Point", + }, "x": 45, "y": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,35]}", + { + "geojson": { + "coordinates": [ + 20, + 35, + ], + "type": "Point", + }, "x": 20, "y": 35, }, ], }, - "geojson": "{\\"type\\":\\"Polygon\\",\\"coordinates\\":[[[20,35],[10,30],[10,10],[30,5],[45,20],[20,35]],[[30,20],[20,15],[20,25],[30,20]]]}", - "interiors": Array [ - Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[30,20],[20,15],[20,25],[30,20]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,20]}", + "geojson": { + "coordinates": [ + [ + [ + 20, + 35, + ], + [ + 10, + 30, + ], + [ + 10, + 10, + ], + [ + 30, + 5, + ], + [ + 45, + 20, + ], + [ + 20, + 35, + ], + ], + [ + [ + 30, + 20, + ], + [ + 20, + 15, + ], + [ + 20, + 25, + ], + [ + 30, + 20, + ], + ], + ], + "type": "Polygon", + }, + "interiors": [ + { + "geojson": { + "coordinates": [ + [ + 30, + 20, + ], + [ + 20, + 15, + ], + [ + 20, + 25, + ], + [ + 30, + 20, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 30, + 20, + ], + "type": "Point", + }, "x": 30, "y": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,15]}", + { + "geojson": { + "coordinates": [ + 20, + 15, + ], + "type": "Point", + }, "x": 20, "y": 15, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,25]}", + { + "geojson": { + "coordinates": [ + 20, + 25, + ], + "type": "Point", + }, "x": 20, "y": 25, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,20]}", + { + "geojson": { + "coordinates": [ + 30, + 20, + ], + "type": "Point", + }, "x": 30, "y": 20, }, @@ -2403,114 +6691,462 @@ Object { `; exports[`geom_multipolygonz.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geomMultipolygonz": Object { - "geojson": "{\\"type\\":\\"MultiPolygon\\",\\"coordinates\\":[[[[40,40,80],[20,45,80],[45,30,80],[40,40,80]]],[[[20,35,80],[10,30,80],[10,10,80],[30,5,80],[45,20,80],[20,35,80]],[[30,20,80],[20,15,80],[20,25,80],[30,20,80]]]]}", - "polygons": Array [ - Object { - "exterior": Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[40,40,80],[20,45,80],[45,30,80],[40,40,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,40,80]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geomMultipolygonz": { + "geojson": { + "coordinates": [ + [ + [ + [ + 40, + 40, + 80, + ], + [ + 20, + 45, + 80, + ], + [ + 45, + 30, + 80, + ], + [ + 40, + 40, + 80, + ], + ], + ], + [ + [ + [ + 20, + 35, + 80, + ], + [ + 10, + 30, + 80, + ], + [ + 10, + 10, + 80, + ], + [ + 30, + 5, + 80, + ], + [ + 45, + 20, + 80, + ], + [ + 20, + 35, + 80, + ], + ], + [ + [ + 30, + 20, + 80, + ], + [ + 20, + 15, + 80, + ], + [ + 20, + 25, + 80, + ], + [ + 30, + 20, + 80, + ], + ], + ], + ], + "type": "MultiPolygon", + }, + "polygons": [ + { + "exterior": { + "geojson": { + "coordinates": [ + [ + 40, + 40, + 80, + ], + [ + 20, + 45, + 80, + ], + [ + 45, + 30, + 80, + ], + [ + 40, + 40, + 80, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 40, + 40, + 80, + ], + "type": "Point", + }, "x": 40, "y": 40, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,45,80]}", + { + "geojson": { + "coordinates": [ + 20, + 45, + 80, + ], + "type": "Point", + }, "x": 20, "y": 45, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[45,30,80]}", + { + "geojson": { + "coordinates": [ + 45, + 30, + 80, + ], + "type": "Point", + }, "x": 45, "y": 30, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,40,80]}", + { + "geojson": { + "coordinates": [ + 40, + 40, + 80, + ], + "type": "Point", + }, "x": 40, "y": 40, "z": 80, }, ], }, - "geojson": "{\\"type\\":\\"Polygon\\",\\"coordinates\\":[[[40,40,80],[20,45,80],[45,30,80],[40,40,80]]]}", - "interiors": Array [], - }, - Object { - "exterior": Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[20,35,80],[10,30,80],[10,10,80],[30,5,80],[45,20,80],[20,35,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,35,80]}", + "geojson": { + "coordinates": [ + [ + [ + 40, + 40, + 80, + ], + [ + 20, + 45, + 80, + ], + [ + 45, + 30, + 80, + ], + [ + 40, + 40, + 80, + ], + ], + ], + "type": "Polygon", + }, + "interiors": [], + }, + { + "exterior": { + "geojson": { + "coordinates": [ + [ + 20, + 35, + 80, + ], + [ + 10, + 30, + 80, + ], + [ + 10, + 10, + 80, + ], + [ + 30, + 5, + 80, + ], + [ + 45, + 20, + 80, + ], + [ + 20, + 35, + 80, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 20, + 35, + 80, + ], + "type": "Point", + }, "x": 20, "y": 35, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,30,80]}", + { + "geojson": { + "coordinates": [ + 10, + 30, + 80, + ], + "type": "Point", + }, "x": 10, "y": 30, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,10,80]}", + { + "geojson": { + "coordinates": [ + 10, + 10, + 80, + ], + "type": "Point", + }, "x": 10, "y": 10, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,5,80]}", + { + "geojson": { + "coordinates": [ + 30, + 5, + 80, + ], + "type": "Point", + }, "x": 30, "y": 5, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[45,20,80]}", + { + "geojson": { + "coordinates": [ + 45, + 20, + 80, + ], + "type": "Point", + }, "x": 45, "y": 20, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,35,80]}", + { + "geojson": { + "coordinates": [ + 20, + 35, + 80, + ], + "type": "Point", + }, "x": 20, "y": 35, "z": 80, }, ], }, - "geojson": "{\\"type\\":\\"Polygon\\",\\"coordinates\\":[[[20,35,80],[10,30,80],[10,10,80],[30,5,80],[45,20,80],[20,35,80]],[[30,20,80],[20,15,80],[20,25,80],[30,20,80]]]}", - "interiors": Array [ - Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[30,20,80],[20,15,80],[20,25,80],[30,20,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,20,80]}", + "geojson": { + "coordinates": [ + [ + [ + 20, + 35, + 80, + ], + [ + 10, + 30, + 80, + ], + [ + 10, + 10, + 80, + ], + [ + 30, + 5, + 80, + ], + [ + 45, + 20, + 80, + ], + [ + 20, + 35, + 80, + ], + ], + [ + [ + 30, + 20, + 80, + ], + [ + 20, + 15, + 80, + ], + [ + 20, + 25, + 80, + ], + [ + 30, + 20, + 80, + ], + ], + ], + "type": "Polygon", + }, + "interiors": [ + { + "geojson": { + "coordinates": [ + [ + 30, + 20, + 80, + ], + [ + 20, + 15, + 80, + ], + [ + 20, + 25, + 80, + ], + [ + 30, + 20, + 80, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 30, + 20, + 80, + ], + "type": "Point", + }, "x": 30, "y": 20, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,15,80]}", + { + "geojson": { + "coordinates": [ + 20, + 15, + 80, + ], + "type": "Point", + }, "x": 20, "y": 15, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,25,80]}", + { + "geojson": { + "coordinates": [ + 20, + 25, + 80, + ], + "type": "Point", + }, "x": 20, "y": 25, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,20,80]}", + { + "geojson": { + "coordinates": [ + 30, + 20, + 80, + ], + "type": "Point", + }, "x": 30, "y": 20, "z": 80, @@ -2529,114 +7165,462 @@ Object { `; exports[`geom_multipolygonzm.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geomMultipolygonzm": Object { - "geojson": "{\\"type\\":\\"MultiPolygon\\",\\"coordinates\\":[[[[40,40,80],[20,45,80],[45,30,80],[40,40,80]]],[[[20,35,80],[10,30,80],[10,10,80],[30,5,80],[45,20,80],[20,35,80]],[[30,20,80],[20,15,80],[20,25,80],[30,20,80]]]]}", - "polygons": Array [ - Object { - "exterior": Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[40,40,80],[20,45,80],[45,30,80],[40,40,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,40,80]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geomMultipolygonzm": { + "geojson": { + "coordinates": [ + [ + [ + [ + 40, + 40, + 80, + ], + [ + 20, + 45, + 80, + ], + [ + 45, + 30, + 80, + ], + [ + 40, + 40, + 80, + ], + ], + ], + [ + [ + [ + 20, + 35, + 80, + ], + [ + 10, + 30, + 80, + ], + [ + 10, + 10, + 80, + ], + [ + 30, + 5, + 80, + ], + [ + 45, + 20, + 80, + ], + [ + 20, + 35, + 80, + ], + ], + [ + [ + 30, + 20, + 80, + ], + [ + 20, + 15, + 80, + ], + [ + 20, + 25, + 80, + ], + [ + 30, + 20, + 80, + ], + ], + ], + ], + "type": "MultiPolygon", + }, + "polygons": [ + { + "exterior": { + "geojson": { + "coordinates": [ + [ + 40, + 40, + 80, + ], + [ + 20, + 45, + 80, + ], + [ + 45, + 30, + 80, + ], + [ + 40, + 40, + 80, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 40, + 40, + 80, + ], + "type": "Point", + }, "x": 40, "y": 40, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,45,80]}", + { + "geojson": { + "coordinates": [ + 20, + 45, + 80, + ], + "type": "Point", + }, "x": 20, "y": 45, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[45,30,80]}", + { + "geojson": { + "coordinates": [ + 45, + 30, + 80, + ], + "type": "Point", + }, "x": 45, "y": 30, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[40,40,80]}", + { + "geojson": { + "coordinates": [ + 40, + 40, + 80, + ], + "type": "Point", + }, "x": 40, "y": 40, "z": 80, }, ], }, - "geojson": "{\\"type\\":\\"Polygon\\",\\"coordinates\\":[[[40,40,80],[20,45,80],[45,30,80],[40,40,80]]]}", - "interiors": Array [], - }, - Object { - "exterior": Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[20,35,80],[10,30,80],[10,10,80],[30,5,80],[45,20,80],[20,35,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,35,80]}", + "geojson": { + "coordinates": [ + [ + [ + 40, + 40, + 80, + ], + [ + 20, + 45, + 80, + ], + [ + 45, + 30, + 80, + ], + [ + 40, + 40, + 80, + ], + ], + ], + "type": "Polygon", + }, + "interiors": [], + }, + { + "exterior": { + "geojson": { + "coordinates": [ + [ + 20, + 35, + 80, + ], + [ + 10, + 30, + 80, + ], + [ + 10, + 10, + 80, + ], + [ + 30, + 5, + 80, + ], + [ + 45, + 20, + 80, + ], + [ + 20, + 35, + 80, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 20, + 35, + 80, + ], + "type": "Point", + }, "x": 20, "y": 35, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,30,80]}", + { + "geojson": { + "coordinates": [ + 10, + 30, + 80, + ], + "type": "Point", + }, "x": 10, "y": 30, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,10,80]}", + { + "geojson": { + "coordinates": [ + 10, + 10, + 80, + ], + "type": "Point", + }, "x": 10, "y": 10, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,5,80]}", + { + "geojson": { + "coordinates": [ + 30, + 5, + 80, + ], + "type": "Point", + }, "x": 30, "y": 5, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[45,20,80]}", + { + "geojson": { + "coordinates": [ + 45, + 20, + 80, + ], + "type": "Point", + }, "x": 45, "y": 20, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,35,80]}", + { + "geojson": { + "coordinates": [ + 20, + 35, + 80, + ], + "type": "Point", + }, "x": 20, "y": 35, "z": 80, }, ], }, - "geojson": "{\\"type\\":\\"Polygon\\",\\"coordinates\\":[[[20,35,80],[10,30,80],[10,10,80],[30,5,80],[45,20,80],[20,35,80]],[[30,20,80],[20,15,80],[20,25,80],[30,20,80]]]}", - "interiors": Array [ - Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[30,20,80],[20,15,80],[20,25,80],[30,20,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,20,80]}", + "geojson": { + "coordinates": [ + [ + [ + 20, + 35, + 80, + ], + [ + 10, + 30, + 80, + ], + [ + 10, + 10, + 80, + ], + [ + 30, + 5, + 80, + ], + [ + 45, + 20, + 80, + ], + [ + 20, + 35, + 80, + ], + ], + [ + [ + 30, + 20, + 80, + ], + [ + 20, + 15, + 80, + ], + [ + 20, + 25, + 80, + ], + [ + 30, + 20, + 80, + ], + ], + ], + "type": "Polygon", + }, + "interiors": [ + { + "geojson": { + "coordinates": [ + [ + 30, + 20, + 80, + ], + [ + 20, + 15, + 80, + ], + [ + 20, + 25, + 80, + ], + [ + 30, + 20, + 80, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 30, + 20, + 80, + ], + "type": "Point", + }, "x": 30, "y": 20, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,15,80]}", + { + "geojson": { + "coordinates": [ + 20, + 15, + 80, + ], + "type": "Point", + }, "x": 20, "y": 15, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,25,80]}", + { + "geojson": { + "coordinates": [ + 20, + 25, + 80, + ], + "type": "Point", + }, "x": 20, "y": 25, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,20,80]}", + { + "geojson": { + "coordinates": [ + 30, + 20, + 80, + ], + "type": "Point", + }, "x": 30, "y": 20, "z": 80, @@ -2655,13 +7639,19 @@ Object { `; exports[`geom_point.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geomPoint": Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geomPoint": { + "geojson": { + "coordinates": [ + 30, + 10, + ], + "type": "Point", + }, "x": 30, "y": 10, }, @@ -2673,13 +7663,19 @@ Object { `; exports[`geom_pointm.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geomPointm": Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geomPointm": { + "geojson": { + "coordinates": [ + 30, + 10, + ], + "type": "Point", + }, "x": 30, "y": 10, }, @@ -2691,13 +7687,20 @@ Object { `; exports[`geom_pointz.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geomPointz": Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10,80]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geomPointz": { + "geojson": { + "coordinates": [ + 30, + 10, + 80, + ], + "type": "Point", + }, "x": 30, "y": 10, "z": 80, @@ -2710,13 +7713,20 @@ Object { `; exports[`geom_pointzm.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geomPointzm": Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,10,80]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geomPointzm": { + "geojson": { + "coordinates": [ + 30, + 10, + 80, + ], + "type": "Point", + }, "x": 30, "y": 10, "z": 80, @@ -2729,64 +7739,206 @@ Object { `; exports[`geom_polygon.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geomPolygon": Object { - "exterior": Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[35,10],[45,45],[15,40],[10,20],[35,10]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[35,10]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geomPolygon": { + "exterior": { + "geojson": { + "coordinates": [ + [ + 35, + 10, + ], + [ + 45, + 45, + ], + [ + 15, + 40, + ], + [ + 10, + 20, + ], + [ + 35, + 10, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 35, + 10, + ], + "type": "Point", + }, "x": 35, "y": 10, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[45,45]}", + { + "geojson": { + "coordinates": [ + 45, + 45, + ], + "type": "Point", + }, "x": 45, "y": 45, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[15,40]}", + { + "geojson": { + "coordinates": [ + 15, + 40, + ], + "type": "Point", + }, "x": 15, "y": 40, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,20]}", + { + "geojson": { + "coordinates": [ + 10, + 20, + ], + "type": "Point", + }, "x": 10, "y": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[35,10]}", + { + "geojson": { + "coordinates": [ + 35, + 10, + ], + "type": "Point", + }, "x": 35, "y": 10, }, ], }, - "geojson": "{\\"type\\":\\"Polygon\\",\\"coordinates\\":[[[35,10],[45,45],[15,40],[10,20],[35,10]],[[20,30],[35,35],[30,20],[20,30]]]}", - "interiors": Array [ - Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[20,30],[35,35],[30,20],[20,30]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,30]}", + "geojson": { + "coordinates": [ + [ + [ + 35, + 10, + ], + [ + 45, + 45, + ], + [ + 15, + 40, + ], + [ + 10, + 20, + ], + [ + 35, + 10, + ], + ], + [ + [ + 20, + 30, + ], + [ + 35, + 35, + ], + [ + 30, + 20, + ], + [ + 20, + 30, + ], + ], + ], + "type": "Polygon", + }, + "interiors": [ + { + "geojson": { + "coordinates": [ + [ + 20, + 30, + ], + [ + 35, + 35, + ], + [ + 30, + 20, + ], + [ + 20, + 30, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 20, + 30, + ], + "type": "Point", + }, "x": 20, "y": 30, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[35,35]}", + { + "geojson": { + "coordinates": [ + 35, + 35, + ], + "type": "Point", + }, "x": 35, "y": 35, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,20]}", + { + "geojson": { + "coordinates": [ + 30, + 20, + ], + "type": "Point", + }, "x": 30, "y": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,30]}", + { + "geojson": { + "coordinates": [ + 20, + 30, + ], + "type": "Point", + }, "x": 20, "y": 30, }, @@ -2802,64 +7954,206 @@ Object { `; exports[`geom_polygonm.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geomPolygonm": Object { - "exterior": Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[35,10],[45,45],[15,40],[10,20],[35,10]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[35,10]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geomPolygonm": { + "exterior": { + "geojson": { + "coordinates": [ + [ + 35, + 10, + ], + [ + 45, + 45, + ], + [ + 15, + 40, + ], + [ + 10, + 20, + ], + [ + 35, + 10, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 35, + 10, + ], + "type": "Point", + }, "x": 35, "y": 10, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[45,45]}", + { + "geojson": { + "coordinates": [ + 45, + 45, + ], + "type": "Point", + }, "x": 45, "y": 45, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[15,40]}", + { + "geojson": { + "coordinates": [ + 15, + 40, + ], + "type": "Point", + }, "x": 15, "y": 40, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,20]}", + { + "geojson": { + "coordinates": [ + 10, + 20, + ], + "type": "Point", + }, "x": 10, "y": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[35,10]}", + { + "geojson": { + "coordinates": [ + 35, + 10, + ], + "type": "Point", + }, "x": 35, "y": 10, }, ], }, - "geojson": "{\\"type\\":\\"Polygon\\",\\"coordinates\\":[[[35,10],[45,45],[15,40],[10,20],[35,10]],[[20,30],[35,35],[30,20],[20,30]]]}", - "interiors": Array [ - Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[20,30],[35,35],[30,20],[20,30]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,30]}", + "geojson": { + "coordinates": [ + [ + [ + 35, + 10, + ], + [ + 45, + 45, + ], + [ + 15, + 40, + ], + [ + 10, + 20, + ], + [ + 35, + 10, + ], + ], + [ + [ + 20, + 30, + ], + [ + 35, + 35, + ], + [ + 30, + 20, + ], + [ + 20, + 30, + ], + ], + ], + "type": "Polygon", + }, + "interiors": [ + { + "geojson": { + "coordinates": [ + [ + 20, + 30, + ], + [ + 35, + 35, + ], + [ + 30, + 20, + ], + [ + 20, + 30, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 20, + 30, + ], + "type": "Point", + }, "x": 20, "y": 30, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[35,35]}", + { + "geojson": { + "coordinates": [ + 35, + 35, + ], + "type": "Point", + }, "x": 35, "y": 35, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,20]}", + { + "geojson": { + "coordinates": [ + 30, + 20, + ], + "type": "Point", + }, "x": 30, "y": 20, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,30]}", + { + "geojson": { + "coordinates": [ + 20, + 30, + ], + "type": "Point", + }, "x": 20, "y": 30, }, @@ -2875,72 +8169,241 @@ Object { `; exports[`geom_polygonz.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geomPolygonz": Object { - "exterior": Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[35,10,80],[45,45,80],[15,40,80],[10,20,80],[35,10,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[35,10,80]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geomPolygonz": { + "exterior": { + "geojson": { + "coordinates": [ + [ + 35, + 10, + 80, + ], + [ + 45, + 45, + 80, + ], + [ + 15, + 40, + 80, + ], + [ + 10, + 20, + 80, + ], + [ + 35, + 10, + 80, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 35, + 10, + 80, + ], + "type": "Point", + }, "x": 35, "y": 10, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[45,45,80]}", + { + "geojson": { + "coordinates": [ + 45, + 45, + 80, + ], + "type": "Point", + }, "x": 45, "y": 45, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[15,40,80]}", + { + "geojson": { + "coordinates": [ + 15, + 40, + 80, + ], + "type": "Point", + }, "x": 15, "y": 40, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,20,80]}", + { + "geojson": { + "coordinates": [ + 10, + 20, + 80, + ], + "type": "Point", + }, "x": 10, "y": 20, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[35,10,80]}", + { + "geojson": { + "coordinates": [ + 35, + 10, + 80, + ], + "type": "Point", + }, "x": 35, "y": 10, "z": 80, }, ], }, - "geojson": "{\\"type\\":\\"Polygon\\",\\"coordinates\\":[[[35,10,80],[45,45,80],[15,40,80],[10,20,80],[35,10,80]],[[20,30,80],[35,35,80],[30,20,80],[20,30,80]]]}", - "interiors": Array [ - Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[20,30,80],[35,35,80],[30,20,80],[20,30,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,30,80]}", + "geojson": { + "coordinates": [ + [ + [ + 35, + 10, + 80, + ], + [ + 45, + 45, + 80, + ], + [ + 15, + 40, + 80, + ], + [ + 10, + 20, + 80, + ], + [ + 35, + 10, + 80, + ], + ], + [ + [ + 20, + 30, + 80, + ], + [ + 35, + 35, + 80, + ], + [ + 30, + 20, + 80, + ], + [ + 20, + 30, + 80, + ], + ], + ], + "type": "Polygon", + }, + "interiors": [ + { + "geojson": { + "coordinates": [ + [ + 20, + 30, + 80, + ], + [ + 35, + 35, + 80, + ], + [ + 30, + 20, + 80, + ], + [ + 20, + 30, + 80, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 20, + 30, + 80, + ], + "type": "Point", + }, "x": 20, "y": 30, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[35,35,80]}", + { + "geojson": { + "coordinates": [ + 35, + 35, + 80, + ], + "type": "Point", + }, "x": 35, "y": 35, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,20,80]}", + { + "geojson": { + "coordinates": [ + 30, + 20, + 80, + ], + "type": "Point", + }, "x": 30, "y": 20, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,30,80]}", + { + "geojson": { + "coordinates": [ + 20, + 30, + 80, + ], + "type": "Point", + }, "x": 20, "y": 30, "z": 80, @@ -2957,72 +8420,241 @@ Object { `; exports[`geom_polygonzm.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geomPolygonzm": Object { - "exterior": Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[35,10,80],[45,45,80],[15,40,80],[10,20,80],[35,10,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[35,10,80]}", +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geomPolygonzm": { + "exterior": { + "geojson": { + "coordinates": [ + [ + 35, + 10, + 80, + ], + [ + 45, + 45, + 80, + ], + [ + 15, + 40, + 80, + ], + [ + 10, + 20, + 80, + ], + [ + 35, + 10, + 80, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 35, + 10, + 80, + ], + "type": "Point", + }, "x": 35, "y": 10, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[45,45,80]}", + { + "geojson": { + "coordinates": [ + 45, + 45, + 80, + ], + "type": "Point", + }, "x": 45, "y": 45, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[15,40,80]}", + { + "geojson": { + "coordinates": [ + 15, + 40, + 80, + ], + "type": "Point", + }, "x": 15, "y": 40, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[10,20,80]}", + { + "geojson": { + "coordinates": [ + 10, + 20, + 80, + ], + "type": "Point", + }, "x": 10, "y": 20, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[35,10,80]}", + { + "geojson": { + "coordinates": [ + 35, + 10, + 80, + ], + "type": "Point", + }, "x": 35, "y": 10, "z": 80, }, ], }, - "geojson": "{\\"type\\":\\"Polygon\\",\\"coordinates\\":[[[35,10,80],[45,45,80],[15,40,80],[10,20,80],[35,10,80]],[[20,30,80],[35,35,80],[30,20,80],[20,30,80]]]}", - "interiors": Array [ - Object { - "geojson": "{\\"type\\":\\"LineString\\",\\"coordinates\\":[[20,30,80],[35,35,80],[30,20,80],[20,30,80]]}", - "points": Array [ - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,30,80]}", + "geojson": { + "coordinates": [ + [ + [ + 35, + 10, + 80, + ], + [ + 45, + 45, + 80, + ], + [ + 15, + 40, + 80, + ], + [ + 10, + 20, + 80, + ], + [ + 35, + 10, + 80, + ], + ], + [ + [ + 20, + 30, + 80, + ], + [ + 35, + 35, + 80, + ], + [ + 30, + 20, + 80, + ], + [ + 20, + 30, + 80, + ], + ], + ], + "type": "Polygon", + }, + "interiors": [ + { + "geojson": { + "coordinates": [ + [ + 20, + 30, + 80, + ], + [ + 35, + 35, + 80, + ], + [ + 30, + 20, + 80, + ], + [ + 20, + 30, + 80, + ], + ], + "type": "LineString", + }, + "points": [ + { + "geojson": { + "coordinates": [ + 20, + 30, + 80, + ], + "type": "Point", + }, "x": 20, "y": 30, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[35,35,80]}", + { + "geojson": { + "coordinates": [ + 35, + 35, + 80, + ], + "type": "Point", + }, "x": 35, "y": 35, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[30,20,80]}", + { + "geojson": { + "coordinates": [ + 30, + 20, + 80, + ], + "type": "Point", + }, "x": 30, "y": 20, "z": 80, }, - Object { - "geojson": "{\\"type\\":\\"Point\\",\\"coordinates\\":[20,30,80]}", + { + "geojson": { + "coordinates": [ + 20, + 30, + 80, + ], + "type": "Point", + }, "x": 20, "y": 30, "z": 80, @@ -3039,22 +8671,22 @@ Object { `; exports[`srid.geography.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geog": Object { - "geometries": Array [ - Object { +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geog": { + "geometries": [ + { "srid": 4326, }, - Object { - "points": Array [ - Object { + { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], @@ -3063,20 +8695,20 @@ Object { ], "srid": 4326, }, - "geogGeometry": Object { + "geogGeometry": { "srid": 4326, }, - "geogGeometrycollection": Object { - "geometries": Array [ - Object { + "geogGeometrycollection": { + "geometries": [ + { "srid": 4326, }, - Object { - "points": Array [ - Object { + { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], @@ -3085,17 +8717,17 @@ Object { ], "srid": 4326, }, - "geogGeometrycollectionm": Object { - "geometries": Array [ - Object { + "geogGeometrycollectionm": { + "geometries": [ + { "srid": 4326, }, - Object { - "points": Array [ - Object { + { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], @@ -3104,17 +8736,17 @@ Object { ], "srid": 4326, }, - "geogGeometrycollectionz": Object { - "geometries": Array [ - Object { + "geogGeometrycollectionz": { + "geometries": [ + { "srid": 4326, }, - Object { - "points": Array [ - Object { + { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], @@ -3123,17 +8755,17 @@ Object { ], "srid": 4326, }, - "geogGeometrycollectionzm": Object { - "geometries": Array [ - Object { + "geogGeometrycollectionzm": { + "geometries": [ + { "srid": 4326, }, - Object { - "points": Array [ - Object { + { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], @@ -3142,99 +8774,99 @@ Object { ], "srid": 4326, }, - "geogGeometrym": Object { + "geogGeometrym": { "srid": 4326, }, - "geogGeometryz": Object { + "geogGeometryz": { "srid": 4326, }, - "geogGeometryzm": Object { + "geogGeometryzm": { "srid": 4326, }, - "geogLinestring": Object { - "points": Array [ - Object { + "geogLinestring": { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], "srid": 4326, }, - "geogLinestringm": Object { - "points": Array [ - Object { + "geogLinestringm": { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], "srid": 4326, }, - "geogLinestringz": Object { - "points": Array [ - Object { + "geogLinestringz": { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], "srid": 4326, }, - "geogLinestringzm": Object { - "points": Array [ - Object { + "geogLinestringzm": { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], "srid": 4326, }, - "geogMultilinestring": Object { - "lines": Array [ - Object { - "points": Array [ - Object { + "geogMultilinestring": { + "lines": [ + { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], "srid": 4326, }, - Object { - "points": Array [ - Object { + { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], @@ -3243,34 +8875,34 @@ Object { ], "srid": 4326, }, - "geogMultilinestringm": Object { - "lines": Array [ - Object { - "points": Array [ - Object { + "geogMultilinestringm": { + "lines": [ + { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], "srid": 4326, }, - Object { - "points": Array [ - Object { + { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], @@ -3279,34 +8911,34 @@ Object { ], "srid": 4326, }, - "geogMultilinestringz": Object { - "lines": Array [ - Object { - "points": Array [ - Object { + "geogMultilinestringz": { + "lines": [ + { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], "srid": 4326, }, - Object { - "points": Array [ - Object { + { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], @@ -3315,34 +8947,34 @@ Object { ], "srid": 4326, }, - "geogMultilinestringzm": Object { - "lines": Array [ - Object { - "points": Array [ - Object { + "geogMultilinestringzm": { + "lines": [ + { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], "srid": 4326, }, - Object { - "points": Array [ - Object { + { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], @@ -3351,134 +8983,134 @@ Object { ], "srid": 4326, }, - "geogMultipoint": Object { - "points": Array [ - Object { + "geogMultipoint": { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], "srid": 4326, }, - "geogMultipointm": Object { - "points": Array [ - Object { + "geogMultipointm": { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], "srid": 4326, }, - "geogMultipointz": Object { - "points": Array [ - Object { + "geogMultipointz": { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], "srid": 4326, }, - "geogMultipointzm": Object { - "points": Array [ - Object { + "geogMultipointzm": { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], "srid": 4326, }, - "geogMultipolygon": Object { - "polygons": Array [ - Object { - "exterior": Object { - "points": Array [ - Object { + "geogMultipolygon": { + "polygons": [ + { + "exterior": { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], "srid": 4326, }, - "interiors": Array [], + "interiors": [], "srid": 4326, }, - Object { - "exterior": Object { - "points": Array [ - Object { + { + "exterior": { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], "srid": 4326, }, - "interiors": Array [ - Object { - "points": Array [ - Object { + "interiors": [ + { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], @@ -3490,66 +9122,66 @@ Object { ], "srid": 4326, }, - "geogMultipolygonm": Object { - "polygons": Array [ - Object { - "exterior": Object { - "points": Array [ - Object { + "geogMultipolygonm": { + "polygons": [ + { + "exterior": { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], "srid": 4326, }, - "interiors": Array [], + "interiors": [], "srid": 4326, }, - Object { - "exterior": Object { - "points": Array [ - Object { + { + "exterior": { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], "srid": 4326, }, - "interiors": Array [ - Object { - "points": Array [ - Object { + "interiors": [ + { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], @@ -3561,66 +9193,66 @@ Object { ], "srid": 4326, }, - "geogMultipolygonz": Object { - "polygons": Array [ - Object { - "exterior": Object { - "points": Array [ - Object { + "geogMultipolygonz": { + "polygons": [ + { + "exterior": { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], "srid": 4326, }, - "interiors": Array [], + "interiors": [], "srid": 4326, }, - Object { - "exterior": Object { - "points": Array [ - Object { + { + "exterior": { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], "srid": 4326, }, - "interiors": Array [ - Object { - "points": Array [ - Object { + "interiors": [ + { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], @@ -3632,66 +9264,66 @@ Object { ], "srid": 4326, }, - "geogMultipolygonzm": Object { - "polygons": Array [ - Object { - "exterior": Object { - "points": Array [ - Object { + "geogMultipolygonzm": { + "polygons": [ + { + "exterior": { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], "srid": 4326, }, - "interiors": Array [], + "interiors": [], "srid": 4326, }, - Object { - "exterior": Object { - "points": Array [ - Object { + { + "exterior": { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], "srid": 4326, }, - "interiors": Array [ - Object { - "points": Array [ - Object { + "interiors": [ + { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], @@ -3703,52 +9335,52 @@ Object { ], "srid": 4326, }, - "geogPoint": Object { + "geogPoint": { "srid": 4326, }, - "geogPointm": Object { + "geogPointm": { "srid": 4326, }, - "geogPointz": Object { + "geogPointz": { "srid": 4326, }, - "geogPointzm": Object { + "geogPointzm": { "srid": 4326, }, - "geogPolygon": Object { - "exterior": Object { - "points": Array [ - Object { + "geogPolygon": { + "exterior": { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], "srid": 4326, }, - "interiors": Array [ - Object { - "points": Array [ - Object { + "interiors": [ + { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], @@ -3757,40 +9389,40 @@ Object { ], "srid": 4326, }, - "geogPolygonm": Object { - "exterior": Object { - "points": Array [ - Object { + "geogPolygonm": { + "exterior": { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], "srid": 4326, }, - "interiors": Array [ - Object { - "points": Array [ - Object { + "interiors": [ + { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], @@ -3799,40 +9431,40 @@ Object { ], "srid": 4326, }, - "geogPolygonz": Object { - "exterior": Object { - "points": Array [ - Object { + "geogPolygonz": { + "exterior": { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], "srid": 4326, }, - "interiors": Array [ - Object { - "points": Array [ - Object { + "interiors": [ + { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], @@ -3841,40 +9473,40 @@ Object { ], "srid": 4326, }, - "geogPolygonzm": Object { - "exterior": Object { - "points": Array [ - Object { + "geogPolygonzm": { + "exterior": { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], "srid": 4326, }, - "interiors": Array [ - Object { - "points": Array [ - Object { + "interiors": [ + { + "points": [ + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, - Object { + { "srid": 4326, }, ], @@ -3891,22 +9523,22 @@ Object { `; exports[`srid.geometry.graphql 1`] = ` -Object { - "data": Object { - "allGisDebugs": Object { - "nodes": Array [ - Object { - "geom": Object { - "geometries": Array [ - Object { +{ + "data": { + "allGisDebugs": { + "nodes": [ + { + "geom": { + "geometries": [ + { "srid": 0, }, - Object { - "points": Array [ - Object { + { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, ], @@ -3915,20 +9547,20 @@ Object { ], "srid": 0, }, - "geomGeometry": Object { + "geomGeometry": { "srid": 0, }, - "geomGeometrycollection": Object { - "geometries": Array [ - Object { + "geomGeometrycollection": { + "geometries": [ + { "srid": 0, }, - Object { - "points": Array [ - Object { + { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, ], @@ -3937,17 +9569,17 @@ Object { ], "srid": 0, }, - "geomGeometrycollectionm": Object { - "geometries": Array [ - Object { + "geomGeometrycollectionm": { + "geometries": [ + { "srid": 0, }, - Object { - "points": Array [ - Object { + { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, ], @@ -3956,17 +9588,17 @@ Object { ], "srid": 0, }, - "geomGeometrycollectionz": Object { - "geometries": Array [ - Object { + "geomGeometrycollectionz": { + "geometries": [ + { "srid": 0, }, - Object { - "points": Array [ - Object { + { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, ], @@ -3975,17 +9607,17 @@ Object { ], "srid": 0, }, - "geomGeometrycollectionzm": Object { - "geometries": Array [ - Object { + "geomGeometrycollectionzm": { + "geometries": [ + { "srid": 0, }, - Object { - "points": Array [ - Object { + { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, ], @@ -3994,99 +9626,99 @@ Object { ], "srid": 0, }, - "geomGeometrym": Object { + "geomGeometrym": { "srid": 0, }, - "geomGeometryz": Object { + "geomGeometryz": { "srid": 0, }, - "geomGeometryzm": Object { + "geomGeometryzm": { "srid": 0, }, - "geomLinestring": Object { - "points": Array [ - Object { + "geomLinestring": { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], "srid": 0, }, - "geomLinestringm": Object { - "points": Array [ - Object { + "geomLinestringm": { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], "srid": 0, }, - "geomLinestringz": Object { - "points": Array [ - Object { + "geomLinestringz": { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], "srid": 0, }, - "geomLinestringzm": Object { - "points": Array [ - Object { + "geomLinestringzm": { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], "srid": 0, }, - "geomMultilinestring": Object { - "lines": Array [ - Object { - "points": Array [ - Object { + "geomMultilinestring": { + "lines": [ + { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], "srid": 0, }, - Object { - "points": Array [ - Object { + { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], @@ -4095,34 +9727,34 @@ Object { ], "srid": 0, }, - "geomMultilinestringm": Object { - "lines": Array [ - Object { - "points": Array [ - Object { + "geomMultilinestringm": { + "lines": [ + { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], "srid": 0, }, - Object { - "points": Array [ - Object { + { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], @@ -4131,34 +9763,34 @@ Object { ], "srid": 0, }, - "geomMultilinestringz": Object { - "lines": Array [ - Object { - "points": Array [ - Object { + "geomMultilinestringz": { + "lines": [ + { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], "srid": 0, }, - Object { - "points": Array [ - Object { + { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], @@ -4167,34 +9799,34 @@ Object { ], "srid": 0, }, - "geomMultilinestringzm": Object { - "lines": Array [ - Object { - "points": Array [ - Object { + "geomMultilinestringzm": { + "lines": [ + { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], "srid": 0, }, - Object { - "points": Array [ - Object { + { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], @@ -4203,134 +9835,134 @@ Object { ], "srid": 0, }, - "geomMultipoint": Object { - "points": Array [ - Object { + "geomMultipoint": { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], "srid": 0, }, - "geomMultipointm": Object { - "points": Array [ - Object { + "geomMultipointm": { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], "srid": 0, }, - "geomMultipointz": Object { - "points": Array [ - Object { + "geomMultipointz": { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], "srid": 0, }, - "geomMultipointzm": Object { - "points": Array [ - Object { + "geomMultipointzm": { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], "srid": 0, }, - "geomMultipolygon": Object { - "polygons": Array [ - Object { - "exterior": Object { - "points": Array [ - Object { + "geomMultipolygon": { + "polygons": [ + { + "exterior": { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], "srid": 0, }, - "interiors": Array [], + "interiors": [], "srid": 0, }, - Object { - "exterior": Object { - "points": Array [ - Object { + { + "exterior": { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], "srid": 0, }, - "interiors": Array [ - Object { - "points": Array [ - Object { + "interiors": [ + { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], @@ -4342,66 +9974,66 @@ Object { ], "srid": 0, }, - "geomMultipolygonm": Object { - "polygons": Array [ - Object { - "exterior": Object { - "points": Array [ - Object { + "geomMultipolygonm": { + "polygons": [ + { + "exterior": { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], "srid": 0, }, - "interiors": Array [], + "interiors": [], "srid": 0, }, - Object { - "exterior": Object { - "points": Array [ - Object { + { + "exterior": { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], "srid": 0, }, - "interiors": Array [ - Object { - "points": Array [ - Object { + "interiors": [ + { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], @@ -4413,66 +10045,66 @@ Object { ], "srid": 0, }, - "geomMultipolygonz": Object { - "polygons": Array [ - Object { - "exterior": Object { - "points": Array [ - Object { + "geomMultipolygonz": { + "polygons": [ + { + "exterior": { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], "srid": 0, }, - "interiors": Array [], + "interiors": [], "srid": 0, }, - Object { - "exterior": Object { - "points": Array [ - Object { + { + "exterior": { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], "srid": 0, }, - "interiors": Array [ - Object { - "points": Array [ - Object { + "interiors": [ + { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], @@ -4484,66 +10116,66 @@ Object { ], "srid": 0, }, - "geomMultipolygonzm": Object { - "polygons": Array [ - Object { - "exterior": Object { - "points": Array [ - Object { + "geomMultipolygonzm": { + "polygons": [ + { + "exterior": { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], "srid": 0, }, - "interiors": Array [], + "interiors": [], "srid": 0, }, - Object { - "exterior": Object { - "points": Array [ - Object { + { + "exterior": { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], "srid": 0, }, - "interiors": Array [ - Object { - "points": Array [ - Object { + "interiors": [ + { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], @@ -4555,52 +10187,52 @@ Object { ], "srid": 0, }, - "geomPoint": Object { + "geomPoint": { "srid": 0, }, - "geomPointm": Object { + "geomPointm": { "srid": 0, }, - "geomPointz": Object { + "geomPointz": { "srid": 0, }, - "geomPointzm": Object { + "geomPointzm": { "srid": 0, }, - "geomPolygon": Object { - "exterior": Object { - "points": Array [ - Object { + "geomPolygon": { + "exterior": { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], "srid": 0, }, - "interiors": Array [ - Object { - "points": Array [ - Object { + "interiors": [ + { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], @@ -4609,40 +10241,40 @@ Object { ], "srid": 0, }, - "geomPolygonm": Object { - "exterior": Object { - "points": Array [ - Object { + "geomPolygonm": { + "exterior": { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], "srid": 0, }, - "interiors": Array [ - Object { - "points": Array [ - Object { + "interiors": [ + { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], @@ -4651,40 +10283,40 @@ Object { ], "srid": 0, }, - "geomPolygonz": Object { - "exterior": Object { - "points": Array [ - Object { + "geomPolygonz": { + "exterior": { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], "srid": 0, }, - "interiors": Array [ - Object { - "points": Array [ - Object { + "interiors": [ + { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], @@ -4693,40 +10325,40 @@ Object { ], "srid": 0, }, - "geomPolygonzm": Object { - "exterior": Object { - "points": Array [ - Object { + "geomPolygonzm": { + "exterior": { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], "srid": 0, }, - "interiors": Array [ - Object { - "points": Array [ - Object { + "interiors": [ + { + "points": [ + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, - Object { + { "srid": 0, }, ], diff --git a/__tests__/integration/queries.test.ts b/__tests__/integration/queries.test.ts index ffbbb1c..a1cfb04 100644 --- a/__tests__/integration/queries.test.ts +++ b/__tests__/integration/queries.test.ts @@ -2,10 +2,9 @@ import * as fs from "fs"; import * as path from "path"; import * as pg from "pg"; import { promisify } from "util"; -import { GraphQLSchema, graphql } from "graphql"; -import { withPgClient } from "../helpers"; -import { createPostGraphileSchema } from "postgraphile-core"; -import PostgisPlugin from "../../src/index"; +import type { GraphQLSchema } from "postgraphile/graphql"; +import { grafast } from "postgraphile/grafast"; +import { makePostGraphileSchema } from "../helpers"; const readFile = promisify(fs.readFile); @@ -13,16 +12,22 @@ const queriesDir = `${__dirname}/../fixtures/queries`; const queryFileNames = fs.readdirSync(queriesDir); const schemas = ["graphile_postgis"]; -const options = { - appendPlugins: [PostgisPlugin], -}; -let gqlSchema: GraphQLSchema; +let pool: pg.Pool; +let schema: GraphQLSchema; +let resolvedPreset: GraphileConfig.ResolvedPreset; beforeAll(async () => { - await withPgClient(async (client: pg.PoolClient) => { - gqlSchema = await createPostGraphileSchema(client, schemas, options); + pool = new pg.Pool({ + connectionString: process.env.TEST_DATABASE_URL, }); + const result = await makePostGraphileSchema(pool, schemas); + schema = result.schema; + resolvedPreset = result.resolvedPreset; +}); + +afterAll(async () => { + await pool.end(); }); for (const queryFileName of queryFileNames) { @@ -31,9 +36,12 @@ for (const queryFileName of queryFileNames) { path.resolve(queriesDir, queryFileName), "utf8" ); - const result = await withPgClient(async (client: pg.PoolClient) => - graphql(gqlSchema, query, null, { pgClient: client }) - ); + const result = await grafast({ + schema, + source: query, + resolvedPreset, + requestContext: {}, + }); expect(result).toMatchSnapshot(); }); } diff --git a/__tests__/schema.minimal_dimensional.test.ts b/__tests__/schema.minimal_dimensional.test.ts index afb9971..680b803 100644 --- a/__tests__/schema.minimal_dimensional.test.ts +++ b/__tests__/schema.minimal_dimensional.test.ts @@ -1,16 +1,11 @@ import * as pg from "pg"; -import { withPgClient } from "./helpers"; -import { createPostGraphileSchema } from "postgraphile-core"; -import PostgisPlugin from "../src/index"; -import { lexicographicSortSchema } from "graphql"; +import { makePostGraphileSchema, withPgPool } from "./helpers"; +import { lexicographicSortSchema } from "postgraphile/graphql"; const schemas = ["graphile_postgis_minimal_dimensional"]; -const options = { - appendPlugins: [PostgisPlugin], -}; test("prints a schema with this plugin", () => - withPgClient(async (client: pg.PoolClient) => { - const gqlSchema = await createPostGraphileSchema(client, schemas, options); - expect(lexicographicSortSchema(gqlSchema)).toMatchSnapshot(); + withPgPool(async (pool: pg.Pool) => { + const { schema } = await makePostGraphileSchema(pool, schemas); + expect(lexicographicSortSchema(schema)).toMatchSnapshot(); })); diff --git a/__tests__/schema.minimal_type.test.ts b/__tests__/schema.minimal_type.test.ts index 664c9e9..6d9e391 100644 --- a/__tests__/schema.minimal_type.test.ts +++ b/__tests__/schema.minimal_type.test.ts @@ -1,16 +1,11 @@ import * as pg from "pg"; -import { withPgClient } from "./helpers"; -import { createPostGraphileSchema } from "postgraphile-core"; -import PostgisPlugin from "../src/index"; -import { lexicographicSortSchema } from "graphql"; +import { makePostGraphileSchema, withPgPool } from "./helpers"; +import { lexicographicSortSchema } from "postgraphile/graphql"; const schemas = ["graphile_postgis_minimal_type"]; -const options = { - appendPlugins: [PostgisPlugin], -}; test("prints a schema with this plugin", () => - withPgClient(async (client: pg.PoolClient) => { - const gqlSchema = await createPostGraphileSchema(client, schemas, options); - expect(lexicographicSortSchema(gqlSchema)).toMatchSnapshot(); + withPgPool(async (pool: pg.Pool) => { + const { schema } = await makePostGraphileSchema(pool, schemas); + expect(lexicographicSortSchema(schema)).toMatchSnapshot(); })); diff --git a/__tests__/schema.minimal_type_and_srid.test.ts b/__tests__/schema.minimal_type_and_srid.test.ts index b8fff50..124375c 100644 --- a/__tests__/schema.minimal_type_and_srid.test.ts +++ b/__tests__/schema.minimal_type_and_srid.test.ts @@ -1,16 +1,11 @@ import * as pg from "pg"; -import { withPgClient } from "./helpers"; -import { createPostGraphileSchema } from "postgraphile-core"; -import PostgisPlugin from "../src/index"; -import { lexicographicSortSchema } from "graphql"; +import { makePostGraphileSchema, withPgPool } from "./helpers"; +import { lexicographicSortSchema } from "postgraphile/graphql"; const schemas = ["graphile_postgis_minimal_type_and_srid"]; -const options = { - appendPlugins: [PostgisPlugin], -}; test("prints a schema with this plugin", () => - withPgClient(async (client: pg.PoolClient) => { - const gqlSchema = await createPostGraphileSchema(client, schemas, options); - expect(lexicographicSortSchema(gqlSchema)).toMatchSnapshot(); + withPgPool(async (pool: pg.Pool) => { + const { schema } = await makePostGraphileSchema(pool, schemas); + expect(lexicographicSortSchema(schema)).toMatchSnapshot(); })); diff --git a/__tests__/schema.minimal_unconstrained.test.ts b/__tests__/schema.minimal_unconstrained.test.ts index bd2e6a7..c14f88a 100644 --- a/__tests__/schema.minimal_unconstrained.test.ts +++ b/__tests__/schema.minimal_unconstrained.test.ts @@ -1,16 +1,11 @@ import * as pg from "pg"; -import { withPgClient } from "./helpers"; -import { createPostGraphileSchema } from "postgraphile-core"; -import PostgisPlugin from "../src/index"; -import { lexicographicSortSchema } from "graphql"; +import { makePostGraphileSchema, withPgPool } from "./helpers"; +import { lexicographicSortSchema } from "postgraphile/graphql"; const schemas = ["graphile_postgis_minimal_unconstrained"]; -const options = { - appendPlugins: [PostgisPlugin], -}; test("prints a schema with this plugin", () => - withPgClient(async (client: pg.PoolClient) => { - const gqlSchema = await createPostGraphileSchema(client, schemas, options); - expect(lexicographicSortSchema(gqlSchema)).toMatchSnapshot(); + withPgPool(async (pool: pg.Pool) => { + const { schema } = await makePostGraphileSchema(pool, schemas); + expect(lexicographicSortSchema(schema)).toMatchSnapshot(); })); diff --git a/__tests__/schema.test.ts b/__tests__/schema.test.ts index 692ac21..872e269 100644 --- a/__tests__/schema.test.ts +++ b/__tests__/schema.test.ts @@ -1,16 +1,11 @@ import * as pg from "pg"; -import { withPgClient } from "./helpers"; -import { createPostGraphileSchema } from "postgraphile-core"; -import PostgisPlugin from "../src/index"; -import { lexicographicSortSchema } from "graphql"; +import { withPgPool, makePostGraphileSchema } from "./helpers"; +import { lexicographicSortSchema } from "postgraphile/graphql"; const schemas = ["graphile_postgis"]; -const options = { - appendPlugins: [PostgisPlugin], -}; test("prints a schema with this plugin", () => - withPgClient(async (client: pg.PoolClient) => { - const gqlSchema = await createPostGraphileSchema(client, schemas, options); - expect(lexicographicSortSchema(gqlSchema)).toMatchSnapshot(); + withPgPool(async (pool: pg.Pool) => { + const { schema } = await makePostGraphileSchema(pool, schemas); + expect(lexicographicSortSchema(schema)).toMatchSnapshot(); })); diff --git a/jest.config.js b/jest.config.js index a0a6e5f..4c93a87 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,4 +1,4 @@ -module.exports = { +export default { roots: ["/src", "/__tests__"], transform: { "^.+\\.tsx?$": "ts-jest", @@ -6,4 +6,5 @@ module.exports = { testRegex: "(/__tests__/.*\\.(test|spec))\\.[tj]sx?$", moduleFileExtensions: ["ts", "js", "json"], snapshotSerializers: ["jest-serializer-graphql-schema"], + testEnvironment: 'jest-environment-node', }; diff --git a/package.json b/package.json index ce51afa..01a7f6b 100644 --- a/package.json +++ b/package.json @@ -3,14 +3,24 @@ "version": "0.2.0", "description": "PostGIS support for PostGraphile", "main": "dist/index.js", + "types": "dist/index.d.ts", + "type": "module", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.js" + } + }, "scripts": { - "build": "tsc", - "watch": "tsc --watch", + "build": "tsc -p tsconfig.build.json", + "watch": "tsc -p tsconfig.build.json --watch", "test": "scripts/test", - "lint": "prettier --list-different 'src/**/*' && tslint --config tslint.json --project tsconfig.json", + "lint": "prettier --list-different 'src/**/*'", "postgraphile": "nodemon --watch dist -x 'postgraphile --append-plugins `pwd`/dist/index.js -c graphile_test -s graphile_postgis -p 5123 --enhance-graphiql --watch --dynamic-json --show-error-stack --extended-errors severity,code,detail,hint,position,internalPosition,internalQuery,where,schema,table,column,dataType,constraint,file,line,routine'", "dev": "psql -f __tests__/schema.sql graphile_test && concurrently --kill-others 'npm run watch' 'npm run postgraphile'", - "prepack": "rm -Rf dist && npm run build" + "postversion": "node scripts/postversion.mjs", + "prepack": "rm -Rf dist && npm run build", + "prepare": "rm -Rf dist && npm run build" }, "repository": { "type": "git", @@ -31,34 +41,28 @@ "url": "https://github.com/graphile/postgis/issues" }, "homepage": "https://github.com/graphile/postgis#readme", - "peerDependencies": { - "graphile-build": "^4.4.0", - "graphile-build-pg": "^4.4.0", - "graphql": ">=0.6 <16", - "pg-sql2": ">=2.2.1 <5" - }, "devDependencies": { + "@dataplan/pg": "^1.0.0-rc.4", + "@tsconfig/node20": "^20.1.4", "@types/debug": "^4.1.5", - "@types/jest": "^26.0.22", - "concurrently": "^6.0.2", - "graphql": "^15", - "jest": "^26.6.3", + "@types/jest": "^30.0.0", + "@types/pg": "^8.16.0", + "jest": "^30.2.0", + "jest-serializer-graphql-schema": "^5.0.0-1.1", "nodemon": "^1.19.1", - "postgraphile": "^4.9.0", - "postgraphile-core": "^4.9.0", - "prettier": "1.18.2", - "ts-jest": "^26.5.4", - "tslint": "^5.19.0", - "tslint-config-prettier": "^1.18.0", - "typescript": "^3.5.3" + "pg": "^8.14.1", + "postgraphile": "^5.0.0-rc.6", + "prettier": "^3.3.2", + "ts-jest": "^29.4.6", + "typescript": "^5.4.5" + }, + "peerDependencies": { + "@dataplan/pg": "^1.0.0-rc.4", + "postgraphile": "^5.0.0-rc.6" }, "dependencies": { "debug": "^4.1.1", - "jest-serializer-graphql-schema": "^5.0.0-1.1", - "tslib": "^1.10.0" - }, - "resolutions": { - "graphql": "^15" + "tslib": "^2.6.3" }, "files": [ "dist" diff --git a/scripts/postversion.mjs b/scripts/postversion.mjs new file mode 100644 index 0000000..3d5cc11 --- /dev/null +++ b/scripts/postversion.mjs @@ -0,0 +1,15 @@ +#!/usr/bin/env node +import * as fs from "node:fs/promises"; + +const VERSION_TS = "src/version.ts"; + +const packageJsonString = await fs.readFile("package.json", "utf8"); +const packageJson = JSON.parse(packageJsonString); + +await fs.writeFile( + VERSION_TS, + `\ +// This file is autogenerated by /scripts/postversion.mjs +export const version = ${JSON.stringify(packageJson.version)}; +`, +); \ No newline at end of file diff --git a/src/PostgisColumnsPlugin.ts b/src/PostgisColumnsPlugin.ts new file mode 100644 index 0000000..dd83b1e --- /dev/null +++ b/src/PostgisColumnsPlugin.ts @@ -0,0 +1,159 @@ +import { + pgClassExpression, + sql, + TYPES, + type PgClassSingleStep, + type PgCodecWithAttributes, + type PgSelectSingleStep, +} from "@dataplan/pg"; +import type { PostGISResolvedData } from "./types.ts"; +import { getGISTypeDetails, getGISTypeName } from "./utils.ts"; +import { version } from "./version.ts"; + +/** + * This plugin overrides the GraphQL output type and plan for columns + * that use PostGIS geometry/geography types. It wraps the SQL expression + * to extract GIS metadata (type name, SRID, GeoJSON) and maps the column + * to the appropriate PostGIS GraphQL type or interface. + */ +export const PostgisColumnsPlugin: GraphileConfig.Plugin = { + name: "PostgisColumnsPlugin", + version, + after: [ + "PostgisExtensionDetectionPlugin", + "PostgisRegisterTypesPlugin", + "PgAttributesPlugin", + ], + + schema: { + hooks: { + GraphQLObjectType_fields(fields, build, context) { + const { + scope: { pgCodec }, + } = context; + if (!pgCodec) return fields; + const codec = pgCodec as PgCodecWithAttributes; + if (!codec.attributes) return fields; + + const { + pgGISGeometryCodec, + pgGISGeographyCodec, + pgGISExtensionSchema, + pgGISGraphQLTypesByTypeAndSubtype: constructedTypes, + pgGISGraphQLInterfaceTypesByType: _interfaces, + inflection, + graphql: { GraphQLNonNull }, + EXPORTABLE, + } = build; + + if (!pgGISGeometryCodec && !pgGISGeographyCodec) { + return fields; + } + + const extensionSchema = pgGISExtensionSchema || "public"; + + const modifiedFields: typeof fields = {}; + + for (const [attributeName, attribute] of Object.entries( + codec.attributes + )) { + const attrCodec = attribute.codec; + if (attrCodec.name !== "geometry" && attrCodec.name !== "geography") { + continue; + } + + const codecName = attrCodec.name; + const typeModifier = attribute.extensions?.postgisTypeModifier ?? -1; + + let gisTypeName: string | null = null; + + if (typeModifier !== -1) { + const typeDetails = getGISTypeDetails(typeModifier); + const { subtype, hasZ, hasM } = typeDetails; + const gisTypeKey = getGISTypeName(subtype, hasZ, hasM); + gisTypeName = constructedTypes[codecName]?.[gisTypeKey] ?? null; + } + + // Fall back to the base interface if no specific modifier + if (!gisTypeName) { + gisTypeName = _interfaces[codecName]?.[-1] ?? null; + } + + if (!gisTypeName) { + continue; + } + + const gqlType = build.getOutputTypeByName(gisTypeName); + if (!gqlType) { + continue; + } + + const fieldName = inflection.attribute({ + attributeName, + codec, + }); + + if (!fields[fieldName]) { + continue; + } + + const existingField = fields[fieldName]; + const isNotNull = attribute.notNull; + + modifiedFields[fieldName] = { + ...existingField, + type: isNotNull ? new GraphQLNonNull(gqlType) : gqlType, + resolve(data: PostGISResolvedData) { + return data; + }, + plan: EXPORTABLE( + (TYPES, attributeName, extensionSchema, pgClassExpression, sql) => + ($record: PgClassSingleStep) => { + const buildExpression = ( + col: ReturnType + ) => { + const extSchema = sql.identifier(extensionSchema); + return sql`(case when ${col} is null then null else json_build_object( + '__gisType', ${extSchema}.postgis_type_name( + ${extSchema}.geometrytype(${col}), + ${extSchema}.st_coorddim(${col}::text) + ), + '__srid', ${extSchema}.st_srid(${col}), + '__geojson', ${extSchema}.st_asgeojson(${col})::json + ) end)`; + }; + + // PgSelectSingleStep (queries) exposes `.select()`, which + // handles referencing the row correctly (joins, subquery + // aliasing, etc.) via its internal scoped-SQL machinery. + if ("select" in $record) { + return ($record as PgSelectSingleStep).select( + () => buildExpression(sql.identifier(attributeName)), + TYPES.json + ); + } + + // PgInsertSingleStep / PgUpdateSingleStep / PgDeleteSingleStep + // (mutations) have no `.select()`; reference the row's own + // alias directly instead, same as their own `.get()` does + // for plain (untransformed) attributes. + const col = sql`${$record.alias}.${sql.identifier(attributeName)}`; + const sqlExpr = pgClassExpression($record, TYPES.json); + return sqlExpr`${buildExpression(col)}`; + }, + [TYPES, attributeName, extensionSchema, pgClassExpression, sql] + ), + }; + } + + if (Object.keys(modifiedFields).length > 0) { + return { ...fields, ...modifiedFields }; + } + + return fields; + }, + }, + }, +}; + +export default PostgisColumnsPlugin; diff --git a/src/PostgisExtensionDetectionPlugin.ts b/src/PostgisExtensionDetectionPlugin.ts index 7f4a5f4..1811a96 100644 --- a/src/PostgisExtensionDetectionPlugin.ts +++ b/src/PostgisExtensionDetectionPlugin.ts @@ -1,40 +1,61 @@ -import { Plugin } from "graphile-build"; -import { PgExtension, PgType } from "graphile-build-pg"; -import debug from "./debug"; - -const plugin: Plugin = builder => { - builder.hook("build", build => { - const { pgIntrospectionResultsByKind: introspectionResultsByKind } = build; - const pgGISExtension = introspectionResultsByKind.extension.find( - (e: PgExtension) => e.name === "postgis" - ); - // Check we have the postgis extension - if (!pgGISExtension) { - debug("PostGIS extension not found in database; skipping"); - return build; - } - // Extract the geography and geometry types - const pgGISGeometryType = introspectionResultsByKind.type.find( - (t: PgType) => - t.name === "geometry" && t.namespaceId === pgGISExtension.namespaceId - ); - const pgGISGeographyType = introspectionResultsByKind.type.find( - (t: PgType) => - t.name === "geography" && t.namespaceId === pgGISExtension.namespaceId - ); - if (!pgGISGeographyType || !pgGISGeometryType) { - throw new Error( - "PostGIS is installed, but we couldn't find the geometry/geography types!" - ); +import type { PgCodec } from "@dataplan/pg"; +import debug from "./debug.ts"; +import { version } from "./version.ts"; + +declare global { + namespace GraphileBuild { + interface Build { + pgGISGeometryCodec: PgCodec | null; + pgGISGeographyCodec: PgCodec | null; + pgGISExtensionSchema: string | null; } - return build.extend(build, { - pgGISGraphQLTypesByTypeAndSubtype: {}, - pgGISGraphQLInterfaceTypesByType: {}, - pgGISGeometryType, - pgGISGeographyType, - pgGISExtension, - }); - }); + } +} + +export const PostgisExtensionDetectionPlugin: GraphileConfig.Plugin = { + name: "PostgisExtensionDetectionPlugin", + version, + + schema: { + hooks: { + build(build) { + // Find the geometry and geography codecs + let pgGISGeometryCodec: PgCodec | null = null; + let pgGISGeographyCodec: PgCodec | null = null; + let pgGISExtensionSchema: string | null = null; + + for (const [_name, codec] of Object.entries(build.pgCodecs || {})) { + const c = codec as PgCodec; + if (c.name === "geometry" && c.extensions?.pg) { + pgGISGeometryCodec = c; + if (!pgGISExtensionSchema) { + pgGISExtensionSchema = c.extensions.pg.schemaName; + } + } + if (c.name === "geography" && c.extensions?.pg) { + pgGISGeographyCodec = c; + if (!pgGISExtensionSchema) { + pgGISExtensionSchema = c.extensions.pg.schemaName; + } + } + } + + if (!pgGISGeometryCodec && !pgGISGeographyCodec) { + debug("PostGIS extension not found in database; skipping"); + } else { + debug("PostGIS plugin enabled"); + } + + build.pgGISGraphQLTypesByTypeAndSubtype = {}; + build.pgGISGraphQLInterfaceTypesByType = {}; + build.pgGISGeometryCodec = pgGISGeometryCodec; + build.pgGISGeographyCodec = pgGISGeographyCodec; + build.pgGISExtensionSchema = pgGISExtensionSchema; + + return build; + }, + }, + }, }; -export default plugin; +export default PostgisExtensionDetectionPlugin; diff --git a/src/PostgisInflectionPlugin.ts b/src/PostgisInflectionPlugin.ts index 33e38c9..9d43939 100644 --- a/src/PostgisInflectionPlugin.ts +++ b/src/PostgisInflectionPlugin.ts @@ -1,53 +1,64 @@ -import { Plugin } from "graphile-build"; -import { PgType } from "graphile-build-pg"; -import { Subtype } from "./interfaces"; -import { SUBTYPE_STRING_BY_SUBTYPE } from "./constants"; +import type { + GISTypeInflectionDetails, + GISInterfaceInflectionDetails, + GISDimensionInterfaceInflectionDetails, + GISFieldInflectionDetails, +} from "./types.ts"; +import { SUBTYPE_STRING_BY_SUBTYPE } from "./constants.ts"; +import { version } from "./version.ts"; -const plugin: Plugin = builder => { - builder.hook("inflection", inflection => { - return { - ...inflection, - gisType(type: PgType, subtype: Subtype, hasZ: boolean, hasM: boolean) { +export const PostgisInflectionPlugin: GraphileConfig.Plugin = { + name: "PostgisInflectionPlugin", + version, + + inflection: { + add: { + gisType(_preset, details: GISTypeInflectionDetails) { + const { typeName, subtype, hasZ, hasM } = details; return this.upperCamelCase( [ - type.name, + typeName, SUBTYPE_STRING_BY_SUBTYPE[subtype], hasZ ? "z" : null, hasM ? "m" : null, ] - .filter(_ => _) + .filter((_) => _) .join("-") ); }, - gisInterfaceName(type: PgType) { - return this.upperCamelCase(`${type.name}-interface`); + gisInterfaceName(_preset, details: GISInterfaceInflectionDetails) { + return this.upperCamelCase(`${details.typeName}-interface`); }, - gisDimensionInterfaceName(type: PgType, hasZ: boolean, hasM: boolean) { + gisDimensionInterfaceName( + _preset, + details: GISDimensionInterfaceInflectionDetails + ) { + const { typeName, hasZ, hasM } = details; return this.upperCamelCase( [ - type.name, + typeName, SUBTYPE_STRING_BY_SUBTYPE[0], hasZ ? "z" : null, hasM ? "m" : null, ] - .filter(_ => _) + .filter((_) => _) .join("-") ); }, - geojsonFieldName() { + geojsonFieldName(_preset) { return `geojson`; }, - gisXFieldName(type: PgType) { - return type.name === "geography" ? "longitude" : "x"; + gisXFieldName(_preset, details: GISFieldInflectionDetails) { + return details.typeName === "geography" ? "longitude" : "x"; }, - gisYFieldName(type: PgType) { - return type.name === "geography" ? "latitude" : "y"; + gisYFieldName(_preset, details: GISFieldInflectionDetails) { + return details.typeName === "geography" ? "latitude" : "y"; }, - gisZFieldName(type: PgType) { - return type.name === "geography" ? "height" : "z"; + gisZFieldName(_preset, details: GISFieldInflectionDetails) { + return details.typeName === "geography" ? "height" : "z"; }, - }; - }); + }, + }, }; -export default plugin; +export default PostgisInflectionPlugin; diff --git a/src/PostgisRegisterTypesPlugin.ts b/src/PostgisRegisterTypesPlugin.ts index 5dcd250..ea25bae 100644 --- a/src/PostgisRegisterTypesPlugin.ts +++ b/src/PostgisRegisterTypesPlugin.ts @@ -1,341 +1,392 @@ -import { Plugin } from "graphile-build"; -import debug from "./debug"; -import { PgType } from "graphile-build-pg"; -import { GraphQLResolveInfo, GraphQLType, GraphQLNamedType } from "graphql"; -import { Subtype } from "./interfaces"; -import { getGISTypeDetails, getGISTypeModifier, getGISTypeName } from "./utils"; -import { SQL } from "pg-sql2"; -import makeGeoJSONType from "./makeGeoJSONType"; +import { sql } from "@dataplan/pg"; +import type { GraphQLInterfaceType } from "graphql"; +import type { + Subtype, + TypeRegistry, + InterfaceRegistry, + PostGISResolvedData, +} from "./types.ts"; +import { + getGISTypeDetails, + getGISTypeModifier, + getGISTypeName, +} from "./utils.ts"; +import { geoJsonToWkt } from "./geoJsonToWkt.ts"; +import makeGeoJSONType from "./makeGeoJSONType.ts"; +import { version } from "./version.ts"; -function identity(input: T): T { - return input; +declare global { + namespace GraphileBuild { + interface ScopeScalar { + isGeoJSONType?: boolean; + } + interface ScopeInterface { + isPgGISInterface?: boolean; + isPgGISDimensionInterface?: boolean; + pgGISTypeName?: string; + pgGISZMFlag?: number; + } + interface Build { + pgGISGraphQLTypesByTypeAndSubtype: TypeRegistry; + pgGISGraphQLInterfaceTypesByType: InterfaceRegistry; + } + } + namespace DataplanPg { + interface PgCodecAttributeExtensions { + postgisTypeModifier?: number; + } + } } -const plugin: Plugin = builder => { - builder.hook("build", build => { - const GeoJSON = makeGeoJSONType( - build.graphql, - build.inflection.builtin("GeoJSON") - ); - build.addType(GeoJSON); +export const PostgisRegisterTypesPlugin: GraphileConfig.Plugin = { + name: "PostgisRegisterTypesPlugin", + version, - return build.extend(build, { - getPostgisTypeByGeometryType( - pgGISType: PgType, - subtype: Subtype, - hasZ: boolean = false, - hasM: boolean = false, - srid: number = 0 - ) { - const typeModifier = getGISTypeModifier(subtype, hasZ, hasM, srid); - return this.pgGetGqlTypeByTypeIdAndModifier(pgGISType.id, typeModifier); + gather: { + hooks: { + async pgCodecs_findPgCodec(_info, event) { + if (event.pgCodec) return; // Another plugin already handled this + const { pgType } = event; + const typeName = pgType.typname; + if (typeName === "geometry" || typeName === "geography") { + const namespace = pgType.getNamespace(); + const schemaName = namespace?.nspname ?? "public"; + // Create a text-like scalar codec for PostGIS types + event.pgCodec = { + name: typeName, + sqlType: sql.identifier(schemaName, typeName), + fromPg: (value) => value, + toPg: (value) => geoJsonToWkt(value), + attributes: undefined, + extensions: { + pg: { + name: typeName, + schemaName, + serviceName: "postgis", + }, + }, + castFromPg: undefined, + listCastFromPg: undefined, + executor: null, + isBinary: false, + isEnum: false, + hasNaturalOrdering: false, + hasNaturalEquality: false, + }; + } }, - pgGISIncludedTypes: [], - pgGISIncludeType(Type: GraphQLNamedType) { - this.pgGISIncludedTypes.push(Type); + + async pgCodecs_attribute(_info, event) { + const { pgAttribute, attribute } = event; + if ( + attribute.codec && + (attribute.codec.name === "geometry" || + attribute.codec.name === "geography") && + pgAttribute.atttypmod != null && + pgAttribute.atttypmod !== -1 + ) { + if (!attribute.extensions) { + attribute.extensions = { tags: {} }; + } + attribute.extensions.postgisTypeModifier = pgAttribute.atttypmod; + } }, - }); - }); + }, + }, - builder.hook( - "init", - (_, build) => { - const { - newWithHooks, - pgIntrospectionResultsByKind: introspectionResultsByKind, - graphql: { - GraphQLInt, - GraphQLNonNull, - GraphQLInterfaceType, - GraphQLObjectType, - }, - pgRegisterGqlTypeByTypeId, - pgRegisterGqlInputTypeByTypeId, - pgTweaksByTypeIdAndModifer, - getTypeByName, - pgSql: sql, - pg2gql, - pg2GqlMapper, - inflection, - pgGISGraphQLTypesByTypeAndSubtype: constructedTypes, - pgGISGraphQLInterfaceTypesByType: _interfaces, - pgGISGeometryType: GEOMETRY_TYPE, - pgGISGeographyType: GEOGRAPHY_TYPE, - pgGISExtension: POSTGIS, - pgGISIncludeType: includeType, - } = build; - if (!GEOMETRY_TYPE || !GEOGRAPHY_TYPE) { - return _; - } - debug("PostGIS plugin enabled"); + schema: { + hooks: { + build(build) { + const { pgGISGeometryCodec, pgGISGeographyCodec } = build; - const GeoJSON = getTypeByName(inflection.builtin("GeoJSON")); - const geojsonFieldName = inflection.geojsonFieldName(); + if (!pgGISGeometryCodec && !pgGISGeographyCodec) { + return build; + } + + const constructedTypes = build.pgGISGraphQLTypesByTypeAndSubtype; + + build.getPostgisTypeByGeometryType = function ( + codecName: string, + subtype: Subtype, + hasZ = false, + hasM = false + ) { + const gisTypeKey = getGISTypeName(subtype, hasZ, hasM); + return constructedTypes?.[codecName]?.[gisTypeKey]; + }; + + build.pgGISIncludedTypes = []; + build.pgGISIncludeType = function (typeName: string) { + if (typeName) { + build.pgGISIncludedTypes!.push(typeName); + } + }; + + return build; + }, + + init(_, build, _context) { + const { + graphql: { GraphQLInt, GraphQLNonNull }, + inflection, + pgGISGeographyCodec, + pgGISGeometryCodec, + } = build; - function getGisInterface(type: PgType) { - const zmflag = -1; // no dimensional constraint; could be xy/xyz/xym/xyzm - if (!_interfaces[type.id]) { - _interfaces[type.id] = {}; + if (!pgGISGeometryCodec && !pgGISGeographyCodec) { + return _; } - if (!_interfaces[type.id][zmflag]) { - _interfaces[type.id][zmflag] = newWithHooks( - GraphQLInterfaceType, - { - name: inflection.gisInterfaceName(type), - fields: { - [geojsonFieldName]: { - type: GeoJSON, - description: "Converts the object to GeoJSON", - }, - srid: { - type: new GraphQLNonNull(GraphQLInt), - description: "Spatial reference identifier (SRID)", - }, - }, - resolveType(value: any, _info?: GraphQLResolveInfo) { - const Type = - constructedTypes[type.id] && - constructedTypes[type.id][value.__gisType]; - return Type; - }, - description: `All ${type.name} types implement this interface`, - }, - { - isPgGISInterface: true, - pgGISType: type, - pgGISZMFlag: zmflag, - } + + // Register GeoJSON scalar + const geoJSONName = inflection.builtin("GeoJSON"); + build.registerScalarType( + geoJSONName, + { isGeoJSONType: true }, + () => makeGeoJSONType(build.graphql, geoJSONName), + "Adding GeoJSON type from PostGIS plugin" + ); + + // Map geometry and geography codecs to GeoJSON type + // This makes PostGIS columns appear in the schema with the GeoJSON type + // as a fallback; specific output types are overridden per-field by PostgisColumnsPlugin + if (pgGISGeometryCodec) { + build.setGraphQLTypeForPgCodec( + pgGISGeometryCodec, + ["input", "output"], + geoJSONName ); - // Force creation of all GraphQL types that could be resolved from this interface - const subtypes: Array = [1, 2, 3, 4, 5, 6, 7]; - for (const subtype of subtypes) { - for (const hasZ of [false, true]) { - for (const hasM of [false, true]) { - const typeModifier = getGISTypeModifier(subtype, hasZ, hasM, 0); - const Type = getGisType(type, typeModifier); - includeType(Type); - } - } - } } - return _interfaces[type.id][zmflag]; - } - function getGisDimensionInterface( - type: PgType, - hasZ: boolean, - hasM: boolean - ) { - const zmflag = (hasZ ? 2 : 0) + (hasM ? 1 : 0); // Equivalent to ST_Zmflag: https://postgis.net/docs/ST_Zmflag.html - const coords = { 0: "XY", 1: "XYM", 2: "XYZ", 3: "XYZM" }[zmflag]; - if (!_interfaces[type.id]) { - _interfaces[type.id] = {}; + if (pgGISGeographyCodec) { + build.setGraphQLTypeForPgCodec( + pgGISGeographyCodec, + ["input", "output"], + geoJSONName + ); } - if (!_interfaces[type.id][zmflag]) { - _interfaces[type.id][zmflag] = newWithHooks( - GraphQLInterfaceType, - { - name: inflection.gisDimensionInterfaceName(type, hasZ, hasM), - fields: { - [geojsonFieldName]: { - type: GeoJSON, - description: "Converts the object to GeoJSON", - }, - srid: { - type: new GraphQLNonNull(GraphQLInt), - description: "Spatial reference identifier (SRID)", - }, - }, - resolveType(value: any, _info?: GraphQLResolveInfo) { - const Type = - constructedTypes[type.id] && - constructedTypes[type.id][value.__gisType]; - return Type; + + const geojsonFieldName = inflection.geojsonFieldName(); + const constructedTypes = build.pgGISGraphQLTypesByTypeAndSubtype; + const _interfaces = build.pgGISGraphQLInterfaceTypesByType; + + // Helper to get or create top-level interface name (registers during init) + function ensureGisInterface(codecName: string): string { + const zmflag = -1; + if (!_interfaces[codecName]) { + _interfaces[codecName] = {}; + } + if (!_interfaces[codecName][zmflag]) { + const interfaceName = inflection.gisInterfaceName({ + typeName: codecName, + }); + build.registerInterfaceType( + interfaceName, + { + isPgGISInterface: true, + pgGISTypeName: codecName, + pgGISZMFlag: zmflag, }, - description: `All ${type.name} ${coords} types implement this interface`, - }, - { - isPgGISDimensionInterface: true, - pgGISType: type, - pgGISZMFlag: zmflag, - } - ); - // Force creation of all GraphQL types that could be resolved from this interface - const subtypes: Array = [1, 2, 3, 4, 5, 6, 7]; - for (const subtype of subtypes) { - const typeModifier = getGISTypeModifier(subtype, hasZ, hasM, 0); - const Type = getGisType(type, typeModifier); - includeType(Type); + () => ({ + fields: () => ({ + ...(build.getTypeByName(geoJSONName) + ? { + [geojsonFieldName]: { + type: build.getTypeByName(geoJSONName), + description: "Converts the object to GeoJSON", + }, + } + : {}), + srid: { + type: new GraphQLNonNull(GraphQLInt), + description: "Spatial reference identifier (SRID)", + }, + }), + resolveType(value: PostGISResolvedData) { + const Type = constructedTypes[codecName]?.[value.__gisType]; + return Type; + }, + description: `All ${codecName} types implement this interface`, + }), + `PostGIS ${codecName} interface` + ); + _interfaces[codecName][zmflag] = interfaceName; } + return _interfaces[codecName][zmflag]; } - return _interfaces[type.id][zmflag]; - } - function getGisType(type: PgType, typeModifier: number) { - const typeId = type.id; - const typeDetails = getGISTypeDetails(typeModifier); - const { subtype, hasZ, hasM, srid } = typeDetails; - debug( - `Getting ${type.name} type ${type.id}|${typeModifier}|${subtype}|${hasZ}|${hasM}|${srid}` - ); - if (!constructedTypes[type.id]) { - constructedTypes[type.id] = {}; - } - const typeModifierKey = typeModifier != null ? typeModifier : -1; - if (!pgTweaksByTypeIdAndModifer[typeId]) { - pgTweaksByTypeIdAndModifer[typeId] = {}; - } - if (!pgTweaksByTypeIdAndModifer[typeId][typeModifierKey]) { - pgTweaksByTypeIdAndModifer[typeId][typeModifierKey] = ( - fragment: SQL, - _resolveData: any - ) => { - const params = [ - sql.literal("__gisType"), - sql.fragment`${sql.identifier( - POSTGIS.namespaceName || "public", - "postgis_type_name" // MUST be lowercase! - )}( - ${sql.identifier( - POSTGIS.namespaceName || "public", - "geometrytype" // MUST be lowercase! - )}(${fragment}), - ${sql.identifier( - POSTGIS.namespaceName || "public", - "st_coorddim" // MUST be lowercase! - )}(${fragment}::text) - )`, - sql.literal("__srid"), - sql.fragment`${sql.identifier( - POSTGIS.namespaceName || "public", - "st_srid" // MUST be lowercase! - )}(${fragment})`, - sql.literal("__geojson"), - sql.fragment`${sql.identifier( - POSTGIS.namespaceName || "public", - "st_asgeojson" // MUST be lowercase! - )}(${fragment})::JSON`, - ]; - return sql.fragment`(case when ${fragment} is null then null else json_build_object( - ${sql.join(params, ", ")} - ) end)`; - }; - } - const gisTypeKey = - typeModifier != null ? getGISTypeName(subtype, hasZ, hasM) : -1; - if (!constructedTypes[type.id][gisTypeKey]) { - if (typeModifierKey === -1) { - constructedTypes[type.id][gisTypeKey] = getGisInterface(type); - } else if (subtype === 0) { - constructedTypes[type.id][gisTypeKey] = getGisDimensionInterface( - type, - hasZ, - hasM - ); - } else { - const intType = introspectionResultsByKind.type.find( - (t: PgType) => - t.name === "int4" && t.namespaceName === "pg_catalog" - ); - const jsonType = introspectionResultsByKind.type.find( - (t: PgType) => - t.name === "json" && t.namespaceName === "pg_catalog" - ); - constructedTypes[type.id][gisTypeKey] = newWithHooks( - GraphQLObjectType, + // Helper to get or create dimension interface name (registers during init) + function ensureGisDimensionInterface( + codecName: string, + hasZ: boolean, + hasM: boolean + ): string { + const zmflag = (hasZ ? 2 : 0) + (hasM ? 1 : 0); + if (!_interfaces[codecName]) { + _interfaces[codecName] = {}; + } + if (!_interfaces[codecName][zmflag]) { + const interfaceName = inflection.gisDimensionInterfaceName({ + typeName: codecName, + hasZ, + hasM, + }); + build.registerInterfaceType( + interfaceName, { - name: inflection.gisType(type, subtype, hasZ, hasM, srid), - interfaces: () => [ - getGisInterface(type), - getGisDimensionInterface(type, hasZ, hasM), - ], - fields: { - [geojsonFieldName]: { - type: GeoJSON, - resolve: ( - data: any, - _args: any, - _context: any, - _resolveInfo: GraphQLResolveInfo - ) => { - return pg2gql(data.__geojson, jsonType); - }, - }, + isPgGISDimensionInterface: true, + pgGISTypeName: codecName, + pgGISZMFlag: zmflag, + }, + () => ({ + fields: () => ({ + ...(build.getTypeByName(geoJSONName) + ? { + [geojsonFieldName]: { + type: build.getTypeByName(geoJSONName), + description: "Converts the object to GeoJSON", + }, + } + : {}), srid: { type: new GraphQLNonNull(GraphQLInt), - resolve: ( - data: any, - _args: any, - _context: any, - _resolveInfo: GraphQLResolveInfo - ) => { - return pg2gql(data.__srid, intType); - }, + description: "Spatial reference identifier (SRID)", }, + }), + resolveType(value: PostGISResolvedData) { + const Type = constructedTypes[codecName]?.[value.__gisType]; + return Type; }, - }, - { - isPgGISType: true, - pgGISType: type, - pgGISTypeDetails: typeDetails, - } + description: `All ${codecName} ${ + { 0: "XY", 1: "XYM", 2: "XYZ", 3: "XYZM" }[zmflag] + } types implement this interface`, + }), + `PostGIS ${codecName} dimension interface (zmflag=${zmflag})` ); + _interfaces[codecName][zmflag] = interfaceName; } + return _interfaces[codecName][zmflag]; } - return constructedTypes[type.id][gisTypeKey]; - } - - debug(`Registering handler for ${GEOGRAPHY_TYPE.id}`); - pgRegisterGqlInputTypeByTypeId(GEOGRAPHY_TYPE.id, () => GeoJSON); - pg2GqlMapper[GEOGRAPHY_TYPE.id] = { - map: identity, - unmap: (o: any) => - sql.fragment`st_geomfromgeojson(${sql.value( - JSON.stringify(o) - )}::text)::${sql.identifier( - POSTGIS.namespaceName || "public", - "geography" - )}`, - }; + // Phase 1: Register ALL interfaces first (must happen during init) + for (const codecName of ["geometry", "geography"]) { + // Top-level interface (e.g., GeometryInterface, GeographyInterface) + ensureGisInterface(codecName); - pgRegisterGqlTypeByTypeId( - GEOGRAPHY_TYPE.id, - (_set: (type: GraphQLType) => void, typeModifier: number) => { - return getGisType(GEOGRAPHY_TYPE, typeModifier); + // Dimension interfaces for all Z/M combinations + for (const hasZ of [false, true]) { + for (const hasM of [false, true]) { + ensureGisDimensionInterface(codecName, hasZ, hasM); + } + } } - ); - debug(`Registering handler for ${GEOMETRY_TYPE.id}`); + // Phase 2: Register ALL object types (must happen during init) + const subtypes: Array = [1, 2, 3, 4, 5, 6, 7]; + for (const codecName of ["geometry", "geography"]) { + if (!constructedTypes[codecName]) { + constructedTypes[codecName] = {}; + } + for (const subtype of subtypes) { + for (const hasZ of [false, true]) { + for (const hasM of [false, true]) { + const typeModifier = getGISTypeModifier(subtype, hasZ, hasM, 0); + const typeDetails = getGISTypeDetails(typeModifier); + const gisTypeKey = getGISTypeName( + typeDetails.subtype, + typeDetails.hasZ, + typeDetails.hasM + ); + + if (!constructedTypes[codecName][gisTypeKey]) { + const typeName = inflection.gisType({ + typeName: codecName, + subtype, + hasZ, + hasM, + }); + + build.registerObjectType( + typeName, + { + isPgGISType: true, + pgGISTypeName: codecName, + pgGISTypeDetails: typeDetails, + }, + () => ({ + interfaces: () => { + const interfaceTypeName = _interfaces[codecName]?.[-1]; + const dimZmflag = (hasZ ? 2 : 0) + (hasM ? 1 : 0); + const dimInterfaceTypeName = + _interfaces[codecName]?.[dimZmflag]; + const ifaces: GraphQLInterfaceType[] = []; + if (interfaceTypeName) { + const iface = build.getTypeByName(interfaceTypeName); + if (iface) ifaces.push(iface as GraphQLInterfaceType); + } + if (dimInterfaceTypeName) { + const iface = + build.getTypeByName(dimInterfaceTypeName); + if (iface) ifaces.push(iface as GraphQLInterfaceType); + } + return ifaces; + }, + fields: () => ({ + ...(build.getTypeByName(geoJSONName) + ? { + [geojsonFieldName]: { + type: build.getTypeByName(geoJSONName), + resolve(data: PostGISResolvedData) { + return data.__geojson; + }, + }, + } + : {}), + srid: { + type: new GraphQLNonNull(GraphQLInt), + resolve(data: PostGISResolvedData) { + return data.__srid; + }, + }, + }), + }), + `PostGIS ${codecName} type ${gisTypeKey}` + ); + constructedTypes[codecName][gisTypeKey] = typeName; + } + } + } + } + + // Also store dimension interface names as the "subtype 0" entries + for (const hasZ of [false, true]) { + for (const hasM of [false, true]) { + const gisTypeKey = getGISTypeName(0, hasZ, hasM); + if (!constructedTypes[codecName][gisTypeKey]) { + constructedTypes[codecName][gisTypeKey] = + ensureGisDimensionInterface(codecName, hasZ, hasM); + } + } + } + } - pgRegisterGqlInputTypeByTypeId(GEOMETRY_TYPE.id, () => GeoJSON); - pg2GqlMapper[GEOMETRY_TYPE.id] = { - map: identity, - unmap: (o: any) => - sql.fragment`st_geomfromgeojson(${sql.value( - JSON.stringify(o) - )}::text)`, - }; + return _; + }, - pgRegisterGqlTypeByTypeId( - GEOMETRY_TYPE.id, - (_set: (type: GraphQLType) => void, typeModifier: number) => { - return getGisType(GEOMETRY_TYPE, typeModifier); + // Ensure all PostGIS types are included in the schema + GraphQLSchema(schema, build) { + if (!build.pgGISGeometryCodec && !build.pgGISGeographyCodec) { + return schema; + } + const types = [...(schema.types || [])]; + for (const typeName of build.pgGISIncludedTypes) { + const type = build.getTypeByName(typeName); + if (type) { + types.push(type); + } } - ); - return _; + return { ...schema, types }; + }, }, - ["PostgisTypes"], - ["PgTables"], - ["PgTypes"] - ); - - builder.hook("GraphQLSchema", (schema, build) => { - if (!schema.types) { - schema.types = []; - } - schema.types = [...schema.types, ...build.pgGISIncludedTypes]; - return schema; - }); + }, }; -export default plugin; +export default PostgisRegisterTypesPlugin; diff --git a/src/PostgisVersionPlugin.ts b/src/PostgisVersionPlugin.ts index c483ef5..edc3f99 100644 --- a/src/PostgisVersionPlugin.ts +++ b/src/PostgisVersionPlugin.ts @@ -1,33 +1,21 @@ -import { Plugin } from "graphile-build"; +import { version } from "./version.ts"; -const plugin: Plugin = builder => { - builder.hook("build", build => { - const pkg = require("./../package.json"); +export const PostgisVersionPlugin: GraphileConfig.Plugin = { + name: "PostgisVersionPlugin", + version, - // Check dependencies - if (!build.versions) { - throw new Error( - `Plugin ${pkg.name}@${pkg.version} requires graphile-build@^4.1.0 in order to check dependencies (current version: ${build.graphileBuildVersion})` - ); - } - const depends = (name: string, range: string) => { - if (!build.hasVersion(name, range)) { - throw new Error( - `Plugin ${pkg.name}@${pkg.version} requires ${name}@${range} (${ - build.versions[name] - ? `current version: ${build.versions[name]}` - : "not found" - })` + schema: { + hooks: { + build(build) { + build.versions = build.extend( + build.versions, + { "@graphile/postgis": version }, + "Adding @graphile/postgis version" ); - } - }; - depends("graphile-build-pg", "^4.4.0"); - - // Register this plugin - build.versions = build.extend(build.versions, { [pkg.name]: pkg.version }); - - return build; - }); + return build; + }, + }, + }, }; -export default plugin; +export default PostgisVersionPlugin; diff --git a/src/Postgis_GeometryCollection_GeometriesPlugin.ts b/src/Postgis_GeometryCollection_GeometriesPlugin.ts index 0a77ba7..4b2b801 100644 --- a/src/Postgis_GeometryCollection_GeometriesPlugin.ts +++ b/src/Postgis_GeometryCollection_GeometriesPlugin.ts @@ -1,50 +1,77 @@ -import { Plugin } from "graphile-build"; -import debug from "./debug"; -import { GIS_SUBTYPE } from "./constants"; -import { getGISTypeName } from "./utils"; +import type { GraphQLOutputType } from "postgraphile/graphql"; +import type { PostGISResolvedData, Subtype } from "./types.ts"; +import debug from "./debug.ts"; +import { GIS_SUBTYPE } from "./constants.ts"; +import { getGISTypeName } from "./utils.ts"; +import { version } from "./version.ts"; -const plugin: Plugin = builder => { - builder.hook( - "GraphQLObjectType:fields", - function AddGeometriesToGeometryCollection(fields, build, context) { - const { - scope: { isPgGISType, pgGISType, pgGISTypeDetails }, - } = context; - if ( - !isPgGISType || - !pgGISTypeDetails || - pgGISTypeDetails.subtype !== GIS_SUBTYPE.GeometryCollection - ) { - return fields; - } - const { - extend, - pgGISGraphQLInterfaceTypesByType, - graphql: { GraphQLList }, - } = build; - const { hasZ, hasM } = pgGISTypeDetails; - const zmflag = (hasZ ? 2 : 0) + (hasM ? 1 : 0); // Equivalent to ST_Zmflag: https://postgis.net/docs/ST_Zmflag.html - const Interface = pgGISGraphQLInterfaceTypesByType[pgGISType.id][zmflag]; - if (!Interface) { - debug("Unexpectedly couldn't find the interface"); - return fields; - } +export const Postgis_GeometryCollection_GeometriesPlugin: GraphileConfig.Plugin = + { + name: "Postgis_GeometryCollection_GeometriesPlugin", + description: "Enhancing the `GeometryCollection` type", + version, - return extend(fields, { - geometries: { - type: new GraphQLList(Interface), - resolve(data: any) { - return data.__geojson.geometries.map((geom: any) => { - return { - __gisType: getGISTypeName(GIS_SUBTYPE[geom.type], hasZ, hasM), - __srid: data.__srid, - __geojson: geom, - }; - }); - }, + schema: { + hooks: { + GraphQLObjectType_fields(fields, build, context) { + const { + scope: { isPgGISType, pgGISTypeName, pgGISTypeDetails }, + } = context; + if ( + !isPgGISType || + !pgGISTypeDetails || + pgGISTypeDetails.subtype !== GIS_SUBTYPE.GeometryCollection + ) { + return fields; + } + const { + extend, + pgGISGraphQLInterfaceTypesByType, + graphql: { GraphQLList }, + } = build; + const { hasZ, hasM } = pgGISTypeDetails; + const zmflag = (hasZ ? 2 : 0) + (hasM ? 1 : 0); + const interfaceTypeName = + pgGISGraphQLInterfaceTypesByType[pgGISTypeName!]?.[zmflag]; + if (!interfaceTypeName) { + debug("Unexpectedly couldn't find the interface"); + return fields; + } + const Interface = build.getTypeByName( + interfaceTypeName + ) as GraphQLOutputType; + if (!Interface) { + debug("Unexpectedly couldn't find the interface type"); + return fields; + } + + return extend( + fields, + { + geometries: { + type: new GraphQLList(Interface), + resolve(data: PostGISResolvedData) { + return data.__geojson.geometries!.map((geom) => { + return { + __gisType: getGISTypeName( + GIS_SUBTYPE[ + geom.type as keyof typeof GIS_SUBTYPE + ] as Subtype, + hasZ, + hasM + ), + __srid: data.__srid, + __geojson: geom, + } satisfies PostGISResolvedData; + }); + }, + }, + }, + "PostGIS GeometryCollection geometries field" + ); }, - }); - } - ); -}; -export default plugin; + }, + }, + }; + +export default Postgis_GeometryCollection_GeometriesPlugin; diff --git a/src/Postgis_LineString_PointsPlugin.ts b/src/Postgis_LineString_PointsPlugin.ts index 19611e0..930907e 100644 --- a/src/Postgis_LineString_PointsPlugin.ts +++ b/src/Postgis_LineString_PointsPlugin.ts @@ -1,50 +1,71 @@ -import { Plugin } from "graphile-build"; -import { GIS_SUBTYPE } from "./constants"; -import { getGISTypeName } from "./utils"; +import type { GraphQLOutputType } from "postgraphile/graphql"; +import type { PostGISResolvedData } from "./types.ts"; +import { GIS_SUBTYPE } from "./constants.ts"; +import { getGISTypeName } from "./utils.ts"; +import { version } from "./version.ts"; -const plugin: Plugin = builder => { - builder.hook("GraphQLObjectType:fields", (fields, build, context) => { - const { - scope: { isPgGISType, pgGISType, pgGISTypeDetails }, - } = context; - if ( - !isPgGISType || - !pgGISTypeDetails || - pgGISTypeDetails.subtype !== GIS_SUBTYPE.LineString - ) { - return fields; - } - const { - extend, - getPostgisTypeByGeometryType, - graphql: { GraphQLList }, - } = build; - const { hasZ, hasM, srid } = pgGISTypeDetails; - const Point = getPostgisTypeByGeometryType( - pgGISType, - GIS_SUBTYPE.Point, - hasZ, - hasM, - srid - ); +export const Postgis_LineString_PointsPlugin: GraphileConfig.Plugin = { + name: "Postgis_LineString_PointsPlugin", + description: "Enhancing the `LineString` type", + version, - return extend(fields, { - points: { - type: new GraphQLList(Point), - resolve(data: any) { - return data.__geojson.coordinates.map((coord: any) => { - return { - __gisType: getGISTypeName(GIS_SUBTYPE.Point, hasZ, hasM), - __srid: data.__srid, - __geojson: { - type: "Point", - coordinates: coord, + schema: { + hooks: { + GraphQLObjectType_fields(fields, build, context) { + const { + scope: { isPgGISType, pgGISTypeName, pgGISTypeDetails }, + } = context; + if ( + !isPgGISType || + !pgGISTypeDetails || + pgGISTypeDetails.subtype !== GIS_SUBTYPE.LineString + ) { + return fields; + } + const { + extend, + getPostgisTypeByGeometryType, + graphql: { GraphQLList }, + } = build; + const { hasZ, hasM, srid } = pgGISTypeDetails; + const pointTypeName = getPostgisTypeByGeometryType( + pgGISTypeName!, + GIS_SUBTYPE.Point, + hasZ, + hasM, + srid + ); + const Point = pointTypeName + ? (build.getTypeByName(pointTypeName) as GraphQLOutputType) + : null; + if (!Point) return fields; + + return extend( + fields, + { + points: { + type: new GraphQLList(Point), + resolve(data: PostGISResolvedData) { + return (data.__geojson.coordinates as number[][]).map( + (coord) => { + return { + __gisType: getGISTypeName(GIS_SUBTYPE.Point, hasZ, hasM), + __srid: data.__srid, + __geojson: { + type: "Point", + coordinates: coord, + }, + }; + } + ); }, - }; - }); - }, + }, + }, + "PostGIS LineString points field" + ); }, - }); - }); + }, + }, }; -export default plugin; + +export default Postgis_LineString_PointsPlugin; diff --git a/src/Postgis_MultiLineString_LineStringsPlugin.ts b/src/Postgis_MultiLineString_LineStringsPlugin.ts index 7685e14..9e5fd6a 100644 --- a/src/Postgis_MultiLineString_LineStringsPlugin.ts +++ b/src/Postgis_MultiLineString_LineStringsPlugin.ts @@ -1,48 +1,74 @@ -import { Plugin } from "graphile-build"; -import { GIS_SUBTYPE } from "./constants"; -import { getGISTypeName } from "./utils"; +import type { GraphQLOutputType } from "postgraphile/graphql"; +import type { PostGISResolvedData } from "./types.ts"; +import { GIS_SUBTYPE } from "./constants.ts"; +import { getGISTypeName } from "./utils.ts"; +import { version } from "./version.ts"; -const plugin: Plugin = builder => { - builder.hook("GraphQLObjectType:fields", (fields, build, context) => { - const { - scope: { isPgGISType, pgGISType, pgGISTypeDetails }, - } = context; - if ( - !isPgGISType || - !pgGISTypeDetails || - pgGISTypeDetails.subtype !== GIS_SUBTYPE.MultiLineString - ) { - return fields; - } - const { - extend, - getPostgisTypeByGeometryType, - graphql: { GraphQLList }, - } = build; - const { hasZ, hasM, srid } = pgGISTypeDetails; - const LineString = getPostgisTypeByGeometryType( - pgGISType, - GIS_SUBTYPE.LineString, - hasZ, - hasM, - srid - ); +export const Postgis_MultiLineString_LineStringsPlugin: GraphileConfig.Plugin = + { + name: "Postgis_MultiLineString_LineStringsPlugin", + description: "Enhancing the `MultiLineString` type", + version, - return extend(fields, { - lines: { - type: new GraphQLList(LineString), - resolve(data: any) { - return data.__geojson.coordinates.map((coord: any) => ({ - __gisType: getGISTypeName(GIS_SUBTYPE.LineString, hasZ, hasM), - __srid: data.__srid, - __geojson: { - type: "LineString", - coordinates: coord, + schema: { + hooks: { + GraphQLObjectType_fields(fields, build, context) { + const { + scope: { isPgGISType, pgGISTypeName, pgGISTypeDetails }, + } = context; + if ( + !isPgGISType || + !pgGISTypeDetails || + pgGISTypeDetails.subtype !== GIS_SUBTYPE.MultiLineString + ) { + return fields; + } + const { + extend, + getPostgisTypeByGeometryType, + graphql: { GraphQLList }, + } = build; + const { hasZ, hasM, srid } = pgGISTypeDetails; + const lineStringTypeName = getPostgisTypeByGeometryType( + pgGISTypeName!, + GIS_SUBTYPE.LineString, + hasZ, + hasM, + srid + ); + const LineString = lineStringTypeName + ? (build.getTypeByName(lineStringTypeName) as GraphQLOutputType) + : null; + if (!LineString) return fields; + + return extend( + fields, + { + lines: { + type: new GraphQLList(LineString), + resolve(data: PostGISResolvedData) { + return (data.__geojson.coordinates as number[][][]).map( + (coord) => ({ + __gisType: getGISTypeName( + GIS_SUBTYPE.LineString, + hasZ, + hasM + ), + __srid: data.__srid, + __geojson: { + type: "LineString", + coordinates: coord, + }, + }) + ); + }, + }, }, - })); + "PostGIS MultiLineString lines field" + ); }, }, - }); - }); -}; -export default plugin; + }, + }; + +export default Postgis_MultiLineString_LineStringsPlugin; diff --git a/src/Postgis_MultiPoint_PointsPlugin.ts b/src/Postgis_MultiPoint_PointsPlugin.ts index 3e2b6c0..5294620 100644 --- a/src/Postgis_MultiPoint_PointsPlugin.ts +++ b/src/Postgis_MultiPoint_PointsPlugin.ts @@ -1,48 +1,69 @@ -import { Plugin } from "graphile-build"; -import { GIS_SUBTYPE } from "./constants"; -import { getGISTypeName } from "./utils"; +import type { GraphQLOutputType } from "postgraphile/graphql"; +import type { PostGISResolvedData } from "./types.ts"; +import { GIS_SUBTYPE } from "./constants.ts"; +import { getGISTypeName } from "./utils.ts"; +import { version } from "./version.ts"; -const plugin: Plugin = builder => { - builder.hook("GraphQLObjectType:fields", (fields, build, context) => { - const { - scope: { isPgGISType, pgGISType, pgGISTypeDetails }, - } = context; - if ( - !isPgGISType || - !pgGISTypeDetails || - pgGISTypeDetails.subtype !== GIS_SUBTYPE.MultiPoint - ) { - return fields; - } - const { - extend, - getPostgisTypeByGeometryType, - graphql: { GraphQLList }, - } = build; - const { hasZ, hasM, srid } = pgGISTypeDetails; - const Point = getPostgisTypeByGeometryType( - pgGISType, - GIS_SUBTYPE.Point, - hasZ, - hasM, - srid - ); +export const Postgis_MultiPoint_PointsPlugin: GraphileConfig.Plugin = { + name: "Postgis_MultiPoint_PointsPlugin", + description: "Enhancing the `MultiPoint` type", + version, - return extend(fields, { - points: { - type: new GraphQLList(Point), - resolve(data: any) { - return data.__geojson.coordinates.map((coord: any) => ({ - __gisType: getGISTypeName(GIS_SUBTYPE.Point, hasZ, hasM), - __srid: data.__srid, - __geojson: { - type: "Point", - coordinates: coord, + schema: { + hooks: { + GraphQLObjectType_fields(fields, build, context) { + const { + scope: { isPgGISType, pgGISTypeName, pgGISTypeDetails }, + } = context; + if ( + !isPgGISType || + !pgGISTypeDetails || + pgGISTypeDetails.subtype !== GIS_SUBTYPE.MultiPoint + ) { + return fields; + } + const { + extend, + getPostgisTypeByGeometryType, + graphql: { GraphQLList }, + } = build; + const { hasZ, hasM, srid } = pgGISTypeDetails; + const pointTypeName = getPostgisTypeByGeometryType( + pgGISTypeName!, + GIS_SUBTYPE.Point, + hasZ, + hasM, + srid + ); + const Point = pointTypeName + ? (build.getTypeByName(pointTypeName) as GraphQLOutputType) + : null; + if (!Point) return fields; + + return extend( + fields, + { + points: { + type: new GraphQLList(Point), + resolve(data: PostGISResolvedData) { + return (data.__geojson.coordinates as number[][]).map( + (coord) => ({ + __gisType: getGISTypeName(GIS_SUBTYPE.Point, hasZ, hasM), + __srid: data.__srid, + __geojson: { + type: "Point", + coordinates: coord, + }, + }) + ); + }, }, - })); - }, + }, + "PostGIS MultiPoint points field" + ); }, - }); - }); + }, + }, }; -export default plugin; + +export default Postgis_MultiPoint_PointsPlugin; diff --git a/src/Postgis_MultiPolygon_PolygonsPlugin.ts b/src/Postgis_MultiPolygon_PolygonsPlugin.ts index 25540a5..2a8149a 100644 --- a/src/Postgis_MultiPolygon_PolygonsPlugin.ts +++ b/src/Postgis_MultiPolygon_PolygonsPlugin.ts @@ -1,48 +1,69 @@ -import { Plugin } from "graphile-build"; -import { GIS_SUBTYPE } from "./constants"; -import { getGISTypeName } from "./utils"; +import type { GraphQLOutputType } from "postgraphile/graphql"; +import type { PostGISResolvedData } from "./types.ts"; +import { GIS_SUBTYPE } from "./constants.ts"; +import { getGISTypeName } from "./utils.ts"; +import { version } from "./version.ts"; -const plugin: Plugin = builder => { - builder.hook("GraphQLObjectType:fields", (fields, build, context) => { - const { - scope: { isPgGISType, pgGISType, pgGISTypeDetails }, - } = context; - if ( - !isPgGISType || - !pgGISTypeDetails || - pgGISTypeDetails.subtype !== GIS_SUBTYPE.MultiPolygon - ) { - return fields; - } - const { - extend, - getPostgisTypeByGeometryType, - graphql: { GraphQLList }, - } = build; - const { hasZ, hasM, srid } = pgGISTypeDetails; - const Polygon = getPostgisTypeByGeometryType( - pgGISType, - GIS_SUBTYPE.Polygon, - hasZ, - hasM, - srid - ); +export const Postgis_MultiPolygon_PolygonsPlugin: GraphileConfig.Plugin = { + name: "Postgis_MultiPolygon_PolygonsPlugin", + description: "Enhancing the `MultiPolygon` type", + version, - return extend(fields, { - polygons: { - type: new GraphQLList(Polygon), - resolve(data: any) { - return data.__geojson.coordinates.map((coord: any) => ({ - __gisType: getGISTypeName(GIS_SUBTYPE.Polygon, hasZ, hasM), - __srid: data.__srid, - __geojson: { - type: "Polygon", - coordinates: coord, + schema: { + hooks: { + GraphQLObjectType_fields(fields, build, context) { + const { + scope: { isPgGISType, pgGISTypeName, pgGISTypeDetails }, + } = context; + if ( + !isPgGISType || + !pgGISTypeDetails || + pgGISTypeDetails.subtype !== GIS_SUBTYPE.MultiPolygon + ) { + return fields; + } + const { + extend, + getPostgisTypeByGeometryType, + graphql: { GraphQLList }, + } = build; + const { hasZ, hasM, srid } = pgGISTypeDetails; + const polygonTypeName = getPostgisTypeByGeometryType( + pgGISTypeName!, + GIS_SUBTYPE.Polygon, + hasZ, + hasM, + srid + ); + const Polygon = polygonTypeName + ? (build.getTypeByName(polygonTypeName) as GraphQLOutputType) + : null; + if (!Polygon) return fields; + + return extend( + fields, + { + polygons: { + type: new GraphQLList(Polygon), + resolve(data: PostGISResolvedData) { + return (data.__geojson.coordinates as number[][][][]).map( + (coord) => ({ + __gisType: getGISTypeName(GIS_SUBTYPE.Polygon, hasZ, hasM), + __srid: data.__srid, + __geojson: { + type: "Polygon", + coordinates: coord, + }, + }) + ); + }, }, - })); - }, + }, + "PostGIS MultiPolygon polygons field" + ); }, - }); - }); + }, + }, }; -export default plugin; + +export default Postgis_MultiPolygon_PolygonsPlugin; diff --git a/src/Postgis_Point_LatitudeLongitudePlugin.ts b/src/Postgis_Point_LatitudeLongitudePlugin.ts index 84387ac..62fe04a 100644 --- a/src/Postgis_Point_LatitudeLongitudePlugin.ts +++ b/src/Postgis_Point_LatitudeLongitudePlugin.ts @@ -1,50 +1,73 @@ -import { Plugin } from "graphile-build"; -import { GIS_SUBTYPE } from "./constants"; +import type { PostGISResolvedData } from "./types.ts"; +import { GIS_SUBTYPE } from "./constants.ts"; +import { version } from "./version.ts"; -const plugin: Plugin = builder => { - builder.hook("GraphQLObjectType:fields", (fields, build, context) => { - const { - scope: { isPgGISType, pgGISType, pgGISTypeDetails }, - } = context; - if ( - !isPgGISType || - !pgGISTypeDetails || - pgGISTypeDetails.subtype !== GIS_SUBTYPE.Point - ) { - return fields; - } - const { - extend, - graphql: { GraphQLNonNull, GraphQLFloat }, - inflection, - } = build; - const xFieldName = inflection.gisXFieldName(pgGISType); - const yFieldName = inflection.gisYFieldName(pgGISType); - const zFieldName = inflection.gisZFieldName(pgGISType); - return extend(fields, { - [xFieldName]: { - type: new GraphQLNonNull(GraphQLFloat), - resolve(data: any) { - return data.__geojson.coordinates[0]; - }, - }, - [yFieldName]: { - type: new GraphQLNonNull(GraphQLFloat), - resolve(data: any) { - return data.__geojson.coordinates[1]; - }, - }, - ...(pgGISTypeDetails.hasZ - ? { - [zFieldName]: { +export const Postgis_Point_LatitudeLongitudePlugin: GraphileConfig.Plugin = { + name: "Postgis_Point_LatitudeLongitudePlugin", + description: "Enhancing the `Point` type", + version, + + schema: { + hooks: { + GraphQLObjectType_fields(fields, build, context) { + const { + scope: { isPgGISType, pgGISTypeName, pgGISTypeDetails }, + } = context; + if ( + !isPgGISType || + !pgGISTypeDetails || + pgGISTypeDetails.subtype !== GIS_SUBTYPE.Point + ) { + return fields; + } + const { + extend, + graphql: { GraphQLNonNull, GraphQLFloat }, + inflection, + } = build; + const xFieldName = inflection.gisXFieldName({ + typeName: pgGISTypeName!, + scope: context.scope, + }); + const yFieldName = inflection.gisYFieldName({ + typeName: pgGISTypeName!, + scope: context.scope, + }); + const zFieldName = inflection.gisZFieldName({ + typeName: pgGISTypeName!, + scope: context.scope, + }); + return extend( + fields, + { + [xFieldName]: { + type: new GraphQLNonNull(GraphQLFloat), + resolve(data: PostGISResolvedData) { + return (data.__geojson.coordinates as number[])[0]; + }, + }, + [yFieldName]: { type: new GraphQLNonNull(GraphQLFloat), - resolve(data: any) { - return data.__geojson.coordinates[2]; + resolve(data: PostGISResolvedData) { + return (data.__geojson.coordinates as number[])[1]; }, }, - } - : {}), - }); - }); + ...(pgGISTypeDetails.hasZ + ? { + [zFieldName]: { + type: new GraphQLNonNull(GraphQLFloat), + resolve(data: PostGISResolvedData) { + return (data.__geojson.coordinates as number[])[2]; + }, + }, + } + : {}), + }, + "PostGIS Point lat/lon fields" + ); + }, + }, + }, }; -export default plugin; + +export default Postgis_Point_LatitudeLongitudePlugin; diff --git a/src/Postgis_Polygon_RingsPlugin.ts b/src/Postgis_Polygon_RingsPlugin.ts index b8324f6..8a41928 100644 --- a/src/Postgis_Polygon_RingsPlugin.ts +++ b/src/Postgis_Polygon_RingsPlugin.ts @@ -1,61 +1,88 @@ -import { Plugin } from "graphile-build"; -import { GIS_SUBTYPE } from "./constants"; -import { getGISTypeName } from "./utils"; +import type { GraphQLOutputType } from "postgraphile/graphql"; +import type { PostGISResolvedData } from "./types.ts"; +import { GIS_SUBTYPE } from "./constants.ts"; +import { getGISTypeName } from "./utils.ts"; +import { version } from "./version.ts"; -const plugin: Plugin = builder => { - builder.hook("GraphQLObjectType:fields", (fields, build, context) => { - const { - scope: { isPgGISType, pgGISType, pgGISTypeDetails }, - } = context; - if ( - !isPgGISType || - !pgGISTypeDetails || - pgGISTypeDetails.subtype !== GIS_SUBTYPE.Polygon - ) { - return fields; - } - const { - extend, - getPostgisTypeByGeometryType, - graphql: { GraphQLList }, - } = build; - const { hasZ, hasM, srid } = pgGISTypeDetails; - const LineString = getPostgisTypeByGeometryType( - pgGISType, - GIS_SUBTYPE.LineString, - hasZ, - hasM, - srid - ); +export const Postgis_Polygon_RingsPlugin: GraphileConfig.Plugin = { + name: "Postgis_Polygon_RingsPlugin", + description: "Enhancing the `Polygon` type", + version, - return extend(fields, { - exterior: { - type: LineString, - resolve(data: any) { - return { - __gisType: getGISTypeName(GIS_SUBTYPE.LineString, hasZ, hasM), - __srid: data.__srid, - __geojson: { - type: "LineString", - coordinates: data.__geojson.coordinates[0], + schema: { + hooks: { + GraphQLObjectType_fields(fields, build, context) { + const { + scope: { isPgGISType, pgGISTypeName, pgGISTypeDetails }, + } = context; + if ( + !isPgGISType || + !pgGISTypeDetails || + pgGISTypeDetails.subtype !== GIS_SUBTYPE.Polygon + ) { + return fields; + } + const { + extend, + getPostgisTypeByGeometryType, + graphql: { GraphQLList }, + } = build; + const { hasZ, hasM, srid } = pgGISTypeDetails; + const lineStringTypeName = getPostgisTypeByGeometryType( + pgGISTypeName!, + GIS_SUBTYPE.LineString, + hasZ, + hasM, + srid + ); + const LineString = lineStringTypeName + ? (build.getTypeByName(lineStringTypeName) as GraphQLOutputType) + : null; + if (!LineString) return fields; + + return extend( + fields, + { + exterior: { + type: LineString, + resolve(data: PostGISResolvedData) { + return { + __gisType: getGISTypeName(GIS_SUBTYPE.LineString, hasZ, hasM), + __srid: data.__srid, + __geojson: { + type: "LineString", + coordinates: ( + data.__geojson.coordinates as number[][][] + )[0], + }, + }; + }, }, - }; - }, - }, - interiors: { - type: new GraphQLList(LineString), - resolve(data: any) { - return data.__geojson.coordinates.slice(1).map((coord: any) => ({ - __gisType: getGISTypeName(GIS_SUBTYPE.LineString, hasZ, hasM), - __srid: data.__srid, - __geojson: { - type: "LineString", - coordinates: coord, + interiors: { + type: new GraphQLList(LineString), + resolve(data: PostGISResolvedData) { + return (data.__geojson.coordinates as number[][][]) + .slice(1) + .map((coord) => ({ + __gisType: getGISTypeName( + GIS_SUBTYPE.LineString, + hasZ, + hasM + ), + __srid: data.__srid, + __geojson: { + type: "LineString", + coordinates: coord, + }, + })); + }, }, - })); - }, + }, + "PostGIS Polygon rings fields" + ); }, - }); - }); + }, + }, }; -export default plugin; + +export default Postgis_Polygon_RingsPlugin; diff --git a/src/geoJsonToWkt.ts b/src/geoJsonToWkt.ts new file mode 100644 index 0000000..8af57c1 --- /dev/null +++ b/src/geoJsonToWkt.ts @@ -0,0 +1,93 @@ +import type { SQLRawValue } from "pg-sql2"; +import type { GeoJSONCoordinates, GeoJSONGeometry } from "./types.ts"; + +// PostGIS's `geometry_in` happens to lenient-parse GeoJSON text directly (an +// undocumented implementation detail), but `geography_in` does not - it +// throws "parse error - invalid geometry". Rather than depend on that +// leniency (which also doesn't verify we handle SRID/dimensionality +// correctly), this converts GeoJSON to WKT/EWKT ourselves, which both +// `geometry_in` and `geography_in` accept explicitly and identically. + +function coordToWkt(coord: number[]): string { + return coord.join(" "); +} + +function firstCoord(coordinates: GeoJSONCoordinates): number[] | undefined { + let current: GeoJSONCoordinates = coordinates; + while (Array.isArray(current) && Array.isArray(current[0])) { + current = current[0] as GeoJSONCoordinates; + } + return Array.isArray(current) && typeof current[0] === "number" + ? (current as number[]) + : undefined; +} + +function dimSuffix(coordinates: GeoJSONCoordinates): string { + const coord = firstCoord(coordinates); + return coord && coord.length >= 3 ? " Z " : ""; +} + +function pointBody(coordinates: number[]): string { + return `(${coordToWkt(coordinates)})`; +} + +function lineBody(coordinates: number[][]): string { + return `(${coordinates.map(coordToWkt).join(", ")})`; +} + +function polygonBody(coordinates: number[][][]): string { + return `(${coordinates.map((ring) => `(${ring.map(coordToWkt).join(", ")})`).join(", ")})`; +} + +function multiPolygonBody(coordinates: number[][][][]): string { + return `(${coordinates.map(polygonBody).join(", ")})`; +} + +/** + * Converts a GeoJSON geometry object into WKT/EWKT text that PostGIS's + * `geometry_in`/`geography_in` will accept, for use as the SQL parameter + * value when writing a geometry/geography column. Non-object values (e.g. + * an already-WKT string, or null) are passed through unchanged. + */ +export function geoJsonToWkt(value: unknown): SQLRawValue { + if (value == null || typeof value !== "object") { + return value as SQLRawValue; + } + const geometry = value as GeoJSONGeometry; + if (typeof geometry.type !== "string") { + return value as unknown as SQLRawValue; + } + + switch (geometry.type) { + case "Point": + return `POINT${dimSuffix(geometry.coordinates!)}${pointBody( + geometry.coordinates as number[] + )}`; + case "LineString": + return `LINESTRING${dimSuffix(geometry.coordinates!)}${lineBody( + geometry.coordinates as number[][] + )}`; + case "Polygon": + return `POLYGON${dimSuffix(geometry.coordinates!)}${polygonBody( + geometry.coordinates as number[][][] + )}`; + case "MultiPoint": + return `MULTIPOINT${dimSuffix(geometry.coordinates!)}${lineBody( + geometry.coordinates as number[][] + )}`; + case "MultiLineString": + return `MULTILINESTRING${dimSuffix(geometry.coordinates!)}${polygonBody( + geometry.coordinates as number[][][] + )}`; + case "MultiPolygon": + return `MULTIPOLYGON${dimSuffix( + geometry.coordinates! + )}${multiPolygonBody(geometry.coordinates as number[][][][])}`; + case "GeometryCollection": + return `GEOMETRYCOLLECTION(${(geometry.geometries ?? []) + .map((g) => String(geoJsonToWkt(g))) + .join(", ")})`; + default: + throw new Error(`Unsupported GeoJSON type: ${geometry.type}`); + } +} diff --git a/src/index.ts b/src/index.ts index 7b3cfe9..b45db39 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,41 +1,81 @@ -import { Plugin } from "graphile-build"; -import PostgisVersionPlugin from "./PostgisVersionPlugin"; -import PostgisInflectionPlugin from "./PostgisInflectionPlugin"; -import PostgisExtensionDetectionPlugin from "./PostgisExtensionDetectionPlugin"; -import PostgisRegisterTypesPlugin from "./PostgisRegisterTypesPlugin"; -import Postgis_Point_LatitudeLongitudePlugin from "./Postgis_Point_LatitudeLongitudePlugin"; -import Postgis_GeometryCollection_GeometriesPlugin from "./Postgis_GeometryCollection_GeometriesPlugin"; -import Postgis_LineString_PointsPlugin from "./Postgis_LineString_PointsPlugin"; -import Postgis_Polygon_RingsPlugin from "./Postgis_Polygon_RingsPlugin"; -import Postgis_MultiPoint_PointsPlugin from "./Postgis_MultiPoint_PointsPlugin"; -import Postgis_MultiLineString_LineStringsPlugin from "./Postgis_MultiLineString_LineStringsPlugin"; -import Postgis_MultiPolygon_PolygonsPlugin from "./Postgis_MultiPolygon_PolygonsPlugin"; +import type {} from "postgraphile"; -const PostgisPlugin: Plugin = async (builder, options) => { - await PostgisVersionPlugin(builder, options); - await PostgisInflectionPlugin(builder, options); - await PostgisExtensionDetectionPlugin(builder, options); - await PostgisRegisterTypesPlugin(builder, options); +import { PostgisVersionPlugin } from "./PostgisVersionPlugin.ts"; +import { PostgisInflectionPlugin } from "./PostgisInflectionPlugin.ts"; +import { PostgisExtensionDetectionPlugin } from "./PostgisExtensionDetectionPlugin.ts"; +import { PostgisRegisterTypesPlugin } from "./PostgisRegisterTypesPlugin.ts"; +import { PostgisColumnsPlugin } from "./PostgisColumnsPlugin.ts"; +import { Postgis_Point_LatitudeLongitudePlugin } from "./Postgis_Point_LatitudeLongitudePlugin.ts"; +import { Postgis_GeometryCollection_GeometriesPlugin } from "./Postgis_GeometryCollection_GeometriesPlugin.ts"; +import { Postgis_LineString_PointsPlugin } from "./Postgis_LineString_PointsPlugin.ts"; +import { Postgis_Polygon_RingsPlugin } from "./Postgis_Polygon_RingsPlugin.ts"; +import { Postgis_MultiPoint_PointsPlugin } from "./Postgis_MultiPoint_PointsPlugin.ts"; +import { Postgis_MultiLineString_LineStringsPlugin } from "./Postgis_MultiLineString_LineStringsPlugin.ts"; +import { Postgis_MultiPolygon_PolygonsPlugin } from "./Postgis_MultiPolygon_PolygonsPlugin.ts"; - // Enhancing the `Point` type: - await Postgis_Point_LatitudeLongitudePlugin(builder, options); +const PostgisPreset: GraphileConfig.Preset = { + plugins: [ + PostgisVersionPlugin, + PostgisInflectionPlugin, + PostgisExtensionDetectionPlugin, + PostgisRegisterTypesPlugin, + PostgisColumnsPlugin, - // Enhancing the `LineString` type: - await Postgis_LineString_PointsPlugin(builder, options); - - // Enhancing the `Polygon` type: - await Postgis_Polygon_RingsPlugin(builder, options); + Postgis_Point_LatitudeLongitudePlugin, + Postgis_LineString_PointsPlugin, + Postgis_Polygon_RingsPlugin, + Postgis_MultiPoint_PointsPlugin, + Postgis_MultiLineString_LineStringsPlugin, + Postgis_MultiPolygon_PolygonsPlugin, + Postgis_GeometryCollection_GeometriesPlugin, + ], +}; - // Enhancing the `MultiPoint` type: - await Postgis_MultiPoint_PointsPlugin(builder, options); +export default PostgisPreset; - // Enhancing the `MultiLineString` type: - await Postgis_MultiLineString_LineStringsPlugin(builder, options); +export { + PostgisVersionPlugin, + PostgisInflectionPlugin, + PostgisExtensionDetectionPlugin, + PostgisRegisterTypesPlugin, + PostgisColumnsPlugin, + Postgis_Point_LatitudeLongitudePlugin, + Postgis_LineString_PointsPlugin, + Postgis_Polygon_RingsPlugin, + Postgis_MultiPoint_PointsPlugin, + Postgis_MultiLineString_LineStringsPlugin, + Postgis_MultiPolygon_PolygonsPlugin, + Postgis_GeometryCollection_GeometriesPlugin, + PostgisPreset, +}; - // Enhancing the `MultiLineString` type: - await Postgis_MultiPolygon_PolygonsPlugin(builder, options); +export type { + Subtype, + GISTypeDetails, + GeoJSONCoordinates, + GeoJSONGeometry, + PostGISResolvedData, + GISTypeInflectionDetails, + GISInterfaceInflectionDetails, + GISDimensionInterfaceInflectionDetails, + GISFieldInflectionDetails, +} from "./types.ts"; - // Enhancing the `GeometryCollection` type: - await Postgis_GeometryCollection_GeometriesPlugin(builder, options); -}; -export default PostgisPlugin; +declare global { + namespace GraphileConfig { + interface Plugins { + PostgisVersionPlugin: true; + PostgisInflectionPlugin: true; + PostgisExtensionDetectionPlugin: true; + PostgisRegisterTypesPlugin: true; + PostgisColumnsPlugin: true; + Postgis_Point_LatitudeLongitudePlugin: true; + Postgis_LineString_PointsPlugin: true; + Postgis_Polygon_RingsPlugin: true; + Postgis_MultiPoint_PointsPlugin: true; + Postgis_MultiLineString_LineStringsPlugin: true; + Postgis_MultiPolygon_PolygonsPlugin: true; + Postgis_GeometryCollection_GeometriesPlugin: true; + } + } +} diff --git a/src/interfaces.ts b/src/interfaces.ts deleted file mode 100644 index 431612b..0000000 --- a/src/interfaces.ts +++ /dev/null @@ -1,8 +0,0 @@ -export type Subtype = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7; - -export interface GISTypeDetails { - subtype: Subtype; - hasZ: boolean; - hasM: boolean; - srid: number; -} diff --git a/src/makeGeoJSONType.ts b/src/makeGeoJSONType.ts index 8a6d09b..db7e81f 100644 --- a/src/makeGeoJSONType.ts +++ b/src/makeGeoJSONType.ts @@ -1,4 +1,4 @@ -import * as GraphQL from "graphql"; +import * as GraphQL from "postgraphile/graphql"; type Maybe = null | undefined | T; // This file is based on @@ -27,10 +27,12 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -export default function makeGeoJSONType(graphql: any, name = "GeoJSON") { + +export default function makeGeoJSONType( + graphql: Pick, + name = "GeoJSON" +) { const Kind: typeof GraphQL.Kind = graphql.Kind; - const GraphQLScalarType: typeof GraphQL.GraphQLScalarType = - graphql.GraphQLScalarType; function identity(value: T): T { return value; @@ -38,8 +40,8 @@ export default function makeGeoJSONType(graphql: any, name = "GeoJSON") { function parseLiteral( ast: GraphQL.ValueNode, - variables: Maybe<{ [key: string]: any }> - ): any { + variables: Maybe<{ [key: string]: unknown }> + ): unknown { switch (ast.kind) { case Kind.STRING: case Kind.BOOLEAN: @@ -50,14 +52,14 @@ export default function makeGeoJSONType(graphql: any, name = "GeoJSON") { return parseFloat(ast.value); case Kind.OBJECT: { const value = Object.create(null); - ast.fields.forEach(field => { + ast.fields.forEach((field) => { value[field.name.value] = parseLiteral(field.value, variables); }); return value; } case Kind.LIST: - return ast.values.map(n => parseLiteral(n, variables)); + return ast.values.map((n) => parseLiteral(n, variables)); case Kind.NULL: return null; case Kind.VARIABLE: { @@ -69,13 +71,12 @@ export default function makeGeoJSONType(graphql: any, name = "GeoJSON") { } } - return new GraphQLScalarType({ - name, + return { description: `The \`${name}\` scalar type represents GeoJSON values as specified by` + "[RFC 7946](https://tools.ietf.org/html/rfc7946).", serialize: identity, parseValue: identity, parseLiteral, - }); + }; } diff --git a/src/types.ts b/src/types.ts new file mode 100644 index 0000000..d6b488c --- /dev/null +++ b/src/types.ts @@ -0,0 +1,179 @@ +/** + * PostGIS geometry/geography subtype enumeration + * 0 = Geometry (generic) + * 1 = Point + * 2 = LineString + * 3 = Polygon + * 4 = MultiPoint + * 5 = MultiLineString + * 6 = MultiPolygon + * 7 = GeometryCollection + */ +export type Subtype = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7; + +/** + * Detailed type information extracted from PostGIS type modifier + */ +export interface GISTypeDetails { + subtype: Subtype; + hasZ: boolean; + hasM: boolean; + srid: number; +} + +/** + * GeoJSON coordinate array (recursive for nested geometries) + */ +export type GeoJSONCoordinates = number[] | GeoJSONCoordinates[]; + +/** + * GeoJSON geometry object structure + */ +export interface GeoJSONGeometry { + type: string; + coordinates?: GeoJSONCoordinates; + geometries?: GeoJSONGeometry[]; +} + +/** + * Internal representation of PostGIS geometry/geography data + * Attached to resolved field values + */ +export interface PostGISResolvedData { + __gisType: string; + __srid: number; + __geojson: GeoJSONGeometry; +} + +/** + * Base inflection context shared by all GIS inflectors + */ +export interface BaseGISInflectionDetails { + typeName: string; + scope?: GraphileBuild.ScopeObject | GraphileBuild.ScopeInterface; +} + +/** + * Inflection context for GIS type naming + */ +export interface GISTypeInflectionDetails extends BaseGISInflectionDetails { + subtype: Subtype; + hasZ: boolean; + hasM: boolean; +} + +/** + * Inflection context for GIS interface naming + */ +export type GISInterfaceInflectionDetails = Pick< + BaseGISInflectionDetails, + "typeName" +>; + +/** + * Inflection context for GIS dimension interface naming + */ +export interface GISDimensionInterfaceInflectionDetails extends Pick< + BaseGISInflectionDetails, + "typeName" +> { + hasZ: boolean; + hasM: boolean; +} + +/** + * Inflection context for GIS field naming (x/y/z) + */ +export type GISFieldInflectionDetails = BaseGISInflectionDetails; + +/** + * Type-safe registry of constructed GraphQL types by codec and subtype + */ +export interface TypeRegistry { + [codecName: string]: { + [gisTypeKey: string]: string; // Type name + }; +} + +/** + * Type-safe registry of GraphQL interfaces by codec and zmflag + */ +export interface InterfaceRegistry { + [codecName: string]: { + [zmflag: number]: string; // Interface name + }; +} + +declare global { + namespace GraphileBuild { + interface ScopeObject { + isPgGISType?: boolean; + pgGISTypeName?: string; + pgGISTypeDetails?: GISTypeDetails; + } + + interface Build { + /** + * Get PostGIS GraphQL type name by geometry properties + */ + getPostgisTypeByGeometryType( + codecName: string, + subtype: Subtype, + hasZ?: boolean, + hasM?: boolean, + srid?: number + ): string | undefined; + + /** + * Registry of PostGIS type names by codec and subtype + */ + pgGISGraphQLTypesByTypeAndSubtype: TypeRegistry; + + /** + * Registry of PostGIS interface names by codec and zmflag + */ + pgGISGraphQLInterfaceTypesByType: InterfaceRegistry; + + /** + * List of type names to include in the schema + */ + pgGISIncludedTypes: string[]; + + /** + * Add a type to the inclusion list + */ + pgGISIncludeType(typeName: string): void; + } + + interface Inflection { + gisType(this: Inflection, details: GISTypeInflectionDetails): string; + + gisInterfaceName( + this: Inflection, + details: GISInterfaceInflectionDetails + ): string; + + gisDimensionInterfaceName( + this: Inflection, + details: GISDimensionInterfaceInflectionDetails + ): string; + + geojsonFieldName(this: Inflection): string; + + gisXFieldName( + this: Inflection, + details: GISFieldInflectionDetails + ): string; + + gisYFieldName( + this: Inflection, + details: GISFieldInflectionDetails + ): string; + + gisZFieldName( + this: Inflection, + details: GISFieldInflectionDetails + ): string; + } + } +} diff --git a/src/utils.ts b/src/utils.ts index eae702c..f934b48 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,5 +1,5 @@ -import { GISTypeDetails, Subtype } from "./interfaces"; -import { GIS_SUBTYPE_NAME } from "./constants"; +import { GISTypeDetails, Subtype } from "./types.ts"; +import { GIS_SUBTYPE_NAME } from "./constants.ts"; export const getGISTypeDetails = (modifier: number): GISTypeDetails => { const allZeroesHopefully = modifier >> 24; @@ -45,7 +45,7 @@ export const getGISTypeModifier = ( hasZ: boolean, hasM: boolean, srid: number -): number => { +) => { // Ref: https://github.com/postgis/postgis/blob/2.5.2/liblwgeom/liblwgeom.h.in#L156-L173 // #define TYPMOD_SET_SRID(typmod, srid) ((typmod) = (((typmod) & 0xE00000FF) | ((srid & 0x001FFFFF)<<8))) // #define TYPMOD_SET_TYPE(typmod, type) ((typmod) = (typmod & 0xFFFFFF03) | ((type & 0x0000003F)<<2)) @@ -63,6 +63,6 @@ export const getGISTypeName = ( subtype: Subtype, hasZ: boolean, hasM: boolean -): string => { +) => { return `${GIS_SUBTYPE_NAME[subtype]}${hasZ ? "Z" : ""}${hasM ? "M" : ""}`; }; diff --git a/src/version.ts b/src/version.ts new file mode 100644 index 0000000..e9e3ca2 --- /dev/null +++ b/src/version.ts @@ -0,0 +1,2 @@ +// This file is autogenerated by /scripts/postversion.mjs +export const version = "0.2.0"; diff --git a/tsconfig.build.json b/tsconfig.build.json new file mode 100644 index 0000000..07378f5 --- /dev/null +++ b/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "declaration": true, + "declarationDir": "./dist", + "noEmit": false, + "outDir": "./dist", + "rootDir": "./src", + "sourceMap": true + }, + "include": ["src/**/*"] +} diff --git a/tsconfig.json b/tsconfig.json index 2023aee..bda3a5c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,25 +1,20 @@ { + "extends": "@tsconfig/node20/tsconfig.json", "compilerOptions": { - "rootDir": "src", - "declarationDir": "./dist", - "outDir": "./dist", - "declaration": true, "allowJs": false, - "target": "es2017", - "module": "commonjs", - "moduleResolution": "node", - "sourceMap": true, - "pretty": true, - "importHelpers": true, "experimentalDecorators": true, - "noImplicitAny": true, - "suppressImplicitAnyIndexErrors": true, - "strictNullChecks": true, + "importHelpers": true, + "isolatedModules": true, + "module": "esnext", + "moduleResolution": "bundler", + "noEmit": true, "noFallthroughCasesInSwitch": true, - "noUnusedParameters": true, + "noImplicitAny": true, "noUnusedLocals": true, + "noUnusedParameters": true, "preserveWatchOutput": true, - "lib": ["es2018", "esnext.asynciterable"] - }, - "include": ["src/**/*"] + "pretty": true, + "rewriteRelativeImportExtensions": true, + "strict": true + } } diff --git a/yarn.lock b/yarn.lock index 14a2eb4..aed31d7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,223 +2,119 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" - integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== - dependencies: - "@babel/highlight" "^7.12.13" - -"@babel/code-frame@^7.22.13": - version "7.22.13" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" - integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== - dependencies: - "@babel/highlight" "^7.22.13" - chalk "^2.4.2" - -"@babel/compat-data@^7.13.15": - version "7.13.15" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.15.tgz#7e8eea42d0b64fda2b375b22d06c605222e848f4" - integrity sha512-ltnibHKR1VnrU4ymHyQ/CXtNXI6yZC0oJThyW78Hft8XndANwi+9H+UIklBDraIjFEJzw8wmcM427oDd9KS5wA== - -"@babel/core@^7.1.0", "@babel/core@^7.7.5": - version "7.13.16" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.16.tgz#7756ab24396cc9675f1c3fcd5b79fcce192ea96a" - integrity sha512-sXHpixBiWWFti0AV2Zq7avpTasr6sIAu7Y396c608541qAU2ui4a193m0KSQmfPSKFZLnQ3cvlKDOm3XkuXm3Q== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.13.16" - "@babel/helper-compilation-targets" "^7.13.16" - "@babel/helper-module-transforms" "^7.13.14" - "@babel/helpers" "^7.13.16" - "@babel/parser" "^7.13.16" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.15" - "@babel/types" "^7.13.16" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.1.2" - semver "^6.3.0" - source-map "^0.5.0" - -"@babel/generator@^7.13.16": - version "7.13.16" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.16.tgz#0befc287031a201d84cdfc173b46b320ae472d14" - integrity sha512-grBBR75UnKOcUWMp8WoDxNsWCFl//XCK6HWTrBQKTr5SV9f5g0pNOjdyzi/DTBv12S9GnYPInIXQBTky7OXEMg== - dependencies: - "@babel/types" "^7.13.16" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/generator@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420" - integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g== - dependencies: - "@babel/types" "^7.23.0" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - -"@babel/helper-compilation-targets@^7.13.16": - version "7.13.16" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz#6e91dccf15e3f43e5556dffe32d860109887563c" - integrity sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA== - dependencies: - "@babel/compat-data" "^7.13.15" - "@babel/helper-validator-option" "^7.12.17" - browserslist "^4.14.5" - semver "^6.3.0" - -"@babel/helper-environment-visitor@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" - integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== - -"@babel/helper-function-name@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" - integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== - dependencies: - "@babel/template" "^7.22.15" - "@babel/types" "^7.23.0" - -"@babel/helper-hoist-variables@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" - integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-member-expression-to-functions@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz#dfe368f26d426a07299d8d6513821768216e6d72" - integrity sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw== - dependencies: - "@babel/types" "^7.13.12" - -"@babel/helper-module-imports@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz#c6a369a6f3621cb25da014078684da9196b61977" - integrity sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA== - dependencies: - "@babel/types" "^7.13.12" - -"@babel/helper-module-transforms@^7.13.14": - version "7.13.14" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.13.14.tgz#e600652ba48ccb1641775413cb32cfa4e8b495ef" - integrity sha512-QuU/OJ0iAOSIatyVZmfqB0lbkVP0kDRiKj34xy+QNsnVZi/PA6BoSoreeqnxxa9EHFAIL0R9XOaAR/G9WlIy5g== - dependencies: - "@babel/helper-module-imports" "^7.13.12" - "@babel/helper-replace-supers" "^7.13.12" - "@babel/helper-simple-access" "^7.13.12" - "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/helper-validator-identifier" "^7.12.11" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.13" - "@babel/types" "^7.13.14" - -"@babel/helper-optimise-call-expression@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea" - integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA== - dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.8.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af" - integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ== - -"@babel/helper-replace-supers@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz#6442f4c1ad912502481a564a7386de0c77ff3804" - integrity sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.27.1", "@babel/code-frame@^7.28.6", "@babel/code-frame@^7.29.0": + version "7.29.0" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.29.0.tgz#7cd7a59f15b3cc0dcd803038f7792712a7d0b15c" + integrity sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw== dependencies: - "@babel/helper-member-expression-to-functions" "^7.13.12" - "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.12" - -"@babel/helper-simple-access@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz#dd6c538afb61819d205a012c31792a39c7a5eaf6" - integrity sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA== - dependencies: - "@babel/types" "^7.13.12" - -"@babel/helper-split-export-declaration@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05" - integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== - dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-split-export-declaration@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" - integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-string-parser@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" - integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== - -"@babel/helper-validator-identifier@^7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" - integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== - -"@babel/helper-validator-identifier@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" - integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== - -"@babel/helper-validator-option@^7.12.17": - version "7.12.17" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831" - integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw== - -"@babel/helpers@^7.13.16": - version "7.13.17" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.13.17.tgz#b497c7a00e9719d5b613b8982bda6ed3ee94caf6" - integrity sha512-Eal4Gce4kGijo1/TGJdqp3WuhllaMLSrW6XcL0ulyUAQOuxHcCafZE8KHg9857gcTehsm/v7RcOx2+jp0Ryjsg== - dependencies: - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.17" - "@babel/types" "^7.13.17" - -"@babel/highlight@^7.12.13": - version "7.13.10" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.10.tgz#a8b2a66148f5b27d666b15d81774347a731d52d1" - integrity sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg== - dependencies: - "@babel/helper-validator-identifier" "^7.12.11" - chalk "^2.0.0" + "@babel/helper-validator-identifier" "^7.28.5" js-tokens "^4.0.0" - -"@babel/highlight@^7.22.13": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" - integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== - dependencies: - "@babel/helper-validator-identifier" "^7.22.20" - chalk "^2.4.2" - js-tokens "^4.0.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.12.13", "@babel/parser@^7.13.16": - version "7.13.16" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.16.tgz#0f18179b0448e6939b1f3f5c4c355a3a9bcdfd37" - integrity sha512-6bAg36mCwuqLO0hbR+z7PHuqWiCeP7Dzg73OpQwsAB1Eb8HnGEz5xYBzCfbu+YjoaJsJs+qheDxVAuqbt3ILEw== - -"@babel/parser@^7.22.15", "@babel/parser@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" - integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== + picocolors "^1.1.1" + +"@babel/compat-data@^7.28.6": + version "7.29.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.29.0.tgz#00d03e8c0ac24dd9be942c5370990cbe1f17d88d" + integrity sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg== + +"@babel/core@^7.23.9", "@babel/core@^7.27.4": + version "7.29.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.29.0.tgz#5286ad785df7f79d656e88ce86e650d16ca5f322" + integrity sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA== + dependencies: + "@babel/code-frame" "^7.29.0" + "@babel/generator" "^7.29.0" + "@babel/helper-compilation-targets" "^7.28.6" + "@babel/helper-module-transforms" "^7.28.6" + "@babel/helpers" "^7.28.6" + "@babel/parser" "^7.29.0" + "@babel/template" "^7.28.6" + "@babel/traverse" "^7.29.0" + "@babel/types" "^7.29.0" + "@jridgewell/remapping" "^2.3.5" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/generator@^7.27.5", "@babel/generator@^7.29.0": + version "7.29.1" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.29.1.tgz#d09876290111abbb00ef962a7b83a5307fba0d50" + integrity sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw== + dependencies: + "@babel/parser" "^7.29.0" + "@babel/types" "^7.29.0" + "@jridgewell/gen-mapping" "^0.3.12" + "@jridgewell/trace-mapping" "^0.3.28" + jsesc "^3.0.2" + +"@babel/helper-compilation-targets@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz#32c4a3f41f12ed1532179b108a4d746e105c2b25" + integrity sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA== + dependencies: + "@babel/compat-data" "^7.28.6" + "@babel/helper-validator-option" "^7.27.1" + browserslist "^4.24.0" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-globals@^7.28.0": + version "7.28.0" + resolved "https://registry.yarnpkg.com/@babel/helper-globals/-/helper-globals-7.28.0.tgz#b9430df2aa4e17bc28665eadeae8aa1d985e6674" + integrity sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw== + +"@babel/helper-module-imports@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz#60632cbd6ffb70b22823187201116762a03e2d5c" + integrity sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw== + dependencies: + "@babel/traverse" "^7.28.6" + "@babel/types" "^7.28.6" + +"@babel/helper-module-transforms@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz#9312d9d9e56edc35aeb6e95c25d4106b50b9eb1e" + integrity sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA== + dependencies: + "@babel/helper-module-imports" "^7.28.6" + "@babel/helper-validator-identifier" "^7.28.5" + "@babel/traverse" "^7.28.6" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.28.6", "@babel/helper-plugin-utils@^7.8.0": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz#6f13ea251b68c8532e985fd532f28741a8af9ac8" + integrity sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug== + +"@babel/helper-string-parser@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687" + integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== + +"@babel/helper-validator-identifier@^7.28.5": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz#010b6938fab7cb7df74aa2bbc06aa503b8fe5fb4" + integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q== + +"@babel/helper-validator-option@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz#fa52f5b1e7db1ab049445b421c4471303897702f" + integrity sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg== + +"@babel/helpers@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.28.6.tgz#fca903a313ae675617936e8998b814c415cbf5d7" + integrity sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw== + dependencies: + "@babel/template" "^7.28.6" + "@babel/types" "^7.28.6" + +"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.28.6", "@babel/parser@^7.29.0": + version "7.29.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.29.0.tgz#669ef345add7d057e92b7ed15f0bac07611831b6" + integrity sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww== + dependencies: + "@babel/types" "^7.29.0" "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -234,14 +130,28 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.8.3": +"@babel/plugin-syntax-class-properties@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-import-meta@^7.8.3": +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-import-attributes@^7.24.7": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz#b71d5914665f60124e133696f17cd7669062c503" + integrity sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw== + dependencies: + "@babel/helper-plugin-utils" "^7.28.6" + +"@babel/plugin-syntax-import-meta@^7.10.4": 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== @@ -255,7 +165,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": +"@babel/plugin-syntax-jsx@^7.27.1": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz#f8ca28bbd84883b5fea0e447c635b81ba73997ee" + integrity sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w== + dependencies: + "@babel/helper-plugin-utils" "^7.28.6" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== @@ -269,7 +186,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-numeric-separator@^7.8.3": +"@babel/plugin-syntax-numeric-separator@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== @@ -297,83 +214,232 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz#c5f0fa6e249f5b739727f923540cf7a806130178" - integrity sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ== +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/template@^7.12.13", "@babel/template@^7.3.3": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" - integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/parser" "^7.12.13" - "@babel/types" "^7.12.13" - -"@babel/template@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" - integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== - dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/parser" "^7.22.15" - "@babel/types" "^7.22.15" - -"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.13.13", "@babel/traverse@^7.13.15", "@babel/traverse@^7.13.17": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.2.tgz#329c7a06735e144a506bdb2cad0268b7f46f4ad8" - integrity sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw== - dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.23.0" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.23.0" - "@babel/types" "^7.23.0" - debug "^4.1.0" - globals "^11.1.0" +"@babel/plugin-syntax-top-level-await@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.27.1": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz#c7b2ddf1d0a811145b1de800d1abd146af92e3a2" + integrity sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A== + dependencies: + "@babel/helper-plugin-utils" "^7.28.6" -"@babel/types@^7.0.0", "@babel/types@^7.12.13", "@babel/types@^7.13.12", "@babel/types@^7.13.14", "@babel/types@^7.13.16", "@babel/types@^7.13.17", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.13.17" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.17.tgz#48010a115c9fba7588b4437dd68c9469012b38b4" - integrity sha512-RawydLgxbOPDlTLJNtoIypwdmAy//uQIzlKt2+iBiJaRlVuI6QLUxVAyWGNfOzp8Yu4L4lLIacoCyTNtpb4wiA== +"@babel/template@^7.28.6": + version "7.28.6" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.28.6.tgz#0e7e56ecedb78aeef66ce7972b082fce76a23e57" + integrity sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ== dependencies: - "@babel/helper-validator-identifier" "^7.12.11" - to-fast-properties "^2.0.0" + "@babel/code-frame" "^7.28.6" + "@babel/parser" "^7.28.6" + "@babel/types" "^7.28.6" -"@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" - integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg== +"@babel/traverse@^7.28.6", "@babel/traverse@^7.29.0": + version "7.29.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.29.0.tgz#f323d05001440253eead3c9c858adbe00b90310a" + integrity sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA== dependencies: - "@babel/helper-string-parser" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.20" - to-fast-properties "^2.0.0" + "@babel/code-frame" "^7.29.0" + "@babel/generator" "^7.29.0" + "@babel/helper-globals" "^7.28.0" + "@babel/parser" "^7.29.0" + "@babel/template" "^7.28.6" + "@babel/types" "^7.29.0" + debug "^4.3.1" + +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.27.3", "@babel/types@^7.28.2", "@babel/types@^7.28.6", "@babel/types@^7.29.0": + version "7.29.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.29.0.tgz#9f5b1e838c446e72cf3cd4b918152b8c605e37c7" + integrity sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A== + dependencies: + "@babel/helper-string-parser" "^7.27.1" + "@babel/helper-validator-identifier" "^7.28.5" "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@cnakazawa/watch@^1.0.3": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" - integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== +"@dataplan/json@^1.0.0-rc.5": + version "1.0.0-rc.5" + resolved "https://registry.yarnpkg.com/@dataplan/json/-/json-1.0.0-rc.5.tgz#d4886f4c96e19c2d391993e6f7983882065cbf7c" + integrity sha512-KjSV8fcKtp1qyulpj9uQeAh9JQfn1VQRNv35ZQSTeoo/aKdc48Lfmw3mDVCllAsJHNxa2U/WylVepV+y1KqVYQ== + dependencies: + chalk "^4.1.2" + tslib "^2.8.1" + +"@dataplan/pg@^1.0.0-rc.4", "@dataplan/pg@^1.0.0-rc.5": + version "1.0.0-rc.5" + resolved "https://registry.yarnpkg.com/@dataplan/pg/-/pg-1.0.0-rc.5.tgz#baa1b6ea8f7f070359e57a0698ef33333e9922d5" + integrity sha512-9zWeFej39R/jzeKJyIYElGmmiQ75JqI8LFLCFBhDsFJGiv3SOIE7k/nxpgKB9N0M5oD8bmJcnsXgm//eyRHT5w== + dependencies: + "@dataplan/json" "^1.0.0-rc.5" + "@graphile/lru" "^5.0.0-rc.4" + "@types/node" "^22.19.1" + chalk "^4.1.2" + debug "^4.4.3" + eventemitter3 "^5.0.1" + grafast "^1.0.0-rc.7" + pg-sql2 "^5.0.0-rc.4" + postgres-array "~3.0.4" + postgres-range "^1.1.4" + tslib "^2.8.1" + +"@emnapi/core@^1.4.3": + version "1.8.1" + resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.8.1.tgz#fd9efe721a616288345ffee17a1f26ac5dd01349" + integrity sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg== + dependencies: + "@emnapi/wasi-threads" "1.1.0" + tslib "^2.4.0" + +"@emnapi/runtime@^1.4.3": + version "1.8.1" + resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.8.1.tgz#550fa7e3c0d49c5fb175a116e8cd70614f9a22a5" + integrity sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg== + dependencies: + tslib "^2.4.0" + +"@emnapi/wasi-threads@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz#60b2102fddc9ccb78607e4a3cf8403ea69be41bf" + integrity sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ== dependencies: - exec-sh "^0.3.2" - minimist "^1.2.0" + tslib "^2.4.0" + +"@emotion/is-prop-valid@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.4.0.tgz#e9ad47adff0b5c94c72db3669ce46de33edf28c0" + integrity sha512-QgD4fyscGcbbKwJmqNvUMSE02OsHUa+lAWKdEUIJKgqe5IwRSKd7+KhibEWdaKwgjLj0DRSHA9biAIqGBk05lw== + dependencies: + "@emotion/memoize" "^0.9.0" + +"@emotion/memoize@^0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.9.0.tgz#745969d649977776b43fc7648c556aaa462b4102" + integrity sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ== + +"@floating-ui/core@^1.7.4": + version "1.7.4" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.7.4.tgz#4a006a6e01565c0f87ba222c317b056a2cffd2f4" + integrity sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg== + dependencies: + "@floating-ui/utils" "^0.2.10" -"@graphile/lru@4.11.0": - version "4.11.0" - resolved "https://registry.yarnpkg.com/@graphile/lru/-/lru-4.11.0.tgz#dd805ee083063488796ec0eac5a8b50b21c076f9" - integrity sha512-Fakuk190EAKxWSa9YQyr/87g8mvAv8HBvk6yPCPuIoA3bYXF7n6kl0XSqKjSd5VfjEqhtnzQ6zJGzDf1Gv/tJg== +"@floating-ui/dom@^1.7.5": + version "1.7.5" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.7.5.tgz#60bfc83a4d1275b2a90db76bf42ca2a5f2c231c2" + integrity sha512-N0bD2kIPInNHUHehXhMke1rBGs1dwqvC9O9KYMyyjK7iXt7GAhnro7UlcuYcGdS/yYOlq0MAVgrow8IbWJwyqg== dependencies: - tslib "^2.0.1" + "@floating-ui/core" "^1.7.4" + "@floating-ui/utils" "^0.2.10" + +"@floating-ui/react-dom@^2.0.0", "@floating-ui/react-dom@^2.1.2": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.1.7.tgz#529475cc16ee4976ba3387968117e773d9aa703e" + integrity sha512-0tLRojf/1Go2JgEVm+3Frg9A3IW8bJgKgdO0BN5RkF//ufuz2joZM63Npau2ff3J6lUVYgDSNzNkR+aH3IVfjg== + dependencies: + "@floating-ui/dom" "^1.7.5" + +"@floating-ui/react@^0.26.16": + version "0.26.28" + resolved "https://registry.yarnpkg.com/@floating-ui/react/-/react-0.26.28.tgz#93f44ebaeb02409312e9df9507e83aab4a8c0dc7" + integrity sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw== + dependencies: + "@floating-ui/react-dom" "^2.1.2" + "@floating-ui/utils" "^0.2.8" + tabbable "^6.0.0" + +"@floating-ui/utils@^0.2.10", "@floating-ui/utils@^0.2.8": + version "0.2.10" + resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.10.tgz#a2a1e3812d14525f725d011a73eceb41fef5bc1c" + integrity sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ== + +"@graphile/lru@^5.0.0-rc.4": + version "5.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@graphile/lru/-/lru-5.0.0-rc.4.tgz#49a0019634f81ba45bcd0e59087180e23af57fb4" + integrity sha512-QJibEzd/Fhxut3OS5opWd+b1kYUhg74hurepbhb4cHSW76U7Xp6vIPBh//eRznymIOVgE4KNDo7bKblM/NGbVA== + dependencies: + tslib "^2.8.1" + +"@graphiql/plugin-doc-explorer@^0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@graphiql/plugin-doc-explorer/-/plugin-doc-explorer-0.4.1.tgz#9fa7d2fec92827a63444c822fd81bfbcb6d9e2e3" + integrity sha512-+ram1dDDGMqJn/f9n5I8E6grTvxcM9JZYt/HhtYLuCvkN8kERI6/E3zBHBshhIUnQZoXioZ03fAzXg7JOn0Kyg== + dependencies: + "@headlessui/react" "^2.2" + zustand "^5" + +"@graphiql/plugin-history@^0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@graphiql/plugin-history/-/plugin-history-0.4.1.tgz#2a1574570c9b200159c44ef19568dd8672a3f4b4" + integrity sha512-UyGI/Nm5tzKNMB71li41p6TfkthLqHkmNi9CgHzAM1zKgPIrtSq7Q8WCWKHLOEB5n4/8X8sXFeyQfHgnGYTXYg== + dependencies: + "@graphiql/toolkit" "^0.11.3" + zustand "^5" + +"@graphiql/react@^0.37.3": + version "0.37.3" + resolved "https://registry.yarnpkg.com/@graphiql/react/-/react-0.37.3.tgz#0d805ff12aa15c1231aad09b0dd8ead80e0d85b9" + integrity sha512-rNJjwsYGhcZRdZ2FnyU6ss06xQaZ4UordyvOhp7+b/bEqQiEBpMOLJjuUr48Z6T7zEbZBnzCJpIJyXNqlcfQeA== + dependencies: + "@graphiql/toolkit" "^0.11.3" + "@radix-ui/react-dialog" "^1.1" + "@radix-ui/react-dropdown-menu" "^2.1" + "@radix-ui/react-tooltip" "^1.2" + "@radix-ui/react-visually-hidden" "^1.2" + clsx "^1.2.1" + framer-motion "^12.12" + get-value "^3.0.1" + graphql-language-service "^5.5.0" + jsonc-parser "^3.3.1" + markdown-it "^14.1.0" + monaco-editor "0.52.2" + monaco-graphql "^1.7.3" + prettier "^3.5.3" + set-value "^4.1.0" + zustand "^5" + +"@graphiql/toolkit@^0.11.3": + version "0.11.3" + resolved "https://registry.yarnpkg.com/@graphiql/toolkit/-/toolkit-0.11.3.tgz#7f08352779b316fc6436820e11329ac3e6af9f9c" + integrity sha512-Glf0fK1cdHLNq52UWPzfSrYIJuNxy8h4451Pw1ZVpJ7dtU+tm7GVVC64UjEDQ/v2j3fnG4cX8jvR75IvfL6nzQ== + dependencies: + "@n1ru4l/push-pull-async-iterable-iterator" "^3.1.0" + meros "^1.1.4" + +"@headlessui/react@^2.2": + version "2.2.9" + resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-2.2.9.tgz#213f78534c86e03a7c986d2c2abe1270622b3e13" + integrity sha512-Mb+Un58gwBn0/yWZfyrCh0TJyurtT+dETj7YHleylHk5od3dv2XqETPGWMyQ5/7sYN7oWdyM1u9MvC0OC8UmzQ== + dependencies: + "@floating-ui/react" "^0.26.16" + "@react-aria/focus" "^3.20.2" + "@react-aria/interactions" "^3.25.0" + "@tanstack/react-virtual" "^3.13.9" + use-sync-external-store "^1.5.0" + +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" @@ -386,411 +452,922 @@ js-yaml "^3.13.1" resolve-from "^5.0.0" -"@istanbuljs/schema@^0.1.2": +"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": version "0.1.3" resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2" - integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g== +"@jest/console@30.2.0": + version "30.2.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-30.2.0.tgz#c52fcd5b58fdd2e8eb66b2fd8ae56f2f64d05b28" + integrity sha512-+O1ifRjkvYIkBqASKWgLxrpEhQAAE7hY77ALLUufSk5717KfOShg6IbqLmdsLMPdUiFvA2kTs0R7YZy+l0IzZQ== dependencies: - "@jest/types" "^26.6.2" + "@jest/types" "30.2.0" "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^26.6.2" - jest-util "^26.6.2" + chalk "^4.1.2" + jest-message-util "30.2.0" + jest-util "30.2.0" slash "^3.0.0" -"@jest/core@^26.6.3": - version "26.6.3" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad" - integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw== - dependencies: - "@jest/console" "^26.6.2" - "@jest/reporters" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" +"@jest/core@30.2.0": + version "30.2.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-30.2.0.tgz#813d59faa5abd5510964a8b3a7b17cc77b775275" + integrity sha512-03W6IhuhjqTlpzh/ojut/pDB2LPRygyWX8ExpgHtQA8H/3K7+1vKmcINx5UzeOX1se6YEsBsOHQ1CRzf3fOwTQ== + dependencies: + "@jest/console" "30.2.0" + "@jest/pattern" "30.0.1" + "@jest/reporters" "30.2.0" + "@jest/test-result" "30.2.0" + "@jest/transform" "30.2.0" + "@jest/types" "30.2.0" "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.4" - jest-changed-files "^26.6.2" - jest-config "^26.6.3" - jest-haste-map "^26.6.2" - jest-message-util "^26.6.2" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-resolve-dependencies "^26.6.3" - jest-runner "^26.6.3" - jest-runtime "^26.6.3" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" - jest-watcher "^26.6.2" - micromatch "^4.0.2" - p-each-series "^2.1.0" - rimraf "^3.0.0" + ansi-escapes "^4.3.2" + chalk "^4.1.2" + ci-info "^4.2.0" + exit-x "^0.2.2" + graceful-fs "^4.2.11" + jest-changed-files "30.2.0" + jest-config "30.2.0" + jest-haste-map "30.2.0" + jest-message-util "30.2.0" + jest-regex-util "30.0.1" + jest-resolve "30.2.0" + jest-resolve-dependencies "30.2.0" + jest-runner "30.2.0" + jest-runtime "30.2.0" + jest-snapshot "30.2.0" + jest-util "30.2.0" + jest-validate "30.2.0" + jest-watcher "30.2.0" + micromatch "^4.0.8" + pretty-format "30.2.0" slash "^3.0.0" - strip-ansi "^6.0.0" -"@jest/environment@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c" - integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA== +"@jest/diff-sequences@30.0.1": + version "30.0.1" + resolved "https://registry.yarnpkg.com/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz#0ededeae4d071f5c8ffe3678d15f3a1be09156be" + integrity sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw== + +"@jest/environment@30.2.0": + version "30.2.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-30.2.0.tgz#1e673cdb8b93ded707cf6631b8353011460831fa" + integrity sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g== dependencies: - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/fake-timers" "30.2.0" + "@jest/types" "30.2.0" "@types/node" "*" - jest-mock "^26.6.2" + jest-mock "30.2.0" -"@jest/fake-timers@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad" - integrity sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA== +"@jest/expect-utils@30.2.0": + version "30.2.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-30.2.0.tgz#4f95413d4748454fdb17404bf1141827d15e6011" + integrity sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA== dependencies: - "@jest/types" "^26.6.2" - "@sinonjs/fake-timers" "^6.0.1" - "@types/node" "*" - jest-message-util "^26.6.2" - jest-mock "^26.6.2" - jest-util "^26.6.2" + "@jest/get-type" "30.1.0" -"@jest/globals@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a" - integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA== +"@jest/expect@30.2.0": + version "30.2.0" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-30.2.0.tgz#9a5968499bb8add2bbb09136f69f7df5ddbf3185" + integrity sha512-V9yxQK5erfzx99Sf+7LbhBwNWEZ9eZay8qQ9+JSC0TrMR1pMDHLMY+BnVPacWU6Jamrh252/IKo4F1Xn/zfiqA== dependencies: - "@jest/environment" "^26.6.2" - "@jest/types" "^26.6.2" - expect "^26.6.2" + expect "30.2.0" + jest-snapshot "30.2.0" -"@jest/reporters@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6" - integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw== +"@jest/fake-timers@30.2.0": + version "30.2.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-30.2.0.tgz#0941ddc28a339b9819542495b5408622dc9e94ec" + integrity sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw== + dependencies: + "@jest/types" "30.2.0" + "@sinonjs/fake-timers" "^13.0.0" + "@types/node" "*" + jest-message-util "30.2.0" + jest-mock "30.2.0" + jest-util "30.2.0" + +"@jest/get-type@30.1.0": + version "30.1.0" + resolved "https://registry.yarnpkg.com/@jest/get-type/-/get-type-30.1.0.tgz#4fcb4dc2ebcf0811be1c04fd1cb79c2dba431cbc" + integrity sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA== + +"@jest/globals@30.2.0": + version "30.2.0" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-30.2.0.tgz#2f4b696d5862664b89c4ee2e49ae24d2bb7e0988" + integrity sha512-b63wmnKPaK+6ZZfpYhz9K61oybvbI1aMcIs80++JI1O1rR1vaxHUCNqo3ITu6NU0d4V34yZFoHMn/uoKr/Rwfw== + dependencies: + "@jest/environment" "30.2.0" + "@jest/expect" "30.2.0" + "@jest/types" "30.2.0" + jest-mock "30.2.0" + +"@jest/pattern@30.0.1": + version "30.0.1" + resolved "https://registry.yarnpkg.com/@jest/pattern/-/pattern-30.0.1.tgz#d5304147f49a052900b4b853dedb111d080e199f" + integrity sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA== + dependencies: + "@types/node" "*" + jest-regex-util "30.0.1" + +"@jest/reporters@30.2.0": + version "30.2.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-30.2.0.tgz#a36b28fcbaf0c4595250b108e6f20e363348fd91" + integrity sha512-DRyW6baWPqKMa9CzeiBjHwjd8XeAyco2Vt8XbcLFjiwCOEKOvy82GJ8QQnJE9ofsxCMPjH4MfH8fCWIHHDKpAQ== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.2" - graceful-fs "^4.2.4" + "@jest/console" "30.2.0" + "@jest/test-result" "30.2.0" + "@jest/transform" "30.2.0" + "@jest/types" "30.2.0" + "@jridgewell/trace-mapping" "^0.3.25" + "@types/node" "*" + chalk "^4.1.2" + collect-v8-coverage "^1.0.2" + exit-x "^0.2.2" + glob "^10.3.10" + graceful-fs "^4.2.11" istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^4.0.3" + istanbul-lib-instrument "^6.0.0" istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.0.2" - jest-haste-map "^26.6.2" - jest-resolve "^26.6.2" - jest-util "^26.6.2" - jest-worker "^26.6.2" + istanbul-lib-source-maps "^5.0.0" + istanbul-reports "^3.1.3" + jest-message-util "30.2.0" + jest-util "30.2.0" + jest-worker "30.2.0" slash "^3.0.0" - source-map "^0.6.0" - string-length "^4.0.1" - terminal-link "^2.0.0" - v8-to-istanbul "^7.0.0" - optionalDependencies: - node-notifier "^8.0.0" + string-length "^4.0.2" + v8-to-istanbul "^9.0.1" -"@jest/source-map@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535" - integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA== +"@jest/schemas@30.0.5": + version "30.0.5" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-30.0.5.tgz#7bdf69fc5a368a5abdb49fd91036c55225846473" + integrity sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA== dependencies: - callsites "^3.0.0" - graceful-fs "^4.2.4" - source-map "^0.6.0" + "@sinclair/typebox" "^0.34.0" + +"@jest/snapshot-utils@30.2.0": + version "30.2.0" + resolved "https://registry.yarnpkg.com/@jest/snapshot-utils/-/snapshot-utils-30.2.0.tgz#387858eb90c2f98f67bff327435a532ac5309fbe" + integrity sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug== + dependencies: + "@jest/types" "30.2.0" + chalk "^4.1.2" + graceful-fs "^4.2.11" + natural-compare "^1.4.0" -"@jest/test-result@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18" - integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ== - dependencies: - "@jest/console" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-sequencer@^26.6.3": - version "26.6.3" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17" - integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw== - dependencies: - "@jest/test-result" "^26.6.2" - graceful-fs "^4.2.4" - jest-haste-map "^26.6.2" - jest-runner "^26.6.3" - jest-runtime "^26.6.3" - -"@jest/transform@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" - integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== - dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^26.6.2" - babel-plugin-istanbul "^6.0.0" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.4" - jest-haste-map "^26.6.2" - jest-regex-util "^26.0.0" - jest-util "^26.6.2" - micromatch "^4.0.2" - pirates "^4.0.1" +"@jest/source-map@30.0.1": + version "30.0.1" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-30.0.1.tgz#305ebec50468f13e658b3d5c26f85107a5620aaa" + integrity sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg== + dependencies: + "@jridgewell/trace-mapping" "^0.3.25" + callsites "^3.1.0" + graceful-fs "^4.2.11" + +"@jest/test-result@30.2.0": + version "30.2.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-30.2.0.tgz#9c0124377fb7996cdffb86eda3dbc56eacab363d" + integrity sha512-RF+Z+0CCHkARz5HT9mcQCBulb1wgCP3FBvl9VFokMX27acKphwyQsNuWH3c+ojd1LeWBLoTYoxF0zm6S/66mjg== + dependencies: + "@jest/console" "30.2.0" + "@jest/types" "30.2.0" + "@types/istanbul-lib-coverage" "^2.0.6" + collect-v8-coverage "^1.0.2" + +"@jest/test-sequencer@30.2.0": + version "30.2.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-30.2.0.tgz#bf0066bc72e176d58f5dfa7f212b6e7eee44f221" + integrity sha512-wXKgU/lk8fKXMu/l5Hog1R61bL4q5GCdT6OJvdAFz1P+QrpoFuLU68eoKuVc4RbrTtNnTL5FByhWdLgOPSph+Q== + dependencies: + "@jest/test-result" "30.2.0" + graceful-fs "^4.2.11" + jest-haste-map "30.2.0" slash "^3.0.0" - source-map "^0.6.1" - write-file-atomic "^3.0.0" -"@jest/types@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" - integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== +"@jest/transform@30.2.0": + version "30.2.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-30.2.0.tgz#54bef1a4510dcbd58d5d4de4fe2980a63077ef2a" + integrity sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA== + dependencies: + "@babel/core" "^7.27.4" + "@jest/types" "30.2.0" + "@jridgewell/trace-mapping" "^0.3.25" + babel-plugin-istanbul "^7.0.1" + chalk "^4.1.2" + convert-source-map "^2.0.0" + fast-json-stable-stringify "^2.1.0" + graceful-fs "^4.2.11" + jest-haste-map "30.2.0" + jest-regex-util "30.0.1" + jest-util "30.2.0" + micromatch "^4.0.8" + pirates "^4.0.7" + slash "^3.0.0" + write-file-atomic "^5.0.1" + +"@jest/types@30.2.0": + version "30.2.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-30.2.0.tgz#1c678a7924b8f59eafd4c77d56b6d0ba976d62b8" + integrity sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg== dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" + "@jest/pattern" "30.0.1" + "@jest/schemas" "30.0.5" + "@types/istanbul-lib-coverage" "^2.0.6" + "@types/istanbul-reports" "^3.0.4" "@types/node" "*" - "@types/yargs" "^15.0.0" - chalk "^4.0.0" + "@types/yargs" "^17.0.33" + chalk "^4.1.2" -"@jridgewell/gen-mapping@^0.3.2": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" - integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== +"@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.5": + version "0.3.13" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f" + integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" + "@jridgewell/sourcemap-codec" "^1.5.0" + "@jridgewell/trace-mapping" "^0.3.24" -"@jridgewell/resolve-uri@^3.1.0": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" - integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== +"@jridgewell/remapping@^2.3.5": + version "2.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/remapping/-/remapping-2.3.5.tgz#375c476d1972947851ba1e15ae8f123047445aa1" + integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": - version "1.4.15" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== +"@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" + integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== -"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.19" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811" - integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw== +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.23", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25", "@jridgewell/trace-mapping@^0.3.28": + version "0.3.31" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz#db15d6781c931f3a251a3dac39501c98a6082fd0" + integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== dependencies: "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" -"@sinonjs/commons@^1.7.0": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" - integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== +"@n1ru4l/push-pull-async-iterable-iterator@^3.1.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@n1ru4l/push-pull-async-iterable-iterator/-/push-pull-async-iterable-iterator-3.2.0.tgz#c15791112db68dd9315d329d652b7e797f737655" + integrity sha512-3fkKj25kEjsfObL6IlKPAlHYPq/oYwUkkQ03zsTTiDjD7vg/RxjdiLeCydqtxHZP0JgsXL3D/X5oAkMGzuUp/Q== + +"@napi-rs/wasm-runtime@^0.2.11": + version "0.2.12" + resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz#3e78a8b96e6c33a6c517e1894efbd5385a7cb6f2" + integrity sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ== + dependencies: + "@emnapi/core" "^1.4.3" + "@emnapi/runtime" "^1.4.3" + "@tybys/wasm-util" "^0.10.0" + +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + +"@pkgr/core@^0.2.9": + version "0.2.9" + resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.2.9.tgz#d229a7b7f9dac167a156992ef23c7f023653f53b" + integrity sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA== + +"@radix-ui/primitive@1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@radix-ui/primitive/-/primitive-1.1.3.tgz#e2dbc13bdc5e4168f4334f75832d7bdd3e2de5ba" + integrity sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg== + +"@radix-ui/react-arrow@1.1.7": + version "1.1.7" + resolved "https://registry.yarnpkg.com/@radix-ui/react-arrow/-/react-arrow-1.1.7.tgz#e14a2657c81d961598c5e72b73dd6098acc04f09" + integrity sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w== + dependencies: + "@radix-ui/react-primitive" "2.1.3" + +"@radix-ui/react-collection@1.1.7": + version "1.1.7" + resolved "https://registry.yarnpkg.com/@radix-ui/react-collection/-/react-collection-1.1.7.tgz#d05c25ca9ac4695cc19ba91f42f686e3ea2d9aec" + integrity sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw== + dependencies: + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-context" "1.1.2" + "@radix-ui/react-primitive" "2.1.3" + "@radix-ui/react-slot" "1.2.3" + +"@radix-ui/react-compose-refs@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz#a2c4c47af6337048ee78ff6dc0d090b390d2bb30" + integrity sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg== + +"@radix-ui/react-context@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@radix-ui/react-context/-/react-context-1.1.2.tgz#61628ef269a433382c364f6f1e3788a6dc213a36" + integrity sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA== + +"@radix-ui/react-dialog@^1.1": + version "1.1.15" + resolved "https://registry.yarnpkg.com/@radix-ui/react-dialog/-/react-dialog-1.1.15.tgz#1de3d7a7e9a17a9874d29c07f5940a18a119b632" + integrity sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw== + dependencies: + "@radix-ui/primitive" "1.1.3" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-context" "1.1.2" + "@radix-ui/react-dismissable-layer" "1.1.11" + "@radix-ui/react-focus-guards" "1.1.3" + "@radix-ui/react-focus-scope" "1.1.7" + "@radix-ui/react-id" "1.1.1" + "@radix-ui/react-portal" "1.1.9" + "@radix-ui/react-presence" "1.1.5" + "@radix-ui/react-primitive" "2.1.3" + "@radix-ui/react-slot" "1.2.3" + "@radix-ui/react-use-controllable-state" "1.2.2" + aria-hidden "^1.2.4" + react-remove-scroll "^2.6.3" + +"@radix-ui/react-direction@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-direction/-/react-direction-1.1.1.tgz#39e5a5769e676c753204b792fbe6cf508e550a14" + integrity sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw== + +"@radix-ui/react-dismissable-layer@1.1.11": + version "1.1.11" + resolved "https://registry.yarnpkg.com/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.11.tgz#e33ab6f6bdaa00f8f7327c408d9f631376b88b37" + integrity sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg== + dependencies: + "@radix-ui/primitive" "1.1.3" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-primitive" "2.1.3" + "@radix-ui/react-use-callback-ref" "1.1.1" + "@radix-ui/react-use-escape-keydown" "1.1.1" + +"@radix-ui/react-dropdown-menu@^2.1": + version "2.1.16" + resolved "https://registry.yarnpkg.com/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.16.tgz#5ee045c62bad8122347981c479d92b1ff24c7254" + integrity sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw== + dependencies: + "@radix-ui/primitive" "1.1.3" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-context" "1.1.2" + "@radix-ui/react-id" "1.1.1" + "@radix-ui/react-menu" "2.1.16" + "@radix-ui/react-primitive" "2.1.3" + "@radix-ui/react-use-controllable-state" "1.2.2" + +"@radix-ui/react-focus-guards@1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.3.tgz#2a5669e464ad5fde9f86d22f7fdc17781a4dfa7f" + integrity sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw== + +"@radix-ui/react-focus-scope@1.1.7": + version "1.1.7" + resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.7.tgz#dfe76fc103537d80bf42723a183773fd07bfb58d" + integrity sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw== + dependencies: + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-primitive" "2.1.3" + "@radix-ui/react-use-callback-ref" "1.1.1" + +"@radix-ui/react-id@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-id/-/react-id-1.1.1.tgz#1404002e79a03fe062b7e3864aa01e24bd1471f7" + integrity sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg== + dependencies: + "@radix-ui/react-use-layout-effect" "1.1.1" + +"@radix-ui/react-menu@2.1.16": + version "2.1.16" + resolved "https://registry.yarnpkg.com/@radix-ui/react-menu/-/react-menu-2.1.16.tgz#528a5a973c3a7413d3d49eb9ccd229aa52402911" + integrity sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg== + dependencies: + "@radix-ui/primitive" "1.1.3" + "@radix-ui/react-collection" "1.1.7" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-context" "1.1.2" + "@radix-ui/react-direction" "1.1.1" + "@radix-ui/react-dismissable-layer" "1.1.11" + "@radix-ui/react-focus-guards" "1.1.3" + "@radix-ui/react-focus-scope" "1.1.7" + "@radix-ui/react-id" "1.1.1" + "@radix-ui/react-popper" "1.2.8" + "@radix-ui/react-portal" "1.1.9" + "@radix-ui/react-presence" "1.1.5" + "@radix-ui/react-primitive" "2.1.3" + "@radix-ui/react-roving-focus" "1.1.11" + "@radix-ui/react-slot" "1.2.3" + "@radix-ui/react-use-callback-ref" "1.1.1" + aria-hidden "^1.2.4" + react-remove-scroll "^2.6.3" + +"@radix-ui/react-popper@1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@radix-ui/react-popper/-/react-popper-1.2.8.tgz#a79f39cdd2b09ab9fb50bf95250918422c4d9602" + integrity sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw== + dependencies: + "@floating-ui/react-dom" "^2.0.0" + "@radix-ui/react-arrow" "1.1.7" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-context" "1.1.2" + "@radix-ui/react-primitive" "2.1.3" + "@radix-ui/react-use-callback-ref" "1.1.1" + "@radix-ui/react-use-layout-effect" "1.1.1" + "@radix-ui/react-use-rect" "1.1.1" + "@radix-ui/react-use-size" "1.1.1" + "@radix-ui/rect" "1.1.1" + +"@radix-ui/react-portal@1.1.9": + version "1.1.9" + resolved "https://registry.yarnpkg.com/@radix-ui/react-portal/-/react-portal-1.1.9.tgz#14c3649fe48ec474ac51ed9f2b9f5da4d91c4472" + integrity sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ== + dependencies: + "@radix-ui/react-primitive" "2.1.3" + "@radix-ui/react-use-layout-effect" "1.1.1" + +"@radix-ui/react-presence@1.1.5": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@radix-ui/react-presence/-/react-presence-1.1.5.tgz#5d8f28ac316c32f078afce2996839250c10693db" + integrity sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ== + dependencies: + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-use-layout-effect" "1.1.1" + +"@radix-ui/react-primitive@2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz#db9b8bcff49e01be510ad79893fb0e4cda50f1bc" + integrity sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ== + dependencies: + "@radix-ui/react-slot" "1.2.3" + +"@radix-ui/react-primitive@2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@radix-ui/react-primitive/-/react-primitive-2.1.4.tgz#2626ea309ebd63bf5767d3e7fc4081f81b993df0" + integrity sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg== + dependencies: + "@radix-ui/react-slot" "1.2.4" + +"@radix-ui/react-roving-focus@1.1.11": + version "1.1.11" + resolved "https://registry.yarnpkg.com/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.11.tgz#ef54384b7361afc6480dcf9907ef2fedb5080fd9" + integrity sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA== + dependencies: + "@radix-ui/primitive" "1.1.3" + "@radix-ui/react-collection" "1.1.7" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-context" "1.1.2" + "@radix-ui/react-direction" "1.1.1" + "@radix-ui/react-id" "1.1.1" + "@radix-ui/react-primitive" "2.1.3" + "@radix-ui/react-use-callback-ref" "1.1.1" + "@radix-ui/react-use-controllable-state" "1.2.2" + +"@radix-ui/react-slot@1.2.3": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@radix-ui/react-slot/-/react-slot-1.2.3.tgz#502d6e354fc847d4169c3bc5f189de777f68cfe1" + integrity sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A== + dependencies: + "@radix-ui/react-compose-refs" "1.1.2" + +"@radix-ui/react-slot@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@radix-ui/react-slot/-/react-slot-1.2.4.tgz#63c0ba05fdf90cc49076b94029c852d7bac1fb83" + integrity sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA== + dependencies: + "@radix-ui/react-compose-refs" "1.1.2" + +"@radix-ui/react-tooltip@^1.2": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@radix-ui/react-tooltip/-/react-tooltip-1.2.8.tgz#3f50267e25bccfc9e20bb3036bfd9ab4c2c30c2c" + integrity sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg== + dependencies: + "@radix-ui/primitive" "1.1.3" + "@radix-ui/react-compose-refs" "1.1.2" + "@radix-ui/react-context" "1.1.2" + "@radix-ui/react-dismissable-layer" "1.1.11" + "@radix-ui/react-id" "1.1.1" + "@radix-ui/react-popper" "1.2.8" + "@radix-ui/react-portal" "1.1.9" + "@radix-ui/react-presence" "1.1.5" + "@radix-ui/react-primitive" "2.1.3" + "@radix-ui/react-slot" "1.2.3" + "@radix-ui/react-use-controllable-state" "1.2.2" + "@radix-ui/react-visually-hidden" "1.2.3" + +"@radix-ui/react-use-callback-ref@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz#62a4dba8b3255fdc5cc7787faeac1c6e4cc58d40" + integrity sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg== + +"@radix-ui/react-use-controllable-state@1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz#905793405de57d61a439f4afebbb17d0645f3190" + integrity sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg== + dependencies: + "@radix-ui/react-use-effect-event" "0.0.2" + "@radix-ui/react-use-layout-effect" "1.1.1" + +"@radix-ui/react-use-effect-event@0.0.2": + version "0.0.2" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz#090cf30d00a4c7632a15548512e9152217593907" + integrity sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA== + dependencies: + "@radix-ui/react-use-layout-effect" "1.1.1" + +"@radix-ui/react-use-escape-keydown@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz#b3fed9bbea366a118f40427ac40500aa1423cc29" + integrity sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g== + dependencies: + "@radix-ui/react-use-callback-ref" "1.1.1" + +"@radix-ui/react-use-layout-effect@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz#0c4230a9eed49d4589c967e2d9c0d9d60a23971e" + integrity sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ== + +"@radix-ui/react-use-rect@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-rect/-/react-use-rect-1.1.1.tgz#01443ca8ed071d33023c1113e5173b5ed8769152" + integrity sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w== + dependencies: + "@radix-ui/rect" "1.1.1" + +"@radix-ui/react-use-size@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-size/-/react-use-size-1.1.1.tgz#6de276ffbc389a537ffe4316f5b0f24129405b37" + integrity sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ== + dependencies: + "@radix-ui/react-use-layout-effect" "1.1.1" + +"@radix-ui/react-visually-hidden@1.2.3": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.3.tgz#a8c38c8607735dc9f05c32f87ab0f9c2b109efbf" + integrity sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug== + dependencies: + "@radix-ui/react-primitive" "2.1.3" + +"@radix-ui/react-visually-hidden@^1.2": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.4.tgz#d03dc38d94ecdb572cb1fe09e97912203abb70a1" + integrity sha512-kaeiyGCe844dkb9AVF+rb4yTyb1LiLN/e3es3nLiRyN4dC8AduBYPMnnNlDjX2VDOcvDEiPnRNMJeWCfsX0txg== + dependencies: + "@radix-ui/react-primitive" "2.1.4" + +"@radix-ui/rect@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/rect/-/rect-1.1.1.tgz#78244efe12930c56fd255d7923865857c41ac8cb" + integrity sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw== + +"@react-aria/focus@^3.20.2": + version "3.21.4" + resolved "https://registry.yarnpkg.com/@react-aria/focus/-/focus-3.21.4.tgz#6cfef72712b9e0cdfe9d2a1bc4c0f11b0ede51e2" + integrity sha512-6gz+j9ip0/vFRTKJMl3R30MHopn4i19HqqLfSQfElxJD+r9hBnYG1Q6Wd/kl/WRR1+CALn2F+rn06jUnf5sT8Q== + dependencies: + "@react-aria/interactions" "^3.27.0" + "@react-aria/utils" "^3.33.0" + "@react-types/shared" "^3.33.0" + "@swc/helpers" "^0.5.0" + clsx "^2.0.0" + +"@react-aria/interactions@^3.25.0", "@react-aria/interactions@^3.27.0": + version "3.27.0" + resolved "https://registry.yarnpkg.com/@react-aria/interactions/-/interactions-3.27.0.tgz#38bc471dfaa3ec4734b467c9a816c9a6a7327d0e" + integrity sha512-D27pOy+0jIfHK60BB26AgqjjRFOYdvVSkwC31b2LicIzRCSPOSP06V4gMHuGmkhNTF4+YWDi1HHYjxIvMeiSlA== + dependencies: + "@react-aria/ssr" "^3.9.10" + "@react-aria/utils" "^3.33.0" + "@react-stately/flags" "^3.1.2" + "@react-types/shared" "^3.33.0" + "@swc/helpers" "^0.5.0" + +"@react-aria/ssr@^3.9.10": + version "3.9.10" + resolved "https://registry.yarnpkg.com/@react-aria/ssr/-/ssr-3.9.10.tgz#7fdc09e811944ce0df1d7e713de1449abd7435e6" + integrity sha512-hvTm77Pf+pMBhuBm760Li0BVIO38jv1IBws1xFm1NoL26PU+fe+FMW5+VZWyANR6nYL65joaJKZqOdTQMkO9IQ== + dependencies: + "@swc/helpers" "^0.5.0" + +"@react-aria/utils@^3.33.0": + version "3.33.0" + resolved "https://registry.yarnpkg.com/@react-aria/utils/-/utils-3.33.0.tgz#12772f84e12c0149f66f247c02c8df959d8f83e8" + integrity sha512-yvz7CMH8d2VjwbSa5nGXqjU031tYhD8ddax95VzJsHSPyqHDEGfxul8RkhGV6oO7bVqZxVs6xY66NIgae+FHjw== + dependencies: + "@react-aria/ssr" "^3.9.10" + "@react-stately/flags" "^3.1.2" + "@react-stately/utils" "^3.11.0" + "@react-types/shared" "^3.33.0" + "@swc/helpers" "^0.5.0" + clsx "^2.0.0" + +"@react-stately/flags@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@react-stately/flags/-/flags-3.1.2.tgz#5c8e5ae416d37d37e2e583d2fcb3a046293504f2" + integrity sha512-2HjFcZx1MyQXoPqcBGALwWWmgFVUk2TuKVIQxCbRq7fPyWXIl6VHcakCLurdtYC2Iks7zizvz0Idv48MQ38DWg== + dependencies: + "@swc/helpers" "^0.5.0" + +"@react-stately/utils@^3.11.0": + version "3.11.0" + resolved "https://registry.yarnpkg.com/@react-stately/utils/-/utils-3.11.0.tgz#95a05d9633f4614ca89f630622566e7e5709d79e" + integrity sha512-8LZpYowJ9eZmmYLpudbo/eclIRnbhWIJZ994ncmlKlouNzKohtM8qTC6B1w1pwUbiwGdUoyzLuQbeaIor5Dvcw== + dependencies: + "@swc/helpers" "^0.5.0" + +"@react-types/shared@^3.33.0": + version "3.33.0" + resolved "https://registry.yarnpkg.com/@react-types/shared/-/shared-3.33.0.tgz#27b9bba9e51f4cd2c5d19108e69fe562f599ab29" + integrity sha512-xuUpP6MyuPmJtzNOqF5pzFUIHH2YogyOQfUQHag54PRmWB7AbjuGWBUv0l1UDmz6+AbzAYGmDVAzcRDOu2PFpw== + +"@sinclair/typebox@^0.34.0": + version "0.34.48" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.34.48.tgz#75b0ead87e59e1adbd6dccdc42bad4fddee73b59" + integrity sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA== + +"@sinonjs/commons@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd" + integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== dependencies: type-detect "4.0.8" -"@sinonjs/fake-timers@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" - integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== +"@sinonjs/fake-timers@^13.0.0": + version "13.0.5" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz#36b9dbc21ad5546486ea9173d6bea063eb1717d5" + integrity sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw== dependencies: - "@sinonjs/commons" "^1.7.0" + "@sinonjs/commons" "^3.0.1" -"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": - version "7.1.14" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.14.tgz#faaeefc4185ec71c389f4501ee5ec84b170cc402" - integrity sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g== +"@swc/helpers@^0.5.0": + version "0.5.18" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.18.tgz#feeeabea0d10106ee25aaf900165df911ab6d3b1" + integrity sha512-TXTnIcNJQEKwThMMqBXsZ4VGAza6bvN4pa41Rkqoio6QBKMvo+5lexeTMScGCIxtzgQJzElcvIltani+adC5PQ== dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" + tslib "^2.8.0" + +"@tanstack/react-virtual@^3.13.9": + version "3.13.18" + resolved "https://registry.yarnpkg.com/@tanstack/react-virtual/-/react-virtual-3.13.18.tgz#9124ee9f08b2ca3c67ffd508dae3732328983362" + integrity sha512-dZkhyfahpvlaV0rIKnvQiVoWPyURppl6w4m9IwMDpuIjcJ1sD9YGWrt0wISvgU7ewACXx2Ct46WPgI6qAD4v6A== + dependencies: + "@tanstack/virtual-core" "3.13.18" + +"@tanstack/virtual-core@3.13.18": + version "3.13.18" + resolved "https://registry.yarnpkg.com/@tanstack/virtual-core/-/virtual-core-3.13.18.tgz#586e3c1fe08547ee6abf87e8fb7c99087b9c47ff" + integrity sha512-Mx86Hqu1k39icq2Zusq+Ey2J6dDWTjDvEv43PJtRCoEYTLyfaPnxIQ6iy7YAOK0NV/qOEmZQ/uCufrppZxTgcg== + +"@tsconfig/node20@^20.1.4": + version "20.1.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node20/-/node20-20.1.9.tgz#29716bc9ce538f0e5b5fea30b6481a0b0b7955df" + integrity sha512-IjlTv1RsvnPtUcjTqtVsZExKVq+KQx4g5pCP5tI7rAs6Xesl2qFwSz/tPDBC4JajkL/MlezBu3gPUwqRHl+RIg== + +"@tybys/wasm-util@^0.10.0": + version "0.10.1" + resolved "https://registry.yarnpkg.com/@tybys/wasm-util/-/wasm-util-0.10.1.tgz#ecddd3205cf1e2d5274649ff0eedd2991ed7f414" + integrity sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg== + dependencies: + tslib "^2.4.0" + +"@types/babel__core@^7.20.5": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" + integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== + dependencies: + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" "@types/babel__generator" "*" "@types/babel__template" "*" "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.2.tgz#f3d71178e187858f7c45e30380f8f1b7415a12d8" - integrity sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ== + version "7.27.0" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.27.0.tgz#b5819294c51179957afaec341442f9341e4108a9" + integrity sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg== dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.0.tgz#0c888dd70b3ee9eebb6e4f200e809da0076262be" - integrity sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A== + version "7.4.4" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" + integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.11.1" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.11.1.tgz#654f6c4f67568e24c23b367e947098c6206fa639" - integrity sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw== +"@types/babel__traverse@*": + version "7.28.0" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.28.0.tgz#07d713d6cce0d265c9849db0cbe62d3f61f36f74" + integrity sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q== dependencies: - "@babel/types" "^7.3.0" + "@babel/types" "^7.28.2" "@types/debug@^4.1.5": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd" - integrity sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ== + version "4.1.12" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" + integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== + dependencies: + "@types/ms" "*" -"@types/graceful-fs@^4.1.2": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" - integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== +"@types/interpret@^1.1.4": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@types/interpret/-/interpret-1.1.4.tgz#d6044e5295874e1d33a99306bfb701e82de6234c" + integrity sha512-r+tPKWHYqaxJOYA3Eik0mMi+SEREqOXLmsooRFmc6GHv7nWUDixFtKN+cegvsPlDcEZd9wxsdp041v2imQuvag== dependencies: "@types/node" "*" -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" - integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.1", "@types/istanbul-lib-coverage@^2.0.6": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== "@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== dependencies: "@types/istanbul-lib-coverage" "*" -"@types/istanbul-reports@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821" - integrity sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA== +"@types/istanbul-reports@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" + integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@^26.0.22": - version "26.0.22" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.22.tgz#8308a1debdf1b807aa47be2838acdcd91e88fbe6" - integrity sha512-eeWwWjlqxvBxc4oQdkueW5OF/gtfSceKk4OnOAGlUSwS/liBRtZppbJuz1YkgbrbfGOoeBHun9fOvXnjNwrSOw== +"@types/jest@^30.0.0": + version "30.0.0" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-30.0.0.tgz#5e85ae568006712e4ad66f25433e9bdac8801f1d" + integrity sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA== dependencies: - jest-diff "^26.0.0" - pretty-format "^26.0.0" - -"@types/json5@^0.0.30": - version "0.0.30" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.30.tgz#44cb52f32a809734ca562e685c6473b5754a7818" - integrity sha512-sqm9g7mHlPY/43fcSNrCYfOeX9zkTTK+euO5E6+CVijSMm5tTjkVdwdqRkY3ljjIAf8679vps5jKUoJBCLsMDA== + expect "^30.0.0" + pretty-format "^30.0.0" -"@types/jsonwebtoken@^8.3.2": - version "8.5.1" - resolved "https://registry.yarnpkg.com/@types/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#56958cb2d80f6d74352bd2e501a018e2506a8a84" - integrity sha512-rNAPdomlIUX0i0cg2+I+Q1wOUr531zHBQ+cV/28PJ39bSPKjahatZZ2LMuhiguETkCgLVzfruw/ZvNMNkKoSzw== - dependencies: - "@types/node" "*" +"@types/ms@*": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-2.1.0.tgz#052aa67a48eccc4309d7f0191b7e41434b90bb78" + integrity sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA== "@types/node@*": - version "14.14.41" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.41.tgz#d0b939d94c1d7bd53d04824af45f1139b8c45615" - integrity sha512-dueRKfaJL4RTtSa7bWeTK1M+VH+Gns73oCgzvYfHZywRCoPSd8EkXBL0mZ9unPTveBn+D9phZBaxuzpwjWkW0g== + version "25.2.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-25.2.3.tgz#9c18245be768bdb4ce631566c7da303a5c99a7f8" + integrity sha512-m0jEgYlYz+mDJZ2+F4v8D1AyQb+QzsNqRuI7xg1VQX/KlKS0qT9r1Mo16yo5F/MtifXFgaofIFsdFMox2SxIbQ== + dependencies: + undici-types "~7.16.0" -"@types/normalize-package-data@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" - integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== +"@types/node@^22.19.1": + version "22.19.11" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.19.11.tgz#7e1feaad24e4e36c52fa5558d5864bb4b272603e" + integrity sha512-BH7YwL6rA93ReqeQS1c4bsPpcfOmJasG+Fkr6Y59q83f9M1WcBRHR2vM+P9eOisYRcN3ujQoiZY8uk5W+1WL8w== + dependencies: + undici-types "~6.21.0" -"@types/pg@>=6 <8", "@types/pg@^7.4.10": - version "7.14.11" - resolved "https://registry.yarnpkg.com/@types/pg/-/pg-7.14.11.tgz#daf5555504a1f7af4263df265d91f140fece52e3" - integrity sha512-EnZkZ1OMw9DvNfQkn2MTJrwKmhJYDEs5ujWrPfvseWNoI95N8B4HzU/Ltrq5ZfYxDX/Zg8mTzwr6UAyTjjFvXA== +"@types/pg@^8.15.6", "@types/pg@^8.16.0": + version "8.16.0" + resolved "https://registry.yarnpkg.com/@types/pg/-/pg-8.16.0.tgz#b7af0d642752340b7c9de1c33afd9bc5c5f0ebeb" + integrity sha512-RmhMd/wD+CF8Dfo+cVIy3RR5cl8CyfXQ0tGgW6XBL8L4LM/UTEbNXYRbLwU6w+CgrKBNbrQWt4FUtTfaU5jSYQ== dependencies: "@types/node" "*" - pg-protocol "^1.2.0" + pg-protocol "*" pg-types "^2.2.0" -"@types/prettier@^2.0.0": - version "2.2.3" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.2.3.tgz#ef65165aea2924c9359205bf748865b8881753c0" - integrity sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA== +"@types/pluralize@^0.0.33": + version "0.0.33" + resolved "https://registry.yarnpkg.com/@types/pluralize/-/pluralize-0.0.33.tgz#8ad9018368c584d268667dd9acd5b3b806e8c82a" + integrity sha512-JOqsl+ZoCpP4e8TDke9W79FDcSgPAR0l6pixx2JHkhnRjvShyYiAYw2LVsnA7K08Y6DeOnaU6ujmENO4os/cYg== -"@types/stack-utils@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.0.tgz#7036640b4e21cc2f259ae826ce843d277dad8cff" - integrity sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw== +"@types/semver@^7.7.1": + version "7.7.1" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.7.1.tgz#3ce3af1a5524ef327d2da9e4fd8b6d95c8d70528" + integrity sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA== -"@types/ws@^7.4.0": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.1.tgz#49eacb15a0534663d53a36fbf5b4d98f5ae9a73a" - integrity sha512-ISCK1iFnR+jYv7+jLNX0wDqesZ/5RAeY3wUx6QaphmocphU61h+b+PHjS18TF4WIPTu/MMzxIq2PHr32o2TS5Q== - dependencies: - "@types/node" "*" +"@types/stack-utils@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" + integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== "@types/yargs-parser@*": - version "20.2.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9" - integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA== + version "21.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== -"@types/yargs@^15.0.0": - version "15.0.13" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.13.tgz#34f7fec8b389d7f3c1fd08026a5763e072d3c6dc" - integrity sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ== +"@types/yargs@^17.0.33": + version "17.0.35" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.35.tgz#07013e46aa4d7d7d50a49e15604c1c5340d4eb24" + integrity sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg== dependencies: "@types/yargs-parser" "*" -abab@^2.0.3, abab@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" - integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== - -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - -acorn-globals@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" - integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== - dependencies: - acorn "^7.1.1" - acorn-walk "^7.1.1" - -acorn-walk@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" - integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== - -acorn@^7.1.1: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -acorn@^8.1.0: - version "8.2.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.2.1.tgz#0d36af126fb6755095879c1dc6fd7edf7d60a5fb" - integrity sha512-z716cpm5TX4uzOzILx8PavOE6C6DKshHDw1aQN52M/yNSqE9s5O8SMfyhCCfCJ3HmTL0NkVOi+8a/55T7YB3bg== - -ajv@^6.12.3: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - 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" +"@ungap/structured-clone@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz#d06bbb384ebcf6c505fde1c3d0ed4ddffe0aaff8" + integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== + +"@unrs/resolver-binding-android-arm-eabi@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz#9f5b04503088e6a354295e8ea8fe3cb99e43af81" + integrity sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw== + +"@unrs/resolver-binding-android-arm64@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz#7414885431bd7178b989aedc4d25cccb3865bc9f" + integrity sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g== + +"@unrs/resolver-binding-darwin-arm64@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz#b4a8556f42171fb9c9f7bac8235045e82aa0cbdf" + integrity sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g== + +"@unrs/resolver-binding-darwin-x64@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz#fd4d81257b13f4d1a083890a6a17c00de571f0dc" + integrity sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ== + +"@unrs/resolver-binding-freebsd-x64@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz#d2513084d0f37c407757e22f32bd924a78cfd99b" + integrity sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw== + +"@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz#844d2605d057488d77fab09705f2866b86164e0a" + integrity sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw== + +"@unrs/resolver-binding-linux-arm-musleabihf@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz#204892995cefb6bd1d017d52d097193bc61ddad3" + integrity sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw== + +"@unrs/resolver-binding-linux-arm64-gnu@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz#023eb0c3aac46066a10be7a3f362e7b34f3bdf9d" + integrity sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ== + +"@unrs/resolver-binding-linux-arm64-musl@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz#9e6f9abb06424e3140a60ac996139786f5d99be0" + integrity sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w== + +"@unrs/resolver-binding-linux-ppc64-gnu@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz#b111417f17c9d1b02efbec8e08398f0c5527bb44" + integrity sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA== + +"@unrs/resolver-binding-linux-riscv64-gnu@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz#92ffbf02748af3e99873945c9a8a5ead01d508a9" + integrity sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ== + +"@unrs/resolver-binding-linux-riscv64-musl@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz#0bec6f1258fc390e6b305e9ff44256cb207de165" + integrity sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew== + +"@unrs/resolver-binding-linux-s390x-gnu@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz#577843a084c5952f5906770633ccfb89dac9bc94" + integrity sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg== + +"@unrs/resolver-binding-linux-x64-gnu@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz#36fb318eebdd690f6da32ac5e0499a76fa881935" + integrity sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w== + +"@unrs/resolver-binding-linux-x64-musl@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz#bfb9af75f783f98f6a22c4244214efe4df1853d6" + integrity sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA== + +"@unrs/resolver-binding-wasm32-wasi@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz#752c359dd875684b27429500d88226d7cc72f71d" + integrity sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ== + dependencies: + "@napi-rs/wasm-runtime" "^0.2.11" + +"@unrs/resolver-binding-win32-arm64-msvc@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz#ce5735e600e4c2fbb409cd051b3b7da4a399af35" + integrity sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw== + +"@unrs/resolver-binding-win32-ia32-msvc@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz#72fc57bc7c64ec5c3de0d64ee0d1810317bc60a6" + integrity sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ== + +"@unrs/resolver-binding-win32-x64-msvc@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz#538b1e103bf8d9864e7b85cc96fa8d6fb6c40777" + integrity sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g== ansi-align@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" - integrity sha1-w2rsy6VjuJzrVW82kPCx2eNUf38= + integrity sha512-TdlOggdA/zURfMYa7ABC66j+oqfMew58KpJMbUlH3bcZP1b+cBHIHDDn5uH9INsxrHBPjsqM0tDB4jPTF/vgJA== dependencies: string-width "^2.0.0" -ansi-escapes@^4.2.1: +ansi-escapes@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== @@ -802,10 +1379,15 @@ ansi-regex@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.2.2" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.2.tgz#60216eea464d864597ce2832000738a0589650c1" + integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== ansi-styles@^3.2.1: version "3.2.1" @@ -821,6 +1403,16 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" +ansi-styles@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +ansi-styles@^6.1.0: + version "6.2.3" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" + integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== + anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -829,10 +1421,10 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" -anymatch@^3.0.3: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== +anymatch@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" @@ -844,10 +1436,22 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +aria-hidden@^1.2.4: + version "1.2.6" + resolved "https://registry.yarnpkg.com/aria-hidden/-/aria-hidden-1.2.6.tgz#73051c9b088114c795b1ea414e9c0fff874ffc1a" + integrity sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA== + dependencies: + tslib "^2.0.0" + arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== arr-flatten@^1.1.0: version "1.1.0" @@ -857,125 +1461,87 @@ arr-flatten@^1.1.0: arr-union@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== array-unique@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + version "1.0.6" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.6.tgz#52f1d9403818c179b7561e11a5d1b77eb2160e77" + integrity sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg== atob@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== - -babel-jest@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" - integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== - dependencies: - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/babel__core" "^7.1.7" - babel-plugin-istanbul "^6.0.0" - babel-preset-jest "^26.6.2" - chalk "^4.0.0" - graceful-fs "^4.2.4" +babel-jest@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-30.2.0.tgz#fd44a1ec9552be35ead881f7381faa7d8f3b95ac" + integrity sha512-0YiBEOxWqKkSQWL9nNGGEgndoeL0ZpWrbLMNL5u/Kaxrli3Eaxlt3ZtIDktEvXt4L/R9r3ODr2zKwGM/2BjxVw== + dependencies: + "@jest/transform" "30.2.0" + "@types/babel__core" "^7.20.5" + babel-plugin-istanbul "^7.0.1" + babel-preset-jest "30.2.0" + chalk "^4.1.2" + graceful-fs "^4.2.11" slash "^3.0.0" -babel-plugin-istanbul@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765" - integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ== +babel-plugin-istanbul@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.1.tgz#d8b518c8ea199364cf84ccc82de89740236daf92" + integrity sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^4.0.0" + "@istanbuljs/schema" "^0.1.3" + istanbul-lib-instrument "^6.0.2" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d" - integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== +babel-plugin-jest-hoist@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.2.0.tgz#94c250d36b43f95900f3a219241e0f4648191ce2" + integrity sha512-ftzhzSGMUnOzcCXd6WHdBGMyuwy15Wnn0iyyWGKgBDLxf9/s5ABuraCSpBX2uG0jUg4rqJnxsLc5+oYBqoxVaA== dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.0.0" - "@types/babel__traverse" "^7.0.6" + "@types/babel__core" "^7.20.5" -babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== +babel-preset-current-node-syntax@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz#20730d6cdc7dda5d89401cab10ac6a32067acde6" + integrity sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg== 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-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-import-attributes" "^7.24.7" + "@babel/plugin-syntax-import-meta" "^7.10.4" "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" -babel-preset-jest@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" - integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== +babel-preset-jest@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-30.2.0.tgz#04717843e561347781d6d7f69c81e6bcc3ed11ce" + integrity sha512-US4Z3NOieAQumwFnYdUWKvUKh8+YSnS/gB3t6YBiz0bskpu7Pine8pPCheNxlPEW4wnUkma2a94YuW2q3guvCQ== dependencies: - babel-plugin-jest-hoist "^26.6.2" - babel-preset-current-node-syntax "^1.0.0" - -backo2@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" - integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= + babel-plugin-jest-hoist "30.2.0" + babel-preset-current-node-syntax "^1.2.0" balanced-match@^1.0.0: version "1.0.2" @@ -995,12 +1561,10 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" +baseline-browser-mapping@^2.9.0: + version "2.9.19" + resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.9.19.tgz#3e508c43c46d961eb4d7d2e5b8d1dd0f9ee4f488" + integrity sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg== binary-extensions@^1.0.0: version "1.13.1" @@ -1014,24 +1578,6 @@ bindings@^1.5.0: dependencies: file-uri-to-path "1.0.0" -body-parser@^1.15.2: - version "1.20.3" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6" - integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g== - dependencies: - bytes "3.1.2" - content-type "~1.0.5" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.13.0" - raw-body "2.5.2" - type-is "~1.6.18" - unpipe "1.0.0" - boxen@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" @@ -1046,13 +1592,20 @@ boxen@^1.2.1: widest-line "^2.0.0" brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + version "1.1.12" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843" + integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" +brace-expansion@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7" + integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ== + dependencies: + balanced-match "^1.0.0" + braces@^2.3.1, braces@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" @@ -1069,30 +1622,25 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -braces@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== +braces@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: - fill-range "^7.0.1" - -browser-process-hrtime@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" - integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + fill-range "^7.1.1" -browserslist@^4.14.5: - version "4.16.5" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.5.tgz#952825440bca8913c62d0021334cbe928ef062ae" - integrity sha512-C2HAjrM1AI/djrpAUU/tr4pml1DqLIzJKSLDBXBrNErl9ZCCTXdhwxdJjYc16953+mBWf7Lw+uUJgpgb8cN71A== +browserslist@^4.24.0: + version "4.28.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.28.1.tgz#7f534594628c53c63101079e27e40de490456a95" + integrity sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA== dependencies: - caniuse-lite "^1.0.30001214" - colorette "^1.2.2" - electron-to-chromium "^1.3.719" - escalade "^3.1.1" - node-releases "^1.1.71" + baseline-browser-mapping "^2.9.0" + caniuse-lite "^1.0.30001759" + electron-to-chromium "^1.5.263" + node-releases "^2.0.27" + update-browserslist-db "^1.2.0" -bs-logger@0.x: +bs-logger@^0.2.6: version "0.2.6" resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== @@ -1106,30 +1654,15 @@ bser@2.1.1: dependencies: node-int64 "^0.4.0" -buffer-equal-constant-time@1.0.1: +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" - integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk= - -buffer-from@1.x, buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -buffer-writer@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-2.0.0.tgz#ce7eb81a38f7829db09c873f2fbb792c0c98ec04" - integrity sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw== + integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== -builtin-modules@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= - -bytes@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== cache-base@^1.0.1: version "1.0.1" @@ -1146,18 +1679,7 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" -call-bind@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" - integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== - dependencies: - es-define-property "^1.0.0" - es-errors "^1.3.0" - function-bind "^1.1.2" - get-intrinsic "^1.2.4" - set-function-length "^1.2.1" - -callsites@^3.0.0: +callsites@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== @@ -1165,41 +1687,29 @@ callsites@^3.0.0: camelcase@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" - integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= + integrity sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw== -camelcase@^5.0.0, camelcase@^5.3.1: +camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.0.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" - integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== - -caniuse-lite@^1.0.30001214: - version "1.0.30001214" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001214.tgz#70f153c78223515c6d37a9fde6cd69250da9d872" - integrity sha512-O2/SCpuaU3eASWVaesQirZv1MSjUNOvmugaD8zNSJqw6Vv5SGwoOpA9LJs3pNPfM745nxqPvfZY3MQKY4AKHYg== +camelcase@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -capture-exit@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" - integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== - dependencies: - rsvp "^4.8.4" +caniuse-lite@^1.0.30001759: + version "1.0.30001770" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001770.tgz#4dc47d3b263a50fbb243448034921e0a88591a84" + integrity sha512-x/2CLQ1jHENRbHg5PSId2sXq1CIO1CISvwWAj027ltMVG2UNgW+w9oH2+HzgEIRFembL8bUlXtfbBHR1fCg2xw== capture-stack-trace@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" - integrity sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + version "1.0.2" + resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.2.tgz#1c43f6b059d4249e7f3f8724f15f048b927d3a8a" + integrity sha512-X/WM2UQs6VMHUtjUDnZTRI+i1crWteJySFzr9UpGoQa4WQffXVTTXuekjl7TjZRlcF2XfjgITT0HxZ9RnxeT0w== -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0, chalk@^2.4.2: +chalk@^2.0.1: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -1208,10 +1718,10 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" - integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== +chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" @@ -1245,15 +1755,15 @@ ci-info@^1.5.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== +ci-info@^4.2.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.4.0.tgz#7d54eff9f54b45b62401c26032696eb59c8bd18c" + integrity sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg== -cjs-module-lexer@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" - integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== +cjs-module-lexer@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-2.2.0.tgz#b3ca5101843389259ade7d88c77bd06ce55849ca" + integrity sha512-4bHTS2YuzUvtoLjdy+98ykbNB5jS0+07EvFNXerqZQJ89F7DI6ET7OQo/HJuW6K0aVsKA9hj9/RVb2kQVOrPDQ== class-utils@^0.3.5: version "0.3.6" @@ -1268,40 +1778,41 @@ class-utils@^0.3.5: cli-boxes@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" - integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM= + integrity sha512-3Fo5wu8Ytle8q9iCzS4D2MWVL2X7JVWRiS1BnXbTFDhS9c/REkM9vd1AmabsoZoY5/dGi5TT9iKL8Kb6DeBRQg== -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== dependencies: string-width "^4.2.0" - strip-ansi "^6.0.0" + strip-ansi "^6.0.1" wrap-ansi "^7.0.0" +clsx@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" + integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== + +clsx@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.1.1.tgz#eed397c9fd8bd882bfb18deab7102049a2f32999" + integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== + co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== -collect-v8-coverage@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" - integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== +collect-v8-coverage@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz#cc1f01eb8d02298cbc9a437c74c70ab4e5210b80" + integrity sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw== collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== dependencies: map-visit "^1.0.0" object-visit "^1.0.0" @@ -1323,55 +1834,23 @@ color-convert@^2.0.1: color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -colorette@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" - integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== - -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@^2.12.1, commander@^2.19.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + version "1.3.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.1.tgz#ef1d5796f7d93f135ee6fb684340b26403c97d17" + integrity sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ== concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -concurrently@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-6.0.2.tgz#4ecdfc78a72a6f626a3a5d3c2a7a81962f3663e3" - integrity sha512-u+1Q0dJG5BidgUTpz9CU16yoHTt/oApFDQ3mbvHwSDgMjU7aGqy0q8ZQyaZyaNxdwRKTD872Ux3Twc6//sWA+Q== - dependencies: - chalk "^4.1.0" - date-fns "^2.16.1" - lodash "^4.17.21" - read-pkg "^5.2.0" - rxjs "^6.6.3" - spawn-command "^0.0.2-1" - supports-color "^8.1.0" - tree-kill "^1.2.2" - yargs "^16.2.0" - configstore@^3.0.0: version "3.1.5" resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.5.tgz#e9af331fadc14dabd544d3e7e76dc446a09a530f" @@ -1384,59 +1863,41 @@ configstore@^3.0.0: write-file-atomic "^2.0.0" xdg-basedir "^3.0.0" -content-type@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" - integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== - -convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== -core-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== create-error-class@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" - integrity sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y= + integrity sha512-gYTKKexFO3kh200H1Nit76sRwRtOY32vQd3jpAQKpLtZqyNsSQNfI4N7o3eP2wUjV35pTWKRYqFUDBvUha/Pkw== dependencies: capture-stack-trace "^1.0.0" cross-spawn@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= + integrity sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A== dependencies: lru-cache "^4.0.1" shebang-command "^1.2.0" which "^1.2.9" -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== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^7.0.0: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== +cross-spawn@^7.0.3, cross-spawn@^7.0.6: + version "7.0.6" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== dependencies: path-key "^3.1.0" shebang-command "^2.0.0" @@ -1445,60 +1906,20 @@ cross-spawn@^7.0.0: crypto-random-string@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" - integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= - -cssom@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" - integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== - -cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -cssstyle@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" - integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== - dependencies: - cssom "~0.3.6" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - -data-urls@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" - integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== - dependencies: - abab "^2.0.3" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.0.0" + integrity sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg== -date-fns@^2.16.1: - version "2.21.1" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.21.1.tgz#679a4ccaa584c0706ea70b3fa92262ac3009d2b0" - integrity sha512-m1WR0xGiC6j6jNFAyW4Nvh4WxAi4JF4w9jRJwSI8nBmNcyZXPcP9VUQG+6gHQXAmqaGEKDKhOqAtENDC941UkA== +debounce-promise@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/debounce-promise/-/debounce-promise-3.1.2.tgz#320fb8c7d15a344455cd33cee5ab63530b6dc7c5" + integrity sha512-rZHcgBkbYavBeD9ej6sP56XfG53d51CD4dnaw989YX/nZ/ZJfgRx/9ePKmTNiUiyQvh4mtrMoS3OAWW+yoYtpg== -debug@2.6.9, debug@^2.2.0, debug@^2.3.3: +debug@^2.2.0, debug@^2.3.3: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -"debug@>=3 <5", debug@^4.1.0, debug@^4.1.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== - dependencies: - ms "2.1.2" - debug@^3.2.6: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" @@ -1506,56 +1927,44 @@ debug@^3.2.6: dependencies: ms "^2.1.1" -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decimal.js@^10.2.1: - version "10.2.1" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.2.1.tgz#238ae7b0f0c793d3e3cea410108b35a2c01426a3" - integrity sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw== +debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.4.3: + version "4.4.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" + integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== + dependencies: + ms "^2.1.3" decode-uri-component@^0.2.0: version "0.2.2" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== +dedent@^1.6.0: + version "1.7.1" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.7.1.tgz#364661eea3d73f3faba7089214420ec2f8f13e15" + integrity sha512-9JmrhGZpOlEgOLdQgSm0zxFaYoQon408V1v49aqTWuXENVlnCuY9JBZcXZiCsZQWDjTm5Qf/nIvAy77mXDAjEg== + deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== -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= - -deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - -define-data-property@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" - integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== - dependencies: - es-define-property "^1.0.0" - es-errors "^1.3.0" - gopd "^1.0.1" +deepmerge@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== define-property@^0.2.5: version "0.2.5" resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== dependencies: is-descriptor "^0.1.0" define-property@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== dependencies: is-descriptor "^1.0.0" @@ -1567,47 +1976,15 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -depd@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - -destroy@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" - integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== - -detect-newline@^3.0.0: +detect-newline@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== -diff-sequences@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" - integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -domexception@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" - integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== - dependencies: - webidl-conversions "^5.0.0" +detect-node-es@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/detect-node-es/-/detect-node-es-1.1.0.tgz#163acdf643330caa0b4cd7c21e7ee7755d6fa493" + integrity sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ== dot-prop@^4.2.1: version "4.2.1" @@ -1617,17 +1994,14 @@ dot-prop@^4.2.1: is-obj "^1.0.0" duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + version "0.1.5" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e" + integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA== -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== ecdsa-sig-formatter@1.0.11: version "1.0.11" @@ -1636,118 +2010,72 @@ ecdsa-sig-formatter@1.0.11: dependencies: safe-buffer "^5.0.1" -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -electron-to-chromium@^1.3.719: - version "1.3.720" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.720.tgz#f5d66df8754d993006b7b2ded15ff7738c58bd94" - integrity sha512-B6zLTxxaOFP4WZm6DrvgRk8kLFYWNhQ5TrHMC0l5WtkMXhU5UbnvWoTfeEwqOruUSlNMhVLfYak7REX6oC5Yfw== +electron-to-chromium@^1.5.263: + version "1.5.286" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.286.tgz#142be1ab5e1cd5044954db0e5898f60a4960384e" + integrity sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A== -emittery@^0.7.1: - version "0.7.2" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" - integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== +emittery@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" + integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== -end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" +entities@^4.4.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + version "1.3.4" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.4.tgz#b3a8d8bb6f92eecc1629e3e27d3c8607a8a32414" + integrity sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ== dependencies: is-arrayish "^0.2.1" -es-define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" - integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== - dependencies: - get-intrinsic "^1.2.4" - -es-errors@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" - integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= +escalade@^3.1.1, escalade@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== 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" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== escape-string-regexp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== -escodegen@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" - integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== - dependencies: - esprima "^4.0.1" - estraverse "^5.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -esprima@^4.0.0, esprima@^4.0.1: +esprima@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -estraverse@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" - integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== -eventemitter3@^3.1.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" - integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== - -exec-sh@^0.3.2: - version "0.3.6" - resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" - integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== +eventemitter3@^5.0.1: + version "5.0.4" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.4.tgz#a86d66170433712dde814707ac52b5271ceb1feb" + integrity sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw== execa@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" - integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= + integrity sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw== dependencies: cross-spawn "^5.0.1" get-stream "^3.0.0" @@ -1757,43 +2085,30 @@ execa@^0.7.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" - integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== +execa@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" is-stream "^2.0.0" merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - signal-exit "^3.0.2" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" strip-final-newline "^2.0.0" -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= +exit-x@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/exit-x/-/exit-x-0.2.2.tgz#1f9052de3b8d99a696b10dad5bced9bdd5c3aa64" + integrity sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ== expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== dependencies: debug "^2.3.3" define-property "^0.2.5" @@ -1803,38 +2118,33 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expect@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417" - integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA== +expect@30.2.0, expect@^30.0.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-30.2.0.tgz#d4013bed267013c14bc1199cec8aa57cee9b5869" + integrity sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw== dependencies: - "@jest/types" "^26.6.2" - ansi-styles "^4.0.0" - jest-get-type "^26.3.0" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-regex-util "^26.0.0" + "@jest/expect-utils" "30.2.0" + "@jest/get-type" "30.1.0" + jest-matcher-utils "30.2.0" + jest-message-util "30.2.0" + jest-mock "30.2.0" + jest-util "30.2.0" extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== dependencies: is-extendable "^0.1.0" extend-shallow@^3.0.0, extend-shallow@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== dependencies: assign-symbols "^1.0.0" is-extendable "^1.0.1" -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - extglob@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" @@ -1849,35 +2159,15 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - -fast-deep-equal@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.1.0: version "2.1.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: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - -fb-watchman@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" - integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== +fb-watchman@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== dependencies: bser "2.1.1" @@ -1889,32 +2179,19 @@ file-uri-to-path@1.0.0: fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== dependencies: extend-shallow "^2.0.1" is-number "^3.0.0" repeat-string "^1.6.1" to-regex-range "^2.1.0" -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@^1.0.6: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" + to-regex-range "^5.0.1" find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" @@ -1924,36 +2201,44 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" +follow-redirects@^1.0.0: + version "1.15.11" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.11.tgz#777d73d72a92f8ec4d2e410eb47352a56b8e8340" + integrity sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ== + for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== +foreground-child@^3.1.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" + integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" + cross-spawn "^7.0.6" + signal-exit "^4.0.1" fragment-cache@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== dependencies: map-cache "^0.2.2" +framer-motion@^12.12: + version "12.34.0" + resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-12.34.0.tgz#0cecdf015cc4cbee55bd53130d043137642a5ced" + integrity sha512-+/H49owhzkzQyxtn7nZeF4kdH++I2FWrESQ184Zbcw5cEqNHYkE5yxWxcTLSj5lNx3NWdbIRy5FHqUvetD8FWg== + dependencies: + motion-dom "^12.34.0" + motion-utils "^12.29.2" + tslib "^2.4.0" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@^1.2.7: version "1.2.13" @@ -1963,15 +2248,10 @@ fsevents@^1.2.7: bindings "^1.5.0" nan "^2.12.1" -fsevents@^2.1.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +fsevents@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== function-bind@^1.1.2: version "1.1.2" @@ -1983,21 +2263,15 @@ gensync@^1.0.0-beta.2: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -get-caller-file@^2.0.1, get-caller-file@^2.0.5: +get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" - integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== - dependencies: - es-errors "^1.3.0" - function-bind "^1.1.2" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" +get-nonce@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-nonce/-/get-nonce-1.0.1.tgz#fdf3f0278073820d2ce9426c18f07481b1e0cdf3" + integrity sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q== get-package-type@^0.1.0: version "0.1.0" @@ -2007,77 +2281,68 @@ get-package-type@^0.1.0: get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= - -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" + integrity sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ== -get-stream@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= +get-value@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-3.0.1.tgz#5efd2a157f1d6a516d7524e124ac52d0a39ef5a8" + integrity sha512-mKZj9JLQrwMBtj5wxi6MH8Z5eSKaERpAwjg43dPtlGI1ZVEgH/qC7T8/6R2OBSUA+zzHBZgICsVJaEIV2tKTDA== dependencies: - assert-plus "^1.0.0" + isobject "^3.0.1" glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + integrity sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA== dependencies: is-glob "^3.1.0" path-dirname "^1.0.0" -glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== +glob@^10.3.10: + version "10.5.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.5.0.tgz#8ec0355919cd3338c28428a23d4f24ecc5fe738c" + integrity sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg== + dependencies: + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" + +glob@^7.1.4: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.4" + minimatch "^3.1.1" once "^1.3.0" path-is-absolute "^1.0.0" global-dirs@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" - integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= + integrity sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg== dependencies: ini "^1.3.4" -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" - got@^6.7.1: version "6.7.1" resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" - integrity sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA= + integrity sha512-Y/K3EDuiQN9rTZhBvPRWMLXIKdeD1Rj0nzunfoi0Yyn5WBEbzxXKU9Ub2X41oZBagVWOBU3MuDonFMgPWQFnwg== dependencies: create-error-class "^3.0.0" duplexer3 "^0.1.4" @@ -2091,122 +2356,149 @@ got@^6.7.1: unzip-response "^2.0.1" url-parse-lax "^1.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.2.4: - version "4.2.6" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" - integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== - -graphile-build-pg@4.11.2: - version "4.11.2" - resolved "https://registry.yarnpkg.com/graphile-build-pg/-/graphile-build-pg-4.11.2.tgz#a0ed079d48efc16cba157d89c2a3e5c3162fbf2b" - integrity sha512-kAI4urfd8h3ok4tXHIfKVghABMHfuHXnFUVuLb7qV7GJTLS4/vrkgYJVWmRF5z8RLo5TmFE4My07cEA8G1DxVQ== - dependencies: - "@graphile/lru" "4.11.0" - chalk "^2.4.2" - debug "^4.1.1" - graphile-build "4.11.0" - graphql-iso-date "^3.6.0" - jsonwebtoken "^8.5.1" - lodash ">=4 <5" - lru-cache ">=4 <5" - pg-sql2 "4.11.0" - -graphile-build@4.11.0: - version "4.11.0" - resolved "https://registry.yarnpkg.com/graphile-build/-/graphile-build-4.11.0.tgz#e8e131f4beca16a4fc491abeb97ce968288e2359" - integrity sha512-cp+IU1Kt9YRFG3n6LUU7/0djYsG0zzyAEh6C1EU21/UbCYtUKDsl8HKy5fV3eqHKrxPzvUB40q8wdt96lPff3g== - dependencies: - "@graphile/lru" "4.11.0" - chalk "^2.4.2" - debug "^4.1.1" - graphql-parse-resolve-info "4.11.0" - iterall "^1.2.2" - lodash ">=4 <5" - lru-cache "^5.0.0" +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.2.11: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +grafast@^1.0.0-rc.7: + version "1.0.0-rc.7" + resolved "https://registry.yarnpkg.com/grafast/-/grafast-1.0.0-rc.7.tgz#7c9c4526144419900ea6650d60989e3268d2a6a9" + integrity sha512-MZSg/6vFhs3FS2oe8XHsH2rcQ+ASnwNdomgDUI4SqIh8/qO4WkZVOn/iwyDO2sBgsT1Ck2Wovy8PkDUpMYt8JQ== + dependencies: + "@graphile/lru" "^5.0.0-rc.4" + chalk "^4.1.2" + debug "^4.4.3" + eventemitter3 "^5.0.1" + graphile-config "^1.0.0-rc.5" + graphql "^16.9.0" + iterall "^1.3.0" + tslib "^2.8.1" + +grafserv@^1.0.0-rc.6: + version "1.0.0-rc.6" + resolved "https://registry.yarnpkg.com/grafserv/-/grafserv-1.0.0-rc.6.tgz#824394b58457c77af1044542dbeb2c7cc5de843e" + integrity sha512-1ZM4ZBLN7SxG1genI3k19RePjA4FsWCPH+RYW3DV/4im/27zbAQurj7DgK/5IoNXXBax6OCXezX1lx2aDEMnDw== + dependencies: + "@graphile/lru" "^5.0.0-rc.4" + debug "^4.4.3" + eventemitter3 "^5.0.1" + graphile-config "^1.0.0-rc.5" + graphql-ws "^6.0.5" + ruru "^2.0.0-rc.6" + tslib "^2.8.1" + +graphile-build-pg@^5.0.0-rc.5: + version "5.0.0-rc.5" + resolved "https://registry.yarnpkg.com/graphile-build-pg/-/graphile-build-pg-5.0.0-rc.5.tgz#215f5b99ccf89c6c392b20f3487bfb38a314ab99" + integrity sha512-fUGPju4HeHt+XeA0Ci2pBlnfN/qUuurZOShPiLK7CcjnRCCmWJmsJhFvLwkKg/dLdsEfchVrVdY2FrvhAXgaww== + dependencies: + "@types/node" "^22.19.1" + debug "^4.4.3" + graphile-config "^1.0.0-rc.5" + jsonwebtoken "^9.0.2" + pg-introspection "^1.0.0-rc.4" + pg-sql2 "^5.0.0-rc.4" + tslib "^2.8.1" + +graphile-build@^5.0.0-rc.4: + version "5.0.0-rc.4" + resolved "https://registry.yarnpkg.com/graphile-build/-/graphile-build-5.0.0-rc.4.tgz#c15d047218e553b718295a608d2a65df82e247d2" + integrity sha512-LOzqlccyOuYIK/+3239+FChTfDdysJBg1dB0oJrf5mHzxrcMCPFaUau+usgRRPrOYmBp4R9SJM75SnIQQqStMQ== + dependencies: + "@types/node" "^22.19.1" + "@types/pluralize" "^0.0.33" + "@types/semver" "^7.7.1" + chalk "^4.1.2" + debug "^4.4.3" + graphile-config "^1.0.0-rc.4" + graphql "^16.9.0" + lodash "^4.17.23" pluralize "^7.0.0" - semver "^6.0.0" - -graphile-utils@^4.11.2: - version "4.11.2" - resolved "https://registry.yarnpkg.com/graphile-utils/-/graphile-utils-4.11.2.tgz#264ede219a9c735cab3861fcd6b31da66495de1b" - integrity sha512-XEDtU+R3dWPMeQ+R8BpbkFbf/U8xyVXJEF91jcdGXY0REPMr4sPypbtKJVGF73VqA1pPCEkfthbVd/6DiueUwQ== - dependencies: - debug "^4.1.1" - graphql ">=0.9 <0.14 || ^14.0.2 || ^15.4.0" - tslib "^2.0.1" - -graphql-iso-date@^3.6.0: - version "3.6.1" - resolved "https://registry.yarnpkg.com/graphql-iso-date/-/graphql-iso-date-3.6.1.tgz#bd2d0dc886e0f954cbbbc496bbf1d480b57ffa96" - integrity sha512-AwFGIuYMJQXOEAgRlJlFL4H1ncFM8n8XmoVDTNypNOZyQ8LFDG2ppMFlsS862BSTCDcSUfHp8PD3/uJhv7t59Q== - -graphql-parse-resolve-info@4.11.0: - version "4.11.0" - resolved "https://registry.yarnpkg.com/graphql-parse-resolve-info/-/graphql-parse-resolve-info-4.11.0.tgz#e2c67080ab01876faec8a1067c6df3db6526e67b" - integrity sha512-vIylHwlhtUz7y4UkXlwGRNIf1O2GhONRsZPYcz8SP+zI5Klp0aiulM4sQ7aEVJNbrqvzGj6cxthJLm+sys0dog== + semver "^7.7.3" + tamedevil "^0.1.0-rc.4" + transliteration "^2.3.5" + tslib "^2.8.1" + +graphile-config@^1.0.0-rc.4, graphile-config@^1.0.0-rc.5: + version "1.0.0-rc.5" + resolved "https://registry.yarnpkg.com/graphile-config/-/graphile-config-1.0.0-rc.5.tgz#31c0046ca01ab9ca780b8028fab4fe5373a2f8f9" + integrity sha512-NKUREBAEVxe4/YNClbW9F95cosykbVxO3k5suDlfA8VKQzzembhiz3sJvE03PoII1Qetf4RpprZCIZNMd5h/QA== + dependencies: + "@types/interpret" "^1.1.4" + "@types/node" "^22.19.1" + "@types/semver" "^7.7.1" + chalk "^4.1.2" + debug "^4.4.3" + interpret "^3.1.1" + semver "^7.7.3" + tslib "^2.8.1" + yargs "^17.7.2" + +graphile-utils@^5.0.0-rc.6: + version "5.0.0-rc.6" + resolved "https://registry.yarnpkg.com/graphile-utils/-/graphile-utils-5.0.0-rc.6.tgz#586b0d18abd7b7e078189988d68683239775c1ca" + integrity sha512-CTvHAvQd4nwAvEldaRIiGFClOjb8I1IIv8x55tcSDLdjuPsVlldWA6nOfdTypdZE7vcc2YrMt6xAU9mwjeOo6g== + dependencies: + debug "^4.4.3" + json5 "^2.2.3" + tslib "^2.8.1" + +graphiql@^5.2.1: + version "5.2.2" + resolved "https://registry.yarnpkg.com/graphiql/-/graphiql-5.2.2.tgz#d30447ca7297c5f6876e01256261684c330eb26f" + integrity sha512-qYhw7e2QPLPEIdJXqlLa/XkZtEu2SVYyD71abOpPnrzmJzTdB+QsEswFIMg9u1WGkEtp/wi8epCsuKeA/chRcg== + dependencies: + "@graphiql/plugin-doc-explorer" "^0.4.1" + "@graphiql/plugin-history" "^0.4.1" + "@graphiql/react" "^0.37.3" + react-compiler-runtime "19.1.0-rc.1" + +graphql-language-service@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/graphql-language-service/-/graphql-language-service-5.5.0.tgz#2e68b23bd5384f2fbf1e9391e907106e8246d025" + integrity sha512-9EvWrLLkF6Y5e29/2cmFoAO6hBPPAZlCyjznmpR11iFtRydfkss+9m6x+htA8h7YznGam+TtJwS6JuwoWWgb2Q== dependencies: - debug "^4.1.1" - tslib "^2.0.1" - -graphql-ws@^4.1.1: - version "4.4.2" - resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-4.4.2.tgz#f2d83f1863ba3069117199311d664fd28f4aaa8e" - integrity sha512-Cz+t1w+8+tiHIKzcz45tMwrxJpPSQ7KNjQrfN8ADAELECkkBB7aSvAgpShWz0Tne8teH/UxzJsULObLVq5eMvQ== + debounce-promise "^3.1.2" + nullthrows "^1.0.0" + vscode-languageserver-types "^3.17.1" -"graphql@>=0.9 <0.14 || ^14.0.2 || ^15.4.0", "graphql@^0.6.0 || ^0.7.0 || ^0.8.0-b || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.2 || ^15.0.0", graphql@^15: - version "15.8.0" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.8.0.tgz#33410e96b012fa3bdb1091cc99a94769db212b38" - integrity sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw== - -growly@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" - integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= +graphql-ws@^6.0.5: + version "6.0.7" + resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-6.0.7.tgz#140307a513f0ba659ecec618d6cf15354a842f96" + integrity sha512-yoLRW+KRlDmnnROdAu7sX77VNLC0bsFoZyGQJLy1cF+X/SkLg/fWkRGrEEYQK8o2cafJ2wmEaMqMEZB3U3DYDg== -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= +graphql@^16.9.0: + version "16.12.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.12.0.tgz#28cc2462435b1ac3fdc6976d030cef83a0c13ac7" + integrity sha512-DKKrynuQRne0PNpEbzuEdHlYOMksHSUI8Zc9Unei5gTsMNA2/vMpoMz/yKba50pejK56qj98qM0SjYxAKi13gQ== -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== +handlebars@^4.7.8: + version "4.7.8" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" + integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" + minimist "^1.2.5" + neo-async "^2.6.2" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-property-descriptors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" - integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== - dependencies: - es-define-property "^1.0.0" - -has-proto@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" - integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== - -has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - has-value@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== dependencies: get-value "^2.0.3" has-values "^0.1.4" @@ -2215,7 +2507,7 @@ has-value@^0.3.1: has-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== dependencies: get-value "^2.0.6" has-values "^1.0.0" @@ -2224,23 +2516,16 @@ has-value@^1.0.0: has-values@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== has-values@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== dependencies: is-number "^3.0.0" kind-of "^4.0.0" -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - hasown@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" @@ -2248,80 +2533,39 @@ hasown@^2.0.0: dependencies: function-bind "^1.1.2" -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - -html-encoding-sniffer@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" - integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== - dependencies: - whatwg-encoding "^1.0.5" - html-escaper@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - -http-errors@^1.5.1: - version "1.8.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.0.tgz#75d1bbe497e1044f51e4ee9e704a62f28d336507" - integrity sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= +http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" -human-signals@^1.1.1: - version "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: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== ignore-by-default@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" - integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= + integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA== import-lazy@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" - integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= + integrity sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A== -import-local@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" - integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== +import-local@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.2.0.tgz#c3d5c745798c02a6f8b897726aba5100186ee260" + integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA== dependencies: pkg-dir "^4.2.0" resolve-cwd "^3.0.0" @@ -2329,17 +2573,17 @@ import-local@^3.0.2: imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@~2.0.3: +inherits@2, inherits@^2.0.3, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -2349,29 +2593,27 @@ ini@^1.3.4, ini@~1.3.0: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" +interpret@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" + integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== +is-accessor-descriptor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz#3223b10628354644b86260db29b3e693f5ceedd4" + integrity sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA== dependencies: - kind-of "^6.0.0" + hasown "^2.0.0" is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-binary-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + integrity sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q== dependencies: binary-extensions "^1.0.0" @@ -2387,61 +2629,33 @@ is-ci@^1.0.10: dependencies: ci-info "^1.5.0" -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" - -is-core-module@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.3.0.tgz#d341652e3408bca69c4671b79a0954a3d349f887" - integrity sha512-xSphU2KG9867tsYdLD4RWQ1VqdFl4HTO9Thf3I/3dLEfr0dbPTWKsuCKrgqMljg4nPE+Gq0VCnzT3gr0CyBmsw== - dependencies: - has "^1.0.3" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== +is-data-descriptor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz#2109164426166d32ea38c405c1e0945d9e6a4eeb" + integrity sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw== dependencies: - kind-of "^6.0.0" + hasown "^2.0.0" is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + version "0.1.7" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.7.tgz#2727eb61fd789dcd5bdf0ed4569f551d2fe3be33" + integrity sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg== dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" + is-accessor-descriptor "^1.0.1" + is-data-descriptor "^1.0.1" is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.3.tgz#92d27cb3cd311c4977a4db47df457234a13cb306" + integrity sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw== dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-docker@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + is-accessor-descriptor "^1.0.1" + is-data-descriptor "^1.0.1" 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" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== is-extendable@^1.0.1: version "1.0.1" @@ -2453,19 +2667,19 @@ is-extendable@^1.0.1: is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-generator-fn@^2.0.0: +is-generator-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== @@ -2473,21 +2687,21 @@ is-generator-fn@^2.0.0: is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + integrity sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw== dependencies: is-extglob "^2.1.0" is-glob@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" is-installed-globally@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" - integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA= + integrity sha512-ERNhMg+i/XgDwPIPF3u24qpajVreaiSuvpb1Uu0jugw7KKcxGyCX8cgp8P5fwTmAuXku6beDHHECdKArjlg7tw== dependencies: global-dirs "^0.1.0" is-path-inside "^1.0.0" @@ -2495,12 +2709,12 @@ is-installed-globally@^0.1.0: is-npm@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" - integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ= + integrity sha512-9r39FIr3d+KD9SbX0sfMsHzb5PP3uimOiwr3YupUaUFG4W0l1U57Rx3utpttV7qz5U3jmrO5auUa04LU9pyHsg== is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== dependencies: kind-of "^3.0.2" @@ -2512,12 +2726,12 @@ is-number@^7.0.0: is-obj@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== is-path-inside@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" - integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= + integrity sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g== dependencies: path-is-inside "^1.0.1" @@ -2528,15 +2742,15 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -is-potential-custom-element-name@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" - integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== +is-primitive@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-3.0.1.tgz#98c4db1abff185485a657fc2905052b940524d05" + integrity sha512-GljRxhWvlCNRfZyORiH77FwdFwGcMO620o37EOYC0ORWdq+WYNVqW0w2Juzew4M+L81l6/QS3t5gkkihyRqv9w== is-redirect@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" - integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= + integrity sha512-cr/SlUEe5zOGmzvj9bUyC4LVvkNVAXu4GytXLNMr1pny+a65MpQ9IJzFHD5vi7FyJgb4qt27+eS3TuQnqB+RQw== is-retry-allowed@^1.0.0: version "1.2.0" @@ -2546,480 +2760,456 @@ is-retry-allowed@^1.0.0: is-stream@^1.0.0, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== is-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" - integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== - -is-typedarray@^1.0.0, is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== -is-wsl@^2.2.0: - 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, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== isobject@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== dependencies: isarray "1.0.0" isobject@^3.0.0, isobject@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== -istanbul-lib-coverage@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" - integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" + integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== -istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" - integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== +istanbul-lib-instrument@^6.0.0, istanbul-lib-instrument@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz#fa15401df6c15874bcb2105f773325d78c666765" + integrity sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q== dependencies: - "@babel/core" "^7.7.5" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.0.0" - semver "^6.3.0" + "@babel/core" "^7.23.9" + "@babel/parser" "^7.23.9" + "@istanbuljs/schema" "^0.1.3" + istanbul-lib-coverage "^3.2.0" + semver "^7.5.4" istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + version "3.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" + integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== dependencies: istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" + make-dir "^4.0.0" supports-color "^7.1.0" -istanbul-lib-source-maps@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9" - integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== +istanbul-lib-source-maps@^5.0.0: + version "5.0.6" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz#acaef948df7747c8eb5fbf1265cb980f6353a441" + integrity sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A== dependencies: + "@jridgewell/trace-mapping" "^0.3.23" debug "^4.1.1" istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" -istanbul-reports@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" - integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== +istanbul-reports@^3.1.3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.2.0.tgz#cb4535162b5784aa623cee21a7252cf2c807ac93" + integrity sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA== dependencies: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -iterall@^1.0.2, iterall@^1.2.1, iterall@^1.2.2: +iterall@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea" integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== -jest-changed-files@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0" - integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ== - dependencies: - "@jest/types" "^26.6.2" - execa "^4.0.0" - throat "^5.0.0" - -jest-cli@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a" - integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg== - dependencies: - "@jest/core" "^26.6.3" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.4" - import-local "^3.0.2" - is-ci "^2.0.0" - jest-config "^26.6.3" - jest-util "^26.6.2" - jest-validate "^26.6.2" - prompts "^2.0.1" - yargs "^15.4.1" - -jest-config@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349" - integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg== - dependencies: - "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^26.6.3" - "@jest/types" "^26.6.2" - babel-jest "^26.6.3" - chalk "^4.0.0" - deepmerge "^4.2.2" - glob "^7.1.1" - graceful-fs "^4.2.4" - jest-environment-jsdom "^26.6.2" - jest-environment-node "^26.6.2" - jest-get-type "^26.3.0" - jest-jasmine2 "^26.6.3" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" - micromatch "^4.0.2" - pretty-format "^26.6.2" - -jest-diff@^26.0.0, jest-diff@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" - integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== - dependencies: - chalk "^4.0.0" - diff-sequences "^26.6.2" - jest-get-type "^26.3.0" - pretty-format "^26.6.2" - -jest-docblock@^26.0.0: - version "26.0.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" - integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== - dependencies: - detect-newline "^3.0.0" - -jest-each@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb" - integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A== - dependencies: - "@jest/types" "^26.6.2" - chalk "^4.0.0" - jest-get-type "^26.3.0" - jest-util "^26.6.2" - pretty-format "^26.6.2" - -jest-environment-jsdom@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e" - integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q== - dependencies: - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - jest-mock "^26.6.2" - jest-util "^26.6.2" - jsdom "^16.4.0" - -jest-environment-node@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c" - integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag== - dependencies: - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - jest-mock "^26.6.2" - jest-util "^26.6.2" - -jest-get-type@^26.3.0: - version "26.3.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" - integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== - -jest-haste-map@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" - integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== dependencies: - "@jest/types" "^26.6.2" - "@types/graceful-fs" "^4.1.2" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.4" - jest-regex-util "^26.0.0" - jest-serializer "^26.6.2" - jest-util "^26.6.2" - jest-worker "^26.6.2" - micromatch "^4.0.2" - sane "^4.0.3" - walker "^1.0.7" + "@isaacs/cliui" "^8.0.2" optionalDependencies: - fsevents "^2.1.2" - -jest-jasmine2@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd" - integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== - dependencies: - "@babel/traverse" "^7.1.0" - "@jest/environment" "^26.6.2" - "@jest/source-map" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" + "@pkgjs/parseargs" "^0.11.0" + +jest-changed-files@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-30.2.0.tgz#602266e478ed554e1e1469944faa7efd37cee61c" + integrity sha512-L8lR1ChrRnSdfeOvTrwZMlnWV8G/LLjQ0nG9MBclwWZidA2N5FviRki0Bvh20WRMOX31/JYvzdqTJrk5oBdydQ== + dependencies: + execa "^5.1.1" + jest-util "30.2.0" + p-limit "^3.1.0" + +jest-circus@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-30.2.0.tgz#98b8198b958748a2f322354311023d1d02e7603f" + integrity sha512-Fh0096NC3ZkFx05EP2OXCxJAREVxj1BcW/i6EWqqymcgYKWjyyDpral3fMxVcHXg6oZM7iULer9wGRFvfpl+Tg== + dependencies: + "@jest/environment" "30.2.0" + "@jest/expect" "30.2.0" + "@jest/test-result" "30.2.0" + "@jest/types" "30.2.0" "@types/node" "*" - chalk "^4.0.0" + chalk "^4.1.2" co "^4.6.0" - expect "^26.6.2" - is-generator-fn "^2.0.0" - jest-each "^26.6.2" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-runtime "^26.6.3" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - pretty-format "^26.6.2" - throat "^5.0.0" - -jest-leak-detector@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af" - integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg== - dependencies: - jest-get-type "^26.3.0" - pretty-format "^26.6.2" - -jest-matcher-utils@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a" - integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw== - dependencies: - chalk "^4.0.0" - jest-diff "^26.6.2" - jest-get-type "^26.3.0" - pretty-format "^26.6.2" - -jest-message-util@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07" - integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== - dependencies: - "@babel/code-frame" "^7.0.0" - "@jest/types" "^26.6.2" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.4" - micromatch "^4.0.2" - pretty-format "^26.6.2" + dedent "^1.6.0" + is-generator-fn "^2.1.0" + jest-each "30.2.0" + jest-matcher-utils "30.2.0" + jest-message-util "30.2.0" + jest-runtime "30.2.0" + jest-snapshot "30.2.0" + jest-util "30.2.0" + p-limit "^3.1.0" + pretty-format "30.2.0" + pure-rand "^7.0.0" + slash "^3.0.0" + stack-utils "^2.0.6" + +jest-cli@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-30.2.0.tgz#1780f8e9d66bf84a10b369aea60aeda7697dcc67" + integrity sha512-Os9ukIvADX/A9sLt6Zse3+nmHtHaE6hqOsjQtNiugFTbKRHYIYtZXNGNK9NChseXy7djFPjndX1tL0sCTlfpAA== + dependencies: + "@jest/core" "30.2.0" + "@jest/test-result" "30.2.0" + "@jest/types" "30.2.0" + chalk "^4.1.2" + exit-x "^0.2.2" + import-local "^3.2.0" + jest-config "30.2.0" + jest-util "30.2.0" + jest-validate "30.2.0" + yargs "^17.7.2" + +jest-config@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-30.2.0.tgz#29df8c50e2ad801cc59c406b50176c18c362a90b" + integrity sha512-g4WkyzFQVWHtu6uqGmQR4CQxz/CH3yDSlhzXMWzNjDx843gYjReZnMRanjRCq5XZFuQrGDxgUaiYWE8BRfVckA== + dependencies: + "@babel/core" "^7.27.4" + "@jest/get-type" "30.1.0" + "@jest/pattern" "30.0.1" + "@jest/test-sequencer" "30.2.0" + "@jest/types" "30.2.0" + babel-jest "30.2.0" + chalk "^4.1.2" + ci-info "^4.2.0" + deepmerge "^4.3.1" + glob "^10.3.10" + graceful-fs "^4.2.11" + jest-circus "30.2.0" + jest-docblock "30.2.0" + jest-environment-node "30.2.0" + jest-regex-util "30.0.1" + jest-resolve "30.2.0" + jest-runner "30.2.0" + jest-util "30.2.0" + jest-validate "30.2.0" + micromatch "^4.0.8" + parse-json "^5.2.0" + pretty-format "30.2.0" slash "^3.0.0" - stack-utils "^2.0.2" + strip-json-comments "^3.1.1" + +jest-diff@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-30.2.0.tgz#e3ec3a6ea5c5747f605c9e874f83d756cba36825" + integrity sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A== + dependencies: + "@jest/diff-sequences" "30.0.1" + "@jest/get-type" "30.1.0" + chalk "^4.1.2" + pretty-format "30.2.0" + +jest-docblock@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-30.2.0.tgz#42cd98d69f887e531c7352309542b1ce4ee10256" + integrity sha512-tR/FFgZKS1CXluOQzZvNH3+0z9jXr3ldGSD8bhyuxvlVUwbeLOGynkunvlTMxchC5urrKndYiwCFC0DLVjpOCA== + dependencies: + detect-newline "^3.1.0" + +jest-each@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-30.2.0.tgz#39e623ae71641c2ac3ee69b3ba3d258fce8e768d" + integrity sha512-lpWlJlM7bCUf1mfmuqTA8+j2lNURW9eNafOy99knBM01i5CQeY5UH1vZjgT9071nDJac1M4XsbyI44oNOdhlDQ== + dependencies: + "@jest/get-type" "30.1.0" + "@jest/types" "30.2.0" + chalk "^4.1.2" + jest-util "30.2.0" + pretty-format "30.2.0" + +jest-environment-node@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-30.2.0.tgz#3def7980ebd2fd86e74efd4d2e681f55ab38da0f" + integrity sha512-ElU8v92QJ9UrYsKrxDIKCxu6PfNj4Hdcktcn0JX12zqNdqWHB0N+hwOnnBBXvjLd2vApZtuLUGs1QSY+MsXoNA== + dependencies: + "@jest/environment" "30.2.0" + "@jest/fake-timers" "30.2.0" + "@jest/types" "30.2.0" + "@types/node" "*" + jest-mock "30.2.0" + jest-util "30.2.0" + jest-validate "30.2.0" -jest-mock@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302" - integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew== +jest-haste-map@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-30.2.0.tgz#808e3889f288603ac70ff0ac047598345a66022e" + integrity sha512-sQA/jCb9kNt+neM0anSj6eZhLZUIhQgwDt7cPGjumgLM4rXsfb9kpnlacmvZz3Q5tb80nS+oG/if+NBKrHC+Xw== dependencies: - "@jest/types" "^26.6.2" + "@jest/types" "30.2.0" "@types/node" "*" - -jest-pnp-resolver@^1.2.2: - 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@^26.0.0: - version "26.0.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" - integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== - -jest-resolve-dependencies@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6" - integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg== - dependencies: - "@jest/types" "^26.6.2" - jest-regex-util "^26.0.0" - jest-snapshot "^26.6.2" - -jest-resolve@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507" - integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ== - dependencies: - "@jest/types" "^26.6.2" - chalk "^4.0.0" - graceful-fs "^4.2.4" - jest-pnp-resolver "^1.2.2" - jest-util "^26.6.2" - read-pkg-up "^7.0.1" - resolve "^1.18.1" + anymatch "^3.1.3" + fb-watchman "^2.0.2" + graceful-fs "^4.2.11" + jest-regex-util "30.0.1" + jest-util "30.2.0" + jest-worker "30.2.0" + micromatch "^4.0.8" + walker "^1.0.8" + optionalDependencies: + fsevents "^2.3.3" + +jest-leak-detector@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-30.2.0.tgz#292fdca7b7c9cf594e1e570ace140b01d8beb736" + integrity sha512-M6jKAjyzjHG0SrQgwhgZGy9hFazcudwCNovY/9HPIicmNSBuockPSedAP9vlPK6ONFJ1zfyH/M2/YYJxOz5cdQ== + dependencies: + "@jest/get-type" "30.1.0" + pretty-format "30.2.0" + +jest-matcher-utils@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-30.2.0.tgz#69a0d4c271066559ec8b0d8174829adc3f23a783" + integrity sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg== + dependencies: + "@jest/get-type" "30.1.0" + chalk "^4.1.2" + jest-diff "30.2.0" + pretty-format "30.2.0" + +jest-message-util@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-30.2.0.tgz#fc97bf90d11f118b31e6131e2b67fc4f39f92152" + integrity sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw== + dependencies: + "@babel/code-frame" "^7.27.1" + "@jest/types" "30.2.0" + "@types/stack-utils" "^2.0.3" + chalk "^4.1.2" + graceful-fs "^4.2.11" + micromatch "^4.0.8" + pretty-format "30.2.0" slash "^3.0.0" + stack-utils "^2.0.6" -jest-runner@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159" - integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ== +jest-mock@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-30.2.0.tgz#69f991614eeb4060189459d3584f710845bff45e" + integrity sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw== dependencies: - "@jest/console" "^26.6.2" - "@jest/environment" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/types" "30.2.0" + "@types/node" "*" + jest-util "30.2.0" + +jest-pnp-resolver@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" + integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== + +jest-regex-util@30.0.1: + version "30.0.1" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-30.0.1.tgz#f17c1de3958b67dfe485354f5a10093298f2a49b" + integrity sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA== + +jest-resolve-dependencies@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-30.2.0.tgz#3370e2c0b49cc560f6a7e8ec3a59dd99525e1a55" + integrity sha512-xTOIGug/0RmIe3mmCqCT95yO0vj6JURrn1TKWlNbhiAefJRWINNPgwVkrVgt/YaerPzY3iItufd80v3lOrFJ2w== + dependencies: + jest-regex-util "30.0.1" + jest-snapshot "30.2.0" + +jest-resolve@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-30.2.0.tgz#2e2009cbd61e8f1f003355d5ec87225412cebcd7" + integrity sha512-TCrHSxPlx3tBY3hWNtRQKbtgLhsXa1WmbJEqBlTBrGafd5fiQFByy2GNCEoGR+Tns8d15GaL9cxEzKOO3GEb2A== + dependencies: + chalk "^4.1.2" + graceful-fs "^4.2.11" + jest-haste-map "30.2.0" + jest-pnp-resolver "^1.2.3" + jest-util "30.2.0" + jest-validate "30.2.0" + slash "^3.0.0" + unrs-resolver "^1.7.11" + +jest-runner@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-30.2.0.tgz#c62b4c3130afa661789705e13a07bdbcec26a114" + integrity sha512-PqvZ2B2XEyPEbclp+gV6KO/F1FIFSbIwewRgmROCMBo/aZ6J1w8Qypoj2pEOcg3G2HzLlaP6VUtvwCI8dM3oqQ== + dependencies: + "@jest/console" "30.2.0" + "@jest/environment" "30.2.0" + "@jest/test-result" "30.2.0" + "@jest/transform" "30.2.0" + "@jest/types" "30.2.0" "@types/node" "*" - chalk "^4.0.0" - emittery "^0.7.1" - exit "^0.1.2" - graceful-fs "^4.2.4" - jest-config "^26.6.3" - jest-docblock "^26.0.0" - jest-haste-map "^26.6.2" - jest-leak-detector "^26.6.2" - jest-message-util "^26.6.2" - jest-resolve "^26.6.2" - jest-runtime "^26.6.3" - jest-util "^26.6.2" - jest-worker "^26.6.2" - source-map-support "^0.5.6" - throat "^5.0.0" - -jest-runtime@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b" - integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw== - dependencies: - "@jest/console" "^26.6.2" - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/globals" "^26.6.2" - "@jest/source-map" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/yargs" "^15.0.0" - chalk "^4.0.0" - cjs-module-lexer "^0.6.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.4" - jest-config "^26.6.3" - jest-haste-map "^26.6.2" - jest-message-util "^26.6.2" - jest-mock "^26.6.2" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" + chalk "^4.1.2" + emittery "^0.13.1" + exit-x "^0.2.2" + graceful-fs "^4.2.11" + jest-docblock "30.2.0" + jest-environment-node "30.2.0" + jest-haste-map "30.2.0" + jest-leak-detector "30.2.0" + jest-message-util "30.2.0" + jest-resolve "30.2.0" + jest-runtime "30.2.0" + jest-util "30.2.0" + jest-watcher "30.2.0" + jest-worker "30.2.0" + p-limit "^3.1.0" + source-map-support "0.5.13" + +jest-runtime@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-30.2.0.tgz#395ea792cde048db1b0cd1a92dc9cb9f1921bf8a" + integrity sha512-p1+GVX/PJqTucvsmERPMgCPvQJpFt4hFbM+VN3n8TMo47decMUcJbt+rgzwrEme0MQUA/R+1de2axftTHkKckg== + dependencies: + "@jest/environment" "30.2.0" + "@jest/fake-timers" "30.2.0" + "@jest/globals" "30.2.0" + "@jest/source-map" "30.0.1" + "@jest/test-result" "30.2.0" + "@jest/transform" "30.2.0" + "@jest/types" "30.2.0" + "@types/node" "*" + chalk "^4.1.2" + cjs-module-lexer "^2.1.0" + collect-v8-coverage "^1.0.2" + glob "^10.3.10" + graceful-fs "^4.2.11" + jest-haste-map "30.2.0" + jest-message-util "30.2.0" + jest-mock "30.2.0" + jest-regex-util "30.0.1" + jest-resolve "30.2.0" + jest-snapshot "30.2.0" + jest-util "30.2.0" slash "^3.0.0" strip-bom "^4.0.0" - yargs "^15.4.1" jest-serializer-graphql-schema@^5.0.0-1.1: - version "5.0.0-1.1" - resolved "https://registry.yarnpkg.com/jest-serializer-graphql-schema/-/jest-serializer-graphql-schema-5.0.0-1.1.tgz#f702dfe77fea1d72d20b11f52fddd3d98bcc2a16" - integrity sha512-4a+6C78u3NUgtYM3XhvlZ/JABNuTSEbyowUeOUsHpJrR03Jtg8TwjDo/8gvknPv4KyELzz5/OTHQ0e1LXBN8RQ== - -jest-serializer@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" - integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== - dependencies: - "@types/node" "*" - graceful-fs "^4.2.4" - -jest-snapshot@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84" - integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og== - dependencies: - "@babel/types" "^7.0.0" - "@jest/types" "^26.6.2" - "@types/babel__traverse" "^7.0.4" - "@types/prettier" "^2.0.0" - chalk "^4.0.0" - expect "^26.6.2" - graceful-fs "^4.2.4" - jest-diff "^26.6.2" - jest-get-type "^26.3.0" - jest-haste-map "^26.6.2" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-resolve "^26.6.2" - natural-compare "^1.4.0" - pretty-format "^26.6.2" - semver "^7.3.2" - -jest-util@^26.1.0, jest-util@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" - integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== - dependencies: - "@jest/types" "^26.6.2" + version "5.0.0-rc.4" + resolved "https://registry.yarnpkg.com/jest-serializer-graphql-schema/-/jest-serializer-graphql-schema-5.0.0-rc.4.tgz#44baff16dcf32f39acc2c0b31597857c6d450daf" + integrity sha512-L6Q09Dsltn6kd8zxSMZNvpePdNHedq/J5UJLr38xipGir8RP2xDW/RgYMxXZNSwk3u+ULwFbbVYT4mydZe85cw== + +jest-snapshot@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-30.2.0.tgz#266fbbb4b95fc4665ce6f32f1f38eeb39f4e26d0" + integrity sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA== + dependencies: + "@babel/core" "^7.27.4" + "@babel/generator" "^7.27.5" + "@babel/plugin-syntax-jsx" "^7.27.1" + "@babel/plugin-syntax-typescript" "^7.27.1" + "@babel/types" "^7.27.3" + "@jest/expect-utils" "30.2.0" + "@jest/get-type" "30.1.0" + "@jest/snapshot-utils" "30.2.0" + "@jest/transform" "30.2.0" + "@jest/types" "30.2.0" + babel-preset-current-node-syntax "^1.2.0" + chalk "^4.1.2" + expect "30.2.0" + graceful-fs "^4.2.11" + jest-diff "30.2.0" + jest-matcher-utils "30.2.0" + jest-message-util "30.2.0" + jest-util "30.2.0" + pretty-format "30.2.0" + semver "^7.7.2" + synckit "^0.11.8" + +jest-util@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-30.2.0.tgz#5142adbcad6f4e53c2776c067a4db3c14f913705" + integrity sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA== + dependencies: + "@jest/types" "30.2.0" "@types/node" "*" - chalk "^4.0.0" - graceful-fs "^4.2.4" - is-ci "^2.0.0" - micromatch "^4.0.2" - -jest-validate@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" - integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== - dependencies: - "@jest/types" "^26.6.2" - camelcase "^6.0.0" - chalk "^4.0.0" - jest-get-type "^26.3.0" + chalk "^4.1.2" + ci-info "^4.2.0" + graceful-fs "^4.2.11" + picomatch "^4.0.2" + +jest-validate@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-30.2.0.tgz#273eaaed4c0963b934b5b31e96289edda6e0a2ef" + integrity sha512-FBGWi7dP2hpdi8nBoWxSsLvBFewKAg0+uSQwBaof4Y4DPgBabXgpSYC5/lR7VmnIlSpASmCi/ntRWPbv7089Pw== + dependencies: + "@jest/get-type" "30.1.0" + "@jest/types" "30.2.0" + camelcase "^6.3.0" + chalk "^4.1.2" leven "^3.1.0" - pretty-format "^26.6.2" + pretty-format "30.2.0" -jest-watcher@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975" - integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ== +jest-watcher@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-30.2.0.tgz#f9c055de48e18c979e7756a3917e596e2d69b07b" + integrity sha512-PYxa28dxJ9g777pGm/7PrbnMeA0Jr7osHP9bS7eJy9DuAjMgdGtxgf0uKMyoIsTWAkIbUW5hSDdJ3urmgXBqxg== dependencies: - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" + "@jest/test-result" "30.2.0" + "@jest/types" "30.2.0" "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - jest-util "^26.6.2" - string-length "^4.0.1" + ansi-escapes "^4.3.2" + chalk "^4.1.2" + emittery "^0.13.1" + jest-util "30.2.0" + string-length "^4.0.2" -jest-worker@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" - integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== +jest-worker@30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-30.2.0.tgz#fd5c2a36ff6058ec8f74366ec89538cc99539d26" + integrity sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g== dependencies: "@types/node" "*" + "@ungap/structured-clone" "^1.3.0" + jest-util "30.2.0" merge-stream "^2.0.0" - supports-color "^7.0.0" + supports-color "^8.1.1" -jest@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.3.tgz#40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef" - integrity sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q== +jest@^30.2.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-30.2.0.tgz#9f0a71e734af968f26952b5ae4b724af82681630" + integrity sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A== dependencies: - "@jest/core" "^26.6.3" - import-local "^3.0.2" - jest-cli "^26.6.3" + "@jest/core" "30.2.0" + "@jest/types" "30.2.0" + import-local "^3.2.0" + jest-cli "30.2.0" js-tokens@^4.0.0: version "4.0.0" @@ -3027,86 +3217,39 @@ js-tokens@^4.0.0: integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + version "3.14.2" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.2.tgz#77485ce1dd7f33c061fd1b16ecea23b55fcb04b0" + integrity sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg== 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" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -jsdom@^16.4.0: - version "16.5.3" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.5.3.tgz#13a755b3950eb938b4482c407238ddf16f0d2136" - integrity sha512-Qj1H+PEvUsOtdPJ056ewXM4UJPCi4hhLA8wpiz9F2YvsRBhuFsXxtrIFAgGBDynQA9isAMGE91PfUYbdMPXuTA== - dependencies: - abab "^2.0.5" - acorn "^8.1.0" - acorn-globals "^6.0.0" - cssom "^0.4.4" - cssstyle "^2.3.0" - data-urls "^2.0.0" - decimal.js "^10.2.1" - domexception "^2.0.1" - escodegen "^2.0.0" - html-encoding-sniffer "^2.0.1" - is-potential-custom-element-name "^1.0.0" - nwsapi "^2.2.0" - parse5 "6.0.1" - request "^2.88.2" - request-promise-native "^1.0.9" - saxes "^5.0.1" - symbol-tree "^3.2.4" - tough-cookie "^4.0.0" - w3c-hr-time "^1.0.2" - w3c-xmlserializer "^2.0.0" - webidl-conversions "^6.1.0" - whatwg-encoding "^1.0.5" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.5.0" - ws "^7.4.4" - xml-name-validator "^3.0.0" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== +jsesc@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" + integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== json-parse-even-better-errors@^2.3.0: version "2.3.1" resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -json5@2.x, json5@^2.1.1, json5@^2.1.2: +json5@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== -jsonwebtoken@^8.0.0, jsonwebtoken@^8.5.1: - version "8.5.1" - resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d" - integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== +jsonc-parser@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.3.1.tgz#f2a524b4f7fd11e3d791e559977ad60b98b798b4" + integrity sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ== + +jsonwebtoken@^9.0.2: + version "9.0.3" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.3.tgz#6cd57ab01e9b0ac07cb847d53d3c9b6ee31f7ae2" + integrity sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g== dependencies: - jws "^3.2.2" + jws "^4.0.1" lodash.includes "^4.3.0" lodash.isboolean "^3.0.3" lodash.isinteger "^4.0.4" @@ -3115,68 +3258,48 @@ jsonwebtoken@^8.0.0, jsonwebtoken@^8.5.1: lodash.isstring "^4.0.1" lodash.once "^4.0.0" ms "^2.1.1" - semver "^5.6.0" - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" + semver "^7.5.4" -jwa@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" - integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== +jwa@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-2.0.1.tgz#bf8176d1ad0cd72e0f3f58338595a13e110bc804" + integrity sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg== dependencies: - buffer-equal-constant-time "1.0.1" + buffer-equal-constant-time "^1.0.1" ecdsa-sig-formatter "1.0.11" safe-buffer "^5.0.1" -jws@^3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" - integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== +jws@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/jws/-/jws-4.0.1.tgz#07edc1be8fac20e677b283ece261498bd38f0690" + integrity sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA== dependencies: - jwa "^1.4.1" + jwa "^2.0.1" safe-buffer "^5.0.1" kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== dependencies: is-buffer "^1.1.5" kind-of@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== dependencies: is-buffer "^1.1.5" -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: +kind-of@^6.0.2: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - latest-version@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" - integrity sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU= + integrity sha512-Be1YRHWWlZaSsrz2U+VInk+tO0EwLIyV+23RhWLINJYwg/UIikxjlj3MhH37/6/EDCAusjajvMkMMUXRaMWl/w== dependencies: package-json "^4.0.0" @@ -3185,18 +3308,17 @@ 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: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - lines-and-columns@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" - integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +linkify-it@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-5.0.0.tgz#9ef238bfa6dc70bd8e7f9572b52d369af569b421" + integrity sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ== + dependencies: + uc.micro "^2.0.0" locate-path@^5.0.0: version "5.0.0" @@ -3208,39 +3330,44 @@ locate-path@^5.0.0: lodash.includes@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" - integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8= + integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w== lodash.isboolean@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" - integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY= + integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg== lodash.isinteger@^4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" - integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M= + integrity sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA== lodash.isnumber@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" - integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w= + integrity sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw== lodash.isplainobject@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" - integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== lodash.isstring@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" - integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= + integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== lodash.once@^4.0.0: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" - integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= + integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== -lodash@4.x, "lodash@>=4 <5", lodash@^4.17.19, lodash@^4.17.21, lodash@^4.7.0: +lodash@^4.17.23: version "4.17.23" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.23.tgz#f113b0378386103be4f6893388c73d0bde7f2c5a" integrity sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w== @@ -3250,7 +3377,12 @@ lowercase-keys@^1.0.0: resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== -"lru-cache@>=4 <5", lru-cache@^4.0.1: +lru-cache@^10.2.0: + version "10.4.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== + +lru-cache@^4.0.1: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== @@ -3258,20 +3390,13 @@ lowercase-keys@^1.0.0: pseudomap "^1.0.2" yallist "^2.1.2" -lru-cache@^5.0.0: +lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: yallist "^3.0.2" -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - make-dir@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" @@ -3279,47 +3404,64 @@ make-dir@^1.0.0: dependencies: pify "^3.0.0" -make-dir@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== +make-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" + integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== dependencies: - semver "^6.0.0" + semver "^7.5.3" -make-error@1.x: +make-error@^1.3.6: version "1.3.6" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== -makeerror@1.0.x: - version "1.0.11" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" - integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== dependencies: - tmpl "1.0.x" + tmpl "1.0.5" map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== map-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== dependencies: object-visit "^1.0.0" -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= +markdown-it@^14.1.0: + version "14.1.1" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-14.1.1.tgz#856f90b66fc39ae70affd25c1b18b581d7deee1f" + integrity sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA== + dependencies: + argparse "^2.0.1" + entities "^4.4.0" + linkify-it "^5.0.0" + mdurl "^2.0.0" + punycode.js "^2.3.1" + uc.micro "^2.1.0" + +mdurl@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-2.0.0.tgz#80676ec0433025dd3e17ee983d0fe8de5a2237e0" + integrity sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w== merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== +meros@^1.1.4: + version "1.3.2" + resolved "https://registry.yarnpkg.com/meros/-/meros-1.3.2.tgz#4cb0d7f3d22074c6e7ae1d66f72c080bca2e414b" + integrity sha512-Q3mobPbvEx7XbwhnC1J1r60+5H6EZyNccdzSz0eGexJRwouUtTZxPVRGdqKtxlpD84ScK4+tIGldkqDtCKdI0A== + micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" @@ -3339,42 +3481,42 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -micromatch@^4.0.2: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== - dependencies: - braces "^3.0.1" - picomatch "^2.2.3" - -mime-db@1.47.0: - version "1.47.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c" - integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw== - -mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.30" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d" - integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg== +micromatch@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== dependencies: - mime-db "1.47.0" + braces "^3.0.3" + picomatch "^2.3.1" mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -minimatch@^3.0.4: +minimatch@^3.0.4, minimatch@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: - version "1.2.6" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== +minimatch@^9.0.4: + version "9.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.0, minimist@^1.2.5: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== mixin-deep@^1.2.0: version "1.3.2" @@ -3384,37 +3526,45 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@1.x: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== +monaco-editor@0.52.2: + version "0.52.2" + resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.52.2.tgz#53c75a6fcc6802684e99fd1b2700299857002205" + integrity sha512-GEQWEZmfkOGLdd3XK8ryrfWz3AIP8YymVXiPHEdewrUq7mh0qrKrfHLNCXcbB6sTnMLnOZ3ztSiKcciFUkIJwQ== -mkdirp@^0.5.1: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== +monaco-graphql@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/monaco-graphql/-/monaco-graphql-1.7.3.tgz#985adbcc8dcbc1bd60967f9126c98a557466da10" + integrity sha512-6LAIcg/vT2NGLjHnT+5iIZONsZCaCuz2orbg7qD/u4Ry9R7rDotLh0HAzIF/yKdzEA5fTZC+TofSx2O+Zi+0ow== dependencies: - minimist "^1.2.5" + graphql-language-service "^5.5.0" + picomatch-browser "^2.2.6" + +motion-dom@^12.34.0: + version "12.34.0" + resolved "https://registry.yarnpkg.com/motion-dom/-/motion-dom-12.34.0.tgz#d1776aaff750e09db66237c66daec31232a4cba8" + integrity sha512-Lql3NuEcScRDxTAO6GgUsRHBZOWI/3fnMlkMcH5NftzcN37zJta+bpbMAV9px4Nj057TuvRooMK7QrzMCgtz6Q== + dependencies: + motion-utils "^12.29.2" + +motion-utils@^12.29.2: + version "12.29.2" + resolved "https://registry.yarnpkg.com/motion-utils/-/motion-utils-12.29.2.tgz#8fdd28babe042c2456b078ab33b32daa3bf5938b" + integrity sha512-G3kc34H2cX2gI63RqU+cZq+zWRRPSsNIOjpdl9TN4AQwC4sgwYPl/Q/Obf/d53nOm569T0fYK+tcoSV50BWx8A== ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== -ms@^2.1.1: +ms@^2.1.1, ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== nan@^2.12.1: - version "2.14.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" - integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== + version "2.25.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.25.0.tgz#937ed345e63d9481362a7942d49c4860d27eeabd" + integrity sha512-0M90Ag7Xn5KMLLZ7zliPWP3rT90P6PN+IzVFS0VqmnPktBk3700xUVv8Ikm9EUaUE5SDWdp/BIxdENzVznpm1g== nanomatch@^1.2.9: version "1.2.13" @@ -3433,42 +3583,30 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" +napi-postinstall@^0.3.0: + version "0.3.4" + resolved "https://registry.yarnpkg.com/napi-postinstall/-/napi-postinstall-0.3.4.tgz#7af256d6588b5f8e952b9190965d6b019653bbb9" + integrity sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= - -node-modules-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" - integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= - -node-notifier@^8.0.0: - version "8.0.2" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.2.tgz#f3167a38ef0d2c8a866a83e318c1ba0efeb702c5" - integrity sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg== - dependencies: - growly "^1.3.0" - is-wsl "^2.2.0" - semver "^7.3.2" - shellwords "^0.1.1" - uuid "^8.3.0" - which "^2.0.2" + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== -node-releases@^1.1.71: - version "1.1.71" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb" - integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg== +node-releases@^2.0.27: + version "2.0.27" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.27.tgz#eedca519205cf20f650f61d56b070db111231e4e" + integrity sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA== nodemon@^1.19.1: version "1.19.4" @@ -3486,27 +3624,10 @@ nodemon@^1.19.1: undefsafe "^2.0.2" update-notifier "^2.5.0" -nopt@~1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" - integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= - dependencies: - abbrev "1" - -normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== dependencies: remove-trailing-separator "^1.0.1" @@ -3518,104 +3639,63 @@ normalize-path@^3.0.0: npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== dependencies: path-key "^2.0.0" -npm-run-path@^4.0.0: +npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: path-key "^3.0.0" -nwsapi@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" - integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== +nullthrows@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1" + integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw== object-copy@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== dependencies: copy-descriptor "^0.1.0" define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.13.1: - version "1.13.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" - integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== - object-visit@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== dependencies: isobject "^3.0.0" object.pick@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== dependencies: isobject "^3.0.1" -on-finished@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" - integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== - dependencies: - ee-first "1.1.1" - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - -once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" -onetime@^5.1.0: +onetime@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - -p-each-series@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" - integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== - p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== p-limit@^2.2.0: version "2.3.0" @@ -3624,6 +3704,13 @@ p-limit@^2.2.0: dependencies: p-try "^2.0.0" +p-limit@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + p-locate@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" @@ -3636,22 +3723,22 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +package-json-from-dist@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" + integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== + package-json@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" - integrity sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0= + integrity sha512-q/R5GrMek0vzgoomq6rm9OX+3PQve8sLwTirmK30YB3Cu0Bbt9OX9M/SIUnroN5BGJkzwGsFwDaRGD9EwBOlCA== dependencies: got "^6.7.1" registry-auth-token "^3.0.1" registry-url "^3.0.3" semver "^5.1.0" -packet-reader@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/packet-reader/-/packet-reader-1.0.0.tgz#9238e5480dedabacfe1fe3f2771063f164157d74" - integrity sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ== - -parse-json@^5.0.0: +parse-json@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== @@ -3661,25 +3748,15 @@ parse-json@^5.0.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parse5@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - -parseurl@^1.3.2, parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== path-dirname@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + integrity sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q== path-exists@^4.0.0: version "4.0.0" @@ -3689,64 +3766,72 @@ path-exists@^4.0.0: path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-is-inside@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== -path-key@^2.0.0, path-key@^2.0.1: +path-key@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= +pg-cloudflare@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.3.0.tgz#386035d4bfcf1a7045b026f8b21acf5353f14d65" + integrity sha512-6lswVVSztmHiRtD6I8hw4qP/nDm1EJbKMRhf3HCYaqud7frGysPv7FYJ5noZQdhQtN2xJnimfMtvQq21pdbzyQ== -pg-connection-string@^2.0.0, pg-connection-string@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.5.0.tgz#538cadd0f7e603fc09a12590f3b8a452c2c0cf34" - integrity sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ== +pg-connection-string@^2.11.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.11.0.tgz#5dca53ff595df33ba9db812e181b19909866d10b" + integrity sha512-kecgoJwhOpxYU21rZjULrmrBJ698U2RxXofKVzOn5UDj61BPj/qMb7diYUR1nLScCDbrztQFl1TaQZT0t1EtzQ== 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-pool@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.3.0.tgz#12d5c7f65ea18a6e99ca9811bd18129071e562fc" - integrity sha512-0O5huCql8/D6PIRFAlmccjphLYWC+JIzvUhSzXSpGaf+tjTZc4nn+Lr7mLXBbFJfvwbP0ywDv73EiaBsxn7zdg== +pg-introspection@^1.0.0-rc.4: + version "1.0.0-rc.4" + resolved "https://registry.yarnpkg.com/pg-introspection/-/pg-introspection-1.0.0-rc.4.tgz#45a1bbc1ff687feb9928717c551564c4baa6cbf2" + integrity sha512-Cz5HZz4IbJN2wj9ow13dzco/HZ7UUi9qq0PYyjE4+hHgI8yxNLfXk9TqcJA+zgv7KR43QzGlx7yYcC25jTcFDw== + dependencies: + tslib "^2.8.1" -pg-protocol@^1.2.0, pg-protocol@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.5.0.tgz#b5dd452257314565e2d54ab3c132adc46565a6a0" - integrity sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ== +pg-pool@^3.11.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.11.0.tgz#adf9a6651a30c839f565a3cc400110949c473d69" + integrity sha512-MJYfvHwtGp870aeusDh+hg9apvOe2zmpZJpyt+BMtzUWlVqbhFmMK6bOBXLBUPd7iRtIF9fZplDc7KrPN3PN7w== -pg-sql2@4.11.0: - version "4.11.0" - resolved "https://registry.yarnpkg.com/pg-sql2/-/pg-sql2-4.11.0.tgz#93c03df9e560ac142f8e15760deb8c5390fc2555" - integrity sha512-KUYJ3fNJaN10oSFT6B6MfqN29rZheW33sJ50Gq7wphWhiCUHCxPGxg262TF7ERLYTKkmNXIO0hU7D0ZYhmy7yw== +pg-protocol@*, pg-protocol@^1.11.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.11.0.tgz#2502908893edaa1e8c0feeba262dd7b40b317b53" + integrity sha512-pfsxk2M9M3BuGgDOfuy37VNRRX3jmKgMjcvAcWqNDpZSf4cUmv8HSOl5ViRQFsfARFn0KuUQTgLxVMbNq5NW3g== + +pg-sql2@^5.0.0-rc.4: + version "5.0.0-rc.4" + resolved "https://registry.yarnpkg.com/pg-sql2/-/pg-sql2-5.0.0-rc.4.tgz#afbcddd860a91ba0de54663af6fbd6406bbc643c" + integrity sha512-f8um4jNwumksk39zhkdps9jXeCkM3SY22gPjAcq45D/ZTIw2zWHMdsS6H5DE3XdeHy6pyGUzY0urmCgwuhiywg== dependencies: - "@graphile/lru" "4.11.0" - "@types/pg" ">=6 <8" - debug ">=3 <5" - tslib "^2.0.1" + "@graphile/lru" "^5.0.0-rc.4" + tslib "^2.8.1" -pg-types@^2.1.0, pg-types@^2.2.0: +pg-types@2.2.0, pg-types@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3" integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== @@ -3757,42 +3842,55 @@ pg-types@^2.1.0, pg-types@^2.2.0: postgres-date "~1.0.4" postgres-interval "^1.1.0" -"pg@>=6.1.0 <9": - version "8.6.0" - resolved "https://registry.yarnpkg.com/pg/-/pg-8.6.0.tgz#e222296b0b079b280cce106ea991703335487db2" - integrity sha512-qNS9u61lqljTDFvmk/N66EeGq3n6Ujzj0FFyNMGQr6XuEv4tgNTXvJQTfJdcvGit5p5/DWPu+wj920hAJFI+QQ== +pg@^8.14.1, pg@^8.16.3: + version "8.18.0" + resolved "https://registry.yarnpkg.com/pg/-/pg-8.18.0.tgz#e9ee214206f5d9231240f1b82f22d2fa9de5cb75" + integrity sha512-xqrUDL1b9MbkydY/s+VZ6v+xiMUmOUk7SS9d/1kpyQxoJ6U9AO1oIJyUWVZojbfe5Cc/oluutcgFG4L9RDP1iQ== dependencies: - buffer-writer "2.0.0" - packet-reader "1.0.0" - pg-connection-string "^2.5.0" - pg-pool "^3.3.0" - pg-protocol "^1.5.0" - pg-types "^2.1.0" - pgpass "1.x" + pg-connection-string "^2.11.0" + pg-pool "^3.11.0" + pg-protocol "^1.11.0" + pg-types "2.2.0" + pgpass "1.0.5" + optionalDependencies: + pg-cloudflare "^1.3.0" -pgpass@1.x: - version "1.0.4" - resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.4.tgz#85eb93a83800b20f8057a2b029bf05abaf94ea9c" - integrity sha512-YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w== +pgpass@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.5.tgz#9b873e4a564bb10fa7a7dbd55312728d422a223d" + integrity sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug== dependencies: - split2 "^3.1.1" + split2 "^4.1.0" + +picocolors@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== + +picomatch-browser@^2.2.6: + version "2.2.6" + resolved "https://registry.yarnpkg.com/picomatch-browser/-/picomatch-browser-2.2.6.tgz#e0626204575eb49f019f2f2feac24fc3b53e7a8a" + integrity sha512-0ypsOQt9D4e3hziV8O4elD9uN0z/jtUEfxVRtNaAAtXIyUx9m/SzlO020i8YNL2aL/E6blOvvHQcin6HZlFy/w== -picomatch@^2.0.4, picomatch@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d" - integrity sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg== +picomatch@^2.0.4, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +picomatch@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.3.tgz#796c76136d1eead715db1e7bad785dedd695a042" + integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q== pify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== -pirates@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" - integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== - dependencies: - node-modules-regexp "^1.0.0" +pirates@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.7.tgz#643b4a18c4257c8a65104b73f3049ce9a0a15e22" + integrity sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA== pkg-dir@^4.2.0: version "4.2.0" @@ -3809,57 +3907,48 @@ pluralize@^7.0.0: posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - -postgraphile-core@4.11.2, postgraphile-core@^4.9.0: - version "4.11.2" - resolved "https://registry.yarnpkg.com/postgraphile-core/-/postgraphile-core-4.11.2.tgz#1ebe41b4219a10f4ff0a87b8f1d125cd604a07df" - integrity sha512-vedIJ3pHxS9z/drO/Vo95fFUmki4xKg8z4qC9/aV/f8fyye0wqpS8VoF98Ab0Dw743+bfDXC+aUeu+Dk8oQhiw== - dependencies: - graphile-build "4.11.0" - graphile-build-pg "4.11.2" - tslib "^2.0.1" - -postgraphile@^4.9.0: - version "4.11.0" - resolved "https://registry.yarnpkg.com/postgraphile/-/postgraphile-4.11.0.tgz#5ddcad1e0fe0f8b2c7e03e29542c1b7a0ab54515" - integrity sha512-PyOzULrRjb4TMaw+odIeA/dqxW+Rr9tXFIuf6tj9Cy6Nq9Y474ZV/sHap5lH8eRLJx0BqxS73v/+8+ITFUDB1A== - dependencies: - "@graphile/lru" "4.11.0" - "@types/json5" "^0.0.30" - "@types/jsonwebtoken" "^8.3.2" - "@types/pg" "^7.4.10" - "@types/ws" "^7.4.0" - body-parser "^1.15.2" - chalk "^2.4.2" - commander "^2.19.0" - debug "^4.1.1" - finalhandler "^1.0.6" - graphile-utils "^4.11.2" - graphql "^0.6.0 || ^0.7.0 || ^0.8.0-b || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.2 || ^15.0.0" - graphql-ws "^4.1.1" - http-errors "^1.5.1" - iterall "^1.0.2" - json5 "^2.1.1" - jsonwebtoken "^8.0.0" - parseurl "^1.3.2" - pg ">=6.1.0 <9" - pg-connection-string "^2.0.0" - pg-sql2 "4.11.0" - postgraphile-core "4.11.2" - subscriptions-transport-ws "^0.9.18" - tslib "^2.1.0" - ws "^7.4.2" + integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== + +postgraphile@^5.0.0-rc.6: + version "5.0.0-rc.7" + resolved "https://registry.yarnpkg.com/postgraphile/-/postgraphile-5.0.0-rc.7.tgz#742273532fb84a0b1f5e35137d0f4fad9b7a7998" + integrity sha512-sUjq9c2Q53TWs8fuoohStSAZwvkbnAvtgwqZTDzPP6OL2OI0ymv10qtnBzHwJh+dTrWEM/isqgVH29IEPG+LVQ== + dependencies: + "@dataplan/json" "^1.0.0-rc.5" + "@dataplan/pg" "^1.0.0-rc.5" + "@graphile/lru" "^5.0.0-rc.4" + "@types/node" "^22.19.1" + "@types/pg" "^8.15.6" + debug "^4.4.3" + grafast "^1.0.0-rc.7" + grafserv "^1.0.0-rc.6" + graphile-build "^5.0.0-rc.4" + graphile-build-pg "^5.0.0-rc.5" + graphile-config "^1.0.0-rc.5" + graphile-utils "^5.0.0-rc.6" + graphql "^16.9.0" + iterall "^1.3.0" + jsonwebtoken "^9.0.2" + pg "^8.16.3" + pg-sql2 "^5.0.0-rc.4" + tamedevil "^0.1.0-rc.4" + tslib "^2.8.1" + ws "^8.18.3" postgres-array@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e" integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA== +postgres-array@~3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-3.0.4.tgz#4efcaf4d2c688d8bcaa8620ed13f35f299f7528c" + integrity sha512-nAUSGfSDGOaOAEGwqsRY27GPOea7CNipJPOA7lPbdEpx5Kg3qzdP0AaWC5MlhTWV9s4hFX39nomVZ+C4tnGOJQ== + postgres-bytea@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35" - integrity sha1-AntTPAqokOJtFy1Hz5zOzFIazTU= + version "1.0.1" + resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.1.tgz#c40b3da0222c500ff1e51c5d7014b60b79697c7a" + integrity sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ== postgres-date@~1.0.4: version "1.0.7" @@ -3873,93 +3962,54 @@ postgres-interval@^1.1.0: 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" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= +postgres-range@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/postgres-range/-/postgres-range-1.1.4.tgz#a59c5f9520909bcec5e63e8cf913a92e4c952863" + integrity sha512-i/hbxIE9803Alj/6ytL7UHQxRvZkI9O4Sy+J3HGc4F4oo/2eQAjTSNJ0bfxyse3bH0nuVesCk+3IRLaMtG3H6w== prepend-http@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + integrity sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg== -prettier@1.18.2: - version "1.18.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.18.2.tgz#6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea" - integrity sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw== +prettier@^3.3.2, prettier@^3.5.3: + version "3.8.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.8.1.tgz#edf48977cf991558f4fcbd8a3ba6015ba2a3a173" + integrity sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg== -pretty-format@^26.0.0, pretty-format@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" - integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== +pretty-format@30.2.0, pretty-format@^30.0.0: + version "30.2.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-30.2.0.tgz#2d44fe6134529aed18506f6d11509d8a62775ebe" + integrity sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA== dependencies: - "@jest/types" "^26.6.2" - ansi-regex "^5.0.0" - ansi-styles "^4.0.0" - react-is "^17.0.1" + "@jest/schemas" "30.0.5" + ansi-styles "^5.2.0" + react-is "^18.3.1" process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -prompts@^2.0.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.1.tgz#befd3b1195ba052f9fd2fde8a486c4e82ee77f61" - integrity sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - -psl@^1.1.28, psl@^1.1.33: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== pstree.remy@^1.1.7: version "1.1.8" resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -qs@6.13.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" - integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== - dependencies: - side-channel "^1.0.6" - -qs@~6.5.2: - version "6.5.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" - integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== +punycode.js@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode.js/-/punycode.js-2.3.1.tgz#6b53e56ad75588234e79f4affa90972c7dd8cdb7" + integrity sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA== -raw-body@2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" - integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" +pure-rand@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-7.0.1.tgz#6f53a5a9e3e4a47445822af96821ca509ed37566" + integrity sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ== rc@^1.0.1, rc@^1.1.6: version "1.2.8" @@ -3971,34 +4021,47 @@ rc@^1.0.1, rc@^1.1.6: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-is@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== +react-compiler-runtime@19.1.0-rc.1: + version "19.1.0-rc.1" + resolved "https://registry.yarnpkg.com/react-compiler-runtime/-/react-compiler-runtime-19.1.0-rc.1.tgz#2535efd2e9fc9fc7d5ad47e970061dfbe38fb3f6" + integrity sha512-wCt6g+cRh8g32QT18/9blfQHywGjYu+4FlEc3CW1mx3pPxYzZZl1y+VtqxRgnKKBCFLIGUYxog4j4rs5YS86hw== -read-pkg-up@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" - integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== +react-is@^18.3.1: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" + integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== + +react-remove-scroll-bar@^2.3.7: + version "2.3.8" + resolved "https://registry.yarnpkg.com/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz#99c20f908ee467b385b68a3469b4a3e750012223" + integrity sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q== dependencies: - find-up "^4.1.0" - read-pkg "^5.2.0" - type-fest "^0.8.1" + react-style-singleton "^2.2.2" + tslib "^2.0.0" -read-pkg@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== +react-remove-scroll@^2.6.3: + version "2.7.2" + resolved "https://registry.yarnpkg.com/react-remove-scroll/-/react-remove-scroll-2.7.2.tgz#6442da56791117661978ae99cd29be9026fecca0" + integrity sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q== dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" + react-remove-scroll-bar "^2.3.7" + react-style-singleton "^2.2.3" + tslib "^2.1.0" + use-callback-ref "^1.3.3" + use-sidecar "^1.1.3" + +react-style-singleton@^2.2.2, react-style-singleton@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/react-style-singleton/-/react-style-singleton-2.2.3.tgz#4265608be69a4d70cfe3047f2c6c88b2c3ace388" + integrity sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ== + dependencies: + get-nonce "^1.0.0" + tslib "^2.0.0" readable-stream@^2.0.2: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== dependencies: core-util-is "~1.0.0" inherits "~2.0.3" @@ -4008,15 +4071,6 @@ readable-stream@^2.0.2: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - readdirp@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" @@ -4045,14 +4099,14 @@ registry-auth-token@^3.0.1: registry-url@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" - integrity sha1-PU74cPc93h138M+aOBQyRE4XSUI= + integrity sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA== dependencies: rc "^1.0.1" remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== repeat-element@^1.1.2: version "1.1.4" @@ -4062,59 +4116,17 @@ repeat-element@^1.1.2: repeat-string@^1.6.1: version "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.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.19" - -request-promise-native@^1.0.9: - 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.4" - stealthy-require "^1.1.1" - tough-cookie "^2.3.3" - -request@^2.88.2: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" + integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== resolve-cwd@^3.0.0: version "3.0.0" @@ -4131,41 +4143,35 @@ resolve-from@^5.0.0: resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -resolve@^1.10.0, resolve@^1.18.1, resolve@^1.3.2: - version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== - dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" + integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== -rimraf@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== +ruru-types@^2.0.0-rc.5: + version "2.0.0-rc.5" + resolved "https://registry.yarnpkg.com/ruru-types/-/ruru-types-2.0.0-rc.5.tgz#e889e8d6ca0ca4ba22bb8286e284fb792e0716d1" + integrity sha512-ttaNhhJ/piofg4ZDsGlHeMmqiE1k/zcbrH3d/FAdZL9dvp4k59KbGaGJvqyRUEaLwO45F1rQV0Ws+30HFGdKTg== dependencies: - glob "^7.1.3" + "@graphiql/toolkit" "^0.11.3" + graphiql "^5.2.1" -rsvp@^4.8.4: - version "4.8.5" - resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" - integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== - -rxjs@^6.6.3: - version "6.6.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" - integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== +ruru@^2.0.0-rc.6: + version "2.0.0-rc.6" + resolved "https://registry.yarnpkg.com/ruru/-/ruru-2.0.0-rc.6.tgz#5cb9dcc5b6bcd5642f045bc447b896e4c7bd9b17" + integrity sha512-+xqJhDxDs3wEtT8GG0PYjYIZo92JHcpfntbVzTrXC9pAof93Zcm1bsnBv7PdXaJqLEEwRFZhO4mdm0EbJ4Lrhg== dependencies: - tslib "^1.9.0" + "@emotion/is-prop-valid" "^1.4.0" + graphile-config "^1.0.0-rc.5" + graphql "^16.9.0" + http-proxy "^1.18.1" + ruru-types "^2.0.0-rc.5" + tslib "^2.8.1" + yargs "^17.7.2" -safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: +safe-buffer@^5.0.1: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -4178,77 +4184,31 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: safe-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sane@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" - integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== - dependencies: - "@cnakazawa/watch" "^1.0.3" - anymatch "^2.0.0" - capture-exit "^2.0.0" - exec-sh "^0.3.2" - execa "^1.0.0" - fb-watchman "^2.0.0" - micromatch "^3.1.4" - minimist "^1.1.1" - walker "~1.0.5" - -saxes@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" - integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== - dependencies: - xmlchars "^2.2.0" - semver-diff@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" - integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= + integrity sha512-gL8F8L4ORwsS0+iQ34yCYv///jsOq0ZL7WP55d1HnJ32o7tyFYEFQZQA22mrLIacZdU6xecaBBZ+uEiffGNyXw== dependencies: semver "^5.0.3" -"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1: +semver@^5.0.3, semver@^5.1.0, semver@^5.7.1: version "5.7.2" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@7.x, semver@^7.3.2: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" - -semver@^6.0.0, semver@^6.3.0: +semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-function-length@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" - integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== - dependencies: - define-data-property "^1.1.4" - es-errors "^1.3.0" - function-bind "^1.1.2" - get-intrinsic "^1.2.4" - gopd "^1.0.1" - has-property-descriptors "^1.0.2" +semver@^7.5.3, semver@^7.5.4, semver@^7.7.2, semver@^7.7.3: + version "7.7.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.4.tgz#28464e36060e991fa7a11d0279d2d3f3b57a7e8a" + integrity sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA== set-value@^2.0.0, set-value@^2.0.1: version "2.0.1" @@ -4260,15 +4220,18 @@ set-value@^2.0.0, set-value@^2.0.1: is-plain-object "^2.0.3" split-string "^3.0.1" -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== +set-value@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-4.1.0.tgz#aa433662d87081b75ad88a4743bd450f044e7d09" + integrity sha512-zTEg4HL0RwVrqcWs3ztF+x1vkxfm0lP+MQQFPiMJTKVceBwEV0A569Ou8l9IYQG8jOZdMVI1hGsc0tmeD2o/Lw== + dependencies: + is-plain-object "^2.0.4" + is-primitive "^3.0.1" shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== dependencies: shebang-regex "^1.0.0" @@ -4282,37 +4245,22 @@ shebang-command@^2.0.0: shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== shebang-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shellwords@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" - integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== - -side-channel@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" - integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== - dependencies: - call-bind "^1.0.7" - es-errors "^1.3.0" - get-intrinsic "^1.2.4" - object-inspect "^1.13.1" - -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== +signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== slash@^3.0.0: version "3.0.0" @@ -4360,10 +4308,10 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.5.6: - version "0.5.19" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" - integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== +source-map-support@0.5.13: + version "0.5.13" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" + integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" @@ -4373,52 +4321,16 @@ source-map-url@^0.4.0: resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== -source-map@^0.5.0, source-map@^0.5.6: +source-map@^0.5.6: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: +source-map@^0.6.0, source-map@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@^0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== - -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" - integrity sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A= - -spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.7" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" - integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== - split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" @@ -4426,64 +4338,32 @@ split-string@^3.0.1, split-string@^3.0.2: dependencies: extend-shallow "^3.0.0" -split2@^3.1.1: - version "3.2.2" - resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" - integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== - dependencies: - readable-stream "^3.0.0" +split2@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" + integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -stack-utils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277" - integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw== + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +stack-utils@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" + integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== dependencies: escape-string-regexp "^2.0.0" static-extend@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== dependencies: define-property "^0.2.5" object-copy "^0.1.0" -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - -"statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - -stealthy-require@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" - integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= - -string-length@^4.0.1: +string-length@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== @@ -4491,6 +4371,15 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + string-width@^2.0.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" @@ -4499,21 +4388,23 @@ string-width@^2.0.0, string-width@^2.1.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string-width@^4.1.0, string-width@^4.2.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" - integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" + strip-ansi "^6.0.1" -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== dependencies: - safe-buffer "~5.2.0" + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" string_decoder@~1.1.1: version "1.1.1" @@ -4522,19 +4413,33 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== dependencies: ansi-regex "^3.0.0" -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.1: + version "7.1.2" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.2.tgz#132875abde678c7ea8d691533f2e7e22bb744dba" + integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA== dependencies: - ansi-regex "^5.0.0" + ansi-regex "^6.0.1" strip-bom@^4.0.0: version "4.0.0" @@ -4544,28 +4449,22 @@ strip-bom@^4.0.0: strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== strip-final-newline@^2.0.0: version "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.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== + 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" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - -subscriptions-transport-ws@^0.9.18: - version "0.9.18" - resolved "https://registry.yarnpkg.com/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.18.tgz#bcf02320c911fbadb054f7f928e51c6041a37b97" - integrity sha512-tztzcBTNoEbuErsVQpTN2xUNN/efAZXyCyL5m3x4t6SKrEiTL2N8SaKWBFWM4u56pL79ULif3zjyeq+oV+nOaA== - dependencies: - backo2 "^1.0.2" - eventemitter3 "^3.1.0" - iterall "^1.2.1" - symbol-observable "^1.0.4" - ws "^5.2.0" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== supports-color@^5.3.0, supports-color@^5.5.0: version "5.5.0" @@ -4574,53 +4473,47 @@ supports-color@^5.3.0, supports-color@^5.5.0: dependencies: has-flag "^3.0.0" -supports-color@^7.0.0, supports-color@^7.1.0: +supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" -supports-color@^8.1.0: +supports-color@^8.1.1: version "8.1.1" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== dependencies: has-flag "^4.0.0" -supports-hyperlinks@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" - integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== +synckit@^0.11.8: + version "0.11.12" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.11.12.tgz#abe74124264fbc00a48011b0d98bdc1cffb64a7b" + integrity sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ== dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" + "@pkgr/core" "^0.2.9" -symbol-observable@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" - integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== +tabbable@^6.0.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.4.0.tgz#36eb7a06d80b3924a22095daf45740dea3bf5581" + integrity sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg== -symbol-tree@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" - integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== +tamedevil@^0.1.0-rc.4: + version "0.1.0-rc.4" + resolved "https://registry.yarnpkg.com/tamedevil/-/tamedevil-0.1.0-rc.4.tgz#33cd0151cf9d92d59b52a41aa26dc151752c3c86" + integrity sha512-w6gmlfoKCBfOTjLzTVcUmEPuhWEes2lFZkC+y+KLsP3AUNiRZcyAgefosCaxOEehlHB6Rt4jRbFDSMBxQbGsug== + dependencies: + "@graphile/lru" "^5.0.0-rc.4" + tslib "^2.8.1" term-size@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" - integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= + integrity sha512-7dPUZQGy/+m3/wjVz3ZW5dobSoD/02NxJpoXUX0WIyjfVS3l0c+b/+9phIDFA7FHzkYtwtMFgeGZ/Y8jVTeqQQ== dependencies: execa "^0.7.0" -terminal-link@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" - integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== - dependencies: - ansi-escapes "^4.2.1" - supports-hyperlinks "^2.0.0" - test-exclude@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" @@ -4630,37 +4523,27 @@ test-exclude@^6.0.0: glob "^7.1.4" minimatch "^3.0.4" -throat@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" - integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== - timed-out@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= + integrity sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA== -tmpl@1.0.x: +tmpl@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - to-object-path@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + integrity sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== dependencies: kind-of "^3.0.2" to-regex-range@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + integrity sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== dependencies: is-number "^3.0.0" repeat-string "^1.6.1" @@ -4682,127 +4565,35 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== - -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== - touch@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" - integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== - dependencies: - nopt "~1.0.10" - -tough-cookie@^2.3.3, tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -tough-cookie@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" - integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== - dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.1.2" - -tr46@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479" - integrity sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg== - dependencies: - punycode "^2.1.1" - -tree-kill@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" - integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== - -ts-jest@^26.5.4: - version "26.5.5" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-26.5.5.tgz#e40481b6ee4dd162626ba481a2be05fa57160ea5" - integrity sha512-7tP4m+silwt1NHqzNRAPjW1BswnAhopTdc2K3HEkRZjF0ZG2F/e/ypVH0xiZIMfItFtD3CX0XFbwPzp9fIEUVg== - dependencies: - bs-logger "0.x" - buffer-from "1.x" - fast-json-stable-stringify "2.x" - jest-util "^26.1.0" - json5 "2.x" - lodash "4.x" - make-error "1.x" - mkdirp "1.x" - semver "7.x" - yargs-parser "20.x" - -tslib@^1.10.0, tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslib@^2.0.1, tslib@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c" - integrity sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w== - -tslint-config-prettier@^1.18.0: - version "1.18.0" - resolved "https://registry.yarnpkg.com/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz#75f140bde947d35d8f0d238e0ebf809d64592c37" - integrity sha512-xPw9PgNPLG3iKRxmK7DWr+Ea/SzrvfHtjFt5LBl61gk2UBG/DB9kCXRjv+xyIU1rUtnayLeMUVJBcMX8Z17nDg== - -tslint@^5.19.0: - version "5.20.1" - resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.20.1.tgz#e401e8aeda0152bc44dd07e614034f3f80c67b7d" - integrity sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg== - dependencies: - "@babel/code-frame" "^7.0.0" - builtin-modules "^1.1.1" - chalk "^2.3.0" - commander "^2.12.1" - diff "^4.0.1" - glob "^7.1.1" - js-yaml "^3.13.1" - minimatch "^3.0.4" - mkdirp "^0.5.1" - resolve "^1.3.2" - semver "^5.3.0" - tslib "^1.8.0" - tsutils "^2.29.0" - -tsutils@^2.29.0: - version "2.29.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" - integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== - dependencies: - tslib "^1.8.1" - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= - dependencies: - prelude-ls "~1.1.2" + version "3.1.1" + resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.1.tgz#097a23d7b161476435e5c1344a95c0f75b4a5694" + integrity sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA== + +transliteration@^2.3.5: + version "2.6.1" + resolved "https://registry.yarnpkg.com/transliteration/-/transliteration-2.6.1.tgz#dadd5b6812d08815f5dc4a53122f8f8355fbb0f1" + integrity sha512-hJ9BhrQAOnNTbpOr1MxsNjZISkn7ppvF5TKUeFmTE1mG4ZPD/XVxF0L0LUoIUCWmQyxH0gJpVtfYLAWf298U9w== + +ts-jest@^29.4.6: + version "29.4.6" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.4.6.tgz#51cb7c133f227396818b71297ad7409bb77106e9" + integrity sha512-fSpWtOO/1AjSNQguk43hb/JCo16oJDnMJf3CdEGNkqsEX3t0KX96xvyX1D7PfLCpVoKu4MfVrqUkFyblYoY4lA== + dependencies: + bs-logger "^0.2.6" + fast-json-stable-stringify "^2.1.0" + handlebars "^4.7.8" + json5 "^2.2.3" + lodash.memoize "^4.1.2" + make-error "^1.3.6" + semver "^7.7.3" + type-fest "^4.41.0" + yargs-parser "^21.1.1" + +tslib@^2.0.0, tslib@^2.1.0, tslib@^2.4.0, tslib@^2.6.3, tslib@^2.8.0, tslib@^2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== type-detect@4.0.8: version "4.0.8" @@ -4814,42 +4605,40 @@ type-fest@^0.21.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== -type-fest@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== +type-fest@^4.41.0: + version "4.41.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.41.0.tgz#6ae1c8e5731273c2bf1f58ad39cbae2c91a46c58" + integrity sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA== -type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" +typescript@^5.4.5: + version "5.9.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" + integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" +uc.micro@^2.0.0, uc.micro@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-2.1.0.tgz#f8d3f7d0ec4c3dea35a7e3c8efa4cb8b45c9e7ee" + integrity sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A== -typescript@^3.5.3: - version "3.9.9" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.9.tgz#e69905c54bc0681d0518bd4d587cc6f2d0b1a674" - integrity sha512-kdMjTiekY+z/ubJCATUPlRDl39vXYiMV9iyeMuEuXZh2we6zz80uovNN2WlAxmmdE/Z/YQe+EbOEXB5RHEED3w== +uglify-js@^3.1.4: + version "3.19.3" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.19.3.tgz#82315e9bbc6f2b25888858acd1fff8441035b77f" + integrity sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ== undefsafe@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.3.tgz#6b166e7094ad46313b2202da7ecc2cd7cc6e7aae" - integrity sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A== - dependencies: - debug "^2.2.0" + version "2.0.5" + resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c" + integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== + +undici-types@~6.21.0: + version "6.21.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" + integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== + +undici-types@~7.16.0: + version "7.16.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46" + integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw== union-value@^1.0.0: version "1.0.1" @@ -4864,24 +4653,41 @@ union-value@^1.0.0: unique-string@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" - integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= + integrity sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg== dependencies: crypto-random-string "^1.0.0" -universalify@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= +unrs-resolver@^1.7.11: + version "1.11.1" + resolved "https://registry.yarnpkg.com/unrs-resolver/-/unrs-resolver-1.11.1.tgz#be9cd8686c99ef53ecb96df2a473c64d304048a9" + integrity sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg== + dependencies: + napi-postinstall "^0.3.0" + optionalDependencies: + "@unrs/resolver-binding-android-arm-eabi" "1.11.1" + "@unrs/resolver-binding-android-arm64" "1.11.1" + "@unrs/resolver-binding-darwin-arm64" "1.11.1" + "@unrs/resolver-binding-darwin-x64" "1.11.1" + "@unrs/resolver-binding-freebsd-x64" "1.11.1" + "@unrs/resolver-binding-linux-arm-gnueabihf" "1.11.1" + "@unrs/resolver-binding-linux-arm-musleabihf" "1.11.1" + "@unrs/resolver-binding-linux-arm64-gnu" "1.11.1" + "@unrs/resolver-binding-linux-arm64-musl" "1.11.1" + "@unrs/resolver-binding-linux-ppc64-gnu" "1.11.1" + "@unrs/resolver-binding-linux-riscv64-gnu" "1.11.1" + "@unrs/resolver-binding-linux-riscv64-musl" "1.11.1" + "@unrs/resolver-binding-linux-s390x-gnu" "1.11.1" + "@unrs/resolver-binding-linux-x64-gnu" "1.11.1" + "@unrs/resolver-binding-linux-x64-musl" "1.11.1" + "@unrs/resolver-binding-wasm32-wasi" "1.11.1" + "@unrs/resolver-binding-win32-arm64-msvc" "1.11.1" + "@unrs/resolver-binding-win32-ia32-msvc" "1.11.1" + "@unrs/resolver-binding-win32-x64-msvc" "1.11.1" unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ== dependencies: has-value "^0.3.1" isobject "^3.0.0" @@ -4889,13 +4695,21 @@ unset-value@^1.0.0: unzip-response@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" - integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c= + integrity sha512-N0XH6lqDtFH84JxptQoZYmloF4nzrQqqrAymNj+/gW60AO2AZgOcf4O/nUXJcYfyQkqvMo9lSupBZmmgvuVXlw== upath@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== +update-browserslist-db@^1.2.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz#64d76db58713136acbeb4c49114366cc6cc2e80d" + integrity sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w== + dependencies: + escalade "^3.2.0" + picocolors "^1.1.1" + update-notifier@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" @@ -4912,127 +4726,68 @@ update-notifier@^2.5.0: semver-diff "^2.0.0" xdg-basedir "^3.0.0" -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - urix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== url-parse-lax@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" - integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= + integrity sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA== dependencies: prepend-http "^1.0.1" +use-callback-ref@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/use-callback-ref/-/use-callback-ref-1.3.3.tgz#98d9fab067075841c5b2c6852090d5d0feabe2bf" + integrity sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg== + dependencies: + tslib "^2.0.0" + +use-sidecar@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/use-sidecar/-/use-sidecar-1.1.3.tgz#10e7fd897d130b896e2c546c63a5e8233d00efdb" + integrity sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ== + dependencies: + detect-node-es "^1.1.0" + tslib "^2.0.0" + +use-sync-external-store@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz#b174bfa65cb2b526732d9f2ac0a408027876f32d" + integrity sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w== + use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== -util-deprecate@^1.0.1, util-deprecate@~1.0.1: +util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -uuid@^8.3.0: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -v8-to-istanbul@^7.0.0: - version "7.1.1" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.1.tgz#04bfd1026ba4577de5472df4f5e89af49de5edda" - integrity sha512-p0BB09E5FRjx0ELN6RgusIPsSPhtgexSRcKETybEs6IGOTXJSZqfwxp7r//55nnu0f1AxltY5VvdVqy2vZf9AA== +v8-to-istanbul@^9.0.1: + version "9.3.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz#b9572abfa62bd556c16d75fdebc1a411d5ff3175" + integrity sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA== dependencies: + "@jridgewell/trace-mapping" "^0.3.12" "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" - source-map "^0.7.3" - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -w3c-hr-time@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" - integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== - dependencies: - browser-process-hrtime "^1.0.0" - -w3c-xmlserializer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" - integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== - dependencies: - xml-name-validator "^3.0.0" - -walker@^1.0.7, walker@~1.0.5: - version "1.0.7" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" - integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= - dependencies: - makeerror "1.0.x" - -webidl-conversions@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" - integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== - -webidl-conversions@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" - integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== - -whatwg-encoding@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" - integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== - dependencies: - iconv-lite "0.4.24" + convert-source-map "^2.0.0" -whatwg-mimetype@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" - integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== +vscode-languageserver-types@^3.17.1: + version "3.17.5" + resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz#3273676f0cf2eab40b3f44d085acbb7f08a39d8a" + integrity sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg== -whatwg-url@^8.0.0, whatwg-url@^8.5.0: - version "8.5.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.5.0.tgz#7752b8464fc0903fec89aa9846fc9efe07351fd3" - integrity sha512-fy+R77xWv0AiqfLl4nuGUlQ3/6b5uNfQ4WAbGQVMYshCTCCPK9psC1nWh3XHuxGVCtlcDDQPQW1csmmIQo+fwg== +walker@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== dependencies: - lodash "^4.7.0" - tr46 "^2.0.2" - webidl-conversions "^6.1.0" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + makeerror "1.0.12" which@^1.2.9: version "1.3.1" @@ -5041,7 +4796,7 @@ which@^1.2.9: dependencies: isexe "^2.0.0" -which@^2.0.1, which@^2.0.2: +which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== @@ -5055,15 +4810,15 @@ widest-line@^2.0.0: dependencies: string-width "^2.1.1" -word-wrap@~1.2.3: - version "1.2.4" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.4.tgz#cb4b50ec9aca570abd1f52f33cd45b6c61739a9f" - integrity sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA== +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" string-width "^4.1.0" @@ -5078,10 +4833,19 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== write-file-atomic@^2.0.0: version "2.4.3" @@ -5092,53 +4856,29 @@ write-file-atomic@^2.0.0: imurmurhash "^0.1.4" signal-exit "^3.0.2" -write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== +write-file-atomic@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.1.tgz#68df4717c55c6fa4281a7860b4c2ba0a6d2b11e7" + integrity sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw== dependencies: imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -ws@^5.2.0: - version "5.2.4" - resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.4.tgz#c7bea9f1cfb5f410de50e70e82662e562113f9a7" - integrity sha512-fFCejsuC8f9kOSu9FYaOw8CdO68O3h5v0lg4p74o8JqWpwTf9tniOD+nOB78aWoVSS6WptVUmDrp/KPsMVBWFQ== - dependencies: - async-limiter "~1.0.0" + signal-exit "^4.0.1" -ws@^7.4.2, ws@^7.4.4: - version "7.5.10" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" - integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== +ws@^8.18.3: + version "8.19.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.19.0.tgz#ddc2bdfa5b9ad860204f5a72a4863a8895fd8c8b" + integrity sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg== xdg-basedir@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" - integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= - -xml-name-validator@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" - integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== - -xmlchars@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" - integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + integrity sha512-1Dly4xqlulvPD3fZUQJLY+FUIeqN3N2MM3uqe4rCJftAvOjFa3jFGfctOgluGx4ahPbUCsZkmJILiP0Vi4T6lQ== xtend@^4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== -y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - y18n@^5.0.5: version "5.0.8" resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" @@ -5147,57 +4887,37 @@ y18n@^5.0.5: yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== yallist@^3.0.2: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yargs-parser@20.x, yargs-parser@^20.2.2: - version "20.2.7" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a" - integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw== - -yargs-parser@^18.1.2: - version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs@^15.4.1: - version "15.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" - integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.2" +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== -yargs@^16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== +yargs@^17.7.2: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== dependencies: - cliui "^7.0.2" + cliui "^8.0.1" escalade "^3.1.1" get-caller-file "^2.0.5" require-directory "^2.1.1" - string-width "^4.2.0" + string-width "^4.2.3" y18n "^5.0.5" - yargs-parser "^20.2.2" + yargs-parser "^21.1.1" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zustand@^5: + version "5.0.11" + resolved "https://registry.yarnpkg.com/zustand/-/zustand-5.0.11.tgz#99f912e590de1ca9ce6c6d1cab6cdb1f034ab494" + integrity sha512-fdZY+dk7zn/vbWNCYmzZULHRrss0jx5pPFiOuMZ/5HJN6Yv3u+1Wswy/4MpZEkEGhtNH+pwxZB8OKgUBPzYAGg==