From 018158bf0f9e9a1b40cffd01a75eb65da559ea55 Mon Sep 17 00:00:00 2001 From: Andrew <105487051+LouisThedroux@users.noreply.github.com> Date: Wed, 28 Aug 2024 12:07:15 -0700 Subject: [PATCH 01/29] initial commit for study areas. File creation and first attempt at the script. Should work...maybe. Needs to be tested and debugged before merge --- spi/src/index.ts | 3 +++ spi/src/transformations/study-area.ts | 29 +++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 spi/src/transformations/study-area.ts diff --git a/spi/src/index.ts b/spi/src/index.ts index 929ba780b5..cf5832f073 100644 --- a/spi/src/index.ts +++ b/spi/src/index.ts @@ -49,6 +49,9 @@ async function main() { // STEP 6. Transforms SPI Design Components into SIMS Sampling Sites await transformSampleSites(connection); + //STEP 7. Transforms SPI Survey Areas into SIMS Survey Locations + await transformSampleSites(connection); + // Commit the transactions connection.commit(); diff --git a/spi/src/transformations/study-area.ts b/spi/src/transformations/study-area.ts new file mode 100644 index 0000000000..a8864d1a16 --- /dev/null +++ b/spi/src/transformations/study-area.ts @@ -0,0 +1,29 @@ +import SQL from 'sql-template-strings'; +import { IDBConnection } from '../db'; + +export const transformStudyAreas = async (connection: IDBConnection): Promise => { + console.log('Transforming Study Area'); + + const sql = SQL` + ------------------------------------------------------------------------------------------------- + -- Transforms SPI Study Areas into SIMS Survey Locations + ------------------------------------------------------------------------------------------------- +INSERT INTO + biohub.survey_locations (survey_id, name, description) +SELECT + b.survey_id, + sa.study_area_name AS name, + sa.study_area_description AS description +FROM + public.spi_survey_study_areas ss +JOIN + public.spi_study_areas sa ON ss.spi_project_id = sa.spi_project_id +JOIN + biohub.survey b ON ss.survey_id = b.spi_survey_id; + + `; + + await connection.sql(sql); + + console.log('Successfully transformed study areas'); +}; From cb1fbeca026ff196b19c27a83bbea78064181ba5 Mon Sep 17 00:00:00 2001 From: Meijer Date: Wed, 28 Aug 2024 13:39:08 -0700 Subject: [PATCH 02/29] finished ?? sampling methods, only need to replace PLACEHOLDER method lookup names once migation confirms final table values --- spi/src/transformations/sampling_methods.ts | 807 +++++++++++++++++++- 1 file changed, 788 insertions(+), 19 deletions(-) diff --git a/spi/src/transformations/sampling_methods.ts b/spi/src/transformations/sampling_methods.ts index e88aed7826..660c2a127e 100644 --- a/spi/src/transformations/sampling_methods.ts +++ b/spi/src/transformations/sampling_methods.ts @@ -33,7 +33,7 @@ export const transformSamplingMethods = async (connection: IDBConnection): Promi WHEN sp.method_type_cd = 'HAN_BIRD_CAPF_2.1' THEN 'Mist Net' WHEN sp.method_type_cd = 'OBS_PSAL_CAPS_2.0' THEN 'Pitfall Trap' WHEN sp.method_type_cd = 'OBS_PSAL_TRAN_2.0' THEN 'Visual Encounter' - WHEN sp.method_type_cd = git'OBS_BAPT_SRCA_2.0' THEN 'Visual Encounter' + WHEN sp.method_type_cd = 'OBS_BAPT_SRCA_2.0' THEN 'Visual Encounter' WHEN sp.method_type_cd = 'HAN_WOCO_CAPF_2.0' THEN 'Placeholder Gun Net' WHEN sp.method_type_cd = 'OBS_BAPT_LARV_2.0' THEN 'Handheld net' WHEN sp.method_type_cd = 'OBS_BAPT_AUDI_2.0' THEN 'Placeholder Audio Encounter' @@ -96,6 +96,780 @@ export const transformSamplingMethods = async (connection: IDBConnection): Promi WHEN sp.method_type_cd = 'NON_STAN_OBS_SGN' THEN 'Visual Encounter' WHEN sp.method_type_cd = 'Rare Plants and Fungi' THEN 'Visual Encounter' WHEN sp.method_type_cd = 'Ungulate Census' THEN 'Visual Encounter' + -- Visual Encounter + WHEN sp.method_type_cd IN ( + '12-Administrative Miscellaneous', + 'HERPETILE_HABITAT_DATA_1.0', + 'Mortalities', + 'OBS_BAPT_ROAD_2.0', + 'OBS_BATS_DETC', + 'HAN_MAMM_CAPF_2.2', + 'HAN_WOCO_CAPF_2.2', + 'Bird Capture Or Handling', + 'OBS_REPT_CAPT_1.0', + 'Snake Capture', + 'ANIMAL_OBS_SIGN_1.0', + 'Bat Capture Or Handling', + 'OBS_BIRD_CAPT_1.0', + 'Small Mammal Capture Or Handling', + 'HAN_MAMM_CAPF_2.0', + 'Tree Descriptions', + 'HAN_MAMM_CAPF_2.1', + 'Medium to Large Mammal Capture Or Handling', + 'Cap and Hand - Med to Large', + 'OBS_MAM_CAPT_1.0', + 'Animal DNA Collecting', + 'HISTORICAL_DATA', + 'Animal Capture or Marking', + 'Results by Area', + 'Census', + 'LBS') AND sp.survey_name IN ( + '%Aerial and Ground Spring Lamb Survey%', + '%Pellet Count and Aerial Survey%', + '%Track Transects%', + '%2001 - Robson Valley Grizzly Bear Survey%', + '%2006 - Williamsons Sapsucker Call Playback and Nest Visit and Search%', + '%Aerial Composition Survey%', + '%1995 -2005 Williamsons Sapsucker Call Playback Surveys%', + '%Repeated Nest Site visits%', + '%Aerial Rut Survey%', + '%Toadfest Survey%', + '%1996 - Woodpecker Call Playbacks%', + '%Aerial SRB Survey%', + '%Aerial Transect%', + '%Roost Counts and Surveys%', + '%Aerial Survey%', + '%Whitebark Pine Surveys and Incidental Sightings%', + '%Nesting Habitat Survey%', + '%Aerial Block Transects%', + '%Aerial/ Boat Breeding Survey%', + '%Call Playback and Nest Searches%', + '%Nest productivity surveys%', + '%1976 Bighorn Sheep Aerial Census Northeast Coal%', + '%Road and Pond Surveys%', + '%Annual Roost Count%', + '%2009-Wetland Birds-Playback-PeaceFD%', + '%Spotlight Counts%', + '%Artificial Cover Object Survey%', + '%1996 -1997 - Cascade Mantled Ground Squirrel Survey%', + '%Cover Board Surveys%', + '%Forest Berry Production Surveys%', + '%Incidentals%', + '%Visual Inventory and Trapping%', + '%Visual Survey%', + '%Systematic Search%', + '%rock outcrop search%', + '%Breeding Territory Survey%', + '%Stand Survey%', + '%Wandering Transect%', + '%Aerial Late Winter Reconnaissance%', + '%1996 - Marten Track Abundance Survey%', + '%Aerial Flight%', + '%Nest observations%', + '%2010 -ongoing - Animal Observations by Ski Operators%', + '%Aerial Transect Survey%', + '%Transects%', + '%Grassland Plant survey%', + '%Standwatch Survey%', + '%1996 - Pine Marten Winter Track Survey%', + '%Cougar Snow Tracking%', + '%Aerial census%', + '%Aerial Census%', + '%Call Play Back survey%', + '%General Survey and Incidental Observations%', + '%Visual Encounter Survey%', + '%Amphibian Visual Eggmass Survey%', + '%Aerial Survey Transect%', + '%Winter snow track surveys%', + '%Stand and Nest Survey%', + '%1989 Mountain Goat Aerial Survey Bullmoose Mtn.%', + '%Waterbird Survey%', + '%Aerial and Ground Survey%', + '%Aerial/Ground Survey and Ecology Study%', + '%Visual and Scat Observation%', + '%Pond-breeding Amphibian Survey%', + '%Spot Light Count%', + '%Den Observations%', + '%1994 Mountain goat Aerial Census Bullmoose Mtn.%', + '%Flammulated Owl Survey%', + '%Stand Watch Surveys%', + '%Road Mortality%', + '%Spring Road Transect Surveys%', + '%nest visit%', + '%Ground Based Survey%', + '%Aerial%', + '%Transect Survey%', + '%Small Mammal Trapping%', + '%Snow-Track Survey%', + '%Road Transect Survey%', + '%Point Count Survey%', + '%Stream Surveys%', + '%Nesting Locations%', + '%1996-99 - Mountain Goat Stand Watch%', + '%breeding bird survey%', + '%Transplant Monitoring%', + '%Track transect%', + '%1996 Amphibian Visual Encounter Survey%', + '%Ungulate Surveys%', + '%Spring Nest Monitoring%', + '%1997 - Winter Track Surveys%', + '%Late Winter Reconnaissance Flights%', + '%Aerial Survey Summary%', + '%Nest Observations%', + '%Ground and Aerial Track Counts%', + '%owl Observations%', + '%Visual Den Search%', + '%Aerial classification%', + '%Helicopter Survey%', + '%Sticknest Surveys%', + '%Reconnaisance%', + '%Elk Conflicts%', + '%Migrating Bird%', + '%Post Metamorph Juvenile Counts%', + '%Detection Surveys, Egg counts, Dye tracking, Radio-telemetry%', + '%Stratified Stand Survey%', + '%Winter Aerial Survey%', + '%Aerial Summer Population Count & Composition%', + '%1987 Mule Deer Aerial Census Two Rivers%', + '%Road Counts%', + '%Aerial Summer Migratory Survey%', + '%Visual Egg Inventory%', + '%Caribou Lichen Availability%', + '%Aerial Stick Nest Survey%', + '%Inventory and Nesting Habitat%', + '%Northern Goshawk Call Playback%', + '%Burrow Survey%', + '%Egg Mass Surveys%', + '%Breeding Bird Surveys%', + '%March 2010 Caribou survey Columbia mountains%', + '%Aerial Track Survey%', + '%Sticknest Survey%', + '%Moose- Aerial Census%', + '%Ungulate Survey%', + '%Ground Search%', + '%Den Monitoring%', + '%Breeding Site Survey%', + '%visual survey%', + '%Egg Mass Collection%', + '%Roadside Point Count%', + '%Aerial Track Counts%', + '%Planting Survey%', + '%General Nest Survey%', + '%Nest Searches%', + '%Ground and Aerial Survey%', + '%Egg mass survey%', + '%Aerial survey%', + '%Visual Envounter Surveys%', + '%Point Count Observations%', + '%Spring Spotlight Counts%', + '%Volunteer Road Transect Survey%', + '%Aerial Late Winter Survey%', + '%Transect and Aerial Surveys and Incidentals%', + '%2007 Kinaskan sheep/goat aerial survey%', + '%standwatch%', + '%Transect and Trapping Survey%', + '%Aerial Winter Reconnaissance%', + '%Aerial Total Count%', + '%1997 - Track Transect Survey%', + '%Salvage Sweep%', + '%Aerial Occurrence Survey%', + '%Artificial Cover Object Surveys%', + '%Snow tracking transect%', + '%Transect Visual Encounter Surveys%', + '%Nest Survey%', + '%Visbility Trials%', + '%Ground Survey%', + '%Vascular Plants%', + '%Reconnaissance Survey%', + '%2008 warbler breeding bird survey%', + '%Road Transects%', + '%Monitoring Survey%', + '%Pellet Counts%', + '%Stand Watch and Nest Search%', + '%General Survey Road Transect%', + '%1992-Bison-Aerial Survey-Sikanni Chief River%', + '%Aerial Presence Not Detected Survey%', + '%2009-Grand Coulee owl-monitoring-South Okanagan%', + '%aerial census%', + '%Nest Visit%', + '%Ground Counts%', + '%Pair and Brood Surveys%', + '%Forest berry productivity%', + '%Berry Production Survey%', + '%Nest Search%', + '%1988 Mule Deer Aerial Census Block D9%', + '%1988 Mule Deer Aerial Census Block D4%', + '%Track/Pellet Transect%', + '%Nest Monitoring and Searches%', + '%Walking transect survey%', + '%Composition Surveys%', + '%Burrow Inventory%', + '%UWR Occupancy Surveys%', + '%Aerial and Ground Census%', + '%Forest berry productivity survey%', + '%Aerial & Ground Surveys%', + '%1997 - Badger Historical Data Collection%', + '%Annual Bat Watch%', + '%Visual Surveys%', + '%Aerial Observations%', + '%1988 Mule Deer Aerial Census Block D1%', + '%Visual Search%', + '%2009-Deer-snow tracking-tfl49%', + '%Nesting Inventory%', + '%Winter Tracking%', + '%tailed Deer Winter Track%', + '%1996 - Woodpecker Sign%', + '%WNS and Pd Surveillance%', + '%Hibernacia Ground Search%', + '%1996 -1997 - Blue Grouse Survey%', + '%Aerial Recce%', + '%1990 Mountain Goat Aerial Census Bullmoose Mtn.%', + '%TrackTransect%', + '%Nest Monitoring and Searches%', + '%Walking transect survey%', + '%Composition Surveys%', + '%Burrow Inventory%', + '%Aerial and Ground Census%', + '%2010- mountain goat- aerial - mid-Iskut River%', + '%Point Count Observations%', + '%Spring Spotlight Counts%', + '%Aerial Sticknest Survey%', + '%Aerial Observations%') THEN 'Visual Encounter' + -- Radio + WHEN sp.method_type_cd IN ( + '12-Administrative Miscellaneous', + 'HERPETILE_HABITAT_DATA_1.0', + 'Mortalities', + 'OBS_BAPT_ROAD_2.0', + 'OBS_BATS_DETC', + 'HAN_MAMM_CAPF_2.2', + 'HAN_WOCO_CAPF_2.2', + 'Bird Capture Or Handling', + 'OBS_REPT_CAPT_1.0', + 'Snake Capture', + 'ANIMAL_OBS_SIGN_1.0', + 'Bat Capture Or Handling', + 'OBS_BIRD_CAPT_1.0', + 'Small Mammal Capture Or Handling', + 'HAN_MAMM_CAPF_2.0', + 'Tree Descriptions', + 'HAN_MAMM_CAPF_2.1', + 'Medium to Large Mammal Capture Or Handling', + 'Cap and Hand - Med to Large', + 'OBS_MAM_CAPT_1.0', + 'Animal DNA Collecting', + 'HISTORICAL_DATA', + 'Animal Capture or Marking', + 'Results by Area', + 'Census', + 'LBS') AND sp.survey_name IN ( + '%1997 - Cougar Capture and Telemetry%', + '%Telemetry%', + '%1996-2006 - Badger Capture and Radio Telemetry%', + '%1996-97 ELK Capture and Telemetry - MU 7 -50%', + '%1996-98 - Mountain Goat Capture and Telemetry%', + '%1997-98 Grizzly Bear Capture and Telemetry%', + '%1996-99 - Mountain Goat Telemetry%', + '%Oregon Spotted Frog-Bull Frog- Telemetry%', + '%Capture and Radio Telemetry%', + '%Telemetry Survey%', + '%Collaring and Telemetry%', + '%1998 - Moose Radio Telemetry Survey%', + '%1996-99 - Mountain Goat Site Survey%', + '%1998 -2002 - Elk Capture and Telemetry%', + '%1996 -1998 - Caribou Capture and Radio Telemetry%', + '%1997 - VI Goshawk Capture and Telemetry%', + '%2003 - Mountain Goat GPS Collars and Aerial Surveys%') THEN 'Radio' + -- Box or live trap + WHEN sp.method_type_cd IN ( + '12-Administrative Miscellaneous', + 'HERPETILE_HABITAT_DATA_1.0', + 'Mortalities', + 'OBS_BAPT_ROAD_2.0', + 'OBS_BATS_DETC', + 'HAN_MAMM_CAPF_2.2', + 'HAN_WOCO_CAPF_2.2', + 'Bird Capture Or Handling', + 'OBS_REPT_CAPT_1.0', + 'Snake Capture', + 'ANIMAL_OBS_SIGN_1.0', + 'Bat Capture Or Handling', + 'OBS_BIRD_CAPT_1.0', + 'Small Mammal Capture Or Handling', + 'HAN_MAMM_CAPF_2.0', + 'Tree Descriptions', + 'HAN_MAMM_CAPF_2.1', + 'Medium to Large Mammal Capture Or Handling', + 'Cap and Hand - Med to Large', + 'OBS_MAM_CAPT_1.0', + 'Animal DNA Collecting', + 'HISTORICAL_DATA', + 'Animal Capture or Marking', + 'Results by Area', + 'Census', + 'LBS') AND sp.survey_name IN ( + '%Trapping%', + '%Capture and Aerial Telemetry%', + '%Live Trapping%', + '%Live-capture%', + '%2009-Keens mouse-Trapping-Kitimat%', + '%2004 Mountain goat capture and monitoring%', + '%Mark Recapture%', + '%1999 -2000 Snake Capture and Radio Telemetry%', + '%1997-98 Grizzly Bear Capture and Telemetry%', + '%Capture and Monitoring%', + '%2009-Northern Goshawk-Nest Monitoring-Skeena%', + '%Mark Recapture and Visual Survey%', + '%2009-Deer-snow tracking-tfl49%', + '%Capture and Geolocator%', + '%Pesticide Research-Capture%', + '%Capture Survey%', + '%General, Mark Recapture and Road Surveys%', + '%DNA Mark-Recapture%', + '%1997 - VI Goshawk Capture and Telemetry%', + '%Capture and transport%') THEN 'Box or live trap' + -- Mist Net-- + WHEN sp.method_type_cd IN ( + '12-Administrative Miscellaneous', + 'HERPETILE_HABITAT_DATA_1.0', + 'Mortalities', + 'OBS_BAPT_ROAD_2.0', + 'OBS_BATS_DETC', + 'HAN_MAMM_CAPF_2.2', + 'HAN_WOCO_CAPF_2.2', + 'Bird Capture Or Handling', + 'OBS_REPT_CAPT_1.0', + 'Snake Capture', + 'ANIMAL_OBS_SIGN_1.0', + 'Bat Capture Or Handling', + 'OBS_BIRD_CAPT_1.0', + 'Small Mammal Capture Or Handling', + 'HAN_MAMM_CAPF_2.0', + 'Tree Descriptions', + 'HAN_MAMM_CAPF_2.1', + 'Medium to Large Mammal Capture Or Handling', + 'Cap and Hand - Med to Large', + 'OBS_MAM_CAPT_1.0', + 'Animal DNA Collecting', + 'HISTORICAL_DATA', + 'Animal Capture or Marking', + 'Results by Area', + 'Census', + 'LBS') AND sp.survey_name IN ( + '%Mugaha Marsh Banding Station%', + '%Call Play Back Capture and Banding%', + '%Mist netting%', + '%2009-Wetland Birds-Playback-PeaceFD%', + '%Banding and Nest Monitoring%', + '%Mist Net Capture%', + '%Monitoring and Banding%', + '%Banding%', + '%1996 - QCI Goshawk Capture and Telemetry%', + '%Mist-netting%') THEN 'Mist Net' + -- Pitfall trap + WHEN sp.method_type_cd IN ( + '12-Administrative Miscellaneous', + 'HERPETILE_HABITAT_DATA_1.0', + 'Mortalities', + 'OBS_BAPT_ROAD_2.0', + 'OBS_BATS_DETC', + 'HAN_MAMM_CAPF_2.2', + 'HAN_WOCO_CAPF_2.2', + 'Bird Capture Or Handling', + 'OBS_REPT_CAPT_1.0', + 'Snake Capture', + 'ANIMAL_OBS_SIGN_1.0', + 'Bat Capture Or Handling', + 'OBS_BIRD_CAPT_1.0', + 'Small Mammal Capture Or Handling', + 'HAN_MAMM_CAPF_2.0', + 'Tree Descriptions', + 'HAN_MAMM_CAPF_2.1', + 'Medium to Large Mammal Capture Or Handling', + 'Cap and Hand - Med to Large', + 'OBS_MAM_CAPT_1.0', + 'Animal DNA Collecting', + 'HISTORICAL_DATA', + 'Animal Capture or Marking', + 'Results by Area', + 'Census', + 'LBS') AND sp.survey_name IN ( + '%Riparian Pitfall Trapping%', + '%Salvage Trapping%', + '%Western Toad- General salvage%', + '%Amphibian Surveys%', + '%Drop trap%', + '%Salvage/Sweep%', + '%Coastal Tailed Frog Salvage%', + '%Amphibian and Reptile Salvage%', + '%1996 - Amphibian Surveys%', + '%Salvage%', + '%Spadefoot Toad Larval Inventory%') THEN 'Pitfall trap' + -- Audio Encounter + WHEN sp.method_type_cd IN ( + '12-Administrative Miscellaneous', + 'HERPETILE_HABITAT_DATA_1.0', + 'Mortalities', + 'OBS_BAPT_ROAD_2.0', + 'OBS_BATS_DETC', + 'HAN_MAMM_CAPF_2.2', + 'HAN_WOCO_CAPF_2.2', + 'Bird Capture Or Handling', + 'OBS_REPT_CAPT_1.0', + 'Snake Capture', + 'ANIMAL_OBS_SIGN_1.0', + 'Bat Capture Or Handling', + 'OBS_BIRD_CAPT_1.0', + 'Small Mammal Capture Or Handling', + 'HAN_MAMM_CAPF_2.0', + 'Tree Descriptions', + 'HAN_MAMM_CAPF_2.1', + 'Medium to Large Mammal Capture Or Handling', + 'Cap and Hand - Med to Large', + 'OBS_MAM_CAPT_1.0', + 'Animal DNA Collecting', + 'HISTORICAL_DATA', + 'Animal Capture or Marking', + 'Results by Area', + 'Census', + 'LBS') AND sp.survey_name IN ( + '%Auditory and Nest Search Surveys%', + '%Spadefoot Toad Auditory Survey%', + '%Call playback inventory%', + '%Call Playback%', + '%2006 Williamsons Sapsucker Call Playback%') THEN 'Audio Encounter' + -- Drone + WHEN sp.method_type_cd IN ( + '12-Administrative Miscellaneous', + 'HERPETILE_HABITAT_DATA_1.0', + 'Mortalities', + 'OBS_BAPT_ROAD_2.0', + 'OBS_BATS_DETC', + 'HAN_MAMM_CAPF_2.2', + 'HAN_WOCO_CAPF_2.2', + 'Bird Capture Or Handling', + 'OBS_REPT_CAPT_1.0', + 'Snake Capture', + 'ANIMAL_OBS_SIGN_1.0', + 'Bat Capture Or Handling', + 'OBS_BIRD_CAPT_1.0', + 'Small Mammal Capture Or Handling', + 'HAN_MAMM_CAPF_2.0', + 'Tree Descriptions', + 'HAN_MAMM_CAPF_2.1', + 'Medium to Large Mammal Capture Or Handling', + 'Cap and Hand - Med to Large', + 'OBS_MAM_CAPT_1.0', + 'Animal DNA Collecting', + 'HISTORICAL_DATA', + 'Animal Capture or Marking', + 'Results by Area', + 'Census', + 'LBS') AND sp.survey_name IN ( + '%Unmanned Aerial Vehicle Survey%', + '%Unmanned Aerial Vehicle Track Survey%', + '%UAV Block Survey%') THEN 'Drone' + -- Electrofishing + WHEN sp.method_type_cd IN ( + '12-Administrative Miscellaneous', + 'HERPETILE_HABITAT_DATA_1.0', + 'Mortalities', + 'OBS_BAPT_ROAD_2.0', + 'OBS_BATS_DETC', + 'HAN_MAMM_CAPF_2.2', + 'HAN_WOCO_CAPF_2.2', + 'Bird Capture Or Handling', + 'OBS_REPT_CAPT_1.0', + 'Snake Capture', + 'ANIMAL_OBS_SIGN_1.0', + 'Bat Capture Or Handling', + 'OBS_BIRD_CAPT_1.0', + 'Small Mammal Capture Or Handling', + 'HAN_MAMM_CAPF_2.0', + 'Tree Descriptions', + 'HAN_MAMM_CAPF_2.1', + 'Medium to Large Mammal Capture Or Handling', + 'Cap and Hand - Med to Large', + 'OBS_MAM_CAPT_1.0', + 'Animal DNA Collecting', + 'HISTORICAL_DATA', + 'Animal Capture or Marking', + 'Results by Area', + 'Census', + 'LBS') AND sp.survey_name IN ( + '%Electrofishing%', + '%TCS and Electrofishing%') THEN 'Electrofishing' + -- Camera Trap + WHEN sp.method_type_cd IN ( + '12-Administrative Miscellaneous', + 'HERPETILE_HABITAT_DATA_1.0', + 'Mortalities', + 'OBS_BAPT_ROAD_2.0', + 'OBS_BATS_DETC', + 'HAN_MAMM_CAPF_2.2', + 'HAN_WOCO_CAPF_2.2', + 'Bird Capture Or Handling', + 'OBS_REPT_CAPT_1.0', + 'Snake Capture', + 'ANIMAL_OBS_SIGN_1.0', + 'Bat Capture Or Handling', + 'OBS_BIRD_CAPT_1.0', + 'Small Mammal Capture Or Handling', + 'HAN_MAMM_CAPF_2.0', + 'Tree Descriptions', + 'HAN_MAMM_CAPF_2.1', + 'Medium to Large Mammal Capture Or Handling', + 'Cap and Hand - Med to Large', + 'OBS_MAM_CAPT_1.0', + 'Animal DNA Collecting', + 'HISTORICAL_DATA', + 'Animal Capture or Marking', + 'Results by Area', + 'Census', + 'LBS') AND sp.survey_name IN ( + '%Aerial Survey and Cameras Traps%', + '%Photo survey%', + '%Remote Camera%', + '%Supplemental Feeding/Remote Camera%', + '%Telemetry and Wildlife Cameras%', + '%Remote Camera Survey%', + '%Camera Stations%', + '%General Survey Auditory%', + '%Remote Cameras and Hair Snag%', + '%Camera%', + '%Telemetry and Wildlife Cameras%') THEN 'Camera Trap' + + -- Handheld net + WHEN sp.method_type_cd IN ( + '12-Administrative Miscellaneous', + 'HERPETILE_HABITAT_DATA_1.0', + 'Mortalities', + 'OBS_BAPT_ROAD_2.0', + 'OBS_BATS_DETC', + 'HAN_MAMM_CAPF_2.2', + 'HAN_WOCO_CAPF_2.2', + 'Bird Capture Or Handling', + 'OBS_REPT_CAPT_1.0', + 'Snake Capture', + 'ANIMAL_OBS_SIGN_1.0', + 'Bat Capture Or Handling', + 'OBS_BIRD_CAPT_1.0', + 'Small Mammal Capture Or Handling', + 'HAN_MAMM_CAPF_2.0', + 'Tree Descriptions', + 'HAN_MAMM_CAPF_2.1', + 'Medium to Large Mammal Capture Or Handling', + 'Cap and Hand - Med to Large', + 'OBS_MAM_CAPT_1.0', + 'Animal DNA Collecting', + 'HISTORICAL_DATA', + 'Animal Capture or Marking', + 'Results by Area', + 'Census', + 'LBS') AND sp.survey_name IN ( + '%Tadpole Capture and Sampling%', + '%Spadefoot Toad Larval Inventory%', + '%Dipnet%', + '%Amphibian Visual Encounter and Dipnet Survey%', + '%Sweep net%') THEN 'Handheld net' + -- Hair Snag + WHEN sp.method_type_cd IN ( + '12-Administrative Miscellaneous', + 'HERPETILE_HABITAT_DATA_1.0', + 'Mortalities', + 'OBS_BAPT_ROAD_2.0', + 'OBS_BATS_DETC', + 'HAN_MAMM_CAPF_2.2', + 'HAN_WOCO_CAPF_2.2', + 'Bird Capture Or Handling', + 'OBS_REPT_CAPT_1.0', + 'Snake Capture', + 'ANIMAL_OBS_SIGN_1.0', + 'Bat Capture Or Handling', + 'OBS_BIRD_CAPT_1.0', + 'Small Mammal Capture Or Handling', + 'HAN_MAMM_CAPF_2.0', + 'Tree Descriptions', + 'HAN_MAMM_CAPF_2.1', + 'Medium to Large Mammal Capture Or Handling', + 'Cap and Hand - Med to Large', + 'OBS_MAM_CAPT_1.0', + 'Animal DNA Collecting', + 'HISTORICAL_DATA', + 'Animal Capture or Marking', + 'Results by Area', + 'Census', + 'LBS') AND sp.survey_name IN ( + '%Hair-snagging%', + '%Hair Snare%', + '%Hair Snagging Sampling%', + '%Hair Snare DNA Survey%', + '%Hair Snare Census Grid%', + '%1996 -1998 - Kermode Bear Hair Snare Suveys%', + '%Hair Collection for Genetic Population Assignment%', + '%2000-ongoing - Grizzly Bear Detection and Identification%', + '%Hair Snag DNA Survey%') THEN 'Hair Snag' + + -- Angling + WHEN sp.method_type_cd IN ( + '12-Administrative Miscellaneous', + 'HERPETILE_HABITAT_DATA_1.0', + 'Mortalities', + 'OBS_BAPT_ROAD_2.0', + 'OBS_BATS_DETC', + 'HAN_MAMM_CAPF_2.2', + 'HAN_WOCO_CAPF_2.2', + 'Bird Capture Or Handling', + 'OBS_REPT_CAPT_1.0', + 'Snake Capture', + 'ANIMAL_OBS_SIGN_1.0', + 'Bat Capture Or Handling', + 'OBS_BIRD_CAPT_1.0', + 'Small Mammal Capture Or Handling', + 'HAN_MAMM_CAPF_2.0', + 'Tree Descriptions', + 'HAN_MAMM_CAPF_2.1', + 'Medium to Large Mammal Capture Or Handling', + 'Cap and Hand - Med to Large', + 'OBS_MAM_CAPT_1.0', + 'Animal DNA Collecting', + 'HISTORICAL_DATA', + 'Animal Capture or Marking', + 'Results by Area', + 'Census', + 'LBS') AND sp.survey_name LIKE '%Accoustic Lure%' THEN 'Angling' + + -- Trap net + WHEN sp.method_type_cd IN ( + '12-Administrative Miscellaneous', + 'HERPETILE_HABITAT_DATA_1.0', + 'Mortalities', + 'OBS_BAPT_ROAD_2.0', + 'OBS_BATS_DETC', + 'HAN_MAMM_CAPF_2.2', + 'HAN_WOCO_CAPF_2.2', + 'Bird Capture Or Handling', + 'OBS_REPT_CAPT_1.0', + 'Snake Capture', + 'ANIMAL_OBS_SIGN_1.0', + 'Bat Capture Or Handling', + 'OBS_BIRD_CAPT_1.0', + 'Small Mammal Capture Or Handling', + 'HAN_MAMM_CAPF_2.0', + 'Tree Descriptions', + 'HAN_MAMM_CAPF_2.1', + 'Medium to Large Mammal Capture Or Handling', + 'Cap and Hand - Med to Large', + 'OBS_MAM_CAPT_1.0', + 'Animal DNA Collecting', + 'HISTORICAL_DATA', + 'Animal Capture or Marking', + 'Results by Area', + 'Census', + 'LBS') AND sp.survey_name IN ( + '%Funnel Trap Surveys%', + '%Minnow Trapping%', + '%Minnow Trap Surveys%', + '%Salvage Transects%') THEN 'Trap net' + + -- Radar + WHEN sp.method_type_cd IN ( + '12-Administrative Miscellaneous', + 'HERPETILE_HABITAT_DATA_1.0', + 'Mortalities', + 'OBS_BAPT_ROAD_2.0', + 'OBS_BATS_DETC', + 'HAN_MAMM_CAPF_2.2', + 'HAN_WOCO_CAPF_2.2', + 'Bird Capture Or Handling', + 'OBS_REPT_CAPT_1.0', + 'Snake Capture', + 'ANIMAL_OBS_SIGN_1.0', + 'Bat Capture Or Handling', + 'OBS_BIRD_CAPT_1.0', + 'Small Mammal Capture Or Handling', + 'HAN_MAMM_CAPF_2.0', + 'Tree Descriptions', + 'HAN_MAMM_CAPF_2.1', + 'Medium to Large Mammal Capture Or Handling', + 'Cap and Hand - Med to Large', + 'OBS_MAM_CAPT_1.0', + 'Animal DNA Collecting', + 'HISTORICAL_DATA', + 'Animal Capture or Marking', + 'Results by Area', + 'Census', + 'LBS') AND sp.survey_name IN ( + '%SAR Surveys%', + '%Radar%', + '%Marmot%', + '%Radar Survey%') THEN 'Radar' + + -- Gun net + WHEN sp.method_type_cd IN ( + '12-Administrative Miscellaneous', + 'HERPETILE_HABITAT_DATA_1.0', + 'Mortalities', + 'OBS_BAPT_ROAD_2.0', + 'OBS_BATS_DETC', + 'HAN_MAMM_CAPF_2.2', + 'HAN_WOCO_CAPF_2.2', + 'Bird Capture Or Handling', + 'OBS_REPT_CAPT_1.0', + 'Snake Capture', + 'ANIMAL_OBS_SIGN_1.0', + 'Bat Capture Or Handling', + 'OBS_BIRD_CAPT_1.0', + 'Small Mammal Capture Or Handling', + 'HAN_MAMM_CAPF_2.0', + 'Tree Descriptions', + 'HAN_MAMM_CAPF_2.1', + 'Medium to Large Mammal Capture Or Handling', + 'Cap and Hand - Med to Large', + 'OBS_MAM_CAPT_1.0', + 'Animal DNA Collecting', + 'HISTORICAL_DATA', + 'Animal Capture or Marking', + 'Results by Area', + 'Census', + 'LBS') AND sp.survey_name LIKE '%Aerial Net Gunning and Collar Removal%' THEN 'Gun net' + + -- Point count + WHEN sp.method_type_cd IN ( + '12-Administrative Miscellaneous', + 'HERPETILE_HABITAT_DATA_1.0', + 'Mortalities', + 'OBS_BAPT_ROAD_2.0', + 'OBS_BATS_DETC', + 'HAN_MAMM_CAPF_2.2', + 'HAN_WOCO_CAPF_2.2', + 'Bird Capture Or Handling', + 'OBS_REPT_CAPT_1.0', + 'Snake Capture', + 'ANIMAL_OBS_SIGN_1.0', + 'Bat Capture Or Handling', + 'OBS_BIRD_CAPT_1.0', + 'Small Mammal Capture Or Handling', + 'HAN_MAMM_CAPF_2.0', + 'Tree Descriptions', + 'HAN_MAMM_CAPF_2.1', + 'Medium to Large Mammal Capture Or Handling', + 'Cap and Hand - Med to Large', + 'OBS_MAM_CAPT_1.0', + 'Animal DNA Collecting', + 'HISTORICAL_DATA', + 'Animal Capture or Marking', + 'Results by Area', + 'Census', + 'LBS') AND sp.survey_name IN ( + '%ARU/Point Count%', + '%Point Count Survey%', + '%Point count%', + '%Point Count Inventory%', + '%Point Count Stations%', + '%Roadside Point Count%', + '%Point Count and Nest Surveys%', + '%Point Counts%') THEN 'Point count' ELSE 'Undetermined' END = ml.name; ) @@ -110,28 +884,23 @@ export const transformSamplingMethods = async (connection: IDBConnection): Promi LEFT JOIN w_method_lookups wml ON wml.survey_id = sss.survey_id; ------------------ INSERTING technique outputs INTO survey_sample_method ------ - INSERT INTO biohub.survey_sample_method (survey_sample_site_id, method_technique_id) - - - FROM biohub.survey s - WHERE s.spi_survey_id IS NOT NULL - JOIN survey_sample_site sss ON - sss.survey_id = s.survey_id - - - - -- survey sample site id comes from survey samples site - -- method_technique_id comes from joining survey sapmle site id onto survey sample site table on survey sample id, and then grabbing the survey id from that table - -- and using that survey id to join on method_technique table in the survey_id column and then inserting the method_technique_id into the survey_sample_method method_technique id - -- for each method technique, insert into method the technique into all sample sites join on biohub.survey WHERE spi_survey_id is not NULL +----------------- INSERTING technique outputs INTO survey_sample_method where spi survey id is not null (ie only for spi migration surveys) ------ +INSERT INTO biohub.survey_sample_method (survey_sample_site_id, method_technique_id) +SELECT + sss.survey_sample_site_id, + mt.method_technique_id +FROM + biohub.survey s +JOIN + biohub.survey_sample_site sss ON s.survey_id = sss.survey_id +JOIN + biohub.method_technique mt ON mt.survey_id = s.survey_id +WHERE + s.spi_survey_id IS NOT NULL; `; -<<<<<<< HEAD await connection.sql(transformSamplingMethods); -======= await connection.sql(sql); ->>>>>>> 7da2dd8bc4e8ae79bd8ba7d5fe88f728a08518aa console.log('Successfully transformed Sampling Methods'); }; From a358281b436eab8b06d35844868010fe8961607f Mon Sep 17 00:00:00 2001 From: Meijer Date: Wed, 28 Aug 2024 13:49:00 -0700 Subject: [PATCH 03/29] trying to fix indentations on when statements --- spi/src/transformations/sampling_methods.ts | 716 ++++++++++---------- 1 file changed, 358 insertions(+), 358 deletions(-) diff --git a/spi/src/transformations/sampling_methods.ts b/spi/src/transformations/sampling_methods.ts index 660c2a127e..3426f684b3 100644 --- a/spi/src/transformations/sampling_methods.ts +++ b/spi/src/transformations/sampling_methods.ts @@ -506,370 +506,370 @@ export const transformSamplingMethods = async (connection: IDBConnection): Promi '%Salvage%', '%Spadefoot Toad Larval Inventory%') THEN 'Pitfall trap' -- Audio Encounter - WHEN sp.method_type_cd IN ( - '12-Administrative Miscellaneous', - 'HERPETILE_HABITAT_DATA_1.0', - 'Mortalities', - 'OBS_BAPT_ROAD_2.0', - 'OBS_BATS_DETC', - 'HAN_MAMM_CAPF_2.2', - 'HAN_WOCO_CAPF_2.2', - 'Bird Capture Or Handling', - 'OBS_REPT_CAPT_1.0', - 'Snake Capture', - 'ANIMAL_OBS_SIGN_1.0', - 'Bat Capture Or Handling', - 'OBS_BIRD_CAPT_1.0', - 'Small Mammal Capture Or Handling', - 'HAN_MAMM_CAPF_2.0', - 'Tree Descriptions', - 'HAN_MAMM_CAPF_2.1', - 'Medium to Large Mammal Capture Or Handling', - 'Cap and Hand - Med to Large', - 'OBS_MAM_CAPT_1.0', - 'Animal DNA Collecting', - 'HISTORICAL_DATA', - 'Animal Capture or Marking', - 'Results by Area', - 'Census', - 'LBS') AND sp.survey_name IN ( - '%Auditory and Nest Search Surveys%', - '%Spadefoot Toad Auditory Survey%', - '%Call playback inventory%', - '%Call Playback%', - '%2006 Williamsons Sapsucker Call Playback%') THEN 'Audio Encounter' - -- Drone - WHEN sp.method_type_cd IN ( - '12-Administrative Miscellaneous', - 'HERPETILE_HABITAT_DATA_1.0', - 'Mortalities', - 'OBS_BAPT_ROAD_2.0', - 'OBS_BATS_DETC', - 'HAN_MAMM_CAPF_2.2', - 'HAN_WOCO_CAPF_2.2', - 'Bird Capture Or Handling', - 'OBS_REPT_CAPT_1.0', - 'Snake Capture', - 'ANIMAL_OBS_SIGN_1.0', - 'Bat Capture Or Handling', - 'OBS_BIRD_CAPT_1.0', - 'Small Mammal Capture Or Handling', - 'HAN_MAMM_CAPF_2.0', - 'Tree Descriptions', - 'HAN_MAMM_CAPF_2.1', - 'Medium to Large Mammal Capture Or Handling', - 'Cap and Hand - Med to Large', - 'OBS_MAM_CAPT_1.0', - 'Animal DNA Collecting', - 'HISTORICAL_DATA', - 'Animal Capture or Marking', - 'Results by Area', - 'Census', - 'LBS') AND sp.survey_name IN ( - '%Unmanned Aerial Vehicle Survey%', - '%Unmanned Aerial Vehicle Track Survey%', - '%UAV Block Survey%') THEN 'Drone' - -- Electrofishing - WHEN sp.method_type_cd IN ( - '12-Administrative Miscellaneous', - 'HERPETILE_HABITAT_DATA_1.0', - 'Mortalities', - 'OBS_BAPT_ROAD_2.0', - 'OBS_BATS_DETC', - 'HAN_MAMM_CAPF_2.2', - 'HAN_WOCO_CAPF_2.2', - 'Bird Capture Or Handling', - 'OBS_REPT_CAPT_1.0', - 'Snake Capture', - 'ANIMAL_OBS_SIGN_1.0', - 'Bat Capture Or Handling', - 'OBS_BIRD_CAPT_1.0', - 'Small Mammal Capture Or Handling', - 'HAN_MAMM_CAPF_2.0', - 'Tree Descriptions', - 'HAN_MAMM_CAPF_2.1', - 'Medium to Large Mammal Capture Or Handling', - 'Cap and Hand - Med to Large', - 'OBS_MAM_CAPT_1.0', - 'Animal DNA Collecting', - 'HISTORICAL_DATA', - 'Animal Capture or Marking', - 'Results by Area', - 'Census', - 'LBS') AND sp.survey_name IN ( - '%Electrofishing%', - '%TCS and Electrofishing%') THEN 'Electrofishing' - -- Camera Trap - WHEN sp.method_type_cd IN ( - '12-Administrative Miscellaneous', - 'HERPETILE_HABITAT_DATA_1.0', - 'Mortalities', - 'OBS_BAPT_ROAD_2.0', - 'OBS_BATS_DETC', - 'HAN_MAMM_CAPF_2.2', - 'HAN_WOCO_CAPF_2.2', - 'Bird Capture Or Handling', - 'OBS_REPT_CAPT_1.0', - 'Snake Capture', - 'ANIMAL_OBS_SIGN_1.0', - 'Bat Capture Or Handling', - 'OBS_BIRD_CAPT_1.0', - 'Small Mammal Capture Or Handling', - 'HAN_MAMM_CAPF_2.0', - 'Tree Descriptions', - 'HAN_MAMM_CAPF_2.1', - 'Medium to Large Mammal Capture Or Handling', - 'Cap and Hand - Med to Large', - 'OBS_MAM_CAPT_1.0', - 'Animal DNA Collecting', - 'HISTORICAL_DATA', - 'Animal Capture or Marking', - 'Results by Area', - 'Census', - 'LBS') AND sp.survey_name IN ( - '%Aerial Survey and Cameras Traps%', - '%Photo survey%', - '%Remote Camera%', - '%Supplemental Feeding/Remote Camera%', - '%Telemetry and Wildlife Cameras%', - '%Remote Camera Survey%', - '%Camera Stations%', - '%General Survey Auditory%', - '%Remote Cameras and Hair Snag%', - '%Camera%', - '%Telemetry and Wildlife Cameras%') THEN 'Camera Trap' + WHEN sp.method_type_cd IN ( + '12-Administrative Miscellaneous', + 'HERPETILE_HABITAT_DATA_1.0', + 'Mortalities', + 'OBS_BAPT_ROAD_2.0', + 'OBS_BATS_DETC', + 'HAN_MAMM_CAPF_2.2', + 'HAN_WOCO_CAPF_2.2', + 'Bird Capture Or Handling', + 'OBS_REPT_CAPT_1.0', + 'Snake Capture', + 'ANIMAL_OBS_SIGN_1.0', + 'Bat Capture Or Handling', + 'OBS_BIRD_CAPT_1.0', + 'Small Mammal Capture Or Handling', + 'HAN_MAMM_CAPF_2.0', + 'Tree Descriptions', + 'HAN_MAMM_CAPF_2.1', + 'Medium to Large Mammal Capture Or Handling', + 'Cap and Hand - Med to Large', + 'OBS_MAM_CAPT_1.0', + 'Animal DNA Collecting', + 'HISTORICAL_DATA', + 'Animal Capture or Marking', + 'Results by Area', + 'Census', + 'LBS') AND sp.survey_name IN ( + '%Auditory and Nest Search Surveys%', + '%Spadefoot Toad Auditory Survey%', + '%Call playback inventory%', + '%Call Playback%', + '%2006 Williamsons Sapsucker Call Playback%') THEN 'Audio Encounter' + -- Drone + WHEN sp.method_type_cd IN ( + '12-Administrative Miscellaneous', + 'HERPETILE_HABITAT_DATA_1.0', + 'Mortalities', + 'OBS_BAPT_ROAD_2.0', + 'OBS_BATS_DETC', + 'HAN_MAMM_CAPF_2.2', + 'HAN_WOCO_CAPF_2.2', + 'Bird Capture Or Handling', + 'OBS_REPT_CAPT_1.0', + 'Snake Capture', + 'ANIMAL_OBS_SIGN_1.0', + 'Bat Capture Or Handling', + 'OBS_BIRD_CAPT_1.0', + 'Small Mammal Capture Or Handling', + 'HAN_MAMM_CAPF_2.0', + 'Tree Descriptions', + 'HAN_MAMM_CAPF_2.1', + 'Medium to Large Mammal Capture Or Handling', + 'Cap and Hand - Med to Large', + 'OBS_MAM_CAPT_1.0', + 'Animal DNA Collecting', + 'HISTORICAL_DATA', + 'Animal Capture or Marking', + 'Results by Area', + 'Census', + 'LBS') AND sp.survey_name IN ( + '%Unmanned Aerial Vehicle Survey%', + '%Unmanned Aerial Vehicle Track Survey%', + '%UAV Block Survey%') THEN 'Drone' + -- Electrofishing + WHEN sp.method_type_cd IN ( + '12-Administrative Miscellaneous', + 'HERPETILE_HABITAT_DATA_1.0', + 'Mortalities', + 'OBS_BAPT_ROAD_2.0', + 'OBS_BATS_DETC', + 'HAN_MAMM_CAPF_2.2', + 'HAN_WOCO_CAPF_2.2', + 'Bird Capture Or Handling', + 'OBS_REPT_CAPT_1.0', + 'Snake Capture', + 'ANIMAL_OBS_SIGN_1.0', + 'Bat Capture Or Handling', + 'OBS_BIRD_CAPT_1.0', + 'Small Mammal Capture Or Handling', + 'HAN_MAMM_CAPF_2.0', + 'Tree Descriptions', + 'HAN_MAMM_CAPF_2.1', + 'Medium to Large Mammal Capture Or Handling', + 'Cap and Hand - Med to Large', + 'OBS_MAM_CAPT_1.0', + 'Animal DNA Collecting', + 'HISTORICAL_DATA', + 'Animal Capture or Marking', + 'Results by Area', + 'Census', + 'LBS') AND sp.survey_name IN ( + '%Electrofishing%', + '%TCS and Electrofishing%') THEN 'Electrofishing' + -- Camera Trap + WHEN sp.method_type_cd IN ( + '12-Administrative Miscellaneous', + 'HERPETILE_HABITAT_DATA_1.0', + 'Mortalities', + 'OBS_BAPT_ROAD_2.0', + 'OBS_BATS_DETC', + 'HAN_MAMM_CAPF_2.2', + 'HAN_WOCO_CAPF_2.2', + 'Bird Capture Or Handling', + 'OBS_REPT_CAPT_1.0', + 'Snake Capture', + 'ANIMAL_OBS_SIGN_1.0', + 'Bat Capture Or Handling', + 'OBS_BIRD_CAPT_1.0', + 'Small Mammal Capture Or Handling', + 'HAN_MAMM_CAPF_2.0', + 'Tree Descriptions', + 'HAN_MAMM_CAPF_2.1', + 'Medium to Large Mammal Capture Or Handling', + 'Cap and Hand - Med to Large', + 'OBS_MAM_CAPT_1.0', + 'Animal DNA Collecting', + 'HISTORICAL_DATA', + 'Animal Capture or Marking', + 'Results by Area', + 'Census', + 'LBS') AND sp.survey_name IN ( + '%Aerial Survey and Cameras Traps%', + '%Photo survey%', + '%Remote Camera%', + '%Supplemental Feeding/Remote Camera%', + '%Telemetry and Wildlife Cameras%', + '%Remote Camera Survey%', + '%Camera Stations%', + '%General Survey Auditory%', + '%Remote Cameras and Hair Snag%', + '%Camera%', + '%Telemetry and Wildlife Cameras%') THEN 'Camera Trap' - -- Handheld net - WHEN sp.method_type_cd IN ( - '12-Administrative Miscellaneous', - 'HERPETILE_HABITAT_DATA_1.0', - 'Mortalities', - 'OBS_BAPT_ROAD_2.0', - 'OBS_BATS_DETC', - 'HAN_MAMM_CAPF_2.2', - 'HAN_WOCO_CAPF_2.2', - 'Bird Capture Or Handling', - 'OBS_REPT_CAPT_1.0', - 'Snake Capture', - 'ANIMAL_OBS_SIGN_1.0', - 'Bat Capture Or Handling', - 'OBS_BIRD_CAPT_1.0', - 'Small Mammal Capture Or Handling', - 'HAN_MAMM_CAPF_2.0', - 'Tree Descriptions', - 'HAN_MAMM_CAPF_2.1', - 'Medium to Large Mammal Capture Or Handling', - 'Cap and Hand - Med to Large', - 'OBS_MAM_CAPT_1.0', - 'Animal DNA Collecting', - 'HISTORICAL_DATA', - 'Animal Capture or Marking', - 'Results by Area', - 'Census', - 'LBS') AND sp.survey_name IN ( - '%Tadpole Capture and Sampling%', - '%Spadefoot Toad Larval Inventory%', - '%Dipnet%', - '%Amphibian Visual Encounter and Dipnet Survey%', - '%Sweep net%') THEN 'Handheld net' - -- Hair Snag - WHEN sp.method_type_cd IN ( - '12-Administrative Miscellaneous', - 'HERPETILE_HABITAT_DATA_1.0', - 'Mortalities', - 'OBS_BAPT_ROAD_2.0', - 'OBS_BATS_DETC', - 'HAN_MAMM_CAPF_2.2', - 'HAN_WOCO_CAPF_2.2', - 'Bird Capture Or Handling', - 'OBS_REPT_CAPT_1.0', - 'Snake Capture', - 'ANIMAL_OBS_SIGN_1.0', - 'Bat Capture Or Handling', - 'OBS_BIRD_CAPT_1.0', - 'Small Mammal Capture Or Handling', - 'HAN_MAMM_CAPF_2.0', - 'Tree Descriptions', - 'HAN_MAMM_CAPF_2.1', - 'Medium to Large Mammal Capture Or Handling', - 'Cap and Hand - Med to Large', - 'OBS_MAM_CAPT_1.0', - 'Animal DNA Collecting', - 'HISTORICAL_DATA', - 'Animal Capture or Marking', - 'Results by Area', - 'Census', - 'LBS') AND sp.survey_name IN ( - '%Hair-snagging%', - '%Hair Snare%', - '%Hair Snagging Sampling%', - '%Hair Snare DNA Survey%', - '%Hair Snare Census Grid%', - '%1996 -1998 - Kermode Bear Hair Snare Suveys%', - '%Hair Collection for Genetic Population Assignment%', - '%2000-ongoing - Grizzly Bear Detection and Identification%', - '%Hair Snag DNA Survey%') THEN 'Hair Snag' + -- Handheld net + WHEN sp.method_type_cd IN ( + '12-Administrative Miscellaneous', + 'HERPETILE_HABITAT_DATA_1.0', + 'Mortalities', + 'OBS_BAPT_ROAD_2.0', + 'OBS_BATS_DETC', + 'HAN_MAMM_CAPF_2.2', + 'HAN_WOCO_CAPF_2.2', + 'Bird Capture Or Handling', + 'OBS_REPT_CAPT_1.0', + 'Snake Capture', + 'ANIMAL_OBS_SIGN_1.0', + 'Bat Capture Or Handling', + 'OBS_BIRD_CAPT_1.0', + 'Small Mammal Capture Or Handling', + 'HAN_MAMM_CAPF_2.0', + 'Tree Descriptions', + 'HAN_MAMM_CAPF_2.1', + 'Medium to Large Mammal Capture Or Handling', + 'Cap and Hand - Med to Large', + 'OBS_MAM_CAPT_1.0', + 'Animal DNA Collecting', + 'HISTORICAL_DATA', + 'Animal Capture or Marking', + 'Results by Area', + 'Census', + 'LBS') AND sp.survey_name IN ( + '%Tadpole Capture and Sampling%', + '%Spadefoot Toad Larval Inventory%', + '%Dipnet%', + '%Amphibian Visual Encounter and Dipnet Survey%', + '%Sweep net%') THEN 'Handheld net' + -- Hair Snag + WHEN sp.method_type_cd IN ( + '12-Administrative Miscellaneous', + 'HERPETILE_HABITAT_DATA_1.0', + 'Mortalities', + 'OBS_BAPT_ROAD_2.0', + 'OBS_BATS_DETC', + 'HAN_MAMM_CAPF_2.2', + 'HAN_WOCO_CAPF_2.2', + 'Bird Capture Or Handling', + 'OBS_REPT_CAPT_1.0', + 'Snake Capture', + 'ANIMAL_OBS_SIGN_1.0', + 'Bat Capture Or Handling', + 'OBS_BIRD_CAPT_1.0', + 'Small Mammal Capture Or Handling', + 'HAN_MAMM_CAPF_2.0', + 'Tree Descriptions', + 'HAN_MAMM_CAPF_2.1', + 'Medium to Large Mammal Capture Or Handling', + 'Cap and Hand - Med to Large', + 'OBS_MAM_CAPT_1.0', + 'Animal DNA Collecting', + 'HISTORICAL_DATA', + 'Animal Capture or Marking', + 'Results by Area', + 'Census', + 'LBS') AND sp.survey_name IN ( + '%Hair-snagging%', + '%Hair Snare%', + '%Hair Snagging Sampling%', + '%Hair Snare DNA Survey%', + '%Hair Snare Census Grid%', + '%1996 -1998 - Kermode Bear Hair Snare Suveys%', + '%Hair Collection for Genetic Population Assignment%', + '%2000-ongoing - Grizzly Bear Detection and Identification%', + '%Hair Snag DNA Survey%') THEN 'Hair Snag' - -- Angling - WHEN sp.method_type_cd IN ( - '12-Administrative Miscellaneous', - 'HERPETILE_HABITAT_DATA_1.0', - 'Mortalities', - 'OBS_BAPT_ROAD_2.0', - 'OBS_BATS_DETC', - 'HAN_MAMM_CAPF_2.2', - 'HAN_WOCO_CAPF_2.2', - 'Bird Capture Or Handling', - 'OBS_REPT_CAPT_1.0', - 'Snake Capture', - 'ANIMAL_OBS_SIGN_1.0', - 'Bat Capture Or Handling', - 'OBS_BIRD_CAPT_1.0', - 'Small Mammal Capture Or Handling', - 'HAN_MAMM_CAPF_2.0', - 'Tree Descriptions', - 'HAN_MAMM_CAPF_2.1', - 'Medium to Large Mammal Capture Or Handling', - 'Cap and Hand - Med to Large', - 'OBS_MAM_CAPT_1.0', - 'Animal DNA Collecting', - 'HISTORICAL_DATA', - 'Animal Capture or Marking', - 'Results by Area', - 'Census', - 'LBS') AND sp.survey_name LIKE '%Accoustic Lure%' THEN 'Angling' + -- Angling + WHEN sp.method_type_cd IN ( + '12-Administrative Miscellaneous', + 'HERPETILE_HABITAT_DATA_1.0', + 'Mortalities', + 'OBS_BAPT_ROAD_2.0', + 'OBS_BATS_DETC', + 'HAN_MAMM_CAPF_2.2', + 'HAN_WOCO_CAPF_2.2', + 'Bird Capture Or Handling', + 'OBS_REPT_CAPT_1.0', + 'Snake Capture', + 'ANIMAL_OBS_SIGN_1.0', + 'Bat Capture Or Handling', + 'OBS_BIRD_CAPT_1.0', + 'Small Mammal Capture Or Handling', + 'HAN_MAMM_CAPF_2.0', + 'Tree Descriptions', + 'HAN_MAMM_CAPF_2.1', + 'Medium to Large Mammal Capture Or Handling', + 'Cap and Hand - Med to Large', + 'OBS_MAM_CAPT_1.0', + 'Animal DNA Collecting', + 'HISTORICAL_DATA', + 'Animal Capture or Marking', + 'Results by Area', + 'Census', + 'LBS') AND sp.survey_name LIKE '%Accoustic Lure%' THEN 'Angling' - -- Trap net - WHEN sp.method_type_cd IN ( - '12-Administrative Miscellaneous', - 'HERPETILE_HABITAT_DATA_1.0', - 'Mortalities', - 'OBS_BAPT_ROAD_2.0', - 'OBS_BATS_DETC', - 'HAN_MAMM_CAPF_2.2', - 'HAN_WOCO_CAPF_2.2', - 'Bird Capture Or Handling', - 'OBS_REPT_CAPT_1.0', - 'Snake Capture', - 'ANIMAL_OBS_SIGN_1.0', - 'Bat Capture Or Handling', - 'OBS_BIRD_CAPT_1.0', - 'Small Mammal Capture Or Handling', - 'HAN_MAMM_CAPF_2.0', - 'Tree Descriptions', - 'HAN_MAMM_CAPF_2.1', - 'Medium to Large Mammal Capture Or Handling', - 'Cap and Hand - Med to Large', - 'OBS_MAM_CAPT_1.0', - 'Animal DNA Collecting', - 'HISTORICAL_DATA', - 'Animal Capture or Marking', - 'Results by Area', - 'Census', - 'LBS') AND sp.survey_name IN ( - '%Funnel Trap Surveys%', - '%Minnow Trapping%', - '%Minnow Trap Surveys%', - '%Salvage Transects%') THEN 'Trap net' + -- Trap net + WHEN sp.method_type_cd IN ( + '12-Administrative Miscellaneous', + 'HERPETILE_HABITAT_DATA_1.0', + 'Mortalities', + 'OBS_BAPT_ROAD_2.0', + 'OBS_BATS_DETC', + 'HAN_MAMM_CAPF_2.2', + 'HAN_WOCO_CAPF_2.2', + 'Bird Capture Or Handling', + 'OBS_REPT_CAPT_1.0', + 'Snake Capture', + 'ANIMAL_OBS_SIGN_1.0', + 'Bat Capture Or Handling', + 'OBS_BIRD_CAPT_1.0', + 'Small Mammal Capture Or Handling', + 'HAN_MAMM_CAPF_2.0', + 'Tree Descriptions', + 'HAN_MAMM_CAPF_2.1', + 'Medium to Large Mammal Capture Or Handling', + 'Cap and Hand - Med to Large', + 'OBS_MAM_CAPT_1.0', + 'Animal DNA Collecting', + 'HISTORICAL_DATA', + 'Animal Capture or Marking', + 'Results by Area', + 'Census', + 'LBS') AND sp.survey_name IN ( + '%Funnel Trap Surveys%', + '%Minnow Trapping%', + '%Minnow Trap Surveys%', + '%Salvage Transects%') THEN 'Trap net' - -- Radar - WHEN sp.method_type_cd IN ( - '12-Administrative Miscellaneous', - 'HERPETILE_HABITAT_DATA_1.0', - 'Mortalities', - 'OBS_BAPT_ROAD_2.0', - 'OBS_BATS_DETC', - 'HAN_MAMM_CAPF_2.2', - 'HAN_WOCO_CAPF_2.2', - 'Bird Capture Or Handling', - 'OBS_REPT_CAPT_1.0', - 'Snake Capture', - 'ANIMAL_OBS_SIGN_1.0', - 'Bat Capture Or Handling', - 'OBS_BIRD_CAPT_1.0', - 'Small Mammal Capture Or Handling', - 'HAN_MAMM_CAPF_2.0', - 'Tree Descriptions', - 'HAN_MAMM_CAPF_2.1', - 'Medium to Large Mammal Capture Or Handling', - 'Cap and Hand - Med to Large', - 'OBS_MAM_CAPT_1.0', - 'Animal DNA Collecting', - 'HISTORICAL_DATA', - 'Animal Capture or Marking', - 'Results by Area', - 'Census', - 'LBS') AND sp.survey_name IN ( - '%SAR Surveys%', - '%Radar%', - '%Marmot%', - '%Radar Survey%') THEN 'Radar' + -- Radar + WHEN sp.method_type_cd IN ( + '12-Administrative Miscellaneous', + 'HERPETILE_HABITAT_DATA_1.0', + 'Mortalities', + 'OBS_BAPT_ROAD_2.0', + 'OBS_BATS_DETC', + 'HAN_MAMM_CAPF_2.2', + 'HAN_WOCO_CAPF_2.2', + 'Bird Capture Or Handling', + 'OBS_REPT_CAPT_1.0', + 'Snake Capture', + 'ANIMAL_OBS_SIGN_1.0', + 'Bat Capture Or Handling', + 'OBS_BIRD_CAPT_1.0', + 'Small Mammal Capture Or Handling', + 'HAN_MAMM_CAPF_2.0', + 'Tree Descriptions', + 'HAN_MAMM_CAPF_2.1', + 'Medium to Large Mammal Capture Or Handling', + 'Cap and Hand - Med to Large', + 'OBS_MAM_CAPT_1.0', + 'Animal DNA Collecting', + 'HISTORICAL_DATA', + 'Animal Capture or Marking', + 'Results by Area', + 'Census', + 'LBS') AND sp.survey_name IN ( + '%SAR Surveys%', + '%Radar%', + '%Marmot%', + '%Radar Survey%') THEN 'Radar' - -- Gun net - WHEN sp.method_type_cd IN ( - '12-Administrative Miscellaneous', - 'HERPETILE_HABITAT_DATA_1.0', - 'Mortalities', - 'OBS_BAPT_ROAD_2.0', - 'OBS_BATS_DETC', - 'HAN_MAMM_CAPF_2.2', - 'HAN_WOCO_CAPF_2.2', - 'Bird Capture Or Handling', - 'OBS_REPT_CAPT_1.0', - 'Snake Capture', - 'ANIMAL_OBS_SIGN_1.0', - 'Bat Capture Or Handling', - 'OBS_BIRD_CAPT_1.0', - 'Small Mammal Capture Or Handling', - 'HAN_MAMM_CAPF_2.0', - 'Tree Descriptions', - 'HAN_MAMM_CAPF_2.1', - 'Medium to Large Mammal Capture Or Handling', - 'Cap and Hand - Med to Large', - 'OBS_MAM_CAPT_1.0', - 'Animal DNA Collecting', - 'HISTORICAL_DATA', - 'Animal Capture or Marking', - 'Results by Area', - 'Census', - 'LBS') AND sp.survey_name LIKE '%Aerial Net Gunning and Collar Removal%' THEN 'Gun net' + -- Gun net + WHEN sp.method_type_cd IN ( + '12-Administrative Miscellaneous', + 'HERPETILE_HABITAT_DATA_1.0', + 'Mortalities', + 'OBS_BAPT_ROAD_2.0', + 'OBS_BATS_DETC', + 'HAN_MAMM_CAPF_2.2', + 'HAN_WOCO_CAPF_2.2', + 'Bird Capture Or Handling', + 'OBS_REPT_CAPT_1.0', + 'Snake Capture', + 'ANIMAL_OBS_SIGN_1.0', + 'Bat Capture Or Handling', + 'OBS_BIRD_CAPT_1.0', + 'Small Mammal Capture Or Handling', + 'HAN_MAMM_CAPF_2.0', + 'Tree Descriptions', + 'HAN_MAMM_CAPF_2.1', + 'Medium to Large Mammal Capture Or Handling', + 'Cap and Hand - Med to Large', + 'OBS_MAM_CAPT_1.0', + 'Animal DNA Collecting', + 'HISTORICAL_DATA', + 'Animal Capture or Marking', + 'Results by Area', + 'Census', + 'LBS') AND sp.survey_name LIKE '%Aerial Net Gunning and Collar Removal%' THEN 'Gun net' - -- Point count - WHEN sp.method_type_cd IN ( - '12-Administrative Miscellaneous', - 'HERPETILE_HABITAT_DATA_1.0', - 'Mortalities', - 'OBS_BAPT_ROAD_2.0', - 'OBS_BATS_DETC', - 'HAN_MAMM_CAPF_2.2', - 'HAN_WOCO_CAPF_2.2', - 'Bird Capture Or Handling', - 'OBS_REPT_CAPT_1.0', - 'Snake Capture', - 'ANIMAL_OBS_SIGN_1.0', - 'Bat Capture Or Handling', - 'OBS_BIRD_CAPT_1.0', - 'Small Mammal Capture Or Handling', - 'HAN_MAMM_CAPF_2.0', - 'Tree Descriptions', - 'HAN_MAMM_CAPF_2.1', - 'Medium to Large Mammal Capture Or Handling', - 'Cap and Hand - Med to Large', - 'OBS_MAM_CAPT_1.0', - 'Animal DNA Collecting', - 'HISTORICAL_DATA', - 'Animal Capture or Marking', - 'Results by Area', - 'Census', - 'LBS') AND sp.survey_name IN ( - '%ARU/Point Count%', - '%Point Count Survey%', - '%Point count%', - '%Point Count Inventory%', - '%Point Count Stations%', - '%Roadside Point Count%', - '%Point Count and Nest Surveys%', - '%Point Counts%') THEN 'Point count' + -- Point count + WHEN sp.method_type_cd IN ( + '12-Administrative Miscellaneous', + 'HERPETILE_HABITAT_DATA_1.0', + 'Mortalities', + 'OBS_BAPT_ROAD_2.0', + 'OBS_BATS_DETC', + 'HAN_MAMM_CAPF_2.2', + 'HAN_WOCO_CAPF_2.2', + 'Bird Capture Or Handling', + 'OBS_REPT_CAPT_1.0', + 'Snake Capture', + 'ANIMAL_OBS_SIGN_1.0', + 'Bat Capture Or Handling', + 'OBS_BIRD_CAPT_1.0', + 'Small Mammal Capture Or Handling', + 'HAN_MAMM_CAPF_2.0', + 'Tree Descriptions', + 'HAN_MAMM_CAPF_2.1', + 'Medium to Large Mammal Capture Or Handling', + 'Cap and Hand - Med to Large', + 'OBS_MAM_CAPT_1.0', + 'Animal DNA Collecting', + 'HISTORICAL_DATA', + 'Animal Capture or Marking', + 'Results by Area', + 'Census', + 'LBS') AND sp.survey_name IN ( + '%ARU/Point Count%', + '%Point Count Survey%', + '%Point count%', + '%Point Count Inventory%', + '%Point Count Stations%', + '%Roadside Point Count%', + '%Point Count and Nest Surveys%', + '%Point Counts%') THEN 'Point count' ELSE 'Undetermined' END = ml.name; ) From c3e323e1ddadb296ad770522b9be2cec811d4cf8 Mon Sep 17 00:00:00 2001 From: Andrew <105487051+LouisThedroux@users.noreply.github.com> Date: Wed, 28 Aug 2024 15:10:59 -0700 Subject: [PATCH 04/29] currently very broken and returning way too many rows. Not sure how to fix yet --- spi/src/transformations/study-area.ts | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/spi/src/transformations/study-area.ts b/spi/src/transformations/study-area.ts index a8864d1a16..ae29e1ed2b 100644 --- a/spi/src/transformations/study-area.ts +++ b/spi/src/transformations/study-area.ts @@ -8,18 +8,32 @@ export const transformStudyAreas = async (connection: IDBConnection): Promise Date: Wed, 28 Aug 2024 16:54:04 -0700 Subject: [PATCH 05/29] study areas troubleshooting --- .../20240828000000_method_lookup_values.ts | 0 spi/src/transformations/study-area.ts | 23 +++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 database/src/migrations/20240828000000_method_lookup_values.ts diff --git a/database/src/migrations/20240828000000_method_lookup_values.ts b/database/src/migrations/20240828000000_method_lookup_values.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/spi/src/transformations/study-area.ts b/spi/src/transformations/study-area.ts index ae29e1ed2b..deba6bf0f7 100644 --- a/spi/src/transformations/study-area.ts +++ b/spi/src/transformations/study-area.ts @@ -8,6 +8,29 @@ export const transformStudyAreas = async (connection: IDBConnection): Promise Date: Thu, 29 Aug 2024 12:05:41 -0700 Subject: [PATCH 06/29] removed a migrations file i had created in this branch by accident as opposed to method lookups branch --- database/src/migrations/20240828000000_method_lookup_values.ts | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 database/src/migrations/20240828000000_method_lookup_values.ts diff --git a/database/src/migrations/20240828000000_method_lookup_values.ts b/database/src/migrations/20240828000000_method_lookup_values.ts deleted file mode 100644 index e69de29bb2..0000000000 From 6f8d1a13005a7a8734098d4950f738900052e011 Mon Sep 17 00:00:00 2001 From: Meijer Date: Thu, 29 Aug 2024 14:06:49 -0700 Subject: [PATCH 07/29] sudy area script, still need to loop or something to fix timeout error --- spi/package-lock.json | 2767 ++++++++----------------- spi/src/transformations/study-area.ts | 47 +- 2 files changed, 826 insertions(+), 1988 deletions(-) diff --git a/spi/package-lock.json b/spi/package-lock.json index 3f28b9689f..22012d4cf2 100644 --- a/spi/package-lock.json +++ b/spi/package-lock.json @@ -1,79 +1,39 @@ { "name": "spi-migrate", "version": "0.0.0", - "lockfileVersion": 3, + "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "name": "spi-migrate", - "version": "0.0.0", - "license": "Apache-2.0", - "dependencies": { - "knex": "^2.4.2", - "pg": "^8.7.1", - "sql-template-strings": "^2.2.2", - "typescript": "^4.7.4" - }, - "devDependencies": { - "@types/node": "^20.14.11", - "@types/pg": "^8.11.6", - "@typescript-eslint/eslint-plugin": "~7.6.0", - "@typescript-eslint/parser": "~7.6.0", - "eslint": "~8.56.0", - "eslint-config-prettier": "~8.10.0", - "eslint-plugin-prettier": "~4.2.1", - "npm-run-all": "^4.1.5", - "prettier": "^2.8.8", - "prettier-plugin-organize-imports": "^3.2.4", - "ts-node": "^10.9.2" - }, - "engines": { - "node": ">= 18.0.0", - "npm": ">= 10.0.0" - } - }, - "node_modules/@cspotcode/source-map-support": { + "dependencies": { + "@cspotcode/source-map-support": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, - "dependencies": { + "requires": { "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" } }, - "node_modules/@eslint-community/eslint-utils": { + "@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, - "dependencies": { + "requires": { "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@eslint-community/regexpp": { + "@eslint-community/regexpp": { "version": "4.11.0", "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } + "dev": true }, - "node_modules/@eslint/eslintrc": { + "@eslint/eslintrc": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, - "dependencies": { + "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^9.6.0", @@ -84,280 +44,232 @@ "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } } }, - "node_modules/@eslint/js": { + "@eslint/js": { "version": "8.56.0", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } + "dev": true }, - "node_modules/@humanwhocodes/config-array": { + "@humanwhocodes/config-array": { "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", - "deprecated": "Use @eslint/config-array instead", "dev": true, - "dependencies": { + "requires": { "@humanwhocodes/object-schema": "^2.0.2", "debug": "^4.3.1", "minimatch": "^3.0.5" }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } } }, - "node_modules/@humanwhocodes/module-importer": { + "@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } + "dev": true }, - "node_modules/@humanwhocodes/object-schema": { + "@humanwhocodes/object-schema": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", "dev": true }, - "node_modules/@jridgewell/resolve-uri": { + "@jridgewell/resolve-uri": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } + "dev": true }, - "node_modules/@jridgewell/sourcemap-codec": { + "@jridgewell/sourcemap-codec": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", "dev": true }, - "node_modules/@jridgewell/trace-mapping": { + "@jridgewell/trace-mapping": { "version": "0.3.9", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, - "dependencies": { + "requires": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "node_modules/@nodelib/fs.scandir": { + "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, - "dependencies": { + "requires": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" } }, - "node_modules/@nodelib/fs.stat": { + "@nodelib/fs.stat": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } + "dev": true }, - "node_modules/@nodelib/fs.walk": { + "@nodelib/fs.walk": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, - "dependencies": { + "requires": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" } }, - "node_modules/@tsconfig/node10": { + "@tsconfig/node10": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", "dev": true }, - "node_modules/@tsconfig/node12": { + "@tsconfig/node12": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", "dev": true }, - "node_modules/@tsconfig/node14": { + "@tsconfig/node14": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", "dev": true }, - "node_modules/@tsconfig/node16": { + "@tsconfig/node16": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", "dev": true }, - "node_modules/@types/json-schema": { + "@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true }, - "node_modules/@types/node": { - "version": "20.14.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.11.tgz", - "integrity": "sha512-kprQpL8MMeszbz6ojB5/tU8PLN4kesnN8Gjzw349rDlNgsSzg90lAVj3llK99Dh7JON+t9AuscPPFW6mPbTnSA==", + "@types/node": { + "version": "20.16.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.2.tgz", + "integrity": "sha512-91s/n4qUPV/wg8eE9KHYW1kouTfDk2FPGjXbBMfRWP/2vg1rCXNQL1OCabwGs0XSdukuK+MwCDXE30QpSeMUhQ==", "dev": true, - "dependencies": { - "undici-types": "~5.26.4" + "requires": { + "undici-types": "~6.19.2" } }, - "node_modules/@types/pg": { - "version": "8.11.6", - "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.11.6.tgz", - "integrity": "sha512-/2WmmBXHLsfRqzfHW7BNZ8SbYzE8OSk7i3WjFYvfgRHj7S1xj+16Je5fUKv3lVdVzk/zn9TXOqf+avFCFIE0yQ==", + "@types/pg": { + "version": "8.11.8", + "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.11.8.tgz", + "integrity": "sha512-IqpCf8/569txXN/HoP5i1LjXfKZWL76Yr2R77xgeIICUbAYHeoaEZFhYHo2uDftecLWrTJUq63JvQu8q3lnDyA==", "dev": true, - "dependencies": { + "requires": { "@types/node": "*", "pg-protocol": "*", "pg-types": "^4.0.1" - } - }, - "node_modules/@types/pg/node_modules/pg-types": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-4.0.2.tgz", - "integrity": "sha512-cRL3JpS3lKMGsKaWndugWQoLOCoP+Cic8oseVcbr0qhPzYD5DWXK+RZ9LY9wxRf7RQia4SCwQlXk0q6FCPrVng==", - "dev": true, - "dependencies": { - "pg-int8": "1.0.1", - "pg-numeric": "1.0.2", - "postgres-array": "~3.0.1", - "postgres-bytea": "~3.0.0", - "postgres-date": "~2.1.0", - "postgres-interval": "^3.0.0", - "postgres-range": "^1.1.1" }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@types/pg/node_modules/postgres-array": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-3.0.2.tgz", - "integrity": "sha512-6faShkdFugNQCLwucjPcY5ARoW1SlbnrZjmGl0IrrqewpvxvhSLHimCVzqeuULCbG0fQv7Dtk1yDbG3xv7Veog==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@types/pg/node_modules/postgres-bytea": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-3.0.0.tgz", - "integrity": "sha512-CNd4jim9RFPkObHSjVHlVrxoVQXz7quwNFpz7RY1okNNme49+sVyiTvTRobiLV548Hx/hb1BG+iE7h9493WzFw==", - "dev": true, "dependencies": { - "obuf": "~1.1.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@types/pg/node_modules/postgres-date": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-2.1.0.tgz", - "integrity": "sha512-K7Juri8gtgXVcDfZttFKVmhglp7epKb1K4pgrkLxehjqkrgPhfG6OO8LHLkfaqkbpjNRnra018XwAr1yQFWGcA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@types/pg/node_modules/postgres-interval": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-3.0.0.tgz", - "integrity": "sha512-BSNDnbyZCXSxgA+1f5UU2GmwhoI0aU5yMxRGO8CdFEcY2BQF9xm/7MqKnYoM1nJDk8nONNWDk9WeSmePFhQdlw==", - "dev": true, - "engines": { - "node": ">=12" + "pg-types": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-4.0.2.tgz", + "integrity": "sha512-cRL3JpS3lKMGsKaWndugWQoLOCoP+Cic8oseVcbr0qhPzYD5DWXK+RZ9LY9wxRf7RQia4SCwQlXk0q6FCPrVng==", + "dev": true, + "requires": { + "pg-int8": "1.0.1", + "pg-numeric": "1.0.2", + "postgres-array": "~3.0.1", + "postgres-bytea": "~3.0.0", + "postgres-date": "~2.1.0", + "postgres-interval": "^3.0.0", + "postgres-range": "^1.1.1" + } + }, + "postgres-array": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-3.0.2.tgz", + "integrity": "sha512-6faShkdFugNQCLwucjPcY5ARoW1SlbnrZjmGl0IrrqewpvxvhSLHimCVzqeuULCbG0fQv7Dtk1yDbG3xv7Veog==", + "dev": true + }, + "postgres-bytea": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-3.0.0.tgz", + "integrity": "sha512-CNd4jim9RFPkObHSjVHlVrxoVQXz7quwNFpz7RY1okNNme49+sVyiTvTRobiLV548Hx/hb1BG+iE7h9493WzFw==", + "dev": true, + "requires": { + "obuf": "~1.1.2" + } + }, + "postgres-date": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-2.1.0.tgz", + "integrity": "sha512-K7Juri8gtgXVcDfZttFKVmhglp7epKb1K4pgrkLxehjqkrgPhfG6OO8LHLkfaqkbpjNRnra018XwAr1yQFWGcA==", + "dev": true + }, + "postgres-interval": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-3.0.0.tgz", + "integrity": "sha512-BSNDnbyZCXSxgA+1f5UU2GmwhoI0aU5yMxRGO8CdFEcY2BQF9xm/7MqKnYoM1nJDk8nONNWDk9WeSmePFhQdlw==", + "dev": true + } } }, - "node_modules/@types/semver": { + "@types/semver": { "version": "7.5.8", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", "dev": true }, - "node_modules/@typescript-eslint/eslint-plugin": { + "@typescript-eslint/eslint-plugin": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.6.0.tgz", "integrity": "sha512-gKmTNwZnblUdnTIJu3e9kmeRRzV2j1a/LUO27KNNAnIC5zjy1aSvXSRp4rVNlmAoHlQ7HzX42NbKpcSr4jF80A==", "dev": true, - "dependencies": { + "requires": { "@eslint-community/regexpp": "^4.10.0", "@typescript-eslint/scope-manager": "7.6.0", "@typescript-eslint/type-utils": "7.6.0", @@ -369,115 +281,55 @@ "natural-compare": "^1.4.0", "semver": "^7.6.0", "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } } }, - "node_modules/@typescript-eslint/parser": { + "@typescript-eslint/parser": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.6.0.tgz", "integrity": "sha512-usPMPHcwX3ZoPWnBnhhorc14NJw9J4HpSXQX4urF2TPKG0au0XhJoZyX62fmvdHONUkmyUe74Hzm1//XA+BoYg==", "dev": true, - "dependencies": { + "requires": { "@typescript-eslint/scope-manager": "7.6.0", "@typescript-eslint/types": "7.6.0", "@typescript-eslint/typescript-estree": "7.6.0", "@typescript-eslint/visitor-keys": "7.6.0", "debug": "^4.3.4" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } } }, - "node_modules/@typescript-eslint/scope-manager": { + "@typescript-eslint/scope-manager": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.6.0.tgz", "integrity": "sha512-ngttyfExA5PsHSx0rdFgnADMYQi+Zkeiv4/ZxGYUWd0nLs63Ha0ksmp8VMxAIC0wtCFxMos7Lt3PszJssG/E6w==", "dev": true, - "dependencies": { + "requires": { "@typescript-eslint/types": "7.6.0", "@typescript-eslint/visitor-keys": "7.6.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/type-utils": { + "@typescript-eslint/type-utils": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.6.0.tgz", "integrity": "sha512-NxAfqAPNLG6LTmy7uZgpK8KcuiS2NZD/HlThPXQRGwz6u7MDBWRVliEEl1Gj6U7++kVJTpehkhZzCJLMK66Scw==", "dev": true, - "dependencies": { + "requires": { "@typescript-eslint/typescript-estree": "7.6.0", "@typescript-eslint/utils": "7.6.0", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } } }, - "node_modules/@typescript-eslint/types": { + "@typescript-eslint/types": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.6.0.tgz", "integrity": "sha512-h02rYQn8J+MureCvHVVzhl69/GAfQGPQZmOMjG1KfCl7o3HtMSlPaPUAPu6lLctXI5ySRGIYk94clD/AUMCUgQ==", - "dev": true, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } + "dev": true }, - "node_modules/@typescript-eslint/typescript-estree": { + "@typescript-eslint/typescript-estree": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.6.0.tgz", "integrity": "sha512-+7Y/GP9VuYibecrCQWSKgl3GvUM5cILRttpWtnAu8GNL9j11e4tbuGZmZjJ8ejnKYyBRb2ddGQ3rEFCq3QjMJw==", "dev": true, - "dependencies": { + "requires": { "@typescript-eslint/types": "7.6.0", "@typescript-eslint/visitor-keys": "7.6.0", "debug": "^4.3.4", @@ -486,26 +338,14 @@ "minimatch": "^9.0.4", "semver": "^7.6.0", "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } } }, - "node_modules/@typescript-eslint/utils": { + "@typescript-eslint/utils": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.6.0.tgz", "integrity": "sha512-x54gaSsRRI+Nwz59TXpCsr6harB98qjXYzsRxGqvA5Ue3kQH+FxS7FYU81g/omn22ML2pZJkisy6Q+ElK8pBCA==", "dev": true, - "dependencies": { + "requires": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.15", "@types/semver": "^7.5.8", @@ -513,175 +353,106 @@ "@typescript-eslint/types": "7.6.0", "@typescript-eslint/typescript-estree": "7.6.0", "semver": "^7.6.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" } }, - "node_modules/@typescript-eslint/visitor-keys": { + "@typescript-eslint/visitor-keys": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.6.0.tgz", "integrity": "sha512-4eLB7t+LlNUmXzfOu1VAIAdkjbu5xNSerURS9X/S5TUKWFRpXRQZbmtPqgKmYx8bj3J0irtQXSiWAOY82v+cgw==", "dev": true, - "dependencies": { + "requires": { "@typescript-eslint/types": "7.6.0", "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@ungap/structured-clone": { + "@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", "dev": true }, - "node_modules/acorn": { + "acorn": { "version": "8.12.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } + "dev": true }, - "node_modules/acorn-jsx": { + "acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } + "dev": true }, - "node_modules/acorn-walk": { + "acorn-walk": { "version": "8.3.3", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", "dev": true, - "dependencies": { + "requires": { "acorn": "^8.11.0" - }, - "engines": { - "node": ">=0.4.0" } }, - "node_modules/ajv": { + "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "dependencies": { + "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ansi-regex": { + "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } + "dev": true }, - "node_modules/ansi-styles": { + "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "dependencies": { + "requires": { "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ansi-styles/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" } }, - "node_modules/ansi-styles/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/arg": { + "arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true }, - "node_modules/argparse": { + "argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "node_modules/array-buffer-byte-length": { + "array-buffer-byte-length": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dev": true, - "dependencies": { + "requires": { "call-bind": "^1.0.5", "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array-union": { + "array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } + "dev": true }, - "node_modules/arraybuffer.prototype.slice": { + "arraybuffer.prototype.slice": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", "dev": true, - "dependencies": { + "requires": { "array-buffer-byte-length": "^1.0.1", "call-bind": "^1.0.5", "define-properties": "^1.2.1", @@ -690,322 +461,226 @@ "get-intrinsic": "^1.2.3", "is-array-buffer": "^3.0.4", "is-shared-array-buffer": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/available-typed-arrays": { + "available-typed-arrays": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, - "dependencies": { + "requires": { "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/balanced-match": { + "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "node_modules/brace-expansion": { + "brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "dependencies": { + "requires": { "balanced-match": "^1.0.0" } }, - "node_modules/braces": { + "braces": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, - "dependencies": { + "requires": { "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" } }, - "node_modules/call-bind": { + "call-bind": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dev": true, - "dependencies": { + "requires": { "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" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/callsites": { + "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } + "dev": true }, - "node_modules/chalk": { + "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "dependencies": { + "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "dependencies": { - "color-name": "1.1.3" + "requires": { + "color-name": "~1.1.4" } }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/colorette": { + "colorette": { "version": "2.0.19", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" }, - "node_modules/commander": { + "commander": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "engines": { - "node": ">=14" - } + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==" }, - "node_modules/concat-map": { + "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, - "node_modules/create-require": { + "create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "dev": true }, - "node_modules/cross-spawn": { + "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, - "dependencies": { + "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" } }, - "node_modules/data-view-buffer": { + "data-view-buffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", "dev": true, - "dependencies": { + "requires": { "call-bind": "^1.0.6", "es-errors": "^1.3.0", "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/data-view-byte-length": { + "data-view-byte-length": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", "dev": true, - "dependencies": { + "requires": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/data-view-byte-offset": { + "data-view-byte-offset": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", "dev": true, - "dependencies": { + "requires": { "call-bind": "^1.0.6", "es-errors": "^1.3.0", "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", - "dev": true, - "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } } }, - "node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/deep-is": { + "deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, - "node_modules/define-data-property": { + "define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, - "dependencies": { + "requires": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/define-properties": { + "define-properties": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, - "dependencies": { + "requires": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/diff": { + "diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } + "dev": true }, - "node_modules/dir-glob": { + "dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, - "dependencies": { + "requires": { "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" } }, - "node_modules/doctrine": { + "doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, - "dependencies": { + "requires": { "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" } }, - "node_modules/error-ex": { + "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, - "dependencies": { + "requires": { "is-arrayish": "^0.2.1" } }, - "node_modules/error-ex/node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/es-abstract": { + "es-abstract": { "version": "1.23.3", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", "dev": true, - "dependencies": { + "requires": { "array-buffer-byte-length": "^1.0.1", "arraybuffer.prototype.slice": "^1.0.3", "available-typed-arrays": "^1.0.7", @@ -1052,104 +727,71 @@ "typed-array-length": "^1.0.6", "unbox-primitive": "^1.0.2", "which-typed-array": "^1.1.15" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-define-property": { + "es-define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", "dev": true, - "dependencies": { + "requires": { "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" } }, - "node_modules/es-errors": { + "es-errors": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, - "engines": { - "node": ">= 0.4" - } + "dev": true }, - "node_modules/es-object-atoms": { + "es-object-atoms": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", "dev": true, - "dependencies": { + "requires": { "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" } }, - "node_modules/es-set-tostringtag": { + "es-set-tostringtag": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dev": true, - "dependencies": { + "requires": { "get-intrinsic": "^1.2.4", "has-tostringtag": "^1.0.2", "hasown": "^2.0.1" - }, - "engines": { - "node": ">= 0.4" } }, - "node_modules/es-to-primitive": { + "es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, - "dependencies": { + "requires": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/escalade": { + "escalade": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "engines": { - "node": ">=6" - } + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==" }, - "node_modules/escape-string-regexp": { + "escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "dev": true }, - "node_modules/eslint": { + "eslint": { "version": "8.56.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", "dev": true, - "dependencies": { + "requires": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.4", @@ -1189,393 +831,283 @@ "strip-ansi": "^6.0.1", "text-table": "^0.2.0" }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-prettier": { - "version": "8.10.0", + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "eslint-config-prettier": { + "version": "8.10.0", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", - "dev": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } + "dev": true }, - "node_modules/eslint-plugin-prettier": { + "eslint-plugin-prettier": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", "dev": true, - "dependencies": { + "requires": { "prettier-linter-helpers": "^1.0.0" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "eslint": ">=7.28.0", - "prettier": ">=2.0.0" - }, - "peerDependenciesMeta": { - "eslint-config-prettier": { - "optional": true - } } }, - "node_modules/eslint-scope": { + "eslint-scope": { "version": "7.2.2", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, - "dependencies": { + "requires": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint-visitor-keys": { + "eslint-visitor-keys": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } + "dev": true }, - "node_modules/esm": { + "esm": { "version": "3.2.25", "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", - "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", - "engines": { - "node": ">=6" - } + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==" }, - "node_modules/espree": { + "espree": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, - "dependencies": { + "requires": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" } }, - "node_modules/esquery": { + "esquery": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, - "dependencies": { + "requires": { "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" } }, - "node_modules/esrecurse": { + "esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, - "dependencies": { + "requires": { "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" } }, - "node_modules/estraverse": { + "estraverse": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } + "dev": true }, - "node_modules/esutils": { + "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/fast-deep-equal": { + "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, - "node_modules/fast-diff": { + "fast-diff": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", "dev": true }, - "node_modules/fast-glob": { + "fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, - "dependencies": { + "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" } }, - "node_modules/fast-json-stable-stringify": { + "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, - "node_modules/fast-levenshtein": { + "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, - "node_modules/fastq": { + "fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, - "dependencies": { + "requires": { "reusify": "^1.0.4" } }, - "node_modules/file-entry-cache": { + "file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, - "dependencies": { + "requires": { "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/fill-range": { + "fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, - "dependencies": { + "requires": { "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" } }, - "node_modules/find-up": { + "find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, - "dependencies": { + "requires": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/flat-cache": { + "flat-cache": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, - "dependencies": { + "requires": { "flatted": "^3.2.9", "keyv": "^4.5.3", "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/flatted": { + "flatted": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, - "node_modules/for-each": { + "for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, - "dependencies": { + "requires": { "is-callable": "^1.1.3" } }, - "node_modules/fs.realpath": { + "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, - "node_modules/function-bind": { + "function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" }, - "node_modules/function.prototype.name": { + "function.prototype.name": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, - "dependencies": { + "requires": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", "es-abstract": "^1.22.1", "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/functions-have-names": { + "functions-have-names": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "dev": true }, - "node_modules/get-intrinsic": { + "get-intrinsic": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dev": true, - "dependencies": { + "requires": { "es-errors": "^1.3.0", "function-bind": "^1.1.2", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-package-type": { + "get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "engines": { - "node": ">=8.0.0" - } + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" }, - "node_modules/get-symbol-description": { + "get-symbol-description": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dev": true, - "dependencies": { + "requires": { "call-bind": "^1.0.5", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/getopts": { + "getopts": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/getopts/-/getopts-2.3.0.tgz", "integrity": "sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==" }, - "node_modules/glob": { + "glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, - "dependencies": { + "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", @@ -1583,597 +1115,432 @@ "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } } }, - "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" + "requires": { + "is-glob": "^4.0.1" } }, - "node_modules/globals": { + "globals": { "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, - "dependencies": { + "requires": { "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globalthis": { + "globalthis": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dev": true, - "dependencies": { + "requires": { "define-properties": "^1.2.1", "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/globby": { + "globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, - "dependencies": { + "requires": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", "fast-glob": "^3.2.9", "ignore": "^5.2.0", "merge2": "^1.4.1", "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/gopd": { + "gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dev": true, - "dependencies": { + "requires": { "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/graceful-fs": { + "graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, - "node_modules/graphemer": { + "graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, - "node_modules/has-bigints": { + "has-bigints": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "dev": true }, - "node_modules/has-flag": { + "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } + "dev": true }, - "node_modules/has-property-descriptors": { + "has-property-descriptors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, - "dependencies": { + "requires": { "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-proto": { + "has-proto": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "dev": true }, - "node_modules/has-symbols": { + "has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "dev": true }, - "node_modules/has-tostringtag": { + "has-tostringtag": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, - "dependencies": { + "requires": { "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/hasown": { + "hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dependencies": { + "requires": { "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" } }, - "node_modules/hosted-git-info": { + "hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, - "node_modules/ignore": { + "ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "engines": { - "node": ">= 4" - } + "dev": true }, - "node_modules/import-fresh": { + "import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, - "dependencies": { + "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + } } }, - "node_modules/imurmurhash": { + "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } + "dev": true }, - "node_modules/inflight": { + "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, - "dependencies": { + "requires": { "once": "^1.3.0", "wrappy": "1" } }, - "node_modules/inherits": { + "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, - "node_modules/internal-slot": { + "internal-slot": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dev": true, - "dependencies": { + "requires": { "es-errors": "^1.3.0", "hasown": "^2.0.0", "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" } }, - "node_modules/interpret": { + "interpret": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", - "engines": { - "node": ">= 0.10" - } + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==" }, - "node_modules/is-array-buffer": { + "is-array-buffer": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dev": true, - "dependencies": { + "requires": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-bigint": { + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, - "dependencies": { + "requires": { "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-boolean-object": { + "is-boolean-object": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, - "dependencies": { + "requires": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-callable": { + "is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "dev": true }, - "node_modules/is-core-module": { + "is-core-module": { "version": "2.15.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", - "dependencies": { + "requires": { "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-data-view": { + "is-data-view": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", "dev": true, - "dependencies": { + "requires": { "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-date-object": { + "is-date-object": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, - "dependencies": { + "requires": { "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-extglob": { + "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/is-glob": { + "is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, - "dependencies": { + "requires": { "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" } }, - "node_modules/is-negative-zero": { + "is-negative-zero": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "dev": true }, - "node_modules/is-number": { + "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } + "dev": true }, - "node_modules/is-number-object": { + "is-number-object": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, - "dependencies": { + "requires": { "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-path-inside": { + "is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } + "dev": true }, - "node_modules/is-regex": { + "is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, - "dependencies": { + "requires": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-shared-array-buffer": { + "is-shared-array-buffer": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dev": true, - "dependencies": { + "requires": { "call-bind": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-string": { + "is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, - "dependencies": { + "requires": { "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-symbol": { + "is-symbol": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, - "dependencies": { + "requires": { "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-typed-array": { + "is-typed-array": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dev": true, - "dependencies": { + "requires": { "which-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-weakref": { + "is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, - "dependencies": { + "requires": { "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/isarray": { + "isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "dev": true }, - "node_modules/isexe": { + "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, - "node_modules/js-yaml": { + "js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "dependencies": { + "requires": { "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" } }, - "node_modules/json-buffer": { + "json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true }, - "node_modules/json-parse-better-errors": { + "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, - "node_modules/json-schema-traverse": { + "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, - "node_modules/json-stable-stringify-without-jsonify": { + "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, - "node_modules/keyv": { + "keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, - "dependencies": { + "requires": { "json-buffer": "3.0.1" } }, - "node_modules/knex": { + "knex": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/knex/-/knex-2.5.1.tgz", "integrity": "sha512-z78DgGKUr4SE/6cm7ku+jHvFT0X97aERh/f0MUKAKgFnwCYBEW4TFBqtHWFYiJFid7fMrtpZ/gxJthvz5mEByA==", - "dependencies": { + "requires": { "colorette": "2.0.19", "commander": "^10.0.0", "debug": "4.3.4", @@ -2188,216 +1555,130 @@ "resolve-from": "^5.0.0", "tarn": "^3.0.2", "tildify": "2.0.0" - }, - "bin": { - "knex": "bin/cli.js" - }, - "engines": { - "node": ">=12" - }, - "peerDependenciesMeta": { - "better-sqlite3": { - "optional": true - }, - "mysql": { - "optional": true - }, - "mysql2": { - "optional": true - }, - "pg": { - "optional": true - }, - "pg-native": { - "optional": true - }, - "sqlite3": { - "optional": true - }, - "tedious": { - "optional": true - } - } - }, - "node_modules/knex/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/knex/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/knex/node_modules/pg-connection-string": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.1.tgz", - "integrity": "sha512-w6ZzNu6oMmIzEAYVw+RLK0+nqHPt8K3ZnknKi+g48Ak2pr3dtljJW3o+D/n2zzCG07Zoe9VOX3aiKpj+BN0pjg==" - }, - "node_modules/knex/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "engines": { - "node": ">=8" } }, - "node_modules/levn": { + "levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, - "dependencies": { + "requires": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" } }, - "node_modules/load-json-file": { + "load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", "dev": true, - "dependencies": { + "requires": { "graceful-fs": "^4.1.2", "parse-json": "^4.0.0", "pify": "^3.0.0", "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" } }, - "node_modules/locate-path": { + "locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, - "dependencies": { + "requires": { "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lodash": { + "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "node_modules/lodash.merge": { + "lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "node_modules/make-error": { + "make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, - "node_modules/memorystream": { + "memorystream": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", - "dev": true, - "engines": { - "node": ">= 0.10.0" - } + "dev": true }, - "node_modules/merge2": { + "merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } + "dev": true }, - "node_modules/micromatch": { + "micromatch": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, - "dependencies": { + "requires": { "braces": "^3.0.3", "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" } }, - "node_modules/minimatch": { + "minimatch": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, - "dependencies": { + "requires": { "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/natural-compare": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "node_modules/nice-try": { + "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, - "node_modules/normalize-package-data": { + "normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, - "dependencies": { + "requires": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + } } }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/npm-run-all": { + "npm-run-all": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", "dev": true, - "dependencies": { + "requires": { "ansi-styles": "^3.2.1", "chalk": "^2.4.1", "cross-spawn": "^6.0.5", @@ -2405,1076 +1686,754 @@ "minimatch": "^3.0.4", "pidtree": "^0.3.0", "read-pkg": "^3.0.0", - "shell-quote": "^1.6.1", - "string.prototype.padend": "^3.0.0" - }, - "bin": { - "npm-run-all": "bin/npm-run-all/index.js", - "run-p": "bin/run-p/index.js", - "run-s": "bin/run-s/index.js" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/npm-run-all/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/npm-run-all/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/npm-run-all/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/npm-run-all/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/npm-run-all/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/npm-run-all/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-all/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-all/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" }, - "bin": { - "which": "bin/which" + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, - "node_modules/object-inspect": { + "object-inspect": { "version": "1.13.2", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "dev": true }, - "node_modules/object-keys": { + "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } + "dev": true }, - "node_modules/object.assign": { + "object.assign": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, - "dependencies": { + "requires": { "call-bind": "^1.0.5", "define-properties": "^1.2.1", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/obuf": { + "obuf": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", "dev": true }, - "node_modules/once": { + "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, - "dependencies": { + "requires": { "wrappy": "1" } }, - "node_modules/optionator": { + "optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, - "dependencies": { + "requires": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" } }, - "node_modules/p-limit": { + "p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, - "dependencies": { + "requires": { "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-locate": { + "p-locate": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, - "dependencies": { + "requires": { "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/parent-module": { + "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, - "dependencies": { + "requires": { "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" } }, - "node_modules/parse-json": { + "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", "dev": true, - "dependencies": { + "requires": { "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" } }, - "node_modules/path-exists": { + "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } + "dev": true }, - "node_modules/path-is-absolute": { + "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/path-key": { + "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } + "dev": true }, - "node_modules/path-parse": { + "path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, - "node_modules/path-type": { + "path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } + "dev": true }, - "node_modules/pg": { + "pg": { "version": "8.12.0", "resolved": "https://registry.npmjs.org/pg/-/pg-8.12.0.tgz", "integrity": "sha512-A+LHUSnwnxrnL/tZ+OLfqR1SxLN3c/pgDztZ47Rpbsd4jUytsTtwQo/TLPRzPJMp/1pbhYVhH9cuSZLAajNfjQ==", - "dependencies": { + "requires": { + "pg-cloudflare": "^1.1.1", "pg-connection-string": "^2.6.4", "pg-pool": "^3.6.2", "pg-protocol": "^1.6.1", "pg-types": "^2.1.0", "pgpass": "1.x" }, - "engines": { - "node": ">= 8.0.0" - }, - "optionalDependencies": { - "pg-cloudflare": "^1.1.1" - }, - "peerDependencies": { - "pg-native": ">=3.0.1" - }, - "peerDependenciesMeta": { - "pg-native": { - "optional": true + "dependencies": { + "pg-connection-string": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.4.tgz", + "integrity": "sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA==" } } }, - "node_modules/pg-cloudflare": { + "pg-cloudflare": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz", "integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", "optional": true }, - "node_modules/pg-connection-string": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.4.tgz", - "integrity": "sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA==" + "pg-connection-string": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.1.tgz", + "integrity": "sha512-w6ZzNu6oMmIzEAYVw+RLK0+nqHPt8K3ZnknKi+g48Ak2pr3dtljJW3o+D/n2zzCG07Zoe9VOX3aiKpj+BN0pjg==" }, - "node_modules/pg-int8": { + "pg-int8": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", - "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", - "engines": { - "node": ">=4.0.0" - } + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==" }, - "node_modules/pg-numeric": { + "pg-numeric": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pg-numeric/-/pg-numeric-1.0.2.tgz", "integrity": "sha512-BM/Thnrw5jm2kKLE5uJkXqqExRUY/toLHda65XgFTBTFYZyopbKjBe29Ii3RbkvlsMoFwD+tHeGaCjjv0gHlyw==", - "dev": true, - "engines": { - "node": ">=4" - } + "dev": true }, - "node_modules/pg-pool": { + "pg-pool": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.2.tgz", - "integrity": "sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg==", - "peerDependencies": { - "pg": ">=8.0" - } + "integrity": "sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg==" }, - "node_modules/pg-protocol": { + "pg-protocol": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.1.tgz", "integrity": "sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==" }, - "node_modules/pg-types": { + "pg-types": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", - "dependencies": { + "requires": { "pg-int8": "1.0.1", "postgres-array": "~2.0.0", "postgres-bytea": "~1.0.0", "postgres-date": "~1.0.4", "postgres-interval": "^1.1.0" - }, - "engines": { - "node": ">=4" } }, - "node_modules/pgpass": { + "pgpass": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", - "dependencies": { + "requires": { "split2": "^4.1.0" } }, - "node_modules/picomatch": { + "picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } + "dev": true }, - "node_modules/pidtree": { + "pidtree": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", - "dev": true, - "bin": { - "pidtree": "bin/pidtree.js" - }, - "engines": { - "node": ">=0.10" - } + "dev": true }, - "node_modules/pify": { + "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true, - "engines": { - "node": ">=4" - } + "dev": true }, - "node_modules/possible-typed-array-names": { + "possible-typed-array-names": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", - "dev": true, - "engines": { - "node": ">= 0.4" - } + "dev": true }, - "node_modules/postgres-array": { + "postgres-array": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", - "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", - "engines": { - "node": ">=4" - } + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==" }, - "node_modules/postgres-bytea": { + "postgres-bytea": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", - "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", - "engines": { - "node": ">=0.10.0" - } + "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==" }, - "node_modules/postgres-date": { + "postgres-date": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", - "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", - "engines": { - "node": ">=0.10.0" - } + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==" }, - "node_modules/postgres-interval": { + "postgres-interval": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", - "dependencies": { + "requires": { "xtend": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" } }, - "node_modules/postgres-range": { + "postgres-range": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/postgres-range/-/postgres-range-1.1.4.tgz", "integrity": "sha512-i/hbxIE9803Alj/6ytL7UHQxRvZkI9O4Sy+J3HGc4F4oo/2eQAjTSNJ0bfxyse3bH0nuVesCk+3IRLaMtG3H6w==", "dev": true }, - "node_modules/prelude-ls": { + "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } + "dev": true }, - "node_modules/prettier": { + "prettier": { "version": "2.8.8", "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } + "dev": true }, - "node_modules/prettier-linter-helpers": { + "prettier-linter-helpers": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", "dev": true, - "dependencies": { + "requires": { "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" } }, - "node_modules/prettier-plugin-organize-imports": { + "prettier-plugin-organize-imports": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-3.2.4.tgz", "integrity": "sha512-6m8WBhIp0dfwu0SkgfOxJqh+HpdyfqSSLfKKRZSFbDuEQXDDndb8fTpRWkUrX/uBenkex3MgnVk0J3b3Y5byog==", - "dev": true, - "peerDependencies": { - "@volar/vue-language-plugin-pug": "^1.0.4", - "@volar/vue-typescript": "^1.0.4", - "prettier": ">=2.0", - "typescript": ">=2.9" - }, - "peerDependenciesMeta": { - "@volar/vue-language-plugin-pug": { - "optional": true - }, - "@volar/vue-typescript": { - "optional": true - } - } + "dev": true }, - "node_modules/punycode": { + "punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "engines": { - "node": ">=6" - } + "dev": true }, - "node_modules/queue-microtask": { + "queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "dev": true }, - "node_modules/read-pkg": { + "read-pkg": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", "dev": true, - "dependencies": { + "requires": { "load-json-file": "^4.0.0", "normalize-package-data": "^2.3.2", "path-type": "^3.0.0" }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + } } }, - "node_modules/rechoir": { + "rechoir": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", - "dependencies": { + "requires": { "resolve": "^1.20.0" - }, - "engines": { - "node": ">= 10.13.0" } }, - "node_modules/regexp.prototype.flags": { + "regexp.prototype.flags": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", "dev": true, - "dependencies": { + "requires": { "call-bind": "^1.0.6", "define-properties": "^1.2.1", "es-errors": "^1.3.0", "set-function-name": "^2.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/resolve": { + "resolve": { "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dependencies": { + "requires": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" }, - "node_modules/reusify": { + "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/rimraf": { + "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, - "dependencies": { + "requires": { "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/run-parallel": { + "run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { + "requires": { "queue-microtask": "^1.2.2" } }, - "node_modules/safe-array-concat": { + "safe-array-concat": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", "dev": true, - "dependencies": { + "requires": { "call-bind": "^1.0.7", "get-intrinsic": "^1.2.4", "has-symbols": "^1.0.3", "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safe-regex-test": { + "safe-regex-test": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dev": true, - "dependencies": { + "requires": { "call-bind": "^1.0.6", "es-errors": "^1.3.0", "is-regex": "^1.1.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/semver": { + "semver": { "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } + "dev": true }, - "node_modules/set-function-length": { + "set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, - "dependencies": { + "requires": { "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" - }, - "engines": { - "node": ">= 0.4" } }, - "node_modules/set-function-name": { + "set-function-name": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, - "dependencies": { + "requires": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" } }, - "node_modules/shebang-command": { + "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, - "dependencies": { + "requires": { "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" } }, - "node_modules/shebang-regex": { + "shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } + "dev": true }, - "node_modules/shell-quote": { + "shell-quote": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "dev": true }, - "node_modules/side-channel": { + "side-channel": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dev": true, - "dependencies": { + "requires": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.4", "object-inspect": "^1.13.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/slash": { + "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } + "dev": true }, - "node_modules/spdx-correct": { + "spdx-correct": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, - "dependencies": { + "requires": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" } }, - "node_modules/spdx-exceptions": { + "spdx-exceptions": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", "dev": true }, - "node_modules/spdx-expression-parse": { + "spdx-expression-parse": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, - "dependencies": { + "requires": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, - "node_modules/spdx-license-ids": { + "spdx-license-ids": { "version": "3.0.20", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", "dev": true }, - "node_modules/split2": { + "split2": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", - "engines": { - "node": ">= 10.x" - } + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==" }, - "node_modules/sql-template-strings": { + "sql-template-strings": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/sql-template-strings/-/sql-template-strings-2.2.2.tgz", - "integrity": "sha512-UXhXR2869FQaD+GMly8jAMCRZ94nU5KcrFetZfWEMd+LVVG6y0ExgHAhatEcKZ/wk8YcKPdi+hiD2wm75lq3/Q==", - "engines": { - "node": ">=4.0.0" - } + "integrity": "sha512-UXhXR2869FQaD+GMly8jAMCRZ94nU5KcrFetZfWEMd+LVVG6y0ExgHAhatEcKZ/wk8YcKPdi+hiD2wm75lq3/Q==" }, - "node_modules/string.prototype.padend": { + "string.prototype.padend": { "version": "3.1.6", "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz", "integrity": "sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==", "dev": true, - "dependencies": { + "requires": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/string.prototype.trim": { + "string.prototype.trim": { "version": "1.2.9", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", "dev": true, - "dependencies": { + "requires": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.0", "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/string.prototype.trimend": { + "string.prototype.trimend": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", "dev": true, - "dependencies": { + "requires": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/string.prototype.trimstart": { + "string.prototype.trimstart": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, - "dependencies": { + "requires": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/strip-ansi": { + "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "dependencies": { + "requires": { "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" } }, - "node_modules/strip-bom": { + "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "engines": { - "node": ">=4" - } + "dev": true }, - "node_modules/strip-json-comments": { + "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "dev": true }, - "node_modules/supports-color": { + "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "dependencies": { + "requires": { "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" } }, - "node_modules/supports-preserve-symlinks-flag": { + "supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" }, - "node_modules/tarn": { + "tarn": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/tarn/-/tarn-3.0.2.tgz", - "integrity": "sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==", - "engines": { - "node": ">=8.0.0" - } + "integrity": "sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==" }, - "node_modules/text-table": { + "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, - "node_modules/tildify": { + "tildify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/tildify/-/tildify-2.0.0.tgz", - "integrity": "sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==", - "engines": { - "node": ">=8" - } + "integrity": "sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==" }, - "node_modules/to-regex-range": { + "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "dependencies": { + "requires": { "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" } }, - "node_modules/ts-api-utils": { + "ts-api-utils": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", - "dev": true, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "typescript": ">=4.2.0" - } + "dev": true }, - "node_modules/ts-node": { + "ts-node": { "version": "10.9.2", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", "dev": true, - "dependencies": { + "requires": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", "@tsconfig/node12": "^1.0.7", @@ -3488,278 +2447,186 @@ "make-error": "^1.1.1", "v8-compile-cache-lib": "^3.0.1", "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } } }, - "node_modules/type-check": { + "type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, - "dependencies": { + "requires": { "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" } }, - "node_modules/type-fest": { + "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "dev": true }, - "node_modules/typed-array-buffer": { + "typed-array-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", "dev": true, - "dependencies": { + "requires": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" } }, - "node_modules/typed-array-byte-length": { + "typed-array-byte-length": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", "dev": true, - "dependencies": { + "requires": { "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", "has-proto": "^1.0.3", "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/typed-array-byte-offset": { + "typed-array-byte-offset": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", "dev": true, - "dependencies": { + "requires": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", "has-proto": "^1.0.3", "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/typed-array-length": { + "typed-array-length": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", "dev": true, - "dependencies": { + "requires": { "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", "has-proto": "^1.0.3", "is-typed-array": "^1.1.13", "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/typescript": { + "typescript": { "version": "4.9.5", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==" }, - "node_modules/unbox-primitive": { + "unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, - "dependencies": { + "requires": { "call-bind": "^1.0.2", "has-bigints": "^1.0.2", "has-symbols": "^1.0.3", "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", "dev": true }, - "node_modules/uri-js": { + "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "dependencies": { + "requires": { "punycode": "^2.1.0" } }, - "node_modules/v8-compile-cache-lib": { + "v8-compile-cache-lib": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", "dev": true }, - "node_modules/validate-npm-package-license": { + "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, - "dependencies": { + "requires": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" } }, - "node_modules/which": { + "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, - "dependencies": { + "requires": { "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" } }, - "node_modules/which-boxed-primitive": { + "which-boxed-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, - "dependencies": { + "requires": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", "is-number-object": "^1.0.4", "is-string": "^1.0.5", "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/which-typed-array": { + "which-typed-array": { "version": "1.1.15", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", "dev": true, - "dependencies": { + "requires": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/word-wrap": { + "word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "dev": true }, - "node_modules/wrappy": { + "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, - "node_modules/xtend": { + "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" }, - "node_modules/yn": { + "yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } + "dev": true }, - "node_modules/yocto-queue": { + "yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "dev": true } } } diff --git a/spi/src/transformations/study-area.ts b/spi/src/transformations/study-area.ts index deba6bf0f7..5433672391 100644 --- a/spi/src/transformations/study-area.ts +++ b/spi/src/transformations/study-area.ts @@ -12,52 +12,23 @@ export const transformStudyAreas = async (connection: IDBConnection): Promise Date: Thu, 29 Aug 2024 15:20:11 -0700 Subject: [PATCH 08/29] new branch for transforming DC visits into sampling periods --- spi/src/transformations/sampling_period.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 spi/src/transformations/sampling_period.ts diff --git a/spi/src/transformations/sampling_period.ts b/spi/src/transformations/sampling_period.ts new file mode 100644 index 0000000000..91c0b17dd8 --- /dev/null +++ b/spi/src/transformations/sampling_period.ts @@ -0,0 +1,16 @@ +import SQL from 'sql-template-strings'; +import { IDBConnection } from '../db'; + +export const transformSampleVisits = async (connection: IDBConnection): Promise => { + const transformSampleVisitsSql = SQL` + set search_path = biohub,public; + +------ transforming design component visits into sampling periods --- + + + `; + + await connection.sql(transformSampleVisitsSql); + + console.log('Successfully transformed design component visits'); +}; From a2818096c6e82a9f92f5e371162f6100f6429cd6 Mon Sep 17 00:00:00 2001 From: Meijer Date: Thu, 29 Aug 2024 16:12:39 -0700 Subject: [PATCH 09/29] untested materials --- spi/src/transformations/sampling_period.ts | 29 ++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/spi/src/transformations/sampling_period.ts b/spi/src/transformations/sampling_period.ts index 91c0b17dd8..b06c30c89d 100644 --- a/spi/src/transformations/sampling_period.ts +++ b/spi/src/transformations/sampling_period.ts @@ -6,8 +6,33 @@ export const transformSampleVisits = async (connection: IDBConnection): Promise< set search_path = biohub,public; ------ transforming design component visits into sampling periods --- - - + INSERT INTO biohub.survey_sample_period (create_date, survey_sample_method_id, start_date, end_date, start_time, end_time) + SELECT + sdcv.when_created, + ssm.survey_sample_method_id, -- Retrieved from the joined tables + MIN(DATE(sdcv.visit_date)) AS start_date, + MAX(DATE(sdcv.visit_date)) AS end_date, + TO_TIMESTAMP(CASE WHEN LENGTH(sdcv.start_time) = 4 + THEN sdcv.start_time ELSE LPAD(sdcv.start_time, 4, '0') END, 'HH24MI')::time AS start_time, + COALESCE( + TO_TIMESTAMP(CASE WHEN LENGTH(sdcv.end_time) = 4 + THEN sdcv.end_time ELSE LPAD(sdcv.end_time, 4, '0') END, 'HH24MI')::time, + MAX(sdcv.visit_date)::time + ) AS end_time + FROM + public.spi_design_component_visits sdcv + JOIN + public.migrate_spi_sample_design_component msd + ON sdcv.design_component_id = msd.design_component_id + JOIN + biohub.survey_sample_method ssm + ON msd.survey_sample_site_id = ssm.survey_sample_site_id + GROUP BY + sdcv.design_component_visit_id, + sdcv.when_created, + sdcv.start_time, + sdcv.end_time, + ssm.survey_sample_method_id; `; await connection.sql(transformSampleVisitsSql); From 420b58affc2ca5bd27483ea82b4016dbec911cbd Mon Sep 17 00:00:00 2001 From: Meijer Date: Tue, 3 Sep 2024 14:00:48 -0700 Subject: [PATCH 10/29] changes to sampling period --- spi/src/transformations/sampling_period.ts | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/spi/src/transformations/sampling_period.ts b/spi/src/transformations/sampling_period.ts index b06c30c89d..04220e5b9c 100644 --- a/spi/src/transformations/sampling_period.ts +++ b/spi/src/transformations/sampling_period.ts @@ -9,16 +9,17 @@ export const transformSampleVisits = async (connection: IDBConnection): Promise< INSERT INTO biohub.survey_sample_period (create_date, survey_sample_method_id, start_date, end_date, start_time, end_time) SELECT sdcv.when_created, - ssm.survey_sample_method_id, -- Retrieved from the joined tables - MIN(DATE(sdcv.visit_date)) AS start_date, - MAX(DATE(sdcv.visit_date)) AS end_date, - TO_TIMESTAMP(CASE WHEN LENGTH(sdcv.start_time) = 4 - THEN sdcv.start_time ELSE LPAD(sdcv.start_time, 4, '0') END, 'HH24MI')::time AS start_time, - COALESCE( - TO_TIMESTAMP(CASE WHEN LENGTH(sdcv.end_time) = 4 - THEN sdcv.end_time ELSE LPAD(sdcv.end_time, 4, '0') END, 'HH24MI')::time, - MAX(sdcv.visit_date)::time - ) AS end_time + ssm.survey_sample_method_id, + DATE(sdcv.visit_date) AS start_date, + DATE(COALESCE(sdcv.visit_end_date, sdcv.visit_date)) AS end_date, + CASE + WHEN sdcv.start_time = '0000' THEN NULL + ELSE TO_TIMESTAMP(LPAD(sdcv.start_time, 4, '0'), 'HH24MI')::time + END AS start_time, + CASE + WHEN sdcv.end_time = '0000' THEN NULL + ELSE TO_TIMESTAMP(LPAD(sdcv.end_time, 4, '0'), 'HH24MI')::time + END AS end_time FROM public.spi_design_component_visits sdcv JOIN From 2087224c144ff1a6d40a728ec44cf68800cfa521 Mon Sep 17 00:00:00 2001 From: Meijer Date: Tue, 3 Sep 2024 15:09:51 -0700 Subject: [PATCH 11/29] ready for review --- spi/src/transformations/sampling_methods.ts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/spi/src/transformations/sampling_methods.ts b/spi/src/transformations/sampling_methods.ts index 3426f684b3..8d9d3a9b57 100644 --- a/spi/src/transformations/sampling_methods.ts +++ b/spi/src/transformations/sampling_methods.ts @@ -34,10 +34,10 @@ export const transformSamplingMethods = async (connection: IDBConnection): Promi WHEN sp.method_type_cd = 'OBS_PSAL_CAPS_2.0' THEN 'Pitfall Trap' WHEN sp.method_type_cd = 'OBS_PSAL_TRAN_2.0' THEN 'Visual Encounter' WHEN sp.method_type_cd = 'OBS_BAPT_SRCA_2.0' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'HAN_WOCO_CAPF_2.0' THEN 'Placeholder Gun Net' + WHEN sp.method_type_cd = 'HAN_WOCO_CAPF_2.0' THEN 'Visual Encounter' WHEN sp.method_type_cd = 'OBS_BAPT_LARV_2.0' THEN 'Handheld net' - WHEN sp.method_type_cd = 'OBS_BAPT_AUDI_2.0' THEN 'Placeholder Audio Encounter' - WHEN sp.method_type_cd = 'TELEMETRY_DATA' THEN 'Placeholder Radio' + WHEN sp.method_type_cd = 'OBS_BAPT_AUDI_2.0' THEN 'Audio Encounter' + WHEN sp.method_type_cd = 'TELEMETRY_DATA' THEN 'Radio' WHEN sp.method_type_cd = 'OBS_WATR_BRCO' THEN 'Visual Encounter' WHEN sp.method_type_cd = 'OBS_MAMU_MVFT' THEN 'Visual Encounter' WHEN sp.method_type_cd = 'OBS_WATR_PBCO' THEN 'Visual Encounter' @@ -75,20 +75,20 @@ export const transformSamplingMethods = async (connection: IDBConnection): Promi WHEN sp.method_type_cd = 'OBS_SMAM_CAPS_2.0' THEN 'Box or live trap' WHEN sp.method_type_cd = 'OBS_BATS_MNHT_2.0' THEN 'Mist Net' WHEN sp.method_type_cd = 'BIRD_DETECTION_1.0' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_INIT_TEL_1.0' THEN 'Placeholder Radio' + WHEN sp.method_type_cd = 'OBS_INIT_TEL_1.0' THEN 'Radio' WHEN sp.method_type_cd = 'OBS_MAMU_FOSU_2.0' THEN 'Radar' WHEN sp.method_type_cd = 'Wildlife Camera' THEN 'Camera trap' WHEN sp.method_type_cd = 'OBS_BATS_DETC_2.0' THEN 'Visual Encounter' WHEN sp.method_type_cd = 'OBS_OWL_NEST' THEN 'Visual Encounter' WHEN sp.method_type_cd = 'NON_STAN_RAP_NEST' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'Bat Acoustic' THEN 'Placeholder Audio Encounter' + WHEN sp.method_type_cd = 'Bat Acoustic' THEN 'Audio Encounter' WHEN sp.method_type_cd = 'OBS_SONG_PTCO_2.0' THEN 'Point Count' WHEN sp.method_type_cd = 'Bird Nest Descriptions' THEN 'Visual Encounter' WHEN sp.method_type_cd = 'Herp Capture Or Handling Or Class Or Count' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_INIT_TEL_1.2' THEN 'Placeholder Radio' + WHEN sp.method_type_cd = 'OBS_INIT_TEL_1.2' THEN 'Radio' WHEN sp.method_type_cd = 'OBS_OWL_CLPB' THEN 'Visual Encounter' WHEN sp.method_type_cd = 'OBS_UNGA_CENS_1.0' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_INIT_TEL_1.1' THEN 'Placeholder Radio' + WHEN sp.method_type_cd = 'OBS_INIT_TEL_1.1' THEN 'Radio' WHEN sp.method_type_cd = 'HERPETILE_INDIVIDUAL_DATA_1.0' THEN 'Visual Encounter' WHEN sp.method_type_cd = 'Bird Nest Visits' THEN 'Visual Encounter' WHEN sp.method_type_cd = 'OBS_RAPT_CPLB_2.0' THEN 'Visual Encounter' @@ -805,7 +805,7 @@ export const transformSamplingMethods = async (connection: IDBConnection): Promi '%Marmot%', '%Radar Survey%') THEN 'Radar' - -- Gun net + -- Gun net changed to Visual Encounter WHEN sp.method_type_cd IN ( '12-Administrative Miscellaneous', 'HERPETILE_HABITAT_DATA_1.0', @@ -832,7 +832,7 @@ export const transformSamplingMethods = async (connection: IDBConnection): Promi 'Animal Capture or Marking', 'Results by Area', 'Census', - 'LBS') AND sp.survey_name LIKE '%Aerial Net Gunning and Collar Removal%' THEN 'Gun net' + 'LBS') AND sp.survey_name LIKE '%Aerial Net Gunning and Collar Removal%' THEN 'Visual Encounter' -- Point count WHEN sp.method_type_cd IN ( From 0d444841d8d6270f03e6a44790053b11d24f6cc8 Mon Sep 17 00:00:00 2001 From: Meijer Date: Tue, 3 Sep 2024 15:17:05 -0700 Subject: [PATCH 12/29] ready for review, but actually this time --- spi/src/transformations/sampling_methods.ts | 138 ++++++++++---------- 1 file changed, 69 insertions(+), 69 deletions(-) diff --git a/spi/src/transformations/sampling_methods.ts b/spi/src/transformations/sampling_methods.ts index 8d9d3a9b57..8c313c2884 100644 --- a/spi/src/transformations/sampling_methods.ts +++ b/spi/src/transformations/sampling_methods.ts @@ -17,85 +17,85 @@ export const transformSamplingMethods = async (connection: IDBConnection): Promi JOIN biohub.method_lookup ml ON CASE - WHEN sp.method_type_cd = 'OBS_MAWE_SNTR' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_TSAL_SEQS' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_SONG_SPMA_2.0' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_MSTC_DETC_2.0' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_GAME_ENTR_2.0' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_CNFB_AERS_2.0' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'ROOS_ELK_CLASS_1.0' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_RIVB_TERL_2.0' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_BATS_ROST_2.0' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_WOCO_SITR_2.1' THEN 'Visual Encounter' + WHEN sp.method_type_cd = 'OBS_MAWE_SNTR' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_TSAL_SEQS' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_SONG_SPMA_2.0' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_MSTC_DETC_2.0' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_GAME_ENTR_2.0' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_CNFB_AERS_2.0' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'ROOS_ELK_CLASS_1.0' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_RIVB_TERL_2.0' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_BATS_ROST_2.0' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_WOCO_SITR_2.1' THEN 'Visual encounter' WHEN sp.method_type_cd = 'OBS_MAMU_MAFT_2.0' THEN 'Radar' - WHEN sp.method_type_cd = 'OBS_MSTC_SNTR_2.1' THEN 'Visual Encounter' + WHEN sp.method_type_cd = 'OBS_MSTC_SNTR_2.1' THEN 'Visual encounter' WHEN sp.method_type_cd = 'HAN_BIRD_CAPF_2.0' THEN 'Mist Net' WHEN sp.method_type_cd = 'HAN_BIRD_CAPF_2.1' THEN 'Mist Net' - WHEN sp.method_type_cd = 'OBS_PSAL_CAPS_2.0' THEN 'Pitfall Trap' - WHEN sp.method_type_cd = 'OBS_PSAL_TRAN_2.0' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_BAPT_SRCA_2.0' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'HAN_WOCO_CAPF_2.0' THEN 'Visual Encounter' + WHEN sp.method_type_cd = 'OBS_PSAL_CAPS_2.0' THEN 'Pitfall trap' + WHEN sp.method_type_cd = 'OBS_PSAL_TRAN_2.0' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_BAPT_SRCA_2.0' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'HAN_WOCO_CAPF_2.0' THEN 'Visual encounter' WHEN sp.method_type_cd = 'OBS_BAPT_LARV_2.0' THEN 'Handheld net' - WHEN sp.method_type_cd = 'OBS_BAPT_AUDI_2.0' THEN 'Audio Encounter' + WHEN sp.method_type_cd = 'OBS_BAPT_AUDI_2.0' THEN 'Audio encounter' WHEN sp.method_type_cd = 'TELEMETRY_DATA' THEN 'Radio' - WHEN sp.method_type_cd = 'OBS_WATR_BRCO' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_MAMU_MVFT' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_WATR_PBCO' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_UNGG_TOCO_2.0' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_SNAK_TRAN_2.0' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_SNAK_HACO_2.0' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'NON_STAN_OBS_BECO' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_RAPT_ENTR_2.0' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_BEAR_SIGN_2.0' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_CNFB_NECO_2.1' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_PISC_FWTR_2.0' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_MSTC_SNTR' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_WOOD_ENTR_2.0' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_RAPT_CPLB' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_UNGA_SABL' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_BAPT_TETR_2.0' THEN 'Pitfall Trap' - WHEN sp.method_type_cd = 'OBS_PSAL_TCQS_2.0' THEN 'Visual Encounter' + WHEN sp.method_type_cd = 'OBS_WATR_BRCO' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_MAMU_MVFT' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_WATR_PBCO' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_UNGG_TOCO_2.0' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_SNAK_TRAN_2.0' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_SNAK_HACO_2.0' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'NON_STAN_OBS_BECO' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_RAPT_ENTR_2.0' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_BEAR_SIGN_2.0' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_CNFB_NECO_2.1' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_PISC_FWTR_2.0' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_MSTC_SNTR' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_WOOD_ENTR_2.0' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_RAPT_CPLB' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_UNGA_SABL' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_BAPT_TETR_2.0' THEN 'Pitfall trap' + WHEN sp.method_type_cd = 'OBS_PSAL_TCQS_2.0' THEN 'Visual encounter' WHEN sp.method_type_cd = 'OBS_SMAM_CAPS_2.1' THEN 'Box or live trap' - WHEN sp.method_type_cd = 'OBS_UNGG_SLCO_2.0' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_WOOD_CPLB_2.0' THEN 'Visual Encounter' + WHEN sp.method_type_cd = 'OBS_UNGG_SLCO_2.0' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_WOOD_CPLB_2.0' THEN 'Visual encounter' WHEN sp.method_type_cd = 'OBS_BATS_TRAP' THEN 'Mist Net' - WHEN sp.method_type_cd = 'OBS_WATR_NBCO' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'HERPETILE_GROUP_DATA_1.0' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'NON_STAN_BAIT_SIGN' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_UNGG_CLASS_2.0' THEN 'Visual Encounter' + WHEN sp.method_type_cd = 'OBS_WATR_NBCO' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'HERPETILE_GROUP_DATA_1.0' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'NON_STAN_BAIT_SIGN' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_UNGG_CLASS_2.0' THEN 'Visual encounter' WHEN sp.method_type_cd = 'OBS_BATS_MNHT_2.1' THEN 'Mist Net' - WHEN sp.method_type_cd = 'Bird Call Playback' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_TFPG_HACO_2.0' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_RAPT_STWA_2.0' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_UNGA_EFWT_2.0' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_SONG_ENTR_2.0' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_UNGG_PECO_2.0' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'NON_STAN_COUNT' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_UNGA_CLASS_2.0' THEN 'Visual Encounter' + WHEN sp.method_type_cd = 'Bird Call Playback' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_TFPG_HACO_2.0' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_RAPT_STWA_2.0' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_UNGA_EFWT_2.0' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_SONG_ENTR_2.0' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_UNGG_PECO_2.0' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'NON_STAN_COUNT' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_UNGA_CLASS_2.0' THEN 'Visual encounter' WHEN sp.method_type_cd = 'OBS_SMAM_CAPS_2.0' THEN 'Box or live trap' WHEN sp.method_type_cd = 'OBS_BATS_MNHT_2.0' THEN 'Mist Net' - WHEN sp.method_type_cd = 'BIRD_DETECTION_1.0' THEN 'Visual Encounter' + WHEN sp.method_type_cd = 'BIRD_DETECTION_1.0' THEN 'Visual encounter' WHEN sp.method_type_cd = 'OBS_INIT_TEL_1.0' THEN 'Radio' WHEN sp.method_type_cd = 'OBS_MAMU_FOSU_2.0' THEN 'Radar' WHEN sp.method_type_cd = 'Wildlife Camera' THEN 'Camera trap' - WHEN sp.method_type_cd = 'OBS_BATS_DETC_2.0' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_OWL_NEST' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'NON_STAN_RAP_NEST' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'Bat Acoustic' THEN 'Audio Encounter' + WHEN sp.method_type_cd = 'OBS_BATS_DETC_2.0' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_OWL_NEST' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'NON_STAN_RAP_NEST' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'Bat Acoustic' THEN 'Audio encounter' WHEN sp.method_type_cd = 'OBS_SONG_PTCO_2.0' THEN 'Point Count' - WHEN sp.method_type_cd = 'Bird Nest Descriptions' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'Herp Capture Or Handling Or Class Or Count' THEN 'Visual Encounter' + WHEN sp.method_type_cd = 'Bird Nest Descriptions' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'Herp Capture Or Handling Or Class Or Count' THEN 'Visual encounter' WHEN sp.method_type_cd = 'OBS_INIT_TEL_1.2' THEN 'Radio' - WHEN sp.method_type_cd = 'OBS_OWL_CLPB' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_UNGA_CENS_1.0' THEN 'Visual Encounter' + WHEN sp.method_type_cd = 'OBS_OWL_CLPB' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_UNGA_CENS_1.0' THEN 'Visual encounter' WHEN sp.method_type_cd = 'OBS_INIT_TEL_1.1' THEN 'Radio' - WHEN sp.method_type_cd = 'HERPETILE_INDIVIDUAL_DATA_1.0' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'Bird Nest Visits' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_RAPT_CPLB_2.0' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'OBS_UNGA_SABL_2.0' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'NON_STAN_OBS_SGN' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'Rare Plants and Fungi' THEN 'Visual Encounter' - WHEN sp.method_type_cd = 'Ungulate Census' THEN 'Visual Encounter' + WHEN sp.method_type_cd = 'HERPETILE_INDIVIDUAL_DATA_1.0' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'Bird Nest Visits' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_RAPT_CPLB_2.0' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'OBS_UNGA_SABL_2.0' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'NON_STAN_OBS_SGN' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'Rare Plants and Fungi' THEN 'Visual encounter' + WHEN sp.method_type_cd = 'Ungulate Census' THEN 'Visual encounter' -- Visual Encounter WHEN sp.method_type_cd IN ( '12-Administrative Miscellaneous', @@ -334,7 +334,7 @@ export const transformSamplingMethods = async (connection: IDBConnection): Promi '%Point Count Observations%', '%Spring Spotlight Counts%', '%Aerial Sticknest Survey%', - '%Aerial Observations%') THEN 'Visual Encounter' + '%Aerial Observations%') THEN 'Visual encounter' -- Radio WHEN sp.method_type_cd IN ( '12-Administrative Miscellaneous', @@ -537,7 +537,7 @@ export const transformSamplingMethods = async (connection: IDBConnection): Promi '%Spadefoot Toad Auditory Survey%', '%Call playback inventory%', '%Call Playback%', - '%2006 Williamsons Sapsucker Call Playback%') THEN 'Audio Encounter' + '%2006 Williamsons Sapsucker Call Playback%') THEN 'Audio encounter' -- Drone WHEN sp.method_type_cd IN ( '12-Administrative Miscellaneous', @@ -599,7 +599,7 @@ export const transformSamplingMethods = async (connection: IDBConnection): Promi 'LBS') AND sp.survey_name IN ( '%Electrofishing%', '%TCS and Electrofishing%') THEN 'Electrofishing' - -- Camera Trap + -- Camera trap WHEN sp.method_type_cd IN ( '12-Administrative Miscellaneous', 'HERPETILE_HABITAT_DATA_1.0', @@ -637,7 +637,7 @@ export const transformSamplingMethods = async (connection: IDBConnection): Promi '%General Survey Auditory%', '%Remote Cameras and Hair Snag%', '%Camera%', - '%Telemetry and Wildlife Cameras%') THEN 'Camera Trap' + '%Telemetry and Wildlife Cameras%') THEN 'Camera trap' -- Handheld net WHEN sp.method_type_cd IN ( @@ -708,7 +708,7 @@ export const transformSamplingMethods = async (connection: IDBConnection): Promi '%1996 -1998 - Kermode Bear Hair Snare Suveys%', '%Hair Collection for Genetic Population Assignment%', '%2000-ongoing - Grizzly Bear Detection and Identification%', - '%Hair Snag DNA Survey%') THEN 'Hair Snag' + '%Hair Snag DNA Survey%') THEN 'Hair snag' -- Angling WHEN sp.method_type_cd IN ( @@ -832,7 +832,7 @@ export const transformSamplingMethods = async (connection: IDBConnection): Promi 'Animal Capture or Marking', 'Results by Area', 'Census', - 'LBS') AND sp.survey_name LIKE '%Aerial Net Gunning and Collar Removal%' THEN 'Visual Encounter' + 'LBS') AND sp.survey_name LIKE '%Aerial Net Gunning and Collar Removal%' THEN 'Visual encounter' -- Point count WHEN sp.method_type_cd IN ( From e03cdb23b80056af995b679346df16a47fc1e86f Mon Sep 17 00:00:00 2001 From: Meijer Date: Wed, 4 Sep 2024 16:14:34 -0700 Subject: [PATCH 13/29] please review possibilty of creating new temp table to use for spi wlo, with period id and visit id --- spi/src/transformations/sampling_period.ts | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/spi/src/transformations/sampling_period.ts b/spi/src/transformations/sampling_period.ts index 04220e5b9c..97c03eaef9 100644 --- a/spi/src/transformations/sampling_period.ts +++ b/spi/src/transformations/sampling_period.ts @@ -34,6 +34,34 @@ export const transformSampleVisits = async (connection: IDBConnection): Promise< sdcv.start_time, sdcv.end_time, ssm.survey_sample_method_id; + + -- possibility to create another temporary table that houses the design component visit id and the survey sample period id + -- ensures that we can properly attribute spi_wildlife_observations to the appropriate sampling period to get dates + + -- setting up the table -- + CREATE TABLE IF NOT EXISTS public.migrate_spi_sample_period_visit ( + design_component_visit_id INT, + survey_sample_period_id INT, + PRIMARY KEY (design_component_visit_id, survey_sample_period_id)); + + -- inserting component visit id and survey sample period id into the table -- + INSERT INTO public.migrate_spi_sample_period_visit (design_component_visit_id, survey_sample_period_id) + SELECT + sdcv.design_component_visit_id, + ssp.survey_sample_period_id + FROM + public.spi_design_component_visits sdcv + JOIN + public.migrate_spi_sample_design_component msd + ON sdcv.design_component_id = msd.design_component_id + JOIN + biohub.survey_sample_method ssm + ON msd.survey_sample_site_id = ssm.survey_sample_site_id + JOIN + biohub.survey_sample_period ssp + ON ssp.survey_sample_method_id = ssm.survey_sample_method_id + GROUP BY + sdcv.design_component_visit_id, ssp.survey_sample_period_id; `; await connection.sql(transformSampleVisitsSql); From 8319a5e898828744ec8cf49c4a600b08b11ca19c Mon Sep 17 00:00:00 2001 From: Meijer Date: Mon, 9 Sep 2024 11:35:24 -0700 Subject: [PATCH 14/29] changing progress ID portion to reflect status according to dates --- spi/src/transformations/survey.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/spi/src/transformations/survey.ts b/spi/src/transformations/survey.ts index eb70fb6cd6..70834031eb 100644 --- a/spi/src/transformations/survey.ts +++ b/spi/src/transformations/survey.ts @@ -21,7 +21,11 @@ export const transformSurveys = async (connection: IDBConnection): Promise WHEN ss.end_date < ss.start_date THEN ss.start_date ELSE ss.end_date END AS end_date, - (SELECT survey_progress_id FROM biohub.survey_progress WHERE name = 'In progress'), + CASE + WHEN ss.end_date < now() THEN (SELECT survey_progress_id FROM biohub.survey_progress WHERE name = 'Completed') + WHEN ss.start_date > now() THEN (SELECT survey_progress_id FROM biohub.survey_progress WHERE name = 'Planning') + ELSE (SELECT survey_progress_id FROM biohub.survey_progress WHERE name = 'In progress') + END AS progress_id, 'Start: ' || ss.start_date || '. End: ' || ss.end_date FROM public.spi_surveys ss From 378d9f50582bf4b4a164b75c041def0d1972ad99 Mon Sep 17 00:00:00 2001 From: Andrew <105487051+LouisThedroux@users.noreply.github.com> Date: Mon, 9 Sep 2024 16:40:03 -0700 Subject: [PATCH 15/29] added some logic that pulls some email addresses from spi_secured_persons to determine if they have email addresses and give the collab role based on this. Joined on names. Not tested in current state --- spi/src/transformations/project.ts | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/spi/src/transformations/project.ts b/spi/src/transformations/project.ts index a57a324181..14ffde5006 100644 --- a/spi/src/transformations/project.ts +++ b/spi/src/transformations/project.ts @@ -41,12 +41,33 @@ export const transformProjects = async (connection: IDBConnection): Promise Date: Mon, 9 Sep 2024 16:53:14 -0700 Subject: [PATCH 16/29] ; --- spi/src/transformations/project.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/spi/src/transformations/project.ts b/spi/src/transformations/project.ts index 14ffde5006..51c8f1f1e1 100644 --- a/spi/src/transformations/project.ts +++ b/spi/src/transformations/project.ts @@ -66,8 +66,7 @@ export const transformProjects = async (connection: IDBConnection): Promise Date: Tue, 10 Sep 2024 09:03:55 -0700 Subject: [PATCH 17/29] added additional sql for comparison --- spi/src/transformations/study-area.ts | 47 +++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/spi/src/transformations/study-area.ts b/spi/src/transformations/study-area.ts index 5433672391..e32a7ea4b9 100644 --- a/spi/src/transformations/study-area.ts +++ b/spi/src/transformations/study-area.ts @@ -29,6 +29,53 @@ export const transformStudyAreas = async (connection: IDBConnection): Promise Date: Tue, 10 Sep 2024 10:28:14 -0700 Subject: [PATCH 18/29] changed email address to email address when we can link one via firstname and lastname else default. Untested. May also be a bad idea, needs a review of logic --- spi/src/transformations/user.ts | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/spi/src/transformations/user.ts b/spi/src/transformations/user.ts index 268f881529..3fa7fc43df 100644 --- a/spi/src/transformations/user.ts +++ b/spi/src/transformations/user.ts @@ -43,13 +43,17 @@ export const transformUsers = async (connection: IDBConnection): Promise = (SELECT user_identity_source_id FROM biohub.user_identity_source WHERE name = 'UNVERIFIED'), 'spi-' || id, now(), - display_name, - given_name, - family_name, - 'Migrated from SPI as user' || id, - 'default' + md.display_name, + md.given_name, + md.family_name, + 'Migrated from SPI as user' || md.id, + COALESCE(spp.email_address, 'default') AS email FROM - migrate_spi_user_deduplication; + migrate_spi_user_deduplication md + LEFT JOIN + public.spi_secure_persons spp + ON spp.first_name = md.given_name + AND spp.last_name = md.family_name; ------------------------------------------------------------------------------------------------- -- Update deduplicated users table with the system_user_id From b897ef15011f281c1b59c0835af6f0bd01db5666 Mon Sep 17 00:00:00 2001 From: Meijer Date: Tue, 10 Sep 2024 11:13:51 -0700 Subject: [PATCH 19/29] study area updates --- spi/src/transformations/study-area.ts | 108 ++++++++++---------------- 1 file changed, 41 insertions(+), 67 deletions(-) diff --git a/spi/src/transformations/study-area.ts b/spi/src/transformations/study-area.ts index e32a7ea4b9..9439bfa761 100644 --- a/spi/src/transformations/study-area.ts +++ b/spi/src/transformations/study-area.ts @@ -7,75 +7,49 @@ export const transformStudyAreas = async (connection: IDBConnection): Promise Date: Tue, 10 Sep 2024 11:36:39 -0700 Subject: [PATCH 20/29] updates to survey --- spi/src/transformations/survey.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/spi/src/transformations/survey.ts b/spi/src/transformations/survey.ts index 70834031eb..a62bc70850 100644 --- a/spi/src/transformations/survey.ts +++ b/spi/src/transformations/survey.ts @@ -24,6 +24,7 @@ export const transformSurveys = async (connection: IDBConnection): Promise CASE WHEN ss.end_date < now() THEN (SELECT survey_progress_id FROM biohub.survey_progress WHERE name = 'Completed') WHEN ss.start_date > now() THEN (SELECT survey_progress_id FROM biohub.survey_progress WHERE name = 'Planning') + WHEN now() BETWEEN ss.start_date AND ss.end_date THEN (SELECT survey_progress_id FROM biohub.survey_progress WHERE name = 'In progress') ELSE (SELECT survey_progress_id FROM biohub.survey_progress WHERE name = 'In progress') END AS progress_id, 'Start: ' || ss.start_date || '. End: ' || ss.end_date From 7ac3d6d92186bcb1597bf5c40694b81fc9ce2a8f Mon Sep 17 00:00:00 2001 From: Andrew <105487051+LouisThedroux@users.noreply.github.com> Date: Tue, 10 Sep 2024 14:41:39 -0700 Subject: [PATCH 21/29] added join and condition. If no match on first and last names, system_user_id is null and will then be inserted. --- spi/src/transformations/project.ts | 32 ++++++++++++++++++------------ 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/spi/src/transformations/project.ts b/spi/src/transformations/project.ts index a57a324181..91744cb02c 100644 --- a/spi/src/transformations/project.ts +++ b/spi/src/transformations/project.ts @@ -24,19 +24,25 @@ export const transformProjects = async (connection: IDBConnection): Promise Date: Tue, 10 Sep 2024 14:48:18 -0700 Subject: [PATCH 22/29] reverting back because I made mistakes --- spi/src/transformations/project.ts | 60 ++++++++++++++++++------------ 1 file changed, 37 insertions(+), 23 deletions(-) diff --git a/spi/src/transformations/project.ts b/spi/src/transformations/project.ts index 91744cb02c..51c8f1f1e1 100644 --- a/spi/src/transformations/project.ts +++ b/spi/src/transformations/project.ts @@ -24,35 +24,49 @@ export const transformProjects = async (connection: IDBConnection): Promise Date: Tue, 10 Sep 2024 15:14:57 -0700 Subject: [PATCH 23/29] updates to check if user already exists based off of name and setting biohub_user_id as system_user_id --- spi/src/transformations/user.ts | 67 +++++++++++++++++++-------------- 1 file changed, 39 insertions(+), 28 deletions(-) diff --git a/spi/src/transformations/user.ts b/spi/src/transformations/user.ts index 3fa7fc43df..29c30cdfab 100644 --- a/spi/src/transformations/user.ts +++ b/spi/src/transformations/user.ts @@ -29,43 +29,54 @@ export const transformUsers = async (connection: IDBConnection): Promise = ------------------------------------------------------------------------------------------------- -- Turn deduplicated users into SIMS users ------------------------------------------------------------------------------------------------- + WITH w_existing_users AS ( + SELECT + system_user_id, + family_name, + given_name + FROM biohub.system_user + ) INSERT INTO biohub.system_user ( - user_identity_source_id, - user_identifier, - record_effective_date, - display_name, - given_name, - family_name, - notes, - email + user_identity_source_id, + user_identifier, + record_effective_date, + display_name, + given_name, + family_name, + notes, + email ) SELECT - (SELECT user_identity_source_id FROM biohub.user_identity_source WHERE name = 'UNVERIFIED'), - 'spi-' || id, - now(), - md.display_name, - md.given_name, - md.family_name, - 'Migrated from SPI as user' || md.id, - COALESCE(spp.email_address, 'default') AS email + (SELECT user_identity_source_id FROM biohub.user_identity_source WHERE name = 'UNVERIFIED'), + 'spi-' || md.id, + now(), + md.display_name, + md.given_name, + md.family_name, + 'Migrated from SPI as user ' || md.id, + COALESCE(spp.email_address, 'default') AS email FROM - migrate_spi_user_deduplication md + migrate_spi_user_deduplication md + LEFT JOIN + public.spi_secure_persons spp ON spp.first_name = md.given_name AND spp.last_name = md.family_name LEFT JOIN - public.spi_secure_persons spp - ON spp.first_name = md.given_name - AND spp.last_name = md.family_name; + w_existing_users eu ON eu.given_name = md.given_name AND eu.family_name = md.family_name + WHERE eu.system_user_id IS NULL; ------------------------------------------------------------------------------------------------- -- Update deduplicated users table with the system_user_id ------------------------------------------------------------------------------------------------- - UPDATE - migrate_spi_user_deduplication AS m - SET - biohub_user_id = su.system_user_id - FROM - biohub.system_user AS su - WHERE - su.user_identifier = 'spi-' || m.id; + UPDATE migrate_spi_user_deduplication AS m + SET biohub_user_id = su.system_user_id + FROM biohub.system_user AS su + WHERE su.user_identifier = 'spi-' || m.id; + + -- For existing users + UPDATE migrate_spi_user_deduplication AS m + SET biohub_user_id = eu.system_user_id + FROM w_existing_users eu + WHERE eu.given_name = m.given_name + AND eu.family_name = m.family_name; `; await connection.sql(sql); From ad7020c75eff7c9eaaebd28c87ba4bafc89f9875 Mon Sep 17 00:00:00 2001 From: Meijer Date: Tue, 10 Sep 2024 17:37:50 -0700 Subject: [PATCH 24/29] a commit of defeat and sadness --- spi/src/transformations/project.ts | 38 +++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/spi/src/transformations/project.ts b/spi/src/transformations/project.ts index 51c8f1f1e1..886dda63b1 100644 --- a/spi/src/transformations/project.ts +++ b/spi/src/transformations/project.ts @@ -29,13 +29,18 @@ export const transformProjects = async (connection: IDBConnection): Promise Date: Wed, 11 Sep 2024 11:27:59 -0700 Subject: [PATCH 25/29] add comment --- spi/src/transformations/project.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/spi/src/transformations/project.ts b/spi/src/transformations/project.ts index 886dda63b1..0fe99ef4bb 100644 --- a/spi/src/transformations/project.ts +++ b/spi/src/transformations/project.ts @@ -66,6 +66,7 @@ export const transformProjects = async (connection: IDBConnection): Promise Date: Wed, 11 Sep 2024 13:39:01 -0700 Subject: [PATCH 26/29] merge latest --- spi/src/transformations/sampling_methods.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/spi/src/transformations/sampling_methods.ts b/spi/src/transformations/sampling_methods.ts index e88aed7826..c24b0c16d8 100644 --- a/spi/src/transformations/sampling_methods.ts +++ b/spi/src/transformations/sampling_methods.ts @@ -127,11 +127,7 @@ export const transformSamplingMethods = async (connection: IDBConnection): Promi -- for each method technique, insert into method the technique into all sample sites join on biohub.survey WHERE spi_survey_id is not NULL `; -<<<<<<< HEAD - await connection.sql(transformSamplingMethods); -======= await connection.sql(sql); ->>>>>>> 7da2dd8bc4e8ae79bd8ba7d5fe88f728a08518aa console.log('Successfully transformed Sampling Methods'); }; From 7cb87969cf3874c4fa29a00a999cc5b9c79b16bd Mon Sep 17 00:00:00 2001 From: Meijer Date: Thu, 12 Sep 2024 10:36:21 -0700 Subject: [PATCH 27/29] pr fixes --- spi/src/index.ts | 11 ++++++++++- spi/src/transformations/project.ts | 17 ++--------------- spi/src/transformations/study-area.ts | 2 +- 3 files changed, 13 insertions(+), 17 deletions(-) diff --git a/spi/src/index.ts b/spi/src/index.ts index cf5832f073..f7fd91ea42 100644 --- a/spi/src/index.ts +++ b/spi/src/index.ts @@ -6,6 +6,9 @@ import { transformSurveyStratums } from './transformations/stratum'; import { transformSurveys } from './transformations/survey'; import { transformUsers } from './transformations/user'; import { truncateTables } from './utils/truncateTables'; +import { transformStudyAreas } from './transformations/study-area'; +import { transformSamplingMethods } from './transformations/sampling_methods'; +import { transformSampleVisits } from './transformations/sampling_period'; let connection: IDBConnection; // Declare connection variable at the module level @@ -50,7 +53,13 @@ async function main() { await transformSampleSites(connection); //STEP 7. Transforms SPI Survey Areas into SIMS Survey Locations - await transformSampleSites(connection); + await transformStudyAreas(connection); + + //STEP 8. Transforms SPI Sampling Method + await transformSamplingMethods(connection); + + //STEP 9. Transforms SPI Sampling Period + await transformSampleVisits(connection); // Commit the transactions connection.commit(); diff --git a/spi/src/transformations/project.ts b/spi/src/transformations/project.ts index 0fe99ef4bb..1bb52a2047 100644 --- a/spi/src/transformations/project.ts +++ b/spi/src/transformations/project.ts @@ -58,22 +58,9 @@ export const transformProjects = async (connection: IDBConnection): Promise Date: Thu, 12 Sep 2024 14:52:52 -0700 Subject: [PATCH 28/29] pr edits, again --- spi/src/transformations/project.ts | 88 +++++++++++++++++++----------- 1 file changed, 57 insertions(+), 31 deletions(-) diff --git a/spi/src/transformations/project.ts b/spi/src/transformations/project.ts index 1bb52a2047..d64e3730df 100644 --- a/spi/src/transformations/project.ts +++ b/spi/src/transformations/project.ts @@ -41,40 +41,66 @@ export const transformProjects = async (connection: IDBConnection): Promise Date: Thu, 12 Sep 2024 16:24:51 -0700 Subject: [PATCH 29/29] make fix --- spi/src/transformations/stratum.ts | 2 +- spi/src/transformations/user.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/spi/src/transformations/stratum.ts b/spi/src/transformations/stratum.ts index 6b26b98aa5..19ae3ff594 100644 --- a/spi/src/transformations/stratum.ts +++ b/spi/src/transformations/stratum.ts @@ -7,7 +7,7 @@ export const transformSurveyStratums = async (connection: IDBConnection): Promis set search_path = biohub,public; ------------------------------------------------------------------------------------------------- - -- Create stratum + -- Create stratum to do ------------------------------------------------------------------------------------------------- INSERT INTO biohub.survey_stratum (survey_id, name, description, create_date) diff --git a/spi/src/transformations/user.ts b/spi/src/transformations/user.ts index 29c30cdfab..b77781c9e2 100644 --- a/spi/src/transformations/user.ts +++ b/spi/src/transformations/user.ts @@ -63,9 +63,9 @@ export const transformUsers = async (connection: IDBConnection): Promise = w_existing_users eu ON eu.given_name = md.given_name AND eu.family_name = md.family_name WHERE eu.system_user_id IS NULL; - ------------------------------------------------------------------------------------------------- + ------------------------------------------------------------------------------------------------ -- Update deduplicated users table with the system_user_id - ------------------------------------------------------------------------------------------------- + ------------------------------------------------------------------------------------------------ UPDATE migrate_spi_user_deduplication AS m SET biohub_user_id = su.system_user_id FROM biohub.system_user AS su