From c7d6578b7c107556d5c019d66cbfdbedf297328e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dafydd=20Ll=C5=B7r=20Pearson?= Date: Wed, 17 Jul 2024 09:11:04 +0100 Subject: [PATCH] feat: Support multiple schema types (#203) --- .github/workflows/publish.yml | 2 +- .husky/pre-commit | 2 +- README.md | 18 +- .../lawfulDevelopmentCertificate/existing.ts | 1309 ------ .../lawfulDevelopmentCertificate/proposed.ts | 904 ---- .../priorApproval/convertCommercialToHome.ts | 1625 ------- .../data/landDrainageConsent.ts | 6 +- .../lawfulDevelopmentCertificate/existing.ts | 1314 ++++++ .../lawfulDevelopmentCertificate/proposed.ts | 906 ++++ .../data/listedBuildingConsent.ts | 4 +- .../planningPermission/fullHouseholder.ts | 4 +- .../data/planningPermission/major.ts | 6 +- .../data/planningPermission/minor.ts | 6 +- .../data/priorApproval/buildHomes.ts | 4 +- .../priorApproval/convertCommercialToHome.ts | 1632 ++++++++ .../data/priorApproval/extendUniversity.ts | 4 +- .../data/priorApproval/largerExtension.ts | 4 +- .../data/priorApproval/solarPanels.ts | 4 +- .../landDrainageConsent.json | 0 .../existing.json | 0 .../proposed.json | 0 .../listedBuildingConsent.json | 0 .../planningPermission/fullHouseholder.json | 0 .../planningPermission/major.json | 0 .../planningPermission/minor.json | 0 .../priorApproval/buildHomes.json | 0 .../convertCommercialToHome.json | 0 .../priorApproval/extendUniversity.json | 0 .../priorApproval/largerExtension.json | 0 .../priorApproval/solarPanels.json | 0 package.json | 7 +- pnpm-lock.yaml | 3719 ++++++++--------- .../digitalPlanningApplication.json | 0 scripts/build-json-examples.ts | 115 +- scripts/build-schema.sh | 20 + tests/.gitkeep | 0 tests/usage.test.ts | 139 +- types/Schema.ts | 29 - .../digitalPlanningApplication}/File.ts | 2 +- .../digitalPlanningApplication}/Metadata.ts | 4 +- .../PreAssessment.ts | 2 +- .../digitalPlanningApplication}/Responses.ts | 2 +- .../data/Applicant.ts | 2 +- .../data/Application.ts | 4 +- .../digitalPlanningApplication}/data/Files.ts | 0 .../data/Property.ts | 6 +- .../data/Proposal.ts | 18 +- .../digitalPlanningApplication}/data/User.ts | 0 .../data/shared.ts | 6 +- .../enums/ApplicationTypes.ts | 0 .../enums/BuildingRegulations.ts | 0 .../enums/DevelopmentTypes.ts | 0 .../enums/FileTypes.ts | 0 .../enums/Flags.ts | 0 .../enums/HousingProviders.ts | 0 .../enums/OpenSpaces.ts | 0 .../enums/PlanningConstraints.ts | 2 +- .../enums/ProjectTypes.ts | 0 .../enums/PropertyTypes.ts | 0 .../enums/ProtectedSpaces.ts | 0 .../enums/ResidentialUnitTypes.ts | 0 .../enums/TenureTypes.ts | 0 .../enums/UseClasses.ts | 0 .../digitalPlanningApplication/index.ts | 29 + {examples => types/shared/enums}/.gitkeep | 0 types/{ => shared}/utils.ts | 0 66 files changed, 5730 insertions(+), 6130 deletions(-) delete mode 100644 examples/data/lawfulDevelopmentCertificate/existing.ts delete mode 100644 examples/data/lawfulDevelopmentCertificate/proposed.ts delete mode 100644 examples/data/priorApproval/convertCommercialToHome.ts rename examples/{ => digitalPlanningApplication}/data/landDrainageConsent.ts (98%) create mode 100644 examples/digitalPlanningApplication/data/lawfulDevelopmentCertificate/existing.ts create mode 100644 examples/digitalPlanningApplication/data/lawfulDevelopmentCertificate/proposed.ts rename examples/{ => digitalPlanningApplication}/data/listedBuildingConsent.ts (99%) rename examples/{ => digitalPlanningApplication}/data/planningPermission/fullHouseholder.ts (99%) rename examples/{ => digitalPlanningApplication}/data/planningPermission/major.ts (99%) rename examples/{ => digitalPlanningApplication}/data/planningPermission/minor.ts (99%) rename examples/{ => digitalPlanningApplication}/data/priorApproval/buildHomes.ts (99%) create mode 100644 examples/digitalPlanningApplication/data/priorApproval/convertCommercialToHome.ts rename examples/{ => digitalPlanningApplication}/data/priorApproval/extendUniversity.ts (99%) rename examples/{ => digitalPlanningApplication}/data/priorApproval/largerExtension.ts (99%) rename examples/{ => digitalPlanningApplication}/data/priorApproval/solarPanels.ts (99%) rename examples/{ => digitalPlanningApplication}/landDrainageConsent.json (100%) rename examples/{ => digitalPlanningApplication}/lawfulDevelopmentCertificate/existing.json (100%) rename examples/{ => digitalPlanningApplication}/lawfulDevelopmentCertificate/proposed.json (100%) rename examples/{ => digitalPlanningApplication}/listedBuildingConsent.json (100%) rename examples/{ => digitalPlanningApplication}/planningPermission/fullHouseholder.json (100%) rename examples/{ => digitalPlanningApplication}/planningPermission/major.json (100%) rename examples/{ => digitalPlanningApplication}/planningPermission/minor.json (100%) rename examples/{ => digitalPlanningApplication}/priorApproval/buildHomes.json (100%) rename examples/{ => digitalPlanningApplication}/priorApproval/convertCommercialToHome.json (100%) rename examples/{ => digitalPlanningApplication}/priorApproval/extendUniversity.json (100%) rename examples/{ => digitalPlanningApplication}/priorApproval/largerExtension.json (100%) rename examples/{ => digitalPlanningApplication}/priorApproval/solarPanels.json (100%) rename schema/schema.json => schemas/digitalPlanningApplication.json (100%) create mode 100755 scripts/build-schema.sh delete mode 100644 tests/.gitkeep delete mode 100644 types/Schema.ts rename types/{schema => schemas/digitalPlanningApplication}/File.ts (80%) rename types/{schema => schemas/digitalPlanningApplication}/Metadata.ts (96%) rename types/{schema => schemas/digitalPlanningApplication}/PreAssessment.ts (89%) rename types/{schema => schemas/digitalPlanningApplication}/Responses.ts (94%) rename types/{schema => schemas/digitalPlanningApplication}/data/Applicant.ts (98%) rename types/{schema => schemas/digitalPlanningApplication}/data/Application.ts (97%) rename types/{schema => schemas/digitalPlanningApplication}/data/Files.ts (100%) rename types/{schema => schemas/digitalPlanningApplication}/data/Property.ts (97%) rename types/{schema => schemas/digitalPlanningApplication}/data/Proposal.ts (92%) rename types/{schema => schemas/digitalPlanningApplication}/data/User.ts (100%) rename types/{schema => schemas/digitalPlanningApplication}/data/shared.ts (80%) rename types/{ => schemas/digitalPlanningApplication}/enums/ApplicationTypes.ts (100%) rename types/{ => schemas/digitalPlanningApplication}/enums/BuildingRegulations.ts (100%) rename types/{ => schemas/digitalPlanningApplication}/enums/DevelopmentTypes.ts (100%) rename types/{ => schemas/digitalPlanningApplication}/enums/FileTypes.ts (100%) rename types/{ => schemas/digitalPlanningApplication}/enums/Flags.ts (100%) rename types/{ => schemas/digitalPlanningApplication}/enums/HousingProviders.ts (100%) rename types/{ => schemas/digitalPlanningApplication}/enums/OpenSpaces.ts (100%) rename types/{ => schemas/digitalPlanningApplication}/enums/PlanningConstraints.ts (98%) rename types/{ => schemas/digitalPlanningApplication}/enums/ProjectTypes.ts (100%) rename types/{ => schemas/digitalPlanningApplication}/enums/PropertyTypes.ts (100%) rename types/{ => schemas/digitalPlanningApplication}/enums/ProtectedSpaces.ts (100%) rename types/{ => schemas/digitalPlanningApplication}/enums/ResidentialUnitTypes.ts (100%) rename types/{ => schemas/digitalPlanningApplication}/enums/TenureTypes.ts (100%) rename types/{ => schemas/digitalPlanningApplication}/enums/UseClasses.ts (100%) create mode 100644 types/schemas/digitalPlanningApplication/index.ts rename {examples => types/shared/enums}/.gitkeep (100%) rename types/{ => shared}/utils.ts (100%) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 395b32f6..bd3dbcac 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -38,7 +38,7 @@ jobs: run: | VERSION=v${{steps.version_check.outputs.version}} pnpm build mkdir -p "$GITHUB_WORKSPACE/v${{ steps.version_check.outputs.version }}" - mv schema/* "$GITHUB_WORKSPACE/v${{ steps.version_check.outputs.version }}" + mv schemas/* "$GITHUB_WORKSPACE/v${{ steps.version_check.outputs.version }}" mkdir -p "$GITHUB_WORKSPACE/v${{ steps.version_check.outputs.version }}/types" mv types/* "$GITHUB_WORKSPACE/v${{ steps.version_check.outputs.version }}/types" diff --git a/.husky/pre-commit b/.husky/pre-commit index 49bae617..3611423b 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -3,7 +3,7 @@ branch="$(git rev-parse --abbrev-ref HEAD)" if [ "$branch" != "main" ]; then - pnpm build-json-examples && pnpm build-schema:dev + pnpm build fi pnpm check && pnpm fix diff --git a/README.md b/README.md index 72a94454..5d3da5fc 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ There's two main options for integrating with Digital Planning Data schemas: 1. Reference a hosted schema file directly: - `https://theopensystemslab.github.io/digital-planning-data-schemas//schema.json` + `https://theopensystemslab.github.io/digital-planning-data-schemas//schemas/.json` 1. Clone this repository and reference the local schema files programmatically in your own code using tools that support JSON Schema validation @@ -20,11 +20,11 @@ For more detailed info on integrating and validating schemas, please refer to th ## Repository structure -`/examples`: Examples of valid payloads for each application type supported by this specification. +`/examples`: Examples of valid payloads for each application type supported by the specifications encoded in this repository. -`/schema`: The main JSON Schema file. The `main` branch of this repo will reflect the `@next` version, while historic versions are documented and released on the `dist` branch. +`/schemas`: The main JSON Schema files. The `main` branch of this repo will reflect the `@next` version, while historic versions are documented and released on the `dist` branch. -`/types`: TypeScript interfaces used to generate the JSON Schema. +`/types`: TypeScript interfaces used to generate the JSON Schemas. `/tests`: Test suites to ensure that the generated schema and example payloads are valid, accurate, and capable of handling different scenarios. @@ -37,9 +37,9 @@ pnpm i ``` ## Developing -The JSON Schema is defined using TypeScript interfaces and then generated using the `ts-json-schema-generator` library. +The JSON Schemas are defined using TypeScript interfaces and then generated using the `ts-json-schema-generator` library. -To make changes, update `/types` and then run `pnpm build` to automatically generate the output JSON file under `/schema`. +To make changes, update `/types` and then run `pnpm build` to automatically generate the output JSON file under `/schemas`. Types should be annotated using JSDocs, which will then be read during schema generation. @@ -47,9 +47,7 @@ Please see the [JSON schema docs](https://json-schema.org/understanding-json-sch ## Adding examples and testing -Add a TypeScript file to `/examples/data` with at least one exported variable representing an example payload definition. - -Add each exported payload to `examplesToConvert` in `/scripts/build-json-examples` and `examplesToTest` in `/tests/usage.test.ts`. +Add a TypeScript file to `/examples//data` with at least one exported variable representing an example payload definition. Run `pnpm build-json-examples` to automatically generate a corresponding JSON file per example payload in the root of `/examples`. @@ -58,7 +56,7 @@ Run `pnpm test` to confirm your example payload can be successfully validated ag ## Publishing To publish a new version, open a pull request against `main` which increments the `package.json` version. -On merge, the [publish.yml](https://github.com/theopensystemslab/digital-planning-data-schemas/blob/main/.github/workflows/publish.yml) GitHub Action will update the `dist` branch, create a release, and publish the new version via GitHub pages at `http://theopensystemslab.github.io/digital-planning-data-schemas//schema.json` +On merge, the [publish.yml](https://github.com/theopensystemslab/digital-planning-data-schemas/blob/main/.github/workflows/publish.yml) GitHub Action will update the `dist` branch, create a release, and publish the new version via GitHub pages at `http://theopensystemslab.github.io/digital-planning-data-schemas//schemas/.json` ## Contributing We welcome feedback, bug reports, and contributions to help improve and grow the Digital Planning Data schemas via GitHub Issues and Pull Requests. diff --git a/examples/data/lawfulDevelopmentCertificate/existing.ts b/examples/data/lawfulDevelopmentCertificate/existing.ts deleted file mode 100644 index 4096474f..00000000 --- a/examples/data/lawfulDevelopmentCertificate/existing.ts +++ /dev/null @@ -1,1309 +0,0 @@ -import {Schema} from '../../../types/Schema'; - -const version = process.env['VERSION'] || '@next'; - -export const lawfulDevelopmentCertificateExisting: Schema = { - data: { - application: { - type: { - value: 'ldc.existing', - description: 'Lawful Development Certificate - Existing use', - }, - fee: { - calculated: 258, - payable: 258, - category: { - sixAndSeven: 258, - }, - exemption: { - disability: false, - resubmission: false, - }, - reduction: { - sports: false, - parishCouncil: false, - alternative: false, - }, - reference: { - govPay: 'sandbox-ref-123', - }, - }, - declaration: { - accurate: true, - connection: { - value: 'none', - }, - }, - }, - user: { - role: 'agent', - }, - applicant: { - type: 'individual', - name: { - first: 'Roald', - last: 'Dahl', - }, - email: 'f.fox@boggischickenshed.com', - phone: { - primary: 'Not provided by agent', - }, - address: { - sameAsSiteAddress: true, - }, - siteContact: { - role: 'applicant', - }, - ownership: { - interest: 'occupier', - owners: [ - { - interest: 'owner', - name: 'Matilda Wormwood', - address: { - town: 'Reading', - line1: '9, Library Way', - line2: '', - county: '', - country: 'UK', - postcode: 'L1T3R8Y', - }, - noticeGiven: true, - }, - ], - }, - agent: { - name: { - first: 'F', - last: 'Fox', - }, - email: 'f.fox@boggischickenshed.com', - phone: { - primary: '0234 567 8910', - }, - address: { - line1: 'The Tree', - line2: 'One Tree Hill', - town: 'Great Tunnelling', - county: '', - postcode: 'F0XH0L3', - country: '', - }, - }, - }, - property: { - address: { - latitude: 51.6994957, - longitude: -0.708966, - x: 489320, - y: 200872, - title: 'GIPSY HOUSE, WHITEFIELD LANE, GREAT MISSENDEN', - singleLine: 'GIPSY HOUSE, WHITEFIELD LANE, GREAT MISSENDEN, HP16 0BP', - source: 'Ordnance Survey', - uprn: '100081174436', - usrn: '07300709', - pao: '', - street: 'WHITEFIELD LANE', - town: 'GREAT MISSENDEN', - postcode: 'HP16 0BP', - }, - boundary: { - site: { - type: 'Feature', - geometry: { - type: 'Polygon', - coordinates: [ - [ - [-0.7085376977920632, 51.699564621757816], - [-0.7086127996444802, 51.69965605327502], - [-0.708982944488535, 51.699654390885456], - [-0.7089909911155797, 51.699673508361855], - [-0.7089319825172521, 51.699683482694184], - [-0.7089520990848638, 51.69973002954916], - [-0.7091867923736667, 51.69968930105364], - [-0.7092216610908603, 51.699688469859495], - [-0.709239095449457, 51.69968514508267], - [-0.709253847599039, 51.6997134056779], - [-0.7093128561973666, 51.69970176896433], - [-0.7092699408531282, 51.699610337539525], - [-0.7096253335476013, 51.699648572521454], - [-0.7098613679409116, 51.69958457046823], - [-0.7098962366581053, 51.69955049141595], - [-0.7098090648651213, 51.6994216557425], - [-0.7099243998527616, 51.699390070166544], - [-0.7098264992237182, 51.699238791576136], - [-0.7097460329532714, 51.699236297968724], - [-0.7095716893673034, 51.69927536446852], - [-0.7095421850681398, 51.69927619567025], - [-0.7092954218387698, 51.69931941814053], - [-0.7090929150581455, 51.69937427737031], - [-0.709021836519251, 51.69938923896689], - [-0.7089574635028936, 51.6994008757608], - [-0.7088904082775213, 51.69942082454341], - [-0.7086691260337761, 51.699501450783515], - [-0.7086181640624932, 51.699517243535354], - [-0.7085457444191079, 51.699541348251245], - [-0.7085350155830483, 51.69954799782576], - [-0.7085376977920632, 51.699564621757816], - ], - ], - }, - properties: null, - }, - area: { - hectares: 0.299367, - squareMetres: 2993.67, - }, - }, - planning: { - sources: [ - 'https://api.editor.planx.dev/gis/buckinghamshire?geom=POLYGON+%28%28-0.7085376977920632+51.699564621757816%2C+-0.7086127996444802+51.69965605327502%2C+-0.708982944488535+51.699654390885456%2C+-0.7089909911155797+51.699673508361855%2C+-0.7089319825172521+51.699683482694184%2C+-0.7089520990848638+51.69973002954916%2C+-0.7091867923736667+51.69968930105364%2C+-0.7092216610908603+51.699688469859495%2C+-0.709239095449457+51.69968514508267%2C+-0.709253847599039+51.6997134056779%2C+-0.7093128561973666+51.69970176896433%2C+-0.7092699408531282+51.699610337539525%2C+-0.7096253335476013+51.699648572521454%2C+-0.7098613679409116+51.69958457046823%2C+-0.7098962366581053+51.69955049141595%2C+-0.7098090648651213+51.6994216557425%2C+-0.7099243998527616+51.699390070166544%2C+-0.7098264992237182+51.699238791576136%2C+-0.7097460329532714+51.699236297968724%2C+-0.7095716893673034+51.69927536446852%2C+-0.7095421850681398+51.69927619567025%2C+-0.7092954218387698+51.69931941814053%2C+-0.7090929150581455+51.69937427737031%2C+-0.709021836519251+51.69938923896689%2C+-0.7089574635028936+51.6994008757608%2C+-0.7088904082775213+51.69942082454341%2C+-0.7086691260337761+51.699501450783515%2C+-0.7086181640624932+51.699517243535354%2C+-0.7085457444191079+51.699541348251245%2C+-0.7085350155830483+51.69954799782576%2C+-0.7085376977920632+51.699564621757816%29%29&analytics=false&sessionId=95f90e21-93f5-4761-90b3-815c673e041f', - 'https://api.editor.planx.dev/roads?usrn=07300709', - ], - designations: [ - { - value: 'article4', - description: 'Article 4 Direction area', - intersects: true, - entities: [ - { - name: 'Whole District excluding the Town of Chesham - Poultry production.', - description: - 'Bucks County Council Town and Country Planning Act 1947 Town and Country Planning General Development Order 1950. Re Whole District excluding the Town of Chesham. In relation to poultry production.', - source: { - text: 'Planning Data', - url: 'https://www.planning.data.gov.uk/entity/7010002192', - }, - }, - ], - }, - { - value: 'article4.caz', - description: 'Central Activities Zone (CAZ)', - intersects: false, - }, - { - value: 'tpo', - description: 'Tree Preservation Order (TPO) or zone', - intersects: false, - }, - { - value: 'listed', - description: 'Listed Building', - intersects: false, - }, - { - value: 'monument', - description: 'Site of a Scheduled Monument', - intersects: false, - }, - { - value: 'designated', - description: 'Designated land', - intersects: true, - }, - { - value: 'nature.SAC', - description: 'Special Area of Conservation (SAC)', - intersects: false, - }, - { - value: 'nature.ASNW', - description: 'Ancient Semi-Natural Woodland (ASNW)', - intersects: false, - }, - { - value: 'nature.SSSI', - description: 'Site of Special Scientific Interest (SSSI)', - intersects: false, - }, - { - value: 'locallyListed', - description: 'Locally Listed Building', - intersects: false, - }, - { - value: 'nature.SPA', - description: 'Special Protection Area (SPA)', - intersects: false, - }, - { - value: 'designated.WHS', - description: 'UNESCO World Heritage Site or buffer zone', - intersects: false, - }, - { - value: 'registeredPark', - description: 'Historic Park or Garden', - intersects: false, - }, - { - value: 'designated.AONB', - description: 'Area of Outstanding Natural Beauty (AONB)', - intersects: true, - entities: [ - { - name: 'Chilterns', - source: { - text: 'Planning Data', - url: 'https://www.planning.data.gov.uk/entity/1000005', - }, - }, - ], - }, - { - value: 'designated.nationalPark', - description: 'National Park', - intersects: false, - }, - { - value: 'designated.conservationArea', - description: 'Conservation Area', - intersects: false, - }, - { - value: 'designated.nationalPark.broads', - description: 'National Park - Broads', - intersects: false, - }, - { - value: 'road.classified', - description: 'Classified Road', - intersects: false, - }, - ], - }, - localAuthorityDistrict: ['Buckinghamshire', 'Chiltern'], - region: 'South East', - type: { - value: 'residential.dwelling.house.detached', - description: 'Detached', - }, - }, - proposal: { - projectType: [ - { - value: 'extend.outbuilding.studio', - description: 'Add an outbuilding - studio', - }, - ], - description: - 'Construction of a small outbuilding for use as a writing studio.', - boundary: { - site: { - type: 'Feature', - geometry: { - type: 'Polygon', - coordinates: [ - [ - [-0.7085376977920632, 51.699564621757816], - [-0.7086127996444802, 51.69965605327502], - [-0.708982944488535, 51.699654390885456], - [-0.7089909911155797, 51.699673508361855], - [-0.7089319825172521, 51.699683482694184], - [-0.7089520990848638, 51.69973002954916], - [-0.7091867923736667, 51.69968930105364], - [-0.7092216610908603, 51.699688469859495], - [-0.709239095449457, 51.69968514508267], - [-0.709253847599039, 51.6997134056779], - [-0.7093128561973666, 51.69970176896433], - [-0.7092699408531282, 51.699610337539525], - [-0.7096253335476013, 51.699648572521454], - [-0.7098613679409116, 51.69958457046823], - [-0.7098962366581053, 51.69955049141595], - [-0.7098090648651213, 51.6994216557425], - [-0.7099243998527616, 51.699390070166544], - [-0.7098264992237182, 51.699238791576136], - [-0.7097460329532714, 51.699236297968724], - [-0.7095716893673034, 51.69927536446852], - [-0.7095421850681398, 51.69927619567025], - [-0.7092954218387698, 51.69931941814053], - [-0.7090929150581455, 51.69937427737031], - [-0.709021836519251, 51.69938923896689], - [-0.7089574635028936, 51.6994008757608], - [-0.7088904082775213, 51.69942082454341], - [-0.7086691260337761, 51.699501450783515], - [-0.7086181640624932, 51.699517243535354], - [-0.7085457444191079, 51.699541348251245], - [-0.7085350155830483, 51.69954799782576], - [-0.7085376977920632, 51.699564621757816], - ], - ], - }, - properties: null, - }, - area: { - hectares: 0.299367, - squareMetres: 2993.67, - }, - }, - date: {}, - }, - }, - preAssessment: [ - { - value: 'Planning permission / Immune', - description: - 'It looks like the changes may now be beyond the time limit for enforcement action. This does not apply if the changes have been deliberately concealed.', - }, - ], - responses: [ - { - question: 'List the changes involved in the project', - responses: [ - {value: 'Outbuildings (such as sheds, garages or garden offices)'}, - ], - metadata: {}, - }, - { - question: 'What type of changes were they?', - responses: [{value: 'Extension'}], - metadata: {autoAnswered: true}, - }, - { - question: 'Were the works carried out more than 4 years ago?', - responses: [ - {value: 'Yes', metadata: {flags: ['Planning permission / Immune']}}, - ], - metadata: { - policyRefs: [ - { - text: 'Town and Country Planning Act 1990 Section 171B', - url: 'https://www.legislation.gov.uk/ukpga/1990/8/section/171B', - }, - ], - }, - }, - { - question: 'Have the works been completed?', - responses: [{value: 'Yes'}], - metadata: { - policyRefs: [ - { - text: 'Town and Country Planning Act 1990 Section 171B', - url: 'https://www.legislation.gov.uk/ukpga/1990/8/section/171B', - }, - ], - }, - }, - { - question: 'When were the works completed?', - responses: [{value: '1959-01-01'}], - metadata: { - policyRefs: [ - { - text: 'Town and Country Planning Act 1990 Section 171B', - url: 'https://www.legislation.gov.uk/ukpga/1990/8/section/171B', - }, - ], - }, - }, - { - question: 'Has anyone ever attempted to conceal the changes?', - responses: [ - {value: 'No', metadata: {flags: ['Planning permission / Immune']}}, - ], - metadata: { - policyRefs: [ - { - text: 'Secretary of State for Communities and Local Government and another v Welwyn Hatfield Borough Council and Bonsall / Jackson v Secretary of State for Communities and Local Government', - url: 'https://www.supremecourt.uk/cases/docs/uksc-2010-0036-judgment.pdf', - }, - ], - }, - }, - { - question: 'Has enforcement action been taken about these changes?', - responses: [ - {value: 'No', metadata: {flags: ['Planning permission / Immune']}}, - ], - metadata: { - policyRefs: [ - { - text: 'Town and Country Planning Act 1990 Section 171A', - url: 'https://www.legislation.gov.uk/ukpga/1990/8/section/171A', - }, - { - text: 'Town and Country Planning Act 1990 Section 191', - url: 'https://www.legislation.gov.uk/ukpga/1990/8/section/191', - }, - ], - }, - }, - { - question: 'List the changes involved in the project', - responses: [ - {value: 'Add an outbuilding (such as a shed, garage or garden office)'}, - {value: 'Outbuildings (such as a shed, garage or garden office)'}, - ], - metadata: { - autoAnswered: true, - policyRefs: [ - { - text: 'Town and Country Planning Act 1990 (Section 55)', - url: 'https://www.legislation.gov.uk/ukpga/1990/8/section/55', - }, - { - text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015', - url: 'https://www.legislation.gov.uk/uksi/2015/596/contents', - }, - ], - }, - }, - { - question: 'What type of house is it?', - responses: [{value: 'Detached'}], - metadata: {autoAnswered: true}, - }, - { - question: 'What type of property is it?', - responses: [{value: 'House'}], - metadata: { - autoAnswered: true, - policyRefs: [ - { - text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Development Order 2015', - url: 'https://www.legislation.gov.uk/uksi/2015/596/contents', - }, - { - text: 'Section 336 of the Town and Country Planning Act', - url: 'https://www.legislation.gov.uk/ukpga/1990/8/section/336/enacted', - }, - ], - }, - }, - { - question: 'Is any part of the property listed?', - responses: [{value: 'No'}], - metadata: { - autoAnswered: true, - policyRefs: [ - { - text: 'The Town The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 1, Class E.', - url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1/crossheading/class-e-buildings-etc-incidental-to-the-enjoyment-of-a-dwellinghouse', - }, - ], - }, - }, - { - question: 'Was the house originally built as a house?', - responses: [{value: 'Yes, it was built as a house'}], - metadata: {}, - }, - { - question: 'Was the house built before 2020?', - responses: [{value: 'Yes, it was built before 2020'}], - metadata: {}, - }, - { - question: 'What is the new outbuilding used for?', - responses: [{value: 'Studio'}], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 1, Class E', - url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1/crossheading/class-e-buildings-etc-incidental-to-the-enjoyment-of-a-dwellinghouse', - }, - ], - }, - }, - { - question: 'How will the studio be used?', - responses: [ - { - value: 'Personal use', - metadata: {flags: ['Planning permission / Permitted development']}, - }, - ], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Section 2, Part 1. Class E', - url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1/crossheading/class-e-buildings-etc-incidental-to-the-enjoyment-of-a-dwellinghouse', - }, - ], - }, - }, - { - question: 'How many storeys does the new outbuilding have?', - responses: [ - { - value: '1 storey', - metadata: {flags: ['Planning permission / Permitted development']}, - }, - ], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Section 2, Part 1. Class E.1 (d) (h)', - url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1/crossheading/class-e-buildings-etc-incidental-to-the-enjoyment-of-a-dwellinghouse', - }, - ], - }, - }, - { - question: - 'Does the outbuilding include any balconies, decks, verandahs or platforms that are more than 30cm above ground level?', - responses: [ - { - value: 'No', - metadata: {flags: ['Planning permission / Permitted development']}, - }, - ], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Section 2, Part 1. Class E.1 (d)', - url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1/crossheading/class-e-buildings-etc-incidental-to-the-enjoyment-of-a-dwellinghouse', - }, - ], - }, - }, - { - question: - 'Is any part of the new outbuilding in front of the original house?', - responses: [ - { - value: 'No', - metadata: {flags: ['Planning permission / Permitted development']}, - }, - ], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 1, Class E.1 (c)', - url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1', - }, - ], - }, - }, - { - question: 'Is the property on designated land?', - responses: [{value: 'Yes'}], - metadata: {autoAnswered: true}, - }, - { - question: - 'Is any part of the new outbuilding between a side wall of the original house and the boundary?', - responses: [ - { - value: 'No', - metadata: {flags: ['Planning permission / Permitted development']}, - }, - ], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 1, Class E.3', - url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1', - }, - ], - }, - }, - { - question: 'Is any part of the new structure within 2m of the boundary?', - responses: [{value: 'No, it is 2m or more from the boundary'}], - metadata: {}, - }, - { - question: 'What type of roof does the new outbuilding have?', - responses: [{value: 'Dual pitch roof'}], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 1, Class E', - url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1/crossheading/class-e-buildings-etc-incidental-to-the-enjoyment-of-a-dwellinghouse', - }, - ], - }, - }, - { - question: 'How high is the new outbuilding?', - responses: [ - { - value: '4m or lower', - metadata: {flags: ['Planning permission / Permitted development']}, - }, - ], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 1, Class E.1 (e)(ii)', - url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1/crossheading/class-e-buildings-etc-incidental-to-the-enjoyment-of-a-dwellinghouse', - }, - ], - }, - }, - { - question: 'Is the property on designated land?', - responses: [{value: 'Yes'}], - metadata: {autoAnswered: true}, - }, - { - question: 'Is the property in any of the following?', - responses: [ - { - value: 'An area of outstanding natural beauty', - metadata: {flags: ['Planning permission / Permission needed']}, - }, - ], - metadata: {autoAnswered: true}, - }, - { - question: 'How far from the house is the new outbuilding?', - responses: [{value: 'More than 20m from the house'}], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 1, Class E', - url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1', - }, - ], - }, - }, - { - question: - 'What is the total footprint of all outbuildings more than 20m from the house?', - responses: [ - { - value: '10m² or less', - metadata: {flags: ['Planning permission / Permitted development']}, - }, - ], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 1, Class E.2', - url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1', - }, - ], - }, - }, - { - question: - 'How much of the property is covered by extensions and outbuildings?', - responses: [ - { - value: '50% or less of the available area around the original house', - metadata: {flags: ['Planning permission / Permitted development']}, - }, - ], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 1, Class E.1 (b)', - url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1', - }, - ], - }, - }, - { - question: - 'Does the new outbuilding have a satellite dish or antenna on it?', - responses: [ - { - value: 'No', - metadata: {flags: ['Planning permission / Permitted development']}, - }, - ], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 1, Class E.1 (i)', - url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1', - }, - ], - }, - }, - { - question: 'Is the new outbuilding air conditioned?', - responses: [ - { - value: 'No', - metadata: {flags: ['Planning permission / Not development']}, - }, - ], - metadata: {}, - }, - { - question: 'What types of changes does the project involve?', - responses: [{value: 'Extension'}], - metadata: {autoAnswered: true}, - }, - { - question: - 'Have you already told us that you are doing works to a tree or hedge?', - responses: [{value: 'No'}], - metadata: {autoAnswered: true}, - }, - { - question: 'Are there any protected trees on the property?', - responses: [{value: 'No'}], - metadata: {autoAnswered: true}, - }, - { - question: 'Is the site in a conservation area?', - responses: [ - { - value: 'No', - metadata: {flags: ['Works to trees & hedges / Not required']}, - }, - ], - metadata: {autoAnswered: true}, - }, - { - question: 'What are you applying about?', - responses: [{value: 'Existing changes I have made in the past'}], - metadata: {autoAnswered: true}, - }, - { - question: 'What do the works involve?', - responses: [{value: 'Works to extend a property'}], - metadata: {autoAnswered: true}, - }, - { - question: 'What does the project involve?', - responses: [ - { - value: - 'Add an outbuilding (such as sheds, shelters or garden offices)', - }, - ], - metadata: {autoAnswered: true}, - }, - { - question: 'Is it a residential property?', - responses: [{value: 'Yes'}], - metadata: {autoAnswered: true}, - }, - { - question: 'Do the changes involve the creation of any new homes?', - responses: [{value: 'No'}], - metadata: {}, - }, - { - question: - 'Do the changes involve creating any new bedrooms or bathrooms?', - responses: [{value: 'No'}], - metadata: {}, - }, - { - question: 'What is the internal floor area of the new outbuilding?', - responses: [{value: '9'}], - metadata: {}, - }, - { - question: 'Do the changes involve the creation of any new homes?', - responses: [{value: 'No'}], - metadata: {autoAnswered: true}, - }, - { - question: 'Is the property in the Greater London Authority area?', - responses: [{value: 'No'}], - metadata: { - autoAnswered: true, - policyRefs: [ - { - text: 'Greater London Authority Act 1999', - url: 'https://www.legislation.gov.uk/ukpga/1999/29/section/346', - }, - ], - }, - }, - { - question: 'Your contact details', - responses: [ - {value: 'Mr F Fox 0234 567 8910 f.fox@boggischickenshed.com'}, - ], - metadata: {}, - }, - { - question: "Did you already provide the applicant's email address?", - responses: [{value: 'No'}], - metadata: {autoAnswered: true}, - }, - { - question: "Applicant's email address", - responses: [{value: 'r.dahl@example.com'}], - metadata: {}, - }, - { - question: "Did you already provide the applicant's telephone number?", - responses: [{value: 'No'}], - metadata: {autoAnswered: true}, - }, - { - question: "Applicant's telephone number", - responses: [{value: '01098 765 432'}], - metadata: {}, - }, - { - question: 'Which of these best describes you?', - responses: [{value: "Agent acting on the applicant's behalf"}], - metadata: {autoAnswered: true}, - }, - { - question: 'Have you notified the other owners?', - responses: [{value: 'Yes'}], - metadata: {}, - }, - { - question: - "Which of these best describes the applicant's interest in the land?", - responses: [{value: 'Co-owner'}], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (Development Management Procedure) (England) Order 2015', - url: 'https://www.legislation.gov.uk/uksi/2015/595/article/39/made', - }, - ], - }, - }, - { - question: 'How many other owners are there?', - responses: [{value: 'Two or more other owners'}], - metadata: {}, - }, - { - question: 'Do you know who the other owners of the site are?', - responses: [{value: 'Yes, all of them'}], - metadata: {}, - }, - { - question: 'How many owners are there in total?', - responses: [{value: '3'}], - metadata: {autoAnswered: true}, - }, - { - question: 'Full name of Owner 2', - responses: [{value: 'William Wonka'}], - metadata: {}, - }, - { - question: 'Address of Owner 2', - responses: [ - { - value: - 'The Factory, 10, Scrumdiddlyumptious Avenue, Oomaph upon Ouse, CH0C0L8', - }, - ], - metadata: {}, - }, - { - question: 'Have you already notified the other owners?', - responses: [{value: 'Yes'}], - metadata: {autoAnswered: true}, - }, - { - question: 'Date on which notice was given to Owner 2', - responses: [{value: '1964-04-01'}], - metadata: {}, - }, - { - question: 'Full name of Owner 3', - responses: [{value: 'Matilda Wormwood'}], - metadata: {}, - }, - { - question: 'Address of Owner 3', - responses: [{value: '9, Library Way, Reading, L1T3R8Y'}], - metadata: {}, - }, - { - question: 'Have you already notified the other owners?', - responses: [{value: 'Yes'}], - metadata: {autoAnswered: true}, - }, - { - question: 'Date on which notice was given to Owner 3', - responses: [{value: '1988-04-01'}], - metadata: {}, - }, - { - question: 'What types of changes did the project involve?', - responses: [{value: 'Extension'}], - metadata: {autoAnswered: true}, - }, - { - question: - 'Would you like to upload any photographs of the property as it is today?', - responses: [{value: 'Yes'}], - metadata: {}, - }, - { - question: 'What type of extension have you added?', - responses: [{value: 'Outbuilding'}], - metadata: {autoAnswered: true}, - }, - { - question: - 'Is the roof of the outbuilding shown on a drawing you have already uploaded?', - responses: [{value: 'Yes'}], - metadata: {}, - }, - { - question: 'Did the works involve any alterations to ground levels?', - responses: [{value: 'No'}], - metadata: {}, - }, - { - question: - 'Would you like to upload any photographs of the property before the changes?', - responses: [{value: 'No'}], - metadata: {}, - }, - { - question: - 'Would you like to upload any other additional drawings or documents?', - responses: [{value: 'No'}], - metadata: {}, - }, - { - question: 'Provide evidence of completion date', - responses: [ - {value: 'Construction invoices'}, - {value: 'Other documents or correspondence'}, - ], - metadata: {}, - }, - { - question: 'What do these construction invoices show?', - responses: [{value: "Nothing, it's a test document. "}], - metadata: {}, - }, - { - question: 'What do these documents show?', - responses: [{value: 'Nothing really, this is just a test. '}], - metadata: {}, - }, - { - question: 'What type of planning application are you making?', - responses: [{value: 'Lawful Development Certificate'}], - metadata: {autoAnswered: true}, - }, - { - question: 'What type of changes are you applying for?', - responses: [{value: 'Existing changes'}], - metadata: {autoAnswered: true}, - }, - { - question: 'Is the property a home?', - responses: [{value: 'Yes'}], - metadata: {autoAnswered: true}, - }, - { - question: 'What types of changes does the application relate to?', - responses: [{value: 'Extension'}], - metadata: {autoAnswered: true}, - }, - { - question: 'How many homes does this application relate to?', - responses: [{value: '1'}], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (Fees for Applications, Deemed Applications, Requests and Site Visits) (England) Regulations 2012 Schedule 1, Part 2', - url: 'https://www.legislation.gov.uk/uksi/2012/2920/contents', - }, - ], - }, - }, - { - question: 'What type of extension did you build?', - responses: [ - {value: 'Outbuilding (such as shed, shelter or garden office'}, - ], - metadata: {autoAnswered: true}, - }, - { - question: 'Is the property a home?', - responses: [{value: 'Yes'}], - metadata: {autoAnswered: true}, - }, - { - question: 'What works does the project involve?', - responses: [{value: 'Extension'}], - metadata: {autoAnswered: true}, - }, - { - question: - 'Is the sole purpose of the project to support the needs of a disabled resident?', - responses: [{value: 'No'}], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (Fees for Applications, Deemed Applications, Requests and Site Visits) (England) Regulations 2012, Regulation 14', - url: 'https://www.legislation.gov.uk/uksi/2012/2920/regulation/14', - }, - { - text: 'UK Statutory Instruments 2012 No. 2920 Regulation 4', - url: 'https://www.legislation.gov.uk/uksi/2012/2920/regulation/4/made', - }, - { - text: 'Equalities Act 2010, Section 6', - url: 'https://www.legislation.gov.uk/ukpga/2010/15/section/6', - }, - { - text: 'Children Act 1989, Part 3', - url: 'https://www.legislation.gov.uk/ukpga/1989/41/part/III', - }, - ], - }, - }, - { - question: 'Is this application a resubmission?', - responses: [{value: 'No'}], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (Fees for Applications, Deemed Applications, Requests and Site Visits) (England) Regulations 2012, Regulation 9', - url: 'https://www.legislation.gov.uk/uksi/2012/2920/regulation/9', - }, - ], - }, - }, - { - question: 'Does the application qualify for a disability exemption?', - responses: [{value: 'No'}], - metadata: {autoAnswered: true}, - }, - { - question: 'Does the application qualify for a resubmission exemption?', - responses: [{value: 'No'}], - metadata: {autoAnswered: true}, - }, - { - question: 'Is the site a sports field?', - responses: [{value: 'No'}], - metadata: { - autoAnswered: true, - policyRefs: [ - { - text: 'The Town and Country Planning (Fees for Applications, Deemed Applications, Requests and Site Visits) (England) Regulations 2012 Chapter 2, Paragraph 3', - url: 'https://www.legislation.gov.uk/uksi/2012/2920/schedule/1', - }, - ], - }, - }, - { - question: - 'Is the application being made by (or on behalf of) a parish or community council?', - responses: [{value: 'No'}], - metadata: { - autoAnswered: true, - policyRefs: [ - { - text: 'The Town and Country Planning (Fees for Applications, Deemed Applications, Requests and Site Visits) (England) Regulations 2012 - Regulation 11', - url: 'https://www.legislation.gov.uk/uksi/2012/2920/regulation/11', - }, - ], - }, - }, - { - question: - 'Are you also submitting another proposal for the same site today?', - responses: [{value: 'No'}], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (Fees for Applications, Deemed Applications, Requests and Site Visits) (England) Regulations 2012 Chapter 2, Paragraph 10', - url: 'https://www.legislation.gov.uk/uksi/2012/2920/schedule/1', - }, - ], - }, - }, - { - question: - 'Does the application qualify for the sports club fee reduction?', - responses: [{value: 'No'}], - metadata: {autoAnswered: true}, - }, - { - question: - 'Does the application qualify for the parish council reduction?', - responses: [{value: 'No'}], - metadata: { - autoAnswered: true, - policyRefs: [ - { - text: 'The Town and Country Planning (Fees for Applications, Deemed Applications, Requests and Site Visits) (England) Regulations 2012 - Regulation 11', - url: 'https://www.legislation.gov.uk/uksi/2012/2920/regulation/11', - }, - ], - }, - }, - { - question: - 'Does the application qualify for the alternative application reduction?', - responses: [{value: 'No'}], - metadata: {autoAnswered: true}, - }, - { - question: - 'Did you get any pre-application advice before making this application?', - responses: [{value: 'No'}], - metadata: {}, - }, - { - question: - 'What local planning authority is this application being sent to?', - responses: [{value: 'Chiltern'}], - metadata: {autoAnswered: true}, - }, - { - question: 'What type of application is it?', - responses: [{value: 'Lawful Development Certificate'}], - metadata: {autoAnswered: true}, - }, - { - question: 'What type of works are you applying about?', - responses: [{value: 'Existing'}], - metadata: {autoAnswered: true}, - }, - { - question: "What is the applicant's interest in the land?", - responses: [{value: 'Owner'}], - metadata: {autoAnswered: true}, - }, - { - question: "What is the user's role?", - responses: [{value: 'Other'}], - metadata: {autoAnswered: true}, - }, - { - question: "What is the applicant's declared connections?", - responses: [{value: 'None'}], - metadata: {autoAnswered: true}, - }, - ], - files: [ - { - name: 'https://api.editor.planx.dev/file/private/tbp4kiba/myPlans.pdf', - type: [ - { - value: 'photographs.proposed', - description: 'Photographs - proposed', - }, - { - value: 'sitePlan.proposed', - description: 'Site plan - proposed', - }, - { - value: 'elevations.proposed', - description: 'Elevations - proposed', - }, - { - value: 'floorPlan.proposed', - description: 'Floor plan - proposed', - }, - ], - }, - { - name: 'https://api.editor.planx.dev/file/private/vyyogkcf/correspondence.pdf', - type: [ - { - value: 'otherEvidence', - description: 'Other - evidence or correspondence', - }, - ], - description: 'Nothing really, this is just a test. ', - }, - { - name: 'https://api.editor.planx.dev/file/private/97ltnrxr/invoice.pdf', - type: [ - { - value: 'constructionInvoice', - description: 'Construction invoice', - }, - ], - description: "Nothing, it's a test document. ", - }, - ], - metadata: { - organisation: 'BKM', - id: '95f90e21-93f5-4761-90b3-815c673e041f', - source: 'PlanX', - service: { - flowId: '824628b2-deeb-48b0-92b1-2ca7f3b17163', - url: 'https://www.editor.planx.dev/buckinghamshire/apply-for-a-lawful-development-certificate/preview', - files: { - required: [ - { - value: 'photographs.proposed', - description: 'Photographs - proposed', - }, - { - value: 'sitePlan.proposed', - description: 'Site plan - proposed', - }, - { - value: 'elevations.proposed', - description: 'Elevations - proposed', - }, - { - value: 'floorPlan.proposed', - description: 'Floor plan - proposed', - }, - { - value: 'floorPlan.proposed', - description: 'Floor plan - proposed', - }, - ], - recommended: [ - { - value: 'otherEvidence', - description: 'Other - evidence or correspondence', - }, - { - value: 'constructionInvoice', - description: 'Construction invoice', - }, - ], - optional: [], - }, - fee: { - category: { - sixAndSeven: [ - { - description: - 'The planning fee for an application for a Certificate of Lawfulness relating to existing alterations or extensions of a single home is £258.', - policyRefs: [ - { - text: 'UK Statutory Instruments 2023 No. 1197', - url: 'https://www.legislation.gov.uk/uksi/2023/1197/made', - }, - ], - }, - ], - }, - calculated: [ - { - description: - 'The planning fee for an application for a Certificate of Lawfulness relating to existing alterations or extensions of a single home is £258.', - policyRefs: [ - { - text: 'UK Statutory Instruments 2023 No. 1197', - url: 'https://www.legislation.gov.uk/uksi/2023/1197/made', - }, - ], - }, - ], - payable: [ - { - description: - 'The planning fee for an application for a Certificate of Lawfulness relating to existing alterations or extensions of a single home is £258.', - policyRefs: [ - { - text: 'UK Statutory Instruments 2023 No. 1197', - url: 'https://www.legislation.gov.uk/uksi/2023/1197/made', - }, - ], - }, - ], - }, - }, - submittedAt: '2023-10-02t00:00:00z', - schema: `https://theopensystemslab.github.io/digital-planning-data-schemas/${version}/schema.json`, - }, -}; diff --git a/examples/data/lawfulDevelopmentCertificate/proposed.ts b/examples/data/lawfulDevelopmentCertificate/proposed.ts deleted file mode 100644 index 5ec05429..00000000 --- a/examples/data/lawfulDevelopmentCertificate/proposed.ts +++ /dev/null @@ -1,904 +0,0 @@ -import {Schema} from '../../../types/Schema'; - -const version = process.env['VERSION'] || '@next'; - -export const lawfulDevelopmentCertificateProposed: Schema = { - data: { - application: { - type: { - value: 'ldc.proposed', - description: 'Lawful Development Certificate - Proposed use', - }, - fee: { - calculated: 129, - payable: 0, - category: { - sixAndSeven: 129, - }, - exemption: { - disability: true, - resubmission: true, - }, - reduction: { - sports: false, - parishCouncil: false, - alternative: false, - }, - }, - declaration: { - accurate: true, - connection: { - value: 'none', - }, - }, - }, - user: { - role: 'applicant', - }, - applicant: { - type: 'individual', - name: { - first: 'Enid', - last: 'Blyton', - }, - email: 'famousfive@example.com', - phone: { - primary: '05555 555 555', - }, - address: { - sameAsSiteAddress: true, - }, - siteContact: { - role: 'applicant', - }, - ownership: { - interest: 'owner', - }, - }, - property: { - address: { - latitude: 51.6154458, - longitude: -0.6463271, - x: 493822, - y: 191603, - title: '7, BLYTON CLOSE, BEACONSFIELD', - singleLine: '7, BLYTON CLOSE, BEACONSFIELD, HP9 2LX', - source: 'Ordnance Survey', - uprn: '100080482163', - usrn: '35200844', - pao: '7', - street: 'BLYTON CLOSE', - town: 'BEACONSFIELD', - postcode: 'HP9 2LX', - }, - boundary: { - site: { - type: 'Feature', - geometry: { - type: 'Polygon', - coordinates: [ - [ - [-0.646633654832832, 51.61556919642334], - [-0.6466296315193095, 51.61554504700152], - [-0.6465049088001171, 51.61551173743314], - [-0.6464512646198194, 51.61522027766699], - [-0.6463131308555524, 51.61522943785954], - [-0.6463037431240002, 51.61520695374722], - [-0.6462487578391951, 51.615222775901515], - [-0.6462393701076429, 51.61520861923739], - [-0.6459456682205124, 51.615292726412235], - [-0.6460489332675857, 51.61561499701554], - [-0.646633654832832, 51.61556919642334], - ], - ], - }, - properties: null, - }, - area: { - hectares: 0.141826, - squareMetres: 1418.26, - }, - }, - planning: { - sources: [ - 'https://api.editor.planx.dev/gis/buckinghamshire?geom=POLYGON+%28%28-0.646633654832832+51.61556919642334%2C+-0.6466296315193095+51.61554504700152%2C+-0.6465049088001171+51.61551173743314%2C+-0.6464512646198194+51.61522027766699%2C+-0.6463131308555524+51.61522943785954%2C+-0.6463037431240002+51.61520695374722%2C+-0.6462487578391951+51.615222775901515%2C+-0.6462393701076429+51.61520861923739%2C+-0.6459456682205124+51.615292726412235%2C+-0.6460489332675857+51.61561499701554%2C+-0.646633654832832+51.61556919642334%29%29&analytics=false&sessionId=8da51c5b-a2a0-4386-a15d-29d66f9c121c', - 'https://api.editor.planx.dev/roads?usrn=35200844', - ], - designations: [ - { - value: 'article4', - description: 'Article 4 Direction area', - intersects: false, - }, - { - value: 'article4.caz', - description: 'Central Activities Zone (CAZ)', - intersects: false, - }, - { - value: 'tpo', - description: 'Tree Preservation Order (TPO) or zone', - intersects: false, - }, - { - value: 'listed', - description: 'Listed Building', - intersects: false, - }, - { - value: 'monument', - description: 'Site of a Scheduled Monument', - intersects: false, - }, - { - value: 'designated', - description: 'Designated land', - intersects: false, - }, - { - value: 'nature.SAC', - description: 'Special Area of Conservation (SAC)', - intersects: false, - }, - { - value: 'nature.ASNW', - description: 'Ancient Semi-Natural Woodland (ASNW)', - intersects: false, - }, - { - value: 'nature.SSSI', - description: 'Site of Special Scientific Interest (SSSI)', - intersects: false, - }, - { - value: 'locallyListed', - description: 'Locally Listed Building', - intersects: false, - }, - { - value: 'nature.SPA', - description: 'Special Protection Area (SPA)', - intersects: false, - }, - { - value: 'designated.WHS', - description: 'UNESCO World Heritage Site or buffer zone', - intersects: false, - }, - { - value: 'registeredPark', - description: 'Historic Park or Garden', - intersects: false, - }, - { - value: 'designated.AONB', - description: 'Area of Outstanding Natural Beauty (AONB)', - intersects: false, - }, - { - value: 'designated.nationalPark', - description: 'National Park', - intersects: false, - }, - { - value: 'designated.conservationArea', - description: 'Conservation Area', - intersects: false, - }, - { - value: 'designated.nationalPark.broads', - description: 'National Park - Broads', - intersects: false, - }, - { - value: 'road.classified', - description: 'Classified Road', - intersects: false, - }, - ], - }, - localAuthorityDistrict: ['Buckinghamshire', 'South Bucks'], - region: 'South East', - type: { - value: 'residential.dwelling.house.detached', - description: 'Detached', - }, - }, - proposal: { - projectType: [ - { - value: 'extend.rear', - description: 'Add a rear or side extension (or conservatory)', - }, - ], - description: 'Rear extension of a home', - boundary: { - site: { - type: 'Feature', - geometry: { - type: 'Polygon', - coordinates: [ - [ - [-0.646633654832832, 51.61556919642334], - [-0.6466296315193095, 51.61554504700152], - [-0.6465049088001171, 51.61551173743314], - [-0.6464512646198194, 51.61522027766699], - [-0.6463131308555524, 51.61522943785954], - [-0.6463037431240002, 51.61520695374722], - [-0.6462487578391951, 51.615222775901515], - [-0.6462393701076429, 51.61520861923739], - [-0.6459456682205124, 51.615292726412235], - [-0.6460489332675857, 51.61561499701554], - [-0.646633654832832, 51.61556919642334], - ], - ], - }, - properties: null, - }, - area: { - hectares: 0.141826, - squareMetres: 1418.26, - }, - }, - date: {}, - extend: { - area: { - squareMetres: 24, - }, - }, - }, - }, - preAssessment: [ - { - value: 'Planning permission / Permitted development', - description: - 'It looks like the proposed changes may fall within the rules for Permitted Development and therefore would not need planning permission.', - }, - ], - responses: [ - { - question: 'List the changes involved in the project', - responses: [{value: 'Add a rear or side extension (or conservatory)'}], - metadata: { - policyRefs: [ - { - text: 'Town and Country Planning Act 1990 (Section 55)', - url: 'https://www.legislation.gov.uk/ukpga/1990/8/section/55', - }, - { - text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015', - url: 'https://www.legislation.gov.uk/uksi/2015/596/contents', - }, - ], - }, - }, - { - question: 'What type of property is it?', - responses: [{value: 'House'}], - metadata: { - autoAnswered: true, - policyRefs: [ - { - text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015', - url: 'https://www.legislation.gov.uk/uksi/2015/596/contents/made', - }, - ], - }, - }, - { - question: 'What type of house is it?', - responses: [{value: 'Detached'}], - metadata: {autoAnswered: true}, - }, - { - question: 'How many storeys does the original house have?', - responses: [{value: '2 or more'}], - metadata: {}, - }, - { - question: 'Does the original house have a projection to the rear?', - responses: [{value: 'No'}], - metadata: {}, - }, - { - question: 'Was the house always a house?', - responses: [{value: 'Yes, it was built as a house'}], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015, Schedule 2, Part 1, Class A', - url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1', - }, - ], - }, - }, - { - question: 'Was the house built before 2020?', - responses: [ - { - value: 'Yes, it was built before 2020', - metadata: {flags: ['Planning permission / Permitted development']}, - }, - ], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 1, Class 1 A.', - url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1', - }, - ], - }, - }, - { - question: 'How many storeys does the extension have?', - responses: [{value: '1 storey'}], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Section 2, Part 1, Class A', - url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1', - }, - ], - }, - }, - { - question: 'Does the original house have a projection to the rear?', - responses: [{value: 'No'}], - metadata: {autoAnswered: true}, - }, - { - question: 'Which of these best describes your project?', - responses: [{value: 'Rear only'}], - metadata: { - policyRefs: [ - { - text: 'General Permitted Development Order 2015, Technical guidance', - url: 'https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/830643/190910_Tech_Guide_for_publishing.pdf', - }, - ], - }, - }, - { - question: 'Is the property on designated land?', - responses: [{value: 'No'}], - metadata: {autoAnswered: true}, - }, - { - question: 'Is the property a site of special scientific interest?', - responses: [{value: 'No'}], - metadata: {autoAnswered: true}, - }, - { - question: 'What type of house is it?', - responses: [{value: 'Detached'}], - metadata: {autoAnswered: true}, - }, - { - question: - 'How far does the new addition extend beyond the back wall of the original house?', - responses: [ - { - value: 'Less than 4m', - metadata: {flags: ['Planning permission / Permitted development']}, - }, - ], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 1, Class A.1 (f)(i)', - url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1', - }, - ], - }, - }, - { - question: 'What is the shortest distance to the property boundary?', - responses: [{value: '2m or more'}], - metadata: {}, - }, - { - question: - 'Are the materials of the extension similar to the original house?', - responses: [ - { - value: 'Yes', - metadata: {flags: ['Planning permission / Permitted development']}, - }, - ], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 1, Class A', - url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1', - }, - ], - }, - }, - { - question: 'Is the property on designated land?', - responses: [{value: 'No'}], - metadata: {autoAnswered: true}, - }, - { - question: - 'How much of the property is covered by extensions and outbuildings?', - responses: [ - { - value: '50% or less of the available area around the original house', - metadata: {flags: ['Planning permission / Permitted development']}, - }, - ], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 1, Class A', - url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1', - }, - ], - }, - }, - { - question: 'What types of changes does the project involve?', - responses: [{value: 'Extension'}], - metadata: {autoAnswered: true}, - }, - { - question: - 'Have you already told us that you are doing works to a tree or hedge?', - responses: [{value: 'No'}], - metadata: {autoAnswered: true}, - }, - { - question: 'Are there any protected trees on the property?', - responses: [{value: 'No'}], - metadata: {autoAnswered: true}, - }, - { - question: 'Is the site in a conservation area?', - responses: [ - { - value: 'No', - metadata: {flags: ['Works to trees & hedges / Not required']}, - }, - ], - metadata: {autoAnswered: true}, - }, - { - question: 'What are you applying about?', - responses: [{value: 'Proposed changes I want to make in the future'}], - metadata: {autoAnswered: true}, - }, - { - question: 'What do the works involve?', - responses: [{value: 'Works to extend a property'}], - metadata: {autoAnswered: true}, - }, - { - question: 'What does the project involve?', - responses: [{value: 'Add a rear or side extension (or conservatory)'}], - metadata: {autoAnswered: true}, - }, - { - question: - 'How much is the internal floor area of the property increasing by?', - responses: [{value: '24'}], - metadata: {}, - }, - { - question: 'Is it a residential property?', - responses: [{value: 'Yes'}], - metadata: {autoAnswered: true}, - }, - { - question: 'Do the changes involve the creation of any new homes?', - responses: [{value: 'No'}], - metadata: {}, - }, - { - question: - 'Do the changes involve creating any new bedrooms or bathrooms?', - responses: [{value: 'No'}], - metadata: {}, - }, - { - question: 'Do the changes involve the creation of any new homes?', - responses: [{value: 'No'}], - metadata: {autoAnswered: true}, - }, - { - question: 'Is the property in the Greater London Authority area?', - responses: [{value: 'No'}], - metadata: { - autoAnswered: true, - policyRefs: [ - { - text: 'Greater London Authority Act 1999', - url: 'https://www.legislation.gov.uk/ukpga/1999/29/section/346', - }, - ], - }, - }, - { - question: 'Which of these best describes you?', - responses: [{value: 'Applicant'}], - metadata: {autoAnswered: true}, - }, - { - question: 'Which of these best describes your interest in the land?', - responses: [{value: 'Sole owner'}], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (Development Management Procedure) (England) Order 2015', - url: 'https://www.legislation.gov.uk/uksi/2015/595/article/39/made', - }, - ], - }, - }, - { - question: 'What types of changes does the project involve?', - responses: [{value: 'Extension'}], - metadata: {autoAnswered: true}, - }, - { - question: - 'Does the work involve any alterations to ground or floor levels?', - responses: [{value: 'No'}], - metadata: {}, - }, - { - question: 'Would you like to upload any photographs?', - responses: [{value: 'No'}], - metadata: {}, - }, - { - question: 'What types of extension are being added?', - responses: [{value: 'Rear or side'}], - metadata: {autoAnswered: true}, - }, - { - question: 'Do you also want to add existing internal floor plans?', - responses: [{value: 'No'}], - metadata: {}, - }, - { - question: - 'Is the roof of the extension already shown on another set of drawings?', - responses: [{value: 'No'}], - metadata: {}, - }, - { - question: - 'Would you like to upload any additional drawings, documents or images?', - responses: [{value: 'No'}], - metadata: {}, - }, - { - question: 'What type of planning application are you making?', - responses: [{value: 'Lawful Development Certificate'}], - metadata: {autoAnswered: true}, - }, - { - question: 'What type of changes are you applying for?', - responses: [{value: 'Proposed changes'}], - metadata: {autoAnswered: true}, - }, - { - question: 'Is the property a home?', - responses: [{value: 'Yes'}], - metadata: {autoAnswered: true}, - }, - { - question: 'What types of changes does the application relate to?', - responses: [{value: 'Extension'}], - metadata: {autoAnswered: true}, - }, - { - question: 'How many homes does this application relate to?', - responses: [{value: '1'}], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (Fees for Applications, Deemed Applications, Requests and Site Visits) (England) Regulations 2012 Schedule 1, Part 2', - url: 'https://www.legislation.gov.uk/uksi/2012/2920/contents', - }, - ], - }, - }, - { - question: 'What type of extension is it?', - responses: [{value: 'Rear or side extension'}], - metadata: {autoAnswered: true}, - }, - { - question: 'Is the property a home?', - responses: [{value: 'Yes'}], - metadata: {autoAnswered: true}, - }, - { - question: 'What works does the project involve?', - responses: [{value: 'Extension'}], - metadata: {autoAnswered: true}, - }, - { - question: - 'Is the sole purpose of the project to support the needs of a disabled resident?', - responses: [{value: 'No'}], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (Fees for Applications, Deemed Applications, Requests and Site Visits) (England) Regulations 2012, Regulation 14', - url: 'https://www.legislation.gov.uk/uksi/2012/2920/regulation/14', - }, - { - text: 'UK Statutory Instruments 2012 No. 2920 Regulation 4', - url: 'https://www.legislation.gov.uk/uksi/2012/2920/regulation/4/made', - }, - { - text: 'Equalities Act 2010, Section 6', - url: 'https://www.legislation.gov.uk/ukpga/2010/15/section/6', - }, - { - text: 'Children Act 1989, Part 3', - url: 'https://www.legislation.gov.uk/ukpga/1989/41/part/III', - }, - ], - }, - }, - { - question: 'Is this application a resubmission?', - responses: [{value: 'Yes'}], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (Fees for Applications, Deemed Applications, Requests and Site Visits) (England) Regulations 2012, Regulation 9', - url: 'https://www.legislation.gov.uk/uksi/2012/2920/regulation/9', - }, - ], - }, - }, - { - question: - 'Is this the first time you have resubmitted an application for this site?', - responses: [{value: 'Yes'}], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (Fees for Applications, Deemed Applications, Requests and Site Visits) (England) Regulations 2012, Regulation 8', - url: 'https://www.legislation.gov.uk/uksi/2012/2920/regulation/8', - }, - ], - }, - }, - { - question: 'What type of application is this?', - responses: [{value: 'Lawful Development Certificate'}], - metadata: {autoAnswered: true}, - }, - { - question: "What was the original application's reference number?", - responses: [{value: 'M8AG1C F4R4WAY TR33'}], - metadata: {}, - }, - { - question: - 'To qualify for a fee exemption, the proposed works must be of a similar description to the original application', - responses: [{value: 'I understand'}], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (Fees for Applications, Deemed Applications, Requests and Site Visits) (England) Regulations 2012, Regulation 14', - url: 'https://www.legislation.gov.uk/uksi/2012/2920/regulation/14', - }, - ], - }, - }, - { - question: 'What was the result of the original application?', - responses: [{value: 'Withdrawn'}], - metadata: {}, - }, - { - question: 'When did you submit the original application?', - responses: [{value: 'Within the last 12 months'}], - metadata: { - policyRefs: [ - { - text: 'UK Statutory Instruments 2012 No. 2920 Regulation 8', - url: 'https://www.legislation.gov.uk/uksi/2012/2920/regulation/8/made', - }, - ], - }, - }, - { - question: 'Does the application qualify for a disability exemption?', - responses: [{value: 'No'}], - metadata: {autoAnswered: true}, - }, - { - question: 'Does the application qualify for a resubmission exemption?', - responses: [{value: 'Yes'}], - metadata: {autoAnswered: true}, - }, - { - question: - 'Did you get any pre-application advice before making this application?', - responses: [{value: 'No'}], - metadata: {}, - }, - { - question: - 'What local planning authority is this application being sent to?', - responses: [{value: 'South Buckinghamshire'}], - metadata: {autoAnswered: true}, - }, - { - question: 'What type of application is it?', - responses: [{value: 'Lawful Development Certificate'}], - metadata: {autoAnswered: true}, - }, - { - question: 'What type of works are you applying about?', - responses: [{value: 'Proposed'}], - metadata: {autoAnswered: true}, - }, - { - question: "What is the applicant's interest in the land?", - responses: [{value: 'Owner'}], - metadata: {autoAnswered: true}, - }, - { - question: "What is the user's role?", - responses: [{value: 'Applicant'}], - metadata: {autoAnswered: true}, - }, - { - question: "What is the applicant's declared connections?", - responses: [{value: 'None'}], - metadata: {autoAnswered: true}, - }, - ], - files: [ - { - name: 'https://api.editor.planx.dev/file/private/tbp4kiba/myPlans.pdf', - type: [ - { - value: 'roofPlan.existing', - description: 'Roof plan - existing', - }, - { - value: 'roofPlan.proposed', - description: 'Roof plan - proposed', - }, - { - value: 'sitePlan.existing', - description: 'Site plan - existing', - }, - { - value: 'sitePlan.proposed', - description: 'Site plan - proposed', - }, - { - value: 'elevations.existing', - description: 'Elevations - existing', - }, - { - value: 'elevations.proposed', - description: 'Elevations - proposed', - }, - ], - }, - { - name: 'https://api.editor.planx.dev/file/private/311w2id6/floor_plans.pdf', - type: [ - { - value: 'floorPlan.existing', - description: 'Floor plan - existing', - }, - { - value: 'floorPlan.proposed', - description: 'Floor plan - proposed', - }, - ], - }, - ], - metadata: { - organisation: 'BKM', - id: '8da51c5b-a2a0-4386-a15d-29d66f9c121c', - source: 'PlanX', - service: { - flowId: '824628b2-deeb-48b0-92b1-2ca7f3b17163', - url: 'https://www.editor.planx.dev/buckinghamshire/apply-for-a-lawful-development-certificate/preview', - files: { - required: [ - { - value: 'roofPlan.existing', - description: 'Roof plan - existing', - }, - { - value: 'sitePlan.existing', - description: 'Site plan - existing', - }, - { - value: 'roofPlan.proposed', - description: 'Roof plan - proposed', - }, - { - value: 'sitePlan.proposed', - description: 'Site plan - proposed', - }, - { - value: 'elevations.existing', - description: 'Elevations - existing', - }, - { - value: 'floorPlan.existing', - description: 'Floor plan - existing', - }, - { - value: 'elevations.proposed', - description: 'Elevations - proposed', - }, - { - value: 'floorPlan.proposed', - description: 'Floor plan - proposed', - }, - ], - recommended: [], - optional: [], - }, - fee: { - category: { - sixAndSeven: [ - { - description: - 'The plannning fee for an application for a Certificate of Lawfulness relating to the proposed alteration or extension of a single home is £129', - policyRefs: [ - { - text: 'UK Statutory Instruments 2023 No. 1197', - url: 'https://www.legislation.gov.uk/uksi/2023/1197/made', - }, - ], - }, - ], - }, - calculated: [ - { - description: - 'The plannning fee for an application for a Certificate of Lawfulness relating to the proposed alteration or extension of a single home is £129', - policyRefs: [ - { - text: 'UK Statutory Instruments 2023 No. 1197', - url: 'https://www.legislation.gov.uk/uksi/2023/1197/made', - }, - ], - }, - ], - payable: [ - { - description: - 'If the proposed works (to either a home or within the curtilage of a home) is for the sole purpose of - providing either a means of access to (or within) the dwellinghouse for a disabled resident (current or future); providing facilities that are designed to ensure the disabled persons safety, health or comfort; or providing disabled access to a public building - then no planning fee will be payable for this application.', - policyRefs: [ - { - text: 'UK Statutory Instruments 2012 No. 2920 Regulation 4', - url: 'https://www.legislation.gov.uk/uksi/2012/2920/regulation/4/made', - }, - ], - }, - { - description: - 'In the case of an application that is the first resubmission of an application on the same site that is similar in character and description, no planning fee is payable.', - policyRefs: [ - { - text: 'UK Statutory Instruments 2012 No. 2920 Regulation 8', - url: 'https://www.legislation.gov.uk/uksi/2012/2920/regulation/8/made', - }, - ], - }, - ], - }, - }, - submittedAt: '2023-10-02T00:00:00+01:00', - schema: `https://theopensystemslab.github.io/digital-planning-data-schemas/${version}/schema.json`, - }, -}; diff --git a/examples/data/priorApproval/convertCommercialToHome.ts b/examples/data/priorApproval/convertCommercialToHome.ts deleted file mode 100644 index 159ca94f..00000000 --- a/examples/data/priorApproval/convertCommercialToHome.ts +++ /dev/null @@ -1,1625 +0,0 @@ -import {Schema} from '../../../types/Schema'; - -const version = process.env['VERSION'] || '@next'; - -export const priorApprovalConvertCommercialToHome: Schema = { - data: { - user: { - role: 'agent', - }, - applicant: { - type: 'individual', - name: { - first: 'Vincent', - last: 'Van Gogh', - }, - email: 'ouchmyear@email.org', - phone: { - primary: '012345678901', - }, - address: { - sameAsSiteAddress: true, - }, - siteContact: { - role: 'agent', - }, - agent: { - name: { - first: 'Alan', - last: 'Agent', - }, - email: 'alanagent@email.org', - phone: { - primary: '098765432109', - }, - company: { - name: "Alan's Property & Fine Art Consultants PLC", - }, - address: { - line1: '12 Agent Avenue', - line2: '', - town: 'Plantown', - county: '', - postcode: 'PL47TN', - country: '', - }, - }, - }, - property: { - address: { - latitude: 51.4745098, - longitude: -0.1151501, - x: 530999, - y: 176745, - title: '87, HACKFORD ROAD, LONDON', - source: 'Ordnance Survey', - uprn: '100021847182', - usrn: '21900651', - pao: '87', - street: 'HACKFORD ROAD', - town: 'LONDON', - postcode: 'SW9 0RE', - singleLine: '87, HACKFORD ROAD, LONDON, LAMBETH, SW9 0RE', - }, - localAuthorityDistrict: ['Lambeth'], - region: 'London', - type: { - value: 'commercial.retail.shop', - description: 'Shop', - }, - planning: { - sources: [ - 'https://api.editor.planx.dev/gis/lambeth?geom=MULTIPOLYGON+%28%28%28-0.114876+51.474474%2C+-0.114863+51.474517%2C+-0.115261+51.474548%2C+-0.11527+51.474504%2C+-0.114876+51.474474%29%29%29&analytics=false&sessionId=86a5ba3e-1a7f-4460-bf46-826c3f982a92', - 'https://api.editor.planx.dev/roads?usrn=21900651', - ], - designations: [ - { - value: 'tpo', - description: 'Tree Preservation Order (TPO) or zone', - intersects: false, - }, - { - value: 'flood', - description: 'Flood Risk Zone', - intersects: false, - }, - { - value: 'listed', - description: 'Listed Building', - intersects: true, - entities: [ - { - name: '87, HACKFORD ROAD SW9', - source: { - text: 'Planning Data', - url: 'https://www.planning.data.gov.uk/entity/31537921', - }, - }, - { - name: 'No Address Supplied', - source: { - text: 'Planning Data', - url: 'https://www.planning.data.gov.uk/entity/42103309', - }, - }, - ], - }, - { - value: 'article4', - description: 'Article 4 Direction area', - intersects: false, - }, - { - value: 'monument', - description: 'Site of a Scheduled Monument', - intersects: false, - }, - { - value: 'greenBelt', - description: 'Green Belt', - intersects: false, - }, - { - value: 'designated', - description: 'Designated land', - intersects: true, - }, - { - value: 'nature.SAC', - description: 'Special Area of Conservation (SAC)', - intersects: false, - }, - { - value: 'nature.SPA', - description: 'Special Protection Area (SPA)', - intersects: false, - }, - { - value: 'nature.ASNW', - description: 'Ancient Semi-Natural Woodland (ASNW)', - intersects: false, - }, - { - value: 'nature.SSSI', - description: 'Site of Special Scientific Interest (SSSI)', - intersects: false, - }, - { - value: 'brownfieldSite', - description: 'Brownfield site', - intersects: false, - }, - { - value: 'designated.WHS', - description: 'UNESCO World Heritage Site or buffer zone', - intersects: false, - }, - { - value: 'listed.grade.I', - description: 'Listed Building - Grade I', - intersects: false, - }, - { - value: 'registeredPark', - description: 'Historic Park or Garden', - intersects: false, - }, - { - value: 'designated.AONB', - description: 'Area of Outstanding Natural Beauty (AONB)', - intersects: false, - }, - { - value: 'listed.grade.II', - description: 'Listed Building - Grade II', - intersects: true, - }, - { - value: 'listed.grade.II*', - description: 'Listed Building - Grade II*', - intersects: false, - }, - { - value: 'nature.ramsarSite', - description: 'Ramsar site', - intersects: false, - }, - { - value: 'designated.nationalPark', - description: 'National Park', - intersects: false, - }, - { - value: 'designated.conservationArea', - description: 'Conservation Area', - intersects: true, - entities: [ - { - name: 'Hackford Road', - source: { - text: 'Planning Data', - url: 'https://www.planning.data.gov.uk/entity/44000877', - }, - }, - ], - }, - { - value: 'designated.nationalPark.broads', - description: 'National Park - Broads', - intersects: false, - }, - { - value: 'road.classified', - description: 'Classified Road', - intersects: false, - }, - ], - }, - boundary: { - site: { - type: 'Feature', - geometry: { - type: 'MultiPolygon', - coordinates: [ - [ - [ - [-0.114876, 51.474474], - [-0.114863, 51.474517], - [-0.115261, 51.474548], - [-0.11527, 51.474504], - [-0.114876, 51.474474], - ], - ], - ], - }, - properties: { - name: '', - entity: 12000528882, - prefix: 'title-boundary', - dataset: 'title-boundary', - 'end-date': '', - typology: 'geography', - reference: '51792928', - 'entry-date': '2024-05-06', - 'start-date': '2011-05-10', - 'organisation-entity': '13', - }, - }, - area: { - hectares: 0.013555000000000001, - squareMetres: 135.55, - }, - }, - titleNumber: { - known: 'Yes', - number: '24/12345/FUL', - }, - EPC: { - known: 'Yes', - number: '1234-1234-1234-1234', - }, - parking: { - cars: { - count: 1, - }, - vans: { - count: 0, - }, - motorcycles: { - count: 0, - }, - cycles: { - count: 0, - }, - buses: { - count: 0, - }, - disabled: { - count: 0, - }, - carClub: { - count: 0, - }, - offStreet: { - residential: { - count: 0, - }, - }, - other: { - count: 0, - }, - }, - occupation: { - status: 'vacant', - }, - }, - application: { - type: { - value: 'pa.part3.classMA', - description: - 'Prior Approval - Convert a commercial building into a home or homes', - }, - fee: { - calculated: 258, - payable: 258, - category: { - one: 0, - two: 0, - three: 0, - four: 0, - five: 0, - sixAndSeven: 0, - eight: 0, - nine: 0, - ten: 0, - eleven: { - one: 0, - two: 0, - }, - twelve: { - one: 0, - two: 0, - }, - thirteen: 0, - fourteen: 0, - }, - exemption: { - disability: false, - resubmission: false, - }, - reduction: { - sports: false, - parishCouncil: false, - alternative: false, - }, - reference: { - govPay: 'p88epskokjikus74eafr36tfc1', - }, - }, - leadDeveloper: { - type: 'overseasCompany', - company: { - name: 'Impression Developments Inc.', - registrationNumber: '12345679ABC', - }, - }, - declaration: { - accurate: true, - connection: { - value: 'none', - }, - }, - }, - proposal: { - projectType: [ - { - value: 'changeOfUse', - description: 'Change the use of a building', - }, - ], - description: - 'Change of use from my sunflower and art supplies shop into a home.', - schemeName: "Vincent's New Property Venture", - date: { - start: '2024-07-28', - completion: '2035-07-28', - }, - boundary: { - site: { - type: 'Feature', - geometry: { - type: 'MultiPolygon', - coordinates: [ - [ - [ - [-0.114876, 51.474474], - [-0.114863, 51.474517], - [-0.115261, 51.474548], - [-0.11527, 51.474504], - [-0.114876, 51.474474], - ], - ], - ], - }, - properties: { - name: '', - entity: 12000528882, - prefix: 'title-boundary', - dataset: 'title-boundary', - 'end-date': '', - typology: 'geography', - reference: '51792928', - 'entry-date': '2024-05-06', - 'start-date': '2011-05-10', - 'organisation-entity': '13', - planx_user_action: 'Accepted the title boundary', - }, - }, - area: { - hectares: 0.013555000000000001, - squareMetres: 135.55, - }, - }, - parking: { - cars: { - count: 1, - difference: 0, - }, - vans: { - count: 0, - difference: 0, - }, - motorcycles: { - count: 0, - difference: 0, - }, - cycles: { - count: 2, - difference: 2, - }, - buses: { - count: 0, - difference: 0, - }, - disabled: { - count: 0, - difference: 0, - }, - carClub: { - count: 0, - difference: 0, - }, - offStreet: { - residential: { - count: 0, - difference: 0, - }, - }, - other: { - count: 0, - difference: 0, - }, - }, - units: { - residential: { - rebuilt: [ - { - development: {value: 'changeOfUse', description: 'Change of use'}, - type: {value: 'terraced', description: 'Terraced home'}, - bedrooms: 3, - habitableRooms: 7, - area: {squareMetres: 300}, - tenure: {value: 'marketForRent', description: 'Market for rent'}, - provider: {value: 'private', description: 'Private'}, - garden: false, - sheltered: false, - olderPersons: false, - compliance: [ - { - value: 'm42', - description: 'Part M4(2) of the Building Regulations 2010', - }, - { - value: 'm432a', - description: - 'Part M4(3)(2a) of the Building Regulations 2010', - }, - { - value: 'm432b', - description: - 'Part M4(3)(2b) of the Building Regulations 2010', - }, - ], - identicalUnits: 1, - }, - ], - }, - }, - energy: { - type: ['heatPump'], - heatPumps: { - capacity: {megawatts: 2}, - }, - }, - greenRoof: { - area: {squareMetres: 0}, - }, - urbanGreeningFactor: { - score: 4, - }, - utilities: { - gas: {connections: {count: 1}}, - water: {connections: {count: 1}}, - internet: { - residentialUnits: {count: 1}, - commercialUnits: {count: 0}, - }, - }, - waste: { - reuseRecycle: {percent: 2}, - }, - }, - }, - preAssessment: [ - { - value: 'Planning permission / Permission needed', - description: - 'It looks like the proposed changes may require planning permission.', - }, - ], - responses: [ - { - question: 'Is the property in Lambeth?', - responses: [ - { - value: 'Yes', - }, - ], - metadata: { - autoAnswered: true, - sectionName: 'The property', - }, - }, - { - question: 'What type of property is it?', - responses: [ - { - value: 'Something else', - }, - ], - metadata: { - sectionName: 'The property', - }, - }, - { - question: 'Which of these best describes the use of the property?', - responses: [ - { - value: 'Retail and services', - }, - ], - metadata: { - sectionName: 'The property', - }, - }, - { - question: 'What type of retail unit is it?', - responses: [ - { - value: 'Shop', - }, - ], - metadata: { - sectionName: 'The property', - }, - }, - { - question: 'Have the works already started?', - responses: [ - { - value: 'No', - }, - ], - metadata: { - sectionName: 'About the project', - }, - }, - { - question: 'What type of property is it?', - responses: [ - { - value: 'Commercial building', - }, - ], - metadata: { - autoAnswered: true, - sectionName: 'About the project', - }, - }, - { - question: 'What is the property used as?', - responses: [ - { - value: 'Shop', - }, - ], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (Use Classes) (Amendment) (England) Regulations 2020', - url: 'https://www.legislation.gov.uk/uksi/2020/757/made', - }, - { - text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015', - url: 'https://www.legislation.gov.uk/uksi/2015/596/contents', - }, - ], - sectionName: 'About the project', - }, - }, - { - question: 'Is the shop any of these?', - responses: [ - { - value: "No, it's another kind of shop", - }, - ], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 3', - url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/3', - }, - ], - sectionName: 'About the project', - }, - }, - { - question: 'What does the shop sell?', - responses: [ - { - value: 'Other goods', - }, - ], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 3', - url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/3', - }, - ], - sectionName: 'About the project', - }, - }, - { - question: 'What do you want to change its use to?', - responses: [ - { - value: 'Single house', - }, - ], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (Use Classes) (Amendment) (England) Regulations 2020', - url: 'https://www.legislation.gov.uk/uksi/2020/757/made', - }, - ], - sectionName: 'About the project', - }, - }, - { - question: 'What part of the building will be converted?', - responses: [ - { - value: 'The entire building', - }, - ], - metadata: { - sectionName: 'About the project', - }, - }, - { - question: 'Is the site within an Area of Outstanding Natural Beauty?', - responses: [ - { - value: 'No', - metadata: { - flags: ['Planning permission / Prior approval'], - }, - }, - ], - metadata: { - autoAnswered: true, - policyRefs: [ - { - text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 3, Class MA', - url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/3', - }, - ], - sectionName: 'About the project', - }, - }, - { - question: 'Is the site in the Broads?', - responses: [ - { - value: 'No', - metadata: { - flags: ['Planning permission / Prior approval'], - }, - }, - ], - metadata: { - autoAnswered: true, - policyRefs: [ - { - text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 3, Class MA', - url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/3', - }, - ], - sectionName: 'About the project', - }, - }, - { - question: 'Is the site in a National Park?', - responses: [ - { - value: 'No', - metadata: { - flags: ['Planning permission / Prior approval'], - }, - }, - ], - metadata: { - autoAnswered: true, - policyRefs: [ - { - text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 3, Class MA', - url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/3', - }, - ], - sectionName: 'About the project', - }, - }, - { - question: 'Is the site part of a World Heritage Site?', - responses: [ - { - value: 'No', - metadata: { - flags: ['Planning permission / Prior approval'], - }, - }, - ], - metadata: { - autoAnswered: true, - policyRefs: [ - { - text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 3, Class MA', - url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/3', - }, - ], - sectionName: 'About the project', - }, - }, - { - question: 'Is the site in an area of Special Scientific Interest?', - responses: [ - { - value: 'No', - metadata: { - flags: ['Planning permission / Prior approval'], - }, - }, - ], - metadata: { - autoAnswered: true, - policyRefs: [ - { - text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 3, Class MA', - url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/3', - }, - ], - sectionName: 'About the project', - }, - }, - { - question: 'Is the site in a safety hazard area?', - responses: [ - { - value: 'No', - metadata: { - flags: ['Planning permission / Prior approval'], - }, - }, - ], - metadata: { - autoAnswered: true, - policyRefs: [ - { - text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 3, Class MA', - url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/3', - }, - ], - sectionName: 'About the project', - }, - }, - { - question: 'Is the site in a military explosives storage area?', - responses: [ - { - value: 'No', - metadata: { - flags: ['Planning permission / Prior approval'], - }, - }, - ], - metadata: { - autoAnswered: true, - policyRefs: [ - { - text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 3, Class MA', - url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/3', - }, - ], - sectionName: 'About the project', - }, - }, - { - question: 'Is any part of the property a scheduled monument?', - responses: [ - { - value: 'No', - metadata: { - flags: ['Planning permission / Prior approval'], - }, - }, - ], - metadata: { - autoAnswered: true, - policyRefs: [ - { - text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 3, Class MA', - url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/3', - }, - ], - sectionName: 'About the project', - }, - }, - { - question: 'Is any part of the property listed?', - responses: [ - { - value: 'Yes', - metadata: { - flags: ['Planning permission / Permission needed'], - }, - }, - ], - metadata: { - autoAnswered: true, - policyRefs: [ - { - text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 3, Class MA', - url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/3', - }, - ], - sectionName: 'About the project', - }, - }, - { - question: 'What type of property is it?', - responses: [ - { - value: 'Shop', - }, - ], - metadata: { - autoAnswered: true, - sectionName: 'About the project', - }, - }, - { - question: 'What type of prior approval application is it?', - responses: [ - { - value: 'Convert a commercial building into a home or homes', - }, - ], - metadata: { - autoAnswered: true, - sectionName: 'About the project', - }, - }, - { - question: 'What type or prior approval application is it?', - responses: [ - { - value: 'Convert a commercial building into a home or homes', - }, - ], - metadata: { - autoAnswered: true, - sectionName: 'About the project', - }, - }, - { - question: 'You need to submit a Sunlight and Daylight Report', - responses: [ - { - value: 'Upload a document later', - }, - ], - metadata: { - sectionName: 'About the project', - }, - }, - { - question: 'How many new homes are being build?', - responses: [ - { - value: '1', - }, - ], - metadata: { - sectionName: 'About the project', - }, - }, - { - question: - 'Has any part of the site been identified as contaminated land?', - responses: [ - { - value: 'No', - }, - ], - metadata: { - sectionName: 'About the project', - }, - }, - { - question: 'Was the building previously used for any of these?', - responses: [ - { - value: 'None of these', - }, - ], - metadata: { - sectionName: 'About the project', - }, - }, - { - question: 'Is the building in a flood risk area?', - responses: [ - { - value: 'No', - }, - ], - metadata: { - autoAnswered: true, - sectionName: 'About the project', - }, - }, - { - question: 'You need to submit a Noise Assessment', - responses: [ - { - value: 'Upload a document later', - }, - ], - metadata: { - sectionName: 'About the project', - }, - }, - { - question: 'You need to submit a Transport Assessment', - responses: [ - { - value: 'Upload a document later', - }, - ], - metadata: { - sectionName: 'About the project', - }, - }, - { - question: 'Describe the design and external appearance of the project', - responses: [ - { - value: - 'The existing shop front will be replaced by a new wall with a large painting of some hay stacks on it. Some more information about the appearance of the building. ', - }, - ], - metadata: { - sectionName: 'About the project', - }, - }, - { - question: 'Is the building currently used as a nursery?', - responses: [ - { - value: 'No', - }, - ], - metadata: { - autoAnswered: true, - sectionName: 'About the project', - }, - }, - { - question: 'Is the building currently used for healthcare?', - responses: [ - { - value: 'No', - }, - ], - metadata: { - autoAnswered: true, - sectionName: 'About the project', - }, - }, - { - question: 'Is the property in a conservation area?', - responses: [ - { - value: 'Yes', - }, - ], - metadata: { - autoAnswered: true, - sectionName: 'About the project', - }, - }, - { - question: - 'Does the project involve changing the use of any part of the ground floor?', - responses: [ - { - value: 'Yes', - }, - ], - metadata: { - sectionName: 'About the project', - }, - }, - { - question: - 'Describe the impacts that the change of use will have on the character or sustainability of the conservation area and how these will be mitigated', - responses: [ - { - value: - 'These are the impacts that the change of use will have:\n1\n2\n3\nAnd this is how it will be mitigated:\nA\nB\nC', - }, - ], - metadata: { - sectionName: 'About the project', - }, - }, - { - question: 'Will the building be 18 metres or more in height?', - responses: [ - { - value: 'No', - }, - ], - metadata: { - policyRefs: [ - { - text: 'Fire safety guidance, 2021', - url: 'https://www.gov.uk/guidance/fire-safety-and-high-rise-residential-buildings-from-1-august-2021', - }, - ], - sectionName: 'About the project', - }, - }, - { - question: 'Will the building be 7 or more storeys tall?', - responses: [ - { - value: 'No', - }, - ], - metadata: { - policyRefs: [ - { - text: 'Fire safety guidance, 2021', - url: 'https://www.gov.uk/guidance/fire-safety-and-high-rise-residential-buildings-from-1-august-2021', - }, - ], - sectionName: 'About the project', - }, - }, - { - question: - 'Is the building in an area that is also used for heavy industry, waste management, storage or distribution?', - responses: [ - { - value: 'No', - }, - ], - metadata: { - sectionName: 'About the project', - }, - }, - { - question: 'What type of application is it?', - responses: [ - { - value: 'Apply for prior approval', - }, - ], - metadata: { - autoAnswered: true, - sectionName: 'About you', - }, - }, - { - question: 'Your contact details', - responses: [ - { - value: - "Alan Agent Alan's Property & Fine Art Consultants PLC 098765432109 alanagent@email.org", - }, - ], - metadata: { - sectionName: 'About you', - }, - }, - { - question: 'Are you applying on behalf of someone else?', - responses: [ - { - value: 'Yes', - }, - ], - metadata: { - sectionName: 'About you', - }, - }, - { - question: 'Which of these best describes you?', - responses: [ - { - value: 'Professional agent', - }, - ], - metadata: { - sectionName: 'About you', - }, - }, - { - question: 'Your contact address', - responses: [ - { - value: '12 Agent Avenue, Plantown, PL47TN', - }, - ], - metadata: { - sectionName: 'About you', - }, - }, - { - question: 'Which of these best describes the applicant?', - responses: [ - { - value: 'Private individual', - }, - ], - metadata: { - sectionName: 'About you', - }, - }, - { - question: "Applicant's contact details", - responses: [ - { - value: 'Vincent Van Gogh 012345678901 ouchmyear@email.org', - }, - ], - metadata: { - sectionName: 'About you', - }, - }, - { - question: - "Is the applicant's contact address the same as the property address?", - responses: [ - { - value: 'No', - }, - ], - metadata: { - sectionName: 'About you', - }, - }, - { - question: "Applicant's contact address", - responses: [ - { - value: 'Haywain House, Rotterdam, 12543, The Netherlands', - }, - ], - metadata: { - sectionName: 'About you', - }, - }, - { - question: 'Can a planning officer see the works from public land?', - responses: [ - { - value: "Yes, it's visible from the road or somewhere else", - }, - ], - metadata: { - sectionName: 'About you', - }, - }, - { - question: 'Which of these best describes you?', - responses: [ - { - value: 'Professional agent', - }, - ], - metadata: { - autoAnswered: true, - sectionName: 'About you', - }, - }, - { - question: 'If we need to make a site visit, who should we contact?', - responses: [ - { - value: 'Me, the agent', - }, - ], - metadata: { - sectionName: 'About you', - }, - }, - { - question: 'What type of prior approval application is it?', - responses: [ - { - value: 'Convert a commercial building into a home or homes', - }, - ], - metadata: { - autoAnswered: true, - sectionName: 'Upload drawings', - }, - }, - { - question: 'Is this for submission or information only?', - responses: [ - { - value: 'Submission', - }, - ], - metadata: { - autoAnswered: true, - sectionName: 'Upload drawings', - }, - }, - { - question: 'What type of application is it?', - responses: [ - { - value: 'Prior approval', - }, - ], - metadata: { - autoAnswered: true, - sectionName: 'Check your application', - }, - }, - { - question: 'What type of prior approval application is it?', - responses: [ - { - value: 'Convert a commercial building into a home or homes', - }, - ], - metadata: { - autoAnswered: true, - sectionName: 'Check your application', - }, - }, - { - question: 'Does the project involve any building works?', - responses: [ - { - value: 'Yes', - }, - ], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (Fees for Applications, Deemed Applications, Requests and Site Visits) (England) (Amendment) Regulations 2023', - url: 'https://www.legislation.gov.uk/uksi/2023/1197/made', - }, - ], - sectionName: 'Check your application', - }, - }, - { - question: 'Is the property a home?', - responses: [ - { - value: 'No', - }, - ], - metadata: { - autoAnswered: true, - sectionName: 'Check your application', - }, - }, - { - question: 'What type of changes does the project involve?', - responses: [ - { - value: 'Change use', - }, - ], - metadata: { - autoAnswered: true, - sectionName: 'Check your application', - }, - }, - { - question: 'What type of prior approval application is it?', - responses: [ - { - value: 'Convert a commercial building into a home or homes', - }, - ], - metadata: { - autoAnswered: true, - sectionName: 'Check your application', - }, - }, - { - question: - 'Are you submitting any other planning applications about the same works or changes?', - responses: [ - { - value: 'No', - }, - ], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (Fees for Applications, Deemed Applications, Requests and Site Visits) (England) Regulations 2012, Regulation 14', - url: 'https://www.legislation.gov.uk/uksi/2012/2920/regulation/14', - }, - ], - sectionName: 'Check your application', - }, - }, - { - question: 'Is this application a resubmission?', - responses: [ - { - value: 'No', - }, - ], - metadata: { - policyRefs: [ - { - text: 'The Town and Country Planning (Fees for Applications, Deemed Applications, Requests and Site Visits) (England) Regulations 2012, Regulation 14', - url: 'https://www.legislation.gov.uk/uksi/2012/2920/regulation/14', - }, - ], - sectionName: 'Check your application', - }, - }, - { - question: 'Does the application qualify for a disability exemption?', - responses: [ - { - value: 'No', - }, - ], - metadata: { - autoAnswered: true, - sectionName: 'Check your application', - }, - }, - { - question: 'Does the application qualify for a resubmission exemption?', - responses: [ - { - value: 'No', - }, - ], - metadata: { - autoAnswered: true, - sectionName: 'Check your application', - }, - }, - { - question: - 'Does the application qualify to the same-day-planning-application exemption?', - responses: [ - { - value: 'No', - }, - ], - metadata: { - autoAnswered: true, - policyRefs: [ - { - text: 'The Town and Country Planning (Fees for Applications, Deemed Applications, Requests and Site Visits) (England) Regulations 2012, Regulation 14', - url: 'https://www.legislation.gov.uk/uksi/2012/2920/regulation/14', - }, - ], - sectionName: 'Check your application', - }, - }, - { - question: 'Check for multiple fees?', - responses: [ - { - value: 'No', - }, - ], - metadata: { - autoAnswered: true, - sectionName: 'Check your application', - }, - }, - { - question: 'What type of application is it?', - responses: [ - { - value: 'Prior approval', - }, - ], - metadata: { - autoAnswered: true, - sectionName: 'Check your application', - }, - }, - { - question: 'Which Local Planning authority is it?', - responses: [ - { - value: 'Lambeth', - }, - ], - metadata: { - autoAnswered: true, - sectionName: 'Check your application', - }, - }, - { - question: 'Connections with London Borough of Lambeth', - responses: [ - { - value: 'None of the above apply to me', - }, - ], - metadata: { - sectionName: 'Check your application', - }, - }, - { - question: 'I confirm that:', - responses: [ - { - value: - 'The information contained in this application is truthful, accurate and complete, to the best of my knowledge', - }, - ], - metadata: { - sectionName: 'Check your application', - }, - }, - { - question: 'Connections with London Borough of Lambeth', - responses: [ - { - value: 'None of the above apply to me', - }, - ], - metadata: { - autoAnswered: true, - sectionName: 'Check your application', - }, - }, - { - question: 'I confirm that:', - responses: [ - { - value: - 'The information contained in this application is truthful, accurate and complete, to the best of my knowledge', - }, - ], - metadata: { - autoAnswered: true, - sectionName: 'Check your application', - }, - }, - { - question: 'Which Local Planning authority is it?', - responses: [ - { - value: 'Lambeth', - }, - ], - metadata: { - autoAnswered: true, - sectionName: 'Pay and submit', - }, - }, - { - question: - 'What type of prior approval application is it?application.type', - responses: [ - { - value: 'Convert a commercial building into a home or homes', - }, - ], - metadata: { - autoAnswered: true, - sectionName: 'Pay and submit', - }, - }, - ], - files: [ - { - name: 'https://api.editor.planx.dev/file/private/bpxw8ekr/test%20document.pdf', - type: [ - { - value: 'noiseAssessment', - description: 'Noise assessment', - }, - ], - }, - { - name: 'https://api.editor.planx.dev/file/private/2mrowm3t/test%20document.pdf', - type: [ - { - value: 'usePlan.proposed', - description: 'Use plan - proposed', - }, - { - value: 'sitePlan.proposed', - description: 'Site plan - proposed', - }, - ], - }, - { - name: 'https://api.editor.planx.dev/file/private/eu61v4yk/test%20document.pdf', - type: [ - { - value: 'sitePlan.existing', - description: 'Site plan - existing', - }, - ], - }, - { - name: 'https://api.editor.planx.dev/file/private/fd7o1wnh/test%20document.pdf', - type: [ - { - value: 'sunlightAndDaylightReport', - description: 'Sunlight and daylight report', - }, - ], - }, - ], - metadata: { - id: '86a5ba3e-1a7f-4460-bf46-826c3f982a92', - organisation: 'LBH', - submittedAt: '2024-06-29T12:25:58.777Z', - source: 'PlanX', - service: { - flowId: 'f3cae2c8-9a64-4ce1-8cef-8e6832ad383d', - url: 'https://editor.planx.dev/lambeth/apply-for-prior-approval/published', - files: { - required: [ - { - value: 'sitePlan.proposed', - description: 'Site plan - proposed', - }, - { - value: 'usePlan.proposed', - description: 'Use plan - proposed', - }, - { - value: 'noiseAssessment', - description: 'Noise assessment', - }, - { - value: 'sunlightAndDaylightReport', - description: 'Sunlight and daylight report', - }, - ], - recommended: [ - { - value: 'sitePlan.existing', - description: 'Site plan - existing', - }, - ], - optional: [ - { - value: 'photographs.existing', - description: 'Photographs - existing', - }, - { - value: 'otherDrawing', - description: 'Other - drawing', - }, - { - value: 'otherDocument', - description: 'Other - document', - }, - { - value: 'visualisations', - description: 'Visualisations', - }, - ], - }, - fee: { - calculated: [ - { - policyRefs: [ - { - text: 'The Town and Country Planning (Fees for Applications, Deemed Applications, Requests and Site Visits) (England) (Amendment) Regulations 2023', - url: 'https://www.legislation.gov.uk/uksi/2023/1197/made', - }, - ], - }, - ], - payable: [ - { - description: - '

This application does not qualify for any exemptions or reductions

', - }, - ], - }, - }, - schema: `https://theopensystemslab.github.io/digital-planning-data-schemas/${version}/schema.json`, - }, -}; diff --git a/examples/data/landDrainageConsent.ts b/examples/digitalPlanningApplication/data/landDrainageConsent.ts similarity index 98% rename from examples/data/landDrainageConsent.ts rename to examples/digitalPlanningApplication/data/landDrainageConsent.ts index ff32964b..46aa85a6 100644 --- a/examples/data/landDrainageConsent.ts +++ b/examples/digitalPlanningApplication/data/landDrainageConsent.ts @@ -1,9 +1,9 @@ -import {Schema} from '../../types/Schema'; -import {BaseProposal} from '../../types/schema/data/Proposal'; +import {DigitalPlanningApplication} from '../../../types/schemas/digitalPlanningApplication'; +import {BaseProposal} from '../../../types/schemas/digitalPlanningApplication/data/Proposal'; const version = process.env['VERSION'] || '@next'; -export const landDrainageConsent: Schema = { +export const landDrainageConsent: DigitalPlanningApplication = { data: { user: { role: 'applicant', diff --git a/examples/digitalPlanningApplication/data/lawfulDevelopmentCertificate/existing.ts b/examples/digitalPlanningApplication/data/lawfulDevelopmentCertificate/existing.ts new file mode 100644 index 00000000..8eef97fb --- /dev/null +++ b/examples/digitalPlanningApplication/data/lawfulDevelopmentCertificate/existing.ts @@ -0,0 +1,1314 @@ +import {DigitalPlanningApplication} from '../../../../types/schemas/digitalPlanningApplication'; + +const version = process.env['VERSION'] || '@next'; + +export const lawfulDevelopmentCertificateExisting: DigitalPlanningApplication = + { + data: { + application: { + type: { + value: 'ldc.existing', + description: 'Lawful Development Certificate - Existing use', + }, + fee: { + calculated: 258, + payable: 258, + category: { + sixAndSeven: 258, + }, + exemption: { + disability: false, + resubmission: false, + }, + reduction: { + sports: false, + parishCouncil: false, + alternative: false, + }, + reference: { + govPay: 'sandbox-ref-123', + }, + }, + declaration: { + accurate: true, + connection: { + value: 'none', + }, + }, + }, + user: { + role: 'agent', + }, + applicant: { + type: 'individual', + name: { + first: 'Roald', + last: 'Dahl', + }, + email: 'f.fox@boggischickenshed.com', + phone: { + primary: 'Not provided by agent', + }, + address: { + sameAsSiteAddress: true, + }, + siteContact: { + role: 'applicant', + }, + ownership: { + interest: 'occupier', + owners: [ + { + interest: 'owner', + name: 'Matilda Wormwood', + address: { + town: 'Reading', + line1: '9, Library Way', + line2: '', + county: '', + country: 'UK', + postcode: 'L1T3R8Y', + }, + noticeGiven: true, + }, + ], + }, + agent: { + name: { + first: 'F', + last: 'Fox', + }, + email: 'f.fox@boggischickenshed.com', + phone: { + primary: '0234 567 8910', + }, + address: { + line1: 'The Tree', + line2: 'One Tree Hill', + town: 'Great Tunnelling', + county: '', + postcode: 'F0XH0L3', + country: '', + }, + }, + }, + property: { + address: { + latitude: 51.6994957, + longitude: -0.708966, + x: 489320, + y: 200872, + title: 'GIPSY HOUSE, WHITEFIELD LANE, GREAT MISSENDEN', + singleLine: 'GIPSY HOUSE, WHITEFIELD LANE, GREAT MISSENDEN, HP16 0BP', + source: 'Ordnance Survey', + uprn: '100081174436', + usrn: '07300709', + pao: '', + street: 'WHITEFIELD LANE', + town: 'GREAT MISSENDEN', + postcode: 'HP16 0BP', + }, + boundary: { + site: { + type: 'Feature', + geometry: { + type: 'Polygon', + coordinates: [ + [ + [-0.7085376977920632, 51.699564621757816], + [-0.7086127996444802, 51.69965605327502], + [-0.708982944488535, 51.699654390885456], + [-0.7089909911155797, 51.699673508361855], + [-0.7089319825172521, 51.699683482694184], + [-0.7089520990848638, 51.69973002954916], + [-0.7091867923736667, 51.69968930105364], + [-0.7092216610908603, 51.699688469859495], + [-0.709239095449457, 51.69968514508267], + [-0.709253847599039, 51.6997134056779], + [-0.7093128561973666, 51.69970176896433], + [-0.7092699408531282, 51.699610337539525], + [-0.7096253335476013, 51.699648572521454], + [-0.7098613679409116, 51.69958457046823], + [-0.7098962366581053, 51.69955049141595], + [-0.7098090648651213, 51.6994216557425], + [-0.7099243998527616, 51.699390070166544], + [-0.7098264992237182, 51.699238791576136], + [-0.7097460329532714, 51.699236297968724], + [-0.7095716893673034, 51.69927536446852], + [-0.7095421850681398, 51.69927619567025], + [-0.7092954218387698, 51.69931941814053], + [-0.7090929150581455, 51.69937427737031], + [-0.709021836519251, 51.69938923896689], + [-0.7089574635028936, 51.6994008757608], + [-0.7088904082775213, 51.69942082454341], + [-0.7086691260337761, 51.699501450783515], + [-0.7086181640624932, 51.699517243535354], + [-0.7085457444191079, 51.699541348251245], + [-0.7085350155830483, 51.69954799782576], + [-0.7085376977920632, 51.699564621757816], + ], + ], + }, + properties: null, + }, + area: { + hectares: 0.299367, + squareMetres: 2993.67, + }, + }, + planning: { + sources: [ + 'https://api.editor.planx.dev/gis/buckinghamshire?geom=POLYGON+%28%28-0.7085376977920632+51.699564621757816%2C+-0.7086127996444802+51.69965605327502%2C+-0.708982944488535+51.699654390885456%2C+-0.7089909911155797+51.699673508361855%2C+-0.7089319825172521+51.699683482694184%2C+-0.7089520990848638+51.69973002954916%2C+-0.7091867923736667+51.69968930105364%2C+-0.7092216610908603+51.699688469859495%2C+-0.709239095449457+51.69968514508267%2C+-0.709253847599039+51.6997134056779%2C+-0.7093128561973666+51.69970176896433%2C+-0.7092699408531282+51.699610337539525%2C+-0.7096253335476013+51.699648572521454%2C+-0.7098613679409116+51.69958457046823%2C+-0.7098962366581053+51.69955049141595%2C+-0.7098090648651213+51.6994216557425%2C+-0.7099243998527616+51.699390070166544%2C+-0.7098264992237182+51.699238791576136%2C+-0.7097460329532714+51.699236297968724%2C+-0.7095716893673034+51.69927536446852%2C+-0.7095421850681398+51.69927619567025%2C+-0.7092954218387698+51.69931941814053%2C+-0.7090929150581455+51.69937427737031%2C+-0.709021836519251+51.69938923896689%2C+-0.7089574635028936+51.6994008757608%2C+-0.7088904082775213+51.69942082454341%2C+-0.7086691260337761+51.699501450783515%2C+-0.7086181640624932+51.699517243535354%2C+-0.7085457444191079+51.699541348251245%2C+-0.7085350155830483+51.69954799782576%2C+-0.7085376977920632+51.699564621757816%29%29&analytics=false&sessionId=95f90e21-93f5-4761-90b3-815c673e041f', + 'https://api.editor.planx.dev/roads?usrn=07300709', + ], + designations: [ + { + value: 'article4', + description: 'Article 4 Direction area', + intersects: true, + entities: [ + { + name: 'Whole District excluding the Town of Chesham - Poultry production.', + description: + 'Bucks County Council Town and Country Planning Act 1947 Town and Country Planning General Development Order 1950. Re Whole District excluding the Town of Chesham. In relation to poultry production.', + source: { + text: 'Planning Data', + url: 'https://www.planning.data.gov.uk/entity/7010002192', + }, + }, + ], + }, + { + value: 'article4.caz', + description: 'Central Activities Zone (CAZ)', + intersects: false, + }, + { + value: 'tpo', + description: 'Tree Preservation Order (TPO) or zone', + intersects: false, + }, + { + value: 'listed', + description: 'Listed Building', + intersects: false, + }, + { + value: 'monument', + description: 'Site of a Scheduled Monument', + intersects: false, + }, + { + value: 'designated', + description: 'Designated land', + intersects: true, + }, + { + value: 'nature.SAC', + description: 'Special Area of Conservation (SAC)', + intersects: false, + }, + { + value: 'nature.ASNW', + description: 'Ancient Semi-Natural Woodland (ASNW)', + intersects: false, + }, + { + value: 'nature.SSSI', + description: 'Site of Special Scientific Interest (SSSI)', + intersects: false, + }, + { + value: 'locallyListed', + description: 'Locally Listed Building', + intersects: false, + }, + { + value: 'nature.SPA', + description: 'Special Protection Area (SPA)', + intersects: false, + }, + { + value: 'designated.WHS', + description: 'UNESCO World Heritage Site or buffer zone', + intersects: false, + }, + { + value: 'registeredPark', + description: 'Historic Park or Garden', + intersects: false, + }, + { + value: 'designated.AONB', + description: 'Area of Outstanding Natural Beauty (AONB)', + intersects: true, + entities: [ + { + name: 'Chilterns', + source: { + text: 'Planning Data', + url: 'https://www.planning.data.gov.uk/entity/1000005', + }, + }, + ], + }, + { + value: 'designated.nationalPark', + description: 'National Park', + intersects: false, + }, + { + value: 'designated.conservationArea', + description: 'Conservation Area', + intersects: false, + }, + { + value: 'designated.nationalPark.broads', + description: 'National Park - Broads', + intersects: false, + }, + { + value: 'road.classified', + description: 'Classified Road', + intersects: false, + }, + ], + }, + localAuthorityDistrict: ['Buckinghamshire', 'Chiltern'], + region: 'South East', + type: { + value: 'residential.dwelling.house.detached', + description: 'Detached', + }, + }, + proposal: { + projectType: [ + { + value: 'extend.outbuilding.studio', + description: 'Add an outbuilding - studio', + }, + ], + description: + 'Construction of a small outbuilding for use as a writing studio.', + boundary: { + site: { + type: 'Feature', + geometry: { + type: 'Polygon', + coordinates: [ + [ + [-0.7085376977920632, 51.699564621757816], + [-0.7086127996444802, 51.69965605327502], + [-0.708982944488535, 51.699654390885456], + [-0.7089909911155797, 51.699673508361855], + [-0.7089319825172521, 51.699683482694184], + [-0.7089520990848638, 51.69973002954916], + [-0.7091867923736667, 51.69968930105364], + [-0.7092216610908603, 51.699688469859495], + [-0.709239095449457, 51.69968514508267], + [-0.709253847599039, 51.6997134056779], + [-0.7093128561973666, 51.69970176896433], + [-0.7092699408531282, 51.699610337539525], + [-0.7096253335476013, 51.699648572521454], + [-0.7098613679409116, 51.69958457046823], + [-0.7098962366581053, 51.69955049141595], + [-0.7098090648651213, 51.6994216557425], + [-0.7099243998527616, 51.699390070166544], + [-0.7098264992237182, 51.699238791576136], + [-0.7097460329532714, 51.699236297968724], + [-0.7095716893673034, 51.69927536446852], + [-0.7095421850681398, 51.69927619567025], + [-0.7092954218387698, 51.69931941814053], + [-0.7090929150581455, 51.69937427737031], + [-0.709021836519251, 51.69938923896689], + [-0.7089574635028936, 51.6994008757608], + [-0.7088904082775213, 51.69942082454341], + [-0.7086691260337761, 51.699501450783515], + [-0.7086181640624932, 51.699517243535354], + [-0.7085457444191079, 51.699541348251245], + [-0.7085350155830483, 51.69954799782576], + [-0.7085376977920632, 51.699564621757816], + ], + ], + }, + properties: null, + }, + area: { + hectares: 0.299367, + squareMetres: 2993.67, + }, + }, + date: {}, + }, + }, + preAssessment: [ + { + value: 'Planning permission / Immune', + description: + 'It looks like the changes may now be beyond the time limit for enforcement action. This does not apply if the changes have been deliberately concealed.', + }, + ], + responses: [ + { + question: 'List the changes involved in the project', + responses: [ + {value: 'Outbuildings (such as sheds, garages or garden offices)'}, + ], + metadata: {}, + }, + { + question: 'What type of changes were they?', + responses: [{value: 'Extension'}], + metadata: {autoAnswered: true}, + }, + { + question: 'Were the works carried out more than 4 years ago?', + responses: [ + {value: 'Yes', metadata: {flags: ['Planning permission / Immune']}}, + ], + metadata: { + policyRefs: [ + { + text: 'Town and Country Planning Act 1990 Section 171B', + url: 'https://www.legislation.gov.uk/ukpga/1990/8/section/171B', + }, + ], + }, + }, + { + question: 'Have the works been completed?', + responses: [{value: 'Yes'}], + metadata: { + policyRefs: [ + { + text: 'Town and Country Planning Act 1990 Section 171B', + url: 'https://www.legislation.gov.uk/ukpga/1990/8/section/171B', + }, + ], + }, + }, + { + question: 'When were the works completed?', + responses: [{value: '1959-01-01'}], + metadata: { + policyRefs: [ + { + text: 'Town and Country Planning Act 1990 Section 171B', + url: 'https://www.legislation.gov.uk/ukpga/1990/8/section/171B', + }, + ], + }, + }, + { + question: 'Has anyone ever attempted to conceal the changes?', + responses: [ + {value: 'No', metadata: {flags: ['Planning permission / Immune']}}, + ], + metadata: { + policyRefs: [ + { + text: 'Secretary of State for Communities and Local Government and another v Welwyn Hatfield Borough Council and Bonsall / Jackson v Secretary of State for Communities and Local Government', + url: 'https://www.supremecourt.uk/cases/docs/uksc-2010-0036-judgment.pdf', + }, + ], + }, + }, + { + question: 'Has enforcement action been taken about these changes?', + responses: [ + {value: 'No', metadata: {flags: ['Planning permission / Immune']}}, + ], + metadata: { + policyRefs: [ + { + text: 'Town and Country Planning Act 1990 Section 171A', + url: 'https://www.legislation.gov.uk/ukpga/1990/8/section/171A', + }, + { + text: 'Town and Country Planning Act 1990 Section 191', + url: 'https://www.legislation.gov.uk/ukpga/1990/8/section/191', + }, + ], + }, + }, + { + question: 'List the changes involved in the project', + responses: [ + { + value: + 'Add an outbuilding (such as a shed, garage or garden office)', + }, + {value: 'Outbuildings (such as a shed, garage or garden office)'}, + ], + metadata: { + autoAnswered: true, + policyRefs: [ + { + text: 'Town and Country Planning Act 1990 (Section 55)', + url: 'https://www.legislation.gov.uk/ukpga/1990/8/section/55', + }, + { + text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015', + url: 'https://www.legislation.gov.uk/uksi/2015/596/contents', + }, + ], + }, + }, + { + question: 'What type of house is it?', + responses: [{value: 'Detached'}], + metadata: {autoAnswered: true}, + }, + { + question: 'What type of property is it?', + responses: [{value: 'House'}], + metadata: { + autoAnswered: true, + policyRefs: [ + { + text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Development Order 2015', + url: 'https://www.legislation.gov.uk/uksi/2015/596/contents', + }, + { + text: 'Section 336 of the Town and Country Planning Act', + url: 'https://www.legislation.gov.uk/ukpga/1990/8/section/336/enacted', + }, + ], + }, + }, + { + question: 'Is any part of the property listed?', + responses: [{value: 'No'}], + metadata: { + autoAnswered: true, + policyRefs: [ + { + text: 'The Town The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 1, Class E.', + url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1/crossheading/class-e-buildings-etc-incidental-to-the-enjoyment-of-a-dwellinghouse', + }, + ], + }, + }, + { + question: 'Was the house originally built as a house?', + responses: [{value: 'Yes, it was built as a house'}], + metadata: {}, + }, + { + question: 'Was the house built before 2020?', + responses: [{value: 'Yes, it was built before 2020'}], + metadata: {}, + }, + { + question: 'What is the new outbuilding used for?', + responses: [{value: 'Studio'}], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 1, Class E', + url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1/crossheading/class-e-buildings-etc-incidental-to-the-enjoyment-of-a-dwellinghouse', + }, + ], + }, + }, + { + question: 'How will the studio be used?', + responses: [ + { + value: 'Personal use', + metadata: {flags: ['Planning permission / Permitted development']}, + }, + ], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Section 2, Part 1. Class E', + url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1/crossheading/class-e-buildings-etc-incidental-to-the-enjoyment-of-a-dwellinghouse', + }, + ], + }, + }, + { + question: 'How many storeys does the new outbuilding have?', + responses: [ + { + value: '1 storey', + metadata: {flags: ['Planning permission / Permitted development']}, + }, + ], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Section 2, Part 1. Class E.1 (d) (h)', + url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1/crossheading/class-e-buildings-etc-incidental-to-the-enjoyment-of-a-dwellinghouse', + }, + ], + }, + }, + { + question: + 'Does the outbuilding include any balconies, decks, verandahs or platforms that are more than 30cm above ground level?', + responses: [ + { + value: 'No', + metadata: {flags: ['Planning permission / Permitted development']}, + }, + ], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Section 2, Part 1. Class E.1 (d)', + url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1/crossheading/class-e-buildings-etc-incidental-to-the-enjoyment-of-a-dwellinghouse', + }, + ], + }, + }, + { + question: + 'Is any part of the new outbuilding in front of the original house?', + responses: [ + { + value: 'No', + metadata: {flags: ['Planning permission / Permitted development']}, + }, + ], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 1, Class E.1 (c)', + url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1', + }, + ], + }, + }, + { + question: 'Is the property on designated land?', + responses: [{value: 'Yes'}], + metadata: {autoAnswered: true}, + }, + { + question: + 'Is any part of the new outbuilding between a side wall of the original house and the boundary?', + responses: [ + { + value: 'No', + metadata: {flags: ['Planning permission / Permitted development']}, + }, + ], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 1, Class E.3', + url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1', + }, + ], + }, + }, + { + question: 'Is any part of the new structure within 2m of the boundary?', + responses: [{value: 'No, it is 2m or more from the boundary'}], + metadata: {}, + }, + { + question: 'What type of roof does the new outbuilding have?', + responses: [{value: 'Dual pitch roof'}], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 1, Class E', + url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1/crossheading/class-e-buildings-etc-incidental-to-the-enjoyment-of-a-dwellinghouse', + }, + ], + }, + }, + { + question: 'How high is the new outbuilding?', + responses: [ + { + value: '4m or lower', + metadata: {flags: ['Planning permission / Permitted development']}, + }, + ], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 1, Class E.1 (e)(ii)', + url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1/crossheading/class-e-buildings-etc-incidental-to-the-enjoyment-of-a-dwellinghouse', + }, + ], + }, + }, + { + question: 'Is the property on designated land?', + responses: [{value: 'Yes'}], + metadata: {autoAnswered: true}, + }, + { + question: 'Is the property in any of the following?', + responses: [ + { + value: 'An area of outstanding natural beauty', + metadata: {flags: ['Planning permission / Permission needed']}, + }, + ], + metadata: {autoAnswered: true}, + }, + { + question: 'How far from the house is the new outbuilding?', + responses: [{value: 'More than 20m from the house'}], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 1, Class E', + url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1', + }, + ], + }, + }, + { + question: + 'What is the total footprint of all outbuildings more than 20m from the house?', + responses: [ + { + value: '10m² or less', + metadata: {flags: ['Planning permission / Permitted development']}, + }, + ], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 1, Class E.2', + url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1', + }, + ], + }, + }, + { + question: + 'How much of the property is covered by extensions and outbuildings?', + responses: [ + { + value: + '50% or less of the available area around the original house', + metadata: {flags: ['Planning permission / Permitted development']}, + }, + ], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 1, Class E.1 (b)', + url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1', + }, + ], + }, + }, + { + question: + 'Does the new outbuilding have a satellite dish or antenna on it?', + responses: [ + { + value: 'No', + metadata: {flags: ['Planning permission / Permitted development']}, + }, + ], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 1, Class E.1 (i)', + url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1', + }, + ], + }, + }, + { + question: 'Is the new outbuilding air conditioned?', + responses: [ + { + value: 'No', + metadata: {flags: ['Planning permission / Not development']}, + }, + ], + metadata: {}, + }, + { + question: 'What types of changes does the project involve?', + responses: [{value: 'Extension'}], + metadata: {autoAnswered: true}, + }, + { + question: + 'Have you already told us that you are doing works to a tree or hedge?', + responses: [{value: 'No'}], + metadata: {autoAnswered: true}, + }, + { + question: 'Are there any protected trees on the property?', + responses: [{value: 'No'}], + metadata: {autoAnswered: true}, + }, + { + question: 'Is the site in a conservation area?', + responses: [ + { + value: 'No', + metadata: {flags: ['Works to trees & hedges / Not required']}, + }, + ], + metadata: {autoAnswered: true}, + }, + { + question: 'What are you applying about?', + responses: [{value: 'Existing changes I have made in the past'}], + metadata: {autoAnswered: true}, + }, + { + question: 'What do the works involve?', + responses: [{value: 'Works to extend a property'}], + metadata: {autoAnswered: true}, + }, + { + question: 'What does the project involve?', + responses: [ + { + value: + 'Add an outbuilding (such as sheds, shelters or garden offices)', + }, + ], + metadata: {autoAnswered: true}, + }, + { + question: 'Is it a residential property?', + responses: [{value: 'Yes'}], + metadata: {autoAnswered: true}, + }, + { + question: 'Do the changes involve the creation of any new homes?', + responses: [{value: 'No'}], + metadata: {}, + }, + { + question: + 'Do the changes involve creating any new bedrooms or bathrooms?', + responses: [{value: 'No'}], + metadata: {}, + }, + { + question: 'What is the internal floor area of the new outbuilding?', + responses: [{value: '9'}], + metadata: {}, + }, + { + question: 'Do the changes involve the creation of any new homes?', + responses: [{value: 'No'}], + metadata: {autoAnswered: true}, + }, + { + question: 'Is the property in the Greater London Authority area?', + responses: [{value: 'No'}], + metadata: { + autoAnswered: true, + policyRefs: [ + { + text: 'Greater London Authority Act 1999', + url: 'https://www.legislation.gov.uk/ukpga/1999/29/section/346', + }, + ], + }, + }, + { + question: 'Your contact details', + responses: [ + {value: 'Mr F Fox 0234 567 8910 f.fox@boggischickenshed.com'}, + ], + metadata: {}, + }, + { + question: "Did you already provide the applicant's email address?", + responses: [{value: 'No'}], + metadata: {autoAnswered: true}, + }, + { + question: "Applicant's email address", + responses: [{value: 'r.dahl@example.com'}], + metadata: {}, + }, + { + question: "Did you already provide the applicant's telephone number?", + responses: [{value: 'No'}], + metadata: {autoAnswered: true}, + }, + { + question: "Applicant's telephone number", + responses: [{value: '01098 765 432'}], + metadata: {}, + }, + { + question: 'Which of these best describes you?', + responses: [{value: "Agent acting on the applicant's behalf"}], + metadata: {autoAnswered: true}, + }, + { + question: 'Have you notified the other owners?', + responses: [{value: 'Yes'}], + metadata: {}, + }, + { + question: + "Which of these best describes the applicant's interest in the land?", + responses: [{value: 'Co-owner'}], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (Development Management Procedure) (England) Order 2015', + url: 'https://www.legislation.gov.uk/uksi/2015/595/article/39/made', + }, + ], + }, + }, + { + question: 'How many other owners are there?', + responses: [{value: 'Two or more other owners'}], + metadata: {}, + }, + { + question: 'Do you know who the other owners of the site are?', + responses: [{value: 'Yes, all of them'}], + metadata: {}, + }, + { + question: 'How many owners are there in total?', + responses: [{value: '3'}], + metadata: {autoAnswered: true}, + }, + { + question: 'Full name of Owner 2', + responses: [{value: 'William Wonka'}], + metadata: {}, + }, + { + question: 'Address of Owner 2', + responses: [ + { + value: + 'The Factory, 10, Scrumdiddlyumptious Avenue, Oomaph upon Ouse, CH0C0L8', + }, + ], + metadata: {}, + }, + { + question: 'Have you already notified the other owners?', + responses: [{value: 'Yes'}], + metadata: {autoAnswered: true}, + }, + { + question: 'Date on which notice was given to Owner 2', + responses: [{value: '1964-04-01'}], + metadata: {}, + }, + { + question: 'Full name of Owner 3', + responses: [{value: 'Matilda Wormwood'}], + metadata: {}, + }, + { + question: 'Address of Owner 3', + responses: [{value: '9, Library Way, Reading, L1T3R8Y'}], + metadata: {}, + }, + { + question: 'Have you already notified the other owners?', + responses: [{value: 'Yes'}], + metadata: {autoAnswered: true}, + }, + { + question: 'Date on which notice was given to Owner 3', + responses: [{value: '1988-04-01'}], + metadata: {}, + }, + { + question: 'What types of changes did the project involve?', + responses: [{value: 'Extension'}], + metadata: {autoAnswered: true}, + }, + { + question: + 'Would you like to upload any photographs of the property as it is today?', + responses: [{value: 'Yes'}], + metadata: {}, + }, + { + question: 'What type of extension have you added?', + responses: [{value: 'Outbuilding'}], + metadata: {autoAnswered: true}, + }, + { + question: + 'Is the roof of the outbuilding shown on a drawing you have already uploaded?', + responses: [{value: 'Yes'}], + metadata: {}, + }, + { + question: 'Did the works involve any alterations to ground levels?', + responses: [{value: 'No'}], + metadata: {}, + }, + { + question: + 'Would you like to upload any photographs of the property before the changes?', + responses: [{value: 'No'}], + metadata: {}, + }, + { + question: + 'Would you like to upload any other additional drawings or documents?', + responses: [{value: 'No'}], + metadata: {}, + }, + { + question: 'Provide evidence of completion date', + responses: [ + {value: 'Construction invoices'}, + {value: 'Other documents or correspondence'}, + ], + metadata: {}, + }, + { + question: 'What do these construction invoices show?', + responses: [{value: "Nothing, it's a test document. "}], + metadata: {}, + }, + { + question: 'What do these documents show?', + responses: [{value: 'Nothing really, this is just a test. '}], + metadata: {}, + }, + { + question: 'What type of planning application are you making?', + responses: [{value: 'Lawful Development Certificate'}], + metadata: {autoAnswered: true}, + }, + { + question: 'What type of changes are you applying for?', + responses: [{value: 'Existing changes'}], + metadata: {autoAnswered: true}, + }, + { + question: 'Is the property a home?', + responses: [{value: 'Yes'}], + metadata: {autoAnswered: true}, + }, + { + question: 'What types of changes does the application relate to?', + responses: [{value: 'Extension'}], + metadata: {autoAnswered: true}, + }, + { + question: 'How many homes does this application relate to?', + responses: [{value: '1'}], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (Fees for Applications, Deemed Applications, Requests and Site Visits) (England) Regulations 2012 Schedule 1, Part 2', + url: 'https://www.legislation.gov.uk/uksi/2012/2920/contents', + }, + ], + }, + }, + { + question: 'What type of extension did you build?', + responses: [ + {value: 'Outbuilding (such as shed, shelter or garden office'}, + ], + metadata: {autoAnswered: true}, + }, + { + question: 'Is the property a home?', + responses: [{value: 'Yes'}], + metadata: {autoAnswered: true}, + }, + { + question: 'What works does the project involve?', + responses: [{value: 'Extension'}], + metadata: {autoAnswered: true}, + }, + { + question: + 'Is the sole purpose of the project to support the needs of a disabled resident?', + responses: [{value: 'No'}], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (Fees for Applications, Deemed Applications, Requests and Site Visits) (England) Regulations 2012, Regulation 14', + url: 'https://www.legislation.gov.uk/uksi/2012/2920/regulation/14', + }, + { + text: 'UK Statutory Instruments 2012 No. 2920 Regulation 4', + url: 'https://www.legislation.gov.uk/uksi/2012/2920/regulation/4/made', + }, + { + text: 'Equalities Act 2010, Section 6', + url: 'https://www.legislation.gov.uk/ukpga/2010/15/section/6', + }, + { + text: 'Children Act 1989, Part 3', + url: 'https://www.legislation.gov.uk/ukpga/1989/41/part/III', + }, + ], + }, + }, + { + question: 'Is this application a resubmission?', + responses: [{value: 'No'}], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (Fees for Applications, Deemed Applications, Requests and Site Visits) (England) Regulations 2012, Regulation 9', + url: 'https://www.legislation.gov.uk/uksi/2012/2920/regulation/9', + }, + ], + }, + }, + { + question: 'Does the application qualify for a disability exemption?', + responses: [{value: 'No'}], + metadata: {autoAnswered: true}, + }, + { + question: 'Does the application qualify for a resubmission exemption?', + responses: [{value: 'No'}], + metadata: {autoAnswered: true}, + }, + { + question: 'Is the site a sports field?', + responses: [{value: 'No'}], + metadata: { + autoAnswered: true, + policyRefs: [ + { + text: 'The Town and Country Planning (Fees for Applications, Deemed Applications, Requests and Site Visits) (England) Regulations 2012 Chapter 2, Paragraph 3', + url: 'https://www.legislation.gov.uk/uksi/2012/2920/schedule/1', + }, + ], + }, + }, + { + question: + 'Is the application being made by (or on behalf of) a parish or community council?', + responses: [{value: 'No'}], + metadata: { + autoAnswered: true, + policyRefs: [ + { + text: 'The Town and Country Planning (Fees for Applications, Deemed Applications, Requests and Site Visits) (England) Regulations 2012 - Regulation 11', + url: 'https://www.legislation.gov.uk/uksi/2012/2920/regulation/11', + }, + ], + }, + }, + { + question: + 'Are you also submitting another proposal for the same site today?', + responses: [{value: 'No'}], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (Fees for Applications, Deemed Applications, Requests and Site Visits) (England) Regulations 2012 Chapter 2, Paragraph 10', + url: 'https://www.legislation.gov.uk/uksi/2012/2920/schedule/1', + }, + ], + }, + }, + { + question: + 'Does the application qualify for the sports club fee reduction?', + responses: [{value: 'No'}], + metadata: {autoAnswered: true}, + }, + { + question: + 'Does the application qualify for the parish council reduction?', + responses: [{value: 'No'}], + metadata: { + autoAnswered: true, + policyRefs: [ + { + text: 'The Town and Country Planning (Fees for Applications, Deemed Applications, Requests and Site Visits) (England) Regulations 2012 - Regulation 11', + url: 'https://www.legislation.gov.uk/uksi/2012/2920/regulation/11', + }, + ], + }, + }, + { + question: + 'Does the application qualify for the alternative application reduction?', + responses: [{value: 'No'}], + metadata: {autoAnswered: true}, + }, + { + question: + 'Did you get any pre-application advice before making this application?', + responses: [{value: 'No'}], + metadata: {}, + }, + { + question: + 'What local planning authority is this application being sent to?', + responses: [{value: 'Chiltern'}], + metadata: {autoAnswered: true}, + }, + { + question: 'What type of application is it?', + responses: [{value: 'Lawful Development Certificate'}], + metadata: {autoAnswered: true}, + }, + { + question: 'What type of works are you applying about?', + responses: [{value: 'Existing'}], + metadata: {autoAnswered: true}, + }, + { + question: "What is the applicant's interest in the land?", + responses: [{value: 'Owner'}], + metadata: {autoAnswered: true}, + }, + { + question: "What is the user's role?", + responses: [{value: 'Other'}], + metadata: {autoAnswered: true}, + }, + { + question: "What is the applicant's declared connections?", + responses: [{value: 'None'}], + metadata: {autoAnswered: true}, + }, + ], + files: [ + { + name: 'https://api.editor.planx.dev/file/private/tbp4kiba/myPlans.pdf', + type: [ + { + value: 'photographs.proposed', + description: 'Photographs - proposed', + }, + { + value: 'sitePlan.proposed', + description: 'Site plan - proposed', + }, + { + value: 'elevations.proposed', + description: 'Elevations - proposed', + }, + { + value: 'floorPlan.proposed', + description: 'Floor plan - proposed', + }, + ], + }, + { + name: 'https://api.editor.planx.dev/file/private/vyyogkcf/correspondence.pdf', + type: [ + { + value: 'otherEvidence', + description: 'Other - evidence or correspondence', + }, + ], + description: 'Nothing really, this is just a test. ', + }, + { + name: 'https://api.editor.planx.dev/file/private/97ltnrxr/invoice.pdf', + type: [ + { + value: 'constructionInvoice', + description: 'Construction invoice', + }, + ], + description: "Nothing, it's a test document. ", + }, + ], + metadata: { + organisation: 'BKM', + id: '95f90e21-93f5-4761-90b3-815c673e041f', + source: 'PlanX', + service: { + flowId: '824628b2-deeb-48b0-92b1-2ca7f3b17163', + url: 'https://www.editor.planx.dev/buckinghamshire/apply-for-a-lawful-development-certificate/preview', + files: { + required: [ + { + value: 'photographs.proposed', + description: 'Photographs - proposed', + }, + { + value: 'sitePlan.proposed', + description: 'Site plan - proposed', + }, + { + value: 'elevations.proposed', + description: 'Elevations - proposed', + }, + { + value: 'floorPlan.proposed', + description: 'Floor plan - proposed', + }, + { + value: 'floorPlan.proposed', + description: 'Floor plan - proposed', + }, + ], + recommended: [ + { + value: 'otherEvidence', + description: 'Other - evidence or correspondence', + }, + { + value: 'constructionInvoice', + description: 'Construction invoice', + }, + ], + optional: [], + }, + fee: { + category: { + sixAndSeven: [ + { + description: + 'The planning fee for an application for a Certificate of Lawfulness relating to existing alterations or extensions of a single home is £258.', + policyRefs: [ + { + text: 'UK Statutory Instruments 2023 No. 1197', + url: 'https://www.legislation.gov.uk/uksi/2023/1197/made', + }, + ], + }, + ], + }, + calculated: [ + { + description: + 'The planning fee for an application for a Certificate of Lawfulness relating to existing alterations or extensions of a single home is £258.', + policyRefs: [ + { + text: 'UK Statutory Instruments 2023 No. 1197', + url: 'https://www.legislation.gov.uk/uksi/2023/1197/made', + }, + ], + }, + ], + payable: [ + { + description: + 'The planning fee for an application for a Certificate of Lawfulness relating to existing alterations or extensions of a single home is £258.', + policyRefs: [ + { + text: 'UK Statutory Instruments 2023 No. 1197', + url: 'https://www.legislation.gov.uk/uksi/2023/1197/made', + }, + ], + }, + ], + }, + }, + submittedAt: '2023-10-02t00:00:00z', + schema: `https://theopensystemslab.github.io/digital-planning-data-schemas/${version}/schema.json`, + }, + }; diff --git a/examples/digitalPlanningApplication/data/lawfulDevelopmentCertificate/proposed.ts b/examples/digitalPlanningApplication/data/lawfulDevelopmentCertificate/proposed.ts new file mode 100644 index 00000000..77b14d30 --- /dev/null +++ b/examples/digitalPlanningApplication/data/lawfulDevelopmentCertificate/proposed.ts @@ -0,0 +1,906 @@ +import {DigitalPlanningApplication} from '../../../../types/schemas/digitalPlanningApplication'; + +const version = process.env['VERSION'] || '@next'; + +export const lawfulDevelopmentCertificateProposed: DigitalPlanningApplication = + { + data: { + application: { + type: { + value: 'ldc.proposed', + description: 'Lawful Development Certificate - Proposed use', + }, + fee: { + calculated: 129, + payable: 0, + category: { + sixAndSeven: 129, + }, + exemption: { + disability: true, + resubmission: true, + }, + reduction: { + sports: false, + parishCouncil: false, + alternative: false, + }, + }, + declaration: { + accurate: true, + connection: { + value: 'none', + }, + }, + }, + user: { + role: 'applicant', + }, + applicant: { + type: 'individual', + name: { + first: 'Enid', + last: 'Blyton', + }, + email: 'famousfive@example.com', + phone: { + primary: '05555 555 555', + }, + address: { + sameAsSiteAddress: true, + }, + siteContact: { + role: 'applicant', + }, + ownership: { + interest: 'owner', + }, + }, + property: { + address: { + latitude: 51.6154458, + longitude: -0.6463271, + x: 493822, + y: 191603, + title: '7, BLYTON CLOSE, BEACONSFIELD', + singleLine: '7, BLYTON CLOSE, BEACONSFIELD, HP9 2LX', + source: 'Ordnance Survey', + uprn: '100080482163', + usrn: '35200844', + pao: '7', + street: 'BLYTON CLOSE', + town: 'BEACONSFIELD', + postcode: 'HP9 2LX', + }, + boundary: { + site: { + type: 'Feature', + geometry: { + type: 'Polygon', + coordinates: [ + [ + [-0.646633654832832, 51.61556919642334], + [-0.6466296315193095, 51.61554504700152], + [-0.6465049088001171, 51.61551173743314], + [-0.6464512646198194, 51.61522027766699], + [-0.6463131308555524, 51.61522943785954], + [-0.6463037431240002, 51.61520695374722], + [-0.6462487578391951, 51.615222775901515], + [-0.6462393701076429, 51.61520861923739], + [-0.6459456682205124, 51.615292726412235], + [-0.6460489332675857, 51.61561499701554], + [-0.646633654832832, 51.61556919642334], + ], + ], + }, + properties: null, + }, + area: { + hectares: 0.141826, + squareMetres: 1418.26, + }, + }, + planning: { + sources: [ + 'https://api.editor.planx.dev/gis/buckinghamshire?geom=POLYGON+%28%28-0.646633654832832+51.61556919642334%2C+-0.6466296315193095+51.61554504700152%2C+-0.6465049088001171+51.61551173743314%2C+-0.6464512646198194+51.61522027766699%2C+-0.6463131308555524+51.61522943785954%2C+-0.6463037431240002+51.61520695374722%2C+-0.6462487578391951+51.615222775901515%2C+-0.6462393701076429+51.61520861923739%2C+-0.6459456682205124+51.615292726412235%2C+-0.6460489332675857+51.61561499701554%2C+-0.646633654832832+51.61556919642334%29%29&analytics=false&sessionId=8da51c5b-a2a0-4386-a15d-29d66f9c121c', + 'https://api.editor.planx.dev/roads?usrn=35200844', + ], + designations: [ + { + value: 'article4', + description: 'Article 4 Direction area', + intersects: false, + }, + { + value: 'article4.caz', + description: 'Central Activities Zone (CAZ)', + intersects: false, + }, + { + value: 'tpo', + description: 'Tree Preservation Order (TPO) or zone', + intersects: false, + }, + { + value: 'listed', + description: 'Listed Building', + intersects: false, + }, + { + value: 'monument', + description: 'Site of a Scheduled Monument', + intersects: false, + }, + { + value: 'designated', + description: 'Designated land', + intersects: false, + }, + { + value: 'nature.SAC', + description: 'Special Area of Conservation (SAC)', + intersects: false, + }, + { + value: 'nature.ASNW', + description: 'Ancient Semi-Natural Woodland (ASNW)', + intersects: false, + }, + { + value: 'nature.SSSI', + description: 'Site of Special Scientific Interest (SSSI)', + intersects: false, + }, + { + value: 'locallyListed', + description: 'Locally Listed Building', + intersects: false, + }, + { + value: 'nature.SPA', + description: 'Special Protection Area (SPA)', + intersects: false, + }, + { + value: 'designated.WHS', + description: 'UNESCO World Heritage Site or buffer zone', + intersects: false, + }, + { + value: 'registeredPark', + description: 'Historic Park or Garden', + intersects: false, + }, + { + value: 'designated.AONB', + description: 'Area of Outstanding Natural Beauty (AONB)', + intersects: false, + }, + { + value: 'designated.nationalPark', + description: 'National Park', + intersects: false, + }, + { + value: 'designated.conservationArea', + description: 'Conservation Area', + intersects: false, + }, + { + value: 'designated.nationalPark.broads', + description: 'National Park - Broads', + intersects: false, + }, + { + value: 'road.classified', + description: 'Classified Road', + intersects: false, + }, + ], + }, + localAuthorityDistrict: ['Buckinghamshire', 'South Bucks'], + region: 'South East', + type: { + value: 'residential.dwelling.house.detached', + description: 'Detached', + }, + }, + proposal: { + projectType: [ + { + value: 'extend.rear', + description: 'Add a rear or side extension (or conservatory)', + }, + ], + description: 'Rear extension of a home', + boundary: { + site: { + type: 'Feature', + geometry: { + type: 'Polygon', + coordinates: [ + [ + [-0.646633654832832, 51.61556919642334], + [-0.6466296315193095, 51.61554504700152], + [-0.6465049088001171, 51.61551173743314], + [-0.6464512646198194, 51.61522027766699], + [-0.6463131308555524, 51.61522943785954], + [-0.6463037431240002, 51.61520695374722], + [-0.6462487578391951, 51.615222775901515], + [-0.6462393701076429, 51.61520861923739], + [-0.6459456682205124, 51.615292726412235], + [-0.6460489332675857, 51.61561499701554], + [-0.646633654832832, 51.61556919642334], + ], + ], + }, + properties: null, + }, + area: { + hectares: 0.141826, + squareMetres: 1418.26, + }, + }, + date: {}, + extend: { + area: { + squareMetres: 24, + }, + }, + }, + }, + preAssessment: [ + { + value: 'Planning permission / Permitted development', + description: + 'It looks like the proposed changes may fall within the rules for Permitted Development and therefore would not need planning permission.', + }, + ], + responses: [ + { + question: 'List the changes involved in the project', + responses: [{value: 'Add a rear or side extension (or conservatory)'}], + metadata: { + policyRefs: [ + { + text: 'Town and Country Planning Act 1990 (Section 55)', + url: 'https://www.legislation.gov.uk/ukpga/1990/8/section/55', + }, + { + text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015', + url: 'https://www.legislation.gov.uk/uksi/2015/596/contents', + }, + ], + }, + }, + { + question: 'What type of property is it?', + responses: [{value: 'House'}], + metadata: { + autoAnswered: true, + policyRefs: [ + { + text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015', + url: 'https://www.legislation.gov.uk/uksi/2015/596/contents/made', + }, + ], + }, + }, + { + question: 'What type of house is it?', + responses: [{value: 'Detached'}], + metadata: {autoAnswered: true}, + }, + { + question: 'How many storeys does the original house have?', + responses: [{value: '2 or more'}], + metadata: {}, + }, + { + question: 'Does the original house have a projection to the rear?', + responses: [{value: 'No'}], + metadata: {}, + }, + { + question: 'Was the house always a house?', + responses: [{value: 'Yes, it was built as a house'}], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015, Schedule 2, Part 1, Class A', + url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1', + }, + ], + }, + }, + { + question: 'Was the house built before 2020?', + responses: [ + { + value: 'Yes, it was built before 2020', + metadata: {flags: ['Planning permission / Permitted development']}, + }, + ], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 1, Class 1 A.', + url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1', + }, + ], + }, + }, + { + question: 'How many storeys does the extension have?', + responses: [{value: '1 storey'}], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Section 2, Part 1, Class A', + url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1', + }, + ], + }, + }, + { + question: 'Does the original house have a projection to the rear?', + responses: [{value: 'No'}], + metadata: {autoAnswered: true}, + }, + { + question: 'Which of these best describes your project?', + responses: [{value: 'Rear only'}], + metadata: { + policyRefs: [ + { + text: 'General Permitted Development Order 2015, Technical guidance', + url: 'https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/830643/190910_Tech_Guide_for_publishing.pdf', + }, + ], + }, + }, + { + question: 'Is the property on designated land?', + responses: [{value: 'No'}], + metadata: {autoAnswered: true}, + }, + { + question: 'Is the property a site of special scientific interest?', + responses: [{value: 'No'}], + metadata: {autoAnswered: true}, + }, + { + question: 'What type of house is it?', + responses: [{value: 'Detached'}], + metadata: {autoAnswered: true}, + }, + { + question: + 'How far does the new addition extend beyond the back wall of the original house?', + responses: [ + { + value: 'Less than 4m', + metadata: {flags: ['Planning permission / Permitted development']}, + }, + ], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 1, Class A.1 (f)(i)', + url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1', + }, + ], + }, + }, + { + question: 'What is the shortest distance to the property boundary?', + responses: [{value: '2m or more'}], + metadata: {}, + }, + { + question: + 'Are the materials of the extension similar to the original house?', + responses: [ + { + value: 'Yes', + metadata: {flags: ['Planning permission / Permitted development']}, + }, + ], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 1, Class A', + url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1', + }, + ], + }, + }, + { + question: 'Is the property on designated land?', + responses: [{value: 'No'}], + metadata: {autoAnswered: true}, + }, + { + question: + 'How much of the property is covered by extensions and outbuildings?', + responses: [ + { + value: + '50% or less of the available area around the original house', + metadata: {flags: ['Planning permission / Permitted development']}, + }, + ], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 1, Class A', + url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/1', + }, + ], + }, + }, + { + question: 'What types of changes does the project involve?', + responses: [{value: 'Extension'}], + metadata: {autoAnswered: true}, + }, + { + question: + 'Have you already told us that you are doing works to a tree or hedge?', + responses: [{value: 'No'}], + metadata: {autoAnswered: true}, + }, + { + question: 'Are there any protected trees on the property?', + responses: [{value: 'No'}], + metadata: {autoAnswered: true}, + }, + { + question: 'Is the site in a conservation area?', + responses: [ + { + value: 'No', + metadata: {flags: ['Works to trees & hedges / Not required']}, + }, + ], + metadata: {autoAnswered: true}, + }, + { + question: 'What are you applying about?', + responses: [{value: 'Proposed changes I want to make in the future'}], + metadata: {autoAnswered: true}, + }, + { + question: 'What do the works involve?', + responses: [{value: 'Works to extend a property'}], + metadata: {autoAnswered: true}, + }, + { + question: 'What does the project involve?', + responses: [{value: 'Add a rear or side extension (or conservatory)'}], + metadata: {autoAnswered: true}, + }, + { + question: + 'How much is the internal floor area of the property increasing by?', + responses: [{value: '24'}], + metadata: {}, + }, + { + question: 'Is it a residential property?', + responses: [{value: 'Yes'}], + metadata: {autoAnswered: true}, + }, + { + question: 'Do the changes involve the creation of any new homes?', + responses: [{value: 'No'}], + metadata: {}, + }, + { + question: + 'Do the changes involve creating any new bedrooms or bathrooms?', + responses: [{value: 'No'}], + metadata: {}, + }, + { + question: 'Do the changes involve the creation of any new homes?', + responses: [{value: 'No'}], + metadata: {autoAnswered: true}, + }, + { + question: 'Is the property in the Greater London Authority area?', + responses: [{value: 'No'}], + metadata: { + autoAnswered: true, + policyRefs: [ + { + text: 'Greater London Authority Act 1999', + url: 'https://www.legislation.gov.uk/ukpga/1999/29/section/346', + }, + ], + }, + }, + { + question: 'Which of these best describes you?', + responses: [{value: 'Applicant'}], + metadata: {autoAnswered: true}, + }, + { + question: 'Which of these best describes your interest in the land?', + responses: [{value: 'Sole owner'}], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (Development Management Procedure) (England) Order 2015', + url: 'https://www.legislation.gov.uk/uksi/2015/595/article/39/made', + }, + ], + }, + }, + { + question: 'What types of changes does the project involve?', + responses: [{value: 'Extension'}], + metadata: {autoAnswered: true}, + }, + { + question: + 'Does the work involve any alterations to ground or floor levels?', + responses: [{value: 'No'}], + metadata: {}, + }, + { + question: 'Would you like to upload any photographs?', + responses: [{value: 'No'}], + metadata: {}, + }, + { + question: 'What types of extension are being added?', + responses: [{value: 'Rear or side'}], + metadata: {autoAnswered: true}, + }, + { + question: 'Do you also want to add existing internal floor plans?', + responses: [{value: 'No'}], + metadata: {}, + }, + { + question: + 'Is the roof of the extension already shown on another set of drawings?', + responses: [{value: 'No'}], + metadata: {}, + }, + { + question: + 'Would you like to upload any additional drawings, documents or images?', + responses: [{value: 'No'}], + metadata: {}, + }, + { + question: 'What type of planning application are you making?', + responses: [{value: 'Lawful Development Certificate'}], + metadata: {autoAnswered: true}, + }, + { + question: 'What type of changes are you applying for?', + responses: [{value: 'Proposed changes'}], + metadata: {autoAnswered: true}, + }, + { + question: 'Is the property a home?', + responses: [{value: 'Yes'}], + metadata: {autoAnswered: true}, + }, + { + question: 'What types of changes does the application relate to?', + responses: [{value: 'Extension'}], + metadata: {autoAnswered: true}, + }, + { + question: 'How many homes does this application relate to?', + responses: [{value: '1'}], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (Fees for Applications, Deemed Applications, Requests and Site Visits) (England) Regulations 2012 Schedule 1, Part 2', + url: 'https://www.legislation.gov.uk/uksi/2012/2920/contents', + }, + ], + }, + }, + { + question: 'What type of extension is it?', + responses: [{value: 'Rear or side extension'}], + metadata: {autoAnswered: true}, + }, + { + question: 'Is the property a home?', + responses: [{value: 'Yes'}], + metadata: {autoAnswered: true}, + }, + { + question: 'What works does the project involve?', + responses: [{value: 'Extension'}], + metadata: {autoAnswered: true}, + }, + { + question: + 'Is the sole purpose of the project to support the needs of a disabled resident?', + responses: [{value: 'No'}], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (Fees for Applications, Deemed Applications, Requests and Site Visits) (England) Regulations 2012, Regulation 14', + url: 'https://www.legislation.gov.uk/uksi/2012/2920/regulation/14', + }, + { + text: 'UK Statutory Instruments 2012 No. 2920 Regulation 4', + url: 'https://www.legislation.gov.uk/uksi/2012/2920/regulation/4/made', + }, + { + text: 'Equalities Act 2010, Section 6', + url: 'https://www.legislation.gov.uk/ukpga/2010/15/section/6', + }, + { + text: 'Children Act 1989, Part 3', + url: 'https://www.legislation.gov.uk/ukpga/1989/41/part/III', + }, + ], + }, + }, + { + question: 'Is this application a resubmission?', + responses: [{value: 'Yes'}], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (Fees for Applications, Deemed Applications, Requests and Site Visits) (England) Regulations 2012, Regulation 9', + url: 'https://www.legislation.gov.uk/uksi/2012/2920/regulation/9', + }, + ], + }, + }, + { + question: + 'Is this the first time you have resubmitted an application for this site?', + responses: [{value: 'Yes'}], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (Fees for Applications, Deemed Applications, Requests and Site Visits) (England) Regulations 2012, Regulation 8', + url: 'https://www.legislation.gov.uk/uksi/2012/2920/regulation/8', + }, + ], + }, + }, + { + question: 'What type of application is this?', + responses: [{value: 'Lawful Development Certificate'}], + metadata: {autoAnswered: true}, + }, + { + question: "What was the original application's reference number?", + responses: [{value: 'M8AG1C F4R4WAY TR33'}], + metadata: {}, + }, + { + question: + 'To qualify for a fee exemption, the proposed works must be of a similar description to the original application', + responses: [{value: 'I understand'}], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (Fees for Applications, Deemed Applications, Requests and Site Visits) (England) Regulations 2012, Regulation 14', + url: 'https://www.legislation.gov.uk/uksi/2012/2920/regulation/14', + }, + ], + }, + }, + { + question: 'What was the result of the original application?', + responses: [{value: 'Withdrawn'}], + metadata: {}, + }, + { + question: 'When did you submit the original application?', + responses: [{value: 'Within the last 12 months'}], + metadata: { + policyRefs: [ + { + text: 'UK Statutory Instruments 2012 No. 2920 Regulation 8', + url: 'https://www.legislation.gov.uk/uksi/2012/2920/regulation/8/made', + }, + ], + }, + }, + { + question: 'Does the application qualify for a disability exemption?', + responses: [{value: 'No'}], + metadata: {autoAnswered: true}, + }, + { + question: 'Does the application qualify for a resubmission exemption?', + responses: [{value: 'Yes'}], + metadata: {autoAnswered: true}, + }, + { + question: + 'Did you get any pre-application advice before making this application?', + responses: [{value: 'No'}], + metadata: {}, + }, + { + question: + 'What local planning authority is this application being sent to?', + responses: [{value: 'South Buckinghamshire'}], + metadata: {autoAnswered: true}, + }, + { + question: 'What type of application is it?', + responses: [{value: 'Lawful Development Certificate'}], + metadata: {autoAnswered: true}, + }, + { + question: 'What type of works are you applying about?', + responses: [{value: 'Proposed'}], + metadata: {autoAnswered: true}, + }, + { + question: "What is the applicant's interest in the land?", + responses: [{value: 'Owner'}], + metadata: {autoAnswered: true}, + }, + { + question: "What is the user's role?", + responses: [{value: 'Applicant'}], + metadata: {autoAnswered: true}, + }, + { + question: "What is the applicant's declared connections?", + responses: [{value: 'None'}], + metadata: {autoAnswered: true}, + }, + ], + files: [ + { + name: 'https://api.editor.planx.dev/file/private/tbp4kiba/myPlans.pdf', + type: [ + { + value: 'roofPlan.existing', + description: 'Roof plan - existing', + }, + { + value: 'roofPlan.proposed', + description: 'Roof plan - proposed', + }, + { + value: 'sitePlan.existing', + description: 'Site plan - existing', + }, + { + value: 'sitePlan.proposed', + description: 'Site plan - proposed', + }, + { + value: 'elevations.existing', + description: 'Elevations - existing', + }, + { + value: 'elevations.proposed', + description: 'Elevations - proposed', + }, + ], + }, + { + name: 'https://api.editor.planx.dev/file/private/311w2id6/floor_plans.pdf', + type: [ + { + value: 'floorPlan.existing', + description: 'Floor plan - existing', + }, + { + value: 'floorPlan.proposed', + description: 'Floor plan - proposed', + }, + ], + }, + ], + metadata: { + organisation: 'BKM', + id: '8da51c5b-a2a0-4386-a15d-29d66f9c121c', + source: 'PlanX', + service: { + flowId: '824628b2-deeb-48b0-92b1-2ca7f3b17163', + url: 'https://www.editor.planx.dev/buckinghamshire/apply-for-a-lawful-development-certificate/preview', + files: { + required: [ + { + value: 'roofPlan.existing', + description: 'Roof plan - existing', + }, + { + value: 'sitePlan.existing', + description: 'Site plan - existing', + }, + { + value: 'roofPlan.proposed', + description: 'Roof plan - proposed', + }, + { + value: 'sitePlan.proposed', + description: 'Site plan - proposed', + }, + { + value: 'elevations.existing', + description: 'Elevations - existing', + }, + { + value: 'floorPlan.existing', + description: 'Floor plan - existing', + }, + { + value: 'elevations.proposed', + description: 'Elevations - proposed', + }, + { + value: 'floorPlan.proposed', + description: 'Floor plan - proposed', + }, + ], + recommended: [], + optional: [], + }, + fee: { + category: { + sixAndSeven: [ + { + description: + 'The plannning fee for an application for a Certificate of Lawfulness relating to the proposed alteration or extension of a single home is £129', + policyRefs: [ + { + text: 'UK Statutory Instruments 2023 No. 1197', + url: 'https://www.legislation.gov.uk/uksi/2023/1197/made', + }, + ], + }, + ], + }, + calculated: [ + { + description: + 'The plannning fee for an application for a Certificate of Lawfulness relating to the proposed alteration or extension of a single home is £129', + policyRefs: [ + { + text: 'UK Statutory Instruments 2023 No. 1197', + url: 'https://www.legislation.gov.uk/uksi/2023/1197/made', + }, + ], + }, + ], + payable: [ + { + description: + 'If the proposed works (to either a home or within the curtilage of a home) is for the sole purpose of - providing either a means of access to (or within) the dwellinghouse for a disabled resident (current or future); providing facilities that are designed to ensure the disabled persons safety, health or comfort; or providing disabled access to a public building - then no planning fee will be payable for this application.', + policyRefs: [ + { + text: 'UK Statutory Instruments 2012 No. 2920 Regulation 4', + url: 'https://www.legislation.gov.uk/uksi/2012/2920/regulation/4/made', + }, + ], + }, + { + description: + 'In the case of an application that is the first resubmission of an application on the same site that is similar in character and description, no planning fee is payable.', + policyRefs: [ + { + text: 'UK Statutory Instruments 2012 No. 2920 Regulation 8', + url: 'https://www.legislation.gov.uk/uksi/2012/2920/regulation/8/made', + }, + ], + }, + ], + }, + }, + submittedAt: '2023-10-02T00:00:00+01:00', + schema: `https://theopensystemslab.github.io/digital-planning-data-schemas/${version}/schema.json`, + }, + }; diff --git a/examples/data/listedBuildingConsent.ts b/examples/digitalPlanningApplication/data/listedBuildingConsent.ts similarity index 99% rename from examples/data/listedBuildingConsent.ts rename to examples/digitalPlanningApplication/data/listedBuildingConsent.ts index abce8801..b4eca594 100644 --- a/examples/data/listedBuildingConsent.ts +++ b/examples/digitalPlanningApplication/data/listedBuildingConsent.ts @@ -1,8 +1,8 @@ -import {Schema} from '../../types/Schema'; +import {DigitalPlanningApplication} from '../../../types/schemas/digitalPlanningApplication'; const version = process.env['VERSION'] || '@next'; -export const listedBuildingConsent: Schema = { +export const listedBuildingConsent: DigitalPlanningApplication = { data: { user: { role: 'applicant', diff --git a/examples/data/planningPermission/fullHouseholder.ts b/examples/digitalPlanningApplication/data/planningPermission/fullHouseholder.ts similarity index 99% rename from examples/data/planningPermission/fullHouseholder.ts rename to examples/digitalPlanningApplication/data/planningPermission/fullHouseholder.ts index de9d7974..c9c79cd2 100644 --- a/examples/data/planningPermission/fullHouseholder.ts +++ b/examples/digitalPlanningApplication/data/planningPermission/fullHouseholder.ts @@ -1,8 +1,8 @@ -import {Schema} from '../../../types/Schema'; +import {DigitalPlanningApplication} from '../../../../types/schemas/digitalPlanningApplication'; const version = process.env['VERSION'] || '@next'; -export const planningPermissionFullHouseholder: Schema = { +export const planningPermissionFullHouseholder: DigitalPlanningApplication = { data: { application: { type: { diff --git a/examples/data/planningPermission/major.ts b/examples/digitalPlanningApplication/data/planningPermission/major.ts similarity index 99% rename from examples/data/planningPermission/major.ts rename to examples/digitalPlanningApplication/data/planningPermission/major.ts index 77131639..4f8c230c 100644 --- a/examples/data/planningPermission/major.ts +++ b/examples/digitalPlanningApplication/data/planningPermission/major.ts @@ -1,9 +1,9 @@ -import {Schema} from '../../../types/Schema'; -import {BaseProposal} from '../../../types/schema/data/Proposal'; +import {DigitalPlanningApplication} from '../../../../types/schemas/digitalPlanningApplication'; +import {BaseProposal} from '../../../../types/schemas/digitalPlanningApplication/data/Proposal'; const version = process.env['VERSION'] || '@next'; -export const planningPermissionMajor: Schema = { +export const planningPermissionMajor: DigitalPlanningApplication = { data: { user: { role: 'agent', diff --git a/examples/data/planningPermission/minor.ts b/examples/digitalPlanningApplication/data/planningPermission/minor.ts similarity index 99% rename from examples/data/planningPermission/minor.ts rename to examples/digitalPlanningApplication/data/planningPermission/minor.ts index bfa7a990..1d4ac797 100644 --- a/examples/data/planningPermission/minor.ts +++ b/examples/digitalPlanningApplication/data/planningPermission/minor.ts @@ -1,9 +1,9 @@ -import {Schema} from '../../../types/Schema'; -import {BaseProposal} from '../../../types/schema/data/Proposal'; +import {DigitalPlanningApplication} from '../../../../types/schemas/digitalPlanningApplication'; +import {BaseProposal} from '../../../../types/schemas/digitalPlanningApplication/data/Proposal'; const version = process.env['VERSION'] || '@next'; -export const planningPermissionMinor: Schema = { +export const planningPermissionMinor: DigitalPlanningApplication = { data: { user: { role: 'applicant', diff --git a/examples/data/priorApproval/buildHomes.ts b/examples/digitalPlanningApplication/data/priorApproval/buildHomes.ts similarity index 99% rename from examples/data/priorApproval/buildHomes.ts rename to examples/digitalPlanningApplication/data/priorApproval/buildHomes.ts index 855c7ff5..58fa7e74 100644 --- a/examples/data/priorApproval/buildHomes.ts +++ b/examples/digitalPlanningApplication/data/priorApproval/buildHomes.ts @@ -1,8 +1,8 @@ -import {Schema} from '../../../types/Schema'; +import {DigitalPlanningApplication} from '../../../../types/schemas/digitalPlanningApplication'; const version = process.env['VERSION'] || '@next'; -export const priorApprovalBuildHomes: Schema = { +export const priorApprovalBuildHomes: DigitalPlanningApplication = { data: { user: { role: 'applicant', diff --git a/examples/digitalPlanningApplication/data/priorApproval/convertCommercialToHome.ts b/examples/digitalPlanningApplication/data/priorApproval/convertCommercialToHome.ts new file mode 100644 index 00000000..a668eee8 --- /dev/null +++ b/examples/digitalPlanningApplication/data/priorApproval/convertCommercialToHome.ts @@ -0,0 +1,1632 @@ +import {DigitalPlanningApplication} from '../../../../types/schemas/digitalPlanningApplication'; + +const version = process.env['VERSION'] || '@next'; + +export const priorApprovalConvertCommercialToHome: DigitalPlanningApplication = + { + data: { + user: { + role: 'agent', + }, + applicant: { + type: 'individual', + name: { + first: 'Vincent', + last: 'Van Gogh', + }, + email: 'ouchmyear@email.org', + phone: { + primary: '012345678901', + }, + address: { + sameAsSiteAddress: true, + }, + siteContact: { + role: 'agent', + }, + agent: { + name: { + first: 'Alan', + last: 'Agent', + }, + email: 'alanagent@email.org', + phone: { + primary: '098765432109', + }, + company: { + name: "Alan's Property & Fine Art Consultants PLC", + }, + address: { + line1: '12 Agent Avenue', + line2: '', + town: 'Plantown', + county: '', + postcode: 'PL47TN', + country: '', + }, + }, + }, + property: { + address: { + latitude: 51.4745098, + longitude: -0.1151501, + x: 530999, + y: 176745, + title: '87, HACKFORD ROAD, LONDON', + source: 'Ordnance Survey', + uprn: '100021847182', + usrn: '21900651', + pao: '87', + street: 'HACKFORD ROAD', + town: 'LONDON', + postcode: 'SW9 0RE', + singleLine: '87, HACKFORD ROAD, LONDON, LAMBETH, SW9 0RE', + }, + localAuthorityDistrict: ['Lambeth'], + region: 'London', + type: { + value: 'commercial.retail.shop', + description: 'Shop', + }, + planning: { + sources: [ + 'https://api.editor.planx.dev/gis/lambeth?geom=MULTIPOLYGON+%28%28%28-0.114876+51.474474%2C+-0.114863+51.474517%2C+-0.115261+51.474548%2C+-0.11527+51.474504%2C+-0.114876+51.474474%29%29%29&analytics=false&sessionId=86a5ba3e-1a7f-4460-bf46-826c3f982a92', + 'https://api.editor.planx.dev/roads?usrn=21900651', + ], + designations: [ + { + value: 'tpo', + description: 'Tree Preservation Order (TPO) or zone', + intersects: false, + }, + { + value: 'flood', + description: 'Flood Risk Zone', + intersects: false, + }, + { + value: 'listed', + description: 'Listed Building', + intersects: true, + entities: [ + { + name: '87, HACKFORD ROAD SW9', + source: { + text: 'Planning Data', + url: 'https://www.planning.data.gov.uk/entity/31537921', + }, + }, + { + name: 'No Address Supplied', + source: { + text: 'Planning Data', + url: 'https://www.planning.data.gov.uk/entity/42103309', + }, + }, + ], + }, + { + value: 'article4', + description: 'Article 4 Direction area', + intersects: false, + }, + { + value: 'monument', + description: 'Site of a Scheduled Monument', + intersects: false, + }, + { + value: 'greenBelt', + description: 'Green Belt', + intersects: false, + }, + { + value: 'designated', + description: 'Designated land', + intersects: true, + }, + { + value: 'nature.SAC', + description: 'Special Area of Conservation (SAC)', + intersects: false, + }, + { + value: 'nature.SPA', + description: 'Special Protection Area (SPA)', + intersects: false, + }, + { + value: 'nature.ASNW', + description: 'Ancient Semi-Natural Woodland (ASNW)', + intersects: false, + }, + { + value: 'nature.SSSI', + description: 'Site of Special Scientific Interest (SSSI)', + intersects: false, + }, + { + value: 'brownfieldSite', + description: 'Brownfield site', + intersects: false, + }, + { + value: 'designated.WHS', + description: 'UNESCO World Heritage Site or buffer zone', + intersects: false, + }, + { + value: 'listed.grade.I', + description: 'Listed Building - Grade I', + intersects: false, + }, + { + value: 'registeredPark', + description: 'Historic Park or Garden', + intersects: false, + }, + { + value: 'designated.AONB', + description: 'Area of Outstanding Natural Beauty (AONB)', + intersects: false, + }, + { + value: 'listed.grade.II', + description: 'Listed Building - Grade II', + intersects: true, + }, + { + value: 'listed.grade.II*', + description: 'Listed Building - Grade II*', + intersects: false, + }, + { + value: 'nature.ramsarSite', + description: 'Ramsar site', + intersects: false, + }, + { + value: 'designated.nationalPark', + description: 'National Park', + intersects: false, + }, + { + value: 'designated.conservationArea', + description: 'Conservation Area', + intersects: true, + entities: [ + { + name: 'Hackford Road', + source: { + text: 'Planning Data', + url: 'https://www.planning.data.gov.uk/entity/44000877', + }, + }, + ], + }, + { + value: 'designated.nationalPark.broads', + description: 'National Park - Broads', + intersects: false, + }, + { + value: 'road.classified', + description: 'Classified Road', + intersects: false, + }, + ], + }, + boundary: { + site: { + type: 'Feature', + geometry: { + type: 'MultiPolygon', + coordinates: [ + [ + [ + [-0.114876, 51.474474], + [-0.114863, 51.474517], + [-0.115261, 51.474548], + [-0.11527, 51.474504], + [-0.114876, 51.474474], + ], + ], + ], + }, + properties: { + name: '', + entity: 12000528882, + prefix: 'title-boundary', + dataset: 'title-boundary', + 'end-date': '', + typology: 'geography', + reference: '51792928', + 'entry-date': '2024-05-06', + 'start-date': '2011-05-10', + 'organisation-entity': '13', + }, + }, + area: { + hectares: 0.013555000000000001, + squareMetres: 135.55, + }, + }, + titleNumber: { + known: 'Yes', + number: '24/12345/FUL', + }, + EPC: { + known: 'Yes', + number: '1234-1234-1234-1234', + }, + parking: { + cars: { + count: 1, + }, + vans: { + count: 0, + }, + motorcycles: { + count: 0, + }, + cycles: { + count: 0, + }, + buses: { + count: 0, + }, + disabled: { + count: 0, + }, + carClub: { + count: 0, + }, + offStreet: { + residential: { + count: 0, + }, + }, + other: { + count: 0, + }, + }, + occupation: { + status: 'vacant', + }, + }, + application: { + type: { + value: 'pa.part3.classMA', + description: + 'Prior Approval - Convert a commercial building into a home or homes', + }, + fee: { + calculated: 258, + payable: 258, + category: { + one: 0, + two: 0, + three: 0, + four: 0, + five: 0, + sixAndSeven: 0, + eight: 0, + nine: 0, + ten: 0, + eleven: { + one: 0, + two: 0, + }, + twelve: { + one: 0, + two: 0, + }, + thirteen: 0, + fourteen: 0, + }, + exemption: { + disability: false, + resubmission: false, + }, + reduction: { + sports: false, + parishCouncil: false, + alternative: false, + }, + reference: { + govPay: 'p88epskokjikus74eafr36tfc1', + }, + }, + leadDeveloper: { + type: 'overseasCompany', + company: { + name: 'Impression Developments Inc.', + registrationNumber: '12345679ABC', + }, + }, + declaration: { + accurate: true, + connection: { + value: 'none', + }, + }, + }, + proposal: { + projectType: [ + { + value: 'changeOfUse', + description: 'Change the use of a building', + }, + ], + description: + 'Change of use from my sunflower and art supplies shop into a home.', + schemeName: "Vincent's New Property Venture", + date: { + start: '2024-07-28', + completion: '2035-07-28', + }, + boundary: { + site: { + type: 'Feature', + geometry: { + type: 'MultiPolygon', + coordinates: [ + [ + [ + [-0.114876, 51.474474], + [-0.114863, 51.474517], + [-0.115261, 51.474548], + [-0.11527, 51.474504], + [-0.114876, 51.474474], + ], + ], + ], + }, + properties: { + name: '', + entity: 12000528882, + prefix: 'title-boundary', + dataset: 'title-boundary', + 'end-date': '', + typology: 'geography', + reference: '51792928', + 'entry-date': '2024-05-06', + 'start-date': '2011-05-10', + 'organisation-entity': '13', + planx_user_action: 'Accepted the title boundary', + }, + }, + area: { + hectares: 0.013555000000000001, + squareMetres: 135.55, + }, + }, + parking: { + cars: { + count: 1, + difference: 0, + }, + vans: { + count: 0, + difference: 0, + }, + motorcycles: { + count: 0, + difference: 0, + }, + cycles: { + count: 2, + difference: 2, + }, + buses: { + count: 0, + difference: 0, + }, + disabled: { + count: 0, + difference: 0, + }, + carClub: { + count: 0, + difference: 0, + }, + offStreet: { + residential: { + count: 0, + difference: 0, + }, + }, + other: { + count: 0, + difference: 0, + }, + }, + units: { + residential: { + rebuilt: [ + { + development: { + value: 'changeOfUse', + description: 'Change of use', + }, + type: {value: 'terraced', description: 'Terraced home'}, + bedrooms: 3, + habitableRooms: 7, + area: {squareMetres: 300}, + tenure: { + value: 'marketForRent', + description: 'Market for rent', + }, + provider: {value: 'private', description: 'Private'}, + garden: false, + sheltered: false, + olderPersons: false, + compliance: [ + { + value: 'm42', + description: 'Part M4(2) of the Building Regulations 2010', + }, + { + value: 'm432a', + description: + 'Part M4(3)(2a) of the Building Regulations 2010', + }, + { + value: 'm432b', + description: + 'Part M4(3)(2b) of the Building Regulations 2010', + }, + ], + identicalUnits: 1, + }, + ], + }, + }, + energy: { + type: ['heatPump'], + heatPumps: { + capacity: {megawatts: 2}, + }, + }, + greenRoof: { + area: {squareMetres: 0}, + }, + urbanGreeningFactor: { + score: 4, + }, + utilities: { + gas: {connections: {count: 1}}, + water: {connections: {count: 1}}, + internet: { + residentialUnits: {count: 1}, + commercialUnits: {count: 0}, + }, + }, + waste: { + reuseRecycle: {percent: 2}, + }, + }, + }, + preAssessment: [ + { + value: 'Planning permission / Permission needed', + description: + 'It looks like the proposed changes may require planning permission.', + }, + ], + responses: [ + { + question: 'Is the property in Lambeth?', + responses: [ + { + value: 'Yes', + }, + ], + metadata: { + autoAnswered: true, + sectionName: 'The property', + }, + }, + { + question: 'What type of property is it?', + responses: [ + { + value: 'Something else', + }, + ], + metadata: { + sectionName: 'The property', + }, + }, + { + question: 'Which of these best describes the use of the property?', + responses: [ + { + value: 'Retail and services', + }, + ], + metadata: { + sectionName: 'The property', + }, + }, + { + question: 'What type of retail unit is it?', + responses: [ + { + value: 'Shop', + }, + ], + metadata: { + sectionName: 'The property', + }, + }, + { + question: 'Have the works already started?', + responses: [ + { + value: 'No', + }, + ], + metadata: { + sectionName: 'About the project', + }, + }, + { + question: 'What type of property is it?', + responses: [ + { + value: 'Commercial building', + }, + ], + metadata: { + autoAnswered: true, + sectionName: 'About the project', + }, + }, + { + question: 'What is the property used as?', + responses: [ + { + value: 'Shop', + }, + ], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (Use Classes) (Amendment) (England) Regulations 2020', + url: 'https://www.legislation.gov.uk/uksi/2020/757/made', + }, + { + text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015', + url: 'https://www.legislation.gov.uk/uksi/2015/596/contents', + }, + ], + sectionName: 'About the project', + }, + }, + { + question: 'Is the shop any of these?', + responses: [ + { + value: "No, it's another kind of shop", + }, + ], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 3', + url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/3', + }, + ], + sectionName: 'About the project', + }, + }, + { + question: 'What does the shop sell?', + responses: [ + { + value: 'Other goods', + }, + ], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 3', + url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/3', + }, + ], + sectionName: 'About the project', + }, + }, + { + question: 'What do you want to change its use to?', + responses: [ + { + value: 'Single house', + }, + ], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (Use Classes) (Amendment) (England) Regulations 2020', + url: 'https://www.legislation.gov.uk/uksi/2020/757/made', + }, + ], + sectionName: 'About the project', + }, + }, + { + question: 'What part of the building will be converted?', + responses: [ + { + value: 'The entire building', + }, + ], + metadata: { + sectionName: 'About the project', + }, + }, + { + question: 'Is the site within an Area of Outstanding Natural Beauty?', + responses: [ + { + value: 'No', + metadata: { + flags: ['Planning permission / Prior approval'], + }, + }, + ], + metadata: { + autoAnswered: true, + policyRefs: [ + { + text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 3, Class MA', + url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/3', + }, + ], + sectionName: 'About the project', + }, + }, + { + question: 'Is the site in the Broads?', + responses: [ + { + value: 'No', + metadata: { + flags: ['Planning permission / Prior approval'], + }, + }, + ], + metadata: { + autoAnswered: true, + policyRefs: [ + { + text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 3, Class MA', + url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/3', + }, + ], + sectionName: 'About the project', + }, + }, + { + question: 'Is the site in a National Park?', + responses: [ + { + value: 'No', + metadata: { + flags: ['Planning permission / Prior approval'], + }, + }, + ], + metadata: { + autoAnswered: true, + policyRefs: [ + { + text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 3, Class MA', + url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/3', + }, + ], + sectionName: 'About the project', + }, + }, + { + question: 'Is the site part of a World Heritage Site?', + responses: [ + { + value: 'No', + metadata: { + flags: ['Planning permission / Prior approval'], + }, + }, + ], + metadata: { + autoAnswered: true, + policyRefs: [ + { + text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 3, Class MA', + url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/3', + }, + ], + sectionName: 'About the project', + }, + }, + { + question: 'Is the site in an area of Special Scientific Interest?', + responses: [ + { + value: 'No', + metadata: { + flags: ['Planning permission / Prior approval'], + }, + }, + ], + metadata: { + autoAnswered: true, + policyRefs: [ + { + text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 3, Class MA', + url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/3', + }, + ], + sectionName: 'About the project', + }, + }, + { + question: 'Is the site in a safety hazard area?', + responses: [ + { + value: 'No', + metadata: { + flags: ['Planning permission / Prior approval'], + }, + }, + ], + metadata: { + autoAnswered: true, + policyRefs: [ + { + text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 3, Class MA', + url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/3', + }, + ], + sectionName: 'About the project', + }, + }, + { + question: 'Is the site in a military explosives storage area?', + responses: [ + { + value: 'No', + metadata: { + flags: ['Planning permission / Prior approval'], + }, + }, + ], + metadata: { + autoAnswered: true, + policyRefs: [ + { + text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 3, Class MA', + url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/3', + }, + ], + sectionName: 'About the project', + }, + }, + { + question: 'Is any part of the property a scheduled monument?', + responses: [ + { + value: 'No', + metadata: { + flags: ['Planning permission / Prior approval'], + }, + }, + ], + metadata: { + autoAnswered: true, + policyRefs: [ + { + text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 3, Class MA', + url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/3', + }, + ], + sectionName: 'About the project', + }, + }, + { + question: 'Is any part of the property listed?', + responses: [ + { + value: 'Yes', + metadata: { + flags: ['Planning permission / Permission needed'], + }, + }, + ], + metadata: { + autoAnswered: true, + policyRefs: [ + { + text: 'The Town and Country Planning (General Permitted Development) (England) Order 2015 Schedule 2, Part 3, Class MA', + url: 'https://www.legislation.gov.uk/uksi/2015/596/schedule/2/part/3', + }, + ], + sectionName: 'About the project', + }, + }, + { + question: 'What type of property is it?', + responses: [ + { + value: 'Shop', + }, + ], + metadata: { + autoAnswered: true, + sectionName: 'About the project', + }, + }, + { + question: 'What type of prior approval application is it?', + responses: [ + { + value: 'Convert a commercial building into a home or homes', + }, + ], + metadata: { + autoAnswered: true, + sectionName: 'About the project', + }, + }, + { + question: 'What type or prior approval application is it?', + responses: [ + { + value: 'Convert a commercial building into a home or homes', + }, + ], + metadata: { + autoAnswered: true, + sectionName: 'About the project', + }, + }, + { + question: 'You need to submit a Sunlight and Daylight Report', + responses: [ + { + value: 'Upload a document later', + }, + ], + metadata: { + sectionName: 'About the project', + }, + }, + { + question: 'How many new homes are being build?', + responses: [ + { + value: '1', + }, + ], + metadata: { + sectionName: 'About the project', + }, + }, + { + question: + 'Has any part of the site been identified as contaminated land?', + responses: [ + { + value: 'No', + }, + ], + metadata: { + sectionName: 'About the project', + }, + }, + { + question: 'Was the building previously used for any of these?', + responses: [ + { + value: 'None of these', + }, + ], + metadata: { + sectionName: 'About the project', + }, + }, + { + question: 'Is the building in a flood risk area?', + responses: [ + { + value: 'No', + }, + ], + metadata: { + autoAnswered: true, + sectionName: 'About the project', + }, + }, + { + question: 'You need to submit a Noise Assessment', + responses: [ + { + value: 'Upload a document later', + }, + ], + metadata: { + sectionName: 'About the project', + }, + }, + { + question: 'You need to submit a Transport Assessment', + responses: [ + { + value: 'Upload a document later', + }, + ], + metadata: { + sectionName: 'About the project', + }, + }, + { + question: 'Describe the design and external appearance of the project', + responses: [ + { + value: + 'The existing shop front will be replaced by a new wall with a large painting of some hay stacks on it. Some more information about the appearance of the building. ', + }, + ], + metadata: { + sectionName: 'About the project', + }, + }, + { + question: 'Is the building currently used as a nursery?', + responses: [ + { + value: 'No', + }, + ], + metadata: { + autoAnswered: true, + sectionName: 'About the project', + }, + }, + { + question: 'Is the building currently used for healthcare?', + responses: [ + { + value: 'No', + }, + ], + metadata: { + autoAnswered: true, + sectionName: 'About the project', + }, + }, + { + question: 'Is the property in a conservation area?', + responses: [ + { + value: 'Yes', + }, + ], + metadata: { + autoAnswered: true, + sectionName: 'About the project', + }, + }, + { + question: + 'Does the project involve changing the use of any part of the ground floor?', + responses: [ + { + value: 'Yes', + }, + ], + metadata: { + sectionName: 'About the project', + }, + }, + { + question: + 'Describe the impacts that the change of use will have on the character or sustainability of the conservation area and how these will be mitigated', + responses: [ + { + value: + 'These are the impacts that the change of use will have:\n1\n2\n3\nAnd this is how it will be mitigated:\nA\nB\nC', + }, + ], + metadata: { + sectionName: 'About the project', + }, + }, + { + question: 'Will the building be 18 metres or more in height?', + responses: [ + { + value: 'No', + }, + ], + metadata: { + policyRefs: [ + { + text: 'Fire safety guidance, 2021', + url: 'https://www.gov.uk/guidance/fire-safety-and-high-rise-residential-buildings-from-1-august-2021', + }, + ], + sectionName: 'About the project', + }, + }, + { + question: 'Will the building be 7 or more storeys tall?', + responses: [ + { + value: 'No', + }, + ], + metadata: { + policyRefs: [ + { + text: 'Fire safety guidance, 2021', + url: 'https://www.gov.uk/guidance/fire-safety-and-high-rise-residential-buildings-from-1-august-2021', + }, + ], + sectionName: 'About the project', + }, + }, + { + question: + 'Is the building in an area that is also used for heavy industry, waste management, storage or distribution?', + responses: [ + { + value: 'No', + }, + ], + metadata: { + sectionName: 'About the project', + }, + }, + { + question: 'What type of application is it?', + responses: [ + { + value: 'Apply for prior approval', + }, + ], + metadata: { + autoAnswered: true, + sectionName: 'About you', + }, + }, + { + question: 'Your contact details', + responses: [ + { + value: + "Alan Agent Alan's Property & Fine Art Consultants PLC 098765432109 alanagent@email.org", + }, + ], + metadata: { + sectionName: 'About you', + }, + }, + { + question: 'Are you applying on behalf of someone else?', + responses: [ + { + value: 'Yes', + }, + ], + metadata: { + sectionName: 'About you', + }, + }, + { + question: 'Which of these best describes you?', + responses: [ + { + value: 'Professional agent', + }, + ], + metadata: { + sectionName: 'About you', + }, + }, + { + question: 'Your contact address', + responses: [ + { + value: '12 Agent Avenue, Plantown, PL47TN', + }, + ], + metadata: { + sectionName: 'About you', + }, + }, + { + question: 'Which of these best describes the applicant?', + responses: [ + { + value: 'Private individual', + }, + ], + metadata: { + sectionName: 'About you', + }, + }, + { + question: "Applicant's contact details", + responses: [ + { + value: 'Vincent Van Gogh 012345678901 ouchmyear@email.org', + }, + ], + metadata: { + sectionName: 'About you', + }, + }, + { + question: + "Is the applicant's contact address the same as the property address?", + responses: [ + { + value: 'No', + }, + ], + metadata: { + sectionName: 'About you', + }, + }, + { + question: "Applicant's contact address", + responses: [ + { + value: 'Haywain House, Rotterdam, 12543, The Netherlands', + }, + ], + metadata: { + sectionName: 'About you', + }, + }, + { + question: 'Can a planning officer see the works from public land?', + responses: [ + { + value: "Yes, it's visible from the road or somewhere else", + }, + ], + metadata: { + sectionName: 'About you', + }, + }, + { + question: 'Which of these best describes you?', + responses: [ + { + value: 'Professional agent', + }, + ], + metadata: { + autoAnswered: true, + sectionName: 'About you', + }, + }, + { + question: 'If we need to make a site visit, who should we contact?', + responses: [ + { + value: 'Me, the agent', + }, + ], + metadata: { + sectionName: 'About you', + }, + }, + { + question: 'What type of prior approval application is it?', + responses: [ + { + value: 'Convert a commercial building into a home or homes', + }, + ], + metadata: { + autoAnswered: true, + sectionName: 'Upload drawings', + }, + }, + { + question: 'Is this for submission or information only?', + responses: [ + { + value: 'Submission', + }, + ], + metadata: { + autoAnswered: true, + sectionName: 'Upload drawings', + }, + }, + { + question: 'What type of application is it?', + responses: [ + { + value: 'Prior approval', + }, + ], + metadata: { + autoAnswered: true, + sectionName: 'Check your application', + }, + }, + { + question: 'What type of prior approval application is it?', + responses: [ + { + value: 'Convert a commercial building into a home or homes', + }, + ], + metadata: { + autoAnswered: true, + sectionName: 'Check your application', + }, + }, + { + question: 'Does the project involve any building works?', + responses: [ + { + value: 'Yes', + }, + ], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (Fees for Applications, Deemed Applications, Requests and Site Visits) (England) (Amendment) Regulations 2023', + url: 'https://www.legislation.gov.uk/uksi/2023/1197/made', + }, + ], + sectionName: 'Check your application', + }, + }, + { + question: 'Is the property a home?', + responses: [ + { + value: 'No', + }, + ], + metadata: { + autoAnswered: true, + sectionName: 'Check your application', + }, + }, + { + question: 'What type of changes does the project involve?', + responses: [ + { + value: 'Change use', + }, + ], + metadata: { + autoAnswered: true, + sectionName: 'Check your application', + }, + }, + { + question: 'What type of prior approval application is it?', + responses: [ + { + value: 'Convert a commercial building into a home or homes', + }, + ], + metadata: { + autoAnswered: true, + sectionName: 'Check your application', + }, + }, + { + question: + 'Are you submitting any other planning applications about the same works or changes?', + responses: [ + { + value: 'No', + }, + ], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (Fees for Applications, Deemed Applications, Requests and Site Visits) (England) Regulations 2012, Regulation 14', + url: 'https://www.legislation.gov.uk/uksi/2012/2920/regulation/14', + }, + ], + sectionName: 'Check your application', + }, + }, + { + question: 'Is this application a resubmission?', + responses: [ + { + value: 'No', + }, + ], + metadata: { + policyRefs: [ + { + text: 'The Town and Country Planning (Fees for Applications, Deemed Applications, Requests and Site Visits) (England) Regulations 2012, Regulation 14', + url: 'https://www.legislation.gov.uk/uksi/2012/2920/regulation/14', + }, + ], + sectionName: 'Check your application', + }, + }, + { + question: 'Does the application qualify for a disability exemption?', + responses: [ + { + value: 'No', + }, + ], + metadata: { + autoAnswered: true, + sectionName: 'Check your application', + }, + }, + { + question: 'Does the application qualify for a resubmission exemption?', + responses: [ + { + value: 'No', + }, + ], + metadata: { + autoAnswered: true, + sectionName: 'Check your application', + }, + }, + { + question: + 'Does the application qualify to the same-day-planning-application exemption?', + responses: [ + { + value: 'No', + }, + ], + metadata: { + autoAnswered: true, + policyRefs: [ + { + text: 'The Town and Country Planning (Fees for Applications, Deemed Applications, Requests and Site Visits) (England) Regulations 2012, Regulation 14', + url: 'https://www.legislation.gov.uk/uksi/2012/2920/regulation/14', + }, + ], + sectionName: 'Check your application', + }, + }, + { + question: 'Check for multiple fees?', + responses: [ + { + value: 'No', + }, + ], + metadata: { + autoAnswered: true, + sectionName: 'Check your application', + }, + }, + { + question: 'What type of application is it?', + responses: [ + { + value: 'Prior approval', + }, + ], + metadata: { + autoAnswered: true, + sectionName: 'Check your application', + }, + }, + { + question: 'Which Local Planning authority is it?', + responses: [ + { + value: 'Lambeth', + }, + ], + metadata: { + autoAnswered: true, + sectionName: 'Check your application', + }, + }, + { + question: 'Connections with London Borough of Lambeth', + responses: [ + { + value: 'None of the above apply to me', + }, + ], + metadata: { + sectionName: 'Check your application', + }, + }, + { + question: 'I confirm that:', + responses: [ + { + value: + 'The information contained in this application is truthful, accurate and complete, to the best of my knowledge', + }, + ], + metadata: { + sectionName: 'Check your application', + }, + }, + { + question: 'Connections with London Borough of Lambeth', + responses: [ + { + value: 'None of the above apply to me', + }, + ], + metadata: { + autoAnswered: true, + sectionName: 'Check your application', + }, + }, + { + question: 'I confirm that:', + responses: [ + { + value: + 'The information contained in this application is truthful, accurate and complete, to the best of my knowledge', + }, + ], + metadata: { + autoAnswered: true, + sectionName: 'Check your application', + }, + }, + { + question: 'Which Local Planning authority is it?', + responses: [ + { + value: 'Lambeth', + }, + ], + metadata: { + autoAnswered: true, + sectionName: 'Pay and submit', + }, + }, + { + question: + 'What type of prior approval application is it?application.type', + responses: [ + { + value: 'Convert a commercial building into a home or homes', + }, + ], + metadata: { + autoAnswered: true, + sectionName: 'Pay and submit', + }, + }, + ], + files: [ + { + name: 'https://api.editor.planx.dev/file/private/bpxw8ekr/test%20document.pdf', + type: [ + { + value: 'noiseAssessment', + description: 'Noise assessment', + }, + ], + }, + { + name: 'https://api.editor.planx.dev/file/private/2mrowm3t/test%20document.pdf', + type: [ + { + value: 'usePlan.proposed', + description: 'Use plan - proposed', + }, + { + value: 'sitePlan.proposed', + description: 'Site plan - proposed', + }, + ], + }, + { + name: 'https://api.editor.planx.dev/file/private/eu61v4yk/test%20document.pdf', + type: [ + { + value: 'sitePlan.existing', + description: 'Site plan - existing', + }, + ], + }, + { + name: 'https://api.editor.planx.dev/file/private/fd7o1wnh/test%20document.pdf', + type: [ + { + value: 'sunlightAndDaylightReport', + description: 'Sunlight and daylight report', + }, + ], + }, + ], + metadata: { + id: '86a5ba3e-1a7f-4460-bf46-826c3f982a92', + organisation: 'LBH', + submittedAt: '2024-06-29T12:25:58.777Z', + source: 'PlanX', + service: { + flowId: 'f3cae2c8-9a64-4ce1-8cef-8e6832ad383d', + url: 'https://editor.planx.dev/lambeth/apply-for-prior-approval/published', + files: { + required: [ + { + value: 'sitePlan.proposed', + description: 'Site plan - proposed', + }, + { + value: 'usePlan.proposed', + description: 'Use plan - proposed', + }, + { + value: 'noiseAssessment', + description: 'Noise assessment', + }, + { + value: 'sunlightAndDaylightReport', + description: 'Sunlight and daylight report', + }, + ], + recommended: [ + { + value: 'sitePlan.existing', + description: 'Site plan - existing', + }, + ], + optional: [ + { + value: 'photographs.existing', + description: 'Photographs - existing', + }, + { + value: 'otherDrawing', + description: 'Other - drawing', + }, + { + value: 'otherDocument', + description: 'Other - document', + }, + { + value: 'visualisations', + description: 'Visualisations', + }, + ], + }, + fee: { + calculated: [ + { + policyRefs: [ + { + text: 'The Town and Country Planning (Fees for Applications, Deemed Applications, Requests and Site Visits) (England) (Amendment) Regulations 2023', + url: 'https://www.legislation.gov.uk/uksi/2023/1197/made', + }, + ], + }, + ], + payable: [ + { + description: + '

This application does not qualify for any exemptions or reductions

', + }, + ], + }, + }, + schema: `https://theopensystemslab.github.io/digital-planning-data-schemas/${version}/schema.json`, + }, + }; diff --git a/examples/data/priorApproval/extendUniversity.ts b/examples/digitalPlanningApplication/data/priorApproval/extendUniversity.ts similarity index 99% rename from examples/data/priorApproval/extendUniversity.ts rename to examples/digitalPlanningApplication/data/priorApproval/extendUniversity.ts index dacd79a5..523e0c16 100644 --- a/examples/data/priorApproval/extendUniversity.ts +++ b/examples/digitalPlanningApplication/data/priorApproval/extendUniversity.ts @@ -1,8 +1,8 @@ -import {Schema} from '../../../types/Schema'; +import {DigitalPlanningApplication} from '../../../../types/schemas/digitalPlanningApplication'; const version = process.env['VERSION'] || '@next'; -export const priorApprovalExtendUniversity: Schema = { +export const priorApprovalExtendUniversity: DigitalPlanningApplication = { data: { user: { role: 'applicant', diff --git a/examples/data/priorApproval/largerExtension.ts b/examples/digitalPlanningApplication/data/priorApproval/largerExtension.ts similarity index 99% rename from examples/data/priorApproval/largerExtension.ts rename to examples/digitalPlanningApplication/data/priorApproval/largerExtension.ts index 1d633e2e..d3928e9b 100644 --- a/examples/data/priorApproval/largerExtension.ts +++ b/examples/digitalPlanningApplication/data/priorApproval/largerExtension.ts @@ -1,8 +1,8 @@ -import {Schema} from '../../../types/Schema'; +import {DigitalPlanningApplication} from '../../../../types/schemas/digitalPlanningApplication'; const version = process.env['VERSION'] || '@next'; -export const priorApprovalLargerExtension: Schema = { +export const priorApprovalLargerExtension: DigitalPlanningApplication = { data: { user: { role: 'applicant', diff --git a/examples/data/priorApproval/solarPanels.ts b/examples/digitalPlanningApplication/data/priorApproval/solarPanels.ts similarity index 99% rename from examples/data/priorApproval/solarPanels.ts rename to examples/digitalPlanningApplication/data/priorApproval/solarPanels.ts index 69725869..5b3a38a4 100644 --- a/examples/data/priorApproval/solarPanels.ts +++ b/examples/digitalPlanningApplication/data/priorApproval/solarPanels.ts @@ -1,8 +1,8 @@ -import {Schema} from '../../../types/Schema'; +import {DigitalPlanningApplication} from '../../../../types/schemas/digitalPlanningApplication'; const version = process.env['VERSION'] || '@next'; -export const priorApprovalSolarPanels: Schema = { +export const priorApprovalSolarPanels: DigitalPlanningApplication = { data: { user: { role: 'applicant', diff --git a/examples/landDrainageConsent.json b/examples/digitalPlanningApplication/landDrainageConsent.json similarity index 100% rename from examples/landDrainageConsent.json rename to examples/digitalPlanningApplication/landDrainageConsent.json diff --git a/examples/lawfulDevelopmentCertificate/existing.json b/examples/digitalPlanningApplication/lawfulDevelopmentCertificate/existing.json similarity index 100% rename from examples/lawfulDevelopmentCertificate/existing.json rename to examples/digitalPlanningApplication/lawfulDevelopmentCertificate/existing.json diff --git a/examples/lawfulDevelopmentCertificate/proposed.json b/examples/digitalPlanningApplication/lawfulDevelopmentCertificate/proposed.json similarity index 100% rename from examples/lawfulDevelopmentCertificate/proposed.json rename to examples/digitalPlanningApplication/lawfulDevelopmentCertificate/proposed.json diff --git a/examples/listedBuildingConsent.json b/examples/digitalPlanningApplication/listedBuildingConsent.json similarity index 100% rename from examples/listedBuildingConsent.json rename to examples/digitalPlanningApplication/listedBuildingConsent.json diff --git a/examples/planningPermission/fullHouseholder.json b/examples/digitalPlanningApplication/planningPermission/fullHouseholder.json similarity index 100% rename from examples/planningPermission/fullHouseholder.json rename to examples/digitalPlanningApplication/planningPermission/fullHouseholder.json diff --git a/examples/planningPermission/major.json b/examples/digitalPlanningApplication/planningPermission/major.json similarity index 100% rename from examples/planningPermission/major.json rename to examples/digitalPlanningApplication/planningPermission/major.json diff --git a/examples/planningPermission/minor.json b/examples/digitalPlanningApplication/planningPermission/minor.json similarity index 100% rename from examples/planningPermission/minor.json rename to examples/digitalPlanningApplication/planningPermission/minor.json diff --git a/examples/priorApproval/buildHomes.json b/examples/digitalPlanningApplication/priorApproval/buildHomes.json similarity index 100% rename from examples/priorApproval/buildHomes.json rename to examples/digitalPlanningApplication/priorApproval/buildHomes.json diff --git a/examples/priorApproval/convertCommercialToHome.json b/examples/digitalPlanningApplication/priorApproval/convertCommercialToHome.json similarity index 100% rename from examples/priorApproval/convertCommercialToHome.json rename to examples/digitalPlanningApplication/priorApproval/convertCommercialToHome.json diff --git a/examples/priorApproval/extendUniversity.json b/examples/digitalPlanningApplication/priorApproval/extendUniversity.json similarity index 100% rename from examples/priorApproval/extendUniversity.json rename to examples/digitalPlanningApplication/priorApproval/extendUniversity.json diff --git a/examples/priorApproval/largerExtension.json b/examples/digitalPlanningApplication/priorApproval/largerExtension.json similarity index 100% rename from examples/priorApproval/largerExtension.json rename to examples/digitalPlanningApplication/priorApproval/largerExtension.json diff --git a/examples/priorApproval/solarPanels.json b/examples/digitalPlanningApplication/priorApproval/solarPanels.json similarity index 100% rename from examples/priorApproval/solarPanels.json rename to examples/digitalPlanningApplication/priorApproval/solarPanels.json diff --git a/package.json b/package.json index 340218a3..622ec086 100644 --- a/package.json +++ b/package.json @@ -4,14 +4,13 @@ "description": "Digital Planning Data schemas", "main": "schema/schema.json", "scripts": { - "build": "pnpm build-schema:dist && pnpm build-json-examples", + "build": "pnpm build-schema && pnpm build-json-examples", "build-json-examples": "pnpm ts-node scripts/build-json-examples.ts", - "build-schema:dev": "pnpm ts-json-schema-generator --path 'types/**/*.ts' --out 'schema/schema.json' --type Schema --id @next --no-top-ref", - "build-schema:dist": "pnpm ts-json-schema-generator --path 'types/**/*.ts' --out 'schema/schema.json' --type Schema --id \"${VERSION:-@next}\" --no-top-ref", + "build-schema": "./scripts/build-schema.sh", "lint": "gts lint", "check": "tsc --noEmit", "fix": "gts fix", - "test": "pnpm build-schema:dev && vitest", + "test": "pnpm build-schema && vitest", "prepare": "husky install" }, "keywords": [], diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bf7cf6c0..40bb5de0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: '9.0' +lockfileVersion: '6.0' settings: autoInstallPeers: true @@ -7,387 +7,583 @@ settings: overrides: vite@>=5.0.0 <=5.0.11: '>=5.0.12' -importers: - - .: - dependencies: - ajv: - specifier: ^8.16.0 - version: 8.16.0 - ajv-formats: - specifier: ^2.1.1 - version: 2.1.1(ajv@8.16.0) - ts-json-schema-generator: - specifier: ^2.3.0 - version: 2.3.0 - ts-node: - specifier: ^10.9.2 - version: 10.9.2(@types/node@18.16.1)(typescript@5.5.2) - devDependencies: - '@types/geojson': - specifier: ^7946.0.14 - version: 7946.0.14 - '@types/node': - specifier: 18.16.1 - version: 18.16.1 - gts: - specifier: ^5.3.1 - version: 5.3.1(typescript@5.5.2) - husky: - specifier: ^8.0.0 - version: 8.0.0 - jsonschema: - specifier: ^1.4.1 - version: 1.4.1 - typescript: - specifier: ~5.5.2 - version: 5.5.2 - vitest: - specifier: ^1.6.0 - version: 1.6.0(@types/node@18.16.1) +dependencies: + ajv: + specifier: ^8.16.0 + version: 8.16.0 + ajv-formats: + specifier: ^2.1.1 + version: 2.1.1(ajv@8.16.0) + ts-json-schema-generator: + specifier: ^2.3.0 + version: 2.3.0 + ts-node: + specifier: ^10.9.2 + version: 10.9.2(@types/node@18.16.1)(typescript@5.5.2) + +devDependencies: + '@types/geojson': + specifier: ^7946.0.14 + version: 7946.0.14 + '@types/node': + specifier: 18.16.1 + version: 18.16.1 + gts: + specifier: ^5.3.1 + version: 5.3.1(typescript@5.5.2) + husky: + specifier: ^8.0.0 + version: 8.0.0 + jsonschema: + specifier: ^1.4.1 + version: 1.4.1 + typescript: + specifier: ~5.5.2 + version: 5.5.2 + vitest: + specifier: ^1.6.0 + version: 1.6.0(@types/node@18.16.1) packages: - '@babel/code-frame@7.24.7': + /@babel/code-frame@7.24.7: resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.24.7 + picocolors: 1.0.1 + dev: true - '@babel/helper-validator-identifier@7.24.7': + /@babel/helper-validator-identifier@7.24.7: resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} + dev: true - '@babel/highlight@7.24.7': + /@babel/highlight@7.24.7: resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.24.7 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.1 + dev: true - '@cspotcode/source-map-support@0.8.1': + /@cspotcode/source-map-support@0.8.1: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + dev: false - '@esbuild/aix-ppc64@0.21.5': + /@esbuild/aix-ppc64@0.21.5: resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} engines: {node: '>=12'} cpu: [ppc64] os: [aix] + requiresBuild: true + dev: true + optional: true - '@esbuild/android-arm64@0.21.5': + /@esbuild/android-arm64@0.21.5: resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} engines: {node: '>=12'} cpu: [arm64] os: [android] + requiresBuild: true + dev: true + optional: true - '@esbuild/android-arm@0.21.5': + /@esbuild/android-arm@0.21.5: resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} engines: {node: '>=12'} cpu: [arm] os: [android] + requiresBuild: true + dev: true + optional: true - '@esbuild/android-x64@0.21.5': + /@esbuild/android-x64@0.21.5: resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} engines: {node: '>=12'} cpu: [x64] os: [android] + requiresBuild: true + dev: true + optional: true - '@esbuild/darwin-arm64@0.21.5': + /@esbuild/darwin-arm64@0.21.5: resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] + requiresBuild: true + dev: true + optional: true - '@esbuild/darwin-x64@0.21.5': + /@esbuild/darwin-x64@0.21.5: resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} engines: {node: '>=12'} cpu: [x64] os: [darwin] + requiresBuild: true + dev: true + optional: true - '@esbuild/freebsd-arm64@0.21.5': + /@esbuild/freebsd-arm64@0.21.5: resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] + requiresBuild: true + dev: true + optional: true - '@esbuild/freebsd-x64@0.21.5': + /@esbuild/freebsd-x64@0.21.5: resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-arm64@0.21.5': + /@esbuild/linux-arm64@0.21.5: resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} engines: {node: '>=12'} cpu: [arm64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-arm@0.21.5': + /@esbuild/linux-arm@0.21.5: resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} engines: {node: '>=12'} cpu: [arm] os: [linux] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-ia32@0.21.5': + /@esbuild/linux-ia32@0.21.5: resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} engines: {node: '>=12'} cpu: [ia32] os: [linux] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-loong64@0.21.5': + /@esbuild/linux-loong64@0.21.5: resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} engines: {node: '>=12'} cpu: [loong64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-mips64el@0.21.5': + /@esbuild/linux-mips64el@0.21.5: resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-ppc64@0.21.5': + /@esbuild/linux-ppc64@0.21.5: resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-riscv64@0.21.5': + /@esbuild/linux-riscv64@0.21.5: resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-s390x@0.21.5': + /@esbuild/linux-s390x@0.21.5: resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} engines: {node: '>=12'} cpu: [s390x] os: [linux] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-x64@0.21.5': + /@esbuild/linux-x64@0.21.5: resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} engines: {node: '>=12'} cpu: [x64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@esbuild/netbsd-x64@0.21.5': + /@esbuild/netbsd-x64@0.21.5: resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] + requiresBuild: true + dev: true + optional: true - '@esbuild/openbsd-x64@0.21.5': + /@esbuild/openbsd-x64@0.21.5: resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] + requiresBuild: true + dev: true + optional: true - '@esbuild/sunos-x64@0.21.5': + /@esbuild/sunos-x64@0.21.5: resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] + requiresBuild: true + dev: true + optional: true - '@esbuild/win32-arm64@0.21.5': + /@esbuild/win32-arm64@0.21.5: resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} engines: {node: '>=12'} cpu: [arm64] os: [win32] + requiresBuild: true + dev: true + optional: true - '@esbuild/win32-ia32@0.21.5': + /@esbuild/win32-ia32@0.21.5: resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} engines: {node: '>=12'} cpu: [ia32] os: [win32] + requiresBuild: true + dev: true + optional: true - '@esbuild/win32-x64@0.21.5': + /@esbuild/win32-x64@0.21.5: resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} engines: {node: '>=12'} cpu: [x64] os: [win32] + requiresBuild: true + dev: true + optional: true - '@eslint-community/eslint-utils@4.4.0': + /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.57.0 + eslint-visitor-keys: 3.4.3 + dev: true - '@eslint-community/regexpp@4.10.1': - resolution: {integrity: sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==} + /@eslint-community/regexpp@4.11.0: + resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true - '@eslint/eslintrc@2.1.4': + /@eslint/eslintrc@2.1.4: resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.5 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true - '@eslint/js@8.57.0': + /@eslint/js@8.57.0: resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true - '@humanwhocodes/config-array@0.11.14': + /@humanwhocodes/config-array@0.11.14: resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} deprecated: Use @eslint/config-array instead + dependencies: + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.3.5 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true - '@humanwhocodes/module-importer@1.0.1': + /@humanwhocodes/module-importer@1.0.1: resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} + dev: true - '@humanwhocodes/object-schema@2.0.3': + /@humanwhocodes/object-schema@2.0.3: resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} deprecated: Use @eslint/object-schema instead + dev: true - '@isaacs/cliui@8.0.2': + /@isaacs/cliui@8.0.2: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} + dependencies: + string-width: 5.1.2 + string-width-cjs: /string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: /strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: /wrap-ansi@7.0.0 + dev: false - '@jest/schemas@29.6.3': + /@jest/schemas@29.6.3: resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@sinclair/typebox': 0.27.8 + dev: true - '@jridgewell/resolve-uri@3.1.2': + /@jridgewell/resolve-uri@3.1.2: resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} + dev: false - '@jridgewell/sourcemap-codec@1.4.15': - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + /@jridgewell/sourcemap-codec@1.5.0: + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - '@jridgewell/trace-mapping@0.3.9': + /@jridgewell/trace-mapping@0.3.9: resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + dev: false - '@nodelib/fs.scandir@2.1.5': + /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true - '@nodelib/fs.stat@2.0.5': + /@nodelib/fs.stat@2.0.5: resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} engines: {node: '>= 8'} + dev: true - '@nodelib/fs.walk@1.2.8': + /@nodelib/fs.walk@1.2.8: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + dev: true - '@pkgjs/parseargs@0.11.0': + /@pkgjs/parseargs@0.11.0: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} + requiresBuild: true + dev: false + optional: true - '@pkgr/core@0.1.1': + /@pkgr/core@0.1.1: resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + dev: true - '@rollup/rollup-android-arm-eabi@4.18.0': - resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==} + /@rollup/rollup-android-arm-eabi@4.18.1: + resolution: {integrity: sha512-lncuC4aHicncmbORnx+dUaAgzee9cm/PbIqgWz1PpXuwc+sa1Ct83tnqUDy/GFKleLiN7ZIeytM6KJ4cAn1SxA==} cpu: [arm] os: [android] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-android-arm64@4.18.0': - resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==} + /@rollup/rollup-android-arm64@4.18.1: + resolution: {integrity: sha512-F/tkdw0WSs4ojqz5Ovrw5r9odqzFjb5LIgHdHZG65dFI1lWTWRVy32KDJLKRISHgJvqUeUhdIvy43fX41znyDg==} cpu: [arm64] os: [android] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-darwin-arm64@4.18.0': - resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==} + /@rollup/rollup-darwin-arm64@4.18.1: + resolution: {integrity: sha512-vk+ma8iC1ebje/ahpxpnrfVQJibTMyHdWpOGZ3JpQ7Mgn/3QNHmPq7YwjZbIE7km73dH5M1e6MRRsnEBW7v5CQ==} cpu: [arm64] os: [darwin] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-darwin-x64@4.18.0': - resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==} + /@rollup/rollup-darwin-x64@4.18.1: + resolution: {integrity: sha512-IgpzXKauRe1Tafcej9STjSSuG0Ghu/xGYH+qG6JwsAUxXrnkvNHcq/NL6nz1+jzvWAnQkuAJ4uIwGB48K9OCGA==} cpu: [x64] os: [darwin] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.18.0': - resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==} + /@rollup/rollup-linux-arm-gnueabihf@4.18.1: + resolution: {integrity: sha512-P9bSiAUnSSM7EmyRK+e5wgpqai86QOSv8BwvkGjLwYuOpaeomiZWifEos517CwbG+aZl1T4clSE1YqqH2JRs+g==} cpu: [arm] os: [linux] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-linux-arm-musleabihf@4.18.0': - resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==} + /@rollup/rollup-linux-arm-musleabihf@4.18.1: + resolution: {integrity: sha512-5RnjpACoxtS+aWOI1dURKno11d7krfpGDEn19jI8BuWmSBbUC4ytIADfROM1FZrFhQPSoP+KEa3NlEScznBTyQ==} cpu: [arm] os: [linux] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-linux-arm64-gnu@4.18.0': - resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==} + /@rollup/rollup-linux-arm64-gnu@4.18.1: + resolution: {integrity: sha512-8mwmGD668m8WaGbthrEYZ9CBmPug2QPGWxhJxh/vCgBjro5o96gL04WLlg5BA233OCWLqERy4YUzX3bJGXaJgQ==} cpu: [arm64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-linux-arm64-musl@4.18.0': - resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==} + /@rollup/rollup-linux-arm64-musl@4.18.1: + resolution: {integrity: sha512-dJX9u4r4bqInMGOAQoGYdwDP8lQiisWb9et+T84l2WXk41yEej8v2iGKodmdKimT8cTAYt0jFb+UEBxnPkbXEQ==} cpu: [arm64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': - resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==} + /@rollup/rollup-linux-powerpc64le-gnu@4.18.1: + resolution: {integrity: sha512-V72cXdTl4EI0x6FNmho4D502sy7ed+LuVW6Ym8aI6DRQ9hQZdp5sj0a2usYOlqvFBNKQnLQGwmYnujo2HvjCxQ==} cpu: [ppc64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-linux-riscv64-gnu@4.18.0': - resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==} + /@rollup/rollup-linux-riscv64-gnu@4.18.1: + resolution: {integrity: sha512-f+pJih7sxoKmbjghrM2RkWo2WHUW8UbfxIQiWo5yeCaCM0TveMEuAzKJte4QskBp1TIinpnRcxkquY+4WuY/tg==} cpu: [riscv64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-linux-s390x-gnu@4.18.0': - resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==} + /@rollup/rollup-linux-s390x-gnu@4.18.1: + resolution: {integrity: sha512-qb1hMMT3Fr/Qz1OKovCuUM11MUNLUuHeBC2DPPAWUYYUAOFWaxInaTwTQmc7Fl5La7DShTEpmYwgdt2hG+4TEg==} cpu: [s390x] os: [linux] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-linux-x64-gnu@4.18.0': - resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==} + /@rollup/rollup-linux-x64-gnu@4.18.1: + resolution: {integrity: sha512-7O5u/p6oKUFYjRbZkL2FLbwsyoJAjyeXHCU3O4ndvzg2OFO2GinFPSJFGbiwFDaCFc+k7gs9CF243PwdPQFh5g==} cpu: [x64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-linux-x64-musl@4.18.0': - resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==} + /@rollup/rollup-linux-x64-musl@4.18.1: + resolution: {integrity: sha512-pDLkYITdYrH/9Cv/Vlj8HppDuLMDUBmgsM0+N+xLtFd18aXgM9Nyqupb/Uw+HeidhfYg2lD6CXvz6CjoVOaKjQ==} cpu: [x64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-win32-arm64-msvc@4.18.0': - resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==} + /@rollup/rollup-win32-arm64-msvc@4.18.1: + resolution: {integrity: sha512-W2ZNI323O/8pJdBGil1oCauuCzmVd9lDmWBBqxYZcOqWD6aWqJtVBQ1dFrF4dYpZPks6F+xCZHfzG5hYlSHZ6g==} cpu: [arm64] os: [win32] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-win32-ia32-msvc@4.18.0': - resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==} + /@rollup/rollup-win32-ia32-msvc@4.18.1: + resolution: {integrity: sha512-ELfEX1/+eGZYMaCIbK4jqLxO1gyTSOIlZr6pbC4SRYFaSIDVKOnZNMdoZ+ON0mrFDp4+H5MhwNC1H/AhE3zQLg==} cpu: [ia32] os: [win32] + requiresBuild: true + dev: true + optional: true - '@rollup/rollup-win32-x64-msvc@4.18.0': - resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==} + /@rollup/rollup-win32-x64-msvc@4.18.1: + resolution: {integrity: sha512-yjk2MAkQmoaPYCSu35RLJ62+dz358nE83VfTePJRp8CG7aMg25mEJYpXFiD+NcevhX8LxD5OP5tktPXnXN7GDw==} cpu: [x64] os: [win32] + requiresBuild: true + dev: true + optional: true - '@sinclair/typebox@0.27.8': + /@sinclair/typebox@0.27.8: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + dev: true - '@tsconfig/node10@1.0.11': + /@tsconfig/node10@1.0.11: resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} + dev: false - '@tsconfig/node12@1.0.11': + /@tsconfig/node12@1.0.11: resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + dev: false - '@tsconfig/node14@1.0.3': + /@tsconfig/node14@1.0.3: resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + dev: false - '@tsconfig/node16@1.0.4': + /@tsconfig/node16@1.0.4: resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + dev: false - '@types/estree@1.0.5': + /@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + dev: true - '@types/geojson@7946.0.14': + /@types/geojson@7946.0.14: resolution: {integrity: sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg==} + dev: true - '@types/json-schema@7.0.15': + /@types/json-schema@7.0.15: resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/minimist@1.2.5': + /@types/minimist@1.2.5: resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} + dev: true - '@types/node@18.16.1': + /@types/node@18.16.1: resolution: {integrity: sha512-DZxSZWXxFfOlx7k7Rv4LAyiMroaxa3Ly/7OOzZO8cBNho0YzAi4qlbrx8W27JGqG57IgR/6J7r+nOJWw6kcvZA==} - '@types/normalize-package-data@2.4.4': + /@types/normalize-package-data@2.4.4: resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + dev: true - '@types/semver@7.5.8': + /@types/semver@7.5.8: resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + dev: true - '@typescript-eslint/eslint-plugin@5.62.0': + /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.5.2): resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -397,8 +593,25 @@ packages: peerDependenciesMeta: typescript: optional: true + dependencies: + '@eslint-community/regexpp': 4.11.0 + '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.5.2) + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/type-utils': 5.62.0(eslint@8.57.0)(typescript@5.5.2) + '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.5.2) + debug: 4.3.5 + eslint: 8.57.0 + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare-lite: 1.4.0 + semver: 7.6.2 + tsutils: 3.21.0(typescript@5.5.2) + typescript: 5.5.2 + transitivePeerDependencies: + - supports-color + dev: true - '@typescript-eslint/parser@5.62.0': + /@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.2): resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -407,12 +620,26 @@ packages: peerDependenciesMeta: typescript: optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.5.2) + debug: 4.3.5 + eslint: 8.57.0 + typescript: 5.5.2 + transitivePeerDependencies: + - supports-color + dev: true - '@typescript-eslint/scope-manager@5.62.0': + /@typescript-eslint/scope-manager@5.62.0: resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + dev: true - '@typescript-eslint/type-utils@5.62.0': + /@typescript-eslint/type-utils@5.62.0(eslint@8.57.0)(typescript@5.5.2): resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -421,12 +648,23 @@ packages: peerDependenciesMeta: typescript: optional: true + dependencies: + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.5.2) + '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.5.2) + debug: 4.3.5 + eslint: 8.57.0 + tsutils: 3.21.0(typescript@5.5.2) + typescript: 5.5.2 + transitivePeerDependencies: + - supports-color + dev: true - '@typescript-eslint/types@5.62.0': + /@typescript-eslint/types@5.62.0: resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true - '@typescript-eslint/typescript-estree@5.62.0': + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.5.2): resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -434,197 +672,349 @@ packages: peerDependenciesMeta: typescript: optional: true + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + debug: 4.3.5 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.6.2 + tsutils: 3.21.0(typescript@5.5.2) + typescript: 5.5.2 + transitivePeerDependencies: + - supports-color + dev: true - '@typescript-eslint/utils@5.62.0': + /@typescript-eslint/utils@5.62.0(eslint@8.57.0)(typescript@5.5.2): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.8 + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.5.2) + eslint: 8.57.0 + eslint-scope: 5.1.1 + semver: 7.6.2 + transitivePeerDependencies: + - supports-color + - typescript + dev: true - '@typescript-eslint/visitor-keys@5.62.0': + /@typescript-eslint/visitor-keys@5.62.0: resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.62.0 + eslint-visitor-keys: 3.4.3 + dev: true - '@ungap/structured-clone@1.2.0': + /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + dev: true - '@vitest/expect@1.6.0': + /@vitest/expect@1.6.0: resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==} + dependencies: + '@vitest/spy': 1.6.0 + '@vitest/utils': 1.6.0 + chai: 4.4.1 + dev: true - '@vitest/runner@1.6.0': + /@vitest/runner@1.6.0: resolution: {integrity: sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==} + dependencies: + '@vitest/utils': 1.6.0 + p-limit: 5.0.0 + pathe: 1.1.2 + dev: true - '@vitest/snapshot@1.6.0': + /@vitest/snapshot@1.6.0: resolution: {integrity: sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==} + dependencies: + magic-string: 0.30.10 + pathe: 1.1.2 + pretty-format: 29.7.0 + dev: true - '@vitest/spy@1.6.0': + /@vitest/spy@1.6.0: resolution: {integrity: sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==} + dependencies: + tinyspy: 2.2.1 + dev: true - '@vitest/utils@1.6.0': + /@vitest/utils@1.6.0: resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==} + dependencies: + diff-sequences: 29.6.3 + estree-walker: 3.0.3 + loupe: 2.3.7 + pretty-format: 29.7.0 + dev: true - acorn-jsx@5.3.2: + /acorn-jsx@5.3.2(acorn@8.12.1): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.12.1 + dev: true - acorn-walk@8.3.3: + /acorn-walk@8.3.3: resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} engines: {node: '>=0.4.0'} + dependencies: + acorn: 8.12.1 - acorn@8.12.0: - resolution: {integrity: sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==} + /acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} engines: {node: '>=0.4.0'} hasBin: true - ajv-formats@2.1.1: + /ajv-formats@2.1.1(ajv@8.16.0): resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} peerDependencies: ajv: ^8.0.0 peerDependenciesMeta: ajv: optional: true + dependencies: + ajv: 8.16.0 + dev: false - ajv@6.12.6: + /ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true - ajv@8.16.0: + /ajv@8.16.0: resolution: {integrity: sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: false - ansi-escapes@4.3.2: + /ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} + dependencies: + type-fest: 0.21.3 + dev: true - ansi-regex@5.0.1: + /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.0.1: + /ansi-regex@6.0.1: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} + dev: false - ansi-styles@3.2.1: + /ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: true - ansi-styles@4.3.0: + /ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 - ansi-styles@5.2.0: + /ansi-styles@5.2.0: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} engines: {node: '>=10'} + dev: true - ansi-styles@6.2.1: + /ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} + dev: false - arg@4.1.3: + /arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + dev: false - argparse@2.0.1: + /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true - array-union@2.1.0: + /array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} + dev: true - arrify@1.0.1: + /arrify@1.0.1: resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} engines: {node: '>=0.10.0'} + dev: true - assertion-error@1.1.0: + /assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + dev: true - balanced-match@1.0.2: + /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - brace-expansion@1.1.11: + /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true - brace-expansion@2.0.1: + /brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + dev: false - braces@3.0.3: + /braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} + dependencies: + fill-range: 7.1.1 + dev: true - builtins@5.1.0: + /builtins@5.1.0: resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} + dependencies: + semver: 7.6.2 + dev: true - cac@6.7.14: + /cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} + dev: true - callsites@3.1.0: + /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} + dev: true - camelcase-keys@6.2.2: + /camelcase-keys@6.2.2: resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + map-obj: 4.3.0 + quick-lru: 4.0.1 + dev: true - camelcase@5.3.1: + /camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} + dev: true - chai@4.4.1: + /chai@4.4.1: resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} engines: {node: '>=4'} + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.3 + deep-eql: 4.1.4 + get-func-name: 2.0.2 + loupe: 2.3.7 + pathval: 1.1.1 + type-detect: 4.0.8 + dev: true - chalk@2.4.2: + /chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: true - chalk@4.1.2: + /chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true - chardet@0.7.0: + /chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + dev: true - check-error@1.0.3: + /check-error@1.0.3: resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + dependencies: + get-func-name: 2.0.2 + dev: true - cli-cursor@3.1.0: + /cli-cursor@3.1.0: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} + dependencies: + restore-cursor: 3.1.0 + dev: true - cli-width@3.0.0: + /cli-width@3.0.0: resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} engines: {node: '>= 10'} + dev: true - color-convert@1.9.3: + /color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + dev: true - color-convert@2.0.1: + /color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 - color-name@1.1.3: + /color-name@1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + dev: true - color-name@1.1.4: + /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - commander@12.1.0: + /commander@12.1.0: resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} engines: {node: '>=18'} + dev: false - concat-map@0.0.1: + /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: true - confbox@0.1.7: + /confbox@0.1.7: resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} + dev: true - create-require@1.1.1: + /create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + dev: false - cross-spawn@7.0.3: + /cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 - debug@4.3.5: + /debug@4.3.5: resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} engines: {node: '>=6.0'} peerDependencies: @@ -632,1618 +1022,80 @@ packages: peerDependenciesMeta: supports-color: optional: true + dependencies: + ms: 2.1.2 + dev: true - decamelize-keys@1.1.1: + /decamelize-keys@1.1.1: resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} engines: {node: '>=0.10.0'} + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + dev: true - decamelize@1.2.0: + /decamelize@1.2.0: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} + dev: true - deep-eql@4.1.4: + /deep-eql@4.1.4: resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} engines: {node: '>=6'} + dependencies: + type-detect: 4.0.8 + dev: true - deep-is@0.1.4: + /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true - diff-sequences@29.6.3: + /diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true - diff@4.0.2: + /diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} + dev: false - dir-glob@3.0.1: + /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true - doctrine@3.0.0: + /doctrine@3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: true - eastasianwidth@0.2.0: + /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: false - emoji-regex@8.0.0: + /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - emoji-regex@9.2.2: + /emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: false - error-ex@1.3.2: + /error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: true - esbuild@0.21.5: + /esbuild@0.21.5: resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} engines: {node: '>=12'} hasBin: true - - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - eslint-config-prettier@9.1.0: - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - - eslint-plugin-es@4.1.0: - resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} - engines: {node: '>=8.10.0'} - peerDependencies: - eslint: '>=4.19.1' - - eslint-plugin-n@15.7.0: - resolution: {integrity: sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==} - engines: {node: '>=12.22.0'} - peerDependencies: - eslint: '>=7.0.0' - - eslint-plugin-prettier@5.1.3: - resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - '@types/eslint': '>=8.0.0' - eslint: '>=8.0.0' - eslint-config-prettier: '*' - prettier: '>=3.0.0' - peerDependenciesMeta: - '@types/eslint': - optional: true - eslint-config-prettier: - optional: true - - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-utils@2.1.0: - resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} - engines: {node: '>=6'} - - eslint-utils@3.0.0: - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' - - eslint-visitor-keys@1.3.0: - resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} - engines: {node: '>=4'} - - eslint-visitor-keys@2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} - engines: {node: '>=10'} - - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true - - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - - estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - - estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - - execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} - - external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} - - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - - fast-diff@1.3.0: - resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} - - fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} - - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - - fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} - - figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} - - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - - find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} - - flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - - foreground-child@3.2.1: - resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} - engines: {node: '>=14'} - - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - get-func-name@2.0.2: - resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - - get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - - glob@10.4.2: - resolution: {integrity: sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==} - engines: {node: '>=16 || 14 >=14.18'} - hasBin: true - - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported - - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - - gts@5.3.1: - resolution: {integrity: sha512-P9F+krJkGOkisUX+P9pfUas1Xy+U+CxBFZT62uInkJbgvZpnW1ug/pIcMJJmLOthMq1J88lpQUGhXDC9UTvVcw==} - engines: {node: '>=14'} - hasBin: true - peerDependencies: - typescript: '>=3' - - hard-rejection@2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} - engines: {node: '>=6'} - - has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - - hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - - hosted-git-info@4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} - engines: {node: '>=10'} - - human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - - human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} - - husky@8.0.0: - resolution: {integrity: sha512-4qbE/5dzNDNxFEkX9MNRPKl5+omTXQzdILCUWiqG/lWIAioiM5vln265/l6I2Zx8gpW8l1ukZwGQeCFbBZ6+6w==} - engines: {node: '>=14'} - hasBin: true - - iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - - ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} - engines: {node: '>= 4'} - - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} - - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} - - inflight@1.0.6: - resolution: {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. - - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - inquirer@7.3.3: - resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==} - engines: {node: '>=8.0.0'} - - is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - - is-core-module@2.14.0: - resolution: {integrity: sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==} - engines: {node: '>= 0.4'} - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - - is-plain-obj@1.1.0: - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} - engines: {node: '>=0.10.0'} - - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - - is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - jackspeak@3.4.0: - resolution: {integrity: sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==} - engines: {node: '>=14'} - - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - js-tokens@9.0.0: - resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} - - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - - json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - - json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - - jsonschema@1.4.1: - resolution: {integrity: sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==} - - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - - kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} - - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - - local-pkg@0.5.0: - resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} - engines: {node: '>=14'} - - locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - - loupe@2.3.7: - resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} - - lru-cache@10.2.2: - resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} - engines: {node: 14 || >=16.14} - - lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - - magic-string@0.30.10: - resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} - - make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - - map-obj@1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} - engines: {node: '>=0.10.0'} - - map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} - - meow@9.0.0: - resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==} - engines: {node: '>=10'} - - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - micromatch@4.0.7: - resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} - engines: {node: '>=8.6'} - - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - - mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} - - min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - - minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} - engines: {node: '>=16 || 14 >=14.17'} - - minimist-options@4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} - engines: {node: '>= 6'} - - minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} - engines: {node: '>=16 || 14 >=14.17'} - - mlly@1.7.1: - resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} - - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - - mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - - nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - natural-compare-lite@1.4.0: - resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} - - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - - ncp@2.0.0: - resolution: {integrity: sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==} - hasBin: true - - normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} - - normalize-package-data@3.0.3: - resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} - engines: {node: '>=10'} - - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - - npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - - npm-run-path@5.3.0: - resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - - onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} - - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} - - os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} - - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - - p-limit@5.0.0: - resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} - engines: {node: '>=18'} - - p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - - package-json-from-dist@1.0.0: - resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} - - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - - parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - - path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} - - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - - pathe@1.1.2: - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - - pathval@1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} - - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - pkg-types@1.1.1: - resolution: {integrity: sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==} - - postcss@8.4.38: - resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} - engines: {node: ^10 || ^12 || >=14} - - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - - prettier-linter-helpers@1.0.0: - resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} - engines: {node: '>=6.0.0'} - - prettier@3.2.5: - resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} - engines: {node: '>=14'} - hasBin: true - - pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - quick-lru@4.0.1: - resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} - engines: {node: '>=8'} - - react-is@18.3.1: - resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - - read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} - - read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} - - redent@3.0.0: - resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} - engines: {node: '>=8'} - - regexpp@3.2.0: - resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} - engines: {node: '>=8'} - - require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - - resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - - restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - - rollup@4.18.0: - resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - run-async@2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} - engines: {node: '>=0.12.0'} - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - - rxjs@6.6.7: - resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} - engines: {npm: '>=2.0.0'} - - safe-stable-stringify@2.4.3: - resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} - engines: {node: '>=10'} - - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - - semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true - - semver@7.6.2: - resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} - engines: {node: '>=10'} - hasBin: true - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - siginfo@2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - - spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - - spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} - - spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - - spdx-license-ids@3.0.18: - resolution: {integrity: sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==} - - stackback@0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - - std-env@3.7.0: - resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} - - strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - - strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - - strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} - - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - - strip-literal@2.1.0: - resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} - - supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - synckit@0.8.8: - resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} - engines: {node: ^14.18.0 || >=16.0.0} - - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - - through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - - tinybench@2.8.0: - resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} - - tinypool@0.8.4: - resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} - engines: {node: '>=14.0.0'} - - tinyspy@2.2.1: - resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} - engines: {node: '>=14.0.0'} - - tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - trim-newlines@3.0.1: - resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} - engines: {node: '>=8'} - - ts-json-schema-generator@2.3.0: - resolution: {integrity: sha512-t4lBQAwZc0sOJq9LJt3NgbznIcslVnm0JeEMFq8qIRklpMRY8jlYD0YmnRWbqBKANxkby91P1XanSSlSOFpUmg==} - engines: {node: '>=18.0.0'} - hasBin: true - - ts-node@10.9.2: - resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} - hasBin: true - 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 - - tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - - tslib@2.6.3: - resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} - - tsutils@3.21.0: - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - - type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - - type-fest@0.18.1: - resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} - engines: {node: '>=10'} - - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - - type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - - type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} - - type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} - - typescript@5.4.5: - resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} - engines: {node: '>=14.17'} - hasBin: true - - typescript@5.5.2: - resolution: {integrity: sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==} - engines: {node: '>=14.17'} - hasBin: true - - ufo@1.5.3: - resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} - - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - - v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - - validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - - vite-node@1.6.0: - resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - - vite@5.3.2: - resolution: {integrity: sha512-6lA7OBHBlXUxiJxbO5aAY2fsHHzDr1q7DvXYnyZycRs2Dz+dXBWuhpWHvmljTRTpQC2uvGmUFFkSHF2vGo90MA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - - vitest@1.6.0: - resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 1.6.0 - '@vitest/ui': 1.6.0 - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@types/node': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - why-is-node-running@2.2.2: - resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} - engines: {node: '>=8'} - hasBin: true - - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - write-file-atomic@4.0.2: - resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - - yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - - yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} - - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - - yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} - engines: {node: '>=12.20'} - -snapshots: - - '@babel/code-frame@7.24.7': - dependencies: - '@babel/highlight': 7.24.7 - picocolors: 1.0.1 - - '@babel/helper-validator-identifier@7.24.7': {} - - '@babel/highlight@7.24.7': - dependencies: - '@babel/helper-validator-identifier': 7.24.7 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.0.1 - - '@cspotcode/source-map-support@0.8.1': - dependencies: - '@jridgewell/trace-mapping': 0.3.9 - - '@esbuild/aix-ppc64@0.21.5': - optional: true - - '@esbuild/android-arm64@0.21.5': - optional: true - - '@esbuild/android-arm@0.21.5': - optional: true - - '@esbuild/android-x64@0.21.5': - optional: true - - '@esbuild/darwin-arm64@0.21.5': - optional: true - - '@esbuild/darwin-x64@0.21.5': - optional: true - - '@esbuild/freebsd-arm64@0.21.5': - optional: true - - '@esbuild/freebsd-x64@0.21.5': - optional: true - - '@esbuild/linux-arm64@0.21.5': - optional: true - - '@esbuild/linux-arm@0.21.5': - optional: true - - '@esbuild/linux-ia32@0.21.5': - optional: true - - '@esbuild/linux-loong64@0.21.5': - optional: true - - '@esbuild/linux-mips64el@0.21.5': - optional: true - - '@esbuild/linux-ppc64@0.21.5': - optional: true - - '@esbuild/linux-riscv64@0.21.5': - optional: true - - '@esbuild/linux-s390x@0.21.5': - optional: true - - '@esbuild/linux-x64@0.21.5': - optional: true - - '@esbuild/netbsd-x64@0.21.5': - optional: true - - '@esbuild/openbsd-x64@0.21.5': - optional: true - - '@esbuild/sunos-x64@0.21.5': - optional: true - - '@esbuild/win32-arm64@0.21.5': - optional: true - - '@esbuild/win32-ia32@0.21.5': - optional: true - - '@esbuild/win32-x64@0.21.5': - optional: true - - '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': - dependencies: - eslint: 8.57.0 - eslint-visitor-keys: 3.4.3 - - '@eslint-community/regexpp@4.10.1': {} - - '@eslint/eslintrc@2.1.4': - dependencies: - ajv: 6.12.6 - debug: 4.3.5 - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.1 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - '@eslint/js@8.57.0': {} - - '@humanwhocodes/config-array@0.11.14': - dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.5 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - '@humanwhocodes/module-importer@1.0.1': {} - - '@humanwhocodes/object-schema@2.0.3': {} - - '@isaacs/cliui@8.0.2': - dependencies: - string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.0 - strip-ansi-cjs: strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 - - '@jest/schemas@29.6.3': - dependencies: - '@sinclair/typebox': 0.27.8 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/sourcemap-codec@1.4.15': {} - - '@jridgewell/trace-mapping@0.3.9': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 - - '@pkgjs/parseargs@0.11.0': - optional: true - - '@pkgr/core@0.1.1': {} - - '@rollup/rollup-android-arm-eabi@4.18.0': - optional: true - - '@rollup/rollup-android-arm64@4.18.0': - optional: true - - '@rollup/rollup-darwin-arm64@4.18.0': - optional: true - - '@rollup/rollup-darwin-x64@4.18.0': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.18.0': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.18.0': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.18.0': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.18.0': - optional: true - - '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.18.0': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.18.0': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.18.0': - optional: true - - '@rollup/rollup-linux-x64-musl@4.18.0': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.18.0': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.18.0': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.18.0': - optional: true - - '@sinclair/typebox@0.27.8': {} - - '@tsconfig/node10@1.0.11': {} - - '@tsconfig/node12@1.0.11': {} - - '@tsconfig/node14@1.0.3': {} - - '@tsconfig/node16@1.0.4': {} - - '@types/estree@1.0.5': {} - - '@types/geojson@7946.0.14': {} - - '@types/json-schema@7.0.15': {} - - '@types/minimist@1.2.5': {} - - '@types/node@18.16.1': {} - - '@types/normalize-package-data@2.4.4': {} - - '@types/semver@7.5.8': {} - - '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2)': - dependencies: - '@eslint-community/regexpp': 4.10.1 - '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.5.2) - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/type-utils': 5.62.0(eslint@8.57.0)(typescript@5.5.2) - '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.5.2) - debug: 4.3.5 - eslint: 8.57.0 - graphemer: 1.4.0 - ignore: 5.3.1 - natural-compare-lite: 1.4.0 - semver: 7.6.2 - tsutils: 3.21.0(typescript@5.5.2) - optionalDependencies: - typescript: 5.5.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.2)': - dependencies: - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.5.2) - debug: 4.3.5 - eslint: 8.57.0 - optionalDependencies: - typescript: 5.5.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@5.62.0': - dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 - - '@typescript-eslint/type-utils@5.62.0(eslint@8.57.0)(typescript@5.5.2)': - dependencies: - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.5.2) - '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.5.2) - debug: 4.3.5 - eslint: 8.57.0 - tsutils: 3.21.0(typescript@5.5.2) - optionalDependencies: - typescript: 5.5.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@5.62.0': {} - - '@typescript-eslint/typescript-estree@5.62.0(typescript@5.5.2)': - dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.5 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.6.2 - tsutils: 3.21.0(typescript@5.5.2) - optionalDependencies: - typescript: 5.5.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@5.62.0(eslint@8.57.0)(typescript@5.5.2)': - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.5.2) - eslint: 8.57.0 - eslint-scope: 5.1.1 - semver: 7.6.2 - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/visitor-keys@5.62.0': - dependencies: - '@typescript-eslint/types': 5.62.0 - eslint-visitor-keys: 3.4.3 - - '@ungap/structured-clone@1.2.0': {} - - '@vitest/expect@1.6.0': - dependencies: - '@vitest/spy': 1.6.0 - '@vitest/utils': 1.6.0 - chai: 4.4.1 - - '@vitest/runner@1.6.0': - dependencies: - '@vitest/utils': 1.6.0 - p-limit: 5.0.0 - pathe: 1.1.2 - - '@vitest/snapshot@1.6.0': - dependencies: - magic-string: 0.30.10 - pathe: 1.1.2 - pretty-format: 29.7.0 - - '@vitest/spy@1.6.0': - dependencies: - tinyspy: 2.2.1 - - '@vitest/utils@1.6.0': - dependencies: - diff-sequences: 29.6.3 - estree-walker: 3.0.3 - loupe: 2.3.7 - pretty-format: 29.7.0 - - acorn-jsx@5.3.2(acorn@8.12.0): - dependencies: - acorn: 8.12.0 - - acorn-walk@8.3.3: - dependencies: - acorn: 8.12.0 - - acorn@8.12.0: {} - - ajv-formats@2.1.1(ajv@8.16.0): - optionalDependencies: - ajv: 8.16.0 - - ajv@6.12.6: - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - - ajv@8.16.0: - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - - ansi-escapes@4.3.2: - dependencies: - type-fest: 0.21.3 - - ansi-regex@5.0.1: {} - - ansi-regex@6.0.1: {} - - ansi-styles@3.2.1: - dependencies: - color-convert: 1.9.3 - - ansi-styles@4.3.0: - dependencies: - color-convert: 2.0.1 - - ansi-styles@5.2.0: {} - - ansi-styles@6.2.1: {} - - arg@4.1.3: {} - - argparse@2.0.1: {} - - array-union@2.1.0: {} - - arrify@1.0.1: {} - - assertion-error@1.1.0: {} - - balanced-match@1.0.2: {} - - brace-expansion@1.1.11: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - brace-expansion@2.0.1: - dependencies: - balanced-match: 1.0.2 - - braces@3.0.3: - dependencies: - fill-range: 7.1.1 - - builtins@5.1.0: - dependencies: - semver: 7.6.2 - - cac@6.7.14: {} - - callsites@3.1.0: {} - - camelcase-keys@6.2.2: - dependencies: - camelcase: 5.3.1 - map-obj: 4.3.0 - quick-lru: 4.0.1 - - camelcase@5.3.1: {} - - chai@4.4.1: - dependencies: - assertion-error: 1.1.0 - check-error: 1.0.3 - deep-eql: 4.1.4 - get-func-name: 2.0.2 - loupe: 2.3.7 - pathval: 1.1.1 - type-detect: 4.0.8 - - chalk@2.4.2: - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - - chalk@4.1.2: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - chardet@0.7.0: {} - - check-error@1.0.3: - dependencies: - get-func-name: 2.0.2 - - cli-cursor@3.1.0: - dependencies: - restore-cursor: 3.1.0 - - cli-width@3.0.0: {} - - color-convert@1.9.3: - dependencies: - color-name: 1.1.3 - - color-convert@2.0.1: - dependencies: - color-name: 1.1.4 - - color-name@1.1.3: {} - - color-name@1.1.4: {} - - commander@12.1.0: {} - - concat-map@0.0.1: {} - - confbox@0.1.7: {} - - create-require@1.1.1: {} - - cross-spawn@7.0.3: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - debug@4.3.5: - dependencies: - ms: 2.1.2 - - decamelize-keys@1.1.1: - dependencies: - decamelize: 1.2.0 - map-obj: 1.0.1 - - decamelize@1.2.0: {} - - deep-eql@4.1.4: - dependencies: - type-detect: 4.0.8 - - deep-is@0.1.4: {} - - diff-sequences@29.6.3: {} - - diff@4.0.2: {} - - dir-glob@3.0.1: - dependencies: - path-type: 4.0.0 - - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - - eastasianwidth@0.2.0: {} - - emoji-regex@8.0.0: {} - - emoji-regex@9.2.2: {} - - error-ex@1.3.2: - dependencies: - is-arrayish: 0.2.1 - - esbuild@0.21.5: + requiresBuild: true optionalDependencies: '@esbuild/aix-ppc64': 0.21.5 '@esbuild/android-arm': 0.21.5 @@ -2268,22 +1120,43 @@ snapshots: '@esbuild/win32-arm64': 0.21.5 '@esbuild/win32-ia32': 0.21.5 '@esbuild/win32-x64': 0.21.5 + dev: true - escape-string-regexp@1.0.5: {} + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + dev: true - escape-string-regexp@4.0.0: {} + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: true - eslint-config-prettier@9.1.0(eslint@8.57.0): + /eslint-config-prettier@9.1.0(eslint@8.57.0): + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' dependencies: eslint: 8.57.0 + dev: true - eslint-plugin-es@4.1.0(eslint@8.57.0): + /eslint-plugin-es@4.1.0(eslint@8.57.0): + resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} + engines: {node: '>=8.10.0'} + peerDependencies: + eslint: '>=4.19.1' dependencies: eslint: 8.57.0 eslint-utils: 2.1.0 regexpp: 3.2.0 + dev: true - eslint-plugin-n@15.7.0(eslint@8.57.0): + /eslint-plugin-n@15.7.0(eslint@8.57.0): + resolution: {integrity: sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==} + engines: {node: '>=12.22.0'} + peerDependencies: + eslint: '>=7.0.0' dependencies: builtins: 5.1.0 eslint: 8.57.0 @@ -2294,45 +1167,84 @@ snapshots: minimatch: 3.1.2 resolve: 1.22.8 semver: 7.6.2 + dev: true - eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.2.5): + /eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5): + resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '*' + prettier: '>=3.0.0' + peerDependenciesMeta: + '@types/eslint': + optional: true + eslint-config-prettier: + optional: true dependencies: eslint: 8.57.0 + eslint-config-prettier: 9.1.0(eslint@8.57.0) prettier: 3.2.5 prettier-linter-helpers: 1.0.0 synckit: 0.8.8 - optionalDependencies: - eslint-config-prettier: 9.1.0(eslint@8.57.0) + dev: true - eslint-scope@5.1.1: + /eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} dependencies: esrecurse: 4.3.0 estraverse: 4.3.0 + dev: true - eslint-scope@7.2.2: + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 + dev: true - eslint-utils@2.1.0: + /eslint-utils@2.1.0: + resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} + engines: {node: '>=6'} dependencies: eslint-visitor-keys: 1.3.0 + dev: true - eslint-utils@3.0.0(eslint@8.57.0): + /eslint-utils@3.0.0(eslint@8.57.0): + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' dependencies: eslint: 8.57.0 eslint-visitor-keys: 2.1.0 + dev: true - eslint-visitor-keys@1.3.0: {} + /eslint-visitor-keys@1.3.0: + resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} + engines: {node: '>=4'} + dev: true - eslint-visitor-keys@2.1.0: {} + /eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + dev: true - eslint-visitor-keys@3.4.3: {} + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true - eslint@8.57.0: + /eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@eslint-community/regexpp': 4.10.1 + '@eslint-community/regexpp': 4.11.0 '@eslint/eslintrc': 2.1.4 '@eslint/js': 8.57.0 '@humanwhocodes/config-array': 0.11.14 @@ -2348,7 +1260,7 @@ snapshots: eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 - esquery: 1.5.0 + esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 6.0.1 @@ -2371,32 +1283,55 @@ snapshots: text-table: 0.2.0 transitivePeerDependencies: - supports-color + dev: true - espree@9.6.1: + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.12.0 - acorn-jsx: 5.3.2(acorn@8.12.0) + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) eslint-visitor-keys: 3.4.3 + dev: true - esquery@1.5.0: + /esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} dependencies: estraverse: 5.3.0 + dev: true - esrecurse@4.3.0: + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} dependencies: estraverse: 5.3.0 + dev: true - estraverse@4.3.0: {} + /estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + dev: true - estraverse@5.3.0: {} + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: true - estree-walker@3.0.3: + /estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} dependencies: '@types/estree': 1.0.5 + dev: true - esutils@2.0.3: {} + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true - execa@5.1.1: + /execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} dependencies: cross-spawn: 7.0.3 get-stream: 6.0.1 @@ -2407,8 +1342,11 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 strip-final-newline: 2.0.0 + dev: true - execa@8.0.1: + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} dependencies: cross-spawn: 7.0.3 get-stream: 8.0.1 @@ -2419,99 +1357,166 @@ snapshots: onetime: 6.0.0 signal-exit: 4.1.0 strip-final-newline: 3.0.0 + dev: true - external-editor@3.1.0: + /external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} dependencies: chardet: 0.7.0 iconv-lite: 0.4.24 tmp: 0.0.33 + dev: true - fast-deep-equal@3.1.3: {} + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - fast-diff@1.3.0: {} + /fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + dev: true - fast-glob@3.3.2: + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.7 + dev: true - fast-json-stable-stringify@2.1.0: {} + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true - fast-levenshtein@2.0.6: {} + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: true - fastq@1.17.1: + /fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} dependencies: reusify: 1.0.4 + dev: true - figures@3.2.0: + /figures@3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} dependencies: escape-string-regexp: 1.0.5 + dev: true - file-entry-cache@6.0.1: + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: flat-cache: 3.2.0 + dev: true - fill-range@7.1.1: + /fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 + dev: true - find-up@4.1.0: + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} dependencies: locate-path: 5.0.0 path-exists: 4.0.0 + dev: true - find-up@5.0.0: + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} dependencies: locate-path: 6.0.0 path-exists: 4.0.0 + dev: true - flat-cache@3.2.0: + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: flatted: 3.3.1 keyv: 4.5.4 rimraf: 3.0.2 + dev: true - flatted@3.3.1: {} + /flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + dev: true - foreground-child@3.2.1: + /foreground-child@3.2.1: + resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} + engines: {node: '>=14'} dependencies: cross-spawn: 7.0.3 signal-exit: 4.1.0 + dev: false - fs.realpath@1.0.0: {} + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true - fsevents@2.3.3: + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true optional: true - function-bind@1.1.2: {} + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: true - get-func-name@2.0.2: {} + /get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + dev: true - get-stream@6.0.1: {} + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + dev: true - get-stream@8.0.1: {} + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + dev: true - glob-parent@5.1.2: + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 + dev: true - glob-parent@6.0.2: + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} dependencies: is-glob: 4.0.3 + dev: true - glob@10.4.2: + /glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true dependencies: foreground-child: 3.2.1 - jackspeak: 3.4.0 + jackspeak: 3.4.3 minimatch: 9.0.5 minipass: 7.1.2 package-json-from-dist: 1.0.0 path-scurry: 1.11.1 + dev: false - glob@7.2.3: + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -2519,12 +1524,18 @@ snapshots: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 + dev: true - globals@13.24.0: + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} dependencies: type-fest: 0.20.2 + dev: true - globby@11.1.0: + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} dependencies: array-union: 2.1.0 dir-glob: 3.0.1 @@ -2532,18 +1543,26 @@ snapshots: ignore: 5.3.1 merge2: 1.4.1 slash: 3.0.0 + dev: true - graphemer@1.4.0: {} + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + dev: true - gts@5.3.1(typescript@5.5.2): + /gts@5.3.1(typescript@5.5.2): + resolution: {integrity: sha512-P9F+krJkGOkisUX+P9pfUas1Xy+U+CxBFZT62uInkJbgvZpnW1ug/pIcMJJmLOthMq1J88lpQUGhXDC9UTvVcw==} + engines: {node: '>=14'} + hasBin: true + peerDependencies: + typescript: '>=3' dependencies: - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2) + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.5.2) '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.5.2) chalk: 4.1.2 eslint: 8.57.0 eslint-config-prettier: 9.1.0(eslint@8.57.0) eslint-plugin-n: 15.7.0(eslint@8.57.0) - eslint-plugin-prettier: 5.1.3(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.2.5) + eslint-plugin-prettier: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5) execa: 5.1.1 inquirer: 7.3.3 json5: 2.2.3 @@ -2556,52 +1575,102 @@ snapshots: transitivePeerDependencies: - '@types/eslint' - supports-color + dev: true - hard-rejection@2.1.0: {} + /hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + dev: true - has-flag@3.0.0: {} + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + dev: true - has-flag@4.0.0: {} + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true - hasown@2.0.2: + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} dependencies: function-bind: 1.1.2 + dev: true - hosted-git-info@2.8.9: {} + /hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + dev: true - hosted-git-info@4.1.0: + /hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} dependencies: lru-cache: 6.0.0 + dev: true - human-signals@2.1.0: {} + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + dev: true - human-signals@5.0.0: {} + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + dev: true - husky@8.0.0: {} + /husky@8.0.0: + resolution: {integrity: sha512-4qbE/5dzNDNxFEkX9MNRPKl5+omTXQzdILCUWiqG/lWIAioiM5vln265/l6I2Zx8gpW8l1ukZwGQeCFbBZ6+6w==} + engines: {node: '>=14'} + hasBin: true + dev: true - iconv-lite@0.4.24: + /iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 + dev: true - ignore@5.3.1: {} + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + dev: true - import-fresh@3.3.0: + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 + dev: true - imurmurhash@0.1.4: {} + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: true - indent-string@4.0.0: {} + /indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + dev: true - inflight@1.0.6: + /inflight@1.0.6: + resolution: {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. dependencies: once: 1.4.0 wrappy: 1.0.2 + dev: true - inherits@2.0.4: {} + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true - inquirer@7.3.3: + /inquirer@7.3.3: + resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==} + engines: {node: '>=8.0.0'} dependencies: ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -2616,112 +1685,208 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 through: 2.3.8 + dev: true - is-arrayish@0.2.1: {} + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: true - is-core-module@2.14.0: + /is-core-module@2.14.0: + resolution: {integrity: sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==} + engines: {node: '>= 0.4'} dependencies: hasown: 2.0.2 + dev: true - is-extglob@2.1.1: {} + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: true - is-fullwidth-code-point@3.0.0: {} + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} - is-glob@4.0.3: + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 + dev: true - is-number@7.0.0: {} + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true - is-path-inside@3.0.3: {} + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true - is-plain-obj@1.1.0: {} + /is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + dev: true - is-stream@2.0.1: {} + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: true - is-stream@3.0.0: {} + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true - isexe@2.0.0: {} + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - jackspeak@3.4.0: + /jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: '@pkgjs/parseargs': 0.11.0 + dev: false - js-tokens@4.0.0: {} + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: true - js-tokens@9.0.0: {} + /js-tokens@9.0.0: + resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} + dev: true - js-yaml@4.1.0: + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true dependencies: argparse: 2.0.1 + dev: true - json-buffer@3.0.1: {} + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: true - json-parse-even-better-errors@2.3.1: {} + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: true - json-schema-traverse@0.4.1: {} + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true - json-schema-traverse@1.0.0: {} + /json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + dev: false - json-stable-stringify-without-jsonify@1.0.1: {} + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true - json5@2.2.3: {} + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true - jsonschema@1.4.1: {} + /jsonschema@1.4.1: + resolution: {integrity: sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==} + dev: true - keyv@4.5.4: + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} dependencies: json-buffer: 3.0.1 + dev: true - kind-of@6.0.3: {} + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + dev: true - levn@0.4.1: + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 + dev: true - lines-and-columns@1.2.4: {} + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true - local-pkg@0.5.0: + /local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} dependencies: mlly: 1.7.1 - pkg-types: 1.1.1 + pkg-types: 1.1.3 + dev: true - locate-path@5.0.0: + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} dependencies: p-locate: 4.1.0 + dev: true - locate-path@6.0.0: + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} dependencies: p-locate: 5.0.0 + dev: true - lodash.merge@4.6.2: {} + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true - lodash@4.17.21: {} + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: true - loupe@2.3.7: + /loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} dependencies: get-func-name: 2.0.2 + dev: true - lru-cache@10.2.2: {} + /lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + dev: false - lru-cache@6.0.0: + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} dependencies: yallist: 4.0.0 + dev: true - magic-string@0.30.10: + /magic-string@0.30.10: + resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 + dev: true - make-error@1.3.6: {} + /make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + dev: false - map-obj@1.0.1: {} + /map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + dev: true - map-obj@4.3.0: {} + /map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + dev: true - meow@9.0.0: + /meow@9.0.0: + resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==} + engines: {node: '>=10'} dependencies: '@types/minimist': 1.2.5 camelcase-keys: 6.2.2 @@ -2735,94 +1900,164 @@ snapshots: trim-newlines: 3.0.1 type-fest: 0.18.1 yargs-parser: 20.2.9 + dev: true - merge-stream@2.0.0: {} + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true - merge2@1.4.1: {} + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true - micromatch@4.0.7: + /micromatch@4.0.7: + resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + engines: {node: '>=8.6'} dependencies: braces: 3.0.3 picomatch: 2.3.1 + dev: true - mimic-fn@2.1.0: {} + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true - mimic-fn@4.0.0: {} + /mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + dev: true - min-indent@1.0.1: {} + /min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + dev: true - minimatch@3.1.2: + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 + dev: true - minimatch@9.0.5: + /minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 + dev: false - minimist-options@4.1.0: + /minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} dependencies: arrify: 1.0.1 is-plain-obj: 1.1.0 kind-of: 6.0.3 + dev: true - minipass@7.1.2: {} + /minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + dev: false - mlly@1.7.1: + /mlly@1.7.1: + resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} dependencies: - acorn: 8.12.0 + acorn: 8.12.1 pathe: 1.1.2 - pkg-types: 1.1.1 + pkg-types: 1.1.3 ufo: 1.5.3 + dev: true - ms@2.1.2: {} + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true - mute-stream@0.0.8: {} + /mute-stream@0.0.8: + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + dev: true - nanoid@3.3.7: {} + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true - natural-compare-lite@1.4.0: {} + /natural-compare-lite@1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + dev: true - natural-compare@1.4.0: {} + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true - ncp@2.0.0: {} + /ncp@2.0.0: + resolution: {integrity: sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==} + hasBin: true + dev: true - normalize-package-data@2.5.0: + /normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: hosted-git-info: 2.8.9 resolve: 1.22.8 semver: 5.7.2 validate-npm-package-license: 3.0.4 + dev: true - normalize-package-data@3.0.3: + /normalize-package-data@3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} + engines: {node: '>=10'} dependencies: hosted-git-info: 4.1.0 is-core-module: 2.14.0 semver: 7.6.2 validate-npm-package-license: 3.0.4 + dev: true - normalize-path@3.0.0: {} + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: false - npm-run-path@4.0.1: + /npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} dependencies: path-key: 3.1.1 + dev: true - npm-run-path@5.3.0: + /npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: path-key: 4.0.0 + dev: true - once@1.4.0: + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 + dev: true - onetime@5.1.2: + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} dependencies: mimic-fn: 2.1.0 + dev: true - onetime@6.0.0: + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} dependencies: mimic-fn: 4.0.0 + dev: true - optionator@0.9.4: + /optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} dependencies: deep-is: 0.1.4 fast-levenshtein: 2.0.6 @@ -2830,299 +2065,540 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 word-wrap: 1.2.5 + dev: true - os-tmpdir@1.0.2: {} + /os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + dev: true - p-limit@2.3.0: + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} dependencies: p-try: 2.2.0 + dev: true - p-limit@3.1.0: + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} dependencies: yocto-queue: 0.1.0 + dev: true - p-limit@5.0.0: + /p-limit@5.0.0: + resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} + engines: {node: '>=18'} dependencies: - yocto-queue: 1.0.0 + yocto-queue: 1.1.1 + dev: true - p-locate@4.1.0: + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} dependencies: p-limit: 2.3.0 + dev: true - p-locate@5.0.0: + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} dependencies: p-limit: 3.1.0 + dev: true - p-try@2.2.0: {} + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: true - package-json-from-dist@1.0.0: {} + /package-json-from-dist@1.0.0: + resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + dev: false - parent-module@1.0.1: + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} dependencies: callsites: 3.1.0 + dev: true - parse-json@5.2.0: + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} dependencies: '@babel/code-frame': 7.24.7 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 + dev: true - path-exists@4.0.0: {} + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true - path-is-absolute@1.0.1: {} + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true - path-key@3.1.1: {} + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} - path-key@4.0.0: {} + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + dev: true - path-parse@1.0.7: {} + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true - path-scurry@1.11.1: + /path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} dependencies: - lru-cache: 10.2.2 + lru-cache: 10.4.3 minipass: 7.1.2 + dev: false - path-type@4.0.0: {} + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true - pathe@1.1.2: {} + /pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + dev: true - pathval@1.1.1: {} + /pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + dev: true - picocolors@1.0.1: {} + /picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + dev: true - picomatch@2.3.1: {} + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true - pkg-types@1.1.1: + /pkg-types@1.1.3: + resolution: {integrity: sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==} dependencies: confbox: 0.1.7 mlly: 1.7.1 pathe: 1.1.2 + dev: true - postcss@8.4.38: + /postcss@8.4.39: + resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} + engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 picocolors: 1.0.1 source-map-js: 1.2.0 + dev: true - prelude-ls@1.2.1: {} + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true - prettier-linter-helpers@1.0.0: + /prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} dependencies: fast-diff: 1.3.0 + dev: true - prettier@3.2.5: {} + /prettier@3.2.5: + resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} + engines: {node: '>=14'} + hasBin: true + dev: true - pretty-format@29.7.0: + /pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 react-is: 18.3.1 + dev: true - punycode@2.3.1: {} + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} - queue-microtask@1.2.3: {} + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true - quick-lru@4.0.1: {} + /quick-lru@4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} + dev: true - react-is@18.3.1: {} + /react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + dev: true - read-pkg-up@7.0.1: + /read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} dependencies: find-up: 4.1.0 read-pkg: 5.2.0 type-fest: 0.8.1 + dev: true - read-pkg@5.2.0: + /read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 2.5.0 parse-json: 5.2.0 type-fest: 0.6.0 + dev: true - redent@3.0.0: + /redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} dependencies: indent-string: 4.0.0 strip-indent: 3.0.0 + dev: true - regexpp@3.2.0: {} + /regexpp@3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} + dev: true - require-from-string@2.0.2: {} + /require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + dev: false - resolve-from@4.0.0: {} + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true - resolve@1.22.8: + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true dependencies: is-core-module: 2.14.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + dev: true - restore-cursor@3.1.0: + /restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} dependencies: onetime: 5.1.2 signal-exit: 3.0.7 + dev: true - reusify@1.0.4: {} + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true - rimraf@3.0.2: + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true dependencies: glob: 7.2.3 + dev: true - rollup@4.18.0: + /rollup@4.18.1: + resolution: {integrity: sha512-Elx2UT8lzxxOXMpy5HWQGZqkrQOtrVDDa/bm9l10+U4rQnVzbL/LgZ4NOM1MPIDyHk69W4InuYDF5dzRh4Kw1A==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.18.0 - '@rollup/rollup-android-arm64': 4.18.0 - '@rollup/rollup-darwin-arm64': 4.18.0 - '@rollup/rollup-darwin-x64': 4.18.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.18.0 - '@rollup/rollup-linux-arm-musleabihf': 4.18.0 - '@rollup/rollup-linux-arm64-gnu': 4.18.0 - '@rollup/rollup-linux-arm64-musl': 4.18.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0 - '@rollup/rollup-linux-riscv64-gnu': 4.18.0 - '@rollup/rollup-linux-s390x-gnu': 4.18.0 - '@rollup/rollup-linux-x64-gnu': 4.18.0 - '@rollup/rollup-linux-x64-musl': 4.18.0 - '@rollup/rollup-win32-arm64-msvc': 4.18.0 - '@rollup/rollup-win32-ia32-msvc': 4.18.0 - '@rollup/rollup-win32-x64-msvc': 4.18.0 + '@rollup/rollup-android-arm-eabi': 4.18.1 + '@rollup/rollup-android-arm64': 4.18.1 + '@rollup/rollup-darwin-arm64': 4.18.1 + '@rollup/rollup-darwin-x64': 4.18.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.18.1 + '@rollup/rollup-linux-arm-musleabihf': 4.18.1 + '@rollup/rollup-linux-arm64-gnu': 4.18.1 + '@rollup/rollup-linux-arm64-musl': 4.18.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.18.1 + '@rollup/rollup-linux-riscv64-gnu': 4.18.1 + '@rollup/rollup-linux-s390x-gnu': 4.18.1 + '@rollup/rollup-linux-x64-gnu': 4.18.1 + '@rollup/rollup-linux-x64-musl': 4.18.1 + '@rollup/rollup-win32-arm64-msvc': 4.18.1 + '@rollup/rollup-win32-ia32-msvc': 4.18.1 + '@rollup/rollup-win32-x64-msvc': 4.18.1 fsevents: 2.3.3 + dev: true - run-async@2.4.1: {} + /run-async@2.4.1: + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} + engines: {node: '>=0.12.0'} + dev: true - run-parallel@1.2.0: + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 + dev: true - rxjs@6.6.7: + /rxjs@6.6.7: + resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} + engines: {npm: '>=2.0.0'} dependencies: tslib: 1.14.1 + dev: true - safe-stable-stringify@2.4.3: {} + /safe-stable-stringify@2.4.3: + resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + engines: {node: '>=10'} + dev: false - safer-buffer@2.1.2: {} + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: true - semver@5.7.2: {} + /semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + dev: true - semver@7.6.2: {} + /semver@7.6.2: + resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + engines: {node: '>=10'} + hasBin: true + dev: true - shebang-command@2.0.0: + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 - shebang-regex@3.0.0: {} + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} - siginfo@2.0.0: {} + /siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + dev: true - signal-exit@3.0.7: {} + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true - signal-exit@4.1.0: {} + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} - slash@3.0.0: {} + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true - source-map-js@1.2.0: {} + /source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + dev: true - spdx-correct@3.2.0: + /spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} dependencies: spdx-expression-parse: 3.0.1 spdx-license-ids: 3.0.18 + dev: true - spdx-exceptions@2.5.0: {} + /spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + dev: true - spdx-expression-parse@3.0.1: + /spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: spdx-exceptions: 2.5.0 spdx-license-ids: 3.0.18 + dev: true - spdx-license-ids@3.0.18: {} + /spdx-license-ids@3.0.18: + resolution: {integrity: sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==} + dev: true - stackback@0.0.2: {} + /stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + dev: true - std-env@3.7.0: {} + /std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + dev: true - string-width@4.2.3: + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - string-width@5.1.2: + /string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 strip-ansi: 7.1.0 + dev: false - strip-ansi@6.0.1: + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 - strip-ansi@7.1.0: + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 + dev: false - strip-final-newline@2.0.0: {} + /strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + dev: true - strip-final-newline@3.0.0: {} + /strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + dev: true - strip-indent@3.0.0: + /strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} dependencies: min-indent: 1.0.1 + dev: true - strip-json-comments@3.1.1: {} + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true - strip-literal@2.1.0: + /strip-literal@2.1.0: + resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} dependencies: js-tokens: 9.0.0 + dev: true - supports-color@5.5.0: + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} dependencies: has-flag: 3.0.0 + dev: true - supports-color@7.2.0: + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} dependencies: has-flag: 4.0.0 + dev: true - supports-preserve-symlinks-flag@1.0.0: {} + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + dev: true - synckit@0.8.8: + /synckit@0.8.8: + resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} + engines: {node: ^14.18.0 || >=16.0.0} dependencies: '@pkgr/core': 0.1.1 tslib: 2.6.3 + dev: true - text-table@0.2.0: {} + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true - through@2.3.8: {} + /through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + dev: true - tinybench@2.8.0: {} + /tinybench@2.8.0: + resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} + dev: true - tinypool@0.8.4: {} + /tinypool@0.8.4: + resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} + engines: {node: '>=14.0.0'} + dev: true - tinyspy@2.2.1: {} + /tinyspy@2.2.1: + resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} + engines: {node: '>=14.0.0'} + dev: true - tmp@0.0.33: + /tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} dependencies: os-tmpdir: 1.0.2 + dev: true - to-regex-range@5.0.1: + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 + dev: true - trim-newlines@3.0.1: {} + /trim-newlines@3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} + dev: true - ts-json-schema-generator@2.3.0: + /ts-json-schema-generator@2.3.0: + resolution: {integrity: sha512-t4lBQAwZc0sOJq9LJt3NgbznIcslVnm0JeEMFq8qIRklpMRY8jlYD0YmnRWbqBKANxkby91P1XanSSlSOFpUmg==} + engines: {node: '>=18.0.0'} + hasBin: true dependencies: '@types/json-schema': 7.0.15 commander: 12.1.0 - glob: 10.4.2 + glob: 10.4.5 json5: 2.2.3 normalize-path: 3.0.0 safe-stable-stringify: 2.4.3 tslib: 2.6.3 - typescript: 5.4.5 + typescript: 5.5.2 + dev: false - ts-node@10.9.2(@types/node@18.16.1)(typescript@5.5.2): + /ts-node@10.9.2(@types/node@18.16.1)(typescript@5.5.2): + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + hasBin: true + 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 dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 @@ -3130,7 +2606,7 @@ snapshots: '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 '@types/node': 18.16.1 - acorn: 8.12.0 + acorn: 8.12.1 acorn-walk: 8.3.3 arg: 4.1.3 create-require: 1.1.1 @@ -3139,56 +2615,97 @@ snapshots: typescript: 5.5.2 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 + dev: false - tslib@1.14.1: {} + /tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: true - tslib@2.6.3: {} + /tslib@2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} - tsutils@3.21.0(typescript@5.5.2): + /tsutils@3.21.0(typescript@5.5.2): + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 typescript: 5.5.2 + dev: true - type-check@0.4.0: + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 + dev: true - type-detect@4.0.8: {} - - type-fest@0.18.1: {} + /type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + dev: true - type-fest@0.20.2: {} + /type-fest@0.18.1: + resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} + engines: {node: '>=10'} + dev: true - type-fest@0.21.3: {} + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true - type-fest@0.6.0: {} + /type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + dev: true - type-fest@0.8.1: {} + /type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + dev: true - typescript@5.4.5: {} + /type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + dev: true - typescript@5.5.2: {} + /typescript@5.5.2: + resolution: {integrity: sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==} + engines: {node: '>=14.17'} + hasBin: true - ufo@1.5.3: {} + /ufo@1.5.3: + resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} + dev: true - uri-js@4.4.1: + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.3.1 - v8-compile-cache-lib@3.0.1: {} + /v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + dev: false - validate-npm-package-license@3.0.4: + /validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} dependencies: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 + dev: true - vite-node@1.6.0(@types/node@18.16.1): + /vite-node@1.6.0(@types/node@18.16.1): + resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true dependencies: cac: 6.7.14 debug: 4.3.5 pathe: 1.1.2 picocolors: 1.0.1 - vite: 5.3.2(@types/node@18.16.1) + vite: 5.3.3(@types/node@18.16.1) transitivePeerDependencies: - '@types/node' - less @@ -3198,18 +2715,70 @@ snapshots: - sugarss - supports-color - terser + dev: true - vite@5.3.2(@types/node@18.16.1): + /vite@5.3.3(@types/node@18.16.1): + resolution: {integrity: sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true dependencies: + '@types/node': 18.16.1 esbuild: 0.21.5 - postcss: 8.4.38 - rollup: 4.18.0 + postcss: 8.4.39 + rollup: 4.18.1 optionalDependencies: - '@types/node': 18.16.1 fsevents: 2.3.3 + dev: true - vitest@1.6.0(@types/node@18.16.1): + /vitest@1.6.0(@types/node@18.16.1): + resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 1.6.0 + '@vitest/ui': 1.6.0 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true dependencies: + '@types/node': 18.16.1 '@vitest/expect': 1.6.0 '@vitest/runner': 1.6.0 '@vitest/snapshot': 1.6.0 @@ -3227,11 +2796,9 @@ snapshots: strip-literal: 2.1.0 tinybench: 2.8.0 tinypool: 0.8.4 - vite: 5.3.2(@types/node@18.16.1) + vite: 5.3.3(@types/node@18.16.1) vite-node: 1.6.0(@types/node@18.16.1) - why-is-node-running: 2.2.2 - optionalDependencies: - '@types/node': 18.16.1 + why-is-node-running: 2.3.0 transitivePeerDependencies: - less - lightningcss @@ -3240,43 +2807,79 @@ snapshots: - sugarss - supports-color - terser + dev: true - which@2.0.2: + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true dependencies: isexe: 2.0.0 - why-is-node-running@2.2.2: + /why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + engines: {node: '>=8'} + hasBin: true dependencies: siginfo: 2.0.0 stackback: 0.0.2 + dev: true - word-wrap@1.2.5: {} + /word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + dev: true - wrap-ansi@7.0.0: + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 + dev: false - wrap-ansi@8.1.0: + /wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} dependencies: ansi-styles: 6.2.1 string-width: 5.1.2 strip-ansi: 7.1.0 + dev: false - wrappy@1.0.2: {} + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: true - write-file-atomic@4.0.2: + /write-file-atomic@4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: imurmurhash: 0.1.4 signal-exit: 3.0.7 + dev: true - yallist@4.0.0: {} + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true - yargs-parser@20.2.9: {} + /yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + dev: true - yn@3.1.1: {} + /yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + dev: false - yocto-queue@0.1.0: {} + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true - yocto-queue@1.0.0: {} + /yocto-queue@1.1.1: + resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} + engines: {node: '>=12.20'} + dev: true diff --git a/schema/schema.json b/schemas/digitalPlanningApplication.json similarity index 100% rename from schema/schema.json rename to schemas/digitalPlanningApplication.json diff --git a/scripts/build-json-examples.ts b/scripts/build-json-examples.ts index 434a9289..be442930 100644 --- a/scripts/build-json-examples.ts +++ b/scripts/build-json-examples.ts @@ -1,89 +1,46 @@ import * as fs from 'fs'; import * as path from 'path'; -import {landDrainageConsent} from '../examples/data/landDrainageConsent'; -import {lawfulDevelopmentCertificateExisting} from '../examples/data/lawfulDevelopmentCertificate/existing'; -import {lawfulDevelopmentCertificateProposed} from '../examples/data/lawfulDevelopmentCertificate/proposed'; -import {listedBuildingConsent} from '../examples/data/listedBuildingConsent'; -import {planningPermissionFullHouseholder} from '../examples/data/planningPermission/fullHouseholder'; -import {planningPermissionMajor} from '../examples/data/planningPermission/major'; -import {planningPermissionMinor} from '../examples/data/planningPermission/minor'; -import {priorApprovalBuildHomes} from '../examples/data/priorApproval/buildHomes'; -import {priorApprovalConvertCommercialToHome} from '../examples/data/priorApproval/convertCommercialToHome'; -import {priorApprovalExtendUniversity} from '../examples/data/priorApproval/extendUniversity'; -import {priorApprovalLargerExtension} from '../examples/data/priorApproval/largerExtension'; -import {priorApprovalSolarPanels} from '../examples/data/priorApproval/solarPanels'; -import {Schema} from '../types/Schema'; +const convertTypeScriptObjectToJSON = async (input: string, output: string) => { + try { + // Import TypeScript module containing example, and extract exported object + const module = await import(path.resolve(input)); + const object = Object.values(module)[0]; -interface Example { - filename: string; - data: Schema; -} + // Convert to JSON and write to file + const json = JSON.stringify(object, null, 2); + fs.writeFileSync(output, json); -const examplesToConvert: Example[] = [ - { - filename: 'lawfulDevelopmentCertificate/existing', - data: lawfulDevelopmentCertificateExisting, - }, - { - filename: 'lawfulDevelopmentCertificate/proposed', - data: lawfulDevelopmentCertificateProposed, - }, - { - filename: 'priorApproval/extendUniversity', - data: priorApprovalExtendUniversity, - }, - { - filename: 'priorApproval/solarPanels', - data: priorApprovalSolarPanels, - }, - { - filename: 'priorApproval/buildHomes', - data: priorApprovalBuildHomes, - }, - { - filename: 'priorApproval/convertCommercialToHome', - data: priorApprovalConvertCommercialToHome, - }, - { - filename: 'priorApproval/largerExtension', - data: priorApprovalLargerExtension, - }, - { - filename: 'planningPermission/fullHouseholder', - data: planningPermissionFullHouseholder, - }, - { - filename: 'planningPermission/major', - data: planningPermissionMajor, - }, - { - filename: 'planningPermission/minor', - data: planningPermissionMinor, - }, - { - filename: 'listedBuildingConsent', - data: listedBuildingConsent, - }, - { - filename: 'landDrainageConsent', - data: landDrainageConsent, - }, -]; + console.log(`Converted ${input} to ${output}`); + } catch (err) { + console.error(`Error converting ${input} to JSON:`, err); + } +}; + +/** + * Recursively walk through directories to locate .ts examples + * Convert from typed TS objects to plain JSON + */ +const walkDirectory = async (dir: string) => { + const files = fs.readdirSync(dir); -const convertTypeScriptObjectsToJSONFiles = (objects: Example[]) => { - for (const object of objects) { - const outputFilePath = path.join( - __dirname, - `../examples/${object.filename}.json` - ); - const jsonContent = JSON.stringify(object.data, null, 2); - fs.writeFileSync(outputFilePath, jsonContent, {flag: 'w'}); + for (const file of files) { + const filePath = path.join(dir, file); - console.log( - `TypeScript object '${object.filename}' converted to JSON and saved to ${outputFilePath}` - ); + if (fs.statSync(filePath).isDirectory()) { + await walkDirectory(filePath); + } else if (path.extname(filePath) === '.ts') { + // Write file to mirrored directory, outside the /data folder where the TS examples are stored + const jsonExampleFilePath = path.join( + dir.replace('/data', ''), + `${path.basename(file, '.ts')}.json` + ); + await convertTypeScriptObjectToJSON(filePath, jsonExampleFilePath); + } } }; -convertTypeScriptObjectsToJSONFiles(examplesToConvert); +(async () => { + await walkDirectory('./examples'); + console.log('All example files converted to JSON'); +})(); diff --git a/scripts/build-schema.sh b/scripts/build-schema.sh new file mode 100755 index 00000000..7eee9132 --- /dev/null +++ b/scripts/build-schema.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +echo "Running build-schema script..." + +# Use environment variable VERSION, defaulting to "@next" if not set +version="${VERSION:-@next}" + +echo "Version set to $version" + +dirs=("digitalPlanningApplication") +types=("DigitalPlanningApplication") + +for i in "${!dirs[@]}"; do + dir=${dirs[$i]} + type=${types[$i]} + + echo "Building schema for $type from directory /$dir" + + pnpm ts-json-schema-generator --path "types/schemas/${dir}/*.ts" --out "schemas/${dir}.json" --type "$type" --id "$version" --no-top-ref +done diff --git a/tests/.gitkeep b/tests/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/tests/usage.test.ts b/tests/usage.test.ts index 47b60793..6a1b1aaa 100644 --- a/tests/usage.test.ts +++ b/tests/usage.test.ts @@ -1,81 +1,90 @@ +import * as fs from 'fs'; +import * as path from 'path'; + import Ajv from 'ajv'; import addFormats from 'ajv-formats'; -import {Validator} from 'jsonschema'; -import {describe, expect, test} from 'vitest'; - -import {landDrainageConsent} from '../examples/data/landDrainageConsent'; -import {lawfulDevelopmentCertificateExisting} from '../examples/data/lawfulDevelopmentCertificate/existing'; -import {lawfulDevelopmentCertificateProposed} from '../examples/data/lawfulDevelopmentCertificate/proposed'; -import {listedBuildingConsent} from '../examples/data/listedBuildingConsent'; -import {planningPermissionFullHouseholder} from '../examples/data/planningPermission/fullHouseholder'; -import {planningPermissionMajor} from '../examples/data/planningPermission/major'; -import {planningPermissionMinor} from '../examples/data/planningPermission/minor'; -import {priorApprovalBuildHomes} from '../examples/data/priorApproval/buildHomes'; -import {priorApprovalConvertCommercialToHome} from '../examples/data/priorApproval/convertCommercialToHome'; -import {priorApprovalExtendUniversity} from '../examples/data/priorApproval/extendUniversity'; -import {priorApprovalLargerExtension} from './../examples/data/priorApproval/largerExtension'; -import {priorApprovalSolarPanels} from '../examples/data/priorApproval/solarPanels'; -import generatedSchema from '../schema/schema.json'; - -const examplesToTest = [ - lawfulDevelopmentCertificateExisting, - lawfulDevelopmentCertificateProposed, - listedBuildingConsent, - planningPermissionFullHouseholder, - planningPermissionMajor, - planningPermissionMinor, - priorApprovalExtendUniversity, - priorApprovalSolarPanels, - priorApprovalBuildHomes, - priorApprovalConvertCommercialToHome, - priorApprovalLargerExtension, - landDrainageConsent, +import {Schema, Validator} from 'jsonschema'; +import digitalPlanningApplicationSchema from '../schemas/digitalPlanningApplication.json'; +import {DigitalPlanningApplication} from '../types/schemas/digitalPlanningApplication/index'; +import {describe, test, expect} from 'vitest'; + +/** + * Helper function to walk /examples directory and collect generated JSON files + */ +const getJSONExamples = (schemaPath: string): T[] => { + const examples: T[] = []; + + const walkDirectory = (dir: string) => { + const files = fs.readdirSync(dir); + + for (const file of files) { + const filePath = path.join(dir, file); + + if (fs.statSync(filePath).isDirectory()) { + walkDirectory(filePath); + } else if (path.extname(filePath) === '.json') { + const example = JSON.parse(fs.readFileSync(filePath, 'utf8')); + examples.push(example); + } + } + }; + + const examplesDir = path.join(__dirname, `../examples/${schemaPath}`); + walkDirectory(examplesDir); + + return examples; +}; + +const schemas = [ + { + name: 'DigitalPlanningApplication', + schema: digitalPlanningApplicationSchema, + examples: getJSONExamples( + 'digitalPlanningApplication' + ), + }, ]; -describe("parsing using the 'jsonschema' library", () => { - examplesToTest.forEach(example => { - test(`accepts a valid example: ${example.data.application.type.description}`, () => { - const validator = new Validator(); - const result = validator.validate(example, generatedSchema, { - disableFormat: true, +describe.each(schemas)('$name', ({schema, examples}) => { + const validator = new Validator(); + + describe("parsing using the 'jsonschema' library", () => { + describe.each(examples)('$data.application.type.description', example => { + test('accepts a valid example', async () => { + const result = validator.validate(example, schema as Schema); + + expect(result.errors).toHaveLength(0); }); - expect(result.errors).toHaveLength(0); - }); - }); + test('rejects an invalid example', () => { + const invalidExample = {foo: 'bar'}; + const result = validator.validate(invalidExample, schema as Schema); - test('rejects an invalid example', () => { - const validator = new Validator(); - const invalidExample = {foo: 'bar'}; - const result = validator.validate(invalidExample, generatedSchema, { - disableFormat: true, + expect(result.errors).not.toHaveLength(0); + }); }); - - expect(result.errors).not.toHaveLength(0); }); -}); -describe("parsing using the 'ajv' library", () => { - examplesToTest.forEach(example => { - test(`accepts a valid example: ${example.data.application.type.description}`, () => { - // addFormats() is required for types UUID, email, datetime etc - const ajv = addFormats(new Ajv({allowUnionTypes: true})); - const validate = ajv.compile(generatedSchema); - const isValid = validate(example); + describe("parsing using the 'ajv' library", () => { + // addFormats() is required for types UUID, email, datetime etc + const ajv = addFormats(new Ajv({allowUnionTypes: true})); + const validate = ajv.compile(schema); - expect(validate.errors).toBeNull(); - expect(isValid).toBe(true); - }); - }); + describe.each(examples)('$data.application.type.description', example => { + test('accepts a valid example', async () => { + const isValid = validate(example); - test('rejects an invalid example', () => { - const invalidExample = {foo: 'bar'}; + expect(validate.errors).toBeNull(); + expect(isValid).toBe(true); + }); - const ajv = addFormats(new Ajv()); - const validate = ajv.compile(generatedSchema); - const isValid = validate(invalidExample); + test('rejects an invalid example', () => { + const invalidExample = {foo: 'bar'}; + const isValid = validate(invalidExample); - expect(validate.errors).not.toBeNull(); - expect(isValid).toBe(false); + expect(validate.errors).not.toBeNull(); + expect(isValid).toBe(false); + }); + }); }); }); diff --git a/types/Schema.ts b/types/Schema.ts deleted file mode 100644 index f48c942d..00000000 --- a/types/Schema.ts +++ /dev/null @@ -1,29 +0,0 @@ -import {File} from './schema/File'; -import {Metadata} from './schema/Metadata'; -import {PreAssessment} from './schema/PreAssessment'; -import {Responses} from './schema/Responses'; -import {Applicant} from './schema/data/Applicant'; -import {Application} from './schema/data/Application'; -import {FilesAsData} from './schema/data/Files'; -import {Property} from './schema/data/Property'; -import {Proposal} from './schema/data/Proposal'; -import {User} from './schema/data/User'; - -/** - * @title Digital Planning Application - * @description The root specification for a planning application in England generated by a digital planning service - */ -export interface Schema { - data: { - application: Application; - user: User; - applicant: Applicant; - property: Property; - proposal: Proposal; - files?: FilesAsData; - }; - preAssessment?: PreAssessment; - responses: Responses; - files: File[]; - metadata: Metadata; -} diff --git a/types/schema/File.ts b/types/schemas/digitalPlanningApplication/File.ts similarity index 80% rename from types/schema/File.ts rename to types/schemas/digitalPlanningApplication/File.ts index 55c55cec..daf8c9e4 100644 --- a/types/schema/File.ts +++ b/types/schemas/digitalPlanningApplication/File.ts @@ -1,4 +1,4 @@ -import {FileType} from '../enums/FileTypes'; +import {FileType} from './enums/FileTypes'; /** * @id #File diff --git a/types/schema/Metadata.ts b/types/schemas/digitalPlanningApplication/Metadata.ts similarity index 96% rename from types/schema/Metadata.ts rename to types/schemas/digitalPlanningApplication/Metadata.ts index 151aef1a..3ec1840a 100644 --- a/types/schema/Metadata.ts +++ b/types/schemas/digitalPlanningApplication/Metadata.ts @@ -1,5 +1,5 @@ -import {FileType} from '../enums/FileTypes'; -import {DateTime, URL, UUID} from './../utils'; +import {FileType} from './enums/FileTypes'; +import {DateTime, URL, UUID} from '../../shared/utils'; import {QuestionMetaData} from './Responses'; /** diff --git a/types/schema/PreAssessment.ts b/types/schemas/digitalPlanningApplication/PreAssessment.ts similarity index 89% rename from types/schema/PreAssessment.ts rename to types/schemas/digitalPlanningApplication/PreAssessment.ts index c7b1ea46..5a96a46b 100644 --- a/types/schema/PreAssessment.ts +++ b/types/schemas/digitalPlanningApplication/PreAssessment.ts @@ -1,4 +1,4 @@ -import {ResultFlag} from '../enums/Flags'; +import {ResultFlag} from './enums/Flags'; /** * @id #PreAssessment diff --git a/types/schema/Responses.ts b/types/schemas/digitalPlanningApplication/Responses.ts similarity index 94% rename from types/schema/Responses.ts rename to types/schemas/digitalPlanningApplication/Responses.ts index dfaa426a..d155ce9a 100644 --- a/types/schema/Responses.ts +++ b/types/schemas/digitalPlanningApplication/Responses.ts @@ -1,4 +1,4 @@ -import {URL} from './../utils'; +import {URL} from '../../shared/utils'; /** * @id #Responses diff --git a/types/schema/data/Applicant.ts b/types/schemas/digitalPlanningApplication/data/Applicant.ts similarity index 98% rename from types/schema/data/Applicant.ts rename to types/schemas/digitalPlanningApplication/data/Applicant.ts index 598b5a0f..2d5b6089 100644 --- a/types/schema/data/Applicant.ts +++ b/types/schemas/digitalPlanningApplication/data/Applicant.ts @@ -1,4 +1,4 @@ -import {Date, Email} from '../../utils'; +import {Date, Email} from '../../../shared/utils'; import {User} from './User'; /** diff --git a/types/schema/data/Application.ts b/types/schemas/digitalPlanningApplication/data/Application.ts similarity index 97% rename from types/schema/data/Application.ts rename to types/schemas/digitalPlanningApplication/data/Application.ts index 2e4761ed..424c9463 100644 --- a/types/schema/data/Application.ts +++ b/types/schemas/digitalPlanningApplication/data/Application.ts @@ -1,5 +1,5 @@ -import {ApplicationType} from '../../enums/ApplicationTypes'; -import {Date} from '../../utils'; +import {ApplicationType} from '../enums/ApplicationTypes'; +import {Date} from '../../../shared/utils'; /** * @id #Application diff --git a/types/schema/data/Files.ts b/types/schemas/digitalPlanningApplication/data/Files.ts similarity index 100% rename from types/schema/data/Files.ts rename to types/schemas/digitalPlanningApplication/data/Files.ts diff --git a/types/schema/data/Property.ts b/types/schemas/digitalPlanningApplication/data/Property.ts similarity index 97% rename from types/schema/data/Property.ts rename to types/schemas/digitalPlanningApplication/data/Property.ts index 77c4063e..ef09f1ba 100644 --- a/types/schema/data/Property.ts +++ b/types/schemas/digitalPlanningApplication/data/Property.ts @@ -1,6 +1,6 @@ -import {PlanningDesignation} from '../../enums/PlanningConstraints'; -import {PropertyType} from '../../enums/PropertyTypes'; -import {Date, URL} from '../../utils'; +import {PlanningDesignation} from '../enums/PlanningConstraints'; +import {PropertyType} from '../enums/PropertyTypes'; +import {Date, URL} from '../../../shared/utils'; import {Entity, GeoBoundary, Materials, ResidentialUnits} from './shared'; /** diff --git a/types/schema/data/Proposal.ts b/types/schemas/digitalPlanningApplication/data/Proposal.ts similarity index 92% rename from types/schema/data/Proposal.ts rename to types/schemas/digitalPlanningApplication/data/Proposal.ts index 7d076599..88add32c 100644 --- a/types/schema/data/Proposal.ts +++ b/types/schemas/digitalPlanningApplication/data/Proposal.ts @@ -1,12 +1,12 @@ -import {BuildingRegulation} from '../../enums/BuildingRegulations'; -import {DevelopmentType} from '../../enums/DevelopmentTypes'; -import {GLAHousingProvider} from '../../enums/HousingProviders'; -import {OpenSpaceDesignation, OpenSpaceType} from '../../enums/OpenSpaces'; -import {ProjectType} from '../../enums/ProjectTypes'; -import {ProtectedSpaceDesignation} from '../../enums/ProtectedSpaces'; -import {GLAResidentialUnitType} from '../../enums/ResidentialUnitTypes'; -import {GLATenureType} from '../../enums/TenureTypes'; -import {Area, Date} from '../../utils'; +import {BuildingRegulation} from '../enums/BuildingRegulations'; +import {DevelopmentType} from '../enums/DevelopmentTypes'; +import {GLAHousingProvider} from '../enums/HousingProviders'; +import {OpenSpaceDesignation, OpenSpaceType} from '../enums/OpenSpaces'; +import {ProjectType} from '../enums/ProjectTypes'; +import {ProtectedSpaceDesignation} from '../enums/ProtectedSpaces'; +import {GLAResidentialUnitType} from '../enums/ResidentialUnitTypes'; +import {GLATenureType} from '../enums/TenureTypes'; +import {Area, Date} from '../../../shared/utils'; import {GeoBoundary, Materials, ResidentialUnits} from './shared'; /** diff --git a/types/schema/data/User.ts b/types/schemas/digitalPlanningApplication/data/User.ts similarity index 100% rename from types/schema/data/User.ts rename to types/schemas/digitalPlanningApplication/data/User.ts diff --git a/types/schema/data/shared.ts b/types/schemas/digitalPlanningApplication/data/shared.ts similarity index 80% rename from types/schema/data/shared.ts rename to types/schemas/digitalPlanningApplication/data/shared.ts index 75aa44aa..31f20719 100644 --- a/types/schema/data/shared.ts +++ b/types/schemas/digitalPlanningApplication/data/shared.ts @@ -1,7 +1,7 @@ import {GeoJSON} from 'geojson'; -import {UKResidentialUnitType} from '../../enums/ResidentialUnitTypes'; -import {UKTenureType} from '../../enums/TenureTypes'; -import {Area, URL} from '../../utils'; +import {UKResidentialUnitType} from '../enums/ResidentialUnitTypes'; +import {UKTenureType} from '../enums/TenureTypes'; +import {Area, URL} from '../../../shared/utils'; export type Materials = { boundary?: string; diff --git a/types/enums/ApplicationTypes.ts b/types/schemas/digitalPlanningApplication/enums/ApplicationTypes.ts similarity index 100% rename from types/enums/ApplicationTypes.ts rename to types/schemas/digitalPlanningApplication/enums/ApplicationTypes.ts diff --git a/types/enums/BuildingRegulations.ts b/types/schemas/digitalPlanningApplication/enums/BuildingRegulations.ts similarity index 100% rename from types/enums/BuildingRegulations.ts rename to types/schemas/digitalPlanningApplication/enums/BuildingRegulations.ts diff --git a/types/enums/DevelopmentTypes.ts b/types/schemas/digitalPlanningApplication/enums/DevelopmentTypes.ts similarity index 100% rename from types/enums/DevelopmentTypes.ts rename to types/schemas/digitalPlanningApplication/enums/DevelopmentTypes.ts diff --git a/types/enums/FileTypes.ts b/types/schemas/digitalPlanningApplication/enums/FileTypes.ts similarity index 100% rename from types/enums/FileTypes.ts rename to types/schemas/digitalPlanningApplication/enums/FileTypes.ts diff --git a/types/enums/Flags.ts b/types/schemas/digitalPlanningApplication/enums/Flags.ts similarity index 100% rename from types/enums/Flags.ts rename to types/schemas/digitalPlanningApplication/enums/Flags.ts diff --git a/types/enums/HousingProviders.ts b/types/schemas/digitalPlanningApplication/enums/HousingProviders.ts similarity index 100% rename from types/enums/HousingProviders.ts rename to types/schemas/digitalPlanningApplication/enums/HousingProviders.ts diff --git a/types/enums/OpenSpaces.ts b/types/schemas/digitalPlanningApplication/enums/OpenSpaces.ts similarity index 100% rename from types/enums/OpenSpaces.ts rename to types/schemas/digitalPlanningApplication/enums/OpenSpaces.ts diff --git a/types/enums/PlanningConstraints.ts b/types/schemas/digitalPlanningApplication/enums/PlanningConstraints.ts similarity index 98% rename from types/enums/PlanningConstraints.ts rename to types/schemas/digitalPlanningApplication/enums/PlanningConstraints.ts index ef7b87aa..669476e1 100644 --- a/types/enums/PlanningConstraints.ts +++ b/types/schemas/digitalPlanningApplication/enums/PlanningConstraints.ts @@ -1,4 +1,4 @@ -import {Entity} from '../schema/data/shared'; +import {Entity} from '../data/shared'; /** * Values for `data.property.planning.designations` diff --git a/types/enums/ProjectTypes.ts b/types/schemas/digitalPlanningApplication/enums/ProjectTypes.ts similarity index 100% rename from types/enums/ProjectTypes.ts rename to types/schemas/digitalPlanningApplication/enums/ProjectTypes.ts diff --git a/types/enums/PropertyTypes.ts b/types/schemas/digitalPlanningApplication/enums/PropertyTypes.ts similarity index 100% rename from types/enums/PropertyTypes.ts rename to types/schemas/digitalPlanningApplication/enums/PropertyTypes.ts diff --git a/types/enums/ProtectedSpaces.ts b/types/schemas/digitalPlanningApplication/enums/ProtectedSpaces.ts similarity index 100% rename from types/enums/ProtectedSpaces.ts rename to types/schemas/digitalPlanningApplication/enums/ProtectedSpaces.ts diff --git a/types/enums/ResidentialUnitTypes.ts b/types/schemas/digitalPlanningApplication/enums/ResidentialUnitTypes.ts similarity index 100% rename from types/enums/ResidentialUnitTypes.ts rename to types/schemas/digitalPlanningApplication/enums/ResidentialUnitTypes.ts diff --git a/types/enums/TenureTypes.ts b/types/schemas/digitalPlanningApplication/enums/TenureTypes.ts similarity index 100% rename from types/enums/TenureTypes.ts rename to types/schemas/digitalPlanningApplication/enums/TenureTypes.ts diff --git a/types/enums/UseClasses.ts b/types/schemas/digitalPlanningApplication/enums/UseClasses.ts similarity index 100% rename from types/enums/UseClasses.ts rename to types/schemas/digitalPlanningApplication/enums/UseClasses.ts diff --git a/types/schemas/digitalPlanningApplication/index.ts b/types/schemas/digitalPlanningApplication/index.ts new file mode 100644 index 00000000..c1313abe --- /dev/null +++ b/types/schemas/digitalPlanningApplication/index.ts @@ -0,0 +1,29 @@ +import {File} from './File'; +import {Metadata} from './Metadata'; +import {PreAssessment} from './PreAssessment'; +import {Responses} from './Responses'; +import {Applicant} from './data/Applicant'; +import {Application} from './data/Application'; +import {FilesAsData} from './data/Files'; +import {Property} from './data/Property'; +import {Proposal} from './data/Proposal'; +import {User} from './data/User'; + +/** + * @title Digital Planning Application + * @description The root specification for a planning application in England generated by a digital planning service + */ +export interface DigitalPlanningApplication { + data: { + application: Application; + user: User; + applicant: Applicant; + property: Property; + proposal: Proposal; + files?: FilesAsData; + }; + preAssessment?: PreAssessment; + responses: Responses; + files: File[]; + metadata: Metadata; +} diff --git a/examples/.gitkeep b/types/shared/enums/.gitkeep similarity index 100% rename from examples/.gitkeep rename to types/shared/enums/.gitkeep diff --git a/types/utils.ts b/types/shared/utils.ts similarity index 100% rename from types/utils.ts rename to types/shared/utils.ts